Wednesday Sep 23, 2009

Apple JKD 6 for 32-bit Macs

Is it true? A JDK 6 for 32-bit Macs?! Searching the Apple home page returns nothing. :-o Tomas H. tells me to check the Snow Leopard Release Notes... Heureka!

Java for Mac OS X 10.6
The JavaVM.framework on Mac OS X is provided as an integrated component of Mac OS X 10.6, and vends Apple-provided and 3rd party Java virtual machines via various deployment options (command line tools, applets, applications, and Web Start). Mac OS X 10.6 contains an Apple-provided Java SE 6 version of 1.6.0_15 for both 32 and 64-bit Intel architectures.

I didn't plan to buy Snow Leopard, but hey, if it makes JDK 6 and Web Start work on my old Mac, why not, still cheaper than buying a whole new 64-bit machine. A JDK 1.6.0_15 should even include JavaFX, which has been there since 1.6.0_13 or 14, right? Where's the catch, why are they hiding this so well? :p

Thursday Aug 07, 2008

iPod Click Wheel Sighted in 1953 Video

Check out this short MGM film called TV of tomorrow. At 1:55min, isn't that totally an iPod with a click wheel? Alright, the 1953 proposal hasn't reached the "nano" stage yet... But still, the clean user interface is clearly already all there. ;-) Prior Art? :-P

Wednesday May 21, 2008

How to Get Videos Onto an iPod Touch

OK. I admit it, I caved in and bought an iPod touch. X-) So all I gotta do is copy my favorite videos on it and I will have hours (well exactly 5 hours, because then the battery's empty) of fun on my next 10hour-train trip. :-D

Importing video onto the iPod from a DVD is pretty straight-forward. I used a well-known application called Handbrake. With the "iPod Low-Rez" preset, a 40-min TV show takes up about 150 MB, and the image and sound quality is very good.

Thanks to Lloyd for recommending MPEG Streamclip, a cool free video conversion tool for the Mac. It cannot only encode to mp4, but it's also able to rotate videos by 90 degrees. The latter comes in handy for n00bs like me who record their vacation videos with a small digicam -- in portrait format... I combed through a couple of video forums and the main answer people get is: "Well don't hold your camera that way, stupid!" The second type of answer was to use the linux tool mencoder that you can get by installing mplayer. Read what Scott has to say about how to rotate an AVI or MPEG file taken in Portrait with mencoder.

I've got Ubuntu in a virtual machine at work, but decided to keep mencoder in the back of my head as backup plan. I was still looking for a lazy Mac solution. :-P So back to MPEG Streamclip: You can cut, crop, and yes, rotate the video. You can even re-encode video brighter or louder etc. It exports to AVI-, MOV- and MP4/H.264. (Note the strangely named "iTunes" button to select iPod-ready encoding presets.)

That's not even all, you can give the open command a URL instead of a file, and it will gladly accept youtube URLs and extract the FLV from it! (You can assign the downloaded FLV files to VLC to play them. If you only need a player and no encoder, VLC is probably the best.) Up to now, I had to use Safari's activity window to get them (double click the biggest item in the list to download the embedded video). :-P

Before I could start encoding my AVIs to MP4, I had to get some divX codeces I was lacking. I heard Mac OS 10.5 already comes with them? Well anyway, my 'old-fashioned' 10.4 didn't have them. So I also got XVID and divX (which is mostly a short-lived demo app, but I hope the codec it installed will last longer). -- And voila, my old AVIs come to live in MPEG streamclip, and covert nicely to 200MB mp4's. :-)

I bet all these apps I mentioned have more cool features that I have not discovered yet (leave a comment if you know a cool video trick)... One more tip from me is to make certain that the names of files that you copy to your iPod are unique within the first 15 letters or so, otherwise they will all look the same on the video list and you have to open them to see the full title... It's possible to rename them in iTunes, but it takes (seriously) 4 minutes to sync each rename!

Well, be right back...Gotta download Youtube...ALL of it! Muhahahah! ... OK. Maybe only this. Or this. Or this? No, this!

Friday Dec 14, 2007

JDKs for MacOS?

Yesterday, Apple released a JDK update! :-)
... for JDK4 and JDK5. \*sigh\* :-[

Let's hope the update does something useful. The "more info" link offered by the Software Updater in the German locale was a 404. I searched the Apple support center and only came up with this English info page (which alas doesn't contain more info, but repeats what I already knew, "it's an update").

