Re: SSH-Tunnelfrage

2006-11-15 Diskussionsfäden Juergen Christoffel
On Tue, Nov 14, 2006 at 06:34:39PM +0100, Sandro Frenzel wrote:
 Und wie schützt du den Key vor unbefugtem Zugriff?

Ueblicherweise mit einer Passphrase, die (je nach System) deutlich laenger
als ein Passwort sein kann. Und dann benutze ich ssh-agent, damit ich sie
nicht zu oft eingeben muss, d.h. sie duerfen ruhig lang sein. Meine Server
erlauben den Login nur mittels Key.

Und bevor Du weiter fragst, wie ich denn die Passphrasen schuetze: meine
Phrasen sind nach einem Schema erzeugt, dass ich mir merken kann. Und
meistens habe ich sie im Kopf, fuer irgend etwas muss der ja da sein. ;-)
Ausserdem stehen sie in meinem Palm, dort mittels eines kleinen Tresors
namens Secret! geschuetzt, der sie mit IDEA verschluesselt. Und der Palm
ist nie online.

Was ich also wirklich nicht vergessen darf, ist das Passwort fuer das
Programm auf dem Palm. Das steht darum nochmal im Tresor auf dem Handheld
meiner Frau.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Rechner per SSH im DHCP-LAN ansprechen

2006-11-15 Diskussionsfäden Juergen Christoffel
On Mon, Nov 13, 2006 at 05:25:21PM -0800, bluebird wrote:
 Hat jemand eine Idee?

Falls Du nicht mit statischen Adressen im DHCP arbeiten kannst, wie andere
schon empfahlen, dann kannst Du zum Beispiel den Zielrechner beim Starten
(oder periodisch) eine bestimmte Webseite auf (D)einem Server zugreifen
lassen. Dann hast Du im Log die IP-Adresse. Sozusagen DynDNS fuer Arme.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: maximale CPU-Last erzeugen (Testweise)

2006-11-15 Diskussionsfäden Juergen Christoffel
On Tue, Nov 14, 2006 at 11:55:43AM -0800, Joerg Lensing wrote:
 wie kann ich meinen Prozessor maximal auslasten? Spiele habe ich nicht
 zum Testen. Mir steht Knoppix 5.0.1 zur Verfügung (Live-CD).

Mittels

  perl -e 'a ..  while 1'

kriege ich 99.5% Last auf meinem Thinkpad. Den Lüfter stört das aber erst
mal nicht weiter. Und mittels

  perl -e '@a = a .. z while 1'

kriege ich dieselbe Last, gleichzeitig aber noch ein Gigabyte Speicher
alloziert, um das Speichermanagement zu testen ;-)

Der Ausdruck a .. z generiert in Perl lexikografisch alle Strings
zwischen Anfangs- und Endwert, im ersten Ausdruck oben also 26^1 + ... +
26^4, im zweiten bis 26^5, die auch noch in einem Array gespeichert werden.

 Ich möchte den Lüfter hören, um die Ergonomie verschiedener
 Notebooks zu testen. Bin nämlich auf Kauftour für ein neues Notebook
 und laute Lüfter möchte ich auf diese Weise herausfischen.

Ich bin seit Jahren mit Thinkpads sehr zufrieden. Die sind leise, stabil
und zuverlaessig. Die neuen MacBooks sind auch leise.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Automatische Zeilenumbrueche im Emacs

2006-11-05 Diskussionsfäden Juergen Christoffel
On Sat, Nov 04, 2006 at 09:49:51PM +0100, Helmut Franke wrote:
 Vielleicht meinst du M-x auto-fill-mode

Nein, auto-fill-mode benutze ich fast immer. Aber wenn man in der Mitte
eines Absatzes aendert, reformatiert auto-fill-mode den Absatz nicht. Da
gab's mal etwas, was das on the fly machte. Da ich aber seit inzwischen
mehr als 20 Jahren diverse Emacse benutze, kann es gut sein, dass ich das
Feature in einer frueheren und/oder anderen Emacs-Inkarnation kennengelernt
habe.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Automatische Zeilenumbrueche im Emacs

2006-11-04 Diskussionsfäden Juergen Christoffel
On Fri, Nov 03, 2006 at 08:10:00PM +0100, Borghart Steffen wrote:
 Danke fuer die schnelle Antwort. Das Kommando kannte ich schon, es
 'raeumt' bei mir aber nicht den Buffer auf, sondern hat im Test nur
 einige Zeilen gefixt. Mache ich da irgendwas falsch?

Ja, Du machst etwas falsch: Du liest nicht oder nicht gruendlich ;-) Das
Kommando heisst fill-paragraph und nicht fill-buffer -- warum wohl?
Genau, weil es den Absatz (aka paragraph) fuellt, in dem der Cursor gerade
steht.

Tip: fill-paragraph ist per Default an M-q gebunden. Nachdem Du einen
Absatz durcheinander gemacht hast, drueckst Du halt M-q und er wird wieder
aufgeraeumt.

Falls Du das spaeter machen willst, gehst Du an den Anfang des Buffers,
nimmst im Wechsel M-} (i.e. alt-shift-]) und M-q um Dich von Paragraph zu
Paragraph zu bewegen und zu reformatieren. Das kannst Du auch in einen
Keyboard-Macro packen, damit Du's nicht dauernd wiederholen musst. Risiko:
Du erwischst dann auch Absaetze, die aus irgend einem Grund as is stehen
bleiben sollten.

Es gibt weitere nuetzliche Funktionen wie M-x fill-individual-paragraphs,
die Dir vielleicht helfen koennen. Frag' den Emacs mal mit C-h a oder M-x
apropos nach fill-. Man kann ihn auch so konfigurieren, dass er
reformatiert, waehrend Du tippst. Hab' aber vergessen, wie das ging, da ich
es eher laestig finde.

--jc

P.S. LaTeX ist es in der Regel egal, ob Deine Absaetze ordentlich gefuellt
sind...

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Debian Sarge auf AMD64?

2006-11-04 Diskussionsfäden Juergen Christoffel
On Fri, Nov 03, 2006 at 07:55:09PM +0100, Rudi Effe wrote:
  * Frage 3: Gibt es vielleicht eine Anleitung zum Thema?

Ich erinnere mich nicht mehr an Details. Aber als ich das Ende letzten
Jahres versucht habe, habe ich irgendwann entnervt aufgegeben. Und dann
habe ich...

  !! Vorsicht, weiterlesen auf eigene Gefahr: jetzt kommt da U-Wort, auf !!
  !! das hier einige so komisch reagieren... ;-) !!

... einfach versuchsweise die Ubuntu-CD fuer AMD64 eingelegt, da ich die
halt hatte. Und die installierte problemlos, ohne Anleitung etc. auf einer
Maschine mit S-ATA und zweimal Dual Core AMD Opteron. Da ich schon laenger
nicht mehr hauptberuflicher OS-Installateur bin, war ich damit restlos
gluecklich, weil ich schnell meinen eigentlichen Aufgaben wieder nachgehen
konnte.

--jc

P.S. Ich habe auch zweimal normales Debian Sarge in Betrieb, darum traue
ich mich, das hier trotzdem zu posten ;-)

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Server sichern durch CD-Betrieb?

2006-10-19 Diskussionsfäden Juergen Christoffel
On Thu, Oct 19, 2006 at 04:36:03AM +0200, Gerhard Wendebourg wrote:
 Ich verzichte ggf. lieber auf etwas Performance (liegen die wichtigsten
 Prozesse nicht ohnehin im RAM?), als mich mit der Jagd nach Rootkits 
 Co. und aehnlichen Unwaegbarkeiten abzunerven.

Schau Dir mal tripwire an. Damit kannst Du automatisiert feststellen,
welche Deiner Binaries etc. modifiziert wurden. Tripwire berechnet
Checksums ueber Files und schuetzt die gespeicherte Tabelle der Checksums
mit kryptografischen Mitteln, und verhindert so, dass ein Intruder sowohl
Binaries als auch Tabelle modizifieren kann.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Umlaute

2006-09-03 Diskussionsfäden Juergen Christoffel
On Fri, Sep 01, 2006 at 12:41:43PM +0200, Frank Lanitz wrote:
   Wieso den eingeschränktesten?
  [...]
 An so triviale Dinge habe ich garnicht gedacht, vielmehr an eine Pflicht 
 auf 
 Basis eines RFC oder so ;) 

Dann nimm' das hier (keine Pflicht, aber ein sehr guter Ratschlag):

   The well-known Internet Robustness Principle: Be liberal in what you
   accept, and conservative in what you send. -- RFC1036bis

RFC1036bis ist den Eingeweihten auch als Son of RFC 1036 bekannt. Eine
Suche nach internet robustness principle förrdert diverse interessante
Dokumente zutage. RFC 1123 erwähnt es explizit. Es wird meist Jon Postel
zugeschrieben.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: procmail: Maildir und / vergessen

2006-08-25 Diskussionsfäden Juergen Christoffel
On Wed, Aug 09, 2006 at 04:18:44PM +0200, Paul Puschmann wrote:
 Ich vermisse nun ein paar E-Mails.
 Wo koennen die hin sein?

Das wird Dir jetzt nicht mehr helfen, aber ich habe am Anfang meines
.procmailrc immer zuallererst stehen:

-s-n-i-p
# make backup copies of all incoming messages (incl. duplicates)
:0 c :
mbox.backup

# filter for duplicates
:0 Wh: .procmail/msgid.lock
| formail -D 10240 .procmail/msgid.cache
-s-n-i-p

Und mbox.backup wird kurz vor Mitternacht immer mittels crontab nach
mbox.backup.$(date +%y%m%d) umbenannt und irgendwann morgens mit bzip2
gepackt. So habe ich notfalls immer noch einen Backup der letzten n Tage,
den ich mit formail wieder in einzelne Messages zerlegen kann.

Die Backups kannst Du natuerlich auch im Maildir-Format machen und dann
einmal Nachts die Files vom Vortag mit tar zusammenpacken und komprimieren.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Regular Expression bei Dateiendungen mit find

2006-08-23 Diskussionsfäden Juergen Christoffel
On Wed, Aug 23, 2006 at 11:38:58AM +0200, Gebhard Dettmar wrote:
 On Tuesday 22 August 2006 16:39, Juergen Christoffel wrote:
  Das heisst soviel wie: das Pattern wird implizit verankert mit einem ^
  am Anfang und mit einem $ am Ende des Strings, also -regex a findet
  nicht alle Files, die ein a im Namen enthalten, sondern nur die, die
  exakt a heissen (incl. Directories im Path).
 
 Äh, Moment, das findet gar nichts.

Doch:

  touch a
  find * -regex a
  a

Ich schrieb ja zuvor, Du musst find * -op nehmen anstatt find . -op
oder find -op damit nicht der ./ davor erscheint.

  Um also alle Files zu finden, die mit a anfangen, muss man mittels
 
find . -regex '.*/a.*'
 
  suchen. Ist ungewohnt, steht aber eindeutig so in der Dokumentation. Das
 
 Das sind aber nicht alle Dateien, die mit a anfangen, sondern alle, 
 die ein a enthalten, m.a.W., bei diesem Beispiel so ungefähr 1 Mio. Will 
 man alle, die mit a anfangen, muss man find -regex '\.\/a.*' verwenden.

Wir haben unterschiedliche Vorstellungen davon, was ein Name ist? Das
Pattern '.*/a.*' sollte alle Pfade matchen, die direkt nach einem / (also
dem Directory-Delimiter) ein a enthalten, da der Stern ueblicherweise
gierrig ist, also nur alle Files, deren Name mit a anfaengt:

  touch a
  touch ba
  find -regex '.*/a.*'
  ./a

