We all heard the rumors that InputManagers were completely removed from Leopard. But thankfully as Allan Odgaard of Macromates points out in his blog, that’s not (quite) the situation.

To sum up, InputManagers still work, but not from the User’s Library folder. Only InputManager’s located in /Library/InputManagers/ are loaded if they belong to the root user and wheel group. Also if ~/Library/InputManagers/ exists it seems that all InputManagers are ignored, but not in all cases.

My own personal favorites when it comes to pimpin’ Safari are Inquisitor, SafariStand and Saft. Inquisitor and SafariStand are completely free to download and use, Saft you have to pay for tho (which I’ve been meaning to get around to for a few months now). All of these three Safari extensions are available and work under Leopard now.

Inquisitor has been updated to automatically install directly into /Library/InputManagers/. If it doesn’t load after install, check if ~/Library/InputManagers/ exists in your home folder and trash it if it does.

SafariStand has a Leopard specific release, which for better or worse drops support for the InputManager’s loading technique, and instead relies solely on SIMBL. Previous versions could be used as an InputManager directly, or loaded via SIMBL. Personally I hope that InputManager support returns soon.

With Safari 3, SafariStand can replace one of the two features I like the most from Saft. Automatically restore all open windows and tabs from previous session. SafariStand has long had a restore feature, but (at least if i remember right) it popped up a window first about it rather than just opening everything again. Safari 3 though added a few feature under the History menu called “Restore All Windows From Last Session”, and SafariStand can automatically invoke that function upon launch.

Saft seems to have gone a somewhat strange way to accomplish Leopard compatibility tho. I was gonna give the demo another try since i did a clean install of Leopard, the traces of the previous expired demo were all gone. However, Saft is now packaged as an application you copy to /Applications/. Then you launch Saft.app rather than Safari.app. The Saft application is basically a launcher for Safari which injects the necessary code into Safari to work.

Personally I find Saft’s new approach quite annoying. Ok, so its not a major deal launching Saft instead. But the thing is, that I shouldn’t have to. InputManager still work, SIMBL still works, there are options. But in all fairness, Saft is probably the most complex of the three extensions I’m covering here, and my guess would be that this was the fastest solution to get Saft back up and running for their customers who have upgraded to Leopard. I’m hoping for a future release which works like a normal InputManager, or in worst case, uses SIMBL.

UPDATE: With the release of Saft 10.0.1 it can now be used as an InputManager, or a launcher.

I’d just like to clear up that I don’t hate SIMBL. I just find it unnecessary to use one InputManager to load one that you actually want, while the one you actually want could be loaded directly. Not optimal efficiency, and I unfortunately happen to have a bit of an obsession about efficiency. *whistles innocently*

The time has finally come when DVD5 (Single-Layer) discs aren’t even big enough to hold your favorite operating system. Which is all well, just more “candy” to drool over, unless you’re in a somewhat similar situation like me.

I’m currently using a 15-inch MacBook Pro (2.4GHz) which I bought in august. My previous machine was a 15-inch PowerBook from May 2004 with a 1.5GHz G4 processor. Leopard installed fine on my new machine you might imagine. My PowerBook though, has some issues with its optical drive, specially when it comes to Dual-Layer DVD discs.

The evening I got my copy of Leopard, I obviously was in all haste to install it on the MacBook Pro. Once done I also wanted to upgrade the PowerBook cause my parents use it every now and then. Okay, I lie. I really just wanted to geek out with leopard on a PowerPC machine too, thats not a crime right? :$

To make my life hard though, I’d forgotten about the optical disc problems with the PowerBook. And without any external optical drive, or firewire hard drives at home, my options quickly became limited to burning a Single-Layer DVD disc with only the essential stuff needed to actually install Leopard on it.

This turned out being a bit harder than I originally thought tho. After a few failed attempts, I got it working.

