Monday, February 21, 2011

Virtual machines

This morning I planned to spend some time at the co-working site. After reviewing the work before me, I decided to stay at home. Some things are possible at the co-working site, and some tasks are better at the co-working site, but some are best (and some possible only) at my home systems. So pragmatism ruled!

I attempted to use Microsoft's Virtual PC. The package is interesting: it's not a Windows Application. Instead of installing as a regular application, it merges into Windows. There is no entry in the "Installed Programs" list for Virtual PC. Shades of the old "Internet Explorer is part of Windows and cannot be removed" argument.

Despite it's merging into Windows, installing the thing is not particularly easy. You have to find the download site, then specify the version of your operating system (Home, Pro, or Enterprise) and the word size (32-bit or 64-bit), and the language. And then you have to go through a little ActiveX dance to ensure your Windows is genuine. Only then can you install it. And after installation do you learn that Virtual PC is fussy about hardware and requires hardware support for virtualization. When I ran it, it did nothing but display a little dialog that says, effectively, "I won't run, because your hardware is lame". And then you learn that you cannot un-install the beast.

Oracle's Virtualbox, in contrast, was easy to install and as a bonus it actually works. While Microsoft's Virtual PC supports Windows guests and only Windows guests, Virtualbox lets you run just about anything as a guest. So my experiments with virtualization can start.

I had lunch with former co-worker Don today, at the local burrito place. It was a good lunch and we talked about several things. At the (old) office, things have changed little.

Thursday, February 17, 2011

Cloud computing group

I attended the Capital Cloud Computing Group meeting tonight. It was a good session, with a presentation by World Wide Technology and their "server room in a box" solution: everything you need in a shipping container. It is an interesting idea, but one that has a limited life span.

One slide showed a typical rack with blade servers, network equipment, and a NAS. When I saw the diagram, I immediately thought of the old DEC PDP-8 and PDP-12 computers. They, too, were rack-mounted hardware with CPU, storage (disk or tape), and communications equipment. Yet in ten short years, they were replaced by the modern PC.

So I'm thinking that in ten years (maybe less) we will see a cloudframe (CPUs, storage, and communications) all in a current-day PC tower. And a few years after that, it will be in an Apple Mac Mini box. Eventually it will be the size of an HP calculator.

Is that a cloud in your pocket?

Tuesday, February 15, 2011

Budget cuts

I attended the local Linux user group meeting tonight. There was no speaker, and the meeting transformed from a regular monthly meeting into a planning session. We discussed several good ideas, from sponsors to lightning talks.

In other news, the federal budget process is beginning, and things look a bit dark for my contract. The agency will be getting a reduced budget; how much is yet to be decided. I may be considered expendable. Such is the life of a contractor!

Wednesday, February 9, 2011

Geek connections

I attended the CALUG (Columbia Area Linux User Group meeting tonight. The presentation was on RCU (Read-Copy-Update) synchronization techniques. Quite a geeky subject, yet it spurred a good conversation.

I arrived early and chatted with a few folks. The CALUG members are a diverse crowd, and each are well-versed in their own areas.

Sunday, February 6, 2011

Housekeeping

In programming, one trend is the removal of "housekeeping" tasks.

The transition from assembly language to high-level languages saw the elimination of register and stack frame management. This was a big change, but not the only change in housekeeping tasks. FORTRAN and COBOL eliminated a lot of housekeeping for files.

The C programming language (and the UNIX operating system) made file operations even easier, allowing the command shell to handle files for the "stdin" and "stdout" channels.

The introduction of Java saw the elimination of memory management. Prior languages (C, C++, and Pascal) forced the programmer to allocate, track, and release memory. (The early Pascal had a very clumsy "mark and release" model.) Every language introduced after Java has included memory management.

Eliminating housekeeping tasks is usually a good thing. There are some specialized applications that require the complete control of memory allocation, file operations, and even register allocation. But these applications are few. For the mainstream, less housekeeping is better. Housekeeping distracts us from the problem at hand.

Once eliminated, we don't re-introduce housekeeping tasks. We're not going to use (with any degree of popularity) a language that requires us to track and free memory, or jump through hoops to perform file operations, or to manually specify register usage. Future languages will keep the automatic transmissions that we have built.

Which means that the hard-won skills for housekeeping in languages -- even modern languages -- has limited usefulness. Memory allocation skills in C++ were not needed in Java or C#. (It may be useful to know them, to understand the actions occurring "under the hood", but it is not necessary.)

Housekeeping skills have limited life. Skills of longer duration are of lasting value. These include algorithm design, simplification of code, understanding business requirements, communicating with team members (technical, artistic, and management members), project management, cost estimating, and problem diagnosis.

So... what kind of skills do you have?

Friday, February 4, 2011

Evening event in WAS

I attended Ignite/DC last night. This was a bit of an experiment, attending an event in WAS rather than in BAL. It went well, although I had to leave early in order to catch a train home.

Living in BAL and working in WAS puts a strain on my schedule. I am reluctant to stay in WAS because of the train schedule. I am often late to events in BAL... due to the train schedule.

Driving offers little help. The time for driving is longer than the train. The train allows me to read or eat; I cannot while driving.