XML Tools and EDI conversion

I’ve been working on a project recently involving converting X12 EDI documents into XML files for integration with the PRO-MAIL warehouse management / fulfillment software. I wanted to post here about some of the tools I’ve employed throughout this project. Initially, I began using TextXSLT, a simple Cocoa XSLT helper app, to begin putting together the stylesheet that would ultimately translate from one XML schema to another.

Another tool I enjoyed using was the oXygen XML editor. I was particularly impressed with the schema browser/editor portion of the software.

Ultimately, the tool I used most, however, was Stylus Studio. Stylus Studio has many great features, but I was primarily interested in their EDI-to-XML conversion utilities. From what I can tell, their EDI utilties are the best available. Anyone who’s ever dealt with EDI can tell you that it’s a PITA to work with, and Stylus Studio makes it easy. (relatively speaking, at least) As a Java developer, I’ve also been impressed with the Java code generation and other Java language utilities available. I was able to accomplish my EDI-XML workflow by utilizing Stylus Studio’s Java API to achieve functionality not available using XSLT alone. One of my favorite parts is that the API is available completely outside of the Stylus Studio application, meaning that you are able to leverage its powerful EDI adapters without invoking the application itself. If you’d like to try it out, the version I have been using is the Stylus Studio 2006 Release 2 XML Enterprise Edition and there is a 30-day trial version available.

Working in XML is almost always challenging, but I also find it very rewarding. It’s such a large bundle of complex, related technologies that it is necessrary to have good tools. The <oXygen/> XML editor is powerful and appears to be a great XML tool for many tasks, but I couldn’t have completed my project without the EDI component of Stylus Studio. I’m looking forward to trying more XML tools and new versions of those I’ve mentioned, and thanks to Stylus Studio, I’m actually looking forward to working with EDI again. Read More ›

New kernel for Mac OS X?

I recently read an editorial by Robert Cringely dealing a bit with Mac OS X 10.5 (Leopard), Windows Vista / XP, Virtualization and Windows API compatibility. I wasn’t so interested in his speculation regarding Windows API compatibility as I was his suggestion that Leopard would be sporting a new kernel. In all honesty, I hadn’t ever really considered such a move very likely. I mean, I know people have issues with Mach, but it works, right? In fact, it works quite well. That being said, I’m certainly not tied to it. I began doing a bit of research on this issue to see if I could try to guess what to expect from Apple in Leopard.

The notion that Apple is ditching Mach brings several questions to mind. First of all, why? Well, it appears that Mach does in fact have some significant performance limitations when compared to monolithic kernels. AnandTech put together a nice write-up of its own comparison testing.

So, if you agree that Mach has some significant drawbacks and that Apple is likely to want to replace it, the next question is, “With what will they replace it?” The primary reason for replacing Mach in OS X would likely be for performance, so presumably, the replacement kernel would be monolithic. Of the available open source monolithic kernels, the Linux and FreeBSD kernels present possibilities. I discount Linux for several reasons. First, Linux has some significant technical differences between FreeBSD / Darwin, so marrying the Linux kernel with Darwin could prove technically challenging and unrewarding. Second, Linux has GPL license encumberances. Apple enjoys greater freedom with the BSD license. Of the available monolithic kernels, the FreeBSD</a> kernel seems most likely.

It is entirely possible, however, that Apple has been developing a replacement kernel themselves for some time. I actually think this one is less likely, but still possible. I think it would take an awful lot of resources to develop a separate kernel entirely for all this time.

Another interesting possibility is the L4 kernel. L4 is similar to Mach in its microkernel design, but is meant to address a number of the problems with Mach. There has already been some work done to bring L4 to Darwin and work is ongoing. You can read more about the L4/Darwin (darbat) project here. I’ve downloaded the Qemu image and tried it out, myself. It’s still very early in development, and unless Apple engineers have been working on this apart from the darbat developers, I can’t see Leopard sporting L4.

The last question I want to explore in this post is, “Even if Mach has problems, is it really worth the effort of replacing it?” It seems to me that Mach’s issues have the greatest implication for Mac OS X Server, where things like database and webserver performance are so critical. Well, wouldn’t it be worth replacing Mach to have a competitive enterprise server OS? I’m not so sure Apple is that concerned about it. In fact, here is one account that Apple is not interested in the enterprise at all. So, if Steve isn’t interested in the enterprise market, and Mach is mostly holding back OS X Server performance, does it make sense to swap kernels?

Well, honestly, I don’t know. It seems to me like Mach has seen better days. Maybe the naysayers are right and it is time for a change. Could Apple pull it off? In the middle of the PPC->Intel transition? Yes, I think so. In fact, the time is right for a kernel move. All I know is, Apple’s not saying a whole lot about Leopard yet. This year’s WWDC is sure to bring some exciting news items. Will a new kernel be one of them? I don’t know, but I can’t wait to find out.

