Pebbl EPaper Armbanduhr
Ein wirklich cooles Projekt, dass gerade auf Kickstarter läuft ist die Pebbl. Dabei handelt es sich um eine ePaper Armbanduhr mit Bluetooth Schnittstelle zu Android und iOS Geräten. Ich spiele selber gerade mit dem Gedanken mir eine Pebbl zu sichern.
Besonders beachtlich ist, dass der erforderliche Betrag für die Entwicklung von 100000 USD bei weitem übertroffen wurde. Das Projekt scheint also wirklich für sehr viele interessant zu sein.
17.04.12
Google Glasses
Ein wirklich beeindruckendes Projekt, das mich sehr fasziniert, möchte ich kurz vorstellen. Google arbeitet an einem Projekt zur Realisierung einer Augmented Reality Brille. Viele Informationen gibt es zwar noch nicht, aber erste Designansätze sehen sehr vielversprechend aus.
Wie die “Deamon” Anhänger in Daniel Suarez Büchern bekommt der Träger Informationen in seinem Blickfeld eingeblendet. In einer überlagerten optischen Schicht können verschiedene Informationen im Head-Up Display angezeigt werden. Neben einem Smart Phone Interface kann ich mir viele weitere interessante Anwendungen vorstellen. Meiner Meinung nach eins der interessantesten Entwicklungsfelder in Sachen personal IT, die uns in den nächsten Jahren erwartet. Auf jeden Fall ein Ansatz für eine Weiterentwicklung der mittlerweile gut abgehangenen User Interfaces.
https://plus.google.com/111626127367496192147/posts
| Posted in Technik | Comments Off
ATV3 Successfully Launched
Congratulations for the successful launch of ATV-3 Edoardo Amaldi!
Additional info can be found under http://www.esa.int/SPECIALS/ATV/index.html
| Posted in Bildung und Wissenschaft, Technik | Comments Off
Flying like a bird
Wie schade, dass es ein hoax ist
Zuerst gesehen bei http://www.geekculture.com/
Django Website auf einem Apache Server aufsetzen

