HallmarcDotNet

Marc Elliot Hall's Blog

Headlines

Thomas wrote about our community Saint Peters, Missouri...

Christmas card is up Check out the Flash...

Blog-o-licious We've got blogs...

Site Redesigned HallmarcDotNet has a new look...

 

Welcome to Marc's Weblog

— also known as my vanity gripe page

Although I'm currently working in Anchorage, Alaska, you may be interested in my abilities for your project. If so, please view my résumé and Open Letter to Recruiters if you are looking for an experienced, senior technical manager, project manager, business analyst, team lead, software engineer, web application developer, webmaster, system administrator, technical writer, or technical editor.


December
Sun Mon Tue Wed Thu Fri Sat
 
     
2008
Months
Dec

Wed, 24 Dec 2008


Happy Holidays

I've been terribly out of the habit of writing in this blog. Mostly, this is because I've been busy developing other aspects of this website. Among other things, I've added the capability for all of my family members to have their own blogs, and to add text entries and photos from their web browsers rather than manually keying in HTML.

Here's a picture of the family that we dumped in our holiday Flash presentation:

photoshopped family2008.jpg

That's me in the upper left.

We've also been working on a bunch of other stuff around the house, like removing a fallen tree and generally getting ready for the holidays.

Speaking of which, I hope yours are happy. Merry Christmas!

 

posted at: 16:06 |


Tue, 08 Jul 2008




… Also, Clarifications

Continuance for the Cat

In legal terms, a continuance is a judge’s decision to allow the parties in a dispute to have additional time to prepare before a hearing, trial, or other legal proceeding.

I have granted Lola a continuance before her final disposition is decided, so that Jan can take her to the vet first. Jan’s contention is that it’s not normal for a cat to defecate anywhere it can’t bury it’s feces; therefore Lola must be sick.

Recognizing that a sick animal is entitled to compassionate care rather than punitive action, I have conceded to Jan that an exam is appropriate. Jan has conceded in response that if no medical issue is found, the cat must be returned to the shelter, as we are both unwilling to suffer the additional stress of following Lola around to be sure she’s not polluting our home.

On to the clarifications.

  1. Lola is a brown-gray tabby, not simply gray as I stated in my last entry.
  2. As previously noted, Lola is a friendly, social, and occasionally playful cat.
  3. Upon reading my last blog post, Jan was concerned about my characterization of her motives for adopting a cat. After some discussion, she has convinced me that Melody’s wish for a cat, expressed on an almost daily basis, was Melody’s idea, and not Jan’s. Therefore, Jan is absolved of the onus of being the instigator in the adoption.
  4. Yes, I did feed Lola twice a day, even when she was confined to the laundry room.

Not one to be hasty about decisions that cannot be changed, I am prepared to accept that I may be wrong about Lola’s fitness to stay in our home, provided that evidence of illness is found.

I expect there will be further blog entries on this subject.

posted at: 13:46 |


Tue, 01 Jul 2008




Appropriate use of the word “shit”

Lola, the demon-spawned cat from Hell

So, my daughter finally convinced me to let her have a cat (which we adopted from the local Humane Society, an eight-ish gray cat with a white breast and white socks, who would be adorable except for a problem, which I’ll get to in a moment); but it turns out that it was Jan’s idea all along and she’s the one who’s been taking care of it. At least, she was until she took the kids and drove to California early in June to visit the family out there, including both her father (who came home from the hospital after knee replacement surgery the day Jan arrived) and stepmother, her mother, my parents (who are in-country in between foreign affairs and are leaving for 18 months in Kiev, Ukraine, at the end of August), and most of my sisters and their husbands and children. Which is to say that I’ve been the one looking after the cat for most of June.

You see, the cat — normally a well-behaved, friendly, cuddly, short-haired, mostly quiet, good-tempered beast — started pooping around the house the week before Jan left.

At first, Jan was afraid to mention it to me; but I think she figured that if it happened again while she was gone, she wouldn’t be able to play ignorant. So she told me, and I said, “that’s not acceptable” (I really, as a general rule, despise cats, but was willing to compromise since it meant so much to both daughter and wife.), which she understood. Jan advised me that I should keep newspaper on the sofa where Lola (that’s the cat’s name) was prone to shit, so that if Lola shat there again, it wouldn’t be difficult to clean up. I responded that I was unwilling to put portions of the house out of use for the benefit of a cat and that I would damn well sit on my $1200 leather sofa, and refused to cover it.