Aber er findet bei mir auch Subdirectories, deren Name mit a anfaengt.
Also noch ein Grund mehr, direkt grep/egrep zu nehmen.

 Danke. Uff, das dauert (Fetching with LWP:  
 ftp://ftp.cs.tu-berlin.de/pub/lang/perl/CPAN/authors/id/R/RG/RGARCIA/perl-5.9.4.tar.gz
 mit meinem Modem).

Modem? Das ist aber doch so 20. Jahhundert ;-) Da File::Find beim Perl-Core
dabei ist, sollte es schon auf Deinem System gewesen sein, falls Du Perl
nicht geloescht hattest. Was Du da holst, ist die komplette neueste
Perl-Version.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: E-Mails mit gefälsche n From: Headern

2006-08-23 Diskussionsfäden Juergen Christoffel
On Wed, Aug 23, 2006 at 12:34:45PM +0200, Frank Küster wrote:
 Juergen Christoffel [EMAIL PROTECTED] wrote:
  Ein einfaches grep '^From:.*Paksu Yofras' ~/incoming/debian-de* liefert
  mir Paksu Yofras zemalst at samson.de.
 
 Und woher weisst du, dass die gefälschte Mail wirklich von dem kommt?

Da die Received-Header in beiden Faellen bei mail.samson.de beginnen,
scheint mir das naheliegend. Wenn man ihn/sie/es dann darauf hinweist,
sollte man das schnell erfahren. Als Indiz reicht mir das. Ich _glaube_ ja
auch nur, dass es Dich gibt, ich weiss es aber nicht 100% sicher ;-)

  Das mag sein. Aber künstliche Aufregung wird durch die Verwendung falscher
  Begriffe nicht überzeugender. 
 
 Ich finde das durchaus ärgerlich genug, dass man mal eine öffentliche
 Mail dazu schreiben kann.  

Dem habe ich nicht widersprochen. Aber Drohungen mit bla bla bla ist
verboten/illegal sind da trotzdem nicht erste Wahl bei der Reaktion.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Regular Expression bei Dateiendungen mit find

2006-08-22 Diskussionsfäden Juergen Christoffel
On Tue, Aug 22, 2006 at 10:06:36AM +0200, Gebhard Dettmar wrote:
 Aber ich kapiere find -regex eh nicht so ganz. Ich habe Dateien wie 
 geb.jpg, gebI.jpg, gebII.jpg usw. find -regex geb.* matcht die nicht, da 
 muss noch ein .* davor, also .*geb.* Nehme an, das liegt daran, dass 
 find bei der Ausgabe immer noch ein ./ vor Dateien, die im 
 Aufrufverzeichnis liegen, stellt.

Jein. find gibt ein ./ nur dann aus, wenn Du sagst find . -op oder
find -op ohne Directories. Wenn Du find * sagst, gibt's kein ./
davor, aber Du findest trotzdem nicht unbedingt das, was Du suchst.

Ein Blick in die Manpage zu find(1) hilft Dir. Da steht zu -regex

  This is a match on the whole path, not a search. For example, [...]

Das heisst soviel wie: das Pattern wird implizit verankert mit einem ^ am
Anfang und mit einem $ am Ende des Strings, also -regex a findet nicht
alle Files, die ein a im Namen enthalten, sondern nur die, die exakt a
heissen (incl. Directories im Path).

Um also alle Files zu finden, die mit a anfangen, muss man mittels

  find . -regex '.*/a.*'

suchen. Ist ungewohnt, steht aber eindeutig so in der Dokumentation. Das
funktioniert analog zum match-Operator in expr(1), der das schon seit eh
und je so macht.

Sinnvoller ist, wie schon andere sagten, statt dessen klassisch mit grep
oder egrep zu arbeiten:

  find . | grep '/a'

oder

  find . | egrep -i 'jpe?g$'

BTW: sehr hilfreich ist auch das Modul File::Find von Perl, mit dem man
beliebige Operationen waehrend der Traversierung eines Verzeichnisses
ausfuehren kann.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: E-Mails mit gefälsche n From: Headern

2006-08-22 Diskussionsfäden Juergen Christoffel
On Mon, Aug 21, 2006 at 02:37:07PM +0200, Frank Küster wrote:
 [...]
 Das hat sie ja gerade getan:  Die (angebliche) Absender-Adresse ist ja
 die Listenadresse.  Und aus den Received-Zeilen den wahren Absender
 rauszulesen, ohne den Admin des Ursprungs-Servers zu kontaktieren, ist
 im besten Fall ein Glücksspiel.

Glücksspiel? Nicht eher Hirn einschalten statt Schimpfen wie ein
Rohrspatz?

Ein einfaches grep '^From:.*Paksu Yofras' ~/incoming/debian-de* liefert
mir Paksu Yofras zemalst at samson.de.

 Ich denke, es ist eher das Verwenden fremder E-Mail-*Adressen* gemeint.

Das mag sein. Aber künstliche Aufregung wird durch die Verwendung falscher
Begriffe nicht überzeugender. 

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: [OT:] SVN-Tutorial

2006-06-02 Diskussionsfäden Juergen Christoffel
On Fri, Jun 02, 2006 at 12:35:56PM +0200, Hannes H. wrote:
 Ich hab schon oft von eingefleischten Profil gehört, dass ich doch
 gefälligst mit dem englischen Dingen vorlieb nehmen soll, da es quasi
 für Waschlappen ist, deutsche Dokus haben zu wollen-

Nein, das hat mich Waschlappen nichts zu tun. Es gibt ein ganz sachliche
Gründe dafür:

 - englische Dokumentation ist oft aktueller[*] (es sei denn, das Original
   ist in Deutsch) weil erst die englische Software, dann die englische
   Dokumentation und zuallerletzt die deutsche Dokumentation aktualisiert
   wird.

 - englische Dokumentation ist meist genauer (es sei denn, die Übersetzer
   haben wirklich ausreichend Ahnung vom Thema) denn sie stammt oft aus
   erster Hand.

Wer veraltete, schlecht übersetzte Dokumentation liest, hat mit mit
aktuelleren Versionen der Software manchmal Probleme. Und stellt dann
Fragen, die er/sie/es eigentlich nicht stellen müsste.

Ich kann nachvollziehen, dass man Deutsch bevorzugt, damit man sich nicht
gleichzeitig in eine fremde Sprache und eine fremde Software einarbeiten
muss. Aber betrachte Englisch als weiteres Projekt. Es gibt da gute,
deutsche Anleitungen zum einarbeiten ;-) Ausserdem ist die Hürde zum
Englischen nicht soo gross und wenn man sie einmal genommen hat, kann man
viel mehr Informationsquellen nutzen.

--jc

[*} Das SVN-Buch ist so ein Beispiel, da sind Teile noch garnicht
übersetzt, zum Beispiel der Anhang SVN für CVS-Benutzer der mich
gerade jetzt interessieren würde.

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: [OT] Reihenfolge der iptables rules

2006-06-01 Diskussionsfäden Juergen Christoffel
On Thu, Jun 01, 2006 at 12:07:15PM +0200, Chris C. wrote:
 [...]
 da die Rule am Ende angefügt wird und somit garnicht erst gelesen wird. Alle 
 Regeln entfernen oder irgendwie dazwischenquetschen ist ja auch nicht sehr 
 elegant.

Es gibt kein dazwischenquetschen aber es gibt ein Einfuegen an einer
bestimmten Position mittels -I int anstatt -A. Was daran unelegant
sein sollte, entgeht mir. Wenn ich meine Regeln dynamisch anpasse, mache
ich genau das, falls ich fuer bestimmte Faelle nicht vorher schon eine
eigene Tabelle angelegt hatte, bei der ich dann wieder nur anhaengen
kann.

Mittels iptables -L -n --line-numbers kannst Du Dir auch die Zeilen der
Ausgabe numieren lassen.

Um mit iptables umgehen zu lernen gibt es ein sehr gutes Iptables
Tutorial[1] von Oskar Andreasson und ein Script Easy Firewall Generator
for IPTables [2], dass danach Firewalls generiert.

--jc

[1] http://iptables-tutorial.frozentux.net/
[2] http://easyfwgen.morizot.net/gen/

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: [OT] Reihenfolge der iptables rules

2006-06-01 Diskussionsfäden Juergen Christoffel
On Thu, Jun 01, 2006 at 05:40:25PM +0200, Thomas Gräber wrote:
 Im Gegensatz zu pf, wenn ich das richtig verstanden habe, arbeitet iptables 
 die Regeln von oben nach unten ab und nimmt die erste Regel, die passt, alle 
 darunter werden für das Paket dann ignoriert. 

Jein: zwar arbeitet iptables die Regeln erst mal von oben nach unten ab.
Aber zum einen kannst Du in iptables z.B. mittels -j die Reihenfolge der
Abarbeitung aendern. Zum anderen gibt es Regeln, die durchaus die weitere
Verarbeitung zulassen, sonst koenntest Du z.B. nicht erst loggen und dann
ein reject erzeugen.

Ein Beispiel:

  $IPT -A icmp_packets --fragment -p ICMP -j LOG --log-prefix DROP: 
  $IPT -A icmp_packets --fragment -p ICMP -j DROP

Hier wird erst ein Log-Eintrag erzeugt, dann das Packet weggeworfen (es
koennte auch akzeptiert werden).

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: [OT] Reihenfolge der iptables rules

2006-06-01 Diskussionsfäden Juergen Christoffel
On Thu, Jun 01, 2006 at 05:10:19PM +0200, Chris C. wrote:
 Am Donnerstag 01 Juni 2006 15:44 schrieb Juergen Christoffel:
  Es gibt kein dazwischenquetschen aber es gibt ein Einfuegen an einer
  bestimmten Position mittels -I int anstatt -A. 
 
 Ja, ich hatte die Doku auf netfilter.org zwar gelesen, aber das mit dem -I 
 irgendwie falsch interpretiert.

Ausser -I und -A kannst Du uebrigens auch mittels -R Regeln ersetzen. Ich
erlaube zum Beispiel meiner Workstation zuhause, die bei DSL-Flatrate alle
24 Stunden eine neue IP-Adresse kriegt, bestimmte Zugriffe auf einem
externen Host. Auf diesem Host laeuft ein Script, dass die Regeln aendert,
wenn sich die Adresse aendert:


#! /bin/bash

CHAIN=dsl_in
MYHOST=$(host gipsnich.dyndns.org | awk '{print $NF}')

# list: iptables -v -n --line-numbers -L dsl_in

### some sanity checks first

# check if chain exists
if iptables -n -L $CHAIN  /dev/null ; then
  : ok
else
  echo $0: chain $CHAIN missing, exiting
  exit 1
fi

# check if ip address looks ok
if  expr $MYHOST : '.*[0-9][0-9].[0-9][0-9]'  /dev/null; then
  : ok
else
  echo $0: bogus ip address $MYHOST, exiting
  exit 1
fi

iptables -R dsl_in 1 -p TCP -s $MYHOST --dport  80 -j ACCEPT
iptables -R dsl_in 2 -p TCP -s $MYHOST --dport 443 -j ACCEPT
iptables -R dsl_in 3 -p TCP -s $MYHOST --dport  25 -j ACCEPT
iptables -R dsl_in 4 -p TCP -s $MYHOST --dport  53 -j ACCEPT


