boston.com / Monday, June 15, 2009 at 08:49 PM

Iran's Disputed Election

The Boston Globe with a 30-40 good-res photos from the Iran election riots. It’s really poppin' off over there.

rubyinside.com / Saturday, June 13, 2009 at 12:24 AM

Rip: A Next Generation Ruby Packaging System

There’s a nice combination of old and new concepts in here.

mnot.net / Friday, June 12, 2009 at 11:48 PM

What to Look For in a HTTP Proxy/Cache

mnot on how to evaluate different proxy cache options for your needs.

usenix.org / Monday, June 08, 2009 at 09:26 AM

Why Events Are A Bad Idea (for high-concurrency servers)

I want to believe!

stuartcheshire.org / Saturday, June 06, 2009 at 08:32 AM

It's the Latency, Stupid

Another classic on latency vs. throughput. This one gets into the limitations of speed of light fairly quickly :)

en.wikipedia.org / Saturday, June 06, 2009 at 08:30 AM

Relationship between latency and throughput

Interesting reading if you found Nick’s handling of latency vs. throughput (in the gogaruca talk) intriguing.

pivotallabs.com / Saturday, June 06, 2009 at 08:22 AM

Nick Kallen - Magic Scaling Sprinkles

Great talk from this year’s gogaruca conference. Anything that starts with a rail against the belief that tools can have mystical scaling powers is going to end up being a good talk :)

innoq.com / Monday, June 01, 2009 at 02:51 AM

Stefan Tilkov's REST Book: References

Whoa. How do I get my hands on an english copy?

slideshare.net / Saturday, May 30, 2009 at 09:42 AM

Sinatra Rack And Middleware

Amazing! I put Ben under the table that night. Tucked him into bed and gave him a kiss.

tomatonation.com / Wednesday, May 27, 2009 at 01:09 AM

25 And Over

“If you have reached the age of 25, I have a bit of bad news for you, to wit: it is time, if you have not already done so, for you to emerge from your cocoon of post-adolescent dithering and self-absorption and join the rest of us in the world.”

Very well done.

blog.jerodsanto.net / Tuesday, May 26, 2009 at 12:29 PM

3 Reasons Why Heroku is a Game Changer

We've been getting a decent amount of PR-ish type coverage since the commercial launch but I still say blog posts like these are infinitely more interesting:

Remember when microwaves first hit the scene and people couldn’t believe how fast they could ‘deploy’ a meal? Yah me either, but the microwave changed the game big time.

And, unlike the microwave, Heroku doesn’t make your apps taste like cardboard :)

uzbl.org / Tuesday, May 26, 2009 at 09:37 AM

The Uzbl browser

Minimalist, keyboard controlled (modal vim-like bindings, or with modifier keys) browser based on Webkit. A lightweight vimperator, maybe?

tbray.org / Tuesday, May 26, 2009 at 07:38 AM

The Web vs. the Fallacies

Tim Bray evaluates the web’s basic design from the perspective of the Fallacies of Distributed Computing. Reminds me of TimBL’s Axioms of Web architecture a bit. This stuff is essential to understanding why the web succeeded where other systems failed and why the web seems quirky in some ways compared to other distributed computing systems.

3.bp.blogspot.com / Monday, May 25, 2009 at 03:55 PM

Top significant moments from the Internet history

Pretty. Y axis is a category of significance, X axis is the year. There’s at least one error: no mention of suck.com ;)

xaprb.com / Monday, May 25, 2009 at 03:41 PM

An easy way to run many tasks in parallel

Nice. The xargs(1) switch -P N will run up to N separate processes in parallel. Combine with the -n M switch for a quick and dirty process pool.

tom.preston-werner.com / Tuesday, May 19, 2009 at 12:18 AM

The Git Parable

tl;dr — that’s why it’s awesome.

simonwillison.net / Tuesday, May 19, 2009 at 12:09 AM

djng—a Django powered microframework

Simon Willison is working on python web microframework based on Django. This will get interesting. Fast.

timetobleed.com / Monday, May 18, 2009 at 10:45 PM

