When trying to downgrade an iPad from 4.2beta to 3.2.2 directly via iTunes, I just get a non-descript error message. However, there is a nice howto out there, which describes this.
Author: root42
Frogatto and Friends
An absolutely cute 2D, very classic jump and run game is Frogatto and Friends. It is for free, comes even with source code. Only the iPhone version does cost a bit. But I guess that is a nice way to support the developers. The game is crossplatform, running on Linux, OS X, Windows and, as mentioned, iOS devices. I assume, if you take the source, you can make it run on several other platforms as well. The music is nice, the characters lovable, and the levels have a great amount of detail. Controls are simple: cursor keys, plus A and S is all you need. What surprised me was that the music is stored as .ogg files, although it sounds like tracker songs. Thus it makes up 90 MiB of the game data, the whole game being slightly over 100 MB in size. Anyway, download it and have fun!
Emacs in Ubuntu…
…it’s buggy. I tried the snapshot, but that behaves strange as well. My workaround so far is to go fullscreen. Still, customize is broken: the customization buffer shows up in the wrong buffer. I haven’t found a bug description for that yet. Also, the git interface does not work. I will install magit next, to see if that helps. Anyway: Emacs on (K) Ubuntu is in bad shape…
Update: I fixed the first two problems. Turns out, emacs-snapshot does work, I just forgot to de-install emacs23-gtk and install emacs-snapshot-gtk. Thus I still fired up the old version. Customize works as well now, after uninstalling cedet and ecb, and instead using the latest ecb and cedet from Sourceforge. The versions shipping with Kubuntu are slightly out of date and were causing the buffer problem.
Truecrypt + ext2/3 + Linux AND OS X
Ok, so the combination of Truecrypt and ext2/3 is not optimal for sharing data between Linux and OS X. Truecrypt and fuse-ext2 on OS X cannot mount an ext2/3 partition read-write. So I will now go back to the lowest common denominator for all OSes: NTFS…
Update: Yes, it seems NTFS is a good alternative. With both OSes using NTFS-3G, I can use the Truecrypt file on both Linux and OS X — and even Windows, if I had one… Creation of a 200GB Truecrypt file takes time, though. And copying all the data to it, even more.
Description of Apple’s Keynote file format
What a nice surprise. Apple has actually documented the Keynote file format. Sadly, as far as I can see, there is no import/export capability in either PowerPoint nor OpenOffice.org Impress. That would be a nice feature. But it’s good that Apple does document the format. Since it is XML, it is easy to parse. However the hard part is always the semantics, not the syntax…
Akonadi Hell
Which sick, twisted mind designed Akonadi? Everytime I run Kontact for the first time, it will fire up a dialog, presenting me with strange errors that happen upon running Akonadi. The second time around, it works fine. This is, by the way, on a fresh KUbuntu 10.04 installation. Sometimes, a little bit more Q/A on complex FOSS projects would be really, really nice.
Update: Plus the display of Google contacts using Akonadi (in the KDE address book) is totally borked. Well, good thing I only change my contacts through MobileMe or the iPhone, and push those changes on to Google…
Spherical Harmonics Explorer
I have written a neat little Spherical Harmonics explorer. Right now, the projection function has some weird bug still, but the basis functions, and arbitrary combinations of them can be viewed nicely. The tool is written in Python, using PyQt4 and PyOpenGL. Python is excellent for prototyping such a tool. It might not be as fast as C++, but the rendering speed using PyOpenGL is more than enough and very smooth. I might put the small 3D viewer widget online later, because it might be useful for many people. Here’s some eyecandy:
Selecting between overloaded signals in PyQt
The signal mechanism in Qt allows for overloading. E.g. the QSpinBox comes with two signals called valueChanged(int) and valueChanged(QString). However, since Python is dynamically typed, such overloading gives rise to problems. Here is how you can select which signal you want to connect to your slot:
from PyQt4 import QtCore, QtGui, uic
class MyMainWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.ui = uic.loadUi("MyMainWindow.ui", self)
# Slot connections
self.ui.spinBox.valueChanged.connect(self.spinBoxChanged)
self.ui.spinBox.setValue(4)
@QtCore.pyqtSlot(int)
def spinBoxChanged(self, i):
# do something...
pass
Notice the (int) in the decorator of the slot. This has to match the signature of the signal. I haven’t dug into more complex signals, passing around arbitrary objects, but I think that is not a problem: Qt datatypes have a Python wrapper, and functions in Python cannot be overloaded anyway, so there won’t be clashes with pure Python signals and slots.
Redefining quit-char in Emacs 23
The quit command C-g is pretty much standard in Emacs. It runs the interactive function keyboard-quit and also serves as the default quit-char. It aborts basically every running function, also it allows you to cancel operations in the minibuffer. The Emacs documentation describes current-input-mode, set-input-mode and set-quit-char for getting and setting the quit-char value. Also, global-set-key allows you to rebind keyboard-quit to another character. However, this does not work very well. The quit-char is not settable for non-tty Emacs versions, e.g. on OS X using Cocoa Emacs you get this:
So, basically nothing changes. On a tty it looks more promising:
After rebinding the keyboard quit as well, using (global-set-key (kbd “C-q”) ‘keyboard-quit), not much happens either. It seems the minibuffer assumes C-g to be the choice of the day. Running find-file with C-x C-f or interactively via M-x find-file, and then hitting C-q does nothing except printing “Quit”. Hitting C-g however quits the minibuffer. This seems to be documented in Bug #1218 of Emacs.
gitx with push / pull support
I love gitx, the git GUI for OS X. However, it used to have no push / pull support. Which is pretty important for git. But git and github are beautiful pieces of software. So there is another fork on github, containing push / pull support and more. This little context menu made me happy: