C++Guns – RoboBlog

26.06.2010

ToDo

Filed under: — Thomas @ 10:06

http://www.flightstats.com/go/FlightTracker/flightTracker.do?id=312096449&airlineCode=TK&flightNumber=716&utm_source=34b64945a69b9cac:-6b3284bc:12409ab4e5e:-27b7&utm_medium=cpc&utm_campaign=weblet

http://www.flightstats.com/go/FlightTracker/flightTracker.do?airlineCode=TK&flightNumber=1662&arrivalCode=IST&departureCode=HAM

Hier eine Liste von ein paar verwirrten Gedanken die es aufs Papier geschafft haben
Faster Code
Trusted Systems 4 Folie 8: Effiziente Exponentiation modulo n
if durch multiplikation ersetzen und speedtest /valgrind

Eisenbahn
Achsenzähler durch Kontaktgleich realisieren? Was kann man mit der Info anfangen? Visu am PC?

To Read
- P.?R. Wilson, M.?S. Johnstone, M.?Neely, and D.?Boles. Dynamic storage allocation: A survey and critical review. Lecture Notes in Computer Science, 986, 1995

- Chris?B. Sears. The elements of cache programming style. In Proceedings of the 4th Annual Showcase and Conference, pages 283–298, Berkeley, CA, October 2000. The USENIX Association.
http://static.usenix.org/publications/library/proceedings/als00/2000papers/papers/full_papers/sears/sears_html/

- Amir?H. Hashemi and David?R. Kaeli. Efficient procedure mapping using cache line coloring. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI-97), volume 32, 5 of ACM SIGPLAN Notices, pages 171–182, New York, June?15–18 1997. ACM Press.

- Theodore Johnson and Dennis Shasha. 2q: a low overhead high performance buffer management replacement algorithm. In Proceedings of the Twentieth International Conference on Very Large Databases, pages 439–450, Santiago, Chile, 1994.

- David?G. Korn and Kiem-Phong Bo. In search of a better malloc. In Proceedings of the Summer 1985 USENIX Conference, pages 489–506, 1985.

- Dale, Nell (2003). C++ Plus Data Structures. Sudbury, MA: Jones and Bartlett Computer Science. ISBN 0-7637-0481-4.
in older/books/

Math?
RSA phi(n) berechnen. Gradientenfeld bereachten, x/y die zu mul zahlen. guess; bei sqrt(n) anfangen? mehrer iterationen. iwann wirds passen :) vllt MPI.

GUI katerFEMpresenter

- Marching Cubes. Qt OpenGl Code abgucken. http://paulbourke.net/geometry/polygonise/

- Query-By-Example/Sketch:
Es gibt ja die Option goto Element um zu einem Element mit einer bestimmten ID zu gelangen. Wie wär es denn, wenn wann die Form eines Dreickes zeichnerisch ala Paint vorgibt und dann eine Liste aller ähnlichen Dreiecke bekommt?
Es braucht also Features Vektoren die ein Dreick beschreibe (Länge der Kanten, Winkel, Farbe). Natürlich sollte er auch ein
Dreick anklicken und so nach ähnlichen suchen können.
Ob das auch bei Nodes (nur Punkte) geht? Sucht dann nach ähnlichen x oder y Koordinaten. Oder nach x UND y? Dann sollten die Punkte in der Umgebung kommen. Haha

- Explorative Suche
keine konkrete Suchanfrage sondern automatisches auffinden von interessanten Objekten (sehr spitze Dreiecke, patch, konten mit extram vielen nachbarn, kleiner abstand zweier punkte)

libkater

- sortierung. Wir suchen nicht einen kürzesten Weg von zwei am weitesten entfernte Punkte im Netz, sonder den längsten Weg. Der muss sich dann zwangsläufig durch jede Ritze und Ecke im Netz schlängeln und durchwandert das Netz so Schichtenweise.

- Glättung des Gitternetztes. Artefakte reduzieren. Laplacian smoothing. Hochfrequente Oberflächeninformation?

