I ? the web.

I'm Ryan Freebern, a web developer in Vermont.

This is my weblog. I write about open source, the open web, my projects, and my life.

Exact Substring Searches in ElasticSearch
Careful indexing and clever queries can provide arbitrary-length exact substring searches against blobs of text in ElasticSearch without making your index balloon in size.
How to Internet
Some rules to help make the online world a better place.
Zero-Effort Design with zeitgeist.css
My fledgling zeitgeist.css project aims to provide a zero-effort modern design to any simple page, as well as a historical record of web aesthetics.
A Browser is More Than its Engine
iOS versions of popular browsers may be forced to use UIWebViews, but that doesn't mean they're just Mobile Safari with a different package.
Near-Future Anachronism: Phone Numbers
Phone numbers are an inefficient, unnecessary throwback to the pre-Internet age. They should be eliminated and replaced with standard internet addressing.
How to Talk to Geeks
Efficient communication about technical issues increases productivity and happiness.
Making twirssi work for me
I started using twirssi, an open-source twitter plugin for irssi, and contributed code to improve its usability.
Under Construction
A classic of the early web, lovingly recreated using modern CSS.
Spelling counts
Poor spelling and grammar indicates lack of attention to detail. Whether it's in code or on a professional website, this conveys a lack of care.
I solved Instagram's "unshredding" challenge using JavaScript and the HTML5 <canvas> element.
A chance to win
I refuse to exploit my social connections to further your company's marketing agenda.
CSS3 is awesome!
CSS3 has some clever solutions to problems with older CSS, but they're not perfect.
You've got activity!
Browser app tabs indicate activity by changing the page title. There should be a standardized API to control that indicator.
No foolin'
The Do Not Fool header, started as a joke, could help alleviate frustration and annoyance about April Fools' Day pranks on the web, but only if it gets implemented.
Wherefore HTML manifest?
Putting the HTML5 offline web app manifest in an attribute of the <html> tag didn't make sense to me, so I asked the guy who wrote the spec.
Setting up chrooted Apache 2.2 MPM
I recently set up a new webserver that uses chroot for increased security. Here are a few small problems I had to solve to get it working.
localStorage, browser sync, and the future
Some thoughts about whether the data in a browser's localStorage should be synced to other devices, and how that syncing might be managed.
JavaScript pre-processing with Uglify
Uglify JS automatically strips blocks that are never evaluated. You can take advantage of this to remove debug statements when minifying your javascript.
Alpha Consumers
Comparing mobile OS market shares purely by size misses out on the relative financial value of those market shares.