Personal Finance

by Samm Bennett

Last year was the first time I seriously took a look into how I was spending money. Considering I was 26 and working professionally for 3 years, it was a pretty sad state of affairs. Something so rudimentary should certainly be taught in high school, particularly since timing can be so crucial when planning for retirement, college, wedding, etc. Anyway, I wanted to take some time to distill what I learned in case someone else finds themselves in the position I was in.

Probably the most important thing to consider is retirement. It's easy to neglect retirement when you're young, but compound interest and the volatility of the stock market really favors long term growth. Saving for retirement might seem like a daunting task, but it doesn't have to be. 

If your employer offers a 401(k) plan with a match, at the very least make sure to meet that. Otherwise you are literally walking away from free money. Once you have that met (or if your employer doesn't offer such a plan), focus on maxing out a Roth IRA. You can open up a Roth through the same company that handles your 401(k), or you can shop around (I'm personally a fan of Vanguard). The key difference between a Roth IRA and a 401(k) is that a Roth grows interest free. In other words, the interest you earn in a 401(k) will be taxed when you withdraw it in retirement, whereas interest from a Roth is not. I should also mention that 401(k) contributions are made pre-tax, while Roth contributions occur after taxes are taken out. 

Once you have money in a retirement plan, you need to make sure to invest it! The easiest approach is to invest in a lifetime fund, which automatically adjusts asset distribution (percentage of stock, bonds, international stock, etc) over time. Lifetime funds are generally named after the year targeted for retirement (for example, I use the Vanguard 2050 since I expect to retire around 2050 at the age of 65). It might sound silly, but in college I let the money from an internship sit in a money market fund, which means it wasn't really making anything at all! You are free to come up with your own asset allocation you can tweak, but a lifetime fund is by far the easiest to setup and maintain.

Of course, retirement is only one of many expensive events in a persons life, and it's important to save for those too. I've always been far removed from the idea of marriage or purchasing a house, but once those events become real, it's already too late to save. Consider that the average wedding costs $28,000, or that a house generally requires 20% deposit. I've found it far better to save monthly for these events so that I'll be ready if and when they happen, rather than end up in a lot of debt. Worst case, I end up with a lot of extra money that I could use to retire early, start a business, tour the world, etc. 

The sort of funds to invest in for these sorts of goals is tricky though, since the timeline can vary wildly. If you're already in a long term relationship and marriage seems like a possibility in a year or two, stocks aren't really a viable option due to volatility. But if you're like me and don't have firm plans on when to buy a house, then you can be a bit risker and work around stock market fluctuations. The key thing is to make sure that you're saving monthly; what specifically you invest in can be determined later.

While the goals I've mentioned up until now have been fairly long term, you should still consider short term goals as well. My favorite savings goal is $5,000 a year for an international vacation. Since the event is such short time, I put all of those funds into a savings account dedicated toward that goal. This way I can easily see the progress I'm making, and those funds are separated from my emergency fund and checking account. 

Now for some closing notes. Make sure you have an emergency fund! This should be about three to six months of expenses that you can rely on in case something unpredictable happens, like losing a job or necessary car repairs. Don't use this for items that you're aware of ahead of time, those you should be saving for! 

Note that I mentioned that your emergency fund should consist of your expenses and not salary; this implies that you should have a budget and should be living within it. If you aren't already using Mint to track your spending habits, I highly suggest you start doing so now. It's a painless way to track spending, and it even allows you to construct a budget based on your historical spending habits. If the idea of saving so much money seems impossible, I really recommend using Mint to inspect your current spending habits and see if there are some easy wins. Perhaps you're spending more than you expected at the bar, or your car is a bigger percentage of your take home pay than you thought.

When it comes to investing, I advise against individual stocks, and highly recommend index funds. While individual stocks seem like the best way to make a lot of money, you really only should invest in them if you're very familiar with the company, its competition, and its future economic prospects. You should be investing long term; otherwise you'll need to spend a lot of time and effort staying abreast of new information and developments. Comparatively, an index fund requires little management from the individual investor since its tied to the stock market. Trying to beat the market is difficult and costly, while a solid index fund with low fees can still reap rewards. 

