Wednesday, December 10, 2008

Who cares about murdering babies?

In a way I'm surprised to see that if a baby is killed after being born in the Netherlands, my home country, people appear shocked and the police sets up a big investigation to find out who did it so this person can be prosecuted. The same applies to a lot of other Western countries.

Why am I surprised? Because if the baby was killed just a few weeks before, while still inside the mother, it's not called murder. Then the baby is called a "fetus" and the murder is called "abortion" and it's claimed a "civil right." How can we be so blind?!

Look at the image. This is a photo of a so-called "aborted fetus", 22-weeks after conception. Is this not a baby? If it was born at 21 weeks, doctors managed to keep it alive, and then at 22 weeks the mother decided: "oh wait, no, I've got a holiday coming up and I feel really bad and I don't have the money, to raise this child," is it OK to still get rid of it?

Here are some of the facts:
  • the heart of a baby works as of 4 weeks since the conception
  • at 10 weeks, the baby is small, but complete, all it needs to do is grow
  • medical science is advancing, and babies born 21 weeks after conception may soon be able to survive already (if that's not already possible)
  • in the Netherlands abortions are allowed until 24 weeks after conception
  • abortions in Israel are allowed until the 9th month (!)
  • in 2005, there were about 33.000 registered induced abortions in the Netherlands only
  • reasons for abortions include: interference with holiday planning, financial challenges, unknown father, etc.
I'm wondering: Do we really care about any murder at all, or have we become too wealthy and egocentric to care about anything other than our own "freedom", comfort and wealth?

If you are thinking about having an abortion, think twice, ask for information from both sides. There is help available from prolife-organisations, even after having had an abortion.

Friday, December 5, 2008

Opera 10 alpha looks promising

Opera have released the first alpha of the new version 10 of their flagship product, Opera (for the desktop). Major changes include:
  • Presto 2.2 engine
  • 30% improved performance (at least this is what Opera claim)
  • support for web fonts
  • increased CSS 3 compliance (including RGBA and HSLA)
  • developer tool Dragonfly has been improved
  • Acid 3 compliance
  • support for the W3C Selectors API
  • improved HTML5 support
Other things, less important to web developers, include inline spell checking and automatic updates.

For more information, check out the detailed change logs for Windows, Linux/UNIX and Mac OS X. Note that big parts of those documents overlap eachother.

Tuesday, November 18, 2008

A more useful 404 (Not Found) page

There's an interesting article over at the A List Apart site:
Definitely worth a read for web developers. It discusses some techniques to guess why somebody got to a 404 page and then takes action and displays info to the visitor based on that knowledge.

Tuesday, November 4, 2008

Firefox usage up to 20%

NetApps has provided some statistics regarding browser usage. According to their report:
Firefox usage is still climbing and now almost at 20%, while Internet Explorer usage is still decreasing and now down to just above 71%.

Of course, your mileage may vary, depending on the kind of site, your geographical location, etc.

But it is becoming more and more obvious that web developers programming Internet sites to Internet Explorer only are irresponsible and are causing issues for their employers and for the visitors of the sites.

An approach that works very well:
  • program to web standards, avoid JavaScript and Flash initially;
  • add JavaScript support to make things look better or work nicer (without disrupting the functionality for user agents without JavaScript);
  • add some Flash if you must, but have replacement content in case Flash is unavailable;
Benefits:
  • standards compliance;
  • accessibility for visually impaired is likely to be easy to achieve;
  • the same applies to Search Engine Optimization.

Thursday, October 16, 2008

Ellipsis in all modern browsers (updated x4)

When you want to avoid that text in a web page wraps, you can use:
   overflow:hidden
However, it's nice to show to users that some content is actually missing. This is typically done with an ellipsis character, that is displayed as three dots:
   ...
Getting this working across all modern browsers has always been a pain in the neck, but there is an easy solution a hack that works around the issue, to a certain extent.

First, make sure you have a small ellipsis-xbl.xml file on your web server that is served with the content type text/xml, with the following contents:
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://www.mozilla.org/xbl" xmlns:xbl="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<binding id="ellipsis">
<content>
<xul:window>
<xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>
</xul:window>
</content>
</binding>
</bindings>
Then mark all HTML elements you would like to show the ellipsis character on overflow with the class Ellipsis, e.g.:
   <div id="BreadCrumbs" class="ShyText Ellipsis">
Then add the following to your CSS:
   .Ellipsis {
text-overflow:ellipsis;
-o-text-overflow:ellipsis;
-ms-text-overflow:ellipsis;
-moz-binding:url(/ellipsis-xbl.xml#ellipsis)
}
Elaboration:
text-overflow
for WebKit-based browsers (Safari, Chrome, etc.) and for Internet Explorer 7 and before;
-o-text-overflow
for Opera;
-ms-text-overflow
for Internet Explorer 8;
-moz-binding
for Gecko-based browsers (Firefox, Camino, etc.)
Note that the text-overflow will be standardized as of the CSS 3 standard, which is currently still in draft.

Credit for the Gecko solution go to Rikkert Koppes and William Khoe, see the article text-overflow: ellipsis for firefox.

Update (Oct. 22, 2008): The solution for Gecko-based browsers (Firefox, etc.) is far from perfect. The solution has at least the following issues:
  1. applying the .Ellipsis class to an inline element causes the element to disappear;
  2. in Firefox 3.0 (not in Firefox 2.0), soft hyphens inside .Ellipsis elements always show as dashes;
  3. text inside a .Ellipsis element can no longer be selected.
Update (August 11, 2009): Mozilla (in the person of Simon Montagu) is working on a solution, which may or may not go into Firefox 3.6/Gecko 1.9.2. Vote for bug 312156 if you think it's important.

Update (August 13, 2009): Don't expect the solution to go into Firefox 3.6/Gecko 1.9.2 (scheduled for release fall 2009), the bug has been tagged as "-wanted1.9.2" (starting with a minus-sign) meaning it's not planned for the upcoming release. It may still go into Firefox 3.7, which is tentatively scheduled for release in 2010, see the Mozilla Project Meeting Minutes of July 20, 2009.

Update (August 24, 2009): Devon Govett provides a nice jQuery-based solution that at least allows you to resolve the issue when JavaScript is enabled. It works like a charm, at least on Firefox 3.5.2.

Friday, October 10, 2008

Mac OS X, fonts and headless Java

If on Mac OS X your custom font is not available in headless Java, try installing it in /System/Library/Fonts/ instead of /Library/Fonts/.

Don't ask me why, but this solved the issue I'd been struggling with for days. Below is the background.

Font installed
I purchased a font called "standard 07_55" from the miniml.com site and installed it via the font catalog program, which copied the .otf (OpenType) file to /Library/Fonts/:
  $ ls -lae /Library/Fonts/standard*otf
-rw-r--r--@ 1 ernst admin 11996 Oct 8 15:39 /Library/Fonts/standard 07_55.otf
It was accessible from the user account on the Mac, which is confirmed by running a text editor program.

Java program to list all available fonts
The following Java program lists all available fonts:
  public class ListFonts {
public static void main(String[] args) {
String[] fonts = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
for(int i=0; i<fonts.length; i++) System.out.println(fonts[i]);
}
}
Running the program from the graphical environment
When I ran this program is from Aqua, it worked well and displayed all fonts, including the installed "standard 07_55" font:
  $ java -version
java version "1.5.0_13"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05-237)
Java HotSpot(TM) Client VM (build 1.5.0_13-119, mixed mode, sharing)
$ javac ListFonts.java
$ java -cp . ListFonts | grep tand
KufiStandardGK
standard 07_55
Even when I added -Djava.awt.headless=true it still worked fine:
  $ java -Djava.awt.headless=true -cp . ListFonts | grep tand
KufiStandardGK
standard 07_55
Running the program via a remote connection
However, when that same program was run via a remote connection (SSH), then the program would not start up like this:
  $ java -cp . ListFonts | grep tand
Exception in thread "main" java.lang.InternalError: Can't connect to window server - not enough permissions.
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1822)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1723)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:993)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
at java.security.AccessController.doPrivileged(Native Method)
at apple.awt.CGraphicsEnvironment.(CGraphicsEnvironment.java:23)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
at ListFonts.main(ListFonts.java:3)
This is understandable, since this is a remote connection, it cannot access the window server. So I started the Java program in headless AWT mode, and then it did run. However, now it does not show the font anymore:
  $ java -Djava.awt.headless=true -cp . ListFonts | grep tand
