Double Shot #268
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)
Double Shot #267
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.
Double Shot #266
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)
My Tools of the Trade
(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:
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:
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).
Hosting
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.
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.
Double Shot #265
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.
Double Shot #264
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)
Double Shot #263
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.
Double Shot #262
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.
Double Shot #261
New months always look so promising.
- Functional Programming and Looping - An argument for choosing the right iteration structures in Ruby.
- Firebug Lite - Get at least some of the Firebug goodness in non-FF browsers.
- Magic Thumb - $40 commercial JavaScriptto get that fancy web 2.0-ish enlarging thumbnail behavior.
- Robots.txt Syntax Checker - Spots errors and gives plain-language explanations.
Double Shot #260
Thanks for all the response, somewhat-less-faceless audience. I shall endeavor to find more content of interest to giant killer robots now.
- CSSRound - Automated generator for rounded-corner background layouts for your CSS/HTML needs.
- The Survey, 2008 - From A List Apart, trying to get a sense of the current state of the web design and development community.
- DocBox - Wikified editing for RDoc source. (via Ruby Inside)
- More Info on Vertebra - The P2P cloud computing control software coming soon from EngineYard.
Double Shot #259
Feedburner says this site has 1600+ subscribers now. I'm boggled. Who are all you people?
- CronEdit - Ruby library for editing crontab files. Given the trouble I have doing that by hand, I need to keep track of this one.
- Hampton's Ruby Survey 2008 - An attempt to take a snapshot of the Ruby community. It'll only take you a couple of minutes to participate.
- Hoptoad - New app for tracking Rails applicaiton errors via a web service and online reporting, rather than via email. More details here. I tried it out, and I think I'll be using it on a variety of projects.
Double Shot #258
Without Mondays to absorb all the extra email, Tuesdays would be a disaster.
- Fetches: Bringing your ActionController its Slippers - Rails plugin to dry out the plethora of @foo = Foo.find(params[:id]) calls that litter controllers.
- Announcing Cruise - ThoughtWorks are out with a new commerical continuous integration product that appears to compete directly with CruiseControl.
- Introducing ActivePresenter: the presenter library you already know - Presenter pattern implementation for Rails that feels very much like ActionController. (via RubyFlow)
- rspec-on-rails-matchers - Potentially useful addition to RSpec, though looking at the project network it doesn't look like stuff has been merged back to the master copy lately.
- Open Source Rails - Collection of Rails applications, with a fresh design.
- Simple Localization in Rails 2.2 - A look at the coming feature. (via RubyFlow)
Double Shot #257
This weekend I pushed out my first plugin, user_event_logger. Suggestions welcome. Votes of confidence welcome on Working With Rails, too.
- Capistrano Gotcha - Turns out cap deploy:setup doesn't use sudo, which explains an issue I've been having on our servers. This mailing list post shows how to work around that for creating the initial folders.
- This Week in Rails - If you like my short pointers to stuff, there are plenty more here.
- Evoluent VerticalMouse - I suspect it might be smart to have one of these around for variety.
- Kawaii: A web-based utility like script/console - Just like the title says, with some prettyprinting skills.
Double Shot #256
I started banging together another plugin to release last night. Hopefully I'll get it out there in the next couple of days.
- New to Git? - GitHub points to a bunch of tutorials.
- Custom 404 Action in Rails - A dynamic approach.
- Introducing Shadow, a Rails Plugin - For maintaining Facebook-style activity lists.
- Tutorial: Creating Plugins in Rails - Useful despite a few typos.
Double Shot #255
Elegance tradeoff: store a hashed confirmation code, or regenerate across all unconfirmed users when a confirmation hit comes in? Hmm...
- DNS Checker - If you're worried about the big DNS exploit that's vaguely rumored, you can check your own server's vulnerability at Dan Kaminsky's site.
- Veteran Developer Ditches Microsoft for Open Source - Eek, I've been profiled. Nothing you haven't seen here before.
Double Shot #254
When was the last time you wrote a web app that didn't depend on some service or site that's ultimately out of your control?
- Django 1.0 Alpha Released - The folks on the other side of the fence continue to make good progress.
- RedCloth 4.0 Released - Major update to this text-processing library.
- RailsDB - Rails-based database-management tool. Version 0.3 was just released.
Double Shot #253
I have spent too much of the last few days understanding why CSS designers don't like IE6.
- Nginx Upload Module - Faster handling for uploaded files in Rails apps using nginx.
- Mobilize Your Rails Application with Mobile Fu - Automatically detect and adjust for mobile browsers.
- Gist - Like Pasties, but backed by GitHub.
Double Shot #252
It was a working weekend for me, but apparently a writing weekend for lots of other folks:
- OpenX ad server API with Ruby - I could have used this a while ago.
- Little green friend - Thoughtbot is getting ready to introduce a web-based replacement for the ExceptionNotifier plugin, called hoptoad. Looks interesting.
- Inept Recruiter - The story of a technical recruiter who managed to spawn an entire Rails dev mailing list through poor use of the cc: field. I had my own inept recruiter yesterday - wanted to hire me to work at Microsoft. Um, no.
- If you work for Apple, we need your help... - The lockdown of the iPhone extends to blocking book authors. Bah.
- Authenticate like SSO with ActiveResource - One approach to letting one Rails app provide authentication services for another. I don't think we've see the end of this discussion yet.
- Blueprint 0.7 - Looking for a CSS framework. It seemed like investigating the most widely-known one was a good starting point. And indeed, using it is pretty simple.
- Bitbucket - Free (and paid) hosting for Mercurial repos. Not that I'm looking to learn another source-code management system right now, but it's good to know about.
- Blueprint Grid CSS Generator - Useful adjunct to Blueprint when you don't want or need 24 columns.
- Blueprint CSS 101 - Good (though slightly dated) overview.
- EditorKicker - Rails plugin to open your text editor to the affected file when an error happens in Rails dev.
- WICE Grid - Fancy grid/table control plugin for Rails views.
Double Shot #251
So far I'm liking Passenger more than nginx + mongrels, if only for ease of setup.
- emastic - Another CSS framework. I have the nagging feeling that I should pick and use one.
- SiteScan - Utility to check out whether you have Google Analytics installed properly.
- The Complete Guide to Setting up Starling - Help with Twitter's background processing code.
Double Shot #250
There's some chance I may start writing a RoR column for pay. I cannot escape writing work, apparently.
- 15 Resources to Get You Started with jQuery From Scratch - A nice collection of links.
- Sexy Forms in Rails - That would be ones with automatic label tags for accessibility.
- Mack 0.6.0 and Waves 0.7.7 - New releases of two of the "other" Ruby web frameworks.
subscribe via RSS