« November 2005 | Main

Mon, Oct 24, 2005

iCab 3.0 Beta 364 aka "iCab RSS"

iCab's latest beta version features a small built-in RSS reader. It's not meant to be a replacement for fully grown RSS readers (yet ;-), but it's helpful to display RSS feeds quickly in iCab without the need to start an external program. The reader simply is a single HTML document with embedded CSS and JavaScript code that retrieves the feed's data via XMLHttpRequest and does some DOM/XML processing with it. Both the reader source code (yes, you can write your own, improved reader!) and iCab Beta 364 are available to registered users.

And, as always, Alexander's list of bug fixes and new features:

  • There's now a small "RSS Feed" reader build in. When opening RSS Feeds in iCab (either directly by clicking on a RSS link or by selecting an item from the RSS popup of the status bar while holding down the Shift, Option or Command key), iCab will load the RSS Feed and then will translate it into HTML code and display the result. So RSS Feeds can be now displayed in iCab as well.
    Selecting a RSS Feed from the RSS Popup without pressing any keys will open the RSS Feed as usualy in the default RSS Reader that is configured in the system. When you hold down the Shift, Option or Command key iCab will display the Feed itself and will use the usual shortcuts to decide if the feed will be displayed in the foreground or background and in a window or a tab.
  • New option "Ignoriere CSS value when required unit is missing" in the "compatibility" preferences. Some web pages are using invalid CSS rules like "width:100;" where the unit (for example "px" or "em" is missing) and expect that the Browser expects "px" in this case. The web standards expect that these invalid rules must be ignored. Some web pages do use the invalid definition and expect that the browser ignores these rules. So it's now possible to configure iCab in which way this is interpreted.
  • Fixe some bugs when processing StyleSheets.
  • When printing web pages with lots of IFRAME elements iCab could crash.
  • The "Same Origin" policy was to strict, so a page that was generated by a "javascript:" URL was not able to modify sub pages of it's own "parent" document.
  • Workaround for a bug of the MacOS: When activating Unicode text edit field at a certain time, the MacOS never draws its content. Though entering text works fine, nothing is visible.
  • The workaround for SSL connections from Beta 356 had still some problems with HTTP redirections.
  • Small modification to make iCab more compatible to Firefox when displaying non-repeated background images in inline elements which is explicitely not defined in the CSS specification.
  • When javaScript code modified the padding of elements via JavaScript, the document was not layouted again.
Posted by Thomas Much at 23:15
Categories: iCab & InScript

Sun, Oct 16, 2005

Public Evolution

With Web 2.0 on its way, several groups and organizations try to define what the next generation web should look like, among them WHAT and The Web Standards Project . And the browser developers talk about their success in implementing these new features (and their catch up on older standards):

  • Surfin' Safari
    Apple's browser for Mac OS X.
  • IEBlog
    Microsoft's browser that desperately needs standards compliance.
  • MozillaZine Weblogs
    Several Mozilla-related products and modules, including the Firefox web browser.
Posted by Thomas Much at 23:05
Categories: Browsers

iCab 3.0 Beta 359

The day before yesterday brought another iCab beta to registered users. According to the readme, the following bugs are fixed in beta version 359:

  • When searching for the Content-Type information for uploading files via HTML forms, only parts of the available mapping informations was used.
  • Certain timers were not updated fast enough (affected GIF animations and JavaScript).
  • If JavaScript code of an "IFrame" modified its parent document while this was processed and rendered, it could happen that certain parts of the page were not positioned correctly.
Posted by Thomas Much at 17:56
Categories: iCab & InScript

Thu, Oct 13, 2005

iCab 3.0 Beta 358

Registered iCab users can check for an update via the Help menu and should get the download page for beta version 358. It includes InScript release 183. Here's what Alexander writes about bug fixes and new features:

  • If multiple elements with the overflow property set to a different value than "visible" were nested, the clipping of the inner element could be wrong.
  • Local files with longer Japanese names could not be opened because the buffer to encode the file names was too small.
  • Numeric HTML entities out of the 32Bit "supplementary" section of the Unicode range did not work correctly.
  • If a web page includes the same external StyleSheet multiple times, iCab will now load it only once.
  • iCab could crash if JavaScript code replaces its own web page with new HTML code and afterwards tried to access the old code.
  • Workaround for broken web servers which are using invalid date formats for "Cookies".
  • When cloning HTML elements via JavaScript iCab did not copy all of the CSS properties as well, which were modified via JavaScript.
  • Changing the "readonly" state of INPUT fields via JavaScript did not work because the MacOS doesn't allow to change this state. So now iCab will delete the old field and creates a new one with the new state, it needed.
  • When changing the MEDIA attribute of StyleSheets via JavaScript, iCab did not process the document again according to the new StyleSheet settings.
  • When uploading files through HTML forms, iCab did not provide the correct "Content-Type" information for all file types.
  • Some bugfixes to fix layout issues of some web pages.