KufiStandardGK
Solving the issue
The fix? Simple: as root, move the font file to /System:
  # sudo mv /Library/Fonts/standard*otf /System/Library/Fonts/
I hope this helps someone else with a similar issue.

Tuesday, October 7, 2008

Use HTML 4 instead of XHTML

Here are some simple reasons for using HTML 4.01 with a strict doctype instead of using XHTML:

Wednesday, September 10, 2008

Another look at Pixelmator

After posting a quick review of Pixelmator version 1.2.3, I got some comments that basically said two things:
  1. crop to selection is available in the context menu;
  2. paste as a new image is easy to accomplish.
These issues are indeed resolved, see below. So I continued my quest and tried to find the following features in Pixelmator:
  • autocrop
  • show the image size
  • view the name of the assigned color profile
  • remove the assigned color profile
  • show the size of the current selection while selecting
  • edit the selection
  • quantization, convert to indexed color
Crop to selection
Indeed crop to selection is available in the context menu, which is activated by Ctrl-LeftClick or RightClick (if your mouse has a second button).

Paste as new image
Doing a bit of searching I found (on the Pixelmator forum) that pasting as a new image is indeed easy, just follow these steps:
  1. copy whatever you want to paste in Pixelmator to the clipboard;
  2. activate File -> New Image in Pixelmator (Cmd-N); the new image will automatically take the dimensions of the image in the clipboard;
  3. activate Edit -> Paste (Cmd-V) in Pixelmator.
That's it. Indeed very simple, although not intuitive IMHO.

Autocrop
Autocrop is not available directly in Pixelmator, it seems. However, this is fairly easily worked around:
  1. select the Magic Wand tool (keyboard shortcut: W);
  2. click on the outer region of the image;
  3. invert the selection (Shift-Cmd-I);
  4. show the context menu (Ctrl-LeftClick or RightClick);
  5. select Crop;
  6. press Enter to confirm.
However, since I use this feature a lot, I still prefer to have a single menu option so I can assign a keyboard shortcut to it.

Show the image size
The size of the current image can be viewed using the command File -> File Info... or by pressing the keyboard shortcut Alt-Shift-Cmd-I. Easy enough.

Personally I would prefer to have the option to show the image size in the title bar. This option is unavailable in the Preferences. But this is a minor nuisance.

View the name of the assigned color profile
The assigned color profile can also be viewed using the File Info... command (Alt-Shift-Cmd-I). Excellent.

Remove the assigned color profile
There is no direct menu option for removing the color profile. However, it's easy to do:
  1. select all of the image (Cmd-A);
  2. copy it (Cmd-C);
  3. create a new image (Cmd-N) – it will automatically get the right dimensions;
  4. paste (Cmd-V).
That's it.

Show the size of the current selection while selecting
With the Rectangular Marquee Tool (shortcut: M) you can select a rectangular region. While selecting, I'd like to be able to see the size of the selection, because often the selection needs to fit a certain predefined size or maximum size.

