MySQL Import / Export von CSV Daten

Seit PHP 5 hat man mittels fgetcsv bzw. fputcsv die Möglichkeit komfortabel Array Daten in eine CSV Datei zu schreiben bzw. zu lesen. Kommen die Daten aus einer einer MySQL Datenbank und müssen nicht mehr aufbereitet werden kann man das auch auf Datenbankebene mit einem SELECT erledigen.

SELECT * FROM `foo` INTO OUTFILE '/path/to/dump/foo.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

Existiert die Datei schon, kommt eine Fehler, da sie aus Sicherheitsgründen nicht überschrieben wird.
Soll der Dateiname dynamisch sein, zum Beispiel mit Timestamp, kann man das, wie hier beschrieben, mit einem Prepared Statement machen.

SELECT @export := concat("SELECT * into OUTFILE '/path/to/dump/foo", DATE_FORMAT(now(),'%Y%m%d-%H%i%s'), ".csv' FROM foo");
PREPARE stmt FROM @export;
EXECUTE stmt;

Windows Headless Netzwerk Reset

Als Besitzer eines WHS (Windows Home Server) und kaum Problemen damit, ist mir heute eine fatale Eigenschaft von Klicki-Bunti-System wieder allzu klar geworden.

Ich hab versehentlich bei meinem Acer Aspire EasyStore H340 den Netzwerkadapter deaktiviert. LOL gedacht als mir klar wurde, dass es unheimlich doof ist, sich de Teppich unter den Füßen wegzuziehen. Naja… dann mach ich nen Neustart und alles ist gut.

Dann kam die bittere Erkenntnis, dass es leider endgültig war. Kein Netzwerk bei einem Headless System ist schon ziemlich bescheiden. Was nun tun? Doof gucken, sich der Fatalität immer mehr bewusst werden und googlen.

Tja, da kam leider ziemlich lang nicht viel rum, außer Tipps zum Reset des Systems. Das hat mindestens zur Folge, dass die Benutzerkonten weg sind und die Einstellungen zurückgesetzt. Geht ja gar nicht.

Also weitergesucht. Irgendwas hab ich dann von Registry gelesen. Ok. Biestiges Ding, wollte es nie mehr anfassen. Der Registry-Tipp (Link vergessen) ging allerdings von einer kleinen Fehlkonfiguration aus, so dass das auch nicht weitergeholfen hat (Irgendwas mit duplex 1000mbit oder so).

Auf der Suche nach einer Registry-Einstellung ist neben “Nimm doch defcon” immer wieder gekommen, dass es sehr viele Keys sind, die geändert werden. Windows olé.

Dann bin ich schlussendlich fündig geworden durch das großartige servervault und dem Beitrag Where is the network connection enabled/disabled setting stored?.

Eigentlich geht es genau wie in dem Beitrag formuliert. Ich fasse es trotzdem nochmal kurz zusammen:

  1. Systemplatte ausbauen bzw. die Möglichkeit erlangen Zugriff aufs Dateisystem zu bekommen.
  2. regedit starten
  3. Unter HKEY_LOCAL_MACHINE die Datei C:\WINDOWS\system32\config\software “mounten”. Das geht über “File -> Load Hive” bzw. dem deutschen Pendant “Datei -> 3. Einstellung von oben” :) . Als Bezeichnung kann man irgendwas sinniges nehmen, wie z.B. “WHSBak_Software”. Davor am besten ein Backup der “software”-Datei machen.
  4. Unter HKEY_LOCAL_MACHINE\WHSBak_Software\Microsoft\Windows\CurrentVersion\RunOnce dann einen neuen Wert (Keinen Schlüssel; Bezeichner ist egal) eintragen (REG_SZ):
    netsh interface set interface "Local Area Connection" enabled
  5. Da das nur beim Login ausgeführt wird, muss man noch das AutoAdminLogon einstellen. Dafür setzt man HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoAdminLogon auf 1. Anschließend muss noch DefaultUserName und DefaultPassword auf den Admin (oder einen anderen berechtigten Benutzer) setzen.
  6. Anschließend Platte aushängen, einbauen und neu starten.
  7. Zum Schluss noch die AutoAdminLogin Einstellungen aus 5. beseitigen und alles sollte wieder gut sein.