Hier ist eine eigene Chain dsl_in eingetragen, die fuer eingehende
Verbindungen aus dem Adressbereich meines Providers angesprungen wird und
nur die private Adresse filtert. Alle anderen fallen unten aus der
Chain wieder raus in die normale Verarbeitung.

Dank der separaten Chain bin ich immer sicher, dass die hart kodierten
Positionen 1..4 in der Chain auch stimmen. Denn bei den uebergeordneten
Chains koennte sich das durch -I weiter vorne schon mal aendern, was dann
komplexeres Parsen erzwingen wuerde

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: HTTP ueber ssh mittels Proxy tunneln

2006-05-31 Diskussionsfäden Juergen Christoffel
On Tue, May 30, 2006 at 08:57:00PM +0200, Andreas Pakulat wrote:
 Und schliesslich: Wie kriege ich am anderen ssh-Ende den HTTP-Request
 raus und dann tatsaechlich ins Netz geschickt. Wieder nen Proxy?

Schau' Dir mal bei ssh die Option -D an. Die koennte Dir helfen. Den Tip
fand ich vor einger Zeit und habe ihn mir gemerkt:

  You can also create a dynamic port using the -D option. This allows you to 
encrypt
  any kind of traffic through a single port. In effect, the SSH server acts as a
  SOCKS proxy.

  The best application of this (one that I use every day) is to get around my
  company's Internet traffic monitoring. I open an SSH session to my server at 
home,
  with the option -D 1818. I have Firefox configured to use a SOCKS5 proxy at
  localhost:1818.

  So whenever I am using Firefox, I am forwarding all traffic through an 
encrypted
  channel to my home machine, and none of it is visible to the Internet usage
  monitoring software that my company uses.
  [http://tips.linux.com/comments.pl?sid=36101cid=86518]

Allerdings habe ich nie probiert, ob's auch so funktioniert. Sollte ich
vielleicht jetzt mal tun...

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: HTTP ueber ssh mittels Proxy tunneln

2006-05-31 Diskussionsfäden Juergen Christoffel
On Wed, May 31, 2006 at 01:42:35PM +0200, Jochen Schulz wrote:
 Mit sowas sollte man allerdings extrem vorsichtig sein. Aktive Umgehung
 der Firmenpolicy zur Internetnutzung kann ein Grund für eine fristlose
 Kündigung sein. [...]

Das ist mir klar und das ist auch ein sinnvoller Hinweis von Dir. Bei
Andreas ging's aber um seine eigene Verbindung und deshalb habe ich auch
nur die technische Seite berichtet.

Die politische Seite ist ein Fass ohne Boden. Nicht nur beim Tunneling
mittels ssh. Skype durch Port 80 muss zum Beispiel auch nicht deshalb
erlaubt sein, nur weil Port 80 in der Firma offen ist.

  Allerdings habe ich nie probiert, ob's auch so funktioniert. Sollte ich
  vielleicht jetzt mal tun...
 
 Tut es. Wobei ich seltener den Socks-Proxy benutze, meist tut es ein
 Tunnel zu meinem HTTP-Proxy und dem IMAP-Server zu Hause. Den HTTP-Proxy
 benutze ich eigentlich auch nur, um auf meinen Webserver zuzugreifen,
 der nur innerhalb meines LANs ansprechbar ist.

Funktioniert tatsaechlich problemlos. Ich habe mittels ssh -D 8118 ...
eine Verbindung zu meiner Workstation zuhause (ueber DynDNS ansprechbar)
aufgebaut und dem Firefox hier draussen gesagt, er solle bitte
localhost auf Port 8118 bei SOCKS benutzen und schon konnte ich auf
meinen lokalen Apache zuhause zugreifen.

Leider kann ich dem Firefox anscheinend aber nicht sagen, er solle den
konfigurierten HTTP-Proxy bitte nach SOCKS benutzen, er will das immer
vorher machen. Sonst waere das ein sehr schoenes Mini-VPN. So ist es aber
auch schon sehr nuetzlich.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Problem mit ML: Eigene Posts kommen nicht zurück

2006-05-27 Diskussionsfäden Juergen Christoffel
On Fri, May 26, 2006 at 05:07:43PM +0200, Nico Jochens wrote:
 On Fri, May 26, 2006 at 11:17:51AM +0200, Juergen Christoffel wrote:
 Apropos Archiv: da gibt's anscheinend keine monatlichen mbox-Files, [...]
 
 Schau mal hier: http://mbox.mewes.tv/mbox/

Danke! Sehr guter Tip.

 Die hat Martin Mewes mal gebastelt.

Und dann auch danke fuer's Sammeln. Archive in mbox-Format sind doch immer
noch flexibler zu nutzen als Web-Interfaces.

 sunny greetings from Norderstedt

Dann habt ihr deutlich besseres Wetter als wir hier im Rheinland. Sonne?
Seit Donnerstag nur warmer Regen. Seufz ;-)

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Endlos Schleife im Ext3 Filesystem

2006-05-27 Diskussionsfäden Juergen Christoffel
On Sat, May 27, 2006 at 11:57:07AM +0200, Markus Schulz wrote:
 Eine Bash in dieser Pfadtiefe ist übrigens kaum benutzbar, jedes Zeichen 
 das man tippt braucht 2-3 Sekunden um zu erscheinen, das Arbeiten ist 
 quälend langsam.

Was ist da langsam? Hast Du vielleicht den Pfad im Prompt oder etwas
derartiges? Ich tippe hier (zsh und bash) problemlos in Tiefe 676 nachdem
ich folgendes ausgefuehrt habe:

abc=a b c d e f g h i j k l m n o p q r s t u v w x y z

for i in $abc ; do
  for j in $abc ; do
mkdir $i$j
cd $i$j
  done
done


-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Verzeichnis ..t bei rsync

2006-05-26 Diskussionsfäden Juergen Christoffel
On Thu, May 25, 2006 at 10:33:01PM +0200, Rüdiger Noack wrote:
 Mein Kommando lautet sinngemäß:
 
 $ rsync -e ssh -avzH TESTDIR server:DIR

Dein Problem könnte der folgende subtile Punkt sein:

  rsync -e ssh -avzH TESTDIR server:DIR

kopiert TESTDIR als Subdirectory nach DIR, synchronisiert also TESTDIR mit
DIR/TESTDIR während

  rsync -e ssh -avzH TESTDIR/ server:DIR

den Inhalt von TESTDIR mit DIR synchronisiert. Der slash bei TESTDIR/
macht den feinen Unterschied. Steht auch so in der Manpage:

  A trailing slash on the source changes this behavior to avoid creating an
  additional directory level at the destination. You can think of a
  trailing / on a source as meaning copy the contents of this directory
  as opposed to copy the directory by name, but in both cases the
  attributes of the containing directory are transferred to the containing
  directory on the destination. In other words, each of the following
  commands copies the files in the same way, including their setting of the
  attributes of /dest/foo: [...]

RTFM lohnt sich, wenn eine FM wie bei rsync vorhanden ist ;-)

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Problem mit ML: Eigene Posts kommen nicht zurück

2006-05-26 Diskussionsfäden Juergen Christoffel
On Fri, May 26, 2006 at 12:27:35AM +0200, Sven Freyer wrote:
 gibt es eigentlich ein Problem mit der Mailingliste ?

Scheint so. Die letzten Tage hat es bis zu 10 (in Worten: zehn) Stunden
gedauert, bevor ich Emails von der Liste erhielt. Meine eigenen brauchten
fuer hin und her auch so lange.

Jetzt scheint's wieder zuegiger zu gehen, dafuer sagt das Archiv:

  The last update was on 20:40 GMT Thu May 25.

Apropos Archiv: da gibt's anscheinend keine monatlichen mbox-Files, wie bei
anderen Listen? Das Suchen nach bereits beantworteten Fragen ist ueber das
Web-Interface nicht wirklich schoen, wenn man grep/mutt etc. gewohnt ist.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: alle Prozesse innerhalb eines Zeitraumes

2006-05-26 Diskussionsfäden Juergen Christoffel
On Wed, May 24, 2006 at 09:42:41PM +0200, Joerg Zimmermann wrote:
 ich suche eine tool, welches mir eine Liste aller Prozesse/Programme
 ausgibt, die innerhalb einer bestimmten Zeitspanne gestartet wurden.

nexus# apt-cache search acct
acct - The GNU Accounting utilities for process and login accounting

Du hast dann lastcomm (und weitere Kommandos bzw. Logfiles) zur Verfuegung,
das zeigt Dir u.a. wer wann welchen Prozess gestartet hat und wieviel Zeit
er verbrauchte:

lastcomm | head -20
 sendmail SF root __ 0.02 secs Fri May 26 11:25
 sendmail SF root __ 0.02 secs Fri May 26 11:26
 sendmail SF root __ 0.05 secs Fri May 26 11:26
 sendmail SF root __ 0.01 secs Fri May 26 11:26
 sendmail SF root __ 0.02 secs Fri May 26 11:26
 sendmail SF root __ 0.01 secs Fri May 26 11:26
 sendmail SF root __ 0.01 secs Fri May 26 11:26
 sendmail SF root __ 0.02 secs Fri May 26 11:26
 sendmail SF root __ 0.01 secs Fri May 26 11:26
 sendmail SF root __ 0.02 secs Fri May 26 11:26
 sh  daemon   __ 0.01 secs Fri May 26 11:26
 shF daemon   __ 0.01 secs Fri May 26 11:26
 sendmail SF root __ 0.03 secs Fri May 26 11:26
 sendmail SF root __ 0.01 secs Fri May 26 11:25
 sendmail SF root __ 0.02 secs Fri May 26 11:26
 sh  mailman  __ 0.01 secs Fri May 26 11:26
 python  mailman  __ 0.44 secs Fri May 26 11:26
 popper   S  bd   __ 6.98 secs Fri May 26 11:25
 popper   S  daphnet  __ 0.01 secs Fri May 26 11:25
 sendmail SF root __ 0.01 secs Fri May 26 11:25

Der Output hier ist jetzt nicht von einer Debian-Maschine, aber da sollte
es aehnlich aussehen. Ggf. muss Dein Kernel mit der Option Accounting
uebersetzt werden, aber das sollte Dir die Package-Dokumentation sagen.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: kleines RegEx Problem

2006-05-25 Diskussionsfäden Juergen Christoffel
On Wed, May 24, 2006 at 03:06:41AM +0200, Andreas Pakulat wrote:
 Ich moechte nun mit einer Regex darauf matchen, folgende regex macht
 fast was sie soll:
 
 '^([^_]+)_([^_]+)(_.+)*(\.orig\.tar\.gz|\.tar\.gz|\.diff\.gz|\.dsc|\.deb|\.udeb|\.package|\.source)$'

Zum einen kannst Du den . in der letzten Klammer ausfaktorisieren. Das
loest Dein Problem nicht, macht die Regexp aber kuerzer ;-)

'^([^_]+)_([^_]+)(_.+)*(\.(orig\.tar\.gz|tar\.gz|diff\.gz|dsc|deb|udeb|package|source))$'

 Das Problem dabei: Bei foobar_version.orig.tar.gz erhalte ich fuer
 
 \1 = foobar
 \2 = version.orig
 \3 = tar.gz

Der Grund ist, dass die Operatoren * und + gierig (greedy) sind und Deine
zweite Klammer somit den ganzen Rest schluckt. Regexps werden in der Regel
von links her abgearbeitet. Damit der Matcher dann Dein Pattern erfuellen
kann, muss er jetzt noch versuchen, die letzte Klammer zu erfuellen. Dafuer
kann er nur den gierigen Operatoren Stueck fuer Stueck weniger geben. Das
geschieht dann de facto von rechts und da ist Dein Problem: tar.gz ist
halt kuerzer als orig.tar.gz und trifft damit eher zu.