This proved to be a mistake, and on the first Saturday after Jan had left with the kids I discovered exactly how serious a mistake it was.

Given that I knew Jan and the kids were going to be gone, and that I have a tremendous number of projects in the works at the hospital, in the garage, in the basement, and upstairs, I didn’t actually go into the living room until that Saturday, after I’d mowed the lawn, cleaned up the kitchen, done the laundry, and cleaned the litter box. I thought the litter box was particularly easy — there seemed to be almost nothing in it, compared to the week before when I’d cleaned it! So I went into the living room after all these chores so that I could unwind at the piano, when I discovered them.

In the precise center of each of the three seat cushions of the leather sofa, Lola had left a little surprise for me. Also, she left me one surprise on the carpet at the corner of the leather loveseat. Now the reason for the surprisingly clean litter box was obvious to me.

Oh, so obvious.

I shut Lola in the laundry room, cleaned up the mess, and called my wife. “Look up how to deal with it on the Internet,” she said.

“No”, I said. “This is your cat. We agreed that she was your and Melody’s responsibility. I am doing you a favor by watching her while you go off and play. I will not research her behavioral problems.”

I was livid.

“You must tell me exactly what to do about it. This is your problem, and you need to fix it. Now,” I said.

Jan told me to leave Lola in the laundry room. And to cover the sofa. “That would be pointless,” I said. “If she’s in the laundry room, she can’t shit on the sofa.” Jan agreed that this was true. “I can’t leave her in the laundry room indefinitely, that would be cruel,” I said. “I’ll keep her in there for a day or two, then let her out to see if she’s learned anything.”

As you may guess, there were no incidents for almost a week, before Lola shat on my sofa again, between the time I got up at 6:00 a.m. and fed her, and 6:30 when I came down from my shower.

After rounding up Lola, putting her nose in her shit and proclaiming, “No! No! No!”, I threw Lola back in the laundry room and cleaned up the mess.

Then I texted my wife. “Cat did it again. She goes or I go.”

Again, the advice: cover the sofa with newspaper. Put the cat in the laundry room. Already halfway there…

So I left Lola in the laundry room all day and overnight to stew, and covered the sofa with newspaper. I let her out while I got ready for work the next morning, but shut her back in before I left. When I came home from work that evening, I let her out. She was aloof, but had clearly used the litter box again. I praised her, fed her some dry food, and went through my evening routine. Just before I went to bed at about 10:30, I shut her back in the laundry room. In the morning, I let her out while I grabbed some breakfast, but shut her in the laundry room while I went to work.

Again, I let her out when I came home, again praising her for using the litter box, and gave her food. Then overnight I let her stay wherever she wanted on the main floor of the house. All good. In the morning, no mess. I praised her, and gave her a dab of wet food with her breakfast before I left for work.

When I came home, no shit. Instead, pee. On my sofa.

Strictly speaking, it was pee on my newspaper, but the principle is the same. Back in the laundry room Lola went, post nose-to-pee, “nonononononono!”

I texted my wife again, “Newspaper didn’t work. She peed this time. Find a shelter, or I’ll have her put down.”

When we talked a bit later, Jan accepted that if there were any further incidents, she would support my decision to send Lola back to the Humane Society, and back me up with the kids.

I am such a soft touch. I should have sent Lola back right then.

But, no, I was going to be flying out to California to be with Jan, the kids, and extended family for five days, and had to get ready for that, and had a zillion things going on at work that needed my attention, and didn’t have time to deal with Lola.

Mostly, though, I didn’t want my daughter to cry about Lola. The last time Melody went to California, her pet rat was dead when she returned (that’s a story in itself, and to be reserved for another time). She’d never leave the house again if her cat was gone after this trip…

So, I didn’t take Lola back to the Humane Society. Instead, I re-covered the sofa, left Lola in the laundry room overnight, and gave her another chance. There were no further incidents before I flew out of Saint Louis to Sacramento via Los Angeles. The evening before I left, I called a neighbor, whom Jan had convinced to watch Lola while I was gone, and disclosed the situation. She has three cats (who apparently have never shat on her furniture), so she was comfortable with care and feeding. I told her to call me or Jan if there were any similar events while we were both gone, but never heard from her.

