Immer ehrlich programmieren

23 January 2008

Mich hat heute etwas rund drei Stunden Lebenszeit gekostet und ich weiß noch nicht ob ich sauer sein sollte - und wenn ja, auf wen.
Die Ursache: In einer verteilten Anwendung gibt es Objekte, die eine lokale Repräsentation haben, und zusätzlich entfernt gespeichert werden. Bei der entfernten Speicherung gibt es für jedes Objekt eine Identität die durch eine "ID" repräsentiert wird und ein paar Daten.
Für die lokale Speicherung gibt es eine Identität die durch eine - nicht notwendigerweise gleiche - "ID" repräsentiert wird und auch Daten.
Praktischerweise gibt es Attribute die nur lokal oder nur bei der remote Version des Objektes vorhanden sind. Um teure Remoteaufrufe zu sparen wird nicht immer die Vereinigungsmenge der Attrbute gebildet, sondern in der Regel mit der lokalen Objektversion gearbeitet.
Alles halb so schlimm, alles ist schön gekapselt in mindestens drei Schichten und ordentlich Interface, Framework und Library Watte. Wehe jedoch man weicht von etablierten und getesteten Wegen ab, das kann ein schreckliches Ende nehmen.
local = mapRemoteToLocalObject( remoteService.getObject( local.getId()))
So in etwa sieht das dann aus. An einer klitzekleinen Stelle wird hier leider etwas gelogen. Wie bereits erwähnt gibt es eigentlich zwei IDs für das Objekt - die lokale und die - genauso echte - entfernte. Versucht man nun ein entferntes Objekt mit der lokalen ID zu holen, und hat blöderweise auch noch Testdaten die das zulassen ohne das gleich Tod und Teufel an der Tür stehen, kann man viel Zeit verbringen bis man der Sache auf die Spur kommt.
local = mapRemoteToLocalObject( remoteService.getObject( local.getRemoteId()))
Ist dann das Ergebnis des Abends.
Ein Glück, dass die Testdaten nicht noch schlechter waren - der Fehler hätte locker übersehen werden können.
Womit ich auf den Punkt komme: Ehrliches Programmieren bedeutet Code, der erstens wie Fließtext lesbar ist - und zweitens dabei nichts suggeriert, was nicht stimmt.

Head First Software Development

22 January 2008

Head First Software Development ist das neueste Buch aus der Headfirst Reihe bei O'Reilly. Der deutsche Titel dürfte dann "Softwareentwicklung von Kopf bis Fuß" werden, sobald das Buch auf dem deutschen Markt erscheint. Ich habe das Buch auf englisch und möchte es jedem ans Herz legen.

Ich hätte eher...

22 January 2008

... wieder Joggen sollen.
Zugegeben, das Wetter ist nicht gerade optimal (am meisten Stören die Windgeräusche beim Podcast rezipieren), doch hab ich mich dann gestern Nacht noch aufgerafft.
Ergebnis: Ich bin merklich weniger angespannt, und hab eine Folge Java-Wissen und eine Folge Suchmaschinen-Wissen verdaut.
Kurz: Zufrieden.

Thinkpad: Bluetooth unter Ubuntu Linux aktivieren

18 January 2008

Wenn man nur Ubuntu / Linux auf einem Thinkpad, z.B. dem Thinpad T40p installiert hat, kann es knifflig werden, das Bluetooth zu aktiveren.
Fn+F5 hat nämlich nicht unbedingt die gewünschte Funktion - ist Bluetooth erstmal aus, bekommt man es somit nicht wieder aktiviert. Leider läßt auch das Thinkpad Bios eine Bluetooth Option vermissen.
Abhilfe schafft dieser Befehl in der Kommandozeile: sudo echo enable > /proc/acpi/ibm/bluetooth Um komfortabel Bluetooth zu nutzen sollten die Pakete
gnome-vfs-obex bluez-gnome
installiert sein.
Das Deaktivieren von Bluetooth geht dann übrigens mittels "disable". Je nach Laptop Hersteller kann es noch weiter Möglichkeiten geben, Bluetooth zu aktivieren oder zu deaktivieren, z.B. einen Schalter am Laptop. Auch hier gilt: Einfach ausprobieren!

Yahoo steigt bei OpenID ein

17 January 2008

