Daten|teiler
Kopieren als Kulturtechnik

notify-osd: Nachrichten an den Desktop senden — mit Python

21. April 2010 von Christian Imhorst

Der Artikel notify-send: Nachrichten an den Desktop senden von linuxnetzer beschreibt, wie man mit dem Befehl notify-send über die Kommandozeile Nachrichten an den Gnome-Desktop versenden kann. Dazu muss man einfach das Paket libnotify-bin aus den Paketquellen installieren

sudo apt-get install libnotify-bin

und schon kann man mit folgendem Befehl eine Testnachricht an den Desktop senden:

notify-send "Testnachricht"

Etwas komplexer geht das Ganze auch mit Python, dafür muss man aber kein zusätzliches Software-Paket installieren. Auch wenn letzteres auf dem eigenen System nicht wirklich dramatisch ist, aber was macht man, wenn man zum Beispiel ein Backup-Skript anderen Benutzern zu Verfügung stellen will, das z.B. die Benachrichtigung „Backup beendet“ am Desktop anzeigen soll, so wie im Beispiel von linuxnetzer? Man kann sie bitten, das Paket libnotify-bin zu installieren, oder man nutzt die Möglichkeit, sein eigenes Notify-Skript zu erstellen, das etwa folgendermaßen aussehen könnte:

import pynotify
 
pynotify.init("Testnachricht")
n = pynotify.Notification("Testnachricht", "Dies ist ein Test.", "icon")
n.show()

Selbstverständlich geht das auch als Einzeiler in der Shell, was allerdings doch recht lang ist:

python -c 'import pynotify; pynotify.init("message"); n = pynotify.Notification("Testnachricht", "Dies ist ein Test.", "icon"); n.show()'

Geschrieben in Gnu/Linux, Python | Kommentare deaktiviert für notify-osd: Nachrichten an den Desktop senden — mit Python

Eine Python-Shell fürs Handy über WLAN

9. April 2010 von Christian Imhorst

Im Lieferumfang zu Python für S60-Handys von Nokia (PyS60) gibt es zwar schon eine Python-Shell fürs Handy über Bluetooth, aber was macht man, wenn kein Bluetooth, dafür aber WLAN vorhanden ist? Man richtet einfach eine Python-Shell über WLAN ein. Abgesehen davon steht die Shell über WLAN schneller, als man eine Bluetooth-Verbindung herstellen kann, weshalb sie sich auch eignet, selbst wenn Computer und Handy über Bluetooth-Schnittstellen verfügen.

Den restlichen Eintrag lesen »

Geschrieben in Gnu/Linux, Python | Kommentare deaktiviert für Eine Python-Shell fürs Handy über WLAN

Ein kleiner Webserver mit Python

2. April 2010 von Christian Imhorst

Vielleicht kennt ihr das Problem ja auch: Da will man gerade los und denkt sich, ‚wäre ja schön das neu gekaufte Album unterwegs auf dem Handy zu hören‘, oder ‚ich kann ja den Text schnell auf mein Handy laden und unterwegs lesen‘, und dann weiß man nicht mehr, wo man das USB-Kabel gelassen hat, das Netbook hat kein Bluetooth und der Bluetooth-Adapter für den USB-Port liegt vermutlich beim verlegten USB-Kabel. Sollte WLAN vorhanden sein, ist das mit Python alles kein Problem. Der folgende Einzeiler startet einen HTTP-Server auf Port 8080 im aktuellen Verzeichnis:

~/Musik$ python -m SimpleHTTPServer 8080

Der Inhalt des Arbeitsverzeichnisses, in diesem Fall der Ordner Musik, wird über den HTTP-Server im internen Netzwerk angeboten, also nicht nur für localhost. Sollte sich im aktuellen Verzeichnis eine Datei wie index.html oder index.htm befinden, würde der Webbrowser ihren Inhalt anzeigen. Da sich solch eine Datei dort aber nicht aufhält, wird der Inhalt des Verzeichnisses angezeigt.

Den restlichen Eintrag lesen »

Geschrieben in Gnu/Linux, Python | Kommentare deaktiviert für Ein kleiner Webserver mit Python

Keine Icons mehr in Lucid Lynx auf dem eCafe Hercules EC-800

1. April 2010 von Christian Imhorst

[Update: In der endgültigen Fassung von Lucid Lynx ist der Fehler behoben und Ubuntu 10.04 kann unbesorgt auch auf das Hercules EC-800 installiert werden.]

Nach dem Update auf Ubuntu Lucid Lynx werden auf dem Hercules EC-800 keine Icons mehr angezeigt. Schuld daran ist der neue Treiber xserver-xorg-video-geode in der Version 2.11.7, denn mit der Version 2.11.6 oder mit dem Vesa-Treiber ist wieder alles in Ordnung. Das Problem existiert übrigens auch mit Sidux, wenn man auf Version 2.11.7 des Treibers aktualisiert. Solange der Bug nicht gefixt ist, sollte man also besser bei Karmic Koala bleiben bzw. nicht auf den neuen Treiber aktualisieren.

