You are currently browsing the monthly archive for August, 2008.
Spent part of the weekend hacking around in Rails documentation. Made my first core-ish commit as part of the docrails project.
- Capistrano 2.5.0 - With additional task-management goodness.
- GetBundle - TextMate bundle to get other TextMate bundles. Why didn’t I install this ages ago?
- RailsWheels - An attempt to build a licensing and commercial sales infrastructure for Rails plugins.
- Configatron 1.0.0 Released - General-purpose manager for configuration variables in Ruby applications. (via RubyFlow)
- AsciiDoc - The markup system being used for core Rails documentation.
- Source-Highlight - You’ll need this to get good output from AsciiDoc. Fortunately there’s a port, but the port is a bit broken. On OS X 10.5, I had to install the boost port first (sudo port -v install boost) and then install the source-highlight port (sudo port install source-highlight) to get it to work. Do use the -v switch on boost; it takes for-bloody-ever to build and that’s the only way you’ll be reassured that it hasn’t rolled over and died.
- AsciiDoc TextMate Bundle - Still in its early days.
- Rails Guides HackFest - I was actually writing before this was announced. Good timing for me, though.
It’s hard to be witty when your throat is on fire. Kids = colds.
- IE Death March - Another doomed attempt to kill off IE6. Heck, I’ve got clients who still need to support IE5 in some vertical markets.
- Why we bill by the hour - Doesn’t everyone work this way by now?
- Rails 2.x Configuration Cheat Sheet - Collected notes on a bunch of stuff that RDoc doesn’t pick up.
- Radiant CMS Sprint Weekend - A chance to spend a weekend hacking on open source code. October 25.
- Mysqlplus a new thread aware MySQL driver - Designed to make Active Record faster.
- MerbCamp - Merb is grown up enough to have a conference now. October 11-12 in San Diego.
I started tweaking a couple of other plugins to meet my needs. Repos on github: finder_filter and from_param. Neither is ready to merge changes back upstream yet.
- SQLite-Ruby 1.2.3 - Minor maintenance release of this glue bit.
- Mercurial binary packages for Windows and OS X - I needed to look at some code in a Mercurial repo and wondered how easy it was to install. The answer proved to be “very.”
- Distributed revision control with Mercurial - Now I need to find time to read this.
It looks like the universe may be poised to fill in another hole in my work schedule. Thanks, universe.
- Format CSS Online - Tool for applying a variety of formatting rules to CSS files, to make up for your sloppiness during development.
- Envy Casts - The latest addition to the paid Rails screencasts ecosystem.
- Cap 1.4.1? Go 1.4.2. Now. - An upgrade reminder for users of older versions of Capistrano. Fortunately for me, I finally managed to pull all of my own projects up to the Cap 2.x series.
- The awesomest filter and sort ever - Courtenay is playing with named scopes and searching on multiple conditions in edge Rails. It’s looking useful.
This is probably a good time to mention that I’ve done a bunch more cleanup on the google_analytics plugin.
- Zero to Production in 15 Minutes - Step by step guide to deploying a Rails application on JRuby.
- Comparing PHP to Ruby on Rails - A relatively even-handed look from the Less Accounting guys.
- daemon_controller: a library for robust daemon management - Another tool from the team behind Phusion Passenger, aimed at better coordinating daemon process management for production.
- Firebug 1.2 Released - The announcement, with a good summary of what’s new.
- What’s Hot on GitHub - A roundup from Ruby Inside.
- Mack 0.7.0 - Another of the Ruby web frameworks marches along.
- GenerateData.com - Tool for quickly building reasonable test data. 200 rows for free, after that you can clone the site or pay for an account.
- MySQL Tasks - Plugin to backup, restore, and more as Rake tasks.
Thanks to the FiveRuns folks for featuring me in their TakeFive interview series, and welcome to new readers.
- Persistent Django on Amazon EC2 and EBS - The Easy Way - Detailed instructions. With EBS, AWS is reaching some sort of tipping point.
- How to Fix your Rails Helpers - Some suggestions on refactoring.
- WICE Assignment Lists - Multi-select listbox interface for HABTM relations in Rails.
- Scout Checks in on Passenger - I’ve been looking for a Passenger-aware Rails monitoring solution. Not sure I’m ready to pay for Scout, though. (via RubyFlow)
- rspec_validations_expectations gem released - Check that your models contain the validations you want, without hitting the database to test Rails-generated code.
- DoS Vulnerability in REXML - Time to patch your Rails applications.
- Ruby Amazon E-Commerce REST Service API (amazon-ecs) - I used this to hook up some book stuff on my slowly-rebuilding personal site. It worked well.
- Maatkit - A batch of low-level MySQL tools.
- Everyday git With 20 Commands or So - The basics, though you don’t even need to memorize this much to get started.
- ZiYa - Spiffy SWF-based charting gem. Now at version 2.
I think it’s about time that I started tracking the changes in Edge Rails, even though I don’t understand a bunch of the code. Pushing myself is good for technical growth.
- Amazon EBS - Persistent storage that you can attach to an EC2 instance. Amazon pretty well defines cloud computing, despite everyone else sniffing around.
- Running MySQL on Amazon EC2 with Elastic Block Store - And here are some instructions for putting that storage to good use.
- 97 Things Every Software Architect Should Know - Darn, why didn’t I ever think of having my readers write my books?
- Developer Compensation: The New Reality? - A VC arguing that you don’t need to give startup developers stock options and such because developers are now a complete commodity. I don’t think things have quite reached that point, but it’s a reminder to continually look for areas where you can stand out.
- LessProjects - Project-tracking software from the LessEverything guys.
- Ruby Inside Gets Redesigned - And it looks good.
I’ve now reached the point where setting up a new Rails server at RimuHosting is almost routine. I may know a thing or two about sysadmin after all.
- JustHackIt - Folks looking for other folks to hack code with, for fun or profit. Proof that having an idea is not the hardest part.
- RSpec: It Should Behave Like - RSpec pattern advice from Robby Russell.
This post is a followup to one that I did a while ago on My Tools of the Trade. I typically have a lot of browser tabs open - as in, 50 to 100 simultaneously. But there are some that tend to stick open for most of the time, as I use them to manage, look things up, or otherwise run my business. Here are a few of those web tools that I find useful.
- Grand Central - Grand Central manages all of my incoming phone calls, directing them to my office line, my cell phone, and sometimes even Skype for me, as well as taking messages. I like the convenience of having just a single phone number. Unfortunately, I don’t like that Grand Central under Google’s ownership has become moribund, and I may well switch to one of their competitors that charges just to get better service and something that’s under active development.
- Cashboard - This is the tool we’re using around here for time-tracking and invoicing. It works fine, and I appreciate having an OS X Dashboard widget for time tracking. But if I ever find a good, networked, affordable client-side tool, I’ll probably switch; I don’t like shuffling financials off to the web.
- Nagios - Not strictly a web tool, as our Nagios server is running on an old laptop behind my desk. But since I monitor it via browser, it’s going on this list. Nagios is our server monitor, tracking uptime and ping times and free disk and memory and like that across a bunch of client sites. It’s a bit of a pain to get set up the first time, but after you learn how it works it’s fairly easy to spin up monitors for a new site.
- HopToad - I’m in the process of migrating our Rails sites from using ExceptionNotifier to using this free online service. Errors are just more manageable in a web UI than in an email interface.
- APIdock - There are a metric boatload of sites out there that offer browseable versions of the Rails and/or Ruby APIs. This is the one I’m using these days; the formatting is nice, the search is fast, and the user comments are getting useful.
- Working With Rails - I wander through here fairly frequently to see whether anyone in the Rails community has had good things to say about me. Hope springs eternal.
- github - I’ve got a few repositories hosted here (though our client-based work is on a private git server). I may still have a SourceForge account as well, but I don’t use it any more.
- Google Analytics - I’ve seen better analytics, but Google’s are pretty good, and the price is right. Plus, it ties into the work I’ve done on the google_analytics plugin.
- No Kahuna - Task tracking that’s simple enough to use with any client, even ones who would be overwhelmed by a traditional issue-tracking application.
- Hiveminder - We’re using this for shared task and assignment management for Web Worker Daily. It fills the need, though I think there’s room for a better tool.
Shaping up to be another busy week; fortunately the weekend was good for catching up this time.
- iCHM - Nice-looking CHM reader for OS X. Unfortunately I’m not finding that its search works as well as that in Chamonix.
- REST, I Just Don’t Get It - Heretical musings from Damien Katz. The comments are well worth reading. Also worth reading is Dare Obasanjo’s Explaining REST to Damien Katz.
- Use MacVim and rails.vim plugin to edit your Rails work - An alternative if you don’t want to drink the TextMate koolaid.
- GitHub RubyGems - It really is dead simple to publish a gem via github.
- GemPlugins: A Brief Introduction to the Future of Rails Plugins - And it’s easy to convert an existing plugin to a gem, too.
- App Update - Dashboard widget to track software freshness on your Mac.
I woke up today having dreamed some Ruby code. Even scarier, when I added it to the project, it actually worked.
- The Complete Guide for You to Become an Almighty jQuery Developer - Fat list of links.
- 12 Unit Testing Tips for Software Engineers - Pretty basic, but worth a quick skim.
- Build Better Pages with Firebug - A basic tutorial.
More and more in Rails I can say “Yeah, I did something like that on another project.” This makes life easier.
- References2 - Yet another Rails and such API lookup site, this one featuring AJAXy search for speed.
- Some improvements to Fluid Campfire scripts - For those of you using Campfire in a SSB.
- Editra - Free cross-platform programmer’s editor.
Looks like I’m covered on working hours for this month…next month is, of course, another question
- Conditional-CSS - Essentially a CGI preprocessor that lets you target different CSS for different browsers without the confusing syntax of browser hacks.
- IMG2JSON - Hosted app that extracts image metadata and returns it as a JSON string. (via Ajaxian)
Up before dawn with the child who slept through dinner. Fortunately, I’m an early riser.
- iphone-universal - CSS/HTML framework for iPhone web applications.
- Understanding map and reduce - Another tutorial on collection-gobbling functions. I think these might be the pons asinorum of Ruby.
- Adhearsion - Ruby-based virtual PBX management layer.
Yes, I’m still underemployed, despite some potential contracts on hold. If you’re looking for a Rails dev, let’s talk.
- Multiple Vulnerabilities in Ruby - Oh boy, more security to worry about. I haven’t seen anything definitive about Rails compatibility with the latest patch level that fixes these.
- Raphael - JavaScript library for easy vector graphics manipulation.
- Ruby on Rails Flashcards - From YoYoBrain.
- Ruby Hoedown Day 1 - Useful reporting from the Rails Envy crew.
- AuthSMTP - Professionally managed commercial SMTP servers.
- finder_filter gem released - Another way to DRY up your controllers.
- Chandler 1.0 - Amazing, they actually shipped. Looks like it could even be useful.
- Announcing a newly developed database adapter for MonetDB - MonetDB being a high-performance database that I’m ashamed to say I had never actually heard of before. But you can get to it from ActiveRecord now.
- Localizing Rails - A Tutorial embedded in an application. (via RubyFlow)
(hat tip to Kevin Skogland, for kicking this off by posting his tools of the trade)
As of mid-2008, here are the tools I tap most often in building web sites and doing my other work:
Hardware
I do the bulk of my work on a 4-core Mac Pro with 12GB of RAM and two 500GB hard drives, as well as an external 500GB drive. While the Mac itself came direct from Apple, most of the extra bits did not. I’ve never complained about spending money on upgrades that make me more effective, but compared to the competition I find much of Apple’s peripheral lineup overpriced. So apart from the core box I have:
- Extra RAM from Crucial. I’ve never had a problem with them, and these days they even have a system scanner for Macs that makes finding the right memory sticks painless.
- 2nd hard drive is a Seagate drive sourced from NewEgg. There are cheaper sources for drives, but NewEgg’s service has always done right by me in case of problems. I’ve probably used every major manufacturer of hard drives over the past 2 decades, and Seagates have consistently been most reliable for me.
- The external drive is a G-Drive from G Technology. Their pricing is better than some of their better-known Mac competitors, and it’s been quietly reliable.
- Dual 24″ monitors from Dell. Apple’s Cinema displays are prettier, but I’m not willing to pay that much for pretty.
- Matias Tactile Pro 2.0 keyboard. The stock Mac keyboard is crap (as are just about all stock keyboards these days). I type faster and more accurately on a keyboard with good click and spring feedback, and this is the best I’ve found for the Mac - nearly as good as the Unicomp keyboards for PCs. The Tactile Pro does have a problem with spurious characters if you type certain key combinations quickly, though, and I’d happily swap it for a competitor if one existed.
- Logitech Cordless Trackman Optical trackball. The stock Mac mouse is also crap. I’ve also found over the years that I have a lot fewer RSI symptoms with trackballs than with mice. I do switch back to the stock mouse on those rare occasions when I have finicky photoshop work to do.
- Fujitsu ScanSnap S510M desktop scanner. This has finally let me get to a near-paperless office.
I also own a 15″ MacBook Pro with 3GB of RAM for the rare (these days) times that I travel. As with the desktop box, the extra RAM came from Crucial.
Backups
I don’t fill up even a single 500GB drive with my current working software and projects. Everything else is a part of my backup strategy:
- The second 500GB drive in the box mirrors the first. This gives me reasonably instant protection against a single drive failure.
- The external 500GB drive holds Time Machine backups and nightly SuperDuper backups. This gives me protection against accidental deletions and complete computer meltdown. Time Machine isn’t 100% reliable, but I don’t need to recover accidentally deleted files often so it’s worth filling otherwise-unused space with its work.
- Servers at Amazon S3 hold yet another backup of my most critical files via Jungle Disk. This is my “in case of house fire” backup.
Yes, it seems like an absurd number of copies of data. But over the years I’ve learned that combined failure modes can take out more copies than you might think. Apart from the recurring Amazon S3 charges (about $20 per month) all that went into this was one-time costs and a tiny bit of configuration time. It’s cheap insurance.
Software
Thanks to Slife, I can list software in the order that I actually use it, from most-used on down. This doesn’t necessarily reflect its importance, but it’s a useful guide. I use a lot more software than this, so I’m only listing the ones that are most-used and that have a direct impact on my development (or that I have otherwise strong opinions about).
- Firefox - I live in the browser - and the browser I live in is not Safar (and not, for the love of God, in Internet Explorer). The wealth of extensions for Firefox easily tips the balance for me. Among my most-used addons:
- 1Password - With the number of sites I use these days (that’s another discussion), password management is a necessity. Though I’m leery of locking up passwords in a proprietary database, synchronization with their online My1Password service removes some of the worry for me.
- Adblock Plus - The main reason the internet is littered with ads is that everyone is playing “emperor’s new clothes” and doesn’t want to admit that they don’t work. Soon enough the entire model (and Google’s share price with it) will collapse. Meanwhile, I don’t feel any ethical duty to look at them or let them take up my bandwidth.
- BugMeNot - I don’t feel a need to go through registrations so you can send me spam or tap into my demographic, either.
- CS Lite - Everyone can use a cookie manager. This is the one that I like.
- CustomizeGoogle - Zillions of options to make Google more usable. It’s one of those extensions that I don’t remember I’m using until I sit down at someone else’s computer and it’s not installed.
- CyberSearch - Much improved integration for Google search into Firefox 3’s address bar.
- Faviconize Tab - I run with a lot of tabs open in Firefox (typically 50+). Using this to shrink my most-used tabs to the width of their favicons makes everything more findable.
- Firebug - If I had been using any other browser, this would have been enough to make me switch to Firefox. HTML, CSS, and JavaScript debugging rocks.
- Greasemonkey - I only run a few Greasemonkey scripts, but when the design or layout of a particular site pisses you off, it’s the easiest tool to reach for.
- HashColouredTabs+ - If you want to faviconize tabs from sites that don’t supply favicons, this is an easy way to make them more visually recognizable. One tip: make localhost:3000 something like a red circle so you never again mistake it for a production site.
- HttpFox - HTTP header analysis in Firefox. Not needed all that often, but irreplaceable when it is needed.
- Nightly Tester Tools - If you run anywhere near the edge of Firefox, this one is essential, simply because it gives you easy ways to make other extensions work again.
- PDF Download - PDF management the way that it ought to be baked right into the browser. Like, choose at click-time whether you want to view, open, or download.
- QuickDrag - Mouse-gesture searching. Saves me ten seconds at a time a dozen times a day.
- Weave - Synchronization for multiple Firefox copies on different computers. As of the current beta, it still kinda sucks, but it’s better than anything else I’ve tried.
- Web Developer - Thanks to Firebug, I don’t use this nearly as much as I used to, but there are still tools here (like outlining tables and cells) that come in handy.
- TextMate - I used to be a heavy-duty IDE user, but that was back in the old days. With Rails, I’m much happier close to the code, in a text editor. This is the text editor to use. I’ve installed a few extra bundles that aren’t in the core distribution:
- The git bundle - Pretty much a necessity if you’re doing Rails development these days and have contracted a case of the new sexy.
- The Ruby on Rails 2.0 bundle - From the irrepressible Dr. Nic.
- Cyndicate - I am a heavy, heavy RSS consumer. There are not many clients that work when you get up into the hundreds of feeds and hundreds of thousands of stored items. This is the one that works the best for me, though I’m starting to push its limits.
- Twitteriffic - I’m quite active on Twitter, but the web user interface is pitiful. Fortunately, thanks to this desktop client, I don’t need to put up with it.
- Mail - I use Apple’s built-in mail application, though I’d give it at best a C+; everything else is worse. Some of the annoyances can be ameliorated with the right Mail add-ins:
- DockStar - The killer feature here is one-click access to individual folders from the menu bar.
- Mail Attachments Iconizer - Especially useful if you don’t want Mail to pretend it’s smarter than you about how to display attached PDFs.
- Related Messages - Plugin that builds an index of all your mail and automatically shows related messages in a sidebar. Since switching to this, I almost never have to search for mail any more.
- GPGMail - PGP-authentication plugin. You probably could build something from scratch, but why bother?
- Terminal - In Windows, I tried to avoid the command line. In OS X, I embrace it, often having half a dozen ssh sessions running at once. Perhaps I’ve matured.
- MarsEdit - I do a fair amount of blogging. I can’t say I’m in love with any of the desktop clients, but I’m at least in like with this one. It beats the hell out of WordPress eating yet another post.
- Navicat - None of the cheap or free database clients come anywhere near Microsoft’s tools in terms of functionality and usability, but Navicat is not bad for MySQL.
- CSSEdit - CSS editor that simply blows away the competition. I never found anything even remotely comparable for Windows.
- Chamonix - I occasionally need to view Windows-style CHM help files on OS X. None of the options for doing this are really good, but Chamonix at least works.
- EagleFiler - OS X has way too many applications for organizing heaps of miscellaneous information and documents. This is the one I use.
- Changes - Paying for a diff/merge application seems absurd, but I like the looks and functionality of this one. And no, I don’t really need all the extra features in Beyond Compare.
- GitNub - Working with git repositories? Want a native GUI interface? This one is worth a look.
- OmniOutliner Pro - My brain often thinks in outlines. This makes them prettier.
- CoRD - Luckily for me, the days that I’ll have to manage Windows servers remotely via RDP are drawing to a close; I’ll be decommissioning the last one at the end of the year. Until then, this is a lovely client.
- xScope - On-screen design and layout tools. The radar/lasso dimensions tool is the killer here.
- Pixelmator - Graphics apps are another area where OS X is oversupplied. I use PhotoShop (grudgingly) for heavy lifting. Pixelmator is the one that I reach for for light editing.
- Transmit - My FTP client of choice. Yeah, I don’t much like the command line or the browser for FTP. It’s all about shaving seconds off my thinking time.
- TaskPaper - I have tried a zillion to-do list managers, including many of the GTD heavyweights. This is the one that I actually use (though there’s no excuse for Apple’s failure to build usable task management into the operating system).
- Spike - OS X clipboard sharing. Useful if you’re wrangling multiple computers.
Hosting
- PairNic - I’ve been using Pair as a registrar for roughly forever. They’re not the cheapest by any means, but they give me good service and let me manage my DNS, and their tech support has been superbly responsive when I’ve needed them. Plus they don’t waste my time trying to upsell me.
- RimuHosting - Linux servers with root access and the Rails stack preinstalled if you want it. $30-$50 per month depending on your needs. I’ve got six machines I’m managing there at the moment. Another company with great customer service.
One of these days I’ll do an entry about the various web applications that I use constantly, but this one is already long enough. In the meantime, if you want to post your own similar list, I’d love to know about it - leave me a note in the comments. And feel free to compliment my choices or call me an idiot while you’re at it.
I think I might actually be getting this site deployment thing under control.
- ar-extensions 0.8.0 - Extensions for ActiveRecord including to_csv, bulk import, and a pattern for writing more extensions.
- Sass with Rails - Avoiding Disappearing Stylesheets in Production - A good thing to know about dynamic stylesheets.
- Exceptional - Another hosted exception-tracking service for Rails applications, this one in beta.
- Content Management Rails Kit - Commercial code to add a pay wall to a Radiant site.
In my continued quest to be recognized as being at least mildly knowledgeable, I’m now contributing a Rails column to ADTmag.com.
- Hackfest - The Rails team is encouraging contributions to the core code by giving stuff away.
- Hab.la - Bridge to chat with your website visitors via IM. Looks interesting.
- Let’s Put Some Lipstick on this Toad - The latest changes in Hoptoad, to which I am in the process of migrating error reporting for most of my own Rails apps.
- TextMate Plug-in: Project Plus - Featuring SCM status badges for subversion and git, among other things. (via TUAW)
- Craken - Rails plugin to manage rake-centric cron jobs. (via Giles Bowkett)
Life would be simpler if we never actually had to deploy the code we wrote, wouldn’t it?
- RSpactor 0.9.16 - Fresh rewrite of this autorun app for your RSpec specs.
- 37Signals Live Debuting Tomorrow at 3PM CDT - That’s today now, actually.
Today’s hint: If you’re running a Rails app on Debian, and ActionMailer is failing with mysterious “Net::SMTPAuthenticationError: 535 5.7.0 Error: authentication failed: generic failure” errors, check to make sure the saslauthd service is running.
- The Rubyist - New technical magazine with a Ruby bent. Available for $8 in print or $3 in PDF.
- RestClient 0.6 - Now including an interactive shell that lets you replace curl with this Ruby-speaking package.
- Google Maps API Tutorial - Tons of information, better organized than on the official site.
- Prawn 0.1.0 - New pure-Ruby library for PDF generation.

