Ext2/Ext3 Dateisystem-Checks (fsck) unter Linux
| Mai 24, 2013 | Linux |
Bei den Partitionstypen Ext2/Ext3 sind regelmässige Systemchecks vorgesehen. Ob und wann so eine Prüfung stattfindet hängt unter anderem von folgenden Faktoren ab:
- Wie oft das Dateisystem ohne Check gemounted werden darf.
- In welchen Zeiträumen (Intervallen) Checks passieren sollen.
Beide Faktoren sind mit dem Befehl tune2fs individuell konfigurierbar (und auch abschaltbar), so kann zB. mittels des Kommando’s
tune2fs -c 20 /dev/hda2
die Anzahl der maximal erlaubten Mount’s auf 20 gesetzt werden. Bei jeden 20. Mount wird somit eine Dateisystemprüfung forciert. Zusätzlich kann der oben erwähnte Zeitraum mit dem Befehl
tune2fs -i 30 /dev/hda2
auf 30 Tage gesetzt werden. Der Check findet statt, sobald, wie in diesem Falle, eine 30-Tages Frist abgelaufen ist.
Diese automatisierten Check’s werden allerdings immer nur nach einem Neustart direkt beim Bootvorgang ausgeführt. Zu diesem Zeitpunkt sind noch keine Partitionen gemounted was wiederum eine Voraussetzung für die Prüfungen mittels fsck ist (Manuelles Mounten von Partitionen führt keine automatischen Prüfungen durch!)
Um lange Wartezeiten beim Hochfahren des System’s zu vermeiden, können die Checks auch komplett abgeschalten werden. Dies geschieht indem man den obigen Befehlen als Parameter den Wert 0 übergibt (zB. tune2fs -c 0 /dev/hda2)
Ohne Checks läuft man aber in die Gefahr korrupter Daten, deshalb sollte man sich gut überlegen wie wichtig einem die auf den Partitionen befindlichen Daten sind.
Man kann die Checks auch manuell anstoßen. Dazu legt man im Root-Dateisystem einfach die Datei “forcefsck” an (touch /forcefsck) Beim nächsten Bootvorgang werden dann alle Partitionen geprüft welche in der fstab (/etc/fstab) eingetragen sind und als 6. Parameter eine Zahl höher als 0 eingetragen haben.
Firefox: URL-Eingabe springt automatisch auf https (SSL)
| Februar 7, 2013 | Bugfix |
Bei der direkten URL-Eingabe im Firefox wird seit neustem das https-Protokoll verwendet. Sobald man eine URL eingibt versucht Firefox die SSL-Version (https) zu öffnen und erst wenn diese nicht vorhanden ist wird der Standardport (http) verwendet. Zwecks Security macht dies natürlich auch Sinn, jedoch nicht in allen Fällen. Verantwortlich für dieses Verhalten ist die Autofill-Funktion (Dies betrifft scheinbar nur die neuesten Versionen von Firefox)
Um diese Funktion zu deaktivieren gibt man in der URL-Leiste von Firefox den Text about:config ein. Firefox fragt ob man das wirklich möchte, dies bestätigt man. Im darauf erscheinenden Suchfeld gibt man nun den Text autofill ein. Der betreffende Schlüssel nennt sich browser.urlbar.autoFill. Autofill wird deaktiviert sobald der Wert dieses Keys auf false gestellt wird.
Linux: Port-Forwarding mit rinetd
| Dezember 19, 2012 | Linux |
Mit dem rinted-Package können Netzwerk-Ports auf einfache Art und Weise umgeleitet bzw. gemappt werden. Als Konfiguration wird, zumindest unter Debian, das File /etc/rinetd.conf verwendet.
Der Aufbau der Konfiguration ist relativ einfach:
0.0.0.0 25 mailserver.com 25 0.0.0.0 110 mailserver.com 110 0.0.0.0 995 mailserver.com 995
Die erste Spalte gibt an auf welcher IP-Adresse der rinetd-Daemon aktiv sein soll. 0.0.0.0 bedeutet das alle Interfaces dazu verwendet werden. Die nächste Spalte gibt den Quellport an. Die 3. und 4. Spalte sind der Zielhost und der Ziel-Port (Die Ports sind für einfache Weiterleitungen identisch)
Nähere Informationen dazu sind hier zu finden: http://www.debian-administration.org/articles/601
WordPress 3.5 und NextGen Gallery – Bugfix
| Dezember 12, 2012 | Bugfix |
Seit dem Upgrade auf die WordPress Version 3.5 gab es auf diversen Portalen Darstellungsprobleme in Verbindung mit der NextGen-Gallery. Nach der Aktualisierung erschien plötzlich folgende störende Meldung im Browser:
Warning: Missing argument 2 for wpdb::prepare()
Um den Fehler zu beseitigen ist es notwendig direkt in den Code der NextGen-Gallery einzugreifen. Dazu muss lediglich in der Datei htdocs/wp-content/plugins/nextgen-gallery/lib/tags.php in der Zeile 318 folgender Text stehen:
$term_ids = $wpdb->get_col( $wpdb->prepare("SELECT term_id FROM $wpdb->terms WHERE slug IN ($sluglist) ORDER BY term_id ASC ", null));
Der bestehende Eintrag sollte sich nur durch den String “, null” am Ende der Zeile unterscheiden. Möglicherweise wird sich dieser Fix demnächst auch in einer neuen Version der NextGen-Gallery wiederfinden.
Photoname 0.0.2
| Juli 13, 2012 | Software |
Die neue Version von Photoname enthält zwar keine neuen Features allerdings zahlreiche Updates welche die Stabilität und Performance erhöhen.
Mehr Informationen zu Photoname sind unter http://www.wittnet.at/photoname zu finden.
IOSpeed – Messen von Festplattengeschwindigkeiten
| Mai 27, 2012 | Software |
IOSpeed kann aber mehr als nur das einfache Messen der Festplattengeschwindigkeit. Es operiert im aktuellen Verzeichnis eines beliebigen Massenspeicher-Mediums, d.h. egal ob Festplatten, Ram-Disks oder Netzwerkfreigaben – IOSpeed arbeitet auf jedem Datenträger sofern ein Laufwerksbuchstabe vorhanden ist.
IOSpeed ist eine Windows-Applikation (32Bit), allerdings erfolgt die komplette Ausgabe auf Kommandozeilen-Ebene. Aus diesem Grund gibt es auch eine Reihe an verschiedenen Kommando-Parametern. IOSpeed kann aber auch ohne Parameter aufgerufen werden. In diesem Fall werden Standard-Werte verwendet.
Neben der umfangreichen Bildschirmausgabe wird auch eine Protokoll-Datei erzeugt. In dieser wird lediglich die Messung (samt Workstation-ID) gespeichert. Die Verwendung der Protokoll-Datei ist vor allem im Netzwerk interessant da zB. unterschiedliche Clients eine Netzwerk-Freigabe “testen” können und die Ergebnisse zentral in der Protokoll-Datei gespeichert werden.
Das Tool kann unter den Projekten heruntergeladen werden. Ein direkter Link folgt noch. Nach dem Downloaden die ZIP-Datei entpacken und in dem zu testenden Verzeichnis/Laufwerk abspeichern. Die Datei anschließend aufrufen und schon werden die Testergebnisse angezeigt.
Für eine vollständige Anzeige aller Funktionen am besten das Kommandozeilen Programm “cmd” unter Windows aufrufen und IOSpeed mittels “iospeed -h” starten.
GNU gdb (Debugger), MinGW, Eclipse und wxWidgets
| Februar 26, 2012 | Entwicklung |
Debuggen unter Eclipse (C++/CDT) ist eine feine Sache sofern man es mit einfachen Datentypen wie Long, Char* usw. zu tun hat. Komplexere Datenstrukturen wie zB. ein wxString von wxWidgets spucken allerdings nur in sehr mühsamer Weise wertvolle Informationen aus. Zwar kann man sich über Expressions (wxString::ToAscii().m_str) ein wenig “retten” doch ein effizientes Debuggen ist damit nicht möglich.
Abhilfe schafft hier der PrettyPrint Modus von GDB. Anhand dieser Funktionen können Variablen in der unterschiedlichsten Art und Weise dargestellt werden. Kleiner Nachteil: Der GNU Debugger gdb muss Python-Scripts ausführen können (gdb-python27.exe) und Python selbst soll natürlich auch installiert sein. Mehr ist allerdings dann nicht mehr notwendig.
Idealerweise erstellt man ein gdbinit-File welches ungefähr folgenden Inhalt hat:
set print pretty on set print object on set print static-members on set print vtbl on set print demangle on set demangle-style gnu-v3 set print sevenbit-strings off source c:\dev\python\wxwidgets.gdb
Entscheidend ist hier allerdings nur die letzte Zeile welche eine Datei namens wxwidgets.gdb einbindet. Diese Datei hier downloaden und im Dateisystem ablegen (Die source Direktive dem Pfad entsprechend anpassen!) Den Code von wxwidgets.gdb habe ich größtenteils aus dem Internet, allerdings ein wenig modifiziert damit er auch direkt mittels source von GDB aufgerufen werden kann.
In Eclipse stellt man in den Debugging Settings nun noch einen Verweise auf die gerade erstellte gdbinit ein und – Fertig! Schon kann ein wxString direkt in der Debugging-View sichtbar gemacht werden.
Zeiger werden allerdings keine berücksichtigt und so wird anstatt eines dereferenzierten wxString* lediglich die Speicheradresse angezeigt. Deshalb gibt es von wxwidgets.gdb eine zweite Version welche auch den Inhalt eines wxString* berücksichtigt. Nachdem ich kein Python-Profi bin ist es möglich das dieser Code eventuell nicht optimal ist, jedenfalls funktioniert er bei mir wunderbar.
Hier kann diese erweiterte Version heruntergeladen werden: wxwidgets1.gdb (mit Pointer)
Weiterführende links:
http://forums.codeblocks.org/index.php/topic,12747.0.html
http://svn.wxwidgets.org/viewvc/wx/wxWidgets/trunk/misc/gdb/print.py
http://forums.codeblocks.org/index.php/topic,15050.msg101768.html
UML Diagramme mit OpenSource
| Februar 12, 2012 | Allgemein |
OpenSource-Tools zur Generierung von UML-Grafiken gibt es zahlreiche. Angefangen von ArgoUML, Graphviz bis hin zu StarUML uvm. Entweder sind diese Tools total veraltet, haben merkwürdige Gui’s, benötigen Jahre an Einarbeitungszeit oder kranken an wichtigen Features.
Doch Letztens war es soweit. Nach intensiver Recherche ist mir ein Tool aufgefallen welches komplett simpel aber doch auch sehr leistungsfähig ist. Dabei ging es mir nur um die Darstellung von UML und auch anderen Diagrammen ohne irgendwelcher Source-Generatoren.
Dieses Tool nennt sich Umlet. Es kann entweder Standalone oder als Eclipse Plugin verwendet werden (Java-Source inklusive) Die Webseite mag auf den ersten Blick vielleicht ein wenig abschrecken, aber es lohnt sich diesem Werkzeug eine Chance zu geben.
Die damit erstellten Dateien haben die Extension “.uxf” und sind einfache Text-Dateien im XML-Format. Somit kann der Inhalt auch von externen Programmen/Skripte bzw. auch manuell verändert werden.
Link: Umlet
Photoname
| Februar 5, 2012 | Software |
Digitalkamera’s produzieren mehr oder weniger sinnvolle Dateinamen für die erstellten Fotos. Photoname benennt diese Fotos anhand des Aufnahmedatum’s und einer eindeutigen Prüfsumme um. Somit ist eine eindeutige Identifizierung der Fotos problemlos möglich (Vor allem Galerie-Benutzer mit Tausenden-Fotos wissen dieses Schema zu schätzen!)
Sicher ist diese Applikation nicht für jedermann geeignet da man vor allem den Inhalt der jeweiligen Fotos nicht aus dem Dateinamen ablesen kann. Dies ist in vielen Fällen aber gar nicht notwendig da bei den meisten Digialkermas entsprechende Programme zur Katalogisierung beiliegen.
Die von Photoname erzeugten Dateinamen beginnen mit dem Aufnahmedatum des Fotos. Fotos können damit problemlos in Jahr, Monat, Tag, … unterteilt und auch archiviert werden.
Näheres zu dieser Applikation ist unter Photoname zu finden.
Verwackelte Videos/Filme nachträglich stabilisieren
| Dezember 5, 2011 | Allgemein |
Das beste Rezept um verwackelte Aufnahmen zu vermeiden ist natürlich ein Stativ zu verwenden. Doch selbst mit Stativ gibt es manchmal Situationen wo störende externe Einflüsse das Bild zum Vibrieren bringen. Was tun? Das Video wurde gedreht und ist auch nicht mehr reproduzierbar, bleibt also nur mehr der Weg der Nachbearbeitung am PC.
Es gibt genügend kommerzielle Software-Produkte welche einem dabei unterstützen, doch man kann auch mit Freeware/OpenSource-Applikationen das Problem in den Griff bekommen.
Konkret verwende ich dabei das Programm VirtualDub. VirtualDub ist eine tolle Bildbearbeitung-Software mit einigen Features, jedoch ist der Bildstabilisierungs-Filter namens Deshaker noch nicht integriert. Beide Komponenten müssen downgeloadet und entsprechend installiert werden (32-Bit Version verwenden, bei der 64-Bit Version kann der Filter nicht geladen werden)
Eine Anleitung zur genauen Konfiguration ist unter http://www.sundancemediagroup.com/articles/deshaker_guide.htm zu finden. Im Prinzip können die dortigen Einstellungen laut Screenshot übernommen werden und für eine anfängliche “Spielerei” genügt dies auch. Um die besten Ergebnisse zu erzielen empfiehlt es sich aber die Original-Dokumentation von Deshaker zu studieren (zu finden auf der Homepage) und sich mit den einzelnen Parameter auseinander zu setzen.
Hier eine kurze Vorschau auf die möglichen Resultate:













