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...
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
...
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...
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...
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...
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...
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...
February 2013
3 posts
January 2013
1 post
3 tags
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...
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!
November 2012
2 posts
5 tags
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,...
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...
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!
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:
]]>
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.
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...
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...
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...
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 …
2 tags
/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...
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.
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...
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...
May 2012
1 post
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...
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...
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...
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.
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
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.
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.
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...
December 2011
1 post
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...
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.
October 2011
10 posts