Sonntag, 29. August 2010

Yahoo! Pipes: RSS-Feeds "subtrahieren"

Wenn man (wie ich) ein fleißiger Leser von Newsfeeds ist, kommt es u.U. vor, dass man einen abonnierten (RSS-/Atom-)Feed ohne bestimmte Beiträge bekommen möchte. Wenn diese Beiträge nicht mittels eines einfachen Filters definiert werden können, sondern Inhalte eines anderen Feeds sind, wird es schwierig und es kann dafür Yahoo! Pipes verwendet werden.

Nochmal die Aufgabenstellung: Ziel ist es, einen Feed zu bekommen, in dem alle Beiträge von Feed A vorkommen, aber alle Beiträge, die auch in Feed B vorhanden sind, herausgefiltert wurden, also die Differenzmenge von Feed A und Feed B. Um es noch etwas konkreter zu machen: Ich möchte alle Spiegel-Online-Beiträge (RSS-Feed) ohne die Beiträge des Sport-Feeds von Spiegel Online (RSS-Feed).

Leider gibt es für diesen Fall keinen vordefinierten Operator-Block bei Yahoo! Pipes, sodass man selbst Hand anlegen muss.


Hier eine Erklärung, wie das Ganze funktioniert:

  • Zunächst legt man für jeden Feed (in meinem Fall SP.ON komplett sowie SP.ON Sport) ein Fetch-Feed-Modul an und kopiert die URL der Feeds in das jeweilige URL-Feld.
  • Anschließend wird mit einer Loop über einen String Builder jedem Beitrag ("item") der beiden Feeds eine Markierung hinzugefügt, die die Beiträge eindeutig einem der Feeds zuordnet. Einträge des ersten Feeds bekommen ein zusätzliches Feld "source" ("item.source") mit dem Inhald "Feed A", analog werden Beiträge des zweiten Feeds mit item.source = "Feed B" gekennzeichnet.
  • Beide Feeds werden nun mit einem Union-Modul vereinigt.
  • Mit Hilfe eines Unique-Moduls werden anschließend Einträge, deren "link"-Feld identisch ist, kombiniert.
    Anmerkung: Hier muss man bei anderen Quellen evtl. auf andere Felder ("title") zurückgreifen, wenn die Links der Einträge sich bspw. durch einen Parameter unterscheiden.
  • Jetzt kommt der Trick des Aussortierens: Über ein Filter-Modul werden nun nur Einträge weitergereicht, deren "y:repeatcount"-Feld gleich 1 und die Quelle (item.source) "Feed A" ist.
    Info: Das "y:repeatcount"-Feld wird vom Unique-Modul für jeden Beitrag gesetzt und enthält die Anzahl der Beiträge, die es zu dem jeweiligen Beitrag zusammengefasst hat.
  • Das Ergebnis wird schließlich an den Pipe Output weitergereicht (und kann hier abgerufen werden: http://pipes.yahoo.com/pipes/pipe.run?_id=e95a7dc4cd639af9710a95d62000e9d5&_render=rss)

Sollte jemand noch ein paar coole Dinge mit Yahoo! Pipes angestellt haben, möge er/sie einen Kommentar posten...


Ergänzung:

Freitag, 9. Juli 2010

Windows 7 Installation vom USB-Stick

Es soll ja vorkommen, dass man Windows 7 auf einem Rechner ohne optisches Laufwerk installieren muss.

Microsoft stellt dafür ein Tool bereit, das aus einem von deren Shop online gekauften ISO-Image einen bootbaren USB-Stick erstellt. Leider hat das Tool zwei Nachteile (außer dass es das .NET Framework benötigt): Zum einen akzeptiert es scheinbar nur ISO-Images, die von Microsoft vertrieben werden, was einem nicht weiterhilft, wenn man nur die Windows 7 DVD vorliegen hat; zum anderen wird (zumindest unter Windows XP) die Installation eines "Image Mastering API v2.0" vorausgesetzt. Also muss eine andere Lösung her.

Hier habe ich folgende funktionierende Vorgehensweise gefunden:
  • Alle wichtigen Daten auf dem USB-Stick in Sicherheit bringen (z.B. mit USB Image Tool im Device Mode).
  • Die folgenden Befehle setzen voraus, dass der angeschlossene USB-Stick als „drive 1“ von Windows erkannt worden ist! Um herauszufinden, unter welcher Kennung der Stick erkannt worden ist, an der Eingabeaufforderung "diskpart" und anschließend den Befehl "list disk" eingeben. Unter "Datentr" steht Ziffer, die dem eingelegten USB-Stick zugewiesen ist! Die Zeile "select disk 1" (unten fett markiert) muss dann entsprechend angepasst werden!
  • Folgendes an der Eingabeaufforderung eingeben:
diskpart
select disk 1 (ggf . muss der Wert angepasst werden!)
clean
create
partition primary

select partition 1
active
format fs=fat32
assign
exit
  • Nun den Inhalt der kompletten Windows-7-DVD auf den USB-Stick kopieren:
xcopy (DVD-ROM-Laufwerksbuchstabe):\*.* /s/e/f (USB-Stick-Laufwerksbuchstabe):\
  • Wenn im BIOS das Booten vom USB-Stick aktiviert ist, startet beim Start mit eingelegtem Stick das Windows 7 Installationsprogramm.
Folgendes habe ich noch herausbekommen:
War die Festplatte vorher unpartitioniert oder nur Windows unbekannte Partitionen (wie ext3) vorhanden waren, kann es vorkommen, dass sich das Installationsprogramm weigert, Windows auf der Festplatte zu installieren, weil der Stick bereits den Laufwerksbuchstaben C: abbekommen hat. Dazu auf der Festplatte eine Partition anlegen und formatieren (geht innerhalb des Windows Setup mit den erweiterten Optionen), neu booten und die Partition wieder löschen. Windows kann dann in diesen unpartitionierten Bereich installiert werden (Partition wird automatisch angelegt und formatiert).

Freitag, 1. Januar 2010

Ein Rätsel...

Zum neuen Jahrzehnt möchte ich ein Rätsel stellen, was mir vor einiger Zeit über den Weg gelaufen und mir heute wieder in die Hände gefallen ist.

Lösungsvorschläge bitte in die Kommentare!

Drei Personen wohnen zusammen in einem Haus. Das Produkt des Alters der Personen beträgt 2450. Die Summe ihres Alters entspricht der Hausnummer vom Haus nebenan. Des weiteren ist keiner so alt wie die Nummer der Buslinie, die an dem Haus vorbeiführt.

Wie alt sind die Personen?

Fleißaufgabe:
a) Wie lautet die Hausnummer vom Haus nebenan?
b) Wie lautet die Nummer der Buslinie?

