~/devreads

25 Feb 2015

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…

Robert Jakech 1 min read

Nobody intentionally erases the memory of when you first fall in love. In my case, it was love at first sight. I was only 19 years old. It was when I stepped into a bank, in the interiors of Uganda, 8hrs away from Kampala. I was at the bank to pay my high school tuition fees. That’s when we met.

Mike Biggs 1 min read

BresicWhitney is a lifestyle property group serving modern buyers across inner Sydney, Australia. They saw an opportunity to shake up the real estate industry in Australia. They had an idea that would give buyers the information they needed - instantly. Partnering with us, we designed and tested a document delivery system.

23 Feb 2015

Dan McClure 1 min read

What we’ve come to call loyalty is badly broken. Businesses have let themselves slip into a mass-market definition of loyalty that isn’t pretty. We foster fear and pander to greed all the while pretending its love. Deeply disruptive changes are on the horizon that will make this shallow engagement obsolete. Fortunately, these same forces offer a new path for building…

22 Feb 2015

1 min read

In recent years it has become more and more common to work in different projects running on different versions of Java. There are still some running on Java 6, and there are tons already running on Java 8.

4 min read

For most people straight out of school, work life is a bit of a culture shock. For me it was an awesome experience, but a lot of the constraints were different and I had to learn to optimize for different things. It wasn’t necessarily the technology that I struggled with. The hardest part was how to manage my own projects…

21 Feb 2015

20 Feb 2015

Trey Perry 4 min read

Every holiday season, the virtual doors of your favorite retailer are blown open by a torrent of shoppers who are eager to find the best deal, whether they’re looking for a Turbo Man action figure or a ludicrously discounted 4K flat screen. This series focuses on our Big Data analytics platform, which is used to learn more […]

big dataanalyticsbigdatareporting

Sunit Parekh 1 min read

In past few years, it has become quite common for software development teams to be distributed across time-zones and comprise of multiple vendors with 50-100+ people. Agile practices encourage in-person interactions to foster collaboration, whereas, distributed and large teams force communication into the opposite direction. Therefore, it is important to achieve agility albeit with different, or modified mechanics, that work…

19 Feb 2015

Matthew Green 4 min read

The information security news today is all about Lenovo’s default installation of a piece of adware called “Superfish” on a number of laptops shipped before February 2015. The Superfish system is essentially a tiny TLS/SSL “man in the middle” proxy that attacks secure connections by making them insecure — so that the proxy can insert … Continue reading How to…

backdoorscompaniesbehavingbadlytls ssl

Jesper Joergensen 3 min read

Apps have transformed how we do almost everything. The ubiquity of mobile devices with millions of available apps mean that today, anyone can pull up an app in seconds to check their car engine, turn on the lights at home or ride a scooter across town. So far, the companies behind these apps have mostly […] The post Introducing Heroku…

news

Matt Cutts 1 min read

Whether you’re running a web service or a blog, you should always keep your software fully patched to prevent attacks and minimize your attack surface. Another smart step is to prevent full path disclosures. For example, if your blog or service throws an error like “Warning: require(ABSPATHwp-includes/load.php) [function.require]: failed to open stream: No such file […]

how toweblog blog

Emily Luke 1 min read

So what makes a good UX Designer? It’s a question that I think about a lot (and hopefully, if you are in the UX field, you think about it too). Because the field of User Experience is relatively new, we spend a lot of time trying to define what a UX designer is and what we do on a daily…

18 Feb 2015

Matthew Green 3 min read

There’s a story on Hacker News asking what the hell is going on with the Truecrypt audit. I think that’s a fair question, since we have been awfully quiet lately. To everyone who donated to the project, first accept my apologies for the slow pace. I want to promise you that we’re not spending your money … Continue reading Another…

truecrypt

lukaseder 1 min read

(unless you really override Object.equals(), of course). I’ve stumbled upon a rather curious Stack Overflow question by user Frank: Why does Java’s Area#equals method not override Object#equals? Interestingly, there is a Area.equals(Area) method which really takes an Area argument, instead of a Object argument as declared in Object.equals(). This leads to rather nasty behaviour, as … Continue reading Thou Shalt…

javaawtequalshashcodeoverloading

17 Feb 2015

lukaseder 1 min read

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:…

jooq-tuesdaysjames goughjavajava 8jooq tuesdays

Dave Cheney 7 min read

A friend recently asked me for some advice in preparing a talk for an upcoming conference. I ended up writing way more than they asked for. If you are a Nerd like me, I hope you find some of this advice helpful. Preparing the talk Read before you write Of course you should do your research […]

small ideas

16 Feb 2015

1 min read

