i work with computers

It’s been on my mind a lot more as of late, “I’ve always wanted to develop games, but, is it a possible business venture in West Michigan?”  And when I think about it, I don’t want to be a company that pumps out BeJeweled clones, or, 32 card-games in one.  I’d be more interested in games on the scale of Oblivion, Grand Theft Auto or Command and Conquer.  I’m looking to make blockbuster-quality games.  The main drawback? I have fairly little experience developing games; I mean, I made one back in college on a team of three and I loved it! And it wasn’t a small feat, it had complex collision detection, sounds, simple physics, and wonderful animation and graphics (supplied by yours truly).  Alright, so, maybe it doesn’t sound so impressive to the onlooker, but, for first-timers in game development, I was very pleased; it also landed me an A in the course.  I suppose I’d have to start somewhere, and that might be developing games for Xbox360 or the iPhone.  I’ve got a number of ideas that I’ve been dying to get out there, and the people that I share these game premises with seem to get similarly excited. So that’s why I’ve decided to create my own roadmap, of sorts, and try to hammer through it throughout 2009.  Enjoy :)

    • Become a premium XNA member ($99/year).
    • Start development of a simple Xbox360, 2D platformer.
    • Get in contact with game industry experts from around the globe. Start a network. (I’m sure gamasutra and devmaster can help in this)
    • Look for possible venture capitalists that are willing to join in this venture in late 2009 or 2010.
    • ???
    • Profit

      29 Dec, 2008

      My NHibernate Experience - Part 1

      Posted by: Carl In: Uncategorized| job

      In my quest to try out new technologies (Ruby and Ruby on Rails, Lucene.Net, etc) I took the advice of a few friends and internet buzz and began work with NHibernate a few months back.  I was trying to emulate something we had setup at Spout.com that was using another, custom framework.

      I started out by creating a simple “Film” class that held just a few bits of info: FilmID, FilmTitle, TheaterReleaseDate, and Plot.  Easy.  Then I did some researching to see what I had to do next to get NHibernate to recognize this class as a model for my database.  After a while of googling, I came up with the following NHibernate mapping file, film.hbm.xml:

      
        
          
            
          
      
      
      
        
      
      

      Once the XML file was up to snuff, I began to write some simple tests using NUnit. I hadn’t had a lot of experience with tests, or TDD, but I have to say that I’m sold on the idea. Just in this little example that I was creating, I became more confident (hopefully not overly-confident) in the code I was writing because I had a plethora of tests created to help verify my results. As I would write new methods, I’d realize that I haven’t created a test for the functionality I was creating, so I’d stop, write the test, watch it fail, finish the method, check the test… Repeat.

      Anyway, this was basically my first run with NHibernate and I thought I’d throw up a little taste of my experience thus far.

      28 Dec, 2008

      Serial/CD-Key storage website

      Posted by: Carl In: development| twitter

      I threw it out to Twitter moments ago, but thought I’d write up the deets here.   I’m looking for an online, serial/cd-key storage site where I can log in, and store all the cd-keys that I own, similar to online password managers.  It’d be nice to categorize them, etc, and be able to even text the site and get my keys back. Or even have an iPhone app.  I’m prone to losing my keys, and have resorted to emailing a lot to myself and tagging them as “key” or “serial”.  But, when I’m installing a copy of Vista on a new box, for instance, I don’t actually have access to the internet to check my email. And, sadly, trying to find the emails I want via my iPhone was a bit painful.

      I’m assuming there’s some kind of service out there that at least does some of what I’m looking for, but I had no luck while Googling. I kept finding crack/warez sites.

      If I don’t find a good one, maybe I’ll try working on my Rails skills and push one out.  I’ll keep ya posted.

      [UPDATE 1.15.2009] http://iworkwithcomputers.com/2009/01/15/fallout-3new-web-based-terminal-hacker-helper-2/

      I’ve been playing a lot of Fallout 3 lately, and it’s every bit as good as Oblivion and then some (Oblivion + Guns = Crazy Delicious).  My character isn’t all that good at computer-terminal hacking, so I decided to create a little Ruby script to help me out.  The script asks for all the words found on the terminal screen and then asks the user to enter in a guess in the game, and report back the number of correct characters.

      So, say that the terminal words were as follows:

      picture-5

      Figure 1 - Entering in words from the terminal

      And say my first guess was “packing” and Fallout said that I got 3/7 characters correct. I’d enter in “packing 3″, the script would return:

      picture-4

      Figure 2 - Entering in a guess of

      The script has narrowed my choices down to the following words: hacking, snowing, and blowing.  Behind the scenes, the script has taken my guessed word, “packing” and the number of correct letters, 3.  With that, the program “knows” that in the word “packing” there is a series of letters, three-letters-long to be exact, that are in the exact same placement in the actual word that will unlock the computer terminal.  With this knowledge, the script makes as many 3-letter “segments” as it can from the guessed-word, “packing” and tries to match it up with any of the entered terminal words.

      Packing has the following three-lettered segments inside it: “pac”, “ack”, “cki”, “kin”, and “ing”.  Looking across all the entered words from Figure 1, the script found that hacking, snowing, and blowing, each have a 3-lettered segment that “packing” does, and that’s “ing”. So it returns those as possible matches.  Note: a guess with only 1-letter matching is not all that useful, and currently, the script just throws those guesses out, and removes that guess from the list of possible words to try.

      Let’s say my next guess was to try “blowing” and the correct letter count was 5, with segments “blowi”, “lowin”, and “owing”. With that info, there is only one possible answer, and the script let’s you know:

      Figure 3 - Last Guess

      Figure 3 - Last Guess

      And that’s it!  The code is a little messy, as it’s one of my first Ruby scripts (started a few days ago with Rails).  Other than that it’s been very helpful.  Previously I was doing most of this work by hand–writing down the words in notepad, recording number of correct letters, finding possible matches, until I realized, “Wait a tick! I’m a programmer! What the hell am I doing writing this out by hand!?”

      For your downloading pleasure: Fallout 3 Terminal-Hacking Helper

      Update[12.23.2008]:

      After reviewing the code, I made another change that should lead to more accurate results. Instead of breaking up each word into segments, I compare the guessed word’s letters and the letters of each word entered from the terminal. If in each word, the letters have similar placements, I add that as a possible “answer”. For instance if the following word were entered in, and a guess of “returning” had 5 correct letters, “determine” would be one of the possible solutions to try because “returning” and “determine” have the following letters in the exact same places: “_et_r_in_”. Before, “returning” would have only matched words that had 5-consecutive letter matches and in this case, it would have returned nothing–confusing the user.  Updated code after the images.

      Entries entered into the "new" hacker-helper

      Entries entered into the

      Guess entered into "new" hacker-helper

      Guess entered into

      Updated file here: Fallout 3 Terminal-Hacking Helper

      22 Dec, 2008

      Fallout 3 Terminal-Hacking Helper

      Posted by: Carl In: Uncategorized| development

      [UPDATE 1.15.2009] http://iworkwithcomputers.com/2009/01/15/fallout-3new-web-based-terminal-hacker-helper-2/

      [Update]Click here for updated info and download.

      I’ve been playing a lot of Fallout 3 lately, and it’s every bit as good as Oblivion and then some (Oblivion + Guns = Crazy Delicious). My character isn’t all that good at computer-terminal hacking, so I decided to create a little Ruby script to help me out. The script asks for all the words found on the terminal screen and then asks the user to enter in a guess in the game, and report back the number of correct characters.

      So, say that the terminal words were as follows:

      picture-5

      Figure 1 - Entering in words from the terminal

      And say my first guess was “packing” and Fallout said that I got 3/7 characters correct. I’d enter in “packing 3″, the script would return:

      picture-4

      Figure 2 - Entering in a guess of

      The script has narrowed my choices down to the following words: hacking, snowing, and blowing. Behind the scenes, the script has taken my guessed word, “packing” and the number of correct letters, 3. With that, the program “knows” that in the word “packing” there is a series of letters, three-letters-long to be exact, that are in the exact same placement in the actual word that will unlock the computer terminal. With this knowledge, the script makes as many 3-letter “segments” as it can from the guessed-word, “packing” and tries to match it up with any of the entered terminal words.

      Packing has the following three-lettered segments inside it: “pac”, “ack”, “cki”, “kin”, and “ing”. Looking across all the entered words from Figure 1, the script found that hacking, snowing, and blowing, each have a 3-lettered segment that “packing” does, and that’s “ing”. So it returns those as possible matches. Note: a guess with only 1-letter matching is not all that useful, and currently, the script just throws those guesses out, and removes that guess from the list of possible words to try.

      Let’s say my next guess was to try “blowing” and the correct letter count was 5, with segments “blowi”, “lowin”, and “owing”. With that info, there is only one possible answer, and the script let’s you know:

      Figure 3 - Last Guess

      Figure 3 - Last Guess

      And that’s it! The code is a little messy, as it’s one of my first Ruby scripts (started a few days ago with Rails). Other than that it’s been very helpful. Previously I was doing most of this work by hand–writing down the words in notepad, recording number of correct letters, finding possible matches, until I realized, “Wait a tick! I’m a programmer! What the hell am I doing writing this out by hand!?”

      For your downloading pleasure: Fallout 3 Terminal-Hacking Helper

      Click here for updated info and download.

      Tags: ,

      19 Dec, 2008

      Adventure with Rails

      Posted by: Carl In: development

      As of yesterday, I decided it was high-time I check out what the hub-bub was all about conerning Ruby on Rails.  I did a Google search for “ruby on rails osx” and found a document on Apple’s dev site, found here.  Downloading and updating the compents was a breeze via the command prompt, and that was a wonderful start.  I then continued on, and began to code my first Rails project.  The elegance of typing “rails project_name” and having it create the site’s MVC structure, plus a plethora of other helpful stub files and organized folders was, again, only making my grin wider.  I loaded up the directory in TextMate as it was going to be my IDE from now on and began writing some sample code as per Apple’s document.  I was once again forced to show a little teeth when I typed my first “ruby script/generate scaffold event name:string budget:decimal” command.  Again, Ruby (and Rails) had taken a lot of the configuration and setup mess out of my hands, and created the files, folders, and code necessary to create a new model, controller and view for the “Event” object.

      After completing the tutorial, I decided to try and work some coding mojo on this project to add some flare of my own.  I added code to let the user know when their new expense for an event was going to be over the budget for that particular event, but let them submit it anyway if they were sure it was “approved”.  So, for instance, say there was an event created called “Company Picnic” with a budget of $500, and a user enters in an expense for $501 that was spent at a vendor named “Parties Plus”.  A silly little verification code was triggered because the expense was greater than the budget had alotted.  Not all that practical, but, it was easy enough to code and test.  I also played around with some AJAX stuff, but had spotty success due to my lack of Ruby knowledge.

      From time to time I also had some bugs to work out, and the command-line debugger and console app were wonderful in this regard.  I was able to quickly figure out most of my issues, or be one Google query away from the answer I needed.

      All in all, I’m definitely warming up quickly to Ruby on Rails, and think I might try to write some of my side-projects in it, just for some experience.

      Here are some helpful links I’d come across while noodling around with Rails last night:

      Food for thought: As most people know, Twitter.com is built on Ruby on Rails currently, but there have been some rumors floating around that they will be attempting to switch from that framework, to potentially a custom one, or maybe even ditching Ruby altogether.  I’m not sure how valid, or feasible these rumors may be, but, it’s something to keep in mind.  In a developer interview last year (seen here), Alex mentions that Rails is not that scalable, and Ruby, on the whole, is slow, and their current solution is to “throw more CPUs at it”.

      You can find more popular sites that use Ruby on Rails by viewing the Rails100 site. Hulu.com is one I did not know about.

      Tags: , ,

      15 Dec, 2008

      My Lucene.Net experience - Part 2

      Posted by: Carl In: asp.net| c#| development| lucene.net

      (Link to Part 1)

      Since my first post, I’ve been tinkering a bit more with Lucene.Net.  I’ve added a few more columns to index, determined that a SimpleAnalyzer would fit my needs by tokenizing every word by not removing “stop words”, and I’ve created a Windows Service to do a multi-threaded index of my 350,106 rows of data.  I’ve definitely got some bottlenecks in my code, partially due to the logging that I’m doing, as it’s a shared resource, and each thread has to stop and wait to get access in order to log.  Future versions of my indexer will use separate log files per thread, and merge them via another thread. At least, that’s my hope.  I haven’t tried log4net yet, and as such, I’m not sure if it will alieviate these issues, but I imagine they will since it requires less “reinventing the wheel” on my part.

      I’m still digging this as an alternative to SQL Server Full-Text Indexing, as it just would not get me the results I desired, with multiple refinements and countless Google-searching.  I’m curious to hear back from those using SQL Server 2008, and it’s integrated indexing services, but, for now, Lucene.Net is a good here-and-now solution that I will stick with.

      Just thought I’d get that out there. That is all :p

      14 Dec, 2008

      MobileMe Cancellation Weirdness

      Posted by: Carl In: Uncategorized

      I signed up for MobileMe as soon as I got my iPhone 3G home back in July.  I liked the concept, and thought I’d take advantage of the 60-day free trial before dropping 100-large for a year’s subscription.  As time went on, I really didn’t use any of the features, but, I left it alone as it synced calendar events and contacts automatically, “Can’t hurt to have a backup, I suppose,” I thougth to myself.  Then, through various means, my trial was extended into December, nice.  I still didn’t use it anymore than I did previously.  Then, it came time to either part ways or pay the subscription fee–I decided it wasn’t really worth my chips, because I truly didn’t use it, so I cancelled it before it auto-charged me.

      A day or so later, I noticed that on my iPhone, all my “favorite” contacts were being displayed as numbers, and not the names I associated with them.  So, for instance, it was showing Emily’s phone number, and not “Emily”. How odd. I took a look at my on-the-phone address book, and it was empty! I immediately had a clue as to what was going on–my phone was trying to sync its contacts with MobileMe, but MobileMe was returning nothing, because I was no longer authorized to sync information between my phone and their servers.  How odd!  I Googled around, and found others having similar problems, here’s a link on Apple’s support forums. I agree with the poster, I had these contacts and calendar events setup *before* I had MobileMe on my phone, so when MobileMe is disabled, or not in use, I should still have those contacts and they should not be removed.

      Luckily, my Macbook still had all the contact info I needed, so I setup my iPhone to sync with my Macbook’s address book, and not MobileMe.  Crisis averted! :)

      Just an fyi to others that may have this problem–it seems like an oversight on Apple’s part, but, maybe it was by design.

      21 Nov, 2008

      Google Calendar ics import error

      Posted by: Carl In: Uncategorized

      While trying to change from iCal and the Mail.app to strictly Google Apps, I ran into an error while importing my ics file from iCal into gMail.  The error, “Failed to import events: Could not upload your events because you do not have sufficient access on the target calendar..” So, I created a new gCal, and tried the import again, into this new calendar, and there were no issues.  I tried then to export this new gCal and import it into my main gCal calendar and the same error pops up.  Anyone find a solution to this?

      I saw that other’s were having the same problem over in the Google Groups, so I posted my experience there as well: http://tinyurl.com/5ju6jc

      20 Nov, 2008

      I want my augmented-reality games!

      Posted by: Carl In: toys

      That's me, and my little friend at work.

      That's me at work with my little monster-friend.

      The concept of augmented-reality (AR) is not all that new.  A few years back I remember reading about an AR Pacman game that used cameras, goggles, and GPS (find out more here). Even more recently, as of a few weeks ago, Gizmodo had a short video of a Japanese AR girlfriend (check it out here).  This brings me to yesterday, when I came across a Flash-based AR program by Digital Pictures Interactive that uses your webcam and a printed garphic to “project” a little, three-eyed monster into the palm of my hand–figuratively of course.

      The Flash file uses your webcam and the graphic to determine where to place the monster, and how to orient him. As you rotate the graphic, you will see the monster rotate as well.  Check out the video, and try it out yourself, if you have a webcam, here: PaperVision - Augmented Reality.

      After playing around with it on and off for an hour or so today, I started to wonder how soon it would be until we were seeing more AR in everyday things–games, action figure playsets, etc.  It’s as simple as having a head-mounted camera, and a screen–in this case, I’d expect them to be a pair of goggles and a small lense on the bridge of your nose.  Think about that–how cool would it be to be playing a videogame that actually took place in your home! Like, miniature-sized humans vs aliens all over your living room.  You could command your characters via voice command, or by control.  Or a GI-Joe playset where you could actually see your “Joes” running around a base that you built yourself, as they wait for your friend’s Cobra army to attack it? Or how about a throw-back to Star Wars, and their futuristic game of chess?

      Of course, you couldn’t actually “touch” your AR characters in any way, but, you’d still be interacting with them by getting them to move where you tell them to move, or act like you’d like them to act.  The possibilities are pretty exciting, and I really hope this comes to fruition.

      I was really geeked about all this AR stuff in the feeds lately, and thought I’d rant a little ;)

      About

      I'm an ASP.NET developer who loves learning new frameworks, and methodologies, and I absolutely love simple, yet elegant solutions (don't we all?). Since I'm constantly picking up new things, I'm always asking myself how I can use the new knowledge in my current app to make it better, or more user friendly (or even more developer friendly). In my free time I typically am coding, reading tech books or spending time with my beautiful bride. And that's about it. Hope I didn't bore you too much.