- Was kann man mit dem Umkreis eines Polygons oder Dreiecks anfangen? (Ein Kreis der durch alle Punkte geht)

- neue Sortierung Buch Mathematischer Karnevall von Martin Gardner Abb. 20 Seite 40
Spiralweg zum Zählen der Ecken eines Hexagonalmusters.

Spiralweg zum zählen der Ecken eines Hexagonalmusters

Spiralweg zum zählen der Ecken eines Hexagonalmusters

- MM Freelist: Linked List als Array Implementiert. Buch Algorithms Seite 242

- Wenn wir irgendwo Bäume (R-Tree etc.) zum speicher nutzen, kann man den Baum nicht auf ein darunter liegendes Array abbilden? So, dass die einfügen/lösch/such Operationen genauso einfach sind?
Z.B. Tree Root kommt in array[0]. Die beiden Kindknoten A und B nach array[1] und array[2]. Ab jetzt sehe ich Zwei Möglichkeiten. Entweder schieben wir die Kinder von A nach array[3] und array[4] und die Kinder von B nach array[5] und array[6]. ODER die Kindeskinder von A kommen nach array[5] bis array[8]. Je nachdem wir man den Baum später durchlaufen will...

Man kann die Position der Kinder im Array berechnen. Wenn x die Position des jetzigen Knotens ist. Dann sind seine Kinder bei 2*x bzw. 2*x+1. (Gilt nur bei Heap Trees aber Analogien werden sich finden lassen)

- Wir brauchen eine Unterscheidung ob zwei Pointer auf das selbe Objekt zeigen oder ob es zwei unterschiedliche Objekte sind aber die selben Daten enthalten. operator== überschreiben bzw. .equals() Funktion.

- Hash zum Speichern von Pointer auf irgendwelche Elemente. Ein Pointer ist nur eine einfache Zahl und müsste sich gut im Hash Array verstreuen lassen. Gut beim nicht mehr fortlaufend nummerierten Netz (Knoten gelöscht). Cache freundlich? performanter als unserer memory manager?

- neue Speichermethode. Statt Arrays für Knoten und Elementnummern: Für ein Knoten alle verbundenen Knotennummern
(Patch) und Elemente speichern. Besseres Format für OpenGL zum zeichnen. Hat Ähnlichkeit mit einer Matrixzeile.
Da aber so die Knotennummern mehrfach gespeichert werden: Statt alle angeschlossenen Knoten nur einen Halbkreis bilden.
Vllt. kann man ein Netz mit den Halbkreisen gut füllen?
Idee war ja, von Patch zu Patch zu laufen, über die Knoten. Das geht schlecht. Vllt kann man über die Element springen. Vllt ist auch nur ein drittel Kreis gut. Das sollte so Mosaikmuster im Viewer geben.

- sortierautomat fuer netze? iwie bereiche im netz klassifizieren. vllt nach hoher oder niedriger auflösung. tiefe oder nachbarn.
dann anhand der klasse netz teilen und gesonder behandeln. spezialfälle fuer schnellere algos oder so

- MM wenn der iterator benutzt wird, gcc prefetch anweisung fuer das naechste element im iterator starten

- die vertices sind vllt. von unterschiedlichen menschen bzw. geraete aufgenommen worden. vllt lassen sich systematische fehler / aehnlichkeiten finden um sie wieder zuzuordnen

- Matrix Darstellung in katerlib einbauen wenn mehere infos ausgegeben werden
13 Ergebnissaetze geschrieben
qx qy h
Min -0.94 -0.11 0.00
Max 0.02 0.10 4.02

- herausfinden wie "about memory" bei inkscape funktioniert

- libkater: elemente ohne nachbarn sind zwangslaeufig am rand

- katerFEMpresenter: zuordnung der knotenfarbe mit knotennummer ueberpruefen. testnetz mit loch

- FEM: Buch "Algorithmische Geometrie" Seite 163 Mitte. Methode fuer Konvexes Polygon. Lässt sich möglichweise aendern, so dass es ein nicht konvexes Polygon git. Den Rand vom Netz.

