netzstaub

beatz & funkz

Monday, February 28, 2005

Links

Professionalism in Programming (oh mein Gott ist C++ grausam)

Al Stevens interviews Alex Stepanov

Coroutines in C

National Academies Press (ganz viele Bücher zum Zusammenkleben…

gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=output.pdf in1.pdf in2.pdf in3.pdf

you get the idea)

Mendel in the Kitchen (noch nicht gelesen)

Pattern Matching in LISP (aus PAIP)

posted by manuel at 10:34 pm  

Sunday, February 27, 2005

Leechskript

Blackhat

Passend zu dem obigen Proxytestskript hier das passende Leechskript. Es nimmt als Input eine Reihe von URLs, und als erster Parameter eine Datei mit einer Liste von Proxies, und verteilt das Leechen der URLs auf die Proxies. Kommt ein 404, legt es eine leere Datei im Verzeichnis 404/ an, um zu kennzeichnen, das dort nichts zu holen ist. Das Skript selber ist so ein hässliches Bash-chaos, aber sowas habe ich schon lange gebraucht, und ich denke, es geht einigen Leuten so. Zusätzlich kann man auf der Kommandozeile noch weitere Flags angeben, die an wget weitergereicht werden.

#!/bin/sh

PROXYFILE=$1
shift
WGETARGS=$*
if [ -z "$WGETARGS" ]; then
   WGETARGS="-nc"
fi

if [ ! -f "$PROXYFILE" ]; then
   echo "Usage: ./leech.sh proxyfile &1`
            if [ ! $? -eq 0 ]; then
               echo "Could not leech $FILE over $proxy"
               FILENAME=`basename "$FILE"`
               echo "$OUTPUT" | grep 404 >/dev/null && touch "404/$FILENAME"
            else
               echo "Leeched $FILE over $proxy"
            fi
            sleep 1;
            done) &
   START=$((START + PERPROXY))
done

wait

Bitte beachtet das für jedes Proxy in der Proxydatei ein neuer Bashprozess geforkt wird, der selber ein Wget forken wird. Unter den meisten Unixen wirds dann schnell eng (Unix ist ja so wunderbar…).

posted by manuel at 11:13 pm  

Sunday, February 27, 2005

Und noch ein paar Links

Biocatalysis special report

Nature insight biocatalysis

Nimble Type Inferencer for Common-Lisp 84

How to publish a fanzine (mostly outdated, but still fascinating)

posted by manuel at 11:08 pm  

Sunday, February 27, 2005

Proxies sortieren

Blackhat

Oft braucht man für eine kleine WWW-Aktion ganz viele Proxies (klar, zum Parallelisieren). Es gibt dazu auch russische Seiten, die Listen von öffentlichen Proxies anbieten. Die muss man aber noch von Hand nach korrekter Funktionsweise überprüfen. Dazu kann man ein kleines Shellscript benutzen, was zwar fork()t wie sau, aber eigentlich ganz gut einzusetzen ist:

#!/bin/sh

PROXIES=""
PROXYCOUNT=0
TESTURL=http://images.slashdot.org/pix.gif

TXT=`wget -q -O- "$TESTURL"`
CKSUM=`echo $TXT | cksum`

while read i; do
   PROXY=`echo "$i" | sed -e 's/^[0-9]* *//g'`
   PROXY="http://$PROXY/"
   PROXIES="${PROXIES} $PROXY"
   PROXYCOUNT=$(( PROXYCOUNT + 1 ))
done

if [ $PROXYCOUNT -eq 0 ]; then
   echo "Please give a list of proxies on stdin"
   exit 1
fi

for proxy in $PROXIES; do
   (TXT=`http_proxy="$proxy" wget --timeout=10 -q -O- "$TESTURL"`
    if [ $? -eq 0 ]; then 
      CKSUM2=`echo $TXT | cksum`
      if [ "$CKSUM2" = "$CKSUM" ]; then 
         echo $proxy
      fi
    fi) &
done

wait

Dann einfach die Proxyliste von der obengenannten Seite kopieren, und in das Skript füttern über stdin. Rauskommt eine korrekt formattierte Liste von funktionnierenden Proxies. Wie immer gilt: Careful with that axe, Eugene!

