No, Really, Back Online

OK, this time I really mean it, I’m back online with this weblog.

I have finally managed to get this weblog going again. I had a fair amount of weirdness associated with the migration from my old computer, and decided the “easiest” way to solve the issue was to change to a new weblogging system. I’ve been wanting to upgrade the capabilities of this weblog for a while, so it seemed like as good a time as any, and a better reason than I usually have.

So, after evaluating Textpattern and WordPress, I decided on WordPress. I actually like many things about Textpattern better, but the approach it uses for categories made it virtually impossible to get working with my old blog structure. WordPress, on the other hand, works exactly the way I want when it comes to categories. So here I am.

Now, let’s see if I can start writing regularly again!

Back Again

Problem: For some reason, even though your PHP include_path does contain the location of your include file, PHP cannot seem to actually include() the file. The paths match exactly, and yet you still get errors.

Back on the air. I’ve been in the process of switching from my old QuickSilver G4 desktop to the new PowerBook, and when I took the old computer offline, I locked myself out of this blog. I actually run the editing client on my personal computer, but have a read-only version on the FreeBSD server that actually makes it public. So, when I took down the old computer, the site was still online, but not editable.

Getting the editing client running again was a fair amount of trouble. First there were all the code files to move over and into the right place. Then there was configuring Apache and PHP correctly. Then I needed to allow access to the database server from the new machine.

And then I got stuck. On the same problem that stuck me three years ago when I moved onto the QuickSilver: I could not include() in the code files for the blog. Or any files, for that matter.

Finally tracked down the problem, a teensy little thing, that I’m sure I’ll forget again by the time another three years goes by, and it’s time for the next new computer.

So, in the hopes that Google will find the answer when I try looking for it again:

Problem: For some reason, even though your PHP include_path does contain the location of your include file, PHP cannot seem to actually include() the file. The paths match exactly, and yet you still get errors.

Symptom: Trying to include() PHP code files into a main file results in errors like this:

Warning: main(include-file.inc): failed to open stream: No such file or directory in /path/to/main/file on line 18
Warning: main(): Failed opening ‘include-file.inc’ for inclusion (include_path=’.:/Users/username/Library/WebServer/…:/Library/WebServer/…’) in /Users/username/Sites/blog on line 18

Answer: You are keeping the include files in a location inside your own home directory (~/Library/... here). The permissons on ~/Library are no access for group and world. So the web server process cannot access them — even though the actual include directory has correct permissions.

Resolution: chmod go+rx ~/Library

I Have a New Girlfriend

I have a new girlfriend. Rochelle was surprisingly calm when I told her.

Rochelle was surprisingly calm when I told her. Of course, I spent the evening cooking with her, and made sure she’d drunk half a bottle of wine, and then we watched Arrested Development, which never fails to make us laugh. So she was in a good mood. Which, I have to say, I planned carefully.

So, then I told her, and she was a bit surprised, but then she just laughed. I guess she was simply accepting the inevitable. I’m a lucky guy.

Here’s a picture of my new sweetie.

Mouse Hair

When I went optical I thought my problems with cat hair and other gunk getting into my mouse would be over. Today, while checking out why clicking and scrolling had started acting weird, I learned different.

Fifteen years ago, I began my post-college career providing front-line computer support in the Office of the Chancellor at UC Berkeley. I was taking care of 125 Mac users, most of whom had Macintosh SE systems.The number one problem people had was “My password doesn’t work,” for which the solution nearly always was “Turn off your Caps Lock key.” You gotta love end users. (Interestingly, Mac OS X and Windows XP both provide visual feedback when the Caps Lock key is down and you are typing into a password field. I could have taken two-hour lunches if that had been around back then…)

The second most frequent problem people had was “My mouse isn’t working anymore.” The solution for this was to go visit the user with my micro tweezers, take out the mouse ball, and tweeze out the hair, dust, fuzz, and other gunk that inevitably got into mechanical mice. This was something I probably did twice a week all year long at work, and for myself at home, 3-4 times a year. The difference in mouse smoothness afterwards was always amazing, and it was this issue that finally made me go out and buy a new optical mouse a few years back.

When I went optical I thought my problems with cat hair and other gunk getting into my mouse would be over. Today, while checking out why clicking and scrolling had started acting weird, I learned different.

