Der Pager, dein Freund und Helfer

Angelegt von Andreas Steinel Fri, 29 Feb 2008 22:24:00 GMT

Heute bin ich zufällig auf den Pager Most gestossen. Er kann es sehr gut mit less und more aufnehmen und kann auch Manpages colorieren.

Nettes Toll, dass auf jeden Fall einen Blick wert ist.

Posted in , ,  | keine Kommentare | keine Trackbacks

Performancevergleich

Angelegt von Andreas Steinel Tue, 05 Feb 2008 19:49:00 GMT

Heute habe ich meinen Mac mal gegen meinem PC antreten lassen. Dabei wollte ich erstmals persönlich einen Intel Core2Duo (Mac, 1.83Ghz) gegen einen Athlon X2 4600+ (PC, 2.4Ghz) testen. Weiterhin habe ich noch einige Vergleichswerte für andere Rechner hinzugefügt.

Als Test wurde einfacher openssl Verschlüsselungstest durchgeführt:

sudo nice -n -20 openssl speed aes-256-cbc

Die Werte sind gerundet und entsprechen Kilobyte pro Sekunde und soriert nach der 2048 Byte Blockgröße:

CPU MHz OS 16B 64B 256B 1024B 2048B
C2D T5600 1830 MacOS X 5 26724 27076 27154 27135 27170
Pentium 4 2800 FreeBSD 32 40153 37851 38106 38213 38089
Opteron 250 2400 Linux 64 72189 74204 75084 75284 75320
Athlon 64 3500+ 2200 Linux 32 65205 82182 89013 93183 90983
Opteron 2218 2613 Linux 64 89732 92758 94997 95195 95748
Athlon 64 3700+ 2400 Windows 32 56947 83160 94446 97859 98917
Athlon X2 4600+ 2400 Linux 32 57679 83136 95198 98279 99175
C2D E6750 2600 Linux 32 60825 91639 102847 104587 105748
Athlon X2 6000+ 3000 Linux 64 78519 109123 111333 111625 111925

Danke an alle, die meinem Test mitgemacht haben.

Posted in , ,  | keine Kommentare | keine Trackbacks

Fast Bilateral Filtering GIMP-Plugin

Angelegt von Andreas Steinel Thu, 06 Dec 2007 01:53:00 GMT

Ich habe mir gerade ein Fast Bilateral Filtering in meinem GIMP-Framework erstellt (hat so knapp eine Stunde gedauert) und habe es als Linux und FreeBSD-Version hier online gestellt.

Die jeweilige Datei einfach in den Ordner ~/.gimp-2.4/plug-ins kopieren und GIMP neustarten.

Der Effekt sieht – mehrfach angewendet – aus wie Toon-Shading:

Mit dem GIMP-Plugin kann man die zwei Parameter des Verfahrens einstellen, sowie die Anzahl der Iterationen angeben. Die Software ist natürlich ohne Gewähr und die Benutzung ist auf eigene Gefahr.

Posted in , , , ,  | keine Kommentare | keine Trackbacks

C/C++ und Debugging

Angelegt von Andreas Steinel Thu, 08 Nov 2007 00:18:00 GMT

Da ich seit einigen Wochen wieder etwas in die C/C++-Programmierung unter Linux/FreeBSD eingestiegen bin traf mich wiedereinmal der Schlag – oder besser – der SegFault. Einige Interessante Links zu Programmen, Tipps und Erkenntnisse im Überblick:

  • Linux und FreeBSD lassen Threads unterschiedlich abstürzen: FreeBSD killt den ganzen Prozess, Linux hingegen nur den Thread. Somit kann man prima den Mutterthread aushungern lassen, wenn er auf den Thread wartet.
  • Man sollte immer assert verwenden um Constraints zu prüfen, das erspart eine Menge Debugarbeit
  • const ist immer dein Freund (weiterlesen)
  • Memory Leaks kann man prima mit valgrind aufspüren, man muss sie dann nurnoch verstehen :-p
  • An Codingstandards sollte man sich halten um einem selbst und vorallem anderen (auch dem älteren ich) das Leben nicht unnötig schwer zu machen.
  • Ein Blick in die C++-Programming-FAQ ist oft hilfreich.
  • Ein Blick in ein C++-Buch eröffnet einen immer wieder neue Welten – valgrind dankt – denn mit new [] instanzierte Objekte wollen mit delete [] gelöscht werden.
  • Es gibt nix schöneres als ein abort mit glibc-error mit Stack Corruption und gdb kannt nicht mehr weiterhelfen (Hier hilft eigentlich immer valgrind)
  • printf’s Parameter auf einen Blick

Posted in , ,  | keine Kommentare | keine Trackbacks

SegFaults

Angelegt von Andreas Steinel Fri, 19 Oct 2007 11:28:00 GMT

Hier ein Beispielcode um einen SegFault unter Linux/Unix abzufangen. Mich hat es interessiert, ob soetwas möglich ist und ja es ist möglich:

#include <signal.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

void sig_handler(int sig)
{
     printf("Signal %i occured ... exiting\n", sig);
     exit(0);
}

int main()
{   
    struct sigaction act;
    memset(&act, 0, sizeof(act));
    act.sa_handler = sig_handler;       // define signal handler
    act.sa_flags   = SA_RESETHAND;      // reset to default after execution

    sigaction(SIGSEGV, &act, NULL);     // register signal handler

    printf("%s\n",0x001);               // produce segfault
    return 0;
}

Posted in , ,  | keine Kommentare | keine Trackbacks

kleine Tipps

Angelegt von Andreas Steinel Sat, 07 Jul 2007 00:28:00 GMT