Also this week, Apple felt compelled to release a little article about Java and Mac OS 10.5 (Leopard). Don't hold your breath. As much as I appreciate Apple improving their Java profiler, and adding support for 64-bit apps, yadda yadda, it's still a pity the whole article says no word about the Apple JDK 6. \*sigh\* It doesn't even contain the number 6. \*SIGH\* (Although it contains the digit 6. I checked.)

I still have the JDK 6 Dev Preview released by the Apple Dev connection (a download which seems now gone from the ADC.) Why does Apple develop their own JDK? They do it so they can add these guys to it. (Why they do it so slowly, I don't know.) If you want to know what Java on the Mac looks like without those typical controls, have a look at this BSD port of JDK6 for Mac OS 10.4 and 10.5: Soy Latte JDK 6.

You can download SoyLatte into any directory you like, then expand it (I used bunzip2 soylatte16-i386-1.0.tar.bz2 and tar -xf soylatte16-i386-1.0.tar in the Terminal), and then symlink to it from /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home, so NetBeans can find and identify it as a JDK in the Java Platform manager. Afterwards don't forget to go to the properties of the project you want to use it with, and switch it to use the SoyLatte Java platform.

It seems to make sense to place SoyLatte in the /sw/ directory, but if you save it to a directory in your home dir instead, then you can compile and run the demos and samples that come with it as normal user. I do have X11 installed, but I haven't figured out how I can make NetBeans run the demos directly in X11, although it readily recogizes the projects as netbeans projects. (If you figured it out, leave a comment.) If I run the samples from the commandline in the X11 terminal, they don't look pretty ;-) (as expected), but they work well.

In case you like SoyLatte so much that you want to get rid of the developer preview jdk, read Joshy's blog.

PS: Two people asked recently, so if you don't know either how to set up the javadoc popups in netbeans, here's an 'F'AQ answer to you.

Thursday Oct 25, 2007

Hi I've Got This Great Idea For Mac OS Leopard

Somebody pointed out to me this Mac rumors thread -- how to get rid of the glassy look of the dock in the new Mac OS X (10.5) Leopard in case you want to. Glassy dock? When we were young, we had no glassy docks! Of course I immediately went to have a look at Leopard to see what this was all about.

  • Nice file browser (I always wanted to browse through my .txt meeting notes in 3D, muhahaha.)

  • Virtual screens (Spaces). This is a bit last millennium, but a dearly missed feature.

  • Cute, you can write email to yourself. Not because you're desperate, but as a note to yourself. It is saved in your inbox and accessible everywhere you can check mail.

  • Data Detection - click into an email that says something like "this Friday at 14:00h" and a plugin creates an iCal event at the (hopefully) right day and time. Does it also work in localized systems? "What do you mean, Zischtig is not a date?!"

  • Scary iChat Theater: Exchange screen contents with an unsuspecting chatter and take over his mouse! (Dang, the other party has to agree to it... :-p Bummer.)
    iChat video conference with built-in Quicktime and Keynote-presentation viewer ("Hi boss, sorry, no time, I'm uh ... working on your preso! ... You want to see it? ... Now? ....").
    It even tries to chromakey your background out and replaces it with whatever you like ("Hi this is Seapegasus reporting live from a Yosemite park video loop! Oh no wait it's the Fishmaster clip actually, hold on a sec" \*browsing media\*).

  • And cool automatic file versioning and backup (Time Machine) too. That reminds me, recently, for the first time ever, honest, I had, well how should I put this?, a small typo in a certain terminal command, you know what I mean? Without going into detail, let's just say for the knowing, it involved rm -rf, a directory path ending in an asterisk, an an spare blank space. Before the asterisk. Anyway.
    Although the Finder is localized to display the Desktop as 'Schreibtisch', luckily the Terminal isn't: To the Terminal, the Desktop was still at the top of the alphabet where it belongs. To make a long story short, the Desktop folder heroically threw itself in the way of the hungry rm -rf and gave me the second needed to cancel the command before it reached the next directory in the alphabet -- Documents.
    This day I learned two things: a) In cases of emergency, my brain reverts back to using MacOS 7 keyboard shortcuts (such as Apple-dot to cancel) and b) A nice Apple engineer has mapped the Apple-dot shortcut to the appropriate control-C for the Terminal. Phew.
    The Desktop folder contained a couple of unsaved notes (did I mention that my backup scripts runs Sunday nights, and it was Sunday morning?), but up to now, I haven't missed anything... BTW, you can easily recreate an empty Desktop folder and MacOS will accept it back into the family (just don't forget to restart the Finder).