Fixing Threads in Ruby 1.8: A 2-10x performance boost

Must read.

terrastories.com / Thursday, May 14, 2009 at 04:22 AM

Abandoned: Six Flags New Orleans

They shut the park down before Katrina and just left everything. There’s still prizes and stuff hanging on the walls. Spooky indeed. (Via @timbray)

slideshare.net / Monday, May 11, 2009 at 12:20 PM

HTTP's Best-Kept Secret: Caching

Here’s the slides from my RailsConf 2009 presentation on HTTP caching. I doubt the general info will make much sense without me talking over it but the diagrams should be fairly useful.

codahale.com / Monday, May 11, 2009 at 10:38 AM

When Formality Works

Coda on why Rack has had so much success within the Ruby community and modeling projects after it in the future. I couldn’t agree more.

chneukirchen.org / Monday, May 11, 2009 at 10:37 AM

Devil's RailsConf 2009 Dictionary

Christian Neukirchen’s RailsConf 2009 wrap up. I had a pretty amazing time at the conference but sharing a Hookah with Chris was definitely a highlight.

kitchensoap.com / Sunday, May 10, 2009 at 12:49 PM

Mechanical Analogies To Web Stuff, Part 2.

Really interesting analogy between web architecture and a car crash. This is the piece that’s missing from almost every conversation about whether any given web framework or component “scales”. (via @jperkins)

canonical.org / Tuesday, April 28, 2009 at 12:58 AM

How False Rumors Can Cost Lives

Kragen Javier Sitaker: “I have said that spreading false rumors in time of epidemic costs lives. People have asked me how…”

This is why I recommend everyone subscribe to kragen-tol.

jwz.org / Monday, April 27, 2009 at 01:05 AM

message threading

Jamie Zawinski (1997): “In this document, I describe what is, in my humble but correct opinion, the best known algorithm for threading messages (that is, grouping messages together in parent/child relationships based on which messages are replies to which others.) This is the threading algorithm that was used in Netscape Mail and News 2.0 and 3.0, and in Grendel.”

flyingfrogblog.blogspot.com / Monday, April 27, 2009 at 01:03 AM

When celebrity programmers attack: Guido on tail calls

“Almost all non-functional programmers are unaware that tail calls facilitate a programming paradigm that they have never seen. The ability to tail call to functions that are not statically known is the foundation that makes many combinators useful. This is a style of programming where functions are composed in order to create a pipeline for values to flow through. Without tail call elimination, every stage in the pipeline would leak stack space and the whole approach becomes unusably unreliable.”

blog.james-carr.org / Sunday, April 26, 2009 at 12:52 AM

TDD Anti-Patterns

James Carr’s classification system for unit test smells and anti-patterns. This is almost three years old but still extremely relevant judging by the test suites I'm working with today. I'm guilty of more than a few of these. Via @coda.

github.com / Saturday, April 25, 2009 at 04:12 PM

Bunny - a synchronous Ruby AMQP client

Nice. Probably more appropriate than tmm1-amqp in threaded/synchronous environments or when you don’t want to deal with EM. Then again, I believe tmm1-amqp has a synchronous interface. If not, it wouldn’t be hard to put one together with fibers.

groups.google.com / Saturday, April 25, 2009 at 03:23 PM

Rack 1.0 released!

We made it.

heroku.com / Friday, April 24, 2009 at 11:44 PM

Heroku Pricing

I've been staring at this screen for two sleepless weeks now. Really glad to have it wrapped. James Lindenbaum (CEO/founder/bad-ass) did most of the conceptual design work. seaofclouds did the fucking amazing illustrations and took the design to completion. Pedro Belo did the HTML/JavaScript and server side stuff. Definitely one of the best teams I've worked on.

remi.org / Friday, April 24, 2009 at 09:58 PM

Deploying Ruby Web Applications to Heroku

Remi’s kick ass screencast on deploying to Heroku.

infoq.com / Wednesday, April 22, 2009 at 01:44 PM

Mark Nottingham's HTTP Status Report presentation at QCon '08

