In den Top 10 der Downloads auf phpclasses.org

Montag, 24. August, 2015

In der Summe der Downloads bin ich auf Rang 5

2015-08-25-phpclasses-top-downloaded-authors-small.png

… meine Klasse zum Cachen von Daten ist dabei am meisten abgerufen und in der Woche auf Platz 9:

2015-08-25-phpclasses-top-downloaded-classes-small.png

Update:
Die Screenshots der Wochenstatistik sind vom Montag… warten wir mal noch ein paar Tage :-)

weiterführende Links:

  1. Axels Webseite: AhCache
  2. Axels Docs: AhCache (en)
  3. Klasse AhCache auf phpclasses.org (en)

Pimped Apache Status - votet auf phpclasses.org

Sonntag, 2. August, 2015

Mein Pimped Apache Status wurde auf phpclasses.org für den Award Juli 2015 nominiert …

2015-08-02-phpclasses-org-nominee.png

Votet doch bitte für mich :-)

weiterführende Links:

  1. phpclasses.org: Votet bitte für Pimped Apache Status
  2. Axels Webseite: Pimped Apache Status
  3. Sourceforge: Projektseite und Download (en)
  4. Axels Webseite: Dokumentation (en)

Pimped Apache Status 1.22

Freitag, 26. Juni, 2015

Der Pimped Apache Status ist ein Werkzeug, um aus der “normalen” Apache Status Seite etwas Lesbares, und Durchsuchbares zu machen. Es ist ein Tool für die Live-Ansicht der aktuellen Prozesse des Apache Webservers. Verschiedene Ansichten listen aktive Requests, häufigste Aufrufe, aktivste IP-Adressen, längste Requests u.v.m. in sortierbaren und filterbaren Tabellen auf. So findet man schnell die Ursache aktueller Performance-Engpässe. Das Ganze funktioniert auch bei loadbalancten Webseiten: mehrere Server können zu einer Ansicht zusammengefasst werden. Ein integrierter Updater aktualisiert das Tool im Webbrowser. Ein Must-Have für Sysadmins und Hoster.

In dieser Version ist als wichtigste Neuerung eine Javascript Klasse hinzugekommen. Diese nimmt pro Kachel oben die Werte mit gemessenem Zeitpunkt auf und speichert diese im Localstorage des Webbrowsers. Sind einige Werte aufgezeichnet, lässt sich damit eine Grafik des Verlaufes zeichnen.

Nach der Aufzeichnung einiger Messwerte erscheint beim Mouseover einer Kachel die History als Balkengrafik. Klickt man die Kachel an, bleibt diese Grafik zunächst stehen.

2015-06-26-pimped-apache-status-v122.jpg

weiterführende Links:

  1. Axels Webseite: Pimped Apache Status
  2. Sourceforge: Projektseite und Download (en)
  3. Axels Webseite: Dokumentation (en)

Pimped Apache Status nun mit Bootstrap

Samstag, 30. Mai, 2015

Ich hab gar nicht gezählt, in wievielen Projekten ich schon Bootstrap verwendet habe. Nun, auf jeden Fall kam nun mein Apache Monitoring hinzu, auf das die Ansichten nun mit einem klareren Design daherkommen.

2015-05-30-pimped-apache-status.png

weiterführende Links:

  1. Sourceforge: Projektseite und Download
  2. Axels Webseite: Dokumentation
  3. Bootstrap

PHP-Schnipsel: ungewollte Zeichen entfernen

Dienstag, 26. Mai, 2015

Um alle Zeichen ausser dem gewünschen Set von erlaubten Zeichen rauszuwerfen, hilft dieser Ansatz.

$sRegex ='/[^0-9a-f]/';
$s = preg_replace ($sRegex,'',$s); 

Damit kann man ebenfalls eingehende $_POST und $_GET Pararameter prüfen: wenn mein bereinigter String $s vom übergebenen Parameter abweicht, dann will wohl wer manipulieren und man zeigt eine Fehlermeldung an.

Weiterführende Links

  1. php.net - preg-replace

PHP-Schnipsel: jede n-te Stelle ein Zeichen einfügen

Dienstag, 26. Mai, 2015

Ein Snippet als Reminder, falls ich mal wieder danach suchen muss, dann finde ich es in meinem Blog ;-)

Jedes 5. Zeichen soll ein “/” eingefügt werden…

preg_replace ist dein Freund. Als Ersetzung gibt man $1 für die Fundstelle und nachfolgend das einzufügende Zeichen an.

$sMyFile=preg_replace('/([0-9a-f]{5})/', "$1/", $sMyFile);

Weiterführende Links

  1. php.net - preg-replace

Osterkarte 2015

Mittwoch, 1. April, 2015

Seit gestern ist meine Osterkarte 2015 online.
2015-04-01-osterkarte.jpg

