31 May
   Filed Under: Apple, Design   

Looking back, the Iconfactory’s post on resolution-independence has some holes in it (and looking back now, this post has too – see the end of the post and the comments).

Why, you ask? They claimed that PDF’s in the user interface as a new format instead of the current TIFF files, the entire OS would come to a screeching halt, that icons would go beyond megabyte sizes and general mayhem would throw all resolution-independence craving Mac users into a purgatory. We knew different then, we know different now. A few months back, I posted about the ‘new’ Oxygen icon suite for KDE, being all SVG-vector based, and it didn’t wipe Linux off the face of the Earth. Instead, some optimized SVG files and rendering tricks made it work quite good, and these days, some ‘dock’-applications for GNU/Linux put the SVG’s to good use.

You can test this kind of stuff on OS X too, you know. First of all, as we all know from the rather public Resolution Independence segment of the “Leopard Features in Cocoa” session, free on the ADC Online iTunes page that we can define image resources of varying DPI values. You’d have the same size images if you open them in, say, Preview, but once zoomed in, it’s obvious that one contains four times as much pixel data. Assume that drawing units (points) are independent of screen pixels – if you take a 100*100 point image with 72 DPI, it’s 100*100 pixels. if you take a 100×100 image with 288 dpi, you get 400*400 pixels, but this 288 DPI image isn’t ‘larger’ on-screen; it would be as large as the 72 DPI image on a 288 DPI screen.

But you can be more flexible with vector resources. Now, I wouldn’t really use my own icons in vector format, because it -would- put the OS to a screeching halt, but we all know that there is no plan to make the Dock icons vector – instead, we are simply putting 512 pixel icon resources in all new ICNS files to keep the scaling possible. Toolbar icons, on the other hand, are often very simplified graphics. Take the GNOME Tango icon set’s trash icon as an example;


As you can see on the right, this SVG icon has a 72 dpi version in which the dark outline is exactly one pixel wide – we could compare this to toolbar icons, which generally have the same characteristics. One pixel-outlines, and often a lot of pixel-art to get it all looking proper in the 32*32 pixel space. No more! In OS X 10.5, we can do it the Tango way. It takes two to Tango, doesn’t it? In our case, one PDF vector resource (we don’t generally use SVG’s, OS X has a PDF graphics subsystem with Quartz) and either include a DPI-ready vector resource in the PDF (one that has a 1 pixel border on 72 DPI, for instance), or a separate file (a multi-representation TIFF) that is used with a little bit of Cocoa’s help. Apple has been kind enough to give you something to grab the screen’s DPI value and thus, do something with that. In the session, a solution like this was suggested;