Wenn Du das mit obigen Mitteln loesen willst, dann musst Du im Prinzip die
Regexp verdoppeln und in der rechten Klammer des linken Teilausdrucks Deine
praeferierten Pattern angeben. Nur sind das im Prinzip zwei Regexps in eine
gefaltet und ausserdem klappt's bei den meisten Matchern weiterhin nicht,
weil die per Definition den leftmost longest match finden... da Du alles
haben willst, ist leftmost hier egal, aber longest gilt fuer die
Teilausdrueck immer noch.

 Jemand nen Tipp wie ich das mit einer regex erschlagen kann (mit
 mehreren ist es kein Problem, das stoert dann aber im Progamm etwas)?

Du hast ja nicht gesagt, in welcher Sprache fuer welchen Matcher. ;-) Bei
mir klappt es mit dem beigefügten Perl-Programm. Das erzeugt folgenden
Output:

nexus[1615]: perl regexp.pl 
foobar_version_arch.deb
\1=foobar
\2=version
\3=_arch
\4=.deb
foobar_version.orig.tar.gz
\1=foobar
\2=version
\3=
\4=.orig.tar.gz
foobar_version.tar.gz
\1=foobar
\2=version
\3=
\4=.tar.gz
foobar_version.orig.tar.gz
\1=foobar
\2=version
\3=
\4=.orig.tar.gz

Ein paar Erlaeuterungen zum Programm:

 - Perl hat seit Perl5 neben den Operatoren * und + auch noch *? und +? die
beide nicht gierig sind, also so wenig wie moeglich matchen. Damit loest
sich das Problem in (fast) nichts auf.

 - Der Match findet in dem Ausdruck /pattern/ statt, dank des x-Flags (also
/pattern/x) kann der Ausdruck auch ueber mehrere Zeilen geschrieben werden.
Leerzeichen werden in dem Fall einfach ignoriert. Die Regexp wird daurch
uebersichtlicher.

 - Der DATA-Filehandle liest alles, was nach __END__ im Script steht,
deshalb brauche ich Dir nicht zwei Files zu attachen.

--jc

P.S. Die eigenwillige Operatoren-Syntax kommt daher, dass beim Wechsel von
Perl4 nach Perl5 alte Programme weiterhin unveraendert laufen sollten,
deshalb hat Larry Wall eine frueher ungueltige Syntax als Erweiterung
gewaehlt. Betrachte es einfach als Idiom (aka nuetzlichen Slang).

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin
#! /usr/bin/perl

while (DATA) {
  print $_;
  /^([^_]+)_([^_]+?)(_.+)*
   (\.(orig\.tar\.gz|tar\.gz|diff\.gz|dsc|deb|udeb|package|source))$/x;

  print \\1=$1\n;
  print \\2=$2\n;
  print \\3=$3\n;
  print \\4=$4\n;
}

__END__
foobar_version_arch.deb
foobar_version.orig.tar.gz
foobar_version.tar.gz
foobar_version.orig.tar.gz


Re: kleines RegEx Problem

2006-05-25 Diskussionsfäden Juergen Christoffel
On Thu, May 25, 2006 at 12:16:06PM +0200, Andreas Pakulat wrote:
 foobar = \1
 
 Das war so aus dem Kopf hingeschrieben, ja da fehlen saemtlich und
 sonders die $ und (). Ich wollte nur darstellen das ich in Perl
 implizit auf die letzte angewandte Regex zugreifen kann um die
 subexpressions rauszuziehen. In Python brauche ich da halt extra das
 match Objekt.

Ich hatte es auch einfach als Pseudocode gelesen. In Perl waere das
ausserdem noch $1 anstatt \1, also

  $foobar = $1;

denn die Back-References landen ausserhalb des Patterns in den Variablen
$1, $2, ... und sollten dort abgeholt werden.

--jc

P.S. Am Rande bemerkt: wenn man mehrere Sub-Expressions extrahieren will,
kann man das kompakt (und uebersichtlich) mit einer Mehrfach-Zuweisung
erledigen:

  if ( m/([a-z \-]+),\s*([a-z \-]+)/i ) {
($name, $vorname) = ($1, $2);
  }

Python nennt das, meine ich mich zu erinnern, Tupel-Assignment?

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: xargs für url-listen?

2006-05-25 Diskussionsfäden Juergen Christoffel
On Thu, May 25, 2006 at 05:17:44PM +0200, Michelle Konzack wrote:
 fgrep --invert-match $LISTE $DATEI

Du meinst vermutlich 

  fgrep --invert-match -f $LISTE $DATEI

 Die Frage ist nun, wie würdet ihr das am besten lösen?

Bei der Dimension mit einem ordentlichen Programm anstatt mit einem
Shell-Script. Den Inhalt von Liste wuerde ich in einen B-Tree stecken
(siehe z.B. man DB_File) und dann die URLs aus $DATEI der Reihe nach lesen
und sehen, ob sie in der DB sind. Oder umgekehrt. Das geht recht flott.

Bei 5M Links und 1000 Stueck pro xargs erzeugst Du so nebenbei 5000
Shell-Prozesse. Ich haette da ein schlechtes Gewissen wegen solcher
Verschwendung von Ressourcen ;-)

 Rechenleistung, Speicher und Internetanbindung sind kein Problem.

Das sollte es auch nicht, wenn Du 5M Links ueberwachen und/oder runterladen
willst ;-)

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Mutt Konfiguration

2006-05-25 Diskussionsfäden Juergen Christoffel
On Wed, May 24, 2006 at 10:28:34AM +0200, Udo Mueller wrote:
 Bitte ändere Zeile 35 von
 
 if (m/([EMAIL PROTECTED])/) {
 
 nach
 
 if (m/.*([EMAIL PROTECTED]).*/) {

OK, ich sehe was Du machst, aber ich weiss noch nicht, warum (s.u.).

Mit dem initialen .* schiebst Du den Match ganz nach rechts, findest also
das am weitesten rechts stehende Paar  Das .* am Ende ist
ueberfluessig, weil es nicht geklammert ist, um etwas zu extrahieren.

Die nicht-gierige Variante *? von * nimmst Du, um zu vermeiden, dass Du bei
Strings wie foobar alles zwischen dem ersten  und dem letzten 
in der Klammer matchst. Besser (weil selbst-dokumentierender) waere statt
dessen

  if (m/.*([^[EMAIL PROTECTED]]+)/)

Dann steht dort eindeutig, dass wir a) alles haben wollen, was vor dem
ersten schliessenden  kommt und mindestens ein @ enthaelt. Ausserdem
sagen wir mit dem + dass wir vor und nach dem @ auch je mindestens ein
Zeichen erwarten, also degenerierte Adressen wie @ oder @foo nicht
das sind, was wir erwarten.

Bei Regexps ist es sehr oft hilfreich, genau zu sagen, was man _nicht_ will
(auch fuer den NFA bzw. DFA unten drunter, der dann nicht so viele
Alternativen ausprobieren muss, um zu sagen klappt nicht!).

 Es gibt in meinem Keyring Einträge, in denen 2  und 2  vorkommen.
 Dann greift deine Rexexp nicht.

Hmmm, in meinem Keyring kommt das nicht vor. Wie sehen diese Eintraege denn
aus? Wenn Du mir das sagst, kann ich eine bessere Regexp angeben.

Das erste Beispiel war ad hoc (d.h. ich gebe zu: habe mir nicht die Specs
fuer den Keyring angesehen ;-). Die Eintraege nach UID ... scheinen mir
aber das zu sein, was in Emails in der From-Zeile steht, ggf. mit runden
Klammern fuer Kommentare, auch ohne ... wie ich gerade sehe, aber wohl
kaum mit zwei Paar spitzen Klammern, ... hmm, ... es sei denn, die stehen
in (...) im Kommentar?

Um also auch Zeilen zu parsen, die gar keine ... enthalten, muss das
Pattern aufwendiger werden. Wir naehern uns dann bald dem klassischen
Problem, Adressen nach RFC-2822 zu parsen. Die Loesung dazu geht in Jeffrey
Friedls hervorragendem Buch Mastering Regular Expressions ueber eine
komplette Buchseite ;-0

Wir koennen also zumindest schreiben:

  m/?([^[EMAIL PROTECTED]\s]+\.[^\s]+)?/

Damit matchen wir Email-artige Zeichenketten, vorzugsweise innerhalb der
spitzen Klammern, aber auch ohne diese. Auf jeden Fall aber nicht mehr
ueber zwei Klammerpaare hinweg. Und wir erwarten zumindest einen Punkt im
Domain-Teil (klappt dann nicht fuer halb spezifizierte interne Adressen,
aber aus dem Alter sollten wir raus sein).

--jc

P.S. Proof of concept attached ;-)

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin
#! /usr/bin/perl

while (DATA) {
  print $_;
  if ( m/?([^[EMAIL PROTECTED]\s]+\.[^\s]+)?/ ) {
print ok , $1, \n;
  } else {
print not ok\n;
  }
}

__END__
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
Real Name [EMAIL PROTECTED]
Real Nick  Name [EMAIL PROTECTED]
Real Nick Name [EMAIL PROTECTED] (and Comment)
Real (My Nick) Nick Name [EMAIL PROTECTED]
Real (auch @ RFC-2822) Nick Name [EMAIL PROTECTED]
(write [EMAIL PROTECTED] address) [EMAIL PROTECTED]
Uh, oh [EMAIL PROTECTED] [EMAIL PROTECTED]
[EMAIL PROTECTED] Uh, oh [EMAIL PROTECTED]


Re: kleines RegEx Problem

2006-05-25 Diskussionsfäden Juergen Christoffel
On Wed, May 24, 2006 at 12:06:39PM +0200, Markus Schulz wrote:
 Also, wenn mich meine Kenntnisse der Theoretischen Informatik nicht ganz 
 im Stich lassen ist das, was du semantisch möchtest, nicht machbar. 
 Weil es sich nicht mehr mit einer regulären Sprache (und damit 
 endlichem Automat bzw. regExp) erschlagen lassen kann.

Theoretisch hast Du Recht, aber praktisch sind die Regexp-Implementierungen
in der Regel nicht nicht mehr regulär denn sie enthalten z.B.
Rückwärtsreferenzen und sind damit kontext-sensitiv.

lilith[1541]: perl -ne 'print if /^([aeiou]).*\1$/'  /usr/share/dict/words | 
wc -l 
264

Das sind die Woerter, die mit demselben Vokal beginnen und enden.

--jc

-- 
  In theory, there is no difference between theory and practice. But, in
  practice, there is. -- Jan L.A. van de Snepscheut (1953-1994)


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Mutt Konfiguration

2006-05-24 Diskussionsfäden Juergen Christoffel
On Tue, May 23, 2006 at 04:14:46PM +0200, Udo Mueller wrote:
 * Juergen Christoffel schrieb [23-05-06 10:41]:
  
  Wenn Du nun z.B. ueber alle Adressen in Deiner Keychain iterierst, ...
 
 ... dürfte das Starten mutt einiges länger dauern, wenn die Trust-DB
 dabei gebaut bzw. aktualisiert wird.

Wenn man das einfach immer wieder berechnet, hast Du recht. Als ich die
... schrieb, hatte ich ueberlegt, ob ich noch auf's Caching hinweisen
sollte. 
 
