Saturday, January 31, 2009

2009-01-31 Saturday - Java Daemon Services

In the next week or so I want to come back and spend some time looking at the following tools:

"This is a Java library you can use in your application to support Unix daemonization. By taking advantages of POSIX API, this library lets you fork your process into background with proper daemonization steps."

Java Service Wrapper
"The Wrapper makes it possible to install a Java Application as a Windows NT Service. The scripts provided with the Wrapper also make it very easy to install those same Java Applications as daemon processes on UNIX systems."

"The Wrapper correctly handles user log outs under Windows, service dependencies, and the ability to run services which interact with the desktop."

Apache Commons Daemon
Since 1994, the Java programming language evolved and became a valid tool to develop, other than applets and client applications, reliable and performant server applications. The major disadvantage of the Java platform is that still today the only portable way to start a Java application relies on a single point of entry: the public static void main(String[]) method.

Having a single-point of entry is a valid solution for client applications, where interactively a user can command to the application to quit (which can terminate the Virtual Machine process at calling the System.exit(int) method), but in those cases where the application is not interactive (server applications) there is currently no portable way to notify the Virtual Machine of its imminent shutdown.

A server application written in Java might have to perform several tasks before being able to shutdown the Virtual Machine process. For example in the case of a Servlet container, before the VM process is shut down, sessions might need to be serialized to disk, and web applications need to be destroyed.

One common solution to this problem is to create (for example) a ServerSocket and wait for a particular message to be issued. When the message is received, all operations required to shut down the server applications are performed and at the end the System.exit method is called to terminate the Virtual Machine process. This method, however, implies several disadvantages and risks: for example in case of a system-wide shutdown, it might happen that the Virtual Machine process will be shut down directly by the operating system, without notifying the running server application. Or, for example, if an attacker finds out what is the required message to send to the server, and discovers a way to send this message to the running server application, he can easily interrupt the operation of a server, bypassing all the security restrictions implemented in the operating system.

Most multi-user operating systems already have a way in which server applications are started and stopped, under Unix based operating systems non interactive server applications are called daemons and are controlled by the operating system with a set of specified signals. Under Windows such programs are called services and are controlled by appropriate calls to specific functions defined in the application binary, but although the ways of dealing with the problem are different, in both cases the operating system can notify a server application of its imminent shutdown, and the application has the ability to perform certain tasks before its process of execution is destroyed.

2009-01-31 Saturday - SOA Links

Arun Pareek's presentation posted on Open Source SOA

Infoq: Case Study: Success with SOA at CISCO
(original SOA Consortium article)

Infoq: Optaros and MuleSource Help Nespresso With Next-Generation SOA Solution

OPenESB > Project Fuji > About
Project Fuji forms the core component of Open ESB v3 effort and represents Sun's next generation open source integration runtime, focused on providing a lightweight, developer-friendly, and extensible platform for composite application development.

At the core of Project Fuji is a lightweight micro-kernel based on JBI (JSR 208) and OSGi. Packaged as an OSGi bundle, the micro-kernel can be installed in any OSGi R4 compliant runtime (such as Felix, Knopflerfish or Equinox), including GlassFish v3. JSR 208 support introduces a robust, message-based service bus to the OSGi environment and allows the wide range of existing JBI "components" (adapters and containers) to run in Fuji.

Developer experience is a primary focal point in Fuji as evidenced by the level of flexibility and accessibility offered in the platform. Starting with a rapid, top-down development language, IFL (Integration Flow Language), developers can quickly and easily generate an integration application using a domain-specific grammar. The service development model favors convention and configuration over boilerplate code and framework APIs, allowing integration developers to focus on the code that matters.

2009-02-16 Monday Update

JBI Introduction

Thursday, January 29, 2009

Wednesday, January 28, 2009

2009-01-28 Wednesday - Microsoft ILM Resources

As part of a SOA / Enterprise Architecture program for a client, I'm assisting them in researching and adopting Microsoft Identity Lifecycle Manager. Here are some resources that may be of some interest to others:

