Showing posts with label open source. Show all posts
Showing posts with label open source. Show all posts

Sunday, August 2, 2009

Best of this Week Summary 27 July - 2 August 2009

  • "A discussion on the lifecycle processes of SOA governance, how SOA governance can become more mature, and how a maturity model can be used to support this growth, and the role of the architect in SOA governance, providing some practical guidelines for architects in a maturing SOA environment."

  • Two great interviews with Jeff Davis about his "Open Source SOA" book, recently released. The first interview has mainly questions about the book itself. The second interview has quite some questions about stuff not in the book. A free excerpt of 1 chapter of the book is also available for download! The book itself describes many open source SOA products, helping you in selecting the right one and how/where to use it. Btw, CEP = Complex Event Processing. See for more here.

  • jQuery 1.3 optimisation & advanced tips including example code on: unbind(), live()/die(), Ajax Queue and Ajax Sync, and Namespaces.

  • Summary of implementations of the Builder pattern suggested by Joshua Blog during JavaOne 2007. Note that it is different from the GoF pattern.
    Related: interview with Joshua Bloch with many tips and best practices, most referring to Effictive Java 2nd Edition. E.g: generics, enums, annotataions, wildcards, lazy initialisation, strange things about Java.

  • Kind of obvious observation (but still worth mentioning :) viewpoint on scalable web architectures and application state: don't store everything in the database, but treat (and "store") application state, cached data, and persistent data differently, using dedicated tools to manage these.

  • This week Wicket 1.4 has been released.

Sunday, July 26, 2009

Best of this Week Summary 20 July - 26 July 2009

Sunday, June 21, 2009