Also hier fuer das Listen-Archiv: bei umfangreichen Daten die Ergebnisse
der Berechnung cachen und nur neu berechnen, wenn sich die Eingangsdaten
veraendert haben. Das heisst, im Script etwas der Art

cache=$HOME/.mutt-gpg
dbfile=$HOME/.gnupg/pubring.gpg

if [$cache -nt $dbfile ] ; then
  cat $cache
else
  # refresh cache
  ...
fi

Und wenn man wirklich oft neue Daten kriegt, dann kann man die Berechnungen
alle n Minuten durch die Crontab anwerfen und sie nicht mehr beim Start des
mutt machen.

--jc

P.S. Und im Anhang ein Script, dass die Eintraege fuer .muttrc erzeugt.

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin
#! /usr/bin/perl
#
# 2006-05-24 (JC)

use strict;

my $HOME=$ENV{'HOME'};
my $cache=$HOME/.mutt-gpg;
my $dbfile=$HOME/.gnupg/pubring.gpg;

# erzeuge cache file falls es nicht existiert
refresh_cache() unless -f $cache; 

# Index fuer mtime in der Liste, die stat liefert, siehe 'perldoc -f stat'
my $mtime = 9;

# cache refresh notwendig?
refresh_cache() unless (stat $cache)[$mtime]  (stat $dbfile)[$mtime];

open CACHE, $cache;
print CACHE;
close CACHE;

exit 0;

# refresh_cache: extrahiere Email-Adressen (in spitzen Klammern) aus der
# Liste, die gpg erzeugt und generiere daraus send-hooks fuer mutt.
sub refresh_cache {
  my %emails;

  open CACHE, $cache or warn $0: can't write cache: $!\n;
  open DB, /usr/bin/gpg --list-keys| or warn $0: can't read keys: $!\n;

  while (DB) {
if (m/([EMAIL PROTECTED])/) {
  next if $emails{$1}++;		# ignoriere doppelte Adressen
  print CACHE send-hook '~t $1'\t'set pgp_autoencrypt'\n;
}
  }

  close CACHE;
  close DB;
}


Re: Mutt Konfiguration

2006-05-23 Diskussionsfäden Juergen Christoffel
On Mon, May 22, 2006 at 11:42:53PM +0200, Martin Grandrath wrote:
 Hm, gerade das wollte ich vermeiden, dass ich anfange, eMail Adressen
 in der Config pflegen zu muessen. Werde mal sehen, ob man das nicht
 mit ein paar Zeilen Script hinbekommen kann.

Das sollte mit einem Script durchaus gehen. In meinem .muttrc steht zum
Beispiel

  source ~/scripts/muttrc|

und mit diesem Shell-Script generiere ich einfach einige Dinge fuer die
Konfiguration (z.B. die Farben, je nachdem, ob ich auf der Konsole oder
unter X arbeite oder aliases in Abhaengigkeit von der Maschine/Domain,
unter der ich gerade arbeite).

Wenn Du nun z.B. ueber alle Adressen in Deiner Keychain iterierst, ...

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Mutt Konfiguration

2006-05-23 Diskussionsfäden Juergen Christoffel
On Mon, May 22, 2006 at 01:07:50AM +0200, Martin Grandrath wrote:
 Und ich dachte schon, ich bin der einzige, der so denkt. ;-)

Sicher nicht. Nur nehmen manche so etwas halt als gegeben hin[*]... ;-)

 Super, danke! Ich habe das ein wenig abgewandelt, indem ich l~U
 verwende. Dann klappt's auch mit den Old Mails.

Gute Idee. Allerdings interpretiere ich intuitiv das Flag N als neu und
O als nicht so wichtig (weil ich die Message ja sonst schon angesehen
haette, als sie N war ;-) deshalb ist mir N lieber. Die wirklich neuen
sehe ich ja immer noch, wenn ich nach Datum sortieren lasse.

  BTW: mittels l. kriegst Du uebrigens wieder alle Messages zu sehen.
 
 Hm, leider nein. Es ist ein l~A noetig, aber das kann ich verschmerzen.

Das wundert mich. l. heisst, limitiere die Ansicht auf alle Message, die
das Pattern . matchen und das sollten alle sein. Allerdings habe ich in
meinem .muttrc auch l~A als Macro stehen:

  macro index .. l~A\nShow all messages
  macro index .a l~A\nShow all messages
  macro index .n l~N\nShow new messages
  ...

das ist schneller zu tippen und alle meine regulaeren Limits sind ueber .
erreichbar, was ich mir leichter merken kann.

--jc

[*] Meine Liste von Aenderungswuenschen (aka Verbesserungsvorschlaegen) ist
lang: z.B. Scripting (es gibt ein Beispiel, wo jemand einen
Perl-Interpreter eingebaut hat), Tags pro Message (a la RMAIL beim Emacs
oder del.icio.us  Co), ein abstrakteres Interface zu den Mailboxen, um sie
virtualisieren zu koennen, bessere (einfachere) Integration von PGP/GPG und
X.509 ... aber mutt funktioniert fuer mich trotzdem gut.

Ja, ich weiss, You have the Source, Luke aber auch Lukes Tag hat nur 24
Stunden und es gibt viele Programme mit Source... ;-/

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Sprache fü r GUI-Programmierung

2006-05-23 Diskussionsfäden Juergen Christoffel
On Sun, May 21, 2006 at 07:18:11AM +0200, gingupin wrote:
 da sich meine Firewall-Scripte in meinem Freundeskreis steigender
 Beliebtheit erfreuen, suche ich eine Programmiersprache die mir
 einen einfachen Weg ermöglicht, das Editieren meiner Config-Dateien
 über eine GUI mit Checkboxen, Radiobutton usw. zu realisieren.

Willst Du ihnen die Möglichkeit zum Editieren über's Web anbieten? Dann
schau' Dir die Optionen an, die Du dort hast.

Da Du aber auch GTK erwähntest, willst Du ihnen vermutlich ermöglichen,
Deine Scripts (ich nehme an, es handelt sich um
iptables-Konfigurationen?)lokal zu editieren. Dann bietet sich auch Curses
an. Curses ist durchaus nicht von gestern... man kann damit gute
Interfaces erzeugen, die halt nicht nur unter X sondern auch auf der
Konsole (und somit näher an iptables ;-) laufen.

Ich mache das in Perl, da gibt es ein Curses-Paket und dazu dann auch
Curses::UI und andere Pakete, die das Erstellen von Interfaces, Formularen
etc. vereinfachen. Schau' bei Interesse mal unter [1] und [2] nach.

--jc

[1] http://search.cpan.org/search?query=Cursesmode=all
[2] http://www.gnu.org/software/ncurses/

-- 
  A language that doesn't affect the way you think about programming, is
  not worth knowing.
-- Alan Perlis


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Thread-Hijacking

2006-05-21 Diskussionsfäden Juergen Christoffel
On Sun, May 21, 2006 at 02:12:25PM +0200, Rüdiger Noack wrote:
 Frank Terbeck wrote:
 Was in Gottes Namen ist am Scrollen per Tastatur pseudo?
 
 Man muss sich nicht an Begrifflichkeiten hochziehen

Nein, aber man sollte die richtigen Begriffe verwenden. In mutt scrolle
ich in der Regl nicht, sondern ich blättere mittels page-up oder
page-down (wahlweise auch halbe Seiten). Das meinstest Du evtl. mit
pseudo-scrollen?

 Das Scrollen mit dem Mausrad soll performanter sein als Navigation im
 vi? Oh mann...
 
 Jede Wette unter manchen Bedingungen: Anhaltspunktloses Suchen, 

Wenn _ich_ suche, aber nicht genau weiss, wie's geschrieben wurde, dann
suche ich mit regulären Ausdrücken. Das geht schnell durch beliebig lange
Texte. Und Programme wie mutt (oder less als Pager, der für beliebige
andere Programme zum blättern dienen kann) heben die gefundenen Stellen
farbig hervor, sodass ich ganz schnell sehe, ob und was ich gefunden habe.

 Querlesen, schnelle Richtungs- und Geschwindigkeitswechsel etc...

Hmm, meine Tasten zum Vor- und Zurückblättern sind [ und ] (auf einer
US-Tastatur) und da liegen dann zwei Finger drauf. Mit schnellen
Richtungswechseln habe ich da keine Probleme.

Zum Querlesen blättere ich auch gerne anstatt zu scrollen. Da wird jeder
andere Präferenzen haben, aber ich finde es störend, wenn ich beim Scrollen
mit der Maus erst wieder die Stelle suchen muss, an der ich weiterlesen
muss. Auch im Emacs unter X blättere ich eher, als dass ich scrolle.

 Wobei sicher auch hier wieder verschiedene Leute unterschiedliche 
 Erfahrungen gemacht haben.

Genau diese Erfahrungen prägen. Jeder gewöhnt sich an einen bestimmten
Arbeitsstil und der Versuch, zu einem anderen Stil zu wechseln gibt einem
zuerst das Gefühl, als habe man einen Arm gebrochen. Wenn das den
Diskussionsteilnehmern nicht bewusst ist, dann entstehen Flamewars.

 Glaube mir einfach oder nicht, ich kann mit dem vi umgehen - seit ca. 15 
 Jahren. Ich weiß, wovon ich rede.

15 Jahr mit dem vi? das ist hart... ;-) Ich weiss, wovon ich spreche, denn
ich kann mehr vi als die meisten Leute, die mir erklären wollen, dass ich
nicht den Emacs benutzen soll ;-)

Vermutlich nutzt Du keine GUI-Editoren, weil Dir die nicht mächtig genug
sind? So geht es mir auch mit Mail- oder Newsreadern.

 Ich sträube mich ja nur gegen fanatische Missionierung.

Ditto. Allerdings sehe ich gerne mal über den Tellerrand. Deshalb habe ich
GUI-Programme zur Genüge ausprobiert (auch RMAIL im Emacs als Zwitter) und
bin letzten Endes doch immer wieder bei Curses-Anwendungen gelandet, weil
die in der Praxis fast immer mächtiger sind. Also konfigurierbarer,
scriptable etc.

Wenn alle GUI-Programme via einheitlicher API scriptable und über
weitgehend einheitliche Tastenbefehle bedienbar wären, dann würde ich
sicher mehr davon benutzen. Apple hatte damals mit AppleScript (oder wie
immer das unter OS X jetzt heisst) nicht den schlechtesten Anfang gemacht.

--jc

P.S. Beim mutt sage ich ~bscroll um hier in der Liste alle Beiträge zu
sehen, die sich mit scrollen befassen, obwohl das Subject das nicht
vermuten lässt. Wie sagst Du das eigentlich Deinem GUI-Programm?

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Scrollen auf der Console (was: Re: Thread-Hijacking)

2006-05-21 Diskussionsfäden Juergen Christoffel
On Sun, May 21, 2006 at 10:08:37PM +0200, Christian Frommeyer wrote:
 Das geht auf manchen Systemen. Ich hab schon zu oft erlebt, das Systeme 
 einfach zu langsam waren um die Requests zu bearbeiten und dann viel zu 
 weit gescrollt haben. Da wünsche ich mir dann oft einen Scrollbalken um 
 einfach mal auf 2/3 oder so scrollen zu können.

Das kann mutt nicht, aber andere Programme können das sehr gut. Beim less
(den ich bei Bedarf auch aus mutt heraus aufrufen kann) kann ich go to
line oder goto to percentage angeben, z.B. 34p um das erste Drittel zu
überspringen. Der emacs kann das auch (z.B. M-x view-goto-percent) und der
vi kann's vermutlich ebenfalls.

