We are on a mission to find the best build lights and information radiators and we need your help! Be it physical, digital, or quantumnly entangled, we want to see how your team radiates their build and deploy information!
11 Sept 2013
10 Sept 2013
AnglarJS is great! But when dealing with large lists containing complex data structure, things can get very slow! We ran into that problem when migrating our core admin screens to AngularJS. The screens were supposed to work smoothly when displaying some 500 rows. But the first approach took up to 7 seconds to rende. Terrible! […]
We've built an integration which allows you to instantly extend the reach of your RabbitMQ deployment to the web.
We've built an integration which allows you to instantly extend the reach of your RabbitMQ deployment to the web.
Readers of this blog will know this has been an interesting couple of days for me. I have very mixed feelings about all this. On the one hand, it’s brought this blog a handful of new readers who might not have discovered it otherwise. On the other hand, it’s made me a part of the … Continue reading A note…
9 Sept 2013
My First Paper I’m pleased to announce that my first paper, titled “Anti-Coordination Games and Stable Colorings,” has been accepted for publication! The venue is the Symposium on Algorithmic Game Theory, which will take place in Aachen, Germany this October. A professor of mine once told me that everyone puts their first few publications on a pedestal, so I’ll do…
The port of Juju to Go is a project I’ve been involved in at Canonical for some time now. The power behind Juju is charms, which are part configuration management and part reliable workflow engine. One non-conventional use of Juju is something I cooked up a while ago when traveling, a Juju charm that compiles […]
Following my previous posts with basic Javascript aspects, like context and variable hoisting, I’ll try to write some basic concepts of the Ruby language. I decided to start with something that usually confuses new Ruby users (sometimes they don’t even know that they are confused, by the way): the Ruby nil object.
Background When we started to work on the new version of our mobile web app, we knew we wanted to run unit tests on a wide variety of…
In a survey conducted a few months ago by XebiaLabs, implementing Continuous Delivery (CD) was listed as one of the key initiatives for many enterprises. CD’s ability to rapidly and repeatedly bring feature improvements to market, aligns naturally with business initiatives to accelerate time-to-market and stay a step ahead of the competition, while maintaining quality.
7 Sept 2013
It looks like Go 1.4 will remove support for Go packages containing C code (as described below, don’t confuse this with CGO), so enjoy it while it lasts. This is a short post designed to illustrate how Go package authors can write package level functions in C and call them from Go code without using […]
Verilog is the most commonly used language for hardware design in America (VHDL is more common in Europe). Too bad it's so baroque. If you ever browse the Verilog questions on Stack Overflow, you'll find a large number of questions, usually downvoted, asking “why doesn't my code work?”, with code that's not just a little off, but completely wrong. Lets…
6 Sept 2013
Let me tell you the story of my tiny brush with the biggest crypto story of the year. A few weeks ago I received a call from a reporter at ProPublica, asking me background questions about encryption. Right off the bat I knew this was going to be an odd conversation, since this gentleman seemed … Continue reading On the…
4 Sept 2013
A few days ago a post entitled Autoworkers of Our Generation floated across my radar. In his post, Greg Baugues argues that as developers, we have a short term advantage, and would do well to view our lot as a temporary anomaly. In this article I’d like to engage with his post, and respond. The key […]
This article is the second of a series of n articles, where n could be any given number between 1 and 2 (inclusive).
If you have a few minutes, you should check out mine and Chris Johnson‘s panel proposal. Go here and vote: http://panelpicker.sxsw.com/vote/24504 Algorithmic Music Discovery at Spotify ****Spotify crunches hundreds of billions of streams to analyze user’s music taste and provide music recommendations for its users. We will discuss how the algorithms work, how they fit in within the products, what…
Being agile is much more than applying some techniques to run software projects - it requires a commitment to adaptive leadership, a focus on delivering value fast, and a different understanding of what your organizations' portfolio should look like. This webinar will investigate some of the key changes to becoming agile, with points learned from Thoughtworks' own journey, and the…
3 Sept 2013
Some relatives were visiting this past week, so my inbox has a triple digit backlog. That’s after aggressive pruning of mailing lists and so on. Nearly all of those emails mention me in a “to:” or “cc:” line and request a response. Some observations: – roughly 40% of those emails are from the outside world […]
2 Sept 2013
Imagining a world where remote work reigns: the ripple effects on society and cities.
1 Sept 2013
About The Blog This started out as a way to jot down thoughts on areas that seem interesting but underappreciated. Since then, this site has grown to the point where it gets millions of hits a month and I see that it's commonly cited by professors in their courses and on stackoverflow. That's flattering, but more than anything else, I…
From computers to cars, design has returned to the forefront of building great products. Building them has become less about developing features and more about designing experiences. The experience is the product and the only thing users care about. So how do you build the right thing?
31 Aug 2013
A lot of code I come across consists of relatively few, but long, methods. The code does what it is supposed to do. However, it could be improved a lot. Refactoring to use more methods can produce better structured programs … Continue reading →
30 Aug 2013
This week, we published "Why Business Intelligence Tools Need a Real-time Service Provider," looking at the emergence of real-time business intelligence too
This week, we published "Why Business Intelligence Tools Need a Real-time Service Provider," looking at the emergence of real-time business intelligence too
In Parts 1 and 2, we saw how the Card Wall can be used as a Scrum Taskboard and for Feature Tracking.
29 Aug 2013
Business intelligence has evolved dramatically as a system over time. As a result of this evolution, along with the exponential development of real-time tec
Business intelligence has evolved dramatically as a system over time. As a result of this evolution, along with the exponential development of real-time tec
As part of our internal BV I/O conference we’ve previously profiled on the blog, we had Adrian Cockroft, Cloud Architect at Netflix, come give us an overview of a lot of Netflix’s architecture as well as information on their multitude of open source projects and the ways Netflix is engaging the community to contribute. He […]
I went to a conference and heard “We’re making a significant shift towards more fact-based decision making. And I was kind of like, what do people usually use? Horoscopes?” There’s now a big drive to be more data-analytical.
27 Aug 2013
Create a Backbone model or collection and have them synchronize with every other client instance of those models or collections in real time.
Create a Backbone model or collection and have them synchronize with every other client instance of those models or collections in real time.
Over the years many people have asked me the same question: I’m starting this new project, what technology do you think I should use? Categories = [] +++ Update: Speaking of HN, here is the thread for this post
An important technique for reducing the risk of deployments is known as Blue-Green Deployments. If we call the current live production environment “blue”, the technique consists of bringing up a parallel “green” environment with the new version of the software and once everything is tested and ready to go live, you simply switch all user traffic to the “green” environment,…
26 Aug 2013
Earlier this year I wrote a small harness to compare the relative performance of Go 1.0 and the then just released Go 1.1. You can read the posts about the Go 1.1 performance improvements: amd64, 386 and arm. As the Go 1.2 cycle is entering feature freeze next week, I’ve taken the opportunity to create a […]
23 Aug 2013
In this blog post, we highlight four awesome smart home automation companies and solutions that use real-time technology.
In this blog post, we highlight four awesome smart home automation companies and solutions that use real-time technology.
Hi, my name is Ralph Pina, I am a Summer ’13 intern and UT-Austin Computer Science student. During this summer I had the privilege of working with another intern, Devin Carr, on Bazaarvoice’s .NET SDK for Windows Phone 8 and Windows 8 Store apps. Our goal was to provide convenient access to our Conversations API […]
22 Aug 2013
During the 1950’s the famous mathematician Paul Erdős and Alfred Rényi put forth the concept of a random graph and in the subsequent years of study transformed the world of combinatorics. The random graph is the perfect example of a good mathematical definition: it’s simple, has surprisingly intricate structure, and yields many applications. In this post we’ll explore basic facts…
21 Aug 2013
A couple friends have recently had security scares with their Gmail account where they were worried that their accounts might have been hacked. I was emailing one of them about how to make sure that your account is safe, and I realized it might be handy to post this on my blog as well. Here’s […]
I have read a couple of blog posts about LinkedIn recently. “Is LinkedIn Cheating Employers and Job Seekers Alike?” is criticizing LinkedIn for charging job seekers to appear “at the top of the list” when applying for a job. “LinkedIn … Continue reading →
The Bazaarvoice Mobile Team is happy to announce our newest mobile SDK for Windows Phone 8. It is a .NET SDK that supports Windows Phone 8 as well as Windows 8 Store apps. This will add to our list of current open-source mobile SDKs for iOS, Android and Appcelerator Titanium. The SDK will allow developers […]
19 Aug 2013
I’ve been traveling a bit over the past couple of weeks, so I haven’t had much of a chance to keep up on blogging. One consequence is that I completely missed my chance to say something about, well, anything that happened at BlackHat or Def Con. Which is too bad, since a surprising amount of … Continue reading Is the…
18 Aug 2013
Machine learning is broadly split into two camps, statistical learning and non-statistical learning. The latter we’ve started to get a good picture of on this blog; we approached Perceptrons, decision trees, and neural networks from a non-statistical perspective. And generally “statistical” learning is just that, a perspective. Data is phrased in terms of independent and dependent variables, and statistical techniques…
Recently I've fallen in love with the IPython Notebook. It's the Python REPL on steroids and I've probably just scratched the surface of what it can actually do. This will be a short post because long posts make me feel pain when I think about blogging more again. This is also really more about setting […]
17 Aug 2013
I just answered a Quora question about what, if any, are the differences in the algorithms that are behind recommendations for music and movies. Of course, every media type is different. For instance, there’s fundamental reasons why latent factor models works really well for music and movies, as opposed to location recommendations where I suspect graph based models are more…
16 Aug 2013
The days of static web analytics and metrics are dwindling. In an era where trends move at the speed of light and turn on a dime, you need to have access to
The days of static web analytics and metrics are dwindling. In an era where trends move at the speed of light and turn on a dime, you need to have access to
15 Aug 2013
We finally took the plunge and invested some 1200 Euro into buying a good coffee machine. Wow, these latte macchiatos are truly amazing! Worth every penny. Looking for a job with great coffee? Join us!
Here at Thoughtworks, we are dedicated to teaching and learning. We recently conducted an internal workshop on design thinking and customer discovery for a group of our junior consultants. The workshop began with this assignment: "Go out into the world and find a problem. When you come back, we'll try to solve it." It was interesting to see the problems…
14 Aug 2013
The Bazaarvoice Platform Infrastructure Team recently open sourced project Lassie. Lassie is a Java library that can manipulate the new DataDog screenboards. The Lassie library can create, get, update, and delete the DataDog screenboards via the REST API. We use DataDog across various teams to collect metrics at both a system-wide and application level to give […]
13 Aug 2013
This tutorial shows you how to use the PubNub geolocation API to build real-time geolocation and mapping applications.
This tutorial shows you how to use the PubNub geolocation API to build real-time geolocation and mapping applications.
Yesterday I sped up our unit/integration test runs from 16 minutes to 3 minutes. I thought I'd share the techniques I used during this process. We had a hunch that an un-mocked network call was taking 3 seconds to time out. I patched this call throughout the test code base. It turns out this did […]
Hadoop is often positioned as the one framework your business needs to solve nearly all your problems. Mention “Big Data” or “Analytics” and pat comes the reply: Hadoop! Hadoop, however, was purpose-built for a clear set of problems; for some it is, at best, a poor fit and others, even worse, a mistake. While data transformation (or, broadly, ETL operations)…
12 Aug 2013
We’ll soon be giving our Developer Portal some love in the way of functionality and style updates. To facilitate this, we’ll be taking the portal offline for approximately 6 hours on Thursday, August 15th; the estimated times are listed in a few timezones below: Timezone Start date/time End date/time UTC Thursday, August 15, 2:00 AM […]
People have a lot of confusion about Javascript context mechanism. I don’t think it’s confusing at all, it’s just that it’s different when compared with other languages we generally use.
Andy Sloane decided to call my 2D visualization and raise it to 3D. (Looks a little weird in the iframe but check out the link). It’s based on a LDA model with 200 topics, so the artists tend to stick to clusters where each cluster is a topic. The embedding also uses t-SNE but in three dimensions (obviously).
A common problem in Android development is that you need to jump off the main UI thread to retrieve data from an IO-based source. At…
Agile analytics is all about failing fast. In a scientific context, this means stating hypotheses and seeking to disprove them using quantitative analysis of real data in rapid cycles. The end result is actionable insight and maximized value to stakeholders. This article is the second in a series where we paint a picture of a Thoughtworks analytics engagement. We'll focus…
11 Aug 2013
I received the message “Segmentation fault” while running an apt-get install. My syslog contained the following lines: Aug 11 11:34:19 srv kernel: [65729.407484] check-new-relea[12700]: segfault at 7f2dfd94746c ip 00007f2dfc0becd8 sp 00007fffd0671d20 error 4 in libapt-pkg.so.4.12.0[7f2dfc069000+11c000] Aug 11 11:35:52 srv kernel: [65822.603384] apt-get[12820]: segfault at 7f7d256e346c ip 00007f7d24252cd8 sp 00007fffdbb89140 error 4 in libapt-pkg.so.4.12.0[7f7d241fd000+11c000] […] The post Fixing
I’m at KDD in Chicago for a few days. We have a Spotify booth tomorrow, and I wanted to put together some cool graphics to show. I’ve been thinking about doing a 2D embedding of the top artists forever since I read about t-SNE and other papers so this was a perfect opportunity to spend some time on it. So…
10 Aug 2013
Here are the instructions for letting your home server send e-mails with help of your Uberspace account. This small guide is based on Ubuntu 13.04. I assume your Uberspace username is $USUSER and your Uberspace host is $USHOST. Setup an additional mail address See http://uberspace.de/dokuwiki/start:mail ssh $USUSER@$USHOST.uberspace.de vadduser local-server # […] The post Use your Uberspace server as relay host…
9 Aug 2013
I’ve turned into a lazy bastard and I’m just posting presentations on this blog, but here’s one from Rohan Singh at Spotify talking about the backend infrastructure of the Discover page.
The lineup for BaRuCo 2013 looks amazing, with speakers such as Aaron Patterson, Katrina Owen, Sandi Metz, and Ruby’s inventor Yukihiro…
Big Data Analytics must focus on insight and action. During my recent talk at TWLive13 Europe, I focused on the primary risks in applying traditional BI approaches to Big Data projects instead of focusing on the business value. I also discussed recent client success stories, such as helping a language immersion program find out why customers weren't activating their accounts,…
A behind-the-scenes look at the making of the Proofessor app. (This links out to viget.com)
8 Aug 2013
Every year at Bazaarvoice we bring on a new class of Summer interns and put them to work creating innovative (and educational) projects. At the beginning of the Summer interns choose from a list of projects and teams that interest them. From there they are embedded in a team where they spend the rest of […]
Continuous Integration has been around in some shape or form for over 10 years now. Back in 2001, with CruiseControl as the only tooling and Selenium still a few years away, it didn't usually involve much more than compiling the application, running JUnit tests and finally building a jar if the tests finished successfully.
6 Aug 2013
Thanks to Little Bird Electronics I just picked up the recently released Cubieboard 2. For less than 90 bucks Australian you get the case, 4Gb of onboard NAND flash, a USB to serial adapter, USB to power adapter (althought you should use a real wall wart), and an adapter for the onboard SATA port which […]
5 Aug 2013
In Part 1 of this post, we looked at how problem interviews can be a useful technique to understand the problem you’re trying to solve and whether or not it’s worth solving. In this second part, we’ll look at where to go from there: exploring and validating valuable solutions for your customer. Again, I’ll be using the example of how…
We’ve heard them both before. They’re givens in the tech world: Understand your customer’s problem Get early and continuous feedback Sounds easy enough, but even seasoned software teams know both are much easier said than done, even with our growing awareness of the “build-measure-learn” methods promoted by lean-minded practitioners.
"Big Data" has leapt rapidly into one of the most hyped terms in our industry, yet the hype should not blind people to the fact that this is a genuinely important shift about the role of data in the world. The amount, speed, and value of data sources is rapidly increasing. Note: The following is an excerpt from Martin Fowler's…
3 Aug 2013
I was just at the NYC Predictive Analytics meetup talking about how we build machine learning algorithms using Hadoop to power music recommendations. Great meetup, where we had two speakers, me and Blake Shaw from Foursquare. Blake talked about how they use machine learning at Foursquare, using Hadoop (and Luigi), and he uploaded his slides here! Here’s the full video…
2 Aug 2013
For June 2013, my 30 day challenge was to record a second of video every day. I was inspired by Cesar Kuriyama’s wonderful TED talk about how he records a second of video every day. There’s a couple things Cesar said in his talk that really resonated with me: – “[A]s the days and weeks […]
The retail world was abuzz this week with the news that Hudson's Bay Company is acquiring Saks Fifth Avenue. No surprise really; it was common knowledge that Saks was shopping around for a buyer with rumors in previous months that Nieman Marcus would make a great suitor. I imagine the reaction from most was almost a sense of relief that…
1 Aug 2013
The WebRTC data channel allows you to establish a peer to peer connection and send data between two browsers, no backend required.
The WebRTC data channel allows you to establish a peer to peer connection and send data between two browsers, no backend required.
In Part 1 of our blog series on Monitoring the Build System, we walked through the challenges we faced and the ways we resolved them. In this blog, I'll discuss further details regarding our build system and the tools that we used.
Agile analytics is all about failing fast. In a scientific context, this means stating hypotheses and seeking to disprove them using quantitative analysis of real data in rapid cycles. The end result is actionable insight and maximized value to stakeholders. This article is the first in a series where we paint a picture of a Thoughtworks analytics engagement. We'll focus…
31 Jul 2013
What do you get when you lock 100+ engineers, product managers, designers and other techies in a building for 2 days and ask them to come up with new and creative ways to “unlock the power of our data”? Well, I could tell you, but then I would have to… yeah that’s top secret awesome […]
Back in February, I gave a presentation on Discourse and client side MVC at TechTalksTO. It wasn’t recorded, but I’ve taken the liberty of creating a video version of the presentation with an audio track. While the presentation is about Browser Applications, I take a large detour in the beginning to talk about Discourse and Forum software in general. Enjoy!
30 Jul 2013
Demystifying GPG encryption: A straightforward guide to the process.
How to build a real-time, iOS group messaging chat app with Objective-C with presence user detection
How to build a real-time, iOS group messaging chat app with Objective-C with presence user detection
29 Jul 2013
28 Jul 2013
You know it: an old project gets reactivated because your customer needs a new feature or has found bug. Meanwhile, the responsible developers have been reassigned to new projects and have no time to finish the task. You are currently not at a 100 percent workload so you get the […] The post DevOps: Stop coding and get your stuff…
I thought this article about the company culture at HubSpot is kind of funny. “HubSpot’s Awesome Presentation Shows how to Create a 21st Century Culture”. Just FYI: You’re not different. You’re a bunch of white hipsters aged 25-30 dressed up in the same theme. That’s not being different. On a more serious note, this represents one of the most challenging…
27 Jul 2013
I was in Portland, OR for a few days hanging out at OSCON. Was fun. I also talked a bit about Luigi: Next week I’m presenting at the NYC Predictive Analytics meetup together with Blake Shaw from Foursquare. The topic is ML + Hadoop. Will be fun!
26 Jul 2013
As part of our series on cycle time, we’ve covered what cycle time is, why it matters, and how you can use it to know if you're improving. In this video, you will see how Mingle + Cycle Time Analytics enables you to easily identify outliers and trends in your team's cycle time as well as spot bottlenecks in your…
25 Jul 2013
24 Jul 2013
Sometimes you have to maximize some function $$ f(w_1, w_2, ldots, w_n) $$ where $$ w_1 + w_2 + ldots + w_n = 1 $$ and $$ 0 le w_i le 1 $$ . Usually, $$ f $$ is concave and differentiable, so there’s one unique global maximum and you can solve it by applying gradient ascent. The presence of…
23 Jul 2013
For May 2013 I decided to try making a Chromebook Pixel my primary laptop. So how did it go? Well, the short version is that I’m still a happy Pixel user, almost three months after my one month challenge started. Previously, I was using a Thinkpad 420s running Goobuntu. In fact, I’ve been using Thinkpads […]
PubShare is an open source demo and tutorial showing you how to build WebRTC filesharing to share files entirely in a web browser with WebRTC.
PubShare is an open source demo and tutorial showing you how to build WebRTC filesharing to share files entirely in a web browser with WebRTC.
Problem: Prove that for vectors $ v, w$ in an inner product space, the inequality $$\displaystyle |\left \langle v, w \right \rangle | \leq \| v \| \| w \|$$ Solution: There is an elementary proof of the Cauchy-Schwarz inequality (see the Wikipedia article), and this proof is essentially the same. What makes this proof stand out is its insightful…