Links for 5-17-11
Lots of links. It's been too long!Legacy Development with Pow « Stuff… And Things…
However, there is a downside: Pow doesn’t play nicely with Apache (or any server listening on port 80). Life isn’t all greenfield, if in the course of the day you need to work on PHP or CGI legacy apps Pow is not so simple. Pow creates a firewall rule that redirects port 80 to its port; to access Apache you need to either toggle the firewall rule on and off or move Apache to a different port all together. And now you’re running two web servers. There has to be a better way.
Experimental Terminal platform built on WebKit + node.js. Currently only for Mac, though the prototype works 90% in any WebKit browser.
Guard is a command line tool to easily handle events on files modifications (FSEvent / Inotify / Polling support).
Download github issues for offline access
Terminitor automates your development workflow setup. Less time setting up, more time getting things done.
Getting Organized with the Tasks API - Google Apps Developer Blog
Mailgun: Programmable Email Servers and Mailbox API
Send, track and analyze. Receive, parse and store.
Rails 3: Fully Loaded | Intridea Blog
I'd like to share a stack of gems that I've been using this year. Hopefully they will give people a bit of help while developing a new Rails 3 app.
Exit Interview: Newsvine's Mike Davidson - (37signals)
Heroku: How does Heroku work? - Quora
Obtiva's Newest Senior Consultants
Are Four Words Worth $25 Billion for Groupon? - BusinessWeek
Sass on Heroku or any generated files for that matter - UnderpantsGnome
Since Heroku doesn’t care what you push to it as long as it is in the master branch on their end, why not generate the assets in a throwaway branch and push that up?
johnmuhl/html5.tmbundle - GitHub
HTML bundle for TextMate
Just How Dangerous Is Sitting All Day? [INFOGRAPHIC]
Applying the Unix Process Model to Web Apps
The unix process model is a powerful way to approach running your web app. Procfile gives us a way to declare process types, and Foreman gives us an easy way to run the app’s processes in both development and deployment environments.
Organized Models (Episode #173 - May 6th, 2011)
The Changelogs for Rails 3.1 Beta 1 — Gist
Queue failed Solr calls with Delayed::Job - UnderpantsGnome
rubygems 1.8 is coming - Polishing Ruby
Musings from Boulder - Waiting for jQuery Ajax calls to finish in Cucumber
martinbtt/net-http-spy - GitHub
Ever wondered what HTTP requests the Ruby gem you are using to connect to a third party API is making? Use HTTP Spy to see what is going on behind the scenes
VideoJS is an HTML5 video player that uses the HTML5 video tag built into modern browsers, and uses javascript to add custom controls, new functionality, and to fix cross browser bugs.
tenderlove/rails_autolink - GitHub
This is an extraction of the `auto_link` method from rails. The `auto_link` method was removed from Rails in version Rails 3.1. This gem is meant to bridge the gap for people migrating.
Fixing Uninitialized Constant MysqlCompat::MysqlRes Error on Snow Leopard
Simple Ruby wrapper for the GitHub v2 API and feeds
Easily use any Plain Old Ruby Object as the model for Rails form helpers.
The “book” is dead [dive into mark]
What Safari’s “Reading List” in Lion means for Instapaper – Marco.org
Starbucks practices extremely predatory site selection for their stores: they’ll intentionally move in right across the street from or immediately next door to independent coffee shops, in an unnecessarily aggressive effort to drive them all out of business. It puts the bad ones out of business, but it actually helps the good ones.
The Netflix Tech Blog: Lessons Netflix Learned from the AWS Outage
Real time vs. slow time – and a defense of sane work hours - (37signals)
Subtle Patterns | High quality patterns for your next web project
Netflix tops Comcast as largest video subscription service - Apr. 25, 2011
Netflix knocked over a new milestone Monday: It now has more subscribers than the largest cable TV operator in the U.S.
MongoDB as a Key-Value Solution for Logging Events Data | Engine Yard Ruby on Rails Blog
Tech Notes: Complexity is the enemy
Another word for this problem is cleverness: to quote another one of the C hackers, "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."
CodeConf Sunday Summary - The Changelog - Open Source moves fast. Keep up.
CodeConf Saturday Summary - The Changelog - Open Source moves fast. Keep up.
Option gathering made easy
Edge Rails.info :: ActiveRecord Identity Map
If you’ve been using rails for a while now you may be familiar with Active Record’s query cache. The query cache is a powerful part of Active Record which reduces unnecessary SQL calls and provides general speed improvements, especially when dealing with associations. The problem with the query cache, however, is when retrieving two identical records from the database two in-memory objects will still be created.
The Sad, Beautiful Fact That We're All Going To Miss Almost Everything : Monkey See : NPR
The easiest way to share localhost over the web.
How to Play with Rails 3.1, CoffeeScript and All That Jazz Right Now
Maybe I'm weird (actually, there's no maybe about it) but when I first heard about Rails 3.1 getting CoffeeScript and Sass out of the box, I wanted to see how it worked and how smooth the process would be. So like quite a few people on IRC I've seen, I installed edge Rails (currently 3.1.0-beta) and got playing. (Yes, it's PRE-RELEASE. Expect mischief!)
Subtraction.com: Commented Out
Rails 3.1 Adopts CoffeeScript, jQuery, Sass and.. Controversy
I'm glad David's stepping into these sorts of discussions again. He seemed to fade away during the year before Rails 3 came out, leaving a lot of the "thought leadership" to Yehuda Katz. Now he's back on top form and talking sense - long may it last.
The Quest Continues: Introducing capybara-webkit - GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS
What we need was a real rendering engine coupled with a full Javascript and DOM implementation, but without all the cruft of a GUI browser. What we really wanted was a headless implementation of WebKit’s rendering engine that could be driven by Capybara tests. After Tristan “Websockets” Dunn showed me PhantomJs, I realized this might be possible using Qt’s WebKit implementation.
HireFire automatically "hires" and "fires" (aka "scales") Delayed Job (and soon Resque too!) workers on Heroku. When there are no queue jobs, HireFire will fire (shut down) all workers. If there are queued jobs, then it'll hire (spin up) workers. The amount of workers that get hired depends on the amount of queued jobs (the ratio can be configured by you). HireFire is great for both high, mid and low traffic applications. It can save you a lot of money by only hiring workers when there are pending jobs, and then firing them again once all the jobs have been processed. It's also capable to dramatically reducing processing time by automatically hiring more workers when the queue size increases.
Cloud Foundry, a VMware-led project is the world’s first open Platform as a Service (PaaS) offering. Cloud Foundry provides a platform for building, deploying, and running cloud apps using Spring for Java developers, Rails and Sinatra for Ruby developers, Node.js and other JVM frameworks including Grails.
Over the past 8 years, we’ve used many tools for project communication and planning and we tried very hard to not write our own. The latest combination was Basecamp and Pivotal Tracker. Basecamp was great for discussion and communication. Pivotal Tracker was great for user stories and emergent planning. However, we’ve grown tired of having one tool that designers love, one tool that developers love, and no tool that clients love.
Syntactic suger for http://pow.cx/
Issues 2.0: The Next Generation - GitHub
Facebook's Open Compute Project
Better AWS Access Control with IAM (and Fog)
Any MacRuby Apps in the App Store? Yes. - RedwoodApp Development Blog
jashkenas/coffee-script-tmbundle - GitHub
A TextMate Bundle for CoffeeScript
Most followed users on github by city.
Node powered Rack server
Zero-configuration Rack server for Mac OS X
The Git TextMate Bundle
Bookmarks Bar Keyboard Shortcuts - Google Chrome extension gallery
Trigger the first ten Bookmarks Bar items with Ctrl+1 through Ctrl+0 (on OS X; it's Alt on Windows, Meta on Linux).
Call Me Fishmeal.: Success, and Farming vs. Mining
Heroku | Dev Center | Managing Multiple Environments for an App
Eco lets you embed CoffeeScript logic in your markup. It's like EJS and ERB, but with CoffeeScript inside the <% ... %>. Use it from Node.js to render your application's views.
8 Ways Companies Can Contribute to Open Source Communities
Permit (freely encourage) your developers to engage with the OSS community around each project. They, and your company, will get two primary benefits: You will gain a more intimate understanding of the projects, and you will have social and productive relationships with the other core developers and contributors in the community. It’s easy to ask a friend to help solve a problem. The first step is to contribute to their project; friendship and partnership will follow.
cbeier/heroku_asset_packager - GitHub
A plugin to duck-punch asset packager and provide middleware to work on Heroku with a ROFS.
Testing Advice in Eleven Steps « Rails Test Prescriptions Blog
As it happens, my generic advice on Rails testing hasn’t changed substantially, even though the tools I use on a daily basis have.
Today we’re taking that a step further, enabling you to share recommendations with the world right in Google’s search results. It’s called +1—the digital shorthand for “this is pretty cool.” To recommend something, all you have to do is click +1 on a webpage or ad you find useful. These +1’s will then start appearing in Google’s search results.
Thoughts on testing - part 1 - Object Reload
It doesn't take a genius to realise that testing is a very personal matter. From Test::Unit purists to RSpec evangelists, everyone has their own take on testing Ruby code. And whilst we believe that not only there are no silver bullets in most of the problems in software development but personal preferences make it unlikely that there will ever be any, we'd like to share our thoughts about testing in this series of posts. We hope it will be as enjoyable for you to read as it was for us to write.
Website Monitoring and Load Testing - In The Cloud | BrowserMob
BrowserMob Provides FREE Website Monitoring and Load Testing [Used by github]
JSONView for Chrome™ - Google Chrome extension gallery
JSONView for chrome is an extension that helps you to parse and view JSON documents
jamesgolick/always_verify_ssl_certificates - GitHub
Ruby’s net/http is setup to never verify SSL certificates by default. Most ruby libraries do the same. That means that you’re not verifying the identity of the server you’re communicating with and are therefore exposed to man in the middle attacks. This gem monkey-patches net/http to force certificate verification and make turning it off impossible.
bcardarella/client_side_validations - GitHub
Rails 3 Client Side Validations
citizen428/methodfinder - GitHub
A Smalltalk-like Method Finder for Ruby. Provided with a receiver, a desired result and possibly some arguments, it will list all methods that produce the result when called on the receiver with the arguments.
an add-on library that implements several middleware (such as JSON and XML parsers) and helps you build an awesome stack that covers most of your API-consuming needs.
Commit cb3e96a447df592947ae10221c7494eb8bf08012 to rails/rails - GitHub
Make JavaScriptHelper#j() an alias for JavaScriptHelper#escape_javascript()
A new look and feel for Test::Unit output -- Test::Unit Reporter (New)
Commit f8a05ad297d637596d029b013bb65128ca0aa8bd to rails/rails - GitHub
Allow FormHelper#form_for to specify the :method as a direct option instead of through the :html hash
Commit 2c0c4d754e34b13379dfc53121a970c25fab5dae to rails/rails - GitHub
Add `config.force_ssl` configuration which will load `Rack::SSL` middleware if set to true
Commit e2b07ee000439d0bd41f725ff9f7ad53e52a7e9b to rails/rails - GitHub
Added Base.http_basic_authenticate_with to do simple http basic authentication with a single class method call
TomK32/macruby-statusmenu - GitHub
An example for a StatusMenu application written in MacRuby
Adding additional processing support to CarrierWave » Transcending Frontiers
Out of the box CarrierWave provides a consistent interface to process images using RMagick, MiniMagick or ImageScience. Resizing and cropping is supported for all three image processing engines but setting the quality or removing personal data is not supported. Thankfully, CarrierWave provides an easy way to extend the default functionality so we can do more.
Rails 3 + Devise + Uploadify = No Flash Session Hacks
So, this token authentication got me thinking. Instead of sending an encoded string with session information to flash, which in turn sends it to the server, which in turn hacks it into an actual session, I could just send the user’s authentication token along! No sever-side hacks required – it’s all built in into devise already!
Job: Rails Programmer - 37signals
Amazon Web Services Blog: Amazon EC2 Dedicated Instances
Skills Matter : CukeUp! 24-03-11
Product design at GitHub — Warpspire
Ten Lessons from GitHub's First Year
Bootstrapped, Profitable, & Proud: Coudal
David Worthington’s Mom Reviews the iPad, Her First Computer
Mom: Yeah. I’m doing more and more of that lately. I’m learning from my mistakes, and beginning to use Google.
Ryan Singer at Future of Web Apps, London 2010 on Vimeo
Here's a talk I gave at Future of Web Apps 2010 in London. In this talk, I walk through the steps of creating a web app including modeling, sketching, HTML, Photoshop explorations, and moving from static mockups to live running code. Each step is illustrated with a real example, including some live sketching and live HTML. I also wanted to give a sense of how we think about apps at 37signals, as a stack of different levels that we can iterate on individually.
Visualizing a product's UI and code layers - (Ryan Singer)
If I ask you to visualize a software product, a picture of the interface probably comes to mind. From the user’s perspective, the interface is the product. For us on the development side, the product is more than that. It’s the interface, the code, the connections from code to UI, the separations of concerns and the boundaries between features.
Object-Hash Mapping for Redis
A ruby client library for the redis key value storage engine
Using Redis with Ruby on Rails
TL;DR: Redis is fucking awesome.
Why I Don’t Do Sales On The App Store « carpeaqua by Justin Williams
pushState + ajax = pjax. pjax loads HTML from your server into the current page without a full reload. It's ajax with real permalinks, page titles, and a working back button that fully degrades.
An interactive online marketplace where you can learn to code directly in the browser
Monitor your service's availability through a simple, clean DSL
A friendly wrapper for launchctl
Solr-powered search for Ruby objects
loopj/jquery-tokeninput - GitHub
Tokeninput is a jQuery plugin which allows your users to select multiple items from a predefined list, using autocompletion as they type to find each item. You may have seen a similar type of text entry when filling in the recipients field sending messages on facebook.
Bake, Don’t Fry (Aaron Swartz: The Weblog)
inessential.com: A plea for baked weblogs
nathansmith/formalize - GitHub
Teach your forms some manners
Sign, edit, and fax documents online | HelloFax
With HelloFax, you can send faxes, sign documents and fill out forms... all from your computer.
Y Combinator on Tuesday showed off its latest class of start-ups at its Mountain View, CA, headquarters, offering an extra-large sampler pack of developer tools; social apps; lots of services for markets like real estate, doctors and parents; and, of course, a few of its trademark productivity apps.
We’ve been on a quest for years to make sure our integration tests covered the Javascript components of the app. We noted in November that we felt the community had reached an important plateau with a toolset of Cucumber, Capybara, and Akephalos. While still frequently painful, our default mentality on new projects is “we will be able to test the Javascript components of this app in our usual integration tests.”
bernerdschaefer/akephalos - GitHub
Headless HTMLUnit powered browser for Capybara
Digital Subscription Prices Visualized (aka The New York Times Is Delusional)
The New York Times pricing seems designed not to get people to subscribe digitally, but rather to discourage existing subscribers from cancelling their print subscriptions. I think the chart above validates that view: they apparently have no interest in competing for digital-only dollars.
devstructure/blueprint - GitHub
Reverse engineer server configuration
Newspaper Club | Helping people to make their own newspapers
We're here to help you make your own newspapers. You can use our online tool to upload and arrange your words and pictures or you can use the site to send us a PDF. We print every Tuesday afternoon, and you'll get your papers in about a week.
Desktime - Shared Desks and Coworking
Rent shared spaces, empty desks, conference rooms, or entire offices by the day, week, or month.
Serve is a small Rack-based web server and rapid prototyping framework for Web applications (specifically Rails apps). It is designed to compliment web application development and enforce a strict separation of concerns between designer and developer. Using Serve allows the designer to work in a separate prototype project, while the developer can work on the actual application and utilize resources from the prototype as needed. This allows the designer to focus on presentation and flow, while the developer can focus on implementation.
Building a business around maximizing your individual happiness is not particularly useful or admirable. That is my position, and I’m well aware that it may be unpopular with some.
ketralnis comments on Why reddit was down for 6 of the last 24 hours.
I don't work for reddit anymore (as of about a week ago, although I didn't get as much fanfare as raldi did), but I can tell you that they're giving Amazon too much credit here. Amazon's EBSs are a barrel of laughs in terms of performance and reliability and are a constant (and the single largest) source of failure across reddit.
Lessons from 11 years of community (my SXSW 2011 talk) on Vimeo
A lot of people missed my talk so I recorded it in my office as soon as I got home from Austin. It covers mainly moderation tips and ideas for building tools for more effective moderation.
Generate memes from http://memegenerator.net
the { buckblogs :here }: Infinity
Clarifying the Roles of the .gemspec and Gemfile « Katz Got Your Tongue?