Scratchbook

Das Leben ist immer anders als die Realität.

7XX HTTP Status codes

Claude, 24. Januar 2012, 09:55 Uhr

Es gibt neue HTTP Statuscodes. :D

There are many ways for a developer to screw up their implementation, but no code to share the nature of the error with the end user.

We humbly suggest the following status codes are included in the HTTP spec in the 7XX range.

[mehr...]

WE ARE COMIC SANS!

Claude, 13. Dezember 2011, 21:10 Uhr

WE ARE THE COMIC SANS DEFENDERS.
WE FEAR NO FONTS AND WE WILL MAKE THE WHOLE WORLD COMIC SANS.
BECAUSE HELVETICA IS SOOO 2011

[mehr...]

Information wants to be free

Claude, 27. Oktober 2011, 15:54 Uhr

In Anlehnung an den bereits vor 2 Jahren verfassten Beitrag:

Self Secret Service

 

An der Botschaft hat sich seither nichts verändert. Nur erfüllt. Google gibt Daten heraus.
Ich bin es satt, Leute dafür zu sensibilisieren. Aber ich habe einen Schieberegler entdeckt:

Ihr müsst wissen was ihr tut. Aber die Information, die ihr heute erfasst, vergisst Google/Facebook/XYZ nicht. Alles, was gratis ist, nützt jemand anderem. Wir sind das Produkt.

In 4 Jahren kommt dann ein Gesetz:

Alle, die sich in den letzten 4 Jahren im Kreis XY herumgetrieben haben / dieser Gruppe beigetreten sind, werden verhaftet. #Beispiel

Die Informationen, die ihr heute erfasst, können in Zukunft gegen euch verwendet werden.
Sie haben das Recht zu schweigen.

Und apropos Cloud, von wegen “die Daten sind bei diesen erfahrenen und professionellen Betreibern sicherer.”: Grosse Datenansammlungen sind besonders attraktiv für Angreifer.

The Passion of Corporate Egoists

Claude, 19. September 2011, 15:29 Uhr

Menschen mit Passion haben nicht nur eine Aufgabe, sondern stehen auch für diese ein, lehnen sich manchmal weit aus dem Fenster. Aus Überzeugung. Meinungsstark, mit klaren Positionen – gerne auch kontrovers. Das unterscheidet sie von den PR-Fatzkes aka Arschkriechern mit weichgespülten Lull-Statements und den Marketing-Mäuschen mit den totlangweiligen Facebook-Status über irgendwelche bescheuerten Messeauftritte.

Passion, das ist nicht der naive Enthusiasmus, den ein Volontär heute mitbringt, weil er besonders viele Twitter-Tools kennt oder einen Facebook-Account hat und auch gerne nutzt. Der aus Mashable-Artikeln zitieren kann und gerne von Transparenz, Authentizität, Echtzeit und anderem Hipster-Scheiß erzählt. Der immer vorne mit dabei ist, wenn wieder mal BETA-Invites für irgendwelche coolen Web-Services verteilt werden. Genau diese Tool-Fixiertheit führt Kommunikatoren in die Frustration, macht müde.

Social Tools are for Fools.

Texte ins Netz stellen kann jeder. Bloggen nicht.

Es ist kein Zufall, dass die ganzen Positivbeispiele da oben (fast) alle Blogs zum Gegenstand haben. Denn anders als auf Facebook (Werbefläche) und Twitter (Networking/Curating) ist es in Blogs möglich, sein Produkt, seine Marke voll und ganz auszuleben. Nicht selten ist ein Blog selbst das Produkt. Ohne Limitation in Form von Zeichenbegrenzug, Usability-Bugs und unerwünschter Werbung für irgendwelche Möbelhaus-Gewinnspiele. Dafür mit redaktionellen Inhalten.

Das Blog ist die ureigene Spielwiese, dort hat nur einer das Sagen und es ist nicht Mark Zuckerberg. Gute Blogs vermitteln Persönlichkeit. Das Blog ist die Arena, in der Passion voll und ganz zur Geltung kommt. In Gestalt richtig geiler Postings, die gerne von der Zielgruppe verlinkt werden.

Es braucht leidenschaftliche Menschen, um Social Media Projekte zum Erfolg zu führen. Weil nur Leidenschaft den ständigen Willen, sich zu verbessern, mehr Wissen zu erlangen, mehr Menschen für sich zu gewinnen, mit sich bringt. Unbändige Neugierde inklusive.

Danke, liebe (Quelle).

OOA, OOD, OOP – OOOOPS, die OOP-Sekte!

Claude, 23. März 2011, 16:58 Uhr

Neulich wurde ich angehauen:

Es sei “unschön”, wenn man statt

echo new publicAbstractFactoryImplementationSuperGeilesFormEndTag(void string args[]);

einfach das schreibt, was man möchte:

</form>