Keep in mind that I’m not an expert on OSX internals or how to custom make bootable discs. Some of the stuff mentioned bellow might not be deadly necessary to make a bootable stripped down Leopard install disc. Its simply what worked for me. Just so you know before you classify me an idiot incase I’m doing something unnecessary :)

Also I’m trying to keep it simple so non-geeks find this how-to useful too.

Overview.
What we’ll be doing here, is simply stripping out non-vital data from the Leopard installation disc. This means you’ll end up with a disc without software like the Xcode developer tools, printer drivers and language translations. They are not required to install a working copy of OS X. Once you’ve completed the installation, you can install the removed software from a disk image of the installation disc (more on that later).

Step 1: Create a read/write Disk Image from the Install DVD.
First of all, you’re gonna need at least 12-13 GB of free space somewhere. Then you’ll obviously need to insert your install DVD into your computer. Or if you’re like me and paranoid about optical media. You’ve probably already created a DMG from the install disc for safe keeping on a backup drive. In that case you’ll need to mount the DMG.

Next launch Disk Utility (found in the Utilities folder inside the Applications folder). In the source list to the left in Disk Utility, you’ll see a disc called “Mac OS X Install DVD”, select it.

Devices

Next select File > New > Disk image from disk2s3 (Mac OS X Install DVD)…

New Disk Image

Disk Utility will now ask you where you wanna save the image. Browse to somewhere where you have at least 8 GB of free space. Select “read/write” as the image format. Name the new disk image “Leopard RW.dmg” and click Save.

Image Format

Then go make yourself a cup of coffee or do something else to kill about 20-30 minutes.

Step 2: Remove non-vital content from the read/write DMG Image.
Once you’ve created the new DMG, mount it. Now you have a mounted exact copy of the same volume on your original install DVD. Only here you can delete stuff.

Open the mounted volume and start with trashing the “Optional Installs” and “Instructions” folders. Next press cmd+shift+G or select “Go to Folder…” from the Go menu in Finder. In the dialog that pops up type “System” and click Go.

Go to System folder

Now you’ll have the hidden System folder from the install disc open. Open the “Installation” folder and then the “Packages” folder. Now we need to trash some of these installation packages which are taking up a lot of space, but are not vital for Leopard to install. The plan is to simply remove all printer drivers, and all language translations.

Here’s the complete list of packages you need to trash:

  • BrazilianPortuguese.pkg
  • BrotherPrinterDrivers.pkg
  • CanonPrinterDrivers.pkg
  • Danish.pkg
  • Dutch.pkg
  • EpsonPrinterDrivers.pkg
  • Finnish.pkg
  • French.pkg
  • FujiXeroxPrinterDrivers.pkg
  • German.pkg
  • GutenprintPrinterDrivers.pkg
  • HewlettPackardPrinterDrivers.pkg
  • Italian.pkg
  • Japanese.pkg
  • Korean.pkg
  • LexmarkPrinterDrivers.pkg
  • Norwegian.pkg
  • Polish.pkg
  • Portuguese.pkg
  • RicohPrinterDrivers.pkg
  • Russian.pkg
  • SamsungPrinterDrivers.pkg
  • SimplifiedChinese.pkg
  • Spanish.pkg
  • Swedish.pkg
  • TraditionalChinese.pkg
  • XeroxPrinterDrivers.pkg

Once you’ve trashed all these files, its time to empty the trash to remove the files permanently from the disk image.

Step 3: Creating the final 4.38 GB Disk Image and burn it to a Single-Layer DVD.
Now we need to create a new disk image with the correct size. Sure, the first disk image we created only has just about 4 GB of data on it, but its volume size is still 7.5 GB. Which means you still need a dual layer disc to burn it.

Unmount the modified disk image you just stripped down. Then we need to create a new 4.36 GB disk image with Disk Utility. I know, 4.38 GB is the limit of Single-Layer DVD discs, I just prefer to aim right below the limit, just incase.

