Tuesday, September 29, 2009

Recruiters and insurance

I spoke with several recruiters in the past few days. When they call I give them the news that I have accepted a position. All of them have been very good about the news. They have all spoken with me before.

I think that I have completed the "job search shutdown", going to job sites and marking resumes as hidden and disabling job alerts. The cybercoders.com web site had no way to mark resumes as hidden, so I removed the resume. The guru.com web site keeps sending me notices about projects; I may keep those coming to stay informed about tech requests.

A person from Constellation Energy called today, thinking that we had a technical screening interview. I gave him the news. While I had spoke with the recruiter last week, I guess that the news did not reach him. Somewhat embarrassing.

On another front, I have been debating medical insurance. I can subscribe through Prism (the contracting company for the OMB gig) or stay on the COBRA plan. The latter is expensive and ends in July 2010 (COBRA is good for only 18 months). The Prism-offered plan is also expensive and is not really set up for Maryland. It appears that I would be constantly "out-of-network".

A third option is to buy medical insurance from someone like United Health Care or Aetna. I looked at some plans and the also seem expensive. I don't understand all of the numbers, either. (I can, with a bit more studying.) Purchasing my own insurance may be the better choice for me.


Thursday, September 24, 2009

Closer to a situation

I visited the good folks at Prism today and signed a bunch of papers. This act starts the process for the position at OMB. The next step is a background check, something can take up to four weeks. At least one trip into Washington will be necessary, for an in-person interview.

I feel pretty good about this opportunity. And I feel pretty good about finding it; I have built up my self-confidence. This blog started as the leap from a known position into the unknown, with faith that I would find something. While I have yet to land (much less check out the landing zone) I think that the exercise has been worth the fear, frustration, and doubt.

I am shutting down some activities. I have pulled my resume off of job boards (or marked it 'non-searchable'), turned off the e-mail alerts for job postings, and let some recruiters know that I am no longer looking. I have a few more recruiters to inform, and maybe some web pages to adjust.

I will keep some things going, though. I've joined Facebook, Twitter, and Identi.ca; they provide useful bits of news. (Won't be able to view them at the job, though.) I've joined some user groups for MSDN and Linux and would like to keep active in them. That may be tricky, given the timing and location of the meetings and my work and commute schedule.

I have a list of preparations for the job. Most items are logistical: train pass, metro pass, new shoes, and maybe a few new shirts. I can handle them in small batches.


Windows 7(RC) allergic to KVM switch?

I experimented with Windows 7(RC) and the KVM switch this morning. When the SystemMax is the only computer attached to the KVM switch, Windows behaves consistently: it recognizes the keyboard but not the mouse.

I've replaced the mouse (with an old Microsoft mouse!), moved the KVM cable to a different port on the switch, and replaced the KVM cable. The behavior remains: Windows sees the keyboard but not the mouse.

I booted the SystemMax with Ubuntu Linux 9.04, keeping the hardware configuration. Ubuntu Linux finds the keyboard and mouse!

Which leaves the sole variable of Windows 7(RC). Is it doing something with the mouse that the KVM switch does not understand? The PS/2 port for the mouse and the communication protocol are old, and should be well-understood by everyone making equipment. I doubt that the KVM switch manufacturer got it wrong. (The KVM is a Starview SV411.) Let's see what the interweb says.

. . .