In Pixelmator it seems impossible, however, to view the width and height of the selection while selecting it.

Edit the selection
When a (rectangular) region is selected, the selection cannot easily be adjusted. There is a Refine Selection tool available for changing the selection, but this tool does not allow manually editing the selection, for example to add a few pixels on the right.

GIMP 2.4.7 has a simple but powerful feature that allows the selection to be edited with the mouse on 6 axes (top, top-right, right, etc.) This would be a welcome improvement for Pixelmator as well.

Although this (fairly basic) functionality is missing, the power of the Refine Selection tool should not go unnoticed. It allows advanced selection editing, for example to change a rectangular selection area to a rounded rectangular area. Very nice indeed.

Quantization, convert to indexed color
Finally another feature I'm using all the time in GIMP is changing an RGB image to indexed color, to optimize it for display on the Web. This uses a technique known as image quantization, which uses one of a few algorithms to create an optimum palette for the resulting image.

This feature seems to be missing in Pixelmator.

Conclusion
Pixelmator is a powerful image manipulation program that looks very very good. It has various very powerful functions, such as filters, layers, advanced selections, etc. Also it support a large number of bitmap formats for export.

However, for me, Pixelmator is currently not able to replace GIMP for day-to-day image manipulation. It seems to be missing some features that I need to have at my fingertips all the time.

If some of the features I think are missing are hidden somewhere under the surface, please drop me a note in the comments.

Monday, September 8, 2008

Quick review of Pixelmator

While still looking for a real Mac OS X image manipulation program to replace GIMP, I did a quick review of Pixelmator.

After starting Pixelmator, it's obvious the developers have put a lot of time and effort into making this application look and feel like a charm. Although the black transparent look is not conform the standard Aqua look and feel on Mac OS X 10.5 "Leopard", this does not reduce the usability of the application.

Pixelmator has more features than Acorn or Seashore combined together, but not as many as Photoshop or GIMP. But although there are a lot of features, for me just a few are important, since I need them on a day-to-day basis.

My findings based on a quick review:
  • There seems to be no way to remove a color profile, although color profiles can be assigned. This can be worked around by copying all and pasting from clipboard.
  • There is no Paste as New Image option.
  • An Autocrop feature seems to be unavailable.
  • A Crop to Selection features seem to be missing; and since a Paste as New Image option is also missing, this cannot be easily worked around. There is a Crop tool, but this is in my workflow not productive, since in the absence of an autocrop feature I typically (a) use the magic wand to select an outer part of an image, (b) invert the selection (c) crop to the selection.

Quick review of Seashore

Seashore is a promising application, aiming to deliver a Mac OS X-version of the popular GIMP image manipulation program. I did a quick review of 0.1.9 and found the following:
  • This build is dated April 2007, which seems to indicate development has stalled - which is too bad...
  • The Open with... option in the Finder did not work for me when I selected Seashore.
  • Full quantization support has not been ported yet, so there is no option to reduce the number of colors.
  • There is a Select menu, but some of the selection actions are under the Edit menu (Select All, Alpha, Inverse, None). This seems counter-intuitive.
  • Zoom in and zoom out are under the keyboard shortcuts Cmd-Up and Cmd-Down respectively. Typically these are under Cmd-Plus and Cmd-Minus.
  • There is no autocrop feature.
  • Overall, the application looks very nice. It feels like a decent Mac OS X-citizen.
My conclusion is that it's a very promising application, that may be able to beat Photoshop Elements and Acorn one day. But not today.

Features missing in Acorn

I really like the looks of Acorn, a powerful little image manipulation program for Mac OS X. However, there are some hurdles for me adopting it to replace GIMP:
  • It's not easy to remove all tranparency from an image. It requires creating a new background layer, filling it with white color and then flattening the image. In GIMP, it's one command.
  • There is no support for viewing or removing color profiles. It seems a color profile can be removed by selecting all of the image, copying the selection to the clipboard and then creating a new image from the clipboard.
  • There is no support for quantization, to reduce the number of colors to produce an indexed color image.
Still, Acorn looks very promising. It looks and feels like an excellent Mac OS X-citizen. It seems strong in filters and automation, but that's not what I am looking for...

Favourite Mac apps (updated x5)

Here's the list of my favourite Mac OS X applications:
  • Parallels Desktop — For running Windows and Linux in virtual machines. With Windows XP inside it, for testing web pages in Internet Explorer (6, 7 and 8 all have their own dedicated VM). (€80)
  • Adobe Acrobat 8 Professional — Version 9 probably runs better on my Intel Mac with Snow Leopard. I didn't need all the extra stuff in the Professional edition, but there was no Standard edition for Mac. (version 9 is $450)
  • Cheap Impostor — For creating A3 and A4 booklets. Cheap, effective and fast. ($35)
  • NovaMind Express — For mind mapping, use it for interaction designs for web sites. ($50)
  • Firefox with the Firebug, Web Developer, Weave, CyberSearch, AdBlock Plus and SessionAlive extensions — Nothing beats the fox. (all free)
  • Acorn — Fairly simple image manipulation.
  • Skitch — Easy and simple image editing and sharing for everyone. (free)
  • GIMP — Advanced image manipulation, includingremoval of color profiles. Requires X11. (free)
  • NeoOffice — Complete office suite, based on OpenOffice.org code. No need to purchase Microsoft Office anymore, it even supports the new .docx and .xlsx file types. (free, donations welcome)
  • Skype — For video conferencing, also with non-Mac people; iChat video quality is much higher though. (free)
  • iWork — Nothing beats Keynote presentations! ($79)
  • Flip4Mac — Be able to watch Windows Media videos (WMV). (free version available)
  • iShowU — Screen video capture. ($20)
  • iTerm — Best terminal program for the Mac - beats Apple's built-in Terminal application in terms of productivity and usability (free, donations welcome.)
  • iPartition — For dynamically changing hard drive partitions, includes resizing functionality. ($50)