Links: * http://www.pbs.org/cringely/pulpit/pulpit20060420.html * http://www.pbs.org/cringely/pulpit/pulpit20060413.html * http://www.anandtech.com/mac/showdoc.aspx?i=2436&p=7 * http://episteme.arstechnica.com/groupee/forums/a/tpc/f/8300945231/m/645003648731 * http://en.wikipedia.org/wiki/L4_kernel * http://www.ertos.nicta.com.au/software/darbat/ * http://en.wikipedia.org/wiki/Linux_kernel * http://en.wikipedia.org/wiki/FreeBSD_kernel Read More ›

Apple Pro Keyboard on Windows XP

My old AT keyboard finally bit the dust recently, so I decided to replace it with an Apple Pro USB Keyboard. I’m currently using a trial copy of Windows XP x64 Edition on this new PC of mine, and the Apple Pro Keyboard works great “out of the box” with it. However, when I began using Synergy, I began to be irritated by the fact that the alt/option key naturally maps to the apple/command key on my PowerBook. The alt/option key is just not nearly so well positioned for this purpose, so I set it to fix this annoyance.

Synergy is very configurable, and I was able to fix the problem by setting “Alt” to “Super” and “Super” to “Alt” in my PowerBook’s screen definition in the Synergy config. This allowed me to use the proper Apple/Command key when my PowerBook had focus in Synergy. My problem seemed resolved until switching back to the PC and realizing that Alt-Tab meant moving my thumb to the “alt/option” key again. This, I thought, was a bit annoying as well.

I knew that Windows XP allowed for remapping keyboard keys by redefining keyboard scancodes in the registry, so after consulting http://www.microsoft.com/whdc/device/input/w2kscan-map.mspx and http://goatpunch.com:8080/interflow?Remapping+Windows+Xp+Keyboard+Scancodes, I put together a registry entry that remapped my Apple/Command (originally mapped as the “Left Windows Key”) to be “Left Alt” and “Left Alt” to “Left Windows Key”. I didn’t bother remapping the right equivalents, as I don’t tend to use those very often.

So far, I’ve found this remapping to be very useful, so I am providing it as a registry file you can import. You will need to reboot after applying the registry file for the changes to take effect.

You can download the file here.

I hope someone else finds this useful. Read More ›


A friend of mine recently got me to try out a piece of software called Synergy. He told me it was like a software KVM switch, only without the “V” part. He said it was like working with a dual-head computer system, only it worked across separate computers. He also said that it was cross-platform and provided a shared clipboard!

I have to admit that at first, I really didn’t fully understand what Synergy did, but it sounded impressive enough that I had to try it out. Once I got it installed, I was truly amazed! I was amazed first by the technical aspects of Synergy. It’s not that Synergy is that complicated. In fact, once I got it running, I understood very well how one could go about constructing such a thing. The thing that most amazed me, however, was the boost in productivity I found from working with Synergy.

Like many IT professionals (or hobbyists, for that matter), I have several computers in my office or on my desk. Several of my machines are laptops. With this setup, I generally switch back and forth between my desktop(s) and laptop(s) throughout the day. This process can be rather tedius because it involves moving my hands from one keyboard / mouse to another. Now, I understand that there are KVM options and other ways to deal with such a problem. But in my case, these were not entirely feasible. And, if you give Synergy a go, you’ll discover that a movement of the mouse cursor is as convenient as switching a KVM or even more convenient in the case of a KVM without keyboard controls. What Synergy has allowed me to do is to sit back and use a single keyboard and mouse seamlessly between my desktop PC and my PowerBook, whether my PC happens to be running Windows XP, Linux or Darwin.

I highly recommend Synergy for anyone who uses a laptop on their desk next to their desktop computer. It’s not difficult to set up at all and there is even a nice installer for Windows. Read More ›

Earthlink's "IPv6 In the Home"

I happened to be looking over the Linksys WRT54G article on Wikipedia today and discovered an interesting external link. The article linked to a page that is a part of Earthlink’s R&D site (http://www.research.earthlink.net/ipv6/) describing a custom firmware Earthlink developed for deploying IPv6 into the home. The firmware is based on the Linksys firmware, but provides IPv6 routing capabilities and appears to be configured to work specifically with Earthlink’s IPv6 service.

I’m thrilled to see this kind of project. This kind of thing is just the thing that will speed the adoption of IPv6 in the home. Earthlink makes a pretty strong disclaimer regarding the quality of the firmware, but I imagine it mostly works just fine. They even addressed security concerns for opening up home network computers using publicly routable IPv6 addresses by providing a strong firewall configuration by default. It also appears that this service is open to anyone, not just Earthlink subscribers.

Really, I’m happy to see such a project and I hope that this and other similar projects help make IPv6 more practical. As IPv6 deployment becomes more practical, I see real potential in online gaming, such as Xbox Live or the Nintendo Revolution’s online game service. Anyway, check it out. Read More ›