While there is no mechanical aspect to mouse movement tracking, the scroll wheel (which I love love love) and regular buttons are still mechanical. When I opened up my mouse and peeked around, I found enough hair for a whole ‘nother cat, wrapped around the scroll wheel’s spindle. Cleaning it all out was oddly nostalgic — a job once again for the micro tweezers.

As I was doing it, I again found myself marveling at the wonderful design of my Logitech Cordless Optical Mouse. Removing two screws allowed me to lift off the top part of the mouse. Inside, it was easy to remove the mouse wheel to get at all the little places where hair had lodged. I wouldn’t call the design “user serviceable,” but it certainly wasn’t difficult. If you can handle a screwdriver and pay attention to where the three wheel parts go, it’s quite easy to take the mouse entirely apart and put it back together afterwards.

Great Customer Service

Just this last week I had two great customer service experiences, with Speakeasy and Bare Bones Software. With all the horrible customer service most companies provide, via outsourced call centers or worse, the great companies deserve to be noticed and praised, and patronized.

Just this last week I had two great customer service experiences. With all the horrible customer service most companies provide, via outsourced call centers or worse, the great companies deserve to be noticed and praised, and patronized.

First, my DSL connection went out. Rochelle got me out of bed early Sunday with a “Honey, is the internet working?” After a couple of quick tests, it was clear the problem wasn’t on my end. I called our DSL provider, Speakeasy, and opened a trouble ticket.

What was remarkable was that (a) I didn’t wait on hold for more than 2 minutes before I spoke with the first human being. And (b), she was the only person I spoke to, because instead of being an idiot reading from a script and telling me to power cycle my computer / router / coffee maker, she knew her shit, and we quickly ran through real troubleshooting steps that allowed her to isolate the issue to being outside my network. She wrote down my particulars, and told me what she was going to do, and how Speakeasy was going to get the problem solved.

Four hours later, Rochelle and I were taking an afternoon nap (it was Sunday), and we got a phone call. Speakeasy, letting us know that they had found a bad circuit card in the network center, and replaced it. Would we try our connection and see if things were working again? Sure enough, everything was good.

Not 10 minutes later, I received an e-mail message asking me to rate my recent ticket support. Speakeasy follows up every trouble ticket to ask you how they did. They are not afraid of getting feedback, because they work very hard to make sure it will always be positive. And I gave them the top rating across the board, because they’d earned it, by being quick, treating me like an intelligent person, and being proactive and following up, instead of just silently closing the ticket when they found and replaced the bad card. (It’s amazing how many companies close tickets when they find a problem, without checking back to see if it was the problem.)

My other great experience was simpler. I was working on some HTML pages for a web site for Rochelle, using the finest text editor available, BBEdit. And, when trying to select a menu choice I’ve used many times before, the item was grayed out, inactive. I tried a bunch of things, and couldn’t figure it out. So, on a Saturday, I sent off an e-mail inquiry to Bare Bones Software’s technical support. Less than a day later, still on the weekend, I got back an e-mail from the director of technical support, which not only had the answer, but also guessed (correctly) at how it had happened. It turns out that a third-party plug-in I had recently installed does something bad, and that bad thing has the effect of disabling the command I wanted.

So (a) they knew exactly what the problem was immediately, and (b) the problem wasn’t created by Bare Bones, but they addressed it anyway. That’s great customer service.

Spam Counts for Q2

So, with the end of the first half of the year, I thought break my silence by taking another look at the level of spam flowing into my mailboxes, and how well my tools are coping with it.

So, with the end of the first half of the year, I thought break my silence by taking another look at the level of spam flowing into my mailboxes, and how well my tools are coping with it. First, here are the stats for Q2:

Filtered Mail

6674 Good Messages
16976 Spam Messages (72%)

SpamSieve Accuracy

52 False Positives
71 False Negatives (58%)
99.5% Correct

And here are the stats for the first half of the year:

Filtered Mail

20554 Good Messages
39595 Spam Messages (66%)

SpamSieve Accuracy

83 False Positives
270 False Negatives (76%)
99.4% Correct

You can review my previous post for the Q1 details, but the overall trends are:

  • SpamSieve increased its overall accuracy, but the number of false positives (legit messages marked as spam) went up, which is a bit troubling.
  • The actual amount of spam I received was down, but as a percentage of my mail stream, it was up. (This is because my legitimate mail traffic is down 50% after I unsubscribed from some mailing lists.)
  • 75% less spam reached my Inbox (71, vs 270 in Q1).