via:

Where is the network connection enabled/disabled setting stored?

How to turn on automatic logon in Windows XP

ShellEd – Eclipse Shell Script Editor Search

Oh wie schön ist Open Source! Nachdem es in letzter Zeit immer öfter den Fall gab, dass man anstehende, sich wiederholende Aufgaben schön in einem Shell Skript unterbringen konnte… der Programmierer an sich ist ja ein faules Tier :D
War ich es langsam echt leid, Skripte die lokal entwickelt werden, in Zeiten von schmucken Editoren mit syntax highlighting und function lists, nur im VI runterzuhakeln…

ShellEd (Link zum Wiki) scheint für diesen Zweck unter den Eclipse Plugins die erste (einzige?!) Wahl zu sein! Die Installation aus der Paketquelle scheiterte, lokal aus dem ZIP (Download von Sourceforge) installiert, verichtet es seinen Dienst bisher fehlerfrei. Man muss vor der Installation beachten, dass Abhängigkeiten zu DLTK 2.0 und dem Man Page Viewer aus den Linux Tools bestehen. Diese sollten vor dem Plugin zu Eclipse hinzugefügt werden.

PHP Development Tools (PDT) 2.2.1 schießt den Compare View von Eclipse Helios

So nachdem es immer noch kein Update gibt und dieser

Bug 326194 – Compare completely broken

wirklich nervig ist. Hab ich nun wieder PHP Development Tools (PDT) 2.2.0 installiert. Der Bug tritt betriebssystemübergreifend auf, sowohl unter Ubuntu als auch beim Kollegen aufm MAC. Ob das Fenster davon auch betroffen ist, weiß ich nicht, gehe aber mal schwer davon aus.

Vorher Version 2.2.1 deinstallieren und net vergessen, denn Haken “Show only latest…” wegzumachen… sonst findet man die Version 2.2.0 nimmer.

WordPress App Update worst case

Ziemlich ungünstig war das letzte Update der WordPress Jungs. Schade, da es eigentlich sehr gut ist/war.

Edit:

Da der Artikel etwas arg kurz war, nochmal ein bisschen mehr Infos. Die App startet zuverlässig. Bei einem Update geht allerdings nichts. Es heißt simple: . “Bad username/password”.

Tip: Neuinstallation.

Folge: Man kann sich alles angucken. Geht man auf Posts kommt allerdings: NSXMLParserErrorDomain error 5.

Hoffentlich machen die Jungs bald ein Update, da man so ein Tool, bei allem Umstand auf dem iPhone zu tippen, doch ab und zu mal gut gebrauchen kann.

Die nette Art sich Feinde zu verschaffen

Software ist ein stetiger Prozess. Stillstand ist der Tod.
Soweit so gut. Allerdings ist bei Software wie im realen Leben immer auch ein Gedanke an die Schwächeren zu “verschwenden”.
Beispiel Apple:
Zu Zeiten schneller Entwicklung und rapiden Produktzyklen verliert v.a. Apple an Glaubwürdigkeit. Apple als Hersteller hochwertiger und teurer Hardware hat sich immer durch performante Rückwärtskompatibilität ausgezeichnet. Dies scheint nun ad acta gelegt.
Durch Entwicklungen wie das iOS 4 und auch auf der Ebene von OSX werden treue Kunden geprellt, indem durch das “alte Zöpfe abschneiden”-Prinzip, alte Hardware ad absurdum geführt wird.
Alt heisst hier (zum Teil nur) 2 Jahre! Ein iPhone 3G ist mit iOS 4 so gut wie nicht mehr zu bedienen. Das ist mir heute recht deutlich aufgefallen als ich das iPhone 4 mit dem iPhone 3G vergleichen konnte. Es ist Witz, wenn man sich überlegt, wie jung und teilweise gut erhalten die Hardware ist.
Man muss sich das mal vor Augen führen, wohin ein solches Verhalten führt. Da braucht man sich nicht über Flash zu beschweren. Erst die eigene Butze putzen, dann die Welt!