There are two basic problems in information theory that are very easy to explain. Two people, Alice and Bob, want to communicate over a digital channel over some long period of time, and they know the probability that certain messages will be sent ahead of time. For example, English language sentences are more likely than gibberish, and “Hi” is much…

Barry O'Reilly 1 min read

I constantly hear how enterprises are poor at innovation, bad at product development and unresponsive to business change. So it begs the question, why do so many organizations get it wrong? And what are the key factors to consider when trying to innovate in large organizations?

15 Feb 2015

13 min read

There's an ongoing debate over whether "AI" will ever be good enough to displace humans and, if so, when it will happen. In this debate, the optimists tend to focus on how much AI is improving and the pessimists point to all the ways AI isn't as good as an ideal human being. I think this misses two very important…

13 Feb 2015

lukaseder 1 min read

We’ve been blogging about Java and SQL for a while now, on the jOOQ blog. Over the years, while researching interesting blog topics, we’ve discovered a lot of SQL gems in the blogosphere that have inspired our work and our passion for SQL. Today, we’re presenting to you a list of 10 articles that we … Continue reading 10 SQL…

sqlaaron bertrandalek bolenokandrs gbordimitri fontaine

Dave Cheney 1 min read

This is a short post to recognise the incredible contribution Alex Brainman has made to the Go project. Alex was responsible for the port of Go to Windows way back before Go 1 was even released. Since that time he has virtually single-handedly supported Go and Go users on Windows. It’s no wonder that he is […]

go

12 Feb 2015

Ted McCarthy 1 min read

The Next Big Thing You have likely heard by now of the Internet of Things (IoT), and perhaps, too, of the Quantified Self (or QS, for the hip). They’ll be all the rage soon, and are premised on the increasing prevalence of tiny, low-cost sensors, and the fast, cheap connections between them, that can go into our homes, our clothes,…

11 Feb 2015

Katie Boysen 3 min read

At Heroku, we love telling the stories of what our customers and partners build on the platform. We love it even more when we get a chance to talk to the development team behind a successful app. So we were excited to sit down with Steve Simpson, CTO of Ethos Solutions—a Heroku partner—to discuss how […] The post Ethos Solutions…

news

2 min read

Febrary 6 was my last day at Spotify. In total I spent more than six years at Spotify and it was an amazing experience. I joined Spotify in Stockholm in 2008, mainly because a bunch of friends from programming competitions had joined already. Their goal to change music consumption seemed ridiculous at that point, but six years later I think…

10 Feb 2015

Matthew Green 7 min read

If you haven’t read Julia Angwin’s excellent profile of GnuPG’s lead developer Werner Koch, now would be a great time to check it out. Koch, who single-handedly wrote GnuPG in 1997, has been doggedly maintaining the codebase ever since — and not getting paid very well for it. Despite good intentions on all sides, Koch … Continue reading How do…

privacyuncategorized

12 min read

I gave a talk about how to get started contributing to Chromium, but it wasn’t recorded, and my slides by themselves look like cold-medicine induced hallucinations (which, to be fair, they were). So instead, here is a giant blog post that will take you through every step from “checking out the code” to “landing the code in the Chromium repo”.…

Yahya Poonawala 1 min read

As I watched some of my fellow travellers absent mindedly throw garbage out of the window on a recent train journey, I struck a conversation with them to understand why cleanliness awareness campaigns haven’t had any impact on them. While I heard them defending themselves, it occurred to me that there is a striking similarity in the mindset behind littering…

9 Feb 2015

1 min read

