Jesse Newland

337 Posts tagged with ruby

Monitoring BackgrounDRb workers with God

God PollCondition to verify that BackgrounDRb workers are running

God - Process and Task Monitoring Done Right

Slides from my presentation at ATLRUG last month on God

Another comparison of HAProxy and Nginx « Affection Code

HAProxy maxconn 1 outperforms Nginx fair by a longshot. Let the load balancing part of your stack handle request queuing, not mongrel. That's not "fair" by any means.

The Rubyist

The Rubyist is a technical magazine focused on Ruby, Rails, Merb, and anything else that surrounds the programming language that we all know and love. Ordering my copy now.

A Thinking Man's Sphinx

ReinH explores the differences between UltraSphinx and ThinkingSphinx, and explains why is awesomer.

Thinking Sphinx

A concise and easy-to-use Ruby library that connects ActiveRecord to the Sphinx search daemon, managing configuration and searching.

Jabber::Bot

Jabber::Bot makes it simple to create and command your own Jabber bot with little fuss

Redesign your site in place using Rails custom mime types

Nifty use of Rails' mime-type support to support a 'beta' request format

dot_xen

Ruby gem for parsing and generating xen config files

RubyGems 1.2.0

"RubyGems no longer performs bulk updates and instead only fetches the gemspec files it needs" ZOMG finally!

The Rails Documentation App - Rails-doc.org

Lightning-fast keyword search with weighed sorting and community based notes inline with the documentation

skynet

Skynet is an open source Ruby implementation of Google‘s MapReduce framework, created at Geni.

MagLev recap

More details about MagLev

MagLev is Gemstone/S for Ruby, Huge News

Holy Shit. *Another* new Ruby VM. By Avi Bryant, of Smalltalk fame. Shared memory cache, transactional capabilities and automatic synchronization.

sinatra, running on my iPhone

sinatra, running on my iPhone

god_web - iPhone friendly web UI for god

god_web - iPhone friendly web UI for god

source at GitHub. powered by Sinatra and iUI

Ditz

Ditz is a simple, light-weight distributed issue tracker designed to work with distributed version control systems like darcs and git. Ditz maintains an issue database directory on disk, with files written in a line-based and human-editable format.

god_web - iPhone friendly web UI for god

god_web - iPhone friendly web UI for god

source at GitHub. powered by Sinatra and iUI

The Endless Page

A nice implementation of the Endless Page AJAX Pattern

Distributed programming with Jabber and EventMachine

Slick. I should port FireBot to use EventMachine - right now it's using an awesomely low-tech while loop ;)

Rake task to create/update a .manifest file in your project, as well as update *.gemspec

Working with NSTimer in RubyCocoa

Nice clean example of instantiating and then invalidating an NSTimer

GitHub RubyGems

oh hell yes

A List Apart: Issue 257 - The why and how of Ruby on Rails

ALA Takes on Ruby on Rails with two articles - one from my good friend Dan Benjamin, and another from Michael Slater

Bowled Over by RubyCocoa

RubyCocoa Tutorial updated for Leopard - this time with RSpec BDD action

masquerade

masquerade is an Rails OpenID server released under the MIT-license

Rails 2.1 Time Zone Support: An Overview

Nice walkthrough of the new Rails TimeZone support

PDoc

PDoc is an inline comment parser and JavaScript documentation generator written in Ruby. It is designed for documenting Prototype and Prototype-based libraries.

RubyJS

Ruby to Javascript Compiler

Given a hash of variables, render an ERB template

mislav's looking for a cleaner way to render an ERB template with a hash of variables. any takers?

RubyFlow

RubyFlow is a user-contributed Ruby news and links site.

bounce

Nice, clean pattern for 301 redirects

Pastie Packer

pastiepacker is a command-line tool to 'pack' a selection of files (or by default, a whole recursive folder of files) into a single pastie

Riding Rails: Rails is moving from SVN to Git

Edge Rails gets Declarative Gem Dependencies

