Archive for November, 2006

Books: Rails for Java Developers

Monday, November 27th, 2006

I’ve been reading the beta copies of Rails for Java developers and really enjoying them so far. The book starts off moving through the ruby language feature by feature and comparing them to the features of Java, which is a great way to apply what you know to learning something new. Things continue in this manner through comparisons of ruby’s ActiveRecord to Hibernate, rails’ ActionController to struts, and so on. All the while the authors strike the right balance between fun asides and getting to the point (some books can try way too hard to be entertaining and fall flat).

I haven’t actually written a Ruby on Rails application before or since reading the book, so I can’t comment on the completeness of the material, but I can actually read Ruby now and write some short scripts so that’s a start. This is more than I can say about some of the online materials I’ve read about ruby.

If you’re familiar with java and would like to learn more about Ruby and Rails definately pick up a copy of this book. You might even learn a thing or two about java in the process.

Credit where credit is due: i originally found out about this book due to this blog post (which said a lot of what i just said..)

Constraints, friend or foe?

Monday, November 27th, 2006

I’ve seen several places that sing the praises of building something under some kind of constraint, including this article at the always excellent Creaating Passionate Users blog. Checking out everyone’s projects in the “lab” session of my class reminded me of this.

The assignment was to build two version of a weather forecast reading tool for a hypothetical phone - one really basic, the other with some better automation features. One just had to be able to enter a zip code and click through seven days of weather. There weren’t many details given, and no requirement on the type of implementation (this is an engineering psychology class so there are lots of non-programmers).

I looked at the assignment and saw the requirement to type in a zip code and immediately discarded the idea of using powerpoint, reasoning that powerpoint faking of entering text via phone button pushes would require hundreds of slides. So I moved to flash; which was good practice, and I got to test out an open source framework in the process (ASAP Framework). The majority of the class turned in perfectly adequate workflow prototypes in powerpoint. How did they do that?

They embraced constraints.

Key constraint: entering an arbitrary zip code isn’t the point because we’re not really finding the weather. This simplifies things tremendously, and I can’t believe that didn’t occur to me. The power point projects only allowed one zip code to be entered (ie the “3″ button was the only link active on one slide which would link to the next slide that would show a three entered) which was fine because the usability test task could be given as “find the weather for zipcode 12345″.

Embracing that constraint reduces the complexity tremendously and allowed people to concentrate on the work flow (and in some cases beauty) of their apps, while I was futzing around with flash. I’m able to (and indeed prefer) to prototype in tools more powerful than Powerpoint, so I immediately brought the big guns to bear, never having paused to think about the tradeoffs one might make at little cost to make it possible to do a reasonable fidelity prototype in powerpoint.

I do find building these prototypes in powerpoint incredibly tedious because of the drudgery involved in creating hyperlinks between all the frames as compared to writing some scripts. Good programmers are “lazy” in that they’d rather take time to automate something than do a task manually, but there’s obviously got to be a repetition threshold under which it would actually be faster to do the work manually than invest more time in building a more robust, automated solution. This project probably fell on the keep it manual side of that line.

At least my on screen cursor eased in and out of position. Can’t do that in powerpoint! (or can you?)

87 Cent check

Friday, November 17th, 2006

I got a check in the mail from Oracle today - I thought that’s strange, I don’t work there anymore (yay!). Maybe they kept paying me (double yay!). So I open it up and its for eighty-seven cents in the category of “other earnings”. Weird.

Kickball Miracle no more

Thursday, November 16th, 2006

The dream is over - my team lost tonight in the second round of the playoffs - too many errors, not enough runs. We started a comback in the top of the 5th with three runs in, but alas, it was not enough. At least we have the one win to look back at in the long offseason :).

I did have fun reffing the game after ours though - I called a tight strike zone because I’d rather see lots of kicking than a pitchers-duel any day of the week. The teams certainly came through for me. One of the teams scored 11 runs one inning. Fun to watch.

Miracle on grass

Wednesday, November 15th, 2006

My kickball team, the Somerville Land Pirates (yarr!) won our first game of the season at long last! We entered the playoffs last in the league with a perfect 0-8 record, having never led in a game. Our opponent had the good kind of perfect record, and had beat us twice already in the season.

Last night none of that mattered though (nor did missing half our team); we cruised to a convincing 6-1 victory over the number one seeded Stewie’s sexy party. Things looked good right away with a four runs in the first inning, and we never surrendered that lead thanks to some great defensive plays by Tom and Ander.

Don’t think too hard.

Sunday, November 5th, 2006

I haven’t flown since the whole liquid bomb scare, but my trip down here to visit Frank reminded me how inane these new anti-liquid guidelines are. In fact they’re so nonsensical that the page of prohibited items asks that you not try and make sense of them at all:

We ask for your cooperation in the screening process by being prepared before you arrive. We also ask that you follow the guidelines above and try not to over-think these guidelines.

I think that speaks volumes.

Remember this: gel bras ok, gel insoles, not ok.

Late to two-way sync party…

Wednesday, November 1st, 2006

I was disappointed this morning to see on digg that someone is already writing software to do bidirectional syncing between google calendar and icalendar. I have been preparing to write such a beast by familiarizing myself with the syncservices API, all the while wondering why no one had done it yet. SyncServices makes it surprisingly easy to do, and that’s been around since Tiger came out over a year ago.

There was clearly a pent up demand for a tool like that, lots of blog posts and comments on the topic here and there - definately something that would fetch a token 10 or 20 bucks for use. I was wavering between a free/open source model and doing a a for-pay client (which would probably require lawyering and accounting) so now that there’s competition, if I proceed it’ll definately be the former. That’s only fair really since I wouldn’t have done it at all if PyObjC wasn’t free.

At least now there’s no real rush to beat some unknown competitor. I can go back to learning ruby on rails instead as originally planned.