
flashpixx
Mitglieder-
Gesamte Inhalte
8302 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von flashpixx
-
Nutze z.B. IMAP
-
Es geht auch mit regulären Ausdrücken sofern diese vom Editor unterstützt werden. Im Wikipedia Artikel ist sehr gut beschrieben, wie ein Ausdruck erstellt wird
-
Lies Dir die Manpages zu den anderen beiden Befehlen durch !!
-
Fluss pro Sekunde aus einzelnen Flüssen (1/15 s) berechnen
flashpixx antwortete auf Tornado's Thema in Algorithmik
Die stehen die Positionen nur zu den diskreten Zeitpunkten zur Verfügung, d.h. was dazwischen ist, ist formal erst einmal nicht definiert. Wenn die Objekte eine "Bahn" beschreiben sollen, dann musst Du Dir eben überlegen was Du zwischen den Diskretisierungspunkten machst (Stichwort Interpolation). Da Du mit 15 Hz diskretisierst, solltest Du auf das Abtasttheorem achten. Wie sich nun die Simulation eben für eine ganze Sekunde verhält, sprich Du musst mehrere Punkte zusammenfassen, musst Du Dir überlegen, denn das ist domänenspezifisch. Wie Du nun diese Zusammenfassung berechnest, also ob nun die Stützstelle der gröberen Interpolation nun am Anfang der feineren, in der Mitte oder am Ende liegt, musst Du ebenfalls abhängig von Deinen Daten. Bsp: 1, 2, 3 => 0.5*(1+2), 0.5*(2+3) => 1.5, 2.5 In diesem Fall liegt die neue Stützstelle zwischen zwei anderen. Man kann gewichtet, äquidistant oder im Grunde frei definiert arbeiten. Letztendlich kommt es auf die bestehende Diskretisierung an, wie und was man interpoliert. Ja nach Komplexität der Bewegung wäre auch eine Beschreibung als DGL sinnvoll, die man dann entsprechend visualisiert. Theoretisch wären aber auch distanz- / topologiebasierte Visualisierungsverfahren eine weitere Möglichkeit. Letzteres wäre bei größeren Datenmengen empfehlenswert. Du sprichst in Deinem ersten Post von "Fluss", dafür gibt es entsprechende Definitionen: Fluss (Physik) Was man letztendlich sehr vereinfacht als Bewegung von Objekten durch eine Fläche pro Zeiteinheit ansehen kann. Zusätzlich noch Diffusion Ebenso, wenn die Objekte sich im Raum bewegen auch Brownsche Bewegung Eine reine Bewegung eines Objektes ist kein Fluss. Ohne die Daten und das was Du letztendlich auswerten möchtest zu kenne, wird man hier nicht viel Informationen geben können. Ich meine Du kannst den Pfad jedes Objektes entsprechend visualisieren, wobei Du dann natürlich zwischen zwei Diskretisierungspunkten passend interpolieren musst. -
Fluss pro Sekunde aus einzelnen Flüssen (1/15 s) berechnen
flashpixx antwortete auf Tornado's Thema in Algorithmik
Doch es gibt Werte zwischen t und t+1, denn eine Bewegung ist etwas kontinuierliches und nichts diskretes: Bewegung (Physik) was man dann mit Hilfe einer Differentialgleichung beschreibt Einer Bewegung liegen mehrere Kräfte zu Grunde, die auf ein Objekt einwirken z.B. Beschleunigung, Reibung, Masse, etc. Die Simulation einer Bewegung eines Objektes wird mit Hilfe der DGL beschrieben, wobei man dafür dann einen Solver verwenden kann, um die Bewegung zu simulieren. Diese Solver nutzen numerische Verfahren (letztendlich die Lösung von Integralen), um die Bewegungsbahn des Objektes zu berechnen. Der Solver muss aber Kenntnisse über die DGL haben und anhand der Simulation muss man den passenden Solver wählen. Ein einfacher Solver ist z.B. Eulersches Polygonzugverfahren -
Fluss pro Sekunde aus einzelnen Flüssen (1/15 s) berechnen
flashpixx antwortete auf Tornado's Thema in Algorithmik
Wenn Du die Zeit äquidistant diskretisiert hast, dann kannst Du via Summierung eben die Zeitschritte zusammenfassen. In Deinem Fall also 15 Elemente entsprechend einer Sekunde. Natürlich solltest Du Dir Gedanken darüber machen, wie sich pro Diskretisierung das ganze verhält, sprich Du musst schon das Abtasttheorem erfüllen, damit Du die Daten korrekt erfassen kannst. Nach Deiner Beschreibung würde ich darauf tippen, dass Du das Theorem nicht erfüllst, aber im Grunde fehlen in Deinem Posting diese informationen -
man find, man awk, man sed
-
Kenne ich von Postgres, da kann ich Python verwenden, aber letztendlich wird auf den installierten Interpreter gesetzt. Aber wenn ich zu dem Schluss komme, dass z.B. eine SP schlecht läuft, wäre die Frage liegt es evtl am Algorithmus, dann wäre es ja eher Ziel den Algorithmus zu ändern. Wenn es nicht am Algorithmus liegt, wäre mein Ansatz es nach C/C++ zu portieren und sich direkt an die API der Datenbank zu hängen. Damit ist man dann auf nativer Ebene. Und falls man doch bei Java bleiben will wäre eine Mischlösung JNI. Ich sehe nicht wirklich ein Argument für so einen CPU, denn letztendlich würde man ja sagen "du kannst die SP in Java schreiben", wenn ich dann Performance will, dann nutze ich eben eine andere Lösung und z.B. keine reine Javalösung.
-
Nein, so habe ich das auch verstanden. Die Frage wäre halt, warum soll ich "Spezialhardware" kaufen, wenn ich durch ein entsprechendes Konzept in der Entwicklung diese nicht brauche Naja eigentlich nur den Cross-Compiler mit entsprechend compilierten Libs. Es stimmt schon, dass man gerade bei cross-platformen Dingen mit Java weniger Arbeit hat, aber ich erkaufe mir dieses weniger eben durch die JRE bzw eben dann durch spezielle Hardware. Das müsste ich dann aber für PHP, Python auch machen, d.h. ich habe nachher für jede Sprache einen eigenen CPU. Finde ich jetzt eine gruselige Vorstellung. Ich meine eine Abstraktion in der Sprache ist letztendlich immer mit einer zusätzlichen Schicht und damit durchaus mit Performanceeinbußen verbunden. Natürlich gewinne ich, dass ich mich nicht um die plattformspezifischen Details kümmern muss. Aber ich sehe da eigentlich kein Problem, denn z.B. bei C++ kann ich cross-plattform arbeiten, denn C++ ist ja erst einmal an sich auf jeder Plattform lauffähig sofern ich einen passenden Compiler habe. Z.B. ermöglicht mir die Boost die gewünschte Abstraktionsschicht z.B. bei Netzwerkzugriffen oder beim Threadding, aber sie wird nativ für die Plattform übersetzt (für GUI wäre dann z.B. Qt eine Möglichkeit). Ich meine, wenn ich in Java irgendwelche Komponenten benötige dann nehme ich eine weitere Jar und lege sie in den Classpath und greife eben auf die Klassen zu. Auf der Bytecodesicht ist das doch nichts anderes als dass eben die JRE eine "Bibliothek laden" muss. Für mich erschließt sich nicht der Sinn, warum man eine spezielle Hardware für eine spezielle Sprache haben sollte, ich kann doch mit der aktuellen Hardware alles was ich benötige abbilden und z.B. C++ ist zur Compilezeit Turing-complete. Spezielle Hardware ist doch nur sinnvoll, wenn es die Problemstellung erfordert.
-
Ack, nur wenn ich da letztendlich optimieren möchte, dann würde ich eben direkt passenden Maschinencode erzeugen, also sprich C/C++ nehmen und passend für meine Architektur compilieren. Warum soll ich dann einen "Umweg" über Java machen, wenn ich eben "perfekten Code für meine Architektur brauche" !? Ich denke das Argument in Java kann man besser cross-plattform arbeiten, ist denke ich nicht richtig, denn ich kann auch cross-plattform in C++ arbeiten. Ich muss eben mir nur vorher Gedanken darum machen und dann meinen Code passend organisieren. Im Embedded Bereich sind natürlich wirklich viele Algorithmen durch die limitierende Hardware bestimmt, aber wenn ich da dann wirklich Performance o.ä. benötige, dann wäre ein auf die Maschine angepasster nativer Code wohl die beste Wahl. Abstraktion ist zwar manchmal sinnvoll, aber kann eben auch zu Problemen führen
-
Naja jeder CPU macht letztendlich nichts anderes, nur dass bei einem nativen Code eben die Assembleraufrufe durch den Compiler erzeugt werden, bei dem Java CPU wird eben ein "Metacode" dann auf Hardware in den realen Assemblercode übersetzt, was letztendlich eine Art "just-in-time" Umsetzung ist. Die Frage ist aber immer, was kennt der CPU an Befehlen, sprich muss man evtl beachten, ob der mit javac erzeugte Bytecode direkt kompatibel zum CPU ist oder nicht. Weiterhin besteht ja Java nicht nur aus Code, der interpretiert wird, man hat ja eben noch diverse andere Strukturen drum herum, die ja auch irgendwie in den CPU gelangen müssen. Das stimmt, darum kapselt man ja dann eine C/C++ Interface, das man auf die Architektur compiliert via JNI mit Java. Android macht es ja genau so. Das was dann spezifisch für die Hardware ist, wird in C/C++ entwickelt und compiliert und über Java kann man dann das Interface abstrahieren. Bei anderer Hardware muss man lediglich die C/C++ Basis anpassen. Das ist richtig. Die Frage ist nur, würde irgendetwas den Einsatz eines solchen CPUs rechtfertigen. Meines Erachtens nicht, denn sowohl Java wie auch C/C++ sind bei richtiger Anwendung durchaus auf einem handelsüblichen CPU extrem performant. Performanceprobleme sind meist nicht auf der CPUbasis vorhanden, sondern liegen oft an anderer Stelle.
-
Schau mal in dem Wikiartikel nach: Wenn der CPU Java Bytecode just-in-time laufen lassen kann und zusätzlich C/C++ Code interpretieren kann, wofür brauche ich ihn dann? Denn alles was ich in Java machen kann, kann ich auch mit C++ machen. Wenn ich dann doch noch eine hübsche Javaklasse haben will, naja dann nehme ich eben meine C++ Klasse, verpacke sie in eine DLL und greife von Java via Java Native Interface drauf zu. Die Latenz, die dabei entsteht, ist lediglich die Datenumwandlung und das ist nativer C Code. Wenn ich das jetzt so sehen würde, dass man diesen CPU zusätzlich zu einem bestehenden CPU setzt und eben "nativ Javacode ausführen will", siehe dann wäre dort für mich der Ansatz direkt eben den FPGA zu programmieren. D.h. wenn ich eben eine besondere Architektur wie einen FPGA brauche, dann nehme ich direkt einen passenden CPU und programmiere diesen eben genauso wie ich ihn brauche. In beiden Fällen sehe ich nicht die Notwendigkeit eines eigenen Java CPUs, denn warum diese spezielle Hardware verwenden, wenn ich es eben mit einem direkten Ansatz genauso machen kann. Ein weiterer Aspekt ist für mich das Design: Als Beispiel eine einfache Eigenwertzerlegung. Wenn ich es pure in Java machen will, dann muss ich mir erst mal eine Datenstruktur für eine Matrix überlegen und dann eine QR / QZ Zerlegung programmieren damit ich dann diesen Javacode nativ auf einem eigenen CPU ausführen kann. Mache ich es in C++ lade ich mir die Boost runter, installiere mir die LAPack und die Numeric Bindings, schiebe meine Daten in die Boost UBlas Matrix rein und lasse mir die Eigenwerte durch die LAPack berechnen. Diese Bibliotheken sind extrem performant und schon sehr detailliert getestet. Brauche ich das in Java, dann muss ich nur einen JNI Wrapper drum herum bauen und habe meine Javaklasse (den Wrapper kann man sogar automatisch via Swig bauen lassen). Also für mich keine Anwendung eines eigenen CPUs. Weiterhin ist die Frage, was hat der Java CPU real implementiert, d.h. inwieweit ist der Befehlssatz kompatibel z.B. zu einem aktuellen JDK, sprich werden alle aktuellen JDK Befehle unterstützt oder nur Teile. Wie sieht es aus, wenn Fehler in der Sprachimplementierung existieren, also kann man den CPU flashen oder ist der Befehlssatz unveränderbar. Damit ergeben sich dann auch ggf. Bedingungen, die man beachten muss. Java ist durchaus ein sinnvolles System und sicherlich auch nicht unperformant. Es kommt halt eben auf die Anwendung an. Wenn man wirklich hohe Performance für einen Algorithmus braucht, dann wäre die erste Frage "ist Java überhaupt die geeignete Sprache um das Problem sinnvoll zu lösen". Es gibt Fälle (wie z.B. numerische Algorithmen), die man eben nicht in Java implementieren würde, weil es eben umständlich und nicht performant geht, d.h. ich nehme eine andere Sprache und verbinde eben diese mit Java. Nur weil man evtl 1/2 Sekunde darauf warten muss, bis ein Programm startet, rechtfertigt dies nicht den Einsatz einer speziellen Hardware. Gerade im Bereich der Algorithmen ist extrem viel Potential für Performance möglich, nur dort liegt auch das Problem, man nimmt oft einen naiven Ansatz und dadurch ist eben dann auch der Algorithmus ineffizient, zusätzlich kommt dann häufig noch eine ineffiziente Implementierung. Oft reicht es aus, einen anderen Algorithmus zu verwenden, um das Problem effizienter zu lösen. Der Ansatz "neue / bessere Hardware löst das Problem schneller" ist auf ein Trugschluss. Ein schlechter Algorithmus kann auch auf einer besseren Hardware keine besseren Ergebnisse liefern und dann für einen schlecht entworfenen Algorithmus noch eigene Hardware zu verwenden, ist für mich wirtschaftlich nicht zu rechtfertigen
-
Die Frage ist, was bringt die native Codeausführung im CPU. Letztendlich muss ja auf CPU Ebene ein passender Interpreter vorhanden sein, d.h. dieser Interpreter hat zum Herstellungszeitpunkten einen Stand und wenn eben Sicherheitslücken enthalten sind, dann kann ich diese nicht patchen (wie z.B. Vulkanausbruch auf Java | heise Security ). Weiterhin ist das Problem, dass es für Java keine nativen numerischen Bibliotheken gibt, letztendlich werden C/C++ Aufrufe via JNI mit Hilfe eines Javawrapper gekapselt. Solche Bibliotheken braucht man durchaus z.B. bei Anwendungen im Ingenieurbereich / naturwissenschaftlichen Bereich. Selbst Android nutzt JNI um eben die Hardware anzusteuern. Somit ist die Frage, wo ein solcher Prozessor Sinn machen würde. Ich sehe nicht den Sinn in einem CPU der mir meinen Java Bytecode nativ ausführen kann, denn wenn ich Performance oder Hardwaresteuerung benötige, dann nutze ich C/C++ und rufe dann die spezifische DLL via JNI aus Java aus. Dabei ist der Vorteil, dass nur die DLL systemspezifisch sein muss, der Javacode bleibt somit gleich. Wenn Du für eine Javaanwendung einen eigenen CPU benötigst, dann würde ich als Anwender eher auf eine solche Anwendung verzichten, denn warum soll ich für eine spezielle Software eine eigenen Architektur kaufen und warten, nur um eine spezielle Software laufen lassen zu können.
-
Ohne den Code zu kennen, kann man nicht viel sagen. Ich kann keine Probleme bezüglich 32 und 64 Bitprogrammierung sehen, letztendlich muss ich nur eben richtig die Typen verwenden und die Größen der Daten richtig berechnen (sizeof). malloc liefert einen Zeiger zurück, so dass man natürlich den richtigen Zeigertyp (mit der richtigen Größe) benutzen muss.
-
Ich ziehe C++ Java vor, sowohl aus Performance als auch der Möglichkeiten die C++ bietet. Z.B. Numerische Algorithmen sind mit Java nicht möglich bzw. man braucht auch externe Komponenten. Java setzt letztendlich Bibliotheken ein, die via JNI angesteuert werden, was dann letztendlich C/C++ ist. Außerdem möchte ich sicher keinen nativen Javacode in meinem CPU laufen haben, alleine aus Sicherheitsaspekten.
-
Bei C++ würde ich Boost C++ Libraries und Qt Developer Network empfehlen, Cross-Plattformfähigkeit und auch Erweiterung wäre mit beiden Bibliotheken möglich
-
siehe picoJava - Wikipedia, the free encyclopedia Du brauchst letztendlich ein Developerboard und entsprechendes Wissen über die Ansteuerung von CPUs d.h. entsprechendes Wissen über Elektrotechnik
-
Grafisches tool zur XML zum XML erstellen gesucht
flashpixx antwortete auf Lordnikon's Thema in Anwendungssoftware
Eine CSV Datei kannst Du nicht verwenden. Eine XML Schema bezieht sich auf eine XML Datei. Du musst händisch / per Code die CSV zu einer XML Datei umwandeln und kannst dann die XML Datei gegen die XSD Datei prüfen -
Was hat das mit der Problemstellung zu tun !? Du willst eine CSV Datei vom Server laden bzw. diese via jQuery editieren. Wie schon der Vorposter schrieb nutze eine Datenbank in der die Daten gehalten werden, verändere die Struktur der Daten via jQuery und SQL und liefere sie eben als CSV oder was auch immer Du willst an den Client zurück
-
Let me google that for you
-
Im Grunde entspricht dies letztendlich diesem Code TextGUI t = new TestGUI(); t.los(); ist also vollkommen korrekt. Da hier klar ist, dass t bzw das Objekt am Ende der Methode nicht mehr existiert wird das Objekt, das erzeugt wurde für den GC markiert
-
Private IP-Adresse
-
Suche Übungsaufgaben die man mit Greedy und schrittweiser Annäherung lösen kann
flashpixx antwortete auf Kevni's Thema in Algorithmik
auf Greedy-Algorithmus stehen noch Anwendungsbeispiele -
Join (SQL) - Wikipedia, the free encyclopedia