config.gem 'GEMNAME' in environment.rb declares a gem as required. `rake gems:install` will then install all required gems.

ActiveRecord::Dirty

ActiveRecord now tracks changes to unsaved attributes

RailRoad diagrams generator

RailRoad is a class diagrams generator for Ruby on Rails applications.

bundle-fu

CSS/JS asset bundling plugin

ride_the_fireeagle

a Rails plugin that easily integrates your app with Fire Eagle, by yours truly

What's New in Edge Rails: Has Finder Functionality

Nick Kallen’s wildly popular has_finder plugin was just added to Edge, now called 'named_scope'

Echoe

Echoe is a simple tool for working with Rubygems. It generates Rake tasks for documentation, extension compiling, testing, packaging, and deployment.

NestedHasManyThrough

This plugin makes it possible to define has_many :through relationships that go through other has_many :through relationships, possibly through an arbitrarily deep hierarchy

Paperclip

Paperclip is intended as an easy file attachment library for ActiveRecord. The intent behind it was to keep setup as easy as possible and to treat files as much like other attributes as possible.

rails_environments

Pretty Rails.production?, Rails.development?, Rails.test? and Rails.environment methods

Google Analytics Fun

John Nunemaker talks about his Statwhore gem

assert_valid_markup

Validate your (X)HTML against the W3C Validator web service from within your functional tests.

Fire Eagle: Location-Aware Applications Without the Hassle

Tom Coates said it best yesterday morning at ETech: people have been touting ‘location-aware services’ as the next big thing for years. However, they’ve never taken off.

What’s been holding them back: acquiring reliable location data about users is a hard problem for developers to solve.

With yesterday’s release of Fire Eagle, that problem is now a whole lot easier to solve.

Ride the Fire Eagle Danger Day!

So what is Fire Eagle? It’s not Twitter for location, that’s for damn sure. Here’s how the Yahoo! copywriting wizards describe it:

The secure and stylish way to share your location with sites and services online while giving you unprecedented control over your data and privacy. We’re here to make the whole web respond to your location and help you to discover more about the world around you.

At the diagram to the left shows, the Fire Eagle platform acts as an broker for your location data. One or many applications can set your location, and, provided you give them access, any other service can access this data.

This is one giant piece in the puzzle for location-based services. Users set their location in one place, and any number of other services are able to then act on this data however they please.

The other piece in the puzzle: a Fire Eagle updater that requires absolutely NO user interaction. If I’m carrying around my iPhone in my pocket all day, why can’t it tell Fire Eagle where I am?

Of course, Erica Sadun has already whipped up an unofficial iPhone app to ping Fire Eagle called firefindme. Installation isn’t the easiest thing in the world – it assumes some launchd skillz to setup automatic updates. However, I’m sure a user friendly iPhone updater is coming very shortly ;).

Developing Location-Aware Applications, Sites and Services with Fire Eagle

I’ve got a full-on tutorial coming detailing how to make your Rails app talk to Fire Eagle, but in the meantime, check out my Fire Eagle Ruby Gem:

sudo gem install fireeagle

If Ruby’s not your bag, don’t worry – there are libraries for working with Fire Eagle in javascript, php, perl and python.

Proof-of-Concept Twitter Bot

Just like last time, I’ve created a proof-of-concept twitter bot for testing out Fire Eagle: firebot.

First off: you need an invite to talk to Fire Eagle right now. Luckily, firebot is handing out a few. follow firebot on Twitter, and then direct message it with ‘invite’

  • d firebot invite

Once you have an invite, direct message firebot with ‘auth’:

  • d firebot auth

firebot will then reply with a link. You’ll need to visit that link, authenticate with your Yahoo! account, and then authorize firebot with Fire Eagle.

Once that’s done, you can update your location with a direct message to firebot like so:

  • d firebot u Atlanta, GA
  • d firebot u Belize
  • d firebot u 30022
  • d firebot u 123 Anytown USA
  • etc

