Technik, Gothic und Anderes

Technik ist Spiel, Gothic ist ernst und Zeit hat man zuviel

Archiv

Structorizer: Struktogramme unter Windows und Linux (Nachschlag)

Geschrieben von skaldrom am 8. September 2007

Die Freuden des Bloggens

Blogging ist genial. Im Beitrag Struktogramme (Nassi Shneiderman) mit dem Computer zeichnen habe ich leider Structorizer nicht zum Laufen gebracht. Dem Autor zu schreiben traute ich mich nicht ganz, da ich sicher war, dass es nur an meiner eigenen, angebohrenen Blödheit gelegen hat. Vielleicht stimmt das auch, aber Bob Fisch hat höchtpersönlich einen Kommentar unter das Posting gesetzt, mit der Bitte ihm zu mailen. Das habe ich gemacht und innerhalb weniger Stunden hat er eine neue Version auf der Website publiziert. Genial, unglaublich, sowas erlebt man nicht mal bei hochbezahlten Serviceverträgen.

Structorizer

Structorizer beim Diagramme erstellen
Structorizer läuft nun wunderbar und hat seinen positiven Eindruck den ich von den Screenshots hatte bestätigt:

Structorizer unterstützt alle Sinnbilder nach DIN 66261:
Inklusive Mehrfachauswahl, Unterroutinen (Call) mit “Sub”-Darstellung, Aussprung (jump), …
Structorizer ist mehrsprachig:
Er unterstützt Englisch, Deutsch, Französisch, …
Exports:
Export als BMP-Bilder und direktes Ausdrucken.
Einfärben:
Verschiedene Farben können die Übersichtlichkeit erhöhen.

Die Bedienung ist mittels Drag-und-Drop sowie sprechenden Tooltips nach ein paar wenigen Minuten intuitiv. Es läuft stabil und das Kreieren von Struktogrammen macht einfach Spass.

Bob Fisch gebührt grössten Respekt. Ein solches Projekt in Angriff zu nehmen und auch bis zu einer verwendungsfähigen Version voranzutreiben, es der Allgemeinheit gratis zur Verfügung zu stellen (inklusive Quellcode) und dann erst noch Support für DAUs wie mich zu übernehmen ist eine Leistung die Anerkennung verdient!

Ähnliche Artikel

Eingeordnet in Desktop, Linux, Theorie und Schnipsel | 6 Komentare »

Struktogramme (Nassi Shneiderman) mit dem Computer zeichnen

Geschrieben von skaldrom am 28. August 2007

Struktogramme

Struktogramme sind einiges platzsparender als Flussdiagramme. Gerade für Programmierneulinge ist es eine gute Möglichkeit Abläufe zu visualisieren.

NSDs können natürlich von Hand mit Stift auf Papier gezeichnet werden. Allerdings nur, wenn man ein Mensch mit exakter Schreibweise und ruhigem Strich ist. Bei Sauklauen wie mir erinnern die Struktogramme eher an moderne Kunstwerke als an Algorithmen. Computerapplikationen helfen gut in diesen Fällen und so habe ich ein Programm dafür gesucht, welches Struktogramme sauber darstellen kann und unter Linux lauffähig ist.

Structorizer

Structorizer sieht schön aus, läuft unter Linux und Windows und ist open Source.
Er hat wegen speziellen Umständen sein eigenes Posting bekommen.

Nessi

Nessi ist in zwar Java geschrieben, läuft aber trotzdem recht flott. Es besteht aus einem einzigen JAR das mit java -jar Nessi.jar gestartet werden kann und somit eigentlich keine Installation und/oder Gemurkse benötigt. Mit ein Bisschen Zielen kann man die Blöcke gut platzieren und verschieben. Der einzig richtige Nachteil ist die fehlende Mehrfachauswahl.

Nessi auf Windows XP

Neben der Darstellung bietet Nessi auch noch ein “Processing” der Diagramme. Hier eine Implementierung des Hasenbein-Algorithmus, der für einen Hühner-Hasen-Bauer aus der Anzahl der Tiere und Beine die Anzahl der Hühner und Hasen errechnet. Dieser Ablauf kann “ausgeführt” werden und liefert elegant das Resultat.