And I'm considering adding the following to my toolset:
  • Pixelmator — For real Mac-style image manipulation. Question is whether it can do what I do with GIMP, including the removal of color profiles and such ($59).
  • Opacity — For creating very nice-looking icons, fast ($90).
Updates:
  • Sept. 11, 2008: Considering Pixelmator instead of Acorn, the latter just does not have enough features. And added iPartition as a favourite app.
  • Sept. 17, 2008: Added Chicken of the VNC and Chax and listed the price of iPartition.
  • March 9, 2010: Updated information on Parallels. Using a different set of Firefox extensions. Removed SuperDocker.
  • March 13, 2010: Added the SessionAlive extension for Firefox and Skitch.
  • March 31, 2010: Removed OmniPlan, Leap, Chax. Changed the link to GIMP on OS X. Added Acorn and added Web Developer extension for Firefox. Updated some descriptions.

Monday, August 25, 2008

Leopard annoyances

I finally made the switch from Mac OS X 10.4 "Tiger" to 10.5 "Leopard". Here are some things I ran into while upgrading:

iChat:
  • iChat still has separate windows for Jabber-, AIM- and Bonjour contact lists. Chax can fix this, though;
  • one of my 'buddies' has both a GMail account (via Jabber) and a MobileMe account (via AIM) - these get mixed up in the contacts lists;
Migration:
  • When migrating the programs from my Tiger backup, I also migrated some issues, so I decides to reinstall all programs.
Spaces:
  • Spaces does not support labels for spaces; numbers are quite meaningless.
  • NetBeans 6.1 does not work well with Spaces. If you press Cmd-Tab to switch to NetBeans, the correct Space is not activated. Very annoying. It has been noticed by others as well.
  • I assigned F6 to Spaces, to show the overview. It's not possible to start dragging an application and then press F6 to drop it in a different space.
  • Software Update does not seem to work with Spaces, when I Cmd-Tab to it after it completed (and starts jumping in the Dock), nothing happens.
Mail:
  • When I tell Mail to permanently accept an SSL certificate it considers unsafe, then it still keeps asking for it when I restart Mail.
  • When replying to a mail I sent to somebody else, my address is in the To: field and the original recipient is in the CC: field. I would hope this was fixed since Tiger.
Finder:
  • I tried to customize the icon for a folder by dropping a JPEG on top of the icon in the "Info" window. Instead of showing the image, it shows a generic JPEG icon. D'oh! The Iconic tool provides a partial resolution. It 'carves' an image into a Leopard folder image and makes that the icon for a specific folder, if you want. I'd prefer to have just the original image as the folder icon, but I'm not sure how to do that.
  • It is not possible to add a mount point to the Locations-section in the Finder sidebar.
Spotlight:
  • When searching with Spotlight, the results window has no option to show more columns, like the number of attachments or the size of the image. And it's not possible to hide the Relevance column (which I never use). Leap is a powerful alternative, though.
AddressBook:
  • Sometimes when I start editing a card, all details disappear. This is resolved by pressing Cmd-Z.
Dock:
  • If I put the Dock on the right side of my screen then it turns into a 2D-style Dock; so far so good. But then when I move the mouse pointer over the stripes (between the applications and the stacks) that allow me to change the size of the Dock (without clicking), then the mouse pointer keeps its resize-appearance.
Other:
  • X11 does not work for me. XQuartz 2.3.0 seems to work like a charm though.
  • Software Update still says there's new software available for my computer (in bold) even after it finished installing all available updates. Confusing, especially for less tech-savvy people.

Thursday, July 10, 2008

XINS 2.2 alpha 2 released

Today (July 10th, 2008) XINS 2.2 alpha 2 has been released, featuring several improvements:
  • a new _xml type for sending XML values (e.g. in input or output parameters);
  • there is now an option that makes the client framework follow HTTP redirect responses;
  • compatibility of the SOAP calling convention (in the server framework) with .NET has been improved
  • some log messages have been improved;
  • bug fixes and small RFEs.
Although this is an alpha release, the quality is high. In this case alpha moslty means that new features can be added, removed or refined.

Thursday, June 19, 2008

PensioenPage supports Firefox 3.0

As one of the first companies, we at PensioenPage are proud to announce we have confirmed compatibility with Firefox 3.0, mere hours after it's release. Since we adhere to a standards-based approach, compatiblity is mostly out-of-the-box.

Wednesday, June 18, 2008

Firefox 3.0 released - and other browser news

Today (June 18), Mozilla Firefox 3.0 has officially been released. YSlow (a web page performance analysis extension for Firefox, by Yahoo) has been updated to 0.9.5 beta 2, just in time to support Firefox 3.

Some other browser news:
  • Opera 9.5 has been released;
  • the Firefox 3.1 features have been defined, see the MozillaWiki and the article on MozillaLink; a first alpha release is target for mid July;
  • Microsoft announced that the 2nd beta of IE 8 is scheduled for August 2008;
  • Apple has provided an early build of Safari 4 on the Apple Developer Connection, apparently with their new JavaScript engine SquirrelFish integrated;
  • the GrApple theme (that makes Firefox look like a native Mac app) has been updated for Firefox 3.

Wednesday, June 4, 2008

Mac OS X 10.6 'Snow Leopard' (updated)

Several sites (including MacRumors and Arstechnica) are spreading the rumor that Mac OS X 10.6 will be announced at Apple's WWDC, this coming week. The new release will supposedly be called "Snow Leopard" and the release focus will be on stability and performance.

