A new frontier…

I’ve been tasked through one of my classes with designing and implementing an application that relies on a P2P protocol. I’ve done work programming a server for BitTorrent in previous assignments but I’m looking for a little public insight on this as to what I should do.

  • Is there something that people are looking for that they need coded?
  • Is there features in an application that you want but haven’t been able to find yet?
  • Is there a server feature that you wish would just come out already?

Let me know folks. I’m looking for some great ideas for something that I’m really looking forward to doing. Remember, this isn’t limited to BitTorrent’s protocol as P2P encompasses a wide range of applications and features. Shoot and I’ll see what ideas I like most.

Hard Counter Expand

What the hey, talk some shit about Starcraft games.

I got rolled by a terran and HE says “gg”, Rahhhh!…, i hate that shit. because he didnt even scout me, it’s like he is just playing by himself… how could that be a gg? so I told him off, and left.

So then I played a zerg on scrap station, which was more interactive. He opened with roaches and I scouted the den, so I put down a robo, got some stalkers and my immortal barely popped in time to finish the roaches off, they prolly took out 6-10 probes too. I also put down a stargate when my immortal was building. He could have scouted it with his roaches, I am unsure if he saw it.

He also took out my cybernetics core, my warpgate research wasn’t ready.

So then I built an addition immortal, and eventually went straight to his base with a warp prism with 2 immortals, and a +1 air attack VoidBANKS. This little cost effective troop took out his main with ease, I had to target down the spire before it popped.

Meanwhile at his expo, he manages to get up the hydralisk den, I get there in time to kill a couple queens, he still has a good drone count.

I set up my expo. and put down my cybernetics core (lol bad), put down like 6 gateways and researched warpgates, I had no ground army so I harassed with the void to keep him at his base.

So then it works out and I crushed his hydra push with speed zealots. Then I continued to harass with a void, got dark templar and pushed with the combined zealots and it caught him off guard!

Summary: Force hydras and expand, speedlots > slow hydras, next tech you choose is the game breaker.

I think you need to go stargate against zerg, especially one who knows how to use banelings. they just dominate ground so much.

Side note: added captcha comments so bots don’t post comments.

The Passion For Strategy

Something clicks when I think about starcraft strategies.

Thinking of different methods, builds, ideas actually takes a lot of energy. You don’t even notice how much energy it takes because thinking about it and figuring things out is something we enjoy. But we can apply the same energy in other methods…

It clicks when I’m so involved in thought, and I just think “dam, I shouldn’t be thinking this hard about a computer game… I should be spending this energy thinking about how to *blank*”.

Swap in *blank* for something that is real world applicable and constructive. I’m talkin’ BUSINESS, real world economy, and bank rolls. You spend endless amounts of energy to counter roaches in mutas, and when you do, you crush hard and feel good. but that’s it. Making money is 95 percent mental. So if you devise a business plan, strategy, and execute, you get money. So then I gotta ask myself what is a better game, starcraft or RL business? And I think it is RL business because of the changes you see, skills you develop, and people you affect.

But we weren’t raised or taught to think about solving problems in RL and profiting. So it’s not natural to us. I believe it is natural and we have unlearnt it. We are taught to be factory workers, take orders, and enjoy ourselves elsewhere.

Since the age of 8 we have had that passionate side of us that enjoys using our superior mental capabilities for rewards… wasted on video games that bring nothing on the side of enjoyment.

The idea that you could have enjoyment, mental engagement, and money from the same activity is absolutely possible. But we were systematically taught this was unattainable, not for us, or crazy.

That’s Halo, don’t worry

My mind is fried. Seriously. It is so far up my own ass at this moment that I think I need to step back and discuss something a little more light hearted than coding. Surely if you follow SC2 pro gaming in the least you heard about Huk doing an extraordinary rush against Select at MLG in Washington D.C. (I’ll apologise for the video’s voice-over. I linked the video with my sound off). I mean, it sort of is the latest little meme surrounding the scene right now. What you may not be familiar with is how it is being perceived by the fans and other players. I personally want to touch on what Idra has said in response, “It was absolutely idiotic.” And I agree with him.

I mean, Idra is sort of infamous already for his “trollish” attitude towards other players and we’ve all come to terms with it by now. But this comment of his sparked a minor debate between me and other individuals over at Reddit. So why do I agree with him?

Gimmicky/flashy play is not interesting to watch in a competitive environment. It certainly has its place but Huk essentially threw the game with that tech build. Why is it entertaining to observe someone, in all intents and purposes, give up? Sure, there was an off chance that the Mothership pulled through and swung the game in his favour but what were the chances? Incredibly low if you can assume that Select wasn’t going to do something equally stupid.

I equate the scenario to a professional sports team marching onto the field and doing a dance while one player attempts to sneak the puck/ball behind the other team’s defence. Sure, if you manage to completely stun the opponent the strategy might work, but there’s a very slim chance of that occurring.

His choice to go so far off the groomed path didn’t provide any form of innovation to the competitive scene. People speak of the event now as if it was revolutionary; something that changed the way professionals will view the match-up in games to come. Will it? Fuck no! This will be a softly spoken event in a month’s time only being revisited for a short period when they match up against each other again later.

Like I said previously, I took part in a debate on Reddit regarding this topic and seemed to be on the minority. What do you think?

Who is your hero? Part II

“Challenge something that is way beyond your abilities.”
null
A quote from one of my favourite mangaka, Takehiko Inoue. He is probably known best for his basketball comics, but has also spent around the last twelve years drawing the hugely popular Vagabond series. It’s a fictionalized telling of the life of legendary swordsman Miyamoto Musashi. The series is due to wrap up in about a year, but with big projects there are often delays.