- katersuche: Buch "Algorithmische Geometrie" Seite 161 unten: Das Suchgebiet
nicht in Rechtecke zerschneiden oder in Kuchenstuecke, Sektoren. Intersection
Test wären dann wohl auffälliger. Glaub nicht, dass das was bringt.

- libkater checken ob elemente == 0

- libkater. segfault als signal() in C abfangen. und dann alle varibalen ausgeben. vllt auch noch in welcher funktion er ist. oder zeilennummer, aber das ist dann schon ein halber inline debuger.

- libkater: für das einlesen der daten fscanf nutzen

- beim neuen Visualisierungsprogramm so ein Debug Window wie bei Pidgin einbauen

- __LINE__ und __FILE__ in katerlib einbauen. Für Qt: const char * Q_FUNC_INFO ()

- 64Bit Vorteile nutzen aber nur 32Bit Pointer. x32-ABI https://sites.google.com/site/x32abi/home

- Named Parameter nutzen http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.20

 File f = OpenFile("foo.txt")
            .readonly()
            .createIfNotExist()
            .appendWhenWriting()
            .blockSize(1024)
            .unbuffered()
            .exclusiveAccess(); 

- MM Iterator Beispiel http://www.parashift.com/c++-faq-lite/operator-overloading.html#faq-13.13

- MM / libkater Speicher auf cacheline size ausrichten um false sharing between cpus zu verhindern.

L1_CACHE_BYTES oder
kater@kater-desktop:~$ grep L1_CACHE /boot/config-`uname -r`
CONFIG_X86_L1_CACHE_SHIFT=5
oder
kater@ktux:~/temp$ x86info -c 
L1 Data cache:
        Size: 64Kb      2-way associative. 
        lines per tag=1 line size=64 bytes.

- libkater ueber programm triangle Voronoi diagram erstellen und damit element nachbar beziehungen erstellen

- libkater versuchen mathematisch zu beschreiben wie symetrisch ein Netz ist. Oder auch in Fraktaler hinsicht (BUCH). Vllt. gibt es da ja was.

- das müsste man auch einbauen. keyword mutable. http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.13

elektro
- Steuerleitung + 12V über den Balkon legen
- einige LEDs warmweiß zusammenschalten und als Abendlicht am Bett vorsehen
- 12V Lastkreis ans PC Netzteil
- 12V Steuerstromkreis an 12V Akku
- dickes 12V Netzteil als Ersatzversorgung wenn PC aus ist
- automatisches einschalten des 12V Netzteils wenn ein großer Verbraucher eigeschaltet wird. Dazu vom 12V Steuerstrom etwas auf den Laststromkreis schleusen und so eingeschaltet Verbraucher ueber Spannungsabfall am Widerstand erkennen
- Status der Festerlüfter + Information ob Tür offen ist oder nicht ueber mC auf PC weiter leiten. Mit Qt Webserver bauen?
- Windströmungsmessgerät bauen. Temperaturfühler mit Widerstand aufheizen. Im Wind dann Temp. ablesen.

BV
- Water ImageProcessing_tutorial.pdf Seite 27 "3.5 Watershed Transform and Distance Transform"

- betrachte die pixel eines bildes als die knoten eines graphen. die farbdifferenz benachtbarter pixel als die kantenlänge. wenn man dann den minimum spannung tree algo laufen lässt müsste man das bild nach gleichfarbigen flächen segementieren

Unterschiedliches

- Wolt (Email) Ein Baum ist ein Converter von hohen Frequenzen mit wenig Kraft an den Ast Enden hin zu kleinen Frequenzen mit viel Kraft an den dickeren Ästen bzw. am Stamm. Gerät was Druck in Strom umwandel? Pizo Kristalle haben keinen hohen Wirkunsgrad
http://www.jamesdysonaward.org/Projects/Project.aspx?ID=2298&RegionId=0&Winindex=3
http://www.echo-online.de/region/darmstadt/Wie-Weinberge-Windenergie-erzeugen;art1231,2606604?fCMS=4kco27vjufkqh2a6qli6iiac00