The overall reduction in spam traffic is encouraging, and proof that the pobox.com mail filters that I enabled at the end of Q1 are doing a tremendous job at rejecting spam coming to my oldest e-mail address.

The one really irritating new trend this past quarter, which doesn’t show up in the stats, is the number of bounces and anti-virus error messages hitting me. The alderete.com and aldosoft.com domains have been spoofed (forged) in a lot of spam and worm traffic, and because I have my domains “wild carded” to accept e-mail for “any-address [at] alderete.com”, the result is I get a lot of crap in my Inbox that is intended to let “pigxwnslesps [at] aldosoft.com” know that the crap didn’t go through.

So I’ve been compiling a list of the e-mail aliases I actually use (quite a lot because I use custom addresses with various vendors and web sites, so I can track who sells my address to spammers, turn off specific addresses, etc.), with the intent that I’ll enable those, and disable the wild cards. I hope to do that over the holiday weekend, and expect it to have almost as dramatic effect on crap coming in as the improved pobox.com spam filters.

Spam Count So Far This Year

With Q1-2004 coming to a close, I thought I’d take a look at my spam situation, which has been escalating out of control. Since 12:01am January 1, 2004 I have received 22,255 spam messages via e-mail. That’s more than 250 a day, every day, for the last 89 days. Earlier in the year, the daily average was lower, which means that in the last couple weeks it’s gone well above 250 per day. In spite of these numbers, I have two things that give me hope.

With Q1-2004 coming to a close, I thought I’d take a look at my spam situation, which has been escalating out of control. Since 12:01am January 1, 2004 I have received 22,255 spam messages via e-mail. That’s more than 250 a day, every day, for the last 89 days. Earlier in the year, the daily average was lower, which means that in the last couple weeks it’s gone well above 250 per day.

In spite of these numbers, I have two things that give me hope.

First, SpamSieve is an amazing anti-spam filter that integrates well with Eudora. It’s far more reliable than the built-in SpamWatch feature that debuted in Eudora 6, primarily in the area of false positives (real messages mistakenly filtered out):

Filtered Mail

13565 Good Messages
22255 Spam Messages (62%)

SpamSieve Accuracy

21 False Positives
197 False Negatives (90%)
99.4% Correct

SpamSieve is award-winning software for Mac OS X, and it integrates beautifully with both Eudora and Mailsmith, the two best e-mail clients for the platform. I am getting to the point where I trust SpamSieve enough to just purge filtered e-mail without reviewing it.

Without SpamSieve, I would be going insane because of spam.

The second thing I have on my side is that more than half of my spam comes to one e-mail address, the oldest e-mail address I still use. If I were able to kill it, it would instantly cut off more than half of the spam. But, it’s the first permanent e-mail address I ever got, using the excellent pobox.com mail forwarding service. I’ve had it for almost 15 years. Because it’s so old, I’m extremely reluctant to part with it — what if that’s the only address a long lost friend has?

Well, it looks like I can have my cake and eat it too. pobox.com just introduced new spam filtering controls and services, which are far more effective than the old filters that were enabled on my account. Last night I turned them on, and already the amount of spam coming into my pobox.com e-mail address has dropped to almost zero.

I wouldn’t exactly call this the turn of the tide, but it’s certainly encouraging. Because it’s my only hope to avoid having to look at 100,000 spam messages in 2004, which is where the growth curve points, if there isn’t change.

I’ll let you know how it’s looking when Q2 is over.

iDVD Rocks

Last week we had a reunion of our group that went to Tequila. (Actually, it wasn’t so much a reunion as a reenactment; five people passed out at the host’s house, two of them were Rochelle and I.) A couple of days before the party, I put together a terrific DVD of the trip, using photos from all the participants, and iPhoto and iDVD for Mac OS X.

Last week we had a reunion of our group that went to Tequila, to tour the region and visit the fabricas that make the distilled spirit we love so much. Actually, as Martha described it the next day, it wasn’t so much a reunion as a reenactment. Five people passed out at the host’s house, and only one of them was the host. (Two of them were Rochelle and I.)

But the point of this posting is the DVD I brought to the party. I collected 1,400 photos from the folks who went on the trip, and organized them down to about 750 photos broken into 10 slide shows, using iPhoto for Mac OS X. Then, using iDVD, I was able to build a kick-ass DVD of the slides, which we spent an hour watching and laughing hysterically at during the party.

