Bernhard Häussner
Journal: Neueste Artikel erscheinen hier (Seite 21 von 23)

Aufgewickelter Zahlenstrahl

12.11.2008, 21:08

Oben ein Bild der ersten ~700 000 Primzahlen, markiert auf einem „aufgewickelten“ Zahlenstrahl, auch bekannt als Ulam-Spirale. Eigentlich wollte ich ja nur die Primzahlen machen, aber als ich das PHP-Skript für den gewickelten Zahlenstrahl hatte, wollte ich das Ganze erstmal mit den Nullstellen von 0=x mod n testen, weil ich das Script um die Primzahlen zu laden noch nicht hatte. Dabei habe ich dann festgestellt, dass Modulo n (fester Abständ n; Vielfache von n) auch recht lustig aussieht:

(Tipp: In Originalgröße ansehen!)

Die Animation von Modulo 2-999 sieht auch recht cool aus:


Modulo 1-999 auf Ulam-Spirale

Das Primzahlenbild ist übrigens nicht unwesentlich inspiriert von Suzanne Daetwylers „Primzahlenbild 1-9216“, welches ich erstmals gesehen habe, bei einer Ausstellung im Würzburger Kulturspeicher rund um Kunst, von mathematischen Mustern angeregt.

Bei der Pixelweisen Darstellung, wie ich sie speziell für den Computerbildschirm erstellt habe, ist (das war meine Motivation) die von mir verwirklichte dargestellte Primzahl knapp unter 640 000 - bei einer Seitenlänge von 1200px sogar über 1,5 Millionen -, während ältere, durch das Medium Papier begrenzte Darstellungen, die Zahlen nur bist etwa 10 000 sinnvoll auflösen können. Um ein größeres Bild erstellen zu können hätte ich nur eine größere Primzahlendatenbank benötigt, bzw. einen guten Primzahltester.

Der Zahlenstrahl beginnt in der Mitte über den 3 zusammenhängenden Pixeln (2,3,11) und geht dann zuerst nach unten, dann nach links und im Uhrzeigersinn weiter. Die Diagonale von links oben nach rechts unten enthält die Quadratzahlen, weshalb sie keine einzige Markierung enthält.

Update: Lucky Numbers auf der Ulam-Spirale

Ich habe jetzt noch einen Zahlenstrahl mit den sog. Glücklichen Zahlen erstellt. Das bedeutet auf dem Strahl ist erst jede zweite Zahl geschwärzt, von den weißen dann jede dritte, von den übrigen weißen dann jede siebte usw. bis dann ein sehr sehr unregelmäßiges Muster entsteht. Es gibt auch noch einige Analogien zu den Primzahlen, dazu mehr bei Wikipedia.

Kommentare: keine

Just Circles

11.11.2008, 15:54

Der Chris hat sich ja eine neue Jacke gekauft... und da sind so coole Sterne drauf. Das sind aber keine echten Sterne, sondern im Bereich der Sterne sind die Punkte größer. Wie auch immer, ich musste diesen Effekt einfach am Computer mal nachmachen. PHP ist vielleicht nicht die Sprache für Desktop-Anwendungen und schon gar nicht Bildbearbeitung, aber wofür gibt es denn sonst gd? Letztendlich habe ich sogar ein kleines Video mit dem Effekt gemacht:

Zuerst ein paar Worte zum PHP-Skript. Es ist nicht wirklich schön geschrieben, aber erfüllt seinen Zweck: Es öffnet ein Bild und scannt es quadratweise ein. Von diesen Quadraten ermittelt es den mittleren Grau-Wert. Je größer dieser ist, desto größer der Kreis in diesem Quadrat. Dann wird ein zwei/drei/viermal so großes Bild mit den Kreisen erstellt und dieses dann wieder herunter skaliert auf die ursprüngliche Größe um eine einfache Kantenglättung mit GD zu erreichen.

Jetzt habe ich ein paar Stellen aus einem Musikvideo hergenommen, diese mit mencode in Einzelframes zerlegt und vergrößert. Dann habe ich sie mit meinem Skript umgewandelt, und mit mencode wieder zu einem Video zusammengesetzt. Das Ergebnis kann sich sehen lassen:


Just Circles

Ich finde besonders interessant wie sich an den bewegten Konturen die Kreise vergrößern und verkleinern. Und weil es so schön war, hier das ganze mit Linien:


Just Lines
Tags:
Kommentare: 1 Einträge

Ramdisc - Maximum Performance

05.11.2008, 21:09