Nessi und der Hasenbein-Algorithmus

Für Fortgeschrittene

Ein Projekt für irgendwanneinmal ist DEViL. DEViL ist ein Editor für visuelle Sprachen und die NSDs sind nur eine Implementierung davon. Damit zu arbeiten wäre echt spannend, leider fehlt mir grad die Zeit dazu :-( .

Ähnliche Artikel

Eingeordnet in Desktop, Theorie und Schnipsel | 1 Kommentar »

Websvn mit Repositories in verschiedenen Verzeichnissen

Geschrieben von skaldrom am 15. August 2007

Websvn in AktionWebsvn kann mehrere Repositories in verschiedenen Unterverzeichnissen darstellen, allerdings muss man sich entscheiden: Alle Repositories aller Unterverzeichnisse aufs mal oder nur Repositories eines einzelnen Unterverzeichnisses.
Bei uns im Betrieb hat jede Abteilung (Informatik, Physik, …) ihre Repositories in eigenen Verzeichnissen auf dem Server. Websvn unterstützt zwar mehrere parentPath und stellt alle SVN-Repositories in diesen Verzeichnissen dar, will man aber auch noch einzelne Ansichten für die Abteilungen machen wird es schwer. Lösung: Der parentPath wird an Hand der URL gesetzt.

Unter Debian kann die Datei /etc/websvn/svn_deb_conf.inc direkt missbraucht werden. In anderen Distributionen muss eventuell am Schluss der Datei config.inc folgendes Codesnippet eingefügt und danach für die Änderungen gebraucht werden:

<?php
if ( file_exists("/etc/websvn/svn_sup_conf.inc") ) {
  include("/etc/websvn/svn_sup_conf.inc");
}
?>

Nun soll an Hand des Pfades der /etc/websvn/svn_deb_conf.inc parentPath gesetzt werden:

/websvn
Alle Repositories
/websvn/informatik
Alle Repositories der Abteilung Informatik
/websvn/physik
Alle Repositories der Abteilung Physik

Dafür muss man in der oben konfigurierten Datei folgendes zum Besten geben (bei mehr Abteilungen einfach intelligent erweitern):

<?php
  $repository=dirname($GLOBALS['HTTP_SERVER_VARS']['PHP_SELF']);
  // echo "::: $repository :::";
  switch($repository) {
    case "/websvn/informatik":
    case "/websvn/physik":
          $reppath="/data/svn/repositories/".substr(dirname($GLOBALS['HTTP_SERVER_VARS']['PHP_SELF']),8)."/"; // "/websvn/" entfernen
          //print "::: $reppath :::"; exit(1);
          $config->parentPath($reppath);
    break;
    default:
        $config->parentPath("/data/svn/repositories/informatik");
        $config->parentPath("/data/svn/repositories/physik");
    break;
  }
?>

Der Apache muss dies natürlich auch noch mitkriegen. Die /websvn/ URL-Teile müssen dort konfiguriert werden (site-available oder .htaccess) und das wärs dann:

# Websvn is installed in /usr/share/websvn
Alias /websvn /usr/share/websvn

Alias /websvn/informatik /usr/share/websvn
Alias /websvn/physik /usr/share/websvn

<Location /websvn>
  # DO FUNKY (AUTHENTICATION) STUFF HERE
  <IfModule mod_php4.c>
    php_flag magic_quotes_gpc Off
    php_flag track_vars On
  </IfModule>
</Location>

Ähnliche Artikel

Eingeordnet in Linux, Web | Keine Kommentare »

Switchconf: Ein kleines, feines aber geniales Tool um die Konfiguration umzuschalten

Geschrieben von skaldrom am 14. August 2007

Das Tool

Laptops sind (meistens) (mehr oder weniger) portabel. Sie müssen sich also viele verschiedene Dinge in ihren Netzwerkanschlüssen gefallen lassen; Andere Konfigurationen, Netze die mit PEAP gesichert sind, Luftnetze, wechselnde Drucker und Windowsshares, etcetc.

Auch zu Hause gibt es unter Umständen Konfigurationen mit und ohne externem Monitor, in verschiedenen Netzwerkzonen (jaa, das gibts wirklich auch zu Hause …) etcetc pipapo.

Natürlich kann man sich das automagisch erledigen lassen. Unter Debian mit ifupdown, etc… Ich mags aber unter meiner Kontrolle auf mein Kommando. Switchconf ist ein kleines, feines Tool, dass die Aufgabe elegant und einfach löst. Es kann für sich angewendet oder von einem, anderen Skript getriggert werden.

Funktionsweise

In einem konfigurierbaren Verzeichnis (normalerweise /etc/switchconf) werden Verzeichnisse für die Konfigurationen angelegt. Beispielsweise home und work. Dort kann nun ein kompletter Verzeichnisbaum mit den Dateien die zu dieser Konfiguration gehören aufgebaut werden; beispielsweise ein /etc/switchconf/home/etc/network/interfaces und ein /etc/switchconf/work/etc/network/interfaces. Das Kommando

switchconf home

grast nun das Ganze /etc/switchconf/home ab und erstellt symbolische Links (konfigurierbar, es kann auch hardlinken und kopieren) vom System auf diese Konfiguration. Also:
/etc/network/interfaces/etc/switchconf/home/etc/network/interfaces

Auf die Arbeitskonfiguration schaltet es um mittels:

switchconf work

Und der Link sieht so aus:
/etc/network/interfaces/etc/switchconf/work/etc/network/interfaces

Weiter gibt es noch die Verzeichnisse /etc/switchconf/before.d und /etc/switchconf/after.d. Alle Skripts in before.d werden vor, alle in after.d nach der Umstellung ausgeführt, damit können Daemons (Cups, PCMCIA, XSupplicant, …) neu gestartet werden damit sie die neue Konfiguration einlesen.

Mögliche Lösungen

Netzwerk
Die Datei /etc/network/interfaces für jede Konfiguration anpassen. Bei statischem DNS eventuell noch /etc/resolv.conf.
Windows Shares
Die Datei /etc/fstab und eventuell die Credentials für jede Konfiguration anpassen.
Zweitmonitor, X-Auflösung, etc…
Die Datei /etc/X11/xorg.conf für jede Konfiguration anpassen.
Drucker
Die Datei /etc/cups/printers.conf für jede Konfiguration anpassen.
XSupplicant, WPA_Supplicant
Die Datei /etc/default/xsupplicant für jede Konfiguration anpassen. ENABLED auf 0 oder 1 setzen, je nachdem ob man ihn will oder nicht…

Es wäre noch mehr denkbar wie SMTP-Host, Hintergrundbild, …

Switchconf kann auch von Netzwerkdetektoren wie laptop-netconf oder Guessnet angestossen werden. Ich finde sein Konzept etwas transparenter wie die eingebauten Monster dieser Produkte… Und vorallem kann man immernoch von Hand umschalten…

Ähnliche Artikel

Eingeordnet in Linux | Keine Kommentare »

ATI (AMD) Radeon Grafikkarte unter Linux

Geschrieben von skaldrom am 13. August 2007

Tja, die Schule geht los und ich hab viel gewurstelt an meinem Laptop… Morgen früh, extrem viel geschlafen, ich starte die Präsi, beginne Weisheiten abzusondern und sehe dass ich die Präsentation am Beamer genau nicht sehe. Es folgt ein wildes Gewurstel an Kabeln, Tastern und Schaltern bis ich kleinlaut ein Windowslaptop holen gehen muss, unter dem spottenden Spalier der Pinguinjäger…

Diagnose

Die AMD-Treiber sind ein proprietäres Modul von ATI selbst. Es treibt das Xorg an und ist wie alle proprietären Module (vmware, gna!, aber das ist ein anderes Thema) abhängig von der Kernelversion und reagiert empfindlich auf Updates. Ob alles ok ist sieht man am Besten mittels fglrxinfo:

$ fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.2 (1.5 Mesa 6.5.1)

Hab ichs doch geahnt, Mesa werkelt und nicht ATI. lsmod zeigte mir, dass kein Modul fglrx seine Arbeit tat. Nun, wahrscheinlich wurde wieder der Kernel hinter meinem Rücken upgedated…

Die unrühmliche Ausprobierphase

Nun folgte die obligatorische, eigentlich-weiss-man-es-besser Treiber neuinstallations-, X-reboots- und Restartphase :-) . Sie gipfelte immer irgendwie in:

