A place for SGML and XML application developers.

August 5, 2008

Partly to Mostly Cloudy

Filed under: Rants/Musings,Software — cangione @ 9:19 pm

I'm moving further into the cloud. The internet cloud. Wikipedia is defining Cloud computing as a style of computer "where IT-related capabilities are provided as a service".

I started with Google Docs. Storing my checkbook register (an excel spreadsheet), some Power Point presentations and some PDF white papers I always find myself looking for. I want access to these documents quickly and easily from any and all computers I might happen to have available to me even if only for a few minutes.

My move further into the cloud happened when I had to decide if I was going to put additional Network storage on my home network or lease secure disk space somewhere in the cloud. We're at 2 terabytes and climbing at home already. Some of the disks have been spinning for a few years so I wouldn't trust critical or archive data to them. Truly archiving data means having it mirrored on at least two different disks if not on a DVD as well.

I decided to roll with the Amazon S3 service instead of buying more disk that I have to maintain. Amazon S3 is a simple web service that can be used to securely retrieve any amount of data, at any time, from anywhere on the web. Amazon does not provide a front end to the S3 web service. It is intentionally built with a minimal feature set.

For a front end to the S3 service I decided to use Jungle Disk. Jungle Disk supports Linux, Max, and Windows (including Vista) platforms as well as USB sticks. It makes the Amazon S3 service appear as a network drive on your machine where you can drag and drop or copy files.

One of my major complaints with approaches like this in the past has been that passing lots of info or large files over the network takes time and can be process intensive depending on your OS (this is really the kindest way I could put this without saying Windows slows to a crawl). Jungle disk has solved this. It caches the files local on your machine and slowly feeds the bits to the S3 service as CPU and bandwidth are available (configurable). To the end user it makes the copy to the Network drive look instantaneous. The software also comes with a backup routine where you can backup selected folders. The software is 20 bucks with life time upgrades.

You pay for the Amazon S3 service monthly. The rates are reasonable. Storage is $0.15 per GB-Month of storage used. You also pay a small data transfer fee for incoming and outgoing data transfer. Amazon provides a fee calculator to figure out your approximate costs. If you think about what hard disk space costs to install and mirror (for a true archive) as well as administer, the fees keep looking better and better! I'm willing to pay for good service and zero headaches!

So what's left on my Network Storage at home? VMware images. Lots and lots of VMware images. Large files that are I/O and bandwidth intensive are not the type of thing I'm looking to store out in the least not yet. Next thing on my list to explore is Amazon EC2. The topic of a future post I'm sure.


July 30, 2008

Goodbye Old Friend

Filed under: Rants/Musings,Software,XML — cangione @ 6:46 pm

The Arbortext crew in Ann Arbor is getting a new workspace. As I write this, many hardworking and dedicated employees at 1000 Victors Way are packing up their offices and preparing to move down the street to a new building.

Victors Way — what a noble address! I first came to the four-story building 11 years ago as a potential customer. It was the middle of the December, and I was meeting with a sales rep and some lead engineers to show them a proposal featuring Arbortext. I remember Ivan, my sales rep, later telling me that everyone was eager to meet someone willing to come to Ann Arbor in December!

1000 Victors Way

I came back to Victors Way the following year for the Annual Users Group Conference (AUGI) held in Ann Arbor. What a fun and memorable event! Arbortext made sure that just about anyone a customer might want to speak with was at the conference. I remember watching the trepidation on the faces of some engineers as they walked across the street, their eyes full of dread and looks that said, “Oh no! I have to talk to a customer!”

But that kind of openness and innovation is what gave Arbortext the reputation it maintains today — fiercely dedicated to standards and open at all levels of the organization, from the CEO to the engineer that built a feature.

Eventually, I joined Arbortext as a consultant, and it was one of the best decisions I’ve ever made. In addition to an amazing career, I’ve gained a wonderful extended family. When I came in for my job interview, it took my interviewers 20 minutes to get me to the conference room because we kept running into people I knew along the way!

Ever since I became part of the Arbortext team, returning to Ann Arbor (no matter what the season) has always felt like coming home. I see friends that I stay in touch with but don’t get to visit with in person very often. I make sure to stop by every office, no matter what floor, and chat with people that I’m genuinely happy to see.