Where was I? Oh yeah, the Mac OS Leopard preso. Seems the new dock has a 3D look. And I mean really 3D. The surface reflects stuff. Wow! \*Moves nose close to screen\* No. Wait. It only reflects open windows on your desktop and stuff. It doesn't really reflect.

Oh come on. I mean, every Mac that can run 10.5 also has an iSight, right? So here's my cool idea: Record the user (with the iSight) and have her reflection in the icons! ... :-D ... No? :-( But hey if this feature shows up in MacOS 10.6, then you know where they got in from.

PS: No Java 6 on Mac OS Leopard?!

Saturday Mar 31, 2007

Turbo Quicktime Encoding

I just wanted to show this (macnews) and this (MacWelt) to a colleague of mine, but noticed that there are no English articles to be found describing this new piece of hardware, so I just write one myself.

Elgato Turbo 264 is an external CPU in a USB stick. When you encode a lot of H.264 Quicktime movies (for iPod or Apple TV), you know how it maxes out your Mac's CPU(s), and still takes between 4h and 20h to encode one movie? Right, so the idea is to let this specialized additional CPU do the encoding for you, and take off the load of the main CPU.

The main advantage is of course speed: The tested prototype's statistics for encoding a 1 min long 640x480 video on a Mac with 2 G5 CPUs are: 3.5 min (without turbo), versus 46 secs (with turbo). Presumably, if you already have an uber-fast Mac Pro, the speed gain is less noticable, but for everybody else it should make a big difference.

The included software comes with a plugin that adds the hardware encoding option to the Quicktime Exporter menus, e.g. in EyeTV, iMovie and Quicktime Player Pro. It also support a video format compatible with Sony Playstations somewhere. If you don't have Quicktime pro, you can get the functionality (\*) included in the stand-alone version of the product.

And why am I advertising it? Let's say I might know someone who may or may not possibly have had a hand (or two) involved in the development of the software's spiffy GUI. ;-) (Sources: MacWelt and MacNews)

PS: (\*) To be more clear, the stand-alone version does not contain a QuickTime Pro license, but something with equivalent functionality by Elgato.

Friday Mar 23, 2007

MacOS Screengrabber Death Match

Yesterday night I was looking a for a screengrabber for Mac OS. Something simple to record a video tutorial with, or grab cool scences out of video games. Built-in audio recording would be cool but has lower priority for me.

So I went and I tested the following five screengrabbers: iShowU, Screenography Light, Screenmimic, AlphaOmega Screen Movie Recorder, and Display Eater. All applications were universal builds and ran fine on an Intel core duo Mac with Mac OS X 10.4. In all cases I could just drop the resulting quicktime file into iMovie and start post-editing; if it was a flash movie, I could play it in the browser. (\*) When I mention localization, I am referring to the German one.

Welcome to the Mac screengrabber deathmatch:

iShowU (demo)

The demo version runs fast and makes a good impression. It comes with a row of sample settings (high and low quality) to choose from. The customizable settings are clearly structured and cover what you need (mouse visibility, quality, various Quicktime compression formats). The tool is able to record system audio and microphone input. The interface to specify various recording area sizes is well done too (includes even a "follow the mouse" setting). Minor nit: The de(\*) localization was only partially finished resulting in confusing dialogs like "Wenn Sie alles löschen wollen, then click yes: Ja/Nein?" (not literally, but similar).

The demo leaves a watermark on the movie to encourage you to spend $20 to unlock it -- which it is certainly worth if you regularly record quicktime screencasts with audio.

Screenography Light (demo)

Screenography Light is basically a screenshot utility that is also able to record movies. The application runs in the background without displaying an icon in the dock. You specify a keyboard shortcut to open the Screenography palette that lets you start and stop recording. The only way to specify the recording area is by dragging the mouse, then you hit the "start" button. Hit the keyboard shortcut again to stop recording, and export the movie as Flash or Quicktime. Minor nits: After generating an SWF file, Screenography tried to open the flash movie with QuickTime, which obviously failed; also the generated flash movie does not come with any generated HTML with size settings, so unless you happen to remember the exact values, the movie will look distorted in the browser.