Geschrieben in Gnu/Linux | Kommentare deaktiviert für Keine Icons mehr in Lucid Lynx auf dem eCafe Hercules EC-800

Python für Symbian in der Version 2.0

31. März 2010 von Christian Imhorst

Ich hinke zur Zeit den aktuellen Geschichten etwas hinter her, weshalb die Nachricht, dass Python für Symbian in der Version 2.0 erschien, bereits mehr als ein Monat alt ist. Aber es lohnt sich, auf die neue Version zu wechseln, da ihr Python 2.5.4 zugrunde liegt. Als Gnu/Linux-User benötigt man die Datei PythonForS60_2.0.0.tar.gz von garage.maemo.org. Nach dem Entpacken überträgt man die Dateien Python_2.0.0.sis, pips.sis und PythonScriptShell_2.0.0_3_0.sis aus dem Ordner /PythonForS60/PyS60Dependencies entweder per Bluetooth oder mit dem USB-Kabel auf das Telefon. Anschließend installiert man sie in dieser Reihenfolge in den Telefonspeicher. Die Installation muss in den Telefonspeicher und nicht auf die Speicherkarte erfolgen, da Python-Programme ansonsten Probleme haben können, den Interpreter von Python für Symbian zu finden.

Den restlichen Eintrag lesen »

Geschrieben in Gnu/Linux, Python | Kommentare deaktiviert für Python für Symbian in der Version 2.0

Kalender synchronisieren mit Nokia, Google und Ubuntu

19. März 2010 von Christian Imhorst

Natürlich kann man ein Nokia-Handy auch direkt mit Ubuntu synchronisieren, wenn man das möchte. Aber warum einfach, wenn es auch ein bisschen umständlicher geht: Die Synchronisation von Kontakt- und Kalenderdaten über Google. Doch es lohnt sich, besonders wenn man mehrere PCs besitzt, das Handy verliert, oder das Betriebssystem — aus welchen Gründen auch immer — neu aufsetzen muss. In solchen Fällen hat man sofort wieder alle Kontakt- und Kalenderdaten zur Hand. Wenn man sowieso schon ein Google-Konto besitzt und dort alle Kontakte und Termine gelagert hat, liegt die Entscheidung dafür mehr als nah. Den praktischen Online-Kalender kann man außerdem über das ICAL-Format wunderbar in Gnome einbinden, so dass die Einträge in Evolution und im Uhr-Applet des Gnome-Panels zu sehen sind. Voraussetzung dafür ist ein Handy mit S60-Benutzeroberfläche, zum Beispiel das Nokia E71, ein Google-Konto und ein Gnu/Linux-Betriebssystem mit Gnome-Desktop, z.B. Ubuntu.

Den restlichen Eintrag lesen »

Geschrieben in Gnu/Linux | Kommentare deaktiviert für Kalender synchronisieren mit Nokia, Google und Ubuntu

Mit Gnu/Linux für PyS60 entwickeln

16. März 2010 von Christian Imhorst

Ped ist eine komfortable Entwicklungsumgebung für Python auf einem S60-Handy (PyS60) und eignet sich sehr gut für das Entwickeln unterwegs. Zu Hause möchte ich aber lieber meinen Computer zum Programmieren benutzen. Über die Bluetooth-Konsole bekommt man zwar ein Terminal, mit dem man Anweisungen über den PC auf dem Handy ausführen kann, es eignet sich aber nicht dazu, ganze Programme zu testen. Es ist nämlich ganz schön ermüdend, wenn man das Skript am Computer schreibt, es mehrmals über USB oder Bluetooth auf das Telefon überträgt, um es dann dort mit der Python-Shell zu starten. Einfacher und schneller geht es mit den PUTools.

Den restlichen Eintrag lesen »

Geschrieben in Gnu/Linux, Python | Kommentare deaktiviert für Mit Gnu/Linux für PyS60 entwickeln

Xubuntu und PulseAudio

11. März 2010 von Christian Imhorst

In meinem Posting Das Hercules EC-800 und Xubuntu 3 habe ich mich noch gefragt, warum Audacious2 nicht mit dem PulseAudio-Plugin zusammenarbeitet, und man unter Einstellungen -> Audio (Strg + P) als aktives Ausgabe-Plugin ALSA wählen muss. Die Lösung liegt mal wieder irgendwie auf der Hand: PulseAudio ist unter Xubuntu nicht standardmäßig installiert. Die Installation von PulseAudio kann man aber im Terminal nachholen:

sudo apt-get install pulseaudio gstreamer0.10-pulseaudio pulseaudio-utils gnome-media

Wenn Gnome-Media zusätzlich installiert wird, hat man noch den Vorteil, dass ein neues Icon von PulseAudio im Benachrichtigungsfeld erscheint, mit dem die Lautstärke flexibler gesteuert werden kann. Das alte Lautsprecher-Icon von XFCE kann dann entfernt werden. In Audacious2 sollte man von ALSA wieder auf das PulseAusio-Plugin umgeschwenken.