Yahoo ist bei OpenID eingestiegen - ab dem 30. Januar sollen alle User, die eine Yahoo ID (Mailadresse) haben, automatisch darüber auch eine OpenID erhalten.
Mit Yahoo werden die derzeit rund 120 Millionen OpenID Account um 250 Millioenen weitere wachsen. (Zugegeben, die Spam Accounts müßten noch abgezogen werden.)
Das dürfte dazu führen, dass OpenID weiter an Attraktivität zulegen wird.

Sun kauft MySQL: Eine Milliarde Dollar

16 January 2008

Sun Microsystems (Börsenzeichen "JAVA") hat den schwedischen Hersteller von MySQL gekauft - für eine Milliarde Dollar. (Davon lediglich 800 Millionen in bar, der Rest in Aktienoptionen.)
Interessant ist der kauf von MySQL insbesondere, da MySQL ursprünglich dieses Jahr an die Börse wollte - und Sun sich bisher mit dem Support von Postgresql hervortat.
Wie die genaue Geschäftsstrategie von Sun mit MySQL zkünftig aussieht, kann derzeit wohl nur spekuliert werden. Auf jeden Fall soll das Open Source Datenbank-Management-System weiterhin kostenlos für verschiedene Plattformen verfügbar sein.
Ich persönlich hätte mir eher mehr Schub für Postgresql gewünscht - jedoch kann man die Augen nicht davor verschließen, dass für bestimmte Bereiche MySQL derzeit einfach das DBMS ist. Auch nicht wenn man Sun Microsystems heißt.

Pepsi und Amazon vs. Coke und iTunes

15 January 2008

Wie Techcrunch berichtet haben sich Amazon und Pepsi zusammen getan, um "Pepsi Stuff" zu gründen. Im Prinzip wird hier Cokefridge nachgebaut - aber mit einem wesentlichen Unterschied (von der Plörre die man trinken muß abgesehen): Amazon bietet DRM freie Musik an.
Das bedeutet für den Kunden, er kann die Musik problemlos brennen, im Auto, im Handy, MP3 Player - und auch im iPod hören. Und das ohne auf iTunes angewiesen zu sein, oder sonstige häßliche Klimmzüge machen zu müssen.
Das Pepsi Stuff Programm startet am 1. Februar, und ich wünsche den beiden viel Erfolg, denn sowohl Coke als auch Apple brauchen etwas Konkurrenz um von ihrem hohen Ross herunter zu kommen. Den generellen Seitenhieb gegen DRM sehe ich dabei natürlich auch mit einem langgezogenen Grinsen. Den Kunden permanent als potentiellen Dieb zu behandeln darf sich einfach nicht auszahlen.
Ich werde allerdings dennoch nicht anfangen Pepsi zu trinken - aber weiterhin meinen Coke Boykott aufrecht erhalten. Afri Cola und Jolt wird es freuen.
Amazon akzeptiert zum Glück ja auch eine Kreditkarte.

Warum ich Newskraft sperre

10 January 2008

Für alle die eine "Suchmaschine" bauen - es gibt ein paar klitzekleine Verhaltensregeln, die man beachten sollte.
Ein Beispiel:


78.46.45.99 - - [10/Jan/2008:21:28:46 +0100] "GET /feed/ HTTP/1.1" 200 15773 "http://www.newskraft.de" "Newskraft.de" 0 everflux.de
78.46.45.99 - - [10/Jan/2008:21:28:46 +0100] "GET /feed/rss/ HTTP/1.1" 200 9052 "http://www.newskraft.de" "Newskraft.de" 1 everflux.de
78.46.45.99 - - [10/Jan/2008:21:28:46 +0100] "GET /feed/atom/ HTTP/1.1" 200 15021 "http://www.newskraft.de" "Newskraft.de" 0 everflux.de
78.46.45.99 - - [10/Jan/2008:21:28:46 +0100] "GET /?p=470&akst_action=share-this HTTP/1.1" 200 4908 "http://www.newskraft.de" "Newskraft.de" 0 everflux.de
78.46.45.99 - - [10/Jan/2008:21:28:46 +0100] "GET /?p=469&akst_action=share-this HTTP/1.1" 200 5049 "http://www.newskraft.de" "Newskraft.de" 0 everflux.de
78.46.45.99 - - [10/Jan/2008:21:28:46 +0100] "GET /?p=468&akst_action=share-this HTTP/1.1" 200 4644 "http://www.newskraft.de" "Newskraft.de" 0 everflux.de
78.46.45.99 - - [10/Jan/2008:21:28:46 +0100] "GET /?p=467&akst_action=share-this HTTP/1.1" 200 4828 "http://www.newskraft.de" "Newskraft.de" 0 everflux.de
78.46.45.99 - - [10/Jan/2008:21:28:47 +0100] "GET /?p=465&akst_action=share-this HTTP/1.1" 200 6963 "http://www.newskraft.de" "Newskraft.de" 0 everflux.de
78.46.45.99 - - [10/Jan/2008:21:28:47 +0100] "GET /?p=464&akst_action=share-this HTTP/1.1" 200 5003 "http://www.newskraft.de" "Newskraft.de" 0 everflux.de
78.46.45.99 - - [10/Jan/2008:21:28:47 +0100] "GET /?p=462&akst_action=share-this HTTP/1.1" 200 4847 "http://www.newskraft.de" "Newskraft.de" 0 everflux.de
78.46.45.99 - - [10/Jan/2008:21:28:47 +0100] "GET /?p=461&akst_action=share-this HTTP/1.1" 200 7506 "http://www.newskraft.de" "Newskraft.de" 0 everflux.de
78.46.45.99 - - [10/Jan/2008:21:28:47 +0100] "GET /?p=463&akst_action=share-this HTTP/1.1" 200 9277 "http://www.newskraft.de" "Newskraft.de" 1 everflux.de

