~/devreads

26 Mar 2014

David Peter Simon 1 min read

Kanban walls, status reports, risk logs … with so many project management tools, it's easy to fall into the complacent feeling that a project is staying on track. But keeping a project on-track in terms of enhanced user experience goes beyond just hitting that next release deadline: it’s also about adding value to the business and building features that matter…

25 Mar 2014

Sara Dornsife 1 min read

AWS Summit SF is coming up on Wed March 26th at Moscone South. We are thrilled to be sponsoring the Developer Lounge. Heroku engineers and staff will be available throughout the day to answer your questions about Heroku; developing Ruby, Python, and Node apps on Heroku; Heroku Postgres; and the architecture of apps using both […] The post Heroku at…

news

24 Mar 2014

Dave Cheney 4 min read

Introduction This post explores the properties of my favourite Go data type, the empty struct. The empty struct is a struct type that has no fields. Here are a few examples in named and anonymous forms type Q struct{} var q struct{} So, if an empty struct contains no fields, contains no data, what use […]

goprogrammingempty structstruct

lukaseder 1 min read

When doing reporting or statistics with SQL, you better know your window functions. There are many of them, and few SQL developers know about them. CUME_DIST() is one such function. We’ve recently re-discovered it on Stack Overflow. The following query yields two times the same result for fraction1 and fraction2: The above query then yields: … Continue reading CUME_DIST(), a…

sqlcume disthypothetical set functionsjavajooq

kevin 3 min read

"Build software like a tank." I am not sure where I read this, but I think about it a lot, especially when writing HTTP clients. Tanks are incredible machines - they are designed to move rapidly and protect their inhabitants in any kind of terrain, against enemy gunfire, or worse. HTTP clients often run in […]

codedesign

23 Mar 2014

6 min read

Editing binaries is a trick that comes in handy a few times a year. You don't often need to, but when you do, there's no alternative. When I mention patching binaries, I get one of two reactions: complete shock or no reaction at all. As far as I can tell, this is because most people have one of these two…

22 Mar 2014

Dave Cheney 1 min read

It has been roughly six months since I wrote about the problems I saw with package management in Go. In the intervening months there has been lots of discussion; the issue continues to be one of the two most continually and hotly debated on the golang-nuts and go-pm mailing lists. No prizes for guessing what […]

goprogramminggo-pmpackage managementvendoring

Craig Kerstiens 2 min read

Anytime a new language comes out it’s fun to immediately download it and give it a try. Yesterday Facebook announced Hack, a programming language they developed for HHVM which interoperates seamlessly with PHP. Facebook itself is already running on Hack, and it looks to deliver some exciting improvements from its PHP influence, we thought we’d […] The post Hacking Hack,…

news

1 min read

So Luigi, our open sourced workflow engine in Python, just recently passed 1,000 stars on Github, then shortly after passed mrjob as (I think) the most popular Python package to do Hadoop stuff. This is exciting! A fun anecdote from last week: we accidentally deleted roughly 10TB of data on HDFS, and the output of 1,000s of jobs. This could…

1 min read

In case you missed it, we just acquired a company called Echo Nest in Boston. These people have been obsessed with understanding music for the past 8 years since it was founded by Brian Whitman and Tristan Jehan out of MIT Medialab. We think this is such a great fit in a lot of ways. In particular, they have focused…

21 Mar 2014

lukaseder 1 min read

At Data Geekery, we love Java. And as we’re really into jOOQ’s fluent API and query DSL, we’re absolutely thrilled about what Java 8 will bring to our ecosystem. For our Java 8 series, we’re honoured to host a very relevant guest post by Dr. Ming-Yee Iu. Dr. Ming-Yee Iu completed a PhD on Database … Continue reading Java 8…

javajava 8sqldatabase abstractiondatabase api

20 Mar 2014

Amber Houle 1 min read

What makes Thoughtworks so awesome? Thoughtworks is MORE THAN JUST A TECH COMPANY. Thoughtworkers truly do advocate passionately for SOCIAL and ECONOMIC JUSTICE.

19 Mar 2014

Matthew Green 10 min read