Liebe Softwarepäpste und Enterprisearschitekten. Hier kommt meine Philosophie:

  • Ich bin faul.
  • Die Maschine soll für mich arbeiten.
  • Und sie soll das möglichst schnell tun, ohne viel Ressourcen zu beanspruchen.
  • Andere Menschen mit weniger Erfahrung sollen das, was ich entwickelt habe, Verstehen und weiterentwickeln können.

Aber nein, so geht das doch nicht. Was wir brauchen, sind möglichst komplizierte Strukturen und Muster, die überhaupt niemand mehr ausser der Autor selbst checkt, damits softwarearchitektonisch schön ist und die Wartbarkeit erhöht wird.

Und wenn man dann genug Singletons mit der Abstract Factory instanziiert hat, welche die Facade durch den Proxy decoraten, damit der Mediator den Observer nicht beim visiten des Mementos dependency-injected, dann kann das Data Access Object mit dem Plugin via Null Object Flyweight durch das Composite iterieren und das emitten, was man eigentlich ursprünglich wollte:

Hello World.

Grässlich. Und dann wird mit einer “höheren Schulbildung” geprahlt; einer Bildung, wo einem das Hirni dermassen durchgemantscht und verdreht wird, dass man am Schluss überhaupt nicht mehr weiss, wie man einen simplen Text ausgibt, weil man ja erst eine abstrakte Factory braucht, die man dann in einer Implementation per Dependency-Injection instanziieren kann, damit man sie dann durch alle DAO und SOA-Layer rauf und runter über tausend Schnittstellen via XML schicken kann, damit am Ende… Ääh, was wollten wir eigentlich?

Dass so eine Erdölraffinerie* ordentlich Speicher frisst, liegt auf der Hand. Und warten können’s nur solche, die auch so eine Hochbildung haben. Die OOP-Sekte.

Kein Wunder fühlen sich Enterprise-Senior-Supermega-OOP-Engineering-Technical-Softwarearchitekts gleich angepisst, wenn man ihr lange und mühsam erlerntes Hoheitsgebiet mit schnellen, schlanken, praktischen und gut funktionierenden Quickwins erschiesst. Die wollen ihren “Marktwert” erhalten.

Nein. So will ich nicht enden. Entwurfsmuster als Inspiration ja, aber schlichte Ansätze als “unschön” bezeichnen, nur weil’s halt grad nicht in ein Enterprise-Pattern passt: FFFUUUU.

* Erdölraffinerie (engl. Gas factory)
Unnötig komplexe Systementwürfe für relativ simple Probleme werden abwertend als Erdölraffinerien bezeichnet.

(Wikipedia: Anti-Patterns)

Google Maps in China

Claude, 10. März 2011, 08:41 Uhr

Ausprobieren!

The Github experience

Claude, 4. März 2011, 19:23 Uhr

Ich habe gerade die Vorteile, die Git & Github bieten, hautnah erfahren!

Hoh, da ist etwas tolles auf Github: node-search-engine. Ein auf node.js basierter Webcrawler, der das Internet durchsucht (asynchron und parallel, yay) und in einer CouchDB speichert.

*geifer* – gleich ausprobieren!

Ich mache also einen “Fork”.

Was passiert da: Das Repository node-search-engine, welches dem Benutzer kurokikaze gehört, wird unter meinen Account als eigenständiges Repository kopiert.

Jetzt gehörst du mir. Und ich kann dich klonen und drücken wie es mir beliebt.

Uuh, da läuft noch was nicht. Eine binäre Library funktioniert unter Mac OS X nicht, ein Syntaxfehler, und ein Funktionsname hat sich geändert.

So. Ich glaube jetzt läufts! Gleich committen und auf Github übertragen.

Hmm. Ich habe wohl gerade ein paar Bugs gefixt. Das Projekt liegt seit April 2010 brach – vielleicht freut sich der Entwickler ja über meine Verbesserungen.

Ich schicke ihm eine Pull-Anfrage:

Das heisst soviel wie: “Hey schau mal, ich habe da eine Verbesserung für dein Projekt – wenn es dir gefällt, kannst du diese Änderungen übernehmen!”

2 Minuten später:

Noch ein bisschen später:

Er ist dankbar und hat meine Verbesserungen gleich übernommen! YAY

Ist ja ein tolles Konzept! Jeder hat sein Repository. Jeder kann es kopieren. Es braucht keine Berechtigungen, kein “Hauptentwicklungszweig”. Was toll ist, wird geforkt, und wenn die Änderung passt, wird sie übernommen. Wenn nicht, existiert einfach ein Fork, eine Variante der Software eigenständig weiter.

Schläft die Entwicklung ein, finden sich sicher Entwickler um einen populären Fork, die ihn weiterentwickeln. Die Macht ist quasi nicht mehr bei den Entwicklern oder bei einer Firma, sondern bei der Software selbst. Die Firma mag Konkurs gehen, die Software lebt weiter. Der beste Fork gewinnt.

Erst durch Github wird das Opensource-Prinzip wirklich gelebt.