- Es gibt doch so fraktale Strukturen, linien artig, als wenn Eis auf einer Scheibe gefriert. Oder wenn viele Flüsse ins Meer münden, von oben gesehen. Betrachte diese Linien als einen Baum. Was hat der Graph für eigenschaften wenn er von fraktalen Strukturen kommt? Was könnte man noch tun?

- LOTTO gab es schonmal eine Ziehung mit den gleichn Zahlen? (Reihenfolge unwichtig)
welche Ziehungen haben die kleinste (Eukildische) Distanz?
- LOTTO was sind die vielfachen (Vektoren) der Ziehungen? (Das was aus einer Matrix raus kommt sind vielfachen der Spaltenvektoren)
- LOTTO Winkel zwischen zwei Strahlen (Ziehungen) in ND (6D) (libgeometry)
- LOTTO Lottozahlen als Merkmalsvektor betrachten und Ziehungen nach Klassen/Kategorien sortieren
- LOTTO Vektorfelder geeignet fuer mehrdimensionale Daten? Wie die Abhängigkeit der Zeit einbauen?
- LOTTO: Starplot anfertigen. Schwingungen zu sehen?
http://www.cs.waikato.ac.nz/~fracpete/programming/csv2gnuplot/
./csv2gnuplot.sh -i testdata.csv -o test.dat -g test.scr -xtl

set polar
set size square
unset border
set format x ""; set format y ""
set xtics scale 0; set ytics scale 0
set grid polar 2.0*pi/5.0
set xtics 10
unset key
set style data linesp
plot [0:2*pi][-50:50][-50:50] "test.dat" u (2*pi*($1-1)/5.):2 with lines
replot "test.dat" u (2*pi*($1-1)/5.):3 with lines
replot "test.dat" u (2*pi*($1-1)/5.):4 with lines
replot "test.dat" u (2*pi*($1-1)/5.):5 with lines
replot "test.dat" u (2*pi*($1-1)/5.):6 with lines
replot "test.dat" u (2*pi*($1-1)/5.):7 with lines
replot "test.dat" u (2*pi*($1-1)/5.):8 with lines

- LOTTO: Alle bis auf eine Ziehung in die Zeilen einer Matrix. Letzte Lottoziehung als RHs Vektor. Gleichnungssystem lösen und x merken. Nach der nächsten Ziehung wiederholen. Wie sehen die Lösungsvektoren aus. Gemeinsamkeiten?
Matrix Zeilen = Ziehungen. Spalten gleich Zahlen der Ziehung. x = neue Ziehung. B = ??
Siehe Vectoren Veranschaulichtung http://www.youtube.com/watch?v=uG6diRK0YWY&list=EC109F38D427C40927&index=45

- Primzahlen <-> Oberwellen Zusammenhang?

einem robusten, noch einfachen Generator (Bild 1), wurde durch zwei zum Teil Wechselstrom-, zum Teil gleichstromgesättigte, für die Maschinenfrequenz gegengeschaltete Transformatoren der Primärstrom durch die Eisensättigung derart verzerrt, daß man über einen abgestimmten Kreis die zwei-, drei- oder fünffache Frequenz entnehmen konnte.

http://www.seefunknetz.de/meissner.htm

- Primzahlen in PI finden? Sie werden oft drin vorkommen. Abstand von den Vorkommen messen?

* FOR RUNNING THE PROGRAM
*
* -- _ _ // \\
* -- | |-- ||_
* -- |__) (____)
* ************************/

- die pixel an einer kante im bild, oder in einer halbwegs homogen farbene flaeche koennten wie die pixel beim dithering verteilt sein. zoomt man raus, erscheinte ein rot und blaues pixel als lila. andersrum: zoomt man stark in ein bild rein, erkennt man aus welchen unterschiedlichen farben das bild an der stelle besteht. vllt kann man diese pixel muster rueckgaenig machen zu einer einzlenen farbe, damit algos die z.b. den rand eines objekts suchen und nur anhand eines pixels entscheiden es einfacher haben

- http://de.wikipedia.org/wiki/Dithering_%28Bildbearbeitung%29