Wenn man sich dazu entschieden hat eine Website bzw. eine Webaplikation im Framework Django zu entwickeln, kommt man früher oder später an den Punkt, dass man dieses Projekt auf einem Webserver ausrollen möchte. Wie eine in Django geschriebene Webseite grundsätzlich funktioniert, setzte ich als bekannt voraus.Weiterhin werde ich nicht erklären, wie eine Django Webapplikation erstellt wird, sondern gehe davon aus, dass dies bekannt ist.
Anders als bei statischem HTLM Code, der üblicherweise einfach in /var/www/ lebt (oder eher rumliegt) ist ein Django Projekt erstmal reiner Python Code. Dieser kann überall liegen, solange die Requests vom Apache korrekt an ihn weitergeletet werden. Was bei den entsprechend aufgerufenen Pfaden passiert, ist über die urls.py der Projekts definiert. Erster wichtiger Punkt zum Verständnis ist also, dass die Pfade nicht durch eine Verzeichnisstruktur abgebildet sind, sondern zentral in einer Datei definiert sind und durch Django quasi simuliert werden.
Die möglichen Konfigurationen von Webservern und Webapplikationen sind quasi unendlich. Hier will ich auf eine einfache Installation mit einer einzigen Website eingehen, die auf einer Linuxmaschine mit Debian als Betriebssystem und Apache2 als Webserver läuft.
Im Laufe dieses Tutorials werde ich für den Pfad zur Deiner Webapplikation als “WEBAPP” schreiben. Dies muss Du an den Namen Deiner eigenen Webapplikaiton anpassen.
Step 1 – Installation
Nehmen wir an, das Django Projekt ist fertig. Der Ordner mit dem Code muss nun an einen prinzipiell beliebigen Ort auf den Server kopiert werden. Du solltest hierfür nur nicht /var/www/ verwenden, da der Code selber ja von außen auf keinen Fall lesbar sein soll.
Erste Voraussetzung ist, dass ein Apache Webserver installiert ist. Dieser nimmt einerseits die HTTP Requests des Anfragenden Rechners an, reicht sie an die Django Applikation weiter und liefert im Gegenzug den von Django generierten HTML Code zurück.
sudo apt-get update (optional als Vorbereitung einmalig)
sudo apt-get install apache2
sudo apt-get install libapache2-mod-wsgi
Django muss natürlich auf dem Server auch installiert sein.
sudo apt-get install python-django
Wenn sowohl Apache als auch Django erfolgreich installiert wurden ist der Webserver prinzipiell startklar. Weiter geht’s mit der Einrichtung der Arbeitsumgebung..
Step 2 – Arbeitsumgebung
Anders als statische HTML Seiten, liegt der Python Code der Django Applikation nicht im Root Verzeichnis des Apache Servers. Deshalb werden wir ein eigenes Verzeichnis anlegen, in dem diese und zukünftig evtl. alle weiteren Django Applikationen leben werden.
sudo mkdir -p /srv/www
In dieses neu erstelle Verzeichnis kopierst Du Deine Webapplikation. Jetzt können wir noch tun, was wir wollen, da dieses Verzeichnis ja einfach ien Verzeichnis wie alle anderen auf dem Rechner ist. Noch nichts von dem was wir tun, ist irgendwie vom Netz aus sichtbar.
Setup 3 – Anpassung der Webapplikation
Damit die Applikation laufen kann, muss die settings.py des Djangoprojekts angepasst werden. Wärend der Entwicklung sind die Debugfunktionen von Django sehr hilfreich. Man will aber nicht, dass, wenn man was schief geht, der User gleich alle Itnernals der Webapplikation zu sehen bekommt. Deshalb sollte man als erstes mal die Debugging abschalten. Außerdem muss man noch die Pfade (z.B. den zum Templateverzeichnis) von den. in der Entwicklungsumgebung verwendeten so anpassen, dass sie auf das Produktivsystem passen.
/srv/www/WEBAPP/settings.py
1 # Django settings for lighthouse project.
2
3 DEBUG = False[...]
80 TEMPLATE_DIRS = (
81 # Put strings here, like “/home/html/django_templates” or “C:/www/django /templates”.
82 # Always use forward slashes, even on Windows.
83 # Don’t forget to use absolute paths, not relative paths.
84 “/srv/www/WEBAPP/templates”
85 )
Zudem kann es noch notwendig sein die Datenbankeinstellungen anzupassen, wenn man in der Entwicklung z.B. eine sqlite Datenbank verwendet hat und im Produktivsystem auf Posgresql oder MySQL setzten will.
Die Applikation sollte nun schon soweit angepasst sein, dass dem Betrieb nichts mehr im Weg steht.
Step 4 – WSGI
Neben diversen anderen Methoden ist heute WSGI die empfohlene Methode zur Anbindung des Django Framework an Webserver. Diese Methode funktioniert sehr einfach. Es muss lediglich ein einziges, zusätzliches Python Sktipt in Verzeichnis der Webapplikation erstellt werden.
vi /srv/www/WEBAPP/wsgi.py
1 import os
2 import sys
3
4 sys.path.append(‘/srv/www/WEBAPP’)
5 sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), “ ../../”)))
6 sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), “ ../”)))
7
8 os.environ['DJANGO_SETTINGS_MODULE'] = ‘WEBAPP.settings’
9
10 import django.core.handlers.wsgi
11 application = django.core.handlers.wsgi.WSGIHandler()
Step 5 – Apache Server
Nun ist die Webapplikation vorbereitet und durch ein WSGI Skript zugänglich gemacht worden. Da die HTTP Anfragen beim Apache Server landen, muss dessen Konfiguration so angepasst werden, dass die gewünschen an Django weitergereicht werden. Diese Anpassung findet im Apache Konfigurationsfile /etc/apache2/sites-available/default statt (üblicherweise).
1 <VirtualHost *:80>
2 ServerAdmin webmaster@localhost
3
4 # DocumentRoot /var/www
5 # <Directory />
6 # Options FollowSymLinks
7 # AllowOverride None
8 # </Directory>
9
10 WSGIScriptAlias / “/srv/www/WEBAPP/wsgi.py”
11 <Directory “/srv/www/WEBAPP/”>
12 Order deny,allow
13 Allow from all
14 </Directory>[...]
Einerseits wird der default Verweis auf das Root-Verzeichnis des Webservers auskommentiert. Dies kann entfallen, wenn man die Webapp nicht direkt unter der URL sondern unter einer Sub-URL erreichbar sein soll. Zusätzlich werden Anfragen, wie hier in Zeile 10 definiert, an das im letzten Schritt angelegte WSGI Python Skript weitergeleitet.
Abschließend muss der Apache Server neu gestartet werden, damit die Änderungen aktiv werden.
sudo /etc/init.d/apache2 restart
Viel Spaß am Gerät.
| Posted in Bildung und Wissenschaft, Hacking, Technik | Comments Off
Serienfieber
Falls ihr immer schon mal wissen wolltet, wie meine Frau und ich Serien gucken.
18.02.12
It’s no longer OK to NOT know how the internet works.
Dieses Photo, dass Andrew Dallos bei den Popa/Pipa Protesten in NYC aufgenommen hat, trifft den Nagel auf den Kopf.
12.02.12Hosting your own Calendar Server
Früher hatte man Synchronisierte Kalender bei der Arbeit. Privat haben die Enthusiasten unter uns ihren Palm und später das Mobiltelefon abends per USB mit dem heimischen PC synchronisiert. Diese Zeiten sind lange vorbei. Heute haben die meisten eine Vielzahl von Endgeräten – stationäre wie mobile. Keiner will die persönlichen Informationen, wie Termine und Kontakte, manuell in all diese Geräte eintragen. Wenn man an diesem oder jenem Gerät arbeitet hat man dann doch regelmäßig nur veraltete Informationen verfügbar. Abhilfe schafft hier die Synchronisation mit einem Zentralen Server.
Als einzige komfortable und zuverlässige Methode zur Synchronisation hat sich in den letzten Jahren Google als quasi Standard etabliert. Wen beschleicht da nicht ein unangenehmes Gefühl, gerade hochpersönliche Daten von Google verwalten zu lassen. Diese Lösung funktioniert sowohl von Android als auch vom iPhone aus gut.
Seit längerem habe ich überlegt, wie man diese Synchronisation in gleicher Zuverlässigkeit auf einem eigenen Server implementieren kann. In den letzten Wochen habe ich zwei Möglichkeiten ausprobiert – mit unterschiedlichem Erfolg.
Test Setup
Bevor ich ins Detail gehe, möchte ich kurz das von mir Verwendete Testsetup beschrieben. Mein Cloud Szenario besteht aus zwei Clients und einem Server.
Server: Shuttel XS35GTV2 Slim PC mit Debian Squeeze, Apache2, PHP5, Postgresql, sqlight
Client 1: Laptop Lenovo Thinkpad T410i mit Debian Wheezy, Evolution
Client 2: HTC Desire Z, Android 2.3.7, CyanogenMod-7.1.0, CalDAV-Sync, CardDAV-Sync
Das Setting ist sowohl intern übers LAN, als auch von extern über eine no.ip.org Adresse erreichtbar. Um Sicherheit bei der Datenübertragung zu gewährleisten arbeite ich mit einem Self-Signed OpenSSL Zertifikat und entsprechendem Apache Setup. Port 80 ist auf den Server geforwarded.
Owncloud
Seit noch nicht allzu langer Zeit gibt es das Projekt Owncloud. Es hat sich auf die Fahne geschrieben dem User die gängigen Clouddienste unkompliziert auf den eigenen Server zu bringen. Hauptfokus des Projekts scheint darauf zu liegen, einen WebDAV basierten Dienst als Alternative zu Dropbox anzubieten. User könne WebDAV Ressourcen anlegen und ordernweise untereinander teilen, wenn die Accounts in der selben Owncloud Instanz liegen. Über Plugins, die jedoch standardmäßig dabei sind, können zusätzliche Dienste installiert werden. Am wichtigsten zu nennen sind hier Kalender Sync über CalDAV und Kontakt Sync über CardDAV.
Installation
Auf der Projektseite selber findet sich eine seht gute Installationsanleitung. Als Vorbedingung benötigt man nicht viel.
- apache
2 - php5
- php2-sqlight
- php5-json
Da Owncloud komplett in PHP implementiert ist, ist die Installation so einfach, wie bei einem WordPress Blog. Das über git://gitorious.org/owncloud/owncloud.git erhältliche Paket muss entpackt und in den entsprechenden Ordner gelegt werden, damit der Webserver den Inhalt ausliefern kann. (Unter Debian übich: /var/www/_DEIN_OWNCLOUD_VERZEICHNISS. Wenn dann die Zugriffsrechte, wie in der Installationsanleitung beschrieben geändert sind, kann der Dienst direkt über das Webfrontend eingerichtet werden. Genau wie bei oben genannten WordPress Blog geht das auch bei gemietetem Webspace, via FTP. Neben der Basiskonfiguration mit einem sqlight Backend kann man alternativ durch die Anpassung des Config File /owncloud/config/config.php auch eine MySQL Datenbank verwenden. Das ist bei größeren Datenmengen performanter und wird bei vielen Webspaces ohnehin mit angeboten.
<?php
define(“DEBUG”, true);$CONFIG = array(
“installed” => false,
“dbtype” => “mysql”,
“dbname” => “owncloud”,
“dbuser” => “YOURUSER”,
“dbpassword” => “YOURSECRETPASSWORD”,
“dbhost” => “localhost”,
“dbtableprefix” => “oc_”,
“forcessl” => false,
“enablebackup” => false,
// “datadirectory” => “”
);
?>
Wenn man bei sqlight bleiben möchte, kann einfach dem ersten Anmeldedialog folgen. Die Konfigurationsdatei wird dann automatisch auf sqlight eingestellt. Einzig die “datadirectory” sollte man auf einen nicht extern erreichbaren Ort ändern.
<?php
define(“DEBUG”, true);$CONFIG = array(
“installed” => false,
“dbtype” => “sqlight”,
[...]
“datadirectory” => “/path /to/your/datadir”
);
?>
Wer seinen Webserver entsprechend konfiguriert hat, sollte außerdem die “forcessl” Option auf true setzen, damit erst garkeiner in die Gefahr kommt, sich aus Versehen über eine unsichere Verbindung anzumelden.
Erfahrungen
Das Konzept des eary-to-install Cloudservices mit modularen Erweiterungsmöglichkeiten finde ich total super, da hierdurch die Einstiegshürde deutlich gesenkt wird. Nicht viele Dropboxnutzer werden sich von einer Alternative überzeugen lassen, wenn schon im ersten Absatz Kommandozeileneinsatz incl. Nachinstallation von Paketen gefordert ist. Da PHP für Webfrontends aktuell die verbreiteteste Methode ist, hat es mich eigentlich fast gewundert, dass sowas so lange keiner geschrieben hatte. Das Versprechen der einfachen Einrichtbarkeit wurde in meinem Fall gehalten – alles lief reibungslos.
Über die Reiter Calender und Contacs können im übersichtlichen Webinterface Kalender und Adressbücher verwaltet werden. Diese ließen sich sowohl vom Telefon, als auch vom Laptop aus als WebDAV Recource zum Kalender und zur Adressverwaltung hinzufügen. Der WebDAV Ordner lässt sich bei Linux ohne Probleme als Laufwerk mounten.
Im Betrieb wurde der erste gute Eindruck leider nicht so richtig bestätigt. Obwohl ein initialer Sync das Adressbuch korrekt hochgeladen hat, gab es prompt Probleme, als ich Laptopseitig einen Versuch mit Thunderbird + Soho Connector Plugin unternommen habe. Plötzlich waren alle Einträge zwei-, drei- oder vierfach vorhanden. Schnell war der Datensatz auf fast 2000 Einträge gewachsen. Im Webinterface ging parallel nichts mehr und alle Remoteverbindungen liefen in den Timeout. Diesen ersten Rückschlag habe ich nur durch eine händische Korrektur der sqlight Datenbank beheben können. solange hier nur der eine, eigene Datensatz betroffen ist, ist die einfachste Probemlösung wahrscheinlich direkt die Neuinstallation. Hier kamen erste Zweifel auf, ob man diese Installation auf die Öffentlichkeit oder auch nur die eigene Familie loslassen möchte. Ein zweiter Versuch mit Evolution als PIM Software hat dieses Problem nicht gezeigt. Owncloud scheint in jedem Fall entweder ein Problem mit doppelten Adressbucheinträgen oder einfach mit besonders Vielen Adressbucheinträgen zu haben. Im endgültigen Setup mit Evolution und Android+CardDAV-Sync lief das Adressbuch zuverlässig. Nur das Webfrontend hakelt manchmal.
Als nächste kam der Kalender an die Reihe. Nachdem die Einrichtung auch hier problemlos vor sich ging, wurden Einträge, die ich im Webfrontend angelegt habe auf den Endgeräten korrekt angezeigt. Leider ließen auch hier die Probleme nicht lange auf sich warten. Bis heute habe ich es nicht geschafft Evolution oder den Android Kalender dort angelegt Termine zurück auf den Server zu synchronisieren. Auch die Debug Logging Einstellung der Owncloud gab keinen Aufschluss darüber, was hier schiefläuft.
Fazit: Eher ernüchternd. Der reine WebDAV Service lief ganz okay (für meinen Geschmack auch zu langsam) aber sowohl Kalendersynchronisation als auch Kontaktsynchronisation haben mich nicht überzeugt.
Vorteile
- Leichte Einrichtung
- Auf Webspace ohne root shell lauffähig (da komplett in PHP)
- sqlight + MySQL Unterstützung
- Flexibel durch eine Vielzahl an Plugins (CalDAV, DardDAV, WebDAV, etc.)
- Alternative für Dropbox
Nachteile
- Limitierte Administrationsmöglichkeiten (Rechtemanagement etc.)
- Im Test unperformant
- Scheint Probleme mit doppelten Adressbucheinträgen zu haben (?)
- Im Test wurden Kalendereinträge nicht korrekt auf Server gesynct (sowohl von Debian+Evolution als auch vom Android Handset aus)
DAViCal
Wenn man nach Lösungsmöglichkeiten für das Synchronisationsproblem sucht, findet man neben Owncloud noch eine zweite Lösung, die sehr prominent zu sein scheint: DAViCal. Hierbei handelt es sich ebenfalls um eine auf WebDAV aufbauende Lösung, bei der das Webinterface in PHP implementiert ist, als Backend jedoch Postgresql zum Einsatz kommt.
Installation
Für die Installation gibt es viele sehr gute Anleitungen. Hier eine Auswahl:
- https://wiki.hostsharing.net/index.php?title=DAViCal_installieren
- http://wiki.ubuntuusers.de/DAViCal
Bei Debian ähnlichen Systemen macht die Installation wenig Probleme, da sich Davical im Standard Repository befindet und über apt-get installiert werden kann.
sudo apt-get install davical
Wie auch in den oben genannten Anleitungen erklärt, benötigt man root shell Zugang um die Datenbank einzurichten. Für das Einrichtungsscript, was mit der Installation kommt, benötigt man Perl Unterstützung. Zum Betrieb selber sind lediglich Postgresql und PHP5 notwendig.
Erfahrungen
Die Lösung mit Davical erschien mir vorerst unattraktiver, da ein Betrieb auf Webspace ohne root shell nicht möglich ist und zudem lediglich Kalender- und Kontaktsynchronisation unterstützt ist. Außerdem hatte ich erst den Eindruck, dass mit Davical ausschließlich die Synchronisation von Kalendern möglich ist. Dem ist aber nicht so. Beim Anlegen der Speichers, bei Davical “Collection” genannt, kann man zwischen Kalender (Standard) und Adressbuch wählen. Mittlerweile haben sich alle Bedenken zerstreut. Der Bedarf nach root Zugriff ist für mich persönlich irrelevant, da ich einen Shell Server habe und der Fokus auf Kalender und Kontakte trifft meine Bedürfnisse sehr gut. Dateisynchronisation ist mir weniger wichtig. Außerdem kann man einen reinen WebDAV Ordner relativ einfach mit Debian Bordmitteln (z.B. apache2 + davfs2) bereitstellen.
Der Installationsvorgang gelang mir mit den oben genannten Beschreibungen problemlos und schnell. Nachdem man einen Admin-User angelegt hat, erzeugt man sich den ersten normalen User. Diesem muss man zuerst eine Kalender-Collection und am besten auch gleich noch eine Adressbuch-Collection hinzufügen. Hierbei darf man nicht vergessen, bei den Collections jeweils die korrekten / gewünschten Zugriffsrechte zu definieren. Hierbei wirkt das Webinterface von Davical im ersten Moment sehr spartanisch und unübersichtlich. Man gewöhnt sich aber schnell daran und lernt die Geradlinigkeit zu schätzen.
Die Verbindung vom Handset aus und von Evolution ließ sich genauso problemlos einrichten wie bei Owncloud. Der Betrieb jedoch überzeugte von der ersten Minute an. In allen bis jetzt erprobten Kombinationen läuft die Installation nicht minder Zuverlässig wie die Google Cloud.
Fazit: The way to go!
Vorteile
- Zuverlässige Synchonisation zwischen allen Endgeräten.
- Reibungslose Einrichtung.
- Vielseitig durch flexibles Rechtemanagement.
- Leistungsfähig durch Postgresql Backend. Auch für größere Installationen geeignet.
Nachteile
- Einrichtung erfordert root shell
- Bietet keine Alternative für Dropbox (nur Kalender und Kontakte)
| Posted in Technik | Comments Off
Great Music Video
Enjoy!
Zuerst gesehen bei Jolijou..
6.01.12Gnome 3 Tipps
Die neuste Version des Gnome Desktops – Gnome 3 – wurde in den letzten Monaten ausgiebig in allen Foren hoch und runter diskutiert. Einige mögen es, viele hassen es, was hier aber nicht das Thema sein soll. Ich will zwei Erfahrungen teilen, die ich in meiner Gnome3 Gewöhnungsphase gemacht habe.
Löschen mit “DEL” geht nicht
Außerordentlich verstörend war die Erfahrung, dass man duch das Drücken der DEL Taste anscheinend keine Dateien löschen kann. “What the Fuck!”. Nach eine kurzen Recherche war klar, dass das neue Bedienkonzept vorsieht, versehentliches Löschen dadurch verhindert werden soll, dass zum Löschen CTRL+DEL gedrückt werden muss. Wer hiermit leben kann, kann aufhören zu lesen. Wem das zu umständlich ist, der findet hier die Lösung:
Um das Problem zu beheben, muss die Tastenbelegung der Löschfunktion geändert werden. Im Defaultsetup ist das erst möglich, nachdem man dies in den Systemconfigurationen die Option can-change-accels temporär aktiviert. Am einfachsten über den Configurationseditor.
dconf-edit
org > gnome > desktop > interface > can-change.accels
Ist die Option aktiviert, öffnet man den Nautilus Dateimanager.Dort muss eine beliebige Datei mit einfachem Linksklick markiert werden. Anschließend wird in das Bearbeiten Menü gewechselt. Dort findet sich das Menüpunkt In den Müll verschieben. Wenn man den Mauszeiger über dem Eintrag hovern lässt, kann der Tastaturshortcut durch drücken der entsprechenden Taste (hier DEL) neu belegt werden. Teilweise ist zweimaliges Drücken nötig.
Viola – Löschen geht wieder mit einfachem DEL.
Programm aus Favoriten mehrfach starten
Als nächste wirkt es störend, dass beim klicken auf eine Anwendung in der Favoritenleiste nicht, wie erwartet, eine weitere Instanz der Anwendung gestartet wird, sondern stattdessen die schon laufende Instanz fokussiert wird. Aktuell weiß ich nicht, wie man dieses Verhalten konkret anpassen kann, aber immerhin einen praktikablen Workaround gibt es. Durch Klicken der mittleren Maustaste wird die Applikation als neue Instanz gestartet!

| Posted in Hacking, Technik | No Comments »