Identity Lifecycle Manager 2007 Home

Microsoft Identity Lifecycle Manager 2007 Frequently Asked Questions

ILM Fact Sheet (pdf)

David Lundell's ILM Best Practices blog

Felix Gaehtgens: First Analysis of Microsoft ILM 2

Integrating the Hitachi ID Management Suite with Microsoft ILM

TechRepublic: ILM 2007 Resources

Troubleshooting LDAP SSL connection issues between Microsoft ILM/MIIS & Novell eDirectory 8.7.3

NetPro’s MissionControl
"...MissionControl tracks ILM configuration changes in real-time, storing the information in a secure SQL database and providing meaningful change reports. "

Microsoft TechNet ILM Forum

An Introduction to Identity Lifecycle Manager 2

Craig McMurtry's blog

Chris Calderon's

1dent1ty cHa0s < INCREDIBLE trove of links and information!!!

Identity Management Extensibilitiy Samples

ILM 2 Custom WF Activity

Microsoft Help and Support: Identity Lifecycle Manager

Oxford Computer Group
Oxford Computer Group (OCG) is an IT services company that specializes in Identity and Access Management. OCG has consulting expertise, solution components and training courses.

Understanding the inner workings of SAP from MIIS (ILM) Perspective

Andre Durand

Joe Kaplan

ADFS Product Support Blog

Shawn's MIIS/ILM Tricks

Shawn's MIIS/ILM Code Experiment
", a community site dedicated to Microsoft Identity Integration Server (MIIS) and associated technologies such as Identity Lifecycle Manager (ILM)"

Alex Tcherniakhovski - Security

Kim Cameron's Identity Weblog

Jackson Shaw: Jackson's Identity Management & Active Directory Reality Tour Travelblog

Burton Group Blogs: Identity and Privacy

Nishant Kaushik's Talking Identity

2009-01-28 Wednesday - WCF References

My current client SOA / Enterprise Architect project will entail building a significant number of services using Microsoft .NET technologies. Here are some of the more interesting links to WCF resources that may be of interest to others as well:

What is the difference between WCF and other web services ?

Introduction to Windows Communication Foundation (WCF)

Looking at the WCF Windows Communication Foundation

WCF 101 – Creating and consuming a basic WCF Service hosted in IIS

MSDN Webcast: Beyond the Endpoints with Windows Communication Foundation with Juval Lowy

MSDN: Windows Communication Foundation

WCF Contract Design Guidelines

WCF Security Guidelines

MSDN Forums: Windows Communication Foundation

A New Foundation: Taking a Look at WCF

WCF Design Pattern: Generic Service

Get Familiar With Windows Communication Application Development

Implementing a Basic HelloWorld WCF (Windows Communication Foundation) Service

Patterns for Flexible WCF Services

A comprehensive guide to using MsmqIntegrationBinding with MSMQ 3.0 in WCF

WCF Debugging and a WCF review

Building a two-way WCF prototype using HTTP based transports

WCF Service Factory Pattern - The Problem
" can't base a WCF service hosted within IIS that uses generics in its operational contract definition because WSDL wants the explicit type definition. This means that instead of a single, clean interface with the generic parameter and a single implementation of that contract, you have to define a strongly typed contract definition and implementation for every business object you plan to support."
"...Read Programming WCF Services by Juval Lowy, ch. 3, page 120 for more info regarding serialization and generics."

Udi Dahan: WCF Everywhere? Not on my watch.

Why you should not use the ADO.NET Entity Framework

Oracle: Interoperability with Microsoft WCF/.NET

WCF 101 – Creating and consuming a basic WCF Service hosted in IIS

WCF Essentials—Applying the ServiceContract attribute

Some WCF Gotchas

NHibernate and WCF is Not a Perfect Match

WF / WCF 4.0

