Saturday, May 17, 2008

2008-05-16 Saturday

This week I've been busy developing some integration glue and application interfaces between a client's legacy financial applications and Primavera's Project Manager 6.1 Integration API.

Part of the core integration framework I'm building includes a custom logging abstraction layer so that we can achieve the following with one simple log method call:

  • Write a log message to a Public MSMQ queue on the local server - for a given component - which will later be collected by a "sweeper" component and published to a central logging database. This enables the organization to monitor and analyze log messages for all our SOA services across the enterprise.


  • Write a copy of the log message to the service's local server file system - for redundancy - in the event the MSMQ service is halted or unavailable.


  • Finally, write a copy of all FATAL and ERROR severity log message to the Windows NT Application Event Log


  • To accomplish all of that, I am using the Apache Commons Logging library (which in turn defaults to Apache's log4j library), as well as the the CodePlex JavaMsmq library to enable writing to MSMQ from within a Java program.




    Some areas of research that I'm interested in these days includes:

    GNU CLISP is an ANSI Common Lisp implementation with an interpreter, compiler, debugger, object system (CLOS, MOP), sockets, fast bignums, and foreign language interface which runs on most UNIXes and Win32.

    GNU Smalltalk is a free implementation of the Smalltalk-80 language.

    Erlang is a small concurrent functional programming language developed by Ericsson. It is being used by Ericsson as a systems programming language for large concurrent fault-tolerant distributed systems.
    Getting started
    Erlang Reference Manual
    Erlang Eclipse pluging: erlide

    Thursday, May 15, 2008

    2008-05-15 Thursday

    Microsoft Tech-Ed 2008, Orlando, Florida
    - Developers, June 3-6, 2008
    - IT Professionals, June 10-13, 2008

    Saturday, May 10, 2008

    2008-05-10 Saturday

    I installed Notepad++ 4.9.1 today. I've been very pleased with the previous version that Notepad++ 4.3

    Crosschecknet Networks: Accelerate your SOA Projects through Service Simulation

    Distributed Version Control Systems: A Not-So-Quick Guide Through

    Tonight I've updated the Resource Links page on intltechventures.com

    JGAP 3.3.3 released (Java Genetic Algorithms Package)

    Friday, May 09, 2008

    2008-05-09 Friday

    I recently uploaded a zip file to the CodePlex.com MsmqJava patch area to share a refactored version of the code base - into an Eclipse Project that I created - and which uses an Ant-1.7 build.xml file to do the compiles for the C#, C++, and Java code.

    Saturday, May 03, 2008

    2008-05-03 Saturday

    Ajax performance analysis

    Sunday, April 27, 2008

    2008-04-27 Sunday

    Berkman Center for Internet & Society at Harvard Law School
    Clay Shirky: Here Comes Everybody: The Power of Organizing Without Organizations

    Secret Pre-Release Details On Windows XP Service Pack 3

    Interview with Donald Knuth

    "Andrew Binstock and Donald Knuth converse on the success of open source, the problem with multicore architecture, the disappointing lack of interest in literate programming, the menace of reusable code, and that urban legend about winning a programming contest with a single compilation"


    "...Can you give some examples that are currently in vogue, which developers shouldn’t adopt simply because they’re currently popular or because that’s the way they’re currently done?..."

    "...let me just say that almost everything I’ve ever heard associated with the term "extreme programming" sounds like exactly the wrong way to go...with one exception. The exception is the idea of working in teams and reading each other’s code. That idea is crucial, and it might even mask out all the terrible aspects of extreme programming that alarm me."

    "I also must confess to a strong bias against the fashion for reusable code. To me, "re-editable code" is much, much better than an untouchable black box or toolkit. I could go on and on about this. If you’re totally convinced that reusable code is wonderful, I probably won’t be able to sway you anyway, but you’ll never convince me that reusable code isn’t mostly a menace."


    JOHN DVORAK: The Microsoft mesh mess: Companies are confusing software with delivery mechanism
    Microsoft Corp.'s constant dabbling and toying with the idea that shrink-wrapped software, its bread and butter, is dead will lead to eventual ruin. Microsoft is a software company, the most successful in the world, and it acts like a cow that must incessantly nibble the "better" grass outside the fence.

    Now the Redmond giant has been suckered into believing that software as a service is the wave of the future. The logic of this conclusion is simple: Since it's all everyone is talking about, must be true.





    JAXB 2.1.6
    Java Architecture for XML Binding (JAXB)

    Java TM Architecture for XML Binding readme

    Java Architecture for XML Binding (JAXB) FAQs

    JAXB 2.0 Runtime Library javadoc

    Unofficial JAXB Guide

    Forum: Metro and JAXB

    JAXB RI Architecture Document

    Java EE 5 Tutorial: Chapter 17: Binding between XML Schema and Java Classes


    Last week I established a process within a client SOA project to generate Java classes based on XSD schemas for our Enterprise Archtiecture SOA infrastructure project.

  • I integrated the Ant task for the xjc compiler from the JAXB 2.1.6 Reference implementation and compiled the Java classes


  • I also added an ant task to the build.xml to build a Jar file to simplify later reuse by our Continous Integration Build process (Hudson) when other sub-projects / components within the system get their builds kicked-off based on Subversion check-ins.


  • I also added a check-out to the build.xml for the main core architecture framework - so that it will retrieve the Jar of the message classes generated from the XSDs.


  • Very clean and Simple.

    We are using JDK 1.5.x for the majority of the client development effort (due to some vendor library/application integration dependencies). However, in my own development lab, I am using JDK 1.6.

    And that is what brings me to this posting tonight:

    Problems using JAX-WS 2.1 and JAXB 2.1 with JDK 6?

    Thread: LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader

    7.1. Migrating JAXB 2.0 applications to JavaSE 6


    Basically, you can simply do the following:

    7.1.2. Using JAXB 2.1 with JavaSE 6
    JavaSE 6 comes with JAXB 2.0 API in rt.jar. Therefore, using JAXB 2.1 with JavaSE 6 requires one to override a portion of rt.jar with the new API. There are several ways to do this:

    Place the 2.1 jaxb-api.jar into $JRE_HOME/lib/endorsed. This essentially makes your JRE to "JRE 6 + JAXB 2.1". This won't affect any other applications that use this JRE, and it's easy. On the other hand, in various scenarios you may not be able to alter the JRE.




    Spring Batch
    I've made some good progress in my efforts to develop a deeper understanding of the Spring Batch framework - I have been working with the 1.0 FINAL release. Within the next 2-3 weeks I will write-up a Spring Batch - Beginner How-To and post it online.




    Enterprise Architect 7.1 build 829
    Tonight I downloaded and installed the latest build/release of Sparx Systems Enterprise Architect. I introduced this tool to my current client - and we have had a generally very positive experience.

    I first used EA back in 2004 while leading the design and development of a commercial Anti-Money Laundering product (using VERY early releases of various Java Server Faces component libraries and tools).

    I highly recommend it - especially as a central repository mechanism for all design artifacts, requirements, user acceptance tests, data models, use cases, class models, etc. (The corporate edition offers a database repository feature).

    Tuesday, April 22, 2008

    2008-04-22 Tuesday

    Apache CXF: An Open Source Service Framework

    MySQL to get new features in Enterprise version

    The Messaging Way : MSMQ & JMS

    Article: Building Domain Specific Languages on the CLR

    Generating files with PowerShell

    A Dirt-Simple Web Service

    Inline XSD in WSDL with WCF

    Informatica Buys Identity Systems