In Disk Utility select File > New > Blank Disk Image. The image format should default to read/write which is what we need. Change the size to 4.36 GB. If you’re using Leopard make sure that Partitions is set to “Single partition - Apple Partition Map”. Save it somewhere you’ve obviously got at least 4.36 GB of free space and name the image “Leopard Stripped.dmg”.

Then go for another, but shorter, coffee break.

Once done, mount the new empty disk image if it isn’t already mounted. In Disk Utility select the mounted volume of the new disk image and click the Restore tab. Drag the “Leopard RW.dmg” image into the Source box, and drag the mounted volume of the “Leopard Stripped.dmg” image into the Destination box. Mark the Erase destination checkbox.

Restore to smaller disk image

Click the Restore button and wait a few seconds. Disk Utility will report an error of some kind. Select “Leopard Stripped.dmg” from the source list on the left and click the Eject button in the toolbar. Once ejected, click the Open button and it’ll mount again, but this time the volume label should be “Mac OS X Install DVD”. Uncheck the Erase destionation option and click the Restore button again.

Time for a third coffee break.

Once the restore process is complete, unmount “Leopard Stripped.dmg”. Then its time to burn the disc finally.

Personally i used Toast to burn my stripped down disc, but there shouldn’t be any problems burning it using Disk Utility. To burn it using Disk Utility, select “Leopard Stripped.dmg” from the source list on the left, and click the Burn toolbar button. Use any normal DVD±R disc :)

Step 4: Installing Leopard from the Stripped Install DVD.
Installation is pretty much exactly like normal, except you have to make sure it doesn’t attempt to install any printer drivers of language translations. Those files aren’t there anymore, and if the installer tries to install them, it’ll just commit a pretty suicide.

UPDATE: As Mike pointed out in his comment, if you are performing an upgrade install the installer requires that any previously installed language translations are updated. Which means they can not be unchecked during installation. To get around this, he recommends using Monolingual in Tiger to remove the additional languages before performing the upgrade install. If you go down this path, please let me know how it goes as I’m curious.

Also, it can take a VERY, VERY VERY long time for your machine to boot from this customized disc. My PowerBook took about 25 minutes too boot, all the while just showing the gray apple logo and spinner.

After selecting which disk to install Leopard on, you’ll have a Customize button in the lower left on the installation wizards dialog. Using the customize feature, uncheck Printer Drivers and Language Translations. Then the installation will go on without a hitch.

Step 5: Installing the software stripped from installation disc.
For this, you’ll need a mac which can read the Dual-Layer Leopard disc, just like you did in the beginning to create the disk image from the Leopard disc.

Create another disk image from the Leopard install disc like you did in the beginning. Only leave Image Format on compressed. I’d recommend you name it “Mac OS X 10.5 Leopard.dmg”. This disk image file you can keep as a backup incase you ever loose or otherwise damage your original Leopard install disc.

Then its just a matter of making the backup disk image accessible with the help of networking or an external hard drive to the newly installed Leopard machine. Simply mount the disk image, and use the Optional Installs package to install any/all of the language translations and/or printer drivers you want. You can obviously install the Xcode Developer Tools as well.

Step 6: Uhm…. Enjoy Leopard? Can that even be classified as a step?
Thats it, you should be all set. Now you can play with Apple’s latest toy ;)

P.S. You probably noticed the screenshots I’ve used here are from Leopard. I simply don’t have a Tiger machine anymore (hehe). Also yes, I’ve installed Windows XP with Boot Camp, partially to test out the new Boot Camp 2.0 (which partitioned my internal drive a lot faster than Boot Camp 1.4), and to play some games those rare moments when I don’t have anything to do.

Leopard: Spaces Bug

October 31st, 2007

UPDATE: If you’re using Proteron’s LiteSwitch X you wont be effected by this bug. Hopefully Apple will fix this issue in the upcoming 10.5.1 update.

UPDATE 2: I just installed the 10.5.1 update, and it seems like this bug has been fixed, as far as I can tell so far, I’ll update further in a few days if I still have issues.

