Double Shot #839

Early morning treadmill and sun lamp keep me mildly sane.

  • Sparrow for iPhone - If I actually had an iPhone this would be the mail client for me.
  • Nodester - "an open source Node.JS Platform-as-a-Service written in Node.JS with a RESTful API designed to run in any cloud without a VPS".
  • Remove --http - A mystery in the Rails master.
  • Y U NO GEMSPEC!? - The Nokogiri team explains why they make it hard to build a gem directly from their GitHub repository.
  • Ruby on Rails for Developers - A full course on GitHub, courtesy of General Assembly.
  • Draper - A decorator pattern implementation for Rails.

Double Shot #838

Morning has broken. Someone needs to put it back together.

Double Shot #837

If this isn't spring it's sure close. A year without a winter is fine by me.

  • one9 - Project to help move your Ruby 1.8.7 code to 1.9 by running your tests and then reporting on what needs to change.
  • Short, explicit test setups - How to save a few keystrokes when using Factory Girl to manufacture things.
  • ruby-mkfifo - Hooks up File.mkfifo to create FIFO files, i.e. named pipes.
  • Manage and Monitor Resque with Upstart and Monit - Looks like the next logical step if God or pure Monit haven't done the job for you.
  • Snail Drop - Service to print and (physically) mail documents from your computer or DropBox. I'd be more excited about this if I could remember the last time I printed and mailed a document.
  • Load Balancing and Reverse Proxying with Nginx - I have some servers where this really ought to be in place.
  • FXRuby - Ruby bindings to the FOX toolkit cross-platform GUI library, now coming back from a long period of dormancy.
  • Faraday: One HTTP Client to Rule Them All - I hadn't realized that Faraday had an entire middleware stack built into it. Among other things that makes it useful for writing fake responses in tests.
  • A few cURL Tips for Daily Use - Download resuming, faking AJAX requests, using requests from a file and more.
  • Wirb - Syntax highlighting for irb. Based on Wirble but without the other tools.
  • Measure Anything, Measure Everything - How to use StatsD to instrument your code.

What's New in Edge Rails #12

Week of March 4-March 10, 2012

It was a fairly quiet week in Rails master.

  • Another piece of mass assignment protection shows up in c97a1666, which prevents the association builder from assigning unexpected foreign keys.
  • e4e13883 adds a :layout option for partials that render a collection. Take a look at 6e0a763d for example usage.
  • On the Guides front we're getting an instrumentation guide: see 4bfc8b1e.

Double Shot #836

Habits come in many shapes and sizes.

Double Shot #835

I'm pretty ready for things to slow down a bit.

  • API Version for Rails Routes - Nice dive into some intricate routing from Ryan Bigg.
  • rubydeps - Tool that uses GraphViz to display the dependencies in your project, which it finds by running your tests.
  • Bakop - Streamlined offsite backups with a free account hosing 500MB.
  • Lightrail - Minimalist cut of the Rails stack designed to serve JSON APIs.

Double Shot #832

Someone has been feeding my inbox growth hormones. I wish they'd stop.

  • iPad HTTP Debugging with Charles - Run iPad traffic through a desktop proxy. Useful.
  • Crew - Code review tool for git projects based on a branching model.
  • sudo_attributes - Methods for Active Record to allow you to override the attr_accessible settings that you should be making.
  • Zonebie - Set a random timezone at the start of each test run to make sure you don't have timezone-specific code.
  • Induction - Database client for OS X with built-in visualizations. Alpha release but worth keeping an eye on.
  • versionist - Plugin for versioning Rails 3 RESTful APIs, with support for multiple versioning strategies.
  • There is no simple solution for local storage - Discussion of some of the pros and cons of localStorage and other HTML5-ish browser storage methods.
  • Open Sourcing BankersBox - But if you do want to use localStorage, here's a javascript library to make it look sort of like redis.
  • Mass Assignment Security - How you can handle it in the controller in Rails 3.
  • Scriptular - Regular expression tester for javascript.

What's New in Edge Rails #11

Week of February 26-March 3, 2012

