Thursday, December 01, 2011

2011-12-01 Thursday - Bayeux Protocol

I'm exploring some potential design ideas leveraging server-side JavaScript, and so have started compiling a list of articles and resources to review::

Standard ECMA-262ECMAScript Language SpecificationEdition 5.1 (June 2011)

Bayeux Protocol -- Bayeux 1.0.0

Introduction to Bayeux Protocol (HTTP Publish-Subscribe)

Cometd is a scalable HTTP-based event routing bus that uses a push technology pattern known as Comet.
CometD.NET is a C# client library for the Bayeux protocol

V8 JavaScript Engine

Friday, November 11, 2011

2011-11-11 Friday - Apache Tika MD5 and SHA1 errors

So I was very interested to see the announcement  from the Apache Software Foundation regarding the release of Apache Tika 1.0

However, when I attempted to verify the MD5 and SHA1 values for the .jar on the download page, the values did not match the published/expected values. 

I've created a bug in the project's Jira:

Wednesday, September 28, 2011

2011-09-27 Wednesday: LACP and PAGP

I'm doing some research today on a batch performance issue that recently came up for a client engagement.

Initial research seems to indicate it may be something related to a recent network infrastructure change.  As part of that discussion, the configuration options for LACP and PAGP were mentioned.  Those configuration options were not previously familiar to me - so I spent a quick 15 minutes doing some research and found these resources to be of some interest:

Some background info on LACP and PAGP

VMware Virtual Networking Concepts

Link Aggregation Control Protocol (LACP) (802.3ad) for Gigabit Interfaces

For Catalyst 2950 and Catalyst 2955 Switch

Configuring EtherChannels
Interfaces configured in the on mode do not exchange PAgP or LACP packets.”

Table 30-1 EtherChannel Modes 
Places an interface into an active negotiating state, in which the interface starts negotiations with other interfaces by sending LACP packets.
Places an interface into a passive negotiating state, in which the interface responds to PAgP packets it receives but does not start PAgP packet negotiation. This setting minimizes the transmission of PAgP packets.
Places an interface into an active negotiating state, in which the interface starts negotiations with other interfaces by sending PAgP packets.
Forces the interface into an EtherChannel without PAgP or LACP. With the on mode, a usable EtherChannel exists only when an interface group in the on mode is connected to another interface group in the on mode.
Places an interface into a passive negotiating state, in which the interface responds to LACP packets that it receives, but does not start LACP packet negotiation. This setting minimizes the transmission of LACP packets

“Interfaces can form an EtherChannel when they are in different PAgP modes as long as the modes are compatible”

Default EtherChannel Configuration

Table 30-2 shows the default EtherChannel configuration.
Table 30-2 Default EtherChannel Configuration 
Default Setting
Channel groups
None assigned.
PAgP mode
No default.
PAgP learn method
Aggregate-port learning on all interfaces.
PAgP priority
128 on all interfaces. (Changing this value has no effect.)
LACP learn method
Aggregate-port learning on all interfaces.
LACP priority
32768 on all interfaces.
Load balancing
Load distribution on the switch is based on the source-MAC address of the incoming packet.

EtherChannel Configuration Guidelines

“Do not configure a GigaStack GBIC port as part of an EtherChannel.
“Configure all interfaces in an EtherChannel to operate at the same speeds and duplex modes.
“Do not configure a secure port as part of an EtherChannel.”

PAgP is cisco proprietary which has 2 implications:
1-Interoperability with other network gear from different vendors is not guaranteed.
2-More importantly, your vmware servers may not be able to leverage the etherchannel

“Cisco's recommandations for VMWare connection is to use the mode "on", not LACP or PAGP”

“ESX does not support PAgP or LACP, you need to set Etherchannel to NONEGOTIATE”

I need to get in the habit of using LACP. I've been using "on" exclusively and it's bitten me a couple times.”
“Channeling unconditionally can cause a loop if the other side isn't configured.”

For ports to be members of the same EtherChannel, there are some restrictions. Ports must:
  • Belong to the same VLAN
  • Have identical STP settings
  • Have identical speed/duplex settings
  • Note: In addition, if the EtherChannel is to be used as a trunking interface, all ports must be in trunking mode, have the same native VLAN, and pass the same set of VLANs.

EtherChannel Negotiation: PAgP vs. LACP