"...I was genuinely surprised by how good WF 4.0 looks. In fact, I'd say it was the best thing I saw at PDC in many ways. This was surprising to me, because I never liked WF 3 or 3.5, because it did not feel finished, and had some fundamental flaws like:

* Poor performance
* Lack of persistence control
* Lack of transaction control
* No correlation support
* Poor threading model for parallel tasks
* Weird XOML based markup
* Not really tied in nicely with WCF (even in 3.5)
* Host problems

So it was great to hear Microsoft say that they agreed! Reading between the lines it is clear that WF4 is a complete rewrite. Microsoft already claim that it is between 10 and 100 times faster than WF 3.5. Persistance control (complete with message box and tracking databases), transactions, correlation and threading have all been addressed and the object model (now under the System.WorkflowModel) now feels very natural to anyone who has used WCF to a point where they feel like the same framework. And for anyone who's used to WPF and Silverlight, you can now model workflows in XAML (including building your own designers - nice). All of this coupled with what was shown (e.g. not much) of Dublin (the new Windows Application Server) make me conclude that hosting issues have also now been addressed...."

Microsoft's Patterns & Practices Application Architecture Guide 2.0

2009-01-27 Tuesday - Ubuntu Pocket Ref. Guide

Ubuntu Pocket Reference Guide (pdf)

Monday, January 26, 2009

2009-01-26 Monday - Application Configuration Research

I'm working on a client Enterprise Architecture framework library, and I've spent some time today researching differrent approaches to implementing Application Configuration mechanisms, for both C# .NET and Java.

Ideally we want to establish a simple, light-weight, abstraction layer that will provide a stable (and common class model) for both Java and .NET developers across the enterprise.

.NET C# References

.NET Framework (3.5) Class Library System.Configuration Namespace

MSDN - .NET (3.5) Framework Class Library ConfigurationManager Class

Enterprise Library 4.0 - May 2008 The Enterprise Library Core

Read/Write XML files, Config files, INI files, or the Registry

Persisting configuration items in .NET

Java References

Java Tutorials > Configuration Utilities > Properties

java.util Class Properties

IBM DeveloperWorks - Easing configuration

Java Configuration File vs. .NET Configuration File

Java Service Wrapper - Configuration Property Overview

Simple Java Configuration Files and no XML in Sight

XML Configuration for Java Program

Jfig - Java

Managing Your Configuration with JFig

Apache Commons Configuration

Automated Model-based Configuration of Enterprise Java Applications

Java - Using Multiple Configuration Files in Your Application

Spring Source JavaConfig

see Application Configuration

More on Java Configuration

Java Config (a sourceforge project)

Discussion thread: Java configuration framework

Open Source Configuration Deployment Frameworks Written in Java

Dynamic Configuration Management For Clustered Java EE Application

Application configuration files using a custom JNDI object

Java Configuration Blues (circa 2003)

Saturday, January 17, 2009

2009-01-17 Saturday - XML Binding Background Material

I'm researching some XML Binding issues for a client and have assembled some references that may be of interest to others...

In particular, after reviewing the rest of the material below, you'll want to come back and pay careful attention to this article:

The BindMark XML Binding Performance Benchmark (for Java)

Although the BindMark performance benchmark is a bit dated - it is a helpful reference to illustrate the point that there are sometimes significant performance versus ease-of-use trade-offs to be considered in the evaluation and selection of tools. XML data binding

Altova: XML Schema Driven Code Generator

MSDN: How to: Bind to XML Data Using an XMLDataProvider and XPath Queries

MSDN: How to: Use XML Namespaces in Data Binding

Schemaless C#-XML data binding with VTD-XML

ADCG (Automatic Data Class Generator) is a tool written to speed-up the writing of C# XML class structures.

XML Data Binding, A closer look at XML Data Binding, including a product appraisal, by Simon Sprott

Article: Schema for Web Services – Part I: Basic Datatypes

JiBX: Binding XML to Java Code

Java-XML Binders Compared (a bit dated, but perhaps still interesting)

A closer look at XML Data Binding, including a product appraisal