FATAL: Module fglrx not found.

Die Lösung

Zuerst aufräumen als Root:

rm -Rf /usr/lib/fglrx
rm -Rf /lib/modules/fglrx
dpkg -P fglrx-amdcccle fglrx-driver fglrx-driver-dev fglrx-kernel-src

Dann das Ganze wie in diesem kleinen HOWTO beschrieben installieren:

Folgende Dinge braucht man:

apt-get install module-assistant build-essential dh-make debhelper debconf libstdc++5 linux-headers-$(uname -r)

Dann den Treiber downloaden und die Pakete erstellen:

ati-driver-installer-8.39.4-x86.x86_64.run --buildpkg Debian/etch

Diese installieren:

dpkg -i *.deb

Und das Kernelmodul machen:

cd /usr/src
m-a prepare
m-a a-i fglrx

Ein modprobe fglrx sollte nun klappen. Ev muss man es noch in /etc/modules einbauen.

Ich habe noch eine neue xorg.conf erstellt:

dpkg-reconfigure xserver-xorg
aticonfig --initial

Der Rest wird vom Tool amdcccle erledigt (auch als Root starten)…

Ähnliche Artikel

Eingeordnet in Hardware, Linux | Keine Kommentare »

PEAP - 802.1X unter Linux

Geschrieben von skaldrom am 5. August 2007

