Archive for the ‘Programmierung’ Category

Convert Timestamp to DateTime

Wednesday, March 14th, 2012

Früher war es normal Zeit und Datum als Unix Timestamp in MySQL zu speichern. Alles kein Problem, ausser, dass man ein Timestamp nicht lesen kann weil es einfach eine Zahl ist, die Sekunden seit dem 1.1.1970 zählt. Bestimmt gibt es noch andere Unzulänglichkeiten, die mir aber nicht bekannt sind.

Heute stand ich also vor dem Problem eine Datenbank mit Timestamps auf das neu verwendete DateTime Format zu migrieren und da gibt es eine super einfach SQL Abfrage die das für etwas mehr wie 1000 Datensätze in unter 0,5 Sekunden erledigt hat:

UPDATE
    `tablename`
SET
    `newfield` = DATE( FROM_UNIXTIME( `oldfield` ) )

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Was mich am meisten erstaunt hat, dass man mit einem solchen Befehl gleich die komplette Tabelle updaten konnte.

Das Leben eines Programmierers

Wednesday, February 29th, 2012

image

Gerade im aktuellen Kaffee Klatsch gelesen

sleep/wait Teil 2

Sunday, March 14th, 2010

In einem älteren Eintrag habe ich eine Möglichkeit vorgestellt in einem cmd Script ein wait bzw. sleep “Funktion” einzubauen.

In den letzten zwei Monaten hab ich auf der Arbeit mich wieder mit solchen schönen Skripten beschäftigen dürfen und hab noch eine zusätzliche Lösung für dieses Problem gefunden. Auch mit dem ping Befehl kann ein Pause in der Skriptausführung erzwungen werden, denn den damals verwendeten choice Befehl funktioniert nicht mit Windows in der neueren Version (genauer ab XP).

Für Windows: @ping 127.0.0.1 -n TIMES -w 1000 > nul

Für Linux: @ping -n TIMES 127.0.0.1>nul

TIMES muss natürlich jeweils durch die gewünschte Zeit in Sekunden geändert werden.

Sicherheitsaspekte in der Entwicklung

Tuesday, September 8th, 2009

Hat man Sicherheitsaspekte im Entwurf berücksichtigen und einplanen können, gilt es, die Entwicklung nach den Vorgaben sicherer Programmierung durchzuführen. Die wichtigsten sind – unabhängig von der Programmiersprache – folgende fünf Punkte:

1. Prüfung von Ein- und Ausgaben
2. Authentisierung und Zugriffskontrollen
3. korrektes Handhaben und Schutz von sensitiven Informationen und Daten
4. Befolgen des “Least Privilege”-Prinzips, das die tiefstmöglichen Privilegien vergibt
5. Verhindern von Informationspreisgaben

Durch die Befolgung der Prinzipien lassen sich Sicherheitslücken in der Implementierungsphase wie SQL-Injection, Cross-Site Scripting oder Fehler in der Zugriffskontrolle vermeiden.

Gefunden im sehr interessanten Artikel auf Heise:
http://www.heise.de/developer/Sichere-Softwareentwicklung-nach-dem-Security-by-Design-Prinzip–/artikel/143738/2

Passwortgeschützte Ordner mit .htaccess

Friday, May 1st, 2009

ACHTUNG: Diese Beschreibung funktioniert nur auf einem Apache Webserver!!!

Erstelle eine Datei mit dem Namen .htaccess (Punkt am Anfang muss gesetzt sein)

AuthType Basic
AuthUserFile /path/to/.htpasswd
AuthName “Mein geheim Bereich”
require valid-user

Ersetzte /path/to/ mit dem Pfad in welchem die zweite Datei ist die den Namen .htpasswd hat (Punkt ebenfalls nötig)
Die Datei .htpasswd kann auf zwei Arten erstellt werden: Per Kommandozeile unter Unix oder von Hand (manuell).

Erstellen der .htpasswd per Kommandozeile:
/usr/bin/htpasswd -c ~/.htpasswd USERNAME
Wobei USERNAME mit dem Namen ersetzt wird den man für den Login will z.B. “peter”. Danach wird man nach dem Passwort für “peter” gefragt.
Will man weitere Benutzer hinzufügen wird einfach -c weggelassen und USERNAME ersetzt.

Manuelles erstellen der .htpasswd:
Wenn keine Unix Umgebung zur Verfügung steht kann die Datei auch manuell erstellt werden. Dazu sollte die Datei in einem Text-Editor geöffnet werden.
Dann schreibt man von Hand den Benutzernamen z.b. peter und danach einen Doppelpunkt.

Nach dem Doppelpunkt folgt das Passwort, aber nicht im Klartext sondern verschlüsselt. Die Verschlüsselung übernimmt das Programm .htpasswd Crypt.
(Passwort eingeben, auf verschlüsseln klicken, Texte hinter Verschlüsselt (DES): markieren und kopieren und danach im Editor hinter dem Doppelpunkt einfügen.)
Die Datei sollte also z.B. am Ende so aussehen:

peter:hokvZrLzxHv52
maja:jEm/ReR.8XEyM

Eine neue Zeile stellt also einen neue Benutzername-/Passwortkombinaton dar.

Quelle der Inspiration zu dieser Anleitung: wiki.dreamhost.com