One of my earliest major assignments at Arbortext involved creating one of the first linkbases in existence. At that time, the XLink standard was brand new. During those early days, I often found myself standing outside in the middle of the night next to one of the walkway lamps that light the entranceway. I’d look up at the ARBORTEXT sign on the building while I smoked like a chimney and prayed that the application would actually work! Eventually it did work, but only after some pain and suffering.

The four floors of 1000 Victors Way represent more than a decade of my life. Although the facilities in the new building are far superior for the Ann Arbor crew of today, I will always look back at the Victors Way building with fondness, and I will stop by when I’m in town. The Ann Arbor crew and Arbortext customers should be proud of what was accomplished within those walls, and I hope they are as excited as I am about what will come out of the new facility.

I can’t wait to reflect on what happens during the next decade.

-Charles Angione

May 14, 2008

SVCHost.exe 100 Percent CPU Utilization – Debug Techniques

Filed under: Software — cangione @ 1:00 am

I've been trying to figure out why my desktop has slowed to a crawl this past week. Everything was taking way to long and mouse movements were choppy. After staring at the task manager process tab  for awhile it appeared that something running inside svchost.exe was misbehaving. If I ended the process outright I lost audio and all sorts of other important things.

For the uninitiated, the SVCHOST (stands for "Service Host") processes host services for the Microsoft OS.  The services are DLL programs that do something useful. People more commonly refer to them as "drivers", the things we install  to make some peripheral work well and play nice with others.  Multiple instances of SVCHOST may be running at any one time and multiple services may be grouped together in one SVCHOST process which makes finding the one stinking service that is not being a good citizen a pain.

Couple of techniques I picked up while suffering through this last night:

Identify svchost.exe processes using tasklist command (hard way)

1. First, go ahead and click on Start and then Run and type in CMD and click OK

2. Type the following in to the command window and press Enter

tasklist /svc /fi "imagename eq svchost.exe

You should get an output that looks something like this:


You'll notice in this example  that PID 508 has a bunch of processes running in it. Now for the tricky task of figuring out which one is not playing nice.  Right-click on My Computer, choose Manage. Now choose Computer Management and then choose Services and Applications. Finally choose Services.

Now try and match the cryptic Windows service name with the easily readable names in the services tab. Stop the services individually until you CPU meter calms down.

Use Process Explorer (easy way)

There is a much better way to do this. Use Process Explorer. Process Explorer is a tool Microsoft acquired from SysInternals a few years ago.

Process Explorer

What's cool about Process Explorer is that it allows you to dig into any Process and Stop /Start process without having to match up Services with Display Names. One by one you turn off the Services and see which one calms down the CPU meter. Once you've discovered your problem child, the final step is to go into the Services manager and change the service to start manually if you don't need it or a fix is not readily available. First aid for computers. Stop the CPU bleeding first.

Services Manager

My problem child was the HID Input Service which I don't need in my day to day life but which I will try and make behave sometime in the future.

Info for this post came from a bunch of Google search research. I just decided to aggregate it all into one place. May you never need to use the knowledge contained here.

C. Angione

February 12, 2008

PlayerPal worth a look

Filed under: Software — cangione @ 2:59 pm

I use multiple machines in the course of my day. My Linux box, my laptop or my home tower. My home tower is the one that is connected to a really nice set of Yamaha speakers and where I keep my iTunes library. I've been looking for a way to control iTunes from whichever computer I happen to be using at a particular moment. 

I've been looking for this kind of control not only to flip through songs, but pause music when phone calls come in etc. The one thing that all my machines have in common is that they are all running Firefox. PlayerPal lets all of my machines connect to my home tower and act as a web remote for iTunes (or Windows Media Player if you're so inclined... I'm not). So one of my permanent tabs in Firefox on all my machines is set to PlayerPal.


Really geeky I know, but since my Smart Phone can connect to my wireless network, I can even use that as a portable remote control as I walk around my house!

-Charles Angione

February 6, 2008

Virtual Appliances

Filed under: Software — cangione @ 12:48 pm

I'm a big fan of vmware and run the majority of my development and test environments off of two physical machines with lots of memory and disk space. I usually create what I call base images of say Ubuntu or Fedora with all the  updates and then make copies of the virtual machines for specific uses. This approach has been great but I've still got to the actual work of taking a base image and making  say a subversion server.... Till now.