As of this moment, I still haven’t spoken with our neighbor, although the day after I returned home I did leave her a voice message thanking her for her service.

However, it has become clear to me that Lola peed on the sofa in my absence, as this morning when I did my now habitual visual inspection of the living room, I noted that some of the newspaper had turned yellow overnight, as though cat urea had chemically altered the cellulose fibers over a period of several days, finally having visible results. Since I had let Lola wander the house freely for the previous 48 hours, It was not really useful to do the nose-to-pee negative reinforcement thing. Instead, I changed the newspaper and went to work. Lola had free rein in the house.

That was another mistake.

While I was at work today, Lola shat on the sofa again. This time, the newspaper caught the mess, which made it much easier to clean up. Before I did so, I grabbed Lola, put her nose in her shit, exclaimed “No! No! No! No! No!”, and shut her back in the laundry room.

Which is where she is now, meowing plaintively (Lola is very good at plaintive).

I called Jan (she and the kids are at Mount Rushmore today). She didn’t answer, so I left her a voicemail… She’s supposed to be back tomorrow night, very late. She’s going to have to deal with Lola’s return to the Humane Society on Thursday. In the meantime, Lola stays in the laundry room.

Sucks to be me. I should never have agreed to adopt an animal that can’t be kept in a cage all the time, like such previous pets as snakes and rats. Damn me for a fool.

posted at: 22:53 |


Tue, 10 Jun 2008




Bone-headed Maneuvering

Server Outage

While the wife and kiddies are out of town, I thought I’d catch up on a few things with the website.

Among my aspirations was to update the operating system kernel to a more current version with various patches and improvements.

Debian GNU/Linux makes this process relatively simple with the marvel of their dpkg suite of tools, including such amazing functionality as apt-get update, apt-get upgrade, and apt-get dist-upgrade. Some prefer to use aptitude instead of apt-get; and some (who might prefer a GUI), use synaptic. But all of these commands do the same thing: grab the most reasonably current version of the software already installed on the system from a centrally-maintained repository, and upgrade it in-place on the local computer, for free. Normally, this is absolutely painless.

Linux is renowned for never needing a reboot; and to a large extent, this is true. However, when upgrading the kernel the very core of the system is being replaced. Because Linux keeps running programs in memory even when they’ve changed on disk, this requires that the system be rebooted — because the kernel is a running program. Most other programs can be individually stopped and restarted; but the kernel controls all other programs — if it’s stopped everything is stopped. Thus the reboot requirement.

Unfortunately, I moronically chose to upgrade my kernel with one for the wrong CPU architecture, leaving me with a system that would not restart. Of course, initially, I didn’t know that, and had to figure it out.

Being the experienced and skilled technical professional that I am, I had a reasonably current backup of the system. But just to be completely sure, I booted the system using Knoppix to verify that the filesystem on the server was still intact.

To my surprise and joy, it was.

My next step was to take another backup of the system so that I could be absolutely sure that I had all of my current data. This took roughly six hours to complete, as the system has 500 GB of disk and all of that data was passing through a USB 1.1 connection to an identical external hard drive. Normally, an incremental backup is sufficient; but I wanted the previous full backup to remain available if my new full backup was deficient in some way.

Six hours is a long time, and I still have a job: so I let it run overnight, and then went to work the next morning. Sleeping and working prevented me from determining the kernel incompatiblity until last night.

The a-Ha! moment came after multiple attempts to fix the bootloader (I use lilo) failed. lilo would run when I updated the configuration to point to my new kernel; but when I rebooted the system it would hang with a cryptic:

lilo
0x01 "Illegal command"
lilo
0x01 "Illegal command"
lilo
0x01 "Illegal command"
…etc…

Google results led me to this page, which claims, and I quote, “This shouldn’t happen”. Yeesh.

After making various changes to the lilo.conf file, each with similar unwelcome results, I was extremely frustrated. By this time, my Web, email, and media server had been out of commission for more than 24 hours. Had it belonged to anybody else, I would have recommended starting fresh and buying new hardware. However, the Wife Acceptance Factor of that decision would have been strongly negative for me.

Not to be deterred from having a functional system, I then elected to re-install the OS and restore my data from my redundant backup. After the eighth failure on the “Install the Base System” step in the Debian installer:

Jun 10 04:23:25 base-installer: error: exiting on error base-installer/kernel/failed-install
Jun 10 04:23:53 main-menu[1323]: WARNING **: Configuring 'base-installer' failed with error code 1
Jun 10 04:23:53 main-menu[1323]: WARNING **: Menu item 'base-installer' failed.

(and similar variations), I then tried installing a different kernel.

Wow!

By trying to use 2.6.18-4-686 instead of 2.6.18-4-486, I had hosed my system.

The lesson: Intel’s Pentium III processor is not compatible with the full 686 architecture Linux kernel.

Next steps: Install all this stuff on the dual Xeon I bought two months ago, and retain the Pentium III as a redundant backup system, instead.

posted at: 13:59 |


Tue, 29 Apr 2008




“And to think your [sic] paid for this”

The Looming Y2K38 Crisis

Following is a demonstration of how easily distractible I am.

A few months ago, I was doing a little training of some co-workers, and wound up composing this email:

Marc Hall/STL/MASTERCARD
01/14/2008 02:07 PM

While explaining to our newest team members this morning how [edit: redacted project name] works, I ran off on a related tangent about Unix timestamps formatted in seconds since the beginning of the Epoch. This further sent me off on a tangent about how Unix keeps track of time. This reminded me of the Looming Y2K38 Crisis.

In case you are unfamiliar with the idea, Unix keeps track of time by counting seconds since January 1, 1970. This is known as the beginning of the Unix Epoch. Today, around 1,200,160,000 seconds have elapsed. The seconds are represented in 32-bit Unix and unix-like systems by a four-byte integer value. Because a four-byte signed integer has a maximum decimal value of 2,146,483,547, on January 19, 2038, 03:14:07, Unix will run out of bits to store our seconds.

And time will stop.

No, seriously, either systems relying on the time will terminate in unpredictable ways, or the apparent time will wrap around back to January 1, 1970.

This is bad, for reasons left as an exercise for the reader.

Some time (ha!) between now and 2038, someone will have to go through every line of code in the Unix universe and validate that on the rollover date the system will not crash or behave unpredictably. This will be a project with a scope similar to the Y2K-bug-stomping-frenzy that concluded last century. It will make the DST patching we did after Congress last altered timekeeping look like making mud pies. Programmers specializing in Unix will be dragged kicking and screaming out of retirement and handed large sums of cash to evaluate critical systems. And, in the end, after months of trepidation and hype, January 19, 2038, will be a non-event — Because, like the Y2K Crisis, enough people will really understand how bad it could get if systems are left unpatched, that adequate time and resources will be allocated to be sure that everything is fixed in time.

Some have predicted that all 32-bit Unix systems will be long since retired by 2038, and 64-, 128-, 256-, 512-bit systems will have eliminated this as an issue. However, I have personally dealt with embedded systems more than 20 years old already. I expect there are 8-, 16-, and 32-bit embedded systems out there right now that will still be in use in 2038. Traffic signals. Assembly line controllers. Communications equipment. A lot of these run on 32-bit Unix-like kernels. In addition, there will still be business software running in emulated 32-bit environments, too, much like MasterCard is still using mainframes long after Microsoft’s predicted migration to all-Windows-all-the-time. Legacy systems have a way of hanging around.

You heard it here, first!

More info (so you know I’m not just making stuff up):
http://www.y2k38.info/index.html
http://home.netcom.com/~rogermw/Y2038.html
http://www.hackosis.com/index.php/2007/12/21/linux-is-not-y2k38-compliant/

The Boss’ Response …

And to think your [sic] paid for thissad

… And My Reply to the Boss’ Response

Hey, I’m just developing my career potential happy

After all, Consultant-level —- no, Senior Consultant-level —- work requires strategically-oriented, thought leadership about the company’s long-term outlook and anticipation of future events that will affect business operations at the limits of the planning horizon. The ability to assimilate, internalize, and communicate these strategic issues is what separates the Senior Consultant from the Engineer.

Further, if training dollars are not available, then it is incumbent on Senior Consultants to provide appropriate knowledge transfer to the various lower-echelon engineering staffers.

Also, I’m paid a premium for my excellent grammar winking

posted at: 15:18 |


Mon, 28 Apr 2008




Windows Security for the Insecure

Tools for Keeping Windows Unbroken