Die kleinen schwarzen Popups rechts oben, auch notify-osd genannt, stören jetzt beim Lauter und Leiser stellen vor allem auf so kleinen Bildschirmen wie dem vom Hercules extrem. Wenn man sie so wie ich ins Jenseits schicken möchte, tippt man folgenden Befehl ins Terminal ein:

sudo mv /usr/share/dbus-1/services/org.freedesktop.Notifications.service /usr/share/dbus-1/services/org.freedesktop.Notifications.service.disabled

Nach dem nächsten Neustart sind sie dann verschwunden und bedecken nicht mehr den halben Bildschirm, wenn man etwas an der Lautstärke dreht.

Außerdem sollte man darauf achten, dass unter Einstellungen -> Audio (Strg + P) der Sampling Rate Converter nicht aktiv ist, da er sehr viel CPU verbraucht.

Geschrieben in Gnu/Linux | Kommentare deaktiviert für Xubuntu und PulseAudio

Mobiles Python III – ein simpler Vokabeltrainer

25. Februar 2010 von Christian Imhorst

Mit Python auf einem Nokia-Handy mit S60-Plattform herumzuspielen, macht einfach Spaß. Außerdem kann man sich damit gut die Zeit vertreiben, wenn es an der Supermarktkasse wieder etwas länger dauert, oder man untätig in der Bahn sitzt. Vor gut 3 Jahren habe ich im ersten Teil beschrieben, wie man Python auf dem Handy installiert. Geändert hat sich an der Installation seit damals nicht viel (s.u. „Exkurs: Installation von PyS60“), außer dass Python for S60 mittlerweile in der Version 1.4.5 vorliegt, aber immer noch Python 2.2.2 verwendet wird, und ich mittlerweile ein Nokia E71 habe. Im zweiten Teil habe ich beschrieben, wie man die Bluetooth-Konsole unter Gnu/Linux einrichtet. Der Vorteil von der Bluetooth-Konsole ist, dass man in der Python-Shell seines Gnu/Linux-Rechners arbeitet und die Anweisungen per Funk an das Telefon weitergereicht und dort ausgeführt werden. Doch was nützt die schönste Spielerei, wenn man nicht ein kleines Projekt hat?

Den restlichen Eintrag lesen »

Geschrieben in Programmieren, Python | Kommentare deaktiviert für Mobiles Python III – ein simpler Vokabeltrainer

Ein Loop im Loop

9. Februar 2010 von Christian Imhorst

In WordPress wird der Loop dazu benutzt, Beiträge wie Artikel oder Seiten im Weblog anzuzeigen. Der klassische Loop ist meist Teil der Datei index.php, dem Hauptindex-Template, und sieht — stark vereinfacht — folgendermaßen aus:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php the_content(); ?>
 
 <?php endwhile; else: ?>
 <p><?php _e('Verzeihung, aber was Sie suchen, ist nicht hier.'); ?></p>
 <?php endif; ?>

Benutzt man WordPress mehr als Content-Management-System (CMS) und weniger als Weblog, hat man häufig eine statische Seite als Startseite gewählt. Möchte man auf dieser Seite dann den aktuellsten Beitrag aus der ersten Kategorie veröffentlichen, könnte man folgenden Loop auf der statischen Seite unterbringen:

<?php query_posts('cat=1&showposts=1'); ?>
<?php while(have_posts()) : the_post(); ?>
<p id="post-<?php the_ID(); ?>"><strong><?php the_title(); ?></strong>
<?php the_content(); ?>
</p>
 
<?php endwhile; ?>

Damit PHP-Code innerhalb einer statischen Seite oder eines Artikels funktioniert, muss allerdings das Exec-PHP-Plugin installiert sein. Nun hat man das Problem, das WordPress diese beiden Loops nicht unterscheiden kann und sie daher zweimal ausführt. Wenn also, wie im Beispiel, der aktuellste Artikel auf der Seite stehen soll, wird er einmal vom Loop in der Datei index.php und einmal vom Loop in der statischen Seite ausgegeben. Das heißt, der selbe Artikel erscheint zweimal auf dieser Seite.

Die Lösung in diesem Fall heißt, dass man ein neues Query-Objekt erstellt:

 
<?php
$myQuery = new WP_Query('showposts=1&cat=3');
while ($myQuery->have_posts()) : $myQuery->the_post();
?>
<p id="post-<?php the_ID(); ?>"><strong><?php the_title(); ?></strong>
<?php the_content(); ?>
</p>
<?php endwhile; ?>

Die Funktion WP_Query dient zum Auffinden verschiedenster Beiträge in der Datenbank und kann analog zu Query_posts verwendet werden. Damit kann man kontrollieren, welche Beiträge in einem Loop angezeigt werden und beide Loops voneinander unterscheiden.

Geschrieben in Haustechnik | Kommentare deaktiviert für Ein Loop im Loop

« Previous Entries Next Entries »