This blog is now obsolete. Go to scott.arbeitman.id.au for all new content.

1

Bicycle Registration Article in The Age

| Sunday, May 17, 2009

Update: Someone has noted in the comments that Flip is female. It was probably Flip herself. Apologies to Flip for this unfortunate mixup. This is why I'm not a journalist. I also removed some harsh wording that was, frankly, a inappropriate.

In today's age, Flip Shelton talks about cyclists on Melbourne's roads:

AS A cyclist, I say bike registration is a must — but not so narrow-minded car drivers can ensure that the few cyclists who flout the law can be held accountable.

OK, so he she doesn't exactly get most people on his her side by calling them narrow minded. I'm so ambivalent about this article that I just had to put out there for discussion.

On the one hand, he she makes a good point the drivers do not understand what it is like to riding a bicycle or a scooter with cars. He She argues that since she occasionally rides a scooter, she has a better appreciation for those on the road riding scooters.

This seems like common sense, but consider this. After riding my scooter for a couple of months, I was nearly hit by car on King Street who, without indicating, switched into my lane, forcing me to swerve and stop short. I fell and received some nasty scrapes and bruises. A few scars remain, reminding me to always listen to my mother. Who was the driver that hit me? A very apologetic motorcycle rider who happened to driving a car that day.

So strike one against Ms. Shelton. Let's not go and base public policy on your singular experience.

Ms Shelton recommends that all road users gain experience cycling, driving and riding a scooter. But come on! This is surely too narrow. Has he ever considered the plight of a tram user who alights on Swanston Street at 9am to be nearly hit by a minivan driving by Chinese tourists (also me). And what about those pedestrians that have to dodge cyclists on the footpath who try to squeeze in between families with little kids as they are walking down Lygon Street near the busy pizzerias (also me, minus the kids).

Strike 2 for not being ambitious enough.

And finally, as the above exert says, Flip wants me to pay her for assuming the risk of riding a bicycle. She thinks we should be thankful that she is decongesting our roads. How noble! What about those who chose to live close to where they work? Should we receive government incentives? (In fact, the converse is true; new homes, usually in the outer suburbs receive the highest grant from the government). What about public transport users? To think we actually pay to use the tram! I've got it all wrong: the ticket machine should be paying me for staying off the road!

Strike 3 for being so self righteous.

Let's have a little compassion, sure. You ride on the road and not on the footpath and I promise to try very hard not to hit you. For the most part, I'll take the tram, relieving congestion on the road for cyclists and cars alike. And I'll continue to pay for it and not feel too bad about it. I'll occasionally assume a higher risk than you by riding a scooter, but I won't expect a cent from you. And yes, I have paid a premium to live close to the city too. I enjoy my walks to the supermarket.


0

Apologies for the Reposting

| Friday, May 15, 2009

I edited an old post to fix some minor typos and most of my posts were redelivered via RSS yesterday. Sorry if this annoyed you, but I can't promise it won't happen again.


5

Buying a Puppy

| Thursday, May 14, 2009

I've settled into my new apartment and have recently started a new job. The next thing on my to-do list was getting some company. This is my first time living alone ever and while I'm getting used to it (and frequently have friends over), I just couldn't resist the urge to get a dog.

I had considered many different breeds and did quite a bit of reading. In the end, I had narrowed it down to a few pure and "designer" breeds including pugs, puggle (pub x beagle), pugalier (pug x cavalier king charles), samoyed, labradors and golden retrievers. And yes, I know there is quite a variation between the beginning of that list and the end.

In the end, I saw a litter for sale of a combination just too good to refuse: a samoyed crossed with a gold retriever (a "samriever" if you like).

I put a deposit on "Tigger", a male samriever about 2 weeks ago. He's about 4 weeks old now, and he'll be coming to Melbourne in a couple of weeks. He's a picture I just got from the breader.


1

Moving to Ruby Full Time

|

I recently started new job, which has involved near full time Ruby on Rails development. I have previously done some minor projects in Ruby and Rails, but for the most part, I have been using some combination of ColdFusion, Java and PHP for most of my professional career. I thought I would note some of my observations about using Ruby as compared with some of the other languages.