No matter how much cryptographers accomplish, we’re always building on a questionable foundation. (illustration: Marc S. Rousseau) Last week, Edward Snowden spoke to a packed crowd at SXSW about the many problems (and limited solutions) facing those of us who want to keep our communications private. Snowden said a number of things — including a … Continue reading How do…

rngs

lukaseder 1 min read

Leland Richardson, Founder of Tech.Pro has recently published a very interesting article about BQL, his visions of a better query language (than SQL). The deciding feat of his new language proposal is the fact that it is really a superset of SQL itself. SQL is a very rich and expressive language to query relational databases. … Continue reading A Better…

sqlbetter query languagebqlleland richardsontech.pro

1 min read

So here we are. We’ve studied the general properties of elliptic curves, written a program for elliptic curve arithmetic over the rational numbers, and taken a long detour to get some familiarity with finite fields (the mathematical background and a program that implements arbitrary finite field arithmetic). And now we want to get back on track and hook our elliptic…

Dave Cheney 3 min read

Most new Go programmers quickly grasp the idea of a channel as a queue of values and are comfortable with the notion that channel operations may block when full or empty. This post explores four of the less common properties of channels: A send to a nil channel blocks forever A receive from a nil […]

goprogrammingchannels

Adam Monago 1 min read

When you hear open source software, what do you think of? Software developers hunched over keyboards, fueled by sugar and caffeine, or a recent request by your IT department to try new “free” software? It’s all of those of things, and much, much more.

18 Mar 2014

Schakko 1 min read

I am currently playing around with ASP.NET and its Entity Framework. At some point I wanted to execute all my migrations against a new local SQL Express database. After I had dropped the database in SQL Management Studio, the Update-Database command of the Entity Framework failed with the error “Database ‘$path.mdf’ […] The post MSSQL: Database * already exists. Choose…

databases

17 Mar 2014

lukaseder 1 min read

There are a tremendous amount of SQL APIs natively written in Scala. Manuel Bernhardt has summarised a nice collection in his a post. Another collection of Scala SQL APIs can be seen in this Stack Overflow question. One API that we want to focus on in particular is ScalikeJDBC (licensed ASL 2.0), which has recently … Continue reading A SQL…

scalasqldomain specific languagedslinternal dsl

1 min read

Two years ago, Erik Demaine and three other researchers published a fun paper to the arXiv proving that most incarnations of classic nintendo games are NP-hard. This includes almost every Super Mario Brothers, Donkey Kong, and Pokemon title. Back then I wrote a blog post summarizing the technical aspects of their work, and even gave a talk on it to…

Anupam Kundu 1 min read

Product/Portfolio planning is a key activity for the Agile Product Manager, which usually consists of planning and management of existing product sets, as well as defining new products for the portfolio. This kind of product/portfolio planning needs the product manager to develop a roadmap in collaboration with her stakeholders that consists of new upcoming products and also updates to existing…

16 Mar 2014

Dave Cheney 2 min read

This blog post was originally a comment on a Google Plus page, but apparently one cannot create a href to a comment so it was suggested I rewrite it as a blog post. Go pointers, like C pointers, are values that, uh, point to other values. This is a tremendously important concept and shouldn’t be […]

goprogrammingpointers

15 Mar 2014

Luciano Mammino 9 min read

This article shows how to build a simple command line application using the Symfony Console component and Pimple dependency injection container. It provides a step-by-step guide on structuring the code, defining services, configuring parameters and wiring everything together to create a executable console app.

phpsymfonyconsolepimple

14 Mar 2014

lukaseder 1 min read

At Data Geekery, we love Java. And as we’re really into jOOQ’s fluent API and query DSL, we’re absolutely thrilled about what Java 8 will bring to our ecosystem. We have blogged a couple of times about some nice Java 8 goodies, and now we feel it’s time to start a new blog series, the… … Continue reading Java 8…

javajava 8concurrencyexecutorserviceforkjoin

Lindy Stephens 1 min read

The Day We Fight Back on 11 February 2014, provided a great opportunity for Australians (and people around the world) to to say no to mass surveillance. Edward Snowden’s revelations have exposed the activities of not only the US National Security Agency but also its security partners around the world. As one of the Five Eyes, Australia participates as a…