To look up the location of someone else using firebot:

  • d firebot q jnewland
  • d firebot q cjmartin
  • d firebot q plasticbagUK

Disclaimer

By telling firebot your location, you agree to share your location information with all other users of firebot. All direct messages you send to firebot are stored permanently at Twitter. If at any point you’d like all of your information deleted from firebot, please contact @jnewland.

What’s next?

Get hackin’ on your awesome location-based web app! Extra bonus points if you use the Fire Eagle Rubygem. If you’ve got a great idea for a Fire Eagle app and don’t have an invite, just ask firebot for one!

PS: If you hack up a Fire Eagle javascript sidebar widget that works on pages served as application/xml (preferably using the brilliant wedje technique) AND embraces the draft geo microformat, I’ll buy you a pony. Seriously.

Fire Eagle - Easily share your location online! Personalise lots of sites and services!

The first Rails app launched by Yahoo!. This is one sick web service

NginxHttpUpstreamFairModule

The upstream_fair module sends an incoming request to the least-busy backend server, rather than distributing requests round-robin.

How to write a Jabber Twitter Bot

About This Blog: Custom Textile

A much cleaner implementation of a pattern I used on a client's site recently.

Is edge Rails broken?

The latest in a meme I'm calling Boolean Web Services. Someone needs to write a standard for these and craft up a gem to consume them, i.e. BooleanWebService.new(:israilsbroken) => false

RailRoad diagrams generator

RailRoad is a class diagrams generator for Ruby on Rails applications.

Object#try

@person.try(:name) reads a whole lot better than @person ? @person.name : nil

The NullDB Connection Adapter Plugin

NullDB is the Null Object pattern as applied to ActiveRecord database adapters. It is a database backend that translates database interactions into no-ops.

Tarantula vs. your Rails app

Fuzzy Spider Integration Test, inspired by SpiderTest

The Ruby Programming Language

The Hummingbird. Written by David Flanagan and Yukihiro Matsumoto himself.

Developing OAuth clients in Ruby

Castanaut

Castanaut lets you write executable [Ruby] scripts for your screencasts. With a simple dictionary of stage directions, you can create complex interactions with a variety of applications.

rush

rush is a replacement for the unix shell (bash, zsh, etc) which uses pure Ruby syntax

db-populate

Plugin to help populate the development and production databases of Ruby on Rails projects

Simple Ruby SMTP Server / ActiveRecord Importer

SMTP server that imports emails sent to it into ActiveRecord

Process title support for Mongrel

This is a simple module which changes Mongrel's process title to reflect what it's currently doing. You can then determine a given Mongrel server's status using ps

Fixing attachment_fu on Edge Rails

Edge changeset 8664 introduces ActiveSupport::Callbacks. This currently breaks attachment_fu's callback internals and may affect other plugins as well...

SalesForce -> Highrise Import Script

git-wiki

A quick & dirty git-powered Sinatra wiki

delayed_job

Database based asynchronously priority queue system -- Extracted from Shopify

searchable

Adds a simple #search class method that does SQL searching behind the scenes.

pseudo_primary_key

Overrides find_one and to_param to use the given attribute

attr_hidden

Excludes attributes from serialization methods like to_xml and to_json

sin

small blog engine with XMLRPC, hAtom and S3 upload (through xlmrpc) support hacked up by @kastner

Sinatra

Classy web-development dressed in a DSL

Nginxr

A ruby wrapper for nginx config files

When, a Rails plugin

Adds :if and :unless modifiers to before_filters, most ActiveRecord callbacks, and validations.

canhaschat

An XMPP chat plugin for use w/ Rails

What do you want to see in mod_rubinius?

Ezra asks the community...

RubyFringe: Because everyone will be doing it next year.

Deep nerd tech with punk rock spirit.

Google Base Class by John Nunemaker

Google Base Class is a base for authenticating to google and making requests to google services.

backup_fu Makes Amazon S3 Backups Redonkulously easy

starling and asynchrous tasks in ruby on rails