Man beachte die Zeiten, wann die Zugriffe stattfanden.
Und das war noch lange nicht das Ende. Also wenns denn schon ein Crawler sein soll, dann nicht mehr als einen Zugriff pro Sekunde.
Immerhin bei Newskraft lobenswert: robots.txt wird vorher geladen - wie sie genutzt wird, hab ich jedoch nicht ausprobieren wollen.

Google gibt Feedstatistiken im User-Agent an

10 January 2008

Normalerweise schaue ich nicht in die live Logs vom Apache Webserver des Blogs, aber aus gewissen Gründen machte ich mir doch mal die Mühe.
Was mir da gerade über den Weg gelaufen ist, finde ich doch interessant:

"Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; 1 subscribers; feed-id=18021914886172537744)"

Viellicht gehört das nicht unbedingt in den Useragent - aber in jedem Fall eine sehr innovative Idee.
Da muß ich nichtmal Feedburner oder ähnliches bemühen um herauszufinden dass ich einen ganzen Leser habe ;-)
Was ich nicht ganz verstehe, sind die weiteren Requests, die eine andere Feed-Id beeinhalten.

"Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; 1 subscribers; feed-id=16484629274111537011)"


Aha, die antwort ist einfach: Wenn Google den Feed über verschiedene URLs kennt, so wird jedesmal eine eindeutige 64bit ID pro URL erzeugt.
Das bedeutet, man muss die Anzahl der Abbonennten zusammenzählen. Dann hab ich wohl 2. :-)
Weitere Informationen zum Google Feedfetcher gibt es im Google Reader Help Bereich.

MapReduce library für Ruby: Skynet

6 January 2008

Wer by Skynet "Terminator" denkt liegt nicht ganz falsch.
Die Skynet Bibliothek stellt ein "selbsterweiterndes, fehlertollerantse und vollständig verteiltes" System bereit, um rechenintensive Aufgaben zu verteilen.
Es handelt sich hierbei nicht um einen Hadoop Wrapper oder ähnliches, sondern um eine 100% Ruby Implementierung der von Google vor einiger Zeit vorgestellten Map/Reduce Herangehensweise.
Das Skynet Konzept basiert dabei auf einer Messagequeue, in die "Tasks" eingestellt werden können. Als Messaging Systeme werden derzeit TupleSpace und Mysql (sic!) unterstützt.
Skynet geht dabei konzeptionell so vor, dass es keine dedizierten Master oder Slave Knoten gibt, sondern lediglich worker. Diese können aufeinander "aufpassen" und einspringen, wenn einzelne Worker versagen. Geht man von einer redundanten Auslegung der Messagequeue aus, so hat Skynet keinen "single point of failure" und soll sich sehr einfach in eigene (Rails) Anwendungen integrieren lassen.

seo-phpbb.org bald wieder online

6 January 2008

Tobi, der das seo-phpbb Projekt betreibt, ist zuversichtlich bald wieder mit der Seite online zu gehen.
Derzeit finden sich die Downloads lediglich bei Google-Code.
Besonders schön, wenn die Seite wieder online ist, gibt es auch wieder die Banner-Management und weitere Plugins, die Tobi entwickelt. Hut ab vor dem Projekt!

