~/devreads

26 Mar 2015

lukaseder 1 min read

Some queries shouldn’t hit the database all the time. When you query for master data (such as system settings, languages, translations, etc.), for instance, you may want to avoid sending the same silly query (and the results) over the wire all the time. For example: Most databases maintain buffer caches to accelerate these queries, so … Continue reading Hack up…

javajava 8sqlcachejdbc

Dave Cheney 2 min read

When I was younger, I wanted to learn to play the guitar (this was the 90’s after all). So I cracked open my piggy bank, bought a decent beginners guitar and took some lessons. I regularly bought the guitar magazines that appeared in the local newsagent and practised along to my favourite songs. I noodled […]

gosmall ideassimplicity

Natalia Arsand 1 min read

While there is much talk about collaborative and interdisciplinary teams, many organisations still support a model of 'design for' rather than 'design with'. User experience matters are for designers to think about, which separates the team in unwanted silos. Encouraging the entire development team to take part in the ideation sessions is a simple step that can break some barriers…

24 Mar 2015

lukaseder 1 min read

Hibernate has become a de-facto standard in the Java ecosystem, and after the fact, also an actual JavaEE standard implementation if standards matter to you, and if you put the JCP on the same level with ISO, ANSI, IEEE, etc. This article does not intended to discuss standards, but visions. Hibernate shares JPA’s vision of … Continue reading jOOQ vs.…

javasqlhibernatejooqorm

4 min read

My favourite thing about the Chromium code is this enum of cats and all the comments in that file. My second favourite thing is OWNER files. Guess what this post is about (hint: it’s not about cats NOT EVERYTHING IS ABOUT CATS, OK?) Edit: In a clear and deliberate conspiracy, the cats have been removed from Chromium. The old new…

23 Mar 2015

Fahd Siddiqui 5 min read

A distributed data system consisting of several nodes is said to be fully consistent when all nodes have the same state of the data they own. So, if record A is in State S on one node, then we know that it is in the same state in all its replicas and data centers. Full […]

big data

1 min read

Last time we defined the Hamming code. We also saw that it meets the Hamming bound, which is a measure of how densely a code can be packed inside an ambient space and still maintain a given distance. This time we’ll define the Reed-Solomon code which optimizes a different bound called the Singleton bound, and then generalize them to a…

20 Mar 2015

Craig Kerstiens 3 min read

At Heroku, most of us love living in the CLI. Of course, we're absolutely dedicated to providing a great developer experience whether it’s in the dashboard or at the terminal, but we also believe a mastery of the command line interface offers great productivity to you as a developer. A well designed CLI coupled with […] The post Making CLI…

news

19 Mar 2015

Dave Cheney 1 min read

I am frequently contacted by recruiters looking for leads. This isn’t an attempt to blow my own horn, I’m sure you are also constantly pestered. What is frustrating is the recruiters who come calling for leads are universally unaware of the meetups and user groups in the local area for the role they are recruiting […]

small ideasrecruiting

Guilherme Reis & Jessica Blandina 1 min read

Worldwide, girls and women face many challenges to live safe, free, financially independent and socially empowered lives. Safe spaces are physical or virtual places where girls and women can seek support to fully develop their qualities, overcoming gender barriers that bar their access to education, work and health care.

Kyle Hodgson 1 min read

Thanks to the rise of lean thinking and increased capabilities brought by User Experience Design practitioners, the user experience of mobile software, particularly for consumers, has made great strides in the last few years. So why do companies sit on the experience sidelines when building mobile apps for their own employees?

18 Mar 2015

lukaseder 1 min read

One year ago, on March 18, 2014, Java SE 8 was released, and with it, the bliss of functional programming through lambda expressions and the streams API. These were great news for all of our Java ecosystem, and many people have already upgraded to Java 8. Stack Overflow already yields almost 2500 questions about Java … Continue reading One Year…

java 8bugscompiler bugscompilerseclipse

Mohit Gupta 3 min read

Student Data privacy and security are our foremost responsibilities here at Clever. We invest heavily to ensure that we are improving privacy for schools, students, and teachers, and we make sure that everyone at Clever is constantly working towards this goal. About five months ago, we were made aware of aspects of our privacy policy […] The post Open Sourcing…

privacy