Readability: Ruby is well known as the "glue that doesn't set" meaning that Ruby code remains easy to read, even after a leaving it for a significant amount of time. This is hard to argue with. Anyone who has ever explored a Rails model or read an RSpec test can easily see some of the virtues of Ruby. Compared to most language, Ruby wins hands-down. But, the problem arises when it comes to

What-the-hell-is-going-on-ity: The readability of Ruby comes from its many metaprogramming features. RSpec does a great job of adding the right methods to Ruby classes, as does Rails. But this means that a lot of code or methods are added for you. Control flow and the definitions of methods become difficult to pinpoint. The more simultaneous frameworks you use, the greater chance of confusion. All this while your code remains quite easy to read. But what about trying to debug or add new features. This is where the problems start to creep in. By using the much more verbose Java, we can still have our dependancies documented and explicitly referenced in our code. Yes, this creates noise which makes our code harder to read, but it also leaves breadcrumbs as to what is happening.

Community: This is sometimes overlooked when considering which language to learn. It doesn't just matter the size of a community, but the quality of it. ColdFusion has a relatively small community, but is active and friendly. I can easily name the hot-shots of ColdFusion and I can subscribe to their blogs with too much information overload. In contrast, the Java community is probably too big. Frankly, I wouldn't know where to start when looking for blogs to subscribe to.

Ruby is a funny creature. The Ruby community seems small. On the other hand, the Ruby on Rails community is large. It's rare to find a Ruby programmer who doesn't use Rails. And Rails certainly has its "key people" and finding Rails tutorials and podcasts is pretty easy. You're not likely to find such a wealth of knowledge for most other frameworks like Model-Glue or Spring. But if you're interested in Ruby qua a programming language, you can get a great start here, but good luck after that. This can keep you from writing really excellent Rails code for quite some time, somewhat delaying superior readability of your Rails code.

Perception: Justified or not, ColdFusion gets a bad rap as dying and/or expensive platform. I've been hesitant to dive head first into the world of ColdFusion since I'm unsure of its future. Ruby, by all accounts, is, has been and will continue to be on its way up in the world. Rails too. With its adoption on the JVM and .NET, its attraction will only grow. Java, in comparison, seems stale and while its probably not going anywhere, it's best days are probably behind it.

Employability: Most Ruby jobs are Rails jobs. Knowledge of other frameworks are usually not required. Although Rails incorporates features from a number of frameworks in the Java world (Hibernate plus Spring MVC, for example), it is still a single framework. You either know Rails or you don't, and it is rare you will receive a Ruby language exam when applying for a Rails job. In contrast, Java jobs often require in depth knowledge of Java (garbage collection, intricacies on serializability, the Liskov Substitution Principle, etc) and knowledge of several Java frameworks (Java EE, Spring, Hibernate, Axis or whatever). This is a lot know, and it forces Java programmers to pick their niches early in their career and makes it hard to break out of it. For example, can you really go from being a Spring middleware guy to write UIs using the Google Web Toolkit? Not easy, to be sure.

ColdFusion has the opposite problem: if you know the language, that is usually sufficient. Sometimes, experience with an [any?] MVC framework is desired. Of course, if you know Rails, for example, then you do know an MVC framework and really shouldn't hesitate to apply.

Sum it All Up

So what does this all mean for you? Well, if you're interested in the web space and you don't mind somewhat limiting yourself there for the time being, Rails is a good place to start. But because you probably don't know Ruby of Rails, there is going to be a steep learning curve.

If you have confidence in ColdFusion and its future, I have certainly enjoyed my team in that space, but you should really force yourself to understand and integrate with the Java world that powers it. That should cushion you, just in case pessimists like me are right. Learning an MVC framework like Model-Glue, or learning to integrate with Flex front-ends would be time well spent too.

If you've just finished university, chances are you already speak Java. This is great, but is really just the beginning of the skills you'll need to work in the Java world. Learning a couple of Java frameworks (Spring and Hibernate go well together) should help you find that first good job.

If you are otherwise an experienced Java guru, look at Rails with JRuby. You might realize you have been writing way too much code that nobody else can read.