This white paper is written by Dan McClure (Innovation Design Practice Leader, Thoughtworks) and Ian Gray (Director, Gray Dot Catalyst). This is the second of four contributions on the subject of 'Innovation Scaling' submitted for the 'Transformation Through Innovation' theme for the World Humanitarian Summit.
28 Jun 2015
The Apple Watch has arrived! Will this fundamentally alter the future of wearables? Will this be the catalyst that doubles Apple’s stock price? Will this be the gadget that finally makes mobile wearable devices mainstream? It’s still too early to know for sure, but the launch of the Apple Watch does bring into sharper focus emergent opportunities in mobile technology.
25 Jun 2015
Today we’re pleased to announce general availability of Heroku Redis with a number of new features and a more robust developer experience. By giving developers a different data management primitive, we’re helping them meet the needs of building modern, scalable applications. The classic example of using multiple data stores in an application is the e-commerce […] The post Heroku Redis…
How to trigger Raspberry Pi hue LEDs from an Android UI in real time. Change colors, turn on and off, and monitor state in real time.
How to trigger Raspberry Pi hue LEDs from an Android UI in real time. Change colors, turn on and off, and monitor state in real time.
24 Jun 2015
There is a difficult job ahead: Global advances in technology development, falling barriers to market entry and an explosion in the number of creatively empowered individuals drives the spread of a hyper-creative economy. Market relevant innovation has become a core business capability that must be delivered over and over.
Thoughtworks is a global IT consultancy company, present in 13 countries around the world. We are close to three thousand people strong in more than 30 offices. A part of our mission aligns with social and economic justice. In addition to creating customized software to revolutionize the IT market, we also aim to cause a positive impact in people’s lives.
23 Jun 2015
When running a Maven build with many plugins (e.g. the jOOQ or Flyway plugins), you may want to have a closer look under the hood to see what’s going on internally in those plugins, or in your extensions of those plugins. This may not appear obvious when you’re running Maven from the command line, e.g. … Continue reading How to…
Getting started with GCM for Android and PubNub to send real-time mobile push notifications to mobile users.
Getting started with GCM for Android and PubNub to send real-time mobile push notifications to mobile users.
22 Jun 2015
How to build a basic JavaScript multiplayer game, where user moves are synced in real time as the player makes a move.
How to build a basic JavaScript multiplayer game, where user moves are synced in real time as the player makes a move.
At the beginning of my IT consulting career, I thought my purpose was to solve technical problems. I thought that people -- especially business people -- knew exactly what they wanted and why. I though that their teams had a unified purpose and agenda. The only reason they had to hire someone like me, was to fill in the technical…
21 Jun 2015
I have spent some time lately with D3. It’s a lot of fun to build interactive graphs. See for instance this demo (will provide a longer writeup soon). D3 doesn’t have support for 3D but you can do projections into 2D pretty easily. It’s just old school computer graphics. I ended up adding an animated background to this blog based…
The Evolution of TDD
20 Jun 2015
19 Jun 2015
Timeless wisdom for crafting better code: Essential software engineering practices.
A few weeks ago, I went whitewater rafting on the Nile in Uganda. My crew was given a choice of “wild or mild”. Our crew of nine, led by our master oarsman and rafting guide Jeff, chose wild.
18 Jun 2015
You can read Part Two of this series here. This is the scene; on one side, we have the Android platform developers and on the other, the hackers. Just as with any software system, Android has its list of security problems. And it’s a pretty close race between the two sides.
17 Jun 2015
Decoding the programmer's job hunt: It's simpler than you think!
How to turn your phone into a motion controller to control actions in real time to interact with a web browser game. It's a DIY Nintendo Wii!
How to turn your phone into a motion controller to control actions in real time to interact with a web browser game. It's a DIY Nintendo Wii!
Before you read on, please note that since jOOQ 3.19, policies are supported out of the box, to implement the same functionality in a much simpler way than what this article suggests! Some time ago, we’ve promised to follow up on our Constraints on Views article with a sequel showing how to implement client-side row-level … Continue reading Implementing Client-Side…
At a recent Microservices Meetup in NY, Michael Bryzek and Adrian Cockcroft discussed their extensive experience with microservices.
16 Jun 2015
jOOQ is a great way to do SQL in Java and Quasar fibers bring a much improved concurrency We’re excited to announce another very interesting guest post on the jOOQ Blog by Fabio Tudone from Parallel Universe. Parallel Universe develops an open-source stack that allows developers to easily code extremly concurrent application on the JVM. … Continue reading Querying Your…
How to build a Raspberry Pi motion sensor that when triggered sends real-time alerts to a web interface.
How to build a Raspberry Pi motion sensor that when triggered sends real-time alerts to a web interface.
At SoundCloud, we’re building an ecosystem where creativity thrives. Developers are an important part of that ecosystem. We’re continually…
Becoming a Tech Lead is a tough transition for any developer, because only part of the skills and experience you had as a developer prepares you for the expectations of a new role. Instead of simply designing and writing code, a Tech Lead is suddenly responsible for an entire development team - and this means dealing with people, both technical…
15 Jun 2015
Today we are announcing that Heroku’s new dynos are generally available. This new suite of dynos gives you an expanded set of options and prices when it comes to building apps at any scale on Heroku, no matter whether you’re preparing for traffic from Black Friday shoppers or deploying your first lines of code. Thanks […] The post New Dynos…
“If you don’t know how compilers work, then you don’t know how computers work. If you’re not 100% sure whether you know how compilers work, then you don’t know how they work.” — Steve Yegge There you have it. Think about it. It doesn’t really matter whether you’re a newbie or a seasoned software developer: if you don’t know how…
13 Jun 2015
Today I was devastated to learn of yet another women being driven from the tech industry. This is so far from being all right it does not even register on the same scale. The tech industry is a sick, male dominated, misogynistic, flaccid void that continues to permit weak, small, frightened men to abuse and […]
Perhaps nothing better defines our current age than to say it is one of rapid technological change. Technological improvements will continue to provide more to individuals and society, but also to demand more: demand (and leak) more of our data, more time, more attention and more anxieties. While an increasingly vocal minority have begun to rail against certain of these…
11 Jun 2015
Last year, we launched Heroku Button to make it simple for developers to deploy open source code to new Heroku apps. Open source contributors can add Heroku Buttons to GitHub READMEs, tutorials and blog posts and make their projects instantly deployable to Heroku, as apps fully provisioned with add-ons and other required configurations. Two months […] The post Heroku Button…
Check out the UDOO Neo, an IoT embedded board that combines the power of Arduino and Raspberry Pi with Bluetooth and WiFi connectivity.
Check out the UDOO Neo, an IoT embedded board that combines the power of Arduino and Raspberry Pi with Bluetooth and WiFi connectivity.
How to control Raspberry Pi LEDs from a web browser in real time. This is a basic Raspberry Pi LEDs remote configuratio tutorial using Python.
How to control Raspberry Pi LEDs from a web browser in real time. This is a basic Raspberry Pi LEDs remote configuratio tutorial using Python.
10 Jun 2015
How to build a real-time weather station with the Intel Edison board, weather sensor, Cylon.js, freeboard.io, and stream to a real-time UI dashboard.
How to build a real-time weather station with the Intel Edison board, weather sensor, Cylon.js, freeboard.io, and stream to a real-time UI dashboard.
9 Jun 2015
Welcome to the jOOQ Tuesdays series. In this series, we’ll publish an article on the third Tuesday every other month where we interview someone we find exciting in our industry from a jOOQ perspective. This includes people who work with SQL, Java, Open Source, and a variety of other related topics. We have the pleasure … Continue reading jOOQ Tuesdays:…
To ensure the product being built is usable, with reasonably acceptable performance, we need to ensure the product is designed, built and validated from each of these Non-Functional Requirements perspective.
In reference to the old Fable of the Roasted Pigs, Gustavo F. J. Cirigliano wrote...
While User Experience is generally regarded and defined for the web, it really appears all around us. Driving to work is an experience, as is boiling a kettle, even sitting on a chair is an experience. Whoever is having the experience is the user.
8 Jun 2015
A few months ago I introduced gb as a proof of concept to the audience at GDG Berlin. Since then, together with a small band of contributors and an enthusiastic cabal of early adopters, gb has moved from proof of concept, written mostly on trains during a trip through Europe, to something approaching a usable […]
A while back we featured a post about why learning mathematics can be hard for programmers, and I claimed a major issue was not understanding the basic methods of proof (the lingua franca between intuition and rigorous mathematics). I boiled these down to the “basic four,” direct implication, contrapositive, contradiction, and induction. But in mathematics there is an ever growing…
Requests for playlists have always included the full track objects contained within. This representation may be convenient for playlists…
Development team level agility is relatively well understood. Better engineering techniques and delivery process allow us to achieve greater performance at the level of development teams. However, this doesn’t go far enough to redeem the reputation of IT in the eyes of the business. Team level agility is necessary but not sufficient for overall IT responsiveness which is often constrained…
7 Jun 2015
Hacking the :visited selector to show unread posts. We'll look at the limitations and my little work-around.
6 Jun 2015
Learning Go was in my TODO list for a while, and finally I did something about it. This post contains some thoughts about it…
5 Jun 2015
bytes.Buffer is a tremendously useful type, but it’s a bit large1. % sizeof -p bytes Buffer Buffer 112 … and that is just the overhead, we haven’t put any data into the buffer yet. This Friday’s2 challenge is to write a replacement for bytes.Buffer that implements io.ReadWriter and allows the caller to discover the length and capacity of the […]
Note: this post is full of pseudo-psychology and highly speculative content. Like most fun stuff! I became a manager back in 2009. Being a developer is fun. You have this very tangible way to measure yourself. Did I deploy something today? How much code did I write today? Did I solve some really cool machine learning problem on paper? But…
4 Jun 2015
1995 was the year AOL floppy disks arrived in the mail, Netscape Navigator was born and the first public version of Java was released. Over the next two decades, Java witnessed the multi-core revolution, the birth of the cloud, and the rise of polyglot programming. It survived these upheavals by evolving with them, and it […] The post The Next…
3 Jun 2015
At the moment, I’m spending a fair amount of time thinking about a new version of the C# API and codegen for Protocol Buffers, as well as other APIs for interacting with Google services. While that’s the context for this post, I want to make it very clear that this is still a personal post, … Continue reading Backwards compatibility…
How Backbone.js’s Model and View architecture can be integrated with to create one such web app which is always alert to real-time changes.
How Backbone.js’s Model and View architecture can be integrated with to create one such web app which is always alert to real-time changes.
There is a Chinese phrase - 扬汤止沸 (yang tang zhi fei) - which means to stop water from boiling over by skimming it off the top and pouring it back. The underlying meaning is that you think you are solving a problem but, in reality, you are not tackling the root cause. This proverb describes the challenge organizations face when…
2 Jun 2015
You probably know about “ordinary views” already, but I’m sure you’ll find one or two things in this article that you haven’t thought about in this way yet… What exactly are SQL views? Views in SQL are a means of treating complex queries in the same way as “ordinary” tables. In fact, SQL is all … Continue reading What Exactly…
PubNub's Project EON is an open source JavaScript framework that lets you stream data to create beautiful dashboards, maps, and charts, updated in real time.
PubNub's Project EON is an open source JavaScript framework that lets you stream data to create beautiful dashboards, maps, and charts, updated in real time.
The keypress event works maddeningly differently in Chrome/Safari and Firefox, and this is the story of how I spent two hours discovering that, so that hopefully you don’t have to. Keypress what? A keypress event is one of the events you get when you mash on the keyboard. It’s special because according to the spec, you should only get a…
A year ago I was asked to coach someone in the office. My first reaction was to run away! I was overwhelmed at the thought of being responsible for someone’s development and career even though I was promised the support needed and that it was going to be a great learning opportunity for me too. I eventually accepted the challenge…
Business leaders are feeling under fire. As competition heats up, they must create stand-out digital experiences and engage customers across digital channels . But creating the software that brings these digital experiences to life is easier said than done. So what’s the answer?
1 Jun 2015
Do you have a great idea for a product that could make millions? Chances are the answer is yes. Everyone has a great idea up their sleeve. But not everyone has made millions of dollars from them. In fact, far more people have lost money on an idea than have made it. Why is that? Quite simply, ideas are free.…
A number of years ago in Atlanta, GA my wife and I went to purchase a chair for our living room. We shopped around and ended up at the Chair Warehouse (fictitious company). We wandered around a bit before deciding on a particular chair and found a salesperson to complete the paperwork. After going through the paper shuffling and writing…
31 May 2015
If you've followed any tech news aggregator in the past week (the week of the 24th of May, 2015), you've probably seen the story about how SourceForge is taking over admin accounts for existing projects and injecting adware in installers for packages like GIMP. For anyone not following the story, SourceForge has a long history of adware laden installers, but…
30 May 2015
I’m going to be speaking at OSCON this year about Go performance. The title of the talk is High performance servers without the event loop and will focus on the features of the language and its runtime that transparently let Go programmers write high performance network servers without resorting to event loops and callback spaghetti. As the […]
29 May 2015
28 May 2015
How to calculate geolocation proximity to other locations, and compare that first location to surrounding locations using the GoogleMaps API.
How to calculate geolocation proximity to other locations, and compare that first location to surrounding locations using the GoogleMaps API.
Saw this link on Hacker News the other day: The Highway Lane Next to Yours Isn’t Really Moving Any Faster The article describes a phenomenon unique to traffic where cars spread out when they go fast and get more compact when they go slow. That’s supposedly the explanation. There’s a much simpler explanation that works for any queue. Let’s consider…
27 May 2015
TIL that Bell Labs and a whole lot of other websites block archive.org, not to mention most search engines. Turns out I have a broken website link in a GitHub repo, caused by the deletion of an old webpage. When I tried to pull the original from archive.org, I found that it's not available because Bell Labs blocks the archive.org…
26 May 2015
Go's empty interface: Flexibility at a cost.
Keybase.io is a new service that combines asymmetric cryptography with a social network. It allows users to easily share public keys and authenticate messages by linking keys to profiles on Twitter, GitHub, Reddit, etc. The service provides encrypted messaging and bitcoin wallet pairing to make adopting cryptography seamless.
CMDBuild supports the usage of SQL queries inside the “filter” options if the type is a REFERENCE. Given: A lookup table named “Software Type” [{Code: DBMS}, {Code: App}] A class Application [{Code: MySQL, Type: DBMS}, {Code: PostgreSQL, Type: DBMS}, {Code: Tomcat, Type: App}]; “Type” references the lookup table “Software Type” […] The post Using Subselects with CQL in CMDBuilds “filter”…
Sometimes you have these awesome insights. A few days ago I got an idea for how to improve index building in Annoy. For anyone who isn’t acquainted with Annoy – it’s a C++ library with Python bindings that provides fast high-dimensional nearest neighbor search. Annoy recursively builds up a tree given a set of points. The algorithm so far was:…
Wealth, asset and investment management firms are experiencing record results. In 2013, assets under management grew to a record $68.7 trillion, while operating margins grew 39%. Things couldn’t be brighter for the industry. But as we all know, current performance is not indicative of future results.
Nearly a quarter of American workers work from home at least once a week, and that number is expected to continue rising. But is working from home actually productive? Definitely, say many studies: it not only increases productivity, it also increases employee retention and reduces absenteeism. And with project management tools like Mingle and Trello, location is no barrier to…
In my previous post, I argued how IT has become strategic owing to the demands of a digital business. Strategic IT cannot justify itself with IT metrics such as velocity or even with delivering to plan. It has to make a difference to business outcomes.
25 May 2015
CMDBuild is a free (“free” as in GPL v2) ITIL solution. The installation of the 2.3.1 version has been a pain in the ass. After applying the database information in the setup wizard, I always received an org.cmdbuild.exception.ORMException: ORM_GENERIC_ERROR. CMDBuild stores its log files (cmdbuild.log, cmdbuild_dd_sql.log) in the “logs” folder […] The post Trying to install CMDBuild and receiving an…
Boring languages are underrated. Many appear to be rated quite highly, at least if you look at market share. But even so, they're underrated. Despite the popularity of Dan McKinley's "choose boring technology" essay, boring languages are widely panned. People who use them are too (e.g., they're a target of essays by Paul Graham and Joel Spolsky, and other people…
22 May 2015
In this blog post David Gee, a Senior Product Manager on our Product team, discusses challenges to building and maintaining technical partnerships between organizations as well as provides advice on how to overcome those challenges. Every company comes to a point, early or late, where it realizes that it must partner with other companies to […]
In case you haven’t heard, there’s a new SSL/TLS vulnerability making the rounds. Nicknamed Logjam, the new attack is ‘special’ in that it may admit complete decryption or hijacking of any TLS connection you make to an improperly configured web or mail server. Worse, there’s at least circumstantial evidence that similar (and more powerful) attacks might already be … Continue…
This is a quick Friday blog post to talk about a recent experience I had working on a piece Juju code that needed to capture the data being sent over a net.Conn. Most Gophers know that the net package provides a net.Pipe function which returns a pair of net.Conns representing an in memory network connection. net.Pipe […]
21 May 2015
Most of your code is private, internal, proprietary, and will never be exposed to public. If that’s the case, you can relax – you can refactor all of your mistakes, including those that incur breaking API changes. If you’re maintining public API, however, that’s not the case. If you’re maintaining public SPI (Service Provider Interfaces), … Continue reading Do Not…
This tutorial shows you how to remote control your Tessel Servo remotely and track the Tessel Servo movement and current position in real time.
This tutorial shows you how to remote control your Tessel Servo remotely and track the Tessel Servo movement and current position in real time.
How to receive a Tessel RFID event and act on it, triggering an action in real time. We'll receive and interpret RFID events, & match it against code.
How to receive a Tessel RFID event and act on it, triggering an action in real time. We'll receive and interpret RFID events, & match it against code.
The potential for wearable fashion is
Innovation is losing its luster. I see it in meetings and conversations every day. After years of being the darling of leadership gurus, the craft of creating original value is facing a growing skepticism that borders on antagonism.
20 May 2015
“We learn most when we have to invent” —Piaget In Part 2 you created a minimalistic WSGI server that could handle basic HTTP GET requests. And I asked you a question, “How can you make your server handle more than one request at a time?” In this article you will find the answer. So, buckle up and shift into high…
19 May 2015
Today we’re announcing a feature that is going to change the way teams test and evaluate code changes. Continuous delivery works best when all team members — designers and testers included — can efficiently visualize and review the result of proposed changes. With Review Apps enabled, Heroku will spin up temporary test apps for every […] The post Heroku Review…
Pay people more! It’s really that simple. If you care so much about retention, put your money where your mouth is.