SGMLXML.net A place for SGML and XML application developers.

March 18, 2010

Large Volumes of Mission Critical Information

Filed under: Software,XML — cangione @ 6:07 am

Like most people I'm frequently asked what I do for a living. I tell people that I work with companies that have a large quantity of mission critical information that they need to be able to find in an instant and that information better be right every time.

The Economist magazine just had a really good special report on The data deluge that individuals, companies and governments face.

Some things that resonated with me from the report:

In 1971 Herbert Simon an economist wrote

"What information consumes is rather obvious: it consumes the attention of its recipients".

I like his conclusion

"Hence a wealth of information creates a poverty of attention."

The term "Data exhaust" was used to define the trail of Internet user clicks that are left behind from a transaction. This exhaust can be mined and useful. Google refining their search engine to take into account the number of clicks on an item to help determine search relevance is one example of using data smog. I really like this "Data exhaust" term and believe it fits well with trying to make sense of large data sets. Smoggy areas could indicate that instructions are not clear enough in service documentation or properly mined, it could also indicate an impending issue with a particular component in a product.

"Delete" written by Viktor Mayer-Schönberger argues systems should "forget" portions of a digital record over time. Systems could be designed so that parts of digital files could degrade over time to protect privacy yet items that remain could possibility benefit all of human kind. The concept of donating your digital corpse (medical reports, test results etc.) to science comes to mind as a good example of this concept. While I might not want people to be able to link my name to my medical records, the records themselves with no name attached would provide a lifetime of data that could be used to advance lots of different fields.

Being able to consistently create the right set of rules for the ethical use of various types of data exhaust will be tricky. The article in the Economist mentions six broad principles for an age of big data sets that I liked:

  1. Privacy
  2. Security
  3. Retention
  4. Processing
  5. Ownership
  6. Integrity of Information

C. Angione

August 29, 2009

Full Screen mode in Firefox with the Windows toolbar present

Filed under: Rants/Musings,Software — cangione @ 5:54 am

I've always been a big fan of Firefox. The Firefox full screen (F11) mode that covers the Windows toolbar at the bottom of the screen and removes the top window bar is great when reading space is at a premium like on a small laptop. There are times when I want the same look as the Full Screen mode but want the Windows toolbar visible at the bottom so I can quickly switch tasks.

I added a plugin called userChromeJS that allowed me to get rid of the top window bar but leave the Windows toolbar at the bottom. Once you install the plugin add the following function to the userChrome.js file.

function hideChrome() {
if (navigator.platform == "Win32") {
window.moveTo(0,0);
window.maximize();
document.getElementById("main-window").setAttribute('hidechrome','true');
// preserve small area for taskbar to appear
window.resizeTo(screen.availWidth, screen.availHeight-2);
} else {
document.getElementById("main-window").setAttribute('hidechrome','true');
window.moveTo(0,0);
window.resizeTo(screen.availWidth, screen.availHeight);
window.maximize();
}
}
hideChrome();

userChrome.JS is located in your userprofile\AppData\Roaming\Mozilla\Firefox\Profiles\.default\chrome directory.

February 13, 2009

Controling Multiple Computers Without a Keyboard Switch

Filed under: Linux,Software — cangione @ 3:57 pm

When I'm working in my home office, I typically have my Windows XP laptop on the left hand side of my desk next the rest of my monitors. I've always wanted to control the laptop from my main keyboard and mouse without having to hook up a keyboard switch. I find the hardware solution annoying when you are trying to work on both machines essentially at once or when you just want to pick up your laptop and sit somewhere else (lazy I know). When I drag my mouse off the left side of my Linux Desktop I want to control my laptop. When I drag my cursor off the right side of my laptop screen I want to resume working with my Linux Desktop. Essentially I want to seamlessly make my Windows XP Desktop part of my Linux Desktop.

There is an open source project called Synergy that functions exactly this way over your TCP/IP network. The program redirects the mouse and keyboard as you move the mouse off the edge of a screen. Synergy also merges the clipboards on each system into one, allowing you to copy-and-paste between systems. Handy for copying stuff out of e-mail!

Like all good open source projects the program works on any combination of Linux, Windows XP and MAC OS X 10.2 and higher.

Enjoy!

Charles Angione

February 10, 2009

Building a Modern 64-bit Operating System

Filed under: Software — cangione @ 6:55 pm

I recently upgraded the memory in one of my home workstations to 4 gigs. I've always wondered what it would be like to run a 64-bit OS on this AMD64 system and decided to refresh the entire machine to take full advantage of the memory upgrade. I decided to go with the latest 64-bit Ubuntu Linux distribution codenamed Intrepid Ibex (8.10) as my base OS. As I put this upgraded machine through its paces, I'm a bit amazed at what the machine is now capable of.

