Admin to Programmer

Everybody is talking about Cloud Computing these days. In fact, I read one survey that stated Cloud Computing was one of the leading tech topics for 2010. In legacy systems, you have programmers coding to network APIs. And sys admins manage workstations and servers. Roles get switched up in the cloud computing world. The sys admins have to learn a lot more tech.

Sys admins act more like programmers in cloud computing. Examples include script languages such as Python and PHP. They need to know SOAP and REST. The also need to become familiar with managing virtual machines. Admins may also need to ramp up on agile development.

It sounds like a system administrator job sound pretty existing in the cloud.

Web Technologies

Sooner or later I suspect the client/server system I work on will go to the web. Therefore I figure I had better learn web development. But what technology should I learn? There are many to choose from.

At first I took a Java programming class. Currently I am taking a class on HTML and CSS. However these are just the basics. There are web specific technologies out there which are waiting to be learned

I hear that AJAX is a simple choice. It allows you to update sections of a web page instead of reloading the whole darn thing. And if you want to do animation, then Adobe Flash is the tool for you. These days however, I hear more about Adobe AIR than Flash.

Finally the Microsoft solution is Silverlight. The latest incarnation of this technology is Silverlight 3. This product is focused on rich Internet applications. In other words, if you want a web app to look like a mature desktop app, pick Silverlight. You get .NET support to boot.

Microsoft XML

I just subscribed to Microsoft’s MSDN magazine. This month’s issue had a number of references to XML technology. I guess this is a sign that XML is here to stay. The buzzwords I read about were OOXML, XmlLite, and XAML.

OOXML stands for the Open Office XML. It was developed by Microsoft, and is used as the file format for Office 2007 applications. This is not related to the open source OpenOffice applications.

XmlLite is a library for high performance XML applications. It is shipped as a DLL. XmlLite comes with C++ support. You can use it out of the box with Microsoft Visual Studio 2005. It does not do XML validation (to achieve high performance).

XAML stands for extensible application markup language. It is used a lot in the .NET framework. Specifically it is used in WPF, Silverlight, and WF.

Mashup Markup

There is a new markup language being standardized. It is the Enterprise Mashup Markup Language, otherwise known as EMML. This is an XML language. It employs XPath and XQuery.

EMML is being standardized by the Open Mashup Alliance. This is a group formed last month. It includes names like Adobe, HP, and Intel.

There are some who believe it is too early for such standardization. In the big scheme of things, mashups are new on the web. The jury is still out on this. For more information visit the Open Mashup Alliance on the web.

SOA Maturity Model

It has been a number of years since the Open Group created a working group for SOA. This working group has just published OSIMM, which stands for the Open Group Service Integration Maturity Model. This allows you to measure a company's maturity with respect to SOA. It sounds a lot like the CMMi maturity level for software development.

The top level in the model is SOA with dynamic service composition. And the bottom level is essentially No SOA. Unfortunately I think our project is at the bottom of the heap. We currently do not implement any SOA just yet. There is some talk though. And we will be processing XML input this upcoming year.

The Death of XHTML 2

This semester I am in a web programming class. We are going to learn XHTML. For now I assume that XHTML is HTML adhering to XML standards. A quick scan of my textbook seems to indicate you can just add three lines to your HTML document to make it an XHTL one. We shall see.

It was exciting to see XHTML in the news recently. Well it was exciting until I found that we are about to see the end of XHTML 2. The W3C has decided to pursue HTML 5 instead. I am not sure if this means XHTML in general is dead, or if it is specific to the XHTML 2 specification.

I have head that HTML 5 is not all that exciting. It is a means to combat the rise of competing technologies such as Silverlight and Flash. Apparently Internet Explorer is not supporting all of HTML 5 features. That's a bit of a concern, as I think IE still leads the browser market. Perhaps Microsoft wants to push Silverlight at the expense of their browser. I will check back later when I learn more XHTML in class.

WTF is XML

I often see message board posts asking what exactly XML is. The first Google link will take you to Wikipedia, where the acronym is translated as the Extensible Markup Language. It is defined as a set of rules for encoding documents. Sounds simple enough.

Here is the funny thing. I don't think they teach XML in college. Not even in computer science digress. If it was described in a class, it would be in the Web 2.0 class, which happens to not exist.

Some have called XML a complicated protocol. Others just call it a file type. An easy way of dealing with XML is to use tools to take care of the details. Actually I want to correct my initial statements. The very first link on Google search was a sponsored one by Altova. They were pushing their XML Spy program. I have used it before. Even though it is expensive, it makes XML easier to deal with.

But I digress. XML lets humans read file contents. The files themselves are ASCII text, which get sent over the Internet using the TCP/IP transmission protocol. I have written a whole blog about this subject. We plan to import XML files in our system at work next year. I wanted to purchase a copy of XMLSpy for use at work. However the price tag seems to have given my customer caution. The tool is not more expensive than some of the other software development tools they buy me. However XML is more specialized, and I am not sure I can justify the return on investment.

XML Dedication

Check out this picture for some serious XML dedication. Well it was actually some marketing. I'd call that good marketing. That at least deserves a link. Check out what the CEO of her company has to say about expensive disk storage.

In other news, I have signed up for a college class on XHTML. Now I assume that I am actually going to learn HTML. However the new sexy way to label such learning is XHTML. I paid an arm and a leg for the school textbooks for the course. Chapter 1 tells me XHTML is HTML with three extra lines added at the top of the file. LOL. I bet you can guess what they are talking about.

Be on the lookout for some posts on HTML as I study up in the class.

In Defense of XML

