Okt 8 2011

CPU-Info und Mem-Info unter Linux

Wer sich schon immer gefragt hat, wie man sich die Informationen zur CPU und MEM auf einem Linux vHost (o.ä.) anzeigen lassen kann, darf sich gerne diese beiden Befehle anschauen:

cat /proc/cpuinfo
cat /proc/meminfo

Eine mögliche Ausgabe für cpuinfo wäre z.B:

processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 16
model		: 4
model name	: AMD Phenom(tm) II X2 550 Processor
stepping	: 3
cpu MHz		: 3115.722
cache size	: 512 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 5
wp		: yes
flags		: fpu de tsc msr pae cx8 apic cmov pat clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow constant_tsc up rep_good pni cx16 popcnt lahf_lm cmp_legacy extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch
bogomips	: 6235.57
TLB size	: 1024 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

Viel Spaß damit ;)


Aug 1 2011

Fun mit AMD :P

Ach ja, als Linux user hat man es nicht leicht, insbesondere wenn man AMD Grafikkarten besitzt. Aber ab und an trifft man bei der Lösungssuche auf echt witzige Kommentare. Aber vielleicht liegt es auch an der Uhrzeit, dass ich mich mal kurz wegschmeissen musste :D

Can we get a different intern to work on fglrx? Or maybe two interns for more than a few minutes a week with one doing a bit of QA? I mean, I know we all have incredibly low expectations and the blob driver has been utter crap for multimedia/gaming and even basic 2D VGA functionality for over half a decade now, but throw us a bone will you AMD?


Jul 28 2011

PHP Laufzeit null Vergleich und is_null

Wer sich schon immer gefragt hat, was in PHP 5.3 schneller funktioniert, ein null Vergleich (null === $a) oder das is_null, kann das recht schnell mit einem kleinen Testskript auf der Console überprüfen.

Bei mir kam folgendes heraus:
Start... null === $sut: 38.199098110199 Sekunden
Start... is_null($sut): 143.10559892654 Sekunden


Jul 19 2011

Foreign Keys beim Backup von MySQL-Datenbanken (InnoDB)

Wer ab und an Backups seiner MySQL Datenbank durchführen möchte, kann dies z.B. auf der Konsolenebene mit mysqldump durchführen. Ich stand neulich vor dem Problem ein Backup File – generiert aus phpMyAdmin – in eine lokale Entwicklungsumgebung einspielen zu müssen. Da ich hierbei grandios an den Foreign Keys gescheitert bin (foreign key constraints), hier die Lösung für alle Verzweifelten, die das auch versuchen möchten:

Bei InnoDB werden die Foreign Keys bei den Datenbankoperationen (UPDATE, INSERT, DELETE) geprüft. Deshalb scheitert meistens ein reiner Datenimport in eine leere Datenbank. Also was tun? Wir schalten hierzu diese Prüfung temporär aus und nach dem Import wieder an, logisch, oder? :) Und diese Magie geht wie folgt:

Am Anfang des Import fügen wir noch folgende Zeilen hinzu:

SET AUTOCOMMIT = 0;
SET FOREIGN_KEY_CHECKS=0;

Und am Ende des Imports aktiviert man wieder die Prüfung und commitet das Geschriebene:

SET FOREIGN_KEY_CHECKS = 1;
COMMIT;
SET AUTOCOMMIT = 1;

Unfassbar einfach! Aber halt, auf der Konsole? Ja, geht auch:

mysql -u$USER -p
use ${datenbankname hier eintragen};
SET FOREIGN_KEY_CHECKS = 0;
source ${dumpdatei hier eintragen};
SET FOREIGN_KEY_CHECKS = 1;
COMMIT;


Mai 22 2011

PHP mit cURL unter Ubuntu

Um in php Skripten cURL verwenden zu können, braucht man natürlich auch die nötige Extension “php5-curl”. Diese installiert man einfach mit:

sudo apt-get install php5-curl

Danach sollte man noch den Apache neu starten:

sudo /etc/intit.d/apache2 restart

Viel Erfolg ;)


Apr 19 2011

Mehrere Zend Cycle Helper im Einsatz

Falls ihr euch schon mit dem Cycle Helper von Zend beschäftigt habt, werdet ihr irgendwann an den Punkt kommen, wo ihr mehrere “cycles” in einer Ausgabeseite verwenden möchtet. Dazu sieht der Helper vor, dass man Namen für jeden Cycle vergibt. Wählt man diese nicht, wird der default Name verwendet. Dies kann wiederum zu nervigen Seiteneffekten führen. Hierzu ein kleines Beispiel:

Sieht auf den ersten Blick nicht unbedingt falsch aus. An dieser Stelle sollte man jedoch wissen, dass der zweite next() Aufruf problematisch ist. Um das Problem zu lösen verwendet man Namen für jeden Cycle, in etwa so:

Was mir neulich auch noch passiert ist, ist eine falsche Ausgabe des Ergebnisses. Bei einem echo auf den cycle()->next() Aufruf wird automatisch die toString() Methode des Helpers aufgerufen. Möchte man nun mit Variablen arbeiten, wird es auch hier leicht verwirrend, wenn man dies nicht im Hinterkopf behält. Dazu auch ein kleines Beispiel:

// Hiermit erhalten wir lediglich das helper Objekt
$output = $this->Cycle(array('blue', 'red'))->next();

// Eigentlich möchten wir aber dies hier
$output = $this->Cycle(array('blue', 'red'))->next()->toString();

// Ausgabe im Verbund funktioniert beim ersten Beispiel nicht...
echo 'Text' . $output;

// Bei einem direkten echo alledings schon
echo $output;

Ich wünsche viel Spaß beim Ausprobieren und viel Erfolg bei der Entwicklung neuer SuperApplikationen ;)


Apr 17 2011

GlassFish 3.1 Server nach Logout

Wer sich ein wenig mit GlassFish als Produktivumgebung beschäftigt, wird irgendwann feststellen, dass man den Applikationsserver nicht ohne Weiteres per Terminal und SSH-Verbindung zum Server starten und am leben halten kann. Es ist nämlich so, dass im Normalfall der GlassFish nach dem Logout herunterfährt.

Um nun dem “Problem” engegenzuwirken, gibt es einige Einstellungen, die einen Betrieb nach dem Logout ermöglichen. Zum einen fügt man in der Datei

bin/asadmin

die Option -Xrs zum Java Startkommando hinzu. Die Datei findet man im bin Ordner der GlassFish-Installation. Bei Windows heisst diese am Ende .bat. Die Zeile, die man verändert, sollte in etwa so aussehen (hier ist der Xrs Parameter schon hinzugefügt)

%JAVA% -Xrs -jar "%~dp0..\glassfish\modules\admin-cli.jar" %*

Im nächsten Schritt müssen wir noch in der domain.xml (in der jeweiligen Domain, genauer im Ordner) ebenfalls genau diesen Parameter setzen. Danach einfach wie gewohnt den Server starten und ausloggen ;)


Apr 16 2011

Lenovo S205 Ideapad Hardware Upgrade

In dieser Anleitung möchte ich euch zeigen, wie man das Lenovo S205 Ideapad mit mehr Hardware ausrüstet, bzw. wie ich es aufgerüstet habe. Für die Richtigkeit übernehme ich absolut keine Verantwortung, es ist also euer Risiko das Notebook nach dieser Anleitung zu modifizieren. Falls ihr es doch wagen möchtet, dieses Ergebnis erwartet euch im Erfolgsfall:

Lenovo Ideapad S205, 40GB SSD und 8GB RAM

Vorbereitungen:
Für ein Upgrade benötigt ihr die auf dem folgenden Bild gezeigten Werkzeuge/Einbauteil: Euer Ideapad S205, einen Kreuzschlitz-Schraubendreher (sehr klein), eine alte Plastikkarte (die man im im besten Fall nicht mehr benötigt), 2 x 4GB RAM von Corsair (SO-DIMM).

Vorbereitungen Upgrade Lenovo S205

Schritt 1:
Entfernt den Akku des Notebooks, indem ihr die zwei Schalter nach außendrückt und den Akku nach hinten heraus schiebt.

Lenovo S205 ohne Akku

Schritt 2:
Nun entfernt ihr vorsichtig die acht Gehäuseschrauben und die drei Schrauben, die die Tastatur fixieren. Hierbei solltet ihr zwei Dinge beachten: Die Schrauben nicht beschädigen und die Schrauben möglichst in der Anordnung ablegen, wie ihr sie aus dem Notebook holt.

 

Schritt 3:
Nachdem die 11 Schrauben auf der Rückseite entfernt sind, könnt ihr das Notebook umdrehen, es auklappen und vorsichtig mit der Plastikkarte die Tastatur anhaben. Die Anschlüsse solle man nicht trennen, man kann aber, wenn man möchte. Unter der Tastatur verbergen sich 3 weitere Schraueben. Einer davon unter einem Lonovo Aufkleber.

Entfernen der Tastatur beim Lenovo S205

Schrauben unter der Tastatur beim Lenovo S205

Schritt 4:
Um den Gehäusedeckel (bzw. eher Boden) zu entfernen, bedient man sich auch hier der Plastikkarte. Ich habe dabei im vorderen Bereich angefangen und ein mal (wie auf dem Bild zu sehen ist) rund um das Notebook geführt. Das Ergbnis sieht man im nächsten Bild.

