~/devreads

30 Aug 2012

Schakko 1 min read

Today I had to move the WSUS internal database to one of our backend database servers. Microsoft has a good instruction how to do this, nevertheless I ran into a problem. Microsoft SQL Server 2008 did not allow me to add the machine account of our WSUS frontend server (let […] The post WSUS: Moving from Windows Internal Database to…

databaseswindowsbasedmicrosoftsecurity

Jez Humble 1 min read

#12 - Implementing Continuous Delivery While keeping software production ready throughout its lifecycle and optimizing your delivery process for shorter cycle times might seem like a good idea to you, your colleagues might not share your excitement. In this webinar, Jez Humble discusses ways of implementing continuous delivery, and shares stories from companies who have successfully worked to improve their…

28 Aug 2012

Matt Cutts 2 min read

Recently a newspaper contacted me. Their PageRank had dropped from 7 to 3, and they wanted to know why. They genuinely didn’t seem know what the issue was, so I took some time to write them an in-depth reply. Part of the motivation for my blog is to provide information in more scalable ways, so […]

google seo

27 Aug 2012

Schakko 1 min read

Today I wanted to update the Apache configuration in our DMZ to enable Git over SSH over SSL (another story) but while deploying the changes from my workstation to the server, Apache threw the error Cannot load modules/mod_proxy_connect.so into server: The specified module could not be found. As always procmon.exe was […] The post mod_proxy_connect.so: The specified module could not…

apache

26 Aug 2012

1 min read

The Recipe for Classification One important task in machine learning is to classify data into one of a fixed number of classes. For instance, one might want to discriminate between useful email and unsolicited spam. Or one might wish to determine the species of a beetle based on its physical attributes, such as weight, color, and mandible length. These “attributes”…

1 min read

The Blessing of Distance We have often mentioned the idea of a “metric” on this blog, and we briefly described a formal definition for it. Colloquially, a metric is simply the mathematical notion of a distance function, with certain well-behaved properties. Since we’re now starting to cover a few more metrics (and things which are distinctly not metrics) in the…

22 Aug 2012

21 Aug 2012

Schakko 1 min read

If you want to make your TeamCity, Confuence or JIRA instance accessible from outside of your LAN, you should remove all version signatures so that no attacker can easily lookup for existing exploits. TeamCity: Open <TeamCity installation dir>/webapps/ROOT/WEB-INF/tags/version.tag and remove the full content from this file. You must restart the TeamCity […] The post Remove version signature from TeamCity, Confluence…

ci cdconfluencedisablehideinformation

Esko Luontola 1 min read

In continuous delivery the idea is to have the capability to release the software to production at the press of a button, as often as it makes sense from a business point of view, even on every commit (which would then be called continuous deployment). This means that every binary built could potentially be released to production in a matter…

20 Aug 2012

Jim Highsmith 1 min read

Webinar with Jim Highsmith and Suzie Prince The Agile scaling myth goes something like this: “Agile development works well for smaller projects, but doesn’t scale to larger ones.” Which raises questions like: “At what size does delivering value to customers fail to be important?” and “Can large organizations afford to be inflexible, rigid, and unresponsive?”

17 Aug 2012

Jez Humble 1 min read

Just over a year ago, Pearson, who published Continuous Delivery, approached Martin Fowler and I with a proposal to do a series of videos on the topic of continuous delivery. We filmed a bunch of material for these videos, but then both Martin and then I dropped out of the project due to other commitments.

16 Aug 2012

15 Aug 2012

14 Aug 2012

Schakko 3 min read

Für heute hatte ich geplant, dass eines unserer Projekte automatisch mit Hilfe von Microsoft WebDeploy auf einem IIS veröffentlicht werden sollte. Die Applikation wurde mit TeamCity und MSBuild-Scripten erstellt und somit hatte ich auch bereits die passende *.deploy.cmd-Datei generiert bekommen. Als ich danach das Deployment erst einmal manuell testen wollte, […] The post Das Zertifikat für den Microsoft Web Deployment…

windowsauthoritycertificatemicrosofttemplate

Jim Highsmith 1 min read

There is no Agility for Dummies. Agility isn’t a silver bullet. You don’t achieve it in five easy steps. So what is it? For myself, I’ve characterized agility in two statements: Agility is the ability to both create and respond to change in order to profit in a turbulent business environment.

Elena Yatzeck 1 min read

Scope creep, for those of you reading this blog purely for the joy of it, is when a team has agreed to build a piece of software for a given price in a given time frame, and then the person who wants the software changes their mind about what they want, and they ask the team to do something outside…

13 Aug 2012

3 min read

Today we’re featuring a guest post from our friends at Retronyms. They’ve built some amazing community features into their app Tabletop using the SoundCloud API and have open sourced their CloudSeeder Devkit. This post was written for us by David Shu. David is a software engineer at the Retronyms and has worked on a number of iOS apps, including Tabletop…

8 Aug 2012

1 min read

According to the project site on GitHub, The Guava project contains several of Google’s core libraries that we rely on in our Java-based projects: collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth.

7 Aug 2012

Matt Cutts 2 min read

You should read Mat Honan’s heartbreaking tale of a hack attack and the ensuing discussion on Techmeme. Much of the story is about Amazon or Apple’s security practices, but I would still advise everyone to turn on Google’s two-factor authentication to make your Gmail account safer and less likely to get hacked. Two-factor authentication means […]

google seo

1 min read

Yesterday, I wrote a small article talking about Guice and JUnit, so, this time, I’ll just say how to use the small lib that I build (not big deal, one class, one annotation =] )

