« May 2006 | Main | March 2006 »

Fri, Apr 28, 2006

Lucky Plant in Bloom

When I got my "Lucky Plant" - a dry trunk - some years ago, I was told that this was some kind of Yucca shrub. I gave it some water (well, actually, lots of water), put it in one of my east windows and after some weeks the first leaves appeared.

I nearly forgot about this strange little plant, until I gave it some fertilizer a few weeks ago... All of a sudden there were flower buds! Now it's in full bloom (every evening some of the little white flowers open and are wilted by next morning already). And what a sweet, pleasant scent all over the room!

The fragrance finally led me to its true name (the vendor got the class and order right, but the genus wrong). It's a Dracaena shrub - "dracaena fragrans" to be exact.

Posted by Thomas Much at 24:22
Categories: Flowers & Plants

Sat, Apr 22, 2006

iCab 3.0.2 Beta 408 Drops a Shadow (or Two)

The Mac OS X version of iCab beta 408 supports the CSS property "text-shadow", making it the second browser after Safari with this feature, and probably the first browser to get it right completely:


Safari 2.0.3 does not support multiple shadows and misalignes the shadow by one pixel. You can check if and how your browser supports text shadows here.

"text-shadow" was defined in CSS2, has been removed in CSS 2.1, but might become part of CSS3 again.

And again, Alexander included lots of bug fixes in this new beta version:

  • In SELECT elements the onclick handler (JavaScript) will now be called after the mousedown handler instead of before the mousedown handler.
  • In ther "Classic" version of iCab the download of whole web sites onto an external disk didn't work. iCab saved the files in the iCab folder instead. This is fixed now.
  • When directly opening an image in the browser window iCab sometimes scaled down larger images to fit into the window even when iCab was configured not to do this.
  • In case a web site redefined the BODY tag as "inline-block" the scrollbars were not always shown when needed.
  • Changing the "z-Index" value via CSS while "hovering" over certain elements did not change the "stack context". Because of this elements which should be drawn on top of some other elements could be still covered by them.
  • iCab did ignore the "width" of the CSS property "outline" when defined for inline elements.
  • Fixed a small glitch for positioned elements where the "top" property is not defined (or "auto").
  • On elements that had been created by ":before" or ":after" (CSS), CSS rules might have been applied twice if these elements were affected by ":hover" effects.
  • Now, the internal RSS-Reader of iCab also supports ATOM feeds.
  • The backup file of the hotlist was also "updated" when the old hotlist file was missing or damaged, and so the backup was also empty (a "copy" of the missing hotlist file). This is now fixed.
  • The user defined Stylesheet could not be switched on/off when there was no open Browser window.
  • Fixed a small problem when parsing the HTML code that is created by JavaScript code via "document.write". Normally the code should be parsed immediately so that the JavaScript code is able to see the newly created code in the same script call. Because of a small bug, it could happen that the newly created code was parsed after the script call was finished.
Posted by Thomas Much at 20:06
Categories: iCab & InScript

Wed, Apr 12, 2006

iCab 3.0.2 Beta 406

The second iCab beta version within two days fixes some bugs on Classic Mac OS and some others in general:

  • Under the "classic" MacOS iCab could freeze when loading RSS feeds
  • Under "classic" MacOS iCab could crash when the non-Unicode text edit fields were configured for HTML forms and when a web page inserts more than 32KB of text in these fields. The "classic" MacOS can not handle more than 32K of text, but will accept more and then crash. Now iCab will shorten the text to 32KB if needed.
  • Invalid usage of colspan="0" in tables could crash iCab.
  • Small bugfix for "first-letter" pseudo element.
  • When dragging text within a form field you can now hold down the option key to copy the text instead of moving it.
  • In the Cache browser a random character was appended to some of the URls in the list.
  • When loading FavIcons iCab will now ignore Authentification requestes.
Posted by Thomas Much at 19:00
Categories: iCab & InScript

Mon, Apr 10, 2006

iCab 3.0.2 Beta 405

