Best Of The Week – 2011 – W15
Time for the “Best Of The Week” links for the week that just passed. Here are some links that drew JavaCodeGeeks attention:
* Thinking Functional Programming with Map and Fold in your Everyday Java: An article discussing how the functional programming paradigm of map/fold can be used in Java. As mentioned, map/fold functionality exists in Java but developers have to implement it manually, whereas it is a core functionality in FP languages.
* Joint Forces: From Multithreaded Programming to GPU Computing: This article discusses two major hardware trends, the rise of many-core CPU architectures and the inclusion of powerful graphics processing units (GPUs) in every desktop computer. It explains how the GPU could be leveraged in order to achieve high application performance, the GPU architecture is explained and the best CPU-GPU practices are discussed.
* SmartGWT – Common Pitfalls: Some quick pointers on SmartGWT and some of its common pitfalls are presented in this article. Also check out our Getting Started with SmartGWT for awesome GWT interfaces and Advanced SmartGWT Tutorial, Part1 and Part 2 tutorials.
* How is it even possible for code to be this bad?: This post was mentioned by one of our readers in the comments of our “Code quality matters to the customers. A lot.” article. It examines parts of the source code written for the undoubtedly successful open source project Jenkins (ex-Hudson) and brings to light some pieces of bad code included.
* Troubleshooting response time problems – why you cannot trust your system metrics: This article presents a hands-on example on how to troubleshoot response time problems in an application. All the components in the stack are examined and the request is monitored end-to-end. On this approach, system metrics can be helpful but they do not provide a definitive answer only by themselves.
* Twitter Search is Now 3x Faster: A post by Twitter engineering explaining how their new search feature is now 3 times faster. The infrastructure has changed, migrating from MySQL back-end and Ruby On Rails front-end to Lucene search and a custom Java based server named Blender. Moreover, the asynchronous nature of execution in the new system was achieved by using Netty, a Java NIO server.
That’s all for this week. Stay tuned for more, here at JavaCodeGeeks.