The demo leaves a watermark on the movie unless you pay $10 for the light version, or $40 for the Pro version that also supports audio, and has more options. Seems worth the money if you need a quick and simple tool, and switch between Flash and Quicktime formats a lot.

Screenmimic (demo)

From the start, Screenmimic guides you through the set-up and recording process with an easy-to-use wizard. It records either full screen, a selected screen area, one specified window, or the recording area can follow the mouse. You can also set a timer after how many seconds the recording should start. Screenmimic records audio from the microphone/line-in only. It can export movies in Flash or Quicktime format, with or without a visible mouse pointer. Minor nit: Going through the wizard to start recording will likely annoy me before long; above all, pressing Apple-N didn't re-start the wizard as I expected, so I had to quit and restart the app to record a second movie.

Unless you shell out $65, the demo version records only 30 sec, and it leaves a watermark on the movie. You might want to consider this tool for easy mass-production of Flash web pages, since Screenmimic also generates the embedding HTML code snippet for your movies.

AlphaOmega Screen Movie Recorder (freeware)

It may not look as professional as the other apps, but it does have the minimum set of features, and the workflow is clear. Choose "start recording" from a green dot menu appearing at the right end of the menubar. Next select the screen area by dragging a rectangle with the mouse, and there you go. After you select "Stop recording" from the red dot menu, Screen Movie Recorder immediately generates a .mov file on your disk. That's it.

Cons: Not 100% stable (crashed my Finder once), supports only one file format (.mov), no options at all, no audio, de(\*) localization is faulty.

Pros: Screen Movie Recorder is a no-frills tool that leaves no watermark, it is free, localized, and easy to use.

Check out their homepage, alphaomega have many more small applications to offer.

Display Eater (shareware)

Nice and smooth interface, without having to think twice I recorded a useful screencast. Open Display Eater, click "Start recording", and determine the recording area by resizing a rectangle. (You can also save your custom size setting.) Move the Display Eater window to a spot where you find it again, and hit "capture" to start recording. When you're done, go back to the main Display Eater window and click "stop recording". After recording all the scenes, press "Settings" to specify the movie format (e.g. MPG-4). Then press "save" to convert each scene into a quicktime movie.

Cons: No audio, crashed once, recorded mouse pointer is out of sync.

Pros: Display Eater is a free no-frills recording tool that leaves no watermark, and despite being shareware I encountered no time restrictions in this version (I tried 3 min); it is lightweight, stable, easy to use, and has configurable mouse recording. The author plans to open-source the code one day.


If all you want is a literally quick QuickTime movie, and you don't need any live audio, then you can get pretty far with no-frills freeware. Remember you have the option of adding an audio track using Apple iMovie later. And if your work requires you to output Flash movies, or you cannot do without live audio recording capabilities, you can choose from reasonably priced tools. For the time being I'll stick to Display Eater and see how far I will get.

If you are interested in this topic, read Where's the killer screencast app for the mac? and Mac options for capturing video of your screen.

Friday Feb 16, 2007

Java Thread Dumps and Other MacOS Hacks

Since recently, my copy of NetBeans ponders the developments of world history after each launch, before it deigns to become responsive after 3-4 minutes. So Petr N. suggested to have a look at the Java thread dump. But how?

First I looked in the wrong place: I noticed the IDE was wasting cycles because I saw it in the Activity Monitor utility that I had put into the dock. You can set this utility to show the CPU state (or network load or RAM usage) in the dock's icon. So, first I clicked the Activity Monitor's Analysis button to get a thread dump; but then I noticed this only shows system threads, and not java threads...

So Petr pointed out to me the generating thread dumps section on the NetBeans QA homepage. The tips there do half the trick. It tells you to start the application from the Terminal, and then hit ctrl-\\ to generate the thread dump. Usually, it is output to a file.

But how do I start a MacOS .app file in the Terminal? You can't just type in /Applications/ into the Terminal utility and hit return.

open /Applications/

only works to execute the app in the Finder, but that's not what we want. What we need is the app's package content. Inside the package you will find the UNIX-style executable.

