Friday, August 19, 2011

Using Launchpad as Applications folder replacement on Mac OS X Lion

Hey what a beautiful title...

So in case you're like me and decided to give Launchpad a chance, I give you a small tutorial on how to make the transition as painless as possible.

As Apple obviously does not want me to use a Folder but an App (...blah blah...killing the desktop metaphor...blah blah blah....) I thought, I want the Launchpad App EXACTLY at the same position as I had my Applications Folder, meaning the first item in the Dock, right of that boundary line (no pictures for that, I'm sure you know what I mean).

Ok so the most obvious attempt was, simply trying to drag the Launchpad App over the boundary line, but that does not work (why should it be THAT easy anyway...).

So, second try, lets see whats in the Dock Plist (a Plist, or "Property List", on Mac OS X is a XML structured Config file which Apple uses throughout the whole system). This time, as you will see, I was more lucky.

The Plist file for the Dock is named com.apple.dock.plist and can be found in ~/Library/Preferences. In Mac OS X Lion, the Library Folder is hidden, so its not too easy to mess up the system.
Before starting (to make things easier for you when using this Tutorial), make sure the Launchpad App is actually in your Dock, so it looks something like this:
InitialDock

Our goal will be to move the Launchpad App to the right of the boundary line:

1. Open Finder and press CMD+Shift+G which opens the "Go to Folder" dialogue and enter "~/Library/Preferences" and hit Enter. This will move you to your Preferences Folder (surprise, surprise).
GotoPreferences

2. Hooray, we are in the Preferences Folder, now look for the com.apple.dock.plist File
TheDockPlistFile

3. Open the Plist File, there are 2 properties that are of special interest to us, the array "persistent-apps" and the array "persistent-others". persistent-apps is the list of Apps in your Dock (everything left of the boundary line), persistent-others is the list of Items right of the boundary line. So what we are doing is moving the Launchpad item from the persistent-apps array to the persistent others array. The Launchpad App has the bundle identifier com.apple.launchpad.launcher, go and find it!

4. When you found it simply mark the whole Item, in my case I would mark Item 0, then copy it (CMD+C) and paste it to the persistent-others array (CMD+V). Afterwards you can delete the Item in the persistent-apps array (simply by Backspace)

5. We're almost finished now, first save the Plist (CMD+S) and close it (CMD+Q) and finally we need to restart the Dock so the changes have an effect. For that open Terminal, enter "killall Dock" and hit Enter.
KillallDock

6. Watch your Dock restarting and voila, Launchpad is in the correct place. So in case everything went right, your Dock should look something like this:

7. Finally, to get the best out of Launchpad and to increase your productivity another bit, set a Keyboard shortcut for launching Launchpad. I'm using CMD+`, which makes it easy to quickly fire up Launchpad with my left hand. You do that via System Preferences/Keyboard on the Tab Keyboard Shortcuts.


Sunday, June 26, 2011

Mac OS Kernel Panic after Update to Mac OS X 10.6.8

If your Mac is not booting after updating to Mac OS X 10.6.8 (like it just happened to me), you can try the following for a quick troubleshooting:

  • Start your Mac in Safe mode (pressing shift during startup), if it that doesn't work, try the verbose mode which should be pressing CMD + V during startup
  • After startup you should get a System Crash Report, indicating what caused the mess-up. My Crash Report looked something like this:Screen shot 2011 06 25 at 12 16 38 AM
  • The important information here is right on top, com.metakine.handsoff.driver, so its a pretty good guess that Hands Off is fucking the Kernel in an unpleasant way during startup.
  • Well after you got a similiar information about (most likely) some driver problems you have 2 options:
    • Get out your Time Machine Volume and move back in time before the Update, reboot in normal mode, install an update for the driver/App that is causing the Crash (in my case, I installed an Update for Hands Off, gladly they had one...) and finally redo the Mac OS X Update
    • If you don't have a Time Machine Volume (which you really should have, and if not, GET ONE NOW!!!!), you could try to install an Update while in Safe Mode (which you really should ONLY do if you know what risk that implies or you are REALLY, REALLY desperate....) and reboot again in normal mode.
  • If everything is up & running again, relax, congratulate yourself and have a beer!

Sunday, March 6, 2011

On Artificial Intelligence

Whenever you read an article or a book about AI, 2 questions or arguments are, explicitly or inexplicitly, mentioned or discussed in it.

1. What is intelligence?
2. What is Consciousness?

In the field of AI, it is common to say that a machine is intelligent or comes close to human intelligence when it would pass the famous Turing Test. The Turing Test is as simple as it is ingenious. You have 2 test subjects, 1 human, 1 machine and 1 interrogator who interviews both. The machines task is to convince the interrogator that it is not a machine and the human test subject tries to convince the interrogator that he or she is indeed a human. The interrogators task is to figure out who is who. An intelligent system would pass the Turing Test if the interrogator refers to it as human (On more and better information about the Turing Test, read Turings paper:  http://loebner.net/Prizef/TuringArticle.html).

I would consider the Turing Test as a valid indicator whether or not a machine is intelligent, however, I don't think even all humans could pass it. Take that example, we are not considering machines, who are able to solve painful equations and proof punishingly hard theorems as intelligent. Why? Because they are machines and are supposed to be able of such incredible math magic, AND because they won't pass a Turing Test. Just think of Deep Blue, an incredible chess machine, yet would not be able to answer the simple question: Whats your favourite music band? (Well, it may answer, "Queen"...;-)). Or take Watson, a machine capable of natural language processing, but I strongly doubt it would make it through Turings Sonnet example or even the chess example. Now to humans, take Grigori Perelman, or other mathematical geniuses. I really do doubt if they could pass the Turing Test. The main point is, we take those humans as absolute geniuses and often take their inability of participating in a normal conversation as another proof of their ingenuity.

Another aspect of why we consider machines as not intelligent are our expectations to the capabilities of machines. We often expect them to know everything and that instantly, which I think is just plain wrong. Intelligence is something that needs time to evolve, as in humans, humans are no nobel laureates by birth, neither are machines. Just take genetic algorithms or neural networks, both need time to come to correct results, but if you give them their time, they become truly intelligent.

But lets come back to the question of what intelligence really is. I think intelligence is a lot about diversity, great diversity, learning and a good amount of randomness. From mathematicians to painters to comedians is the form of how intelligence manifests itself in one person hugely diverse. Through genetic inheritance also comes a lot of randomness and finally our knowledge, which is a result of intelligence comes mainly from learning. At its heart, intelligence may be reduced to pattern recognition and statistics (= experience). When we have to make a decision, we try to find similar situations in our memory (pattern recognition) and try to recall our decisions of what had worked and what not, and derive from that an answer or a decision to our current situation (statistical analysis). The result of our decision, as well as the whole situation, is instantly stored in our memory again, thus, we have again learned something and gained more experience.

What about consciousness? Humans are aware of themselves, and they are aware that they are aware of themselves, and so on. But are we aware of ourselves when we are born? Or is our self consciousness simply a result of other people interacting with us, therefore an evolutionary process? We are a species capable of language, therefore our interactions can be considered as more complex than of say, cows for example. Is our infinite strange loop of consciousness simply a result of these high-sophisticated interactions? I believe it is.

What about the future?

I believe the Turing Test will remain valid as an indicator whether or not a machine deserves the honour to be called intelligent. But at a certain point we may have to fine-tune the Turing Test a little, for example to test the learning and pattern recognition capabilities of test subjects. For example, in a Turing Test interview, the interrogator includes the story of a little riddle (e.g. one of those milk can riddles) into a question about history. The interrogator also tells the test subject one solution of the riddle, but not the optimal one. A few questions later, the interrogator then asks that riddle question in a little different form, say, not milk cans, but oil barrels. For a machine, it would be a simple straightforward logical task to solve the riddle and find the optimal solution. However a human test subject, will recognise the riddle as the one just heard a few questions before and will most likely tell the interrogator the solution heard in the story told before.

With that point reached, Ray Kurzweils prediction about the point of Singularity will be REALLY near.