Ice, ice, baby

The bluegrass region got slammed with a terrible ice storm on Sunday and we’re still recovering. Tree branches are broken all over the place and power lines are snapped or sagging. A radio announcement today said that nearby Woodford county still had 90% of its homes without power. Fayette county (Lexington) still has somewhere around thirty thousand homes without power, which is an improvement from the sixty thousand, but still far too many. We know too many friends and neighbors who are still without it. Thankfully, we only lost power for a couple hours on Sunday.

Update for HomeSite 5

Macromedia has released a free update for HomeSite 5.0. After the update, you’ll have HomeSite 5.2. Read the Release Notes for more information about the bug fixes and behavior changes in 5.2. It says that Netscape 6.2 and/or Mozilla 1.0 can now be fully used as the internal browser in Homesite and that missing file:// path problems when using Mozilla as an external browser have been resolved.

Safari debugging

I got a chance to play with Safari and tested out a few different sites. I started to feel like I was flying blind. Where’s the JavaScript console? Where’s any notification of JavaScript errors for that matter? If Safari is going to claim to be “like Gecko” it needs to work like it. In one case the contents of a DHTML page that works fine in Mozilla just didn’t appear and I had no information about what was failing. Frustrating.

I was also bothered by it not recognizing the view-source: prefix to show the source of any URL until I found the Activity window. The Activity window shows all the URLs loaded with a particular page and you can double-click them to view them individually. Nice. Still, the View Source bookmarklet has worked in basically every browser for years so it would be nice to support.

I found a site describing a Safari Enhancer that “enables several hidden features of the Safari webbrowser beta.” The screenshots show a Debug menu with a View DOM tree item, the ability to change the browser identity of Safari, a minimum font size option, and ways to import bookmarks in various formats. Sounds helpful. Too bad I don’t have a mac to play with all the time.

Snapping Back to Google

I’ve been playing around with trying to implement a JavaScript version of SnapBack like in Safari. I thought I’d try it first as a bookmarklet since the JavaScript History object already provides some of what’s needed.

With JavaScript you can easily jump back to the previous Google page in history. Here’s a bookmarklet to do just that: BackToGoogle. This is limited, but may be a nice shortcut. The feature in Safari has the advantage that the SnapBack button only appears when it would be useful. Safari also resets the location of the SnapBack if you use a bookmark or type a URL. In the case of this bookmarklet, it always goes back to the previous Google entry in the history.

I believe I may have found a bug in Mozilla in writing this. According to the documentation, history.go(location) should load the nearest history entry whose URL contains location as a substring (the most recently visited). Mozilla appears to be loading the first history entry that has that substring (the first one visited). Or so it seemed.

I’ve done some more experimenting with this including working with the UniversalBrowserRead privilege so I can use the history array, but that has not helped. What I’d like to be able to do is traverse the history looking at the referrers. If an item has no referrer then it would likely be a nice location to jump back to. (Or potentially the page right after it if it has a query string; it would be more likely to be a search results page.) Unfortunately, I see no way to get the referrers from JavaScript other than for the current page. I wonder if the browser’s history mechanism actually keeps track of the referrer or if it just contains the list of URLs loaded in the window.

Down and out

Unfortunately, towards the end of thanksgiving day, our baby started vomiting. We suffered a long sleepless night in the hotel with two sick children. By the time we made it home the next day, my wife and all of the kids were sick. I seemed to have avoided the vomiting bug (wash hands often!), but ended up with head and chest congestion and basically felt terrible. I’m still not back to normal. Yuck.

Thanksgiving

We spent a lovely Thanksgiving day in Ohio and enjoyed time with extended family that we infrequently get to see. Getting to meet all the new (and not so new) babies was great fun.

One of the things that I was surprisingly thankful for this year was google. Everybody’s favorite search engine continues to amaze. Let me explain: For as long as I can remember and I’m told long before I was even around, our family has sung a German hymn as a prayer at the major celebrations and gatherings of the family. This is a tribute to my mom’’s grandparents who brought the hymn with them when they came to the United States from Switzerland. I’m told that there was a memorable moment in my mom’s life when the normal family prayers switched from being said in Swiss German to English. In any case, this hymn has been a part of our lives and gatherings for a long time.

Unfortunately, as the grandparents and great aunts and uncles have fallen asleep in the Lord, fewer and fewer of us know the tune and words sufficiently well to do other than sing the chorus and sort of hum along. Google to the rescue. A quick search and we have the text and music to Gott ist die Liebe. Now we can at least hum along with the music. Even better, Google gave us a quick translation of God is (the) love, which gave those of us who’d studied German in high school and college an acceptable starting point for making one that better fit the music.

Some of the family seemed to remember seeing a translation of this hymn as God loves me dearly. So we sang the first verse in German and then in English as “God loves me dearly, he sets me free; God loves me dearly, he loves even me. Let me say it again: God loves me dearly, God loves me dearly, he loves even me.” What a gift to praise God in two languages and to honor our heritage.

Looking for it again today, it appears that this is hymn 175 in the Evangelical Lutheran Hymnal, but there doesn’t appear to be a complete copy of the text of the hymn online. I did find a partial version:

God loves me dearly, grants me salvation;
God loves me dearly, loves even me.

Refrain:
Therefore I’ll say again: God loves me dearly,
God loves me dearly, loves even me.

I was in bondage, sin, death, and darkness;
God’s love was working to make me free.

He sent forth Jesus, that true Redeemer;
He sent forth Jesus and set me free.

Jesus, my Savior, Himself did offer;
Jesus, my Savior, paid all I owed.

Now I will praise You, O Love Eternal,
Now I will praise You all my life long!

Blue is Better

book coverEven if I didn’t work for big blue, I’d want to read Lou Gerstner’s new book, Who Says Elephants Can’t Dance? Inside IBM’s Historic Turnaround. I’m sure it will be fascinating to read Gerserner’s thoughts as he directed and resurrected IBM. A New York Times article emphasizes how swiftly and decisively Gerstner impacted IBM:

Within the first 100 days, he made the important decisions to keep the company together, reduce costs sharply and change the way I.B.M. did business, overhauling sales, marketing, procurement and internal systems.

He writes that the choice to keep the company together, reversing the course set by his predecessor and endorsed by the board, was “the most important decision I ever made – not just at I.B.M., but in my entire career.” He based it on strategic analysis and instinct – and listening to customers….

By the mid-1990’s, I.B.M.’s technical leadership had noticed the Internet, and took the view that the coming “networked world” would lead the way to the post-PC era, undermining Microsoft’s grip on the industry. “Desktop leadership might have been nice to have,” Mr. Gerstner writes, “but it was no longer strategically vital.”

Always skip the flash intro

I’m of the opinion that almost 100% of the Flash I encounter on web sites is a waste of time. It’s bad enough that a good portion of it is merely gratuitous, but it is frequently abused by advertisers to create blinking ads that you can’t easily stop. I therefore have the flash plugin completely disabled. Imagine how the IMAX web site reinforced my opinion of flash when it opened as an empty page. Because Kovu had mentioned that Star Wars II was coming to IMAX theaters, I bothered to re-enable the plugin to be greeted by a dull flash intro and then the site launched in a popup window. Great! Why do people do this? Did they assume that the flash intro was so cool that I’d want to keep playing with it while I browsed their site? It’s truly a shame; the site works nicely if you skip directly to the real IMAX site. I just don’t get it.

Perhaps someday Mozilla or Phoenix will have the ability to block flash on a per site basis (Bug 94035).