April 2013
7 posts
Tumblr SDK updates
Alongside yesterday’s Tumblr for iOS 3.3.1 release, I’m happy to also announce a couple of enhancements to the Tumblr iOS SDK (version 1.0.2 is now available in the CocoaPods repository). Tumblr for iOS now exposes URL schemes that can be invoked in order to create text, quote, link, and chat posts. Additionally, developers can specify callback URLs that will send the user back to their apps...
Apr 25th
29 notes
6 tags
My Philosophy On Alerting
robewaschuk: I wrote some stuff while I was at Google about writing clean alerts and keeping an oncall rotation sane; after some cleanup they’ve allowed me to make it public.  Of course, this represents my opinions and not Google’s.  They do reflect what we think are best practices at Tumblr, though.  We’re hiring Site Reliability Engineers. Check out My Philosophy On Alerting. Summary ...
Apr 25th
28 notes
TMCache: fast object caching for iOS & OS X
A simple write-through cache can be a powerful optimization for any system needing fast, frequent access to the same resource (i.e., almost everything ever). It’s especially true for a limited memory environment like iOS, which is also partially bound by processor and bandwidth constraints. Something as common as downloading and displaying an image touches all these pain points, and that...
Apr 24th
79 notes
3 tags
Open Source - Memcache Top
mobocracy: We rely on memcache pretty heavily at Tumblr, with over 10TB of cache memory available across the stack. One of the things we’ve historically had a challenging time with at Tumblr is finding hot keys. A hot key is a memcache key getting dramatically more activity than other keys. This can have a significant performance impact on your cache backend. We spent the past few days working...
Apr 23rd
85 notes
2 tags
Tumblr Engineering @ Percona Live MySQL Conference
We’re pleased to announce that Tumblr’s Database Engineering team will be attending the Percona Live MySQL Conference next week in Santa Clara, CA! We’ll be giving a talk on our open source automation software, Jetpants, which has helped us scale to over 175 billion distinct rows of relational data to date. We’re also looking forward to attending a number of amazing...
Apr 18th
20 notes
Apr 11th
4,280 notes
Apr 3rd
75 notes
March 2013
4 posts
Core Data as a cache
Core Data is great but automatic migrations can be tricky. Migrations can take a long time, which could result in your app being terminated if it is happening on the main thread during application launch. Performing migrations on a background thread is also a bad idea, meaning your application really needs to be able to fully launch without a Core Data stack whatsoever in order to safely...
Mar 25th
24 notes
Mar 22nd
108 notes
Mar 15th
124 notes
4 tags
Using entropy to route web traffic
adamlaiacano: Earlier this week, Blake asked me for some help with a problem he’s working on. He has a couple of hash functions that are being used to route web traffic to a number of different servers. A hash function takes an input, such as a blog’s url, and outputs a number between 0 and 232. Say we have 1000 servers, that means that each one will handle about 430 million points in the...
Mar 1st
97 notes
February 2013
3 posts
Feb 25th
88 notes
Feb 22nd
19 notes
Feb 19th
171 notes
January 2013
1 post
3 tags
Jan 29th
77 notes
December 2012
3 posts
Tumblr for iPad's custom UIPopoverController
When Peter was designing Tumblr for iPad, he came up with a great custom popover design: Implementing his design was a challenge that I wanted to share. iOS’s UIKit framework includes UIPopoverBackgroundView, an abstract class which can be subclassed to provide a custom background for a popover. Sounds perfect, right? UIPopoverBackgroundView let me use custom assets provided by Peter and...
Dec 20th
96 notes
Orr Sella: Introducing tumblr4s: A Scala Library... →
orrsella: Back in February of this year I stumbled upon an amazing article on HighScalability.com about Tumblr’s infrastructure. It’s a great read for many reasons (go read it). One of the greatest take-aways I had from this article, was this “new” programming language called Scala. I had never heard of… Awesome stuff. Thanks Orr!
Dec 10th
17 notes
Dec 6th
35 notes
November 2012
2 posts
5 tags
Nov 13th
124 notes
Tumblr for iPhone is now 100% native
My appreciation for those who build web browsers has grown dramatically over the past few months. With today’s 3.2 release I’m happy to announce that Tumblr for iPhone is now 100% native. We love web technologies at Tumblr but believe this change provides a much better experience for this particular product. HTML is the first-class citizen at Tumblr. All posts, whether authored in plain text,...
Nov 8th
155 notes
October 2012
2 posts
Collins - Infrastructure Management for Engineers
mobocracy: At Tumblr we strive to automate as much as is reasonable. Automation helps us manage thousands of servers, our MySQL topology, our software deployments, our configuration updates, A/B testing, etc. As your production environment grows it generally becomes less and less consistent and more and more difficult to manage, even with tools like Puppet and Chef. Eventually you need a central...
Oct 31st
88 notes
3 tags
Managing large sharded MySQL topologies with... →
Slides from our talk at Percona Live NYC are now available. The presentation covers the design and implementation of Jetpants, Tumblr’s open source toolkit for interacting with hundreds of MySQL database servers. Interested in working with relational databases at scale? Tumblr is currently hiring database engineers in NYC!
Oct 22nd
25 notes
September 2012
4 posts
JavaScript/native bridge for iOS's UIWebView
bryan: A Hacker News commenter, in response to Zach Williams’ Tumblr for iOS deconstruction post, asked for documentation on how to pass data from JavaScript running in a UIWebView to a native controller. This is all it takes: ]]>
Sep 26th
27 notes
2 tags
Jetpants installation on Ubuntu →
Tim Ellis of PalominoDB wrote up a great walk-through for installing and using Jetpants on Ubuntu as well as Linux Mint. We’ll be rolling in some of his changes in the next release, to make Jetpants run on more Linux distros out of the box.
Sep 24th
9 notes
What have we been up to?
For a long time I’ve wanted to put up some kind of a projects/presentations page. We’re usually pretty busy and don’t always have time to talk about what we’re up to, but we are always writing code and always making good progress. Tumblr finally has a github page to keep people up to date on some of the things we’re working on, as well as presentation from engineers...
Sep 22nd
69 notes
4 tags
Tumblr is going to Techcrunch Disrupt!
developers: Want to build something cool? How about a free t-shirt? Our very own John Bunting will be attending the TechCrunch Disrupt Hackathon to help people build apps to help follow the world’s creators! He’ll be doing a workshop on how to use the Tumblr API that will hopefully inspire you to use our dataset to create the next big application. If you use the Tumblr API, you’re eligible to...
Sep 5th
44 notes
August 2012
5 posts
3 tags
Tumblr @ Percona Live NYC, Oct 1-2
MySQL is an integral component of Tumblr’s architecture. For performance reasons, we run Percona Server, a drop-in replacement for MySQL with major enhancements; we’ve also relied heavily on Percona for their consulting expertise for years. So naturally we’re very excited to attend the New York edition of the Percona Live MySQL Conference, coming up on October 1-2! On October 2...
Aug 30th
21 notes
3 tags
Developers: ChangeLog for 08/24/12 →
developers: Today we’re announcing the release of a brand new feature: our Tagged API, which allows developers to find posts based on their tags. Lets take a look at an example with the gif tag. http://api.tumblr.com/v2/tagged?tag=gif&api_key=your_consumer_key The response will be a pay load of …
Aug 24th
41 notes
2 tags
Aug 24th
69 notes
/geek: Git Fu 3 →
codingjester: Decided I needed a pre-commit hook for Tumblr while working on the main code base. The pre-commit hook below will automatically lint check all of your php files and bail out if you’re trying to commit broken code. #!/usr/bin/env bash git diff --cached --name-status | awk '{print $2}' | grep -e...
Aug 24th
33 notes
Developers: Welcome to the official Tumblr... →
developers: Welcome to the official Tumblr Developers Blog Our developer community is hugely important to us and we’re thrilled to finally have a “home” to share news and be more transparent with all of you. Here you will find changelogs, announcements, and highlights from our developer community.
Aug 2nd
104 notes
July 2012
1 post
Scalable System Operations
joshua: System Administration is both an art and a science. This talk from Velocity 2012 covers a set of principals and techniques for getting work done efficiently and effectively. The talk also covers a recent Tumblr automation project as an example of these principles and techniques applied. Thanks to everyone who attended my talk at Velocity 2012! You can now grab a copy of...
Jul 2nd
29 notes
June 2012
1 post
3 tags
Jetpants: a toolkit for huge MySQL topologies
Tumblr is one of the largest users of MySQL on the web. At present, our data set consists of over 60 billion relational rows, adding up to 21 terabytes of unique relational data. Managing over 200 dedicated database servers can be a bit of a handful, so naturally we engineered some creative solutions to help automate our common processes. Today, we’re happy to announce the open source...
Jun 7th
134 notes
May 2012
1 post
May 14th
17 notes
April 2012
4 posts
5 tags
Blake Matheny: Tumblr Firehose - The Gory Details →
mobocracy: Back in December I started putting some thought into the tumblr firehose. While the initial launch was covered here, and the business stuff surrounding it was covered by places like techcrunch and AllThingsD, not much has been said about the technical details. First, some back story. I knew in December that a product need for the firehose was upcoming and had simultaneously been...
Apr 25th
141 notes
Puppet Camp 2012
Tumblr is proud to be a sponsor of Puppet Camp, a gathering of Puppet users and developers taking place next week in NYC on April 27. We’ve been using Puppet to automate large portions of our infrastructure since version 2.6. Our most recent Puppet setup uses extensive parameterized classes, an in-house external node classifier, and even generates firewall rules (based on defined...
Apr 19th
26 notes
Tumblr Firehose
We hear quite a bit about BIG DATA and REAL-TIME stuff. But I’m never sure exactly how BIG the data is or how REAL the time is. Seems like these are often just cool words that the cool kids like to throw around.  The Tumblr engineering staff is too busy to worry about being cool, but we do have BIG data and we are making it available in REAL time — starting today. We’re happy to...
Apr 17th
101 notes
Apr 2nd
69 notes
March 2012
1 post
/geek: Git-Fu →
codingjester: Recently, I wanted to see what files in a commit changed over here at Tumblr so that we could do some syntax checking. So I needed to basically see all the files that changed on a merge commit that happened with 2 parents. The following command pulls out all the php files from that merge commit.
Mar 2nd
28 notes
February 2012
3 posts
“With over 15 billion page views a month Tumblr has become an insanely popular...”
– High Scalability - High Scalability - Tumblr Architecture - 15 Billion Page Views a Month and Harder to Scale than Twitter
Feb 13th
103 notes
1 tag
Adding Scala to Your Company's Software Stack
mobocracy: The ny-scala meetup this Monday will be discussing Scala adoption in a business environment. I’ll be on a panel along with folks from Foursquare, Meetup, Tadpad and The Ladders discussing our various experiences. Hope to see you there. Oh, here is the link as well.
Feb 12th
39 notes
Feb 4th
19 notes
January 2012
2 posts
The Right Tool for the Job: Native or Mobile Web? →
jacob: I’ll be joining Buzz Andersen, Majd Taby, Tom Dale and Lia Napolitano for a panel on the role web content plays in native mobile apps at this year’s SXSW Interactive.
Jan 19th
488 notes
3 tags
Tumblr's Finagle Redis Implementation
Tumblr uses redis as a cache/store for a number of our internal applications. Some of the things that depend on redis include: dashboard notifications (via staircar) Tiny URL’s (via gob) gearman persistent storage (via george) note counts (also via staircar, coming soon) dashboard data (coming soon via ira) Over the past six months we’ve started shifting internal services from...
Jan 12th
273 notes
December 2011
1 post
Dec 15th
1,132 notes
November 2011
4 posts
DashBuddy: A call to the Tumblr team →
david: This is an open comment to Tumblr dev/community staff - and I’m posting this on my Tumblr blog too. I understand that you guys are hugely busy, and that in the grand scheme of things API support for community programmers is hardly a priority. We’re all devs here, I don’t think anyone expects constant interaction. You’re absolutely right — we’ve been letting down our developer...
Nov 17th
366 notes
Nov 16th
1,086 notes
1 tag
Slides from our Velocity Europe talk on MySQL... →
Special thanks to Dallas and Matt for helping to formulate our shard-splitting algorithm, Zack for the slide deck visual excellence, and the fine folks at Velocity / O’Reilly Media for running a great conference.
Nov 11th
183 notes
Nov 2nd
399 notes
October 2011
10 posts
Oct 25th
369 notes