There are definitely some defects in iPhoto and iDVD, that made the task harder than it should have been. But given the amount of material I started with, and the quality of the finished product, it’s amazing that I was able to put it together in just a couple days. Especially since I had never used iDVD before this project. iDVD is an amazing piece of software.

There were a couple bugs in the disc I burned for the party, that I’ll fix some time next week for a 1.0.1 release. But then I get to add iMovie into the equation, and really put on a show, with better transitions, better control of timing to the music, and most importantly, captions for all the crazy photos. Should be a blast.

Selecting the LG VX4400 Mobile Phone

When choosing which of the dozen mobile phones offered by Verizon that we should get as our new phone, I spent (too?) much time researching the issue. I had a few criteria that were important, but making the final selection came down to just one thing: full connectivity with my Mac.

When choosing which of the dozen mobile phones offered by Verizon that we should get as our new phone, I spent (too?) much time researching the issue. I had a few criteria that were important:

  • Flip phone (or Rochelle’s purse dials randomly)
  • Can connect to my Mac OS X system (Windows-only not acceptable)
  • Tri-mode (digital and analog)
  • Customizable polyphonic ringtones

Several phones matched enough criteria to merit consideration. The LG VX4400, Motorola T730, and Samsung SCH-a530s all seemed fairly equivalent in most of their features. The LG VX6000 had a camera and a groovy OEL screen, but no analog capability, plus it was the most expensive. The LG VX3100 was the cheapest phone (by far), smaller, and had better battery life, but was B&W instead of color, and didn’t have analog or customizable ringtones.

In the end, it came down to the VX4400 and the Motorola. The LG had slightly better customer ratings, but the Motorola was on Apple’s list of iSync-compatible phones.

What swayed me to the LG was the vibrant communities of owners/users I came across, and an Open Source data synchronization utility called BitPim, which only worked with the VX4400, and had just recently been made to work on Mac OS X. While BitPim isn’t as polished or usable as iSync, it does one thing iSync does not: load custom ringtones and wallpapers onto the phone.

So far I’m pretty happy with the phone. Reception has been great, especially outside our house (which is a mobile phone dead zone). The form factor is excellent when in use, but a little big to carry around (I still love my Nokia 8860 best for the form factor; truly, an amazing phone that 4 years later has not been exceeded in that area).

And BitPim, while not pretty, was easy to install and connect to the phone, and has enabled me to download a great collection of ringtones (things that sound like a phone ringing, not rediculous classical themes and minuets), and a few custom graphics for visual ringers.

I still need to pick out a couple good games and use Get It Now to download them to the phone, so that when I’m 45 minutes early to a movie (I like to get a good seat), I have a distraction in my pocket that I can play with in public. Ahem.

What’s funny and gratifying is that Consumer Reports just this month released their latest reviews of mobile service providers, plans, and phones (subscription required to view). They liked Verizon best for the providers (unless you live-and-die by Push-to-Talk, then go Nextel), and the highly rated LG VX4400 was one of three “quick picks” that they selected as recommended phones for Verizon users (the LG VX6000 was another, and too expensive for us; the last, the Motorola 60p, wasn’t offered when we signed up). I would bet that the folks at Consumer Reports did even more research than I did!

On the Portability of Numbers

Rochelle and I recently tested the early waters on mobile phone number portability, by switching our mobile phones from AT&T Wireless to Verizon Wireless while keeping our existing mobile numbers, in the third week that it was possible to port the numbers.

Rochelle and I recently tested the early waters on mobile phone number portability, by switching our mobile phones from AT&T Wireless to Verizon Wireless while keeping our existing mobile numbers, in the third week that it was possible to port the numbers.

We wanted to switch for a variety of reasons:

  • My phone (using AT&T’s GSM service) works well everywhere except in our house. According to the research I did, for a variety of reasons Verizon has the best coverage in the Bay Area and nationwide.
  • Rochelle’s old (and free) “stick-style” phone keeps dialing me from her purse. A new clamshell design should fix that.
  • Rochelle’s plan was killing us when she overflowed her minutes or roamed, which happened every other month.
  • Our old plans were old, and not getting us the features or minutes that were available today.
  • Rochelle’s company switched their preferred wireless provider to Verizon, and Verizon was offering killer discounts on plans and new phones.
  • OK, we admit it, we just wanted to get polyphonic ringtones.

I did almost a week of research, inputting our old bills into a spreadsheet to review our historical usage patterns, comparing different carriers’ available service plans, learning more about mobile phone technologies (e.g., TDMA vs. CDMA, 800MHz vs. 1900MHz, etc.), finding the right phone, finding software for the right phone that would connect it with my Mac, etc.