Wer überlegt ein PhpBB2 oder PhpBB3 zu betreiben, sollte sich unbedingt die SEO Modifikationen ansehen. Insbesondere für stark frequentierte Foren sollte PhpBB3 dank Caching den Server deutlich entlasten, und ist eine oeberlegung für derzeitige phpbb2 Foren wert.

Keepalive

5 January 2008

Manchmal wartet man auf einen Timeout - aber quasi in letzter Sekunde kommt ein keep-alive.
Leider helfen idle sessions selten weiter.

Xiedo: Rechnung für myboysfriend.com

5 January 2008

Xiedo Media ist heiter weiter am Rechnungen versenden. Die Hartnäckigkeit bei dem Versand von augenscheinlich falschen Rechnungen ist erstaunlich.

Diesmal hat Xiedo Media - übrigens mit einem hübsch neu gestalteten Rechnungsformular - Rechnungen für myboysfriend.com im Sinne.
Diese Seite zielt vor allem auf "gayboys", also homosexuelle Nutzer. Was einen auf der Seite - neben einer saftigen Rechnung von Xiedo Media - erwartet, ist nicht ganz klar.
Lustig, wenn man auf "Login" klickt (statt registrieren) gelangt man zu Formularen, die man erstmal (ohne Fehlerprüfung) absenden kann. Login, Passwort, Email - egal, es geht weiter.
Erst die Profilseite, auf der auch die BH-Größe ein Pflichtfeld ist, hat eine JavaScript "Validierung". Bei den Szenen, bei denen man bereit wäre "eingesetzt" zu werden ist eine Auswahl "lesbsich". Paßt ja - fast.
Auch ein Verdienstwunsch ist anzugeben - nicht klar ist hier, für was.
Praktischerweise gibt es noch die AGB. Allgemeine Geschäftsbedingungen. Hier verstecken sich Angaben über Dauer - und vermutlich auch der Kosten - der Mitgliedschaft. Ich habe diese nicht gefunden, aber sicherlich glaubt sich Xiedo Media hier abgesichert zu haben. Und offenbar gibt es auch genug Leute, die bezahlen, denn sonst würde sich das hier vermutlich vorzufindende Verfahren von Rechnungen und Drohungen nicht lohnen.
Was diejenigen, die eine Rechnung von Xiedo Media bezahlen wohl nicht wissen: Kosten sind in den AGB kaum regelbar. Insbesondere keine individuellen Vertragsbestände. Auch verfügt die Seite nicht über ein gemäß der deutschen Rechtsprechung gültiges Impressum.
Hier versucht man sich wohl mit einer ".com" Domain aus der Affäre zu ziehen. Ich bezweifle, dass das reicht. Auch ist in der mir vorliegenden Rechnung kein Rechnungsempfänger mit Anschrift, ja nichtmal ein echter Name genannt.
Ob man neuerdings mit einem Email-Account einen Vertrag vereinbaren kann?
Immerhin hat xiedo - sicherlich auch nach Lesen dieses Blogs - eine Rechnungsnummer eingeführt. Die Rechtsform der Firma ist jedoch noch immer nicht zu erkennen.
Ich empfehle jedem, sich bei der Polizei beraten zu lassen, der eine solche E-Mail von Xiedo erhalten hat. Vor allem ist darauf zu achten, dass man klar macht, dass man keinerlei Vertrag abgeschlossen hat, und einem die "Firma" gänzlich unbekannt ist - sofern dies den Tatsachen entspricht.

Hier noch die - zumindest aufgrund der Tippfehler - amüsante E-Mail incl. der Rechnung, die derzeit von Xiedo Media verschickt wird.

Im E-Mail Anhang finden Sie Ihre Rechnung für das angelegte Profil bei www.myboysfriend.com
Wir bitten Sie den Rechnungsbetrag, der aus der Rechnung hervorgeht, zu begleichen.
Bitte beachten Sie das nicht zugeordnete Zahlungen oder Teilzahlungen keine schuldbefreiende Wirkung haben.
Hinweis gemäß BDSG: Bis zur Begleichung der Forderung speichern wir die IP-Adresse der Anmeldung.

 
Geben Sie bei Ihrer oeberweisung immer Ihren Rechnungsnummer und Nutzernamen an !



