.zshrc
Ich habe eine neue Lieblingskommandozeile zsh und da ich meine .zshrc gerne zentral erreichen möchte, stell ich sie mal online. Vielleicht will sie ja jemand kopieren.
26.09.2007
- Aliase
- History
- Funktionen (komprimieren und dekomprimieren)
- farbiger Prompt
28.09.2007
- Aliase automatisch für Linux oder Mac OS X
- Update Funktion (zupdate) der zsh Umgebung (.zshrc, zsh_domain_completion) vom Webserver
- automatische Vervollständigung von ssh, sftp per ~/.ssh/known_hosts Datei
- automatische Vervollständigung von “Netzwerktools” per ~/.zsh/zsh_domain_completion
12.10.2007
- Aliase für ls umgebaut (l, la -> list all, ld -> list directory, lf -> list files, ll -> list symbolic links)
- Suffix Aliase eingebaut (z.B. muss ich nur noch einen *.torrent Link einfügen und wget lädt den torrent herunter)
- Falls das letzte Kommando !=0 als exit code zurück gibt wird dieser im Prompt angezeigt
14.10.2007
- Weiter Veränderungen, über die ab jetzt nicht mehr berichtet wird!
Hier noch ein paar hilfreiche Links:
- http://zsh.sourceforge.net/Doc/Release/index-frame.html
- http://cssun.rrze.uni-erlangen.de/~sipakale/zshreferat.html
Microcontroller und Assembler aufgemerkt
Was mir schon lange im Kopf rumschwirrt ist, eine kleine Schaltung mit Microcontroller und PowerMOSFET zur Motorsteuerung. Da ich aber im Moment weder von uC noch von ASM große Ahnung habe, kann das ganze noch dauern!
Naja zumindestens ein Template für die Assemblerprogramierung hab ich schon mal. Ausserdem kann man mit dem AVR Studio den Code auch gleich simulieren auf der Zielplatform (ATMega, ATiny, …)
Vorsicht Assembler folgt:
[weiter lesen]
Mein neuer Sortieralgorithmus [EDIT: mit Download]
Ich nenne ihn S-Tree für Sorted Tree.
Da ich weder Experte auf dem Gebiet der Sortieralgorithmen noch auf dem der Bäume (B-Baum usw.) bin weiß ich jetzt nicht ob es das schon gibt bzw. ob es wirklich hilfreich ist.
Nichtsdestotrotz habe ich mir einen neuen Sortieralgorithmus zusammengebastelt.
[EDIT] Okay, nach längerer Suche in der Welt der Sortieralgorithmen hat sich natürlich herausgestellt, dass es so etwas schon gibt. Stichwort Binärbaum und AVL-Baum. Trotzdem bleibt noch meine Objektorientierte Umsetzung und natürlich wird noch weiter an der Implementierung gefeilt.
Das besondere ist die Verwendung einer Baumstruktur und der Objektorientierte Ansatz.
Auf die Idee bin ich gekommen, da in einem B-Baum ja die Daten auch sortiert vorliegen. Nur enthält ein B-Baum sehr viele Funktionen auch für das Löschen und Ausbalancieren der Daten. Diese funktionene werden aber beim reinen sortieren nicht gebraucht, da weder Daten gelöscht noch gesucht werden.
Implementiert habe ich das ganze testweise in Java. Im Prinzip funktioniert das Ganze mit einer Klasse (STreeNode). Man gibt der RootNode (der obersten Node) einen Zahlenwert (long) und der wird dann an der passenden und freien B oder A Stelle im Baum eingefügt (siehe Bild).
Vorteil: schnell, objektorientiert ![]()
Nachteil: braucht viel Arbeitsspeicher (wahrscheinlich viel mehr als jeder andere Sortieralgo.), Out-Of-Place Algorithmus
Hinweis: Irgendwie sieht es aus wie der Heapsort(ja ok es ist ein AVL-Baum) aber ich finde es einfacher, da Objektorientiert.
Ich habe mal einige Benchmarks gemacht und ihn mit meiner Bubblesort Implementierung verglichen.
Ich weiß Bubblesort ist nicht der beste Sortieralgo. aber der einzige, den ich aus dem Kopf kann.
System ist ein Laptop mit Intel Centrino 1,7GHz und 1GB Ram.
Getestet wird mit Zufallszahlen des Typs long:
1. Füllen des Baumes mit den Zufallszahlen (in s)
2. Rückgabe eines Sortierten Arrays (in s)
3. Gesamtzeit zum sortieren (in s)
Zahlen S-Tree 1. S-Tree 2. S-Tree 3. Anmerkung
10.000 0,01 0.0 0,01
100.000 0,171 0,01 0,181
1.000.000 3,315 0,27 3,585
5.000.000 20,557 1,201 21,758 200MB Ram besetzt
10.000.000 147,841 10,163 158,004 300MB Ram u.
100 MB Swap besetzt
1. Füllen des Arrays mit den Zufallszahlen (in s)
2. Sortieren des Arrays (in s)
3. Gesamtzeit zum sortieren (in s)
Zahlen Bubble 1. Bubble 2. Bubble 3. Anmerkung 10.000 0,0 1,342 1,342 100.000 0,01 127,822 127,832 1.000.000 Nicht mehr abzuwarten
Mein ./netinfo.sh
Ein kleines Script welches alle IPs und deren aufgelösten DNS-Namen anzeigt, mit denen der PC verbunden ist.
#!/bin/sh # get all ip addresses from /proc/net/tcp ipList=`cat /proc/net/tcp | cut -c 21-33` for i in $ipList do
Umbenennen mehrerer Dateien
#!/bin/sh for i in *.tar.gz do # replaces .tar.gz with .tgz in filenames mv "$i" "`echo "$i" | sed s/.tar.gz/.tgz/`" done
Backup - voll oder inkrementell
#!/bin/sh # folders to backup bupFolders="/etc /root /home /var/www /var/spool" # folder to store backup storeFolder="/mnt/backup"
So Die Programmi…
So Die Programmiererei für das PA Projekt ist erstmal abgeschlossen, das GUI läuft und verrichtet seinen Dienst…
Designmäsig könnte man noch mal drüber gehen aber egal…
Jetzt fehlt nur noch ne Präsentation, die Dokumentation, JavaDoc und das Ant-Buildfile… Dann mal los!!!

