~/devreads

2 Aug 2014

1 Aug 2014

jonskeet 7 min read

A few days ago, I was watching Dustin Campell’s excellent talk from TechEd 2013, “Essential truths everyone should know about performance in a large managed code base”. I highly recommend it, and it made me think a bit more about Noda Time’s performance. (It doesn’t take much to make me think about Noda Time’s performance, … Continue reading Object pooling…

performance

lukaseder 1 min read

So, I’m experimenting with Scala because I want to write a parser, and the Scala Parsers API seems like a really good fit. After all, I can implement the parser in Scala and wrap it behind a Java interface, so apart from an additional runtime dependency, there shouldn’t be any interoperability issues. After a few … Continue reading The 10…

javajava 8scala

31 Jul 2014

Jonny Schneider 1 min read

Designing for mobile is different, and it will continue to change as modern mobile technology progresses at a pace that’s hard to imagine. As technology enables new ways of engagement - and culture shifts in response - keep the following principles of design in mind, to help steer you in the right direction.

30 Jul 2014

kevin 1 min read

You should sign up for a VPN service! Yes you, the casual Internet browser. Here is why. Any time you connect from your laptop/phone to a wireless network (SFO Wifi, Starbucks, etc), anyone else on that network can read all of your traffic over HTTP, to sites like Wikipedia, Netflix, YouTube, WebMD and more. This […]

security

Margaret Francis 3 min read

In May we released the first version of Heroku Connect, a service that makes it easy to build Heroku apps that share data with your Salesforce deployment. Today we released our first major update to the service, bringing new speed and scale enhancements to all Heroku Connect users. Together, these enhancements lower latency on Heroku […] The post Heroku Connect:…

newsapisdatadeveloper toolsheroku connect

3 min read

Many years ago, I used to think that A/B tests were foolproof and all you need to do is compare the metrics for the two groups. The group with the highest conversion rate wins, right? Then, for a long period, I ran a lot of tests. I started using confidence intervals, and learned about all the pitfalls of A/B testing.…

Robin Copland 1 min read

There are no two ways about it, retailers must innovate in order to compete and succeed in today’s competitive environment. Innovation can mean the difference between being a market superstar or being forced to close up shop. Author Peter Drucker once said, “If you want something new, you have to stop doing something old.” For retailers, this is a crucial…

Nishant Verma 1 min read

Typically, distributed teams have constraints in collaborating face-to-face. I’ve been part of a distributed agile team for quite some time now. My project is distributed across two countries - India and the US. We have a small team onshore and a larger team offshore. Despite the constraints, there’s a lot that I have learnt as a project manager on the…

29 Jul 2014

clevereng 3 min read

As JavaScript has matured as a language, the module has become the primary unit of code organization. However, as with many facets of JS, modules grew organically from the developer ecosystem (as opposed to being designed as part of the language from the beginning), so they have their flaws – one being that you can […] The post Testing Private…

node

28 Jul 2014

lukaseder 1 min read

jOOQ implements your SQL statements as AST (Abstract Syntax Tree). This means that your SQL statement is modelled in a non-text form prior to serialising it as a textual SQL statement to your JDBC driver. One advantage of this is that you can freely manipulate this AST any way you want. This can be done … Continue reading jOOQ Tip…

javajooq-in-usesqlabstract syntax treeast

26 Jul 2014

kevin 4 min read

I'm setting up a new website, which gave me an excuse to try out Nix, the stateless package manager, and Docker, the tool that lets you run all of your apps in light-weight containers on a host. Nix may be a great tool, and help you avoid the possibility of moving parts in your builds, […]

usability

Matthew Green 13 min read

The last couple of months have been a bit slow in the blogging department. It’s hard to blog when there are exciting things going on. But also: I’ve been a bit blocked. I have two or three posts half-written, none of which I can quite get out the door. Instead of writing and re-writing the same posts … Continue reading…

messaginguncategorized

25 Jul 2014

jonskeet 1 min read

As some of you have noticed (and let me know), my old blog hosting provider recently moved off Community Server to WordPress. I figured that as all the links we being broken anyway, now would be a good time to move off msmvps.com anyway. The old posts are still there, but my blog’s new home … Continue reading New blog…

general

lukaseder 1 min read

Some things are just very very very VERY very important. Such as John Cleese. The same is true for Whitespace: Yes. 1080 Reddit Karma points (so urgently needed!) in only 23 hours. That’s several orders of magnitudes better than any of our – what we wrongfully thought to be – very deep and interesting technical … Continue reading Top 10…

funbikeshedbikesheddingcurly braceseclipse

Adam Herzog 1 min read

Over forty members of the San Francisco developer community headed to Thoughtworks’ SF office on July 8 for an unusual task -- hacking the World Cup.

24 Jul 2014

kevin 3 min read

I read a great blog post in college, and sadly I can't find it now, so I'll summarize. It showed a picture of Hearst Castle, and a photo of an average middle-class home, and the text of the post went something like: One of these can travel across the country in 6 hours. One of […]

todays world

Tom Clement Oketch 1 min read

It happens to the best of us - one minute you're happily coding away at your app, and then the next, for some reason, you now have to run your app's functional tests with Internet Explorer (IE)! Normally IE is not the preferred browser platform to support, but once in a while a client will come with valid business reasons…

23 Jul 2014

lukaseder 1 min read

subscribe to this newsletter here Only 8 Days Left in jOOLY Time is running so fast! The month of jOOLY is almost over – have you taken advantage of our limited-time promotional discount of 20% that we’re offering to all of your purchases in July 2014? And that’s not it, you will also get a … Continue reading jOOQ Newsletter:…

jooq-newsletterdiscountjoolyjooqjooq 3.5

Heather Malec 1 min read

More than 160 Australian executives attended Thoughtworks Live 2014 in Sydney and Melbourne on the theme ‘Customer engagement’. Speakers from leading organisations, including Woolworths, Vodafone and realestate.com.au, shared insights into how they build customer-centric organisations using smart analytics, wearable technology, in-store innovation labs, lean enterprise techniques, and more.

22 Jul 2014

kevin 5 min read

You have photos on your computer. You would probably be really sad if you lost them. Let's discuss some strategies for ensuring that doesn't happen. What you are doing now is probably not enough. Your current strategy is to have photos and critical files stored on your most current laptop and maybe some things in […]

code

kevin 1 min read

You kick off a long running job - maybe a data migration script that operates on a large data set, or you're copying a large file from one disk to another, or from the Internet to your local computer. Then a few minutes in, you realize the job is going to take longer than you […]

code

21 Jul 2014

lukaseder 1 min read

A good clean application design requires discipline in keeping things DRY: Everything has to be done once. Having to do it twice is a coincidence. Having to do it three times is a pattern. — An unknown wise man Now, if you’re following the Xtreme Programming rules, you know what needs to be done, when … Continue reading Keeping things…

javacopy pastecopypastadrymethod overloading

Hannah Fitzgerald-Kearns and Kate Logan 1 min read

In the Charity sector, a website’s improved user experience aimed at the target audience can dramatically boost online fundraising, recruit support, and share the charity’s message more effectively. Combining this with embedded analytics, to provide evidence based on real users to drive any website improvements, can have a huge impact - as Mustard Tree, a local Manchester-based charity, is discovering.

Alex Kisakye 1 min read

We all use technology in our lives today. For some, it’s a lot more than the others. As we find new ways for technology to enhance our lives and businesses, we also accumulate multiple types of physical devices and media to access technology. Newer and updated versions of existing products enter the market every few months and the fast pace…

Sameer Karl Deans 1 min read

A view into how most IT organisations structure their teams to deal with business demands and possible inefficiencies that emerge as a result. An alternate to the traditional project team composition is a way to deliver end to end features to the business, using what is known as feature teams.

18 Jul 2014

Felicity Ruby 1 min read

Thoughtworks shares concerns expressed by legal scholars, civil liberties advocates and companies about the Data Retention and Investigatory Powers Bill (DRIP) being rushed through the UK Parliament. The DRIP Bill authorises blanket communications data retention which the European Court of Justice found in April to violate the Charter of Fundamental Rights. The Court stated that data retention was a "serious…

17 Jul 2014

Scott Persinger 4 min read

Heroku Connect is a service offered by Heroku which performs 2-way data synchronization between Salesforce and a Heroku Postgres database. When we first built Heroku Connect, we decided to use polling to determine when data had changed on either side. Polling isn’t pretty, but its simple and reliable, and those are “top line” features for […] The post Heroku Connect:…

engineeringdeveloper toolsheroku connectpostgressalesforce

16 Jul 2014

jonskeet 7 min read

Introduction Recently I’ve been optimizing the heck out of Noda Time. Most of the time this has been a case of the normal measurement, find bottlenecks, carefully analyse them, lather, rinse, repeat. Yesterday I had a hunch about a particular cost, and decided to experiment… leading to a surprising optimization. Noda Time’s core types are … Continue reading Micro-optimization: the…

c#evil codeperformance

Idalin Bobé 1 min read

How do women leaders in the tech industry start their workday? On the best days, with a tasty breakfast, juicy fruit, strong coffee and stimulating conversation with other tech leaders. This is exactly how Thoughtworks welcomed the newly formed social group Women of Color in Tech on Friday, June 20, 2014.

15 Jul 2014

Craig Kerstiens 1 min read

Today we’re announcing the general availability of the new PHP support on Heroku. The key features, in case you missed them when we outlined them in the beta announcement, include: New modern runtimes in HipHop VM Packaging and first class frameworks Heroku XL support for large scale enterprise apps We’re very happy to make this […] The post The new…

news

Itamar Hassin 1 min read

All variants of Driven Development (henceforth the ‘xDDs’) strive to attain focused, minimalistic coding. The premise of lean development is that we should write the minimal amount of code to satisfy our goals. A way to ensure that code is able to solve the given problem and respond to change over time is to articulate the problem in machine-readable form.…

Fiona Lee 1 min read

Meaghan Lewis is an imposter, and so are you. If you’re afflicted with Imposter Syndrome, as 70% of successful people are, you might feel like a fraud because your accomplishments are inadequate. Many people with Imposter Syndrome attribute their success to luck or timing, instead of their own hard work. They report “waiting to be found out.” Ironically, imposters are…

Thoughtworks 1 min read

Today, Thoughtworks joined tens of thousands of citizens and dozens of companies in filing comments with the FCC in opposition to proceeding 14-28, the Open Internet Remand. Add your voice to the growing chorus in defense of the open Internet by submitting a comment here. To Chairman Wheeler and the FCC Commissioners:

14 Jul 2014

1 min read

A while back I announced a preprint of a paper on coloring graphs with certain resilience properties. I’m pleased to announce that it’s been accepted to the Mathematical Foundations of Computer Science 2014, which is being held in Budapest this year. Since we first published the preprint we’ve actually proved some additional results about resilience, and so I’ll expand some…

lukaseder 1 min read

Imagine you want to collect detailed usage statistics to tune your Oracle database, e.g. if you want to have A-Rows and A-Time values in your execution plans (by default, Oracle only reports E-Rows and E-Time with “E” for “Estimated”. But usually, you will care more about the “A” for “Actual”). All you have to do … Continue reading Logon Triggers:…

sqllogon triggersoraclestatisticsstatistics level

13 Jul 2014

Dave Cheney 3 min read

A few months ago I upgraded the hardware my avr11 project ran on from the atmega2560 8bit micro to the SAM3x based Arduino Due. In doing so I lost access to the excellent QuadRAM memory expansion board, and had to find another solution for accessing the micro SD card. For the moment, I’ve decided to go […]

hardware hackingardunioavr11duespi

12 Jul 2014

3 min read

To learn some Nim I held a talk about it at the GPN14 (in German, Slides). Afterwards I started solving Rosetta Code tasks in Nim to get a better feel for the language and standard library. That also made me discover some rough edges in the language, but luckily the community, albeit small, is active and competent. All the small…

11 Jul 2014

Dave Cheney 3 min read

Update this post is also available in Japanese. This is a post about an experimental tool that I have been working on. gcvis is a simple way of visualising the operation of the garbage collector within a Go process. Here is a screenshot of it in operation. The rest of this article explores how gcvis […]

goprogramminggcgcvisperformance

10 Jul 2014

Ashwini Ingle 1 min read

In the past couple of years, I’ve worked as a part of the Thoughtworks TechOps delivery team. Our work largely entails maintaining and enhancing internal system portals for employee information, resource management, client management etc.

9 Jul 2014

Jennifer Smith 1 min read

Everybody is talking data in online industries, but how can organisations harness these insights and turn them into real sources of competitive advantage? One way is by blending statistics and machine learning techniques with scale.

8 Jul 2014

Scott Persinger 2 min read

Force.com and Heroku are both part of the Salesforce1 platform. There are lots of great ways to leverage force.com from your Heroku app. This article will give an overview and pointers to get you started. Heroku Connect The easiest way to link force.com and Heroku is to use our two-way data synchronization service Heroku Connect. […] The post Using force.com…

engineeringdeveloper toolsheroku connectsalesforce

7 Jul 2014

Rand Arete 1 min read

WebSocket support was introduced as a Labs feature last year, and we went through extensive testing and a number of technical iterations to improve performance and to provide a predictable compliance target. Thanks to great interaction with the community and early feature users, we now have a fast and robust solution available in production. Why […] The post WebSockets now…

newsdeveloper tools

lukaseder 1 min read

Table-valued functions are an awesome thing. Many databases support them in one way or another and so does PostgreSQL. In PostgreSQL, (almost) everything is a table. For instance, we can write: … and believe it or not, this is a table! We can write: And the above will return: +----+ | v2 | +----+ | … Continue reading PostgreSQL’s Table-Valued…

javajooq-developmentsqljooqpostgresql

1 min read

Greedy algorithms are among the simplest and most intuitive algorithms known to humans. Their name essentially gives their description: do the thing that looks best right now, and repeat until nothing looks good anymore or you’re forced to stop. Some of the best situations in computer science are also when greedy algorithms are optimal or near-optimal. There is a beautiful…

Dan McClure 1 min read

For years it’s been impossible to read a magazine or attend a seminar without having it drummed into our heads that customers are at the center of a successful business. That’s become an obvious truth. What’s not as obvious is that over the last dozen years we have actually progressed through three distinct eras of customer engagement and that the…

Gabriel Notari 1 min read

Do you really listen to all the people you lead? Not only listen to what they say, but effectively process the message, put in some thought and have an opinion about it. “My boss doesn’t listen to what I say”, - this gripe is prevalent in every industry, and I’m sure you’ve been through this yourself or know someone who…

6 Jul 2014

2 min read

I have been running DDraceNetwork for 1 year, which started out as a little server of a Teeworlds modification called DDRace. It has turned into the biggest project within Teeworlds, offering servers in 6 countries with thousands of players and dozens of mappers. We also offer a custom server and client (Windows, Linux, OS X, Android). Now it’s time to…

5 Jul 2014

Coleman Collins 1 min read

I hear the following phrase once a month, sometimes more frequently: "I couldn't do what you do." This is a nice thing to hear from colleagues and clients, but it is also nonsense. Not only is visual design a skill set that anyone with the inclination can learn, it's something that everyone on a digital product team already does.

3 Jul 2014

Matt Cutts 3 min read

I wanted to let folks know that I’m about to take a few months of leave. When I joined Google, my wife and I agreed that I would work for 4-5 years, and then she’d get to see more of me. I talked about this as recently as last month and as early as 2006. […]

google seopersonal

2 min read

Here at SoundCloud, in order to provide counts and a time series of counts in real time, we created something called Stitch. Stitch was…

Andy Robinson 1 min read

In Part 1 we discussed some of the reasons behind moving to a service oriented content management system, and went into some detail on how to commit an item using the Github API. Thus far I have managed to skate over the details of how we mapped the operations the content editors wanted to perform (save, publish) to the functionality…

Melissa Doerken 1 min read

A few weeks ago, our team started working at the “pace of innovation”, or so I’ve called it. We hit a certain cadence that allowed us to innovate -- to create and deliver new ideas into production. How’d we do it? We threw out routine process and structure and started embodying certain patterns, the following of which I believe were…

2 Jul 2014

lukaseder 1 min read

Subscribe for this newsletter here jOOLY 2014 20% Discount Offering Have you been evaluating jOOQ for a while now, still hesitating to purchase licenses? Or are you an existing customer and looking into licensing more workstations for your team? This is your chance! Get 20% off all your jOOQ purchases in the month of jOOLY … Continue reading jOOQ Newsletter:…

jooq-newsletterdiscountflywayjinqjooly

Camilla Crispim, Gislene Pereira, Lilian De Munno 1 min read

Across all our offices, we engage and support initiatives that empower women and remove gender stereotypes, while encouraging more women to pursue a career in technology. One such program is the Project Program My Future, in which we are partners with IFRN.

1 Jul 2014

30 Jun 2014