Referenzen in PHP

Wer braucht schon Referenzen in PHP? Wenn man nun alles in PHP elegant via objektorientierter Programmierung erledigt ist diese Frage eigentlich gar kein Thema für den Alltag.

Was aber tun wenn man nun doch damit konfrontiert wird, so stelle ich fest, dass man die Referenzierung sowohl bei der Definition als auch beim Abruf explizit aufzeigen muss. Referenzen in PHP weiterlesen

Quittengelee selber machen

Dieses Jahr mache ich zum ersten mal in meinem Leben Quittengelee. Deren Geschmack erinnert mich an meine Kindheit, da meine Großeltern diesen jahrelang selber hergestellt haben. Ich habe diesen Gelee knapp 25 Jahre lang genießen können. Leider jedoch ist das Rezept seit dem Tod meines Großvaters in Vergessenheit geraten, im Supermarkt ist dies nur ein Nieschenprodukt und nun will ich es nun wieder aufleben lassen.

Dafür durfte ich einen prall gefüllten Baum besteigen und ihn um seine wertvollen Früchte erleichtern. In der Küche angekommen geht es nun ans Eingemachte.

An Zutaten benötigen wir nicht mehr wie folgt:

  • 1 Liter Quittensaft
  • 30gr Apfelpektin
  • 1kg Zucker

Nachdem ich die Quitten abgebürstet und gewaschen habe wurden diese kleingeschreddert. Ich habe hierfür einen Champion-Entsafter verwendet und die daraus entstandene Maische in die Presse gestopft und anschließend kräftig ausgequetscht bis nur noch der trocken Trester übrig blieb. Der hieraus fließende Saft wird noch einmal durch ein ganz feines Tuch gesiebt und zusammen mit den oben genannten Zutaten zum Kochen gebracht und drei Minuten lang aufgekocht.

Die Marmeladengläser wurden kurz vor der Abfüllung ausgekocht und sodann mit dem köstlichen Gelee befüllt, für eine Stunde auf den Kopf gestellt, anschließend beschriftet und kontrolliert ob auch alle Deckel korrekt abgedichtet haben. Gläser deren Decke nun noch Luft ziehen kommen in den Kühlschrank und werden als erstes aufgebraucht.

Normalerweise nehme ich für Marmelade deutlich weniger Zucker, jedoch habe ich bei Gelee festgestellt, dass die Konsistenz nicht schön genug ist um diese dann auf dem Brot einwandfrei zu verstreichen. Der Meinung verschworen mit weniger Zucker auskommen zu wollen wurde mir mit einer flüssigen Brühe quittiert die an allen Seiten meiner Stulle hinunterfloss wie Wasser an einem Gebirswasserfall. Daher mein wertvoller Geheimtip: Nimm reichlich Zucker, sonst haben die ganzen Mühen am Frühstückstisch sein Ende gefunden! Und das kann man sich dann auch nicht mehr schön reden.

Die Gläser sind nun dunkel und kühl gelagert mehrere Jahre haltbar, jedoch meist schon deutlich früher aufgebraucht.

Ich empfehle den Quittengelee mit Quark und etwas Butter auf einem Brot oder Brötchen nach Wahl zu genießen.

Pagination in mysql-client

Unterwegs auf der Linuxkonsole habe ich oft eine Verbindung zum MySQL-Server offen um SQL-Abfragen abzusetzen und mit den Ergebnissen zu agieren.

Nun ist es jedoch oftmals so, dass das dieses Ergebnis länger als die gegenwärtigen Bildschirmgröße ist und die Konsole zu scrollen beginnt. Dies stört mich aus diversen Gründen und schränkt mich in meiner Arbeit ein. Mittels Pagination im mysql-client kann man das jedoch simpel und zugleich pfiffig lösen:

pager more;

Hiermit kann man nun Zeilen- oder Seitenweise – wie man es von more gewohnt ist – durch das Ergebnis vorwärts scrollen sowie auch mittels STRG+C unterbrechen.

Man kann das Ergebnis auch in andere Programme pipen wie z.B. mit less durch das Ergebnis beliebig vor- und zurücknavigieren oder gar eine übergreifende Volltextsuche tätigen.

pager less;

Um das Paging wieder zu deaktivieren genügt der pager Befehl ohne Argument:

pager;

Die hier aufgeführten Befehle sind nur für die Dauer der gegenwärtigen Sitzung gültig. Will man das Paging dauerhaft einrichten so ist dies in der my.cnf mit den o.g. Befehlen in der client Sektion einzutragen und wird sodann mit jedem Programmstart standardmäßig verfügbar.

[client]
pager=more

Back in time

Hin uns wieder steht man als Entwickler vor der Aufgabe einen Prozess zu verschiedenen Zeitpunkten zu testen. Das löst man meist recht pragmatisch indem man die Systemzeit ändert und sodann seine Tests durchführt. Dies hat jedoch oftmals einen unangenehmen Beigeschmack, der sich unter anderem im folgenden bemerkbar macht:

  1. Andere Programme legen ein ungewolltes Verhalten an den Tag
  2. Andere Benutzer auf dem gleichen System sind ebenfalls von  der Zeitumstellung betroffen
  3. Der Taskplaner startet Jobs die während der gegenwärtigen Uhrzeit das System negativ beeinflussen
  4. Zertifikate werden plötzlich ungültig
  5. Logeinträge des Systems sowie jene diverser Applikationen sind möglicherweise nicht mehr zuordnbar bzw. nur schwer nachvollziehbar