17 Mar 2015

0xADADA 1 min read

In Understanding Media, McLuhan describes the shift in western society from an agrarian economy to an industrial economy as a template for the next shift from an industrial economy to an information economy. Another characteristic reversal after passing a road break boundary is that the country ceases to be the center of all work, and the city ceases to be…

notesessayspoliticsmass mediamedia

16 Mar 2015

lukaseder 1 min read

So, you’ve found a nice Open Source project that has added great value to your own work and you want to give back. Before we move on, let me stress that this isn’t anything personal. This article doesn’t criticise anyone particular, and the ranty tone is just for your reading entertainment. I do not want … Continue reading The 10…

open-sourceopen sourcepull requests

15 Mar 2015

Dave Cheney 1 min read

Several decades ago, when I graduated high school and was wondering what I would do with my life I faced a choice. Should I take the now common “gap year” and travel the world, or should I enrol directly in university ? Oft quoted wisdom recommends that programmers looking to better themselves in their craft should […]

small ideas

14 Mar 2015

2 min read

Pinterest just open sourced Pinball which seems like an interesting Luigi alternative. There’s two blog posts: Pinball: Building workflow management (from 2014) and Open-sourcing Pinball (from this week). The author has a comment in the comments thread on Hacker News: Luigi was not available in public, when Pinball starts. So not sure the pros and cons between Pinball and Luigi.…

13 Mar 2015

Tony Cassandra 10 min read

Bazaarvoice’s flagship product is a platform for our clients to accept, display and manage consumer generated content (CGC) on their web sites. CGC includes reviews, ratings, images, videos, social network content, etc. Over the last few years, syndicating CGC from one site to another has become increasingly important to our customers. When a user submits […]

product matchingsoftware architecture

Dan McClure 1 min read

This white paper is written by Dan McClure (Innovation Design Practice Leader, Thoughtworks) and Ian Gray (Director, Gray Dot Catalyst). This is the first of four contributions on the subject of 'Innovation Scaling' submitted for the 'Transformation Through Innovation' theme for the World Humanitarian Summit.

Sam Gibson 1 min read

Tightly coupled software presents the biggest difficulty when teams are looking to extend or change systems. As systems get larger, coupling limits the scope of change and self perpetuates. The easiest way to extend tightly coupled code is often to weave in even more interdependence.

12 Mar 2015

lukaseder 1 min read

The past decade has been an extremely exciting one in all matters related to data. We have had: An ever increasing amount of data produced by social media (once called “Web 2.0”) An ever increasing amount of data produced by devices (a.k.a. the Internet of Things) An ever increasing amount of database vendors that explore … Continue reading 3 Reasons…

sqldatabasedzonepersistencerdbms

Rimas Silkaitis 3 min read

Performing a backup is one of those tasks that ensures your application can recover from database or hardware failures should they ever occur. Over four year ago, we recognized this as a best practice and came out with PGBackups, an add-on that reduces the risk and complexity of taking database backups. Today, we’re pleased to […] The post Schedule PostgreSQL…

newsdatabasedeveloper toolspostgres

Joanne Molesky 1 min read

Liberate teams from the annual budget cycle The use of the traditional annual fiscal cycle to determine resource allocation encourages a culture that thwarts our ability to experiment and innovate. It perpetuates spending on wasteful activities and ideas that are unlikely to deliver value. How can we get out of the rut that is the annual budget process and encourage…

Gabriel Brigidi 1 min read

While facing the challenges of doing business in Brazil, such as logistics and transport, tax burdens, regulatory environment, among others, Brazilian Retail has been very creative and innovative. To draw the customer's attention, there is a new wave of innovation in various segments associated with two key factors: rapid technological change and the transformation of consumer profiles. Retailers are exploring…

Priti Biyani 1 min read

In any project lifecycle, our goal should be to automate all the activities that are repeated while creating and maintaining the system. The practice of ‘Ruthless automation’ is apt to automate such tasks. In project lifecycle, usually because of with tight deadlines, or just not being aware enough, we either tend to overlook or fail to identify automation of the…

11 Mar 2015

Ronaldo Ferraz 1 min read