After some searches I can see other people have various problems with various configurations and various KVM switches. Some have Windows 7, others have other versions of Windows. Some have Starview KVM switches, others have other brands. The combination of Windows 7 and Starview did not occur with any great frequency. (Which doesn't give me information, or comfort.)

I will try the power supply for the KVM switch. (I want to see if that fixes the problem caused by the Dell GX240.) If that doesn't work, I can use the old Microsoft mouse on the Windows PC and use the KVM to switch only the keyboard and monitor.


Wednesday, September 23, 2009

KVM blues

The KVM switch arrived today. (That was fast!)

I hooked it up and things are a bit dodgy. I have three PCs attached: a Dell Dimension 2350, a Dell GX240, and a SystemMax 765. The Dimension 2350, running SuSE Linux 11.1, works without problems. The GX240 should work -- I have yet to test it -- but when turned off it prevents the KVM switch from working. (It did this to another KVM switch too, so I know the problem is the Dell.)

The SystemMax 765 has odd behavior. The keyboard and mouse don't work... most of the time. Sometimes they do, for a short while. Sometimes the mouse works but not the keyboard. I don't see a pattern. It might be the cable, or the KVM switch, or the SystemMax CPU board (specifically the PS/2 ports) or it might be Windows 7(RC). Or possibly the mouse -- some KVM switch/mouse combinations do not get along. Or maybe the KVM switch needs an external power supply.

I don't think I have a spare PS/2 mouse. Or a power supply for the KVM switch. (It does not come with one.)

Another puzzle to solve!


A long process for a job

I heard from the staffing company (well, one of the staffing companies) that has been talking about possible positions. If all goes well, I will have a gig in mid-October. This has been a long process -- it started in July.

The position has some interesting challenges with a C++ program that reads spreadsheets, processes data, and writes the results back to spreadsheets. The people seem pretty reasonable too.

The position is in Washington, DC. I can get there via the MARC train and metro. I'm glad that I have kept to my daily routine: get up early, have a small breakfast, and start the day. I've even been walking to Penn Station in the morning and checking the time that I arrive. I could have slacked and slept in late. Had I done so, it would be harder to restart a normal commute.


Tuesday, September 22, 2009

Ruby in Windows

I installed Ruby 1.9 on my Windows computer and tested some programs. The install went smoothly and the programs work without problems.

The Ruby package includes SciTE, an editor with syntax highlighting. It seems about the same as KWrite in Linux, but I really ought to examine it more before commenting.


Scripts to Ruby

I converted the bash scripts to Ruby this morning. They do some simple text processing, converting text into an XML file for OOXML.

The conversion went quite quickly, and the Ruby programs seem more readable than the scripts. Maybe that's a personal bias; I'm more comfortable with Ruby and Algol-syntax languages (C, C++, Java, C#) than I am with bash scripts.

Or maybe its not just a personal bias. I find that Ruby programs are more consistent. Bash scripts are collections of different things. Ruby scripts are collections of things, too, but they are all Ruby things. The things in bash are files and programs, and the programs have some degree of variation.


Monday, September 21, 2009

More Ruby and some scripting

This afternoon I built more of the program for creating an OOXML spreadsheet. I started in Ruby but ended with a lot of it in bash scripts.

I tend to push tasks down to the lowest possible level. C#, C++, and Java are at the uppermost level. Perl and Ruby are in the middle. Bash and DOS scripts are at the lowest level. (Assembly language does not appear in the hierarchy, nor does Visual Basic.)

I have since realized that the bash script is the wrong level for my work. I want this utility to run on Linux and Windows. Therefore, it must live in a layer that is compatible across operating systems. The scripting level (bash or DOS) is the wrong level. I will have to re-do this afternoon's work and put it into a higher level. Probably Ruby, as other parts are already there and I want the experience.

Moving the work to Ruby may simplify the program. I had to resort to some bash tricks to get all of the information that I need. In Ruby, I will have more capable data structures. I've learned a few lessons today.


Ruby in the morning

I did some work with Ruby this morning, extending the 'macron' program. I added capabilities for variable substitution, much like the macro expansion in bash or other shells. Nothing new in terms of the Ruby language or environment; this morning's work was using what I already knew and reinforcing my knowledge.

With today's changes, I can build the XML file for the Excel OOXML strings file. OOXML uses a number of files for Excel spreadsheets; one file holds the string entries and other files use indexes into this file.

The code is a bit rough. It works, but needs error checking.

I also spoke with a recruiter this morning, about a position in Pittsburgh. The client needs someone to test their client/server system on configurations with the new Windows Server. This position is not the best fit for me. I don't have experience with Windows Server, and I suspect that the client needs someone to examine their product and tune Windows Server for it.

I think that I talked myself out of the job. I'm not upset -- I would rather talk myself out of a job than land a job that is not a good match.


Friday, September 18, 2009

Getting up in the morning

I accomplished several things today.

First, I woke up a little earlier than usual: 6:00 sharp! I've been slacking a bit, getting up at 7:00 or maybe 7:15. I want to stick with my normal routine, so that when I get the job I will be ready. Being late on the first day is not good.

I read a bit about Matlab. It is an interesting language, and very capable. It can perform many different mathematical operations (lots on matrices, explaining the name) and plot graphs of the results. I'm not sure that I can use it for my normal work, which tends to be text-based and not mathematical.

I examined the OOXML format for Microsoft Excel spreadsheets. My intent is to create routines that can convert plain text (such as a text stream from "regular" tools like sed and awk) into a readable .xlsx file. I also added the 'options' module to my 'interpret' program, which is one step in the bigger process. Now 'interpret' can parse options on the command line.

I lunched with Julie and Derek, two former co-workers. We had a too-short lunch at the local Qdoba.

I joined the LinkedIn group 'Baltimore Connections', for people looking for contacts in the area.

I signed up for the Central PA Open Source Conference. It's a one-day show, with an admission fee of $35. They have some interesting sessions, but I am more interested in making contacts for job opportunities.

The folks at Omnyx decided to pass on me as a new employee. The reason they gave was that I didn't know the 'Dispose' pattern and could speak only superficially about the differences between multi-threaded and multi-process applications. Both true, but I suspect that the real reason is just not "clicking" on the phone interview. When interviewing people, I wouldn't flag them on a few technical items -- but if I didn't have a good feel for them, I would use a few technical items as an excuse.

An odd day, at the end. I feel that I did little. Yet looking at the list, I did quite a few things.


Thursday, September 17, 2009

Sysadmin work

I made adjustments to the configurations for NFS and Samba, and now I can read and write files on my server. I'm pretty sure that I will want to make a few more adjustments, limiting the areas for reading and writing, but this configuration works for me.

I've also adjusted the configuration for NTP on //desdemona, and I think that it is now getting time updates from //grendel. Which is what I wanted. Yay!


File sharing

This morning I configured //grendel for file sharing. I have it working as a "publisher" of sorts, as I can read files on it but not write to it.

I configured //grendel with NFS and Samba. I use NFS with my other Linux computers and Samba with my one Windows computer. The configuration for each took longer than expected and had more "fiddling" than I expected. (And since I'm sharing in "read only" mode, I have more adjustments ahead of me.)


Tuesday, September 15, 2009

Limiting factors

I did some more work in Ruby this afternoon, refactoring a small program and using Ruby's code block capabilities. While I was working, I had a small realization about the power of Ruby (which can possibly be extended to other recent tools):

I work a a pace governed by a limiting factor. With Ruby, the limiting factor is not the technology but my knowledge of programming.

For the past three decades, my programming has been limited by the technology. First was BASIC, with its limited file I/O operations. Assembly language had full access to the operating system API for file handling but constructing meaningful programs took lots of time, planning, and discipline. C and later C++ had better support for I/O and better support for code modules but still took lots of planning. Packages such as dBase II, R:Base 5000, and Condor had limited control structures and error handling.

In all of those environments, my brain was ahead of the technology. My frustration was not with my knowledge of data structures, control structures, and other programming concepts; my frustration was with the tools.

Ruby changes that. Ruby offers excellent support for data structures, control structures, I/O, and error handling. So much so that I don't spend time thinking about them. Now I can think about the problem at hand and easily use efficient programming concepts. I can use advanced programming concepts such as closures.

For once, the tool is not holding me back. Now, what holds me back is my understanding of the advanced programming concepts. That's a big change. For years, I have felt smart and considered the tools dumb and unsophisticated.

No I don't feel so smart.


Windows Update

This past week-end I started Windows update on the new PC. The update feature is configured to update Windows and nothing else. (At some point I will ask it to update other things. For now, updating Windows is a sufficient test.)

There are lots of updates for Windows 7(RC). I downloaded and applied the "serious" updates on Sunday. They went quickly and had no problems. There were thirty or so "optional" updates, all of them language pack updates. I have been applying these in batches, due to the total size. In total, the updates are 1GB in size; I believe that is the download size and the actual update is larger when uncompressed.

The updates, even in batches, take a bit of time to download (about an hour for four or five update files) and then a bunch more time to apply (about thirty minutes for the same updates). The download process consumes all external network bandwidth, and the update process requires a lot of disk activity. It seems like a lot of activity for updates to language packs. But then maybe I don't understand the method that Microsoft used to store its text information; maybe MS uses lots of files for each application.

The Windows Update process and the Windows Power Management function work poorly together. Since the updates take so long, I start a set and then walk away from the PC. After a period of no activity on the keyboard and mouse, the Windows Power Management routines kick in and put Windows in "sleep" mode. This stops the update process. I would expect them to be more coordinated. Re-trying the operation has reported success, so there seems to be no permanent harm.

The Windows Update process also creates "restore points", which I assume are a set of backup files that can be restored in the event of an update problem. It's nice to know that I have these backups... but I can't manage them. That is, I see no way to look at different restore points and possible discard some. (I know that they take disk space, and perhaps I want it back.) Also, Windows has a separate feature called "Windows Backups" which are independent of restore points. These are apparently user-requested backups and different from the backups of restore points.

I'm trying to schedule updates for "off" periods. Since they consume network bandwidth, they interfere with my "normal" work, such as checking job boards, using on-line documents, and posting to this blog.


Sunday, September 13, 2009

New PC and Windows 7(RC)

The SystemMax PC arrived on Friday. This PC was a special deal from TigerDirect.com - a refurbished unit at a discounted price, and with no operating system. The PC has an Intel Pentium dual-core processor, 2GB RAM, and 160GB DASD. It has a spacious case, with room for six of seven additional disks. (The CPU card has two open SATA ports, so anything beyond two additional disks would require an adapter.)

The "no operating system" aspect did not bother me -- in fact, I found it appealing. My plan was to install Windows 7 (the Release Candidate, or RC, version) and I didn't want to throw away a good operating system. A PC without an operating system is better for me.

I installed Windows 7RC with no problems. Microsoft has improved their install program. I am used to the old DOS-mode, white-characters-on-blue-screen setup programs for Windows. Windows 7 uses a nice, graphics mode (just like Linux installs), asks a few questions up front and not one at a time during the install (just like Linux), and needs no interaction during the install (just like Linux).

Windows found drivers for my video card and network card, a pleasant surprise. I am used to the MSDN OEM installs for Windows XP, which include drivers for 640x480 and nothing for networks. Those installs required the hunting of drivers and then the acrobatics to copy them onto a computer without a network interface.

I like Windows 7 more than Windows Vista. Microsoft has learned from the experience of Windows Vista and fixed things that were problems. For me, the most noticeable change is in the wallpaper: Vista had visually noisy pictures (the mountain lake was particularly annoying) and Windows 7 has quieter, soothing images. Also, the screen widgets do not come up by default. (I dislike the screen widgets, especially the clock with it's constantly-moving second hand.)

Microsoft has also tuned UAC (User Access Control). Dialogs for access to critical areas are still displayed, but only when necessary. In this, Microsoft has matched the experience of Linux distros such as SuSE and Ubuntu.

I downloaded some additional packages: Word viewer, Excel viewer, and Visual Studio Express for C# and Web Development. I have yet to work with them.

All in all, Microsoft has made changes to the Windows experience that I consider improvements. They are on par with Linux for the user interface. This might be a problem for Microsoft, since while they are no worse than Linux, they are no better.


Friday, September 11, 2009

PHPmotion hacks, and then Ruby

I tried hacking around the PHPmotion e-mail problem this morning. I looked through the MySQL database for the web site and found a table called 'member_profile'. I changed the 'account_status' column from 'new' to 'active' and now the user can log in!

It's not a perfect hack, though. I can log in and change a few things, but I cannot view my profile. I'm guessing that the 'confirmation' action does a few more things after changing the 'account_status' value.

I could hack more, but maybe setting up an e-mail server would be a better solution.

I sent Ben a summary of my progress. The e-mail was lengthy; I would like a way to write shorter e-mails.

After the PHPmotion tests, I spoke with two recruiters about possible positions. One is in Pittsburgh (from the same recruiters I spoke with earlier this week -- they have another opportunity) and one is in West Palm Beach. I'm quite OK moving to Pittsburgh; it has been recommended by web sites and friends. West Palm Beach was not on the 'tech radar' and I did not consider it as a possible location. I'm pondering the move.

In Ruby, I modified my basic macro translator program (interpret) and extracted the core function into a Ruby module. This is the first step in creating a common 'macro' module that can be used by 'interpret' and 'macron', my two macro-expansion programs. The process was fairly easy; most of the effort is in picking a good name for the module. I consider that a good sign -- the tool gets our of my way and lets me think about the problem I am solving, not the ceremony for the tool.


Thursday, September 10, 2009

PHPmotion in test environment

I installed PHPmotion in my test environment today. Using my notes from the experiment on my development server, I put together a set of installation steps and performed them as I installed PHPmotion on //patricia. I had to make some adjustments as I went along, but that is usual for a new procedure.

I have Apache, PHP, PHPshield, and PHPmotion working on //patricia, mostly. The one thing that I need is an e-mail handler. PHPmotion wants to send e-mails for various events. One of them is to confirm that a new user really does exist. My test server (//patricia) has no e-mail handler.

I may be able to hack around the problem by adjusting entries in the database. PHPmotion probably has a flag for the user, indicating that the user has not verified their e-mail address. If it is a simple yes/no value then I should be able to change it manually and fake out PHPmotion. (The production system will need an e-mail server, though.)

I also learned about PHPmotion and its capabilities for translations. PHPmotion V2 allows you to configure it for one of a number of languages. (You pick a language and then everyone sees your site in that language.) PHPmotion V3 has no such capability; every page is in English. The producers have plans to allow users to select their language, but this feature is not available (nor is there an expected date).


Monitoring systems with 'reconnoiter'

I accomplished some other things yesterday.

I finished reading Eric Raymond's The Cathedral and the Bazaar. I found the predictions for Windows 2000 amusing: Raymond forecast a wide rejection of the operating system due to its size and incompatibilities. Looking back, Windows 2000 was accepted and became a popular choice. Perhaps ESR was predicting the release of Windows Vista?

I added some features to the Ruby version of 'interpret'. I also created a script to run test cases. Good thing I did; I found two problems in the code and one in the test data. Fixing both gave me a better program.

In the evening I attended the CALUG (Columbia Area Linux User Group) meeting and heard a presentation on "Reconnoiter", a tool for monitoring systems. It is an impressive tool. I think I am more impressed with it because of the work I did monitoring systems at UPS - I understand the need for such a tool and the issues in collecting data.

A recruiter (a pair of them, actually) called yesterday about a position in Pittsburgh. The work would be automating tests for a team developing a C#/.NET application. I'm talking with them more today. I'm OK with moving to Pittsburgh -- it's one of the cities that has been recommended to me by friends and web sites. I'm also OK working on the testing side (and not pure development) because there is enough challenge in automating manual tests and running the test "operation".


Wednesday, September 9, 2009

Fonts, graphics, and PHP

I solved the image-generation problem with PHPmotion, PHP, and Ubuntu this morning. It's all a matter of having the right packages installed and naming font files properly in the application. I installed the PHP5-GD package and a bunch of fonts (including the msttcorelib fonts), modified the PHPmotion script to use an available font (its default of 'DoradoHeadline is not available, at least not easily), and things are working!


Tuesday, September 8, 2009

A busy Tuesday

Lots accomplished today.

I sent Ben an update on my progress with PHPmotion. I described my progress, some of the problems that I had to overcome, the open problems, and my ideas for the next steps to solve them.

I sent updates to several recruiters. The updates contain a summary of my recent accomplishments: new technology learned, experiments, and such. I send them out twice a month, mostly to keep in front of recruiters. (And it worked: one recruiter called with a possible position. Unfortunately, it was with a company I interviewed back in March.)

I read a bit in The Cathedral and the Bazaar, Eric Raymond's collection of essays on open source development.

I had a conversation with a recruiter about a position for a network storage engineer. (Different from the March position I mentioned above.)

I dug into PHPmotion and diagnosed some problems. I have identified the cause of the login problem - it's a failure to generate the captcha image. The failure occurs because the specific font used by the captcha is not available on my system. I ran tests on //desdemona (my main development system) and figured out the changes to make the routine work. I can migrate them to //grendel, the server I used for PHPmotion.

The solution raises more questions. My intention was to run PHPmotion on //patricia, a laptop that is more portable than //grendel. The PHP GD package apparently uses X windows to create the image. I have X on //desdemona and //grendel but not on //patricia, since that PC is slated to be a simple server. Maybe I will have to install X. Or maybe not. More questions.

I finished the day with some work in Ruby. I built the core routine for my 'interpret' program. I plan on using the same core routine in 'macron', the macro expander for XML files. Once again I made a lot of progress in a short amount of time.


Sunday, September 6, 2009

Progress with PHPmotion

After some experimentation, I have PHPmotion working. Or at least working to the point where it lets me in as the site administrator.

The problem was that the setup routines would not connect to the database. The actual problem was with the account that I was using and the rights that it had. I switched to the MySQL root account, and PHPmotion lets me configure it. (It would be nice if the documentation mentioned the MySQL account requirements. I like to keep rights to the minimum necessary.)

With that problem solved, I can now try some templates and some uploads. I suspect that I do not have all of the codecs loaded; I will need more time to investigate those.

Saturday, September 5, 2009

The Ruby puzzle

I've been working on a little project the past 24 hours. Once again, I am impressed with the power of Ruby.

The project is a re-make of a utility I attempted at UPS. It's a macro expander, one that's tuned for XML.

Most macro expanders (at least the ones that I know) will expand a macro into text. But I want something a little different, one that expands macros into XML. ("But you can expand into XML! Just define the right expansion results!" I hear people cry. Yes, I can. But I need something more. Read on.)

I want to start with something like this:

.sheet name=budget
.row
.col
.value value=Jan
.col
.value value=100
.row
.col
.value value=Feb
.col
.value value=120

and end with something like this:





Notice the closing tags? I want the macro expander to provide them. I don't want a pair of macros (one for the open tag and a second for the closing tag). I want one macro that generates both tags.

I want the tags inserted at the proper place. That means that the expander must remember which macros it has expanded, and also have a sense of precedence. (I don't need the closing tag until another starts or the file ends. But when either of those conditions occur, I want the closing tag.)

I've built a small utility to perform this task. Using Ruby, it was easy to do. (My code is about 100 lines.) It reads a file of tag definitions (the definitions include the opening tag, the closing tag, and precedence) and then processes the macro script. It's not complete, but the basic logic works. I want to add variable substitution and some error handling.

What impresses me is the speed at which I can create a usable program.I've spent about three hours with Ruby. In C#, this would have taken me about seven hours. (That's an estimate. If I get a Windows machine working, and Visual Studio, I can re-write the program in C# and measure that effort. My guess is that I will spend more time re-writing the program in C# than I took writing it in Ruby.)

WhatI do not understand is the reason for the performance gain. I am faster in Ruby than in other languages. (How much faster depends on the other language.) Even when I solve the problem and get a good algorithm, I spend more time in the second implementation. (And I keep the second implementation simple -- no added features!)

So this is what I call the "Ruby puzzle": Why am I faster at development in Ruby? (Especially when I barely know the language?)

Friday, September 4, 2009

Frustrations with PHPmotion

I installed PHPmotion this morning. Almost. It's been a frustrating experience.

Downloading the ZIP file was easy. Unzipping it was easy. Following the on-line directions is easy, but they are incomplete.

My first frustration is with PHPmotion's use of PHPshield. The install instructions for PHPmotion assume that PHPshield is installed and configured. Not necessarily true. A few minutes of reading up on PHPshield, a few more minutes of configuring php.ini, and I have solved the problem.

Now PHPmotion wants to talk to a database. I have a database, and it is ready, but PHPmotion won't talk to it. Won't provide much of an error message either. Bah!

A phone call with a recruiter

I had a long phone conversation with my recruiter-friend Lynn this morning. She had a possible position; after discussion we determined that it was for Becton-Dickinson. Since I've already been presented there by another recruiter, she can't present me.

Beyond the one position, we talked more about what I am looking for. We talked about technology, we talked about company size, and we talked about culture/personality matches.

Lynn and I agree that the company culture and candidate personality are the primary criteria. A poor match there will result in poor results, regardless of the skills match.

I'm holding out for a position that I want, one where I feel a part of the team and feel that I can contribute. I'm not going to jump at any job that happens to come my way. (As tempting as that is.)

Wednesday, September 2, 2009

Job fair

I attended a job fair this morning. It was run by monster.com, they call it the "Keep America Working" fair.

It followed the same format as a monster job fair I attended earlier this year. This time my registration had been recorded, so I simply walked up, said my name, received a packet, and walked in. The number of hiring companies was about the same as the earlier fair -- about twenty. The companies covered a wide spectrum of the field: Sleepy's Mattresses, Manpower, Lumber Liquidators, and even some technical recruiters. Of the four technology companies registered, two were present, and I talked with them quickly. After that, I was free to leave.

The job-huntung crowd seemed to be mostly professionals, in a variety of ages. The match between the company selection and the candidate selection seemed poor. That may be due to monster.com's targeting of e-mails and marketing (on both candidates and companies) or it might be due to the local economy.

On the way home, I visited the Ukazoo bookstore. It's larger than I expected, with a pretty good selection of books in the science fiction category. (Several books by Glen Cook and a bunch by Sheri S. Tepper but nothing that I had to have.)

I also visited the local Apple store, primarily to see if it was still there.My one Apple Macbook is running without problems and serves me well. I can defer other Apple purchases.

I will give more thought to Windows development this afternoon. I would like to try Windows 7 (I have the release candidate DVD) but the one computer that can run it is the Dell Dimension 4600 -- which needs a power switch. ...I priced a new Dell PC for running Windows 7, and the desktop (sans monitor) cost just over $500. I will check the TigerDirect.com web site later today.

Tuesday, September 1, 2009

CMAP meeting - Microsoft Sketchflow

I attended tonight's meeting of CMAP (Central Maryland Association of .NET Professionals). They had a presentation on Microsoft's Sketchflow, a prototyping/agile-design tool. I was impressed with the presentation -- I learned more than I expected.

I was less impressed with Sketchflow. It seems to be made for business analysts and designers, allowing people to quickly lay out screens and define the flow from one screen to another. It even uses the "sketchy thing" look that the Art Technology Group had a decade ago, with line drawings of windows and controls.

Yet it fails in major and minor ways. Microsoft gets a lot of the minor details wrong. For example, they spent a great effort on building the sketchy thing look and allowing third party controls to take on the skin. But the sample photos provided by Microsoft are real photos. They stand out like sore thumbs, since every other control is in squiggly lines and the photos are in nice, high-res color. (You can create your own photos and add them, but isn't the tool supposed to save time?)

The major failings are more disturbing. While targeted to analysts and non-programmer users, Sketchflow has a lot of programming details in it. The events for controls have been trimmed, but the general properties remain numerous. So numerous that Microsoft uses the "search" box to find the property you want. (And it works, if you know the name of the property.)

The other failing is the lack of collaboration abilities. Microsoft sticks to the single-user document model, in which every person is working on their own document, or occasionally a copy of someone else's document. To share a Sketchflow model, you must e-mail the file to the recipient who must use a player (or their own copy of Sketchflow) to run it. They can add comments and e-mail the modified file back to you. This is a lot of work for collaboration.

The bottom line: Sketchflow was designed by individually-minded programmers. It will work for an individual but using it in groups will be time-consuming.

Prizes! - sort of

This past week-end I've been reading Deconstructing Flash from the team at JUXT. It's a bit old but it provides a very nice overview of Flash and some techniques for neat-o things.

I've been reading about Flash as part of the web site for Ben. He wants to move away from news and to video. If I'm going to help him, I need to know the technologies. I found the "deconstructing" book at the Book Thing.

This morning, on my way home from the ATM, I found a bunch of books on the sidewalk. (Along with some pots and pans and a few other household items.) The books include Flash 5 for Dummies, Macromedia Flash MX Developer's Guide, Coldfusion for Flash, Flash Developer Study Guide, and Using Dreamweaver 3. The books also included Through the Global Lens, and The Clash of Civilizations and the Remaking of World Order.

I guess this is my opportunity to learn about Flash and possibly take over the world.