Validate against XML Schema using JAXB2

Validate against XML Schema using JAXB2 and spring-xom

Patterns and Strategies for Building Document-Based Web Services: Part 1 in a Series

nteroperability With Patterns and Strategies for Document-Based Web Services: Part 2 in a Series

Realizing Strategies for Document-Based Web Services With JAX-WS 2.0: Part 3 in a Series

XML and Java technologies: Data binding, Part 1: Code generation approaches -- JAXB and more

XML and Java technologies: Data binding, Part 2: Performance

XML and Java technologies: Data binding Part 3: JiBX architecture

XML and Java technologies: Data binding Part 4: JiBX Usage

Glassfish: How we Lost and Regained WS Performance -- JAXB Performance Tips

Kohsuke Kawaguchi : A few tips to write efficient code without bending over backwards

Java Architecture for XML Binding (JAXB) FAQs

2009-01-17 Saturday - Deployment Tool Research

I'm doing some further research on deployment tools, here are a few links and resources I've come across recently:

Colin Low (with updates by Julio Guijarro: SmartFrog Tutorial - (Hewlett Packard Laboratories, Bristol)
Let us suppose you are developing an application with several autonomous components. These components could be parts of a distributed application, with components distributed across multiple hosts. It is necessary to test the individual components, and you realise that to test component1 you will need to have each of component2 to component7 in place. Whenever you run a test, you will have to activate seven components with all the correct configuration parameters. You may have to carry this out dozens of times until testing is complete.

Ritu Sabharwal: Grid Infrastructure Deployment using SmartFrog Technology - (Hewlett-Packard (STSD), Bangalore, India)

Wojtek Goscinski and David Abramson, School of Computer Science and Software Engineering, Monash University, Victoria, Australia
Application Deployment over Heterogeneous Grids using Distributed Ant
"The construction of large scale e-Science grid experiments presents a challenge to e-Scientists because of the inherent difficulty of deploying applications over large scale heterogeneous grids. In spite of this, user-oriented application deployment has remained unsupported in grid middleware. This lack of support for application deployment is strongly detrimental to the usability, evolution, uptake and continual development of the grid. This paper presents our motivation, design and implementation of the Distributed Ant user-oriented application deployment system, including recent extensions to support application deployment over heterogeneous grids. We also present a significant Distributed Ant deployment case study, demonstrating how a user-oriented application deployment system enables e-Science experiments."

Proceedings of the First International Conference on e-Science and Grid Computing

Pages: 361 - 368
Year of Publication: 2005

Its also useful to look at how large vendors implement their deployment tooling/strategy:

Oracle® Containers for J2EE Deployment Guide, Using OC4J Ant Tasks for Deployment

WebSphere Application Server documentation

Ant in Anger: Using Apache Ant in a Production Development System, by Steve Loughran

Thursday, January 15, 2009

Monday, January 12, 2009

2009-01-12 Monday - Linux KVM Virtualization

As soon as I have a free weekend, I am going to backup my Vista laptop (and create an ISO image?) - and then I am going to format the hard drive and wipe every trace of Vista off of it. Then I am going to install a Linux distro.

Installing KVM virtual machines


Ubuntu on a Thinkpad T500

Sunday, January 11, 2009

2009-01-11 Sunday - Cloud Computing

Is Cloud Computing the Wave of the Future?

"Start Taking Cloud Computing Seriously" - Gartner's Advice to CIOs for 2009

“You will need to start leading your organization safely in this inevitable direction, or risk being sidelined by its progress”

Barton George's blog ("Mapping Processes in the Clouds")

Mosso (Cloud hosting) - recently(?) acquired by RackSpace...

The Future of Technology and the Cloud in the Next 20 Years
(SYS-CON.TV Interview with Bill Coleman - Founder, Chairman & CEO of Cassatt Corp)

Here's my take:

Cloud Computing Risks
- Financial viability of the cloud vendor(s)

- System availability of the cloud vendor(s)

"'s SAAS CRM apps went down Jan. 6 in a nearly 40-minute outage...the problem thwarted over 177 million transactions"

- Lack of maturity around cloud computing technology and standards

- New learning curves for development staff

- Availability of stable/mature development tools, libraries, frameworks

- Loss of control over management of critical performance SLAs to business units

- Security vulnerabilities are increased

Cloud Computing [Potential] Rewards
- Higher ROI for new software development efforts

- Lower operating costs (hardware, software, people)

- Increased agility

- Increased innovation

- Increased global collaboration

- Reduced time-to-market

- Reduced start-up costs for new ventures

Saturday, January 10, 2009

2009-01-10 Saturday - GSA Resources

GSA Home

GSA eLibrary

GSA Purchasing Programs

GSA - Getting on Schedule

GSA Schedule Solicitations

GSA Center for Acquisition Excellence

GSA eOffer
"eOffer is a tool to submit contract offers and contract modification requests to GSA Federal Acquisition Service online"

Multiple Award Schedule (MAS) Express Program
"The Multiple Award Schedule (MAS) Express Program, a specialized program established under the GSA Schedules Program, is designed to simplify, streamline, and ultimately accelerate the process for vendors to obtain MAS contracts (also known as GSA Schedule and Federal Supply Schedule contracts). Under the GSA Schedules Program, GSA establishes long-term governmentwide contracts with responsible firms to provide customers with access to a wide variety of supplies (products) and services."

Central Contractor Registration (CCR)
"Central Contractor Registration (CCR) is the primary registrant database for the U.S. Federal Government. CCR collects, validates, stores and disseminates data in support of agency acquisition missions."

Online Representations and Certifications Application (ORCA)

IT Schedule 70
"The Information Technology (IT) Schedule 70 was established by GSA to assist federal government agencies with their procurement of IT products, services, and solutions as needed to meet their agency IT missions."

GSA Schedules Contract Training (SBU)

Office of Small Business Utilization Overview

Disaster and Emergency Operations Vendor Profile (GSA Form 3685)

Doing Business with GSA (pdf)

Forecast of Contracting Opportunities

General Service Administration Acquisition Manual (GSAM)

Federal Acquisition Regulation (FAR)

The Small Business GWAC Center's Newsletter, Small Business In Focus

Subcontracting Directory
This directory is published as an aid to small business concerns seeking subcontracting opportunities with General Services Administration (GSA) prime contractors.

GSA Vendor Support Center

GSA Office of Small Business Utilization
Current NAICS Codes

2009-01-10 Saturday - Screen Linux Utility

Screen for beginners

Kernel Based Virtual Machine

2009-01-10 Saturday - Links of Interest

Workflow Orchestration Using Spring AOP and AspectJ

Enter The JBoss Matrix: Where JBossians blog

I came across a sparse, yet interesting, blog today, that is focused on IT topics related to: "Technology and Business Processes for Law Enforcement and National Security"

Call for Papers: Cutter IT Journal issue The Convergence of Information Security, Privacy and Compliance
Abstract Submission Date: 23 January 2009
Articles Due: 6 March 2009

SaaS User Satisfaction Skyrockets to a Whopping 97%

Closures have been excluded from Java 7, but here's some information that may still be of interest: Closures for the Java Programming Language

2009-01-10 Saturday - Integration Case Study

I've recently completed the integration of another major interface for a client engagement.

Business Objective

To provide construction project managers (that are managing multi-year, multi-million dollar projects) with critical financial data integrated into their project management and planning tools.

Technical Challenges

The data required originated in a mainframe legacy financial accounting system (e.g. CICS/MVS, COBOL/VSAM, NATURAL/ADABAS).

The 3rd party vendor's project management application stored data in a Microsoft SQL Server database, but the vendor absolutely advised against direct data access (e.g. using Informatica type integration tools) to manipulate the database (due to significant business rules that must be applied to ensure the integrity of the project management system's data).

