Pimped Apache Status - ZPanel Modul verfügbar
Ist doch schön, dass Leute Gefallen an meinem Tool finden.
Vor ein paar Tagen hat mir Russel einen Fix gesendet, weil das Curl-Multiexec (das holt von allen Webservern parallel die Statusinformationen ab) in seiner Umgebung zu lange brauchte. Und nebenbei weiss ich nun auch, dass es auch ein ZPanel Modul für meine PHP-Applikation gibt.
Nachtrag:
Ich hab soeben auch auf Version 1.08 aktualisiert, die den Fix für curl und als neues Feature die Anzeige von Balken enthält.
- Pimped Apache Status - Webseite
- Pimped Apache Status - auf Sourceforge
- http://forums.zpanelcp.com/showthread.php?28323-Pimped-Apache-Status - ZPanel Forum mit Installationsanleitung für ZPanel (Anm.: Die Webseite forums.zpanelcp.com wurde deaktiviert)
Blog-Software (Flatpress) wurde aktualisiert
Ich war faul, glaub’ ich. Jedenfalls habe ich die von mir verwendete Blog-Software lange nicht mehr aktualisiert.
Nach dem Update des Layouts vor ein paar Tagen wurde nun die aktuelle Version eingespielt.
Es gab bis auf eine Kleinigkeit im Pretty-Url-Plugin keine Probleme.
Links:
CSS-3D-Effekt: Aussparung
Bei meinem letzten Layouts hatte ich in der Haupt-Navigation einen Effekt verwendet: Der aktive Navigationspunkt sah wie eine Aussparung aus:
Wie man zu diesem kommt, erkläre ich schrittweise.
[Weiterlesen…]
Osterkarte 2013
Wieder einmal rechtzeitig: Meine animierte Osterkarte mit Sound ist am Wochenende fertig geworden.
Chrome: Abspielen mancher Ogg Files nicht möglich
Mehr durch Zufall habe ich festgestellt: manche meiner Stereo-Ogg Files lassen sich im Chrome mit dem html5 audio player gar nicht abspielen. Firefox spielte sie allesamt klaglos.
Ich habe zwar schon als Stereo-Quelle MP3 Dateien in verschiedenen Bitraten, aber alle Ogg Files, die daraus erstellt werden, gehen vorher durch ffmpeg und werden zu PCM WAV Dateien umgewandelt.
- Die Quelle zum Encoden nach Ogg ist somit immer WAV mit 44.1 kHz.
- Encoder ist immmer oggenc2 - also immer derselbe Encoder und denselben Parametern.
Also habe ich irgendwann die Suche nach Encoder-Problemen aufgegeben.
Soweit ich es debuggt habe, wird im Javascript-Code das Audio Objekt erfolgreich initialisiert. Auch die Methode play() wird erfolgreich aufgerufen. Chrome macht anschliessend - was man in der Entwicklerkonsole unter Netzwerk sieht - partial Requests auf das Audiofile. Und hier bleibt er hängen: “pending” steht da im Status.
Workaround:
Was ich gefunden hab: die URLs der Audiosourcen werden um ein “?” ergänzt - und schon funktionierts im Chrome.
also ALT:
<audio> <source src="/data/song_2.0_.ogg" type="audio/ogg"> <source src="/data/song_2.0_.mp3" type="audio/mp3"> (...) </audio>
und NEU:
<audio> <source src="/data/song_2.0_.ogg?" type="audio/ogg"> <source src="/data/song_2.0_.mp3?" type="audio/mp3"> (...) </audio>
… und das Javascript Snippet:
aSource ist ein Array mit den Keys src (eine URL des Audios) und type (MIME Type). Wenn kein “?” in der Audio-URL vorkommt, wird dieses angefügt.
s+='<audio>'; (...) sourcesrc=String(aSource.src); if(sourcesrc.indexOf("?")<0) sourcesrc+="?"; s+='<source src="' + sourcesrc + '" type="'+aSource.type+'">'; (...) s+='</audio>'; (...) document.getElementById("divaudios").innerHTML=s;
weiterführende Links
- Ogg Encoder
- ffmpeg.org
- AMC Player - Html 5 Player für stereo und surround Medien
Der schnellste Weihnachtsmann der Welt
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:
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:
Link: Der schnellste Weihnachtsmann der Welt
Wer mag, kann diese Karte mit einer eigenen Grussbotschaft versehen an Freunde weitersenden.
Leistungsschutzrecht? Lernresistenz?
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
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!!!
Weiterführende Links:
- Sourceforge (englisch) Projektseite und Download
- Axels Webseite
- Dokumentation (englisch)
Putty Agent mit private Key starten
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
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 ----------------------------------------------------------------------