Wow, wow, wow. RAM wird diese Tage immer billiger, man bekommt die 8 GB schon für um die 80 Euro. Wer es wirklich übertreiben will kann natürlich auch auf die 32 GB kommen. Da fragt man sich dann auch langsam, wohin mit dem ganzen RAM. Wenn ich ehrlich bin, komme ich mir langsam ein bisschen seltsam vor mit meinen bescheidenen 2 GB. Aber auf der anderen Seite brauche ich meist nichtmal die zwei, und was soll man dann mit den übrigen 30 GB RAM machen? Da kommt dann z.B. die Ramdisk ins Spiel:

Anstatt die Dateien auf den langsamen Festplatten zu lassen, kann man sich natürlich eine flash-Festplatte kaufen. Aber wenn der RAM für heutige Anwendungen sowieso eher überdimensioniert ist, warum nicht gleich auf den RAM schreiben? Ein Nachteil: Man muss den Platz auf der Festplatte reservieren für Backups und Reboots. Denn sollte man seinen Rechner mal neu starten sind die Daten, da im RAM, eigentlich weg. Noch ärgerlicher, wenn der Saft weg beleibt. Doch mit ein paar kleinen Tricks kommt man da auch drum rum.

Doch erstmal zum Einrichten der Ramdisk (unter OpenSUSE). Da OpenSUSE anders als z.B. Debian standardmäßig keine Ramdisks zur Verfügung stellt, reicht uns für den Anfang eine kleine (1 GB) tmpfs-Partition. (Verzeichnisse natürlich angleichen)

mkdir ramd
cat /etc/fstab
cat /etc/fstab > fstab.txt
echo 'tmpfs /home/amoebe/Desktop/ramd tmpfs size=1g 0 0' >> /etc/fstab
mount /home/amoebe/Desktop/ramd/
df -T ramd/
# Ausgabe:
# Dateisystem   Typ    1K-Blöcke   Benutzt Verfügbar Ben% Eingehängt auf
# tmpfs        tmpfs     1048576         0   1048576   0% /home/amoebe/Desktop/ramd

Na also. Kaum kopiere ich eine größere (~700 MB) Datei in das Verzeichnis, sehe ich im Systemmonitor, wie der ausgelastete RAM-Platz hoch geht... Nachdem ich nun 2 Kopien der Datei habe, eine auf der Festplatte und eine im RAM, lasse ich md5sum als Benchmark drüber laufen. Zuerst die Datei auf der Festplatte:

time md5sum groß.avi 
# 75dd50ae473ccba7e082aaa681853919  groß.avi 
# 
# real	0m29.759s
# user	0m1.956s
# sys	0m0.768s
time md5sum groß.avi 
# 75dd50ae473ccba7e082aaa681853919  groß.avi 
# 
# real	0m21.963s
# user	0m1.728s
# sys	0m0.584s

Wie man sieht, jedes Mal so um die 30 Sekunden. Doch ich musste leider mit ansehen, wie der Inhalt meiner schönen Ramdisk auf der Festplatte in den Swap geschrieben wurde, da die Datei sonst nicht mehr in den RAM gepasst hätte.

Jetzt wollte ich natürlich wissen, wie schnell die Ramdisk ist. Beim ersten Aufruf konnte ich schön den Swap zurück auf 0 gehen sehen, was natürlich auch einige Zeit in Anspruch genommen hat:

time md5sum vtemp/groß.avi 
# 75dd50ae473ccba7e082aaa681853919  ramd/groß.avi 
# real	0m35.570s
# user	0m2.128s
# sys	0m2.168s

Nicht sehr überzeugend. Doch die Ramdisk war ja nicht im RAM, konnte also nicht ihre ganze Stärke ausspielen. Doch jetzt, da wir die Datei wieder im RAM haben, sieht das Ganze schon besser aus:

time md5sum vtemp/groß.avi 
# 75dd50ae473ccba7e082aaa681853919  ramd/groß.avi 
# 
# real	0m2.536s
# user	0m2.040s
# sys	0m0.416s
time md5sum vtemp/groß.avi 
# 75dd50ae473ccba7e082aaa681853919  ramd/groß.avi 
# 
# real	0m2.444s
# user	0m1.984s
# sys	0m0.436s

Das bedeutet, wenn wir eine Ramdisk benutzen müssen wir noch mindestens so viel Platz im RAM lassen, wie unsere normale Arbeitsumgebung benötigt. Interessant, dass md5sum keine Kopie der Datei im RAM gemacht hat.

