Der schnellste Weihnachtsmann der Welt

Donnerstag, 20. Dezember, 2012

Alle Jahre wieder … male ich zu div. Anlässen meine Karten. Und erstelle elektronische, animierte Varianten mit HTML.

In diesem Jahr entstand die nachfolgende Weihnachtskarte:

2012-12-20-der-schnellste-weihnachtsmann-der-welt.jpg

Zunächst aber entstand die animierte Version. Brainstorming zur Animation und eine erste Skizze auf Papier erfolgte im Zug nach München sitzend.

Einzelgrafiken sind von Hand gezeichnet, dann gescant und in der Bildbearbeitung zugeschnitten und - ganz wichtig - mit Transparenzen versehen.
Die Animation erfolgte per Javascript - es wäre vielleicht auch mit CSS3 gegangen, aber ich war mit jQuery schneller am Ziel.

Ach, ich mache später mal ein ausführlicheres “Making of” und beleuchte dann das Technische genauer.

Schaut es euch an:

2012-12-20-qrcode.jpg

Link: Der schnellste Weihnachtsmann der Welt

Wer mag, kann diese Karte mit einer eigenen Grussbotschaft versehen an Freunde weitersenden.

Leistungsschutzrecht? Lernresistenz?

Mittwoch, 28. November, 2012

Darf ich höflichst fragen, WAS GENAU das Problem ist, dass es ein Leistungsschutzrecht braucht?

Die Darstellung aller Webseiten basiert im wesentlichen auf dem Protokoll HTTP(s) und der Beschreibungssprache HTML.

Wenn das Problem denn tatsächlich wäre, dass Google & Co. Inhalte von Verlagen indexieren, dann ist es doch extrem einfach: Man nimmt sich 10 Minuten Zeit und studiert, wie man das Indexieren seiner Webseite unterbindet.

Selbstverständlich geht das und ist zudem genauestens spezifiziert. Seit über 15 Jahren. Nochmal in Worten: Fünfzehn Jahren.

Wie wäre es mit einer solchen robots.txt

User-agent: *
Disallow: /

… oder auf einelnen, nicht zu indexierenden Webseiten ein

<meta name="robots" content="noindex">

in den Header einzubauen?

Was darf man von einer Person/ Instanz halten, die nach mehr als 1 Jahrzent des Vorhandenseins einer Regelung krampfhaft versucht, auf lernresistent zu machen?

Links zum Thema:

Pimped Apachestatus - v1.0 released

Dienstag, 20. November, 2012

Viele kennen den Apache Webserver … und dann wohl auch dessen Server-status Seite. Weil man diese HTML-Seite nicht wirklich toll lesen und verwerten kann, habe ich mir ein Tool geschrieben, das diese Seite parst und durch verschiedene Filter gejagt, die verschiedensten Infos als Tabellen darstellt:

  • nur aktive Requests anzeigen
  • häufigste Requests
  • längste Requests
  • u.v.m.

Alle Tabellen sind per Mausklick sortierbar und lassen sich durch Texteingabe filtern.
Die Tabellen lassen sich exportieren, z.B. CSV oder XML.

Das Ganze funktioniert nicht nur mit einem einzelnen Apache-Server - man kann mehrere Apache-Server, die gemeinsam hinter einem Loadbalancer dieselbe Webseite ausliefern, in einer Tabelle zusammenfassen. Die häufigsten oder längsten Requests auf 5 oder 10 Servern zu ermitteln - das ist mit Lesen der Server-Status-Seiten unmöglich - mit meinem Tool wird’s zum Kinderspiel.

Seit einem Jahr sind immer wieder etliche Versionen veröffentlicht wurden, bei denen ich das Gefühl hatte: “Ja eigentlich funktioniert ja alles, wie es soll”.

Heute - ja heute - ist alles anders: mein heutiger Release heisst Version 1.0. Tusch!!!