posted by manuel at 3:42 pm  

Sunday, February 27, 2005

Heute abend Saugnapf

Heute abend sendet Neingeist auf 104.8 Mhz oder querfunk.de die 4te Folge von Saugnapf, mit einer MOD-Spezialfolge. Also, von 23:00-24:00 ist heute abend Saugnapf angesagt!

Jetzt gibt es auch ein Torrent.

posted by manuel at 3:37 pm  

Sunday, February 27, 2005

Links für 27.02.2005

Ein Artikel über die Gay-Marriage Folge der Simpsons

Out Hud, krass groovige Gruppe

Del.icio.us fuer Papers

Lisp HTML Parser

Cooler Podcast

Geile Basler Rockband, über oben genannten Podcast gefunden

Open Proxylist, für den anonymitätsbewussten Hacker

posted by manuel at 2:36 pm  

Saturday, February 26, 2005

poly1305 MAC von djb

DJB hat vor einiger Zeit ein MAC-Verfahren namens Poly1305 veröffentlicht, das auf AES basiert. Portiert wurde es auf die gängigsten heutigen Platform (eigentlich nicht portiert, sondern optimiert, eine portable Version gibt es auch). Interessant sind folgende Features:

  • Bewiesene Sicherheit, wenn die unterliegende Kryptierungsfunktion (in dem Fall, lässt sich aber austauschen). Den Beweis habe ich mir nicht angeguckt, solche Sachen verstehe ich meistens kaum, aber schön zu wissen, das DJB sowas sagt.
  • Schnell (auch ein nettes Feature, je nach Anwendung jedoch nicht lebensnotwendig)
  • Wenn schon schnell, dann auch schnell für kleine Messages. Das war mir böse aufgestossen als ich im Sommer eine kryptierende Ethernet-Bridge gebaut habe. Für “grosse” Ethernetframes war alles im grünen, wenn ich aber mit 48 Bytes Frames gefloodet habe, ging das MAC Verfahren so in die Knie, dass ich mich ziemlich anstrengen musste, um die garantierte Geschwindigkeit noch zu erreichen. Am Ende und mit ein bisschen Drücken am Ethernet-Treiber ging das dann noch gerade so.

In einem kleinen Text beschreibt DJB, wie ein Kryptoverfahren zu Benchmarken ist, und was oft gemacht wird, und die Zahlen zu verschönern. Dazu gehört:

  • Die Funktion mit nur einem Key, einem Nonce und einer Nachricht zu testen. Es gibt Anwendungsfälle, wo viele Keys und Nachrichten gleichzeitig eingesetzt werden (z.B. ein bei einem VPN-Server). Also mit vielen Keys und Nachrichten testen, und auch fleissig neu initialisieren zwischendurch.
  • Alle wichtigen Daten vorrechnen, so dass diese im L1 Cache sind. Das ist je nach Anwendung eben auch nicht immer der Fall.
  • Die Message hat eine sinnvolle Länge, und ist auch schön aligned. Wie immer, das gilt auch nicht, also Blöcke ein bisschen randomisiert ablegen, usw…
  • Die Funktion auf sehr langen Messages zu testen. Sinnvoller ist, die Länge der Nachrichten zu variieren.
  • Nur eine gute CPU als Benchmark zu nehmen. Das Verfahren sollte man auf möglichst vielen CPUs einsetzen. Code, der auf einem PIII performt, kann auf einem G4 total abkacken.

Ich muss zugeben, dass ich die beiden ersten Punkte nicht wirklich berücksichtigt habe. Das war aber in dem Fall einer Ethernetbridge auch nicht wirklich notwendig, puh 🙂

Update: Danke Fefe für den Link 🙂

posted by manuel at 7:02 pm  

Saturday, February 26, 2005

Linkliste zu protothreads

Die Linkliste zu protothreads hatte ich heute morgen nicht wahrgenommen, sie ist aber wirklich lesenswert. Mal was zum durchstoebern…

posted by manuel at 5:51 pm  

Saturday, February 26, 2005

Fedora Core Packaging