vmare has introduced the Virtual Appliance Marketplace  where you can now find specifically configured machines all ready for download! Want a Fedora 8 image? One is available. Want a small Linux image? Try the "Damn Small Linux Virtual Machine". Want a machine that is specifically configured as a subversion server? They have one of those too.  I might even give Sun Solaris 10 a spin (I've never been able to configure Solaris in vmware right but now that I don't have too...) The machines run in vmware workstation, player and server.

To the geeks that like setting up operating systems, I salute you!

-Charles  Angione

November 28, 2007

Testing another Blog Client for Firefox Called Deepest Sender

Filed under: Software — cangione @ 3:38 pm

This is a test of a new Blogging Client for WordPress called Deepest Sender. To see how well it works.

November 19, 2007

Not your typical Windows Quick Launch Toolbar

Filed under: Rants/Musings,Software,Uncategorized — cangione @ 7:50 pm

Windows Vista took a step backward when it comes to the Quick Launch toolbar. You used to be able to undock the Quick Launch toolbar in XP and dock it to say the left side of your computer screen. No more. In Vista it is glued to the Taskbar with superglue! Not accepting defeat, I started looking for an alternative paradigm for my frequently used programs that would work with Vista. I found two programs that are based on the Mac concept of a taskbar.

The two programs that I reviewed:

RK Launcher:

RK Launcher is a free application that will allow the user to have a visually pleasing bar at the side of the screen that is used to quickly launch shortcuts. With support for themes, PNG's and ICO's and with smooth animations, it is a good Quick Launch replacement.
RK Launcher


RocketDock is a smoothly animated, application launcher. It provides a nice clean interface to drop shortcuts on for easy access and organization. With each item completely customizable there is no end to what you can add and launch from the dock. Minimized windows can appear as icons on the dock.


In the end, I went with RocketDock. It seemed to supply slightly better customization support and seemed to work better with Vista. I would however recommend either for an XP based machine.

-Charles Angione

October 30, 2007

Mind Mapping Software

Filed under: Software,Uncategorized,XML — cangione @ 7:06 pm

I have recently been experimenting with various mind mapping software. A mind map is a diagram used to represent ideas, task and other things that are linked, arranged and then rearranged as more information becomes available. In the 80's and 90's sticking post-it notes on a conference room wall and connecting them with yarn would be similar to a mind map today. One of the advantages to mind maps is that in many instances you can put more detailed information behind the topics. That way any notes pertaining to a particular topic stays with that topic no matter where it ends up in the map.


In some ways mind maps remind me a bit of usecase diagrams in UML and I think that we will see more mind maps and usecases being used in topic oriented document design. Many of the mind map tools store or can export the maps as XML documents enabling a developer to write transforms that for example might create a DITA topic for each item in the map.


I've been experimenting with three applications:



Freemind is an open source project written in Java. I like the fact that the default storage format is XML based. The schema is simple to understand and allows you to create effective mind maps. It falls down in being able to associate additional notes behind topics.



Semantik formally known as Kdissert is my favorite if you are running Linux. This is a must have application. Unfortunately there is no windows equivalent which limits its appeal in most business situations. Semantik allows you not only to create complex maps with lots of topics but store additional information behind the items as well as links to other files. The topics and information can then be exported as a single document. Currently there is an export template for Docbook which implies that it would be fairly easy to make one for DITA.



Mindjet is commercial software and not cheap. I'd say this is a company that Microsoft should acquire like they did VISO back in the 1990s. It's good at creating maps and placing content behind them and I think it would fit in perfectly with their Office Suite. The XML export isn't the cleanest thing in the world (namespaces) and the file order needs to be studied carefully. On the positive side, once I get past those challenges I didn't have any problems creating XSLT transforms to either Docbook or DITA.


Wikapedia has a longer list of Mind mapping software.


Charles Angione

October 26, 2007

Built in blogging services in Word 2007

Filed under: Software,Uncategorized — cangione @ 4:14 pm

Microsoft has built in connections to popular blogging software in Word 2007. This blog entry is my initial test of publishing directly from Microsoft Word to the sgmlxml blog. This will be nice when I want to work on blog entries while disconnected on an airplane. This is a feature I hope OpenOffice offers soon as well. It helps keep desktop word processors relevant in an online world.