Noch ein wichtiger Hinweis:
Sollten wir in den nächsten Tagen keine Zahlung verbuchen können, werden wir zudem technisch überprüfen lassen, ob die uns vorliegenden Personendaten zu der hier verwendeten Email-Adresse & Ihrer IP Adresse passen. Während der Anmeldung haben Sie uns explizit bestätigt, das Ihnen unsere Allgemeinen Geschäftsbedingungen - Wiederufbedingungen bekannt sind. Desweiteren haben Sie von Ihrem 14 tägigem Wiederufsrecht kein Gebrauch gemacht.
Bei vorsätzlicher Angabe falscher Personendaten bringen wir dies zur Anzeige. Im Falle einer strafrechtlichen Ermittlung ist es den Strafverfolgungsbehörden anhand der IP-Adresse möglich, den PC zu identifizieren, der zum Zeitpunkt der Anmeldung genutzt wurde. Daraufhin weden in einer gerichtlichen Auseinandersetzung alle gespeicherten Daten vorgelegt.

 
Mit freundlichen Grüßen,
Myboysfriend.com Team
 

Immerhin gibt Xiedo jetzt neben der Adresse Xiedo Media - Alsstraße 19 - 41063 Mönchengladbach auch eine Ust-Id Nr. an DE224949923 - jedoch keine (!) Steuernummer. Als Kontonummer wird die 6064489, BLZ 30170024 angegeben. Die Telefonnummern sind (relativ teuere) Ortsnetzunabhängige Gassen.
Seriöser - ja. Seriös? Nicht in meinen Augen. Aber ich bin sicher, der Rubel rollt weiter für Xiedo Media, denn viele Menschen zahlen auch ungerechtfertigte Rechnungen, wenn sie Angst haben.

China will Todesstrafe auf Giftspritze umstellen

4 January 2008

Wie die Süddeutsche online berichtet, will China ihre Hinrichtungsmethode vom Genickschuß auf die Giftspritze umstellen.
Das sei angeblich humaner.
Vermutlich ist da mehr drann, als es erstmal den Anschein hat. Denn wenn jemand vergiftet wurde, scheidet er als Organspender wohl aus.

Spam: Sie haben Schulden? ohne-schulden24.de / endlich-ein-konto.de

3 January 2008

Es ist grausam. Irgendein Harvester hat von mir mehrere E-Mail Adressen gezogen, und jetzt stapelt sich der Spam. Ich hätte Schulden steht da, zumindest sei das anzunehmen. Da kocht mir echt der Blutdruck hoch.
Auf der "beworbenen" Seite kann ich entweder ein affili.net Programm beklicken oder ein (vermutlich überteuertes) E-Book zum Thema Schulden kaufen. Echte Informationen zum Thema Schulden - Fehlanzeige! (Wer Infos zum Thema Schulden sucht ist wohl selbst in der Wikipedia besser aufgehoben)
Affili.net ist nicht sonderlich daran interessiert die Sache anzugehen - aber einen seriösen Eindruck hat affili.net auf mich bisher auch nicht machen können.

Die Spammer werden immer dreister - moderner Terrorismus ist das!
Zum nachlesen - inklusive der abenteuerlichen Begründung warum es erlaubt sei mich anzuspammen - hier die E-Mail:

Willkommen bei ohne-schulden24.de! Wir nehmen an, dass Sie Schulden haben. Die ersten Mahnungen stapeln sich auf Ihrem Schreibtisch und Sie haben keine Ahnung, wie Sie den Schuldenberg wieder abbauen sollen? Ein Banküberfall? Bloß nicht! Es gibt doch legale Tricks, die schon oft funktioniert und den Schuldnern wieder finanziellen Freiraum geschaffen haben.www ohne-schulden24 de Sie erhalten diese Mail, da Sie einen unserer Services (Anzeigenmarkt, Gewinnspiele, Informationsanforderung) teilgenommen haben. Wenn Sie keine weitere Mail mehr wünschen, melden Sie sich hier ab: http://www.bestnetz24.de/letterit2/ausgabe?liemail=webmaster@xxx&libid=1 Bei technischen Problemen, Email mit Betreff "L-SCHEN" an info@bestnetz24.de

Als Inhaber der Domain wird hier Andreas Kühn, Waltjenstrasse, Bremen genannt. Offenbar hat man hier Erfahrung mit entsprechenden Zielgruppen:
endlich-ein-konto.de
handydirect24.de
ohne-schulden24.de


/
Copyright © 2007, 2008 everflux. Alle Rechte vorbehalten. All rights reserved.