Luca Bastos, lead consultant in Brazil, died at age 69 Last Sunday (8 March), we lost one of our greatest teachers. Luca Bastos, our consultant leader in Brazil, died at age 69 in Sao Paulo. A born leader, Luca personified enthusiasm, a thirst for knowledge and technical excellence.

Johannes Thönes 1 min read

“Microservices are the first post DevOps revolution architecture," says Neal Ford, Architect and Meme Wrangler at Thoughtworks. I had the chance to record a 22 minute interview with him, where he explained to me why the DevOps revolution was a prerequisite for the microservices architectural style to become possible.

Laura Schwecherl 1 min read

This article was written by Laura Schwecherl from Possible. In August 2014, Thoughtworks partnered with Possible to implement Bahmni as the Hospital Management System in the hospital that they run in collaboration with the Government of Nepal. Around the globe, our lives are increasingly transformed by technology, with healthcare perhaps one of the most impressive arenas for these changes.

10 Mar 2015

lukaseder 1 min read

Introduction Grails is a web framework aimed to boost development productivity. One of the main features is domain centric database schema generation. Applications built with Grails are able to update existing schema just before they start. To do this, Grails is using built-in domain mappers or migrations in more advanced cases. The goal of the … Continue reading Integrating jOOQ…

groovyjooq-in-usegrailsjooqjooq grails

22 min read

I've been reading a lot about software testing, lately. Coming from a hardware background (CPUs and hardware accelerators), it's interesting how different software testing is. Bugs in software are much easier to fix, so it makes sense to spend a lot less effort spent on testing. Because less effort is spent on testing, methodologies differ; software testing is biased away…

9 Mar 2015

lukaseder 1 min read

Yak Shaving (uncountable): (idiomatic) Any apparently useless activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem. (idiomatic) A less useful activity done to consciously or unconsciously procrastinate about a larger but more useful task. Both interpretations of the term Yak Shaving as explained by Wiktionary are absolutely accurate … Continue reading Yak Shaving…

javaopen-sourceapi designdevelopmentrefactoring

Ruslan Spivak 6 min read

Out for a walk one day, a woman came across a construction site and saw three men working. She asked the first man, “What are you doing?” Annoyed by the question, the first man barked, “Can’t you see that I’m laying bricks?” Not satisfied with the answer, she asked the second man what he was doing. The second man answered,…

1 min read

Problem: Given a massive data stream of $ n$ values in $ \{ 1, 2, \dots, m \}$ and the guarantee that one value occurs more than $ n/2$ times in the stream, determine exactly which value does so. Solution: (in Python) def majority(stream): held = next(stream) counter = 1 for item in stream: if item == held: counter +=…

7 Mar 2015

Dave Cheney 19 min read

This is the text of my closing keynote from Gophercon India. It has been slightly altered for readability from my original speaking notes. I am indebted to the organisers of Gophercon India for inviting me to speak, and to Canonical for giving me the time off to attend the conference. If you want to see me […]

goprogrammingsmall ideasgophercon india

8 min read

I've been hearing this question a lot lately, and when I do, it reminds me how much I don't know. Here are some questions this question brings to mind. How does a keyboard work? Why can’t you press an arbitrary combination of three keys at once, except on fancy gaming keyboards? That implies something about how key presses are detected/encoded.…

6 Mar 2015

Rebecca Murphey 2 min read

A couple of years ago, my former colleague Alex Sexton wrote about the techniques that we use at Bazaarvoice to deploy client-side JavaScript applications and then load those applications in a browser. Alex went into great detail, and it’s a good, if long, read. The core idea, though, is pretty simple: an application is bootstrapped […]

open sourcejavascriptthird-party-javascript

Anand Bagmar 1 min read

I had written an article posted on Thoughtworks Insights in 2010 on my thoughts on the Future of Test Automation Tools & Infrastructure. Sometime in mid-2014, I started thinking about how the current technology ecosystem and development relates to the Present, and the Future of Testing and the role of the Tester.

5 Mar 2015

lukaseder 1 min read

I’ve recently stumbled upon a very interesting caveat of the JDK APIs, the Class.getConstructors() method. Its method signature is this: Constructor<?>[] getConstructors() The interesting thing here is that Class.getConstructor(Class...) returns a Constructor<T>, with <T> being maintained: Constructor<T> getConstructor(Class<?>... parameterTypes) Why is there a difference, i.e. why doesn’t the first method return Constructor<T>[]? Let’s consider the … Continue reading The Java…