UPDATE 3: With quite some delay, I have to say that the issue hasn’t been fixed, just improved a bit, it happens less than half the time when switching to apps with windows on multiple desktops now, rather than the 80-90%? of the time it did before.

I’ve been running Mac OS X 10.5 Leopard now for 3-4 days and surprise surprise, I’m (mostly) loving it :)

One thing that’s been annoying me though, is a bug in Spaces. When you’ve got multiple windows from a single application you can get some very unwanted space switching when using cmd+tab application switching.

If you’re running Leopard, try it yourself. You’ll need three running applications, I’ll use Safari, TextEdit and Finder for this example. Also note this bug doesn’t seem to happen EVERY time, but at least most of the time the following steps are done:

  1. In space 1, open a Safari, a TextEdit and a Finder window.
  2. In space 2 open a new Safari window and switch back to space 1.
  3. Click on the Safari window in space 1 making it the active application.
  4. Using cmd+tab switch from Safari to Finder, and then back to Safari again the same way, then switch from Safari to TextEdit, and back to Safari again. Works fine.
  5. Now however, switch from Safari to Finder, then from Finder to TextEdit, and then from TextEdit to Safari….errr what just happened?

What happened was that you switched back to Safari, but you’ve also been automagically transported to space 2, even if you wanted to stay put in space 1.

This happens thanks to a feature of Spaces which obviously isn’t working perfectly as it should. When you switch to an application which is in another space using the dock or cmd+tab Spaces will automatically switch to that space.

So, simply put, Spaces doesn’t always properly detect which is the active window of an application, and wrongfully switches you to the wrong window on the wrong desktop.

One more thing…

…which I find annoying, but which I imagine is a feature rather than a bug, is how Spaces handles the restoration of minimized windows. Lets say you minimize a window in space 1, and then you move on to space 3 to do some other work. Then you wanna work on the minimized window in space 3 so you restore it. But this switches you back to space 1 (where you minimized the window in the first place) and restores the window there. I can see the logic behind this cause minimizing is not meant to be a way to move windows between spaces, its merely a way to get windows you don’t need right now out of the way. However, personally I’d like the window to just pop back up in whatever space I’m in right now.

So my final thoughts of Spaces is that it needs some bug fixing, and more settings in the Spaces System Preferences pane for customizing a few behaviors. Oh and a menubar pager like ye ol’ Desktop Manager which gives you an overview of all desktops would be awesome. Its the one thing i miss from Desktop Manager.

parseCSV 0.3.0 + Google Code

August 13th, 2007

It’s been a long while since i last updated here, life’s been crazy. But i’m not gonna fall into a bottom less pit ranting about everything thats been going on and keeping me busy.

Instead, I’d like to announce parseCSV 0.3.0, my fully featured CSV parser for PHP.

I recently created a Google Code project for parseCSV to bring the class some more attention and spotlight than it’s been getting here dug down in my blog somewhere. I also updated the script to fix a small bug (just plain stupid code), and add some more functionality. Namely, offset and limit options when parsing a CSV file/data. And a basic but very useful conditions option which uses SQL-like syntax to match parsed data for easy filtering.

You can download the script from the project page. The wiki pages are still not really complete, at all, but i’ll get there ;)

links for 2007-06-21

June 21st, 2007

webware 100 breakdown

June 21st, 2007

Here’s a quick piechart I made breaking down the bigger winners of the c-net’s webware 100

My numbers might be off… so feel free to correct them

links for 2007-06-20

June 20th, 2007

filthy, lying inkjets

June 19th, 2007

In a thread titled: Inkjet printers are filthy, lying thieves, meccano04 replies:

If i ever see an inkjet printer in my house, im going to stab it with a samurai sword.

referencing Teen Scares Off Burglar With Samurai Sword from two weeks earlier.

Well played!

timeshifted profiteering

June 18th, 2007