Protocols are hard. Nobody understands this.

youtube.com / Monday, April 20, 2009 at 04:15 AM

Danny MacAskill on a Bike

Sick.

rubyinside.com / Monday, April 13, 2009 at 01:20 AM

RabbitMQ - A Fast, Reliable Queuing Option for Rubyists

I had a chance to hang out with Rabbit’s Tony Garnock-Jones last week. Awesome guy. Knows his shit. We use RabbitMQ prettyy all over the place at Heroku — big fans.

matthias-georgi.de / Monday, April 13, 2009 at 01:12 AM

RackDAV - Web Authoring for Rack

Matthias Georgi’s framework for building DAV servers in Ruby with Rack. Could make building apps that mount into a local filesystem quite simple.

sfbayview.com / Monday, April 13, 2009 at 01:10 AM

You are being lied to about pirates

We live in a crazy world.

aisleone.net / Monday, April 13, 2009 at 12:56 AM

8 Simple Ways to Improve Typography In Your Designs

Measure, Leading, Quotes, Rhythm, Widows, Emphasis, Scale, and Rags. Great piece.

blog.evanweaver.com / Sunday, April 12, 2009 at 09:33 AM

ruby gc tuning

Great ideas for tweaking Ruby’s GC after applying Stefan’s Kaes’s GC patch. By the way, that patch has been an option on the ruby port in FreeBSD for years. It works. Apply it.

blog.bigcurl.de / Thursday, April 09, 2009 at 04:10 AM

Bigcurl: Running Sinatra apps on Google AppEngine (Java)

This is why simple is better. Sinatra probably runs well on any compatible ruby with a Rack handler.

diveintomark.org / Friday, March 27, 2009 at 06:40 PM

Dive into history, 2009 edition

Mark Pilgrim: “Anyway, I now realize that there were some hidden assumptions behind my design decisions in 2000. Some of those assumptions turned out to be wrong, or at least not-completely-right. Sure, a lot of people downloaded dip, but it still pales in comparison to the number of visitors I got from search traffic. In 2000, I fretted about my ‘home page’ and my ‘navigation aids.’ Nobody cares about any of that anymore, and I have nine years of access logs to prove it.

I don’t think most people realize how little site navigation matters anymore. Your site’s navigation is google, topic sites, blogs, and feeds. The “website” is dead. Long live the individual useful resource.

fivethirtyeight.com / Wednesday, March 25, 2009 at 02:58 AM

FiveThirtyEight: Politics Done Right: Why AIG Paid the "Bonuses"

OMG! Real, actual, research on the AIG bonus situation (from their 2007 10-K filing): “In light of the unrealized market valuation loss related to the AIGFP super senior credit default swap portfolio, to retain and motivate the affected AIGFP employees, a special incentive plan relating to 2007 was established. Under this plan, certain AIGFP employees were granted cash awards vesting over two years and payable in 2013.”

Interesting. So the bonuses were lined up in 2007 because all of their top guys would have left for other, less fucked up securities.

infoworld.com / Wednesday, March 25, 2009 at 02:48 AM

Slacker databases break all the old rules

Good writeup on the rise of document and columnar databases, including Amazon SimpleDB, Apache CouchDB, Google App Engine, and Persevere.

groups.google.com / Monday, March 16, 2009 at 06:28 PM

rack-cache 0.4 released

Get it while it’s hot.

gilesbowkett.blogspot.com / Monday, March 16, 2009 at 06:20 PM

Gay People, Come To Rails

Well said. It appears PHP’s culture of stupidity isn’t limited to technology. What a bunch of assholes.

aaronsw.com / Monday, March 16, 2009 at 04:50 PM

Journalistic Capture and Fixing CNBC

Aaron Swartz explains why he (and friends) put fixcnbc.com together. I've always been skeptical of petition sites but his logic is sound here.

time.com / Monday, March 16, 2009 at 04:47 AM

Detroit's Beautiful, Horrible Decline

Amazingly painful to look at these. I hope motown can figure something out but I think it’s more likely that we’ll see other city’s (like Cleveland) follow in its footsteps. Decline sucks.