Carolina Vieira 1 min read

1 Billion Rising is a global movement that highlights a common and daily problem: violence against women. Its message: 1 in 3 women are or will be raped in their lifetime. This number is too big to ignore. In 2013, Thoughtworks joined ​​the first edition of 1 Billion Rising. In 2014 we continued this movement and our Recife, Brazil office…

13 Mar 2014

1 min read

Back when I was first exposed to programming language design, I decided it would be really cool if there were a language that let you define your own number types and then do all your programming within those number types. And since I get excited about math, I think of really exotic number types (Boolean rings, Gaussian integers, Octonions, oh…

Jenny Wong 1 min read

In what situations should a template be used for writing stories? When would the lack of templates cause issues? In this blog, I wanted to put out the case both for and against creating and using a story template. In particular, stressing the importance of creating a balanced view. Feel free to join in and add your own.

12 Mar 2014

lukaseder 1 min read

Patterns 34:29 As Turing descended from Mount Compute – with the two iPads of the testimony in his hands as he descended the mountain – he did not realize that the skin of his blog shone as a result of his Compiling the Code. Patterns 35:1 Turing assembled the entire Geek community and said to … Continue reading The 10…

funjavabest practicesprogrammingthe 10 commandments

lukaseder 1 min read

Subscribe to the newsletter here Tweet of the Day Our customers, users, and followers are sharing their love for jOOQ to the world. Here are: Dominik Dorn who finds jOOQ awesome. As simple as that! #JOOQ is awesome! — Dominik Dorn (@domdorn) February 14, 2014 Mariusz Nosiński who cannot believe he hasn’t discovered jOOQ before. How's … Continue reading jOOQ…

jooq-newsletterdominik dornjava 8joojooq

Thoughtworks 1 min read

A group of us got together at the North American Away Day in 2011 to record a video for the "It Gets Better" project. This video is the result.

11 Mar 2014

Zeke Sikelianos 6 min read

This post is from 2014 – check out the update! For most of the nearly twenty years since its inception, JavaScript lacked many of the niceties that made other programming languages like Python and Ruby so attractive: command-line interfaces, a REPL, a package manager, and an organized open-source community. Thanks in part to Node.js and […] The post 10 Habits…

newsdeveloper toolsjavascriptnode.js

Rafael Garcia 1 min read

As you may have heard, Testflight is pulling down its support to Android on March 21. But don't worry, we will show you some alternatives so you can choose the tool that best suits your needs. First, we will define the criteria for the tools:

10 Mar 2014

Natália Silveira 1 min read

We are passionate about creating an IT environment that is a more welcoming place for minorities and underrepresented groups. One way we do that is by working hard to bring more women into technology. You know what happens when we succeed? A revolution!

9 Mar 2014

4 min read

Last week, Quartz published an article titled “There is no gender gap in tech salaries”. That resulted in linkbait copycat posts all over the internet, from obscure livejournals to Smithsonian.com. The claims are awfully strong, considering that the main study cited only looked at people who graduated with a B.S. exactly one year ago, not to mention the fact that…

8 Mar 2014

Dave Cheney 1 min read

In addition to developing avr11, a software simulation of a PDP-11/40, I also wrote a Go version of the simulator. I recently had an opportunity to talk about the Go based version at the Sydney and Melbourne Go meetups. The link to the slides are Sydney Melbourne The code itself is not really ready for […]

goprogramming

Sara Dornsife 1 min read

SxSW Interactive starts today. The crowds have arrived, the sessions have begun, and the ExactTarget Orange Oasis is open. Please stop by and say hello at the Heroku purple pavilion there, or schedule a private meeting or demo. Check out the SXSW Fitbit Leaderboard from ExactTarget while you are here. This Heroku app logs and […] The post SxSW Interactive…

news

1 min read

I’m excited to announce that SoundCloud is sponsoring the development of CocoaPods through a Travis Foundation grant. CocoaPods is an open…

7 Mar 2014

lukaseder 1 min read

At Data Geekery, we love Java. And as we’re really into jOOQ’s fluent API and query DSL, we’re absolutely thrilled about what Java 8 will bring to our ecosystem. We have blogged a couple of times about some nice Java 8 goodies, and now we feel it’s time to start a new blog series, the… … Continue reading Java 8…

javajava 8jdbcjoo-lambdajoo

Prateek Kumar Baheti 1 min read

Mobile applications are increasingly being developed to run on multiple operating systems. At the minimum on both iOS and Android, as they have the bulk of the mobile/tablet market share. Thus being able to test your mobile applications on both iOS and Android is a must, no arguments there. However, having to maintain multiple test implementations, switching the driver selection…

6 Mar 2014

0xADADA 2 min read

Lets Start With What the USD is backed by The USD is no longer backed by gold1, but by a promise that the US Government will pay its debt (in the form of payment the interest on (and sometime redeem) government securities when due). If these payments are not made to the debt holders (Corporations, China, treasury-bond holders) then a…

notesbitcoincryptocurrencieseconomics

Rodney Urquhart 1 min read

Welcome to Part 2 of our ongoing series where we interview testing luminaries to provide insight into the current and future states of the testing industry. Lorinda Brandon (@lindybrandon) has more than 30 years of experience in quality assurance working for companies such as SmartBear, RR Donnelley, EMC, Kayak Software, Exit41 and Intuit, among others.

5 Mar 2014

5 min read

In 1983, at the University of Wisconsin, Dina Bitton, David DeWitt, and Carolyn Turbyfill created a database benchmarking framework. Some of their results included (lower is better): Join without indices table {border-collapse:collapse;margin:0px auto;}table,th,td {border: 1px solid black;}td {text-align:center;} system joinAselB joinABprime joinCselAselB U-INGRES 10.2 9.6 9.4 C-INGRES 1.8 2.6 2.1 ORACLE > 300 > 300 > 300 IDMnodac > 300…

Hu Kai 1 min read

“Our role is to make IT more responsive to market requirements by blending product, marketing and IT teams together.” Nigel Dalton, Chief Information Officer, REA Group. This is the foundational principle for innovation and market performance at REA Group, a global online real estate advertising company headquartered in Melbourne, Australia.

4 Mar 2014

Jez Humble 1 min read

Thoughtworks has long been associated with continuous integration. In 2000 we began using it on a large project and Matt Foemmel wrote what we think was the first CI server to help make it easier. Other people wanted the tool and through a complicated process of idea-sharing and dragging code across the US we ended up creating CruiseControl, the first…

Shyam Kurien 1 min read

Companies that aspire to achieve competitive advantage by using data as a key asset must build their execution plan around two phases, as described by HBR bloggers Redman & Sweeney:

3 Mar 2014

lukaseder 1 min read

Many of us geeks don’t really care about users, tractions, etc. when we spam GitHub with our little toy projects. I mean, who knows if we really have the time to maintain them? Certainly, there’s almost no money in it anyway, so we might just as well give it away for free (e.g. jOOX). Nonetheless, … Continue reading An Open…

open-sourceapache software licenseasl 2.0beerwarecc-by

1 min read

This is a guest post by my colleague Adam Lelkes. The goal of this primer is to introduce an important and beautiful tool from probability theory, a model of fair betting games called martingales. In this post I will assume that the reader is familiar with the basics of probability theory. For those that need to refresh their knowledge, Jeremy’s…

1 min read

Haven’t posted anything in ages, so here’s a quick hack I threw together in Python on a Sunday night. Basically I wanted to know whether momentum strategies work well for international stock indexes. I spent a bit of time putting together a strategy that buys the stock index if the return during the previous n days was positive, otherwise doesn’t…

1 Mar 2014

lukaseder 1 min read

So, everyone is discussing the $19B Facebook / Whatsapp deal, discussing it on every media. And Zuck says it was actually a bargain. Yeah right. A bargain. Read CNN’s 10 other things Facebook could have bought with $19 billion. We at Data Geekery are more down to earth, selling actual value to our own customers. … Continue reading Modern Shareholder…

businessbubblefacebooksoftwareventure capital

28 Feb 2014

Matthew Soldo 2 min read

Visibility into your application is necessary to properly analyze and troubleshoot issues as they arise. One of the key factors to good visibility is using logs as event streams and treating them as the canonical source of what happened on an app. The challenge with using logs is to correlate events across the stack consisting […] The post HTTP Request…

news

Luciano Mammino 3 min read

The post explains how to integrate twig.js with BazingaJsTranslationBundle to handle translations consistently between PHP and JavaScript. It shows how to build a custom Twig extension to translate strings with the Bazinga Translator object and handle differences in parameter formatting.

phpsymfonyjavascripttranslationtwig

lukaseder 1 min read

At Data Geekery, we love Java. And as we’re really into jOOQ’s fluent API and query DSL, we’re absolutely thrilled about what Java 8 will bring to our ecosystem. We have blogged a couple of times about some nice Java 8 goodies, and now we feel it’s time to start a new blog series, the… … Continue reading Java 8…

javajava 8cachingconcurrenthashmapfibonacci

Sara Dornsife 1 min read

Every year tens of thousands of people descend on Austin, TX for the SxSW Conference to learn about the latest in digital technologies. This year Heroku is descending as well and we want to see you there. Orange Oasis Fri., March 7th and Sat., March 8th Brass House – 115 San Jacinto Blvd (@ 2nd […] The post Meet the…

news

27 Feb 2014

26 Feb 2014

lukaseder 1 min read

Intuition tells us that methods like these ones suffer from a distinct code smell: Why is that so? Let’s delve into this intuition. Here is an example from the JavaCompiler Javadoc: So what’s wrong here? We have a lot of very disjunctly typed parameters that are very likely to be set to null. This decreases … Continue reading How to…

javacode analysiscohesionhigh cohesionjarchitect

lukaseder 1 min read

Subscribe to the newsletter here Tweet of the Day Our followers, users and customers are shouting their love for jOOQ to the world. Here are: Ben Hood who is constantly discovering new useful features in jOOQ. @JavaOOQ Just when you when you think you need some custom hack, along comes some handy abstraction that you weren't … Continue reading jOOQ…

jooq-newsletterantoine comteben hoodbooleansddl

1 min read

So far on this blog we’ve given some introductory notes on a few kinds of algebraic structures in mathematics (most notably groups and rings, but also monoids). Fields are the next natural step in the progression. If the reader is comfortable with rings, then a field is extremely simple to describe: they’re just commutative rings with 0 and 1, where…

Matt Cutts 1 min read

In January 2014, my 30 day challenge was to limit my social media. That was a productive month. In February 2014, my 30 day challenge was to eat more slowly. I did that by counting to ten between chewing bites of my food. I tend to wolf down my food, which doesn’t give my stomach […]

30 days

25 Feb 2014

lukaseder 1 min read

Interestingly, boolean types have been introduced only late in the SQL standard, namely in SQL:1999. Even today, not all databases natively support BOOLEAN or BIT types. Most importantly, we can still wait for them in Oracle for a while. Here’s “Ask Tom”‘s point of view from 2002 on the subject: https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:6263249199595 Oracle. Why U No … Continue reading The JDBC…

javasqlbooleanboolean data typecompatibility

3 min read

Imagine this: you have forked a repo a long time ago and have since been in a happily committed relationship with the master branch, modifying files and committing from the hip. In case you have doubts about the likelihood of this scenario, we’re talking about my notwaldorf.github.com blog branch, which I forked from holman/left. All my changes are on the…

4 min read

One of the hardships about being Canadian is that most programming languages are quite simply, rude. Descriptions like ‘imperative’ and ‘declarative’ are enough to fill even the most impolite of Canadians with a vague sense of discomfort. Fear no more! Ruby is the sort of language that addresses all these concerns, and adds a familiar, maple-syrupy feel to your code.…

1 min read

There’s a lot of buzz surrounding Low Energy Bluetooth Beacons (also known as iBeacons, but we’ll get to that later). They’re the first mainstream technology to provide indoor location information to phones, and they’ve opened up an explosion of possible applications. But don’t get too excited.

24 Feb 2014

lukaseder 1 min read

Java 7 has eased some pain in the area of exception handling when the new try-with-resources and multi-catch syntaxes were introduced. The latter is very interesting from a syntax perspective because it is the only place in Java where formal union types are allowed, similar to what Ceylon offers. Remember, a union type A | … Continue reading Feature Request…

javaexceptionsjava languagejlssyntax

1 min read

Last time we saw a geometric version of the algorithm to add points on elliptic curves. We went quite deep into the formal setting for it (projective space $ \mathbb{P}^2$), and we spent a lot of time talking about the right way to define the “zero” object in our elliptic curve so that our issues with vertical lines would disappear.…

Jie (Jeff) Xiong 1 min read

In 2012, the book "Lean Startup" suddenly became very popular. Established on the principles of lean thinking, the book advocates a lean approach to starting a business, so that entrepreneurship is a gradual and controllable thing. The essence of “Lean Startup” is a "building => measure => learn" cycle, i.e. take a small step forward and get fast feedback.

22 Feb 2014

Surabhi Vashist 1 min read

Surabhi Vashist is a Business Analyst at Thoughtworks and currently working on a Social Impact Program project with Calcutta Kids. In this blog, she shares her experiences of visits to client site that are not only different but also eye-opening in a way. She calls out the challenges faced by Calcutta Kids - a non-governmental organization (NGO) and its group…

21 Feb 2014

lukaseder 1 min read

At Data Geekery, we love Java. And as we’re really into jOOQ’s fluent API and query DSL, we’re absolutely thrilled about what Java 8 will bring to our ecosystem. We have blogged a couple of times about some nice Java 8 goodies, and now we feel it’s time to start a new blog series, the… … Continue reading Java 8…

javajava 8lambda expressionsscopetransactions

1 min read

I’m pleased to announce that another paper of mine is finished. This one just got accepted to MFCS 2014, which is being held in Budapest this year (this whole research thing is exciting!). This is joint work with my advisor, Lev Reyzin. As with my first paper, I’d like to explain things here on my blog a bit more informally…

Matthew Green 15 min read

I have a thing for over-the-top cryptography headlines — mostly because I enjoy watching steam come out of researchers’ ears when their work gets totally misrepresented. And although I’ve seen quite a few good ones, last week WIRED managed a doozy. The headline in question, Cryptography Breakthrough Could Make Software Unhackable, managed to accomplish something that few … Continue reading…

fundamentals

Darius Kumana and Jon Dickinson 1 min read

The agile software development movement has made huge improvements in reliability when delivering software, increasing return on investment, and reducing the risk of building software. However, in a world of iPhones and Google apps, this may no longer be enough.

20 Feb 2014

5 min read

The site is a single-page application that displays a multitude of users’ images. At SoundCloud, we use a technique to make the loading of…

19 Feb 2014

lukaseder 1 min read

Recently, we’ve added support for the MS Access database in jOOQ 3.3. This may well have been our hardest integration so far. The MS Access database has its ways, and many of them, too. But luckily, jOOQ’s internal SQL transformation abilities are already very advanced, as we’ve shown previously in a blog post about the … Continue reading An MS…

jooq-developmentsqljooqms accessmulti-record insert

Henrik Warne 2 min read

When I first heard about unit testing using a framework like JUnit, I thought it was such a simple and powerful concept. Instead of ad hoc testing, you save your tests, and they can be run as often as you … Continue reading →

testingunit testing

Alexandra Price 1 min read

It was the holiday party season and we wanted to create an interesting application to show off our freshly delivered developer preview of Estimote Beacons – low power, low cost bluetooth sensors. What better than a scavenger hunt app in San Francisco to take advantage of the micro-location based nature of the beacons, while testing it out on other Thoughtworkers?…

18 Feb 2014

lukaseder 1 min read

Sometimes you have to hack. You just have to. Don’t listen to XKCD. You don’t always regret hacking. On our blog, we’ve shown a couple of hacks before: Throw checked exceptions like runtime exceptions in Java A dirt-ugly hack to modify private final fields in Java But we’ve just been scratching the surface. Our friends at ZeroTurnaround … Continue reading…

javajdkjvmrebellabsthe unsafe

3 min read

The internet needs more cats. DNS servers are the authority on all things internet. Therefore, the best DNS server is the one that resolves everything to cats. Guess what kind of DNS server this is (Hint: it’s the cat kind). Making it go First, get the code, and the npm packages you need (the instructions are with the code). To…