With these fixes, the Simple Standards-Based Slide Show System (S5) now works correctly :-) (you'll find an example here). And the day numbers in this blog's calendar are aligned properly.

Posted by Thomas Much at 19:38
Edited on: Thu, Oct 13, 2005 19:43
Categories: iCab & InScript

InScript Release 183

InScript release 183 has support for window.getComputedStyle(element). It's not complete yet (the optional second parameter is ignored), but it should work in most cases. The function simply returns element.currentStyle (thanks to Mark 'Tarquin' Wilton-Jones for the idea). With getPropertyValue , setProperty (ignores the optional second parameter) and removeProperty added to CSSStyleDeclaration, the CSS3 multi-column demo now works in iCab. Pretty cool :-)

Mozilla's String.prototype.quote is now supported, too. It simply puts the string in double quotes and escapes all double quotes and backslashes within.

And there are, of course, bug fixes ... of sorts. new Function("",body) (with an empty string where a formal parameter list should be) is now allowed, although it's definitely incorrect according to ECMA-262-3. InScript follows Opera's approach and ignores all empty parameters before the body parameter (Firefox ignores only the first parameter if it's empty).

Posted by Thomas Much at 19:28
Edited on: Thu, Oct 13, 2005 19:44
Categories: iCab & InScript

Mon, Oct 10, 2005

Further Reading

Here's a list of some other blogs I read from time to time:

To be continued.
Posted by Thomas Much at 12:56
Edited on: Fri, Oct 14, 2005 14:42
Categories: In Private

Sun, Oct 09, 2005

for..in vs. for each

JavaScript features for..in loops (enumerations) for a long time now. You can use it to easily enumerate all property names of an object. E4X (ECMAScript for XML, ECMA-357) specifies "for each" loops that enumerate the property values instead. So, where's the difference?

Consider the object

var obj = { lastName: "Much", firstName: "Thomas" };

The for..in loop

for (var i in obj) document.writeln(i + "<br>");

would yield


whereas the for each loop

for each (var i in obj) document.writeln(i + "<br>");

would display


To achieve the latter with a for..in loop, you'd have to write

for (var i in obj) document.writeln(obj[i] + "<br>");

Posted by Thomas Much at 22:09
Categories: JavaScript

JavaScript 1.6 - Array and String generics

The new JavaScript version in Firefox 1.5 introduces "generic" String and Array functions that can be applied on any object by simply calling the function on the String or Array constructor and passing the desired object as the first parameter. Since I could not find a list of all generic functions, I digged through the source code. Here's the result:

  • Array:
    concat, every, filter, forEach, indexOf, join, lastIndexOf, map, pop, push, reverse, shift, slice, some, sort, splice, unshift
  • String:
    charAt, charCodeAt, concat, indexOf, lastIndexOf, localeCompare, match, quote, replace, search, slice, split, substr, substring, toLocaleLowerCase, toLocaleUpperCase, toLowerCase, toUpperCase
Posted by Thomas Much at 21:27
Categories: Browsers, JavaScript

JavaScript 1.6 - Array extras

Firefox 1.5 comes with a new JavaScript version 1.6 that brings us some new Array functions.

As of release 182, InScript supports these new functions, too (check <inscript:settings()> to see if your iCab is built with a suitable InScript version). This release also has support for E4X's (ECMAScript for XML, ECMA-357) "for each" loops.

Posted by Thomas Much at 20:29
Edited on: Sun, Oct 09, 2005 20:30
Categories: Browsers, iCab & InScript, JavaScript

Secrets about InScript

iCab's JavaScript engine "InScript" has some secrets... And here are two of them:

  • To display InScript's settings and version numbers, load the URL <inscript:settings()>
  • To see what's going on in InScript's memory management, load the URL <inscript:> or <inscript:inspector()>
Posted by Thomas Much at 20:17
Edited on: Sun, Oct 09, 2005 20:17
Categories: iCab & InScript

Mittelpunkt der Welt

Last week "Element of Crime" released their new album " Mittelpunkt der Welt" (centre of the world - which is, according to the lyrics, where your feet stand). Yes, it's a German band with German lyrics, but if you ever wanted to listen to some unconventional tune, put an ear on this one :-). Ten songs for the moods of autumn.

BTW: In their early years (1985-89) they used to sing in English, but believe me, their German is better ;-)

Posted by Thomas Much at 20:13
Edited on: Mon, Oct 10, 2005 10:42
Categories: In Private, Music & Film

Java für Mac OS X

Book Cover Just in case you did not notice yet - nearly one year ago I published a German book on Java for Mac OS X: Java für Mac OS X . It was released when Mac OS X 10.3 and Java 1.4 where the most up to date versions, but actually (or unfortunately?) there hasn't changed much with Mac OS X 10.4 and Java 5.0.

Posted by Thomas Much at 18:34
Edited on: Fri, Jun 01, 2007 13:38
Categories: Java


After so many years on the web (IIRC my first home page started over 10 years ago) I finally decided it's time to publish my own weblog :-). Don't expect daily updates, but whenever I feel there's something interesting to say about browsers, JavaScript or my favourite programming language Java, I'll post a few lines.

Posted by Thomas Much at 18:34
Categories: In Private