March 13, 2007

Entropy and Software Bugs

Filed under: Rants/Musings,Software — cangione @ 9:15 pm

Entropy is defined as "A measure of the disorder of a system."

While entropy got it's start in thermodynamics, it applies equally well to software development. Specifically late changes to the system design or bug fixing after a release.

Theoretically if you have a small system with only a few developers and you designed your architecture well, the initial version of a system is fairly clean. No nasty patches, no hacks to keep the thing limping along. Yeah right. Either way, the original development team has probably poured their guts also know as energy into the system to create order from disarray (like the socks in your drawer).

As additional releases with new features and patches are applied to the system entropy increases. The system starts to break down. The system requires more and more developer energy just to keep it going as the patches and new features take away from some of the original elegance. What's the smart developer to do?

I advocate that certain releases of a system introduce no new features, stop attempting to fix bugs and simply get the house in order. Allow modules to be rewritten taking into account all that has been learned since the original release. In short decrease the systems entropy again.

I like the way this is summarized by Frederick Brooks, JR in "The Mythical Man-Month"

..program building is an entropy--decreasing process hence inherently metastable. Program maintenance is an entropy increasing process, and even its most skillful execution only delays the subsidence of the system into unfixable obsolescence.

Charles Angione

March 7, 2007

3D Desktop for XP

Filed under: Software — cangione @ 12:16 pm

Madotate is an awesome windows manipulation tool for XP. The software footprint is less than a meg and it behaves itself very well. The program adds a button to the window bar that allows you to rotate your windows 60 to 90 degrees and make them semi transparent. You can also assign keyboard macros to rotate the currently selected window or windows open on your desktop.

This program has helped convince me that 3D capabilities are a requirement for modern desktops not just a toy.

Desktop Example

February 11, 2007

A Practical Software Development Methodology

Filed under: Rants/Musings,Software — cangione @ 4:09 pm

The 12 questions were originally developed by Joel Spolsky a former program manager at Microsoft that worked on Excel. Under each question additional observations from my experiences.

  1. Do you use source control?

    If not you are out of control. Even with a single developer.

    All code, support programs, build files, help files, etc, should be put into the repository. Code should be checked-in frequently once it is in a state that it is not likely to cause problems to other developers. A private branch can be used to check-in intermediate work without affecting other developers, to be merged into the main project branch once it is in a stable state.

  2. Can you make a build in one step?

    This is the only efficient way to make sure you are not introducing human error into the build.

  3. Do you make daily builds?

    Computers are only too happy to work overnight. Continuous integration helps make integration weeks a non event.

  4. Do you have a bug database?

    MS Excel doesn't count. Resist all attempts by the program manager to export the Bug List to Excel! Anyone (including customers) should be able to log a bug. Don't stick the bug database behind your corporate firewall. It leads to MS Excel documents.

  5. Do you fix bugs before writing new code?

    Important ones anyway.

  6. Do you have an up-to-date schedule?

Vacation schedules. Agree upfront that vacations are sacred. The project team should be able to do without a team member for awhile. Release schedules are also important although problematic.

The word just should NEVER enter a schedule discussion....just means it should already be done.

  1. Do you have a spec?

    Not a novel. A spec may be a cocktail napkin, UML diagrams, UI Mockup whatever is useful. Define useful as someone actually reads it and comments on it!


UML gets a bad name from Use cases. All those little bubbles and stick figures. Who cares? They are really the beginning not the end. Use cases should turn into activity diagrams etc.

One of the things that I find amazing is that you can write a hundred page spec and get no comments but you can present a series of UML diagrams and get everyone to actually read them! A picture is worth a thousand words.

  1. Do programmers have quite working conditions?

    Quite conditions for coding. You also need a team area for integration and testing.

  2. Do you use the best tools money can buy?

    Money isn't everything but it sure helps build and infrastructure. Lots of applications don't cost money these days but hardware and infrastructure do. Don't skimp.

  3. Do you have testers?

    Should be familiar with things like virtualization.

  4. Do new candidates write code during their interview?

Spend time interviewing candidates. New people are disruptive.

  1. Do you do hallway usability testing?

Solicit others input.

Comments (0)

« Newer PostsOlder Posts »

Powered by WordPress