Weekly Digest, 5-17-10
by Trevor Turk
Since this is the first Weekly Digest I’ve posted since this blog has been running on Heroku, I thought I’d clean up the way the links are generated. Here’s the new script I’m using:
http://gist.github.com/404555?file=gistfile1.builder
…and the links…
Enjoy!
Why I Steal Movies… Even Ones I’m In
If you’re in the business of promoting a band, why would you want to stop people watching their promotional video?
Rack::Builder is the thing that glues various Rack middlewares and applications together and convert them into a single entity/rack application. A good analogy is comparing Rack::Builder object with a stack, where at the very bottom is your actual rack application and all middlewares on top of it, and the whole stack itself is a rack application too.
How to download all of your Flickr photos using OS X
Whatever your reason, downloading all of your Flickr photos at once is pretty easy, with the help of Photo Grabbr.
Absolute Power vs. the Pirate Flag
Will my decision to speak publicly about these concerns harm our ability to deliver iPad apps? I don’t know; that’s up to Apple. But can you imagine a world where, say, constructively criticizing Microsoft could destroy your ability to ship a Windows application? It’s almost unthinkable, and yet that’s the position in which Apple’s App Store puts us.
If I could never remove features, I’d never add any.
An open phone API platform (Asterisk/AGI, HTTP/JSON, SIP, Adhearsion/Ruby, Asterisk-Java)
reddit’s May 2010 “State of the Servers” report
We promised we’d make a blog post about last week’s issues, but every time we sat down to write it, a new issue popped up. It’s been a crappy week. Anyway, although we’re still knee-deep in looking for ways to make the site more stable, it’s probably time to write up that, uh, writeup.
Embedly strives to be the go to place for previewing and embedding urls. We offer methods to make it simple to embed content from multiple sources via one API. Embedly uses the oEmbed spec when returning an embed object.
With universal auto-rotation, the massive touch screen, and highly reactive apps, the iPad is always “hot” …maybe you think you broke something, maybe you lost your place, or maybe you’re disoriented for a few seconds.
ActiveRecord’s Callbacks Ruined My Life
Recently I’ve been having a foul taste in my mouth, or just a bad feeling, if you will. Whenever I started adding validations and callbacks to a model in a Rails application. It just felt wrong.
Heather Poole, a flight attendant from Los Angeles, demonstrates how to pack enough for a 10-day trip into a single standard carry-on.
Lessons Learned while at Reddit on Vimeo
Steve Huffman at the Future of Web Apps Miami 2010
Introducing Scribd in HTML5 [Fantastic]
Introduction To Online Payments
As far as I’m concerned, there are three real options: PayPal Website Payments Pro; Braintree Gateway + Account; Authorize.net + Merchant Account
Steve Jobs – April, 2010
Heroku Experimental node.js Support
Today we’re offering experimental support for node.js
Designers, Developers, and the x_ Factor
The third idea that was discussed, was specifying a naming convention for any elements that were needed by our Ajax code. We played around on the whiteboard with some ideas and settled on the idea that we’d prefix our id’s with something easy to remember for both designers and developers.
Masonry is a layout plugin for jQuery. Think of it as the flip side of CSS floats. Whereas floating arranges elements horizontally then vertically, Masonry arranges elements vertically then horizontally according to a grid. The result minimizes vertical gaps between elements of varying height, just like a mason fitting stones in a wall.
The internet is not a numbers game. It’s about dialog, persuasion, and influence.
Railscasts – Introducing Devise
Devise is a full-featured authentication solution which handles all of the controller logic and frm views for you. Learn how to set it up in this episode.
Authentication – Facebook Developers
The Facebook Platform uses the OAuth 2.0 protocol for authentication and authorization. We support a number of flows so that you can authenticate users in web applications via redirects, in JavaScript, or in desktop and mobile applications.
In July 2008, Twitter acquired a company called Summize. The stated reason was to bring search into Twitter. And that was the main reason that Twitter did the deal. But Twitter also got a very strong engineering team in that acquisition. I remember asking Ev and Jack at the time “how are we going to integrate the engineering team?” and Jack replying “we aren’t going to integrate them, they are going to integrate us”.
Big Data in Real-Time at Twitter
I usually don’t leave my MacBook to sleep for so long that the battery rans out, and even if I do, I usually save all my work, so… I will assume the risk of not awaking from sleep (and a couple of HFS log replays) to save 8 GB on my SSD.
Google: Using site speed in web search ranking
We encourage you to start looking at your site’s speed (the tools above provide a great starting point) — not only to improve your ranking in search engines, but also to improve everyone’s experience on the Internet.
Adam Wiggins on Building Heroku on Top of Amazon EC2
Adam Wiggins explains the experience with building Heroku on top of Amazon EC2, the pros and cons of virtualization, and the importance of automation.
Managing Heroku environment variables for local development
…I simply load a local file called heroku_env.rb before the Rails.initialize call inside environment.rb…
Steve Jobs’ response on Section 3.3.1
After posting my reaction to clause 3.3.1 of the iPhone SDK terms I decided to write Steve Jobs the following email…
Online Backup for Mac [Highly recommended.]
The iPad isn’t a big iPod touch—an iPod touch is a miniature iPad that restricts the full multitouch experience in exchange for offering greater portability. With the iPad, in contrast, you get multitouch the way it was meant to be done.
rder => :random in queries – Ruby on Rails
Koz: If you want to efficiently select random records something like this will work…
The Lowdown on Routes in Rails 3
In this post, we’ll walk through the underpinnings of Routes in Rails 3. They’ve been rewritten—for good reason—and after we get through the explanation, I’m confident you’ll agree.
It all reminds me of the software business. The industry is obsessed with touting features while the public is obsessed an entirely different set of criteria: Does it solve my basic problems and is it easy to use? Does it make sense? Do I understand it?
Hoptoad has been running on the Engine Yard cloud for more than a week now, with excellent performance. We’ve been looking forward to this for quite some time, and want to share a little about our motivations and experiences.
…make sure this site is up…if not, email me at…
Custom Post Types in WordPress 3.0
In version 3.0 the developers of WordPress introduce the custom post types. I’m not sure whether it’ll be solely built into the API or also displayed as a GUI somewhere in the settings, but it doesn’t require too much coding skills to add a couple via your functions.php or a perhaps a plugin.
Heroku Backup with Single Bundle
It assumes you have a single bundle enabled for your app, which is free. I destroy any bundle there, create a new one, download it, and push it up to Amazon’s S3 service.
Web Developer – Google Chrome Extension
The Web Developer extension adds a toolbar button to the browser with various web developer tools. This is the official port of the popular Web Developer extension for Firefox written by the same person.
Moving to a safer password solution
In an application we wrote back in 2004 I found MD5 hashed passwords. We decided this was too weak for modern standards so we wanted to switch to bcrypt. During the move we wanted the user to be affected as little as possible.
In order to compute the crypted password we need the cleartext version. We only have a hashed version so the user has to type her password. Luckily they do this every time they authenticate, so that is a nice opportunity to upgrade their password.
The More You Know: custom time descriptions
it took me mildly by surprise when I learned that you can override distance_in_words with the i18n API (and, by extension, time_ago_in_words).
Impress the Ladies with Legacy Migrations
If there’s one thing I’ve learned from my experiences with women, it’s that they secretly can’t control themselves if a man is there to sweep them off their feet with tales of legacy data migration suavity.
What we want from our technology, in its most elemental form, is to make our thoughts happen. Sure, it’s still very much sci-fi in 2010, but what every calculating machine and telephone and computer and phonograph and light bulb and hammer and every tool ever invented is about at its core is our desire, our evolutionary imperative to control our environment at our will. And we’re getting closer and closer to that happening.