The vendor's integration API was Java based - the client organization had no internal Java expertise - and thus no Java development tools, processes, or standards.

Best Practices Introduced

Established an [internal] wiki site (TikiWiki) as an "information radiator" to communicate the status of the integration development effort with various organizational units (e.g. Operations, Project Management, Support, Business Analysts). The wiki was also used to document Java development best practices, standards, and lessons learned.

Wrote a daily [internal] blog (TikiWiki) to document and communicate the techniques used, problems encountered, solutions devised, resources and references leveraged, and the ongoing progress of the development effort.

Established a bug/issue tracking system (FlySpray).

Introduced an Agile iterative development approach for the design/construction effort.

Established a Software Configuration Management process with documented and easily repeatable processes leveraging Subversion and Ant.


Conducted mentoring and formal training on the new tools introduced

Developed a high-level design using Sparx System's Enterprise Architect

An existing Informatica data warehouse feed was utilized as the authoritative source for the required data.

Developed a core Enterprise Architecture library of reusable components for current/future interface development:
- Application Context
- Application Configuration
- Batch Service Processing
- Reporting
- Enterprise Consolidated Logging
-- Integrated with Windows Event Logging
-- Integrated with Microsoft MSMQ
-- Integrated with Log4j
- General Purpose Utilities
~6,000 lines of Java code