If this is true, then that is in my opinion a Good Thing. After using FreeBSD and Linux on my primary desktop for years, I switched to Mac OS X 10.4 (Tiger) in Q4 2006. Although I've not had major problems, OS X has been pestering me now and then:
  • crashing background processes (sometimes several times an hour)
  • spontaneous reboots (1 or 2 per year)
  • failures to come back to life after being suspended (closed lid on MacBook Pro)
Rock solid stability is definitely very much welcomed, as well as improved security, especially for professional/business users like myself.

For me, a desktop computer should allow it's users to work efficient. For this, you need sufficient speed, proper functionality, an effective keyboard/mouse/touch interface, stability and security.

In my experience, the OS X 10.4 operating system works nicely, but has it's stability issues. It's probably more stable than Windows, but definitely less than Linux and FreeBSD.

Update (June 10): Indeed this has been announced by Apple as anticipated, see the Apple site for more information.

Firebug 1.2 beta 2 for Firefox 3.0


On the Firebug blog, an announcement is posted about the release of Firebug 1.2 beta 2. It's compatible with Firefox 3.0 RC, but not with Firefox 2.0.

For the uninitiated, Firebug is a Firefox extension that provides a host of web development tools, such as various inspectors, a JavaScript debugger, etc.

Tuesday, June 3, 2008

WebKit (Safari) gets a new JavaScript engine: SquirrelFish


On "Surfin' Safari", the WebKit blog (WebKit being the engine for Apple's Safari browser) an new JavaScript engine has been announced. It's called SquirrelFish.

While the current JavaScript engine (in Safari 3.1) is an interpreter, the new one is based on bytecode execution, increasing the possibilities for performance improvements. Already the WebKit developers are claiming a 50% improvement over the production release of Safari, version 3.1.

Although the fish logo is funny, I find it hard to associate it with speed in any way...

Monday, June 2, 2008

Finding files on Mac OS X: Leap

Today I came across Leap, a search utility for Mac OS X. It seems to be much better than Spotlight. Have a look at the introduction videos. Leap works on Mac OS X 10.4.10 and up and is available as a Universal Binary.

A fully functional 21-day trial can be downloaded from their site.

NeoOffice 2.2.3 patch 5 available

NeoOffice 2.2.3 patch 5 has been released. Nothing exciting, just some bug fixes:
  1. Opening Office 2003 XML files produced a General I/O error
  2. Poor selection of Polish and Cyrillic replacement fonts
  3. Landscape documents could be cropped when printing
Download from the patch download page. For more information, see the NeoOffice 2.2.3 release notes.

NeoOffice is an OpenOffice.org-cousin that nicely integrates with Mac OS X, unlike the regular OpenOffice.org 2 for Mac OS X, which requires X11 to function.

Monday, May 26, 2008

Video intro to Mac OS X Cocoa

There's a lengthy video introduction to Cocoa available from Theocacao. Although I haven't watched it (yet), it appears to be received very positively. An unofficial BitTorrent is also available. You need QuickTime for this.

Wednesday, May 21, 2008

Crash your Mac with a stick

If you want to crash your Mac, or perhaps any kind of computer, put a little piece of aluminum foil paper inside the USB connection of an external device and then plug the device in, while your computer is running.

In my case, it worked: the Mac spontaneously rebooted. After 2 reboots I realized that my Mac experienced a real physical problem and found the culprit inside the connector of my USB stick. It was the result of keeping the USB stick in my pocket, along with some random other stuff, aparently including some aluminum foil paper.

So: be warned :-)

Changing Leopard's look and feel

Ryan Faas has written another excellent article, this time about changing the look and feel of Mac OS X 10.5 (Leopard):

Tuesday, May 20, 2008

del.icio.us extension for Firefox 3.0

Just recently, Firefox 3.0 RC was released.

I use a fair amount of Firefox extensions, including Firebug, YSlow for Firebug and the del.icio.us extension. The latter was not available for Firefox 3.0, until recently:

Tuesday, May 13, 2008

NeoOffice integration with Mac OS X improves


Even though a beta of OpenOffice.org 3, with a native Aqua version, has been made available, NeoOffice is still standing strong as a stable OpenOffice.org cousin that provides slick Mac OS X integration. Standing isn't the right word, though, because it's constantly improving.

Since 2.2.3 Patch 3, NeoOffice now improves on the Mac OS X integration by adding these features:
Previously, NeoOffice 2.2.3 Patch 2 added horizontal scrollwheel support.

Information on Unicode characters