Jetzt könnte man natürlich noch mit einem Cronjob die Ramdisk regelmäßig mit der Festplatte abgleichen. Oder mit einem SVN-Repositry. Dann kann man sogar Änderungen verfolgen und rückgängig machen. Beim Herunterfahren kopiert man den Inhalt der Ramdisk auf die Felsplatte und lädt ihn beim hochfahren wieder. Das könnte natürlich bei größeren Datenmengen etwas lästig werden, aber wenn man einen Suspend-Hook bastelt, der den Inhalt kurz mit dem Repository abgleicht, dann kann man den Computer beruhigt in Suspend 2 RAM fahren ohne dass Datenverlust zu befürchten ist, falls doch mal jemand übers Kabel stolpert o.ä.

Interessant könnte es natürlich werden, wenn man beim Booten alle Programme in die Ramdisk speichert. Also mein gesamtes OS mit allen Programmen hat zurzeit 9,1 GB. Bei den 8 GB wird es also ein bisschen sehr knapp, aber bei 12 GB sollte es schon ganz gut klappen. Dann will ich gar nicht wissen, wie schnell sich die Programme laden.

Andrerseits ist das alles irgendwie noch ein bisschen sehr aufwändig, da lasse ich lieber alle Programme laufen und baue mir ein ordentliches RAID5 auf, dann kann (fast) nichts schief gehen, und schnell ist es auch noch. Wenn ich allerdings mal ein größeren RAM habe und dann an einer größeren Datei arbeite, vor allem mit unterschiedlichen Programmen, aber nicht gleichzeitig, könnte ich auch die Ramdisk zurückgreifen. Beim Filme schneiden könnte das äußerst nützlich sein.

Kommentare: keine

CMS fertig - endlich

01.11.2008, 16:06

Also das CMS zu Entwickeln hat jetzt etwas gedauert. Es ist eben immer eine Tortur, bis man alle Informationen so aufbereitet hat, dass sie in die Datenbank passen. Und dann noch der Dateiupload. Außerdem wollte ich ja so etwas wie BBCode. Aber es ist mir doch sehr gut gelungen:

BBCode

Eine größere Umstellung war das Markup für die Blogeinträge. Zwar war der Editor, der Tags einfügen kann schon fertig, doch alles basierte auf HTML-Tags. Auf kurz oder lang wird da aber der Content mit sinnlos langen Tags und Einstellungen zugemüllt. Mit dem neuen System kann ich jetzt natürlich nicht nur Absätze, Listen usw. schnell und einfach in einen Post einfügen, sondern auch Bilder mit Bildunterschrift und Thumbnail, Links zu Downloads und Blogpost und vieles mehr.

Bild- Und Dateiupload

Jetzt wo ich schon Useraccounts erstellt habe, kann ich auch in aller Ruhe an einem Dateiupload basteln. Es gibt jetzt also parallel zum Blogposteditor einen Fileuploader. In einem Tab kann ich die Dateien managen (bisher: hochladen und löschen), während ich im anderen noch am Post schreibe. Dann kann ich per Drag&Drop die Bilder und Downloads in den Blogeditor schieben. Wenn ich Bilder hoch lade, werden automatisch Thumbnails mit 100px und 540px Breite erstellt. Die Bilderfunktion kann man ganz gut in diesem Post bestaunen und die Downloadfunktion hier.

Ich habe mir auch über legt, ob ich eine Javascript-Bildershow implementieren soll, für Fotoalben gibt es ja flickr und ich hasse es, wenn man ein Bild im neuen Tab öffnet, und dann öffnet sich, je nach Qualität der Diashow auch mal gar nichts, oder nochmal die ganze Seite, nur mit einem Bild als Overlay.

Somit ist das CMS jetzt endlich einmal abgeschlossen und ich kann mich anderem spannenden widmen, z.B. der AJAX-Suchfunktion.

Kommentare: keine

Compiz Fusion Update

01.11.2008, 15:02

Am Donnerstag war es mal wieder so weit: Alle Software wieder auf den neuesten Stand bringen. Spektakulärer als die Updates von GIMP, Blender, kernel, nVidia-Treiber, OpenOffice 3 und Firefox war auf jeden Fall Compiz mit seinen neuen Effekten:

Gleich beim ersten Mausschubbser merkt man, dass sich die Performance deutlich verbesset hat. Könnte natürlich auch daran liegen, dass ich meien Graphiktreiber von 100.~ auf 173.~ geupdated habe. Wie auch immer: Während sich vorher der Cube schon bei aktivierter Transparenz mit einer gefühlten Framerate von um die 20fps bewegt hat, muss mann nun den Gauss-Weichzeichner ordentlich hochdrehen um an ähnliche un-Sanftheiten zu kommen.

