Author Archives: frehberg

Android Emulator with Ubuntu 12.10

The Emulator of Android SDK expects 32bit GL graphics drivers and does not work out of the box with the 64bit GL libraries being installed by default with Ubuntu 12.10. You will get something like the following error message “libGL error: failed to load driver: i965”. You can solve the dependency installing the 32bit libraries (i386) manually the following way:

sudo apt-get install libgl1-mesa-dri:i386 libgl1-mesa-glx:i386

Eclipse – CDK – build – run as super user

If you develop your native C/C++ application with Eclipse CDK and the need to execute the newly build  application with permissions to access raw socket API, such as a tun-interface, I suggest to use Linux-capabilities. (Executing the newly build application as root/super user, can become very complex.)  The Linux-capabilities allow you to execute you app with regular user permissions, but being capable to access certain privileged interfaces of Linux.

I assume that your build environment builds the binary /home/myuser/workspace/proj/bin/myapp

## invoke command in terminal with root permissions
sudo setcap cap_net_admin,cap_net_raw=eip /home/myuser/workspace/proj/bin/myapp

Next you have got to add the following lines to /etc/security/capability.conf to grant these privileges to the developer/user myuser.

## add to file /etc/security/capability.conf
cap_net_admin myuser
cap_net_raw   myuser

If your application needs read/write access to raw network devices such as  /dev/net/tun, grant these privileges by adding the following line to the file /etc/udev/rules.d/50-udev.rules (assuming myuser is member of group admin)

## file /etc/udev/rules.d/50-udev.rules
KERNEL==”tun”,     NAME=”net/%k”,     GROUP=”users”, MODE=”0660″, OPTIONS+=”ignore_remove”

These take effect on next reboot. In the meantime do:
sudo chown root.admin /dev/net/tun
sudo chmod g+w /dev/net/tun

Now your application has the required permissions to execute privileged network operations. Now you have got to integrate the setcap invocation into the Makefile build process. Add the following line to your make-rule:

## Makefile rule
myapp:  $(APPLIBS) main.o
     $(CC) $(CFLAGS) $(LDFLAGS)  -o myapp main.o $(APPLIBS)
     sudo setcap cap_net_admin,cap_net_raw=eip /home/myuser/workspace/proj/bin/myapp

To avoid that sudo request the password, we add the following line to the very end of the file /etc/sudoers, replace myuser by the user-name of the developer.

## Add as last line of config file /etc/sudoers
myuser ALL = (ALL) NOPASSWD: /sbin/setcap, (ALL) NOPASSWD: /sbin/ifconfig

You will notice that we grant access as well to /sbin/ifconfig. This will allow our application to invoke ifconfig commands from within application to create the required network interfaces.

Finally very that the capabilities are configured for the freshly built binary. And you should see the capabilities are the one you set before.

## Execute in console:
sudo getcap myapp

Now you are done. You should be able to execute your application with normal user permissions from within Eclipse, and invoke privileged network operations.

PDF to TIFF

Let’s assume you created slides in the past with embedded graphics/images. Years later you want to re-use some graphics, but all you have got at hand is the PDF version. How could you extract the embedded graphics in high quality?

The solution is to convert the PDF to TIFF slide by slide, and use GIMP to edit the graphics. The following command will convert the PDF to TIFF file. The echo-piping is used to get around the page-wise confirmation.

echo | gs -sDEVICE=tiff32nc -r300 -sOutputFile=slideshow.tiff slideshow.pdf

Make Project Creator

Did you ever wish something which allows you to declare inter-dependencies between C/C++ source files and let you compile with GCC or MSVC, or even exotic compilers? If so, you should take a look at the  Make Project Creator (MPC) hosted by the TAO project. MPC defines a simple  syntax to define inter-dependencies between source files, and can be transformed into the appropriate formats for GMAKE/GCC or MSVC. If I find some time, I will write something in more detail about it.

http://training.ociweb.com/products/mpc/features.html

Gepäck für Peru

