I couldn’t resist. I have read this question by Hugo Prudente on Stack Overflow. And I knew there had to be a better way than what the JDK has to offer. The question reads: I’m looking for a lambda to refine the data already retrieved. I have a raw resultset, if the user do not … Continue reading How to…
23 Jan 2015
22 Jan 2015
This tutorial shows you how to implement advanced user detection for an Ember.js chat app, enabling users to define their location in the chat app.
This tutorial shows you how to implement advanced user detection for an Ember.js chat app, enabling users to define their location in the chat app.
In my last post I showed what makes the Nim programming language special. Today, let’s consider Nim from another angle: What makes Nim a practical programming language? Binary Distribution Programs written in interpreted languages like Python are difficult to distribute. Either you require Python (in a specific version even) to be installed already, or you ship it with your program.…
Agile gave us a set of principles that allowed us to build projects in an iterative fashion and respond to change. The benefits of using agile practices over waterfall practices are well known and well documented. However, despite agile projects existing for years, the approach to security has remained the same as it was when waterfall was the way to…
21 Jan 2015
Subscribe to this newsletter here Tweet of the Day Today, we’re very happy to have “spied” on our users as we can now show you a whole Tweet Conversation of the Day It was initiated by Dan Woods who proposed a talk about RxJava, jOOQ and Reactive Streams at GR8Conf. https://twitter.com/danveloper/status/553370842948567040 Dan Woods then proposed … Continue reading jOOQ Newsletter:…
This tutorial shows you how to build a real-time messaging chat plugin application for the Atom.io text editor that can be applied to any other text editor.
This tutorial shows you how to build a real-time messaging chat plugin application for the Atom.io text editor that can be applied to any other text editor.
In this talk, James Kyle gives an overview and introduction to 6to5, a tool to transpile ES6 to vanilla ES5.
In this talk, James Kyle gives an overview and introduction to 6to5, a tool to transpile ES6 to vanilla ES5.
Jamie Allen, Typesafe‘s Director of Global Services published an interesting point of view on Twitter: Pivotal’s move to end support of Groovy is a stark reminder that enterprises who depend on FOSS projects should help support them. — Jamie Allen (@jamie_allen) January 20, 2015 And he’s right of course. We are constantly reminded of the … Continue reading Open Source…
All successful applications grow more complex over time, and that complexity creates challenges in development. There are two essential strategies to manage this problem: a team can keep everything together (create a monolith) or a team can divide a project into smaller pieces (create microservices). The monolith at its most extreme is a single code […] The post Why Microservices,…
Having worked on consulting engagements for a fair amount of time, I have realized that consulting is both a science and an art. The science lies in the domain knowledge or the ‘hard’ skills. In my case, it is currently Agile and Lean. The art aspect relates to the ‘soft’ skills, which in my view, are as critical as the…
20 Jan 2015
In this tutorial, we'll show you how to implement user detection and message persistence for an Ember.js chatroom web or mobile application.
In this tutorial, we'll show you how to implement user detection and message persistence for an Ember.js chatroom web or mobile application.
For our December FAQs, we talk all things mobile push notifications, including APNS, GCM, and pub/sub for real-time notifications.
For our December FAQs, we talk all things mobile push notifications, including APNS, GCM, and pub/sub for real-time notifications.
The situation: As a multi-tenant cloud service, Mingle uses ElasticSearch as its search facility for card, page, and murmur content, indexing all content to a single ElasticSearch node. However, a series of problems (hitting hard file descriptor limits, OOM errors, and corrupted indexes) forced our team to reassess the infrastructure.
19 Jan 2015
Today there was great news in the JVM ecosystem. Pivotal, the company who is committed to OSS has become a bit less committed: The reaction in the community were largely summarised by the hashtag #jesuisgroovy: Je suis groovy #groovylang — JBaruch 🎩 (@jbaruch) January 19, 2015 The interesting part in Pivotal’s announcement is this one: … Continue reading Suis-je Groovy?…
Some logs are there to be consumed by machines and kept forever. Other logs are there just to debug and to be consumed by humans. In the latter case, you often want to make sure that you don’t produce too much logs, especially not too wide logs, as many editors and other tools have problems … Continue reading Using Java…
Estimated reading time of a post is a feature that became popular, I believe, with Medium.
The word “technical support” has a slightly negative connotation in the developer community. Most think of it as an arduous drag involving looking through piles of logs and stack traces, and taking random guesses. And that was exactly what I believed before actually experiencing it myself in a project. It taught me a lot and changed my perspective towards software…
18 Jan 2015
Once upon a time, my blog was OpenSource. People liked it and forked it tons of times, but they never changed some stuff (disqus, analytics).
I created a tool that lets you architect your Sass project in a single location (your manifest file), and it will build all of the directories and partials for you! This blog explains what a Sass manifest file is, what it does, and why you should use one.
16 Jan 2015
A wise man once said: Anything that can possibly go wrong, does — Murphy Some programmers are wise men, thus a wise programmer once said: A good programmer is someone who looks both ways before crossing a one-way street. — Doug Linder In a perfect world, things work as expected and you may think that … Continue reading Infinite Loops.…
15 Jan 2015
In this tutorial, we'll show you how to build a fully featured mobile Polymer chat app using Polymer and Material Design.
In this tutorial, we'll show you how to build a fully featured mobile Polymer chat app using Polymer and Material Design.
14 Jan 2015
I’ve been working on some other blog posts, including a conclusion of (or at least an installment in) this exciting series on zero knowledge proofs. That’s coming soon, but first I wanted to take a minute to, well, rant. The subject of my rant is this fascinating letter authored by NSA cryptologist Michael Wertheimer in February’s Notices … Continue reading…
In this blog post, we discuss how to maintain a PHP publish/subscribe client SDK, including unit tests, auto testing, and maintaining versions.
In this blog post, we discuss how to maintain a PHP publish/subscribe client SDK, including unit tests, auto testing, and maintaining versions.
Debugging a large codebase is hard. Ruby makes debugging easier by exposing method metadata and caller stack inside Ruby's own process. Recently in Ruby 2.2.0 this meta inspection got another useful feature by exposing super method metadata. In this post we will look at how this information can be used to debug and why it […] The post Debugging Super…
The most successful teams use their data to make the best decisions. We built Dataclips to allow your team to better share, reason about, and ask questions of the data you keep in Heroku Postgres. Heroku Dataclips are a lightweight data sharing tool that lets you take advantage of your organization’s most valuable asset. Dataclips […] The post Share your…
MongoDB is one of the most well-known NoSQL solutions in the industry due to its high performance, availability, scalability and ease of operations. But it can also be an important tool in enabling agile engineering practices. At a premier U.S. clothing retailer, we employ MongoDB for a wide range of supply chain systems, including various master data management, inventory and…
I love doodling, I always have. I used to doodle everywhere. All the rear pages of my books used to be messy with my drawings. Our education system focuses mostly on getting the best out of the students by drilling down their heads and asking them to study hard. A typical career aspiration of parents is to see their kids…
13 Jan 2015
This blog post/tutorial features Rect Rangle is a browser-based game using HTML5 and JavaScript, that uses PubNub for in-game notifications.
This blog post/tutorial features Rect Rangle is a browser-based game using HTML5 and JavaScript, that uses PubNub for in-game notifications.
What is a payment gateway? And how do you find the right one for your business?
Chris Johnson‘s presentation from Data Day Texas:
Ideation We all get great ideas. Some ideas work, while others don’t. Have you wondered why those ideas don’t work? Based on my experience, a good number of my ideas didn’t work because I was unable to sell them to the intended audience. I was unable to convince them, or perhaps I tried the wrong approach in telling them that…
12 Jan 2015
Last week I learned that using static is going to be the syntax for importing static members (including extension methods) in C# 6. That fulfils a feature request I made in September 2005 (my fourth ever blog post, as it happens). With a feature request turnaround of 10 years, I figure I should get put … Continue reading C# 7…
This blog post gives an overview of real-time data streams and the pubsub, publish/subscribe paradigm, including use cases and how to do it yourself.
This blog post gives an overview of real-time data streams and the pubsub, publish/subscribe paradigm, including use cases and how to do it yourself.
One of the key objectives of a project inception is to collect requirements collaboratively. But, many times, it is difficult to decide where to start and what to focus on. Story mapping is an engaging activity where all participants are involved in the process of building the product backlog on a wall, versus writing a dull 100-page requirement document.
Community Building at Thoughtworks isn't just limited to technology. We want to be the glue in bringing together change makers from all walks of life who want to make positive impacts on society. One such group are the folks at The Kahani Project.
After one year of working as a consultant at Thoughtworks, I’ve seen many colleagues stand out in projects. This is regardless of their technical knowledge or their time spent in the company. I’ve looked up to these people and tried to find out the ‘secret ingredient’ that makes them stand out. By talking to them and attending coaching meetings, I…
11 Jan 2015
This is a response to the following question from David Albert: My mental model of CPUs is stuck in the 1980s: basically boxes that do arithmetic, logic, bit twiddling and shifting, and loading and storing things in memory. I'm vaguely aware of various newer developments like vector instructions (SIMD) and the idea that newer CPUs have support for virtualization (though…
10 Jan 2015
Due to some internal network problems I fired up Wireshark and saw a lot of gratuitous ARP requests/broadcasts. I had never seen the sending MAC or IP before but could assign it to one the ports our switching hardware. The designated port was used for a Citrix XenServer virtualization environment, […] The post Fixing gratuitous ARP requests appeared first on…
9 Jan 2015
This DIY Arduino project shows you how to build an Arduino alarm for frozen pipes that is triggered based on temperature.
This DIY Arduino project shows you how to build an Arduino alarm for frozen pipes that is triggered based on temperature.
I followed @mdo’s recent article “Using Sass with Jekyll”, and wanted to point out the results.
If you need to publish your maps online, there is no need for Geoserver, Map Server or ArcGIS Server, which are all hard to install and maintain. You can do it on any PHP hosting.
8 Jan 2015
Each major release of PostgreSQL brings lots of great new functionality. The recent release of PostgreSQL 9.4 includes an exciting new JSON data type, improvements to window functions, materialized views, and a host of other performance improvements and enhancements. We’ll go into more depth on what’s new and exciting in this release below, but first, […] The post PostgreSQL 9.4…
This talk demos Famo.us Mixed Mode, a javascript framework for building user interactive UIs entirely in the browser, mixing WebGL, DOM, and physics.
This talk demos Famo.us Mixed Mode, a javascript framework for building user interactive UIs entirely in the browser, mixing WebGL, DOM, and physics.
In the recent past, we’ve shown how Java 8 and functional programming will bring a new perspective to Java developers when it comes to functional data transformation of SQL data using jOOQ and Java 8 lambdas and Streams. Today, we take this a step further and transform the data into JavaFX XYChart.Series to produce nice-looking … Continue reading Transform Your…
There is the world, then there is China. China is not often seen as a player in the field of innovation. Manufacturing plants with cheap labor is the stereotype when we think about the country. The truth? The number of people with Internet access is now more than 500 million, and gigantic companies have grown from the huge marketplace. Notable…
7 Jan 2015
A walkthrough on connecting an Arduino Yun to the Internet for remote signaling and trigger, as well as data streaming for IoT actions.
A walkthrough on connecting an Arduino Yun to the Internet for remote signaling and trigger, as well as data streaming for IoT actions.
We live in one of history’s great eras of opportunity. In the years ahead incredible things will be done in the name of innovation, ultimately replacing an economic system that has been the foundation for employment and wealth for hundreds of years.
6 Jan 2015
Some databases are awesome enough to implement the MEDIAN() aggregate function. Remember that the MEDIAN() is sligthly different from (and often more useful than) the MEAN() or AVG() (average). While the average is calculated as the SUM(exp) / COUNT(exp), the MEDIAN() tells you that 50% of all values in the sample are higher than the … Continue reading How to…
5 Jan 2015
This talk on parallel continuous integration discusses efficient and fast end-to-end testing for web and mobile applications.
This talk on parallel continuous integration discusses efficient and fast end-to-end testing for web and mobile applications.
4 Jan 2015
Do you happen to encounter the following challenges in your agile delivery project?
3 Jan 2015
I finally got around to reading Clean Code by Robert C. Martin (Uncle Bob). It is often high on lists of the best books for software development, and for good reason. Clean Code is an excellent book that all programmers … Continue reading →
2 Jan 2015
This blog post looks at M2M vs IoT and their differences, and discusses "practical IoT" and the IoT stack.
This blog post looks at M2M vs IoT and their differences, and discusses "practical IoT" and the IoT stack.
I’d like to mention two books that stood out for me in 2014: Nonfiction: The First 20 Minutes. Gretchen Reynolds is a New York Times columnist who distills health and exercise research down to practical, readable advice. I’ve never dog-eared as many pages in a book as The First 20 Minutes. Reynolds writes about why […]
1 Jan 2015
I recently finished the Coursera course Computational Investing Part 1 by professor Tucker Balch at Georgia Tech. The focus of the course is on portfolio analysis and selection. Almost all the analysis uses the daily closing prices of stocks as the … Continue reading →
31 Dec 2014
Russian Translation by frol, Chinese Translation by JiyinYiyong, Japanese Translation by Mutsuha Asada The Nim programming language is exciting. While the official tutorial is great, it slowly introduces you to the language. Instead I want to quickly show what you can do with Nim that would be more difficult or impossible in other languages. I discovered Nim in my quest…
This project was featured on Hackaday and the Atmel blog. For the next step in my Apple 1 replica project I decided I wanted to replace the Arduino Mega board with a bare Atmega MPU with the goal of producing a two chip solution — just the Atmel and the 6502, no glue logic or external support […]
This is a personal post about my 2014 in review (because a lot happened) and my goals for 2015. Happy New Year!
30 Dec 2014
In this blog post, we'll show you how to get your Arduino Uno & Seeed Studio Ethernet Shield v2 connected to the Internet, & also how to set up PubNub
In this blog post, we'll show you how to get your Arduino Uno & Seeed Studio Ethernet Shield v2 connected to the Internet, & also how to set up PubNub
Sometimes when aggregating data with SQL, we’d love to add some additional filters. For instance, consider the following world bank data: GDP per capita (current US$) 2009 2010 2011 2012 CA 40,764 47,465 51,791 52,409 DE 40,270 40,408 44,355 42,598 FR 40,488 39,448 42,578 39,759 GB 35,455 36,573 38,927 38,649 IT 35,724 34,673 36,988 33,814 … Continue reading The Awesome…
I just made it to Sweden suffering from jet lag induced insomnia, but this blog post will not cover that. Instead, I will talk a little bit about technical debt. The concept of technical debt always resonated with me, partly because I always like the analogy with “real” debt. If you take the analogy really far, there are some curious…
29 Dec 2014
If you don’t follow NSA news obsessively, you might have missed yesterday’s massive Snowden document dump from Der Spiegel. The documents provide a great deal of insight into how the NSA breaks our cryptographic systems. I was very lightly involved in looking at some of this material, so I’m glad to see that it’s been … Continue reading On the…
This walkthrough shows you how to build user detection and device detection using JavaScript and the Presence API.
This walkthrough shows you how to build user detection and device detection using JavaScript and the Presence API.
We’ve recently published an article about how to bind the Oracle DATE type correctly in SQL / JDBC, and jOOQ. This article got a bit of traction on reddit with an interesting remark by Vlad Mihalcea, who is frequently blogging about Hibernate, JPA, transaction management and connection pooling on his blog. Vlad pointed out that … Continue reading Leaky Abstractions,…
28 Dec 2014
Here's a language that gives near-C performance that feels like Python or Ruby with optional type annotations (that you can feed to one of two static analysis tools) that has good support for macros plus decent-ish support for FP, plus a lot more. What's not to like? I'm mostly not going to talk about how great Julia is, though, because…
Just search for “hackers gif“. There you go. Fun for your work emails for the next 500 years. From the awesome movie Hackers. That movie together with The Warriors convinced me that I wanted to live in NYC when I was like… 14 years old.
27 Dec 2014
With the New Year approaching, the Insights editorial team is thrilled to announce the top technical content from 2014 as well as editor's choices from our Technology, Software Testing and Continuous Delivery channels. Each blog comes from a Thoughtworker’s real-world experience and goes up with a short write-up by the editor. We hope you enjoy them a second time around.…
26 Dec 2014
Woot! This project was featured on Hackaday. No Apple 1 under the tree on Christmas Day ? Never mind, with a 6502 and an Arduino Mega 2560 you can make your own. The Apple 1 was essentially a 6502 computer with 4k of RAM and 256 bytes of ROM. The inclusion of a 6821 PIA and a […]
Agile - look up this word in any dictionary and the meaning you’ll find is something along the lines of "able to move quickly and easily”.
24 Dec 2014
This guide walks you through what a Bacs approved bureau is and the benefits and reasons for using one.
If you want to accept payments online, you have two main options: Credit (or Debit) Card and Direct Debit. To help you get to grips with your online payment options we've run through the main choices at a high level here.
Last week, a security fix was released for Git. The fix patches a bug in the Git client that is exploitable on operating systems with case insensitive file systems such as Windows and OS X. Heroku has updated the Git installer that we ship with Toolbelt for Windows. We have also removed an old Git […] The post Update Git…
In the first article in this series I introduced the concept of the ./go script, a unified interface to all the dev tooling on your project. In this article I'd like to talk about one of the most important properties of a good ./go script - isolation.
23 Dec 2014
The common contract for functions which return a value of the interface type error, is the caller should not presume anything about the state of the other values returned from that call without first checking the error. In the majority of cases, error values returned from functions should be opaque to the caller. That is […]
My colleagues Aaron Sachs and Anupam Kundu recently posted an article with the provocative title, “Is it Time to Fire Your Product Manager?” You should read it if you are curious about the pressures of being in Product Management or how Product Managers should be evaluated.
22 Dec 2014
The author shares 5 powerful quotes and lessons learned from mentors during an intensive 3-month accelerator program in Ireland focused on startups and entrepreneurship. Key takeaways include the importance of passion, understanding customers' problems, building a great team, and working tirelessly while maintaining positivity.
In this talk, Lydia Katsamberis discusses imposter syndrome and the Node.js community, and feeling like a "real" developer.
In this talk, Lydia Katsamberis discusses imposter syndrome and the Node.js community, and feeling like a "real" developer.
In this tutorial, we'll show you how to send and receive iOS Push Notifications with APNS, PubNub, and PhoneGap for web, mobile, and devices.
In this tutorial, we'll show you how to send and receive iOS Push Notifications with APNS, PubNub, and PhoneGap for web, mobile, and devices.