December 2008 Archives

Democrats are Hypocrats

|

kennedy palin.gif

(Hat tip to blonde sagacity, though I’m trying to find the original source of the cartoon.)

From Long or Short Capital:

Corporate Speak: “I am qualified to be Senator of New York.” -Caroline Kennedy

Translation: My qualifications for this position include a fancy last name, not holding a full-time job, not holding any political office, and writing books for children. I am definitely not qualified to be Senator of New York.

And from blonde sagacity:

Funny how the Caroline Kennedy story keeps following the Rod Blagojevich story and I haven’t heard one reporter comment that they’re basically THE SAME story.

Blagojevich was trying to sell Barack’s Senate seat for money and favors on the down low and David Paterson gets to do it under the spotlights.

Caroline has worked to keep herself from public life and her only experience is endorsing Obama. So, much like [the] Illinois governor, it seems the governor of New York will make the determination based on money and favors…

How true. Both of ya’.

Is Your Winter This Bad?

|

This is Norilsk, Russia. Your winter’s not this bad, is it?

Didn’t think so.

Article here.

I’m confused.

When Obama chooses a course of action that is in line with his followers’ beliefs, it’s called “embracing diversity.”

But when Obama chooses a course of action that is contrary to his followers’ beliefs, it’s called “a genuine blow.”

Isn’t that what defines diversity? A willingness to accept or, at least, not discriminate against someone or something—a viewpoint, perhaps?

Thought so.

I think Obama’s supporters are going to have to get used to the fact that they did not elect a leader. No, the GBLT community elected a self-serving follower, someone who will shift and bend with the winds of popular opinion. They should expect change—it was Obama’s entire platform, for goodness’ sake!—even if it’s not in line with their minority views.

And given that Proposition 8 passed in the most liberal state in the Union, it’s entirely likely that the GBLT community will get nothing but lip service throughout Obama’s presidency.

[via blonde sagacity]

I got a ticket today for “Improper passing.” I won’t bore you with the details other than to say that, yes, I did pass but, no, it wasn’t improper. It wasn’t legal, either. But I’ll discuss that with the judge.

Anyway, when I got pulled over, I couldn’t come up with a current copy of my insurance card. Considering that anybody with PhotoShop or even Microsoft Word can generate a supposed “proof of insurance,” why police ask for it in the first place is still a bit mystifying, except that if you don’t have it, it’s $93 here in Connecticut.

Anyway, my insurance company* provides me with much of their stuff electronically, including E-mailed insurance cards. Problem is, I rarely open the E-mails from them because most of them are statements for my premiums which are paid automatically. So it would be highly unlikely for me to have noticed that my proof of insurance card was in the attachment and print copies and put them into the appropriate vehicles. (To be fair, I think the E-mails actually do tell what’s in the attachment, but I don’t ever read them. My fault. Sorry.)

So after handing the officer my expired insurance card, she handed it back and requested a current copy. I suppose people end up with many years’ worth of these things stacked in their glovebox, but I didn’t because I have only had the car for a little over a year. I knew it wouldn’t be there.

As she wrote the ticket (really, why not a warning?) back in her car, I got clever: I logged onto my insurance company’s very mobile-friendly website and requested a copy of my insurance card be sent to my E-mail. I then checked my E-mail.

Nothing.

Then I remembered that I had an iMac on at home and that there was a chance that it got put into the Junk folder, so I looked there and there it was! Now… could I read it?

Yes! Yes, I could successfully display the PDF! And, Yes! I could zoom in and show her the current dates on the card with VIN and everything else! And the iPhone display… it’s oh so clear and easy to read that, well, it was like looking at a real insurance card. Nice.

But… would she take that as proof of insurance?

Drumroll, please!

She came back to the window and asked if I’d found a current card. I said, “I can show it to you online,” and pointed to my iPhone. I then zoomed (Do you know how hard it is to pinch zoom when your hands are shaking? I don’t have any encounters with law enforcement… ever… so at each of the traffic stops I’ve been involved in—two in 23 years of driving—I’m understandably a bit nervous.) and she said… wait for it…

“Wow. OK, thanks.”

I told her I’d probably remember to print one out later this evening, I wished her “Merry Christmas,” she returned the greeting, and we parted company…

…whereupon I pulled further into the parking lot and proceeded to endure the ribbing of my cow-orkers who were arriving at our office Christmas party as I was getting ticketed.

