REST in Practice

by John Turner

Posted on November 09, 2011

Ever since Fielding published his dissertation on Architectural Styles and the Design of Network-based Software Architectures, the momentum behind the Representational State Transfer (REST) architectural style has been building apace. Of course, as with the many new technologies, practices and theories adopted by the software industry, REST is progressing along what Gartner call the Hype Cycle.

Since Fielding’s dissertation, REST has been adopted widely by the software industry and a number of frameworks have evolved that support the development of RESTful services on today’s platforms. The availability of frameworks to simplify the implementation of RESTful services has further accelerated the adoption of REST.

As with any new technology, creating frameworks that make it easy to adopt that technology can, and in the case of REST has, become a double edge sword. I say this because making technology adoption easy also makes it easy for those implementing that technology to get by with a minimum of understanding. ‘REST in Practice’ aims to inform those adopting REST by providing a compressive guide to REST and building the readers knowledge progressively from start to finish.

Read More

I'm Feeling Lucky: The Confessions of Google Employee Number 59

by John Turner

Posted on November 09, 2011

I think people in the technology industry are universally interested in the inner workings of Google. Over the years, so many myths and legends have been born that allude to the largess and brilliance of the search giant. Frequently people post blogs purporting to provide some insight into the interviewing process, salary and bonus structures, staff parties, experimental technology, new market entry etc. Given this interest, I suspect that I’m Feeling Lucky by Douglas Edwards has/will do rather well.

It may or may not be due to my technology background, but I found the book a compelling read. The google story on its own is one of a meteoric rise that pitted a young, highly motivated and infinitely talented company against the establishment. More interesting for me though was the personal experiences and the insight into how all those people, individually very talented, melded together to create the biggest technology success of the internet era.

I thoroughly enjoyed how, chapter after chapter, Douglas described the significant milestones of Google’s growth story. Each milestone describes how the individuals involved were challenged and how they responded to the challenge. Naturally, the interactions with Larry and Sergey were of particular interest.

Feature Toggle and Branch by Abstraction

by John Turner

Posted on August 16, 2011

Over the past couple of days, I have spent quite a bit of time reading around code branching strategies and the consequences of choosing one strategy over another. I found that Advanced SCM Branching Strategies by Stephen Vance gives a good overview of the practice and some of the considerations to be made when choosing a branching strategy.

Or course more recently, and perhaps as a consequence of SCM tools becoming more adept at textual merging, feature branching has risen to prominence. As he is inclined to do, Martin Fowler articulately expresses his views on why feature branching should be avoided when possible and the inherent conflict between feature branching and continuous integration. I must say that I find it hard to disagree with his reasoning (see also a short Q & A with Jez Humble

So what alternative does he propose? Martin suggests applying Feature Toggle and Branch by Abstraction. I’ll leave it to you to read the background, but the removal of branching and merging from a teams development activity is certainly a big carrot.

Paging Hibernate Query Results

by John Turner

Posted on July 11, 2011

When developing applications that provide create, read, update and delete (CRUD) functionality, it is often a requirement to search on and present large data sets. This requirement is usually fulfilled by providing the ability to page through the result set, presenting a single page at a time.

For example, consider a very simple data set containing 10 integers.

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

If I want to view the second page of this data set and the page size is 3, I will expect the page to contain the following data:

{4, 5, 6}

Typically, we will also want to present the total number of results in the result set (i.e. 10) so that we can establish the total number of pages available (assuming a static result set). We will often present shortcuts to specific pages and a nextprevious page link.

Now if we imagine that we scale this example, it is generally more acceptable to retrieve this data from the data store in pages, rather than retrieving the entire data set and presenting it in pages. This approach is made more compelling as the consumption of the data moves further away from the data itself (as in n-tier architectures).

I present below one way that this functionality can be supported using Hibernate Named Queries. You can find the source code on GitHub.

Read More

Agile Retrospectives : Making Good Teams Great

by John Turner

Posted on June 20, 2011

The principle purpose of an Agile retrospective is to reflect on the recently completed Sprint in order to adapt the teams practices and improve the way in which they deliver software. Most teams will begin by asking three simple questions:

  • What went well?
  • What did not go so well?
  • What changes can we make to improve?

Early on, I took this rather simplistic approach and to be quite honest very little insight was generated. There were still benefits in that the team were sharing their experiences and learning from one another but this became stale very quickly. I needed to learn more about facilitating Agile retrospectives and so invested in a copy of Agile Retrospectives by Esther Derby and Diana Larsen.

Read More
About - MonkeyLittle

Thoughts on Software Engineering, Infrastructure and everything in between.

Twitter Feed