Freitag, 4. Oktober 2013

openHAB on the Cubierboard

0 Kommentare
For a few months I had a running homeautomation system based on openHAB running on my Raspberry Pi. Basically this system was running fine, but the startup of openHAB took several minutes (only an issue if you have to restart often for testing purposes). Also I noticed the system becoming slower the more items and bindings I was using.
So I looked at other platforms and found the Cubieboard 2. This device features a dualcore 1 GHZ ARM v7 CPU (Allwinner A20), 1GB of RAM, 4 GB of internal NAND (much faster as an SD card), 100 MBit network, IR receiver, SATA port (yes you can attach a hard drive or an SSD) and two USB ports.
I thought this would be really good platform for openHAB. At first I tried installing cubian, which is a Debian based distro for the Cubieboard. Since I already knew Raspbian, I thought that this was the best choice. Getting it running was pretty easy, but cubian as only very few kernel modules. Especially most of the modules for USB to serial bridges were missing. If you are not using serial based bindungs this shouldn't be a problem, but for me it was a dealbreaker.
So I ended up installing lubuntu on my device (http://cubiebook.org/index.php?title=Firmware/A20-Cubieboard_Firmwares(NAND)#lubuntu-server-13.06-v1.00). Please refer to cubiebook.org on how to do this. Other distributions might work, as long as they are compiled for hard float API.
After this I installed the JDK8 early access preview, expecting it would work like on the Raspberry Pi. And at first I thought it did, but then openHAB crashed unexpectedly. And multiple times after just a few minutes of running. It seems that the JDK8 isn't stable on all ARM platforms and mostly optimized/tested for the Raspberry Pi. Luckily you can just download the JDK7 for ARM from Oracle (http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html). This works as expected.
In the end you can follow every instruction on the internet for Java on the Raspberry Pi, except that you don't seem to have the choice between JDK 8 and 7. 
After installing Java, installing openHAB, was just a matter of unpacking and starting it (since I already copied my old configuration).

Freitag, 15. Februar 2013

Warum wir ein digitales Ehrenamt brauchen

3 Kommentare
Nach dem Lesen dieser Überschrift werden sich die Leser hier vermutlich in zwei Lager aufspalten. Die einen werden sich fragen was so  ein "digitales Ehrenamt" überhaupt sein soll und die anderen werden in Gedanken bereits einen Kommentar verfasst haben in dem sie darauf hinweisen, dass wir in allein in Deutschland tausenden von Open Source Entwicklern haben und man diese durchaus als ehrenamtlich tätig bezeichnen könnte.Dies ist soweit auch korrekt, trifft aber nicht ganz das was ich meine. 

Um das genauer zu erläutern sollte ich zuerst erwähnen, dass ich seit meiner Kindheit immer nebenher auch klassischen Ehrenämter ausgeübt habe. Darunter war zuletzt eine Mitgliedschaft in einer Freiwilligen Feuerwehr und aktuell die Mitgliedschaft bei einer großen Hilfsorganisation in Deutschland. Ich habe hier immer wieder sehr engagierte Menschen kennen gelernt und ich bin der festen Überzeugung, dass viele Menschen (und darunter leider auch die meisten Politiker) vermutlich gar nicht wissen was ohne diese Menschen alles zusammenbrechen würde. Genauso wie viele Menschen vermutlich gar nicht wissen wieviel in unserem Alltag von Open Source Software abhängt. Aber die klassischen Ehrenämter und die Open Source Gemeinde waren in meiner Wahrnehmung bisher sehr getrennte Lager. Ich habe bisher nur sehr wenige Menschen kennen gelernt die sowohl in einem klassischen Ehrenamt tätig waren als auch aktiv in Open Source Projekten mitgewirkt haben. Und das ist aus meiner Sicht nicht nur schade, sondern führt auch zu vielen verpassten Chancen.

Donnerstag, 6. Dezember 2012

Wo sind die Entwickleroptionen hin?

0 Kommentare
In meinem Videotraining zeige ich natürlich auch wie man sein eigenes Gerät als Testgerät benutzen kann. Im Gegensatz zu iOS-Geräten ist das auch wirklich einfach. Aber einige werden vielleicht über Geräte der Nexus-Reihe verfügen, die bereits ein Update auf Android 4.2 erhalten haben.
Bei diesen Geräten sind die Entwickleroptionen leider nicht mehr direkt sichtbar (in meinen Screenshots allerdings schon, da ich diese Schritte bereits vollzogen habe). Ob dies eine gute oder schlechte Entscheidung seitens Google ist darf jeder selbst entscheiden. Zum Glück ist es sehr einfach die Entwickleroptionen wieder sichtbar zu machen. Dazu geht man einfach wie bisher auch in die Einstellungen und scrollt bis nach ganz unten. Dort findet man nun den Punkt "Über das Tablet".

 Hier berührt man nun einfach 7 Mal hintereinander den Punkt "Build-Nummer" und dann erscheint eine Toast-Message die uns signalisiert, dass die Entwickleroptionen nun freigeschaltet sind. Geht man nun in den Einstellungen zurück kann man die Entwickleroptionen ganz normal aufrufen.
Diese Screenshots wurden auf einem Nexus 7 mit Android 4.2.1 gemacht. Auf anderen Geräten kann es daher etwas anders aussehen, die grundlegende Menüstruktur sollte jedoch die gleiche sein.
Viel Spaß beim Entwickeln.

Dienstag, 4. Dezember 2012

(German) Android Apps entwickeln

0 Kommentare

Der Einstieg in die Android-App-Entwicklung

Ende November ist mein erstes Videotraining im Galileo Verlag auf den Markt gekommen. Ich habe versucht in diesem Training nicht nur einen möglichst anschaulichen sondern auch einen möglichst umfassenden Einstieg in die Welt der Android-Entwicklung zu geben.
Natürlich ist es völlig unmöglich innerhalb von 8 Stunden Technikinteressierte zu Java- und Android-Professionals zu schulen. Daher werde ich versuchen in diesem Blog Ergänzungen und Antworten auf häufig gestellte Fragen zu veröffentlichen. 
Generell empfehle ich jedem der sich in die Entwicklung für Android einarbeiten möchte sich parallel dazu auch in Java einzuarbeiten. Das Open Book Java ist auch eine Insel aus dem Galileo Verlag ist dazu recht gut geeignet. Natürlich gibt es auch andere einsteigerfreundliche Java-Bücher von anderen Verlagen. Denn um gute Applikationen zu schreiben sind neben einer tiefen Kenntniss des Android-Frameworks auch gute Java-Kenntnisse Pflicht. Aber auch in Büchern steht nicht immer alles Wichtige geschrieben. Daher möchte ich euch für den Einstieg ein paar nützliche Links auf den Weg geben.
  • Stackoverflow: Dies ist eine Art Frage-Antwort-Community. Hier sollten gerade die Label Android und Java interessant sein.
  • developer.android.com: Eigentlich eine der wichtigsten Seite für Android-Entwickler. Hier gibt es die offizielle Dokumentation und auch einige Trainings die nützlich sein können.
  • Android Developers: Eine noch recht kleine deutschsprachige Community für (angehende) Entwickler. 
Habt ihr noch interessante Links die ihr als Anfänger hilfreich fandet? Lasst es mich wissen.

Sonntag, 14. Oktober 2012

Moderate yourself when giving a talk

0 Kommentare
Recently I had the chance to record a small series of video trainings for future Android developers. During the recordings I encountered the problem that I slight problems with restricting my speaking time to certain limits. Restricting the time of each lesson ist pretty important since the average time span a human can fully concentrate is also very limited. But in some lessons I just kept on speaking. I started to explain interesting but unecessary details and instead of about 12 minutes some lessons were suddenly half an hour long.
So I started searching for an app to solve my problem.. Countdown timers semmed impractical since I didn't want to stop the lesson abruptly but have the ability to see how much time has passed and if I'm over a certain warning level.
First I started using the stopwatch on my Galaxy S3. But the numbers were too small and I didn't had any optical notification. So I started writing my own app. It is a minimal timer which just shows the passed time, keeps the screen on and gives you some optical feedback if you speak too long. It is simple and elegant and as soon as I have catchy name and a logo you can get the app in the playstore.

Donnerstag, 4. Oktober 2012

Make your guests at home with WiFi

0 Kommentare
You probably know the situation. You have some guests over at you flat and almost everyone brings his smartphone, some bring also their tablet. So while your guests are arriving you will probably tell each of your guests your WiFi configuration at least once. If you have complex WiFi pre shared keys probably even more often. And after you changed your pre shared keys it starts all over again (the next time you have guests). 
You could simply put a sign near the entrance with the WiFi configuration. But apart from the fact that you guests will pile up in the entrance area while typing your super complex WiFi pre shared key you will also have to print a new sign everytime you change your pre shared key. But since most Android smartphones sold these days (and therefore most smartphones owned in the near future) have NFC capabilities why not simply writing you WiFi configuration on a NFC tag?

Sharing your home WiFi via NFC

rilato allows you to write any WiFi configuration stored on your device on a NFC tag. Simply select the configuration you want to share, type in your pre shared key and hold your device near a NFC tag. All necessary information is now on the tag including an identifier telling other Android devices that this configuration can be read with rilato and showing them rilatos dowload page on the Play Store. If the hand't rilato installed before they can simply download the app and read the NFC tag again to get your WiFi configuration. 
 
So you have now a small NFC tag with all necessary information to connect to your home or guest WiFi. But somehow your guests should get the message without the need to tell them one by one. Simply putting the tag on the wall would no one. Even if the tag catches the attention of your guests they probably wouldn't know what to do with it. So I came up with a small sign, which shows that you are sharing your wifi and that that NFC enabled Android smartphones can easily obtain the WiFi configuration. You can either download and print the picture on the right or you can download rilato and share the sign from there (to Google Cloud Print for example). The image is optimized for photo frames for pictures with 10cm x 15cm. I'm using this picture myself with a cheap frame from IKEA.
But of course you aren't forced to use my sign. You can design any way you want. You may also the logo of rilato. But if you are a design crack and you come up with a great desing for this sign, then feel free to contact me.

Mittwoch, 3. Oktober 2012

NFC and WiFi: simplicity and harmony

0 Kommentare
After I received my Nexus 7 I was very excited about the device. It's a great device and fun to use. But at least here in Germany the fun stops as soon as you leave your home. Since public WiFi is practically not available or expensive as hell your last resort is WiFi tethering with your smartphone.
Lucky enough also my smartphone is an Android device so WiFi tethering is possible and pretty easy to set up. But it still involves several steps. I have to switch tethering on, go to the settings to lookup the given SSID and password (I forget these all the time), activate WiFi on my Nexus 7, select my tethering WiFi and enter the password. And if I'm lucky and typed the password corretcly everything will connect. After a while I will then switch WiFi off on my Nexus 7 (since I don't need it any more) and go on. Often I was pretty upset about the poort battery life of my Galaxy S3, because I forgot to switch off the WiFi tethering.

Introducing rilato

To make this whole process easier and simpler to use and reduce unecessary battery drainiage on my SGS3 I created a small app called 'rilato'. You can get in the Play Store for free without any ads. 
Everything I have to do now to get tethering to work, is start rilato on my SGS3, unlock the screen of my Nexus 7 and hold both together, back to back. (Please not that you need to have rilato installed on both devices) WiFi tethering on my SGS3 will be activated automatically as will WiFi be on the Nexus 7. Also all necessary configuration is send to the Nexus 7 so I have always the correct WiFi configuration to use the tethering on my SGS3.

rilato works on all NFC enabled Android devices. Just download it from the Play Store here for free.
But that is not all rilato can do. Discover it your self or wait for the next blogpost.