In the end, Verizon having an arrangement with Gap, plus the ringing endorsements and explanations of technical superiority, made it impossible not to go with Verizon. Picking phones was a little harder, but after narrowing the options to three phones and Googling around for reviews and other info, it became clear that the LG VX4400 was the way to go for us. I’ll write more about our phone selection in another post.

Once the decisions were made, Verizon’s corporate rep made it incredibly easy to place the order and get the ball rolling. During the order process he was very careful to caution us that, because of the very early nature of number portability, it could take between 2 hours and a week for our numbers to completely transfer from our old carrier.

It turned out that AT&T wasn’t happy with our decision to switch, and our phones were deactivated immediately after they were notified we were transferring to Verizon. Since this was a few days before we got our new phones, let alone activated them and the number transfer, it seemed a little harsh, but making do without mobile phones for a couple days wasn’t a big deal.

In the end, the number transfers were anti-climactic. When the phones arrived I charged them for a few hours, and then followed the two-step procedure to activate them. Instead of it taking 2 hours or a week, the phones immediately came up with our old numbers. Yay Verizon!

So far we’re pretty happy with the new service and phones. I still don’t get perfect reception in the house, especially not in the computer room, but the phone is definitely usable in what is apparently a very tough environment for mobile service. After hours of “dicking around” (Rochelle’s term for it) with BitPim, the phone sync software, I managed to get our contacts copied from my computer to my phone, along with a bunch of custom ringtones and wallpapers.

Those poly ringtones make it all worthwhile.

Found It

I woke up this morning at 3am, and after 30 minutes of trying to relax back into sleep, I gave up, and started thinking again about where to find my errant ADB cable. A few minutes later the answer came to me, plain as day.

I woke up this morning at 3am, and after 30 minutes of trying to relax back into sleep, I gave up, and started thinking again about where to find my errant ADB cable.

Amazing what a little time and unconsciousness will do for remembering things. I remembered quite vividly that I had indeed put the ADB cables into a box, as I’d originally thought. What was new was the clear recollection that one smaller box had not fit into the larger tote bin I have all the others in. I knew exactly where that one box was, and that I hadn’t searched it yesterday, completely missing it because it was in plain sight.

So, I got up, and opened the box. There it was, my four ADB cables. Back in business! Cranking through the G3 purge over the weekend. Hope to sell it next week…

Fancy Detective Work

So I am, as part of my effort to get rid of crap around the house, working on resuscitating my old Mac, a Beige G3, in order to sell it. The system has been sitting in the corner of our office, completely disconnected. Indeed, I’d unplugged everything from it, and stored the cables, mouse, keyboard, etc., elsewhere. Heh, to reduce clutter. Now there’s just one piece I can’t find…

So I am, as part of my effort to get rid of crap around the house, working on resuscitating my old Mac, a Beige G3, in order to sell it. The system has been sitting in the corner of our office, completely disconnected. Indeed, I’d unplugged everything from it, and stored the cables, mouse, keyboard, etc., elsewhere. Heh, to reduce clutter.

So setting it up initially involves tracking down all the pieces, so that I can turn it on. Power, graphics, and Ethernet were easy; those are already connected to things in the office, I can just borrow them. And I knew where the keyboard was, because I had used it for a while on my new Mac, until I found an acceptable replacement. After digging in boxes for 20 minutes, I found the old mouse. The only piece missing is an ADB cable to attach the keyboard to the Mac.

I can’t find one.

After digging in boxes in four different rooms for over an hour, I just can’t find where I stored the damn thing. I probably have exactly one of them, and it’s just hiding from me.

So, time to take a break, and think about where it could be. Let’s see, I got the new Mac about two years ago…both Macs where hooked up and running for a couple months…what did I do when I disconnected the G3? Well, I kept using the old keyboard for a while…but that was with an adapter, not the keyboard cable. What did I do when I retired the keyboard…?

Hmmm, wait a minute! I have a padded keyboard case, that I bought specifically for that beloved old keyboard, except the damn thing doesn’t fit. So I took the keyboard out of it, but maybe the cable is still there!

Ummm…but where did I put the keyboard case? Well, the closet, maybe, on the top shelf…? Yes, there it is! And, the top is still open! And look, there’s something inside it!

Eureka! My swim goggles!

Still looking…