Because of the development, conversion and simulation work that I do, I tend to demand a lot from my computers. My workstation runs at least one virtual operating system in VMware server as well as the work I do on the host OS. There are times when the virtual OS and the host OS are really crunching away that things slow to a crawl.....that's being kind. The computer is essentially unusable for day to day activities like e-mail and web browsing.

I intentionally tried to crush the machine I upgraded by running VMware server with two Windows virtual machines that had CPU intensive tasks. While that was going on I did normal things like surfing with Firefox, writing an e-mail and remote connecting to other systems. I didn't see any lag or slowdown from the UI. Everything is very smooth and I've become a believer!

I admit that 64-bit operating systems may not be practical for simple desktop use at this point. Not all applications run on 64-bit systems, but you can run 32 bit virtual operating systems within a 64 bit host system.

If you think today's computers are fast, wait until they have a 64-bit OS! It isn't about megahertz anymore -- it's about actually doubling the amount of data a CPU can crunch per clock cycle. I've concluded that a 64-bit chip and a 64-bit OS does have the power to dramatically improve the performance of your more demanding applications. It revolutionizes what a single workstation can do.

Happy Crunching!

-Charles Angione

I've listed a couple of solutions to some hassles I ran into in my setup:

October 12, 2008

The Digital Realm and Digital Experience – A Ten Year Review

Filed under: Rants/Musings — cangione @ 1:23 am

I have a slide show widget that runs on my desktop side bar. The slide show gets pictures from the "My Pictures" folder which contains images from the last ten years. I was an early adopter of digital photography and bought my first digital camera on Guam before a trip deeper into the South Pacific.

Funny story. The first use of my new digital camera was to send pictures back to my company headquarters documenting the horrible shape the equipment we were working on was in! There had been a complaint from the customer about the extra money required to bring things back into operational shape. No more complaints once I sent in the pictures! I knew back then that digital photography would be a powerful medium!

One of those early pictures flashed across my screen tonight and I went to enlarge it. It was taken at a resolution of 640 x 480. Back then you were an advanced user if you were at 800 x 600 on a laptop screen and a picture at 640 x 480 looked pretty good!

When viewed on a modern laptop at 1280 x 800 that same picture looks grainy and like a postage stamp! It is amazing how fast the world has changed from film photography to digital.

Kwaj Sunset 1998
Kwaj Sunset 1998 @ 640 x 480 - 96 dpi

I wish I had my modern day digital camera 10 years ago. The color and depth of the pictures through several zooms now is amazing. I feel like I can crawl into the shots and look around. The shots I took ten years ago are a good test of my memory and imagination without zooming at all. To crawl into those shots and look around, I need to close my eyes and remember what it felt like to be there first hand.

Mount Wire 2008
Mount Wire 2008 @ 3072 x 2304 - 72 dpi

We are in the midst of an incredible revolution with digital High Definition photography and video. It takes the old photo album to a level where we can actually imagine we are there without leaving our living rooms.

I'm all for digital progress and photography yet believe there is something to be said for actually living outside the digital realm every once and awhile. I will cherish both the photos shown here because I was there in 1998 and 2008. For those that did not have these experiences, I still hope you enjoy the photos!

-C. Angione - 1998 & 2008

September 29, 2008

Using UML to describe DITA Specializations

Filed under: Rants/Musings,Software,XML — cangione @ 11:29 am

As a consultant, I'm often parachuted into complex projects and need to be able to appear intelligent in a short period of time to both technical staff as well as business people. In setting up a publishing system based on the Darwin Information Typing Architecture (DITA), I'm faced with trying to communicate the specialized structures and element names needed by an organization.

One of the most important principals of DITA specialization is the concept of inheritance. Inheritance allows you to use the structures and semantics previously defined by others as a starting point for your specializations. But how do you communicate this idea in a repeatedly simple clear concise manner during the design process? If a picture is worth a thousand words, a UML model is invaluable.

The Unified Modeling Language (UML) is a graphical notation that is particularly good at expressing object-oriented designs. UML went through a standardization process and is now an Object Management Group (OMG) standard.

I like using UML because it allows me to communicate certain concepts more clearly than alternatives like natural language. Natural language is too imprecise and subject to interpretation by the reader. A DITA DTD or Schema is very precise but not something that should be created during the design process. So I use UML to communicate and keep track of the important details like inheritance.