I recently had a conversation with an acquaintance about his company-issued laptop, and how it had become significantly slower. He also reported some behavior (pop-up windows, extra toolbars, etc.) that are symptomatic of a computer that has been infected by a virus, spyware, adware, or worse. His complaints sounded all too familiar, as Microsoft Windows users have had similar issues since the advent of Windows for Workgroups.

Knowing that I have some experience with computers, he asked me for some advice on what to do. After explaining that his laptop is to the systems I work with as a dinghy is to an ocean liner, I agreed to impart some wisdom.

First, I explained that he shouldn’t be worrying about fixing the laptop: it’s a company laptop, and therefore the company’s responsibility. They need to hire someone with domain-specific competence to do routine maintenance and security auditing on these computers. In other words, they need to hire a geek.

Presuming that, for whatever reason, his employer would not be supporting this computer, I also gave him a brief overview of the wide variety of misuses that his laptop could be engaged in. Here are a few, and let me emphasize that this is not a comprehensive list:

  • spam zombie
  • identity theft
  • key logging
  • delivery of unwanted advertising (is there any other kind?)
  • distributed denial of service attacks
  • vector for other malware to be transmitted to other computers
  • industrial espionage

After outlining the risks to him and others that could result from a compromised machine, I agreed to provide him with more information in a follow-up email. This blog entry is an expansion on that email.

Places to seek understanding of the problem

Carnegie Mellon University supports an organization called the Computer Emergency Response Team (CERT), which watches the Internet for trends in computer abuse. CERT maintains a web site dedicated to helping people keep their computers secure. Two sections of that site of particular benefit to my acquaintance are:

Another popular resource is Security Novice, which outlines best security practices from the perspective of a novice.

Microsoft also provides a reasonably complete explanation of security basics. Naturally, this is geared specifically for Windows users, but then, most PC users are Windows users.

Organizations seeking to fix the problem

Security is a process, not a product. Nevertheless, here are a few free tools that will improve your overall situation, at least initially. If these are so good, why are they free? Principally, two reasons:

  1. They are loss-leaders for commercial products, or
  2. The Free/Open Source Software (F/OSS) community is a strong force on the Internet, and has, essentially, developed entire environments for PC users to be productive without spending any money. Some groups in this movement are motivated by pragmatism, and some by idealism; but the result is a full suite of operating systems and applications that rival the corporate software world’s offerings in virtually every category.
    F/OSS software includes several variants of Linux, OpenOffice, several of the tools listed below, and many other programs. Development of these programs is sponsored by major companies, like IBM, Sun, Google, and Oracle, as well as largely volunteer organizations, like the Mozilla Foundation, Apache Foundation, and Free Software Foundation.

A comprehensive list is beyond the scope of this blog, so I won’t cover things like firewalls and root kit detection. However, the tools I describe below will give you a glimpse into the variety of precautions you can take immediately.

Web Browsing

For browsing the Web, I recommend Mozilla’s Firefox, a more secure web browser than Microsoft’s Internet Explorer. The biggest reason for choosing a more secure browser is that it is more difficult (although unfortunately still not impossible) for a malicious outsider to use a website to deliver malware to your PC.

Anti-Virus

Every Windows PC should have an virus scanner and removal tool, and Grisoft has an excellent free program, AVG Anti-Virus (the free one does the job, but you can pay ‘em for additional features).

Spyware Detection and Removal

Spyware can be even more dangerous than a typical virus, at least to the computer user whose PC has been compromised. Spybot Search & Destroy is my favorite tool for this purpose.

Adware Removal

Adware is mostly an annoyance; it uses CPU time and RAM that you want for your own purposes to put advertisements on your screen when you’re trying to do work. Lavasoft Ad-Aware Free is my choice for this (the free one does the job, but you can pay ‘em for additional features).

Email Safety

Finally, if you’re using Microsoft Outlook Express for email, that’s just asking for trouble. Either use Microsoft Outlook (without the “Express”winking, or Mozilla’s Thunderbird.

Summary

These tools will make your life much easier, and won’t cost you (or, in the case of my acquaintance, your employer) a lot of money. My advice is to take advantage of them and save yourself many of the headaches associated with using a PC on the Internet.

posted at: 14:45 |



Marc Elliot Hall St. Peters, Missouri 

Page created: 21 January 2002
Page modified: 31 December 2009

spacer About Us | Site Map | Privacy Policy | Contact Us | ©1999 - 2009 Marc Elliot Hall