skip to main |
skip to sidebar
- A short overview on what the differences are using Java in Google App Engine (and shortly mentioned in MS Azure) compared to "regular" JEE apps.
- Three Java serialization options compared: Java Serialization, JSON Serialization and Google Protocol Buffers. Check also the comments here. Another benchmarking set can be found here.
The protocol buffers solution was fastest in this test.
- The third edition of Mastering EJB, is now available for free download off of TSS as PDF. The new edition includes more than 30 percent revised material and five new chapters covering security, integration, best practices, new EJB 2.1 features, as well as the latest open source Java solutions
- Interesting read on the IT infrastructure (most of the article) in F1 racing.
Some quotes: "each car has roughly 100 sensors placed in key data capture positions and send anywhere up to 20 gigabyes of data back to the pits during a race."
"They are collecting four to six megabytes per lap. It depends on the track layout and the quality of the coverage but we transfer about 70 per cent in real time to the garage or the pits". And, did you know there's a connection with the factory during the race?
- A funny observation that CSS has quite something in common with Aspect Oriented Programming! Includes a table which shows the similarities.
- Real world cases used to describe vertical scaling for Java EE applications. Definitely check also the comments.
- An interesting theory and technology: host-proof hosting. This is a technique where the browser encrypts the data to be stored on the server, such that the host (application) only sees encrypted data, thus completely preventing the host from seeing the actual contents of the user data. Thus enables for "zero knowledge web applications". Two examples of implementations are Clipperz (sourcecode partially AGPL v3) and Passpack (sourcecode MIT license).

- Visualize your code in CVS with this Visual Code Navigator. Too bad that's CVS, which is quite old. Hopefully there'll be an SVN version soon!
- Sun this week released their
Sun Java Mobile Enterprise Platform 1.0: "MEP is a framework for developing mobile enterprise applications. Based on robust synchronization technologies, it enables enterprise users to synchronize enterprise data (from back-end systems like Siebel or SAP) with their mobile devices. In a nutshell, MEP enables enterprise users to carry the enterprise in their pockets". You can get a free evaluation here.
- Nice overview showing how a Ruby on Rails Facebook application named "Friends for Sale" scaled to handle 200 requests/second and 300M page views per month. Includes the used hardware, software, # of visitors etc.
- This is a short article describing Comet, one of the better known technologies to push events from the server to the browser client. Also explains the name Comet (I for example thought it was a software product, not a technology).
- Reference to a thorough thesis (conclusions in the article) on performance of AJAX applications for 12 frameworks on mobile devices. Also 5 larger AJAX websites on mobile devices were compared.
- Nice (but not very elaborate) comparison of 9 features and benchmark of four JEE 5 servers: JBoss 4.x (OSS), Glassfish 2.1 (OSS), WebSphere 2.0 CE (OSS) and WebLogic 10. Check the reference to the jRealBench (zip) benchmarking tool.
- IBM has just opened their Jazz tool for beta. This post is a short description of installing and using it. Jazz "is a collaborative development environment product based on Eclipse, designed to support the application of RUP, which is itself an interative software development process framework built around iterative". But as you can see in the comments, it's not really restricted to RUP.
- Nice routing pattern for webservices that need to provide both synchronous and a-synchronous calls. You can even make the router such that depending on certain criteria (like load, response time), it will either turn the call into an a-synchronous call when needed. Disadavantage of this approach is of course that the caller has to be able to support both an a-synchronous and a synchronous version of each call. Related patterns you can find in these seven Self-Service: select application patterns.
- An effort to give answer to the question whether Tomcat is an application server or not. GREAT introduction to JEE btw, so good read for beginners or as a refresher. The answer: Tomcat does not support the entire Java EE stack: no distributed transactions, EJBs, and JMS.
- IBM made their Jazz tool available for the public. It can be used to "build a scalable, extensible team collaboration platform for integrating work across the phases of the development lifecycle." Note that it is not fully opensource yet. There's also a Mylyn connector available for Jazz.
- Version 3.0.0 of HTML Purifier has been released. It will scan your HTML for malicious XSS code, check for compliance and will try to fix your code.
- Summary of a statement made by Bruce Eckel in this article that Java should not change much anymore: it should stop growing and just become stable, and Sun should focus on optimizing/extending the JVM. Interesting considerations.
- And finally for this week, for the developers among us, a bunch of shortcut keys in Eclipse you might not know about.
- The Open Source hardening Project of the US Homeland Security department together with Coverity has led to the milestone where in 11 opensource projects all main bugs have been fixed. These 11 have been moved up to the new level Rung 2. Here you can see all the results of the scan.
- Nice article (but quite high-level) on how HP is transforming its IT (hardware and software) into a Servce Oriented Architecture using governance, Struts, SOAP, WSRP4J (portlets) and the Spring Portlet MVC. They are reducing the number of datacenters from 85 to 6, and each application that wants to be released gets a review whether it complies to the published standards for those datacenters.
- Eoin Woods, one of the IASA Fellows has written this article on the top ten software architecture mistakes. Most are quite obvious, but getting reminded of them can't do any harm! If you're in a hurry, here's short summary.
- Ten Java Open Source caching solutions shortly described. Different types of caching mechanism are shown: distributed, local, in-memory. Hmm, who was first...
- Interesting and provocative point of view in this blog "Why most large-scale Web sites are not written in Java". Quite an extensive discussion can be followed in this TSS refering post. I think the main reason is that the use of the programming language and stack depends on the requirements of the application. Most of the example websites given do not have serious transactional requirements, including transactions that would run over multiple systems, requiring XA. For those example websites no real big harm is done when a transaction occasionally fails. Note also that most Java/JEE implementations use at least some part of the LAMP stack, like Linux and Apache. See here for other reasons.
- Danny Ayers is wondering whether JSON is missing a DTD or XSD. Because if you take an arbitrary JSON document from the Internet, you can't tell what it is containing; and usually you can't find it out either. Is that a good or bad thing? I'd say you've got XML and its associated XSD or DTD for interfaces that require a well-defined interface that can be passed on to other, potentially external, 3rd parties without too much effort. For interfaces that stay internal to your system (for example an AJAX call from the browser to the server), adding the extra overhead of some validation format like an XSD or DTD causes just too much overhead, losing the gain of the compactness of JSON. Data is validated anyway by the frontend and backend, though with a bit more programming effort.
- Interesting article on TSS on how to integrate user "presence" (like the status of a user in instant messaging) into JEE (J2EE) environments. More uses beside IM come to mind for JEE applications. The article suggests using XMPP, also known as Jabber. Session Initiation Protocol (RFC-3856) could also have been used but XMPP has been chosen because of the maturity of its existing server and Java implementations. In the example the opensource software OpenFire together with Smack from JiveSoftware Inc is used. Shown is a solution with JMS.
- This guy, Derek Silvers, tried to rewrite his website (built with PHP) using Ruby on Rails. After 2(!) years he was only halfway. So he switched back to building it in PHP. The most interesting part of the post are the first 3 bullets in the "Inspired by Rails" part, where he lists his lessons learned:
- all logic is coming from the models, one per database table, like Martin Fowler’s Active Record pattern.
- no requires or includes needed, thanks to __autoload.
- real MVC separation: controllers have no HTML or business-logic, and only use REST-approved HTTP. (GET is only get. Any destructive actions require POST.)