Das offizielle Blog der h8u.de Gemeinde | |
...irgendwo zwischen anspruchsvoll und geistigem Dünnschiss |
Saturday, 22. May 2010PXE mit einem Apple Mac
Um mit meinem Rechnerzoo auch "mal so eben schnell" etwas anderes machen zu können, gibt es bei mir einen PXE-Server, der dafür sorgt, dass auch ohne Festplatte über Netzwerk gestartet werden kann. Dies ist besonders praktisch, wenn mal wieder gerade was nicht so klappt, wie es eigentlich gedacht war. Mittlerweile kann das jeder PC mit einer Netzwerkkarte, nur die Apple-Möhren können das nicht. Apple hat sich das was "PXE mit einem Apple Mac" vollständig lesen Wednesday, 17. March 2010Dear Lazyweb: Datenbank-Problem (Update)
Normalerweile verwende ich für solche Applikationen gerne die Datenbank SQLite. Sie wird von Qt von Haus aus unterstützt, und kommt ohne eine weitere Einrichtung zurecht. Leider ist SQLite bei den Datenmenge (zumindest so, wie ich die Daten organisiert habe) nicht in der Lage, wirklich performant darin zu suchen. Das Aufbauen der Datenbank ist noch zeitintensiver. Im Moment rettet mich da noch mein Quad Core Rechner, aber auf durchschnittlicher Hardware ist das definitiv kein Spaß mehr. Deshalb muss dort eine tief greifende Änderung her. "Dear Lazyweb: Datenbank-Problem (Update)" vollständig lesen Sunday, 7. February 2010Codeoptimierung zum Zweiten
Der Verwunderung konnte erst nach einigen Minuten Einhalt geboten werden: ich hatte einen "Tippfehler" gemacht: statt dem OggVorbis-Encoder meines Testszenarios hatte ich den OggVorbis-Encoder der Linux-Distribution verwendet. Statt der Version 1.0.2 wurde nun 1.2.0 verwendet, aber das kann nicht für einen Geschwindigkeitszuwachs von 50%25 verantwortlich sein. Dafür schon eher die Architektur: mein Linux läuft unter 64 Bit, und nicht wie das Testprogramm mit nur 32 Bit. Da wurde ich neugierig: kann der Schritt von 32 auf 64 Bit für einen Performancezuwachs von 50%25 verantwortlich sein? Dafür habe ich mir folgendes Testszenario aufgebaut: es wurden zwei Testsysteme aufgesetzt, eins mit dem Celeron 220, der die gleiche Architektur wie erste Generation der "Core 2"-CPUs aufweist, und eins mit dem Atom 230. Auf dem wurde die 64-Bit Version von Ubuntu 10.04 alpha installiert. In dieser Umgebung wurde dann oggenc einmal als 64-Bit- und einmal als 32-Bit-Version laufen gelassen. Ich hatte mit einem anderen System schon mal ermittelt, dass es keinen messbaren Performanceunterschied von einem 32-Bit Programm auf einem 32-Bit- und 64-Bit-System gibt. Zum Vergleich gibt es noch die Messergebnisse meines "Haupt-Linux-Rechners", bei dem mir der Leistungszuwachs aufgefallen ist. Der Testparcours ist (wie bei mir üblich) das OggVorbis-Encodieren von "Queen Greatest Hits I". "Codeoptimierung zum Zweiten" vollständig lesen Wednesday, 27. January 2010GCC mit Atom-Optimierung
Nun bringt der GCC 4.5 eine extra Optimierung für den Atom mit. Diese soll nun die Idee der out-of-order execution quasi vor verlagern, so dass nun der Compiler die Befehle schon in der optimalen Reihenfolge generiert. Das wollte ich mal ausprobieren, und habe meinen alten Atom 230 reaktiviert, ein Ubuntu 10.04 alpha drauf installiert, und den aktuellen Stand des gcc aus dem Subversion-Archiv des Projektes selbst kompiliert. "GCC mit Atom-Optimierung" vollständig lesen Wednesday, 20. January 2010Der Compiler ist schuld!
Ein fast schon klassisches Beispiel: in C++-Code wurde eine Klasse angelegt, die verschiedene Variablen enthält, die aber nicht initialisiert wurden. Der GCC 3.x hat die Speicherbereiche anscheinend mit Nullen gefüllt, der GCC 4.x erwartet vom Programmierer, dass er dort etwas genauer spezifiziert, was er eigentlich gemeint hat. Tut er dies nicht, wird (vermutlich aus Performancegründen) der Speicher dort auch nicht initialisiert. Dies hat zur Folge, dass die Software mal geht und mal nicht, je nachdem, was gerade zufällig an dieser Stelle im Speicher steht. So ziemlich jeder weiß, dass solche Fehler sind schwer zu finden sind. Erste Reaktion die ich auf den Hinweis bekommen habe, dass man das so besser nicht machen sollte: "Wieso hat denn den Fehler im GCC 4 noch keiner behoben?" Ich weiß bis heute nicht, ob diese Frage wirklich ernst gemeint war, oder doch nur Spaß... Meine sonstigen Erfahrungen lassen mich allerdings ersteres annehmen. (Nicht nur) bei uns ein weiterer Klassiker: während des Kompilieren werden Warnungen noch und nöcher geworfen. Bei den größeren Einzelteilen sind sie im vierstelligen Bereich. Die Herangehensweise ist auch schon klassisch: "Wieso die Warnungen rausnehmen? Das Programm läuft doch." Natürlich wird es für einen schwer, selbst Code von besserer Qualität in ein solches Moloch einzufügen. Die Warnung vom eigenen Code gehen in dem Sumpf einfach unter. Ein Kollege hat das die Tage so beschrieben: wenn ein Haus irgendwo steht und die Scheiben heile sind, bleiben sie auch heile. Ist aber erst mal eine kaputt, geht es schnell, bis auch die anderen eingeschmissen werden. "Der Compiler ist schuld!" vollständig lesen Tuesday, 15. December 2009Qt 4.6 aber wie?
Mich überzeugt ein Programm erst dann, wenn man nicht erst noch einen Tag oder länger einen Rechner installieren muss, nur um überhaupt mit dem Programmieren anfangen zu können. Genauso will ich aber auch, dass man für meine Programme auch nicht viel machen muss, um sie laufen zu lassen. Deshalb habe ich mir mal einen gebrauchen Mac Mini gekauft, damit ich meine Programme bereits installationsfertig auch für diese Plattform anbieten kann. Für Windows gibt es sowieso mehr als genug Möglichkeiten, seine Software benutzerfreundlich auszuliefern. Das Standard-Installationsformat für Unix-Derivate die nichts mit Linux zu tun haben, ist sowieso der Quellcode. Bleibt noch Linux. Da wird es kompliziert. Da gibt es zum Beispiel verschiedene Paketverwaltungen, was aber nicht wirklich ein Problem darstellt, da es dafür Konvertierungsprogramme gibt. Problematischer wird es zum Beispiel bei der verwendeten Codebasis, da möchte ich mal wieder auf das eingangs erwähnte Qt zurück kommen. Das wird kontinuierlich weiterentwickelt, bleibt aber dabei innerhalb der Version 4.x abwärtskompatibel, so läuft ein Programm, welches nur Funktionen von 4.3 verwendet auch unter 4.4 und 4.5. Andersherum geht das natürlich nicht. "Qt 4.6 aber wie?" vollständig lesen Sunday, 4. October 2009Hacker-Hilfe gesucht
Leider gibt es noch einige Plattformen mehr, die von Qt unterstützt werden. Bei einigen fehlt mir der Zugang, wie zum Beispiel Unixware. Im Allgemeinen fehlt mir auch die Zeit die Systeme aufzusetzen, nur um ein Testprogramm darin laufen zu lassen. Darum hoffe ich mal auf die Internetgemeinde: ich habe eine kleine Seite (auf englisch) aufgesetzt, die mein Vorhaben beschreibt, und wie man einen einfachen Test durchführen kann. Jetzt sind die Nerds aufgerufen, die ein Qt auf ihrem System haben und wissen, wie man "make" bedient: saugt Euch den Code, kompiliert ihn und lasst den Test laufen. Und denjenigen, die ein Blog schreiben, dass solche Nerds anspricht, wäre ich dankbar, wenn sie diesen Artikel oder die eigentliche Seite meines Vorhabens (http://svolli.org/software/slart/slartsock/) dort verlinken könnten. Monday, 3. August 2009Doch nicht so unspektakulär
Aber ich verwende nun schon seit über zwei Monaten ein Huawei E160 USB-UMTS-Modem von Tchibo, welches auch gerne "Surf-Stick" genannt wird an meinem Notebook. Da ich selten beides gleichzeitig im Einsatz habe, habe ich nun versucht, diesen an meinem 901er zum Laufen zu bekommen: Windows XP kein Problem, aber das interessiert mich ja nur zum Aufladen des Guthabens. Unter Linux ging es nicht so einfach: Xandros hat das Modem nicht richtig erkannt, und unter Ubuntu bekomme ich zwar eine Verbindung, kann laut Statusmonitor Daten senden, aber keine Empfangen. "Doch nicht so unspektakulär" vollständig lesen
|
SucheKategorienStatische SeitenAnsicht auswählen |
Kommentare