Lock802.1X ist ein Standard zur Authentifizierung von Netzteilnehmern, ursprünglich für Mobilnetze entwickelt, aber immer mehr auch bei Festnetzen im Einsatz.

Benötigt wird xsupplicant bzw. wpa_supplicant als Open Source implementierung des IEEE 802.1X Standards.

Die meisten Distributionen bringen xsupplicant in ihrer Packetverwaltung mit. Die Installation/Konfiguration kann sich unterscheiden.

Debian

Installation

Zuerst muss xsupplicant installiert werden. Als root folgende Zeile eingeben:

apt-get install xsupplicant

Damit wäre xsupplicant installiert.

Konfiguration

Damit xsupplicant beim Booten startet, muss die Datei /etc/default/xsupplicant editiert werden. Sie nimmt die Startparameter auf:

# /etc/default/xsupplicant

# WARNING! Before enabling xsupplicant, make sure you have a valid
# configuration file, (/etc/xsupplicant/xsupplicant.conf), and that
# you have set a list of arguments below.
ENABLED=1

# At a minimum you need to set an interface with the -i argument. See
# the man page xsupplicant(8) for more options and information.
ARGS="-c /etc/xsupplicant/xsupplicant.conf -i eth0"

eth0 ist dabei das Interface, auf dem xsupplicant arbeiten soll.

Die eigentliche Konfigurationsdatei /etc/xsupplicant/xsupplicant.conf muss nun mit den Daten des BBB Netzes gefüllt werden. Die folgende gilt für Version 1.2.4.dfsg.1-1:

network_list = all
default_netname = default
logfile = syslog
log_facility = daemon
default_interface = eth0
default
{
  type = wired
  allow_types = all
  identity = skaldrom.sarg@oncode.info

  eap-peap {
      root_cert = NONE
      random_file = /dev/urandom
      session_resume = yes
      proper_peap_v1_keying = yes         
      allow_types = all # where all = MSCHAPv2, MD5, OTP, GTC, SIM
      #allow_types = eap_mschapv2

      eap-mschapv2 {
        username = Michael.Schneider
        #ntpwdhash = E653E6452753C97E46792567DFF599B6
        password = "PaSsWoRT"
      }
  }
}

skaldrom.sarg@oncode.info respektive PaSsWoRT müssen natürlich mit den eigenen, höchselbstigen Angaben ersetzt werden.

Start

