Things I learned this week

In no particular order, a quick run down of some things I learned this week (no particular order):

Ruby / Ruby on Rails

  • In Ruby: don’t use f.readlines.each in a loop, as that waits for all output, then iterates.  Use f.readline instead, but be prepared to catch the EOF exception when you finish (it’s a documented part of that interface)
  • In Ruby on Rails: rss is a valid format (at least in 2.2.2), and can be used in a builder

Mono / C#

  • In Mono: File.Exists fails on directories.  Even though directories are just special files in Linux, the implementation decided that wasn’t right.  Use Directory.Exists instead.

Networking

  • IPv6 finally made sense to me, after implementing a 3 site topology for my Network Lab graduate class.

Ubuntu Jaunty Roundup

I’ve now migrated my work laptop to Ubuntu 9.04 (Jaunty), which went pretty smoothly.  I played some games to use internal mirrors, but still use the graphical update process (instead of just dist-upgrade), which all worked out well.

New in Jaunty

One of the bigger items that got press for Jaunty was their new notification system.  I really does rock.  It looks slick, and is very consistent, and I’m a fan.  I’m also a fan of the new splash screen.  All these bits are cosmetic, but something that looks beautiful is important in using a computing environment.

Bugs Fixed

I’ve had a number of bugs that I used to have to work around, now they work correctly:

  • there used to be a race in bringing up superswitcher when gnome started that meant it didn’t get to lock out the caps lock key.  So I had to stop and restart it after a fresh login.  That appears fixed.
  • Jaunty now understands the right suspend settings for my nvidia card, no need to adjust that in the acpi hal configs any more.
  • emacs-snapshot is now current enough that it loads my configs perfectly.  For the first time in 10 years I’m now running a prebuilt version of emacs/xemacs for daily development.  /usr/local just got a bit smaller for me.

Dear Amarok… why do you suck now?

The Amarok team took their application off a cliff with version 2.0 (which is now what’s in Jaunty).  All support for syncing devices is gone.  While some aspects of their UI is neat, including podcast search, I’m really not interested in going back to rsync for device management.  It’s also really unclear that is ever coming back.  Fortunately, banshee seems to have gotten pretty good, so that’s where I’m at now.

Update notifier, where did you go?

Update manager doesn’t display the orange star for daily updates any more.  There is a workaround listed in the bug, and a lot of this is wrapped up in the philosophy of the new notification system.  However, I really liked my daily updates.  I get that the team was trying to get stuff out of the notification tray but this seems to be throwing the baby out with the bathwater.

Final Thoughts

It’s really nice to see Canonical push Linux into something that is beautiful, consistant, and flexible.  I find myself tweaking my volume settings just to get the nice notifications. 🙂

ACM talk tonight on Open Source development

I’ll be giving the Poughkeepsie chapter ACM meeting tonight on Open Source development.  Some recent experiences with github have got me thinking on some of the new patterns emerging out of Open Source development.  The talk tonight is a first attempt at trying to show the emergence of these patterns.  While I’m not sure I’ve got all the right art or slides for that, I’ve got some really good notes, so I expect this will be a very fun and lively session.

If you are in the Poughkeepsie area tonight (Monday April 20th), you should stop by.

What’s with all this Java complaining about AppEngine

I’ve seen all manner of people in the twitter verse complaining that Google’s AppEngine Java support is a subset of Java, and how that “breaks a decade of compatibility”.

Seriously?

I mean, really, seriously?!?

I’ve got to have 3 JVMs installed on my system to use ~ 5 java applications in total.  So I’m not buying the compatibility complaint, as “best practice” in the java world is to ship your own copy of the vm. 

And I definitely sympathize with the Google folks that really don’t want to be running millions of idle 2 GB memory footprint VMs.  It is basically free after all, so what’s up with all the complaining.  And, honestly, if it gets Java folks rethinking if they really need 5000 classes floating around at all times, I think that’s doing the world a favor. 🙂

1 thing you don’t know about me

Much like other facebook meme’s I passed on the whole 25 things cycle around.  But here is 1 thing you probably didn’t know about me: for grades 1 – 5 I attended a one room school house, and had the same teacher for 5 years.

The one room school house can be thought of as a historical throw back.  Prior to the invention of the automobile, you had to walk to school.  That meant that schools needed to be within the daily walking distance of a 6 year old, so the concept of the one room school was born.  A single teacher for a village, and a different school for each village.  With the introduction of the bus in the 1920s, most of these were wiped out in the face of progress.

But there were holdouts, typically in small rural towns.  I happened to grow up in one of these towns.  When I was in first grade there were 18 kids in the school, a single room, a single teach, and 6 grades.  That averaged 3 students per grade, but at this small of a sample size a grade might be 6 or even just 1 student.  Lessons were run in the front of the room, and students would then go back to their desk and work on some assigned tasks.  The older students were each buddied up with 1st and 2nd graders and helped them with reading assignments.  Recess was the same for all, and with that few individuals there was no room for cliques to spawn.  We were all there together.  Grades became a bit more fluid, at that level of individual attention you could be challenged individually based on your aptitude.  By the end of 2nd grade I’d started in on a 4th grade math book, but was with the rest of the 2nd grade class on other subjects.

By the time I got to the end of 5th grade, my teacher, Eula Bannister, who had been teaching in that school, in that way, for decades, also retired.  The school had shrunk to 5 grades at that point (population was going up, so 6th went to a neighbor town), and it was to be the last year of grade 5.  To me, leaving that system, there was some perfect symetry to that.  I owe a lot of who I am to that school, and that experience.  A big part of my personal drive came from a set of values that Eula inspired in me, over the course of 5 years.

Last week, during the annual school meeting, the town decided to close the doors on the Granville one room school house (I could wax eloquently on the fact that it was done by direct in person democracy, another value that comes out of rural vermont, but that’s probably for another post).  It was a hard decision for everyone, and a decision that was many years in the making.  There are so many challenges to keeping a school like that functioning, and correctly serving the students.  No matter how romantic the idea, the important thing is that students are being best served.  One of the huge challenges is finding a teacher with the range to handle that task, the energy to maintain, and the willingness to take the pay a small rural town can afford.  In this day and age, there probably isn’t a place for a school like that.

I feel special to have had this experience, knowing that much like the passenger pidgeon, and the mill wheel, it’s a thing of the past.  Granville’s school has done an incredible service over 158 years of operation.  I’m glad that I had an opportunity to spend 5 of those years with it.