Für eine Reise nach Peru, was muss in meinen Koffer:

  • Reisepässe der  Eltern und für die Kinder
  • Internationaler Führerscheine
  • Auslandskrankenversicherung für alle (Debeka)
  • Kopien der offiziellen Dokumente
  • Adresse der Deutschen Botschaft in Lima
  • Medizin (Paracetamol, Augentropfen, Ohrentropfen, Wundsalbe)
  • Sonnencreme mit sehr hohem Faktor
  • Technik: Handy, Photokamera, und Notebook, 1GB Speicherkarte (oder größer)
  • Ladegeräte für Handys, Kamera und Notebook
  • Kinder-Sandalen
  • Badeanzüge
  • Leichte Handtücher
  • Reisekasse: Euro und Dollar können überall gewechselt werden, es gibt staatliche Geldwechsler auf den Straßen. Für die Kalkulation könnte es hilfreich sein zu wissen, dass man außerhalb der Touristenregionen für ein normales, gutes Mittagessen (Menu)  zwischen 6 oder 10  Soles (ca 1.50-2.50 Euro) zahlt. Ein Menu behinhaltet eine Vorspeise, das Hauptgericht und ein Getränk. In den Touristenregionen oder Regierungsvierteln werden manchmal bis zu 25 Soles nur für ein Hauptgericht verlangt. Da Taxifahrten sehr billig sind, lohnt es sich, zum Mittagessen in einen günstigeren Bezirk zu fahren. Für eine Taxifahrt von 10 Km  sollte man ca  10 Soles kalkulieren.
  • Kreditkarte: Mit VISA kann man überall bezahlen, Mastercard ist zweite Wahl, AmEx ist nicht vertreten
  • Leichter Kinderwagen (Buggy) zum Zusammeklappen. Der Wagen sollte über ein Sonnenverdeck und eine Klapplehne verfügen. Ein Sonnenschirm ist nutzlos, besser man hängt ein weisses Tuch über das Verdeck.

Für Peru sollte das Handy   tri-bandfähig sein und das GSM-1900 Band unterstützen. Vor Ort kann man sich eine Prepaid-Karte von Claro kaufen und in sein Handy einsetzen. Das Handy darf natürlich nicht “SIM-locked” sein.

Das Stromnetz in Peru funktioniert mit 220 Volt, aber 60Hertz. In Europa haben wir 230 Volt mit 50Hertz, aber Deutsche Universalnetzteile sollten in Peru immer funktionieren.  Geräte  für eine feste 50Hertz-Frequenz sollte man zuhause lassen.

Für jede Person benötigt man Kleidung/Wäsche für 3-4 Tage, mindestens eine Abendgarderobe: lange Hosen und langärmelige Hemden mit Kragen. Es reichen dünne Sachen und eine Windjacke,  und für kalte Nächte in den Anden zusätzlich einen Pullover einpacken. Auf seine Wander-/Schuhe oder Badelatschen ab Größe 45 sollte man gut Acht geben und möglichst im Handgepäck mitnehmen, da man diese Größe kaum in Peru kaufen kann. Ein Verlust könnte das Ende einer Reise bedeuten.

Bei Individualreisen sollte man nach der Ankunft in Peru der Deutschen Botschaft seine Reiseroute mitteilen. Das sollte man übrigens auch in  anderen Reiseländern so machen.

Weil man üblicherweise pro Person nur zwei Koffer je 23Kg mitnehmen kann, sollte man einige Dinge erst in Peru kaufen. Diese sind:

  • Handwaschmittel
  • Wundpflaster
  • Pullover kann man sich überall kaufen
  • Babywindeln. Zwar sind die Babywindeln in Peru nicht so saugstark (anscheinend machen peruanische Kinder weniger Pipi), aber sie sind ausreichend. Selbst die dortigen Pamperswindeln sind von schlechterer Qualität.

Einige Dinge sind in Peru völlig nutzlos, solle man unbedingt zuhause lassen:

  • Kinderautositze, denn in Taxen funktionieren oft nicht einmal die Gurte, mit denen der Kindersitz fixiert werden könnte. Auch gibt es Fluglinien, die den Kindersitz wie einen Koffer werten.
  • Dicke Winterjacken
  • Regenkleidung für die Küstenregion

In Peru bekommt man folgende Dinge nur schwierig oder garnicht:

  • Gute Seife. PH-neutrale Seife habe ich dort in den Supermärkten nicht entdecken können.
  • Gute Bitterschokolade
  • Gute Gummibärchen
  • Gute Hustenbonbons
  • Guten Apfelsaft, der einzige gute A-Saft ohne Zuckerzusatz ist der “Laive Manzana Premium Natural”

Dafür sind aber andere Lebensmittel in Peru viel besser:

  • Kartoffeln (gelbe, rote, orange, etc)
  • Trident-Kaugummi (zuckerfrei)
  • Maiskolben
  • und noch Vieles mehr