Endlich kriegt Firefox ein Feature, an das ich mich bei der täglichen Benutzung von Safari gewöhnt habe. Ich schalte die History-Funktion komplett ab und verlasse mich auf meine Bookmarks, in denen ich – fast wie Shortcuts – alle wichtigen URLs gespeichert habe.
Wer Mac OS X in einem Netzwerk einsetzt, in dem sich ein etwas teurerer Netzwerkdrucker befindet, wird es längst wissen: Die Dinger preisen sich im Druckdialog unter „Bonjour Printers“ automatisch an. Die von Apple (mit?)entwickelte Technologie ist unter vielen Namen bekannt: Rendezvous, Bonjour, mDNS, Zeroconf.
Hier zu Hause betreibe ich einen HP Laserjet 1300 (der kann Postscript, was in heterogenen Umgebungen mit Linux und Mac OS X von Vorteil ist), der am LPT-Port eines Debian GNU/Linux Servers hängt. Druckaufträge aus dem Netzwerk nimmt lprng mit dem LPD/LPR-Protokoll entgegen (CUPS wäre in diesem Fall Overkill).
Als meine Freundin vor Kurzem bei mir zu Besuch war und von ihrem Laptop etwas ausdrucken wollte, erinnerte ich mich an die Einfachheit der Drucker-Installation mit Bonjour. Irgendwie sollte es doch möglich sein, die Funktionalität mit Linux nachzubauen?
Tatsächlich habe ich es nach einigem Pröbeln hingekriegt. Als erstes installiert man den avahi-daemon, der im Hintergrund die ganze mDNS-Geschichte abhandelt:
# apt-get install avahi-daemon
Anschliessend erstellen wir eine XML-Datei unter /etc/avahi/services mit folgendem Inhalt:
type: _printer._tcp Es wird das LPD/LPR-Protokoll verwendet
hostname: IP-Adresse oder Domain-Name des Druckservers
port: 515 Die Portnummer, auf der LPD lauscht
txt-record: rp=Laserdrucker Sehr wichtig: Der Queue-Name des Druckers auf dem LPD-Server. Stimmt dieser nicht, wird der Druckauftrag nicht angenommen. Wie die definierten LPD-Queues heissen, erfährt man aus /etc/printcap
ty, product Die Angaben hier sind nicht zwingend nötig – Mac OS X erkennt den Drucker dank diesen Angaben vollautomatisch und richtet die entsprechenden Drucker-Treiber ein (sofern bereits installiert).
Dieses Protokoll beschränkt sich überhaupt nicht nur auf die Bekanntmachung von Druckern im Netzwerk. Genauso kann man SSH-Server oder Web-Site URLs in den Äther hinaus funken.
Monit now sends three icmp echo requests in one cycle by default.
It is possible to customize the echo requests count using the
count parameter of icmp test […]
Wie oft habe ich meine INBOX zugespammt erhalten, weil von mir betreute „Server“ mit Billig-Netzwerkkarten schlicht und einfach ein ICMP Echo „vergessen“ haben? Nun hoffe ich, dass mit
check host myserver with address 192.168.1.1
if failed icmp type echo count 5 with timeout 3 seconds
then alert
I wouldn’t be bothered all day by marketing folks asking could the forms be mauve, I wouldn’t have to worry about the wording of some field label on some feature that no one even knew how to get to, I wouldn’t have to deal with icons that were too Anglo-Saxon, too masculine or too feminine, I wouldn’t have to worry that some important VP wanted a new button that would confuse 90% of users. I would just write code. […]
The engine needed to be rewritten from the ground up, it needed to be made maintainable, it needed to be faster, and it needed to be completely backwards compatible..
Alles tönte super – bis zum letzten Teilsatz. Genau diese Rückwärtskompatibilität hat den OpenXML-Standard krepieren lassen sowie zum Flop Windows Vista geführt. Rückwärtskompatibilität wird Microsoft diese und nächste Dekade das Leben verflucht schwer machen … Und somit den Entwicklern, die bei Microsoft (und anderen riesigen Software-Unternehmen) arbeiten.
Iris was a lot like most engineering organizations, most of the good work was done by handful of talented people, the others often produced barely functional crap that would need to be cleaned up someday.
Ich habe Lotus Notes noch nie benutzt, doch die Beschreibung der „Notes templates“ lässt mich aufhorchen:
Describing how Notes templates work is a difficult thing, there is really nothing else quite like it the software world, but I guess I’d describe Notes templates as sort of like web applications. As a template developer, you must deal with back-end storage issues, you are writing in scripting languages for both the back-end and front-end functionality and rendering stuff, it’s sort of like working with ASP, HTML and JavaScript…sort of.
Ich bin mir fast sicher, dass SAP etwas Ähnliches mitbringt … ABAP und so.
Despite all the bureaucracy, the number of parties involved, the complexity of the decision-making process, and the constant design changes, SENTINEL was actually delivered on time and nearly 70% feature complete. […] The missing features – left out mostly as a result of external systems – would be delivered months later in SENTINEL 2.0. And fortunately, Christian would have no part in this second project.
Without any other ideas, Victor and his manager left the meeting and begin the IDDTP procedure: Install, Deploy, Don’t Test, Pray. Victor’s laptop was placed on a chair and plugged-in to the network. Within moments, SENTINEL was back up and running – quite a bit slower than usual – and Victor’s laptop was working like mad.
Auf derselben Seite werden auch drei Tonspuren der Nationalhymne angeboten; darunter eine von LeAnn Rimes.
Da diese Interpretation saugut tönt, wollte ich mir eine „Sicherheitskopie“ anfertigen.
Dies hat sich als komplizierter erwiesen als gedacht (ja, ich bevorzuge den Download per wget – insbesondere, wenn es sich um mehrere Megabyte grosse Inhalte handelt):
Soso … Aber vorhin konnte ich das Stück im Browser doch ohne Probleme anhören? Zwei Möglichkeiten für die unerwartete Weigerung des Web-Servers kommen mir auf Anhieb in den Sinn:
Referer-Blocking: Nur wer von der selben Domain auf das MP3 zugreift, darf es herunterladen
User Agent-Blocking: User Agents wie „wget 1.9.2“ etc. wird der Zugriff auf die Datei nicht erlaubt
Als erstes Versuche ich letzteres und gebe der Anfrage einen anderen User Agent-string mit:
Na also! Das simple „Mozilla/4.0“ reicht bereits, um Zugriff auf die Datei zu erhalten.
Internet-Geschichte
Ursprünglich wurde Mozilla nur als firmeninterne Bezeichnung für den Webbrowser Netscape Navigator benutzt. Zum genauen Ursprung des Namens, der sich auf den ersten populären Webbrowser Mosaic bezieht, gibt es mehrere Erklärungen. Eine besagt, dass er sich aus Mosaic Killa zusammensetzt, laut der anderen aus Mosaic meets Godzilla. Möglicherweise treffen sogar beide Erklärungen zu.
Ein kleiner Streifzug durch die aktuelle Ausgabe der Computerzeitschrift c’t:
Offenbar funktioniert Kundenbindung heutzutage nach dem Diodenprinzip und die Kündigung ist dabei die Sperrrichtung. Reinzukommen ist ganz leicht, in der anderen Richtung trifft man auf erheblichen Widerstand.
Quelle: c’t, 26. November 2007, „Das Diodenprinzip“, S. 1.
Die Expo ist auch als Treffpunkt zwischen Kapitalgebern und Unternehmensgründern konzipiert. In eigenen Workshops gaben Gründer und Investoren Tipps zur Entwicklung von Geschäftskonzepten. Dabei wünschen sich die Kapitalgeber aber „mehr Hacker und weniger MBAs“, wie Reshma Sohoni vom Gründer-Netzwerk Seedcamp erklärte.
Quelle: c’t, 26. November 2007, „Katerstimmung in Berlin“, S. 42.
Swiss fliegt auf Zuverlässigkeit von Windows Server – Linux ohne Starterlaubnis
Ein weiterer Vorteil ist, dass das neue System wesentlich mehr Kapazitäten hat als das alte, das auf 250 Nutzer beschränkt war. […] „Eine Verbesserung der Uptime auf 99.95% bei gleichzeitiger Kapazitätssteigerung, um mehr Anfragen gleichzeitig zu bearbeiten, ermöglicht es unserem Team, den Anstieg von 30%, den wir bei unserem Online-Vertrieb erleben, spielend abzuwickeln.“
Immer schön, wenn sich im Kampf zwischen Gut und Böse auch noch die CIOs ins Rampenlicht stellen:
„[…] Mit Linux hatten wir nicht die nötige Zuverlässigkeit oder Flexibilität.“ –– Frank Meyer, CIO, SWISS
Mit dieser Aussage stellt sich der CIO gegen den Linux-Erfinder höchstpersönlich:
Torvalds:I think the real strength of Linux is not in any particular area, but in the flexibility. For example, you mention virtualization, and in some ways that’s a really excellent example, because it’s not only an example of something where Linux is a fairly strong player, but more tellingly, it’s an example where there are actually many different approaches, and there is no one-size-fits-all „One True Virtualization“ model.
And a year and a half later, I was so despondent that I finally worked up the courage to issue an ultimatum: I get a demotion [Degradierung] or I walk. That was a fun talk. I had to have it two or three times, which isn’t usually how ultimatums work. The idea of actually sliding back down the org chart is not a notion that makes sense to the people you have to demand it of. But if you’re patient and throw in phrases like “utility curve” and “return on investment” into the inevitably rambling, discursive rant, you can get them to some minimal level of understanding: You don’t want to be like them. Middle management isn’t everybody’s goal. Upper management either.
[…] The idea of coming into work and attending meetings all day — talking to people — leaves me depressed and surly. I’m sure that the notion of being locked in a room with nothing but a keyboard and a monitor makes natural manager-types itchy as well.
[…] I’m a good programmer because I’m a bad manager. If I were a good manager, I’d probably be a terrible programmer. […]
Gestern Abend kam ich aus einem mir unerklärlichen Grund auf die Idee, den Quellcode eines von Partyguide automatisch versandten Mails unter die Lupe zu nehmen (in Apple Mail: Apfel + Alt + U):
Return-Path: <partyguide@partyguide.ch>
Received: from all01.mx.genotec.ch (unknown [IPv6:2001:1b50::82:195:224:51])
by gmc-pop-bsd-014.genotec.ch (Postfix) with ESMTP id 94C481739A51
for <spam@emeidi.com>; Tue, 16 Oct 2007 00:34:09 +0200 (CEST)
Received: from partyguide.ch (defiant.partyguide.ch [217.150.245.69])
by all01.mx.genotec.ch (Postfix) with ESMTP id C634B558B8E
for <spam@eMeidi.com>; Tue, 16 Oct 2007 00:31:23 +0200 (CEST)
Received: (qmail 3397 invoked from network); 15 Oct 2007 22:33:57 -0000
Received: from unknown (HELO nebula.partyguide.ch) (192.168.0.13)
by defiant.partyguide.ch with SMTP; 15 Oct 2007 22:33:57 -0000
Received: by nebula.partyguide.ch (Postfix, from userid 507)
id 238C850D831; Tue, 16 Oct 2007 00:33:57 +0200 (CEST)
To: spam@eMeidi.com
Subject: ******* hat heute Geburtstag!
From: noreply@partyguide.ch<noreply@partyguide.ch>
X-Mailer: PHP/5.2.3
X-Sender-IP:
Content-Type: text/html
Message-Id: <20071015223357.238C850D831@nebula.partyguide.ch>
Date: Tue, 16 Oct 2007 00:33:57 +0200 (CEST)
X-GIC-MailScanner-SpamCheck: not spam, SpamAssassin (not cached,
score=-0.045, required 10, BAYES_00 -2.60, FORGED_RCVD_HELO 0.14,
HTML_30_40 0.37, HTML_MESSAGE 0.00, HTML_MIME_NO_HTML_TAG 1.08,
MIME_HEADER_CTYPE_ONLY 0.00, MIME_HTML_ONLY 0.00, NO_REAL_NAME 0.96)
<font face="verdana" size="2">Hallo mad4you!
<br><br>
Dein PartyGuide.ch myFriend ******* hat heute Geburtstag!<br>
Vergiss nicht zu gratulieren :-)
<br><br>
Hier gehts zum Profil von *******:<br>
<b><a href="http://my.PartyGuide.ch/*******">http://my.PartyGuide.ch/*******</a></b>
<br><br>
Dies ist ein automatisch generiertes eMail...
<br><br>
Liebe Grüsse<br>
PartyGuide.ch Team
</font>
Einige Bemerkungen:
Fangen wir mit der einzigen vorbildlichen Eigenschaft des Mails an: Return-Path ist gesetzt. Tritt beim Versand des Mails ein technisches Problem auf, kriegt dies Partyguide über die Adresse partyguide@partyguide.ch mit. Würde man diese Adresse als Absender einsetzen, würden wohl täglich unzählige unerwünschte Antworten von Endbenutzern auf die erwähnte Adresse eintrudeln, die gedankenlos den Antworten-Knopf drücken. Deshalb noreply@partyguide.ch im From:-Feld.
Irgendwie sieht aber genau dieses From-Feld nicht ganz koscher aus: From: noreply@partyguide.ch<noreply@partyguide.ch> Sollte da nicht noch ein Abstand zwischen dem anzuzeigenden Namen und dem < zu stehen kommen? Da die Information aber sowieso redundant ist, sollte man den Namen einfach weglassen und nur <noreply@partyguide.ch> schreiben …
Wo bleibt der html und der body-Tag (inkl. End-Tags)?! Wenn das Mail als Content-Type: text/html versandt wird, sollte es auch den minimalsten Anforderungen des HTML-Standards genügen. Der Entwickler hat – wieder einmal – geschlampt. Nebenbei: Wieso muss für einen solchen Text überhaupt ein HTML-Mail versandt werden? Nur damit die URL fett eingefärbt werden kann? Man beachte X-GIC-MailScanner-SpamCheck (SpamAssassin), der sich auch über die fehlenden Tags beschwert (HTML_MIME_NO_HTML_TAG) und dafür satte 1.08 Spam-Punkte vergibt
X-Mailer: PHP/5.2.3 – wieso um Gottes willen greift man nicht auf OSS-Klassen wie den ausgereiften (und von Profis programmierten) PHPMailer zurück, die das Versenden von HTML-Mails mit alternativem Plain-Text-Body und Attachment zum Klacks machen?
Immerhin verwendet man nicht mehr PHP 3.x, sondern 5.2.3. Der erste Schritt in die Absicherung der Plattform ist somit getan. Nun kommt aber noch der deutlich grössere Teil der Arbeit: Der Code-Audit und damit einhergehend neu schreiben von mehrere Jahre altem Spaghetti-Code …
Ein zufälliger Blick in ein Nebenprodukt von Partyguide – und man wird sich wieder einmal bewusst, wie gering die Ambitionen der Programmierer sind (waren?), standardkonformen und sauberen Code vorzulegen. Aus meiner Sicht ein klassisches Beispiel von „Internet-Frevel“ und symptomatisch für das Portal. Nur weil ein Script funktioniert und auf dem Internet Explorer und in Microsoft Outlook anständig gerendert wird, heisst das noch lange nicht, dass der Code auch professionellen Anforderungen standhält.
Jason und Argonauten: Das ist eure Visitenkarte, die euer „Unternehmen“ Techies unter die Nase hält – kein Wunder, hat sich Tamedia für die Zusammenarbeit mit dem geringsten aller Übel, Tilllate, entschieden …
Chef-Geek 1: Wenn die Jungs schon für einen Apéro nicht von ihren Computern wegzulocken sind, wie soll das erst am Firmenausflug klappen? Da warten wir ja ewig, bis sich alle versammelt haben.
Chef-Geek 2: Ja, stell dir vor, jeder muss zuerst noch bloggen …
Mario Aeby, geboren am 25. September 1980 in Bern, Schweiz
Ein Weblog über IT (Linux, OSS, Apple), Heim-Automation; mein mittlerweile abgeschlossenes Geschichtsstudium; Erkenntnisse aus meiner aktuellen Tätigkeit in der Informationssicherheit, meine Erfahrungen als IT-Berater, IT-Auditor, Web-Developer und IT-Supporter; die Schweiz, den Kanton Bern, meine ursprüngliche und auch wieder aktuelle Wohngemeinde Neuenegg, meine vorherige Wohngemeinde Bern, über lokale, regionale und globale Politik; meine Reisetätigkeit und Erfahrungen mit anderen Kulturen; und zu Guter letzt auch das Älter werden.
Alle in diesem Blog gemachten Aussagen und Meinungen sind persönlich und nicht als Ansichten meines aktuellen und/oder meiner bisherigen Arbeitgeber zu verstehen.