A lot of people talk about the learning curve associated with UML. I'm not advocating that team members need to be exposed to all that UML can provide. Only the parts necessary to convey the important details of the moment.

Let's say that we want to build a new type of DITA topic for creating slide presentations. The following diagram conveys a lot of information:

Slide Example UML Diagram

My conversation with the assembled audience of technical staff and business users would go something like this:

Each green ellipse represents an element already in existence. Each yellow ellipse represents a proposed element. The double angle brackets in the ellipse are used in UML to define sterotypes. A sterotype is the vocabulary extension mechanism built into UML. In our case we are using sterotypes to indicate which organization (DITA or SGMLXML) an element reports to. The dotted lines represent which elements are included in others and which elements extend a base type (inheritance).

Once the audience agrees that the model is correct, it can be included in the specifications and developers can create the new elements and the properly-formed class attributes required.

In our example the definition of the class attributes in the resulting DTD would look like this:

Class Attributes

Besides communicating DITA specialization information, I also use UML for other aspects of my deployments such as use case design, system deployment and various activity diagrams. No single model is sufficient to build the system but by using the same modeling language for all the models, it is easy to impart all of the important analysis, design and implementation decisions that must be made by an organization before deployment.

-Charles Angione

September 17, 2008

Advise & Consent

Filed under: Books,Rants/Musings — cangione @ 10:33 pm

It is very rare that a favorite book of mine passes muster as a movie. It is even rarer that the movie is better than the book!

My favorite Allen Drury book Advise & Consent (1962) was made into a movie that is now available on DVD. When I was in high school, I was part of Mock Congress debates. We followed Senate rules (parliamentary procedure) during those sessions. I wish I had read this book or watched the DVD before I was in some of those debates!

I don't care if you are Liberal, Conservative, Democrat, or Republican. You can empathize with all points of view by the end of this movie.

I can't think of a more perfect movie to watch in this political season.

C.

September 2, 2008

Review of Google Chrome

Filed under: Software — cangione @ 4:46 pm

Google has had an interesting week and it's only Tuesday. They have extended their default search engine relationship with Firefox until 2011 and released their own open source browser called Google Chrome to compete with IE, Firefox, Safari and Opera.

In fact as a test of the new browser, I'm writing this post in Chrome. Chrome has some cool features starting with a very minimalistic UI. I'm already in love with the browsers minimalism. The WebKit rendering engine is smokin fast. So far it has done a good job of correctly rendering all the typical pages I visit. The address bar also acts as the search dialog which is a really simple but smart idea. It saves real estate up at the top of the browser. Same idea for their application toolbar. It only appears when you start a new blank tab, then goes away. Smart.

What I don't like.

So why won't I make this my primary browser for day to day activities? Three major reasons:

  • No Way to synchronize bookmarks across multiple browsers.

    I'm a bit surprised that Google did not tie the browser closer to a users Google account. Your Google user account would be the perfect place to store a master list of bookmarks that would automatically be established each time you setup Chrome on another machine.

    Since I use three different physical machines and a bunch of VM's in a single day to do my job, bookmark management and their continued synchronization is a big deal for me. Firefox has the Foxmarks plugin to handle this issue.

  • No Bailout Option.

    Sometimes you've just got to get the job done and that job requires IE. You don't have to like it, but you have to use it. In Firefox if a website does not behave itself properly I can use the IE Tab plugin so that page and all subsequent child pages are rendered using IE instead of Gecko.

  • The Beta Only Support Windows XP and Vista.

    Enough said.

  • The Future?

    I like competition and Chrome has the potential to push the browser industry forward at a more rapid pace than any of the established players would be comfortable with. So for now, Chrome has found a place on my RocketDock toolbar as a browser to keep an eye on.

    August 21, 2008

    Recent Blue Screen of Death Sightings

    Filed under: Rants/Musings,Software — cangione @ 2:58 am

    There have been a couple funny Blue Screen of Death sightings that have appeared in the press recently that I just couldn't pass up sharing.

    The first was a Wired article about the Sheraton Hotel chain rolling out the Microsoft Surface table. While this might not be a true Blue Screen of Death it sure looks like it!

    Microsoft Surface Blue Screened

    The second Blue Screen sighting was reported by Gizmodo about the torch lighting at the opening ceremonies of the Olympics. Good thing this computer wasn't controlling anything critical!

    Torch Lighting Blue Screen

    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 cloud.....at least not yet. Next thing on my list to explore is Amazon EC2. The topic of a future post I'm sure.

    -Charles

    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:

    tasklistcmd

    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

    « Newer PostsOlder Posts »

    Powered by WordPress