I’m pretty sure the officer saw that I was headed into my office Christmas party. Perhaps she felt sorry for me.

Nah.

Anyway, I’m certain that she’s never seen anybody provide proof of insurance using an iPhone, and I doubt that anybody else has ever done that during a traffic stop, either. Is this a first? Maybe, maybe not. Google doesn’t reveal anything, but you never know.

Bottom line: Thanks, Apple and thanks to my insurance company! You all rawk!

(Now, if Apple had an app that said, “Don’t do that! That’s illegal!” before I do something stupid again, they’d put Microsoft right out of business.)


*I’m not telling who my insurance company is—my identity was stolen recently and I’m leery of putting that kind of detail out there. And I’m sorry I can’t say, because they really are a superb company.

NBC30.com used to work. Now, it doesn’t. Here’s my feedback, submitted via their website. I hope to be able to update it with a canned response showing their care and concern.

Gentleones,

To put it mildly, your website has become a steaming pile of horse dung. In your attempt to consolidate your NBC holdings under one corporate branding, you’ve lost the ability to serve your communities.

This morning, both my wife and I checked the nbcconnecticut website at 7:45am to discover that all schools are open and no delays were reported. I drove off to work. And after my wife dropped my son off at school, she called me and had me double-check, which I did… with another station’s website. Yes, there are 188 closings according to their website. Yours is now reporting 144, much too late to do any good whatsoever.

Not only are you slow to update, hence useless, but you have also successfully dumbed your website down to the point that anybody with a full-featured, yet mobile, browser, such as the iPhone, cannot access any of the school closings from their mobile browsers, instead redirecting all queries for “www…” to “wap…”. The content is limited and, again, some of the most useful features are excluded from that content. Worse, there is no way to force the site to provide the full version. A simple link to “the full site” would be a bonus to anybody who ends up using your site in spite of its limitations.

Get back to basics. You’ve lost your way.

In the meantime, I will not be using your website in any way, shape or form, and am reaffirmed in my decision to drop all forms of broadcast entertainment in my home. (I have neither satellite, cable or even over-the-air antenna.) DVD and iTunes are it, and I’m glad.

Regretting the need to write this note,

Bill Eccles, Tolland, CT

The MacOS X 10.5.6 update appears to be PHP neutral.

Through not-so-rigorous testing (i.e., comparing the results of “php -i” before and after the upgrade), I have determined that the latest Security Update appears to change nothing in my PHP installation. Your mileage may vary.

Four Word Movie Review: Wanted

|

Wonderfully violent action movie.

Wanted (Single-Disc Widescreen Edition)

Seeing as how I got rid of my TV service from the outside world—I don’t have Dish, Comcast, or DirecTV—I’ll be watching a lot more movies. This is the first review of the movies I end up watching as a result. Who knows if I’ll keep doing it? I sure don’t. Enjoy ‘em if you want to.

Article here.

Reaffirms my dislike of network-broadcast sporting events and football specifically.

Article here.

John Gruber jumps on the “No IE” bandwagon, or has jumped on that bandwagon already, anyway. And it got me to thinking about the super-secret web-based application for LAN deployment that T. and I are developing. We’ve decided to develop for one… and only one… browser: Safari.

Why Safari? Simply, it’s not everything else.

It’s not Internet Exploder. Forget IE. We’re not going to check to see if anything renders in IE. If you use IE, in fact, you will essentially void your warranty for the inevitable support call, and I’ll have the server logs to show that you used it. It is so non-standards-compliant that it’s the exception in most browser pages. Check the source code for your favorite page and you’ll likely find something that reads “workaround for IE” in it somewhere. We don’t have time for that kind of crap. And security… argh! You want to use IE? Buy another product. (I probably don’t want you as a customer anyway if you insist that IE is your preferred browser.)

It’s not Firefox. Firefox, a quick, cross-platform browser, has two very annoying traits. First, it is extensible, meaning you can throw lots of plugins into it. Problem is, I have no frickin’ idea what plugins you might have (and they won’t show up in the server logs) and how they may or may not affect how the web application works. The app we’re working on is a mission-critical app, the kind of app you don’t want to fail because somebody throws a new cursor plugin into the browser. (“Tell the users not to do that!” you say. “Screw that. They will anyway,” I say, “because they do.”) Since debugging that kind of thing remotely is damned near impossible, I’m not going there. And two, it doesn’t provide a great user experience. I use FireFox about once per week and it is rare that I get to fire it up (heh) without being prompted to upgrade one piece of it or another. (Same goes for Linux in general—it nags me to upgrade some component of it waaay too often. Score one for Apple and… gasp! Microsoft. Monolithic, closed-source OSs do have that going for them.)