Recommended Reading:

Books:

Websites:


More posts incoming

by Samm Bennett
This year I broke a long standing tradition and created quite a few new year resolutions. One of these resolutions was to write more frequently, aiming for something once a week. While I'm not quite sure what exactly the end product will be (thoughts on programming languages? creative pieces of fiction?), I do know that I want to act now to make it into a habit. As such, I'm going to start with just random musings that I will then post here. No guarantees on content, just whatever happens to be on my mind that particular week. Here goes!

Net neutrality

by Samm Bennett
Upon finding out that AT&T was encouraging employees to complain about net neutrality, I felt compelled to leave my own comment on the FCC's net neutrality site. I was shocked to find more than half the comments (of the sample I read) going against net neutrality, and all of them written by people who clearly did not understand the issue. This riled me up a bit, and so I wrote my own entry and actually commented on some opponents' entries. I am very thankful for Comcast providing me ammo when doing the latter. Anyway, the following is the comment I posted to their site. I assume anyone reading this knows the internet is not a big truck, so feel free to comment.

It seems rather unfortunate, but a cursory glance at many comments would suggest many people against net neutrality don't actually understand it, nor how a network actually works. Without the FCC's intervention regarding Comcast's throttling of bittorrent traffic, many customers (likely forced to use Comcast since the local monopoly cable companies are allotted) would be not be able to use that particular technology. And while we can acknowledge that bittorrent is commonly used for pirating, it also has many legal uses, many which have not been fully evaluated. Net neutrality is important in maintaining no protocol or packet is blocked because the network owner disagrees with the content or the source.

However, I am uncertain if regulation would even be necessary if there were open access to network facilities (although I question if they must go hand in hand). As stated in this report, http://www.reuters.com/article/technologyNews/idUSTRE59E16J20091015, open access forced lower prices for higher speeds, areas the US could certainly use a boost (the fact that this nation is so far down the food chain despite inventing the internet and controlling ICANN is a disgrace, but I digress). Open access would also foster competition, thus making irrelevant anyone choosing to throttle traffic.

