Sunday, April 26, 2009

The Summer Project 2009: Introduction

Once upon a time, there was a man who programmed computers as a hobby. He liked it so much, he pursued it as a career. But work days were long and programming was mentally taxing, especially when doing it for real people with real money at stake. Still, he loved it, and every once in a while, when the demands of work shifted away from the bits he liked most, the urge to program a little something for himself would rise again. And then one day, he thought about the people who asked him what being a programmer involved and decided to do something stupid. He would begin work on an application he had wanted to do for years, and he would write about the process of developing it. It would be his Summer Project.

Sadly, this little tale of foolishness is a true story. I should warn you at the outset that my track record with summer projects isn't exactly stellar. The image of a southerner sitting on the veranda in a rocking chair sipping iced tea as the sun dips toward the horizon is classic for a reason: it gets hot and humid here during the summer months, often we don't have enough energy to do anything else. But it's currently spring, the dogwoods and azaleas are into their fullest color, and I'm still optimistic.

The project itself will be a simple application to help me track my money. I've been using Quicken for that purpose for years, and it does the job well. It's also overkill for my needs, and annoying in its constant attempts to show me features I don't use. But the real reason I want to get rid of it is because it uses a proprietary data format. I can't read the data using any other means than Quicken itself. It won't even migrate properly from the Windows version of Quicken to the Mac version. At some point something in Windows will change, my version of Quicken will stop working, and all that history I've accumulated will become inaccessible. And I wouldn't mind an app that could run on more platforms than just Windows too. Just in case.

And that's really all for the setup. I make no guarantees about actually finishing anything, or even getting to significant coding. Heck, you may never see this mentioned again. Hobby projects are like that sometimes. The main point of the exercise will be to demonstrate the kinds of things a programmer does, and hopefully learn some things along the way. I'm also not entirely sure of the tone and depth of writing this will need. Hopefully, it won't be too excruciatingly boring.


fergus said...

You should do an iPhone app.

Lee said...

Are you going to write it in Ada?

Seriously, sounds interesting. I get tired of the Clippy style notices you get.

Brian said...

I'm not going to write it in Ada. Currently the thought is early proof of concept stuff in Ruby with the final app probably in Java. I haven't worked out how much actual code I will be showing in any case. How much code/what detail level do you want to see?

As for iPhone apps, I'm afraid the maybe four hour a week, probably two, time budget that home projects get precludes the level of learning I require to get up to speed on the iPhone. It would require I explore a new language at the same time as one or two new APIs and that's overload for a hobby project. Give me two uninterrupted weeks off, then maybe. But for now, I'll focus on this one thing. It will be hard enough to get anything significant done on it...

fergus said...

I only know this anecdotally, but I hear that programming for the iPhone is dirt simple... especially if you already have programming experience. It's not really a new language, as it is all related to C or one of its variants (I can't keep them all straight).

Plus they have a ton of samples that you can tweak.

Plus, you can submit it to the store and make money. The apps that seem to sell best are the ones written to answer the programmer's issues. I bet yours would sell. I would only ask for a 20% cut for the idea.... :)

Brian said...

I believe what you mean is programming for the iPhone is dirt simple if you have Mac UI experience. Objective C (language) and Carbon (API) would be the things I have to learn. I know just enough about Objective C to know how little I know, if you know what I mean.

Besides, I'm one of those old fogies with a flip phone that just makes calls. And they don't pay me enough for me to be interested in upping my cellular bill by an order of magnitude.

Then again, if you want to front the $99 to get me signed up as a developer I'll look into it.

Brian said...

Sorry, the API is Cocoa, not Carbon... I always get 'em mixed up. (Hello, my name is Brian, and I'm a Windows developer... sigh.)

Brian said...

Oh, the work day has my brain addled. Did I say you had to front the $99 sign up fee for me to become an iPhone developer? I forgot to mention that I will also need $1500 to get a developer class Mac computer (required for the dev environment), and $300 for an iPod touch to test the apps on. Might as well round it up to a nice even two grand. Send the certified check on up here, and I'll get back to you when I'm ready to start working on the apps. You can pretend you are a venture capitalist investor.

fergus said...

Give in to the dark side... Together we can rule the galaxy!!!

If I can give pretend money, I'd love to play the role of a VC. Marc Cuban... watch out!