Mit einem Scrollbalken exakt 34% zu überspringen (wenn man's denn braucht)
ist sicher nicht so einfach.

Wie ich eben schon in einer anderen Email schrieb, blättere ich aber selten
einfach so vor mich hin, sondern benutze reguläre Ausdrücke, um bestimmte
Stellen zu finden. Zum Beispiel eben einfach /go.*to in der Manpage des
less, um herauszufinden, welche Optionen er mir da bietet (die ich auch
nicht alle auswendig kenne, das mit den Prozent war mir auch neu ;-).

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Mutt Konfiguration

2006-05-21 Diskussionsfäden Juergen Christoffel
On Sun, May 21, 2006 at 07:12:14PM +0200, Martin Grandrath wrote:
 = [ Ein-Tasten-Bedienung ] =
 Ich moechte neue Mails gerne mit Hilfe nur einer Taste lesen
 koennen. Leider springt mutt beim Scrollen mit der Space-Taste vom
 Ende einer Mail zur naechsten und nicht zur naechsten /ungelesenen/,
 so dass ich immer noch zusaetzlich die Tab-Taste bemuehen
 muss. (Wie) kann ich das Gewuenschte einstellen?

Ja, wenn man space so konfigurieren koennte, das wahlweise next oder
next-unread geoeffnet wuerde, das waere nett. 

Work-around: wenn Du zuerst l~N sagst, hast Du nur die neuen Emails
selektiert. Wenn Du jetzt mit space liest, kriegst Du auch nur die
naechste neue Email zu sehen. In meinem .muttrc steht dann noch:

  unset mark_old# don't mark unread messages as old on quit

das sorgt dafuer, dass beim Verlassen der Mailbox die neuen message auch
als neu markiert bleiben. 

BTW: mittels l. kriegst Du uebrigens wieder alle Messages zu sehen.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Thread-Hijacking

2006-05-20 Diskussionsfäden Juergen Christoffel
On Sat, May 20, 2006 at 01:35:41PM +0200, Hannes H. wrote:
 Zu dem Thema hätte ich noch eine Frage: Bei vielen anderen
 Mailinglists wird eine Antwort - wenn man auf Antworten klickt -
 autmatisch an die Liste gesendet und nicht an den Ersteller des
 Emails. 

Das liegt ueberlicherweise daran, dass diese Listen den Header Reply-To:
listenadresse einbauen. Das ist aber aus mehreren Gruenden schlecht.
Lies' nach unter [1] oder [2].

 Warum ist das hier nicht auch so? Das irrediert mich auch
 manchmal, wenn ich beim Senden nicht genau aufpassen und fällt mir
 erst recht spät auf.

Warum? Weil sich das so gehoert. Wenn's Probleme macht, liegt das am
suboptimalen MUA (um das mal freundlich zu sagen ;-). Gute MUAs bieten
sowohl ein Kommando Reply als auch ein Reply-to-All und sie erkennen
den Header Mail-Followup-To: mit dem man den gewuenschten Effekt
ordentlich erreichen kann, siehe z.B. [3].

--jc

[1] http://www.unicom.com/pw/reply-to-harmful.html 
[2] http://www.noserose.net/e/replymung.html
[3] http://cr.yp.to/proto/replyto.html

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Thread-Hijacking

2006-05-20 Diskussionsfäden Juergen Christoffel
On Sat, May 20, 2006 at 03:14:07PM +0200, Hannes H. wrote:
 Dann muss ich wohl damit leben, dass ich einen schlechten(TM) MUA
 habe, da ich nicht gewillt bin im 21. Jahrhundert meine Mails mit
 einem Consolen-Programm zu lesen ...

Wenn Du meinst, dass Du nur mit GUI-Programmen gluecklich wirst, darfst Du
natuerlich damit gluecklich werden. Trotzdem darf ich widersprechen. Denn
Konsolenprogramme sind alles andere als von gestern. Genausowenig, wie
Kochen durch das Aufwaermen von Fertiggerichten abgeloest wurde, wenn man
schmackhaftes Essen haben moechte. ;-)

Zum einen sind die meisten Konsolenprogramme ueblicherweise deutlich
vielseitiger zu konfigurieren und zu benutzen. So filtere ich meine
eingehenden Emails mittels procmail, razor, spamassassin (alles
Konsolenprogramme, wenn Du so willst) bevor sie mein MUA zur Ansicht
kriegt. Und MUAs wie dem mutt kann ich sehr leicht so Dinge sagen wie

  my_hdr X-Message-Flag: Bitte senden Sie mir nur Text-Emails oder PDF-Anhaenge!
  folder-hook incoming/debian* my_hdr Mail-Followup-To: 
debian-user-german@lists.debian.org

damit die entsprechenden Header immer und/oder per Mailingliste
hinzugefuegt werden. Ebenso leicht faellt es mir damit, N Messages
gleichzeitig mit einem anderen Programm zu analysieren oder zu bearbeiten.

Zum anderen sind Konsolenprogramme auch gut ueber's Netzwerk zu benutzen.
Ich kann mit mutt etc. problemlos ueber eine DSL-Verbindung (oder sogar
ISDN) auf einer Maschine in der Firma oder einem Root-Server arbeiten.
K-IrgendWas oder Mozilla-Thunderbird, oder... machen da alles andere als
Spass.

Sichtweisen wie Deine kommen uebrigens immer mal wieder auf, d.h. sind fast
so alt wie Konsolenprogramme ;-) Frueher zum Beispiel gab's das schon mal
mit TeX/LaTeX wo viele Leuten mein(t)en, sie koennten mit Word alles viel
besser.

Abgesehen von wirklich leistungsfaehigen und tragbaren Laptops, Flatrates
und WLAN sind die hervorstechenden Errungenschaften des 21. Jahrhundert
bisher so Dinge wie Top-Posts (aka TOFU) oder Me too als .doc, .html,
oder .pdf und so einige andere Unsitten mehr.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: MUA-war

2006-05-20 Diskussionsfäden Juergen Christoffel
On Sat, May 20, 2006 at 06:02:25PM +0200, Robert Giebel wrote:
 Ob indirektes Thread-Hijacking durch Topic-Wechsel besser ist? ;)

Nur dann, wenn man zumindest das Subject anpasst, wie Du's ja brav getan
hast ;-)

Im Ernst: das geschieht meist dann, wenn in einer Email mehrere thematisch
verschiedene Fragen auftauchen. Da finde ich einen Wechsel des Subjects
unter Beibehaltung des Threads akzeptabel. YMMV.

--jc

-- 
  Ignorance more frequently begets confidence than does knowledge.
-- Charles Darwin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Dead keys mit emacs -nw

2006-04-25 Diskussionsfäden Juergen Christoffel
On Fri, Apr 21, 2006 at 11:53:24PM +0200, Björn Beckmann wrote:
 ich habe folgendes Problem: Ich habe eine US-Tastatur und möchte
 (zunächst) im emacs -nw über die dead keys Umlaute und dergleichen
 eingeben können.

Keine Ahnung, wie's mit dead keys geht, sorry.

 Es klappt im xterm und auch im emacs. Rufe ich im xterm aber emacs -nw
 auf, so rufen die dead keys bei mir völlig ungewollte Effekte hervor,
 z.B. wird ispell gestartet, wenn ich ¨ gefolgt vom a eintippe, ich
 hätte aber gerne das ä. Das Anzeigen der Zeichen klappt allerdings
 problemlos... weiß jemand weiter?

Du möchtest Dich aber eventuell mal mit den Konzepten input method und
coding system vertraut machen? Na ja, möchten ist sicher nicht das
richtige Wort ;-/

Dann gibt es C-h C (M-x describe-coding-system) bzw. C-h I (M-x
describe-input-method), die geben Dir erste Hinweise.

C-\ (M-x toogle-input-method) schaltet das Eingabesystem um. Danach kann
ich z.B. 'a' tippen um ein 'ä' zu erhalten.