Welche Gründe man nun auch immer für die Zeitumstellung hat und sich mit den damit verbundenen Problemen herumschlagen muss – sofern die Entwicklung auf einem Windowssystem stattfindet ist man mit dem Tool RunAsDate in der Lage einen beliebigen Prozess mit einer eigenen Zeiteinstellung gezielt zu starten. Dafür klinkt dieses Tool sich in die Kernel-API ein und manipuliert die Zeit für den Prozess mit der übergebenen Zeiteinstellung.

Einen PHP-Webserver in anderen Zeiten starten:

RunAsDate.exe /movetime 01\01\2001 18:15:00 C:\php5\php.exe -S localhost:8000 -t D:\var\www\mydomain\

PHP im CLI-Modus starten:

RunAsDate.exe /movetime 01\01\2001 18:15:00 C:\php5\php.exe -r “date(‘Y-m-d H:i:s’);fgets( STDIN );”

Beachte:

  1. Manche Zeiteinstellungen z.B. vor 2000 oder ein Datum vor bestimmten Zeitpunkten zu den das Programm einfach seine Kalkulationen unterlässt lassen das gewünschte Programm nicht starten oder zu ungewünschten Ergebnissen führen
  2. Es ist nicht empfehlenswert Programme zu starten, die einer zeitlichen Beschränkung unterliegen, da diese möglicherweise das intern gegenprüfen und so ihren Dienst künftig gänzlich verweigern

Download:

http://www.heise.de/download/runa04sdate-1169076.html

Kontrolle behalten

Schwere körperliche Arbeit, die Sorge um Heim und Kinder, kleinliche Streitigkeiten mit Nachbarn, Kino, Fussball, Bier und vor allem Glücksspiele füllten den Rahmen ihres Denkens aus. Es war nicht schwer, sie unter Kontrolle zu halten.

George Orwell, 1984, erster Teil, siebtes Kapitel, dritte Seite

Dieses Zitat stammt aus einem Buch, welches 1948 geschrieben wurde. Ob die Umstände damals anders gewesen war kann ich nicht bezeugen, allerdings gilt dies für die heutige Zeit um so mehr. Die schwere körperliche Arbeit gilt vielleicht nicht für uns westliche Menschen, psychisch allerdings um so mehr. 

Suche nach Dateien deren Datum älter als Mitternacht

Manchmal möchte man nach sich unter Linux Dateien anzeigen lassen, die am heutigen Tag seit Mitternacht erzeugt wurden. find unterstüzt einen dahingehend nicht mit einem Parameter bei dem man konkret ein Datum mitgeben kann. Man kann sich damit aushelfen indem man mit einer Referenzdatei agiert die Anhand ihres Erzeugungsdatum verglichen wird.

Dies ist in einem dreischrittigen Prozess möglich. Dazu erzeuge ich eine temporäre Datei, deren Erzeugungdatum ich auf Beginn des gegenwärtigen Tages manipuliere. Anschließend starte ich die Suche in der ich alle Dateien ermittle welche neuer sind als die soeben erzeugte. Abschließend wird diese temporöre Datei wieder gelöscht.

touch -t `date +%m%d0000` /tmp/$$
find -maxdepth 1 -newer /tmp/$$
rm /tmp/$$

Das ganze könnte in einem globalen Shell-Skript gepackt noch etwas eleganter aufrufbar werden, beschränkt dann allerdings die Verwendung von find auf die dortige Implementierung ein.

RFID Implantate

Und es macht, daß die Kleinen und die Großen, die Reichen und die Armen, die Freien und die Knechte allesamt sich ein Malzeichen geben an ihre rechte Hand oder an ihre Stirn, daß niemand kaufen oder verkaufen kann, er habe denn das Malzeichen, nämlich den Namen des Tiers oder die Zahl seines Namens.

Bibel Luther 1912, Johannes Offenbarung 13, Verse 16 und 17

Vers 18 noch zur Ergänzung:

Hier ist Weisheit! Wer Verstand hat, der überlege die Zahl des Tieres; denn es ist die Zahl eines Menschen, und seine Zahl ist sechshundertundsechsundsechzig.

Quelle:

bibel-online.net
die-bibel.de

 

Oracle SQL-Develper: object MY_TABLE does not exist

Setzt man im SQL-Developer folgendes Desribe-Statement ab:

describe MY_TABLE ;

erhält man nur folgende Fehlermeldung:

ERROR: 
------------------------------------------- 
ERROR: object MY_TABLE  does not exist

Wer jetzt genau hinschaut sieht, dass zwischen dem Tabellennamen und dem Semikolon ein Leerzeichen sich befindet. Sobald man das entfernt läuft auch das Statement sauber durch.

Betrifft Oracle SQL-Developer in Version 4.0.2.15