…it has been such a success that our plan for the long run is to move more and more of our architecture into Scala. The vast majority of our traffic is API requests, and we want most of those to be served by Scala, either at an edge cache layer or a web application layer. Hopefully by the end of 2009 the majority of users’ interactions with Twitter are going to be Scala-powered.
In conclusion… is Ruby a bad language for writing message queues in? Yes, there are much better choices. Message queues are a particularly performance critical piece of software… but message queues aren’t something you should be writing yourself. This speaks much more to Twitter’s culture of NIH than it does to Ruby as a language… Is Ruby a bad language for writing long-running processes? Absolutely not. JRuby provides state-of-the-art garbage collection algorithms available in the JVM to the Ruby world. These are the exact same technologies that are available in Scala. JRuby addresses all of their concerns for long-running processes, but they don’t bother to mention it and instead just point out the problems of the de facto Ruby interpreter. [Very interesting comments.]
I’m glad that Twitter is working to resolve its scaling issues. It’s a service that I love and use on a daily basis and from which I have benefitted immensely. As far as I’m concerned, Twitter is a case-study in how Ruby on Rails does scale, even in their hands… My interest in the question of Ruby vs. Scala at Twitter had mostly consisted of curiosity and amusement, at least until last night.
Social media (blogs, community news sites like Reddit and Hacker News, Twitter and such) have swept in to fill a vacuum between peer-reviewed academic journals and water cooler conversation amongst software engineers… in theory, we should be more informed as a professional than we ever have been… In practice, the conversations that are most widely heard in the tech community are full of inaccuracies, manufactured drama, ignorance, and unbridled opinion. In discussing these Internet-spanning debates with non-technical friends, comparisons to Hollywood tabloids come first to mind. It’s a time sink for an industry that should be a shining example of how to use the newest of media for constructive debate.
Chax is a collection of minor modifications and additions that make using Apple’s iChat more enjoyable.
Reddit’s Steve Huffman and Alexis Ohanian. [They briefly discuss the infamous "gst" user around 15 minutes in.]
URL shortening services have been around for a number of years. Their original purpose was to prevent cumbersome URLs from getting fragmented by broken email clients that felt the need to wrap everything to an 80 column screen. But it’s 2009 now, and this problem no longer exists. Instead it’s been replaced by the SMS-oriented 140 character constraints of sites like Twitter.
Execution and Perseverance are the keys to running a successful business.
New Relic helps more than 1500 organizations manage their Ruby on Rails applications. This gives us unique insight into how thousands of applications are deployed. Many of our customers have opted in to have their performance data shared with the Rails Core Team to aid in their ongoing work on the platform. In addition to that data we also aggregate information on the versions of OS, Ruby, and Rails used and the various plugins deployed.
Starting today, we’ll begin rolling out a new product we are calling the DiggBar. Before we dive into the details, check out this short video overview…
Google is tight-lipped about its computing operations, but the company for the first time on Wednesday revealed the hardware at the core of its Internet might at a conference here about the increasingly prominent issue of data center efficiency.
Few know this, but one person, Paul Buchheit, is responsible for three of the best things Google has done. He was the original author of GMail, which is the most impressive thing Google has after search. He also wrote the first prototype of AdSense, and was the author of Google’s mantra "Don’t be evil."
Customer support is my job, and I take it very seriously, and I am very, very good at it. To have another website undermine that job which leads to a customer with 1) a bad experience, 2) a bad impression of our company, 3) a bad impression of my work…well, it’s infuriating. Not only was I angry on the customer’s behalf, I was angry on behalf of our company to see our name and logo plastered all over a site we had never known about until then.
“Ambient intimacy” is a good term to describe how Twitter, Flickr, blogs, and other modern communications technologies keep us in touch with one another. The term I’ve been using for this is “passive communication.”
We advise startups to launch when they’ve added a quantum of utility: when there is at least some set of users who would be excited to hear about it, because they can now do something they couldn’t do before.
…there are really two worst case scenarios that we’re concerned about right now, and it’s important to distinguish between them. There is panic that newspapers are going to disappear as businesses. And then there’s panic that crucial information is going to disappear with them, that we’re going to suffer as culture because newspapers will no long be able to afford to generate the information we’ve relied on for so many years.
We shouldn’t be forced to scour the internet finding sites that claim they are doing support for us when they’re not. It’s not fair to us and it’s not fair to customers to make something look like an official support site when it’s not. This should be entirely opt-in for a company and it’s not. In fact, it’s worse than that because if you don’t opt-in, they make negative claims about your company’s commitment to customers. [See also: http://news.ycombinator.com/item?id=540540%5D
My hard drive kicked the bucket recently. From scratch, here’s how I quickly got my Ruby web development environment into ship-shape form The Thoughtbot Way. Many of these instructions are specific to Mac OS X 10.5 (Leopard). Some of them are opinionated (Vim over Textmate). Pick-and-choose what you need but this is everything that I use happily day-to-day right now.
…the problem is that redirect_to doesn’t seem to preserve the HTTP method. This is ok for the faked-up methods eg using "_method=delete" but if the URL a person asked for was a POST it fails miserably with a routing error… [Checking out some of these solutions, but for now I’m just working around it by only storing the original request if it’s a GET request.]
This is a triumph of the human spirit if I ever saw one.