javabackwards compatibilitybrian goetz

10 min read

Most real-world problems are big enough that you can't just head for the end goal, you have to break them down into smaller parts and set up intermediate goals. For that matter, most games are that way too. “Win” is too big a goal in chess, so you might have a subgoal like don't get forked. While creating subgoals makes…

Aneesh Lele, Anupam Kundu 1 min read

This is the first article in a four part series, where the authors share their experiences and insights on ushering technology fueled innovation in incumbent financial services organizations. Here are the second, third and fourth articles in this series.

4 Mar 2015

lukaseder 1 min read

Sometimes we give terrible advice. Like in that article about how to use Java 8 for a cached, functional approach to calculating fibonacci numbers. As Matthias, one of our readers, noticed in the comments, the proposed algorithm may just never halt. Consider the following program: It will run indefinitely at least on the following Java … Continue reading Avoid Recursion…

java 8bugconcurrenthashmapfibonacci numbershalting problem

Joe Kutner 7 min read

Over the past few years, Netflix has open sourced many of the components that make up its production platform. These include Eureka for service discovery, Hystrix for handling service failure, Ribbon for client side load balancing, and many others. These projects are powerful, mature, and benefit from Netflix’s many years of experience deploying service-oriented applications […] The post Managing your…

news

MapTiler 1 min read

The new MapTiler Desktop 0.6 is now available with automatic OGC WMTS services, offline map viewer, export maps to Garmin GPS, visual referencing with satellite map, and many other news.

Paula Moughton-Weems 1 min read

As a business analyst I work with developers, quality analysts, experience designers and product owners. Each of us bring specialist skills to the mix. We approach problems with different approaches and we work as a team to solve problems in the best way. We can adapt quickly to change and we strive to get value to our users fast and…

3 Mar 2015

2 min read

I spent the last weekend working through the amazing guide for Make a Lisp, writing a Lisp interpreter in Nim. The final result just made it into the repository. Running the Nim version is pretty simple. You need the Nim compiler from the devel branch and nre which can be installed through nimble. After installing those you can build and…

1 min read

I’m very glad to have had the chance to be involved with the very first Go challenge. My challenge is related to something we do at Splice: binary decoding. Read more on the Go Challenge website pattern_1.splice Saved with HW Version: 0.808-alpha Tempo: 120 (0) kick |x---|x---|x---|x---| (1) snare |----|x---|----|x---| (2) clap |----|x-x-|----|----| (3) hh-open |--x-|--x-|x-x-|--x-| (4) hh-close |x---|x---|----|x--x| (5)…

Scott Shaw 1 min read

I recently interviewed Sam Newman, author of Building Microservices, and James Gregory, Thoughtworks Australia's technical market principal, on deploying and operating microservices. This is a topic that has grown exponentially in conversation over the last year as the technical community explores new ways in which we can evolve with pace in this digital economy.

Ola Bini 1 min read

Our current Internet doesn't have much in terms of security when you look at how our computers communicate with each other. The most widespread technology for securing communication is called Transport Layer Security (TLS (previously known as Secure Sockets Layer (SSL)). This technology is not as widely deployed as it should be, since it can be complicated to set up…

2 Mar 2015

jonskeet 9 min read

I’ve been getting a bit cross about backward compatibility recently. This post contains two examples of backward incompatibilities in .NET 4.6, and one example of broken code which isn’t being fixed due for backward compatibility reasons. Let me start off by saying this post is not meant to be seen as an attack on Microsoft. … Continue reading Backward compatibility…

generalnoda time

lukaseder 1 min read

We’ve published an article in the German magazine www.java-aktuell.de, which is published by the iJUG e.V.. You can read and download the article free of charge from our blog! In Java gibt es kein Standard-API, das die Ausdrucksstärke und Mächtigkeit von SQL direkt unterstützt. Alle Aufmerksamkeit ist auf objekt-relationales Mapping und andere höhere Abstraktionslevel gerichtet, … Continue reading jOOQ –…

javasqljava aktuelljooq

1 min read