Heute ein paar kleine Tipps, die ich schon lange bloggen will:

  • LaTeX und mehrzeilige Equations (Herausgefunden von A.Nauerz):
        \begin{eqnarray} 
        a&=&b \nonumber \\ 
        &&+c 
        \begin{eqnarray}
  • Das Extrahieren von Bildern aus PDF-Dateien (ohne Acrobat oder sonstwas) ist möglich durch das Programm pdfimages. Dabei werden die Bilder in dem Originalformat abgespeichert, mit dem sie in das PDF eingebaut wurden. Das funktioniert prima bei Papers aber auch bei E-Books, wie z.B. diesem hier. Bei dem E-Book (oder eher dem Auszug) geht es um die Behandlung von Haut in Photoshop. In den letzten Tagen habe ich viel mit den erwähnten Techniken unter GIMP herumgespielt. Vielleicht komme ich ja bald (z.B. nach den bald ansstehen Klausuren) endlich mal dazu, die ganzen Sachen zu bloggen, die ich in diesem Feld benutzt habe.
  • Alle Bilder in einem Verzeichnis lassen sich sehr schnell und einfach mit mogrify verändern. Zum Umwandeln von TGA in PNG macht man folgendes:
    mogrify -format png *tga

Posted in , , ,  | keine Kommentare

OpenOffice beschleunigen

Angelegt von Andreas Steinel Wed, 27 Jun 2007 16:21:00 GMT

Ich bin gerade – fast zufällig – über folgenden kleinen Artikel gestoßen, bei dem erklärt wird, wie man den Start von OpenOffice verkürzen kann. Der kleine Artikel kann hier nachgelesen werden. Er ist für Ubuntu geschrieben, sollte jedoch generell gültig sein.

Posted in ,  | keine Kommentare

mehrere PDF-Dateien zusammenfügen

Angelegt von Andreas Steinel Tue, 05 Jun 2007 17:28:00 GMT

Bisher habe ich immer versucht, mit dem FreeBSD-Port pdfmerge zurechtzukommen. Leider war dies nicht immer einfach und funktioniert hat es auch leider nicht immer.

Ich bin froh, daß ich eben fast zufällig über dieses Tool gestürzt bin, welches seine Arbeit sehr gutund vorallem in der Kommandozeile erledigt. Das andere Programm basierte auf einer in BASH geschriebenen GUI.

Ein anderes Programm, das ich oft benutze ist pdfbook. Damit kann man psbook auch direkt für PDF-Dateien verwenden. Gefunden habe ich das Programm hier:

Posted in ,  | keine Kommentare

Unix and Linuxday 2007

Angelegt von Andreas Steinel Sun, 06 May 2007 21:57:00 GMT

short English version below

Gestern war der Unix and Linuxday 2007 in Zweibrücken, bei dem Robert Gogolok und ich zum einen am FreeBSD-Stand ausgeholfen haben, zum anderen einen Vortrag über Ruby on Rails gehalten haben. Leider waren nicht sehr viele Leute nach Zweibrücken gekommen. Wir hatten trotzdem unseren Spaß :-p

Alexander Leidinger, ich und Robert Gogolok am FreeBSD-Stand.

Unser Vortrag war eine praktische Einführung in Ruby on Rails. Dabei versuchten wir Live einen sehr einfachen Blog zu programmieren und dabei auf die verwendeten Konzepte und deren Umsetzung in Ruby on Rails einzugehen. Das Vortragen hat so weit ganz gut geklappt. Natürlich gab es einige Male kurze Unstimmigkeiten, da Robert programmierte und ich parallel erklären wollte, was nun zu tun ist. Dies war ja eine Live-Demonstration und man kann die eine oder andere Abfolge mal durcheinanderbringen. Ich denke, sowas gehört dazu und aus Fehlern lernt man ja bekanntlich. :-p

Robert bei dem Eröffnen unseres Vortrages

Wir beide beim ersten Starten des Ruby on Rails Webservers

Weitere Bilder der Veranstaltung kann man bei der BSDGroup einsehen.

English: Alexander has linked the website to the FreeBSD-Blog, so I decided to write a short paragraph in english.

The first image shows Alexander Leidinger, me and Robert Gogolok at the FreeBSD-Booth. On the other two images, you can see Robert and me at our presentation. All Images can be viewed at the BSDGroup-Website..

Posted in ,  | 2 comments

kleine Tipps für FreeBSD

Angelegt von Andreas Steinel Tue, 17 Apr 2007 00:39:00 GMT

Gerade bin ich wieder etwas am herumspielen mit FreeBSD und den Ports. Ziel ist die automatische Erstellung von Ports für die Verteilung mittels pkg_add und eines Webservers.

  1. Wie bekomme ich die Statusanzeige eines dd-Prozesses?
    kill -SIGINFO $(pgrep dd)
  2. Wie bekomme ich eine Liste aller Knobs/Flags für einen Port mit allen abhängigen Ports? (portinstall portsopt)
    cd /usr/ports/<mein_gewünschter_port>
    portsopt -r
  3. Wie bekomme ich die Liste aller Ports, die nur Kinder und keine Eltern haben? (portinstall pkg_cutleaves)
    pkg_cutleaves -l
  4. Wie bekomme ich die aktuelle Transferrate zu meiner Festplatte xyz alle b Sekunden angezeigt?
    iostat -w b xyz
    Die Anzeige funktioniert auch für viele andere Schnittstellen und Treiber.
  5. Wie bekomme ich eine Liste aller installierten Ports, bei der nur der Name und die Version des Ports angezeigt wird?
    pkg_info -Exa

Posted in  | keine Kommentare