Bei eingeschaltetem Netzwerkinterface (ifconfig eth0 up) kann nun xsupplicant gestartet werden und sollte sich authentifizieren. Die DHCP Anfrage, etc, sollte danach nach Standard funktionieren (ifup eth0).

Debugging

Um dem xsupplicant bei der Arbeit zuzusehen kann er im Vordergrund gestartet werden:

xsupplicant -f -dA -c /etc/xsupplicant/xsupplicant.conf -i eth0

Ubuntu Dapper

Gebraucht wird wpasupplicant und nicht xsupplicant.

Schnell eine wpa_supplicant.conf erstellt:

ctrl_interface=/var/run/wpa_supplicant
ap_scan=0
network={
   key_mgmt=IEEE8021X
   eap=PEAP
   identity="Vorname.Nachname"
   password="passwort"
   eapol_flags=0
}

Danach kann man wpa_supplicant gestartet werden:

wpa_supplicant -Dwired -c ~/wpa.conf -i eth0 -w

Weitere Probleme

Es ist ein Fall bekannt, in welchem dhcp3-client (der neue Standard-DHCP-Client in Debian?) nicht mitgespielt hat und erst mit dhcp-client eine IP vergeben wurde (ganz unabhängig von *supplicant).

Ebenfalls haben schon automatische Netzwerkkabeleinsteckdetektoren Probleme verursacht.

Ein No network configuration found for the current AP kann darauf hindeuten, dass die Netzwerkkarte nicht unterstützt ist oder dass der Treiber kein WPA hat.

Reconnect-Scripts

Dieses kleine Script authentifiziert (unter Debian) und wartet bis der Vorgang abgeschlossen ist. Per Polling wird /etc/syslog geprüft. Das Script wäre ausbaubar (Abbruch bein Nichtauthentifizierung, Timeout, …), ich würde sehr gerne Überarbeitungen entgegen nehmen.

#! /bin/bash
ifdown eth0
/etc/init.d/xsupplicant stop
ifconfig eth0 down
ifconfig eth0 up
/etc/init.d/xsupplicant start
while ! tail /var/log/syslog | grep "Successfully authenticated eth0"
do
  echo -n "*"
  sleep 5
done
echo "\n"
ifup eth0

Bitte

Ich wäre froh für jede Info, wenn es jemand geschafft hat über das Zertifikat eines Windows Zertifikatsserver zu authentifizieren… Als Belohnung gäbs einen virtuellen Blumenstrauss :-)

Ähnliche Artikel

Eingeordnet in Linux, Netzwerk | 1 Kommentar »

USB Logitech QuickCam Express (046d:092f) unter Linux

Geschrieben von skaldrom am 10. July 2007

Da chatten ein neues Hobby geworden ist und meine alte Webcam, hmm, das Schicksal aller ausgeliehenen Bücher gegangen ist, habe ich ne neue gekauft: QuickCam Express für fastgarnix. Das Einrichten ging dank der Anleitung von ichbinsnur genial einfach. Thnx a lot diesem Wizard…

Kurz:

  • Quellen installieren:
    apt-get install spca5xx-source
  • Quellen entpacken:
    tar xvfj /usr/src/spca5xx-source.tar.bz2
  • Den Patch (nach ichbinsnurs Anleitung geschrieben) drüberlaufen lassen. Patch for spca5xx for Logitech Quickcam Express
    patch -p0 > echo  qcexpresspatch.patch
  • Das Ganze kompilieren:
    make; make install

Und schon sehe ich meine Fresse bei Kopete, etc… Uuups, sollte mal die Haare kämmen gehen….

Ähnliche Artikel

Eingeordnet in Hardware, Linux | Keine Kommentare »

Systemnachrichten auf virtuelle Konsolen

Geschrieben von skaldrom am 22. April 2007

Ich mag es wenn ich weiss, wie es meiner Computerin geht (dochdoch, die ist weiblich, ganz bestimmt!). Darum soll sie ausspucken was sie beschäftigt…. Am geilsten wäre ein serielles Terminal, aber das möchte ich neben meinem Schlepptop nicht immer mittragen, darum darf sie sich auf einer virtuellen Konsole ausdrücken. CTRL+ALT+F9 und CTRL+ALT+F10 zeigen mir, was sie so beschäftigt.

