By the end, the breadth and depth of our collective knowledge was far beyond what anyone could expect from any high school course in any subject. Education Versus Exploration I’m a lab TA for an introductory Python programming course this semester, and it’s been…depressing. I remember my early days of programming, when the possibilities seemed endless and adding new features…
15 Mar 2012
14 Mar 2012
This source code and tutorial walks you through how to build a simple HTML5 mobile chat application with jQuery.
This is is the second of a two-part article that outlines how we used a various set of tools to improve our page load performance. If you haven’t read part 1, go ahead and give it a read before continuing. Tactics We opted to not use our normal staging environment for this project, since our […]
13 Mar 2012
"Coder's paternity leave turns into polyglot key-value store adventure"
12 Mar 2012
For the past N months, it seems like there is no new technology stack that is either hotter or more controversial than node.js. node.js is cancer! node.js cures cancer! node.js is bad ass rock star tech!. I myself have given node.js a lot of shit, often involving the phrase “explicit continuation-passing style.” Most of the arguments I’ve seen seem to…
.dropcap { font-weight:bold; font-size:120px; float:left; padding:0; margin:-4px 5px 0px 0px; position: relative; background-color:none; line-height:0.9; } .note { color: #4169e1; font-style: italic; } Craw is so damn frustrating!!! He and his sidekicks have killed me so many times that I think I am starting to get sore in real life....arghhh need better weapon!! He will die though, oh yes he will…
Stratus is a jQuery powered SoundCloud player that lives at the bottom (or top) of your website or blog. In version 2, we’ve rebuilt Stratus from the ground up to include many requested features, a nicer aesthetic, and a much easier installation. Pumped? Yeh, me too. Here’s how to participate in the BETA:
9 Mar 2012
Huge opportunity for impact. A sense of ownership. Collaboration with people across every function in the organization. An understanding of the big picture and a real opportunity to shape the future. These are some of the best and most exciting qualities of working at a software start-up. In my personal experience, working at both a […]
7 Mar 2012
The SoundCloud Developer Community has grown immensely. We have over ten thousand registered applications and over three hundred showcased in our App Gallery. Our goal as the Platform Team is to provide the best API tools possible, while also providing support and inspiration. So far, our primary channels have been this blog, our Twitter account, and our mailing list, hosted…
6 Mar 2012
It’s no secret that SoundCloud is a Ruby shop, but that doesn’t stop us from giving some love to the Pythonistas in our community. Our old Python API wrapper has been neglected. It doesn’t support OAuth 2 or all of the resources made available by our API. It’s old and crufty and we’re sorry for letting it get that way.…
5 Mar 2012
Updated: Okay, there’s a new plan. My wife is having surgery to put a screw in her foot, and the operation is two days before my panel. I really can’t leave her to come to SXSW. We’re going to try for me to Skype in to the panel instead. Cross your fingers. Every so often […]
or… The premise of prefixes makes unrealistic demands on how developers maintain sites There’s a lot of conversation about making prefixes work (by changing policy), but I believe they already are at odds with the developer workflow. In this proposal I hope to show that: prefixes are not developer-friendly recent features would have been in a much better state without…
4 Mar 2012
SoundCloud started its agile journey with Scrum and eventually moved to an approach based on Kanban (more on that in one of the next blog…
29 Feb 2012
Not Just Time, But Space Too! So far on this blog we’ve introduced models for computation, focused on Turing machines and given a short overview of the two most fundamental classes of problems: P and NP. While the most significant open question in the theory of computation is still whether P = NP, it turns out that there are hundreds…
A pragmatic journey through Go: From C-like roots to modern server powerhouse.
Ruby on Rails undisputedly changed the way web frameworks are designed. Rails became a reference when it comes to leveraging conventions, easy baked in feature set and a rich ecosystem. However, I think that Rails did and still does a lot of things pretty poorly. By writing this post, I’m not trying to denigrate Rails, there are many other people…
27 Feb 2012
Mozilla is happy to support Facebook in forming a Core Mobile Web Platform W3C Community Group in which to curate prioritized, tiered lists of emerging and de facto standards that browsers should support in order for the Web to compete with native application stacks on mobile devices. The W3C Community Groups do not create normative … Continue reading "Community-Prioritized Web…
26 Feb 2012
Like I wrote in a previous post, the use of a break program was probably the main reason I beat Repetitive Stress Injury (RSI). For many years I used WorkPace, but when I switched to using a Macbook Pro a … Continue reading →
25 Feb 2012
Here are a few programming quotes I like: “A complex system that works is invariably found to have evolved from a simple system that worked.” John Gall “Enlightened trial and error outperforms the planning of flawless intellects.” David Kelley “It’s … Continue reading →
23 Feb 2012
Decidability Versus Efficiency In the early days of computing theory, the important questions were primarily about decidability. What sorts of problems are beyond the power of a Turing machine to solve? As we saw in our last primer on Turing machines, the halting problem is such an example: it can never be solved a finite amount of time by a…
Ragavan Srinivasan’s post about the forthcoming Mozilla Marketplace for Open Web Apps inspired me to write about Mozilla’s surging Web and Device API standards work. A bit of background. Mozilla has always contributed to web standards, going back to the start of the project. We co-founded the WHAT-WG to kick off HTML5. As readers of … Continue reading "Mobile Web…
Yesterday I did some quick digging into how ORM objects are initialized and the performance cost associated to that. In other words, I wanted to see what’s going on when you initialize an ActiveRecord object. Before I show you the benchmark numbers and you jump to conclusions, it’s important to realize that in the grand scheme of things, the performance…
20 Feb 2012
18 Feb 2012
Early in 2005 the muscles in my forearms started to hurt. In the beginning it was only a slight irritation, but over the course of about six months it gradually got worse, until it was so bad I actually thought … Continue reading →
15 Feb 2012
We are pleased to announce that the following functionality has been developed for version 5.1: ReviewStats updated Moderator Codes for user-generated content (UGC) exposed Wildcard character in ContentLocale filter enabled IP address in Content Display exposed API key creation and management added to the client portal More detailed information on each of these items is […]
14 Feb 2012
Aus äh… historischen Gründen ist es so, dass eines unserer C#-Projekte sowohl NUnit als auch xUnit für die Unittests nutzt. Über Sinn und Zweck dieser Konfiguration brauchen wir nicht zu diskutieren – Fakt ist, dass sich das nicht auf die Schnelle ändern lässt. Ich wollte nun dieses Projekt in TeamCity […] The post Fehlerhafte Unittests in NUnit und xUnit von…
This past weekend, hundreds of hackers showed up at the TokBox HQ with a mission to build the future of music. The event started with pitches — giving sponsors a chance to show off their APIs — followed by in-depth workshops where attendees could learn more about each platform and ask questions related to their project. Once the hacking time…
13 Feb 2012
“The saddest thing about the Steve Jobs hagiography is all the young ‘incubator twerps’ strutting around Mountain View deliberately cultivating their worst personality traits because they imagine… Read more "The Management Team"
10 Feb 2012
Momentan bin ich dabei, TeamCity aufzusetzen und die von uns benutzten Programmiersprachen inklusive der Unit-Testing-Frameworks zu integrieren. Für PHPUnit gibt es zwei ganz passable XML-Dateien (Ant-Script zum Ausführen von PHPUnit & PHPUnit-Beispielkonfiguration), die an sich auch funktionieren. Ich testete nach einigen Anpassungen die Konfiguration mit Ant und PHPUnit unter meinem […] The post Windows 7 & Lokales System: %PATH% Umgebungsvariable…
8 Feb 2012
Finding Bigger Numbers, a Measure of Human Intellectual Progress Before we get into the nitty gritty mathematics, I’d like to mirror the philosophical and historical insights that one can draw from the study of large numbers. That may seem odd at first. What does one even mean by “studying” a large number? Of course, I don’t mean we stare at…
After some years of working with (and fighting against) Subversion I decided to setup a Git repository for our company. Every developer should decide on their own what Version Control System he wants to use. Jeremy Skinner wrote an excellent article about hosting a Git repository on Windows which was […] The post Windows Server 2016 or 2019 as a…
On December 3rd and 4th Bazaarvoice was the lead sponsor on an event in Austin called Random Hacks of Kindness (RHoK), a coordinated worldwide hackathon for social good. The event started Friday night with a reception for all of the hackers at the Volstead Lounge where over over 60 people celebrated, heard a few quick […]
Debugging performance issues is hard. Debugging end-user performance issues from a distributed production software stack is even harder, especially if you are the 3rd-party service provider for one of your clients that actually is in control of how your code is integrated into their site. There are lots of articles on the web regarding what […]
7 Feb 2012
This post assumes familiarity with some basic concepts in complex analysis, including continuity and entire (everywhere complex-differentiable) functions. This is likely the simplest proof of the theorem (at least, among those that this author has seen), although it stands on the shoulders of a highly nontrivial theorem. The fundamental theorem of algebra has quite a few number of proofs (enough…
6 Feb 2012
4 Feb 2012
During LA RubyConf 2012 in Los Angeles, CA Matt Aimonetti gave a talk entitled Ruby: time to move on. ##Description of the talk: Let’s be honest, Ruby became mainstream a few years back and it isn’t the cool underground programming language it once was. It’s quite likely that your cousin’s boyfriend who’s “into computers" knows what Ruby on Rails is.…
3 Feb 2012
This post is the third post in a series on computing with natural language data sets. For the first two posts, see the relevant section of our main content page. A Childish Bit of Fun In this post, we focus on the problem of decoding substitution ciphers. First, we’ll describe a few techniques humans use to crack ciphers. We’ll find…
This is not The Greatest Website in the World, no. This is just a tribute. I was approached by Tenacious D a week ago with an incredible quest: raising a phallus shaped phoenix onto the internet (oh and the first clip of audio from their new record.) How could I raise this majestic beast with the power of SoundCloud’s legendary…
2 Feb 2012
This post assumes familiarity with some basic concepts in abstract algebra, specifically the terminology of field extensions, and the classical results in Galois theory and group theory. The fundamental theorem of algebra has quite a few number of proofs (enough to fill a book!). In fact, it seems a new tool in mathematics can prove its worth by being able…
"Break the routine: Where real stories begin."
1 Feb 2012
One of my least favorite parts about layout with CSS is the relationship of width and padding. You’re busy defining widths to match your grid or general column proportions, then down the line you start to add in text, which necessitates defining padding for those boxes. And ‘lo and behold, you now are subtracting pixels from your original width so…
Using WebGL and PubNub to build a massively multiplayer Minecraft-like WebGL game
29 Jan 2012
Problem: Prove or disprove: at a party of $ n$ people, there must be an even number of people who have an odd number of friends at the party. Solution: Let $ P$ be the set of all people, and for any person $ p \in P$, let $ d(p)$ be the number of friends that person has. Let $…
28 Jan 2012
This is fairly standard. Let Xi be a symmetric random walk and let Ei be the event that Xi = 0. Then and . The diagram shows the number of ways of getting to a particular node. The dashed arrows are meant to represent that the random walk then continues. In general, at time 2n, the number … Continue reading…
22 Jan 2012
This post assumes familiarity with some basic concepts in algebraic topology, specifically what a group is and the definition of the fundamental group of a topological space. The fundamental theorem of algebra has quite a few number of proofs (enough to fill a book!). In fact, it seems a new tool in mathematics can prove its worth by being able…
20 Jan 2012
BBQ is a religion in Austin. Everyone has their opinion on who serves up the best BBQ. Debates between people defending their choices have been known to last into the wee hours of the night. Friendships have been ruined, and neighbors turned into enemies (okay, I might have made that last bit up…but you get […]
17 Jan 2012
This proof assumes knowledge of complex analysis, specifically the notions of analytic functions and Liouville’s Theorem (which we will state below). The fundamental theorem of algebra has quite a few number of proofs (enough to fill a book!). In fact, it seems a new tool in mathematics can prove its worth by being able to prove the fundamental theorem in…
15 Jan 2012
A First Look at Google’s N-Gram Corpus In this post we will focus on the problem of finding the appropriate word boundaries in strings like “homebuiltairplanes”, as is common in web URLs like www.homebuiltairplanes.com. This is an interesting problem because humans do it so easily, but there is no obvious programmatic solution. We will begin this article by addressing the…
13 Jan 2012
This fall New York City will open The Academy for Software Engineering, the city’s first public high school that will actually train kids to develop software. The… Read more "New York City gets a Software Engineering High School"
12 Jan 2012
This primer is a third look at Python, and is admittedly selective in which features we investigate (for instance, we don’t use classes, as in our second primer on random psychedelic images). We do assume some familiarity with the syntax and basic concepts of the language. For a first primer on Python, see A Dash of Python. We’ll investigate some…
9 Jan 2012
Today we’ve added support for our new HTML5 widget to the oEmbed endpoint. Aside from a brand new user interface with lots of improvements, the HTML5 widget doesn’t require Adobe Flash anymore. That means the widget will load much faster and finally work well on most mobile platforms, including Android & iOS. And we won’t stop here. We’ll continue to…
8 Jan 2012
Rectangles, Trapezoids, and Simpson’s I just wrapped up a semester of calculus TA duties, and I thought it would be fun to revisit the problem of integration from a numerical standpoint. In other words, the goal of this article is to figure out how fast we can approximate the definite integral of a function $ f:\mathbb{R} \to \mathbb{R}$. Intuitively, a…
The title says it all. > {-# LANGUAGE > DeriveFunctor, > DeriveFoldable, > DeriveTraversable, > RankNTypes, > FlexibleContexts, > NoMonomorphismRestriction, > UndecidableInstances, > ScopedTypeVariables #-} > > import Prelude hiding (mapM) > import Data.Foldable > import Data.Traversable > import Data.Monoid > import Control.Monad.Writer hiding (mapM) > import Control.Monad.State hiding (mapM) > import qualified Data.Map as … Continue reading Catamorphisms are…
6 Jan 2012
Just a few months ago, we launched Trello, a super simple, web-based team coordination system. The feedback has been overwhelmingly positive and adoption has been very strong,… Read more "How Trello is different"
4 Jan 2012
Hello everyone… Last monday I signup a new VPS (Virtual Private Server) at Rackspace. Let’s go! Why do I need a VPS? Why not a shared host company? You don’t need, but it’s better than a shared host. Using a shared host (usually use cPanel/WHM) you have to follow the company’s rules. If you want … Continue reading Configuring a…
Hello! Today I will talk about secure file upload. Please, do not use chmod 777 on yours upload files. That means everyone can write on your directory and maybe execute that file. Use chmod 755 and be happy. For that you must have to change the directory’s owner to the apache users. In the Ubuntu … Continue reading Secure file…
3 Jan 2012
Last month we attended Music Hack Day London 2011. A special one, Music Hack Day was born in London 3 years ago and we were happy to attend a hack day again in it’s homeland. Picture For those who do not know of Music Hack Day, it’s a great weekend-long event aimed at music and sound hackers. Anyone can attend…
1 Jan 2012
And a Pinch of Python Next semester I am a lab TA for an introductory programming course, and it’s taught in Python. My Python experience has a number of gaps in it, so we’ll have the opportunity for a few more Python primers, and small exercises to go along with it. This time, we’ll be investigating the basics of objects…
31 Dec 2011
One of my colleagues remarked that sets are an example of a topos; in other words that set theory can be generalized. Another of my colleagues immediately asked for another example of a topos. Here is one. A topos is a cartesian closed category with extra structure. Consider the category Sets. A subset S ⊆ X can … Continue reading…
30 Dec 2011
We’re quite eager to get to applications of algebraic topology to things like machine learning (in particular, persistent homology). Even though there’s a massive amount of theory behind it (and we do plan to cover some of the theory), a lot of the actual computations boil down to working with matrices. Of course, this means we’re in the land of…
Today, I asked on Twitter what non-technical books I should read in 2012. I was nicely surprised to see so many of my followers send recommendations. Here is a list of 25 books that like-minded people suggested I read. Hopefully you will find a book or two to read too. Feel free to send more recommendations via the comments. 1Q84…
24 Dec 2011
Take a moment to count the number of unique scrollbar widget types there are in Adobe Photoshop. You may be surprised. ”You can measure software maturity by the number of UI toolkits it implements.” I’ve counted four in Adobe Photoshop CS5.
23 Dec 2011
One of the most annoying things I get in touch with software development beside the question How can I format this date is How can I put my database under version control? If you have not already read K. Scott Allens Database series, do it now. At first follow his […] The post Databases in developers environment – Versioning and…
22 Dec 2011
Streamline your SSL setup: Realtime and web on one port.
21 Dec 2011
Recently I asked a friend of mine to give me pointers on how to develop a curriculum (he used to teach an education PHD program), after discussing his response on Twitter, people asked me to put it somewhere, so here it is: Process to develop a curriculum: Purpose. Know why you’re doing what you’re doing. You know how to do…
19 Dec 2011
We are about to begin a series where we analyze large corpora of English words. In particular, we will use a probabilistic analysis of Google’s ngrams to solve various tasks such as spelling correction, word segmentation, on-line typing prediction, and decoding substitution ciphers. This will hopefully take us on a wonderful journey through elementary probability, dynamic programming algorithms, and optimization.…
18 Dec 2011
Last weekend I finished the free on-line course Introduction to Databases taught by Professor Jennifer Widom of Standford University. The course was given entirely over the web, with pre-recorded video lectures, and assignments and exams that were automatically graded when submitted. … Continue reading →
13 Dec 2011
Hello. Another quick tip. To start a new Zend Framework project, the easiest way is using Zend_Tool for that. Please, install first the Zend_Tool follow this link at Zend Framework documentation page. Creating new project Let’s starting using the command line and creating a new ZF project. zf create project my_project_name Zend_Layout Now, get in … Continue reading Creating new…
Hi all. Here I am again. Today I have a quick tip for beginners using Zend Framework. Do not insert pre and post code (for database) in your Controller. The Zend_Db_Table_Row is for that. Lets create our DatabaseTable class for Posts: /** * Located in .../models/DbTable/Posts.php */ class Posts extends Zend\_Db\_Table_Abstract { protected $_primary = … Continue reading Pre and…
11 Dec 2011
Last year Zone-H reported a record number of 1.5 million websites defacements. 1 million of those websites where running Apache. When it comes to configuring a web server, some people tend to turn everything on by default. Developers are happy because the functionality that they wanted is available without any extra configuration, and there is […]
9 Dec 2011
At SoundCloud we like to invent new ideas. But we’re not adverse to implementing really great tried and tested ideas like the 20% time…
4 Dec 2011
This Wednesday, me and a ragtag team of like-minded developers launched Move the Web Forward, an initiative to direct people’s passions into productive efforts that assist not only the web community but the entire web platform. People often feel the need to “give back”, but when it comes to contributing it’s a challenge to find the right place. This is…
1 Dec 2011
I would just like to preface this by saying I do not condone cheating but I thought of this as a “challenge” and not so much as “cheating”. A project I am working on required me to checkin to places on foursquare that I was not currently near (or even close to). Now the answer to this was pretty simple.…
Travel opens my mind to new perspectives and allows me to recontextualize existing systems of thought. I had casually studied Roman history over the course of a few years, prior to my travels to Italy. My understanding was built upon a small collection of books and two excellent podcast series. While one can learn a great deal from books, podcasts,…
30 Nov 2011
I saw this sign outside a coffee shop. Most people would just walk by and laugh, but it got me thinking. What would 2PAC do? Seeing as 2PAC is one of my favorite artists and I was already walking with earbuds on, I started playing an oldie but goodie on my iPhone, “Changes”. Now if you have never heard of…
25 Nov 2011
A Study In Data Just before midnight on Thanksgiving, there was a murder by gunshot about four blocks from my home. Luckily I was in bed by then, but all of the commotion over the incident got me thinking: is murder disproportionately more common on Thanksgiving? What about Christmas, Valentine’s Day, or Saint Patrick’s Day? Of course, with the right…
22 Nov 2011
While a lot of conversation has moved to twitter and G+, hugely useful information is still published regularly to blogs. I’ve shared collections of frontend development feeds twice before. Now I’m back, but with three choices: Download this: frontend-feeds.opml most important site that has no feed: webplatformdaily.org. It’s the best thing. (2013.09.12: It has a feed now! Added) 2013.09.12: The…
21 Nov 2011
Just gave this talk at W3Conf about some of the innerworkings of HTML5. Lots of did-you-know and cool insight into how browsers work. 37 minutes long, The Primitives of the HTML5 Foundation - Slides I do discuss optional start and end tags as well as not quoting your attributes. I concede that these ideas scare the shit out of people.…
Proper and effective error tracking is a common issue for front-end JavaScript code compared to back-end environments. We felt this pain as…
18 Nov 2011
This is a natural follow-up to our first gallery entry on the impossibility of tiling certain chessboards with dominoes. Problem: Suppose we remove two squares from a chessboard which have opposite color. Is it possible to tile the remaining squares with 2-by-1 dominoes? Solution: Notice that if we remove two squares of opposite color, then there is only one way…
OmniAuth is a great little Rack library that standardizes multi-provider authentication for web applications. As OmniAuth says, “it was created to be powerful, flexible, and do as little as possible.” I use it constantly on hacks that mash up multiple API providers. You can now add SoundCloud to the growing list of strategies OmniAuth 1.0 supports.
16 Nov 2011
Elevate your command-line scripts with these simple yet powerful tips.
14 Nov 2011
Divya Manian kicked off a good bout of discussion of HTML semantics with her post Our pointless pursuit of semantic value. It called into question the amount of time we spend on identifying the Right and Best ways of marking up our content while highlighting details of some of the consumers of semantics like assistive technology (AT). Jeremy Keith responded…
Competitions are a great way to get your fans involved around a particular theme or release. They encourage original content creation and tend to be extremely viral due to the high level of self-promotion involved with participating. The infrastructure you choose to throw these contests on should be accessible from any device while also providing a nice aesthetic backdrop to…
Today we’re excited to announce a big update to our JavaScript SDK. Aside from improving the existing functionality like authentication, API…
12 Nov 2011
There don’t seem to be many examples of anamorphisms around. Here’s one to make up the lack. Let’s start off with our target language. > {-# LANGUAGE > DeriveFunctor, > DeriveFoldable, > DeriveTraversable #-} > > import Data.Foldable > import Data.Traversable > > data TermF a = PlusF a a > | MultF a a … Continue reading Anamorphism Example
Explore how to build a Cordova and PubNub powered multipleayer game using real-time API's
We'll show you how to build a HTML5 multiplayer game foundation for creating your own HTML5 games and applications with real-time data streaming.
11 Nov 2011
Last weekend was another successful Music Hack Day Boston jam-packed with cool hacks, and hackers alike. We are always excited to get involved, meet new and interesting people, and of course hack!
9 Nov 2011
We at SoundCloud want to build the best sound player for the web, and we want to do that using the Open Web standards. While working on the…
8 Nov 2011
During RubyConf Argentina 2011 in Buenos Aires, Argentina Matt Aimonetti gave a talk entitled Inside Ruby: concurrency & garbage collection explained. ##Description of the talk: Concurrency in Ruby and Python implementations is quite a hot topic nowadays. In this talk, Matt will explain how concurrency works for a language that uses a Global Interpreter Lock and it means concretely. Finally…
7 Nov 2011
Note, while the problem below arose in ring theory (specifically, Euclidean domains), the proof itself is elementary, and so the title should not scare away any viewers. In fact, we boil the problem down to something which requires no knowledge of abstract algebra at all. Problem: Show that the ring $ \mathbb{Z}[\sqrt{2}]$ has infinitely many units. Solution: An element of…
3 Nov 2011
Recalling our series on Conway’s Game of Life, here is an implementation of Life within Life. Unfortunately, it does not “prove” what I hoped it might, so unless a reader has a suggestion on what this demonstration proves, it doesn’t belong in the proof gallery. But it sure is impressive.
Small teams, big wins: The secret to programmer productivity.
2 Nov 2011
Machiavelli's timeless wisdom: Lessons for modern leadership.
29 Oct 2011
JSConf.eu 2011 was terrific, bigger and juicier than last year, with a strong sense of community felt from reject.js pre-conf: to start: to finish: Chris Williams makes a moving plea for an end to negativity, meaning trolling, flaming, mocking, and hating in online media. This sounds utopian, like “an end to history”. But it is … Continue reading "JSConf.eu"
27 Oct 2011
With excitement building for the Velocity Conference in Berlin, we are happy to announce a pre-event meet up on Monday, November 7 at the…
25 Oct 2011
Problem: Show 1 = 2 (with calculus) “Solution”: Consider the following: $ 1^2 = 1$ $ 2^2 = 2 + 2$ $ 3^2 = 3 + 3 + 3$ $ \vdots$ $ x^2 = x + x + \dots + x$ ($ x$ times) And since this is true for all values of $ x$, we may take the derivative…