jQuery Plugin – contentfader

Current version: 1.0
License: MIT/GPL

contentfader ist ein einfaches jQuery Plugin zum FadeIn/FadeOut von Aufzählungselementen. Die Elemente einer UL Liste werden in Gruppen zusammengefasst. Die Elementgruppen werden in jedem Durchlauf genau einmal eingeblendet, die Auswahl erfolgt zufällig aus den bisher nicht gezeigten Gruppen.

jQuery Plugin – contentfader Projektseite

XPS M1530 und mein Bios Masterpasswort

So… ich bin ja nun, nach anfänglichen Schwierigkeiten, seit ein paar Jahre zufriedener Besitzer eines DELL XPS M1530. Der erste Laptop hatte ja ein paar Probleme und der Service auch… Denn ich musste damals schon ordentlich auf den Tisch hauen, damit ich nach dem 2ten Austauschmainboard ein anderes Gerät bekomme und nicht Mainbord #3…

Naja auf jedenfall musste ich heute etwas im Bios ändern und ich kann es mir beim besten Willen nicht erklären, aber ich hab das Passwort nicht mehr gewusst. Ich wusste nicht mal, dass ich da eins eingestellt hatte.

Egal dachte ich mir, Bios Passwörter sind ja eh für die Katz, rufste halt mal kurz beim Service an. Gesagt getan hatte ich irgendwann eine nette Dame dran, die mir dann erzählte ich müsste ihnen meine Service Tag Nummer und einen Eigentumsnachweis zuschicken und dann würde ich gegen eine geringe Bearbeitungsgebühr von 35 € ein Masterpasswort zugeschickt bekommen.
Gehts noch? 35 Zacken für das Eintippen der Service Tag Nummer in einen Passwortgenerator?! Hab mich von ihr verabschiedet und mich auf die Suche im WWW gemacht. Nach einiger Zeit erfolglosem Rumgestocher im Netz bin ich dann doch noch kurz vor der Kapitulation über dieses kleine C Programm gestolpert, was mein Problem auf Anhieb gelöst hat!

http://dogber1.blogspot.com/2010/04/dell-595b-keygen.html

iTunes 9.2.1 Abstürze in Win XP unter VirtualBox 3.2.6

So…. seit einiger Zeit stürzt mir iTunes beim Start ab. Nachdem ich ewig keine Zeit hatte mich darum zu kümmern, sind ein paar Versionen ohne Besserung ins Land gegangen, mittlerweile hab ich iTunes 9.2.1 und VirtualBox 3.2.6 installiert. Leider hat sich trotz dieser neuen Versionen nichts an den Abstürzen geändert.

Doch heute bin ich über einen Forumseintrag “iTunes crashes on opening after update” gestolpert, in dem geschrieben wurde, man soll kontrollieren, ob Virtualisierung im Bios aktiviert sei. Häh? In VirtualBox ist die Checkbox VT-x/AMD-v angewählt, wieso sollte ich diese Wahlmöglichkeit haben, wenn es im Bios deaktiviert ist? Naja nachschauen kostet nichts und siehe da, Virtualisierung war wirklich deaktiviert. Nach der Aktivierung ist jetzt die Checkbox in VirtualBox verschwunden, aber iTunes läuft.

… also irgendwas ist da gaaaanz komisch… aber Hauptsache es geht :)

DOM innerHTML Bug

Vor Kurzem bin ich über ein sehr nerviges Problem gestossen. Die DOM-Methode innerHTML() ist nicht in der Lage korrektes XHTML auszuwählen. D.h. wenn man Folgendes hat:

<p id="hook">Test<br/>Test</p>

und ein

document.getElementById("hook").innerHTML()

macht, bekommt man

Test<br>Test

und nicht wie erwartet

Test<br/>Test

Es ist auch egal welchen Typ das HTML-Dokument hat. Das Verhalten ist bei allen “selbstschließenden” Tags, wie z.B. br, hr, img usw. dasselbe. Man muss hier leider selbst Hand anlegen.