There are two EtherChannel negotiation protocols.  Port Aggregation Protocol (PAgP) is a Cisco-proprietary protocol, while Link Aggregation Control Protocol (LACP) is standards based.
PAgP dynamically modifies the EtherChannel if one of the ports’ VLAN, speed, etc. is changed so that all of the links in the EtherChannel match. PAgP can be configured in active mode (desirable), which actively attempts negotiation.  Passive mode (auto, the default) only negotiates an EtherChannel if the far end initiates it.
LACP assigns roles to end points.  The switch with the lowest system priority makes decisions about what ports will participate in the EtherChannel at any given time.  If you’re familiar with STP, this is similar to the way the Root Bridge is elected.  Ports are selected and become active in the EtherChannel according to their port priority. LACP Active mode (active) – actively negotiates, while passive mode (passive) negotiates only if the far end initiates it.

Etherchannel Performance Issues with….

“Recently there was a post on Linkedin about port aggregation and the use of negotiation. It’s really disturbing seeing how many people recommend not using LACP or PaGP to configure aggregated ports (port-channels|etherchannels). Seems to be common misconception that if two switches are back-to-back configuring an on mode is acceptable.”

Thursday, September 08, 2011

2011-09-08 Thursday - IBM Initiate

I'm doing some research for a client engagement that is using the IBM Initiate product for Master Data Management

Here are the links to some of their product documentation:

IBM Initiate Master Data Service PDF documentation (v9.7)

SDK Reference for Java andWeb Services

IBM Initiate Master Data Service PDF documentation for legacy releases (7.5 thru 9.2)

Friday, September 02, 2011

2011-09-02 Friday - Weekend Reading...

InfoQ: Infinitely Extensible, by Alex Papadimoulis

InfoQ: Design For Hybrid Agile Adoption, by Upadrista Venkatesh

Getting Things Done with REST Presented by Ian Robinson

A Fresh Look at APIs

This Week's Book Recommendation:
Intelligence Unleashed: Creating LEGO NXT Robots with Java, by Brian Bagnall

Thursday, August 25, 2011

2011-08-25 Thursday - JavaScript Rule Engines?

I spent a few minutes this afternoon doing some searches for possible Web UI based JavaScript Rule Engines…and came across some of these articles which may be of interest for possible strategies on how to easily package Web User Interface business rules…

Not specifically recommending this for adoption...more of an interesting I'm currently doing some research for a client engagement...
Invoke dynamic languages dynamically, Part 1: Introducing the Java scripting API
Invoke dynamic languages dynamically, Part 2: Find, execute, and change scripts at run time
Creating a simple rules engine using the Java scripting API
jsonrules: A Rule Engine in the Web browser (2009 – alpha version was published, not much activity since)
Simplify dynamic JavaScript UIs by applying the Model-View-View Model (MVVM) pattern

Saturday, July 30, 2011

2011-07-30 Saturday - Mobile Application Development Resources
Mobiletuts+ is all about quality tutorials for mobile developers – all mobile developers. Topics will include native development with the iPhone, Android, Windows and Blackberry platforms, cross-platform development with tools like Appcelerator and Phone Gap, and techniques for building mobile accessible web sites with HTML 5.

OpenPlug Studio
 (an Alcatel-Lucent venture?)
OpenPlug Studio is a free tool for mobile and tablet applications development.
From a single code base you can now build for all platforms and get the best of web development plus a native user experience in your apps.

In-App Payments


Hello, World

Managing Virtual Devices

In-App Billing

Wednesday, July 27, 2011

2011-07-27 Wednesday - Dean Wampler on Functional Programming

A friend and former colleague, Dean Wampler, has a new book coming out tomorrow (July 28, 2011):  Functional Programming for Java Developers

He also recently gave a presentation at the 2011 O'Reilly OSCON (Open Source Convention),  
Become a Better Developer with Functional Programming

His presentation [pdf]

Saturday, July 23, 2011

2011-07-23 Saturday - Ceylon, JVM-based programming language

While reading some comments about the new Jetbrains Kotlin JVM-based programming language, I happened to come across Gavin King's work on the JBoss Ceylon JVM-based programming language...

2011-07-23 Saturday - Kotlin JVM-based programming language

I came across this June 14, 2011 presentation slide deck by Carson Gross this weekend...

