Categories
Tech

MicroEmulator on iPhone

I have started porting microemulator to (jailbroken) iPhones. Here are some first screenshots.

Categories
Tech

Using Maven2 to build Cydia Packages for the iPhone

I am using Maven2 for most Java projects. So I wanted to use it for Phone-Java development, too. This is a little tutorial on how it can be done.

iPhone Cydia Packages are Debian .deb files really and luckily there is the mvn-pkg-plugin that supports creating .deb files with Maven2. Unfortunatly the current version has a bug, so that it won’t work out of the box for creating iPhone packages. So you have to grab the latest svn-snapshot and apply the following patch.

 

Index: src/main/java/de/tarent/maven/plugins/pkg/map/Parser.java
===================================================================
--- src/main/java/de/tarent/maven/plugins/pkg/map/Parser.java	(revision 132)
+++ src/main/java/de/tarent/maven/plugins/pkg/map/Parser.java	(working copy)
@@ -62,7 +62,7 @@

       if (auxMapDocument != null)
         {
-          s = new State(packageMapDocument);
+          s = new State(auxMapDocument);

           s.nextMatch("package-maps");
           parsePackageMaps(s);


 

After applying the atch and doing a “mvn install”, we can start with the real work. Download the tutorial files from here. I will explain the contents of the archive later. For now unzip it and do a “mvn package” in its directory. It will compain about some missing dependencies, so grab the missing jars from your iPhone and install them in your Maven reposiory as directed in the error message. After you have done that another “mvn package” shoud produce a .deb file in the target subdirectory. You can upload this to your iphone and install it with dpkg. After a restart of the SpringBoard a new icon HelloMaven should be on your screen, that should start the demo program.

Now some explanation of how it works. The main part is done in the pom.xml. Here is the relavant excerpt form this file:

	de.tarent.maven.plugins
	maven-pkg-plugin
	
		iphoneos
		Arindal Tune Helper
		
			HelloJava
			
example
iphoneos-arm /Applications/HelloMaven.app Info.plist icon.png Starter postInst.sh preRm.sh file:${basedir}/pm-iphoneos.xml package pkg


The first important part is the defaultDistro tag. Here we tell the plugin, that we want to build a package for the iPhone. Unfortunatly there are no default iPhone mappings contained in the plugin. That is why we have the auxPackageMapURL tag, that tells the plugin where to look for the Maven-to-Cydia-Package-Mapping. Most other things should be pretty self explaining.

The files in the dataFiles Section have to reside in src/main/auxfiles icon.png and Info.plist should be pretty clear. The Starter entry needs some explanation though. The plugin automatically generates a start script in /usr/bin. This is good enough for console applications, but if you want to start a GUI-App some more work is needed. The Starter script sets the Java executable path to /Applications/Appname.app/Java and calls the generated script after that. For this to work the starter Script has to get executable permissions and jamvm has to be linked to /Applications/Appname.app/Java. This is done in the postInst.sh script. For more info about those scripts and what you can do there refer to the Debian documentation.

This should be enough to get you started, if cou have questions, please feel free to post them in the comments.

Categories
Tech

iPhone Java First Try

Made my first tries with Java on a jailbreaked iPhone 3G. Here is a screenshot of some drawing routines. Its reacting on touch events, too. Will write more about it later.

So die ersten Versuche mit iPhone Java Entwicklung sind gemacht. Hier mal ein Screenshot von ein paar Grafikausgaben. Reagiert auch schon auf Touch Events. Spaeter mehr davon.

photo

Categories
Tech

Parse Command Line Options with annotations

Panzi has written a very nice Lib to parse command line options in Java. You can just add Annotations to your Java fields and they will be filled automagically with the command line values.

Eine sehr nützliche Lib um Kommandozeilen in Java zu Parsen hat Panzi in seinem Blog beschrieben. Dazu werden die Felder im Java Code einfach mit bestimmten Annotations versehen und die Lib kümmert sich um das Parsing und schreibt die Werte direkt in die Felder.

Categories
Tech

WordPress on Ubuntu Intrepid

Es ist sehr leicht WordPress 2.5 unter Ubuntu Intrepid zu installieren. Damit hat man dann auch sofort Multiblog-Fähigkeiten. Es gibt dazu ein Beispielscript (/usr/share/doc/wordpress/examples/setup-mysql) um neue Instanzen anzulegen. Allerdings ist das von Debian kopiert und einige Pfadangaben passen nicht für Ubuntu. Das folgende diff behebt das. Getestet mit wordpress-2.5.1-2ubuntu1.

Its pretty easy to install WordPress 2.5 on Ubuntu Intrepid. The Ubuntu version comes with Multiblog capabilities included. There is an example script (/usr/share/doc/wordpress/examples/setup-mysql) to create new instances of WordPress Blogs. Unfortunatly the script was copied from Debian and some paths are wrong for Ubuntu. The script below fixes that issue. After that it worked flawlessly for me with wordpress-2.5.1-2ubuntu1.

 

82,83c82,83
< [ -d /srv/www ] || mkdir -p /srv/www
 [ -d /var/www ] || mkdir -p /var/www
> ln -s /usr/share/wordpress /var/www/$DOMAIN
149c149
 UPLOAD="/var/www/wp-uploads/$DOMAIN"
181a182
> 

Categories
Private

Waschmaschinen Neustart…

Unsere Waschmaschine hat schonmal das Problem, dass die Tür nach dem waschen nicht aufgeht. Normalerweise reicht es dann, noch einmal schleudern zu lassen und dann geht die Tür wieder auf.

Heute aber tut sich nichts…

Also den alten Computer Trick angewandt: Stecker raus, Stecker rein, Window… ehh Tür geht wieder. 🙂

Categories
Tech

phoneME Advanced on OSX Intel

Um Java CDC Anwendungen zu entwickeln braucht man eine entsprechende virtuelle Machine. Eine OpenSource VM wird im phoneME Projekt entwickelt. Es gibt dort verschiedenste Versionen für Linux, Windows, Windows Mobile und auch für Darwin/OS X. Allerdings ist bisher nur ein PowerPC Variante für OS X verfügbar. Die lässt sich auch auf einem Intel Mac benutzen, allerdings nur im Foundation-Profile, dass keine UI bereitstellt. Um AWT zu haben benötigt man das Personal-Profile, was jedoch QT verlangt. Und mit Fink kann man von QT keine Universal Binarys installieren.

Deshalb habe ich versucht die PowerPC Version von phoneME Advanced nach x86 zu portieren. Dazu war nicht sonderlich viel nötig. Ich habe lediglich einige Dateien durch die entsprechenden Linux x86 Versionen ersetzt.

I wanted to develop my J2ME CDC Applicatins on my Intel Mac. Unfortunalty there is no CDC VM available for Intel Macs. The phoneME project provides sources for a PowerPC version for Darwin/OS X. So I decided to port that over to Intel by replacing some files with the correct Linux x86 ones.

Hier ist nun das Ergebnis:

Here is my result:


Patch: phoneme-cdc-darwin-x86

Binary: phoneme-cdc-personal-darwin-x86-qt3-x11-bin

Die Dateien aus dem Patch-Archiv müssen in die entsprechenden Ordner der phoneME Sourcen kopiert werden. Dann kann im Verzeichnis cdc/build/darwin-x86-mac “make” aufgerufen werden um das Foundation Profil zu bauen und mit “make J2ME_CLASSLIB=personal” kann das Personal-Profil erzeugt werden. Dafür benötigt man QT3, das am einfachsten mit Fink installiert wird.

Die entstandene VM lässt sich am einfachsten mit “bin/cvm -jar democlasses.jar” testen.

Copy the files from the Patch-Archive into the correct folders of the phoneME sources. You can build the Foundation-Profile with “make”in the directory cdc/build/darwin-x86-mac and with “make J2ME_CLASSLIB=personal” the Personal-Profile. You need QT3 for the Personal-Profile. Install that with Fink.

You can try out the resulting VM with “bin/cvm -jar democlasses.jar”.

Categories
Tech

iPaq 614c

Ich habe seid gestern einen iPaq 614c und probiere gerade damit zu bloggen.
Ich habe dazu TBlogger installiert. Ich muss mich da erst noch dran gewoehnen, aber es klappt schon ganz gut.
Demnaechst mehr davon, auch zu Java auf dem iPaq, da hab ich auch schon was probiert.

Categories
Tech

WordPress 2.5 und MultiBlog

So das Blog läuft jetzt mit WordPress 2.5 und dem MultiBlog Plugin. Damit kann man mehrere Blogs mit einer WordPress Instanz betreiben.

Ich benutze es zwar bisher nur für 2 Blogs(markus.heberling.net und sebastian.heberling.net), aber auch das ist schon eine Erleichterung.

Es gibt aber Dinge auf die man achten sollte:

  • Das Permalink format sollte auf allen Blogs gleich sein, da sonst die .htaccess Dateien nicht passen
  • Das Google XML Sitemap Plugin muss man so konfigurieren, dass es für die verschiedenen Blogs verschiedene sitemaps generiert
  • Man sollte die Upload-Verzeichnisse trennen, damit jedes Blog sein eigenes hat

Ansonsten sind mir bisher keine Probleme aufgefallen.

Categories
Private

Ein lustiges Browsergame zum Foren-Trollen

Wer mal richtig schön in Foren rumtrollen möchte, der kann das mit diesem Browserspiel machen! Stellen Sie sicher, dass Sie die cheap elo boosting services wo Sie die besten Spiele finden.

Achtung, nix für zartbesaitete!

read more | digg story