Let me kick off the new Geeksteria category with this most awesome gem:

In an article linked to on slashdot about “a University of Washington researcher who couldn’t find funds the old fashioned way has raised funds from private parties to continue with his studies of ‘time travel’.”

Reverend528 replied:

1. Profit!
2. ???
3. Invent Time Machine

If you don’t get it, you may not be familiar with South Park’s underpants gnomes.

With all the general grumble about the Safari-is-the-SDK-for-the-iPhone on the internet, I figure that… hey, if the internet *is* where all the iPhone apps are, all web apps are iPhone apps. So, I made a badge.

Feel free to include this image on your Safari Testedâ„¢ blog (or web app) if you feel like Steve is brushing you off like a cheap $2 hooker.

Download (the badge, you perv, you can find your own hookers on your own time).

It would seem I am the only one who’s ever seen the ‘Made for iPod’ badge, so don’t feel bad if the joke is lost on you.

Greek Blogger Camp 2007

June 3rd, 2007

As probably none of you (poor souls) who read this blog know, i’m of Swedish origin, but i’ve lived on the island of Ios in Greece the past 10 years. And today i found myself in an interesting event, namely the Greek Blogger Camp 2007.

My day job is basically being a technician for anything and everything computer related on this little island, and i was setting up a WDS wireless network today for Ios Palace, the hotel the Greek Blogger Camp was taking place at. I helped them out to get networking and some stuff working :) .

I found the event itself very interesting, and i met some really cool people :D .

Matt Mullenweg, the creator of Wordpress, Steve Smith from orderedlist.com, and a lot of Greek bloggers were there. Unfortunately i’m not to familiar with the Greek blogsphere since my Greek isn’t exactly fluent (oops).

First up to speak was Steve Smith, he held a very in-depth presentation about web-development and most specifically web standards, and how important they are. Its good to see someone more fanatic about standards and perfection than myself… hehe. What i found most interesting was the Q&A after his presentation, where he answered multiple questions about how to communicate with clients whom you’re building sites for, how you promote a new site, and more. Unfortunately i didn’t catch all of it since i was there to setup a wireless network for the hotel (the evil day job strikes again *wishes he was rich* ^_^ ).

Next up was Panos Sambrakos, he talked about an interesting ad campaign he seemingly was in charge of at OgilvyInteractive for Toyota (again, i missed parts here and there, friggin day job… lol). The idea behind the ad campaign was to have the advertiser listen to the customers, rather than just feed potential customers with fixed single-sided information via tv, radio, news papers, and online banner ads. Cause the world is moving away from listening to radio, watching tv (must be one to two years ago i last watched tv myself). The idea was to let a few of the bigger greek bloggers test-drive the car, and then let them post their opinions of the car, wether positive, or negative. It worked well, and it was an interesting presentation :)

During the Q&A with Panos, i asked if there had been a lot of spam and general abuse of the central blog they had setup to collect all the posts from the bloggers who test drove the car. Thankfully, they hadn’t had much spam at all. I also pointed out that i thought that they had done a good job to stuck to the no censoring rule, unlike Microsoft did with their Vista laptops around February (Matt Mullenweg pointed out to me that it was the ad firm that had pulled the laptops back after first giving them away, and not Microsoft themselves, mah bad :$ ).

I had a chance to talk to Steve for a while before it all got started this morning, it was very interesting :D (If you’re reading this Steve, i was stalking you for a bit ;) ). During the coffee break and after the event i had a chance to talk some of the bloggers aswell :) . All in all, it was great. And i’m looking forward to the 2nd half of the event tomorrow morning.

Hopefully everybody will be able to make it, and wont be too hung over. I ran into most of the people who was there in the village tonight (its about 3am right now), out partying and drinking (Ios being a party island and all). I showed a bunch of them around to a few good bars, i would mention names, but i’m terrible with remembering names off the top of my head (sowwy :$ ).

Overall, i think its a great event, and awesome that it took place here on Ios, and i hope it will next year too (if i’m still living here, who knows what’ll happen in a year… lol)

Anyway now i’m going to bed, and hopefully when i wake up, my ears wont be ringing, and my brain cells can hear each other from the loud music in the bars here… lol… Was my first time out this year (yeah, the day job again heh), and i guess i’d forgotten just how loud most places play their music, its all good tho :D (as long as its good music (or you’re drunk), and you’re not trying to talk to someone ^_^ )

intel razr-thin notebook?

May 25th, 2007

from: http://gizmodo.com/photogallery/intelnotebook/1929626

i just layered the two images… and… does the notebook look “0.25 inches thicker” (that translates to 50% thicker, btw) than that razr?

razr book

zydev.info

May 8th, 2007

I’ve decided to move this blog from zhuoqe.org/blog to this new shiny domain, zydev.info. Any and all links to previous posts and pages/whatever on zhuoqe.org/blog get redirected to the corresponding url here (gotta love mod_rewrite :D ).

The reason you might be asking, well cause zhuoqe.org was intended to be a private online development and testing domain simply. But i threw a blog up for the single person or two that might stumble across it, and now there’s about 20 visits per day. So not that private anymore, not to mention that zhuoqe isn’t exactly a great domain name (its “zynode” reflected upside down, check the reflection of zhuoqe on zhuoqe.org ;)

The reason for it being called zydev specifically, is simply cause i’ve ended up calling a few of my current projects “zy[something]“, zynode, zynapse, so zydev just made sense (bad sense, but still sense ;) ).

So, new (hopefully easier to remember) domain name, on another server for performance, and to not be able to effect the zhuoqe.org server in anyway :)

Also, i’m gonna try to update a bit more often, with actually useful information ;) … so check back if you get a chance :)

There is a specific HEX number which has become one hell of a hot topic lately. It was even the reason for a little scandel over at Digg. If you have no clue what i’m talking about, then i suggest you read this post over at rudd-o.com.

Anyway, to get to the point… I had a few minutes of free time last night, and oddly enough i felt restless and bored, and it was at that moment i stumbled upon loads of stuff about 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 and some random page on cafepress.com. And i suddenly got an itch to try cafepress out and be a complete uber-geek at the same time :D

So 10 minutes and a fancy styled hex number later, i had this: http://www.cafepress.com/zynode

And then i ordered one of them for myself, which is now on the way across the planet :D

Oh, and i wrote “freedom of speech” on the back in hex, i used my little converter script for the translation :)

Front
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0

Back
freedom of speech

Reflections are all the buzz right now, if you don’t have reflections, you’re just not cool, and if you do have reflections, you’re just plain stupid for making out like everyone else… hehe…

Eitherway i’m a huge reflections addict — yes i admit it, i’m an addict — and i tend to use them a bit to much even sometimes, even in webdesign :D

This brings us to an awesome javascript which generates reflections for images on the fly, many of you (two people who’ll read this… lol) already know all about Cow’s reflection.js script. The one thing i’ve wanted from it tho, is being able to set fixed height reflections, rather than the reflections being X% the height of the image in question.

Hence i spent this afternoon haxx0ring reflection.js to add a rheightpx option, which with a little logic, you’ll figure what it does ;)… while i was at it, i also added a rgap option which puts a gap of X pixels between the image and the reflection.

As for bugs, well, the rheightpx option works fine in all browsers except Opera, which for reasons thats completely beyond my understanding, causes some very weird effects… after 2 hours of testing and messing around, i can’t find any reason for why it does it, but maybe Cow will know, and hopefully he’ll implement my changes into his script *hint* :D

Also, the rgap option is a bit sketchy between browsers unfortunately :P

Download:
reflectionpx1.6.1zipimage

And if you’re wondering about what you could possibly use a fixed height for, check this…

librarious bookcase view

…which is the main reason i put effort into this modification today :D