Problem: Suppose their are three circles in the plane of distinct radii. For any two of these circles, we may find their center of dilation as the intersection point of their common tangents. For example, in the following picture we mark the three centers of dilation for each pair of circles: We notice that the three centers of dilation are…
13 Jul 2011
11 Jul 2011
A Puzzle is Born Sitting around a poolside table, in the cool air and soft light of a June evening, a few of my old friends and I played a game of Texas Hold ‘Em. While we played we chatted about our times in high school, of our old teachers, friends, and, of course, our times playing poker. We even…
Today my friend Patrick Crowley and I were talking about scaling his website: https://cinematreasures.org since an article covering his work will soon be published in a very popular newspaper. Patrick’s site is hosted on Heroku which comes by default with Varnish caching enabled. The challenge is that a lot of people using the Rails framework are used to doing page…
9 Jul 2011
It’s often that a student’s first exposure to rigorous mathematics is through set theory, as originally studied by Georg Cantor. This means we will not treat set theory axiomatically (as in ZF set theory), but rather we will take the definition of a set for granted, and allow any operation to be performed on a set. This will be clear…
You have always wanted to send CSS updates to your website or HTML5 mobile app in real time. How do you do this?
You have always wanted to send CSS updates to your website or HTML5 mobile app in real time. How do you do this?
7 Jul 2011
Problem: Show 31.5 = 32.5. “Solution”: Explanation: It appears that by shifting around the pieces of one triangle, we have constructed a second figure which covers less area! Since the first triangle has base length 13 and height 5, its area is 32.5. Clearly, the second figure has the same area minus a square of area 1, giving the second…
"Empowering Django developers: A step-by-step guide to setting up your environment."
5 Jul 2011
Problem: Show there are finitely many primes. “Solution”: Suppose to the contrary there are infinitely many primes. Let $ P$ be the set of primes, and $ S$ the set of square-free natural numbers (numbers whose prime factorization has no repeated factors). To each square-free number $ n \in S$ there corresponds a subset of primes, specifically the primes which…
This is the first in a series of “false proofs.” Despite their falsity, they will be part of the Proof Gallery. The reason for putting them there is that often times a false proof gives insight into the nature of the problem domain. We will be careful to choose problems which do so. Problem: Show 1 = 2. “Solution”: Let…
Problem: $ \frac{1}{2} + \frac{1}{4} + \frac{1}{8} + \dots = 1$ Solution: Problem: $ \frac{1}{3} + \frac{1}{9} + \frac{1}{27} + \dots = \frac{1}{2}$ Solution: Problem: $ \frac{1}{4} + \frac{1}{16} + \frac{1}{64} + \dots = \frac{1}{3}$ Solution: Problem: $ 1 + r + r^2 + \dots = \frac{1}{1-r}$ if $ r < 1$. Solution: This last one follows from similarity of…
MySQL turns out to be a good Swiss Army Knife for persistence, if used wisely. Understanding disk access patterns driven by your storage…
4 Jul 2011
We assume the reader is familiar with the concepts of determinism and finite automata, or has read the corresponding primer on this blog. The Mother of All Computers Last time we saw some models for computation, and saw in turn how limited they were. Now, we open Pandrora’s hard drive: Definition: A Turing machine is a tuple $ (S, \Gamma,…
2 Jul 2011
The first step in studying the sorts of possible computations (and more interestingly, those things which cannot be computed) is to define exactly what we mean by a “computation.” At a high level, this is easy: a computation is simply a function. Given some input, produce the appropriate output. Unfortunately this is much too general. For instance, we could define…
1 Jul 2011
Problem: Prove that for all $ n,k \in \mathbb{N}, k > 1$, we have $$\sum \limits_{i=0}^{n} k^i = \frac{k^{n+1}-1}{k-1}$$ Solution: Representing the numbers in base $ k$, we have that each term of the sum is all 0’s except for a 1 in the $ i$th place. Hence, the sum of all terms is the $ n$-digit number comprised of…
30 Jun 2011
"Embracing simplicity: The Kobo Touch eReader for Linux users."
Additional Patterns Last time we left the reader with the assertion that Conway’s game of life does not always stabilize. Specifically, there exist patterns which result in unbounded cell population growth. Although John Conway’s original conjecture was that all patterns eventually stabilize (and offered $50 to anyone who could provide a proof or counterexample), he was proven wrong. Here we…
29 Jun 2011
Cellular Automata There is a long history of mathematical models for computation. One very important one is the Turing Machine, which is the foundation of our implementations of actual computers today. On the other end of the spectrum, one of the simpler models of computation (often simply called a system) is a cellular automaton. Surprisingly enough, there are deep connections…
27 Jun 2011
Note: This was one of my first blog posts on Go and well, I won’t make any excuses, it’s pretty terrible. It’s a good example of what not to do, that is, trying to force the concepts of a different language (in this case Ruby) to Go. I almost never use reflection and the following code is the kind of…
26 Jun 2011
Problem: Take a chessboard and cut off two opposite corners. Is it possible to completely tile the remaining board with 2-by-1 dominoes? Solution: Notice that every domino covers exactly one white tile and one black tile. Counting up the colors, we have 32 white and 30 black. Hence, any tiling by 2-by-1 dominoes will leave two extra white squares unaccounted…
Community Service Mathematics is supposed to be a process of discovery. Definitions, propositions, and methods of proof don’t come from nowhere, although after the fact (when presented in a textbook) they often seem to. As opposed to a textbook, real maths is highly non-linear. It took mathematicians quite a lot of fuss to come up with the quadratic formula, and…
24 Jun 2011
Problem: What is the area of the triangle within the rectangle? Solution: In a moment of inspiration, we draw the following additional line: Now the answer is obvious. Once we split the rectangle into two smaller rectangles, the sides of the triangle become diagonals of their respective rectangles. The diagonals obviously split each of the two smaller rectangles into halves,…
Problem: Find the sum of the first 1000 natural numbers. Solution: Write the numbers twice as follows: $ \begin{matrix} 1 & + & 2 & + & \dots & + & 999 & + & 1000 \\\ 1000 & + & 999 & + & \dots & + & 2 & + & 1 \end{matrix}$ Summing the numbers in each…
23 Jun 2011
Problem: At any party of 1000 people, must there always exist two people at the party who have the same number of friends at the party? For the sake of this problem, one cannot be friends with oneself, and friendship is bidirectional. Solution: This must always happen. Suppose to the contrary, that every person at the party has a different…
Problem: 1000 players compete in a tournament. In each round, players are matched with opponents, and the winner proceeds to the next round. If there are an odd number of players in a round, one player chosen at random sits out of that round. What is the total number of games are played in the tournament? Solution: 999. Each player…
21 Jun 2011
A Bully By Any Other Name From the New York Times: “Shopping online in late July, Clarabelle Rodriguez typed the name of her favorite eyeglass brand into Google’s search bar. In moments, she found the perfect frames — made by a French company called Lafont — on a Web site that looked snazzy and stood at the top of the…
20 Jun 2011
Dangling Nodes and Non-Uniqueness Recall where we left off last time. Given a web $ W$ with no dangling nodes, the link matrix for $ W$ has 1 as an eigenvalue, and if the corresponding eigenspace has dimension 1, then any associated eigenvector gives a ranking of the pages in $ W$ which is consistent with our goals. The first…
My next book will be Practical Math for Programmers A High-Level Overview of Fully Homomorphic Encryption Searching for Riemann Hypothesis Counterexamples Linear Programming and Healthy Diets Hybrid Images Bezier Curves and Picasso
19 Jun 2011
Story Time Linear algebra was founded around the same time as Calculus (think Leibniz, circa 1700) solely for the purpose of solving general systems of linear equations. The coefficients of a system were written in a grid form, with rows corresponding to equations and columns to the unknown variables. Using a computational tool called the determinant (an awkward, but computable…
18 Jun 2011
The Web as a Graph The goal of this post is to assign an “importance score” $ x_i \in [0,1]$ to each of a set of web pages indexed $ v_i$ in a way that consistently captures our idea of which websites are likely to be important. But before we can extract information from the structure of the internet, we…
14 Jun 2011
The Quest to Capture Speed Companies and researchers spend hundreds of millions of dollars for the fruits of their algorithms. Whether one is indexing websites on the internet for search, folding proteins, or figuring out which warehouse is the most cost-effective to ship a product from, improvements in algorithm speed save immense amounts of money. It’s no surprise then, that…
Binary Search Binary search is perhaps the first and most basic nontrivial algorithm a student learns. For the mathematicians out there, binary search is a fast procedure to determine whether a sorted list contains a particular element. Here is a pseudocode implementation: # Binary Search: # Given a list L, sorted via the total order <, and a sought #…
13 Jun 2011
The goal of this post is to use prime numbers to make interesting and asymmetric graphics, and to do so in the context of the web design language CSS. Number Patterns For the longest time numbers have fascinated mathematicians and laymen alike. Patterns in numbers are decidedly simple to recognize, and the proofs of these patterns range from trivially elegant…
12 Jun 2011
Importance on the Web As a society living in the “Information Age,” it comes as no surprise that we are faced with the task of sorting through vast oceans of content. With the admission that most content is actually junk, we must wisely choose the objects of our analysis. The appropriately named site UselessJunk.com certainly doesn’t deserve the same attention…
10 Jun 2011
It’s now official, I have resigned from Sony Computer Entertainment America. I was planning on posting this a bit later but since I was politely escorted out of the building by HR/security, I have more free time to let you know of my decision. Before you ask: No, my decision isn’t directly related to the recent PSN/Sony security breach events…
29 May 2011
If you are looking for some inspiration for your next weekend hack project, here is a list of ideas that could be built using the SoundCloud platform. Feel free to add your own ideas in the comments!
24 May 2011
Yesterday I installed a central Git repository server for storing all configuration files from our Linux servers. Every /etc directory is now observed by Git (and etckeeper). Each of these servers pushes the changes from the local master branch to the central repository. Authentication is done via public/private key authentication. […] The post Installing Git on Citrix XenServer 5.5 appeared…
20 May 2011
Unlock the power of Django's class-based views with this practical guide.
Global-Bind-User Patch für mod_auth_ldap (Apache 2.0.63) und mod_authnz_ldap (Apache 2.2.18) veröffentlicht
SchakkoHeute habe ich es endlich geschafft, den Patch für mod_auth_ldap (Apache 2.0.63) und mod_authnz_ldap (Apache 2.2.18) auf Github zu veröffentlichen. Die Version für mod_auth_ldap hatte ich bereits vor zwei Jahren fertig gestellt, aber nie öffentlich zugänglich gemacht. Stattdessen schlummerte Kompilat und Sourcen in unserem Unternehmens-Repository. Der Patch stellt drei Einstellungen […] The post Global-Bind-User Patch für mod_auth_ldap (Apache 2.0.63) und…
19 May 2011
Alongside with the SoundCloud Android app we’ve created a new Java Wrapper for the SoundCloud API and today we can finally release it to the public! It is simple to use, supports OAuth2 and requires a minimum of external dependencies so it should be easily embeddable in both desktop and mobile applications.
13 May 2011
I just met the Thoughtworks global "Head of Quality"* this week, Kristan Vingrys. He was able to make me see automated testing more clearly than I ever did before with a quick sketch and 10 minute discussion, and I wanted to share what I heard with others of you who might be more on the management/business end of things, and…
11 May 2011
This tutorial shows you how to build real-time multi touch, enabling you to build multi touch synced across multiple devices.
This tutorial shows you how to build real-time multi touch, enabling you to build multi touch synced across multiple devices.
I was fortunate enough to be given the opportunity to help Moby premiere his new record via SoundCloud. I didn’t know what to expect from…
On Thursday May 5th 2011 we had an API outage from ~9:00 UTC to ~14:00 UTC. This was caused by a deploy that included a migration with…
9 May 2011
I just discovered a LinkedIn affinity group called "Glass ceilings, Sticky Floors," which has a charter to promote women leaders:
4 May 2011
Rails style database migrations are a useful way to evolve your data schema in an agile manner. Most Rails projects start like this, and at…
1 May 2011
Unsere bisherigen Pläne für ZABOS sehen vor, dass wir die Funktionalität der Alarmierung per SMS über Fünfton-Folgeruf (ZVEI) erweitern – nämlich um die digitalen Protokolle POCSAG und FMS. Unserer bisheriger Fünfton-Folgerufempfänger ist ein selbstenwickeltes Board mit Mikrocontroller, der die Fünfton-Folgen aufnimmt und dann über die serielle Schnittstelle an ZABOS weiterreicht. […] The post Funkauswerter monitord um ActiveMQ-Support erweitern appeared first…
29 Apr 2011
"Navigating the forest of django-mptt: A cautionary tale"
28 Apr 2011
Greetings! I’m Robb and this is my first SoundCloud Backstage blog post. During the day I’m a developer working on the Mac App here in the…
As SoundCloud rapidly grows our initial systems need an overhaul. Our scaling strategy has been very realistic, design for 10x our current…
23 Apr 2011
Erweiterte Euklidischer Algorithmus für die Berechnung der multiplikativ Inversen innerhalb eines Galois-Felds
SchakkoZur Vorbereitung meiner Klausur für Angewandte Mathematik bin ich über eine Aufgabe zum Berechnen der multiplikativ Inversen innerhalb eines Galois-Felds gestoßen. In Anlehnung an meine Euklid-Vorlage habe ich ein weiteres Dokument geschrieben, in dem detailiert erklärt wird, wie man innerhalb eines Galois-Feldes das multiplikativ Inverse einer Zahl mit Hilfe des […] The post Erweiterte Euklidischer Algorithmus für die Berechnung der…
14 Apr 2011
In this post I will do my best to explain why and how I reinvented the wheel and wrote a custom web framework for some of Sony’s AAA console titles. My goal is to reflect on my work by walking you through the design process and some of the implementation decisions. This is not about being right or being wrong,…
7 Apr 2011
Some time ago I developed ADUaCET, an extension for the Active Directory User and Computer MMC snap-in. Sad to say but the ADUaCET property page is not shown if you are searching for an user. It is only available if you use the procedure right click $USER -> Properties. I […] The post Additional property page sheet in Active Directory…
6 Apr 2011
UPDATE: Check out our guide on Playing Sounds for the most up to date information. We think the default audio widget from SoundCloud already is one of the sexiest on the web. But maybe you need something a bit simpler or complex and want to tailor the player to your needs. This is where the idea of “custom players” comes…
UPDATE: Check out our guide on Playing Sounds for the most up to date information. This is an introduction to how you can power your app or website with sounds hosted on SoundCloud. Via our API, you get access to millions of different sounds, and in addition to streaming and downloading tracks, you can access meta data and social features…
5 Apr 2011
UPDATE: Check out our guides on Authentication and Sharing Sounds for the most recent information. If you build an app or web service that generates any type of sound, it’s easy to connect it to SoundCloud and enable your users to share their creations across the web. Allowing users to share what they create to their existing social networks and…
4 Apr 2011
We are happy to introduce you to our new developer portal developers.soundcloud.com. Here we are bundling up all the SoundCloud platform…
1 Apr 2011
One of Go's most valuable features is that it runs jobs in parallel. To make long running test suites go faster, you can simply split your long running test suite into multiple suites and create jobs for each one. Given enough build agents, Go can run all jobs within a specified stage simultaneously, which means your long running testing can…
31 Mar 2011
As I mentioned yesterday, Christoph is currently developing the Active Directory Integration WordPress plugin. Today we were talking about the write back of WordPress profile settings to Active Directory. I mentioned it would be helpful to have an abstract definition of available Active Directory attributes which can be dynamically integrated […] The post Convert Active Directory schema to XML or…
30 Mar 2011
Christoph was implementing a function into Active Directory Integration (ADI) (a WordPress plugin for Active Directory authentication and authorization) called Sync Back. With this function WordPress users are able to write back their WordPress profile to their Active Directory account. A problem that occured was that by default Active Directory […] The post How to give users the permission to…
20 Mar 2011
If you program in Python, you’re probably familiar with the pickle serialization library, which provides for efficient binary serialization and loading of Python datatypes. Hopefully, you’re also familiar with the warning printed prominently near the start of pickle’s documentation: Warning: The pickle module is not intended to be secure against erroneous or maliciously constructed data. Never unpickle data received from…
19 Mar 2011
How to build real-time chat apps in 10 lines of JavaScript with user detection and efficient messaging.
How to build real-time chat apps in 10 lines of JavaScript with user detection and efficient messaging.
17 Mar 2011
This tutorial explains how to broadcast real-time cross-platform, cross-device desktop notifications to your users on any browser
This tutorial explains how to broadcast real-time cross-platform, cross-device desktop notifications to your users on any browser
15 Mar 2011
Unlock Ubuntu's notification potential with this simple tweak!
13 Mar 2011
Do you remember the Saturday morning TV "Shazam/Isis Power Hour"? Among the many wonders this show offered was young Billy Batson driving all over the US in a big recreational vehicle with his mentor, Mentor. Despite Mentor's presence, the two of them somehow continually got into difficult situations which prompted Billy to shout "Shazam!" and transform into Captain Marvel in…
12 Mar 2011
Just for you, PubNub has created an HTML5 Song Lyrics Animator using CSS3. To get you more excited, we had a song created featuring your favorite ...
Just for you, PubNub has created an HTML5 Song Lyrics Animator using CSS3. To get you more excited, we had a song created featuring your favorite ...
10 Mar 2011
Motion, keyboard commands and shortcuts for VI Improved Legend Motion / Normal mode Insert mode Changes Yank/Put or Copy/Paste Visual/Visual Block Mode Commands Files Windows Tabs coc.nvim Denite Help Search/Replace Find Files Legend Command Keyboard Character command ⌘ control ⌃ alt ⎇ delete ⌫ option ⌥ shift ⇧ caps lock ⇪ tab ⇥ arrow up ↑ arrow down ↓ arrow…
7 Mar 2011
"Validate your market before building: The key to startup success."
My name is Matt Aimonetti, and in my free time I work on Apple’s open source Ruby implementation named MacRuby. I’m also the author of O’Reilly’s MacRuby book. As you can imagine, I’m very thankful that Apple initiated the MacRuby project a few years ago and have been an avid supporter. MacRuby is awesome to develop OS X native applications…
1 Mar 2011
Empower anonymity: Run a Tor relay and make a difference.
25 Feb 2011
Last week at the Palace Hotel in San Francisco, Jim Highsmith, Executive Consultant for Thoughtworks and Jitendra Subramanyam, Director of Strategy and Research for CAST, presented a two pronged approach to the issue of technical debt in the agile corporate environment.
22 Feb 2011
Concurrency is certainly not a new problem but it’s getting more and more attention as machines start having more than 1 core, that web traffic increases drastically and that some new technologies show up saying that they are better because they handle concurrency better. If that helps, think of concurrency as multitasking. When people say that they want concurrency, they…
19 Feb 2011
Today I was helping someone write an Objective-C framework around cocos2d. C/Objective-C code can be called directly from MacRuby. However the Obj-C code you would like to use might be using some ANSI C symbols that are non-object-oriented items such as constants, enumerations, structures, and functions. To make these items available to our MacRuby code, you need to generate a…
8 Feb 2011
reptyr (announced recently on this blog) takes a process that is currently running in one terminal, and transplants it to a new terminal. reptyr comes from a proud family of similar hacks, and works in the same basic way: We use ptrace(2) to attach to a target process and force it to execute code of our own choosing, in order…
31 Jan 2011
Designing beautiful and scalable software is hard. Really hard. It’s hard for many reasons. But what makes it even harder is that software scalability is a relatively new challenge, something only really done in big companies, companies that are not really keen on sharing their knowledge. The amount of academic work done on software design is quite limited compared to…
21 Jan 2011
Over the last week, I’ve written a nifty tool that I call reptyr. reptyr is a utility for taking an existing running program and attaching it to a new terminal. Started a long-running process over ssh, but have to leave and don’t want to interrupt it? Just start a screen, use reptyr to grab it, and then kill the ssh…
19 Jan 2011
From today on, we advise developers to use OAuth 2 as preferred way of API authentication. Our implementation of the Draft 10 OAuth…
18 Jan 2011
Part of my job at Sony PlayStation is to architect scalable systems which can handle a horde of excited players eager to be the first to play the latest awesome game and who would play for 14-24 hours straight. In other words, I need to make sure a system can “scale”. In my case, a scalable system is a system…
15 Jan 2011
11 Jan 2011
Part 2 of our overview of Sahi. For ways to get started on Sahi, check out Part 1 here. _near() Our project is an ExtJS based website. Most element ids are generated dynamically which means the id is not reliable as locator. Sahi provides us with the ability to use position dependency to locate elements.
Sahi is an automation and testing tool for web applications. Different from many other commercial testing tools, Sahi is an open source tool. As an automation tool, Sahi provides the facility of recording and play backing of scripts. Sahi supports Java and JavaScript. Even though the Sahi script looks like JavaScript, it is not executed as the regular JavaScript on…
7 Jan 2011
Get started integrating PubNub into your node js server side application to build real-time pub/sub communication in your application.
Get started integrating PubNub into your node js server side application to build real-time pub/sub communication in your application.
1 Jan 2011
So you are familiar with the SoundCloud API Wrapper and want to use it to share the sounds you upload? And you want to use the existing connections on SoundCloud or make new ones? Awesome. Here’s how to do it.
27 Dec 2010
I’ve spent a lot of time this last week staring at decompiled Dalvik assembly. In the process, I created a couple of useful tools that I figure are worth sharing. I’ve been using dedexer instead of baksmali, honestly mainly because the former’s output has fewer blank lines and so is more readable on my netbook’s screen. Thus, these tools are…
20 Dec 2010
"Unlock your productivity: Why work thrives outside the office."
13 Dec 2010
"Keep your code clean with lintswitch's constant, unobtrusive background linting."
10 Dec 2010
Dan Rosenberg recently released a privilege escalation bug for Linux, based on three different kernel vulnerabilities I reported recently. This post is about CVE-2010-4258, the most interesting of them, and, as Dan writes, the reason he wrote the exploit in the first place. In it, I’m going to do a brief tour of the various kernel features that collided to…
"Unlock the power of remote work with Screen: Your terminal multitasking companion!"
30 Nov 2010
Most of you reading this blog probably remember CVE-2010-3081. The bug got an awful lot of publicity when it was discovered an announced, due to allowing local privilege escalation against virtually all 64-bit Linux kernels in common use at the time. While investigating CVE-2010-3081, I discovered that several of the commonly-believed facts about the CVE were wrong, and it was…
20 Nov 2010
16 Nov 2010
"Freedom trumps frills: The real workplace revolution we need."
I just read a very angry blog entitled: Business Analysts And The Million Dollar Question - What Would You Say You Do Here? The author quotes Scott Ambler's famous line, "Remember, 'BA' is also the abbreviation for band-aid" and he goes on to say that if you hire a typical BA, chances are high that "you're not just wasting your…
12 Nov 2010
##Description of the talk: This year I gave the traditional Apple’s MacRuby talk at RubyConf. My presentation focused on 2 axis: What’s new since last RubyConf Show some examples of how fun it is to hack with MacRuby ##Video {% video https://cdn.confreaks.com/system/assets/datas/768/original/448-rubyconf2010-macruby-why-and-how-small.mp4 640 360 /images/matt_aimonetti_rubyconf2010.jpeg %} Other video formats are available here ##Slides Presentation slides available on Speakerdeck ##Details of…
9 Nov 2010
IT community members catechized on the Agile Manifesto will recall that the original signers placed a higher value on "working software" than on "comprehensive documentation." But is working software in isolation our ultimate goal? I think that as the Agile community has moved in the direction of delivering value, rather than just delivering working software, we are now newly realizing…
7 Nov 2010
I’ve recently started playing with scons a little for some small personal projects. It’s not perfect, but I’ve rapidly come to the conclusion that it’s a probably far better choice than make in many cases. The main exceptions would be cases where you need to integrate into legacy build systems, or if asking or expecting developers to have scons installed…