Hinweis: Die Aufgabe ist eindeutig lösbar!

Dienstag, 22. Dezember 2009

Batteriewechsel HAMMOND XK-1

Seit einiger Zeit behauptet meine Hammond XK-1, dass die Kapazität der interne Pufferbatterie dem Ende entgegen geht: Das Display zeigt nach dem Einschalten "Warn:CHECK BATTERY!". Da es sich bei der Batterie um eine Knopfzelle vom Typ CR2032 (gibt's z.B. bei Reichelt für 0,33 EUR) handelt, kann man den Austausch selbst vornehmen, wie im Folgenden beschrieben wird.

Da beim Batteriewechsel alle Einstellungen und Presets verlorengehen und die Orgel auf Werkseinstellungen zurückgesetzt wird, sollte man alles vorher sichern, z.B. via MIDI Dump.

Dann legt man die Orgel kopfüber (mit den Tasten nach unten) auf einen weichen Untergrund (ein Sofa bietet sich an) und löst die in folgendem Bild markierten Schrauben. Die unterschiedlichen Farben markieren unterschiedliche Schrauben. (Diese Information mag sich beim Zusammenbau als hilfreich erweisen!)


(Auf dem Bild ist die Rückseite der Orgel unten!)

Wird dann der Boden abgenommen, befindet sich die Batterie leicht zugänglich auf der Platine.





Die Batterie ist auf der Platine rechts oben zu sehen und kann leicht durch eine neue Knopfzelle werden.

Nun kann der Boden wieder aufgesetzt werden; dabei beachten, in welche Löcher die langen, in welche die kurzen Schrauben kommen... (siehe oben!)

Den Hinweis "Attn:BACKUP ERROR!", der nach dem Einschalten angezeigt wird, kann man ignorieren; alle Einstellungen sind jetzt wieder wie nach der Auslieferung. Ein Dump kann jetzt wieder zurückgespielt werden.

Ich hoffe, diese Hinweise sind dem einen oder anderen Hammond XK-1 Spieler hilfreich...

Montag, 14. Dezember 2009

MySQL-Übernahme durch Oracle - JETZT HANDELN

Es ist wichtig, heute (Montag) noch zu handeln!!

Sun hat ja MySQL übernommen und soll jetzt wiederum von Oracle übernommen werden, wogegen etliche Bedenken vorliegen, da Oracle voraussichtlich nichts Gutes mit der Open Source Datenbanklösung MySQL vorhat (zugunsten seiner eigenen Datenbank).

Die EU-Kommission wird diese Woche über die Übernahme entscheiden.
Deswegen: Schreibt heute noch (!) eine EMail an comp-merger-registry@ec.europa.eu
Mögliche Texte findet Ihr in Monty's Blog (dem ursprünglichen Entwickler von MySQL): http://monty-says.blogspot.com/2009/12/help-saving-mysql.html

Eine kurze Erklärung, warum und wozu, gibt es auch auf heise online.

Helft dazu beizutragen, dass MySQL vollständig frei bleibt!

Freitag, 16. Oktober 2009

Python und SVN-Bindings unter Windows

Vielleicht hat ja noch jemand mit den Python SVN-Bindings (SWIG) unter Windows Probleme.

Ich muss Python 2.5.4 verwenden (aufgrund diverser Randbedingungen wie Apache mod_python und Trac), installiere die dazu sowie zu meiner verwendeten Version von Subversion (oder Sub-(Version)² *g*) passenden Python-Bindings von hier (svn-python-1.6.5.win32-py2.5.exe).

Ein
C:\>python
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from svn import client
führt zu
Traceback (most recent call last):
File "", line 1, in
File "C:\Python25\Lib\site-packages\svn\client.py", line 19, in <module>
from libsvn.client import *
File "C:\Python25\Lib\site-packages\libsvn\client.py", line 31, in <module>
import wc
File "C:\Python25\Lib\site-packages\libsvn\wc.py", line 5, in <module>
import _wc
ImportError: No module named _wc
Nachdem ich heute stundenlang diesbezüglich gesucht habe (habe neben Google auch andere Suchmaschinen bemüht sowie mir mit Process Monitor angesehen habe, was python.exe so alles treibt), habe ich dank dieser Seite, die eigentlich erklärt, wie man Trac auf 64Bit-Windows unter IIS7 aufsetzt, herausgefunden, dass man lediglich die Datei c:\Python25\Lib\site-packages\libsvn\_wc.dll nach c:\Python25\Lib\site-packages\libsvn\_wc.pyd (es ändert sich lediglich die Dateinamenserweiterung!) kopieren muss und schon geht der Mist...

Sonntag, 12. Juli 2009

Palm Desktop Update

Vor kurzem habe ich auf den Palm-Support-Seiten eine aktuellere Version (6.2) der Palm-Desktop-Software gefunden als die, die meinem Palm T|X beilag (4.x). Heute wagte ich mich mal an die Installation.
Folgendes fiel mir danach auf:
  • Im Kalender werden die Termine nicht mehr nach Kategorien eingefärbt, sondern alle grau dargestellt.
  • Es gibt keine Ansicht mehr für "Notizen", diese können nur noch auf dem Palm angezeigt werden.
  • Das Datenformat für den Kalenderexport wurde von einem proprietären Format (siehe http://www.notsofaqs.com/palmrecs.php) auf eine JET-Datenbank (kann mit MS Access geöffnet werden) umgestellt.
  • Der Hotsync über Bluetooth (emulierte serielle Verbindung) funktioniert erst mal nicht. (Evtl. folgen hierzu noch weitere Infos.)