flashpixx
Mitglieder-
Gesamte Inhalte
8302 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von flashpixx
-
versteckte Unix-Dateien auch unter Windows nicht anzeigen lassen
flashpixx antwortete auf spellsleeper's Thema in Windows
Du musst nur versteckte Dateien ausblenden, das ist eine Option des Explorers -
Nein es muss ein reales Projekt sein, vor allem kann der PA während der Durchführung sich das vor Ort auch anschauen.
-
Ich denke das ist eine Sache was Du da genau zum Training verwendest, es müssen ja nicht zwingend nur die 2D Pixeldaten sein. Theoretisch kannst Du ja einen Vektor beliebig aufbauen, d.h. z.B. Bilddaten und z.B. Filterdaten zu dem gleichen Pixel. Müsste man sich halt überlegen was da relevant ist und Sinn macht. Du müsstest halt "Merkmale" definieren mit denen Du arbeiten kannst Genau deshalb gib mein Gedanke in Merkmalserkennung. Die trainierten Daten (können) ergeben eine Voronoi-Triangulation, so dass Du diese ggf direkt weiter verarbeiten kannst Das Problem dabei ist, die Eindeutigkeit der Lösung zu garantieren. Bei der SOM ist definiert, dass das Gitter den Datenraum mit einem minimalen Fehler abdeckt. Bei Dir kann es passieren, dass der Bewegungsvektor nicht eindeutig ist. Durch Simulated Annealing wirst Du ein Polynom bestimmen können, aber wenn Du diese Polynome bestimmst, dann wirst Du wenn Du von t nach t+1 gehst ggf eine positive Bewegungsrichtung haben, wenn Du das Polynom von t+1 nach t bestimmst eine negative. D.h. musst hier garantieren (für den Vergleich), dass es invariant ist. Ich würde wohl eher einen Wavelet nehmen, da das im Bild "lokale Strukturen" sind und nicht wie ne FT global. Evtl wäre die Überlegung die Daten aus t und t+1 und ggf einer Wavelet-Transformation von t und t+1 als einen Merkmalsvektor zu verwenden. Denn man würde ja annehmen, dass der Vektor den mal in t verwendet in einem Merkmalsraum nur wenig von dem gleichen Vektor t+1 entfernt liegt. Evtl würde es sogar ausreichen einfach die Distanz zwischen diesen Merkmalsvektoren zu bestimmen. Ich würde evtl wirklich mal von der menschlichen Sichtweise drauf schauen und die Frage stellen, wenn ich mir 2 Bilder anschaue, an was ich erkenne, dass zwei Sterne gleich sind und nach dieser Frage ggf Merkmale definieren.
-
So wie ich Dein Problem verstehe hast Du doch 2 Bilder, also ein Bild zum Zeitpunkt t und eins zum Zeitpunkt t+1 und die sollen möglichst aufeinander passen. Meine Überlegung wäre jetzt, dass man eben eine SOM nimmt und ein Gitter trainiert, wenn man das mit dem gleichen Bild macht, sollten ähnliche Gitter heraus kommen (Achtung, das ist ein heuristisches Verfahren). Ich trainiere aber ja mit den zwei Bilder, Zeitpunkt t und t+1, d.h. ich bekomme nach dem Training zwei unterschiedliche Gitter heraus und nun könnte man versuchen die Knoten des Gitters zu matchen. Die Knoten des Gitters sollten sich an "charakteristische Merkmale" der Daten binden, also z.B. extrem helle Sterne. Bildlich gesprochen würde man versuchen die Bilder anhand ähnlicher Sternstrukturen zu matchen. Aufgrund der Kanten des Gitters bekommst Du dann auch im Grunde die Verzerrung mitgeteilt. Ist aber nur eine reine theoretische Überlegung. Ich stelle mir das so vor, dass Du eben zu zwei Zeitpunkten Bilder vom Sternenhimmel hast und z.B. charakteristische Gruppierung finden willst. Da sich durch entsprechende Bewegung der Planeten die Strukturen verändern können, kann man ja nicht auf == (equal) matchen, sondern muss nach einer Struktur suchen, die "ähnlich" ist. Sprich ich würde in den Bildern ähnliche Sternenformationen suchen. Wenn ich nun das eben auf zwei Datensätze mache mit der gleichen Gitterstruktur und -punktenanzahl, dann sollte ich eben zwei Gitter bekommen, die sich an den gleichen Merkmalen im Bild orientieren. In dem Fall würde ich dann im Prinzip Gitter matchen und nicht Bilddaten, da aber das Gitter die Datenraum "optimal" abdeckt, müsste sich daraus dann auch in den Originaldaten die Bewegung rückrechnen lassen z.B. würde der Gitterpunkt (2,3) im ersten Datensatz dann auf den Gitterpunkt (2.4, 3.9) abgebildet. Durch die Gitterstruktur bleibt dann aber auch direkt die Nachbarschaftsbeziehung der Sternbilder erhalten.
-
Was haltet ihr von meiner Projekt-Idee?
flashpixx antwortete auf Avalax's Thema in Abschlussprojekte
Über was für einen Router reden wir? Größenordnung wie z.B. bei Cisco Geräten oder eher so ein SoHo Speedport den es bei der T-Kom gibt !? Sorry aber wenn Du nun beschreibst, wie man bei einem Speetport die Userdaten einträgt, dann ist das wohl etwas übertrieben, denn jedem Gerät liegt ein Handbuch bei, das man als Kunde auch lesen kann. -
[PHP] Programmierideen
flashpixx antwortete auf Shadowman's Thema in Skript- und Webserverprogrammierung
gibt es Net_SMTP Manual :: Mail -
Bitte lies das was ich geschrieben habe genau. Der Compiler kann gewisse Punkte optimieren, aber das was Du anführst sind Optimierungen auf der "untersten" Ebene, sprich der Ebene der Speicherallokierung / -benutzung. Wenn ich dem Compiler z.B. eine Cluster (Informatik) Analyse in Code gebe, dann wird er mir das nicht automatisch auf mehrere Cores / Threads optimieren können. Die die Algorithmen hier iterativ sind, wird eine Datenflussanalyse nicht viel Optimierung sichtbar machen. Optimierung auf der Befehlsebene ist recht ineffizient, im Gegensatz dazu, was der Mensch auf Algorithmusebene leisten kann
-
Wenn es wirklich um das Erlernen geht würde ich immer wieder Pascal (Programmiersprache) empfehlen, das unter Free Pascal - Advanced open source Pascal compiler for Pascal and Object Pascal - Home Page als freie Implementierung gibt. Gerade für einen Anfänger würde ich von einer GUI Arbeitsweise abraten, sondern wirklich das klassische EVA-Prinzip über die Konsole erlernen (Vielleicht dazu dann noch passend ein Buildsystem z.B. SCons: A software construction tool ). Ich sehe bei Pascal die sehr strenge Struktur inkl der daraus resultierenden Sicherheit durch den Compiler definitiv als Vorteil für einen Anfänger. FreePascal im speziellen ist für verschiedene Plattformen erhältlich, so dass man damit auch recht gut Code portabel gestalten kann. Möchte man später dann zu GUI gehen, wäre Lazarus dann eine Erweiterung. Ich habe selbst mit Pascal begonnen und auch sehr gute Erfahrung gemacht einem Anfänger damit relativ zügig ein Werkzeug an die Hand zu geben, mit dem man durchaus zu einem Ziel kommt und vor allem, das nicht überladen ist. Als Editor für Windows kann man ohne Probleme Notepad++ Home nehmen oder unter OSX z.B. XCode bzw Linux Geany : Home Page
-
Da muss ich ja direkt zustimmen, das stimmt in den meisten Fällen Ich denke um auch zum Thread zu kommen, dass das eigentlich der wichtigste Punkt ist: Ich wähle die Sprache anhand der Problemstellung und ich codiere nicht mein Problem in einer Sprache die ich kann (wenn ich z.B. logische Strukturen brauche, dann nehme ich sicher nicht C++, sondern Prolog). Das ist auch klar und sehe ich ebenso, nur ist über die letzten Jahre bei mir der Eindruck, dass man lieber am "Entwickler spart und lieber Hardware drauf wirft". Ich denke der Punkt liegt in beiden Bereichen, ich muss für die Hardware, die ich habe, einen sinnvollen Algorithmus in einer dafür passenden Sprache entwerfen. Mein Eindruck ist leider, dass eben Sprachen wie PHP oder Java gerne genommen werden, weil es aktuell "state-of-the-art" ist oder weil sie eben im Moment eine Boomphase haben, anstatt zu überlegen ob es Sinn macht sie zu verwenden. Full Ack, wobei ich sagen muss, dass es "manchmal auch die Mischung" macht. Ich habe hier den Fall, dass der Algorithmus in C++ geschrieben ist, aber zusätzlich eine Anbindung via Java möglich ist, sprich Java callt die native Funktion aus der DLL. Die Daten werden lediglich von Java in C++ Datentypen übertragen (vice versa). Die Umwandlung sind bezüglich der Performance Konstanten und somit vernachlässigbar. Ich bin der Meinung, dass es heute wichtig ist, wie man ein gesamtes System / Modell so weit abstrahieren kann, dass man möglichst gute Performance und dazu auch eine gute Codebasis schafft. Z.B. wie in dem Fall, die Verbindung aus zwei Sprachen, wobei natürlich das ein wirtschaftlicher Aspekt ist, denn ich brauche hier das Know-How von Entwicklern, die beides können. Nein, der Compiler kann einen Algoritmus nicht optimieren, der Compiler kann nur den Code optimieren z.B. kann der Compiler Nebenläufigkeiten nicht automatisch erzeugen. Optimierung muss in erster Linie auf der obersten Algorithmusebene statt finden, der Compiler optimiert nur auf Maschinenebene. Das ist definitiv so, Bitschubserei sollte man definitiv nicht machen. IMHO muss ich mir Gedanken machen, wie mein Problem strukturiert ist, danach die passende Sprache mit den passenden Datenstrukturen wählen, um das Problem zu lösen und darauf aufbauend, wenn das Problem gelöst werden kann, evtl eine passende API entwerfen, um die Anbindung flexibel zu halten
-
Ich habe hier Problemstellungen in denen die Datenmenge, mit der der Algorithmus arbeitet quadratisch zur Eingabemenge wächst, d.h. ich bekomme durchaus in Speicherbereiche, bei denen es gar nicht mehr möglich ist, es durch das "Nachschieben eines neuen Ramriegels zu lösen". Weiterhin muss ich die Daten, die im Speicher liegen alle immer präsent haben, um eine schnelle Berechnung zu gewährleisten, d.h. da macht es durchaus Sinn zu überlegen, wie die Daten konkret im Speicher abgelegt sind, um eben eine schnellstmögliche Abarbeitung zu erhalten. Und genau dieses Problem ist z.B. mit Java durchaus ein Problem, denn jedes Mal, wenn ich Daten als Objekte repräsentiere und mal eben neue Objekte erzeuge, die einfach eine Kopie der Daten im Memory erzeugen, dann wird mir die Anwendung ganz schnell den Speicher bis ans Maximum verbrauchen, denn der GC wird ja nicht sofort den Speicher bereinigen. Sprich Speicherallokierung und Anordnung der Daten im Ram sind durchaus Punkte, die zur einer effizienten Lösung wichtig sind. Man kann eben nicht einfach sagen "macht ja der Interpreter und wenn der Ram nicht reicht, dann schmeiss einfach mehr Speicher druff"
-
Ich muss das einfach mal ergänzen, weil's so schön ist siehe Intelligenter Zeiger Das stimmt, wobei man da natürlich immer hinzufügen muss, dass man durchaus aus C++ evtl C Bibliotheken verwenden kann/muss und da muss man häufig eben mit Pointern arbeiten (kann man zwar durch Smartptr kapseln) Ja und Nein. Das Problem das ich sehe ist, dass sich heute nur noch wenige Programmierer Gedanken über Speicherverbrauch (z.B. Reference-Counting o.ä.) machen und sich auf das Speichermanagement des Interpreters verlassen. Gerade in den Interpretersprachen ist nicht immer das Entfernen der Objekte (Dtor Aufruf) deterministisch. In diesen Punkten wäre wäre es schön, wenn man als Anfänger wirklich einmal lernen kann, was passiert da überhaupt alles im Speicher wenn ein Objekt erzeugt wird, wie wird die Vererbung überhaupt speichertechnisch abgebildet ( Tabelle virtueller Methoden ) etc. Mit diesem Backgroundwissen denke ich, wäre es möglich in einer Sprache, die den ganzen Speicherzugriff kapselt eben Fehler zu vermeinden.
-
Unter einen Cluster, verstehe ich mehr als 2 Rechner ( Rechnerverbund ). Also nach der Beschreibung ist da nicht viel Inhalt in dem Projekt. Vielleicht solltest Du mal ein paar mehr Infos zu den Projektdetails posten, dann kann man dazu auch was sagen
-
Diese Einschränkung ist sehr flach gewählt, selbst manche Paradigmen lassen sich nicht übertragen, z.B. wie realisiert man Mehrfachvererbung in Java, in C++ ohne weiteres möglich. Ja kann man. Und in Python kann man extrem unleserlichen Code schreiben
-
Was ist denn der genaue Inhalt des Projektes, "Clustering" ist etwas unspezifisch
-
keine wirtschaftlichen und fachlichen Entscheidungen, das ist lediglich ein Installationsprotokoll was gemacht werden soll.
-
Wenn es dynamisch sein sollte, dann muss man das HTML eben noch mit dynamischen Strukturen wie z.B. jQuery ausstatten (einmal Daten lesen und dann nur darstellen). Wenn es in Echtzeit sein soll, dann muss es ein "serverseitiges" Skript sein, dass das AD on-fly ausliest
-
Da ich Scons (Python) als Buildsystem nutze, habe ich mir CLang (mit LLVM) und den dazugehörigen Python Bindings installiert, damit kann ich dann die C++ Code parsen und direkt in Scons verarbeiten, z.B. kann ich Namespaces, Klassen, Methoden, Variablen extrahieren, da ich direkt auf den AST (abstract syntax tree) zugreifen kann.
-
Bevor man über die sprachliche Auslegung der Aufgabe philosophiert kann man auch beide Diagramme entwerfen, bei einer so kleinen Aufgabe sollte das möglich sein und außerdem ist es eine sinnvolle Übung.
-
Du brauchst keine Schleifen, um den korrekten Gebührensatz zu berechnen. Mit ein bisschen Mathematik (+-*) lässt es sich ausrechnen. Oppi hat es im Post #5 einmal per Hand aufgeschrieben und das kann man fast genauso umsetzen.
-
In der Beschreibung sind auch einige interessante Punkte drin, jetzt ist nur die Frage, wie man das technisch umsetzt, so dass man flexibel ist bei den Rules. Aktuell arbeite ich mit Scons, so dass man einen entsprechenden Builder implementieren kann. Die Frage ist, wie man die Regeln zur Prüfung definiert. Ich hätte da gerne etwas abstraktes. Es gibt für den Google Style ein fertiges Python Script unter https://code.google.com/p/google-styleguide/ was aber eben nur den Google Style prüft
-
Hast Du dafür eine Quelle? So etwas klingt sehr gut. Aktuell muss ich eine eigene IDE entwickeln, in der Lua programmiert wird. Die IDE selbst wird in C++ mit Qt entwickelt, zusätzlich kommt dazu noch ein Dämon, der die Berechnungen durchführt und eine Datenbank, die IDE mit Service verbindet. Die Datenbank enthält Trigger, Stored Procedures, die IDE eben die ganzen Qt Strukturen und der Service ist Multicore (MPI) und Multithread als crossplattforme Software ausgelegt. Zusätzlich können in die IDE, wie auch den Service DLLs als Plugins eingebunden werden. Als Buildsystem nutze ich Scons, das Python basiert ist (und auch durch Programmierung erweitert wird). Die IDE für die Entwickler ist somit völlig individuell (ich persönliche nutze XCode unter OSX). Im Moment prüfe ich z.B. Kommentierung via Doxygen bei den Git Hooks, aber um die einzelnen Code Strukturen zu prüfen und in die Hooks einen Check zu implementieren, bin ich noch nicht gekommen. Hätte da jemand einen Vorschlag? Ich möchte halt vermeiden, dass das der Code aus dem Ruder läuft, weil ich wechselnde und unterschiedliche Entwickler habe und manuell das zu prüfen, ist jetzt kaum noch möglich. Mir würde es erst einmal reichen, wenn ich C++ Codes auf Styleguides prüfen kann, d.h. Benennung, Einrückung etc. D.h. ich bräuchte eine schnell zu konfigurierende technische Möglichkeit. Pair-Programmierung finde ich eine sehr gute Idee, das möchte ich auf jeden Fall umsetzen, aber ich brauche zusätzlich eine technische Unterstützung.
-
Die Links kenne ich schon und nutze ich auch. Die interessante Frage wäre, was für Guides würdet ihr verwenden, wenn man unterschiedliche Entwickler mit unterschiedlichen Kenntnissen und noch aus unterschiedlichen Sprachen hat. Sprich vom Anfänger bis zum professionellen Entwickler alles vertreten ist. Ich fange einen Großteil der Styleguides durch meine Hook im Repo ab, aber aktuell möchte ich einige Punkte überdenken, da ich festgestellt habe, dass Anfänger sich mit manchen Dingen schwer tun. Die optimale Lösung gibt es ja eh nicht, nur halte ich es auch nicht für sinnvoll einem Anfänger einfach eine Doku an die Hand zu geben und zu sagen "lies es und halte dich dran". Ich kann alle Punkte, in meinen Styleguides erklären, d.h. warum welche Punkt sinnvoll sind, nur gerade bei Anfängern stelle ich häufig fest, dass sie immer nur einen Ausschnitt der Regeln real umsetzen, so dass z.B. Code oft nicht ohne Hilfe ins Repo eingecheckt werden können.
-
Danke Pixie, GhostDoc kannte ich nicht, aber ist mal etwas nettes. Ich suche im Moment ein paar sinnvolle Ideen, die dann verwenden kann. Da ich C++ inkl Datenbank für eine cross-plattform Software verwende, brauche ich eben einen Styleguide, der auf allen Plattformen funktioniert und auch zu gleichen Ergebnissen führt (z.B. UTF8 für die Quellcodedateien). Was ich noch machen möchte, da ich mit Git arbeite mit Hilfe der Githooks im zentralen Repo eben die Codes überprüfen möchte und Pushes ablehne, die nicht dem Standard entsprechen. Benennung kann man mit Hilfe von regulären Ausdrücken prüfen, die Ausgabe von Doxygen kann man verwenden um fehlende Kommentierung zu finden, Einrückung wird aber schon etwas schwieriger, weil dafür eine Typ-2 Grammatik braucht
-
@runtimeterror: Vielen Dank, Deine Beschreibung ist im Grunde fast identisch zu meiner, nur dass ich da ich aktuell mit C++ arbeite, noch ein paar Sachen verändert habe. Ich benutze noch zusätzlich für die Benennung von Variablen / Member eine von der ungarischen Notation abgewandelte Form: Alles was als Parameter in eine Methode hinein / hinaus geht, wird p_, Member mit m_ und lokale Variablen l_ als einem Prefix bezeichnet, und ich nutze eben Doxygen für die Kommentierung, was aber Javadoc ähnlich ist. Ich nutze generell keine Tabs, sondern diese werden in 4 Spaces umgewandelt. Gerade bei Python können Tabs & Spaces durchaus auch zu fehlerhafter Codeausführung führen. @pintman: Die Smalltalk Beschreibung deckt sich ja zum größten Teil mit dem was runtimeterror beschrieben hat
-
Mir ist beim Drüberlesen der Thread noch eine Idee gekommen. Als Denkanstoß hätte ich Selbstorganisierende Karte diese arbeitet auf einem 2D Gitter, was anhand der Daten entsprechend im Raum optimiert wird. Für das Gitter verwendet man z.B. auch Hexagonale Strukturen etc, sprich die Wahl des Gittermodells ist abhängig von den Vektorraum, der verwendet wird. Sprich wenn die Daten Deiner Bilder zum Training des Netzes verwenden lassen, dann kannst Du nach dem Training aus der Struktur des Netztes ermitteln. Ich würde hier evtl nicht von einem eigentlichen Bild ausgehen, sondern aus dem Bild "charakteristische Datensamples" erzeugen, mit denen ich das Netz trainiere.