6 Aug 2012

1 min read

First of all: Do you use Guice as Dependency Injection Container in your Apps? If not, why?

4 Aug 2012

1 min read

A Series on Machine Learning These days an absolutely staggering amount of research and development work goes into the very coarsely defined field of “machine learning.” Part of the reason why it’s so coarsely defined is because it borrows techniques from so many different fields. Many problems in machine learning can be phrased in different but equivalent ways. While they…

Craig Gilchrist 2 min read

We are pleased to announce that the following functionality has been developed for version 5.3: Hosted authentication – email Feedback submission for comments RatingDistribution (Histogram data) and SecondaryRatingsAverages added to review statistics Time zone changed to UTC Error codes added to form errors Syndication attribution on reviews More detailed information on each of these items […]

conversations apirelease notes

2 Aug 2012

Matt Cutts 1 min read

One of the most tenacious blackhat webspam techniques we continue to see is hacked sites. I wanted to remind site owners that our free “Fetch as Google” tool can be a really helpful way to see whether you’ve successfully cleaned up a hacked site. For example, recently a well-known musician’s website was hacked. The management […]

google seo

Suzie Prince 1 min read

We are pleased to announce that Mingle 12.2 is now available in two flavors: Mingle and Mingle Plus. Mingle Plus contains all of the features of Mingle and opens up a new realm of capabilities to our customers. The first of these new capabilities is called Planner and it is intended to encourage collaboration and transparency for multiple teams working…

Jez Humble 1 min read

There’s a lot of dogma in the religious wars around software development practices and methodologies. Are phase-gate methodologies effective at managing the risk of software development, or just risk management kabuki? Does TDD really make for higher quality software? Is pair programming a superior replacement for code review or just a way to inflate consulting rates?

31 Jul 2012

Mike Long 1 min read

The purpose of the single user story gets lost in the flow of work As most Agile and Kanban teams know, user stories can help teams collaborate around bite-sized chunks of work. The single, trackable user story allows teams to measure and sustain a constant flow of work. And yet, I have noticed that as teams become more proficient at…

30 Jul 2012

1 min read

When you first get started with the Ruby programming and you come from a different language, the only tricky piece is often Ruby’s approach to block/closure/anonymous functions. Sure the metaprogramming seems a bit odd, but you don’t have to use it. That’s why a lot of developers think that Ruby is a simple language. Turns out that when you dig…

29 Jul 2012

1 min read

Dear reader, this post has an interactive simulation! We encourage you to play with it as you read the article below. In our series of posts on cellular automata, we explored Conway’s classic Game of Life and discovered some interesting patterns therein. And then in our primers on computing theory, we built up a theoretical foundation for similar kinds of…

28 Jul 2012

1 min read

Have you ever wondered what the differences are between #dup and #clone in Ruby? They both create a shallow copy of an object (meaning that they don’t copy the objects that might be referenced within the copied object). However, #clone does two things that #dup doesn’t: copy the singleton class of the copied object maintain the frozen status of the…

27 Jul 2012

Jim Highsmith 1 min read

