Showing posts with label anti patterns. Show all posts
Showing posts with label anti patterns. Show all posts

Sunday, August 29, 2010

Best of this Week Summary 23 August - 29 August 2010

Sunday, November 1, 2009

Best of this Week Summary 26 October - 01 November 2009

Sunday, October 18, 2009

Best of this Week Summary 12 October - 18 October 2009

  • Last week was Oracle Open World 2009. Beside for Oracle DBMS and SOA specialists, these days the event is definitely also very relevant to Java professionals because of Oracle's (almost official) acquisition of Sun this year. Here's a set of relevant information from OOW:

    • The keynote on sunday which also describes the plans Oracle has with Java, MySQL and Sun hardware

    • James Gosling explaining to the developer audience what Sun was doing, what the scale is of Java activity around the world and across technology platforms.

    • The Dutch software company Amis also did quite a few presentations at OOW. Some of those presentations were already online before they were actually presented! All were interesting:

      • Good overview of what will be in the Patch Set 1 for the Oracle Fusion Middleware 11g stack, including JSF and ADF (mobile!). It's more than a patch!

      • Edition Based Redefinition (EBR): "Every database object (well, almost every database object - not tables!) can have different implementations/incarnations/versions in various editions. The object versions are all in the same schema - they only differ in the Edition they are created in."
        So no more direct table access! No big bang needed anymore. Challenges: what if a mandatory column is removed or added from the current EBR view (answer: special triggers). Including 2 suggestions for best practices.

      • XML processing/design tips.

      • This "session introduces SOA and the new Oracle SOA Suite 11g to the realm of database professionals from which it sometimes seems so far removed. What are the key SOA concepts and objectives? What is at the heart of Oracle SOA Suite 11g: composite applications, BPEL PM, and the mediator. The session shows how SOA services can be leveraged from the database, from triggers, PL/SQL units, or even SQL and how the database can publish events to the event delivery network. It covers how the SOA infrastructure can access the database, primarily using Oracle Database and Oracle Advanced Queueing adapter and how database developers can help in doing so efficiently. It ends with hints for applying SOA concepts to "normal" database development."

        Bit oriented at the database professional, but still interesting for those who want to stay up to date with Oracle's DMBS possibilities. And a bit scary too: it is possible in 11g to make webservice calls and publish them from the database(!). For example from PL/SLQ and put a webservice in front of PL/SQL... I haven't come up with a practical situation where you'd want to do this from an architectural point of view: large risk to getting tightly coupled systems and dependencies. If you have heavily invested (i.e built) in PL/SQL, it might be a valid option though.


  • There is currently a renewed focus on the role of code generation in developing enterprise Java applications. Springsource recently released Roo, Skyway Software released Skyway Builder Community Edition version 6.3 and Blu Age released M2Spring. What should the software architects and developers look for in a Code Generation framework?

  • Seven Wicket Do's and Don'ts.

Sunday, September 27, 2009

