Posted by Kev.in
on November 29, 2007
Over at Rails Authority I use a great client-side syntax highlighter called SyntaxHighlighter to make code examples look nice, but it doesn’t support Valid XHTML , so I enhanced it to handle an XHTML-compatible style, e.g.:
<pre>
<code class="code xml:nogutter">
Your IP address is <%= @client_ip %>
</code>
</pre>
(Inspired by Ernest’s post, linked above.)
Continue reading…
Posted by Kev.in
on July 16, 2007
Posted by Kev.in
on July 07, 2007
For the last few months I’ve worked tirelessly on my pet-project-cum-fulltime-startup. The cadence of my work has accelerated in recent weeks as I have put myself under more and more pressure to “go live.” I have pulled all-nighters or crashed into bed at 5am more frequently than I’d like to admit. Through the neglect of non-essential errands, my car has developed a thick film of grime on its exterior and my hair has become shaggy and unkempt. My eyes are permanently bloodshot. My dog no longer reacts to the word “park.”
The only guarantee about working tirelessly is that you will end up tired. And maybe a little cranky. Check, and check.
But despite these tribulations, this experience has been rewarding and worthwhile. I love what I’ve built, and I hope the world does, too.
This weekend I am focusing all of my remaining energy on launching. In the end, the feature set is going to be well beyond what I had envisioned for the initial launch — a shortage of external deadlines and product managers leads inexoriably to an abundance of features.
Also, as I like to read about the plumbing and machinery behind web pages, I hope to have a chance to explain all the details of how I went about building the service. Since I’m a one-man team, I’ve been dependent on time- and money-saving strategies, including technologies like Ruby on Rails, Amazon EC2, Apache Solr and Ubuntu Linux. That, and more, in a future posts.
For now, sleep.
Posted by Kev.in
on May 17, 2007
I managed to snag a secondhand ticket on last week and drove to Portland yesterday for RailsConf ‘07. Today was “tutorial day.” As Jason Hoffman noted in the first half of the day, “tutorial day” is a bit of a misnomer; it’s simply a day with longer sessions.
Speaking of misnomers, there wasn’t enough thought put into the title of Jason’s session Scaling a Rails Application from the Bottom Up. Apparently I wasn’t the only one surprised to be listening to a survey of IT /datacenter infrastructure best practices — good advice, but I think it would have been more relevant to more of the audience had he told the story of growth, explaining what his team did at each breaking point to address the problem either within the application or through infrastructure improvements. I still enjoyed it because I’m a recovering IBM “systems analyst” and I dig ultrascalable architecture. Plus, Jason is a compelling speaker.
The afternoon session with Jamis Buck was closer to my expectations. Having used Capistrano for some sysadmin tasks some time ago, I was reminded just how endlessly useful a tool it is. Yes, there could have been more exploration behind the recipes, but considering the diversity of the audience, I think it stayed at the right level of detail. The only fault was Jamis’ inexplicable disability when it came time to switch between presentation and demo screens. I’m not psychic, but I think I felt the vibes of everyone in the room mentally screaming “APPLE-TAB!! Goddammit!!”
Some other observations about the day:
- Oregonians actually merge out of a merge lane well before the lane ends (we Californians know you’re suposed to drive as fast as you can to the very end of the lane). I drove today but tomorrow I’m taking light rail.
- Portland traffic sucks as much as Bay Area traffic.
- Oregonians take environmental stuff seriously: the headline of today’s paper: Paper or Plastic? It was an exposition of the benefits and drawbacks of each. Note to self: put newspaper in recycle bin.
- I recognized some guy in the RailsConf crowd this morning, then I realized he was the Rails Guy. Sorry dude, you’re now a minor celebrity in this world and you will have people staring at you at these events.
- My 17″ Powerbook is not a “laptop” by modern standards. I can, however, grill a mean omelette on its underside.
- At 30, I bet I’m at least a standard deviation above the mean age. Dammit.
- My choice of wine this evening was less than successful. It was so nasty that I abandoned the bottle. Wilamette Valley Pinot Noir recommendations, anyone? Might have to hit up the wine room at OCC tomorrow.
- My beer selection this evening was much more successful.
Posted by Kev.in
on February 14, 2007
I used to be an above-average programmer. I started coding BBS utilities in Pascal when I was 13, and eventually got to be pretty proficient with algorithms and problem solving. I even won a team programming contest back in high school. By the time I graduated from college I was proficient in C and C++, Java and Perl. I was confident in my abilities, and even today I don’t think I was unjustified in my optimism.
When I graduated and moved to Sunnyvale in 2000, I took a Technical Support job at Ariba. I was under the impression that the job would eventually allow for a transition into development after some time. But let’s just say my timing was sub-optimal: the stock market, the job market, and the economy began swirling in the toilet the month I started, and I spent the next 4 years on the front lines supporting Ariba’s procurement network and applications. I worked with a great bunch of people, learned a lot and had some limited opportunities to write code, but I couldn’t help but feel my skills slipping away.
In 2004 I took another job at another company, but it didn’t deliver the development role it claimed to be offering. Instead, it was heavy on FTP but light on Java; it demanded unreasonable personal sacrifice as the status quo. While it is true I’ve learned quite a bit about Enterprise IT, system administration, project management and sales, deep down I know that tailing logs and copying files late on a Friday night can’t be my raison d’être.
So here I sit, many years since I’ve written code seriously; years after I accepted my fate and put my programming hat in mothballs. Yet the curious, creative fire still burns. I still read development blogs and books; I still learn about new frameworks. Either I am in denial, or — maybe — I could relearn what I’ve forgotten? Train myself anew? Become the headstrong, independent and infinitely capable developer I thought I’d be?
Can I reestablish proficiency as a coder? I’m betting the farm on it.