An increasing number of organizations are moving towards radical reductions in cycle time as they move towards rapid business responsiveness and Continuous Delivery. (I’m trying to reduce my personal cycle time, but that’s another issue.)

Suzie Prince 1 min read

The spread of Agile practices into large enterprises in recent years has forced a conversation regarding the degree of standardization that should be applied to their adoption. While our collective experience in industry has shown that all projects are not alike, we tend to govern them the same way.

Alagammai Narayanan 1 min read

JourneyJim was about to hit a roadblock. As one of the world’s leading travel websites, it managed millions of visitors and transactions every month. The IT teams supporting JourneyJim had recently “gone Agile”. Each team was energized with the new levels of collaboration that Agile brought them, and they loved the happy faces of their customers as new features were…

26 Jul 2012

25 Jul 2012

1 min read

Problem: Write a program that compares two sequences of differing lengths for similarity. Solution: (In Python) import math def dynamicTimeWarp(seqA, seqB, d = lambda x,y: abs(x-y)): # create the cost matrix numRows, numCols = len(seqA), len(seqB) cost = [[0 for _ in range(numCols)] for _ in range(numRows)] # initialize the first row and column cost[0][0] = d(seqA[0], seqB[0]) for i…

24 Jul 2012

3 min read

SoundCloud is a polyglot company, and while we’ve always operated with Ruby on Rails at the top of our stack, we’ve got quite a wide variety…

18 Jul 2012

1 min read

It’s often said that the Age of Information began on August 17, 1964 with the publication of Cooley and Tukey’s paper, “An Algorithm for the Machine Calculation of Complex Fourier Series.” They published a landmark algorithm which has since been called the Fast Fourier Transform algorithm, and has spawned countless variations. Specifically, it improved the best known computational bound on…

12 Jul 2012

2 min read

A few weeks ago, I attended News Hack Day in San Francisco. News Hack Days are events that bring together journalists, developers and designers for multi day creative coding and brainstorming sessions. I really like the idea of hack days that bring together people from different backgrounds. After chatting with a few journalists, it became obvious to me that recording…

11 Jul 2012

Jez Humble 1 min read

At DevOpsDays Mountain View I was lucky enough to get some time with Michael Rembetsy, Director of Engineering and Operations at Etsy, which manages to be PCI-DSS compliant while practicing continuous deployment. In this short interview, he describes how they do it.

10 Jul 2012

Jim Highsmith 1 min read

In Good to Great Why Some Companies Make the Leap… and Others Don’t, Jim Collins writes that great organizations work to both preserve their core values and principles and then stimulate progress by adapting as needed over time (this book, written in 2001, still ranks in the top 200 books on Amazon). As with many things—easy to say, hard to…

8 Jul 2012

6 Jul 2012

1 min read

There are many approaches to building libraries that wrap HTTP APIs. For many of our officially supported SDKs we chose to build light wrappers around HTTP client libraries with a few added features to make it easier to work with the SoundCloud API. This approach has a few benefits. It guarantees a certain consistency and is relatively easy to maintain.…

3 Jul 2012

Matt Cutts 1 min read

Last month (June 2012), my 30 day challenge was to try to eat mindfully (eat more slowly, don’t eat while distracted by TV or web browsing, chew more, stop eating when I’m full, etc.). It turns out that eating mindfully is hard. I’m the sort of person that eats whatever is on my plate, so […]

30 days

2 Jul 2012

29 Jun 2012

2 min read

SoundCloud loves hack days. Our latest hack day adventure brought us to Music Hack Day in Barcelona and we thought we’d share a bit of the great experience we had there. Photo by Thomas Bonte

Jim Highsmith 1 min read

We often compartmentalize our lives—work goes here, politics goes there, social responsibility goes somewhere else. This compartmentalization is often schizophrenic, but seemingly necessary in organizational life. But is it, necessary that is? There are a growing number of companies that help people integrate these multiple facets of their lives—companies like Ben & Jerry’s, and yes, like Thoughtworks.

28 Jun 2012

1 min read

Problem: Reduce the dimension of a data set, translating each data point into a representation that captures the “most important” features. Solution: in Python import numpy def principalComponents(matrix): # Columns of matrix correspond to data points, rows to dimensions. deviationMatrix = (matrix.T - numpy.mean(matrix, axis=1)).T covarianceMatrix = numpy.cov(deviationMatrix) eigenvalues, principalComponents = numpy.linalg.eig(covarianceMatrix) # sort the principal components in decreasing order