iCab beta 405 is mostly a bugfix release, so it looks like it's time for a new public preview soon :-). This version includes the new InScript release 188 which adds more JavaScript 1.6 compatibility. Here's the official release history:

  • Fixed a small bug with "floats" and negative margins.
  • A workaround implemented for web sites which use a buggy "server-push" implementation for web cams (invalid definition or usage of the "boundary" markers in the "multipart" data stream of the server).
  • Until now the "onmouseup" JavaScript event was delivered directly after the "onclick" event. Now the "onmouseup" event comes first.
  • Bugfix for the "favorites toolbar" where the "overflow button" overlaps the last item in the toolbar if a certain number of entries in the favorites were reached.
  • Small bugfix in calculating "line-height".
  • Added some workarounds for the new code of the nytimes page. The new code of the NYT page introduces tons of new bugs and errors in the HTML and CSS code.
  • Fixed a bug when "normalizing" text nodes in the HTML tree via JavaScript.
  • The special case where COLSPAN or ROWSPAN is set to "0" is now handled according to the web standards instead of following the wrong interpretation of IE or Safari.
  • Fixed a problem with the MARQUEE tag, which was shown with a too large width in certain circumstances.
  • Fixed a small glitch when an element was positioned via "position: fixed".
  • Added a special workaround for web pages where almost all required end tags are missing and therefore the "HTML tree" was transformed to a "list" (which slows down the processing very much).
  • When CAPTION elements were hidden, the COL and COLGROUP elements which were defined directly after the hidden CAPTION elements were ignored. This is fixed now.
  • If JavaScript code closed a window and immediately opened it again within the same JavaScript call, the window was not opened.
  • In "Window" menu the window titles were not shown with all the Unicode characters.
  • In the Download Manager when download limit of 2GB or more was defined, iCab didn't download anything.
Posted by Thomas Much at 23:08
Categories: iCab & InScript

InScript Release 188

The latest InScript release adds the complete set of Array and String generics as introduced by Mozilla in JavaScript 1.6. I've published a list of these generic functions last year.

The support for XMLHttpRequest - and thus the ability to create new documents - being a few months old already, I finally found some time to expose this functionality via the standard DOM function document.implementation.createDocument(), although support for doctypes is still missing. However, you can create HTML documents with createHTMLDocument(), which isn't part of the final standard (it was dropped from an earlier draft), but since some other browsers support it, too, it can be considered a de-facto standard.

One strange compatibility fix is included: The semicolon after do..while can be omitted completely now. I did not know this was allowed at all, since there is no line break after the statement and so automatic semicolon insertion (as defined by ECMAScript) will not work. Now there's a special treatment for scripts like this one:

var i = 0
do { i++ } while (i < 10) document.writeln(i)

This will print out 10 in most browsers (and now in iCab, too).

Posted by Thomas Much at 20:10
Categories: iCab & InScript

Fri, Apr 07, 2006

Opera and Acid2 - and iCab?

More and more browsers pass the Acid2 test, this is good news! Now Opera 9 has passed the test, too, well before Firefox or Internet Explorer. Congratulations!

Less good news is this assertion that Konqueror and iCab fail to pass the test because they do not hide the document's scrollbars. Hiding the scrollbars is not strictly neccessary to pass the test, and therefore the inventors of the test awarded the second and third place of the "test race" to iCab and Konqueror, respectively (with Safari as the winner and Prince and Opera following on places four and five). Unfortunately, someone took this claim for true and changed the Acid2 history in Wikipedia... So it's time for a clarification why hiding the scrollbars is not necessary to pass the Acid2 test, and here it is:

The assertion is based on the following line from the test's CSS source code:

html { ... overflow: hidden; /* hides scrollbars on viewport, see 11.1.1:3 */ ... }

The comment explicitely references section 11.1.1 from the CSS 2.1 draft, let's have a look there:

hidden
This value indicates that the content is clipped and that no scrolling user interface should be provided to view the content outside the clipping region.

The important word here is "should", because the same document defines exactly what this word means (section 3.1):

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 (see [RFC2119]). However, for readability, these words do not appear in all uppercase letters in this specification.

Let's go on to RFC 2119:

SHOULD
This word, or the adjective "RECOMMENDED", mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.

iCab's decision to display scrollbars is carefully weighed and has a simple reason - usability. There are pages out there where "webdesigners" assume a certain screen size, and if iCab would hide the scrollbars as "desired", these pages would be unusable.

You might argue that the Acid2 test is about predictability of the layout, and you're right. But whether there are scrollbars on the viewport or not does not affect the layout of the Acid2 test at all, so the scrollbars are simply irrelevant for a predictable layout. And that's most probably the reason why WaSP declared iCab (and Konqueror) Acid2 compliant even with scrollbars on the viewport (i.e. on the document). For good reason: Acid2 is a test for a predictable layout, but not against usability.

Conclusion: Opera passes Acid2, as do Konqueror and iCab.

In the meantime, there have been different test cases that detach the scrollbar from the viewport via CSS, i.e. the document's scrollbar is not necessarily displayed on the border of the window (outside of the document's content). In these cases the layout might depend on the visibility of the scrollbars, so from iCab 3.0 Beta 400 on there is a switch to detach the scrollbars and hide them if the CSS rules say so. But this option is switched off by default - again, for usability reasons. And again, this is not relevant for Acid2, since it keeps the scrollbars attached to the window border.

And now, back to business.

Posted by Thomas Much at 23:54
Categories: Browsers, iCab & InScript