As I’m going to build an iPad prototype for my graduation project and like to have it open source, I decided to go for GitHub (Online project hosting using Git. Includes source-code browser, in-line editing, wikis, and ticketing. Free for public open-source code.) since I have good experience with this service during my Ruby on Rails developments and it’s now implemented in Xcode 4. However, the implementation is fairly buggy to work with a remote repository. There are two guides I found to set the repository up, but both didn’t work completely, so here’s my version which worked fine.

  1. Open Xcode
  2. Create a new Xcode project. In the dialogue for source control make sure the local git repository is checked and will be created
  3. Quit Xcode (command+Q)
  4. Go to GitHub.com (create a user, if you don't have one yet) and create a new repository
  5. Open your Terminal.app, go to the project folder ("cd ~/YourDevelopments/YourProject" and follow the GitHub Global setup:
    • git config --global user.name "Your Name"
    • git config --global user.email your@email.com
  6. Follow the "Existing Git repo?" steps:
    • git remote add origin git@github.com:yourGitHubusername/yourGitHubProject.git
    • git push -u origin master
  7. Go back to GitHub and click "continue"
  8. Your source data should be uploaded there and listed with the message "Initial Commit"
  9. Open your Xcode project
  10. After changing some files (f.e. changing from iPhone to iPad app) go to File->Source Control->Commit and write a short info/documentation of what you did (f.e. "Changed to iPad App"). Make sure all items are ticked in the left browser and press "Commit"
  11. Go to File->Source Control->Push. There will be an error, that your username is not correct, just ignore that. Go to File->Source Control->Push again and press "Push". There will be an error saying the push was not successful, ignore that too and Push again (File->Source Control->Push, "Push". You should get a message that there are no uncommitted changes in the project
  12. Check the repository on GitHub, it should show the changes now

This is of course extremely buggy and not “the apple way”, but I guess the next implementation will be more stable.

References: http://lists.apple.com/archives/xcode-users/2011/Mar/msg00616.html http://lists.apple.com/archives/xcode-users/2011/Mar/msg00617.html http://peterszwach.blogspot.com/2011/03/github-xcode-4.html

In February, I started the research for my MSc thesis with the current working title “Mobile Technology meets Vintage Literature - Tablets in Modern History”. After talking to people from the University Library Leiden they expressed the need for a comfortable digital transcription interface within the special collections library. As I am interested in mobile technology, I proposed to create a prototype for this interface on the iPad2. There are quite a few transcription projects working at the moment which gave me the chance to speak to people within the Koninklijke Bibliotheek (Dutch Royal Library) Den Haag and the Deutsche Nationalbibliothek (German National Library) about my work. The prototype should offer a easy-to-use interface like the Trove Digital Newspapers, but in a smaller scale for Leiden University students.

Mit den Bildern hab ich es ja nicht mehr so wirklich. Meine Kamera liegt inzwischen Hauptsächlich im Schrank, denn eine kleine Kompaktkamera hat ja inzwischen auch schon 8 Megapixel und ist deutlich einfacherer im Handgepäck verstaut als eine EOS 350D mit Batteriegriff, Objektiv und Zweitlinse. Trotzdem mal wieder ein paar Reisefotos von einem Kurztrip nach London. Leider habe ich diesmal auf der Rückreise nicht aufgepasst und mich im Whisky-Laden aufs Kreuz legen lassen. Dank Mangel an Zeit und Recherchemöglichkeiten habe ich mir einen Irishen Blend, Gold Reserve andrehen lassen, mit der Versicherung, den gäbe es nur im Flughafen. Kaum Zuhause dann festgestellt, dass es die Flasche im deutschen Whisky-Onlineshop gibt, und auch noch 15 Euro günstiger ist. Ganz ohne den Stress mit Ryanair. Die Fluggesellschaft setzt übrigens inzwischen ganz rigoros die 1-Gepächstück-mit-10kg-Regel durch. Ohne Ausnahme (früher durften zumindest noch eine Laptoptasche und Flughafeneinkäufe separat mitgeführt werden)! Für mich jedenfalls ist die billigste Airline damit abgehakt, denn der Flug war wirklich unangenehm. Und im Whisky-Laden gibt es beim nächsten mal hoffentlich Rabatt. Im großen und ganzen aber dank des schönen Wetters dann doch ein erholsamer Urlaub.

[gallery orderby=”ID”]

“Entrepreneurship” ist aktuell ein ganz tolles Buzzword. Jeder will Entrepreneur werden. Viel Geld, viel Freizeit, wenig Arbeit. Hört sich prima an. Leider funktioniert das nur selten so gut. Selbstständig zu sein ist, zumindest in der Startphase, mit sehr viel Arbeit verbunden. Das sagen zumindest die Gründer im Seminar “Research Based Business Ventures” der Universität Leiden. Doch mit einer guten Idee kann man in der Tat auch während oder nach dem Studium seinen Lebensunterhalt verdienen, ohne als Konzernsklave den Chefs den größeren Anteil nach Hause zu tragen. “Jeden Tag mindestens eine neue Idee” - sagt Hans Fraaije, Gründer von Culgi BV. “Und wenn eine Idee über einen längeren Zeitraum im Kopf bleibt und formen an nimmt, ohne auf Papier notiert zu werden, dann ist sie eventuell gut genug für ein Startup”. Einen guten Einstieg zum Thema Entrepreneurship zeigt Günter Faltin in seinem Buch Kopf schlägt Kapital. Die ganz andere Art, ein Unternehmen zu gründen. Von der Lust, ein Entrepreneur zu sein., welches ich sehr empfehlen kann. Weiterhin gibt es das englischsprachige Buch Entrepreneur’s Toolkit: Tools and Techniques to Launch and Grow Your New Business: Harvard Business Essentials, welches uns in der Vorlesung empfohlen wurde und ich hiermit auch weiterempfehlen kann. Viele weitere Informationen gibt es auch bei foerderland.de. Viel Erfolg!

Finally, we moved on and created a a project without Twitter. Martin Weber (@web_martin) and me worked at “eggDaProf” for New Media, New Technology — the name says it all: throw virtual eggs at the professors, the right theme for easter. The task was to “create something with openframeworks in space”, so we had the idea of real and virtual space in our classroom 413 in LIACS and play a game.

The Architecture

  • QR-Code with an URL to map real players to virtual players in the room
  • HTML/JavaScript Website to read iPhone accelerometer data
  • PHP script to send received accelerometer data to openframeworks
  • openframeworks for the visualisation and the game handling

Distributed in the room are some printed QR-Codes with embedded URLs. To participate in the game, a player can scan the code with an iPhone or iPad and gets redirected to the game website, with the player id in the URL as parameter. The virtual representation is showed on the screen as long as the player is on the web-site and sending data. With HTML and JavaScript it is possible to read the accelerometer data live and in realtime through the iPhone Device API and the W3C DeviceOrientation Event Specification.

JavaScript/AJAX code to read the y-axis and send it via XMLHttpRequest

window.ondevicemotion = function(event) {
	y = event.accelerationIncludingGravity.y;
	p = <?=$_GET["p"] ?>;$.post("udp.php", { y: y, p: p }, function(data) {});
}

This data is sent via XMLHttpRequest to the web-server which runs a PHP script. The script transforms the data and sends them further via UDP to another Mac running openframeworks with a UDP listener. We used the networkUdpReceiverExample example and tried to use multi-threading for the players, which is unfortunately not supported by OpenGL.

PHP code to send data via UDP

$fp = pfsockopen( "udp://10.0.1.3", 11999, $errno, $errstr );
if ($_POST["y"]) {
	$yval = $_POST["y"];

	if ($yval < -6.0) {$yval = -6.00;} 	if ($yval > 6.0) {$yval = 6.00;}

	$yval = substr($yval, 0, 3);
	$write = fwrite( $fp, $_POST["p"]."".$yval);
}

The Game

The game in openframeworks is quite simple. The “professor” is standing in front of the classroom and faces the class. He can see the game on a laptop to control his virtual representation. The students can control the virtual rotation of the image and shoot eggs by pressing a button on the website. The eggs get faster over time, so it’s harder for the professor to dodge.

The Video

[vimeo http://www.vimeo.com/21586573 w=480&h=360]

The Source

openframeworks project and php/js source

License

Creative Commons License eggDaProf by Patrick Heneise and Martin Weber is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.