KitMo — Free UI images for iPhone Developers

July 8th, 2010

I have started a repo on github for images that I have created for iPhone development github called KitMo.  Currently there are only a couple of UIButton images but I will continue to add images as I create them for my apps.

KitMo

SteamPipe on GitHub

March 17th, 2010

I have added my code for my steam community api up on GitHub at the following url:

http://github.com/mcgregok/SteamPipe

The code is a messy as I haven’t properly refactored all the xml processing but the basic functionality is there.  Feel free to take a look.

The Joys of Coding

March 8th, 2010

One of the most interesting (and maybe bad) choices I have made for a portfolio project was my steam community API that I made.  The project itself was fun to work on but since I have not maintained it slowly has broken down since it manually parses html and xml files since no formal steam api is offered.  While the xml functionality has been solid it seems that some of the html pages have changed up enough to break some major features in my demo.

I went ahead and made a quick fix to the code to fix the site and have noticed that xml data has been added for some of the features since I coded this project.  I plan to alter the functionality to use the more stable xml files in the future but it might be a ways off still.  Feel free to report any bugs to me for this project that you might notice.

Adventures in Programming: Steam API

August 24th, 2009

I am rolling out my most recent and largest project in for my portfolio yet, a 3rd party Steam interface.  Take a look here.

I created the project based around a Steam Community API class that I have written to add some XML examples to my portfolio.  The steam class uses the built in PHP simpleXML and xPath functionality to parse various XML and HTML pages and return relevant information for a given steam user.  The Steam API class currently supports profile information, purchased games, friends, and achievements.

If there is any interest, I will add proper PHPDoc and make the Steam API avalible to the public.  If the demand is great enough I may continue to add more functionality as well.

Rss Aggregator is Live

August 4th, 2009

I have finished up a new code sample for my portfolio this week.  It is a web based RSS Reader.

The reason I made this project was to solve the problem that I hate all the existing ones I have tried to use.  I always get caught up on zeroing out the number of unread stories instead of actually reading them.  I also prefer having the ability to read and skim over the stories than clicking on a title to load the body of the story.  Thankfully as a developer I can work around this issues by writing my own software.   A special thanks goes out to jQuery UI and MagpieRSS for making this project so easy to pull off.

Feel free to take a look at the example that I have on my site here and let me know what you think.

Q2 Award

July 17th, 2009

Today at work I was awarded the ‘Ninja of the quarter award’ (My work team mascot is Ninjas) for my contributions to our platform at work last quarter.  I don’t normally post about work related things here, but it is an honor to be the first developer on our team to receive the award.  I am very fortunate to work with a group of strong, forward-thinking developers who are equally worthy of receiving the award as well.

The changes that our product has gone through in the past two and a half years that I have been working for this company are pretty amazing.  It has changed from a static web app into a full-blown, rich JavaScript experience.  I have learned a lot on the way, and I now know more about character/stream encoding that I wanted to…Kudos to the entire team for the hard work they put in every day.

-Blurry iPhone photo below

Sad Story About a Bike

July 3rd, 2009

Right after I started High School my bike was stolen.  I didn’t leave it out in the yard or have it out in the open asking to be stolen.  I rode it often and always stored it away in the garage when I was done riding it.  Even taking this precaution and growing up in a safe suburb was not enough to save my bike.  Someone had the nerve to go into the garage and take it from me.

I wasn’t overly upset about the loss of my bike; after all, this was not the first time that I had been stolen from either.  It was however, the first time I was really old enough to begin thinking about the sense of entitlement that thieves must have to steal things that do not belong to them.  It made me think about people much more cynically than I did before.  Who are these these people?  Why do they think they have the right to take my bike?  I asked myself these questions but never found the answers that satisfied me.

This story does have a happy ending however. Now that I am a twenty-five-year-old young man with a good career path ahead of me,  I can afford a very nice replacement (and a lock).  Meet my new Bike:

It is a Specialized Hardrock Sport mountain bike.  I rode it home from the bike shop and around the neighborhood and so far am loving it. I can’t say I remember the last time that my legs have burned this much, but it has been over a year and a half since I last hit the gym so that is to be expected I guess.

I can now close the tragic chapter of the stolen bike from my youth.  Let there be much celebration and cycling!

Meebo JavaScript Puzzler

June 30th, 2009

*If you haven’t already viewed the solution on the second link, take a look at the first one and give the puzzle a try!*

I was recently featured as a correct respondent for the most recent meebo puzzler in this post the meebo blog.

Out of 300 respondents, fewer than half of them submited the correct answer.  I would have assumed the results to be higher overall since the reason why I started reading the meebo blog to begin with was to pick up interesting javascript tips and tricks that they would post from time to time.  I guess not everyone who reads the blog enjoys the finer points and elegant code that can be be create by the language though.  I know my eyes were only really opened for the first time two years ago when I first learned about JSON.  I hope this puzzler has inspired programmers to learn more about JavaScript!

Incoming: Queso Review Entries

June 29th, 2009

I find it very hard to focus my efforts writing only about very technical subjects.  I have five drafts of blog posts that I have been ignoring since last August because the amount fact checking and time I like to spend on a  (somewhat) quality post almost almost makes Blogging feel like work.  Because I do want to keep content coming, I am planning on expanding the scope of my Blahog beyond technical subjects and start including other types of posts as well.

Queso is one of my favorite snack foods of all time.  While I may not be any more qualified than the next guy to judge its quality, I have always played around with the idea of blogging queso reviews.   For me, it is easy to qualify what makes a good bowl of queso.  I like to use the following Metrics:

Flavor  - I know this sounds a little obvious, but I am planning on taking this beyond the realm of if it tastes good or not.  The key to flavor is in the name — Cheese.  A good queso should have a stronger cheese flavor than anything else.  I have had a number of bowls of queso that had an overpowering meat or bean flavor. These both would receive a poor rating for masking the true essence of a clean cheese taste that defines the delicious appetizer.

Consistency -  Eating your chips and queso should be an enjoyable experience and should not feel like work.  When queso is too watery it feels more like a race between gravity and the person trying to enjoy their food.  If it is too solid, it often makes me seems like it has been sitting out.  Who wants feel like they are eating old queso?  NOBODY

I have found the best test for queso consistency is the “Chip 2 Flip Test” (TM).  To execute this daft maneuver, you need only to follow these simple steps:

1)  Pick your favorite chip from the bowl/bag.
2)  Insert chip into queso with questionable consistancy.
3)  Remove chip from questionable queso.
4)  If the cheese is moving ever so slightly moving down the chip and not staying still on the chip then things are looking promising.
5)  Flip the chip over once (180 degrees people).  If the cheese has stopped running, you are golden if not continue to step 6.
6)  Flip the chip over once more.  If you cheese has not settled then you got watered down queso…Your night and by extension everyone else’s IS RUINED!

Quantity / Value -  When ordering a bowl of queso you need only ask yourself one simple question:  Could I enjoy a bowl of soup in this same sized container?  If the bowl is too small to leave you satisfied if it was filled with delicious potato soup instead of delicious liquid cheese then chances are that your $5 to $8 are better spent somewhere else.

Be on the look out for my review of the queso from The Flying Saucer (Addison) later this week!

Adventures in Programming: GBA Homebrew

October 19th, 2008

I was clearing out some old files from my old laptop earlier today and discovered some of my old game programming work that I did for fun during college.  The most ambitious of the projects was a console based roguelike game that was one of my finer examples of organized code, but my personal favorite projects where some of the hackish Game Boy Advance homebrew programs that I worked on.

GBA Pong

gba homebrew

My first project was mainly just to wrap my head around the concept of developing for a device without any sort of sdk and only a technical spec showing what memory addresses related to different functions.  It took me a very long time to be comfortable enough to get into GBA development, but thankfully I was able to learn a lot of the basic environment set up  needed from this tutorial.

The gameplay is simple but I was pretty happy with how this turned out overall.  First to five points wins and pressing B will restart the game when it is over.

Project Good Game

Project Good GameProject Good Game was my first attempt to create something a little bit more complex.  While it never made it far enough to have a visual pass, the technology that controlled the level loading was by far my greatest technical achievement on the system.

While there are a few ways to manage memory on the GBA, the one that provided the greatest number of layers only gave the developer slightly more than one screens worth of memory per layer.  To get around this, PGG dynamically loads chunks of the level into the memory as needed.  This means the only real limit to the size of the map is the storage size of the cartridge.

Ok so It is not that high-tech, but the method has been used in professionally released games for the GBA so I know the underlying idea is sound.  The game is far from finished and is more of a basic tech demo than anything else, but I still think that it is a cool thing to show off to people who are interested in game development.

Affine Sprites Demo

AFFINE spritesAs I worked on Project Good Game, I often created various testbeds to test new functionality that I wanted to add to the game.  Most of my information of advanced hardware knowledge was coming from this site.

This demo shows off some of the built in hardware sprite functionality including: scaling, rotation, movement, and mosaic blurring.  Nothing too special about it, but I always thought it was interesting hands-on way to view some of the limitations that developers have worked around when creating larger sprite characters on the system.

Download

I have compressed the above demos for download here:

GBA Demos

They should run fine either on an emulator or on the native hardware itself.  Enjoy!