This clip has been hitting the tubes pretty hard, so I thought I'd post it mainly because of the spinning beach ball of doom cameo.
Wednesday, May 30, 2007
Tuesday, May 29, 2007
Top 10: Favorite things about Visual Studio .NET
10. Regions/Outlining - the IDE supports the ability to collapse code into organized segments that can later be expanded, allowing for simple transition from segments of code. The region component is also very powerful since it allows you to place "comments" in the region header allowing your code to collapsed into very readable segments.
9. Designer - with the introduction of .NET, came the coming of the WinForm and a powerful support tool was born. The Designer is a simple drag and drop interface that allows you to easily customize GUI of an application in a few moments. With the ability to utilize your own custom GUI controls, this is a must have for any GUI developer working in .NET.
8. Breakpoint Conditions - I've dealt with other IDE's that have this feature, basically it allows to enable a breakpoint on a line when a certain condition is met. The beauty of its implementation in Visual Studio is that its extremely versatile and can even be manipulated through the breakpoint properties menu.
7. Call Stack - this is a must have for any IDE, enough said.
6. Locals Window - ever wanted to know the state of every object in your application? Well with the locals window its a matter of a simple glance. This window can also help you determine when variables go out of scope... but you knew that already now didn't you?
5. Command Window - every wanted to execute an additional command or change a setting before executing the next line of code. With the command window you can, its a great way to quickly test out those "I wonder what would happen if I ... " situations without having to constantly having to code new hook instructions. Need a flag reset to check a data structure integrity? Meet your new best friend.
4. Task List - one of the most commonly under used components in the IDE, this section is great for leaving yourself reminders to complete/fix segments of code, you can even leave a shortcut to the line you want to update.
3. Bookmarks - personally I don't think any advanced text editor should be without a bookmarking system. This is a great way to leave often visited code sections just a few keystrokes away.
2. Breakpoint - how anyone survives in the software development world with out this functionality I'll never understand. This is one of the most critical tools used in any programming environment and this is no exception.
1. Intellisense - this feature of Visual Studio, just made my #1, but with all the time it has saved me, I hate coding without it or something like it. Intellisense is a great feature of IDE since, it tries to "sense" what code you need to type next. Its a fast way to see what kind of methods are available from a class or what kind of overloaded methods can be used.
Monday, May 28, 2007
XNA and iTunes 7.1: A loaderlock was detected
Friday, May 25, 2007
Internet Tech Support
Continuing with this random theme, here is another golden gem of geek humor. By the by I've actually work tech support and I'd have to say, this is not far from the the truth. Who am I kidding I've pretty much seen this happen, funny to watch not to experience.
Thursday, May 24, 2007
What happens when you have a geek that's an animator
It looks like we may have a new theme for the week (Random Geek Videos), I saw this video and just loved, it check it out. Firefox... you fought valiantly.
Wednesday, May 23, 2007
Microsoft "We Share Your Pain (WSYP)" Program
I was surfing the tubes, as the kids call them these days and came across this video by Microsoft talking about their new initiative the WSYP. The "We Share You Pain" concept is just brilliant, also by the by don't forget this is all in good humor(That means its a joke), so enjoy.
Tuesday, May 22, 2007
Quick Tip: Search for strings within strings
Here are a few examples:
VB.NET
Dim nStr as string = "what do you want now?"
'Check for "what"
if nStr.IndexOf("what")<>-1 Then
'You've got a "what" in your string
end if
C#
string nStr="what do you want now?"
//Check for "what"
if (nStr.IndexOf("what")!=-1)
{
//You've got a "what" in your string
}
Monday, May 21, 2007
Win32: Grab a snapshot of current processes
In the good old days before managed code their was the Win32 API. The grandfather of pretty much all of Microsoft's modern libraries. From this API, you could do just about anything in Windows, which is part of the problem Microsoft faces in its current generation of operation systems, but thats a story for another time. Today I'm going to go over a quick way to capture a snapshot of all the running processes on the system. Using the CreateToolhelp32Snapshot() command.
Note: all code shown was developed in Visual Studio 2005 .NET, so no complaining about not working on the newer IDEs.Note:The CheckErrorMessages() call is a custom call that does a lookup for the GetLastError() reference number to lookup its readable error state, I'll so the routine another time.
Step 1: The includes: in order to use the CreateToolhelp32Snapshot command you need to include the following
#include <tlhelp32.h>
Simple huh?
Step 2: The call: you'll probably want to reference the MSDN definition of CreateToolhelp32Snapshot() before you try this out.The long and short of it is that it takes 2 parameters the first is a DWORD flag that represents what portions of the system get included in the snapshot and the other is the process id of process to be in the snapshot (Check MSDN for more info)
//Create a snapshot to all of the processes in the system
HANDLE hSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if (hSnap==INVALID_HANDLE_VALUE){
//Display proper error message and exit application
if ((CheckErrorMessages(GetLastError())==0) && (DEBUGPROG==1)){
CloseHandle(hSnap);
return -1;
}
}
Step 3: Getting the first process entry: Basically I'm creating a process entry data structure which will contain all the process information grabbed by CreateToolhelp32Snapshot(). Since there are more than likely quite a few process running on the system you'll need to traverse through the process list, but for now we'll start with the first one
//Setup a process entry and set the size of the structure before using it
PROCESSENTRY32 peEntry;
peEntry.dwSize=sizeof(PROCESSENTRY32);
//Get information about the first process
DWORD dwResult=Process32First(hSnap,&peEntry);
//Check for failure to grab first process
if (dwResult==FALSE){
if ((CheckErrorMessages(GetLastError())==0) && (DEBUGPROG==1)){
_tprintf(_TEXT("Failed to get first process\n"));
}
}
Step 4: Traverse the list of processes: this step should be pretty straightforward but I'll go over it anyway for clarity. you've got the information for the first process in the snapshot list now you need to go through the rest (See the MSDN entry for the process entry structure to see what information you can pull.)
while (dwResult==TRUE){
//Display General Process information
_tprintf(_TEXT("\nProcess Name: %s"),peEntry.szExeFile);
_tprintf(_TEXT("Process ID: %d\n"),peEntry.th32ProcessID);
_tprintf(_TEXT("Thread Count: %d\n"),peEntry.cntThreads);
_tprintf(_TEXT("Usage Count: %d\n"),peEntry.cntUsage);
//...any thing else you want to display
//Go to the next process in the process list
dwResult=Process32Next(hSnap,&peEntry);
}
//Clean up the snapshot your done
CloseHandle(hSnap);Note: Don't forget to cleanup your handles when your done
Sunday, May 20, 2007
Halo 3 Beta: Webcomic round up
Saturday, May 19, 2007
Starcraft 2 Annouced
Today Blizzard announced to the world that StarCraft 2 is in the works and had a few videos to show us (See above for CG announcement trailer). I've been waiting for this game for a while so I'm pretty pumped about it. However the big question will be can it live up to the original.
Halo 3: Response to " Stuff that needs fixin' "
"Polish the graphics" - This seems to be the biggest complaint among people in general, this is normally followed by the comment is "its a shinier Halo 2" or "its Halo 2.5". Granted the graphics in the Beta aren't the same as the graphics we saw in the original teaser trailer for Halo 3 but it doesn't mean we won't (Again its not a final demo, its a beta). Second of all its not like the beta looks bad, its not better than Gears of War but shouldn't people be wondering more about the smoothness of the game at this stage? When its all said and done the game play will reign supreme and Bungie doesn't need to reinvent the wheel for this one.
"Give the needler a make over" - I actually kind of agree with this part the needler is an extremely under used weapon in the Halo world. However, I'm not convinced that its due to the look of the weapon, its more about how it works. When using any weapon in Halo there a few fundamental things the player is concerned about targeting and damage. The needler is flawed in the latter portion, it does a good amount of damage now but its slow meaning that the damage doesn't really take place until the needles explode which gives your opponent the chance take you down rather quickly if you don't strafe properly. The other portion of the weapon that has always bothered me was that it constantly gave away your position, there are other weapons that do this too (sniper rifle, rocket launcher, etc...) but those are much more powerful and do direct damage on contact. If anything give the person a medal for taking people out with a needler, you already give one out for the sniper rifle and the shot gun.
"Push to talk is stupid" - I completely agree with this, either put this on an easier to access button or make it so that this can be toggled or something. Good call.
"Make the AR just a little more powerful" - The Assault Rifle has been one of my personal favorite weapons from the original Halo, which means take this response with a grain of fanboy salt. I really like the assault rifles return to the series but I do agree that there does seem to be a problem with the range, when shooting at targets from a longer range the bullets do seem to disappear. I don't expect the assault rifle to always hit from longer range but short burst are suppose to help (where the hell is the shield flicker), to me this seem more like a bug than anything so I do hope that does get fixed. As for the comment about the assault rifle not being a good medium range weapon, I'd say thats a gray area, I think the ability to fight in medium range with the assault rifle has more to do with tactics then the weapon. Sure you may not want to charge at some one with a carbine in an open field but I would definitely try to use cover objects to make them take harder shots and close the gap; the assault rifle isn't the most powerful medium range weapon but it can get the job done. Granted if your playing against a better player there isn't much you can do, but I don't think that has so much to do with the weapon than the skill level of the player.
"Sometimes you need to start with a BR" - this more a default start weapon argument than anything but the battle rifle would be an ideal weapon for most of the maps in the beta. However, different weapon types are plentiful and spread out through the map again I think this is more a tactics issue than anything, but I do agree that getting hammered by a Spartan Laser right when you spawn in is rather annoying.
"Grenades need more oomph - AKA need to kill stuff" - this is another point that I completely agree with, the reducing the power of the grenade in Halo 2 really bothered me since it required you to pretty much tag the opponent with a grenade to get the kill. I'm sorry grenades aren't precise weapons so why do I have to put it at someones feet to make them pay. However, in turn I've just improved my grenade placement but that still doesn't mean that this shouldn't be fixed.
"Guns are suppose to sound powerful" - um I tried to follow this reasoning but it didn't quite add up to me, for the most part the sounds are pretty good, am I missing something here?
"Double your fun" -this statement about adding more dual wielding weapons to the map is kind of an exaggeration in the sense that the maps aren't balanced with different types of weapons. I personally think that High Ground and Valhalla are pretty well balanced in the weapon arena. These two map facilitate the game play style of the map in other words if I were playing Halo 2 on Beaver Creek my weapon choices would be different than for Coagulation.This is more an opinion thing than anything but I don't necessarily think that adding more dual weldable weapons will fix the problem. If you've noticed I didn't mention the map snowbound basically since this is the map I think needs some tweaking, there are plenty of weapons on the map overall but not all are useful in this hybrid map that encourages both long and short distance combat tactics.
"Show the bigger picture" - I liked the stats feature on Live when Halo 2 came out it helped figure out your general weaknesses as a player but for the non hardcore this is just a nice to have and I personally don't think it enhances game play. Though it would be nice to have at least the same stats in Halo 2 in Halo 3 the beta has a much shorter version of the carnage report (post game player stats). I'm pretty sure this isn't a need to be fixed thing but more of will be there in the final version and these are basic stats for the beta.
"Fix the King of the Hill: We Hate the Wall" - Haven't played king of the hill yet so I won't comment on this issue.
"Hide ranks in matchmaking" - rank numbers were a nice feature in Halo 2 to show a persons game play experience and overall of how good they were, in the halo 3 beta they take it a step farther so you know some ones overall experience vs their experience for a specific game play type rumble pit, team slayer, and team skirmish. Personally I think that the matchmaking ranks work as well as they can for the system and does give the other players a ball park idea of your skill level. I don't thing hiding the ranks will encourage less cheating, cheating is a constant problem in multiplayer games but I don't blame this on the rank numbers.
"Get rid of the recoil in the human sniper" - alright the first two games allowed for seamless sniping fun but that doesn't mean sniper rifles don't have recoil, to me this complaint seems kind of ill conceived sniper rifles normally aren't automatic and usually designed to kill within on shot. So adding recoil makes the weapon feel a bit more realistic, however the changes to the weapon show that Bungie may be trying to change the game play to focus more on mid and short range combat. Personally I don't think adding recoil is going to change the odds of you getting sniped but I do think you'll see less and less dominate snipers.
"Rockets blow $#!% up ... right?" - the trend of reducing the effectiveness of splash damage weapons seems to be a trend for the Halo series which I really wish would stop. That being said the rocket launcher does have a smaller splash damage area than previous game but its not so small that you always need to shoot at a persons foot. Personally I think if your trying to balance out a game by reducing the rocket launcher damage, make it a harder weapon to obtain. Make the weapon respawn time long, shorten the clip, anything except making the weapon feel weak. So I agree with the sentiment but the whole sound complaint is still leaving me scratching my head.
"Better solution than a mixed party solution" - if you've been reading the blog you know I'm pretty annoyed by the response time of match making in the beta, so I'm going to have to agree with this statement. I'm not sure if that's causing all of the match making delays but sure I'll bit and complain about it until someone tells me otherwise.
"Don't mess with Killtacular and Running Riot" - these are accomplishments, so if they take longer to obtain then tough. The accomplishments are still in the game they're just harder to get, this complaint comes off as whiny to me, its Bungie's call; so get better.
Friday, May 18, 2007
Twittling around: Matchmaking waits and XNA
In the mean time I've been putting in some time with the XNA framework that Microsoft released. For those of you wondering what the hell XNA is, its a development framework that is specifically designed to aid in the development of computer games. The reasoning behind this is simple it promotes two big platforms for Microsoft the Xbox 360 and the Windows operating system family. The framework is pretty new and is still maturing but seems to be quite promising. Here is a link to a decent tutorial site that will help you go through some of the XNA framework (Check out the link here). There is also the Microsoft site on XNA which makes a great reference to the frameworks class reference and options (Link here).
Thursday, May 17, 2007
Halo 3 Beta: First Impressions
Matchmaking: Kind of slow and some times hangs in the lobby screen, at least in my experience. The interface is a bit more complicated than in Halo 2's interface but I think it works well.
Rumble Pit: Maps are kind of big for the 8 player matches, which means there are times when you'll be running around for a while for a target. Since there are only three maps I won't complain too much but a smaller map would make for more interesting rumble pits.
Team Slayer: Awesome, feels smooth and faster than Halo 2. This is where I think the beta really shines. The only problem you have during these matches that there are some balance issues with the weapons, you'll have to experience it to understand.
Well those are my first positive impressions I'm going back to play some more beta-ie goodness
Wednesday, May 16, 2007
Stop clogging the tubes: Halo 3 Beta Edition
Halo 3 Beta: The Crackdown Delay
Tuesday, May 15, 2007
Red vs Blue E97
Keeping up with this weeks Halo 3 Beta theme, yes I know its already getting more press on the tubes than it really deserves but bare with me. Here is a new episode of Red Vs Blue, its a good one.
Monday, May 14, 2007
Rockets away!
Sunday, May 13, 2007
Halo 3 Beta: The Interviews
Joystiq: Frank O'ConnorInterview
Kotaku: San Francisco Launch Event
Kotaku: New York Launch Event Q & A
Saturday, May 12, 2007
Web based photo editing: Phixr