I read a Reddit post defending the creators of the XML standard. This was focused on XML basics. It excluded fringe technologies such as WS-*, SOAP, XML-RPC, and RDF. The author acknowledged that a big part of XML was related standards like XML Schema and XQuery. However he declared that the main point of XML was standardizing a file format and creating a meta language. The best part of the post was the many comments that were received.

First let’s cover the bad. SOAP requests take forever to parse. XML parsing in general seems to be inefficient. It is slow for large data transfer. Most developers do not like XML. This may be due to the APIs like SAX and DOM being horrible.

That is quite a list of bad comments. But each of them, there was a corresponding good comment. XML has been applied to many domains. It is good for large and complex documentation. It is also good for configuration files. Microsoft Visual Studio has a nice XML editor built in. XML is essentially SGML for the web. In other words, it is meant for data transfer.

Initially I thought I would be involved in a new addition to our system that will parse XML input data. However I am finding that I am too busy with other new parts to our system this year. So I have not been as active in my XML studies since my training class ended. It is still nice to read what people in the XML industry have to say about the topic.

Parsing the XML

Today our system receives input files from mainframe systems in custom format. However starting next year, we will be getting some files in XML format. Today the lead developer on that task shared some of the technology options to deal with reading the input data.

I liked some of the first options that were presented. Essentially they were using a high level language such as C or Java to work with the XML parser provided by Oracle Corporation. The destination of our data is a huge Oracle database.

One of the other options was to use XML DB to pull the XML right into our database as XML. Then we could use some code to further process the XML data from the database. This sounded good as we have a number of developers with Oracle PL/SQL coding talent.

A DBA on our project thought storing huge amounts of XML in our database would be painfully slow. Instead he recommended we transform the data using XSLT. The we could directly load the transformed data into our database with quick loading programs from Oracle. This was all good food for thought.

XML Notepad 2007

While reading an article on the best free tools for your PC, I spotted a product called XML Notepad 2007. This is a free download from Microsoft. I decided to give it a try. We are moving to an XML format for input files next year.

The download was not too large. What really impressed me was how fast the tool installed. Sure it is just a little XML tool. But these days even the simple tools seem to take forever to install. In contrast, once installed, the tool seemed to take a while to launch.

The “read me” file that came with the install said XML Notepad 2007 has been downloaded over one million times. I wonder whether that was the number of downloaded at the time when they released this version (v2.5). Or perhaps the application calls home to Microsoft to determine the current counts.

The application has a right pane which show information from your XML document. At first it seems sparse. But it fills up as you select items in the tree on the left hand pane. This application feels like a simple viewer. However it states that you can use it to create XML documents as well.

I found the tree like structure on the left hand pane useful for determining the structure of the XML in some test files. In other words I could see the hierarchy of parent and child relationships. Make no mistake. This product is no XMLSpy. But it will do until my company can purchase me an XMLSpy product.

XBRL

Altova has come out with MissionKit. This is a set of tools for XML, UML, and databases. In case you did not know, UML is the Unified Modeling Language.

I know Altova for their superior XMLSpy application for XML development. In fact, XMLSpy is a part of MissionKit. I am excited because they are purchasing some XMLSpy licenses on my project.

Altova added XBRL support to their tool kit. XBRL stands for the Extensible Business Reporting Language. It has tags for accounting purposes. This helps businesses exchange financial information. If their toolkit and XBRL support are anything like XMLSpy, I predict good things from it.

Cloud Computing Overview

If you read the trade press, you know there has been a lot of hype over Cloud Computing. At first I ignored it. But Cloud Computing does not look like it is going away any time soon. So I figured I had better pay some more attention to it. My main interest is determining how it impacts me as a programmer.

I saw an interview with a manager who discussed her take on Cloud Computing. She defined it as a deployment model. She also called it a shared resource model. I guess the word model comes with the territory here. That is kind of like the word paradigm or capitulation. But I digress. The manager said some of Cloud Computing is like a hosting model. There goes the model word again. Cloud Computing comes with its own security risk due to the sharing of resources. There are scalability issues depending on the numbers of users and load.

But I am a Cloud Computing newbie. So let’s go back a bit. Cloud Computing promises virtually unlimited CPU, memory, storage and bandwidth. The only limit seems to be how much money you have to pay for it. That may seem like a bandit’s scheme. However you are supposed to only have to pay for what you consume. This is analogous to electricity usage.

Unfortunately there are no standards for Cloud Computing. Two large and popular implementations are Amazon Web Services (AWS) and Google Application Engine (GAE). Those are good buzzwords to know for your next cocktail party. There may not be a service level agreement available for users of these platforms.

Experts think that Cloud Computing is going to be a hit in the enterprise. The idea is still in its infancy. In addition to Amazon and Google, Microsoft has recently come out with its Azure platform for Cloud Computing. That however is a topic for a future blog post.

End of Online Class

I have been engaged in an online class on XML. Some time ago I received the last class via email. It might be time to start using my XML skills to use. Hands-on learning is the best way to really learn a subject. I thought I would share what I learned in my last online class. This last class was a review of some XML related topics not covered yet.

XHTML 1.0 is HTML 4. It is HTML rewritten to be valid XML. It is modularized (i.e. split into modules). Some of the cores modules in XHTML are structure, text, hypertext, and lists. Images are notably not part of the core modules.

XPath is a language to express a specific part of an XML document. It is used by both XSLT and XPointer. You can use XPath to navigate an XML document. The root element is specified by the slash character. The asterisk character selects every element in the path. The each sign (@) matches XML attributes. All of these parts are easier to understand with examples. Perhaps I will provide some XPath examples in the future.

Next year my project is going to start receiving all input data in XML file format. I believe they are using XML Schema to be exact. Now I do not directly work on the team that loads data into our system. I work on applications that use that data. However I might be involved with the changes to read the XML source files pretty soon. Practice makes perfect.