warpedvisions.org / Monday, March 16, 2009 at 04:02 AM

Things I hate about kitchen user interfaces

For real. The best microwave is one that has a single timer dial that moves as time elapses. No one ever uses all those buttons. I use exactly one button on my current microwave: “Quick Minute” (hitting it as many times as needed) but I'd prefer a dial.

ibm.com / Monday, March 09, 2009 at 10:13 AM

Delve into UNIX process creation

It’s important to understand how fork(2), pipe(2), and exec(2) work. I don’t want to hear anymore of this “fork is a hack” shit from any of you :)

docs.persvr.org / Monday, March 09, 2009 at 08:59 AM

JSONQuery

XPath-like syntax for expressing selection queries against JSON data structures. Interesting concept. I've always wondered why the basic concepts behind XPath were never borrow and applied to other types of structured data — it’s so insanely useful. I suppose jQuery popularized using CSS selectors for querying HTML but why not take the same basic concept and apply it to problem domains outside of SGML-inspired markup languages and their data models.

brynary.com / Monday, March 09, 2009 at 01:56 AM

Rack::Test released: Simply test any Rack-compatible app

Nice. This is very similar to the Sinatra::Test module but with a few additional features (i.e., the session/cookiejar thingy). If this gets traction (and it will), we’ll deprecate Sinatra::Test and recommend people use Rack::Test instead.

blog.heroku.com / Thursday, March 05, 2009 at 11:56 PM

Deploy Merb, Sinatra, or any Rack App to Heroku

I worked on this a bit. Jazzed to see it announced. Actually, they pretty much had everything working when I got there. I wrote some docs and tightened things up a bit is all.

Now go deploy something – it’s free!

computerworld.com.au / Thursday, March 05, 2009 at 11:38 PM

An in-depth interview with Steve Bourne, creator of the Bourne shell, or sh

I <3 `sh(1)`.

heroku.com / Wednesday, March 04, 2009 at 02:29 AM

Heroku - How it Works

Things are starting to get interesting around here. James pulled together some (fucking sexy) high level architectural diagrams and annotated them just so. We can start talking about what we’re up to a bit more now that this is out. I'm jazzed.

necronomicorp.com / Tuesday, March 03, 2009 at 08:18 PM

Why It's Worth Fixing HTTP Authentication (and How to Do It)

Why browser UI for HTTP auth is so horrible has always baffled me. This could be improved significant without any changes to HTTP whatsoever.

projects.linpro.no / Monday, March 02, 2009 at 01:51 AM

Twitter's Varnish config

John Adams posted a bunch of details of the Varnish configuration they use in front of search.twitter.com to the varnish ML. Great stuff and nice to see the Twitter devs continuing to share their experiences with the community.

twitter.com / Monday, March 02, 2009 at 01:31 AM

Twitter / sinatra

Harry Vangberg put together a Twitter relay bot in #sinatra (nick: nancie) so a bunch of the cool cats there are keeping the @sinatra twitter feed lit up with a stream links, tips, and announcements.

whacked.net / Friday, February 27, 2009 at 12:29 AM

Comcast Van Towage / Songbird Tow Fail Ritual

“I was having sort of a crap day, and spending 10 minutes watching this guy get towed completely brightened my day up. I normally feel slightly guilty watching everyday people’s cars get towed – so it was nice not to have any conscience eating at me this time.”

railslab.newrelic.com / Thursday, February 26, 2009 at 04:04 PM

Scaling Rails - Episode #11 - Advanced HTTP Caching

I haven’t actually had a chance to watch this yet but I'm sure it’s great if it builds on the talk Gregg gave at acts_as_conference 2009. Also, I love this slide: “Reverse Proxy Caches – WTF?” :)

aac2009.confreaks.com / Wednesday, February 25, 2009 at 09:48 PM

Gregg Pollack presents Rack::Cache at acts_as_conference 2009