In Deinem .emacs kannst Du das ggf. geeignet vorwählen:

 ;; see M-x list-coding-systems 

 ; (set-keyboard-coding-system 'latin-9) ; for _input_  / C-x RET k 

 ; (set-terminal-coding-system 'latin-9) ; for _output_ / C-x RET t 


In dem Zusammenhang kommen dann ggf. Überraschungen beim cut/copy/paste mit
der Maus auf Dich zu. Denn je nach Eingabesystem werden die Umlaute als
Metazeichen oder als echte Umlaute behandelt[*].

Da hilft es, sich die
Funktion set-selection-coding-system anzusehen. bei mir steht im .emacs:

(cond (window-system
...
  (set-selection-coding-system 'compound-text)

Anstatt 'compound-text gibt es auch andere Optionen, z.B.
'compound-text-with-extensions -- Emacs (C-h i) und Google helfen Dir da
weiter.

Das sollte eigentlich alles mal ordentlich und systematisch aufgeschrieben
werden... aber der Tag hat nur 24 Stunden...

--jc

[*] Die sieben bis acht Bit sind halt ein bisschen wenig. In einem
frueheren Leben habe ich mal an Lisp-Maschinen gearbeitet. die hatten das
sogenannte Space Cadet Keyboard das hatte Control, Meta, Super und
Hyper-Tasten und die wurden alle ordentlich kodiert, anstatt sie auf ASCII
abzubilden. Don Knuth erwähnt das Keyboard in seinem TeX-Book:

  An extended ASCII code intended for text editing and interactive
  computing was developed at several universities about 1965, and for many
  years there have been terminals in use at Stanford, MIT,
  Carnegie-Mellong, and elsewhere that have 120 or 121 symbolcs, not just
  95. Aficionados of these keyboards (like the author of this book) are
  loath to give up their extra characters; [...] -- Don Knuth, The TeXbook,
  p. 368.

Cf. http://world.std.com/~jdostale/kbd/SpaceCadet.html und
http://www.abstractscience.freeserve.co.uk/symbolics/photos/IO/index.html

-- 
  In zweifelhaften Fällen entscheide man sich für das Richtige.
-- Karl Kraus (1874-1936) 


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: punkte zählen

2006-02-25 Diskussionsfäden Juergen Christoffel
On Wed, Feb 22, 2006 at 04:46:47PM +, Joerg Sommer wrote:
 Das Verbiegen von IFS ist also nicht lokal für diese Zeile, da es
 keinen Befehl gibt, auf den es sich beschränken könnte. Wow, diese
 Zeile ist in meinen Augen hochgradig gefährlich, weil sie etwas
 suggeriert, das aber in keinster Weise so ist.

Guter Hinweis, danke. Das zeigt, das schnell getippte Beispiele noch lange
kein guter Code sind. In Produktionsscripts nutze ich auch entweder

OFS=$IFS
IFS=.
A=(a.b.c)
IFS=$OFS

oder schreibe aufwendigere Sachen direkt in Perl, weil Larry Wall zurecht
mal bemerkte It is easier to port a shell than a shell script.

--jc

-- 
  In zweifelhaften Fällen entscheide man sich für das Richtige.
-- Karl Kraus (1874-1936) 


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: sshd key ./. pam_abl

2006-02-15 Diskussionsfäden Juergen Christoffel
On Wed, Feb 15, 2006 at 07:22:31AM +0100, Michael Gustav Simon wrote:
 Wer hat wie sshd abgesichert und warum?

Mein sshd ist durch /etc/hosts.allow bzw. /etc/hosts.deny zusaetzlich
abgesichert. In deny steht ALL:ALL und in allow erlaube ich den
Zugriff nur von den Netzen bzw. Adressen aus, von denen aus ich zugreife.

Warum? Wenn ganz Brasilien/China/Korea nicht durch /etc/hosts.allow kommt,
hat der Server etwas mehr Ruhe.

--jc

-- 
  In zweifelhaften Fällen entscheide man sich für das Richtige.
-- Karl Kraus (1874-1936) 


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: punkte zählen

2006-02-15 Diskussionsfäden Juergen Christoffel
On Tue, Feb 14, 2006 at 05:51:10PM +, Joerg Sommer wrote:
 Juergen Christoffel [EMAIL PROTECTED] wrote:
  Du willst nicht ernsthaft die Geschwindigkeit zweier Kommando-Interpreter
  anhand einer Primzahl-Berechnung vergleichen...
 
 Nicht? Was wäre dann ein geeigneter Test?

Gute Frage und schwer zu beantworten, denn es ist leichter zu zeigen, dass
Primzahlen kein guter Test sind, als einen guten Test anzugeben. Das ist
wie mit dem Kochen, auch da ist es leichter ein angebranntes Gericht zu
erkennen als ein gutes zu kochen ;-)

Warum ist ein Primzahltest kein besonders guter Test fuer eine Shell? Eine
Shell ist ein Kommando-Interpreter, der im wesentlichen Eingaben
analysiert, die resultierenden externen Kommandos aufruft, auf deren Ende
wartet und dann das Ergebnis praesentiert bzw. intern abspeichert. Das
koennte eine Shell selbst dann noch gut und flott, wenn sie mit
BCD-Arithmetik oder verketteten Listen aus Ziffern arbeiten wuerde.

Da Shells, im Gegensatz zu Fortran oder C nicht primaer fuer Arithemtik
entworfen wurden, wissen wir nicht, ob die interne Arithmetik auch nur
halbwegs auf Geschwindigkeit hin ausgelegt ist.

Was waere ein guter Test? Da die meisten Shellscripts externe Kommandos
aufrufen (selbst ein [...] ruft ja /bin/test auf) und auf die warten,
haengt die Performance eines Scripts nicht unwesentlich von diesen
Kommandos ab. Da Shellscripte eben eine Mischung aus interner Verarbeitung
und externen Kommandos sind, ist es schwer, nur die Shell selbst zu testen.
Und es entspraeche auch nicht unbedingt den realen Anwendungen.

Und selbst wenn eine andere Shell schneller als die zsh waere, die ich
benutze, waere mir in der interaktiven Benutzung der Komfort z.B. der
Completion oder der mehrzeiligen History-Edits wichtiger. Denn wenn es
zeitkritisch wird, steige ich sowieso auf andere Sprachen um :-)

--jc

-- 
  In zweifelhaften Fällen entscheide man sich für das Richtige.
-- Karl Kraus (1874-1936) 


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Frage zu convert aus imagemagick und Dateinamen

2006-02-14 Diskussionsfäden Juergen Christoffel
On Tue, Feb 14, 2006 at 10:39:49AM +0100, Gebhard Dettmar wrote:
 Natürlich habe ich mir die angeguckt - und eben nur diesen Singular-Fall 
 gesehen, der in der Realität wohl nie auftritt - jedenfalls nicht bei 
 thumbnails. 

Da unterscheiden sich Deine und meine Realitaet aber gewaltig. Ich
konvertiere sehr haeufig ein File nach dem andern in einer Schleife. Und
das, was da gemacht werden soll, habe ich einfach in ein Shellscript
gepackt, dass ich mit den Input-Images als Parameter aufrufe.

 Und da er mehrere input-files mit *jpg nimmt, wäre nur noch 
 die Frage, wie die Outputfiles zu bestimmen sind (ohne for, pipes etc.). 

Nein, es waere zu klaeren, was denn die Semantik bei multiplen Input-Files
ist. ImageMagick wird ziemlich komplex, wenn man mit multiplen Inputs
arbeitet und die Dokumentation ist da tatsaechlich nicht immer so
hilfreich.

Ich weiss nicht, welche Version Du verwendest. Ist aber auch nicht so
wichtig. Nur: in der aktuellen Version 6 ist die Verarbeitung der
Kommandozeile konsistent gemacht worden, was vorher nicht der Fall war.
Siehe unten.

 Was passiert, wenn man keine angibt, habe ich in der letzten Mail 
 geschildert - jedenfalls nicht Missing output-file name o.s.ä. - die 
 Manpage ist da also unvollständig.

Jein. Convert ist ein sehr komplexes Kommando, das u.a. auch Animationen
erzeugen kann. Und Filenamen mit einem Index in eckigen Klammern deuten IMO
darauf hin, das er aus irgend einem Grund Subimages fuer Animationen
erzeugt. Ich vermute mal (geraten) das das Zwischenfiles sind, die convert
erzeugt dann aber nicht weiter verarbeitet, weil kein entsprechender
Operator folgt.

Wenn Du convert -help aufrufst, wirst Du folgendes sehen:

  Usage: convert [options ...] file [ [options ...] file ...] [options ...] file
  ...

was uns allerdings auch nicht so richtig weiter hilft ;-0 Die Files
koennten hier, je nach Option, horizontal oder vertikal hintereinander
geklebt werden oder in ein animiertes GIF gepackt werden. Was jetzt eine
Option macht, naemlich Dein -resize, wenn danach mehrere Images angegeben
werden, steht nicht in der Manpage.

Seit der Version 6 sieht ImageMagick Postfix-Operatoren vor, also

  command image1 -operator1 image2 -operator2 ...  out-image

und es arbeitet Prefix-Operatoren

  command -operator image1 out-image

momentan noch als Legacy-Kommando ab.

Tip: bei Anthony Thyssen findest Du sehr gute Anleitungen, vor allem unter
basics Hinweise auf die Probleme der Abbarbeitung der Kommandozeile in
frueheren Versionen und der bereinigten Logik in Version 6:

http://www.cit.gu.edu.au/~anthony/graphics/imagick6/
http://www.cit.gu.edu.au/~anthony/graphics/imagick6/basics/

Und hier findest Du die offiziellen Manpages zu ImageMagick6:

http://www.imagemagick.org/script/convert.php
http://www.imagemagick.org/script/command-line-processing.php

 Aber das hab ich doch gemacht (nur unschöner). Mach dir mal einen 
 Testordner mit 5 jpgs, dann wirst du sehn, dass convert dir nur 4 
 thumbnails fabriziert und das muss irgendwas mit der Verarbeitung durch 
 die bash zu tun haben.

Ja, passiert bei mir auch. Nein, es ist convert, dass nur vier Thumbnails
produziert, das hat nichts mit der Bash zu tun.

Ich verstehe nicht, was Dich an der for-Schleife stoert. Es muss wirklich
nicht immer alles in einer Zeile stehen. Das ist oft ein Zeichen von Sturm
und Drang, selten aber von ordentlicher Software. ;-)

 Hmm, sorry, ich frag vorsichtshalber noch mal nach: ${f} müsste gleich $f 
 sein und ${f%...} ist das  shortest matching  pattern (the  ``%'' case), 
 das du benutzt, damit du -t (oder -thumb oder was auch immer) zwischen 
 Namen und Endung setzen kannst?

Ja, %, %%, #, und ## sind Operatoren innerhalb der geschweiften Klammern,
mit denen man Prefixe oder Suffixe von Strings entfernen kann. Und
Hilfsvariablen wie $g sind kein Umweg, sondern machen Scripts oft
uebersichtlicher.

Zu convert noch einen Tip: 

convert -size 100x100 image1 -resize 100x100 +profile '*' ...

Das -size sagt dem JPG-Parser, dass er nicht mit voller Aufloesung beim
Lesen des Inputfiles arbeiten muss, das +profile loescht das EXIF-Profile
des Inputfiles (sofern vorhanden), das sonst ggf. mit im Thumbnail landet
und es unnoetig vergroessert.

--jc

-- 
  In zweifelhaften Fällen entscheide man sich für das Richtige.
-- Karl Kraus (1874-1936) 


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: punkte zählen

2006-02-14 Diskussionsfäden Juergen Christoffel
On Tue, Feb 14, 2006 at 06:03:13PM +, Joerg Sommer wrote:
 Für mein Verständnis ist der zweite Teil (A=...) kein Kommando sondern
 eine Variablenzuweisung. 

Die Shell verarbeitet nach dem Parsen und Expandieren einfach Listen von
commands. Und ein command kann sowohl eine Zuweisung als auch ein
Aufruf wie ls sein. Eine Syntax der klassischen Bourne-Shell gibt's in
einer klassischen Intro von Stephen Bourne selbst. Online z.B. unter
http://steve-parker.org/sh/bourne.shtml

Stephen Bourne sagt in dem Paper im Abschnitt 3.0 Keyword paramaters:

  Shell variables may be given values by assignment or when a shell
  procedure is invoked. An argument to a shell procedure of the form
  name=value that precedes the command name causes value to be assigned to
  name before execution of the procedure begins. The value of name in the
  invoking shell is not affected. For example,

user=fred command

  will execute command with user set to fred. The -k flag causes arguments
  of the form name=value to be interpreted in this way anywhere in the
  argument list. Such names are sometimes called keyword parameters. If any
  arguments remain they are available as positional parameters $1, $2, 

Offensichtlich handhaben das die modernen Varianten der Bourne-Shell immer
noch so. Die Manpage der Bash sagt bei mir dazu:

  The environment for any simple command or function may be augmented
  temporarily by prefixing it with parameter assignments, as described
  above in PARAMETERS. These assignment statements affect only the
  environment seen by that command.

  If the -k option is set (see the set builtin command below), then all
  parameter assignments are placed in the environment for a command, not
  just those that precede the command name.

 greifen. Andernfalls müsste auch IFS=. set $A funktionieren, was es bei
 mir nicht tut.

In diesem Fall ist IFS=. ja kein Keyword-Parameter, sondern Bestandteil des
Strings selbst. Und der evaluiert letzten Endes nicht zu einem gueltigen
command:

lilith[1628]: bash
[EMAIL PROTECTED] jc]$ A=foo.bar.baz
[EMAIL PROTECTED] jc]$ IFS=. set $A
bash: IFS=. set foo.bar.baz: command not found

--jc

-- 
  In zweifelhaften Fällen entscheide man sich für das Richtige.
-- Karl Kraus (1874-1936) 


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Frage zu convert aus imagemagick und Dateinamen

2006-02-14 Diskussionsfäden Juergen Christoffel
On Mon, Feb 13, 2006 at 09:31:09PM +0100, Christian Schult wrote:
 Also da fehlt doch wiederum der Input-Dateiname. Und es geht auch
 ohne den Umweg über $g:

Ja, stimmt, der Input fehlte. Das $g war aber nicht als Umweg gedacht,
sondern der Uebersichtlichkeit wegen dort.

 Und wenn's wirklich viele Dateien sind die Ausgabe von find in ein
 while-read-Konstrukt pipen.

Wenn's so viele Files sind, dass die Shell ueber expansion too long
klagt, dann bevorzuge ich ein find ... | xargs ... aber auch fuer die
Shell gilt das Perl-Motto There's more than one way to do it...

Vorteil der Kombination find/xargs ist, dass find eine Option -print0 hat
und xargs passend dazu eine Option -0 und man dann auch problemlos Files
mit Whitespace im Namen verarbeiten kann.