2012-11-20-pimped-apache-status-was-released.jpg 2012-11-20-pimped-apache-status-worker.jpg 2012-11-20-pimped-apache-status-most-requested.jpg

Weiterführende Links:

Israels Militär twittert über Luftkrieg im Gazastreifen

Sonntag, 18. November, 2012

Das israeleische Militär twittert über palästinensche Raketen-Abschussrampen in der Nähe von zivilen Gebäuden - lassen wir es ein-zweihundert Meter sein:

https://www.youtube. … /watch?v=pmgrZxcYg7M

… als auch - nach rein amerikanischem Vorbild im Golfkrieg - dass ihre Luftschläge auf den Meter genau seien:

https://www.youtube. … /watch?v=Vrf9VsX6_4s

Man ist geneigt zu glauben, man wäre seitens der Israelis in der Lage, HAMAS Stellungen von zivilen und anderen sehr wohl zu unterscheiden. Aber die PR Abteilung des Militärs hat von den Amis nicht viel gelernt - es gibt nämlich keinen Krieg rein aus Präzisionsschlägen gegen militärische Ziele und ohne zivile Opfer.

Warum schiessen die Isrealis auf die Hochhäuser, wenn sie in einem anderen Video zeigen, dass die Raketen neben den Zivilgebäuden gestartet werden?

Wenn man sich das 2. Video des Einschlags einer isrealischen Waffe anschaut… Erklärtes Ziel des israelischen Militärs ist auf Twitter eindeutig benannt: die Ausschaltung der Kommunikation.

2012-11-18-idf.jpg

Das gezeigte Gebäude ist eines, in dem nicht die HAMAS, sondern Reporter sitzen. Unter anderem auch die des ZDF:

http://wwws.heute.de/ZDF/zdfportal/web/heute-Nachrichten/4672/25312840/3d6825/Markige-Worte-und-Ringen-um-Waffenstillstand.html?tabNo=0
… in Minute 1:50 (Anm.: Diese Seite auf heute.de wurde inzwischen entfernt)

Links:
Twitter: IDF (IDF: Isreal Defense Forces)

Putty Agent mit private Key starten

Freitag, 5. Oktober, 2012

Bei Putty gibt es im Komplettpaket einen Agent, der sich im Systemtray als Icon ablegt. Über das Icon kann man seine vorkonfigurierten Putty-Verbindungen aufrufen.

Wenn man seinem SSH-Schlüsselpaar ein Passwort zugeordnet hat, muss man immer dieses Passwort bei einer Verbindung angeben.
Abhilfe der Passwort-Eingabe wären:
- kein Passwort im SSH-Schlüssel (nicht wirklich toll)
- den Agent das Passwort verwalten lassen (schon besser)

Der Page-Agent kann vor Aufruf einer Putty Session gestartet werden und erledigt dann die Passwort-Eingabe im Hintergrund, wenn - ja “wenn” - man die SSH Keys einmal geladen hat. Den Agent starten und dann immer wieder interaktiv die zu Keys laden, ist nicht schlau. Zum Glück gibt es ja Kommandozeilenparameter, was uns doch gleich zum Thema Batch führt ;-)

Im Ordner, wo die putty.exe und die pagent.exe liegen, kann man eine Batch-Datei anlegen, die die pagent.exe startet. Man kann als Parameter angeben:

pageant.exe [Schlüssel 1] [Schlüssel 2] ... [Schlüssel N]

z.B.:

start @~dp0/../pageant.exe c:/.ssh/id_mein_privater_key1.ppk

Beim Start dessen wird man nur noch einmal nach dem Passwort der SSH_keys-gefragt, aber bei nachfolgendem Aufbau einer Putty-Session dann nicht mehr.

Links:

SYNTH1 - Ini-Datei mit Soundbanken auffüllen

Donnerstag, 4. Oktober, 2012

Im VST Plugin Synth1 kann man andere Soundbanken importieren, um viel mehr Instrumenten-Voreinstellungen abzurufen. Man braucht zum einen die Instrumente.

suche nach “synth1 presets” in der Suchmaschine deiner Wahl

Die legt man am besten beim Installationsordner von Synth1 in einem Unterverzeichnis “presets”, z.B. C:/VST/Synth1/presets/ ab.

Und dann gibt es noch eine benutzerspezifische INI-Datei unter

%appdata%/Daichi/Synth1/Synth1.ini

Darin sind einige Einträge der Art bankfolder[Zähler]=[Pfad-mit-Presets]

Nun müsste man weitere Zeilen eintragen, wobei hinter bankfolder der Zähler hochzählt und dann der vollständige Pfad folgt. Das macht man bei 50 Verzeichnissen aber ungern von Hand. Also schreibt man schnell eine Batchdatei…
Nachfolgender Code ist als Bat-Datei im presets-Ordner zu speichern (C:/VST/Synth1/presets/) und zu starten. Am Ende erhält man dann 2 Editorfenster, wo man die erzeugten INI-Einträge in die bestehende Synth1.ini übertragen muss.

@echo off
rem ----------------------------------------------------------------------

rem -- setze i auf den Wert des ersten freien bankfolders
set i=0

set mydir=%~dp0
set out=%mydir%synth1_banks.ini
set ini=%appdata%DaichiSynth1Synth1.ini

rem ----------------------------------------------------------------------
echo ; generated %date% %time% >%out%
SETLOCAL EnableDelayedExpansion
for /F "tokens=*" %%a in ('dir /A:D /b') do (
	echo bankfolder!i!=%mydir%%%a >>%out%
	set /a i=!i!+1
)

rem ----------------------------------------------------------------------
start %ini%
start %out%

rem ----------------------------------------------------------------------

Magisches fillRect() mit Javascript

Freitag, 21. September, 2012

Ich schreibe gerade an einem HTML5 Audioplayer. Bevor jemand sagt: davon gibt es ja bereits hunderte - such’ doch einfach einen davon aus… Nein, der Player wird zu einem späteren Zeitpunkt beleuchtet. Das sollte doch nur ein Aufhänger sein.
In einem Player braucht es einen Fortschrittsbalken. Je nach Abspielposition soll da ein Canvas mit der fillRect Funktion bemalt werden. Canvas … das ist eine Zeichenfläche im Webbrowser auf der man Bildpunkte manipulieren kann und von Microsoft im Internet Explorer 6 eingeführt wurde. In HTML5 wurde es offiziell und endlich in allen neuen Webbrowsern verfügbar gemacht.

<canvas id="progresscanvas"></canvas>

Per CSS wurde Breite und Höhe des Canvas mit 10px x 220px gesetzt.

Eine der Zeichenfunktionen ist fillRect. Damit kann man ein ausgefülltes Rechteck zeichnen. Dazu gibt man als Parameter x- und y- Koordinaten des Start- und Endpunktes an.

Mein Javascript Snippet:

var canvas=document.getElementById('progresscanvas');
if (canvas.getContext) {
  var ctx = canvas.getContext("2d");
  ctx.clearRect(0, 0, canvas.clientWidth, canvas.clientHeight);
  var iAlpha=0.05 + oAudio.currentTime / oAudio.duration /10*1;
  ctx.fillStyle = "rgba(0,0,0, "+iAlpha+")";
  var fWidth = Math.round((oAudio.currentTime / oAudio.duration) * (canvas.clientWidth));
  if (fWidth > 0) {
    ctx.fillRect(0, 0, fWidth, canvas.clientHeight);
  }
}

Irgendwie kam allerdings nicht das heraus, was ich meinte, was entstehen müsste. Mit einem console.log geprüft, welche Parameter im “ctx.fillRect(0, 0, fWidth, canvas.clientHeight);” landen - hier kommt sogar das Richtige:

2012-09-21-fillrect.png

Wenn man den Player anschaut: mein Song ist kurz vor dem Ende. Unten in der Konsolenausgabe ist der letzte fillRect Aufruf drin - es soll das Canvas gefüllt werden von links oben (0,0) bis (10, 215) - javascript-seitig ist alles korrekt. Nur das Ergebnis ist im Webbrowser nicht: hier ist nur ein 2 Pixel hoher und 155 Pixel breiter Balken. Der Fortschrittsbalken an sich funktioniert, aber die Breite wird mit einem ominösen Faktor skaliert.

Das Ganze habe ich mit verschiedenen Browsern getestet: Firefox, IE9 und Chrome verhalten sich gleich falsch.

Der Trick besteht darin: im HTML muss ich im Canvas bereits die korrekte Grösse angeben.
Statt

<canvas id="progresscanvas"></canvas>

nun

<canvas id="progresscanvas" width="220" height="10"></canvas>

… und schon geht es mit dem fillRect.

ANFI - gewonnen, zerronnen oder nur vera.. (lbert)?

Mittwoch, 19. September, 2012

Bei den letzten Ferien auf Gran Canaria liefen mir einige Male solche Promoter über den Weg, die einen ansprechen, ob man über 28 sei. So auch beim Siesta-Spaziergang… hey und siehe da: das Rubbellos (oder wie auch immer dessen exakte Bezeichnung sein möge) aufgerubbelt und mit 3 Euro-Symbolen nen superdollen Preis in Aussicht:

2012-09-anfi-promotion1.png

Wenn man sich 90 min eine Ferienanlage von einem - Zitat: “deutschen Reiseführer” - zeigen lässt, bekommt man *danach* seinen Preis. Wirklich.
[Weiterlesen…]

cat /dev/zero >/dev/brain

Samstag, 14. Juli, 2012

Urlaub:
man schalte einmal völlig ab und vergesse all die Sorgen um sich herum…
Am besten man fährt (fliegt) weit weg, um den Alltag um sich herum einfach mal zu vergessen.

2012-07-14-costa-brava-01.jpg

Und man geniesst Hitze (während man an die Regentage für die in der Heimat Gebliebenen denkt), die andere Vegetation und das Meer.

2012-07-14-costa-brava-02.jpg 2012-07-14-costa-brava-03.jpg 2012-07-14-costa-brava-04.jpg

Erst nach einer Woche heisst es: Abbruch und Rückkehr zum Alltag.
Anbei das Ganze als Schreibweise für Mac- und andere *nix- Fans:

2012-07-14-cat-dev-zero-to-dev-brain.png

Marketing-Tricks

Mittwoch, 4. Juli, 2012

Ein alter DDR-Witz:
Frage: Was ist ein “Trabi Sport”? (In der Denkpause käme man vielleicht auf die Idee, es wird wohl irgendeine eine sportliche Variante des so beliebten Zweitakters sein)
Antwort: Ein Trabi mit einem Paar Turnschuhen im Kofferraum.

So ähnlich ist es mit dem Marketing von heute.
Da wird beispielsweise ein Rechner mit leistungsfähiger Grafikkarte angepriesen. Zur Untermalung schöne Charts, um wieviel schneller das Ganze sei… Portal ist nun 4.8 x so schnell. Wow. Dann muss das ja irgendwie was janz Dolles sein.

Und dann schaut der Computerinteressierte genauer hin: eine AMD Grafikkarte mit einem “M” hinten dran:

2012-07-04-grafikkarten.jpg

Was war das M doch gleich? Genau: eine mobile Grafikkarte!

Nochmal zum mitschreiben: Der Hersteller hat eine mobile Grafikkarte in seinem Desktop(!) verbaut und wirbt mit angeblicher Super-Grafikleistung?!
Das sind die “Turnschuhe im Kofferaum” von heute!

[Weiterlesen…]