The RailsEnvy guys presented on a bunch of recent innovations in the Ruby/Rails community in their acts_as_conference 2009 talk. Go to 24:00 where Gregg gives a really tremendous overview of using Rack::Cache, the benefits of HTTP caching in general, and how to use all of this stuff in Rails 2.3.

reddit.com / Tuesday, February 24, 2009 at 10:17 PM

Enterprise static files

This reddit comment makes me wish lesscode.org was still around :)

snippets.aktagon.com / Tuesday, February 24, 2009 at 02:02 AM

How to setup and use Rack::Cache with Rails 2.3.0 RC 1

Huge thanks to christian for getting this up. I've been meaning to get something on the Rack::Cache site for some time now.

tiswww.case.edu / Monday, February 23, 2009 at 10:52 PM

bash 4.0 NEWS file

Big list of new features in bash 4.0.

youtube.com / Sunday, February 22, 2009 at 11:52 PM

Roasted Garlic Mashed Potatoes (YouTube)

“My mother used to say, ‘Butter is better with butter.’”

rtomayko.github.com / Saturday, February 21, 2009 at 10:04 PM

Shotgun: Because reloading always sucks

This has been sitting in the back of my brain for months now. I finally got a chance to throw something together last night:

Shotgun is an automatic reloading version of the rackup command that’s shipped with Rack. It can be used as an alternative to the complex reloading logic provided by web frameworks or in environments that don’t support application reloading.

The shotgun command starts one of Rack’s supported servers (e.g., mongrel, thin, webrick) and listens for requests but does not load any part of the actual application. Each time a request is received, it forks, loads the application in the child process, processes the request, and exits the child process. The result is clean, application-wide reloading of all source files and templates on each request.

hokstad.com / Wednesday, February 18, 2009 at 10:09 PM

Sliding Stats: Rack Middleware to keep an eye on your traffic

Another interesting use of Rack middleware.

podcast.rubyonrails.org / Tuesday, February 17, 2009 at 06:27 PM

Ryan Tomayko on the Ruby on Rails Podcast

Geoffrey Grosenbach interviewed me yesterday for the Ruby on Rails podcast. We had a nice chat about Python/WSGI, Rack, Sinatra, Rack::Cache, Heroku, and other random stuff.

reddit.com / Saturday, February 14, 2009 at 08:04 PM

"Unix is a system computers use to define time."

proggit on shoddy reporting by NPR.

blog.heroku.com / Saturday, February 07, 2009 at 11:35 PM

The Future of Deployment

I started full time with Heroku last Wednesday. This is why.

timetobleed.com / Friday, February 06, 2009 at 11:04 PM

Fibers implemented for Ruby 1.8.{6,7}

Aman Gupta and Joe Damato have implemented Fibers for the 1.8.6 and 1.8.7 MRIs. They’re patches now but will hopefully go into a 1.8.8 release. I had a chance to see these guys give a quick talk on their work at a local Ruby meetup — it was a hit.

gist.github.com / Friday, February 06, 2009 at 08:57 PM

Easy client-caching with RestClient and Rack::Cache

This is one the amazing benefits of having an insanely simple but well defined SPEC (Rack) around the edges of your library. It makes it trivial to hook things up in new and interesting ways.

cornify.com / Wednesday, February 04, 2009 at 03:45 AM

Cornify - Unicorns & Rainbows On-Demand

If I was stranded on a desert island and could bring only one website …

github.com / Tuesday, February 03, 2009 at 10:22 PM

Ruby `sendfile(2)` Interface

“This module allows Ruby programs to access their OS’s native sendfile(2) system call from any IO object. Your kernel must export a recognized signature for the sendfile(2) system call to use this module. Currently, that includes Linux, Solaris and FreeBSD.”

binarylogic.com / Tuesday, February 03, 2009 at 11:01 AM

Stop picking on alias_method_chain

“Not to mention ‘overrideable’ is not a real word.”

gist.github.com / Monday, February 02, 2009 at 08:50 AM

bloat.rb

Pat Nakajima’s script to measure the amount bloat you’re adding by requiring libraries. Generates a report on the number of methods added, along with a list of names. Interesting metric.