Regarding those speaking out against a certain "search engine" (please, we know you're attacking Google), you should note that Google Voice is not a telephony service. Google Voice acts as a forwarding (free, when used within the US) service between two pre-existing numbers. Users who have a number with Google Voice only attach that number to pre-existing phone numbers, and are serviced under those respective providers.

The one area I question net neutrality is with regards to wireless networks, due to the nature of wireless networks requiring broadcast communication, etc. Even in this regard though, I am willing to side with net neutrality, as any network provider whose network suffers (AT&T and the iPhone, perhaps?) should be forced to improve their network (innovating when necessary) rather than prohibiting their customers from legitimate uses.

Thoughts on Assassin's Creed

by Samm Bennett
I just finished playing Assassin's Creed (or, at least I think I did, more on that later) on XBox 360. At the moment, the thing that sticks out the most is the drastic change in core gameplay leading up to the end of the game.

While the game welcomes users to use stealth and strategy while playing, in general it's not always required. To some extent, I would actually say this was detrimental to the game, as I would occasionally make a mistake in the execution of an assassination, and then just swing my sword around to finish the missions. Not nearly as cool as jumping from the shadows, but I digress. The point which I am trying to expand upon is that, although Assassin's Creed expects some stealth, there are many opportunities to be a bumbling brunt and just battle hordes of guards. However, the emphasis is obviously placed on using stealth and crowds to sneak about on missions, and actually running away in order to avoid combat when caught.

Yet, for some reason, the last two assassinations actually force the user to just hack away at enemies - no alternative options are provided in which the user can use stealth. It is as if the user was playing a completely different game entirely. And while the crowd fighting can be entertaining, it is still buggy and not the reason I'm playing the game. And while I'm on the topic, I really hope to see sequels allow the user to manipulate enemies a bit more during fights. With such an emphasis on crowds, I very much expect to be able to push guards into each other.

Another aspect of the game I found disappointing was the use of beggars. Instead of providing a potentially useful ally (beggars assist you if you are kind to them) or attempting to teach some sort of useful social message, Ubisoft just presented an annoyance to users. I suppose that the developers actually did the opposite of the latter suggestion, as beggars did nothing good for me and I always had to shove them about. The worst part is that the user isn't presented with an option - the beggars want money, but Altair carries no currency. What's the point?

And now the biggest question with Assassin's Creed - what the hell happened at the "end"? I really must put in end in quotes there, as the only way I knew I had arrived at that point was when I researched my latest achievement. While I am usually a fan of stories where the audience must draw their own conclusion, the game offered nothing even approaching closure. At least in Matrix Reloaded I had a screen saying "To be continued." The ending offered was more on par with something I would see before a season finale - not quite so good when I'm expected to shell out another $50 in two years and dedicate another twelve hours.

I don't mean to be overly critical here, though. I think Assassin's Creed had many amazing technical feats: the large cities, massive crowds, and so many climbable surfaces are just a few. The game was also pure fun too, even with the frequent annoyances such as misguided throwing knives and a character who refuses to arm himself in combat. Yet, I feel the game could have been so much more if the dev team met it's promise of a city which responded to your choices. As for the game's story, I'm still not sure how I feel about the almost cliched approach it took. The betrayal of the master was obvious quite quickly, and so the conspiracy felt almost half-baked (although if there is causation there I cannot be sure). Here's hoping the sequel can patch up these issues.

ISPs are backwards in the US

by Samm Bennett
Loved this article I recently came across: Time Warner to charge $150-Per-Month Unlimited Internet. Whereas most industrialized countries have cheap 20 MB - 100 MB downstream internet connections, most Americans are lucky they even have the privilege to pay large sums for 6 MB down (personally, I usually see my 7 MB at 2 MB, but that's a different story).

The beauty of the whole thing is that American ISPs are trying to claim that their infrastructure is too poor to handle large data transmissions, and instead of improving their service to some reasonable standard, they leverage monopolies to punish the consumer. I guess the big question here though is it just a ploy to prevent users from using Video On Demand services such as Hulu and iTunes instead of their cable service? Considering how much cable costs these days, and all the profit the cable providers would lose if they watched their customers pull back, the conspiracy doesn't seem too far fetched. And if this is the case, I wonder what may happen to net neutrality in the next couple of years?

Regardless, these recent moves seem fairly futile, and I just hope something is done so the country that invented the internet can at least provide its citizens with some competitive speeds.

GDC Sessions

by Samm Bennett
While I wrote about my reflections upon GDC as a whole this year, I didn't really comment on any particular sessions. Truth be told, no session really stuck out this year like Creating a Character in DRAKE'S FORTUNE; instead, a collection of speakers sparked my interest and motivation to create games. So, which were they?

Clint Hocking's Fault Tolerance: From Intentionality to Improvisation showed a new flow to have in games, one in which designers stop punishing the player. This flow results from the user creating a plan of action, and then acting upon it over short periods of time, from one to the other. Most games break this flow by forcing intentional gameplay - the player dies and then goes back to some checkpoint. Improvisation suggests the user reflects upon what happen, how it changed the gameworld, etc (creating a new plan), and then acting upon it. While Clint suggested Bioshock accomplished this, I disagree in that the transitions could be smoother.

From CS to L4D: Creating Replayable Coop Experiences was interesting, well, for creating replayable coop experiences. This was likely a full sessions since it's a Valve design session, and rightfully so. The core idea behind the talk was simply force cooperation by punishing those who refuse to work as a team (using mechanics, not some force field, etc), while also creating randomness to break down the group on occasion. Fairly obvious, but I suppose the limited number of good co-op games establish how non-trivial this is (that, or companies are too lazy to change the status quo...).

I recall being disappointed with The Tech Behind the Tools of Insomniac Games, but in retrospective, hearing them discuss how their build system is pretty interesting for someone who has never worked in such large environments.

The GDC Microtalks had the highest idea/time value (not surprising since 10 talks in 1 hour). Jane McGonical's talk was, as always, inspiring and gave me some game design concepts. The topic(s) was/were CZADOF: Confucious Zombie Apocalypse Dance Off Fraction. To sum up, people have fun when doing good, which happens a lot when there's a zombie apocalypse, and enjoy themselves when embarrassing themselves with others. Clint Hocking attacked game review inflation, John Sharp reminded everyone that video games are nothing truly new given the history of games and play, and Eric Zimmerman presented an impromptu game questioning fun. One of my takeaways on Zimmerman's talk: impromptu games + a requirement to cooperate = willingness to open up with strangers.

The Beauty of Destruction was an interesting talk on some pitfalls and lesser known facts about C++ destructors. I found it enjoyable, but would have had a more rewarding experience if I was currently using C++ (obviously). Still, nothing like someone forcing you to question how your memory is managed!

Experimental Gameplay Sessions made me realize I sincerely need to stop criticizing current game mechanics and start prototyping my own. Big motivator, as I now have a goal to present something of my own next year.

State-Based Scipting in Uncharted 2, had a few gems. I was surprised to hear a decorator pattern was used instead of inheritance, although given the cost on the stack, function lookups, and the purpose of the pattern, I suppose it makes sense. Also nice to hear about the message passage system for "threading" events across multiple objects, where dependencies might occur. Really wish I could mod their games, if just to see how Lisp fits in.

And that was my quick explanation of what sessions I attended and thought were notable at this year's GDC. Unfortunately, I missed quite of few very interesting talks due to conflicts with other sessions (such as On the War Path: Tactical AI in Dawn of War 2) and had to order the recorded sessions on DVD.

GDC Reflections

by Samm Bennett
Upon reflection, it seems like this may have been the most productive GDC for me since I started attending several years ago. Ironically, up until Thursday I was quite confident that attending was a dumb idea. The cause for both the success and the doubt is the same: I already have a job!

Up until this year I have attended every GDC with the hope of scoring an internship or a full-time job. As a result, I spent too much time exploring the job fair (whether skipping talks or running in between sessions). Although I do recognize that I've made some good connections while exploring, I think the calmness and focus that resulted from removing the rushing and nervousness truly let me absorb more, both in the sessions and while just chatting with people.

On a similar note, I've truly stopped giving a damn about swag and didn't bother looking for any while scoping out the expo. Instead I checked out some amazing games by the IGF booth, and also had some interesting conversations regarding some tools (although the OnLive guy had me really questioning the service).

Another cause for this year being a success is just the experience I've gained since last year, primarily from work on Inversionand at Amazon. I'm sure the host of books I've read since then have helped as well.

I sort of surprised myself by attending so many design talks this year. While at first I felt disappointed in myself for not focusing on programming, a friend of mine got it right when pointing out those talks are generally worthless if there is no immediate application. Nevertheless, Star Ocean 4: Flexible Shader Management and Post-Processing was very impressive, even though it was the last session on a Friday (after everyone is completely exhausted), and also fairly over my head.

The focus on game design certainly had an interesting consequence though. Now, more than ever, I feel inspired to just start doing. I plan on blogging more, networking more, and really start talking to other developers and gamers. But most importantly, I came away with a few game ideas that I plan to start on development before the week is done. My big takeaway this year? To stop worrying if I can get a job somewhere working on games I criticize for failing as art; instead start making games I want to make NOW.

Qwest altering DNS settings

by Samm Bennett
Late last month I decided to use OpenDNS. Obviously, this should mean just updating the DNS servers on my router, right? Modem? Hmm, didn't work either. Today I finally got around to investigating. Apparently Qwest (my ISP) doesn't care what your DNS settings are. It was only after paying attention to their "page not found" page, ripe with yahoo search results (additional revenue anyone?) that I noticed this was a Qwest.Help service which I could "opt out" of. Well, I never opted in, but it's nice to see that you want to take complete control over my DNS options thanks very much. I opted out, and about 10 minutes later I'm finally using OpenDNS.

Australia!

by Samm Bennett
I've been meaning to blog about this for a while now. At points I've mentioned going to Australia, well, this is how that went down.

At this years Game Developers Conference, Queensland Games had a contest you entered by text messaging the capital of Queensland to some number. 1st prize winner got a 7 night trip to Queensland for 2, 3 runners up got a surf board. Since at the time I was hoping to move to CA, I decided to try my shot at a surfboard (like hell I'd win a trip!) and used my iPhone to check Wikipedia for the answer (Brisbane ). Winners were to be announced shortly after the show.

But they weren't. Apparently whoever was supposed to notify the winners left the company, and no one knew who the winners were. Until the company does some auditing, and I get a call while heading to lunch in my second or third week at Amazon. Apparently, I won a trip to Australia.

Of course I found the whole thing kind of hard to swallow. I mean, who actually wins a trip overseas? But, the circumstances seemed right, and no google-fu returned anything involving the company scamming anyone. So I guiltily accepted the prize (I feel bad for winning a prize at a game developer conference and not really being a game developer) and gave them my info. Even still, I was a bit suspicious. Then, on Monday I got a package containing the vouchers for airfare and hotel stay, plus a Sony DCR-DVD610 DVD Camcorder.

Trip to Queensland package

Ah hah, I knew there was something fishy! The airfare voucher is only good from LA to Brisbane! No, seriously, it's pretty awesome. So awesome, I kind of feel apathetic about it. I was so suspicious about it at first, that now it's kind of "there." Or maybe I'm just tired.

Funny thing, I'm pretty happy with my awesome Lumix DMC-LX2K camera and ultra-portable (yet seldom used) Flip camcorder. I really have no idea what I will do with the camcorder they sent, because I'd image it would be annoyingly large to carry during the trip, relative to my other devices. I've always liked the idea of having a camcorder, but I know it would be seldom used, which kind of annoys me. It's weird, but I dislike not using a gadget, and so I then I try to use said gadget, but instead it just collects dust. I guess it's a problem I'm lucky to have :)

iPhone Development

by Samm Bennett
I spent a good amount of time yesterday creating a mobile Inversion client for iPhone. The funny thing is, most of my time was spent on some really stupid things not really related to the new material I'm working on. And there is, in fact, a lot of new material I'm working with. For example:

- Cocoa
- Objective-C
- iPhone Framework
- Interface Builder
- Socket programming

All in all I'm pleasantly surprised by the dev experience. Objective-C 2.0 is actually quite nice (properties in particular), and Cocoa works beautifully (keep in mind I've never done any GUI programming before). In under 200 lines of code, I basically have a "blind" client, in that I can register with a game server and send new GPS coordinates any times the phone detects a change. Our other client, using Windows 5, probably uses that much just to register with the server.

As a note, one thing that really killed a lot of time for me involved Interface Builder. For some reason, the default gui file (nib file for those with Cocoa experience) already had a control layer in it, which was blocking all gui events from reaching my app. It was quite surprising for me to find out that just deleting the base layer fixed my gui code, something I had been trying to do for a few hours saturday.

iPhone Development

by Samm Bennett
I spent a good amount of time yesterday creating a mobile Inversion client for iPhone.  The funny thing is, most of my time was spent on some really stupid things not really related to the new material I'm working on.  And there is, in fact, a lot of new material I'm working with.  For example:
  • Cocoa
  • Objective-C
  • iPhone Framework
  • Interface Builder
  • Socket programming
All in all I'm pleasantly surprised by the dev experience.  Objective-C 2.0 is actually quite nice (properties in particular), and Cocoa works beautifully (keep in mind I've never done any GUI programming before).  In under 200 lines of code, I basically have a "blind" client, in that I can register with a game server and send new GPS coordinates any times the phone detects a change.  Our other client, using Windows 5, probably uses that much just to register with the server.  