Last time we saw a number of properties of graphs, such as connectivity, where the probability that an Erdős–Rényi random graph $ G(n,p)$ satisfies the property is asymptotically either zero or one. And this zero or one depends on whether the parameter $ p$ is above or below a universal threshold (that depends only on $ n$ and the property…

Andrew McWilliams 1 min read

Cross-disciplinary exploration and good times My co-founder Kent Rahman and I kicked off Hardware Hack Lab about a year ago - and the energy just keeps building and building. Those of us running the lab take our inspiration not from technology alone, but from people and interactions. We believe that innovations gain most of their richness and momentum from the…

1 min read

Neuroscience plays a big roll in our design work. This post takes a look at Sensory Memory and how animations that visually link states can improve a user's experience.

8 Feb 2015

1 min read

My most recent post goes in another direction (no, it’s still about Nim): How I start a new Nim project. Check out the article on howistart.org. Comments on Hacker News and Reddit as always.

Deepali Tendulkar 1 min read

While working with agile teams - do you constantly fear that your team will soon become a self driven team and will no longer need you? Is it always your worry that your agile team will stop giving you the importance of a PM? Fear not....... Here are 5 simple but highly effective tips that are guaranteed to make you…

7 Feb 2015

Schakko 1 min read

A few weeks ago I bought a new notebook (Dell XPS 15, 15″, 512 GByte SSD, Core i7) for my after-work work and home usage. First of all: it is an awesome fast piece of hardware. Fedora 21 boots up in 3 seconds, Eclipse (STS) starts up in around 7 […] The post Dell XPS 15, Linux and HiDPI appeared…

linux

6 Feb 2015

Michael Friis 2 min read

Today we’re announcing the general availability of GitHub integration for Heroku. When enabled, GitHub pushes are deployed immediately to linked Heroku apps. This is a big step forward for people working on apps with source managed on GitHub and deployed to Heroku. The integration has been in beta in Heroku Dashboard for a while, and […] The post Ship Code…

news

5 Feb 2015

lukaseder 1 min read

There has been a lot of hype about the buzzword “web scale“, and people are going through lengths of reorganising their application architecture to get their systems to “scale”. But what is scaling, and how can we make sure that we can scale? Different aspects of scaling The hype mentioned above is mostly about scaling … Continue reading Top 10…

javajava 8anti-patternsenummapenumset

Ritika Nanwani 1 min read

In the two and a half years that I have been at Thoughtworks, I have been part of three different projects and have worked out of three locations. My current project team is the biggest I have ever worked with. We are working on the development of a Global Web Transformation Platform for the website of one of the leading…

Ola Bini 1 min read

I spent the days between Christmas and New Years in Hamburg, Germany at the Chaos Communication Congress. I had a fantastic time as usual, and there were a lot of great discussions and talks. I wanted to quickly cover the new revelations that Jake Appelbaum and Laura Poitras dropped on us on a Sunday evening. The video can be found…

Carla Suárez 1 min read

In January 2014, I began my journey at Thoughtworks Quito. Prior to that, I was a journalist who never really enjoyed technology. However, when I worked as a writer for a tech magazine, I got absorbed into the world of technology. I got interested in Software Development after I heard a talk by Rebecca Parsons; she was a big inspiration.…

Dan McClure 1 min read

What if there were no more stores? Would everything be sold online and the streets be choked with UPS trucks? It's unlikely. Few major transformations are so neat and tidy.

4 Feb 2015

Koichi Sasada 10 min read

This article introduces incremental garbage collection (GC) which has been introduced in Ruby 2.2. We call this algorithm RincGC. RincGC achieves short GC pause times compared to Ruby 2.1. About the Author: Koichi Sasada works for Heroku along with Nobu and Matz on C Ruby core. Previously he wrote YARV Ruby's virtual machine, and he […] The post Incremental Garbage…

engineeringdeveloper toolsperformance optimizationruby

1 min read

I know, everyone uses Travis. I have nothing against it. But in case you want to test and/or use Shippable, this might be just the guide for you. I will also show how to setup those nice tabs with the test and coverage reports.

3 Feb 2015

lukaseder 1 min read

We’ve been blogging a lot about the merits of modern SQL on the jOOQ blog. Specifically, window functions are one of the most fascinating features. But there are many many others. Markus Winand, author of the popular book SQL Performance Explained has recently given a very well-researched talk about modern SQL. We particularly like his … Continue reading Still Using…

sqlmarkus winandmodern sqlsql 92sql performance

11 min read

It's generally accepted that any piece of software could be compromised with a backdoor. Prominent examples include the Sony/BMG installer, which had a backdoor built-in to allow Sony to keep users from copying the CD, which also allowed malicious third-parties to take over any machine with the software installed; the Samsung Galaxy, which has a backdoor that allowed the modem…

Jonny Schneider 1 min read

Joining strategy together with the execution of the right solution challenges most teams today. It’s difficult for many reasons. Defining a strategy is not a static exercise. Predicting the future is difficult, full of uncertainty, and new information is always being discovered. Complicating things further, teams often divide responsibility for strategy and execution. This makes it harder to adapt to…

2 Feb 2015

lukaseder 1 min read

There has been an interesting discussion on reddit, the other day Static Inner Classes. When is it too much? First, let’s review a little bit of basic historic Java knowledge. Java-the-language offers four levels of nesting classes, and by “Java-the-language”, I mean that these constructs are mere “syntax sugar”. They don’t exist in the JVM, … Continue reading Top 5…

javaanonymous classesinner classeslocal classesnested classes

1 min read

Last time we left off with a tantalizing conjecture: a random graph with edge probability $ p = 5/n$ is almost surely a connected graph. We arrived at that conjecture from some ad-hoc data analysis, so let’s go back and treat it with some more rigorous mathematical techniques. As we do, we’ll discover some very interesting “threshold theorems” that essentially…

1 Feb 2015

1 min read

Back in January of 2012, Russ Cox posted an excellent blog post detailing how Google Code Search had worked, using a trigram index. By that point, I’d already implemented early versions of my own livegrep source-code search engine, using a different indexing approach that I developed independently, with input from a few friends. This post is my long-overdue writeup of…

Nathan Jones 1 min read

Ngaji gurrijin! [Hello Everyone!] In late 2014, our Perth team delivered a mobile language app called Yawuru Ngan-ga for the Yawuru indigenous community from Broome in Western Australia. We open sourced the framework so other indigenous communities can develop similar apps of their own more easily. We were approached by Mabu Yawuru Ngan-ga, the language centre for the Yawuru community,…

31 Jan 2015

30 Jan 2015

jonskeet 3 min read

The problem Invoking event handlers in C# has always been a bit of a pain, because an event with no subscribers is usually represented as a null reference. This leads to code like this: It’s important to use the handler local variable, as if instead you access the field twice, it’s possible that the last … Continue reading Clean event…

c# 6

29 Jan 2015

lukaseder 1 min read

Writing good APIs is hard. Extremely hard. You have to think of an incredible amount of things if you want your users to love your API. You have to find the right balance between: Usefulness Usability Backward compatibility Forward compatibility We’ve blogged about this topic before, in our article: How to Design a Good, Regular … Continue reading You Will…

javajava 8apiapi designapi evolution

Arjun Khandelwal 1 min read

When you work at Thoughtworks, it is tough to miss references to Jan Swastha Sahyog(JSS), a voluntary, non-profit, registered society providing low cost preventive and curative health services to the people from tribal and rural areas of Bilaspur, Chhattisgarh, part of central India. Thoughtworks is helping them using Bahmni, an open source hospital system for healthcare providers in low-resource settings.

28 Jan 2015

Tarso Aires 1 min read

How often have we been through a pairing experience that we felt was really productive and rewarding, from a professional and a personal point of view? We can also think of many other times we were left wondering why that specific pairing situation wasn't as pleasant and effective as it could be. The benefits of pair programming for software project…

27 Jan 2015

Darren Smith 1 min read

People new to leadership quickly find themselves having to deal with all sorts of questions. As a new leader, how better to show that you are the right person for the job than by demonstrating your ability to solve any problem that comes your way? As you solve one problem, however, another is quickly there ready to take its place.…

26 Jan 2015

1 min read

Last time we left off with the tantalizing question: how do you do a quantum “AND” operation on two qubits? In this post we’ll see why the tensor product is the natural mathematical way to represent the joint state of multiple qubits. Then we’ll define some basic quantum gates, and present the definition of a quantum circuit. Working with Multiple…

8 min read

In previous blog posts, we discussed how SoundCloud has been moving towards a microservice architecture. Soon we had hundreds of services, with many thousand instances running and changing at the same time. With our existing monitoring set-up, mostly based on StatsD and Graphite, we ran into a number of serious limitations. What we really needed was a system with the…

25 Jan 2015

1 min read

In my last two posts, “What is special about Nim?” and “What makes Nim practical”, I forgot the important conclusion - why I personally have decided for Nim in favor of Rust, C++, Python and Haskell: Nim is not the fastest language, it’s not the easiest language to write in and it surely has some flaws that should be fixed.…

Dave Cheney 5 min read

In my previous post, I doubled down on my claim that Go’s error handling strategy is, on balance, the best. In this post, I wanted to take this a bit further, and prove that multiple returns and error values are the best, When I say best, I obviously mean, of the set of choices available […]

goprogrammingerrorsexceptionsmonads

24 Jan 2015

Craig Kerstiens 4 min read

In a world where microservices continue to grow, offering better agility for iterating quickly, many of the tools you use in building applications must adapt. Microservices bring together challenges in a variety of ways for the services you consume – logging and monitoring tools now need a broader perspective than that of a single app, […] The post Expanding the…

news

12 min read

Does it make sense for me to run ads on my blog? I've been thinking about this lately, since Carbon Ads contacted me about putting an ad up. What are the pros and cons? This isn't a rhetorical question. I'm genuinely interested in what you think. Pros Money Hey, who couldn't use more money? And it's basically free money. Well,…

1 min read

Sketchnotes are a great way to document a talk or event. They allow you to doodle and get a little bit creative with your content recording.

23 Jan 2015

Matt Cutts 1 min read

Earlier this month I did a talk at the University of North Carolina at Chapel Hill about lessons learned from the early days of Google. The video is now online and watchable, or you can watch it on YouTube: We did the talk in a pretty large room, and the camera at the back of […]

google seomovies videos