svn.ruby-lang.org / Saturday, January 31, 2009 at 12:20 AM

Ruby 1.9.1 (NEWS)

Ruby 1.9.1 is out. Here’s the final rev of the NEWS file. Nice, condensed list of everything that’s new or changed.

github.com / Saturday, January 31, 2009 at 12:00 AM

virtualrb

Christian Neukirchen’s utility for managing multiple virtual ruby installations.

four.livejournal.com / Thursday, January 29, 2009 at 02:25 PM

Public Service Announcement: the "P" in "HTTP" stands for "protocol"

I've written this same exact blog post a dozen times. For some reason, each hop along what should be a pure HTTP pipeline wants to invent their own psuedo-protocol for transferring HTTP messages. Why?! Your reimplementation of HTTP is not going to be any less complex — by definition, it must be at least as complex; and your reimplementation is definitely not going to be less buggy than the real HTTP implementations that have been around for a decade or more.

This is why can’t have nice things …

sinatra.github.com / Wednesday, January 28, 2009 at 03:58 PM

Sinatra

We gave the Sinatra website a major face lift. Check it out. Don’t leave without subscribing to the feed.

defmacro.org / Tuesday, January 27, 2009 at 11:13 PM

Taming Perfectionism

Real artists ship.

reddit.com / Tuesday, January 27, 2009 at 10:41 PM

Philosphy: You're not your fucking khakis

“As I see it, we are all piles of slowly decaying meat, wrapped in the skins and hairs of other creatures, wearing colorful vestments made of skillfully woven plants, staring at what is essentially a pile of oil, metal, and sand all day. We spend most of our waking lives gathering piles of paper that we use to buy more dead animals, woven plants, and varying sized piles of wood, sand, oil, and metal. At night, we sleep in carefully crafted piles of these materials heated by barrels of decayed animals and plants and dream about having even larger stacks of paper with which we can use to impress other piles of sentient meat.”

spinellis.gr / Tuesday, January 27, 2009 at 02:53 AM

A Well-Tempered Pipeline

A lost art, indeed.

gumuz.nl / Tuesday, January 27, 2009 at 02:44 AM

Javascript, it's Python with braces!

Guyon Morée shows how JavaScript 1.7/1.8 have been moving more and more toward Python with a few side-by-side examples. List comprehensions and generators would definitely be extremely cool to have in browser land.

pragprog.com / Saturday, January 24, 2009 at 12:01 AM

Classy Web Development with Sinatra (Screencast)

The Prag’s have published two screencasts in a new series on Sinatra.

integrityapp.com / Friday, January 23, 2009 at 01:44 AM

Integrity - The easy and fun automated continuous integration server

Ruby based continuous integration server that rocks. Built on Sinatra and DataMapper. Painless setup, beautiful web UI, hooks up to GitHub. I wish I'd went and looked at this earlier.

judofyr.net / Thursday, January 22, 2009 at 11:13 PM

When in Doubt, Turn to _why

Magnus Holm disects a couple of implementations for parsing nested form parameters (e.g., “person[name]=Joe&person[zip]=55555”) in Ruby. _why’s is the most interesting (as always). We just added this to Sinatra and I'm fairly confident we’ll see something like it land in Rack before 1.0.

blog.tannerburson.com / Wednesday, January 21, 2009 at 03:43 AM

Multiple Sinatra .90 applications in one process

Tanner Burson talks about one of the larger accomplishments of the Sinatra 0.9.0 release. We definitely need more docs on using Sinatra in this fashion.

harukizaemon.com / Wednesday, January 21, 2009 at 12:01 AM

It's OK for GET Requests to Update the Database

True! A lot of cargo-cult types get this wrong.

infoq.com / Tuesday, January 20, 2009 at 07:28 PM

Conceptual Algorithms (Presentation)

Tom Preston-Werner shows you how to think.

javalandscape.blogspot.com / Sunday, January 18, 2009 at 11:01 PM

Intro to Caching, Caching Algorithms and Caching Frameworks