- MD5. md5 hash erzeugen mit nur Kleinbuchstaben, Großbuchstaben, Zahlen, Alle Zeichen mit Plaintext der Länge 2 bis z.b. 8 Zeichen. Den Hash als Harmonische Schwingung betrachten. Jedes Zeichen entspricht einen y-Wert. Dann Fourieranalyse um die Frequenzen zu bekommen.
Vllt. finden sich 'hnlichkeiten in den Frequnzen von Plaintexte die nur 3 Buchstabend lang sind.

- Mit Qt/OpenGl ein Testsystem schreiben, was unterschiedliche Beleuchtungen simulieren kann. Mit XYZ Farbraum experimentieren.

- mal ein Programm schreiben was Farben sortieren kann
W3 definition von farb differenz http://www.w3.org/TR/AERT#color-contrast

- http://www.kernel.org/pub/linux/status/powertop/ http://www.lesswatts.org/

- hmmm supermonotome muenzfolgen. mathematik ist schon lustig
ersetzte muenzen durch primzahlen und man hat ein schneller faktiorisierungsalgo fuer ganz bestimmte grosse zahlen

- T = 260905131209030824070508050913
Nun ist T im allgemeinen keine Primzahl, aber man kann immer durch Anhängen von ein paar zusätzlichen Ziffern - in diesem Fall z.B. 000257 - eine Primzahl p = 260905131209030824070508050913 000257 erhalten. Echt? Wann mag das wohl gehen. immer mit einer 000257?

- UV statt HSV für Farberkennung

- Anzahl der Ergebnisse von Primfaktoren. Bestimmte Anzahl bildet alle Zahlen in einem bestimmten Intervall. Die wirkliche Anzahl der Zahlen in diesem Bereich ist größer. Differenz ist die Anzahl der Primzahlen.

- Mathe Script Tangenialebene. Volumen Dose möglich in 2D. Pytagoras Ähnlichkeit; Käsestück

- Interferenz von Wellen. Energieauslöschung -> Energie aus dem Nichts ;Zufallsbild von Primzahlen -> Muster aus dem Nichts.

- LED -> Thermosensor; Licht -> Wärme

- Houghraum: Primzahlbild stellen Geraden dar (Aha was ich nicht so alles weis)

- Riemannsche Mannigfaltigkeit wtf? http://de.wikipedia.org/wiki/Riemannsche_Mannigfaltigkeit

- Um Rauschen im Bild zu verhindern -> BIt 0 bis 3 auf 0 setzen. Dadurch verschwinden auch Farben

- Brauchbare Definition für Farbe?: Im 3D-Farbwürfel die Ecken als Kegel vom Mittelpunkt des Würfels aus. (Graudiagonale)

- Konvexe Hülle über ein Histogramm um Peaks zu finden

- gnuplot> plot [0:1] (sin(3.14*x - 3.14/2))**3
Endlich eine Kurve gefunden, die mein Primzahlen beschreibt
http://oeis.org/ da findet man vllt eine formal fuer eine sequenz wenn obrige formal mal normiert wird. oder so

- Datenhandschuh mit den neuen Winterhandschuhen erstellen :>

- Raytracing benutzen um in einer 3D Scene Lupen-Kugeln und sonstiges zu benutzen. Und Rand/Mittelpunktstrahl berechnen, damit man den Brennpunkt findet.

- Scalarprodukt ermöglicht die Zerlegung eines Vektors in seine Einzelkomponenten. Siehe 4 = 2+2, 1+3 => Vllt. Zerlegung als Vektor möglich.

- Mittelwert mehrere Dunkelbilder der alten Webcam bilden. Koordianten der Pixel notieren, deren Wert deutlih über dem Mittelwert liegen. Bei diesen Pixel im normalen Betrieb dann eine Nachbearbeitung durchführen. Vorerst einfach den Mittelwert der 8ter-Nachbarschaft. Das sollte die "toten" Störpixel, und nur die, eleminieren.

