Imx Fix in my experience
June 2003 Archives

June 27, 2003 9:46 AM

This is easily one of the best looking blogs I have ever seen. What a great balance of simplicity and interest, and I just love the color scheme. Readers of IMX will likely enjoy the content at mezzoblue.

June 26, 2003 9:15 AM

At work we have an internal-only web application that helps us (and by us, I mean the 120 person organization I work within, not the entire corporate entity) manage are our assets, hosts, and other operations oriented information. It's our lynch pin web app actually, and now, due to the one point oh release, it is my task to make sure it's compatible with Safari.

This is how yesterday's discussion about the getYear() method started. We are using that call in one script to deal with population of date fields (everything is tracked, and everything gets a time stamp). This effort is a classic example of why JavaScript, new browsers, and NOT following standards can cause extra work down the line.

Our server logs tell us that about 20 percent (I don't remember the exact amount, but it's much larger than "non trivial") of our users are Safari users, so this compatibility effort is essential. The saving grace is that the date functions we/I have written, are all in one place and sufficiently abstracted, and that helps me do less work. I had to add two lines of code to fix stuff. The hard part was doing the forensic work via alert() calls.

If I was smarter (and didn't use deprecated date methods), I wouldn't have had to make any edits, and Safari would have been auto-supported. Lesson learned.

Many thanks to those who posted yesterday.

June 26, 2003 2:08 AM

Safari reports the length of the cells[] array of a table row as zero, even if it has multiple cells. Look at the table below, if you mouse over it in a Gecko browser, or IE, you will see the background color of the table cells turn color. We do this by placing an onmouseover in the TR tags...

<tr onmouseover="color(this)">
And that "color" function takes over and says...
function color(obj) {

	for (var i=0; i < obj.cells.length; i++) {

		obj.cells[i].style.backgroundColor = '#FFFFCC';
So, onmouseover, the TR object gets passed and the function runs a loop using the length of the TR cells[] array as a stop point. In each iteration of the loop, it sets the backgroundColor to a light yellow and then we use an onmouseout to clean up after it, using almost the same exact function, only with a different name and different color (in this case, light grey, or #CCCCCC).

_Row_1_Cell_1_ _Row_1_Cell_2_ _Row_1_Cell_3_ _Row_1_Cell_4_ _Row_1_Cell_5_ _Row_1_Cell_6_
_Row_2_Cell_1_ _Row_2_Cell_2_ _Row_2_Cell_3_ _Row_2_Cell_4_ _Row_2_Cell_5_ _Row_2_Cell_6_
_Row_3_Cell_1_ _Row_3_Cell_2_ _Row_3_Cell_3_ _Row_3_Cell_4_ _Row_3_Cell_5_ _Row_3_Cell_6_
_Row_4_Cell_1_ _Row_4_Cell_2_ _Row_4_Cell_3_ _Row_4_Cell_4_ _Row_4_Cell_5_ _Row_4_Cell_6_

It's a part of DOM1 and supported back from Nav4 and IE4, so I'm guessing this is an oversight(?) Which isn't to surprising, because this isn't one of those make or break implementations, but it is REALLY useful for helping users track across an HTML table of financial data.

[I don't mean to pick on Safari this week, I just happen to be dealing with it a lot and am finding some issues. I'm trying to help out by writing test cases and send them to the mother ship.]

[Update: Safari 1.1 doesn't fix the cells[] array.]
[Update: Safari 1.2 (which is Panther only) fixes the cells[] array.]

June 25, 2003 11:55 AM

Ok, so this is weird, and I don't know why it was done this way (maybe Dave can explain), but Safari 1.0 returns the same value for the getYear() method that Netscape 4.x does, 103. Check this script out and then go ahead and click the button to see what it returns...

<script type="text/javascript" language="Javascript1.2">

function showYear() {
	var nowX    = new Date();
	var theYear = nowX.getYear();

Try it:

So, you should have seen a modal dialog box with "103" in it (assuming you have your system clock set correctly), which is the current year, minus 1900 . That's how Navigator did the getYear() method. Why does Safari do that? There must be some (good? bad?) reason, and whatever it is, we still have to deal with it, and this is one way to go about it. First, we can do some browser detection for Safari like we do for Navigator 4.x...
var isMinNS4 = (navigator.appName.indexOf("Netscape") >= 0
                && parseFloat(navigator.appVersion) >= 4
                && parseFloat(navigator.appVersion) < 5) ? 1 : 0;
And we can do something similar for Safari by saying...
var isSafari = (navigator.userAgent.indexOf("Safari") >= 0) ? 1 : 0;
This basically says that the var "isSafari" is equal to "1" if the string "safari" occurs in the navigator.userAgent object. If it doesn't, then the value is 0, and later on we can use that value to say...
if (isMinNS4 || isSafari) { theYear += 1900; }
Which says that if it's Nav 4 or Safari then make "theYear" equal to itself plus 1900. And even us forensic JavaScripters should be able to figure out that 1900 + 103 = 2003. So, to get Safari to tell you what year it is, we can use this function...
<script type="text/javascript" language="Javascript1.2">

function showYear() {

	var isMinNS4 = (navigator.appName.indexOf("Netscape") >= 0
	                && parseFloat(navigator.appVersion) >= 4
	                && parseFloat(navigator.appVersion) < 5) ? 1 : 0;
	var isSafari = (navigator.userAgent.indexOf("Safari") >= 0) ? 1 : 0;

	var nowX    = new Date();
	var theYear = nowX.getYear();

	if (isMinNS4 || isSafari) { theYear += 1900; }


Try it:

June 25, 2003 9:19 AM

I will be waiting for Panther like small furry animal, and will no doubt give Apple another $129 the night the OS comes out (only dorks buy software midnight). Mostly because I want to use Exposé. Application switching has always been a problem in Windowed GUI's, and maybe Apple has a solution.

for the past couple of years, I have been using various system utilities to deal with application switching. I like command-tabbing over to other apps, but I don't like the clutter. I typically run with 6 to 10 applications open at any time, and those windows add up. ASM offered a pretty flexible solution for hiding applications on switch. So, when I go to BBEdit from Safari, the browser will get hidden, and BBEdit will be un-hidden, which keeps the screen clean. ASM let(s) you choose applications that will be hidden in various ways...

  • Hide this app when switching away from it.
  • Never hide this app when switching away from it.
  • Don't hide the other app when switching to this app.
  • Always hide the other app when switching to this one.
  • etc.
This allows us to keep a few apps visible at all times, while forcing other apps to hide as you move from one to the next. I assign the Finder to never be hidden, and to never make the previous app hide. the same goes with my instant messenger and other system monitor tools. I push all of these over to the second monitor.

Now, some of you Windows users may be thinking "that sounds sort of like SDI." And you are right, in a twisted way, I am emulating a Windows GUI paradigm; Single Document Interface. This is used in the current AOL clients for windows, and used to be used in Photoshop, but I don't know if that's the case anymore. Anyway, the idea is that ne master window contains all of the other windows for the given app, so when I click on the task bar for another SDI app, it fills the screen.

The vital difference between my SDI and MSFT's si that there is no containing window. the windows float over the Desktop and Finder windows. This makes drag and drop possible from the Finder to the currently selected app, and makes entering IMG tags in BBEdit SO MUCH EASIER.

Now, go have a look at Exposé and see how it might be useful way of dealing with window clutter and application switching. And think about how many shareware application switchers (here, here and here) may be rendered useless, or at least, less attractive.

June 25, 2003 8:43 AM

I was, of course, disappointed by Steve's keynote at Apple's world wide Developers conference. Why? Because I read the rumors sites often and had built up insane expectations based on scraps of half truths that were floating out there. Here's my grandest delusion...

A while back there were rumors that 1.4, 1.6 and 1.8 ghz G5 processors were sent by IBM thru a purchase order from Apple to a Taiwanese manufacturer called Foxconn. They actually make Apple's stuff. Now, flash forward a week or two and consider Apple's leaked G5 tower details. they mentioned 1.6, 1.8 and 2.0 ghz processors. Where did the 1.4's go?

Another rumor was floating around that Apple's retail outlets had been receiving pallettes of the new product, and there were two box sizes. One big, one less big, which meant to me, tower and Powerbooks. G5s are not better than G4s at wattage dissipation (42 watts in the 1.8 ghz G5 vs. 30 watts in the 1 ghz G4), so only the 1.4s can be in those supposed "Powerbook boxes." But that was bunk.

There was no Powerbook announcement, but I still assume one is coming soon. The current crop of Powerbooks are getting old (8 months old in some cases, and Apple's typical Powerbook refresh cycle is 6 months). So, perhaps G5 Powerbooks will eventually show up, and if they do, they will be just as hot as the G4 tiBooks, and I'll buy one anyway.

June 20, 2003 11:54 AM

The rampant speculation that Apple is about to release new hardware based on the IBM PowerPC 970 (aka the G5) processor has been confirmed, sort of. Yesterday, one of the graphic images that Apple uses in the product pages got mixed up, and the file that shows the specs for the G5 was put out on

Stevie Boy Blue has been a pretty notorious secret keeper, and lawsuits have been the result of leaked secrets before. This time though, pretty much everyone knew the G5's were coming. IBM said they were, and rumors leaked Apple's manufacturer that large quantities of processors were in hand and machines were being made. Others have seen the pallette coming into various apple store with notes not to open them until the announcements happens.

It's pretty hysterical that the actual details were leaked by Apple. Who ever made the mistake is going to get ripped a new asshole. My thanks got out to him/her though, because it makes the buying decision easier to make (ie, don't buy a G4 and wait a week and buy a G5). Here's what was leaked...

  • 1.6GHz, 1.8GHz, or Dual 2GHz PowerPC G5 Processors
  • Up to 1 GHz processor bus
  • Up to 8GB of DDR SDRAM
  • Fast Serial ATA hard drives
  • AGP 8x Pro3 PCI or PCI-X expansion slots
  • One FW800, two FW400 ports
  • Bluetooth & Airport Extreme ready
  • Optical and analog audio in and out
The max amount of RAM seems pretty huge to me, but the real story is that the 1.6's and 1.8's are single processor units. My guess is that the dual proc 2.0 ghz's are going to be in the $3k range, and the low end will be around $1800, but that's just a guess. At any rate, I think it's a mistake to buy a single processor unit these days. Because...
The PowerPC 970, on the other hand, is designed from the ground up with multi processing in mind--IBM intends to see the 970 used in 4-way or higher desktop SMP systems.
I'm dreaming of ultra fast DV to MPEG conversions, and iMovie transitions previews and rendering. /drool

June 19, 2003 9:57 AM

I finally read this piece about what MSFT is doing about their employees doing the blog thing. One comment in particular is pretty chilling...
Noted Microsoft employee Scoble in his blog recently : "I think executives who weblog (particularly at Microsoft) are between a rock and a hard place. If they say anything interesting, they'll immediately get picked up in the press and their comments will probably be taken out of context.

"If they give away strategy or product plans, they will help out competitors. If they talk about competitors, they'll be welcoming lawsuits. If they give people insights into what the business is doing, they could be hit with shareholder lawsuits, or other governmental actions," Scoble acknowledges.
I tend to comment on my employer from time to time and have quoted email that are sent to employees (and the Washington Post always gets the email somehow, so do I even matteR?). The point above makes me think twice (especially when I have a baby to feed).

June 17, 2003 10:00 AM

C|Net asks, is the "Bell tolling for PNG graphics format?"

I don't think so, because it's already dead due to weak and incomplete support in Internet Explorer. I've speculated before that the support for PNG's 8 bit alpha mask was intentionally left in a broken state by MSFT to placate or otherwise help out Unisys who owns the LWZ patent that the GIF file format is based on.

To recap, Unisys owns the LWZ patent. MSFT and Unisys have a deal where they try to sell people on the idea that linux/u*nix is bad for their business. They are probably aiming this at Sun and IBM, but the fact that they are in bed together fuels my conspiracy theory that PNG has been stifled on purpose.

The LWZ patent expires on Friday, making it cheaper for applications makers to support LWZ (in Photoshop for example). But this doesn't really mean much, because GIF still has 1 bit alpha masking, and requires us to deal with anti-aliasing manually. PNG is still compelling technology, even if C|Net thinks otherwise, but it will always be stillborn if MSIE doesn't fully support it (and I know there's a hack to get it working right, but hacks are a "significant barrier to entry").

June 16, 2003 11:56 AM

I had my first Father's Day over the weekend, and my wife was kind enough to get me a couple of gists and a card. I got her nothing for Mother's Day, mostly due to the fact that she was in the Hospital recovering from the C-Section. So basically, she got a baby and a full day's worth of my time for her first Mother's Day.

So, she got me this pencil holder thing with a picture in it of my and the baby. Also, there was a Gameboy Advance SP in the gift bag as well. I had been railing on for months about the Gameboy SP and had planned on buying one as soon as my ultra slow savings plan had accrued $100 (ie, I throw loose change into a box at home).

Now, I get to finish Advance Wars in full backlit glory, and will probably finish Yoshi's Island as well. That will be a satisfying event to be sure, but the most satisfying part of the weekend was the card that accompanied the gifts. My wife had written in the card that I was already proving to be a good father. I can't describe how satisfying that is.

June 11, 2003 9:54 AM

A very good point about cell phone number portability was made at winterspeak recently...

The FCC has ruled that cell phone users can take their numbers with them when they change service. Is this a victory for consumers? It is in the sense that the phone company owned the number before and they do now, so the transfer of wealth is now going to go from the phone company to the consumer, not the other way around. But I also anticipate more expensive and draconian upfront service agreements--if phone companies can't lock customers in as much (and they were never much good at this) they're going to try and get more of their money upfront.
Could it be argued though that the competition for new subscribers that goes on today will simply be applied to those who currently have cell service? After all, I am pretty much not the target of any cell phone adverts right now. If Verizon, Sprint PCS, T-mobile, AT&T and Cingular suddenly all want my business, wouldn't they attempt to appeal to me somehow?

Of course they would. But, if the current state of the industry is to offer long term contracts for lower monthly bills to NEW subscribers (even when the subscriber gets locked into the service by leveraging the number lock) then why would they not do that with those with service plans? What would stop them from doing that when people can come and go while keeping that one killer feature?

I suppose you'd have to tempt the subscriber with money, in the form of savings or perhaps in the form of contract buyouts, just like credit cards or car sales. "If you come over to us, and agree to a 2 year contract, we'll pay x amount of dollars towards your contract cancellation fee."

I'd have to guess that there would be at least a drop in monthly fees.

June 10, 2003 9:29 AM

It seems to me that Apple always has "pent up demand" when it comes to new hardware (except for the Performa Christmas disaster). This update cycle will be a classic pent up demand bonanza if the rumors are true...

Apple Computer Inc. is nearing the release of desktop systems featuring IBM's 64-bit PowerPC 970 chip, sources report?but a 64-bit version of Mac OS X may lag behind by a month or two.
Looprumors had this to say back in May...
We received word that two large shipments of Power PC 970 processors went to Foxconn in Taiwan, under a purchase order from Apple computer. Twenty thousand 1.4Ghz PPC 970's and forty thousand 1.6Ghz PPC 970's have already arrived in their hands. IBM's inventory contains fifty thousand 1.8 Ghz PPC 970's, of which forty thousand are destined for Foxconn tomorrow (Wednesday).
So, it certainly seems as though there are rumors covering the supply chain, which has always been Apple's problem, along with slow ass Motorola G4 processors. I kind of think it's cute how Moto is attempting to make a better G4 and sell that to Apple. My guess is that Apple actually uses it in future iBooks (if it's a low enough wattage). But really, who cares. All that matters is that the G5's do come out, are available in volume, and that Panther is a true 64 bit operating system. Assuming all of that falls into place, I expect G5's to be a hot commodity.

June 5, 2003 9:14 AM

Ok, maybe not a dollar short, but for crying out loud, the update for Myth II: Soulblighter just came out yesterday. The game was originally released, what, three years ago? And I just love these bug fixes...
Version 1.4 adds over 100 enhancements, bug fixes and new features to Myth II: Soulblighter, in the areas of: graphics; interface improvements; elimination of plugin lag; elimination of chat lag; elimination of the 'walking bug', new mapmaking features; AI improvements and bug fixes; optional vTFL (virtual TFL) gameplay, which effectively brings both games and communities to the same program; and much, much more.
The "chat lag" and "plugin lag" issues are primarily the reasons why I stopped playing Myth II (usability and user experience issues!). I was a beta tester for the game, and those bugs existed back then, <sarcasm&rt;but the game shipped before Christmas!</sarcasm&rt;. Seriously, it did actually ship before Christmas that year due to heavy pressure to get the game out and make some money. This came after years of pressure release systems that made Bungie great. They always said "soon" or "when it's done" when they we asked about release dates. But this time, they totally screwed the pooch.

But, at least they actually fixed these issues and perhaps made the game playable (and it's one the greatest game types ever conceived). I was a total Myth addict (I used to be a Myth news reporter back in the day) beginning with the original Myth release (I got it two days before release, and played it for 2 years straight). I might actually pick it back up a little and check it out, even if it's three years late.

« May 2003 | Main Index | Archives | July 2003 »