Or how to detect and correct errors Last time we made a quick tour through the main theorems of Claude Shannon, which essentially solved the following two problems about communicating over a digital channel. What is the best encoding for information when you are guaranteed that your communication channel is error free? Are there any encoding schemes that can recover…

1 Mar 2015

Matt Cutts 1 min read

For January 2015, I tried to declutter around the house for 15 minutes a day. We now have a couple rooms that are much cleaner, and I gave away a bunch of magazines. For February 2015, my 30 day challenge was to go on daily 15 minute walks with my wife. That was nice. Lately […]

30 days

26 Feb 2015

Dave Cheney 1 min read

I have updated my unofficial ARM tarball distributions page with prebuilt Go 1.4.2 tarballs. You can find them by following the link in the main header of this page. As these were the first tarballs produced since the move to git, please let me know if you encounter any issues.

goprogramming

lukaseder 1 min read

This can happen ever so easily. You adapt a table by adding a new column: You go on, implementing your business logic – absolutely no problem. But then, later on (perhaps in production), some batch job fails because it makes some strong assumptions about data types. Namely, it assumes that the two tables payments and … Continue reading How to…

sqlcase expressionfilter clauseoraclepivot

1 min read

Wow I guess it was more than a year ago that I tweeted this. Crazy how time flies by. Anyway, here’s my rationale: When I update one line of code I feel like I have to put in a long explanation about its side effects, why it’s fully backwards compatible, and why it fixes some issue #xyz. When I refactor…

25 Feb 2015

lukaseder 1 min read

The Modern SQL Twitter account (by Markus Winand) published a hint about how to extract a date part in SQL: The right way to get a part of a date/time is: EXTRACT(YEAR FROM CURRENT_DATE) = 2015http://t.co/UNLyUoQdVb Retweet to spread the word! — Modern SQL (@ModernSQL) February 24, 2015 Is it true? Yes it is, in … Continue reading How to…

sqldatedate partsextractsql standard

Dave Cheney 1 min read

Over the last year I have had the privilege of travelling to meet Go communities in Japan, Korea and India. In every instance I have met experienced, passionate, pragmatic programmers ready to accept Go for what it can do for them. At the same time the message from each of these communities was the same; […]

goprogrammingsmall ideas

Vinícius Mello 1 min read

As someone with several years of experience in Human Resources, my job at Thoughtworks was quite different from the usual. For instance, we don’t like to call it “Human Resources”, because we don’t see people as resources. We simply call it ‘People Operations’. It took me some time to adapt to this unique and fast-paced environment, and I’ve learned a…

24 Feb 2015

Margaret Francis 2 min read

Nine months ago we released Heroku Connect, the bi-directional data synchronization service that enables developers to build Heroku apps that seamlessly interact with Salesforce data. Since then, we’ve seen developers use it to build all types of interesting apps for web and mobile, especially for eCommerce, loyalty, and Internet of Things use cases. We’ve also […] The post Heroku Connect…

newsheroku connectintegrationssalesforce

Timur Celikel 2 min read

We conducted our 3rd SI Hackathon on Feb 19th to Feb 20th. This is one of the hackathon results. Background While searching for a nice datepicker for SI I figured out that there’s nothing that is really pleasing from both technical and aesthetical perspective. Either it is an jQuery wrapped thingy, or wrapped pickaday or if […]

frontendhackathonuiuxangularjs

Per Fragemann 3 min read

We conducted our 3rd SI Hackathon on Feb 19th to Feb 20th. This is one of the hackathon results. Background My previous Hackathon project was way too ambitious, so I decided to pick something easier this time, which would also help reduce our support load a bit. A frequent pain point is that client admins […]

backendhackathonicalical4j

lukaseder 1 min read

Every framework introduces a new compromise. A compromise that is introduced because the framework makes some assumptions about how you’d like to interact with your software infrastructure. An example of where this compromise has struck users recently is the discussion “Are Slick queries generally isomorphic to the SQL queries?“. And, of course, the answer is: … Continue reading jOOQ vs.…

javascalajooqormslick

Vishnu Narang 1 min read

"Curiosity!" - The word I connect with the most and one that motivates me in life. Right after finishing an engineering degree in computer technology, I joined Thoughtworks as an application developer. The journey for every grad Thoughtworker from around the world starts with a six-week training at Thoughtworks University . It was one of the best phases of my…