Developed a core application-specific (project management) library of reusable components for current/future interface development:
- Business Domain Abstractions
- Discrete Units of Work Components
- Business Process Services (Aggregated Units of Work Components)
- Orchestration of Business Processes
- API Session Management wrapper
~3,000 lines of Java code

Developed the interface specific integration components:
- Interface-specific Business Rules
- Data Validation
- Job Service Orchestration
~3,000 lines of Java code

Tools/Components Used

Sparx Systems Enterprise Architect

- Wiki
- Blogs

- Bugs
- Issues
- Feature Request

Apache Commons

Apache log4j

Apache Web Server
- WebSVN

- statSVN
- TortoiseSVN

Eclipse Ganymede IDE
- Subclipse

Sun Microsystems Java SE 5 (JDK 1.5)
- Version of the JDK dictated by the vendor's API requirements



Glassfish JEE Application Server

- Continuous Integration Build Server



Lessons Learned

Using PMD and FindBugs was a significant factor in elevating the quality of the code.

Using Hudson for Continuous Integration Build - and JUnit for automated unit testing - allowed for rapid iteration, testing, and deployment to a development server environment.

XMLs Impact on Performance: This interface processes a significant amount of data. The vendor's integration API heavily uses XML internally. One line of code was found to be responsible for an execution time for a single project's data that was (5x) more than expected. Minimizing the number of properties requested for retrieval from the API (thus reducing the size of XML involved) reduced execution time to (x) for that step in processing.

The vendor's naming conventions differed (sometimes substantailly) between their API business objects and their database tables/columns. A common ontology would have been very beneficial.

2009-01-10 Saturday - JVM Options

I'm doing some research on the performance characteristics of various components in the Java Collections library - and needed to tweak my test scenarios with some JVM options. The following web site is a handy reference to keep in mind for future reference:
A Collection of JVM Options, compiled by: Joseph D. Mocker (Sun Microsystems, Inc.)

Thursday, January 08, 2009

2009-01-08 Thursday - Git vs. Subversion?

Git Home:

Several senior level developers in my professional network have adopted Git as their source code management system. I haven't had much time to investigate/evaluate Git, but I am interested in learning more about it. This posting will be my placeholder for my Git research.

Git was originally created by Linus Torvalds to replace BitKeeper as the version control system for the Linux kernel. Git

Git User's Manual

Git's Major Features Over Subversion

My initial conclusion is that the relative lack of maturity of Git integration in popular IDEs is the limiting factor in my consideration of whether to adopt Git.


Slashdot: Git Adoption Soaring; Are There Good Migration Strategies?

DVCS adoption is soaring among open source projects