As a note, one thing that really killed a lot of time for me involved Interface Builder.  For some reason, the default gui file (nib file for those with Cocoa experience) already had a control layer in it, which was blocking all gui events from reaching my app.  It was quite surprising for me to find out that just deleting the base layer fixed my gui code, something I had been trying to do for a few hours saturday.  


Delicious and Remember the Milk

by Samm Bennett
I generally have a ton of websites open in Safari (on average I would say 35).  Obviously this isn't a good idea for numerous reasons, largely it's a waste of space and a waste of memory.  I've lately have been making an attempt to cut this down, and I think I have a fairly decent approach.  For general items that I would like to read up on or consider for later, I use del.icio.us, usually assigning a tag "todo" or "tobuy."  If it's an action item, I use Remember the Milk, a great webapp that handles to do lists and can shoot you an email/im/SMS when something is due.  One of its features is that you can attach a URL to an item, allowing myself to get rid of any webpages that are only open to be acted upon at a later time.

iPhone downgraded to 1.1.4

by Samm Bennett
About a week ago I purchased an iPhone development license and installed the new 2.0 firmware beta on my iPhone.  Since then my iPhone has been crashing like made, but I figured I was at Apple's whim.  However, things got worse.  At approximately 3 am today, my iPhone showed the "pink screen of death," meaning i needed to reactivate my iPhone.  Yet, XCode told me the 2.0 firmware was out of date, and Apple has yet to release a new firmware.