27 Jun 2012

26 Jun 2012

4 min read

Waveforms I’ve worked at SoundCloud for over two years now, and if there’s one thing I do a lot, it’s color waveforms. Tons of them. And, I’ve done it several different ways. Today, Johannes and I are pumped to announce a new JavaScript library called Waveform.js that will assist you in your coloring efforts. But first, let’s take some time…

25 Jun 2012

24 Jun 2012

23 Jun 2012

1 min read

So here we are. We have finally made it to a place where we can transition with confidence from the classical continuous Fourier transform to the discrete version, which is the foundation for applications of Fourier analysis to programming. Indeed, we are quite close to unfurling the might of the Fast Fourier Transform algorithm, which efficiently computes the discrete Fourier…

22 Jun 2012

Mike Long 1 min read

Just about every conversation we have on Thoughtwork Studios teams revolve around two questions: “How might we encourage and enable team collaboration?” and “How might we enable teams to focus on customer value?” We also filter all of our decisions through a clear and precise language about the activity a product supports.

18 Jun 2012

17 Jun 2012

Henrik Warne 7 min read

For seven years I coded in C++ using Emacs. Four years ago, when I changed jobs, I switched to Java development using IntelliJ IDEA. Without a doubt, I am much more productive writing code in IntelliJ IDEA compared to using … Continue reading →

programmingemacsideideaintellij

15 Jun 2012

1 min read

#5 in the Continuous Delivery webinar series Companies can leverage the strengths of Cloud Architecture and apply techniques of Infrastructure-as-a-Service within their own data centers. Thoughtworks’ recent project spanning several large data centers in India shows how enterprises can use virtualization and automation to gain strategic business advantages. The capabilities that can be achieved could help those enterprises that for…

14 Jun 2012

1 min read

Problem: Compute a reasonable approximation to a “streaming median” of a potentially infinite sequence of integers. Solution: (in Python) def streamingMedian(seq): seq = iter(seq) m = 0 for nextElt in seq: if m > nextElt: m -= 1 elif m < nextElt: m += 1 yield m Discussion: Before we discuss the details of the Python implementation above, we should…

12 min read

This article is also available in: Serbo-Croatian: Pravljenje novog SoundCloud Armenian: SoundCloud (ձայնամպ) ծրագրավորողների համար The…

13 Jun 2012

1 min read

While it’s true that there are still a lot of places where software isn’t leveraged and many places where software needs to evolve, software is nearly everywhere!. The type of software we write today needs to interact with other software via some sort of network. Any web developer out there is used to that, (s)he writes software that runs on…

12 Jun 2012

1 min read

After a year of writing this blog, what have I learned about the nature of the relationship between computer programs and mathematics? Here are a few notes that sum up my thoughts, roughly in order of how strongly I agree with them. I’d love to hear your thoughts in the comments. Programming is absolutely great for exploring questions and automating…

11 Jun 2012

Jim Highsmith 1 min read

We, especially us consultants, preface presentations, blogs, and books with dire predictions about change in the world. What we fail to recognize at times is that change isn’t change, that there are different types of change and we need to have different tools—different levels of innovation—to address each. Three types that come to mind (there are surely other useful classifications)…

8 Jun 2012

6 Jun 2012

1 min read

Last time we investigated the naive (which I’ll henceforth call “classical”) notion of the Fourier transform and its inverse. While the development wasn’t quite rigorous, we nevertheless discovered elegant formulas and interesting properties that proved useful in at least solving differential equations. Of course, we wouldn’t be following this trail of mathematics if it didn’t result in some worthwhile applications…

2 Jun 2012

Henrik Warne 2 min read

I love coding. Ever since I bought my first computer (a VIC-20), I’ve been fascinated by computer programming. For many years I never thought of why I enjoyed it so much – I just knew I did. But that changed when … Continue reading →

programmingcodingcreativitylove

Craig Gilchrist 2 min read

We are pleased to announce that the following functionality has been developed for version 5.2: Helpfulness and inappropriate content feedback submission enabled ContentLocale no longer filtered implicitly by default Product and category attributes populated as a map Hosted video submission and display updated Inline ratings data exposed for product-based review statistics More detailed information on […]

conversations apirelease notes

1 Jun 2012

31 May 2012

27 May 2012