- Histogramm als Graubildzeile betrachten für Glättung bzw. finden der Peaks. <-- Was zum Teufel hab ich mir damals dabei gedacht? - endlich mal Ultraschall Abstandmessgerät bauen http://www.micro-examples.com/public/microex-navig/doc/090-ultrasonic-ranger.html

- Ameisenschwarm simulieren die den kürzesten Weg findet

- Lego Anitmation machen http://www.youtube.com/watch?v=4qsWFFuYZYI&NR=1

- ein paar fluffige suesse kleine (Wolken, Blumen, Sonne) malen und animieren

- Ein Programm schreiben welches sein eignen Speicher ausliest und mit 7-Segment Anzeige mit OpenGL wieder darstellt.

- TopHat auf Primzahlreihen anwenden um die Steigung los zu werden

- Fouriertransformation Histogramm

- ~/primzahlengefluester

- Histogramm glätten nach Scharfenberg Script

- http://www.cartoonland.de/archiv/zukunftsvision-2014/ das auf Minute 1:29 mit Webcam

- Qt Puzzel Example. BV Programm welches das wieder zusammen puzzeln kann. Man muss nur die Ränder beachten

- Histogramm rosten lassen

- vgrabbj fuer die Webcam

- Schoeneweihnachten auf ein AVR uebertragen, siehe lftkryo

- Ein rießen großes Feld in 3D mit umgedrehten Mahjong Steinen :D (Saki 2)

- Mein alter Labeling Algo. Untersuchen (BUHA wie ging das nochmal)

- Dvorak

- welche Schleife benutzt memcpy?

- Den Assemblercode ansehen, der vom gcc bei vielen verschachtelten structs produziert wird. bjoernc #roboter
http://en.wikipedia.org/wiki/C_preprocessor#X-Macros
http://liw.iki.fi/liw/texts/cpp-trick.html"

- AVR Simulator mal anschauen

- Autoplay Programm (Qt) für dieses Spiel schreiben http://www.netzwelt.de/forum/arcade/game/1146-bubble-shooter-online.html

- BV Iris Analyse

- RGB Histogramm von Sternen

- Bitebenen <-> FFT

- gcc prefetch Anweisung bei der Matrixmultiplikation (Faltung) testen

- Hohlraumresonator Gleichungen beschreiben die Eigenschaften eines Laserstrahls inner und ausserhalb des Resonators

- mittleres Verschiebungsquadrat

- Qt Modelviewer & OpenGl Code analysieren
http://qt.gitorious.org/qt-labs/modelviewer

- Surfacetable Pascal

- Trajektorien ins Bild gezeichnet. Fouriertransformation. Richtungsanalyse.

- Webcam Treiber, FPS ändern

- Ascii Art AA BB nach c++ portieren

- Deckenbeleuchung mit einer kleinen Kamera aufnehmen und als Orientierung benutzen wenn sich die Kamera dreht
- GEMS lesen

- Programm schreiben, welches den "Optical Flow" erkennt http://www.centeye.com/pages/techres/opticflow.html (Ableitung nach der Zeit und X, nach der Zeit und Y)

Erledigt

- gcc struckt aligmnent, sortiert der Compiler die Variablen um bei angeschalteter Optimierung?
Hab die Option fuer die Sortierung nicht gefunden. Allerdings etwas ueber das Padding. Mit -fpack-struct=2 oder =1 kann man es abschalten. Dann werden die Variablen im RAM dichter zusammengepackt. Spart Speicher, kostet Geschwindigkeit.

- Farbkontrast. Wikipedia hat ein paar Artikel dazu
http://de.wikipedia.org/wiki/Farbkontrast
http://de.wikipedia.org/wiki/Komplement%C3%A4rkontrast

Ich denke Komplementärfarben sind das richtige für mich. Also Farben wo der Kontrast stark ist. Blau - Gelb. Rot - Cyan. Grün - Mangenta.
Im Farbkreis, HSV Farbraum, kann man dann die Abstände der Winkel nehmen um einen Wert für den Farbkontrast zu bekommen.

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

You must be logged in to post a comment.

Powered by WordPress