Tuesday, August 17, 2010

My first presentation

I gave a presentation to the local Baltimore Linux User Group tonight. I think this counts as my first (public) presentation. I've given presentations for employers, so this really isn't my first presentation. But one must start somewhere!

(The presentation was about cloud computing,)

Sunday, August 15, 2010

Letting them vent

Today I had lunch with two former co-workers. It was a good lunch, although it was a bit of a venting session for them. They are in tough but not impossible situations, with problems that range from staffing to managerial politics. I let them vent, and then we had some interesting conversations about outsourcing, on-shoring, talent management and retention, and staff morale.

Earlier this week-end I gained some hardware experience. I installed a second hard drive in a PC, and not only did I learn about drive configuration I also learned about Linux capabilities for partition management and file system mount points. Perhaps not something that belongs on my resume, but it is nice to know that I can still learn!

Wednesday, August 11, 2010

More success and a Linux meeting

At the office, I had more success with C++ and spreadsheets. Today I integrated more code into the existing spreadsheet libraries and now they can write an XLSX file. (One that Microsoft Excel opens and reads without complaint.)

After work, I attended the CALUG meeting. This is the mostly-informal group that meets once per month. Tonight saw no speaker so we talked among outselves, and sometimes about Linux!


Monday, August 9, 2010

Some modest progress

I made some progress for the client today. (Well, I like to think that I make progress every day, but today's was worth noting.)

Today I successfully integrated the new XLSX libraries into the existing system and read a Microsoft Excel XLSX spreadsheet. This is a big win for the client, who has wanted this functionality for a long time. (I've been building test cases and support scaffolding, so new features were deferred.)

I also integrated the routines to write an XLSX spreadsheet, and they work... sort of. They create an empty spreadsheet that Microsoft Excel accepts with complaints. I think it is due to the lack of content. I expect to fix that problem tomorrow.

But for a few moments, a little rejoicing. Yay! for me!


Saturday, August 7, 2010

Stuck in my head

I solved most of a problem yesterday. Almost. I implemented three-quarters of the problem in the last thirty minutes of the day. I need ten more minutes for coding and another ten for testing. (THe test framework is already in place.

The problem was in the reading of Microsoft Excel OOXML spreadsheet files. The OOXML files are much easier to read than the previous BIFF files, with data stored in XML and therefore as text. The one aspect I was not expecting was E notation for some numbers, and my existing parser considered these values as text, not numbers.

The solution is fairly simple: change my parser. I found a state machine description for validating a number (including E notation) in Cay Horstmann's "Practical Object-Oriented Programming in C++ and Java". I was able to convert his description into code. All that remains is to run the tests.

I would like to leave my work at the office, yet this problem is stuck in my head. I keep thinking about it. I know that I cannot simply forget it, I must find something else to think about.


Tuesday, August 3, 2010

Microsoft's Reactive Extensions

I attended the CMAP (Central Maryland Association of .NET Professionals) meeting. They had a presentation on Microsoft's "Reactive Extensions", a poorly-named package of classes to handle interrupt-driven programming. I also chatted with a few folks who I see only at the CMAP meetings.

The Reactive Extensions package is an interesting addition to the Microsoft toolset. They built it for .NET and also for Javascript, so there are two versions. Microsoft claims that they have the same capabilities. (If they do, then that says something about Javascript. If they don't then that says something about Microsoft.)

Microsoft makes a big deal about this package solving the programming problems of inter-system non-synchronized communication. And it does solve the problem, although Microsoft seems to have forgotten that this solution was available at least thirty years ago before PC-DOS 1.0. The package is a simple variant on event-driven programming, or even interrupt-driven programming, in which a process is interrupted by a second process. Or you can view the solution as a variant on the Observer pattern (which Microsoft does).

My impression is that it is useful, but a but clumsy in implementation. The classes do the job, but I'm not sure classes are needed. A simple interface may be sufficient. And it seems that Microsoft has packed in some extra features (throttling methods and "if" methods) that seem to belong to a different API.

This and other recent innovations in programming tools (Silverlight, Internet Explorer 9, IronPython, IronRuby, etc.) show that Microsoft feels competitive pressure. This is a good thing; Microsoft will provide better products for the market and everyone will gain.

I think the Reactive Extensions will be a big factor in development. It allows for the extension of an event-driven framework. This kind of extension will allow for a coherent set of changes to events and event processing. It may take some time, but the changes in application design will be significant.

I'm not sure about the name, though. "Reactive Extensions" sounds a bit dorky to me. But if my biggest complaint is with the name, then Microsoft is on the right path.


Sunday, August 1, 2010

The PC puzzle

I assembled the parts to my found PC. This is the Dell GX280 that I found a few weeks ago. It had no memory and no hard disc but was in good shape -- no signs of abuse. After installing all of the parts (which went without problems), I tried to attach it to my KVM infrastructure. I use KVM switches to reduce the number of keyboards and monitors.

The GX280 has no PS/2 ports. Apparently it was an all-USB machine. My KVM infrastructure is based on VGA and PS/2, so now I need a few more adapters. I ordered them today, after not finding them at the local Radio Shack.

In other news, I dropped a few bookmarks. The big one was InformationWeek. I had it in my "weekly favorites" list, something to read once a week. I have a number of web sites there, and I use them to keep up with current events in tech. I dropped InformationWeek since I've been unimpressed (and uninterested) in their stories. Not just this past week, but for the past several months. I get news from other sites, and Information Week not only didn't have repeats of the stories from other web sites, their stories were boring and irrelevant. Such is the fate of some web sites.