To me, Takehiko represents someone who has dedicated his life to drawing. Despite being one of the world’s best, he still struggles with constant deadlines, all-nighters, and getting his characters to act the way they should when he puts them down on paper. According to him, the quality of his work depends on the “purity of his soul” when he sits down to draw; he is most successful when his mind is relaxed and able to express itself clearly. His art is both inspiring and entertaining.

Be Thankful

I went to this guys church, a man who travels Canada and spreads the good word. He doesn’t ask for money on his TV shows that air every morning. He doesn’t charge admission for his entertaining and engaging sermons. He sells DVD’s with his messages in them, available at his shows or sermons. He’s been doing this for about 7 years.

He told us that if you want to be truly happy, you must develop an attitude of gratitude.

He told us that being thankful is a learned feeling. You can learn to feel thankful for everything you have, everything that’s around you.

There is also the Law of Reciprocation. If someone does something good for me, I feel obligated to do something good for them.

Being in a constant attitude of gratitude, you will naturally feel the need to give back, or to contribute.

The Attitude of Gratitude and the Law of Reciprocation combination is the most powerful force in the world. It will absolutely consume your life as it does with anyone who is authentically successful.

You can even meditate and focus on simply feeling this feeling of gratitude without thinking about anything specific. Take short pauses throughout the day to feel thankful.

Be thankful, and become unstoppable.

Who is your hero?

It’s said that if you want to become great at something, you have to put your whole life into it.

When I find myself being lazy and wasting time, my heroes become a source of inspiration that helps me get back in gear.

Bruce Lee is one of my idols for representing what a person can achieve through a lifetime of practice. Not only did he strive for physical and technical perfection through continual training, but he sought to rid himself of any mental blocks that could weaken him as a martial artist.

As promised…

Now on my introduction I promised I’d be posting code samples of my work through school to help out students and I’m here to deliver. I’ve done a few things but this one I’m actually sort of proud of. Hardcore coders can find little issues with it (such as error correction) but it works very well. The code posted below is a custom script that you can use (almost) to replace bash on a linux system. I’ve dubbed it GShell and it should be able to handle almost all commands save the “cd” command. It currently doesn’t have any form of memory but we’ll be adding that in a future release.

What I really want to highlight here is the use of the pipe() function which allows us to pipe output from child processes to the parent in/out streams. I fought this one for a good while before correcting my error to get a working release. Take a look and let me know what you think.


#include
#include
#include //strcmp(), strtok(), strlen()
#include //fork(), execvp(), pipe(), dup2()
#include //wait()
//
const int MAX_SIZE = 255; //Maximum Size of call string currently allowed
const int MAX_ARGS = 8; //We allow up to 8 arguements
//
void main(int argc, char* argv[])
{
//Loop infinitely
while(1)
{
//Variables
char input_buffer[MAX_SIZE]; //Buffer for user input to our command line
char *args[MAX_ARGS+1]; //The arguments we pass to the new program. Allow 1 array for NULL
char *command; //String pointing to input buffer section holding command to execute
char *user_input; //String to hold input
//
int arg_count = 0; //Number of args provided
int ampersand = 0; //Is there an ampersand?
int c_status,status; //Status values for forking
//
//Execution
printf("GShell$ "); //Basic output
fflush(stdout); //Flush out output
//
//Read from input
fgets(input_buffer,MAX_SIZE,stdin); //Get input from stdin up to MAX_SIZE bytes and place in input_buffer
//
if (feof(stdin)) {
printf("Quitting... Goodbye\n");
exit(0);
}
//
//fgets grabs \n as well. We need to remove it and place NULL in there
if (input_buffer[0] != '\n') { //Simply repeat if we receive a blank input
user_input = input_buffer;
user_input[strlen(user_input)-1] = '\0'; //Terminate with a null
//
//We need to tokenize the input now to retrieve multiple arguments
//First grab the command name
char* token;
token = strtok(user_input," ");
//
//Quit when command is received
if ((strcmp(token,"exit") == 0) || (strcmp(token,"quit") == 0) || (strcmp(token,"logout") == 0)) {
printf("\nQuitting... Goodbye\n");
exit(0);
}
else { //This creates a token
command = token;
args[arg_count] = token;
arg_count++;
}
//
while (arg_count < MAX_ARGS) { //Repeat until we have max arguments or until quit with "break" token = strtok(NULL," "); //Continues to tokenize // //If there isn't any further tokens if (token == NULL || arg_count == MAX_ARGS+1) { args[arg_count] = NULL; break; } else if (strcmp(token,"&") == 0) { ampersand = 1; //Advise that we've detected the ampersand } else { args[arg_count] = token; arg_count++; } } // // We're done tokenizing the input. Time to get to the interesting stuff //Create pipe to fetch our outputs from process int pipeval[2], err; // if (pipe(pipeval) == -1) { perror("pipe error"); exit(1); } char* val[1024]; //First attempt a fork c_status = fork(); // if (c_status > 0) {
if (ampersand == 0) {
wait(&status);
}
}
else if (c_status == 0) {
//Child process
close(pipeval[0]);
dup2(pipeval[1],STDIN_FILENO);
close(pipeval[1]);
//
execvp(command,args);
_exit(1);
}
else {
printf("Fork Error.\n");
exit(1);
}
}
}
return;
}

*Crunch crunch* … who is this?

Willie is what I used to be called, so I’m going to go with that.

My to-do list is all about writing, drawing and meditating.

I think the highest forms of art put you in another world, and I want to attain that level in both my writing and drawing.

My meditation is directed toward self-discovery.

I’ll talk more about these things later. It is time to sleep well… or else.