Öffnen des Gehäuses beim Lenovo S205

Geöffnetes Lenovo S205

Schritt 5:
Um nun das RAM Upgrade durchzuführen, entfernt man den alten Speicher, indem man die silbernen Halter vorsichtig nach aussen drückt. Dabei sollte sich der RAM-Baustein leicht anheben lassen und danach herausziehen. Die neuen Bausteine montiert man analog. Man schiebt diese schräg in die Fassung (bis die Kontakte des RAMs nicht mehr zu sehen sind) und drückt den RAM-Baustein vorsichtig nach unten bis dieser schlussendlich einrastet.

Neuer Speicher für das Lenovo S205

Schritt 6:
Um die Festplatte zu wechseln, muss man noch 2 weitere Schrauben lösen und das Plattengehäuse in die gezeigte Richtung schieben. Vorher muss das WLAN Kabel noch vorsichtig angehoben werden, um es nicht zu beschädigen.

Festplatte des Lenovo S205

Danach könnt ihr das Notebook in umgekehrter Reihenfolge wieder zusammensetzen. Ich wünsche viel Erfolg und viel Spaß mit einem Leistungsstarken Notebook! ;)

Ergebnisse:

Lenovo S205 nach Speicherupgrade


Apr 12 2011

Lenovo S205 mit Ubuntu 11.04

Da ich mir das schöne Teil nun auch zugelegt habe, schreibe ich nun in diesem Post, wie man die ein oder andere Schwierigkeit meistert. Zunächst einmal: Ich habe die Beta Version von 11.04 installiert, da man bei 10.10 default Grub2 verwendet. Problem hierbei ist, dass die Hardware des S205 einfach zu neu fürGrub2 ist…

Bei der 64-bit Version von 11.04 kann man nun bei der Installation eine 1GB große EFI Partition anlegen. Damit bekommt man schonmal das Notebook zum Laufen, YAY! Doch das nächste Problem wartet bereits. Das WLAN funktioniert nicht (bei der 10.10 mit einem USB Stick Boot ist es kein Problem). Ich bin mir nicht sicher, ob hier die Beta dran schuld ist, oder einfach wieder die Hardware. Wie ich in Foren verstanden habe, wird ein falsches WLAN Modul geladen.

Um dem entegegnzuwirken und dennoch WLAN zu erhalten, habe ich zunächst ein komplettes Systemupgrade versucht.

sudo apt-get update
sudo apt-get upgrade

Nach derm Neustart (ich hatte das Netzwerkkabel noch angeschlossen) war die gesamte Installation kaputt (dachte ich). Dem war aber nicht so. Ich musste einfach nur das Netzwerkkabel entfernen. Voi la, da lief Ubuntu wieder. Allerdings recht seltsam. Also habe ich den propritären Treiber für AMD installiert. Seit dem sind zumindest die Bootprobleme weg.

So, nun zum spannenden Teil, das WLAN. Um dieses zu aktivieren, gibt es ein ganz einfachen Trick (vielen Dank an das 3DNow Forum).

modprobe acer_wmi

Danach aktiviert/deaktiviert man mit Fn + F5 das WLAN. Der Switch funktioniert hier wohl Softwareseitig, man sieht nur nichts davon. Auf jeden Fall sollte dann mit…

rfkill list

… beim Eintrag für WLAN zwei mal “no” stehen. Probiert Fn+F5 ruhig öfters mal aus, dann seht ihr auch, was sich ändert, wenn man den obigen befehl eingibt. Zum Schluss führt man noch

sudo modprobe -r acer_wmi

ausgeführt werden. Danach sollte das WLAN ohne Probleme funktionieren. Bei mir tut es das… Ich wünsche viel Erfolg und Spaß beim ausprobieren, rumspielen. ;)


Apr 12 2011

Templates in Eclipse einrichten

Eclipse bietet (auch für PHP) eine sehr gute Möglichkeit sich ein wenig Arbeit beim Tippen zu ersparen. Um z.B. Ausdrücke, die man oft verwendet, nicht ständig selbst tippen muss, kann man sich diese mit Hilfe von Templates auf ein bestimmtes Pattern legen.

Wenn ich nun z.B. folgendes abkürzen möchte…

Zend_Debug::dump();

..lege ich ein neues Template in Eclipse mit dem Kürzel “debug” an. In etwa so:

Der Vorteil ist, dass ich beim Tippen des Wortes “debug” einen Vorschlag für Zend_Debug::dump() erhalte und somit nicht alles selbst tippen muss.
Ich wünsche viel Spaß beim Ausprobieren und Abkürzen ;)