Best of this Week Summary 15 June - 20 June 2009

  • Finally I found a good summary of JavaOne 2009 (PDF) by Frank Cohen.
    Two other pretty good summaries can be found here and here. Both are split into days, so some browsing required :)

  • This blogpost describes how's the opensource project MySQL fork Drizzle handling code contributions and testing. Some rules for the 100+ contributors are:

    • No code will be accepted that works by disabling any existing tests

    • It is not allowed to contribute code that causes a compiler warning


  • Here's a nice summary of Google Wave's architecture.

  • This week I performed a short research on tools being able to generate Java classes from XSDs. All I wanted to use it for is generate my domainmodel classes, nothing more, nothing less. No need for Java <--> XML binding/conversions. Another requirement was that the generated code should not contain any dependencies on that tool. Finally, it has to run under JDK 1.4 too :( Because of that last requirement, this summary was already quite handy. Well, I thought the research would be pretty easy, but it wasn't. Actually, in the end I didn't succeed. None of the below tools generate code that has no tool-specific imports. Do you know of any tool that should do it? Let me (us :) know in the comments! Below a summary of my findings:

    • Castor 0.9.x and 1.3: generates classes (no interfaces), with matching Descriptor classes per class that can be used to validate the created object. Imports org.castor.* stuff.

    • XMLBeans 2.4.0 generates interfaces and implementing classes. Both import xmlbeans classes.

    • JAXB 1.0 generates interfaces, implementing classes and runtime classes (haven't figured out what that is exactly). Imports JAXB classes/interfaces.

    • XMLSpy 2006 Enterprise Edition: generates classes. Looks more like you expect, "one class per type". But also needs com.altova.* imports.

Sunday, August 31, 2008

Best of this Week Summary 25 August - 31 August 2008

  • Water & Stone PDF with an analysis of 19 open source content management systems. WordPress, Joomla! and Drupal come out best.

  • Recently released Keyczar is an open source cryptographic toolkit designed to make it easier and safer for developers to use cryptography in their applications. It supports authentication and encryption with both symmetric and asymmetric keys. Keyczar is designed to be open, extensible, and cross-platform compatible. It is not intended to replace existing cryptographic libraries like OpenSSL, PyCrypto, or the Java JCE, and in fact is built on these libraries.

  • How to add custom columns to the association using Hibernate 3.2.5 (and Spring 2.5). Quite unbelievable that this has to be so complex. It's quite simple with a @ManyToMany or similar annotation if you don't want an extra column in the association (link table). But I think it's quite normal that you like to add more columns, for example a timestamp of when the record was created.

  • Great summary of Eric Meyer's talk at An Event Apart San Francisco 2008 about 9 CSS frameworks: 960, Blueprint, Content With Style, That Standards Guy, YAML, YUI, Elements, Tripoli and WYMStyle. In short: CSS templates are a good starting point, but to make the design unique you will very likely have to modify the templates.

Sunday, August 24, 2008

Best of this Week Summary 18 August - 24 August 2008

  • Patterns-based Evaluation of Open Source BPM Systems: jBPM, OpenWFE, and Enhydra Shark. Report's conclusion: "Overall one can conclude that the open source systems are geared more towards developers than business analysts. If one is proficient with Java, jBPM may be a good choice, although if not, choosing jBPM is less advisable. Similarly, whilst OpenWFE has a powerful language for workflow specification in terms of its support for the workflow patterns, we postulate that it will be difficult to understand by non-programmers. Finally, Endydra Shark’s minimalistic support for the workflow patterns may require complicated work-arounds for capturing nontrivial business scenarios."

  • As part of their EC2 offering, Amazon introduced this week their Elastic Block Store, enabling you to mount an EBS and format it or setup a database on it. S3 is not really intended for database-like storage. Here's another introduction, including a link to an article on how to setup MySQL on EBS. Here's ESB explained, including some diagrams.

  • Article on the succesful execution of a large project (20 man years, 100.000+ lines of code) with an Agile approach using Scrum, with developers from India and The Netherlands. Includes lessons learned. Technologies used: Java, Spring, Hibernate, WebLogic, Oracle, Swing (UI) and Flex (for the displays) and Bamboo (continuous integration).

  • Handy short comparison between LWUIT (recently open sourced by Sun) and JavaFX Mobile. Here's another comparison from Sun.

Sunday, August 17, 2008

Best of this Week Summary 11 August - 17 August 2008

Saturday, June 28, 2008

Best of this Week Summary 23 June - 28 June 2008

  • This post summarizes the key parts of the LinkedIn architecture (40M pageviews/day). Full presentations also available. Lots of Java. Below an architecture overview diagram from one of the presentations:

  • Overview of the plans of the BBC for their application/website infrastructure: moving it from mainly Perl and static files to SOA, Single SignOn, REST, Java and PHP.

  • Orbitz (the online travel booking agency yes) is open sourcing their Extremely Reusable Monitoring API (ERMA) and Graphite this coming Monday. Here's why they're open sourcing their ERMA and Graphite, which are "part of a Complex Event Processing system designed to monitor large distributed applications, analyze the data that is gathered and display that data in real-time graphs."

  • All of Google's Data APIs now support oAuth. So no need anymore to store a username and password in web applications that use one of Google's Data APIs. Recently also PhotoBucket and SmugMug announced oAuth support.

Sunday, March 30, 2008

Best of this Week Summary 25 March - 30 March 2008

  • What is required to start building an RIA + SOA application, and how you could enable these activities. A potential answer could the Appcelerator platform mentioned in the article.

  • Nice collection of open source software testing tools (and news and discussion :-). These are the listed Javascript unittesting tools.

  • For the coders: the number of types in the .NET framework visualized (I know, I know, .NET but it's a nice insight anyway ;-)

  • Comparison of performance on many browsers of the Backbase Javascript engine and some widgets. In general interesting to see how these browsers compare. Includes IE8, Firefox 3 Nightly Build and Safari Nightly Build.

  • Three open source SOAP testing tools compared: Eviware SoapUI 1.6, PushToTest TestMaker, and WebInject's WebInject. Conclusion: The writer prefers "[...] the middle balance struck by soapUI. The skeletal tests created by soapUI's wizard were easier to flesh out than those built by TestMaker. And, if I needed to do something elaborate and off the wall, I could always call upon soapUI's Groovy capabilities – funny name aside, they do their job well." "In terms of how these products compare to commercial Web service testing tools, I'd say it's a mixed bag. They are, of course, inexpensive (free), and work well for easy to moderately-difficult jobs; on the other hand, they're somewhat less user-friendly than commercial tools and if you need to do something complex, you have to build it yourself."

  • Five commercial SOAP testing tools compared: AdventNet's QEngine, Crosscheck Networks SOAPSonar, iTKO’s LISA, Mindreef's SOAPscope Server, and Parasoft's SOAtest. Conclusion: "If your testing involves more than just Web services, and your development is primarily Java, then tools such as LISA or SOAtest are worth considering [...]. If, however, you are only interested in SOAP-based Web service testing, and your QA staff is relatively new to the technology, SOAPscope is the obvious choice." But maybe you want to let it depend on how you want to build the tests: by coding or visually with a GUI? This is what SOAPSonar, LISA, and SOAPscope have done. The writer favors coding tests and SOATest came out as winner.

Sunday, March 9, 2008

Best of this Week Summary 03 March - 09 March 2008

  • Good article on Premature Code Optimization and the often made (invalid) conclusion: 'as a developer I don't need to optimize until the code is finished'.

  • Practical use of Java in four web conferencing products described. Including integration with Flash.

  • A talk with the director of engineering at Google about OpenSocial. Most interesting point is that indeed OpenSocial is not to interconnect social networks. Unless they are Social Graph enabled, but there is no site that supports it yet. Google also released the Contacts API this week.

  • Related to that is Higgins: "An open identity framework designed to integrate identity, profile and social relationship information across multiple sites, applications and devices. Supports multiple identities because you don't want to use the same identity for MySpace as for your financial sites." Contributors include the big names like Google, IBM and Oracle.

Sunday, January 27, 2008

Best of this Week Summary 21 January - 27 January 2008

  • 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.

Sunday, December 2, 2007

Best of this Week Summary 26 November - 2 December 2007

  • Nice article on designing to facilitate unittesting, e.g. using interfaces to decouple an implementation class from its dependency.

  • Here's a couple of reasons when to use and when not to use stored procedures. Most of the time it is not such a good idea to use them, except for example when having data-intensive/abstract computations, or batch-oriented operations.

  • Interesting post on how PayPal is transacting 1500 USD per second(!) every day, and that their system is completely build in-house, running on thousands single-rack Unity servers. By using this kind of chunks (instead of a mainframe approach) they can upgrade a lot cheaper, because the servers are so cheap. This distributed, highly redundant Linux approach make the system a lot less vunerable to failures. A big benefit they have using open source is that it is a lot cheaper to have a development environment that is exactly the same as the production environment, therefore reducing the chance of inconsistent results and bugs caused by difference in environments.