In the Terminal, the right path to NetBeans' package content looks like this:


If you get an error message, go to the Finder and right-click onto the symbol, then select "show package content" to identify the correct path by looking at the directory structure in the Finder. You can drag and drop the last ...bin/netbeans file icon from the Finder into the Terminal window to make sure to get the path right!

Press enter to start the application in the Terminal. To trigger the thread dump of the running application, hold down the controlkey and hit backslash (ctrl-\\). On Mac OS, the output goes straight to the Terminal, not into a file. Copy and paste it into a text editor if you want to keep it. Notice that the terminal is irresponsive after you started NetBeans from it that way -- this is normal, the freshly started foreground process blocks further input to the terminal until you switch the process to the background. If you don't need the Terminal anymore, leave it open.

If you need to use the terminal (and don't want to open another window), do the following:

  • Press ctrl-Z -- this stops the currently running process and you regain access to the Terminal. Note the application (NetBeans) will be paused and irresponsive now!
  • Then type bg into the Terminal to make the last stopped process run in the background. Note how NetBeans becomes responsive again, and the terminal accepts input too.
  • Alternatively, you could have typed fg. This would make the last stopped process run in the foreground again -- and like before, it would be blocking the terminal.

The latter option is not very useful for applications like NetBeans, but for Terminal applications that actually run in the Terminal window (such as top). If you want to stop such a process for a second to quickly check another command, go back to the Terminal by pressing ctrl-Z, and resume the process by typing fg.

Watch out, if you close the Terminal now, it will take the child process with it -- and thusly force-quit NetBeans! When you click the close button or quit the Terminal utility, you will get a warning. Note how it says "[...] will quit the processes bash [...] and java" -- the java process is of course NetBeans. But you only need to run the IDE this way to get a thread dump once, you would not do that each day.

I detected some other useful MacOS shortcuts this week (you might know them already, but in case not): Most people know they can switch applications by pressing Apple-tab and Apple-shift-tab. Similarly you can switch windows within one application by pressing Apple-`on a US keyboard or respectively Apple-< on a German one. Part of the reason why I never used some of those was my confusion about the various keyboard layouts. I switch so often between different keyboards (Apple, PC, Sun; laptop and desktop), different languages (German, US, British, Czech), and different operating systems (Mac, Linux, Windows) that my brain gave up keeping track with all the shortcuts. E.g. on a standard Mac or PC desktop keyboard, the ctrl key is in a different place as on a Sun keyboard, and it's different again on a MacBook... Aaaargh... But this window-switcher shortcut is always at the bottom left of the keyboard, so I trust my brain will be able to handle it. ;)

Another useful keyboard shortcut from a similar context is the one that switches keyboard layouts. I need it quit often (reason: see above). It used to be Apple-space, but I think this is Spotlight now. This is why I always go to the System Preferences for Keyboard & Mouse first to fix the keyboard shortcuts: The yellow warning sign next to a shortcut means it's double-booked. In this case double-click the entry to change it by typing in the new shortcut. I chose ctrl-space to switch the keyboard layout because that's similar to Apple-space. Now you can quickly switch between international layouts, which is useful for people who are able to touch-type in another language, e.g. if you quickly need a Czech Haček or a Germän Umlaut.

Have a look at the other shortcuts too, while you are there. Did you know that Apple-Shift-D looks up a word in the dictionary? I couldn't get it working with a German locale to look up English words, but it works well in an anglophone locale. (But don't even think of using it while writing a message in Apple Mail, where this shortcut will send your email half-finished!) And if you don't know the screenshot schortcuts yet, they are worth knowing by heart. Tip: If you press Apple-shift-4 and then immediatly the spacebar, you can select a window to take a screenshot of.

PS: Woah, when I wrote that about the dictionary pop-up, I just recalled a dream I had last night. I don't remember anymore who the dream character was, I only remember that I called Apple-shift-D on him while he was walking around... So the window popped up... and he fell over it... \*giggle\* Children, don't try that at home!

Monday Jan 08, 2007

Wii is For Whiimps

You know what's really cool? Playing Tilt Scream Pong. With the Apple Sudden Motion Sensor. Yeeeaaah. (Thanks to Talley for pointing out the link)


Friday Sep 22, 2006

Polygons! They Are Everywhere!

Woah. Recently, when I look at buildings and streets, all I see is vectors, polygons and vertices. I had taken the first week of September off and, among other things, had a closer look at some 3D (game) engines, and 3D mesh editors. Mesh-editors are those tools to create 3D objects that you use in the 3D engine later. The engine is the piece of software that renders the 3D objects live and - if it has a game physics component with gravity and collision detection included - lets you walk through the 3D scene.

I had tried to write my own 3D engine in Cocoa once, not because I thought it would be better (in fact my demos were quite inefficient), but just to understand how basic 3D rendering algorithms worked. Pretty interesting stuff though!

  • First, there's the Bresenham algorithm for drawing lines as approximations (stair-stepping pixels). It can be adapted to draw filled polygons too.
  • Next you need to implement the projection formula that renders a 3D object in memory as a 2D image on the screen.
  • When you got that part set up, you need to deal with transformation formulas for rotating, scaling and translating (moving) wireframe coordinates.
  • Then when drawing an object, there's a formula to identify and cull backfacing polygons -- since your program will stubbornly render all 6 sides of a cube simultanously unless you tell it not to.
  • The next issue is similar: As soon as you have more than one object in the scene, you also need to deal with overlapping polygons, and your programm can't decide the criteria on its own which of the overlapping polygons to draw and which not -- so you need algorithms for hidden surface removal. Actually, you can choose between two of them:
    • The painter's algorithm simply sorts all polygons in the scene by depth, and draws all polygons from back to front, so that front objects are drawn over the background as it should be. A lot of redundant drawing, but works.
    • A more efficient but complexer solution is the z-buffer algorithm: The z-buffer is named after the z-coordinate (depth). The buffer itself is implemented as a 2D array that stores each pixel's depth value -- because depth is the information that is lost when projecting a 3D coordinate to 2D coordininates on the screen. For every pixel P you draw to the 2D framebuffer, you check the z-buffer at the same coordinate: If there already is a lower (closer) depth value recorded, you don't draw P, since it is be behind another existing pixel. If there is no recorded pixel depth yet, or the recorded depth is further away than P's, you draw P to the 2D framebuffer, and record P's depth for this coordinate in the z-buffer -- etc.
    You need to interpolate most of the z values, and although I think I understood the math behind it, I have to admit I never went and implemented this part...

Well, my own "3D engine" never reached any degree of usefulness beyond a study project. That's the reason why I eventually started looking into existing 3D engines and mesh editors for MacOS:

  • The first mesh editor I tried was ArtOfIllusion. It is free, platform-independent, very easy to learn, and it exports 3D objects in Wavefront's widely used .obj and .mtl format.
  • I also tried the infamous Blender. If you ever used it, you will certainly recall your first impression. Are they serious about the UI?! Yes! Blender is to mesh editing what vi is to text editing. Not exactly intuitive, but as soon as you learn you are meant to use all three mouse buttons in sync with keyboard keys, it slowly starts to make sense... Luckily there is a Blender tutorial. Mac users note that it's possible to use Blender with Apple's MightyMouse, but it's not optimal.
  • Last but not least: The 3D engine I looked at is Irrlicht, a free platform-independent c++ library. I wrote down the steps my brother showed me how to compile the library and set up a Carbon project for MacOS X: Irrlicht in Apple XCode. There is still one open question at the end (about textures), but it should be enough to get you set up and running.
Have fun playing with 3D stuff on your Mac. :-)

Saturday Jul 22, 2006

I've Got No Mouse But I Must MacOS

My Mac's mouse died. Not the fancy green Apple mouse, a plain gray 3-button-mouse that I had bought in the old days when I installed some PPC Linux on a spare partition. (But then I messed up the boot-loader and I haven't seen it ever since. I wonder what became of this partition?) The mouse had already been displaying signs of unwillingness to discern between dragging and clicking for quite a while, so it did not come as a surprise when it stopped clicking for good. Still, I couldn't find the original mouse, and hadn't gotten a new one yet...

So I'm facing the question one night -- how do I use MacOS without a mouse until I get a new one?

I just wanted to check my email, so I hit shift-command-A in the Finder, the shortcut to the Applications directory, where I could select and open the Mail application with the arrow keys and by pressing command-o. (Why not use command-tab for selecting applications in the dock? Well, that only gives focus to applications that are already running.) Luckily, I was reading my main inbox before I quit Apple Mail last time, so the focus was on the right mail folder -- because I had no idea how to select another folder without a mouse...

If you now say "Dude, hit Alt five times and then ctrl-F1" -- you're so clever you're not even kidding! Yes, after a while, I actually remembered that crazy trick. It results in a gear-like sound that makes you expect a Myst linking book to appear in a hidden compartment. But instead it (ta-daa) activates MacOS's hidden Accessibility features. (If pressing those keys doesn't do anything for you, you need to permit its use in the System Preferences.)

Accessibility gives you some pretty cool keyboard shortcuts -- Who needs mice anyway! :-P Need a menu command? Hit ctrl-F2, and then the arrow keys and return to select. Wanna start an App from the Dock? Hit ctrl-F3. Need to switch focus to another window? ctrl-F4. Need to select GUI elements like buttons and textfields within a window? ctrl-F5 and then the spacebar to press a button (But only Apple programs seem to support that feature, e.g. Firefox doesn't).

But for the live of me, I can't figure out how to jump to the next pop-up menu in the preference panels, since the arrowkeys keep on selecting items from the first pop-up -- any ideas? In these cases (and to reach a mail folder or to move a file in the Finder), I still need to move the cursor and click -- I use the numeric keypad and I'm cruising along happily, completely mouseless. Groovy. Did you know MacOS could do that? :-)

Friday Jul 07, 2006

New iPottery

The new iPods will either have a phone keypad, a scroll/touchpad, a biometric fingerprint pad, or a Nintendo game controller, or no controller at all (which of course suggests speech recognition capabilities above and beyond the current state of the art). In any case, they will definitely come with two bodacious zebra stripes! Woot! Or maybe not... Maybe Apple just quickly trademarked each and every design they could think of. Just in case... ;-p

Sunday Jun 18, 2006

AppleScript, Zombies, and Uncanny Valleys

I liked HyperTalk, but never got anywhere with AppleScript... I like Pixar but can't warm up to Disney... Now this all makes sense! Ever heard of the Uncanny Valley? No, not the one in California. The Uncanny Valley effect is not strictly a scientific theory, still it explains at least one of the weird things in live pretty well. :-)

In case you didn't have a Mac in the early nineties: HyperCard was an all-in-one tool famous for its English-like programming language, HyperTalk. Even if HyperCard today lost its position to the technologies it had inspired (wiki, hypertext browsers), it was the best a programming beginner with a Mac could get those days. HyperCard was cool cause it gave you the opportunity to also program games instead of only playing them.

Today, MacOSX still comes with an offspring of HyperTalk that was extended to be a AppleEvent scripting language: AppleScript. The fact that AppleScript syntax still resembles the English language seemed the perfect solution for users who didn't want to dig into the details of UNIX shell scripting! Unfortunately, AppleScript turned out to be the opposite of Perl: Easy to read, but hard to write.

tell application "Finder" to set my_list to every item of folder "Documents" of home whose name starts with "A"

Possibly, the concept did not scale to work as a systemwide scripting language: Despite the language being modelled on the English language, the vast majority of users never managed to quickly write a semantically correct AppleScript from scratch... I'm pretty sure that AppleScript even was the major reason for many MacOS X users to learn shell scripting. It definitely was for me. =-) Of course, the bash scripts' front- and backslashes coupled with three different kinds of quotation marks are by no means more readable, but the success rates for getting the script to run in the first place are much higher in bash.

I remembered my short dabbling in AppleScript when I read the Uncanny Valley of AppleScript. Interesting theory: Switching your mindset to communicating in "natural language" changes your expectations toward the conversational partner. And when the partner is only a program, it will certainly not fulfil the expectations. Eventually, the discrepancy between the implicit promise of a natural conversation and the program's stupidity can be very infuriating.

What is this 'Uncanny Valley'? When Masahiro Mori plotted people's acceptance of anthropomorphic robots in a chart, he started out with a box on wheels, and worked his way up to C3PO-like robots. As expected, the subjects' acceptance towards the robot character increased. He was however surprised to find that acceptance flipped over to repulsion at a high point of anthropomorphism: Very life-like robots and CGI animated characters were suddenly considered nothing but horribly wrong zombie-puppets. 8-| That may be just perfect for Terminator and I Robot, but I think at least Tom Hanks had different plans in mind for his main role(s) in Polar Express. (Already horror enough to everone who doesn't like Tom Hanks...) ;-)

Some things start slowly making sense: One of the most well-done animation movies, Final Fantasy was quite a dissapointment at the box-offices. Instead, the crowds flocked to Bugs, Nemo, Monsters and The Incredibles, whose characters do act human, but clearly look like cartoon characters. (As an aside: The most loveable Pixar character of all times is Luxo, the desklamp. No face, no eyes, no feet, nothing. A desklamp!) On the other hand, people loved the very human Cyberpunk character Max Headroom. Wanna know why? He wasn't computer-generated at all, but played by Matt Frewer and then post-edited to look like CGI.

The German wikipedia entry mentions two more examples of potential acute Uncanny Valley syndrome: At the CeBIT convention, visitors totally loved the adorable vacuum cleaner bots. These bots were appearantly driven by very human feelings like hunger and got excited everytime a mean visitor blocked their way to an electrical outlet when they wanted to recharge. On the other hand, adults at the same convention shunned the much more carefully designed humanoid robots, and some children where seen running away crying when the androids approached.

Possibly, there are too many small details we are aware of in Real Healthy Living Humans™. Not only in the Final Fantasy movie but also in the great Diablo II cutscenes, I often found myself pondering strange things like the speed of gestures...? inertia of body parts...? visibility of sinews and muscles...? Are those characters dead, hollow, or suffering from an overdose of Botox...? etc. I get the impression that maybe even speech technology applications suffer from a problem very similar to the Uncanny Valley: Users feel mocked by a speech recognition service that e.g. understands perfectly well that you want to order a train ticket for next Sunday evening, but then politely insists on Novosibirsk instead of Nuremberg. Well, good news is, we can look forward to lots and lots more of speech recognition applications, antropomorphic robots, and live-like animations in the near future — so if there is anything to that Uncanny Valley theory, we will have the proof soon enough...

PS: Another example, this innovative leight-weight Android named Lara from Germany was build not to fall into the Uncanny Valley trap. (Click "Bilderstrecke" to see more detailed photographs.) Interesting, let's see how they will fare.

Monday Apr 10, 2006

Hot Chocolate, anyone?

Ondřej Čada wrote a series of articles that teach you the basics of programming in Apple Cocoa (Objective C) in Czech: Nastal čas na kakao. (He wrote some more stuff about NextStep, MultiMedia and WebObjects, too.) Looks like a good chance to catch two birds with one stone: Improve my knowledge of Cocoa and my Czech reading skills. And a third bird comes to mind: Why not take the print-outs to Cafe Louvre (around the corner from Tesco near Narodni Trida) and read about Cocoa while drinking hot chocolate... :-)

Sunday Feb 19, 2006

Exporting Bookmarks from Safari 1.0

Safari 1.0?? Yep, this is a low-end Mac tip for those of you who are still using an old iMac that was delivered with MacOS 8.6 and that (for some weird reason) let itself be updated up to MacOS 10.2.8 over time. (Forward compatibility will be the death of Apple once -- why should we buy new machines if the old ones run nicely for 7 years?)

Anyway, Safari 1.0 doesn't cut it anymore in 10.2.8 after a while. You can't update it to Safari 2.0 unless you upgrade to MacOS 10.3, though. Which I won't do, because honestly, 10.2.8 is the highest you ever want to go with a G3/333Mhz/288MB RAM machine that was built in a time where you could send a whole Mac usergroup laughing themselves to bits with just considering the idea that MacOS might be based on UNIX once, or -- even more hilarious-- run on Intel chips!

So I had installed Firefox 1.0 and wanted to export my bookmarks from Safari 1.0, or, have Firefox import them for me — an option which alas it didn't support. So, if any of you low-end Mac users are in the same situation, here's the solution: Install Camino >1.0 or Firefox >1.5. For, even if Firefox 1.5 may be a bit slow on a low-end Mac for everyday use, or, even if you are missing your favorite extensions in Camino, you can at least use those browsers now to convert old Safari 1.0 bookmarks from .plist format to more general-purpose HTML, and even export them back to .plist!


NetBeans IDE, Java SE and ME, 3D Games, Linux, Mac, Cocoa, Prague, Linguistics.


« April 2014

No bookmarks in folder