Every once in a while you find a neat little Web 2.0 site that make you go that's kind of cool. Phixr is one of those site, it not photshop replacement but it offers some cool little photo editing options that include croping, format conversion, and of course special effects. Here is a test photo I did while I was playing around with it.
Check it out for yourself here.
Friday, May 11, 2007
It's time for another list: My Top 10 Mac Applications
- Quicksilver - I may have recently discovered this application but this almost indispensable utility has been winning over more and more of the Mac faithful.
- Firefox - Safari is nice at times but I live in a Firefox extension world, one of the few open source projects thats shown its ready for prime time.
- iTerm - Tabbed terminals, enough said
- Adium - Think Gaim (Pidgin) except mac-a-fied and just as awesome.
- VLC - I really don't go to any platform with out this swiss army knife of codecs, this in my opinion is one of better media players out there.
- TextWrangler - When TextEdit doesn't cut it there is always TextWrangler
- Desktop Manager - Until Spaces arrives in Leopard, I'd recommending this solid virtual desktop manager. Hell it even allows you bring up a run (Application) box, how cool is that?
- Fugu - You may die if you eat it but if you need a nice GUI that does FTP and SSH. This nonlethal version is a great little application that just gets the job done.
- MenuMeters - When you just want to know what's going on. This little system monitoring utility is a must have for the geek in you that loves to watch those stats.
- Open Office - When you have no words for Word, fire up the open source alternative which is quickly becoming more robust and powerful as it progresses. Its not quite the perfect replacement for Microsoft's Office but its damn close.
Thursday, May 10, 2007
Vista Development Starters Round up
Intro XAML
Intro to Windows Workflow Foundation
Intro Tutorial Windows Presentation Foundation
Intro to Windows Communication Foundation
And of course there is good old MSDN
Wednesday, May 9, 2007
Quicksilver: Use Those Triggers
Now that I've had a bit more time to get use Quicksilver, I've learned the power of triggers. You may ask your self what are triggers and why do you care? Well to answer the second question first because its cool and once you've got it down you'll wonder how you ever lived with out it. As for the first question, triggers are a form of Quicksilver (macro/script) that can be triggered at anytime by Quicksilver by a simple key combination. So let's say I want to control iTunes without having to constantly switching back and forth to it. You can create a trigger that utilizes an iTunes control plug-in and map it to a specific key combination. Still with me? Well instead of putting my own tutorial together, which I will do at some point I'll point you to the one I used. Props go to the Digg community for finding this post (iTunes with Quicksilver).
Tuesday, May 8, 2007
The Beauty of Quicksilver
There is also a great into post from lifehacker on how to get started with Quicksilver
Monday, May 7, 2007
Gentoo 2007
Sunday, May 6, 2007
The multi-platform world we live in
Now technically that previous statement isn't true, we still develop for computers their just significantly smaller, so basically we've greatly expanded what might still be considered a computer. Anyone still with me on that ... didn't think so with the advent of cell phones, portable music players, personal GPS devices, and the ever growing list of technologies that are becoming a staple in our lives, its simple to see that the more things change the more they stay the same.
From a developer stand point creating so many different versions of a "computer" would be nightmarish to develop a sound software back end that would allow developers from all over to develop software for one version of hardware to another. Hence came the advent of cross platform languages and software development frameworks/libraries that took the pain out of developing for specific platforms.
Fast forward to the present development world where things such as Java, .NET, and a long list of other solutions have arisen that helps a modern day programmer take advantage of almost any "computer" like devices functionality without having to re-invent the wheel at every turn. It is truly remarkable time to be in the world of development, the question is do we really gain anything by having these powerful tools do all the heavy lifting for us?
Saturday, May 5, 2007
Bug Masher Tip : The Assert Macro
A Few Notes:
- The Assert instruction is only built into an application that is meant for debug. In other words should you build your exe as a release version your assert won't get built into the binary.
- The Assert instruction is meant to test logical errors, basically its meant for debugging run time errors
void checkString(LPSTR lpsParam){
//Checks to make sure the parameter isn't null
Assert(lpsParam!=NULL);
...
}
Check out the MSDN article here for a more detailed explanation.
Friday, May 4, 2007
Pidigin 2.0 (Gaim)
Quick Tip: Firefox
If you want more details check out the lifehacker post here.
Thursday, May 3, 2007
Strap on some wings and make us proud
Every now and then we just engineer something cool, above is a video of what I can only describe as a jet man. Basically a man straps some wings with engines to himself and flies around. Now he can take off from the ground so he does it sky diving style and lands much the same way, with a parachute. None the less the experience looks fun and apparently there are other wing models in the works. Check out the site here.