GNOME DVCS Survey results
- Many different kinds of revision specifiers

A tour of git: the basics

Repository formats matter [?]

Why Git is better than X?

Git Resources

2009-01-31 Updates:

R. Tyler Ballance's blog:
"I'm using Git because it makes me feel cool"

"Delightfully Wrong About Git"

2009-02-18 Updates: - free git repository hosting

Guides: Using the EGit Eclipse Plugin with GitHub

Tuesday, January 06, 2009

2009-01-06 Tuesday - SOA Debate

Anne Thomas Manes: SOA is Dead; Long Live Services

Debate: Is SOA Dead?

Linthicum weighs in...

Mike Kavis: Did SOA die or do we just suck at architecture?

Doug Barry: (The Acronym) SOA is (Perhaps) Dead (at Some Companies); Long Live Services

Miko Matsumura, of Whatever-you-want-to-call-it Center? SOA is Dead, long live Whatever!

From January 2005, I found this gem in the comments on John Reynold's blog:
"I've decided that saying "Service-Oriented Architecture" is like saying "Food-Oriented Lunch" -- it sure sounds good when you're hungry, but you still have to decide how much you can afford to spend on it, which restaurant you're going to, and what you're going to order. And you still have to wonder whether or not you're going to have a massive case of food-poisoning afterwards. Show me an actual menu -- then I'll tell you if I'm impressed."

Posted by: davidrupp on January 07, 2005 at 02:35 PM

I've been too busy actually developing and integrating services for clients to get involved in this discussion...hehe...

2009-01-05 Tuesday - Recommended Web Designer

A friend and former colleague, Jim Mercure, is looking for web design projects. Jim is also a highly accomplished professional photographer. Here's a link to his website.

I've worked with Jim professionally several times over the last 10 years - I highly recommend his services.

You will not often find a more friendly, professional, competent, skillful, creative web designer.

Saturday, January 03, 2009

2009-01-03 Saturday -

I came across this web site recently,, which is the Center for the Advancement of the Enterprise Architecture Profession:

To have a working environment where the Enterprise Architecture profession is widely recognized by likeminded individuals and the organizations they work for, and who all support the legitimacy of the profession and its practice.

To advocate consistent professional practice, to generate public awareness, and to bring together likeminded individuals who subscribe to the Hippocratic Oath for the Enterprise Architecture Profession.

1. To identify and establish a body of ethics, principles, and maturity measures which convey a consistent message about the Enterprise Architecture profession and its practice.

2. To develop and certify a body of knowledge that properly represents the Enterprise Architecture Profession and its practice.

3. To improve the practice of Enterprise Architecture such that its practitioners are widely recognized as professionals.

Thursday, January 01, 2009

2009-01-02 Friday - Recommended Java Training Resources

A question was asked on LinkedIn for recommended Java training resources (for someone coming from a C++ background). Here were my suggestions:

The two books I would highly recommend:

Bruce Eckel's Thinking in Java, 4th Edition

Agile Java Development with Spring, Hibernate and Eclipse by Anil Hemrajani

Additionally, it is worthwhile to spend some time reading the following books that are available on the Sun Developer Network (SDN):

The Java Language Specification

2009-01-01 Thursday - updates

I've republished the Resource Links page with new content.

Updated the Computer Hardware section of my Amazon recommendations store.

2009-01-01 Thursday - New Year Goals

  1. Spend more time contributing to Open Source projects

  2. Publish more articles and white papers

  3. Donate my services to a selected non-profit

  4. Fund a selected entrepreneur through ("Kiva's mission is to connect people through lending for the sake of alleviating poverty")

  5. Complete the book I started in 2008 for Packt Publishing

  6. Attend QCON 2009 (in San Francisco?) [my 2nd]

  7. Read Dean Wampler's upcoming book on Scala

  8. Make a trip to Asia to scout out possible locations and engineers

  9. Add 100 new professional connections to my LinkedIn network - currently at 169

  10. Add a new conference to attend for my own professional development