In this follow-up to Part 1, Chad Wathington, Managing Director, Thoughtworks Studios, examines a few examples of experience-focused Product Management with suggestions to help product managers cultivate that focus.
23 Jul 2013
22 Jul 2013
Yesterday I read the article written by Christoph and thought about updating my current installed CyanogenMod 9 with the current version. Here are the instructions (assuming, you have already CM installed): wget http://108.166.171.36/goodata/50d9ef8310a7cba36225d98a0a37ea26/51ec1e7a/devs/milaq/tenderloin/cm10.1/cm-10.1-20130721-UNOFFICIAL-tenderloin.zip wget http://108.166.171.36/goodata/5dc90f8102df2b869507ff02a7642a07/51ec1e4a/gapps/gapps-jb-20130301-signed.zip Restart the HP TouchPad and sele
Want to make great products and services for your customers? You need to integrate design into your culture.
21 Jul 2013
Upgrade your server without dropping connections: A guide to zero downtime upgrades.
20 Jul 2013
About a year ago I got into a discussion on Twitter with a couple of other cryptographers. The subject: why do so many software developers use lazy cryptography? The instigation for this discussion was actually a piece of malware – a popular, widespread botnet that forgot to use digital signatures to sign its control messages. Though … Continue reading TweetNaCl…
17 Jul 2013
I realized that I didn’t mention this widely: my current 30 day challenge (July 2013) is not to read any news or social media. So no Twitter, Google News, Techmeme, Google+, Hacker News, Reddit, Imgur, etc. So if you’re wondering why I haven’t replied to a question, that’s the reason. I might still share a […]
16 Jul 2013
Continuous improvement and product flow are popular themes on the Mingle team. Both internally as we reflect on our own development practices, and externally as we build an agile project management tool that helps teams collaborate and improve together. To help us better understand our flow and gain more insight into ways we can improve, we’ve started to incorporate cycle…
15 Jul 2013
14 Jul 2013
Last time we worked through some basic examples of universal properties, specifically singling out quotients, products, and coproducts. There are many many more universal properties that we will mention as we encounter them, but there is one crucial topic in category theory that we have only hinted at: functoriality. As we’ve repeatedly stressed, the meat of category theory is in…
11 Jul 2013
It has not been long since the holy war between SQL and NoSQL database technologies faded, and now we see a new contender, NewSQL, rising. What is it? Will it cause another round of the war? Recently at Bazaarvoice we hosted an informational session on VoltDB, one of the better known NewSQL solutions, with several engineers and […]
10 Jul 2013
How to build a real-time photo sharing app with PubNub and the Cloudinary API
How to build a real-time photo sharing app with PubNub and the Cloudinary API
9 Jul 2013
The first Music Hack Day — organized by our very own Dave Haynes — was held in July 2009 in London, UK. Since then there have been over 3…
8 Jul 2013
This post is a compliment to one I wrote in August of last year, updating it for Go 1.1. Since last year tools such as goxc have appeared which go a beyond a simple shell wrapper to provide a complete build and distribution solution. Introduction Go provides excellent support for producing binaries for foreign platforms […]
I am part of this project where we run a pretty big CI Build system. We had been facing a few issues with it and we wanted to do some work around Build Monitoring to improve the system as a whole. The next couple of blogs (written in collaboration with Rohith Rajagopal) will talk about the problems and approaches that…
7 Jul 2013
This package has been superseded. Please read this blog post for more details. Introduction The Go runtime has built in support for several types of profiling that can be used to inspect the performance of your programs. A common way to leverage this support is via the testing package, but if you want to profile […]
Computed Properties By design, Handlebars templates don’t allow complex expressions. You are given an {{#if}} block helper, but it can only evaluate whether something is “truthy” (aka true, a non-empty string or array or other value that is not undefined or null.) For example, you can’t do something like this: {{#if (eyes.length == 1) && (horns.length == 1) && flies…
5 Jul 2013
Problem: Given a data stream of unknown size $ n$, pick an entry uniformly at random. That is, each entry has a $ 1/n$ chance of being chosen. Solution: (in Python) import random def reservoirSample(stream): for k,x in enumerate(stream, start=1): if random.random() < 1.0 / k: chosen = x return chosen Discussion: This is one of many techniques used to…
3 Jul 2013
In this video series we explore ways you can deliver faster and how cycle time can play a significant role in getting you there. In Part 1 we started with the basics - What is Cycle Time? In this part we examine why Cycle Time is important and how we can use it to fine-tune our delivery process.
It was just a few years ago that I read numerous articles predicting the inevitable death of retail stores. This doom and gloom scenario played out across most of the trade publications leaving retailers scratching their heads in wonderment and worried that if they didn't do something (they didn't know what) they would be overtaken by their cooler, lower cost,…
2 Jul 2013
This evening I rebuilt my unofficial ARM tarball distributions to Go version 1.1.1. You can find them by following the link in the main header of this page.
1 Jul 2013
At Bazaarvoice, we strongly believe that our people are our most important asset. We hire extremely smart and passionate people, let them loose on complex problems, and watch all the amazing things they create. We had another opportunity to see that innovation engine in full effect last week at our internal technical conference and 2 […]
Back in the 90s, the heart of a computer was the CPU. The faster the CPU, the better the computer was–you could do more, and the speed of the CPU directly affected your productivity. People upgraded their computers or bought new ones whenever they could to take advantage of faster CPU speeds. I remember the […]
The Go language is one of my favorite programming languages. However, sometimes doing simple things can seem a bit harder than it should. However, most of the time, the problem is just to find out how to do things the easy way. While Go’s documention isn’t bad, the real key to finding out how to do things is often to…
30 Jun 2013
This post continues a series on the testing package I started a few weeks back. You can read the previous article on writing table driven tests here. You can find the code mentioned below in the https://github.com/davecheney/fib repository. Introduction The Go testing package contains a benchmarking facility that can be used to examine the performance […]
29 Jun 2013
GenCar.co is a multiplayer version of GenCar, which uses genetic algorithms to test and improve simple racing cars on a randomly generated track
GenCar.co is a multiplayer version of GenCar, which uses genetic algorithms to test and improve simple racing cars on a randomly generated track
28 Jun 2013
We are pleased to announce a new open source contribution, a Java based JSON to JSON transformation tool named Jolt. Jolt grew out of a BV Platform API project to migrate the backend from Solr/MySql to Cassandra/ElasticSearch. As such, we were going to be doing a lot of data transformations from the new ElasticSearch JSON […]
Guest Post: Torus-Knotted Baklava at Baking And Math, a blog by my friend and colleague, Yen.
In this first of two parts, Chad Wathington, Managing Director, Thoughtworks
27 Jun 2013
This demo and tutorial shows you how to build a WebRTC file transfer application enabling you to send files entirely in a web browser with WebRTC.
This demo and tutorial shows you how to build a WebRTC file transfer application enabling you to send files entirely in a web browser with WebRTC.
26 Jun 2013
The WebRTC SDK is now available on PubNub for WebRTC signaling, voice, and video calling.
The WebRTC SDK is now available on PubNub for WebRTC signaling, voice, and video calling.
About a year ago I wrote a short post urging Apple to publish the technical details of iMessage encryption. I’d love tell you that Apple saw my influential crypto blogging and fell all over themselves to produce a spec, but, no. iMessage is the same black box it’s always been. What’s changed is that suddenly people seem to … Continue…
Some time ago, I posted here about a simple project that I’ve done in my post-graduation classes. Since I need it in other projects, and also some friends ended up using it in small projects, I decided to evolve it a little bit.
Continuing in the same spirit of shameless self-promotion, here’s some recent Luigi press: Reddit thread A Guide to Python Frameworks for Hadoop (slides from the NYC Hadoop User Group) This presentation from the Open Analytics NYC meetup about how Foursquare uses Luigi Luigi is in the middle of a pretty massive refactoring of the visualizer. David Whiting at Spotify just…
Engineers love to improve things. Refactoring and optimizations drive us. There is just a slight problem: we often do that in a vacuum. Before optimizing, we need to measure. Without a solid baseline, how can you say that the time you invested in making things better wasn’t a total waste? True refactoring is done with a solid test suite in…
People arguably spend as much time analyzing test failures as they do writing tests. This necessitates good functional test reports. A good functional test should not merely report where your test failed. It should give you all the information necessary to be able to make your analysis.
24 Jun 2013
In this video series we explore ways you can deliver faster and how cycle time can play a significant role in getting you there. Let's start from the beginning and answer: what is cycle time?
23 Jun 2013
A few days ago, I was wondering if using Go would be worth it when developing new web APIs. I obviously knew that Go would be faster than Ruby, but I wasn’t sure how much faster. I also wondering about the amount of work required to write get a full API implemented. I therefore wrote the same web API in…
22 Jun 2013
Greetings all! In the world of SaaS, wiser men than I have referred to Operations as the “Secret Sauce” that distinguishes you from your competition. As manager of one of our DevOps teams, I wanted to talk to you about how Bazaarvoice uses the cloud and how we engineer our systems for maximum reliability. You […]
It seems to be quite a long time since I’ve written a genuine "code" blog post. Time to fix that. This material may well be covered elsewhere – it’s certainly not terrifically original, and I’ve been meaning to post about it for a long time. In particular, I remember mentioning it at CodeMash in 2012. … Continue reading Array covariance:…
21 Jun 2013
This year before NDC, I wrote an article for the conference edition of "The Developer" magazine. Follow that link to find the article in all its illustrated glory (along with many other fine articles, of course) – or read on for just the text. Back when I used to post on newsgroups I would frequently … Continue reading But what…
20 Jun 2013
19 Jun 2013
Just open sourced hdfs2cass which is a Hadoop job (written in Java) to do efficient Cassandra bulkloading. The nice thing is that it queries Cassandra for its topology and uses that to partition the data so that each reducer can upload data directly to a Cassandra node. It also builds SSTables locally etc. Not an expert at Cassandra so I’ll…
Important Update (May 25, 2014): Google has started parsing and indexing Javascript. The approach of this article is to use <noscript> tags but Google will likely ignore those now. We upgraded our site to sniff Google and other popular search engines and serve our simple content that way. However, in the future it might not be a concern as Google…
18 Jun 2013
Folks at Google get cold-call emails out of the blue just like everybody else. Here’s an email that a colleague of mine got recently: I was on your website www.google.com and wanted to shoot you a quick note. I think I can make a few changes (aesthetically and/or SEO – wise) to make your site […]
In late May the Bazaarvoice team was delighted to speak again as a part of Database Month in New York City, and we were excited to speak about our recent work with Cassandra & Elastic Search. We discussed our goals for replacing the Bazaarvoice data infrastructure, as well as our hopes for the new system, […]
Our Chief Scientist Martin Fowler recently discussed the architecture of GAP Inc.'s purchase order system, SCMS PO. Read a snippet below or view the full info deck on martinfowler.com.
17 Jun 2013
Over the past week or so there’s been a huge burst of interest in encryption software. Applications like Silent Circle and RedPhone have seen a major uptick in new installs. CryptoCat alone has seen a zillion new installs, prompting several infosec researchers to nearly die of irritation. From my perspective this is a fantastic glass of lemonade, if one made…
16 Jun 2013
Problem: Determine if a number is prime, with an acceptably small error rate. Solution: (in Python) import random def decompose(n): exponentOfTwo = 0 while n % 2 == 0: n = n/2 exponentOfTwo += 1 return exponentOfTwo, n def isWitness(possibleWitness, p, exponent, remainder): possibleWitness = pow(possibleWitness, remainder, p) if possibleWitness == 1 or possibleWitness == p - 1: return False…
We had an unconference at Spotify last Thursday and I added a semi-trolling semi-serious topic about abolishing documentation. Or NoDoc, as I’m going to call this movement. This was meant to be mostly a thought experiment, but I don’t see it as complete madness. To be clear, I’m not talking about comments in the code here. I think those are…
15 Jun 2013
Recently I got together with some local developers to discuss client side MVC frameworks. We ended up discussing many of the differences between AngularJS and Ember. Discourse is an Ember application and has been since the first prototype, so I have a lot of experience with it. However, it became clear during the conversation with my peers that there was…
14 Jun 2013
Our recent "Best Card Wall" competition highlighted the varied ways in which the card wall is used for planning, estimation, visibility, tracking, decision making and reporting activities. In this series, we’ll see how Mingle's card wall can help you create many different views displaying customizable information for various purposes, levels and roles.
13 Jun 2013
It seems that every week I'm reading about another retailer who has formed an innovation lab or has acquired a startup to help them figure out innovation in the retail space. The latest round was the recent announcement that Target started its own innovation lab in San Francisco. This is in line with the trends of other big retailers such…
12 Jun 2013
Why are we mapping that value stream? As far as I can tell, the original problem that Toyota was addressing with "value stream mapping" (VSM) was to understand material and information flow in order to improve production lead-time.
11 Jun 2013
10 Jun 2013
There has been a lot of news recently on government surveillance of its citizens. The biggest two that have pervaded my news feeds are the protests in Turkey, which in particular have resulted in particular oppression of social media users, and the recent light on the US National Security Agency’s widespread “backdoor” in industry databases at Google, Verizon, Facebook, and…
We treat all our virtual servers as immutable. When we upgrade our system we create brand new servers and destroy the old ones, rather than upgrading them in-place. This is a logical extension of the phoenix server approach in which servers are regularly recreated from scratch. Our adoption of immutable servers was inspired by an anecdote that when physical servers…
9 Jun 2013
Providing 'Just Enough Design' Can Make Agile Software Delivery More Successful
Thoughtworks InsightsMany new media design, advertising and games development agencies struggle to factor in graphic and experience design effectively into their agile software development methodologies. Abstract Nowadays, it is hard to justify a large part of a project’s design budget on three months creative direction, where screens of every potential stage of an application are mocked up before development even begins.…
6 Jun 2013
5 Jun 2013
4 Jun 2013
This tutorial shows you how to build responsive UI, this this case for a chat application. We'll also show you how to make your desktop app, mobile.
This tutorial shows you how to build responsive UI, this this case for a chat application. We'll also show you how to make your desktop app, mobile.
Ever since the Mingle team started working on its new cloud offering we made a conscious effort to improve our ability to continuously deliver valuable features and enhancements to our production environment. I expected that frequent deployments, tons of automation and lots of learning about Amazon’s AWS would come with the territory - and it did. What I didn’t expect…
3 Jun 2013
I’ve been spending a little less time on my blog recently then I’d like to, but for good reason: I’ve been attending two weeks of research conferences, I’m getting ready for a summer internship in cybersecurity, and I’ve finally chosen an advisor. Visions, STOC, and CCC I’ve been taking a break from the Midwest for the last two weeks to…
Incredible. These tech whiz-kids get younger every year!
I work in a company that has an entirely MS-based network, which means, all that domain login crap and everything that comes with it: outlook, MS Communicator, proxies, monitoring and etc.
Do less to go faster. In this slideshare we list 10 pointers to help you speed up your agile adoption across your enterprise.
2 Jun 2013
I’ve been obsessed with Wikipedia for the past ten years. Occasionally I find some good articles worth sharing and that’s why I created the wikiphilia Twitter handle. Just a long stream of stuff that for one reason or another may be interesting. It’s also a bunch of friends posting links. Anyway, the tragedy is that there’s 800 tweets but only…
1 Jun 2013
Last time we defined and gave some examples of rings. Recapping, a ring is a special kind of group with an additional multiplication operation that “plays nicely” with addition. The important thing to remember is that a ring is intended to remind us arithmetic with integers (though not too much: multiplication in a ring need not be commutative). We proved…
I really enjoyed Sam Saffron's post about eliminating trivial inconveniences in his development process. This resonated with me as I tend to get really distracted by minor hiccups in the development process (page reload taking >2 seconds, switch to a new tab, etc). I took a look at my development process and found a few […]
31 May 2013
This tutorial shows you how to build a real-time stats streaming server for the purpose of multiplayer games or anything that involves statistics.
This tutorial shows you how to build a real-time stats streaming server for the purpose of multiplayer games or anything that involves statistics.
The Discovery page, the new start page in Spotify, is finally out to a fairly significant percentage of all users. Really happy since we have worked on it for the past six months. Here’s a screen shot: Some cool features Artist/album/track recommendations based on stuff you’ve listened to before New releases recommendations Concert recommendations Third party news stories There’s a…
30 May 2013
Last summer I was given an internship opportunity in the R&D department of Bazaarvoice as a software engineer. Having only finished my freshman year in college, I had no idea what to expect from a tech company of this size. I would have never guessed that on my first day I would be handed a […]
29 May 2013
This tutorial shows how to add chatroom features including user detection with presence, message persistence and multiple chatrooms.
This tutorial shows how to add chatroom features including user detection with presence, message persistence and multiple chatrooms.
27 May 2013
Sneezes, not buses: The hidden threat to your team's productivity.
26 May 2013
Trade offs As a developer you’re constantly faced with issues of choice: What library is best? What framework is best? What platform should we deploy on? Most of the time there isn’t a clear winner. The decision you make comes down to a series of trade offs. Do you want to optimize for developer happiness or performance? Do you care…
24 May 2013
Previously in this series we’ve seen the definition of a category and a bunch of examples, basic properties of morphisms, and a first look at how to represent categories as types in ML. In this post we’ll expand these ideas and introduce the notion of a universal property. We’ll see examples from mathematics and write some programs which simultaneously prove…
This tutorial walks you through building a basic chatroom layout, publish and receiving messages, and setting up jQuery mobile for simple chat.
This tutorial walks you through building a basic chatroom layout, publish and receiving messages, and setting up jQuery mobile for simple chat.
23 May 2013
We started rolling out the next generation of the Penguin webspam algorithm this afternoon (May 22, 2013), and the rollout is now complete. About 2.3% of English-US queries are affected to the degree that a regular user might notice. The change has also finished rolling out for other languages world-wide. The scope of Penguin varies […]
When I joined our employee web portal team as a quality analyst in mid-Jan, I was tasked to “automate ASAP and As Much As Possible”. Sounds familiar?
22 May 2013
Out of many roles on an Agile team - developer, tester, project manager or product manager, the role of the business analyst is probably the one whose “existence” on the team is most frequently challenged. The role of a BA is often questioned, not the quality of work, but the “perceived” value delivered for the team - by clients. Frankly…
21 May 2013
I was browsing around on the Internet and the physics geek in me started reading about Fermat’s principle. And suddenly something came back to me that I’ve been trying to suppress for many years – how I never understood why there’s anything fundamental about the principal of least time. The principle of least time states that the light will travel…
20 May 2013
Resources: Amazon, Barnes and Noble, Play Books The book’s web site (O’Reilly) – downloads, errata etc A while ago I was attending one of the Developer, Developer, Developer conference in Reading, and I heard Alex Davies give a talk about actors and async. He mentioned that he was in the process of writing a short … Continue reading Book Review:…
I have done 3 projects in a row where we did not use story points and simply counted stories. I’m a big advocate of that approach. Let me explain why. I'm an estimation geek who loves the nuances of estimation, and have used function points, use case points, COCOMO, and story points for over 10 years. Over time, I’ve become…