The big news this week is the switch to requiring whitelisting all Active Record attributes by default. (See Double Shot #831 for some of the nonsense that led up to this). The impact is simple: you need to add an attr_accessible declaration to all of your models before update_attributes will change anything about them. You should have been doing this anyhow.

  • 641a4f62 turns on attribute whitelisting in Active Record by default. This is a change to Rails behavior.
  • ActiveModel::Model shows up in 3b822e91 as a way to make Active Model objects work directly with Action Pack. Documentation is in cb9d03f0.
  • 9b2c38b7 reduces the default connection pool size to 1 in new applications, trusting that people who need more for multithreaded applications will know what to do.
  • A little sugar: d6366625 adds last_year, last_month and last_week as aliases for the corresponding prev methods.
  • cd5dabab adds some optimization for path helpers. You won't have to change anything in your code, but all _path and _url helpers speed up by a factor of 5 or so.
  • b8396578 features a bit of trolling due to a mass-assignment bug at GitHub. Removed a bit later in 2b74968f.
  • efd557a6 adds a new Guide for API-only applications. Note that some of the code in it hasn't been implemented yet - something I'm not personally too keen about having in a Guide.

Double Shot #831

Long weekend out with the Boy Scouts helping people clean up after tornadoes. Puts a lot of this software nonsense in perspective.

Double Shot #830

Storms today, cleanup tomorrow.

Double Shot #829

Someone apparently decided that today was my day to exercise the telephone.

Open Source Report #6

So…I have in fact been sticking to my "do something for open source every day" resolution. What I haven't managed to do is keep up these blog entries about it! Well, time for a reset. Here's a fast list of what I've done the past few weeks, and perhaps I can get back to more regular posting next week.

  • More cleanup work on the RubyGems Guides.
  • Got my Shoehorn gem for Shoeboxed integration building on my continuous integration server.
  • Contributed a tiny bit of code and some troubleshooting to axlsx.
  • Fixed a typo in the authlogic documentation.
  • Kept up with the weekly edge Rails postings (and I'm pursuing another opportunity in connection with this; stay tuned).
  • Decided I was barking up the wrong tree entirely with larkistrano, and killed off the project. Going to rethink this and maybe try again.
  • Documented the :inverse_of option for associations for the Rails Guides.
  • Did an editing pass over the Updating Rails guide.
  • Posted details on using Mercury editor, Carrierwave, and Amazon S3 together.
  • Fixed a path issue in sublime_guard.
  • Forked the feed-normalizer gem to make it a bit more resilient in the face of unparseable HTML.
  • Fixed a parsing issue in the Command Reference in RubyGems Guides.

If you're trying to figure out how to contribute to open source yourself, you could always start with a search on GitHub. Or try OpenHatch.

Double Shot #828

Double Shot was delayed by tornado this morning. A reminder that some things are more important than coding (fortunately, it missed us by a few miles).

  • How to Disable iPad Home Button - Yes, you can run an iPad in Kiosk mode.
  • xVim - Vim key-bindings for things like xCode. I can't fathom it myself, but I know there are people who want this.
  • ImageOptim - Multifaceted image optimizer to get your web images as small as possible.
  • The Mozilla Marketplace is now open for app submissions - Nice to see a vendor-neutral standards-based app store coming. Hope it succeeds.
  • gaia - Mozilla's open source HTML5 UI framework.
  • Boot to Gecko - More from Mozilla, implementing new web standards for mobile platforms.
  • Collusion - Firefox addin to show you who's tracking you on the web.
  • Normalize.css - An HTML5 alternative to traditional reset CSS files. Looks well thought out.

Double Shot #827

The promise of the future is often weighed down by the mistakes of the past.

  • Konacha - Rails-aware javascript testing framework that integrates with the asset pipeline.
  • OKAdmin - A custom theme for the RailsAdmin gem.
  • Mutation Testing With Mutant - I just wish I had any code mature enough to benefit from mutation testing. It's a nifty idea.
  • codeCanvas - "a visual, web based application that allows you to rapidly create layouts using pre-defined blocks of HTML, Javascript and CSS."
  • pow-client - Command-line client for the Pow development web server.
  • OpenRuby.com - New link aggregator for ruby programming in general.
  • TextMate 2 FAQ - TM2 is moving along, with some answers on how it works and what's still to come.
  • Tower.js - Full stack framework putting together Node.js, MongoDB, Redis, CoffeeScript, Stylus, Jasmine, and jQuery.

What's New in Edge Rails #10

Week of February 19-February 25, 2012

The biggest news this week comes on the REST front, with PATCH replacing PUT as the preferred verb for updating existing records. This has provoked some flaming and snarking (in which I have indulged), but on the whole I think it's a reasonable change.

  • ad46884a adds support for the HTTP OPTIONS method to Rails integration tests.
  • 002713c6 adds support for the PATCH HTTP verb as well. According to the commit message "PATCH is the correct HTML verb to map to the #update action. The semantics for PATCH allows for partial updates, whereas PUT requires a complete replacement."
  • As of abf3f67e you can configure whether Rails flushes the log every time your write to it. Turning off log autoflushing can improve performance if you're willing to risk the loss of a few log writes.
  • force_ssl is no longer ignored by default in development. This is a change in behavior; c04a0847 has the details.
  • eecb086a2 gives us the start of a Guide for updating Rails.

Double Shot #826

This week's keyword: survive.

  • The Sun is Setting on Rails-style MVC Frameworks - Oh noes, my skills are about to be obsolete again.
  • smeagol - Sets up a basic open source development environment on a new OS X machine.
  • Chaplin - Sample application architecture using Backbone.js and a bunch of other pieces.
  • q - Unified monitoring for resque, sidekiq, and node workers.
  • SchnitzelPress - A new ruby-based blogging engine.
  • Edge Rails: PATCH is the new primary HTTP method for updates - Well, POST with a parameter that claims it really wanted to be PATCH, anyhow.
  • Restivus - Experiment in exposing a CSV file as a fully-documented REST API.
  • GAS - Google Analytics on Steroids, a wrapper for the Google Analytics API on the client side offering additional tracking.
  • The Markdown Mindset - I'm coming around to this point of view myself, though it's hard to wean clients from Word docs.
  • Prismatic - Google Reader crossed with social sharing, apparently.
  • EpicEditor - Embeddable JavaScript Markdown editor.
  • Behavior Driven Development - Nice set of slides from Liz Keogh that may give you some new insights into your craft.
  • Capybara MiniTest Spec - Adds assert, must, refute, and wont syntaxes to Capybara.
  • FlowStone 2 - Graphical programming environment for robotics with Ruby scripting baked in.
  • Vimbits - Snippets of .vimrc files with voting to determine the best ones.
  • RailsThemes.com - Teaser site for an offering of theming for Rails sites. Taking early access signups.
  • AskGeo - Interactive map, web API, and Java library for converting latitude and longitude into timezone.
  • JSONLint - "The JSON validator."

Double Shot#825

Sometimes, it's all you can do to stay a fixed amount behind.

Double Shot #824

Very tired of "are we there yet?" emails at the moment.

subscribe via RSS