skip to main |
skip to sidebar
- A summary of an interview with Erich Gamma, Richard Helm, and Ralph Johnson, three of the Gang of Four who wrote Design Patterns: Elements of Reusable Object-Oriented Software 15 years ago. The full interview here.
- Five web frameworks comparison: Shale, Struts, Wicket, WebWork, Rails, JBossSeam, MyFaces and Spring.
- Jeff Dean (Google Fellow) on large-scale computing (PDF) during Ladis 2009. Interesting numbers regarding reliability and availability for hardware, like 1-5% of your disks will die. And even if you got very reliable servers with MTBF of 30 years, if you have 10000 of those, that means see one fail each day! And: "a web search touches 50+ separate services, 1000s machines". Some more of these quotes:
- "Better to give users limited functionality than an error page"
- "Ensure your design works if scale changes by 10X or 20X but the right solution for X often not optimal for 100X"
- Monitoring: "If your system is slow or misbehaving, can you figure out why?"
- "Future scale: ~106 to 107 machines, ~1013 directories, ~1018 bytes of storage, spread at 100s to 1000s of locations around the world, ~109 client machines"
Other subjects touched: MapReduce and BigTable.

- Blogpost that briefly touches a few types of complexity encountered in large software (web) projects.
- A quite in-depth article on creating highly-scalable components in Java. Described are the ideas used to create the concurrent Java components in the Amino Library Project (a set of concurrent building blocks).
- Another SOA Design Pattern sample chapter from Thomas Erl' book "SOA Design Patterns": "Service Governance Patterns, comprising a number of 8 patters. Compatible Change and Version Identification deal with service versioning. Termination Notification addresses the final phase of a service, it’s retirement. Service Refactoring explains how to deal with changing service contracts. Service Decomposition, Proxy Capability, and Decomposed Capability include techniques needed to express coarse-grained services through multiple fine-grained ones. Distributed Capability helps increasing service scalability through processing deferral."
- To ESB or not to ESB? Including a nine points checklist. Note that the article is from the creator of Mule (a lightweight ESB). Check also the comments here.
- Interesting hack to reduce startup latency for mobile devices with HTML5: put the Javascript code in comments (thus /* */), such that is immediately downloaded but not evaluated. Then to load it when needed, parse the text, strip out the comment-tags & do an eval().