Lots of people are excited about Rails and 37Signals being mentioned in Microsoft’s annual Form 10-K. I think that’s just silly. This isn’t any sort of acknowledgement that Microsoft considers us a serious threat; it’s a “cover your ass” survey of software and firms whose business overlaps that of Microsoft. For some perspective, go look at other 10-K’s; for example, the one for McDonald’s says “The Company’s competition in the broadest perspective includes restaurants, quick-service eating establishments, pizza parlors, coffee shops, street vendors, convenience food stores, delicatessens and supermarkets.” So, yeah – McDonald’s:street vendor::Microsoft:37 Signals. That’d be about right.
Early morning with small child and thunderstorms.
- Passenger/Nginx much better than Mongrel (at least for StatSheet) – Not clear how much of this is stack and how much is application style, but it’s an interesting data point.
- The Great Ruby IDE Smackdown of ‘09 – Chad Woolley puts a few through their pages, and likes RubyMine.
- Five Features from Mercurial That Would Make Git Suck Less – Personally, I don’t find git that sucky, but there are some useful ideas here from topfunky.
Up late deploying stuff last night, so just a couple of quick links this morning.
- snail – Start of an ambitious attempt to build a plugin to format international mailing addresses.
- Firebug 1.4.0 – Officially released, and nicer than 1.3. Of course those of us on the bleeding edge have moved to 1.5 alpha builds already.
It looks like the Fairy Godmother Department’s lunch hour may be over.
- Many Ways to Tag Taggables – Tobias hunted down all the Rails tagging libraries he could find. Looks like he settled on acts_as_taggable_on, which is the one I use too.
- fleakr – Flickr API integration gem recommended by a couple of my readers.
- read_from_slave – Read your Rails data from a MySQL slave database, while ensuring that writes go to the master database.
- Programming Contest! Win iPhone 3GS & $2,000 Cloud Credit – Engine Yard is planning a contest that is going to make Twitter even more annoying for a while.
- Choosy – OS X utility ($12) to let you choose a browser when you click on a link.
- Ruby Versions – SSH access to a bunch of new and archived flavors of Ruby.
Time to get back on the daily sales and marketing wagon. Contract, where are you?
- Build Guild – Spreading social/technical gathering of web folks. I’d be tempted to start an Evansville/Newburgh chapter if I actually knew any other web folks around here.
- wikicloth – Mediawiki markup for Ruby.
- flickr_fu – I may need a flickr interface in Ruby soon. This one looks promising.
Lots of interesting new stuff showed up over the weekend:
- i18n – The i18n gem has reached version 0.2.0 with lambda support among other goodies.
- can_touch_this – A permissions system extracted from rboard.
- sort_by – Active Record/ Action View extension to produce user-sorted, paginated tables in your views.
- Posterous now supports TrailerAddict embeds and Github Gist code drops. – With Gist support, Posterous is getting to be an interesting alternative for a quick & dirty coding blog.
- Installing FreeImage and ImageScience on Debian Linux – Came in handy, though note that the current version of FreeImage has changed.
- Ruby 1.9.1 & Friends – Ryan Bigg has revised his big blog entry on how to get rails up and running on 1.9.1. It’s getting closer to prime time.
- padlock_authorization – Simple object-based role authorization plugin. If I wasn’t rolling my own authorization I’d probably try this one next.
- Mercurial: The Definitive Guide – Bookmarking in case I’m ever forced to use Mercurial.
- Announcing Appsta – Gem that extends the templating facility in Rails 2.3 with knowledge of GitHub and Heroku, among other things.
A few people have asked me about the Rails application template that I’ve put together recently. For those who are interested, it’s now available for review and download as a gist. To use it, just specify the -m switch when creating a Rails application:
rails new_app_name -m lark_template.rb
I should warn you of two things. First, it’s a pretty heavyweight template, sticking a lot of stuff into the new application. This suits me, because I have a lot of things I use in just about every application, but it may not suit you. Second, Rails templates are not one-size-fits-all; you’d be better off treating this as a starting point to steal from than a finished template to use (though if you want to use it, feel free).
Here’s a list of what this template sets up:
- Authlogic for user authentication, including password resets, anonymous_only, authenticated_only, admin_only application helpers
- World’s simplest authorization system: manage multiple string roles on users with User#add_role, User#remove_role, User#clear_roles, and User#has_role?
- Date formats: :us, :us_with_time, :short_day, :long_day
- Paperclip for attachment management
- /pages/css_test will show most CSS styles in action
- Searchlogic for magic named scopes and search forms – http://rdoc.info/projects/binarylogic/searchlogic. Includes attribute_equals, attribute_does_not_equal, attribute_begins_with, attribute_like, attribute_ends_with, attribute_greater_than, attribute_null, attribute_blank etc. etc.
- Stringex for extra string functionality – acts_as_url, String#to_ascii, String#to_html, String#to_url, String#remove_formatting, String.random
- US State application helpers
- will-paginate for pagination
- Hooked up for PostgreSQL
- admin-data plugin for administrative UI. http://localhost:3000/admin_data will get you to the application’s data. On production, only admin can view data, no one can edit (modify config/initializers/admin_data.rb to adjust this)
- db-populate for seed data
- fast_remote_cache strategy for deployment
- rubiadhstrano for deployment recipes; automatically uses multiple targets, so: cap production deploy for deployment to production
- superdeploy for additional Capistrano tasks. cap -T for full list.
- Exceptional for error tracking. Go to /pages/kaboom to test after finishing Exceptional setup.
- New Relic for performance tracking
- Shoulda and Test::Unit for testing
- Mocha for mocking
- Object Daddy for factories
- Generated code is already covered by tests
- parallel-test for faster testing. rake test:parallel:prepare to set up two test databases. rake test:parallel to distribute tests across two cores
- rack-bug for request/response/perf analysis. http://localhost:3000/__rack_bug__/bookmarklet.html to add bookmarklet to browser.
- shmacros for additional Shoulda macros: should_accept_nested_attributes_for, should_act_as_taggable_on, should_callback, should_delegate, more
- More extra shoulda macros: should_have_before_filter, should_have_after_filter
- metric-fu for static code analysis. rake metrics:all, configure in Rakefile
- inaction-mailer is installed for development environment, so mails sent during dev will end up as files in /tmp/sent_mails
There are days I need to remind myself that I’m happier on the open source side of the fence.
- Infomaki – Open source usability testing tool written in Rails, from the NY Public Library. (via Konigi)
- Ruby Code Quality and Metric_Fu – Some notes on getting the current metric_fu to run properly.
- Why I use Safari for Development – Sales pitch from Thomas Fuchs.
- translator – Rails extensions to simplify and DRY up internationalization.
- couchsphinx – Full-text indexing for CouchDB using Sphinx.
- AWS Start-Up Challenge for 2009 – Chance to win up to $50K for your nifty idea.
- postview – Ruby blogging engine featuring Markdown and Sinatra.