Thursday, August 30. 2007
Gerade gesehen, dass heute um 22:40 auf ORF1 "My Name is Earl" anläuft. Nachdem ich die gesamte erste Staffel bereits gesehen habe (don't ask), kann ich die Serie sehr empfehlen. Unbedingt anschauen. Und hoffe, dass der ORF auch diese Serie im Zweikanalton überträgt.
Saturday, August 25. 2007
Heute am Vormittag hab ich mal den samstäglichen Flohmarkt am Linzer Hauptplatz besucht, und ein wenig gestöbert. Gefunden hab ich zwei Kameras, und zwar eine Zeiss Ikon Contina IIa, sowie eine Polaroid Colorpack 80.
Die Zeiss Ikon funktioniert mit stinknormalem 35mm-Film, also hab ich gleich mal einen Schwarz-Weiss-Film gekauft, und werde heute noch ein wenig herumknipsen damit. Nachdem ich jetzt jahrelang ausschließlich digital fotografiert habe, wird das auf jeden Fall spannend, da ich ja auf die Entwicklung ein paar Tage warten werde müssen. Nichts mit Preview-Button.
Interessanter wird's da schon mit der Polaroid. Lt. dieser Seite braucht die Kamera Series-80 Film von Polaroid, und der wird lt. der Polaroid-Website seit Ende 2006 nicht mehr produziert. Wenn der Hartlauer, zu dem ich jetzt schauen werde, da nix mehr hat (ich hoffe mal, dass das Sortiment auf deren Website nicht das Sortiment in der Filiale widerspiegelt), dann bleibt mir nur noch als letzte Hoffnung der Fotohändler bei mir in der Nähe, der allerdings am Samstag nicht offen hat, sonst wäre ich da schon längst hingegangen.
Update: beim Hartlauer gibt's den Series-80 Film nicht (O-Ton Verkäufer: "in Österreich ist der seit locker 5 Jahren nicht mehr lieferbar" und "schmeissen sie die Kamera weg" [sic!]), allerdings hat mich dkg freundlicherweise auf unsaleable.com hingewiesen, die genau drei Sorten von dem Filmtyp, nämlich Polaroid 87, 88 und 89, lagernd haben. Herzlichen Dank für den genialen Tipp!
Friday, August 24. 2007
Wenn man in einem Online-Config-Interface alle Mehrwertnummern sperrt, dann könnte man meinen, dass dann alle Mehrwertnummern gesperrt sind. Dem ist nicht so, zumindest bei ONE. Im Zusammenhang mit den hier bereits erwähnten Wap-Push-Messages sind ein paar unschöne Rechnungspunkte auf meiner Einzelverbindungsübersicht fürs laufende Monat erschienen, obwohl ich schon kurz nach Abschluss des Vertrags sämtliche Mehrwertnummern gesperrt hatte. Besonders toll war dann auch, dass ich mir an der ONE-Kunden-Hotline anhören durfte, dass auf deren Interface nichts zu sehen war, dass ich irgendeine Sperrung vorgenommen hätte, und dass, falls ich tatsächlich die Sperrung durchgeführt hätte, ich es wahrscheinlich "falsch" gemacht hätte. Hallo?! Geht's noch? Das Interface sieht so aus:
Und hinter dem "Ändern"-Button hängt nichts anderes als die Auswahl "Aktiviert" bzw. "Gesperrt". Was sollte man da falsch machen? Auf jeden Fall hab ich ONE dann angewiesen, dass doch zu sperren. Und jetzt kann man's nicht mal über die Website reaktivieren. Bei der Mehrwertnummernsperre scheint ONE also ein echtes Problem zu haben. Auf jeden Fall, sobald ich die Rechnung für August erhalte, werde ich da einen schönen Einspruch dagegen machen, und ONE wird sich rechtfertigen müssen, warum eine Sperrung keine Sperrung ist.
synflood.at ging es in den letzten Tagen nicht unbedingt gut. Das ist jetzt gefixt (Hardwaredefekt), und das Blog kann wieder den regulären Betrieb aufnehmen. Vorgestern hab ich mich übrigens entschlossen, sämtliche Bloggingtätigkeit zu newsbeuter im Newsbeuter Development Blog weiterzuführen.
Wednesday, August 22. 2007
Ich bin derzeit dabei, ein wenig competitive analysis im Bereich RSS-Feedreader durchzuführen (man muss sich ja mit knackigen Ideen für neue newsbeuter-Features versorgen), und bin im Zuge dessen auf die Idee gekommen, Synchronisations-Support mit diversen Online-RSS-Readern umzusetzen. Etliche Online-RSS-Reader implementieren eine mehr oder weniger komplexe API (auf HTTP-Basis), um eine gewisse Synchronisation durchzuführen. Die größeren "Player" in dem Bereich sind Bloglines, NewsGator und Google Reader.
Nun ja, der Bloglines-Support ist schon implementiert (und funktioniert ganz OK, soweit ich nach den ersten Tests sagen kann), Google Reader hat das Problem, keine öffentliche API-Doku zu haben (es gibt lediglich eine reverse-engineerte), und NewsGator... ja, NewsGator. Die haben eine ziemlich komplexe API. Gut, das ist kein Problem, ganz im Gegenteil, damit könnte man nette Sachen machen. Allerdings: mit der Benützung der API verbunden ist das Einverständnis mit diesem langen License Agreement durch den Entwickler, und man braucht einen API Product Key, bei dessen Beantragung angeben muss, ob das Produkt "commercial" oder "non-commercial" ist. Das License Agreement ist ja schon mal toll, wenn ich nicht mit allem einverstanden bin, darf ich die API nicht einmal implementieren, außerdem muss man bei "non-commercial use" überall, wo als Backend die NewsGator API verwenden wird, das NewsGator-Logo anzeigen, und bei "commercial use" ist sowieso ein License Fee fällig. Da ich in meiner Lizenzierung von newsbeuter aber keine Aussagen über die Verwendung mache (ist mir doch egal, ob da jemand mit newsbeuter Geld verdient, ist sowieso eher unwahrscheinlich), sehe ich mich außerstande, mich auf eine bestimmte Verwendungsart festzulegen, und den jeweiligen Bedingungen (Logo bzw. License Fee) kann ich sowieso nicht folgen. Außerdem ist in dem License Agreement eine Art NDA verpackt. Damit sind die Lizenzbedingungen absolut inakzeptabel, weswegen ich auf keinen Fall jemals NewsGator-Support implementieren werde. Sollte jemand noch andere Online-Reader mit öffentlicher API und weniger restriktiven Nutzungsbedingungen kennen, die auch unterstützenswert sein könnten, bitte ich um freundliche Eingaben in den Kommentaren.
Friday, August 10. 2007
Gerade hab ich eine WAP-Push-Message gekriegt, genauer gesagt eine Service Indication (das ist ein spezielles SMS mit Text und einer URL dabei). Der Text und die URL sind hier zu sehen, das ist die einzige Info, die mein Handy dazu ausspuckte:
Das machte mich natürlich stutzig. Also hab ich mir mal das WHOIS von dsza.com angeschaut. Da ist nichts besonderes aufzufinden. Der nächste Schritt war dann, mit Hilfe des großartigen Tools w3bfukk0r ein wenig Forced Browsing zu betreiben. Gefunden hab ich da konkret http://dsza.com/webalizer/. /cgi-bin/ ist auch noch vorhanden, returniert allerdings 403.
Der nächste Schritt war, mit einem Handy-typischen User-Agent (die kriegt man z.B. aus diesem File heraus) die konkrete URL, die mir zugeschickt wurde, herunterzuladen. Das führte zu einer Umleitung auf eine URL von dl.dsza.com, welche schließlich ein XHTML-Mobile File zurücklieferte, das man sich hier anschauen kann. Offenbar handelt es sich um den typischen Jamba-style Handy-Content, d.h. Ringtones, Wallpapers und Videos. Interessant ist sicher der Hinweis am Ende der Seite: "Handyfun - 7 Tage GRATIS (inkl.2 downloads) danach 4EUR pro Woche. Mehr als 2 downloads, 4EUR pro Content. Abm.m.stop an 0930585686". 0930? Ist die nicht für Sexhotline-Betreiber registriert? Und müssen bei Mehrwertnummern nicht die anfallenden Kosten pro SMS angegeben werden? Naja, egal.
Ich wollte mir auf jeden Fall noch anschauen, was ich denn kriege, wenn ich mir den DJ Oetzi/Nik P Ringtone herunterlade. Also hab ich mal die verlinkte URL heruntergeladen. Zurück kam folgende Fehlermeldung (von dem XML-Zeugs befreit): (Exception Class:
EXCEPTION: Status Code: 500
Request URI: /universal/loadMediaPack!directMedia.action
Servlet Name: default
Exception Class: java.lang.IllegalArgumentException
Error Msg: The serviceId must greater than -1
Application ID: 9)
Ups, die URL endet auf "svc=". Also "svc=0" gemacht. Das Resultat? (Exception Class:
EXCEPTION:
Status Code: 500
Request URI: /universal/loadMediaPack!directMedia.action
Servlet Name: default
Exception Class: java.lang.IllegalArgumentException
Error Msg: The service number specified [0] is less than or equal to zero.
Application ID: 9) Muahahahahahahaha! Also nun mit "svc=1": (Exception Class:
EXCEPTION:
Status Code: 500
Request URI: /universal/loadMediaPack!directMedia.action
Servlet Name: default
Exception Class: org.hibernate.HibernateException
Error Msg: Failed to retrieve [com.switchfire.mmp.dao.wap_platform.mmp.media.MMPMediaPackDAO] with id [0] from database: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.switchfire.mmp.dao.wap_platform.mmp.media.MMPMediaPackDAO#0]
Application ID: 9) An dem Punkt bin ich dann allerdings draufgekommen, dass ich die URL falsch zusammengebaut hab, also das ganze nochmal, mit der richtigen URL. Also das ganze nun richtig, und was kam da jetzt zurück? (Exception Class:
EXCEPTION:
Status Code: 500
Request URI: /universal/loadMediaPack!directMedia.action
Servlet Name: default
Exception Class: java.lang.RuntimeException
Error Msg: Failed to EXEC prHoursSinceLastBroadcast for Phone [43699XXXXXXXX] in Service [3029]: java.sql.SQLException: Failed to get [APP_SERVER_MODE] database connection to [DBSRVRB_BCM (java:DBSRVRB_BCM)]: org.jboss.util.NestedSQLException: Could not create connection; - nested throwable: (com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'bcm'.); - nested throwable: (org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'bcm'.))
Application ID: 9) Da wird's jetzt wieder interessanter. An dieser Exception sehen wir, dass hier offenbar meine Telefonnummer (ich hab sie ausgeXt) mitgetragen wurde, höchstwahrscheinlich über die HTTP-Session, die durch die JSESSIONID in allen URLs mitgezogen wurde. Was wir auch sehen, ist, dass Java verwendet wird (gut, das haben wir vorhin auch schon gesehen), dass als Datenbank-Backend ein Microsoft SQL Server verwendet wird (dsza.com und dl.dsza.com melden sich beide als "Apache/2.0.52 (Red Hat)"), und dass der Datenbank-Login an einem Loginfehler scheitert. So wie es aussieht, wird es also nichts mit meinem DJ Ötzi Ringtone.
Aber trotzdem gibt es noch ein paar ganz interessante Dinge zu erforschen. Wenn man w3bfukk0r über dl.dsza.com laufen lässt, so enthüllt sich das Verzeichnis http://dl.dsza.com/images/others/, in dem sich jede Menge GIF-Files mit Namen wie C1stAsianxxx.gif finden.
Noch interessanter wird's, wenn man sich die IP-Adresse, die hinter dsza.com bzw. dl.dsza.com anschaut, und ein WHOIS auf die IP-Adresse macht. Da scheint nämlich auf, dass es sich bei dem Host um einen Colo-Server der Firma "Switchfire Ltd" handelt. Und die haben sogar eine Firmen-Website, die professionell und seriös wirkt. Wenn man allerdings beachtet, dass mich anscheinend genau diese Firma mit Handy-Download-Links bespammt hat (woher haben die überhaupt meine Nummer?), so bildet sich schnell ein anderes Bild. Tollerweise erklären sie auf ihrer Seite auch gleich, wie das Billing funktioniert: Our image based services, which include subscription and dating products – are enabled through WAP pushes (SMS messages with a URL within the header). Once an individual has received one of these messages, they can access the WAP content defined in the header. Billing is typically executed through a premium reverse message. Subscription versions of this service are extremely popular. Welche weiteren Schritte ich noch unternehmen werde, weiß ich nicht. Eventuell interessiert sich die Rundfunk & Telekom Regulierungs-GmbH dafür. Wenn irgendwer andere Ideen hat, bitte kommentieren.
Update: achja, noch was rausgefunden. Die 0930-Nummer, die in der Seite zu finden war, ist lt. RTR auf die Switchfire Ltd registriert.
Tuesday, August 7. 2007
Bisher sind schon mehrere Leute auf mich zugekommen, sie wollen doch eine Art "Meta-Feed" in newsbeuter, der alle ungelesenen Feeds enthält. Diesem Wunsch bin ich heute nachgekommen, und hab das gleich schön generalisiert, d.h. jeder Benutzer kann sich seine eigenen Meta-Feeds ("query feeds" im newsbeuter-Jargon) definieren, und zwar auf Basis der newsbeuter-internen Filtersprache. Das funktioniert relativ einfach: man füge einfach eine neue Konfigurationszeile in die Datei ~/.newsbeuter/urls ein, welche mit "query:" beginnt, dann den Namen enthält, auf welchen - durch einen Doppelpunkt getrennt - ein Filterausdruck folgt. Startet man nun newsbeuter, so sieht man diesen neuen Eintrag in der Liste der Feeds, mit dem konfigurierten Namen. Öffnet man diesen Feed, so werden alle heruntergeladenen Artikel, auf die der angegebene Filterausdruck zutrifft, in der Artikelübersicht angezeigt. Der "Klassiker", also die öfter geforderte Funktionalität, alle ungelesenen Artikel aller Feeds anzuzeigen, sieht dann in der Konfiguration so aus:
"query:Unread Articles:unread = \"yes\""
Man achte auf das Quoting: da die pseudo-URL Leerzeichen enthält, muss diese als ganze gequoted werden. Da im Filterausdruck ebenfalls Quotes vorkommen, müssen diese passend escaped werden. Ganz praktisch auch das Zusammenfassen von mehreren mit dem selben Tag versehenen Feeds zu einem einzigen Feed:
"query:gesammelte Artikel:tags # \"tagname\""
Im Grunde genommen sind die Möglichkeiten der Query Feeds nur eingeschränkt durch die mit der Filtersprache abfragbaren Attribute und die eigene Kreativität.
Die Query Feeds werden Teil des nächsten Releases sein, das diesmal weniger lang auf sich warten lassen wird als das letzte Release 0.5. Zusätzliche Features werden da u.a. auch das Neuladen des urls-File von newsbeuter aus (Kleinigkeit, aber trotzdem praktisch) und eine Eingabe-History für die Filtereingabefelder und die interne Kommandozeile sein.
Friday, August 3. 2007
Ein Internet meme, das man in letzter Zeit öfters antrifft, und an dem ich großen Gefallen gefunden habe, sind Lolcats. Katzencontent fand ich ja bisher eigentlich ziemlich lahm, mit den Lolcats ist das ganze doch ziemlich amüsant geworden. Die klassischen Quellen sind lolcats.com, lolcats2.com (leider down derzeit) und icanhascheezburger.com.
|