The site fileformat.info claims to provide extensive information on various file formats. I haven't checked that claim myself, but I have found their information on Unicode characters is extremely useful. For example, see this page on the Unicode symbol 'EURO SIGN':
It shows a picture of the symbol, as well various descriptions and links. Then it shows how the character is encoded in, for example, HTML, UTF-8 and UTF-16 and how to use it in source code (C/C#/C++/Java/Python).

A great resource for information on Unicode characters!

Smooth web image zooming with FancyZoom

FancyZoom is a JavaScript library for zooming into images on a web page. It looks really well, zooming images smoothly when you click on them. And then when they show, they get a shadow effect applied.

The library works with most modern browsers: (Mobile) Safari, Firefox, IE6/7 and Opera are reportedly supported, but no word of Konqueror (KHTML). See it in action on here:
FancyZoom is free for non-commercial use. To use it commercially, the author asks $39 per site.

FancyZoom 1.1 comes with for 2 JavaScript files (34 KB) and 15 PNG image files (100 KB), which sums up to 134 KB. With current broadband connections it should not be a problem in itself, but it may add up to the total download size for a web page, especially for first-time visitors. Note that a compression tool like YUI Compressor may tighten the file sizes a bit.

Wednesday, May 7, 2008

Opacity 1.1 released

If you're creating iconic graphics, either for desktop applications, mobile apps or the web, and you're lucky to be using Mac OS X 10.5 (Leopard), then Opacity is definitely a contender for creating those nifty looking images.

Opacity is simple, intuitive but still very powerful when it comes to creating small graphics. It supports layers, different kinds of shapes, all sorts of effects and integrates with a couple of FTP programs.

The user interface works mostly consistent with the rest of Leopard.

Have a look at the screencast on their site.

OpenOffice 3.0 beta available

The OpenOffice.org 3.0 beta is now available from download.openoffice.org. One of the most compelling changes is Mac OS X support. Localized builds are also available, but not directly linked from that page. Instead, check out one of the mirrors.

Currently, most Mac users prefer NeoOffice over OpenOffice 3. OpenOffice 2 does not work under Aqua (only under X11) and NeoOffice has a history of stable OpenOffice-functionality for the Aqua/Mac OS X platform. This may change once OpenOffice 3 becomes (more) stable.

Wednesday, April 30, 2008

Finally: Java 6 for Mac OS X

Apple has finally delivered Java 6 for Mac OS X as part of an update called Java for Mac OS X 10.5 Release 1. There was a Java 6 pre-release for Tiger, ages ago, but finally the real thing seems to have arrived. Let's hope it fixes most of the bugs in the pre-release.

It's well-known that this release comes really late. Java 6 was released (for Windows and Linux) in December 2006 and Java 5 has already entered it's Technology End of Life (EOL) transition period.

Too bad the update is only for Leopard (Mac OS X 10.5) and requires a 64-bit Intel processor (such as the Core 2 Duo).

Tuesday, April 29, 2008

Compiling zlib, libpng and pngquant on Mac OS X (updated)

Here are some instructions for compiling pngquant on Mac OS X. Included are instructions for compiling libpng (which is a dependency for pngquant) and zlib (which is a dependency for libpng).

Step 1. First, download pngquant from SourceForge:
as well as libpng and zlib:
Step 2. Unpack them all in the same directory and then generate symbolic links called libpng and zlib that point to the actual directories. E.g.:
total 16
lrwxr-xr-x 1 ernst ernst 13 Apr 29 19:27 libpng -> libpng-1.2.27
drwxr-xr-x 103 ernst ernst 3502 Apr 29 19:28 libpng-1.2.27
drwxr-xr-x 10 ernst ernst 340 Apr 29 19:18 pngquant-1.0
lrwxr-xr-x 1 ernst ernst 10 Apr 29 19:27 zlib -> zlib-1.2.3
drwxr-xr-x 64 ernst ernst 2176 Apr 29 19:22 zlib-1.2.3
Step 3. Now go to the zlib directory and execute ./configure followed by make.

Step 4. Go to the libpng directory and execute make -f scripts/makefile.darwin.

Step 5. Go to the directory that contains the pngquant source code and execute make -f Makefile.unx.

That's it. You should now have a pngquant executable.

Updated (April 30, 2008): On request, here's a link to the resulting executable: pngquant (for Mac OS X). MD5 checksum is 20820366a7fffc6305ada6b727656b7b.

Friday, April 25, 2008

Microsoft wants to break up HTML 5

In an interview with SDTimes, Chris Wilson, MSIE platform architect Chris Wilson proposed that HTML 5 be split into several substandards.

Sounds like a reasonable and interesting proposal, but even better is to see that Microsoft appears to join the HTML 5 bandwagon. Although reviews on MSIE 8 beta 1 have not been very positive, the overall impression is that web standards support from Redmond is improving.

Decorations 1.0 released

Anthony Goubard (of Ant Commander fame) has released Decoration 1.0. It's an interesting Java-based application for graphical designers that makes it easy to apply all sorts of effects (100+) to graphics and text, including gradients, drop shadows, glow, etc.

What makes it attractive for professional use is that it supports a batch mode, for processing hundreds (or more?) of images sequentially.

For more information check out the screenshots section or the gallery.

Saturday, April 19, 2008

Camino 1.6 released

Camino 1.6 has been released. Camino is a Mozilla Gecko-based browser for Mac OS X.
Among other things, it now supports multi-touch gestures (if you have the right hardware).
This version requires Mac OS X 10.3.9 or higher and comes in different language-flavours, including Dutch.

Saturday, April 12, 2008

Fluid, site-specific browsers integrated in Mac OS X

If you have certain sites you use like an application, you may want your OS to treat these as applications as well, with a specific application that has it's own application title and icon, can be switched to using Cmd-Tab, etc.

This is called site specific browsers. The freeware application Fluid makes them integrate with Mac OS X seamlessly. For a walk-through, have a look at the intro:

Invalid XHTML / CSS

Today, for the first time, I came across a site that explicitly (proudly?) announces it does not validate the XHTML/CSS standards:
Very nice looking site, though. A real piece of art.

Is this going to be a new trend?

Friday, April 11, 2008

Quirksmode.org getting updated for latest browsers

It seems that after a long time of relative quiteness, PPK is updating his site quirksmode.org again, to describe the features and quirks of the current browser incarnations IE 5.5–8b1, Opera 9.5b, Safari 3.1, Konqueror 3.5 and Firefox 2/3b5. Keep up the good work, Peter Paul!

Have a look at his blog:

HTML and DOM Standards Compliance in IE8 Beta 1

The Internet Explorer blog added a new and interesting article on the standards compliance improvements in MSIE 8 beta 1:
It not only elaborates on the changes in beta 1, but also notes what is planned for beta 2 and -more importantly- what is and what is not planned to be fixed in the IE 8 final release.

Note that there's a reference to our very own (Dutch) PPK, of quirksmode.org and fronteers.nl fame.

Wednesday, April 2, 2008

Saturday, March 29, 2008

Introduction to XML technologies

There's a guy from the U.S. that calls himself Gerald that wrote a blog entry aiming to introduce XML technologies (from a Java point-of-view):
Quite interesting, especially for beginners or to those wanting to take a step back and getting another overview.

Note that he also mentions XINS as a web services framework.

Thursday, March 27, 2008

Opera also claims 100/100 on Acid3

Although they don't provide a publicly downloadable build yet (unlike WebKit), Opera also claims they have a score of 100/100 on Acid3. Coming soon to a download location near you...

WebKit passes Acid3 test

Wow, they did it! While my Firefox 3 beta 4 (on Mac OS X 10.4) gets no more than 68 points (out of 100), the WebKit team managed to make their browser engine pass the Acid3 test:
Now they 'just' need to do some profiling to make sure the test is passed quickly and the animation is smooth...

They sure deserve some credit for this!

CSS improvements planned for MSIE 8.0 (final)

On the Microsoft Internet Explorer blog, a new article appeared today, titled "Internet Explorer 8 Beta 1 for Developers – Standards Highlights Part 2". This article points to a document about the various IE versions and CSS compatibility:
From the document, it becomes clear that while IE 8 beta 1 already improves CSS compatibility compared to IE 7, there are still some improvements planned before the IE 8 final release:
So there's still something to look forward to...

I wonder how much of this will affect the IE 8 score on the Acid 3 test, but I don't expect them to beat WebKit anytime soon (who just achieved 100/100).

Monday, March 24, 2008

Ajax Performance

Here's a great blog about client-side JavaScript and CSS: Ajax Performance. Some articles of interest:
Interesting stuff!

Browser-specific CSS

The main browser engines support some CSS properties (or property values) that are not (yet) standardized. These get a browser engine-specific prefix, to maintain future compatibility, as the property (value) may make it into a standard, but possibly with slightly different characteristics.

The prefixes used are:
Microsoft is not that careful with CSS compatibility, their Internet Explorer does not use a prefix, except for one property: -ms-interpolation-mode.

Here are lists of CSS properties/property values specific to these browsers:

Browser blogs

Here are links to some blogs dedicated to the main browser engines:
  • Microsoft Internet Explorer – since the release of the IE 8 beta, there are is one new post every day, mainly focusing on functionalities and technologies;
  • Mozilla Developer News – Covers not only browsers, but other products as well.
  • Camino – a blog dedicated to Mozilla Camino (for Mac OS X).
  • WebKit – the engine of -primarily- Safari.
  • Opera – Blog by Håkon Wium Lie, CTO of Opera.
For Konqueror, I could not find a decent blog...

Saturday, March 22, 2008

The truth about abortion

This picture speaks for itself. If you believe abortion is principally different from killing a baby, think again.

Color spaces in Safari and Firefox 3

Since long, Safari 3 has supported support for color profiles (see the WebKit blog entry Color Spaces). Now the Firefox 3 betas also come with support for it, although it's disabled by default.

To enable support for color spaces in Firefox 3 beta 4, do the following:
  1. Go to about:config
  2. Confirm you want to edit settings
  3. Set the option "gfx.color_management.enabled" to "true"
  4. Restart Firefox
Now check out some sites. Like with Safari 3, colors in sites may look quite different, since an extra step is applied to convert the colors from the original color space to the color space for your screen.

For web developers this smart behavior introduces some challenges, since sites now look different on different browsers on the same platform. Of note, Safari and Firefox implement color space support differently: Safari only adjusts images (such as PNGs), while Firefox also adjusts CSS colors.

So even between Safari and Firefox 3 with color space support enabled, there are differences, as reported in Firefox bug report #424356 (see the attached screenshot) Firefox seems to do a better job here than Safari, because with the latter the colors of different elements on a web page may mismatch, as can be seen (with Safari 3.1) on a website like http://www.route65.eu/.

For web developers, here's a pragmatic approach:
  1. make sure your images do not include a color profile (saves ~4KB)
  2. do not specify colors in CSS if there is an image that needs to match the color, instead use a dot image with the exact same color
Still your site will look different on browsers with or without color space support, but at least you work around the problem in Safari 3.1.

Monday, March 10, 2008

Apple Keynote 4 does not support soft hyphens

Currently, Apple's Keynote (v4.0.2) does not support soft hyphens. When a soft hyphen is inserted, it is treated as a normal (breaking) hyphen: even if the word is no split over 2 lines, the hyphen is still shown.

Steps to reproduce:
  1. create a new Keynote document
  2. create a text field
  3. add a long word in it
  4. move the cursos to the middle of the word
  5. go to Edit > Special characters...
  6. in the dialog that appears, enter "SOFT HYPHEN" in the search box
  7. double-click on "SOFT HYPHEN" in the list that appears
  8. click on button labeled "Insert"
  9. resize the text field so it is large enough to show the word without breaking
Expected behaviour:
  • the soft hyphen does not show
Actual behaviour:
  • the soft hyphen shows, in the middle of the word

Tuesday, March 4, 2008

MSIE 8 default is standards compliance

This is great news! Microsoft is announcing they changed their standards compliance policy for Internet Explorer 8. It will now default to the new IE8 rendering engine, offering the best standards compliance so far.

This is great news to the Web, to both users and developers.

Saturday, February 2, 2008

Work around slow DNS

If you have a slow DNS server that is causing you delays, for example while browsing the web, then try switching to a faster DNS server.

If that does not work, then here's a trick you may want to try: make your computer perform DNS lookups for the hostnames you use most often (such as www.google.com) on a regular basis.

On Mac OS X, Linux and UNIX systems this can be accomplished using a simple cron job, just execute a command like:
nslookup www.google.com
or:
host www.google.com
This will perform the DNS lookup, and -as a side-effect- add the result to the local DNS cache.

Friday, January 18, 2008

iGTD

Today I started using iGTD, a Mac OS X application for todo-management. This application helps you to get yourself organized, registering all things you need to do in a single database on your own machine.

Overall iGTD v1.4.5.6 seems to be a well-designed application that is very usable for it's core functionality. It works very stable on Mac OS X 10.4 (Tiger). I have not tried running it on 10.5 (Leopard).

Wish list
While working with iGTD for a couple of hours, here's a list of things I'd recommend for improvement:
  1. Search everything – when searching, you currently have to choose from "Search by task name or note" and few other options, but "Search everything" is not an option. I'd like a single operation to search project names, task names, tags, etc.
  2. Dates – Although iGTD displays dates in a friendly format such as "Today" or "Tuesday", it's not possible to enter dates that way. It would be nice to just type "tue" and get iGTD to recognize that as "this coming Tuesday".
  3. Resize window – When increasing the size of the main iGTD application window, the last column in the task list becomes wider. By default, that's the "Due date" column, which doesn't need that much space, normally. Instead, the "Name" column should be widened, which contains both the task name (left-aligned) and the tag names (right-aligned).
  4. Effort colors – The effort column in the task list allows 4 values, ranging from low to high (see the image). The values are represented by a bar that is shorter (for low effort) or longer. Each bar length has it's own color, these are (from low effort to high): dark grey, green, brown and red. It would be nice if the colors would be more intuitive, such as: green, orange, red and black.
  5. Defaults – It would be nice if the configuration would allow that tasks entered without details (e.g. via "Quick type", hotkey F8) are explicitly be assigned some defaults, such as a default project.
  6. Dock icon – iGTD offers the option of putting the number of open tasks in your Inbox in the dock icon. That's very nice indeed. It would, however, by even nicer if it could show the combined number of open tasks from all contexts, or even show multiple numbers, for different contexts, similar to what DockStar (see image) does for the Apple Mail application.
  7. Resize panes – The main application window is divided in 3 main panes: the list of contexts or projects, the list of tasks and task details. It would be nice if these panes could be resized, for example to allow more room for the task list.
  8. Task dependencies – It seems there is no way to make tasks dependent on eachother. I tried looking at the various task properties, I tried right-clicking a task and I tried dragging a task onto another using various modifier keys (Cmd, Cmd-Alt, Shift, etc.) If iGTD offers this functionality, it seems well-hidden...
  9. Multi-client – I am one of the (probably many) people that do work in multiple locations, from different computers, but want to have the same personal information in all these places. To accomplish this, you can use a combination of .Mac (for your address book, certificates, etc.), del.ico.us (for your bookmarks).
    What I could not find out yet, is whether iGTD also supports working from different computers in an easy-to-setup manner.
In my opinion, iGTD is a great application that is very usable. And the iGTD 2 alpha looks very promising!

Tuesday, January 8, 2008

XINS: Splitting out Logdoc?

Talking to Anthony Goubard yesterday (of JLearnIt and AntCommander fame), I realized that adding features like SMTP- and SMS-support to a Web Services framework like XINS can hardly be considered good separation of concerns. So I definitely need to revise my XINS 3.0 wishlist.

Instead, it may be a much better idea to make XINS focus more on the Web Services functionality and split some technologies out. The main candidates seem to be Logdoc and the ServiceCaller framework:
In the picture the arrows indicate dependencies. So XINS would depend on Logdoc and the ServiceCaller framework and the latter would also depend on Logdoc.

Logdoc: What is it?
In this post I will focus on Logdoc.

So what is Logdoc and why would we want to separate that out from XINS? Is it useful for other projects as well?

IMHO the answer is "yes". Logdoc is a logging system based on the infamous Apache Log4J library that offers some features over Log4J:
  • registered logging categories: there is an explicit list of all logging categories, with documentation;
  • unique log messages: each log message is in a specific category and gets a specific number; this allows system administrators to enable or disable individual messages;
  • multi-locale: it is straight-forward to add a new language for log messages;
  • separation of concerns: the code does not bother with log levels, translations and categories, instead it just deals with a single log message (identified by ID) and it's parameters.
Logdoc code example
Here is an example of a piece of Java code that uses Logdoc, from the HTTPServiceCaller class (javadoc/source):
// Unknown host
if (exception instanceof UnknownHostException) {
Log.log_1102(url, params, duration);
Notice that there is no category, no creation of objects and no language-specific stuff.

Logdoc definitions
The key to the Logdoc system is the definition of categories and entries in XML. Every entry is within a single category. Translations can be specified in separate files, one per language/locale. So for example, for the XINS/Java Server Framework, the following files define all logdoc entries and their translations:

  • src/logdoc/server/log.xml - defines all categories and contained entries; each entry has a unique number, it specified a log level and optionally some parameters;
  • src/logdoc/server/translation-bundle-en_US.xml - defines all U.S. English translations for the log messages defined in the log.xml file;
  • src/logdoc/server/translation-bundle-fr_FR.xml - defines all French (France) translations;
Adding a new set of translations is as easy as adding one line to the log.xml and one translation-bundle-xx_XX.xml file, where xx is the ISO language code and XX is the ISO country code.

Now from these specifications, both code and documentation is automatically generated, XINS-style. Here is an example of generated Logdoc documentation:
Notice that there are 2 ways to find log entries: by category and by ID (see the Logdoc entry list link at the top).

More information
For more information on Logdoc, check out the section titled "Managing logs" in the XINS User Guide.