Ob man auch NUL in IFS stecken koennte, um dann mit read den Output von
-print0 zu bearbeiten? Aber das fuehrt uns jetzt vom ImageMagick-Problem
weit weg ;-)

--jc

-- 
  In zweifelhaften Fällen entscheide man sich für das Richtige.
-- Karl Kraus (1874-1936) 


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: punkte zählen

2006-02-13 Diskussionsfäden Juergen Christoffel
On Sat, Feb 11, 2006 at 09:34:40PM +, Joerg Sommer wrote:
 Das sollte an dieser Stelle kein Problem sein, da IFS nur für diesen
 einen Befehl verbogen wird. 

Das sollte nicht nur, das ist an der Stelle kein Problem, weil es works as
designed.

 Aber eigentlich wird eine Variablenzuweisung (A=...) auch nicht als
 Befehl angesehen. Eigentlich sollte es nicht funktionieren, aber es tut
 es -- ich weiß nicht warum. Vielleicht eine Spezialität der Bash.

Nein, keine Spezialität der Bash sondern eher ein ausbaubares Verständnis
der klassischen Bourne-Shells? ;-)

Eine Bourne-Shell beachtet IFS beim Parsen von mittels read gelesenem
Input, ebenso beim Parsen des Outputs einer Command Substitution (also
Backquotes bzw. $(...) in der modernen Form) und bei der Substitution von
Variablen. Und die rechte Seite bei Zuweisungen wird nach den Regeln der
Variablensubstitution ausgewertet.

Beispiele sind kein Beweis, aber trotzdem welche. Beide unter OSF/1 (bzw.
True64 UNIX, oder wie immer es jetzt gerade heisst), um Linux-Spezifika zu
vermeiden.

Einmal eine klassische Bourne-Shell:

  $ IFS=. A=foo.bar.baz
  $ for w in $A ; do echo $w; done
  foo
  bar
  baz


Die POSIX-konforme Shell dort:

  /usr/bin/posix/sh
  $ IFS=. A=foo.bar.baz
  $ for w in $A ; do echo $w; done
  foo
  bar
  baz

Die Manpage der Bourne-Shell meint:

  IFS The characters that are internal field separators (the characters
  that the shell uses during interpretation of spaces, see
  Interpretation of Spaces). The shell initially sets IFS to include
  the space, tab, and newline characters.

  Interpretation of Spaces

After the shell performs variable and command substitution, it scans
the results for internal field separators (those defined in the IFS
shell variable, see Variables Used by the Shell). It splits the line
into distinct words at each place it finds one of these characters.

POSIX mag da[1] etwas anderes zu sagen, aber wenn ich versuche
POSIX-Standards zu lesen, brauche ich anschliessend immer ein Aspirin und
bin meist nicht wirklich schlauer als vorher. ;-/

--jc

[1] http://www.opengroup.org/onlinepubs/007908799/xcu/chap2.html#tag_001_006_005

-- 
  In zweifelhaften Fällen entscheide man sich für das Richtige.
-- Karl Kraus (1874-1936) 


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: punkte zählen

2006-02-13 Diskussionsfäden Juergen Christoffel
On Fri, Feb 10, 2006 at 06:42:43PM +, Joerg Sommer wrote:
 Kompatibel ist die Bash, aber nicht gerade schnell
 
 $ /usr/bin/time -p bash prim.sh 1000

Du willst nicht ernsthaft die Geschwindigkeit zweier Kommando-Interpreter
anhand einer Primzahl-Berechnung vergleichen...

--jc

-- 
  In zweifelhaften Fällen entscheide man sich für das Richtige.
-- Karl Kraus (1874-1936) 


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Frage zu convert aus imagemagick und Dateinamen

2006-02-13 Diskussionsfäden Juergen Christoffel
On Mon, Feb 13, 2006 at 01:54:58PM +0100, Gebhard Dettmar wrote:
 for i in `ls *jpg`; do convert -resize 100x100 $i thumbs$i; done

Vorab: nicht `ls *.jpg` sondern for f in *jpg; do

Den Stern expandiert in beiden Faellen die Shell, also brauchst dafuer Du
kein ls dazwischen.

 Wieso nimmt convert nicht den jeweiligen Dateinamen, den ihm *jpg
 liefert?

Hast Du Dir schon mal die Manualpage dazu angesehen? Dort steht

  SYNOPSIS
   convert input-file [options] output-file

Also erwartet convert genau ein Inputfile, mehrere Optionen und dann genau
ein Outputfile. Sonst stuende dort der Plural {input,output}-files.

 Ist da die bash oder convert für verantwortlich?

Weder noch. Die tun, was Du ihnen sagst, also bist Du dafuer
verantwortlich. Du kannst beispielsweise folgendes machen (falls Deine
Shell die Bash o.ae. ist):

for f in *jpg ; do
  g=${f%.jpg}
  convert -resize 100x100 $g-t.jpg
done

Hier kriegt die Variable g den Filenamen ohne die Endung .jpg und dann
kannst Du als output-file bei convert z.B. die Endung -t.jpg anhaengen.

Tip: schau' in der Manualpage der Shell nach, was ${f} und ${f%...} machen,
damit Du verstehen lernst.

--jc

-- 
  In zweifelhaften Fällen entscheide man sich für das Richtige.
-- Karl Kraus (1874-1936) 


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: punkte zählen

2006-02-13 Diskussionsfäden Juergen Christoffel
On Mon, Feb 13, 2006 at 04:00:35PM +0100, Andreas Loesch wrote:
 man beachte den Smily :) das kann natürlich bei mir auch an weniger 
 guten Shell-Fähigkeiten liegen, aber bei komplexeren Problemen, bei 
 denen die Geschwindigkeitsunterschiede dann relevant werden, kann ich 
 z.B. mit perl auch deutlich eleganter programmieren (OK, obs dann 
 schneller ist steht auf einem anderen Blatt aber es ist für mich 
 schöner)...

In der Regel wird's schneller sein, denn die Shells interpretieren jede
Zeile neu (was bei den ueblichen Anwendungsfaellen auch oft Sinn macht),
waehrend Perl alles erst einmal in Bytecode (genauer: einen Parsetree)
uebersetzt und den dann abarbeitet.

Es lohnt sich immer, da jeweils passende Werkzeug zu nutzen. Man hat ja
auch im real life sowohl Hammer, Zange als auch diverse Sorten
Schraubenzieher (ja, ich weiss; Dreher ;-) und nicht nur eines. Na ja,
zumindest die ohne zwei linke Haende ;-)

--jc

-- 
  Reality is that which, when you stop believing in it, does not go away.
-- Philip K. Dick


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: punkte zählen

2006-02-10 Diskussionsfäden Juergen Christoffel
On Fri, Feb 10, 2006 at 09:18:18AM +0100, Andreas Loesch wrote:
 egal, hier mal ein Beispiel, wie man es rein mit Bash-Mitteln machen 
 könnte. Als Beschreibung der Struktur sind die entsprechenden Regulären 
 Ausdrücke drin: 

Sorry dass ich widerspreche, aber $(expr ...) gilt nicht mehr als rein mit
Bash-Mitteln, da Du ja ein externes Programm zuhilfe nimmst.

Ganz in der Bash geht das trotzdem und sogar ohne Regexps:

F=foo.bar.baz
G=''

while [[ $G != $F ]] ; do
  G=${F%%.*}
  F=${F#*.}
  echo G=$G -- F=$F
done

Ausgabe ist:

G=foo -- F=bar.baz
G=bar -- F=baz
G=baz -- F=baz

Daraus jetzt die Anzahl Punkte im String herzuleiten, ueberlasse ich den
geneigten Lesern...

--jc

P.S. Eleganter geht das natuerlich in einer Zeile Perl, aber das ist dann
 ja auch nicht mehr reine Bash ;-)

  echo foo.bar.baz | perl -le 'print s/\.//g'
  2

Wie funktioniert das? Die in Perl eingebaute Substitution liefert als
Funktionswert die Anzahl der Ersetzungen zurueck, die dann ausgegeben wird.

-- 
  Der Achte Deutsche Perl-Workshop findet dieses Jahr vom 01.03. bis
  03.03. an der Ruhr-Uni Bochum statt, siehe www.perl-workshop.de


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: punkte zählen

2006-02-10 Diskussionsfäden Juergen Christoffel
On Fri, Feb 10, 2006 at 01:33:53PM +0100, Andreas Loesch wrote:
 Wir reden hier ja alle nur von der Bash, aber der Einsatz von expr 
 müsste das doch auch für die Shells unter den großen Unixen fit 
 machen, oder? so dass das als kompatible Variante evtl. noch 
 interessant wäre.

Da bin ich mir nicht sicher. Es ist zwar lange her, aber ich erinnere mich
an ein Paper von Henry Spencer und Geoff Collyer (die Autoren von C News,
wer ist alt genug, um sich daran zu erinnern? ;-) in dem sie beschrieben,
wie schwer es ist, Shell-Scripte zu schreiben, die wirklich portabel sind. 

Und von Larry Wall stammt It is easier to port a shell than a shell
script. Das mag zu Beginn des 21. Jahrhunderts nicht mehr ganz so schwer
sein, aber IMHO schadet es nie, sich zu beschraenken.

Aber mit externen Hilfen geht's auch in einer Zeile:

  echo foo.bar.baz | sed -e 's/\./\n/g' | wc -l
  3

Nochmal zur Bash: mittels IFS (siehe man bash) kann man die Strings in
einen Array aufspalten und dann dessen Elemente zaehlen:

  IFS=. A=(foo.bar.baz)
  echo $A | wc -w
  3

--jc

P.S. Die Bash hat uebrigens auch ein expr eingebaut, siehe ((...)) aber da
  ist dann der Match-Operator nicht dabei.

P.S.S. bevor ich's vergessen: fuer interaktiven Gebrauch ist die zsh (aka
  Z-Shell) viel schoener als die Bash ;-) ;-)

-- 
  In zweifelhaften Fällen entscheide man sich für das Richtige.
-- Karl Kraus (1874-1936) 


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Bash, Shells, POSIX (was: R e: punkte zählen)

2006-02-10 Diskussionsfäden Juergen Christoffel
On Fri, Feb 10, 2006 at 05:53:30PM +0100, Andreas Loesch wrote:
 quote
 Bash is intended to be a conformant implementation of the IEEE POSIX 
 Shell and Tools specification (IEEE Working Group 1003.2).
 /quote

Die Bash verhaelt sich POSIX-konform, wenn man sie mit --posix startet oder
als sh aufruft. Ob POSIX-Konformitaet unbedingt erstrebenswert ist, ist
ein anderes Thema. Bei der Diskussion kaemen wir aber weit vom Thema ab.

Aus man bash:

  If bash is invoked with the name sh, it tries to mimic the startup
  behavior of historical versions of sh as closely as possible, while
  conforming to the POSIX standard as well.

Wenn ich dann aber anfange, mir Gedanken wegen der Geschwindigkeit der Bash
zu machen, wechsle ich sowieso zu einer anderen Scriptsprache wie Perl. Man
sollte immer das passende Werkzeug auswaehlen. Shells benutze ich
vorwiegend wegen ihrer interaktiven Features und in Scripts noch, solange
ich Shell-typische Sachen automatisiere.

Und interaktiv am brauchbarsten finde ich die zsh. Your mileage may vary,
of course.

--jc

P.S. Ich habe mal das Subject an's Thema angepasst.

-- 
   A Subject: line is a terrible thing to waste. Your Subject: line should
   be a concise and explicit summary of the situation.
-- David N. Blank-Edelman in Perl for System Administration


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)