Links

Cygwin - Installation per Kommandozeile: apt-cyg

Sonntag, 22. Februar, 2015

Mit Cygwin holt man sich Linux Tools auf MS Windows. Nicht nur die Linux-Befehle, auch Dienste lassen sich installieren, wie z.B. OpenSSH.

Allgemein erfolgt die Installation mit der setup.exe und einer Paketauswahl per Mausklick (ja, es gibt natürlich auch einen Filter, wo man seinen Suchtext eingeben kann). Aber dennoch fehlt ein Kommandozeilen-Tool zum Suchen und installieren neuer Pakete, wie bei den Distributionen.

Just getestet und für gut befunden habe ich apt-cyg.

In der Bash ist es mit 2 Kommandos schnell installiert:

$ lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
$ install apt-cyg /bin

Und dann hat man, wie in Ubuntu, ein apt ähnliches Programm.

$ apt-cyg
usage: apt-cyg [command] [options] [packages]

Commands:
   install     Install packages
   remove      Remove packages
   update      Update setup.ini
   download    Download only - do NOT install or unpack archives
   show        Displays the package records for the named packages
   depends     Performs recursive dependency listings
   rdepends    Display packages which require X to be installed,
               AKA show reverse dependencies
   list        List packages matching given pattern. If no pattern is given,
               list all installed packages.
   category    List packages matching given category
   listfiles   List files owned by packages
   search      Search for a filename from installed packages
   searchall   Search for a filename from all available packages

Options:
   -c, --cache <dir>      set cache
   -f, --file <file>      read package names from file
   -m, --mirror <url>     set mirror
   --help
   --version

Nun sind Pakete schneller installierbar … man sucht in der Liste der vorhandenen Pakete

$ apt-cyg searchall [Begriff]

… und installiert es

$ apt-cyg install ncftp

Fertig :-)

apt-cyg selbst ist ein Bash-Skript. Es läuft somit auf der 32-bit und 64-Bit Version von Cygwin gleichermassen.

Weiterführende Links

  1. Cygwin
  2. apt-cyg auf Github
  3. pcwdld.com: Einführung im Cygwin (en)

NTFS: in den ACLs rekursiv einen Benutzer hinzufügen

Donnerstag, 22. Januar, 2015

Auf unserem Firmen-Fileserver sollte ein Benutzer zusätzlich berechtigt werden, das NTFS zu lesen.

Das Problem: Wenn man bei einem Startverzeichnis die Rechte gibt, wird dieses dann soweit nach unten vererbt, bis es auf irgendenem Verzeichnis andere Rechte gibt. So ist im Basisverzeichnis der Zugang für alle Mitarbeiter, einige Ebenen tiefer sind Projektordner, Protokolle, … verschiedenste Ordner halt. Bei jedem einzelnen Projektordner stoppt also der Vererbungsmechanismus und man muss bei jedem dieser Projektordner den Benutzer erneut hinzufügen.

Das wollte ich nicht von Hand und hunderten von Klicks erledigen.

Die nachfolgende Batchdatei sucht ab einem Startverzeichnis rekursiv alle Verzeichnisse (dir /s /b [Verzeichnis]).

Auf jedem Verzeichnis wird iacls aufgerufen (das zeigt die Berechtigungen an) und in der Ausgabe wird geschaut, ob der User bereits drin ist.

Ist der User nicht drin, gibt es einen Aufruf für die subroutine addUser. Dort wird der Benutzer (rekursiv) hinzugefügt und auf ein Return gewartet (aber das nur zur Kontrolle).

@echo off
rem ======================================================================
::
::    Skript zum Hinzufuegen eines einzelnen Users in die bestehenden
::    ACLs
::
::  ----------------------------------------------------------------------
::  2015-01-22  Axel Hahn
rem ======================================================================
set line=-------------------------------------------------------------------------------
 
set mydir=nas-blabla\irgend\wo
set cuser=DOMAIN\newuser
 
echo.
echo %line%
echo user %cuser% hinzufuegen in %mydir%
echo %line%
 
for /F "tokens=*" %%a in ('dir /b /s /a:d %mydir%') do (
      echo ... %%a
      icacls "%%a" | findstr "%cuser%" >nul || call :addUser "%%a"
)
echo.
echo fertig.
timeout /t 100
exit
 
:addUser
echo ...... adding %cuser%
icacls %1 /grant "%cuser%":(OI)(CI)(RX)
set /p dummy=Return

Weiterführende Links

Javascript-Schnipsel: HTML strippen

Mittwoch, 21. Januar, 2015

Alle HTML-Tags entfernen … In PHP gibt es strip_tags() … und rein clientseitig mit Javascript:

function stripHtml(s) {
    return s.replace(/<[^>]*>/g, "")
}