- Fascinating panel discussion on configuration management from #osbridge 2009 http://bit.ly/amcsq #
- Twitter is too much over capacity to allow me to upload a profile picture. Very annoying. Why can't they just use gravatar? #
I’m excited to say that I started a new job last week at Puppet Labs. This means I’m back to working with Ruby code (I don’t think I’ll miss Perl much), not going to be doing much web development and pumped to be working on an open source project. The development team is small and really smart, and it’s fascinating to see how things operate in a startup company that’s based on a widely used, mature code base with a lot of community involvement.
There’s a lot of new things to learn, and finally working on a Mac and retraining my fingers on where the control key is may be one of the hardest. Just kidding, although that has been more of my brain power this last week than I’d like. Some of the cool new areas I’m looking forward to exploring in Puppet include parsers (Puppet has it’s own language), client server models other than with a web browser and working with directed graphs (finally going to get a chance to use all that graph math from college).
I’ll miss my coworkers at Rentrak and wish them luck with their code. I’ll be going to Open Source Bridge next week, so I’ll see some of them there I assume.
I’ve run across Stack Overflow plenty of times in the last year or so while looking for answers, but until now I hadn’t been motivated to sign up and post questions and answers. I finally decided it might be a good thing to try out when I saw they had a jobs section, because presumably the company you’re applying to might be impressed with your participation on the website. So I signed up thinking I’d give it a try and quickly lose interest as I always have participating in message boards or IRC since I always found the signal to noise ratio to be very low.
However, the simple little reputation system they’ve implemented on Stack Overflow has kept me interested for a least a couple weeks – probably will for longer. The reputation points makes me feel like it’s a something of a game where I’m trying to improve my score. I’m just over 400 reputation, and have started to look around to see what silly little badges I might be able to easily earn. I’ve even put up one of their silly flair badges on this site for now. We’ll see how long that stays up.
In fact, I think the minor addition of these badges helps make the whole reputation system more fun than a lot of other web sites that do ‘points’ or ‘karma’ or something else to measure your participation. I’m specifically thinking of the Y Combinator Hacker News Site that has these points. I tried to get some for a while, but I feel like there’s too many people who just sit around posting links and spouting out useless comments all day to compete for mind share. Even stack overflow suffers from this a little bit, where often the first person to answer gets a ton of points even if a better answer comes along later. Overall though, the community feel is still really good and there’s a nice balance of users who have enough earned power to do things to organize the site, and users who just need an occasional question answered. I’ll have to remember this as resource when I get stuck on things.
Update – Jan 3 2010 – The initial fun has worn off some, partly because you have to be almost the first person to respond to questions to stand a chance of getting your answer accepted. I just don’t have the time to watch for new questions that frequently. What I will say is that there’s a treasure trove of great answers that I’ve been using as a resource more and more often. It’s hard to even come up with original questions to ask for points. Guess I need to start working on harder problems – or at least more obscure ones
If you’re wondering what happened to this site, I decided that I was sick of trying to use Mephisto for blogging software. I love Rails development, but Mephisto was a pain in the ass and a major memory hog compared to a much more stable Wordpress. It was taking down my slice pretty regularly and discouraging me from posting because it was a pain to use comparatively. I haven’t moved the old posts over yet, but they will be coming in the next few weeks. I’d move them sooner, but they’re mostly about stuff that is long since out of date. I’d say I hope to post more frequently, but I’m not entirely sure that’s true. We’ll see if having an easier to use blogging system installed precipitates more frequent posting.
I’ve got a new job and it’s working almost completely in Perl. Who’d have thought? Fortunately, it really is true that if you know one programming language fairly well, you’ll understand others fairly easily. Modifying code in Perl is easy as long as I have other code to refer to, and I often forget it’s a new language. Learning all the names, faces and practices in my new job is much harder than learning a bit of new syntax. However, if I had to sit down and write something in Perl from scratch it would not go well.
There’s definitely a few things I’ve noticed about Perl that I don’t like compared to Ruby:
* Sigils. I keep forgetting to prepend my variables with those $@% sigils. That’s not me cursing there, those are the sigils for scalars, arrays and hashes. The worst is when you’re references the whole array (@foo) you use a different sigil than when you’re referencing a scalar element in the array ($foo[0]).
* Objects feel like a hacked up addon to the language. You have to “bless” things to make them objects and you’re always passing around references to $self to object methods. You can’t make methods private. Weird stuff.
* No interactive shell built in. I loved having irb to try things out when I was learning Ruby – heck, I still do. Fortunately, after a bit of searching and bad advice on just using the Perl debugger I found Perl Console.
* Always needing to say “my variablename” instead of just “variablename” if I want local variables. It seems like variables should be local by default and you say something if you want to make them local.
There’s some things about Perl I’m not sure if I like or dislike yet:
* Default variables. Strangely named variables like $_ and @_ pop up everywhere. The idea is if you don’t want to come up with a name for variables while you’re iterating or passing parameters, you don’t have to thus saving all that typing and thinking. However it certainly makes the code harder to read for those who don’t know Perl and I suspect it might make things always harder to read even once I get used to it.
* Regular expressions everywhere. This will be good for me to get better with this powerful feature, but damned if regular expressions aren’t ugly.
* There’s always more than one way to do something. This is true in most every language, but Perl seems to take a lot of pride in it, and often the idiomatic Perl way of doing something is quite a bit harder to read than the non idiomatic way.
The main thing I like about Perl so far is that the Perl community seems to have a sense of humor. Perl books are always making jokes and variables in Perl code are given entertaining names.
Aside from the new language difference, the new job is great for me to get used to coding in a large codebase and with teams. We use quite a few Extreme Programming practices like test driven development, and even more impressive, pair coding. These practices more than make up for anything I don’t like about Perl.