Language Features As A Library Using Gosu’s Open Type System With External DSLs

...while reviewing the agenda and presentations from the 2011 JVM Language Summit

Sunday, July 10, 2011

2011-07-09 Sunday - Eclipse 3.7 Indigo Upgrade

This weekend I've spent some time upgrading to the Eclipse 3.7 Indigo release.

I'm still evaluating the compatibility of the following plugins...






Spring IDE

SQL Explorer

Scala IDE
- It appears that I'm encountering a similar problem as this recently reported Scala IDE defect:
(#1000447 IDE failing)

Amazon AWS IDE
Android IDE

Memory Analyzer

Java Decompiler

Regex Testing Plugin

C++ Development

PHP Development (may only be compatible with Helios/3.6?)

2012-04-28 Update:
I recently added this tool (Toad) to my collection of useful Eclipse plugins

2012-05-05 Update:
Recently added git plugin 
install git for Windows:  

2012-09-12 Update:
VJET JavaScript IDE is an Eclipse plugin that provides a fully integrated development environment for JavaScript 

2012-12-05 Update:
 While upgrading to GlassFish - I discovered that the previous link for the Glass Application Server plugin within Eclipse was causing a problem. 

The correct link to use: 

Subsequently, I ran into this problem:

...and then had to uncheck "Use Anonymous Connection for Admin Commands" - since I was getting
INFO: User [] from host does not have administration access

Saturday, June 25, 2011

2011-06-25 Saturday - f(x) totallylazy

...another interesting functional library for Java

A functional library for Java that has the following features
  • Tries to be as lazy as possible just like Clojure's collection library
  • Works with Iterable, Iterator, Arrays, Char Sequences, Dates and Numbers (i.e virtually everything)
  • Follows the ML family of function / method names (Standard ML, oCaml, F#, Scala, Haskell)
  • Uses and extends Callable interface for maximum interop (i.e Can use with Clojure, Hazelcast)
  • Optionally supports using Hamcrest matchers as predicates
  • Supports chaining of all methods (Recommended) or the use of static imports for all methods.
  • Optionally supports creating Callables via dynamic proxies (requires cglib-2.2 and objenesis-1.2)
  • NEW Alpha support for SQL, think poor mans LINQ for Java.

Tuesday, June 14, 2011

2011-06-14 Tuesday - International Statistical Classification of Diseases

ICD-10 transition proving complex, expensive for hospitals

International Statistical Classification of Diseases and Related Health Problems

International Classification of Diseases, Tenth Revision, Clinical Modification (ICD-10-CM)

Saturday, June 11, 2011

2011-06-11 Saturday - Friend of Eclipse

The Indigo release of Eclipse is coming later this month - and in honor of the many years of enjoyable free use that I made of the most excellent Eclipse tools - I decided to become a Friend of EclipseF by making a donation in support of the Eclipse Foundation's efforts:

Saturday, June 04, 2011

2010-06-05 Saturday - Weekend Reading

I'm catching-up on some reading today - here are some of the things I'm reading:

Glenn Fleishman posted some interesting articles a few months ago on ars technica

The ABCs of virtual private servers, Part 1: Why go virtual?

The ABCs of virtual private servers, Part 2: Getting started

I came across Brad Fitzpatrick's blog post about his Android application to open his garage door...

I joined the Go Language Developer's Google Group

Maker's Manifesto

Android Scripting


Monday, May 09, 2011

2011-05-09 Monday - Why You Might Need JSON

"Even the most humble carpenter has hammers of different sizes"

Hypothetical Problem:  
An average payload of 50-100 bytes of data needs to be made available via an online service - but an enterprise canonical XSD structure might flood the network with about 200K of just empty tag elements alone.

Proposed Solution:

For certain types of data servcies, a light-weight RESTful service using JSON (over heavier-weight enterprise-level XSD-based canonical models for SOAP-based SOA services) might be more appropriate.

JSON Schema

RFC 4627 - The application/json Media Type for JavaScript Object Notation (JSON)

JSON support in JAXB

XMLSpy supports XML-to-JSON conversion

Thursday, April 28, 2011

2011-04-28 Thursday -

I have an interest in monitoring the development of the Nationwide Health Information Network - and happened to see an announcement today regarding the Aurion Project

"The Aurion Project, an evolution of the Federal Health Architecture’s CONNECT open source project focused on achieving health IT interoperability using nationally recognized standards, is off to an ambitious start. Its inaugural Aurion Community Town Hall Meeting was held April 12 to begin its chartering and membership process. Meanwhile, the Aurion 4.0 software is set for release May 3."

Aurion Wiki

Aurion Specifications

TeamForge / Project Home / Source Code Repositories

After doing a bit of reading, I also came across this interesting bit (a friend specializes in all things Semantic - and I thought this was a great example for him to highlight in his client discussions) - related to semantic translation "Terminology Services"

 see section on page-34:

"The semantic meaning of medical data refers to the ability for a system
to understand the meaning of the medical data that is being shared. When
two separate medical computer systems are connected, it can be difficult
for one system to understand and compute on the data from another
system. In order to successfully compute upon the data, the semantic
meaning of the sending system must be understood by the receiving
system. Terminologies are used by medical systems to communicate precise
semantics. Terminologies use codes, text, hierarchical layout, and
relationships to communicate meaning. Often times differing medical
systems will use different terminologies. Terminology services are used
to cross map one terminology to another. They are also used to provide
translation services and code relationship services. As the Nationwide
Health Information Network moves forward, these services will become
more and more critical so that the differing medical systems are able to
semantically understand the data they are receiving."

Friday, April 22, 2011

2011-04-23 Friday - Microsoft HPC Server

I am very intrigued by the potential future direction of Microsoft's High Performance Computing (HPC) Server Group - and have spent quite a bit of time reading through their material.

A few years ago I spent a fair bit of time studying MPI (see links here, here, and here) for possible use in the design of a client's new Enterprise SOA infrastructure capabilities (for distributed parallel and cluster computing) - and was very pleased to learn that the HPC technologies are based on  MPICH2 from Argonne National Laboratory.

MSDN: Microsoft High Performance Computing for Developers


MSDN Virtual Labs: Introducing .NET4 Parallel Extensions

MSDN: Microsoft MPI

Microsoft TechNet: Windows HPC Server

Windows HPC Server 2008 R2 Resource Kit

Windows HPC Server 2008 R2 Community

Windows HPC Server 2008 R2 Suite Evaluation

I also found a comparison between Dryad and Hadoop here:

Saturday, February 26, 2011

2011-02-26 Saturday - Software Updates...

Tonight I updated to the following releases:

Thunderbird 3.1.7
- looks very good :)

OpenOffice 3.3.0

Slik SVN 1.6.15

PERL 5.12.3

2011-02-26 Saturday - Python XSLT solutions?

wow - a bit disappointed that there isn't better XSLT support via a pure Python library...I'm currently evaluating lxml -

2011-02-26 Saturday - Aptana Pydev "no such file to load"

I've discovered an issue with the latest release of the Aptana Pydev plugin for Eclipse (Aptana Pydev

An internal error occurred during: "Loading bundle: C:\eclipse\configuration\org.eclipse.osgi\bundles\1026\1.cp\bundles\bundle-development.ruble".
(LoadError) no such file to load -- ruble/ui

Also tote: I'm running Eclipse Helios 3.6.2.r362_v201102120-9gF78Gs1FrIGnHDHWkEcopoN8AmxeZflGDGKQi
Build id: M20110210-1200

I posted a message to this thread:

and also found a similar sounding previously reported problem here:

Tuesday, February 15, 2011

2011-02-15 Investigating Windows Performance Issues

There are some very good tools, techniques, and lessons-learned in the following articles:

Why does WMI Provider Host ( WmiPrvSE.exe ) keep spiking my CPU ?

Windows Crash Dump Analysis...

API Monitor

Is WMIprvse a real villain?

As the first article mentions an earlier version of the HP Wireless Assistant as a possible culprit to CPU over-utilization, here's the link to the download for the latest version:

Monday, January 31, 2011

2011-01-31 Monday - Sharepoint titles from Packt Publishing

A colleague mentioned he was about to embark on a new internal IT project involving Sharepoint - and a quick check on Packt Publishing's web site led me to the following interesting titles...
Microsoft SharePoint 2010 Administration Cookbook

Microsoft SharePoint 2010 Business Performance Enhancement

Integrating Silverlight 4 with SharePoint 2010

SharePoint Designer Tutorial: Working with SharePoint Websites

Microsoft SharePoint 2010 Administration: Farm Governance