NSImage (pointer) Name=Imagename Size={100,100} Reps=(
  NSBitmapImageRep (pointer) Size={100,100} Pixels=100x100
  NSBitmapImageRep (pointer) Size={100,100} Pixels=400x400

Of course, assumed here is that we are talking about our earlier resources; one 72-dpi 100*100 pixel image, and a 288 dpi 400*400 pixel image get put in place conditionally. Cocoa will chose the resource accordingly. If we can, however, we should use vector resources. They won’t ever give problems because they scale with our interface – you can set the PDF as the icon resource and as the workspace scale factor gets higher, the graphic scales accordingly and loss-less. I hear you say that perhaps, some high-end systems with high scale factors are able to render vector graphics of increased complexity without too much strain, and all systems with a smaller scale factor (I assume laptops and low-end desktop systems) don’t really want to render out vector graphics because they are both hard to parallelize and take battery life in the case of portables. Although there is an argument that rendering out vector resources smaller is faster anyway, representing vector graphics still is a lot more intensive than just displaying bitmap data. Perhaps an if switch is needed?

- (CGFloat)userSpaceScaleFactor;

This method returns the workspace’s scale factor and lets you act on it accordingly. It’s simple to set up this method and make a switch of resources (I will leave that as an exercise to anyone who has a ‘Leopard to build on’). Afraid this might make your application bigger? I wouldn’t worry about this too much. If you would upgrade your toolbar to this dual-resource system, all your 32*32 resources wouldn’t need the 128*128 resources, whereas the vector resources included are generally smaller than any bitmap data. It’s a small price to pay for a better looking app. Now go forth, and make sure I see some both efficient, pretty, and resolution-independence ready apps soon! If you need help, you can get information about my services at icondesigner.net.

Edit: Craig Hockeberry of the Iconfactory has commented on the whole matter, and after a bit of chatting I agree that it is overboard for an interface designer to talk about these matters of switching resources – however, it was meant in a ways of throwing around idea’s. I must say that I was wrong in a few other points; vector in PDF cannot yet be seen as a medium for all toolbar icons because it’s not efficient enough. I’d like to thank Craig for all the input.

31 May
   Filed Under: Personal Work   

Now is the perfect time to comment – if you would only comment once (like uh, you loyal US Courts-domain using RSS-based blog reader, please let me know who you are!) in your lifetime here, do it now. I really want to make a good decision on this.

On Macthemes, there are questions for some alternative formats of the icons, apart from a DMG with an ICNS resource slapped on it. PNG, perhaps a set of Windows / Linux desktop environment icons. How should I go about this? Do you guys want other formats than just OS X compatible icon resources? This week, IE is used by about 6,7% of my visitors, where the Windows-using portion of the readers is about 18%, and the Linux / *nix using crowd an estimated 10 to 16%. There is also someone using OS/2 (who are you, you fascinating individual?).

Now let me know. Comment, email (you can find my address on my site) or let me know by Macthemes private message what I should do in the future with my icon formats.

31 May
   Filed Under: Personal   

I don’t know what moron calls himself ‘Fag stomper’ at all, but I already know you’re from Michigan, in the city of Lansing, Comcast for a provider and they got a complaint about someone spamming just now. Stop posting offensive comments, it’s useless as I have to moderate them anyway. I consider the matter closed. Here, take a look at this purdy map of your location:

For everyone but me and this strange individual; some strange person has been trying to post rather offensive and blatantly misspelled comments on my blog. I won’t repeat his words, because they will simply be ignored, and deleted. Get a life, dude.

30 May
   Filed Under: Announcement, Design   

A little showroom of icon design and an outlet for downloads – that’s what I wanted. Now, I found a nugget of a domain name; icondesigner.net. You should check it out, because I added a little new icon for Wireshark, the open-source network analyzer and protocol dissector. It has a -horrible- icon in OS X, and that’s now fixed. Enjoy!


comments off
29 May
   Filed Under: Apple   

Before I am going to spill the bad beans, some positive vibes. I am going to a nice festival in August here in the Netherlands. I can finally see some musicians I have been dying to see live for a long time. One of them being the inspiring ‘math metal’ band Tool, but others like Trentemoller and Ojos de Brujo are some performances I really look forward to. Lowlands, as it’s called, is a very laid-back festival with an excellent atmosphere. I can recommend it to anyone who wants to enjoy Dutch people at their best.

In the mean time, I’ve had some big ‘fun’ with Praetorian. Upon discovering the HIG guide that no interface element should use over 75% black, I am in a dilemma. I like the current GUI but obviously does not adhere to the standards – while I like it and it’s discerning, it could definately hinder it’s long-term potential and become too ‘gimmicky’. I could, without really taking it’s flair and charm away, bring it to the 75% black standard. I think, looking forward, that this will probably make the beta date slip. There have been some rather insane keychain issues with the last builds that have almost made me throw the Macbook Pro out of the window.

Now, for the bad apples.

I lost a ton of work because the Macbook Pro’s battery I am using for almost ten months decided to go die on me spontaneously. It’s a painful moment. My first iPod’s battery died. My first Macbook Pro’s battery got hot to the point of melting the trackpad, bending the case, and generally screwing up the whole thing. I turned it in and it got shipped to Cupertino overnight. Nice going, Apple. After three months of bargaining (I -really- wasn’t waiting for some Customer Relations jerk that wanted to give me one from the same serial number range when there were faster and Rev. D machines in stores for less money) I got a new Macbook Pro. Now, yeah, it died on me. Again. Not to mention my girlfriend’s Macbook, which also had a battery that ‘just died’. Perhaps that should be the new Apple slogan. “It just dies”.

“Whoa, what’s up with the Apple hating?”, I hear you scream. I don’t. I love the platform, I adore the developers of the software. I don’t like Apple for putting out stuff before it’s really finished and it breaking on, well, a lot of people. Stop calling it ‘Pro’ if I can’t build on it. I lost a lot of work (slash time, slash money) on these hardware defects. Last time, I lost my work station for months.

Now, I hope I can get this thing fixed. I will have to get a battery soon, in the next few days, but after a few weeks, when I got my term finished, I will turn in my Macbook Pro for having paint coming off, a defective superdrive and some other minor issues. I hope that my saga ends after that, although with my luck, I doubt it…

28 May
   Filed Under: Announcement   

On a predatory hunt for internet property.