The others? Nah, not worth considering. Too esoteric, not widespread enough, no guarantee of longevity, and not all of ‘em are free.

So that leaves Safari. It’s cross-platform, it renders 99% consistently across platforms, it’s fast, it’s free, it’s pretty secure, and it’s very well-supported. It doesn’t get updates so often that I will spend my time countering the updates. It allows for enough user customization of the interface to be convenient, but not so much as to annoy web developers. And it’s pretty. Mostly.

And that’s why I’m ignoring the gorilla, too.

Will Obama Have a Body?

|

That I know of, Doonesbury hasn’t ever represented a US President with a body. Instead, they’ve all been symbols or non-characters (the White House exterior with balloon captions). For example, POTUS George W. Bush is a now-war-torn helmet. (He’s been other things.) Dan Quayle (yeah, I know, he was a Veep) was a feather, presumably a quail feather. George H.W. Bush was a spark. More can be found here.

But now, with this past Sunday’s strip, it appears that Trudeau worshipslikes Obama enough that he may give him a body. Well, legs, at least.

It’ll be interesting to see how that plays out.

Article here.

52.9% to 45.7%, hardly a “decisive victory,” only cost President-Elect Hussein’s campaign twice as much as it cost Senator McCain’s campaign.

Imagine what would have happened if conservatives weren’t so damned conservative

libiconv Madness

| | Comments (4)

The other night, we got an AppleTV—a wonderful Christmas present from my parents and the replacement for all TV services in our house! No more Dish! No more Comcast!—and the first thing I did, of course, was install boxee. Though it works (it’s still pretty choppy when trying to stream Hulu, which is one of the things I want it to do most), I decided that if I had to stream from a shared drive somewhere, it’d be just fine.

Now, I run MacOS X Server in the basement, as some of you may know, and I decided that since it’s a server, it probably would be a good thing to share files with, ya know? Unfortunately, boxee only knows how to “speak” SMB and not Apple’s native AFP. (If I just lost you, you’re going to be really in over your head in a minute. But hang in there and maybe you’ll pick up something you can use to impress your spouse!) So I turned on SMB on the server. One click, right?

Um, no. I kept getting this error in /var/log/system.log:

[2008/12/03 22:56:29, 0] /SourceCache/samba/samba-187.4/samba/source/nmbd/nmbd.c:main(695)
  Netbios nameserver version 3.0.25b-apple started.
  Copyright Andrew Tridgell and the Samba Team 1992-2007
dyld: lazy symbol binding failed: Symbol not found: _iconv_open

Referenced from: /usr/sbin/nmbd Expected in: /usr/local/lib/libiconv.2.dylib

dyld: Symbol not found: _iconv_open
  Referenced from: /usr/sbin/nmbd
   Expected in: /usr/local/lib/libiconv.2.dylib

Argh. It kept failing with this every ten seconds, which is normal activity for a process that fails to start up. Unfortunately, whatever caused this error wasn’t going to go away on its own, so it was up to me.

I turned to my favorite troubleshooting tool, Google, and came up with jack-frickin’-diddly-squat. Nothing. Nada. Well, except for someone who was having similar problems, but for httpd, and the answer that that person got was only slightly short of useless.

So I did what any self-respecting geek would do: I dropped into the shell, dug out libiconv-1.12 (which yields libiconv-2.4.0… where does the madness end?!) and recompiled with the standard “configure/make/make install”. That changed nothing. Rats. Other services seemed to be unaffected, so I left things alone.

Well. This afternoon, while pounding a wire staple into the board that holds, among other things, the GFCI outlet that feeds the server, I tripped the GFCI, thereby restarting the server. Later on, for grins and giggles, I decided to look at the system log on that machine and saw…