Syslog soll auf F9 gehen, dazu muss /etc/syslog.conf editiert werden:

daemon,mail.*;
news.=crit;news.=err;news.=notice;
*.=debug;*.=info;
*.=notice;*.=warn       /dev/tty9

Um auf F10 die “console” zu haben, muss man dem Kernel beim Booten “console=tty10″ mitgeben. Mit Grub muss man das in /boot/grub/menu.lst einfügen:

[...]
kernel          /boot/vmlinuz-2.6.18-4-686 root=/dev/hda1 ro console=tty10
[...]

Ähnliche Artikel

Eingeordnet in Linux | Keine Kommentare »

Beagle Revisited

Geschrieben von skaldrom am 3. April 2007

Wie im Artikel Organisatorisch herausgefordert… habe ich immernoch zuviele Dokus und zuwenig Ordnung. Aber leider scheint XFriend 2.1 zu kosten… Zeit, Beagle nochmals anzusehen. Und: Ich bin begeistert! Er tut genau das was ich erwarte und die KDE Integration ist spitze! Es werden nicht nur Konversationen in Kopete, Mails von KMail direkt ab den Maildirs (was mir extrem viel Speicherplatz für die HTML-Mails spart!), Kontakte von KAddressbook, Akregator-Feeds und KNotes indiziert, sondern mit Kerry steht auch eine Applikation für den Tray zur Verfügung!!! Ich glaube das ist die bei Opensuse viel gemacht haben… Damit sind sowohl Gnome als auch Opensuse in meiner Sympathieskala gestiegen.

Beagle-Suche mit Kerry

Natürlich wollte ich, dass er alles indiziert was mich interessiert: Powerpoint, LaTeX, Excel, Word, … Dafür musste ich die Datei /etc/beagle/external-filters.xml etwas anpassen:

< ?xml version=”1.0encoding=”utf-8?>
<external -filters>
<filter>
<mimetype>text/x-tex</mimetype>
<extension>.tex</extension>
<command>untex</command>
<arguments>-gascii %s</arguments>
</filter>
<filter>
<mimetype>application/msword</mimetype>
<mimetype>application/x-mswrite</mimetype>
<extension>.doc</extension>
<command>catdoc</command>
<arguments> %s</arguments>
</filter>
<filter>
<mimetype>application/postscript</mimetype>
<extension>.ps</extension>
<extension>.ai</extension>
<extension>.eps</extension>
<command>pstotext</command>
<arguments>%s</arguments>
</filter>
<filter>
<mimetype>application/x-rar</mimetype>
<extension>.rar</extension>
<command>unrar</command>
<arguments>lb %s</arguments>
</filter>
<filter>
<mimetype>application/vnd.ms-powerpoint</mimetype>
<mimetype>application/mspowerpoint</mimetype>
<extension>.ppt</extension>
<command>catppt</command>
<arguments>%s</arguments>
</filter>
<filter>
<mimetype>application/excel</mimetype>
<mimetype>application/msexcel</mimetype>
<extension>.xls</extension>
<command>xls2csv</command>
<arguments>%s</arguments>
</filter>
<filter>
<mimetype>application/x-zip</mimetype>
<mimetype>application/zip</mimetype>
<mimetype>application/x-zip-compressed</mimetype>
<extension>.zip</extension>
<command>unzip</command>
<arguments>-l %s</arguments>
</filter>
<filter>
<mimetype>application/mbox</mimetype>
<command>cat</command>
<arguments>%s</arguments>
</filter>
</external>

Ähnliche Artikel

Eingeordnet in Linux | 2 Komentare »

Eclipse und die Umlaute

Geschrieben von skaldrom am 3. April 2007

Ganz einfach, schlicht und ergreifend, und kann einem Stunden sparen: Eclipse unter Linux importiert keine Projekte die einen Umlaut im Pfadnamen haben. GNARRRGH!

Ähnliche Artikel

Eingeordnet in Coding, Linux | Keine Kommentare »