A Fresh Cup is Mike Gunderloy's software development weblog, covering Ruby on Rails and whatever else I find interesting in the universe of software. I'm a full-time software developer: most of my time in recent years has been spent writing Rails, though I've dabbled in many other things and like most people who have been writing code for decades I can learn new stuff as needed.

As of July 2016, I'm looking for my next job. I'm not able to relocate, so unless you're in the Evansville area, I'd need a completely remote gig. I have lots of experience working remote. Prefer full-time but I wouldn't be averse to an interesting contact gig. Drop me a comment if you've got something or email MikeG1 [at] larkfarm.com.


A Fresh Cup

Notes on Rails and other development


What's new in Edge Rails #3

Week of January 1-7, 2012

There's still a big party going on in Rails master to get rid of Ruby 1.8-specific code; that accounted for most of the commits this week. Among other things, MiniTest is replacing Test::Unit throughout the Rails code. But there are some other significant happenings too:

  • Big News: Rails plugins are deprecated in 3.2 and removed entirely in 4.0, as of dad7fdc5734a3813246f238ac5760b2076932216. This is an obvious simplification to Rails, as most add-on functionality has moved into gems. If you still need to use a plugin, you can use bundler to manage it as a file or git dependency.
  • You can still use the plugin generator - it just generates a new gem in your application now. As of 8ac53db5eedca8f2605ef7f91bbc956018ae1c50 it automatically adds that new gem plugin to your Gemfile as well.
  • ActionController:
  • :TestCase gained the ability to send real documents in 5b9708840f4cc1d5414c64be43c5fc6b51d4ecbf.
  • 439d3407eaef1f1b3abc94c766dedac220e59785 adds a font_path helper method that gets the path to a font in the public fonts directory. Personally, I wouldn't mind having Rails bake in a standard way to do cross-browser fonts.
  • Logger has morphed into ActiveSupport::Logger. The work was completed in 00236435221a39441af3f1e76110767fba4154a8.
  • 904e544cc8f5846de7c31827bb5556c6a238c0de adds a benchmark helper that works in ERB. This allows your views to contain things like <%= benchmark do %>Hello World<% end %> which then puts the benchmarking results in the log.
  • A couple of small changes in the sprockets compiler were merged in 7cfd1bd76a41bea528c945d821a9fbc3902af479. First, you can specify in options which file types should be gzipped in your assets. Second, the default list of types to gzip now includes html, svg, txt, and xml in addition to js and css.

Double Shot #791

Busy weekend on the Intertubes…

  • TorqueBox v2.0.0.beta2 Released - This software for setting up a JBoss/JRuby based application server is moving along with a more current JRuby, among other changes.
  • Capybara 2.0 and ambiguous matches - Potentially big API change coming in Capybara 2.0; take a look if you've got a big Capybara test suite.
  • Git in the Trenches - Scenario-based training on how to use git.
  • Trello - List-of-list management tool that got a burst of HackerNews publicity last week. Other tools along the same lines if you're in the market: Blossom and AgileZen.
  • Firebug 1.9.0 - has been released. Here's a list of the new features.
  • Yak Shaving - Josh Susser explains yak shaving for the layman. (Also see the classic email on the subject.)
  • 17 Years Later, The Internet Still Sucks - Why yes, yes it does. If you can't buy reliable net service in NYC for $$$, I sure can't get it here for any amount I can afford.
  • Ak47 - General purpose reloader. Want to restart thin or mongrel or whatever every time some directory changes? Now you can.
  • ngx_zeromq - "a transport module which allows nginx to use ZeroMQ message-oriented transport layer while communicating with upstream servers." I am informed by my sysadmin guy that this is awesome.
  • Underscore.js - Spiffy new site for this JavaScript utility library.
  • Hubot Minecraft - Set your Hubot chat bot loose on your Minecraft server.
  • TextMate 2 .tm_properties - Some cobbled together documentation on the settings files for the new TextMate.
  • Introducing Nettuts+ Fetch - Sublime Text 2 plugin to let you grab remote assets into a new project.
  • Radiant 1.0.0 Release Candidate 4 - Getting close to a 1.0 release on this CMS.
  • Accessing application session in capybara - Where was this a year ago when I needed it?
  • issues - CLI interface to GitHub issues.
  • titlus.js - JavaScript libary to handle things like animating the document title with various messages.
  • csv-mapper - Builds on CSV/FasterCSV to make it easier to map CSV files to Ruby structs or ActiveRecord models.
  • Smooth Sync for Cloud Calendar - If you're on OS X Lion and use an Android device, you need this.
  • respondto.it - Service for stubbing and debugging web hooks that expect to get back JSON or XML. You can also deploy your own copy via Heroku if you don't want to depend on the existing one.
  • switch_user - User impersonation that works with devise or authlogic.
  • New Year - Updated Ubuntu Rails Setup - Everything you need to get started on Ubuntu 11.10.
  • Fbootstrapp - Bootstrap-based styling for Facebook applications. Looks useful, even if the documentation is a bit uncertain how many 'p's should be in the name.
  • The GitHub Job Interview - beats the hell out of programming trivia questions.

Open Source Report #1

I don't make New Year's Resolutions. Rather, I try to develop good habits regardless of the date on the calendar. Recently I've started doing something new: trying to make at least one contribution to the world of open source, large or small, every single day.

Now I've decided to publish a few notes on these contributions. Why? Two reasons, really. First, it helps hold me accountable. Second, it might inspire someone else to make their own contributions. One of the big lessons, I think, is that it's not hard to do your part to make the open source world better. None of my contributions are at all earthshaking. But if we each move a pebble when it bothers us, eventually the whole mountain will be on the march.

Anyhow, enough philosophy. Here's what I did over the past week:

  • RubyGems Guides - Submitted a couple of changes to improve the formatting for the Command Reference page. This pull request hasn't been merged yet, so I'll have to follow up next week and see what I did wrong.
  • Rails Guides - Did a general editing pass on the Asset Pipeline guide. There's more work to be done in here: we need sections on caching and adding your own pre-processor. Feel free to get to that before I do.
  • What's New in Edge Rails #2 - Darned straight I count those posts as an open source contribution.
  • Rubygems - Added a tiny bit of command-line help for the gem owner command. 3 lines of code, but maybe it'll make a difference to someone.
  • larkistrano - Haven't done much here yet, but my intent is to bring over the stuff that I'm still using from rubaidhstrano into a gem that can be used with Rails 3+.

Double Shot #790

Hey, a day with no Scouting commitments. How did that happen?


Double Shot #789

So far 2012 is balancing between optimism and terror for me. Maybe I just need more sleep ;)

  • Rails 3.2.0.rc2 has been released! - Why, so it has. If you're upgrading you'll also need to move to the latest releases of sass-rails and RSpec.
  • The Big Three-Oh - Delayed Job 3.0 is out. Here's an overview of the changes, including the addition of named queues.
  • gitgraph - Javascript chunk to let you display Github participation graphs using HTML canvas.
  • migrator - Migration support for node.js.
  • quickie - Quick tests you can embed in your ruby classes. I rather like the idea of not having separate test files.
  • The Future of CouchDB - According to original author Damien Katz, it's the new Couchbase Server, not the existing Apache CouchDB project.
  • code.nasa.gov - Early alpha, serious open source code from the space agency.