Ein weiteres Posting in der Antifrustkategorie, diesmal ueber das Bauen von Packages fuer Fedora Core. Damit das Deployen von unser Streamersoftware auf planetlab leichter wird, habe ich beschlossen, Fedore Core Packages fuer poc zu bauen. Als erstes musste ich Subversion auf einem der Planetlab Knoten installieren:

$ sudo yum install subversion

Dann noch diverse Software, darunter die fedora-rpmdevtools, das ich von Hand runtergeladen habe:

$ sudo yum install gcc make redhat-rpm-config unzip cpio gcc-c++ flex bison
$ wget http://ftp.sun.ac.za/ftp/mirrorsites/fedora/3/i386/RPMS.extras/fedora-rpmdevtools-0.3.1-1.noarch.rpm
$ sudo rpm -i fedora-rpmdevtools-0.3.1-1.noarch.rpm 

Dann ein paar Seiten lesen, um zu wissen, wie RPM package und Fedora RPM Package ueberhaupt geht:

Der erste Artikel passt nicht so wirklich, den heutzutage verwendet man rpmbuild anstatt rpm. Also, als erstes fedora-buildrpmtree aufrufen, um nicht das ganze als root ausfuehren zu muessen. Dann mit fedora-newrpmspec ein Template spec erzeugen, das wird dann ausgefuellt und sieht dann so aus:

Name:           poc
Version:        0.4.1
Release:        1
Summary:        POC mp3 streamer

Group:          Development/Audio
License:        BSD
URL:            http://www.bl0rg.net/software/poc
Source0:        http:/www.bl0rg.net/software/poc/poc-0.4.1.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  gcc

%description
Long description of POC

%prep
%setup -q

%build
make %{?_smp_mflags}

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT PREFIX=/usr

%check || :

%clean
rm -rf $RPM_BUILD_ROOT


%post

%files
%defattr(-,root,root,-)
%doc README
%{_bindir}/*
%{_mandir}/man[^3]/*

%changelog
* Sat Feb 26 2005 Manuel Odendahl  - 1109434658:0.4.1
- Initial RPM release.

Anschliessend poc-0.4.1.tar.gz in ~/rpmbuild/SOURCES kopieren, und das Paket bauen:

$ rpmbuild -ba poc.spec

Et voila, das fertige poc-Paket liegt in ~/rpmbuild/RPMS/i386. Schick!

posted by manuel at 5:27 pm  

Saturday, February 26, 2005

Biochemie und Mikroorganismen

In der Technology Review vom November 2004 gibt es einen Artikel namens “Mikrofabriken aus der Erde”, der von dem Einsatz von Mikroorganismen zur Gewinnung von Chemikalien (Enzyme, Alkohol, Nahrungszutate wie Aspartam) handelt. Der Artikel berichtet vorwiegend über die Brain AG, die in der Nähe von Darmstadt Mikroorganismen züchtet, um aus ihnen industriell Chemikalien zu gewinnen. Dazu kommen heutzutage hauptsächlich Gentechnik-Werkzeuge zum Einsatz. Laut einer Pressemeldung: “Derzeit verfügt die BRAIN über Metagenombanken von über 130 Gigabasen Umfang, was schätzungsweise mehr als 6000 mikrobiellen Genomen entspricht”. Diese Datenbanken stellen sie anscheinend dem Zentrum für molekulare Evolution und Biodiversität zur Verfügung, die Webseite verrät allerdings ziemlich wenig. Das Forschungsgebiet von Christa Schepler, die Leiterin des ZEB, scheint Archaea zu sein. Archaea gehören einer eigenen Lebensformgruppe, neben Bakterien und Eukaryoten, und wurden am Ende der 70er Jahre entdeckt. Ich denke, das besondere Interesse von Firmen wie Brain AG an Archaea, dass diese in ziemlich extremen Umgebungen überleben können, und dass die durch Archaea synthetisierte Produkte auch unter hohen Temperaturen z.B. funktionsfähig bleiben. Ein Artikel über Biokatalyse, der dem Artikel der TR ziemlich ähnlich ist, ist hier zu finden. Nature hat eine Insight-Ausgabe über Biokatalyse veröffentlicht. Jedenfalls ein sehr spannendes Thema.

posted by manuel at 3:49 pm  
Next Page »

Powered by WordPress