Nice overview of caching from 1000 feet. Lays down some useful terminology, like “Cache Hit”, “Cache Miss”, “Storage Cost”, “Retrieval Cost”, “Invalidation”, “Replacement Policy”, etc.

blade.nagaokaut.ac.jp / Sunday, January 18, 2009 at 09:55 PM

[ANN] Sinatra 0.9.0 released!

I put a lot of work into this release. Really happy to see it out :)

blog.ianbicking.org / Friday, January 16, 2009 at 08:38 PM

Woonerf and Python

Ian Bicking explains the connection between modern traffic planning and modern programming in dynamic languages.

atebits.com / Friday, January 16, 2009 at 08:37 PM

PEE - App Store Popularity EnhancEr

You cannot find this special offer anywhere else. A Twitter client, a fart noise generator, and a flashlight, all in one app for the iPhone. Act now!

rubymanor.org / Friday, January 16, 2009 at 03:08 PM

Dan Webb - 8 minutes on Rack

Quick presentation on Rack by Dan Webb. Covers a lot in eight minutes.

plasmasturm.org / Thursday, January 15, 2009 at 11:30 PM

Painless commit splitting in git

Aristotle Pagaltzis shows a pretty crazy technique for splitting a single git commit into multiple separate commits using an interactive rebase and successive checkouts on the same branch. Interesting approach. I usually pop the commit off into my working directory with git reset HEAD^ and then use multiple iterations of git add --patch + git commit until my working directory is clean again.

atlrug.org / Thursday, January 15, 2009 at 10:58 PM

Video of Matt Todd's Rack Presentation @ ATLRUG

Matt Todd did a nice presentation on Rack to the Atlanta Ruby Group (ATLRUG) and they were nice enough to put video of the slides + audio of Matt’s narration online.

wikihow.com / Thursday, January 15, 2009 at 12:54 PM

How to Talk to Strangers

“If you’re still terrified by the idea of talking to strangers, challenge yourself to talk to one stranger a day, every day, for 30 days. If you’re walking past someone on the sidewalk, say ‘Hi’, and the person looks at you and keeps walking (done that many times), your job is done for the day. If you walk up to a girl in a club and say ‘Hey!’, and she responds, with a slightly grossed out look ‘I have a boyfriend.’, congratulations, you’re one step closer to improving your love life. The point of this exercise is to get you used to talking to people you don’t know and form the habit of being more social.”

jinx.de / Thursday, January 15, 2009 at 10:50 AM

SmartSleep

Interesting looking prefpane for MacOS X that tweaks some sleep settings:

“Just ‘sleep’ means that the notebook will go to sleep fast, but you loose the ability to change the battery. Just ‘sleep and hibernate’ will wake the computer fast, but sleeping will take ages as the contents of the memory are saved to disk before entering the sleep. MacOS uses ‘sleep and hibernate’ all the time by default. SmartSleep lets your notebook just ‘sleep’ while the battery has a high level. If the battery level drops below a certain point ( default is less then 20% or 20 minutes ) it will switch to ‘sleep and hibernate’. So you have the best of both worlds.”

accesswave.ca / Thursday, January 15, 2009 at 10:34 AM

Advantages and Disadvantages of Learning in a Hypertext environment

Via Ted Han (@knowtheory): “Hypertext allows information to be organized and connected in a variety of ways that provide the user with a flexible working environment. The following advantages highlight the benefits of working and learning in a hypertext environment…”

adam.blog.heroku.com / Tuesday, January 13, 2009 at 07:33 PM

Gem Weight

Adam Wiggins: “gemweight.rb is a script to calculate the memory use and load time of a given gem.”

I've run numbers (very adhoc) on various gems before and I'm always surprised at the results. Libraries you'd think would be small are sometimes big and libraries you'd think would be big are almost always big :)

r7.sharedcopy.com / Tuesday, January 13, 2009 at 02:42 PM

Rack::Cache implementation annotations on RFC 2616

I've annotated RFC 2616 Section 13 with details on where Rack::Cache is and isn’t compliant. Anything not highlighted should work as described in the RFC. I think I’ll be using SharedCopy more in the future.