1 min read

In our last primer we saw the Fourier series, which flushed out the notion that a periodic function can be represented as an infinite series of sines and cosines. While this is fine and dandy, and quite a powerful tool, it does not suffice for the real world. In the real world, very little is truly periodic, especially since human…

26 May 2012

23 May 2012

Suzie Prince 1 min read

Finding stories in your backlog, locating a bug that was logged last week and rediscovering the acceptance criteria on an older story all require a good search capability. The need to find specific cards more easily and consistently in a Mingle project, especially with a large number of cards, has been widely requested. And we’ve heard you.

22 May 2012

Elena Yatzeck 1 min read

If you're reading this, you may be attempting a large scale organizational change of some kind. And perhaps you are feeling overwhelmed at the huge amount of literature available in "the Google" about how to change a large organization.

19 May 2012

1 min read

Problem: Derive the double angle identities $$\sin(2\theta) = 2\sin(\theta)\cos(\theta)\\\ \cos(2\theta) = \cos^2(\theta) – \sin^2(\theta)$$ Solution: Recall from linear algebra how one rotates a point in the plane. The matrix of rotation (derived by seeing where $ (1,0)$ and $ (0,1)$ go under a rotation by $ \theta$, and writing those coordinates in the columns) is $$A = \begin{pmatrix} \cos(\theta) &…

16 May 2012

Elena Yatzeck 1 min read

Feature Injection has been my favorite will-o'-the-wisp over the past month or so, starting from the point where I discovered that the "founding document" for the concept is a set of photos of Chris Matt's moleskine notebook which he wrote on a plane and uploaded to picasa in 2009. I'm still digesting the ideas, which I was completely unable to…

8 May 2012

5 May 2012

1 min read

Problem: Prove that $ 2 = 4$. Solution: Consider the value of the following infinitely iterated exponent: $$\displaystyle \sqrt{2}^{\sqrt{2}^{\sqrt{2}^{\cdot^{\cdot^{\cdot}}}}}$$ Let $ a_n = \sqrt{2} \uparrow \uparrow n$, that is, the above power tower where we stop at the $ n$-th term. Then $ a_n$ is clearly an increasing sequence, and moreover $ a_n \leq 4$ by a trivial induction argument:…

4 May 2012

RC Johnson 1 min read

We recently delivered this presentation titled “How to Scale Big on MySQL? Break a Few Rules!” as part of Database Week here in New York City. The presentation is a lighthearted, and informative take on how Bazaarvoice Engineering has been able to take MySQL to billions of requests per month. The slides and video are […]

talksmysql

1 min read

Yesterday, RubyMotion was released and let’s be honest, it is one the best alternatives to Objective-C out there (if not the best). RubyMotion is a commercial, proprietary fork of MacRuby that targets iOS. This is not a small achievement, MacRuby relies on Objective C’s Garbage Collector (libauto) which is not available on iOS. Static compilation and new memory management solution…

27 Apr 2012

Matt Cutts 2 min read

Beyond clear-cut blackhat webspam, the second-biggest category of spam that Google deals with is hacked sites. The most common reaction we hear from webmasters is “The problem is with the Google search. There is nothing wrong with our website.” That’s a real quote from an email one site owner recently sent us. Sadly, it turns […]

google seo

26 Apr 2012

25 Apr 2012

1 min read

Overview In this primer we’ll get a first taste of the mathematics that goes into the analysis of sound and images. In the next few primers, we’ll be building the foundation for a number of projects in this domain: extracting features of music for classification, constructing so-called hybrid images, and other image manipulations for machine vision problems (for instance, for…

1 min read

mruby is the latest Ruby implementation in an already quite long list: MRI REE JRuby Rubinius MacRuby Maglev IronRuby And many other less known implementations. This time, the main man behind the project is the Ruby creator himself: Yukihiro ‘Matz’ Matsumoto. I already covered the announcement, you can read more about it there. Why mruby? Following my previous article on…

24 Apr 2012

Joanne Molesky 1 min read

#9 in the Continuous Delivery webinar series Continuous Delivery practices are natural fit for organizations who want to manage risks in the delivery of IT services. If this contradicts what you may have been told during painful conversations with compliance teams, this session is for you. Joanne Molesky explains how Continuous Delivery can reduce IT uncertainty and shares an approach…

23 Apr 2012

22 Apr 2012