Achja, der Gauss-Weichzeichner ist (zumindest für mich) auch neu. Die transparenten Titelleisten der Fenster sind jetzt also „blury“. Doch damit nicht genug. Das Terminal urxvt (über YAST2 installierbar) kann, im Gegensatz zu konsole, dem Windowmanager eine RGBA-Farbe als Hintergrund weitergeben. Dann stellt man nur noch in Compiz ein, dass entsprechende Fenster ihre Hintermänner bluren sollen und schon hat man ein optisch äußerst ansprechendes Milchglas-Terminal. Man kann sogar die Schrift etwas schönen und den hässlichen Rahmen entfernen und fasst dann die Konfiguration in diesem Aufruf zusammen:

urxvt -g 125x30 +sb -depth 32 -fg black -bg rgba:9999/9999/9999/9999 -T 'blurry urxvt' -fn 'xft:DejaVu Sans Mono-11:dpi=81' -b 0

Ein bisschen rückständig ist nur der neue Konfigurator (CCSM). Um es n00bies einfacher zu machen, das Ganze zu konfigurieren, kann man jetzt zwar einfach, aber nicht mehr so flexibel konfigurieren. Alle Aktionen lassen sich jetzt nur entweder mit der Tastatur, der Maus, oder Bildschirmecken initiieren. Das bedeutete für mich, das ich leider meine frühere (tolle) Konfiguration aufgeben musste. Damals konnte ich mit der Maus in die untere linke/rechte Bildschirmecken fahren, und die Arbeitsfläche hat nach links/rechts gewechselt. Jetzt wechsle ich die Arbeitsflächen, indem ich am Bildschirmrand scrolle. Das hat zwar den Vorteil, dass man schneller umkehren kann, wenn man zu weit gewechselt hat (ist mir früher oft passiert, dann musste ich nochmal um den ganzen Cube wandern), aber leider ist das mit der Richtung nicht so intuitiv, schließlich kann ich nicht seitlich scrollen.

Ein richtig neues Feature dürfte die Würfel-Deformation sein. Da fragt man sich wirklich warum das Teil noch Würfel heißt. Anfangs hatte er immer 6 Seiten. Bei mir haben die 4 Desktops aber nie gereicht, deshalb hatte ich traditionell ein Prisma mit 5 Desktops. Außerdem waren ja wohl die Seitenlängen nie gleich lang, allein wegen des Bildformats des Monitors (16:10).

Jetzt kommt noch erschwerend hinzu, dass es mit dem neuen Plugin möglich ist, den Würfel beim Drehen in einen Zylinder oder eine Späre zu pressen. Der Zylinder ist eigentlich ganz hübsch, deswegen bei mir jetzt auch Standard. Mit der Späre konnte ich mich nicht so anfreunden. Sieht zwar wirklich mega-futuristisch aus, aber passt eben nicht so wirklich mit den rechteckigen Fenstern und Desktops zusammen.

Naja, immerhin fällt beim fröhlichen Rotieren auch ein weiterer neuer Effekt auf: Die schwebenden Fenster. Während man den Würfel dreht, kleben die Fenster nicht, wie früher, platt am „Würfel“, sondern biegen sich nun in einiger Entfernung um z.B. die Späre. Damit kann man auch besser versteckte Fenster erahnen.

Eigentlich habe ich mir vom Compiz-Update kaum etwas erhofft, doch meine Erwartungen wurden mal wieder übertroffen und die Zylinder-Verformung ist hübscher als ich dachte.

Noch ein kleiner Tipp: In der neuen Version hat Compiz seinen eigenen Screenshot-Event auf die Taste „Drucken“ gelegt, und überschriebt damit manchmal die Standardeinstellung von KDE mit gnome-screenshot, was normal auf KDE-Systemen nicht installiert ist. Damit man in KDE wieder auf Knopfdruck Screenshots machen kann, einfach unter General Options > Commands > Screenshot commands bei Screenshot command line folgendes eingeben: ksnapshot und bei Windows screenshot command line muss ksnapshot -c stehen. Dann sollte alles wie gewohnt klappen.

Kommentare: keine
 
Χρόνογραφ
© 2008-2018 by Bernhard Häussner - Impressum - Login
Kurz-Link zu dieser Seite: http://1-co.de/bj