Ich bin heute sc…
Ich bin heute schon ziemlich weit vorangeschritten mit meinem Programmierprojekt von der Berufsschule. Auch wenn ich bis jetzt NUR programmiert habe… Doku und Präsi fehlen noch komplett und die Uhr tickt…
Dead-Line in 7 Tagen…

Auf dem Bild kann man die Applikation schon erahnen…
Okay, das Koordinatensystem steht noch aufm Kopf, aber ich bin ja froh, dass der Test heute so gut geklappt hat…
Bis jetzt bin ich bei 6 Klassen.
Achja, das soll eine Aktienchart-Anzeige werden…
Ich habs mal ausprobiert mit 1000 Werten (Aktien):
der Sortieralgorithmus braucht dann ca 6 Sekunden auf meinem Rechner um alles zu sortieren, nach Datum.
bei 2000 Werten:
es dauert zu lange! ich hab nie gewartet, bis er fertig war.
Er sortiert nach dem Bubblesort Algorithmus…
und mein Rechner is ein PowerMac mit 2GB Ram und Dual 2.7GHz PowerPC G5 Prozessoren…
Jetzt bleibt nur die Frage wie gut die JavaVM 1.5 an den Prozessor angepasst ist…
Auf jeden Fall ist der Sortieralgor. bzw. dessen Geschwindigkeit wohl noch i.O. für diese Projekt…
Morgen gehts los…
Morgen gehts los… Mit was? Mit meinem Projekt für die Berufsschule! Deadline ist am 12. Mai.
TODO Liste für eine Aktienchartanzeige:
- PAP
- Klassendiagram
- Code (Java 5.0 + Eclipse 3.1 + Checkstyle)
- JavaDoc (Englisch)
- Dokumentation (max. 15 Seiten)
- Präsentation (15min +/-3)
- …