Dec  4 13:29:11 shr-g5 org.apache.httpd[147]: dyld: Library not loaded: /usr/lib/libiconv.2.dylib
Dec  4 13:29:11 shr-g5 org.apache.httpd[147]:   Referenced from: /usr/sbin/httpd
Dec  4 13:29:11 shr-g5 org.apache.httpd[147]:   Reason: no suitable image found.  Did find:
Dec  4 13:29:11 shr-g5 org.apache.httpd[147]:   /usr/local/lib/libiconv.2.dylib: mach-o, but wrong architecture
Dec  4 13:29:12 shr-g5 com.apple.launchd[1] (org.apache.httpd[147]): Exited abnormally: Trace/BPT trap
Dec  4 13:29:12 shr-g5 com.apple.launchd[1] (org.apache.httpd): Throttling respawn: Will start in 10 seconds

Argh! The dreaded problem that the other guy had! I, however, had a secret weapon, no matter how flawed it may be, so without monologging/further delay, I engaged my secret weapon! Pew! Pew!

(It’s Apple’s Time Machine. Guess it’s not much of a secret.)

I just restored the libiconv that I had a few nights back, restarted the web service, and was relieved that it started normally.

So what was the difference between last week’s libiconv and this week’s libiconv? I’ll give you a hint:

shr-g5:apache2 admin$ file /usr/local/lib/libiconv.2.4.0.dylib 
/usr/local/lib/libiconv.2.4.0.dylib: Mach-O universal binary with 4 architectures
/usr/local/lib/libiconv.2.4.0.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc
/usr/local/lib/libiconv.2.4.0.dylib (for architecture ppc64):   Mach-O 64-bit dynamically linked shared library ppc64
/usr/local/lib/libiconv.2.4.0.dylib (for architecture i386):    Mach-O dynamically linked shared library i386
/usr/local/lib/libiconv.2.4.0.dylib (for architecture x86_64):  Mach-O 64-bit dynamically linked shared library x86_64

And I’ll give you another hint:

shr-g5:apache2 admin$ file /usr/sbin/httpd
/usr/sbin/httpd: Mach-O universal binary with 4 architectures
/usr/sbin/httpd (for architecture ppc7400): Mach-O executable ppc
/usr/sbin/httpd (for architecture ppc64):   Mach-O 64-bit executable ppc64
/usr/sbin/httpd (for architecture i386):    Mach-O executable i386
/usr/sbin/httpd (for architecture x86_64):  Mach-O 64-bit executable x86_64

Note that when I was building the libiconv in a fury to get nmbd running that I did nothing more than “./configure” to kick things off. That’s when I remembered that the guy on the Apple discussions board who had a problem had noted that his libiconv only had one architecture in it… ding! If I remember correctly, they all have to match in numbers and types of architectures, even if you’re only going to use one of them.

Or at least, that’s what I think is going on.

So I dove back into my notes and did the following to build libiconv-1.12:

MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --prefix=$PREFIX --enable-static

After doing a “make clean” (because things were dirty) and “make,” I checked to see what the sizes of last week’s libiconv and this week’s libiconv were.

And they matched.

So… deep breath… I did “sudo make install” and shut down the web server…

…and then restarted it…

…and it started without griping! I had solved the libiconv madness (at least as far as httpd is concerned).

I’m still nowhere with the nmbd problem and in spite of plenty of views on support.apple.com and afp548.com, nobody’s been able to provide a clue.

In the meantime, I’ll just stream from one of my MacOS X machines which has SMB running—without a libiconv at all, strangely.

Updated 3-10-2009

OK, I have found the solution to the problem.

It turns out that the libiconv that I had in /usr/local/lib is not the libiconv that Apple supplies with MacOS X Server 10.5.x. That one resides in /usr/lib, and mine was completely missing. I don’t know where it went, nor how it disappeared.

The solution was to tarball the libiconv from a virgin OSXS 10.5.6 machine and plunk it down into /usr/lib, then delete (the usual, careful way—renaming all the files “.old” and then seeing how things work, then deleting them) the old ones.

I did get some help from Bruno Haible (one of the authors of libiconv) who pointed out that Apple had their own special version… but finding it on the Apple website was maddening. I had to use Google to find it. Anyway, if you want to build libiconv the way that Apple does, you’ll need to use the stuff on this page.

This builds a file whose structure is very different from the default configure/make/install that Bruno’s package provides. You can look at the output of nm on the resulting file to see that.

Anyway, problem solved. Hope this helps someone else.