http://github.com/

Der Graph von Dezibert

Claude, 25. Februar 2011, 11:36 Uhr

Upgrades für Dezibert: Ein Graph.

Echtzeitstatistiken mit einem Canvas-Element, welches sekündlich mit Daten gefüttert wird. Und wenn‘s dann zu laut wird, und der Finger sich hebt – dann hebt auch der Graf dank einer CSS3-Transition seinen Finger:

Ich hatte ja vor kurzem smoothiecharts.org entdeckt, und da hat‘s mich einfach gejuckt, sowas für den Geräuschpegel unserer Arduino-Installation zu machen.

Nur war das nicht so einfach. Die Ethernet-Schnittstelle von Arduino ist alles andere als stabil. Maximal 4 Sockets, Verbindungen, die nicht sauber getrennt werden, Bugs im Firmwarecode… Es wurde einige male spät am Abend, und ich habe etliche Möglichkeiten durchprobiert. Die Schnittstelle stürzte nach ca. 1h immer wieder ab.

Die Lösung des Problems ist dieser Dreizeiler:

Heisst soviel wie: „Solange du verbunden bist, trenne die Verbindung!“.
3 Zeilen Code, und der Sauhund läuft stabil. Endlich.

Netter Nebeneffekt: Ich kann aus den gesammelten Daten auch schöne RRD-Diagrämmli erstellen:



Das war der Geräuschpegel von gestern. Um 6:30 kam die Putzfrau mit dem lauten Staubsauger. „Ob das ein Alkoholtest sei, wenn ich beim Dezibert ins Mikrofon blase…“ – Nein, das Teil misst nur die Lautstärke. Unruhe am Morgen, Mittag… Und grosse Diskussionen um 17:30.

Interessant, was so scheinbar harmlose Daten wie „Lautstärke über die Zeit“ plötzlich aussagen können…

Links:
Der Graph von Dezibert
RRD-Diagramm der letzten 12h (stündlich aktualisiert)

Intergalaktischer Informationsbegleiter

Claude, 3. Februar 2011, 21:28 Uhr

…für Datenreisende.

Was: Jediritter Infopad. Reiseführer durch die Galaxis. Personal Messenger Pad.
Wie: Zugriff auf das globale Datennetz
Wann: Immer dabei bei wichtigen Missionen

Kennt ihr die? Diese Geräte, die Helden begleiten. In allen Filmen mit viel Raumschiff und Reisen durch’s Universum. Sie werden eingesetzt als Kommunikationsmittel, Notizblock, allwissendes Mobilterminal, Sonderbare-Steine-Analysegerät und scheinen niemals Strom zu verbrauchen.

Und wisst ihr was? So. Was. Gibts. Wirklich. !

Es heisst “Kindle“, kommt von Amazon, und war ursprünglich dazu gedacht, Bücher zu lesen.

Der Clou ist aber: Mit dabei ist, als “Experimental Feature”, ein vollwertiger Webkit-Browser mit Javascript Unterstützung.

Da ein Webbrowser alleine aber noch nicht sonderlich nützlich ist, gibt es gratis Internet dazu.
Und zwar weltweit. Ohne Abogebühr.

Jaaa, da staunst Du, he? Wusste ich nämlich auch nicht. Wissen die wenigsten… Weil das weltweite gratis Internet über 3G ist ein “nettes Nebenprodukt”…

Und wie lange der Akku wohl hält? Ein paar Stunden? Tage? Wochen? Ja genau. Ein paar Wochen. Da staunst Du grad nochmals, gell?

Warum das so ist: Das Display hat weder eine störende Hintergrundbeleuchtung, noch Pixel. Das Zauberwort heisst “E Ink” – elektronische Tinte. Braucht nur Strom beim “Umblättern”.

Suchbild; finde den Pixel:

im Gegensatz zu euren tollen iPhones, die nach zwei Minuten schon “Akku! Akku! Akku!” schreien, kann man dieses schicke Gerät zu recht als Mobile bezeichnen. Damit kann ich locker 2 Wochen irgendwo in die Türkei in die Flugferien und damit auf Wettersites zugreifen.

Hach – dieses Gerät versprüht mit seinem Monochrom-Display so einen Analog-Charme. Ich mag so unscheinbar altertümlich daherkommende Sachen, die aber hochwertigen futuristischen Schnickschnack eingebaut haben.

“Yes, it’s a Macintosh” war der erste Gedanke, der mir durch den Kopf schoss.

The miserable programmer paradox

Claude, 31. Januar 2011, 19:07 Uhr

(hier gefunden)

What I call “the miserable programmer paradox” states the following:

“A good programmer will spend most of his time doing work that he hates, using tools and technologies that he also hates.”

This is a paradox in the sense that it’s a counterintuitive result; you’d expect that the bad programmers would spend their time with crappy technologies, while the excellent programmers would spend their time with super-awesome technologies. Right?

[mehr...]