a plugin called 'workling' that integrates starling into your rails app

Local Gems

Shove this in your bash config

git-rails

git-rails is a simple tool to help manage your rails app with git

FastSessions

Clever optimizations to Rails Sessions

The Ultimate List of RubyCocoa Tutorials, Tips and Tools

A huge list of RubyCocoa links. Must get into this more.

Timezone awareness in Rails -- techno weenie

Hot new TimeWithZone support in Rails

Rack RESTful Dispatcher

Dead simple Ruby REST Services with Rack

Guerrilla's Guide to Optimizing Rails Applications

The Battle For Performance

SwitchPipe - Process Manager and Proxy for Rapid Web App Deployment

Version 1 of Peter Cooper's take on the 'Rails Deployment is Hard' problem.

Rails truncate helper that handles HTML tags and entities

truncate_html()

Savage Beast 2.0

Beast (a Rails forum), as a plugin, for Rails 2.0

Dr Nic » Get ready for the TextMate “Trundle to Rails 2.0 Bundle”

Dr. Nic has taken over and updated the Ruby on Rails TextMate bundle.

YAWS (Erlang) frontend for rails apps

Fuzed is a project attempting to use YAWS and erlang distribution to replace the conventional many-parts mongrel revproxy solution. Ultimately, the goal of the Fuzed project is to make a system which can easily deploy a rails app onto EC2

RailsConf 2008 Registration

Sign up quick - RailsConf sold out in 3 weeks last year

Time in irb

I always have to look this up...

RSpec plain text story runner

Hot

ruby vs java job trends

ruby vs java job trends



Uploaded with plasq's Skitch

SoftValidations

Provides an additional AR::Errors object, referred to as warnings, to ActiveRecord objects. Useful for noting that objects are valid but not in the desired 'complete' state.

friendly_id

Rails plugin for generating URL slugs. Automatically generates redirects if the field used to generate the slug changes

Spreedly

A web service for handing subscription payments for other web services. Written in Rails. ActiveResource REST API. I think my head just exploded.

Highrise to LDAP Gateway

Rubular

Rubular is a Ruby-based regular expression parser. It's a handy way to test regular expressions as you write them.

sudo gem install transaction-simple

Transaction::Simple provides active transactional support to Marshal-able objects.

youtube-g

youtube-g is a pure Ruby client for the YouTube GData API.

ERBifier

Finds all files that end in '.erb', runs them through ERB, and outputs the corresponding file without the '.erb' extension, overwriting any old versions of the file(s) that may be present.

defunkt's git projects

Git repos for ambition, attachment_fu, exception_logger, grit, sinatra, starling. Here there be awesome

evented starling

defunkt is a badass. that is all.

AttributeFu

Syntactic sugar for multi-model forms

Rendering form partials

Syntactic sugar for the form-in-a-partial pattern

efficient-sql

To ensure your test cases call efficient MySQL

Shoes Meets Merb: Driving a GUI App through Web Services in Ruby

query-reviewer

An advanced mysql query analyzer for rails: runs 'EXPLAIN' before each of your select queries in development and summarizes query warnings.

sudo gem install starling

Starling is a light-weight persistent queue server that speaks the MemCache protocol. It was built to drive Twitter's backend, and is in production across Twitter's cluster.

Desert

Desert is a component framework for Rails that allows you to seamlessly define Models, Controllers, Views, Helpers, Routes, Migrations, and Plugin Dependencies in your plugins.

grit

Grit is a Ruby library for extracting information from a git repository in and object oriented manner.

ShortURL

ShortURL is a very simple library to use URL shortening services such as RubyURL, urlTea, and TinyURL.

acts_as_state_machine

Great intro to acts_as_state_machine

Enhanced Acts As State Machine

A small enhancement to the very useful Acts As State Machine

simply_versioned

SimplyVersioned is a simple, non-invasive, approach to versioning ActiveRecord models

skynet

Skynet is an open source Ruby implementation of Google’s Map/Reduce framework, created at Geni.com. With S