flashpixx
Mitglieder-
Gesamte Inhalte
8302 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von flashpixx
-
@Brixto: siehe mein Post bezüglich SSI
-
Das erfordert aber Anpassung der PHP Scripte, denn PHP kann nicht im Browser debuggen, das ist technisch nicht möglich, da die Scripte serverseitig durch deren PHP Interpreter, der im Webserver eingebunden ist, aufgerufen werden. Um das, was der OP machen will, durchzuführen braucht man man Server Side Includes die müssen im Webserver korrekt installiert und konfiguriert sein. Hat man das nicht, geht es nicht. Hat man keine SSI, dann generiert man eben den kompletten Seitencode per PHP und gibt ihn via echo aus.
-
Warum liest Du Dir nicht mal die Doku zu der verwendeten Komponente durch, da steht das nämlich drin: JOptionPane (Java 2 Platform SE v1.4.2)
-
Es geht um die Prüfung auf == bzw >, das ist ein Unterschied.
-
Wenn ich einen zeitgesteuerten Job brauche, dann lege ich dafür einen Eintrag in der Crontab, da ich ja weiß wann dieser Job läuft brauche ich die Prüfung nicht Zusätzlich würde ich die Prüfung nicht durchführen, denn es wird bei einem theoretischen manuellen Start kaum möglich sein, exakt 4 Uhr zu treffen, d.h. Du wirst immer eine gewisse Zeitspanne prüfen müssen, aber wer startet schon manuell nachts um 4 Uhr ein Script!?
-
Wäre durchaus möglich, theoretisch kann man aber auch ein 3D Game machen, denn OSM liefert ja auch Gebäudetypen etc. d.h. man könnte immer den Ausschnitt der Straße in dem man sich befindet real in 3D z.B. via Irrlicht Engine - A free open source 3D engine rendern, d.h. durch die Straßen kann ich dann laufen und wenn ich eben schneller voran kommen will, nehm ich halt andere Verkehrsmittel (wenn man dann möchte kann man ja auch ein bisschen in die Ego-Shooter-Perspektive gehen). Für die Benutzung der Verkehrsmittel muss man Geld bezahlen, wobei man das ja dann wieder daran koppeln kann, dass man Sachen für Leute transportieren muss, bzw. irgendwelche Subchallenges hat. Zusätzlich kann man ja auch ein Kommunikationssystem (a.k. Telefon) erstellen, so dass man sich zum Telefonieren treffen kann (was dann einen Chat ermöglicht). Nimmt man als Grundlage nicht eine Stadt, sondern z.B. die komplette Weltkarte und dazu dann mehrere Jäger und mehrere gejagte, dann ist das durchaus interessant, wenn man dann auch z.B. die Reisezeit entsprechend berechnet. Für die Gejagten kann man ja dann auch noch diverse Möglichkeiten einbauen, wie sie sich z.B. verstecken können. Ich denke da so in die Richtung Agentenspiel. Rundenbasiertes Spiel halte ich für irgendwie nicht so schön, annähernd Echtzeit fände ich viel interessanter.
-
Was mir dazu noch einfällt ist, dass Du Dir das Spiel sogar mit realen Daten erzeugen kannst DE:Öffentlicher Verkehr - OpenStreetMap Wiki bzw http://wiki.openstreetmap.org/wiki/DE:%C3%96pnvkarte
-
Ich denke die Problematik, die Du hier ansprichst, ist für andere interessant, darum führe ich das etwas aus: Wir nehmen einmal Deine XML, in der wir das Straßennetz abspeichern. Du hast dann ein Problem, dass Du in der XML Stationen erzeugen kannst, die nicht in Deinem Straßennetz vorhanden sind ( Erreichbarkeitsproblem in Graphen bzw Zusammenhang (Graphentheorie) ). Du musst also sicherstellen können, dass Dein Graph zusammenhängend ist, d.h. jeder Punkt erreichbar ist. Mit XML alleine ist das nicht machbar. Das zweite Problem, was daraus resultiert, wäre, wenn Du einen gerichteten Graphen hast, d.h. Du kannst von einer Station nur in eine Richtung fahren, dann entsteht das Problem der Traps, d.h. ich kann an eine Station gelangen von der ich nicht mehr weg komme (Sackgasse). Dies solltest Du auch verhindern, wenn Du so etwas machst. Als drittes eher praktisches Problem bei XML hast Du, dass Du in Deiner Node z.B. für Bus formal eintragen kannst, zu der keine Station existiert, d.h. Du musst also auch sicherstellen, dass Deine XML inhaltlich valide ist. Als weiteres Problem bei XML ist, dass Du es parsen bzw. den gesamten Baum im Speicher halten musst. Damit hast Du aber das Problem der Referenzen zwischen Deinen XML Nodes und den Graphpunkten nicht gelöst, denn wenn ich auf einer XML Node stehe und ich weg will, muss ich die passende Zielnode beim Wechsel aus dem Speicher holen, sprich ich muss bei SaX den Parser anweisen "such mal die passende Node" (Aufwand). Als nächstes ist dann noch die Frage, wie Du die Informationen an den Spieler hängst, denn ein Spieler muss ja wissen, auf welchem Feld er steht. Du musst also immer eine Referenz oder Kopie auf Deine XML an den Spieler hängen, so dass Du hier bei großen Straßennetze durchaus viel Speicheraufwand hast. Wenn ich da jetzt den Gedanken weiter spinne und z.B. das ganze über Netz auch spielen möchte, dann muss ich mir ja auch überlegen, wie ich das Straßennetz für alle Spieler gleich aussehen lasse, eine XML kann ich leicht per Hand verändern, so dass jeder Spieler sich lokal seine Karte verändern kann. Wenn ich dann noch zulasse, dass Spieler gleichzeitig ziehen können und die Karte z.B. über einen Webservice bereit stelle, dann habe ich 2 Anfragen der Spieler bei der für jeden Zugriff ein XML Prozess gestartet wird, der die XML parsen muss. Für große Anzahl an Spielern und große Karten, ist das nicht mehr praktikabel. Auch bei mehreren Spielern pro PC, solltest Du Dir überlegen, wie Du diese XML Daten passend verarbeitest, denn Du hast nur die Möglichkeit den Baum einmal zu lesen, ein Baum ist aber kein Graph, d.h. Du brauchst noch irgendwie eine Transformation des Baumes in das Straßennetz oder Du musst das in "Echtzeit" machen, was durchaus auch nicht unkritisch ist. Was man ja gerne hätte, ist, dass der Spieler weiß wo er steht, d.h. er hat irgendwie eine Position, diese Position verweist dann auf einen Knoten im Straßennetz. Ich kann den Knoten fragen "welche Verbindungen erlaubst Du wohin", ebenso kann ich die Person fragen "wo stehst Du gerade". Der Knoten wiederum braucht nicht das komplette Straßennetz speichern, er muss lediglich eine Liste mit Knoten speichern, auf die man sich bewegen kann, d.h. allerhöchstens eine Adjazenzliste. Rein technisch braucht er noch nicht mal das, denn bei sehr vielen Verkehrsmitteln und vielen Verbindungen wäre das durchaus Speicherbedarf der dann für alle Spieler anfällt. Er muss nur eine Referenz auf ein Graphdatenbankobjekt speichern, dass dann in Abhängigkeit von seiner aktuellen Position die Liste mit den Nachbarknoten liefert, d.h. die Adjazenzliste muss ich allenfalls temporär halten (diese Liste kann ich dann nochmals reduzieren, wenn ich z.B. die Abfrage so erstelle, dass ich das Verkehrsmittel vorgebe). Zusätzlich kann ich damit auch ohne Probleme sehr große Netze mit sehr vielen unterschiedlichen Verkehrsverbindungen darstellen (z.B. Flugzeug, Bahn, U-Bahn, Bus, Taxi, zu Fuß), weiterhin kann ich auch gerichtete Graphen erzeugen, weil mir die Datenbank ggf abnehmen kann dafür zu sorgen, dass meine Knoten im Graphen immer erreichbar sind. Graphstrukturen sollten immer sehr gut durchdacht werden, denn durch das quadratische Wachstum der Datenmenge kommt man sehr schnell an die physischen Grenzen seines Rechners, wenn man es naiv macht.
-
Ich habe mir jetzt nicht im Detail die API Funktionen angeschaut, aber ich gebe zu Bedenken, dass das durchaus nicht so sein muss, denn im Normalfall ist es üblich den Schlüssel in Abhängigkeit von einem Zufallszahlengenerator zu generieren, d.h. gleiches Passwort und gleiches Algorithmus liefern nicht zwingend den gleichen Schlüssel. Es sollte Angreifern möglichst schwer gemacht werden, aus teilweise bekannten Daten die Schlüssel ggf durch Brute-Force zu rekonstruieren. Schau über die genauere Generation der Schlüssel in die Doku Deiner API, da steht letztendlich auch drin, wie dies im Detail gemacht wird.
-
Packages and the Java Namespace (Java in a Nutshell)
-
Try-Catch löst das Problem nicht, sondern es fängt lediglich den Fehler ab, wie Du ihn behandelst ist eben dann Deine Sache und eine Index-Out-of-Bounce Exception sagt, dass Du auf ein Element zugreifst, dass nicht existiert. Zu Deinem Code, Du allokierst so lange lFehler true ist immer ein neues Array, obwohl sich die Daten des Arrays nicht ändern, d.h. jedes Mal wird Speicher allokiert und ggf erst später durch den GC freigegeben, das ist absolut sinnfrei. Zweitens wird eine Exception hier jedes Mal auftreten, denn Du greifst auf das 5. Element zu, aber die Indizierung eines Arrays beginnt bei null, also ist der Index den Du verwendest generell falsch.
-
Wie auch schon in Deinen anderen Thread angemerkt, zeige Deinen realen Code, dann kann man dazu auch was sagen. Dein Pseudocode ist absolut unbrauchbar, um das Problem zu verdeutlichen. Ebenso solltest Du Dir angewöhnen, dass Du auch die entsprechenden Meldungen angibst, die Dein Code produziert. Ich gehe davon aus, dass Dein Code mehrere semantische Fehler enthält, die durch Deine exzessive Nutzung von mehreren 100 Threads noch die Probleme durch die Nebenläufigkeit verstärken. Ändere Deinen Code so ab, dass er das Problem sinnvoll mit resourcenschonenden Strukturen löst. Du kannst hier Hilfe bekommen, aber Du musst schon dazu Deinen Code und auch die genaue Problemstellung und vor allem das Ziel angeben. Das Problem wird nicht an Java oder Deinem Rechner liegen, das Problem ist Deine Programmierung. Deine Postings beschreiben bisher im Grunde die Aussage "mein Code läuft nicht, aber ich will den nicht zeigen und den Algorithmus will ich auch nicht überarbeiten"
-
Auch ein paar Fragen zur Projektdokumentation
flashpixx antwortete auf Daimoch's Thema in Abschlussprojekte
Die Abweichung ist kein Problem, auch wenn sie extrem ist. Natürlich sollte dadurch nicht ein völlig anderes Projekt entstehen. Was wichtig ist, wie Du alle Abweichungen fachlich & wirtschaftlich begründest. Schreib rein, wie es real ist und eben wie Du das in Bezug auf die Projektdurchführung einschätzt. Die Infos bekommst Du aus der Buchhaltung bzw. frag Deinen Ausbildung. Es reicht ja hier angenäherte Werte zu nehmen z.B. wenn ein Mitarbeiter einen AT Vertrag hat, den Du nicht einsehen darfst. Du kannst schon die realen Kosten kalkulieren siehe Punkt 1 -
Wieso muss jede Uhr in einem eigenen Thread laufen? Die Uhren werden im Grunde auf die Systemzeit synchronisiert, d.h. es reicht ein Thread. Da die Zeit auf jeder Uhr nicht schneller oder langsamer läuft als auf allen anderen braucht man nicht so viele Threads wie Uhren. Denn die Uhren sind nicht unabhängig von der Zeit und die Zeit wiederum ist nicht unabhängig von der Welt. Zeitzonenumrechnung gibt es fertig. Eine Sekunde bleibt überall auf den Uhren eine Sekunde. Deine Herangehensweise ist völlig falsch. Ein Thread der die Zeit darstellt und eine entsprechende Eventstruktur um alle Uhren upzudaten, wäre der richtige Ansatz ggf dazu dann noch ein GUI Threads
-
Das ist kein Beweis, sondern im Grunde die Aussage, dass Dein Code etwas tut, was er nicht soll. Denn wenn durch das einfache Auskommentieren es läuft, dann spricht das für schlechten Code. Würde der Code korrekt arbeiten, dann sollte die Ausgabe lediglich etwas mehr Laufzeit erzeugen. Ich habe mir eben mal 10^6 zufällig erzeugte Java Strings auf der Console unter OSX 10.6.8 ausgeben lassen, also die reine Ausgabe erzeugt kein Problem.
-
Wieso darf überhaupt der User Kontrolle darüber haben wie viele Threads im System laufen? Auf welcher fachlichen Grundlage kannst Du das rechtfertigen? Die Anzahl der Threads ist abhängig von der Hardware und es Algorithmus, nicht von der Laune des Users.
-
Ein Array ist recht ineffizient und verbraucht viel Speicher. Ich rate zu einer sparse Datenstruktur
-
man fdisk, man cfdisk und man mkfs solltest Du Dir anschauen
-
Weder in der Schule, noch in der Ausbildung, noch im Studium oder im Berufsleben ist mir so eine Aufgabe untergekommen, in der verlangt worden wäre 500 Threads zu erzeugen. Das ist sowohl von theoretischer, wie auch praktischer Sicht völlig sinnlos. Wenn Du keine Anmerkungen zu der Problemstellung posten kannst d.h. z.B. den Wortlaut der Aufgabenstellung oder Codeauszüge, dann kann Dir hier auch niemand helfen. Ich formuliere es mal in Bezug auf Deinen anderen Thread http://www.fachinformatiker.de/java/156618-programm-bleibt-stehen.html so, dass Dein Lösungsalgorithmus extrem ineffizent ist und Du versucht durch "technische Spielerei (Threads)" die Ineffizienz zu lösen. Sofern Du also hier nicht bereit bist mehr Details zu dem Problem zu zeigen, wird man Dir nicht helfen können.
-
OT: Ich glaub ich hab Dir damit die Steilvorlage geliefert
-
Benutze einen Webservice, der auf die Datenbank zugreift und spreche diesen per Ajax über JQuery an
-
Ich würde Server und Speicher trennen. Ich würde das Speichersystem als iSCSI oder Fibre Channel erzeugen bzw. direkt OneFS distributed file system - Wikipedia, the free encyclopedia nehmen und die Nodes via InfiniBand verbinden. OneFS würde entsprechende Zugriffsdienste schon bieten und ich muss es nicht selbst verwalten. Zusätzlich erreiche ich mit einem verteilten System bessere Datendurchsätze. Wenn nun ein Server verwendet werden soll, dann würde ich ggf wirklich überlegen, ob man hier Windows einsetzen muss, denn der Server muss ja nur das Dateisystem bereitstellen, das per FC oder ISCSI angebunden ist. Dazu kann man eine fertige Linux-Distro wie FreeNAS 8 | Storage For Open Source einsetzen. Backup kann man ebenso anbinden, wodurch man ja die Daten mit der notwendigen Performance backuppen kann. Halte ich für nicht notwendig, OneFS hat entsprechenden Support, FreeNAS ist minimal und das Sichern der Konfiguration ist wirklich nicht umfangreich und muss nur dann durchgeführt werden, wenn ich sie ändere. Sinnvollerweise würde man die Konfiguration mit in das Backup legen. RAID bzw USV denke ich, sind sowieso notwendig, d.h. darüber muss man eigentlich nicht mehr sprechen. sehe ich ebenso, das hängt natürlich davon ab, was man als Ausfallzeit tolerieren kann, also ein individueller Punkt. Dieses Problem hätte man bei OneFS so direkt nicht, da es ein verteiltes System ist. Bei FreeNAS würde ich ein fertiges System immer vorliegen haben was man z.B. über eine VM starten kann, ist zwar dann nicht performant, aber während der Reperatur des eigentlichen Systems verkraftbar. Weitere Punkte s.o. Evtl hast Du ja mal die Möglichkeit Dir das FreeNAS anzuschauen z.B. in einer VM, d.h. dazu müsste man dann "nur noch die passende Hardware" beschaffen. Was das Backup angeht, da wirst Du letztendlich Dich am Storage orientieren müssen, aber sorry, an einem Tag in der Woche ein Band in ein Laufwerk zu legen und es einen Tag später raus zu nehmen, ist jetzt wirklich nicht das Problem !? Wie oft steckt man denn einen USB Stick an seinen Rechner !? Rein physisch muss das System, dass das Backup macht, ja nicht dort stehen, wo das NAS steht, lediglich die Anbindung muss passen. Was Du als Anbindung für das System brauchst kannst im Grunde recht einfach abschätzen durch die konkurrierende Rechneranzahl und eben die Datenmenge und danach musst Du dann auch das Backup bemessen, aber eine Alternative zu Bändern gibt es wohl nicht
-
Es sollte kein Problem darstellen diese Daten auf der Console auszugeben, nur lesbar wird das dann nicht mehr sein. Ich rate, sofern wirklich diese Zahl 10^7 zutreffend ist, zu einer Datenbank. Wobei ich mir das aber bei einem Anfängerprogramm nicht so recht vorstellen kann
-
Nein 500 Threads machen keinen Sinn (siehe die theoretische Grundlage Amdahlsches Gesetz ) Da Du Java Anfänger zu sein scheinst (aufgrund Deiner anderen Threads), rate ich ganz dringend dazu, dass Du erst einmal verstehst, wie Java arbeitet, bevor Du hier mit Threads und Nebenläufigkeiten arbeitest. Dass Du den Begriff Mutex nicht kennst, zeigt dass Du keine Vorstellung hast, wie überhaupt Threadding i. Allgm. funktioniert. Mich graut es wirklich davor, wenn ich höre, dass Du 500 Threads erzeugst und dann davon gefühlte 99% im Sleep hast, denn Dein Core kann nur wenige Threads parallel abarbeiten. 500 Threads zu erzeugen ist völlig sinnbefreit, denn Dein Problem wird gar nicht die Komplexität haben, dass das rechtfertigt. Ich habe hier als Vergleich Probleme, die eine gesamt Last von ca 500 GB im Ram erzeugen über mehrere Clusternodes verteilt und auf jedem Core laufen nur 2 Threads parallel. Ich erzeuge gar nicht erst mehr, sondern genau so viel, wie die Hardware zulässt. Bei 48 Cores macht, dass dann 96 Threads auf 6 physikalischen Maschinen mit je 8 Cores. Threadding ist nicht umsonst, d.h. durch das Threadding erzeugt man auch einen gewissen Overhead, d.h. ist die Komplexität des Problems nicht groß genug, ist der Overhead teurer, als den Speed-Up den man erreicht. Zusätzlich bringt Threadding nur etwas, wenn der Algorithmus sich sinnvoll parallelisieren lässt. Wenn man ständig Synchronisieren muss, wird das ineffizient. Nebenläufigkeit ist nicht der erste Punkte, den man optimieren sollte, zusätzlich sollte man mit Bedacht dies einsetzen Mutex