Seriously. Not weekly at all. Still, it’s a digest of links, I’d say.
In November 2007, we casually mentioned a new Ruby webapp library called Sinatra. It took a year to capture the imagination of the Ruby community as a whole and we eventually covered it in more depth but today we’re proud to (exclusively) announce that Sinatra has today reached its landmark 1.0 release!
Cramp is an asynchronous framework, always running inside EventMachine reactor loop. Cramp isn’t a good fit for most of the web applications out there. However, Cramp is good at holding and working with a large number of open connections. Hence it’ll work great for things like comet, long polling, streaming API or even when your application needs to handle thousands of concurrent connections.
Ruby 1.9 Fibers are a means of creating code blocks which can be paused and resumed by our application (think lightweight threads, minus the thread scheduler and less overhead). Each fiber comes with a small 4KB stack, which makes them cheap to spin up, pause and resume.
Finally, we would like to make clear that all these decisions have been driven and implemented by our executives in the United States, and that none of our employees in China can, or should, be held responsible for them.
Rack middleware for rate-limiting incoming HTTP requests.
The Cloud is just the internet. And the internet is just a bunch of hard drives. The internet is really good at replicating discrete bits of self-contained data. There are probably a few million copies of any given Loretta Lynn song out on all the hard drives of the world, because lots of people care about Loretta Lynn. But my photos on Flickr only live on a few hard drives in the world. The hard drives in the database servers. The hard drives in the networked-attached storage devices that are used to backup the database servers.
How do you integrate this into a Ruby app? Standard HTTP clients such as RestClient and HTTParty aren’t appropriate, since they’re designed for atomic HTTP requests, not streaming. With this API, you want to keep the socket open indefinitely, decoding JSON one line at a time.
NOTATIONAL VELOCITY is an application that stores and retrieves notes.
Graph databases are a type of datastore which treat the relationship between things as equally important to the things themselves.
Highlight is a simple syntax highlighting plugin for Ruby on Rails. It’s basically a wrapper around the popular pygments highlighter that’s written in Python. If pygments is installed on the machine and in the PATH, that binary is used, otherwise the plugin falls back to the web API created by Trevor Turk. [Awesome!]
Digg is committed to the use and development of open source software and we’re keen to avoid the cost of proprietary large-scale storage solutions. We were inspired by Google and Amazon’s broad use of their non-relational BigTable and Dynamo systems. We evaluated all the usual open source NoSQL suspects. After considerable debate, we decided to go with Cassandra.
We don’t deserve anything. Publishers can do whatever they want. If you don’t like it, don’t send them nasty emails or browse their sites with ad-blockers: just don’t support them. Don’t read their content, don’t link to them, and don’t talk about them. Since money’s not usually involved, vote with your attention and read elsewhere.
The fundamental problem is the disconnect between when we find good content and when we actually want to read it: these occur at completely different times in our day and in completely different contexts.
Throughout its history, Google has devised ways of adding more signals, all without disrupting its users’ core experience. Every couple of years there’s a major change in the system — sort of equivalent to a new version of Windows — that’s a big deal in Mountain View but not discussed publicly.
These apps were allowed for about a year and a half. Some developers were prospering by them. And then, boom, they were gone. The reason Apple ought to be concerned about this is that it unsettles all developers — even those whose apps and ideas for future apps were nowhere along the lines of girls-in-bikinis. What developers see here isn’t Apple managing its own brand. What developers see is that the App Store is a shaky foundation upon which to build a business.
Google Forms are a great, free way to collect information from anyone, stored directly into a Google Spreadsheet, and then have Google notify you each time a form is submitted (optionally). The downside is that you can only use one of their pre-packaged themes. You can’t have your company logo and corporate “look”. Pooey to Google, we say. So we wrote custom_google_forms.
So here we are with Rails 3 completely refactoring the internals of ActiveRecord – what’s up with our beloved named_scope? Well, the simple answer is that it’s been renamed to scope and you can use it just as you’re used to … but that’s taking the easy way out. Let’s see what else we can do with scope in Rails 3.
My research revealed that lucky people generate good fortune via four basic principles. They are skilled at creating and noticing chance opportunities, make lucky decisions by listening to their intuition, create self-fulfilling prophesies via positive expectations, and adopt a resilient attitude that transforms bad luck into good.
For an article in a German magazine I’ve been researching MongoDB over the last week or so. While I didn’t need a lot of the information I came across I collected some nicely distilled notes on some of its inner workings.
I received a short email from Ryan King, the lead of Cassandra efforts at Twitter simply saying that he would be glad to talk about these efforts.
Twitter text processing library (auto linking and extraction of usernames, lists and hashtags)
At its core, the GPL is simply a fancy way of controlling other people’s work through the imposition of copyright restrictions. Those who seek to extend the GPL beyond the bounds allowed by copyright law, do not promote freedom but instead take freedom away.
Resque is a Redis-backed library for creating background jobs, placing those jobs on multiple queues, and processing them later.
We are developing an intense, sustained conversation with this large thing. The fact that it is made up of a million loosely connected pieces is distracting us. The producers of Websites, and the hordes of commenters online, and the movie moguls reluctantly letting us stream their movies, don’t believe they are mere pixels in a big global show, but they are. It is one thing now, an intermedia with 2 billion screens peering into it.
I think EngineYard, in spite of the fact they made their salt on being a hosting and infrastructure company, is sensibly getting out of the plumbing business. They are going much more to the software-as-a-service (expertise in virtual / cloud Rails hosting, general and specific Rails expertise, etc.) vs infrastructure-as-a-service side and their propensity for Xen and virtualization makes the decision much more logical and transparent.
Let’s celebrate and talk a bit about history.
Rails 3.0 beta is out and it’s now time to upgrade all the plugins available. To show you how to do it I’ve decided to create a small plugin compatible with Rails 2.x and Rails 3.0. It’s a wrapper around Rack::Cache to insert it automatically in a Rails application.
Success is rarely determined by the quality of your ideas. But it is frequently determined by the quality of your execution. So instead of worrying about whether the Next Big Idea you’re all working on is sufficiently brilliant, worry about how well you’re executing.
YouTube Music Discovery Project and Playlist Creation Tool