You are currently browsing the tag archive for the 'ruby' tag.

2008 was a good year for me professionally. Here’s hoping that 2009 shapes up even better.

  • Ubiquity 0.1.3 - Just out, the new version of the command line for Firefox. Like TextMate, this is one of those applications that I know I’m barely scratching the surface of.
  • What good is a flexible paperclip? - Thoughtbot’s file attachment plugin is getting some overhaul.
  • Espresso Public Beta - MacRabbit’s new web development environment. I need to find time to play with this, too.
  • [ANN] Ruby 1.9.1 RC1 is released‘ - I’m responsible for this, you know: it happened minutes after I managed to get 1.9.1-pre2 installed.
  • Learnivore! - Aggregation portal for Ruby and related screencasts.

Sometimes the fact that I don’t know all the ins and outs of Ruby, coupled with habits carried over from other languages, turns around to bite me. Here’s a console session demonstration of the latest problem I had:


>> a = b = 2
=> 2
>> a = 3
=> 3
>> b
=> 2
>> a = b = []
=> []
>> a << 2
=> [2]
>> b
=> [2]
>> a = []; b = []
=> []
>> a << 2
=> [2]
>> b
=> []

So, trying to initialize multiple arrays and multiple integers doesn’t work the same. Live and learn.

QA and documentation are on my mind this morning. I need to remember the lesson that a PM can’t spend all their time coding.

  • Well Wishes $2 You - This doesn’t really have anything to do with Rails, except that the Rails community is traditionally very giving. But if you can spare two bucks around Christmas time, you can help do some good.
  • Named Scope: To Lambda or Not To Lambda, That Is The Question - Good explanation of what lambdas are doing in named scopes and why you might want one.
  • GitHub Pages - One more spiffy feature from the GitHub folks - free hosting, essentially. It works, too.
  • Ruby 1.9 can check your indentation - Well, at least if you run with warnings, it can.
  • Amazon SimpleDB - Now With Select - A syntax change makes this cloud database more accessible for more developers.
  • Round numbers of these things always make me happy.

  • Introducing Cache Money - Gem from the Twitter folks to implement write-through caching with Active Record and Memcached.
  • Fun with Threads - Further discussion of how Rails is tackling threading, from Koz.
  • Future proofing your Ruby code. Ruby 1.9.1 is coming. - Advice from Dr. Nic.
  • A case against Mocking and Stubbing and A case against a case against mocking and stubbing - Back-and-forth with Brian Cardarella and David Chelimsky.
  • I’ve gone back to big pieces of paper (actually giant Post-It Notes) for ERDs. Feels very satisfying in the absence of acres of whiteboards.

  • Why Ruby is Not My Favorite Language - An objection to promiscuous reopening of classes, though I think the counterarguments in the comments are reasonable.
  • FriendDA - An alternative to a serious NDA. I wouldn’t dream of using this in business, but it’s amusing.
  • Rails Worst Practices: 13 Coding Nightmares You Should Avoid - A reasonable list to think about, but I’m wary of “all” or “never” pronouncements.
  • Win some, lose some: good new client onboard yesterday, several older clients delinquent in their payments. The joy of freelancing.

  • simplelog - A new alternative on the Rails blogging engine front.
  • Spree 0.5.1 - This open source commerce platform is now designed to work with any Rails 2.1 version.
  • Zero-Downtime Restarts with HAProxy - In my ideal world, other people take care of this level of server fu for me.
  • Hot in Edge Rails: Generate Rails Apps from Templates - This is indeed hot, and will largely replace the need to keep static template applications hanging around.
  • Ruby Advent 2008 - An article a day for the holiday season.
  • Sometimes distributed team project management is very trying.

  • See Rails request paths in ‘top’ - A nice idea from Dave Thomas. I wonder if this should make its way into core.
  • TextMate Productivity Tips - From 456 Berea St. Tips are always fun.
  • cuc-demo - A demonstration of BDD with cucumber in the form of a tagged git repository.
  • Ruby 1.9.1 Preview 2 - It’s getting closer.
  • Why Git is Better than X - Just in case you want reasons to switch.
  • Somehow I survived November. Here’s hoping December will be less stressful.

  • AssetPackager update - This plugin for compressing and minimizing Rails javascript and CSS assets has been updated for 2.2.
  • Breakage and fixage in Rails 2.2 - Another story of upgrading.
  • DearIE6 - Want to say goodbye to IE6 via Twitter? Now you can.
  • This Week in Edge Rails - I’m still doing this section of the main RoR weblog. It was a big week last week.
  • Overloading the parenthesis operator in Ruby - One of those things I hope never to have a need to do.
  • Hopefully I will shake off the post-turkey stupor and write some code today.

  • RubyConf08 Videos - Confreaks has got most of them processed and posted now, with more formats to come.
  • A Byte of Vim - Free eBook on using the Vim editor.
  • dj.god - The delayed_job god configuration used by github. This was a great help to me in setting up my own.
  • Gettin’ less icky with the chronic - A way to make run all date attributes through chronic. I should take a closer look at this.
  • I’d forgotten how fun trying to pull all the pieces together on a last-minute high-pressure project could be.

  • Rubinius for the Layman, Part 3 - Try Rubinius in 20 minutes - Rubinius took a blow this week when Engine Yard let some folks go, but things are mature enough that you can see the current state of the project easily if you want.
  • If you use Mocha and RSpec then read this - Jake Scruggs points out a useful plugin if you’re in this boat.
  • Calendar Date Select - Rails plugin for popup calendars. I used this in an app this week and so far it’s working out nicely.
  • This month is definitely ending with a bang.

  • environment.rb and requiring dependencies - Why thread safety may require you to rearrange how you’re handling initialization.
  • Rails 2.2: i18n, HTTP validators, thread safety, JRuby/1.9 compatibility, docs - The official release announcement.
  • Free Ruby eBook - The Book Of Ruby, new chapter: YAML - From the SapphireSteel folks.
  • This Week in Edge Rails - My latest contribution to the main Ruby on Rails weblog.
  • Rails 2.2 For Me And For You - Even if you’ve read the release notes you’ll probably learn about more new features here.
  • There are times when I’m glad I’m not a big wheel in the Ruby community. Saves me all sorts of angst, apparently.

  • 960 Grid System - Another CSS scaffolding system. Nice looking home page, at the very least.
  • The Art & Science of CSS - And speaking of CSS, here’s a free book download from SitePoint. I’ve actually got this one in paper; it’s not bad.
  • GitX 0.5 - This git GUI for OS X is developing nicely.
  • Base - Commercial (£10.00) GUI for SQLite. I should take a look at this one.
  • Skim - Fancy PDF reader and note manager for OS X.
  • The Opposite of Momentum or “Sophie’s Choice” for Rubyists - Another rubyist expresses general malaise about the state of the language.
  • Some days I am amazed that any software at all ever works.

  • Mike T’s SQLite Database Administrator Tool - The icon is butt-ugly, but the tool is reasonably functional.
  • Ruby Isn’t Fun Anymore - Apparently some people are not feeling the upstart excitement. I’m not one of them.
  • Gist Support for TextMate - Some people are clearly trying to turn TextMate into an operating system.
  • Live from Pro Rubyconf ‘08 / SMACKDOWN - Informal A/B testing at Pro RubyConf.
  • Rails TakeFive - Five Questions with Jay Fields - Another interesting interview from FiveRuns.
  • Vocito - OS X Desktop UI for Grand Central. Mildly interesting if only because it’s the first sign of life from GC in months.
  • It’s hard to work real effectively when your head is ready to explode. But self-employment doesn’t come with paid sick days.

  • What’s New in Edge Rails: Default Scoping - Ryan Daigle covers some of the latest changes.
  • SQL Injection Cheat Sheet - Read it as things to guard against rather than a cookbook, please.
  • Shoulda for RSpec is Remarkable - Another addition to the growing stable of testing tools.
  • Installing ruby 1.9preview1 on OS X Leopard - How to do it.
  • QBWC-Mini - Experimental Sinatra server for easier QuickBooks integration.
  • « Distribute Your Content With Amazon CloudFront - Amazon’s new CDN. I expect we’ll see Rails integration shortly.
  • Ruby on Rack #2 - The Builder - Pratik is still writing about Rack and how to use it.
  • Tutorial: Reset Passwords with Authlogic - Just what the title says.
  • Well, I still have hours to sell, but a couple of little projects appear to be coming together, so hopefully I won’t be on the bench for too long.

  • Scaling Ruby - The latest EnvyCast. I heard some good things about this material being presented at RubyConf.
  • Rubular - Ruby regular expression editor online.
  • Bort Update to Rails 2.2 - This prepackaged Rails solution, including various bells and whistles, is in active development.
  • A few reasons braid is better than 40 lines of Rake. - After wrestling with a rake-based git subtrees solution for a while, I’m getting inclined to agree that there must be a better way.
  • acs_as_conference - There are a mighty lot of Rails and Ruby conferences these days. I heard good things about this one last time around - and hey, Florida in February, how can you lose?
  • Optimizing RDoc - Hongli Lai attacks RDoc and wins. A good look at how to optimize Ruby code, too.
  • Rails 2.2RC1 is out. Here’s the official announcement. And here are the Ruby on Rails 2.2 Release Notes - of which I am rather fond, because I wrote the bulk of them.

    Some other Rails 2.2 stuff:

  • Ruby on Rails 2.2 - The Rails Envy guys want to sell you PDF and videocast guides to the new features.
  • What’s New in Edge Rails: Rails 2.2 Released - Summary of Features</a> and What’s New in Edge Rails: Even Better Conditional GET Support - Coverage from Ryan Daigle.
  • And more general links:

  • “raise NoMethodError” raises NoMethodError. Raise it with
    NoMethodError.new instead.
    - My first commit to the core Rails code. Hopefully not the last.
  • Good Homes Wanted - A batch of Rails and Ruby projects looking for new maintainers, including some fairly prominent ones.
  • SIPr - SIP stack written in Ruby. If only I had time to play with VOIP stuff…
  • REST: Some tips and implementing “Forgot your password?” - Some ideas about RESTful design.
  • Thinking Sphinx - New PDF from PeepCode.
  • GitHub Rebase #1 - Nick Quaranto is starting a new series to look at activity over on GitHub.
  • How to Spot a Help Vampire - Wisdom from #rubyonrails.
  • There’s a mismatch between the most recent Rails releases (2.1.2 and 2.2RC1) and older versions of RubyGems. Judging by what I’ve seen in various discussion fora, this is well on the way to being a FAQ. It’s made more fun by the facts that

  • The error message doesn’t implicate RubyGems
  • You may think you’re up-to-date on RubyGems when you’re not
  • If you’re affected, you’ll see this message when you try to run script/generate in a Rails application:

    
    undefined method empty?' for /_generator$/:Regexp
    

    If you see this, don’t panic. It just means you need a newer RubyGems release. I’m not sure how current you need to be, but 1.1.1 is definitely too old. As I write this, 1.3.0 is current.

    Now, in theory, to update to the latest version of RubyGems, you just need to run

    
    sudo gem update --system
    

    But - depending on what version of RubyGems you have installed, running that command may lie and tell you that you have nothing to update. If you’re currently on RubyGems 1.1 or 1.2, you need to run a different set of commands to update RubyGems:

    
    sudo gem install rubygems-update
    sudo update_rubygems
    

    You can check your current RubyGems version with

    
    gem -v
    

    If it reports 1.3.0 or later, you should be good to use the recent Rails releases.

  • Learn the Language, Then the Framework - Good advice, though I’m afraid I’ve built much of my own career on ignoring good advice.
  • Path Finder 5.0 - Supposed to be a really good Finder replacement, and the new version is just out. I’m contemplating trying it, at least.
  • Rails 2.1.2: Security, other fixes - Worth upgrading if you’re on the 2.1 branch. The 2.2 release candidate is just around the corner as well.
  • Thread safety for your Rails - Yes, it’s there. No, it’s not magic pixie dust. Pratik Naik explains.
  • Spree 0.4.0 Released - New version of this open-source Rails e-commerce platform.
  • Blacktree Visor - Pull-down console window for OS X. Cute, but I found it less effective for working than actually having a Terminal window open where I could see when a long-running process completed.
  • Incompatibility between Rails 1.1.6 and Ruby 1.8.6 - I’m sorry to say that I just needed to deploy this fix.
  • Random - An alternative to faker for generating fake data in ruby. This one includes a hook to add your own file of arbitrary random data.
  • Ruby DSLs: instance_eval with delegation - Dan Manges presents an approach to sensibly using some ruby magic.
  • Ruby on Rails: Opportunity in a Financial Downturn - I agree that there’s an opportunity if you’re good. If you’re not good, you’re going to be roadkill.
  • Has My Gem Built Yet? - Service to check whether GitHub has gotten round to building a gem from your latest upload.
  • Anyone had to manage cucumber/webrat stories that include logging on to a session via restful authentication? How’d you do it?

    I seem to be hanging out in #rubyonrails on IRC these days…mikeg1a if you’re hunting for me there.

    My latest work-in-progress: Rails Routing from the Inside Out. I’ve been grubbing through the Rails source, and this is the result.

    Looks like I may actually have enough work for the end of the year. But don’t let that stop you asking for more.

    • Merb Beginner’s Tutorial - Notes on how to instal the latest edge bits.
    • Bort - A Base Rails Application - A shot at packaging all the “I always do this stuff” bits into a fresh Rails application. I’ve seen some of these before; the general issues are that my stuff doesn’t match your stuff, and they haven’t tracked Rails versions. But this one got enough immediate traction it might do better.
    • Ruby Wrapper for Twitter Search API - Just in case you need such a thing.

    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.

    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.

    Shaping up to be another busy week; fortunately the weekend was good for catching up this time.

    Up before dawn with the child who slept through dinner. Fortunately, I’m an early riser.

    Yes, I’m still underemployed, despite some potential contracts on hold. If you’re looking for a Rails dev, let’s talk.

    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.

    New months always look so promising.

    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.

    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.

    I’m thinking it’s about time for me to get involved with some open source Rails project. The question is, which one?

    Things are churning right along here.

    • Ruby Row - Boutique advertising network for Rubyists. $600 will get your ad on 5 of the most-known Ruby blogs.
    • Introducing CampTweet - Pipe Twitter, Summize, or RSS feeds into Campfire.

    Happy July 4th - a day I can catch up a bit while email is quiet, I hope.

    It’s starting to look like I may have the bandwidth to take on another project shortly. If you’ve got Rails work overflow, give me a holler.

    Nobody’s interested in doing a bit of sysadmin work on the side, eh? I’m not surprised, I don’t like it much myself.

    • RubyGems 1.2.0 - Unfortunately this new update won’t install on my system, which probably means that I’ve terminally hosed something and should start thinking about a rebuild again.
    • The Big Ruby Vulnerabilities - Wondering about the mysterious patches to Ruby recently? Zed Shaw comes to your aid with some revealing diffs.
    • Rails-doc - Yet another Rails API site. This one claims to be better than all the rest. We’ll see.

    It’s off on an outing with the kids today, so not much code will happen till tomorrow. Looks like the weekend will be catchup time again.

    I may not be a UX designer, but sometimes I get to play one on TV.

    I’m at the point where I could seriously use some help with Rails server admin. If there’s anyone out there who could use a few hours a week wrestling with nginx, monit, php, capistrano, evented mongrel, etc., etc., who actually knows what they’re doing, drop me a line to discuss hours and rates.

    One of the first RoR sites I contracted on has finally launched. I thought it was cursed forever.

    It’s off to the Red Cross for me again today.

    • Pool Party - Ruby gem to manage load balancing and failover with Amazon EC2 instances.
    • Ylastic - Another AWS management suite, “coming soon.”
    • Versions - Subversion client for OS X, now out in beta.

    Another month, even more software to get distracted by.

    I need to get some MySQL ETL going to build a datamart. Looks like I can choose from Clover.ETL, Enhydra Octopus, or Apatar. Anyone used any of those?

    It was a productive weekend; I got a major feature shipped for one of the sites I work on. Now back to the regular workweek.

    My initial reaction to Live Mesh is that it’s just another attempt to co-opt the web with a proprietary Microsoft platform, no different conceptually than the original MSN/”Blackbird” (which failed, as you may or may not recall). Perhaps I’ll change my mind later.

    Next up on the learning curve: ActiveMerchant.

    • ShellShadow - Collaborative terminal client based on Putty that works with their web site to allow two people to share a shell session. Windows-only client, though.
    • AppEngine World - “One-stop resource for Google AppEngine”.
    • Ruby’s Not Ready - Another Ruby/Rails vs. Python/Pylons comparison. Ruby loses. Expect rebuttals to continue this endless cycle.

    Setting up a Rails server hasn’t gotten any easier since the last time I did it. Bah.

    Three major projects in the air at one time is close to my limit. Doing a lot of juggling these days. But it’s fun!

    Deployment day today…I’d better get back to this CSS.

    • Things (in the Rails World) You Don’t Yet Understand - Interesting exercise: what do you know you could comprehend, want to learn more about, but haven’t found time for yet? Mine would include the ins and outs of deployment and server stacks (even though I’ve done it), Test/Unit (I skipped right to RSpec, which is hurting me on a project right now), and ActiveMerchant (which I need to implement real soon).
    • The Language Question - Jay Fields considers some of the reasons (other than technical superiority) why devs pick a particular language to specialize in. In my case, the move to Ruby was, of course, driven by my desire to abandon Microsoft and my perception of where the markets were.

    Ran into my first git problem last night - fixable, but annoying. I think I haven’t found the right workflow for use with this system yet.

    Today I need to buckle down and churn out some code.

    Looks like my dance card may be filling up nicely again. Still, don’t hesitate to get in touch if you’d like to chat about work. I can always squeeze in a few more hours somewhere.

    And so another month draws to a close. Hope you’re being productive on the extra day.

    Looks like I’ve got some hours free starting in March, so if you’re looking to hire a developer who gets things done, drop me a line.

    My head cold goes on, but so does the Internet. Let’s see what rummaging around lately has tossed up on my desktop.

    I hate being sick. Of course, that doesn’t stop me from catching the latest virus in a house full of kids.

    I’m hoping some renewed energy and inspiration comes out of somewhere today, because I sure didn’t have any this weekend.

    Having twice as much RAM means working for twice as long before Firefox memory leaks get out of hand.