Best of this Week Summary 21 September - 27 September 2009

  • Always feeling a bit less up-to-date when using RSS/Atom feeds? Well, convince your RSS/Atom provider to implement the PubSubHubBub protocol: it provides a callback-hook, which when registered to as feed subscriber, causes an immediate update (ping) to the subscriber (instead of waiting for the next RSS/Atom feed request).
    Or will rssCloud be the winner of this realtime RSS extension? Here's the basic (simpler) flow of rssCloud:


    Differences between the two are described here (including some issues) and here. A real old-fashioned flame-war has even started between the creators of the two protocols.
    And a good comparison which explains quite well why PuSH is the better choice of the two. Note that both protocols seem to be server-to-server only! (e.g think when you're behind a firewall or NAT...)
    See this article for an explanation of the PuSH flow of notifications/information in below's diagram:


    Update: PubSubHubbub explained by co-creator Brett Slatkin (an engineer at Google).

  • Want to get to know Hadoop? In short "Hadoop allows you to write and run your application in a distributed manner and process large amounts of data with it. It consists out of a MapReduce implementation and a distributed file system." Check the rest of this introduction for more details.

  • Five Java anti-patterns to prevent (out-of) memory problems.

  • Three Best and three worst practices in BPM and SOA.

  • "Tom Killalea, Vice President of technology with responsibility for infrastructure and distributed systems engineering at Amazon.com wrote an article on ACM queue on building scalable web services. He outlines guiding principles to building scalable web services with a lot of real-world examples, the core theme of which is “build only what you need”."

Sunday, March 29, 2009

Best of this Week Summary 23 March - 29 March 2009

  • Need to know whether a collection is modified concurrently, which causes the ConcurrentModificationException? Check this handy wrapper solution here.

  • The second article in the Transaction strategies series. "Using examples from the Spring Framework and the Enterprise JavaBeans (EJB) 3.0 specification, explained is how the transaction models work and how they can form the basis for developing transaction strategies ranging from basic transaction processing to high-speed transaction-processing systems".

  • For the Amazon EC2 now a free AWS Eclipse plugin is available. It facilitates remote development, deployment, and debugging Java applications on Amazon Web Services.

  • Three common mistakes to avoid when implementing XML and webservices: don't make your messages too large, don't create too fine-grained services, and don't forget to create an XML schema.

  • Javascript is getting more and more important the last couple of years, so here's a bunch of best practices and efficiency tips.

Sunday, March 22, 2009

Best of this Week Summary 16 March - 22 March 2009

  • Great article by Dion Hinchcliffe with 10 emerging technologies every software architect has to know about. In short:

    1. Cloud computing

    2. Non-relational databases

    3. Next-generation distributed computing

    4. Web-oriented architecture (WOA)

    5. Mashups

    6. Open supply chains via APIs

    7. Dynamic languages (e.g Rails, PHP compared to Java/.Net)

    8. Social computing

    9. Crowdsourcing and peer production architectures

    10. New Application Models (e.g the symantic web, opensocial, widgets)

  • Elaborate explanation of managing boilerplate text (e.g. titles, button labels, prompt, error messages, tool tips) in JSF applications. This includes more advanced locale requirements, like certain text that needs to be different when shown to junior and senior users.

  • Here's a nice diagram with an overview of what activities are needed to create a website, from idea to support and everything in between.


  • Always annoyed that you have to manually close a resource like InputStreams, Connections etc? And that the first exception might be surpressed by the second in the finally block? Here's a suggested solution: the Automatic Resource Management pattern by Joshua Bloch.

  • Ten more Eclipse shortcuts you maybe didn't know...

  • Of course you've heard/read that Microsoft has released IE8 last week. Here's a bunch of tips when migrating your site from IE7 to IE8.

  • Ever need to create a UUID/GUID? Here's a few offline generators compared. uuidgen is an online UUID generator supporting version 1 and 4. A handy FAQ on UUIDs with some more depth can be found here.

Sunday, January 25, 2009

Best of this Week Summary 20 January - 25 January 2009

Saturday, December 13, 2008

Best of this Week Summary 8 December - 14 December 2008

  • Spring's Web Flow 2 now lets you use JSF as view technology. It addresses a couple of the existing JSF issues and already some features only present in JSF 2.0.

  • Microsoft (yes yes, don't stop reading immediately ;-) has published a How-To Design Using Agile Architecture guide which "will help you start the process of designing your application. It discusses the six main steps you should follow, and then discusses the issues involved in making logical choices. It also provides checklists to help you ensure that the proposed design will meet your requirements", including patterns, best practices and agile considerations. This is a quick summary of the guide.

  • A tiny bit off-track, but still interesting to point out: of course you know Google's GWT, in which you can create a Javascript web front-end application in Java. But now this is also possible in Python (recently releasing version 3) with Pyamas! Pretty cool!

  • Talking about software architecture, how would you document that correctly? Here's a bunch of good tips trying to answer that. It is a good high-level overview of what you should document in an application architecture. Focus is on UML 2.0, but what should be in the documentation is valid for any notation format.

  • Here's the first list (and maybe last :-) I'll post on looking back @ 2008: on overview of what happened with Java in 2008.

Saturday, September 6, 2008

Best of this Week Summary 1 September - 7 September 2008

Saturday, July 12, 2008

Best of this Week Summary 7 July - 13 July 2008

Sunday, April 27, 2008

Best of this Week Summary 05 May - 11 May 2008

Sunday, March 2, 2008