Think about that.

Apparently, every iPhone developer has a bricked iPhone (potentially iPod Touch developers as well) until Apple pushes a new beta.  There was no warning.  In my opinion, this is not excusable, especially considering the horrid stability of the last version.

So what did I do?  I managed to circumvent Apple and downgraded back to 1.1.4 using Liberty+.  Now I'm going to do what I should have done and wait until the absolute last second to upgrade my iPhone for dev purposes. 

Amazon.com

by Samm Bennett
I've accepted a position with Amazon.com's Search Inside the Book team as a Software Dev Engineer.  It should be a great opportunity to do some fancy AI stuff with distributed systems.  

This means I'll be moving to Seattle, Washington around July 17.  It should be interesting, as I've only been in the city for about 35 hours or so.  People have assured me I'll like it; hopefully they're right :)  The fact that it's the same city that gave us grunge and Utilikilts seems like a start.

Leading up to the move will be quite hectic.  I graduate on June 14th, leave for Ireland on June 26, hop over to England on July 8th, and then fly back to the US on July 13th.

iPhone SDK

by Samm Bennett
About a week ago I signed up for the $99 iPhone Developer Program.  Since then I have been focused on learning Objective-C and Cocoa, but I finally managed to update my iPhone to the 2.0 beta (aka iPhone version 1.2).  There really isn't that much different from the most recent version.  The calculator has a scientific mode (pretty awesome), exchange is supported (I don't have an exchange server to test on), there is a Contact application on the home screen, and the Tunes Store is missing.  The main thing I've noticed, though, is that the version is definitely beta quality.  It's crashed at least 3 times on me today.  I'm contemplating downgrading for regular use, and then switching to 2.0 briefly to test my development software.  This is probably a good idea, as I'm at least 2 weeks off from getting anything close to deployable.

Luckily, my worry regarding an inability to use my iPhone as a phone after upgrading was unfounded.  Still, the crashes are too numerous for my liking.

Passage

by Samm Bennett
Just played the game Passage.  It's really an awesome game, and very short, so I highly recommend everyone playing it.  I wonder if any other medium could pull off the same thing in such a "tight" manner with the same effectiveness.

Spore is being released in September

by Samm Bennett
 Electronic Arts Inc. (NASDAQ: ERTS) and Maxis today announced that Spore™, the highly anticipated game from the creators of The Sims™, will be available at retailers worldwide the weekend of September 7.  Spore will be available for the PC, Macintosh, Nintendo DS™, and mobile phones.