Zum Inhalt springen

flashpixx

Mitglieder
  • Gesamte Inhalte

    8.302
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von flashpixx

  1. flashpixx

    Threads

    Die Beschreibung ist so nicht ausreichend !? Was ist eine Steuerklasse? Ein Thread ist zunächst einmal ein normales Javaobjekt und unterliegt analog den gleichen Strukturen, auf was der Thread zugreift ist von Dir abhängig, nur solltest Du beachten, dass Du eben wenn mehrere Thread auf die gleiche Speicherposition zugreifen eben durch einen Mutex abgesichert werden (sofern die Speicherinformation verändert wird). Ein Thread führt eine Methode aus, die eben so lange läuft, wie Du es programmiert hast, das Threadobjekt bleibt letztendlich auch nach dem Beenden der Methode existent bis es durch den GC entfernt wird, d.h. aber es dürfen zu dem Objekt keine Abhängigkeiten existieren. Es ist überhaupt nicht sinnvoll 100 oder 500 Threads zu erzeugen, denn defakto kann das System nur so viele Thread parallel abarbeiten, wie durch die Hardware möglich ist (pro Core = 1 oder 2 Threads [Hypervision]). Alle anderen Threads werden pausiert, d.h. mehr Threads zu erzeugen führt nicht zu einer schnelleren Lösung. Du solltest zuerst einmal den Algorithmus single-thread formulieren und zusehen, dass dieser fehlerfrei läuft. Danach solltest Du Dich mit den Problemen der Nebenläufigkeit und deren technische Umsetzung im System befassen, damit Du weißt, wie das System Nebenläufigkeiten real abbildet. Im nächsten Schritt kannst Du Dir überlegen, wie Du Deinen Algorithmus parallelisierst und welche Probleme es dabei gibt. Es scheint mir, dass Du hier einfach mit "Threadding auf ein Problem draufhaust, ohne Dir Gedanken über die Problematik zu machen"
  2. Deine Mainmethode ist falsch, die Signatur ist inkorrekt, so dass Dein Programm nicht läuft (siehe Javabeginners - main ) Die Signatur muss lauten In args sind die Argumente des Aufrufes, für bool'sche Werte musst Du das Argument dann suchen und ggf parsen oder Du prüfst auf dessen Existenz
  3. ohne Quellcode und entsprechende Systeminformationen ist keine Hilfe möglich. Ich habe damit keine Probleme eine Nachricht auf der Konsole zu erzeugen
  4. Also ohne dass man halt für die IT ein gewissen Budget zur Verfügung hat, dann werden sich immer Probleme einstellen, also ich denke da gehen wir definitiv konform. Ich würde da wirklich mal zu einer Pro/Contra Liste inkl verschiedener Lösungsvorschläge mit Kostenübersicht raten. Es liegt letztendlich an Deiner Überzeugungsarbeit. Ich habe häufig in diesen Fällen mit Linux punkten können, da ich relativ flexibel bin und eben die Lizenzkosten einsparen kann, wobei ich die Administration relativ komfortabel gestaltet habe, z.B. vieles durch entsprechende Cron / Shellscripte automatisiert habe (einige Kunden habe ich somit auch komplett auf Linux migrieren können). Versuche Dich einfach mal in die Lage des Kunden zu versetzen. Was die Ansicht mit Bändern angeht, wo ist der Unterschied ob ich nun ein Band oder eine Platte wechseln muss. Ich meine also ich ziehe das Band vor, als wenn ich da mit USB Stöpseln hantieren muss. Good luck
  5. Das Problem was ich bei Platten sehe ist einmal das Problem, wenn sie runter fällt, dann nützt Dir die Sicherung nichts. Zweitens ist das Problem bei der Platte, dass Du nicht direkt sehen kannst, welcher Prozess noch beschäftigt ist, man kann ja nicht physikalisch die Platte aus dem System hängen. Bei meinem DLT Laufwerk lege ich das Band ein, ich weiss um 1 Uhr nachts beginnt die Sicherung und am Ende wird das Band physikalisch aus dem Laufwerk ausgeworfen (und ich muss es dann nur noch in die Hülle stecken). Tapelibraries machen das z.B. per Roboterarm. D.h. man muss halt morgens einmal am Server vorbei, das alte Band nehmen und ein neues rein stecken und das rotiert dann einfach entsprechend durch. USB Platte hin und her stöpseln ist für mich eine Home-User-Lösung. Das ist durchaus vom Preis okay. Ein Band ist gegen mechanische Einflüsse nicht so empfindlich wie eine Platte, d.h. Platte mal schnell in die Aktentasche kann auch zum Verlust der Daten führen. Weiterhin sollte man ja mehrere Backupmedien haben, um z.B. rotieren zu können, was dann in Summe bei Platten ins Geld geht. Ich nutze privat Seit Jahren ein DLT Laufwerk und bin sehr zufrieden und hier im Rechenzentrum ist eine Tapelibrary installiert. Also was Zuverlässigkeit angeht, definitiv sinnvoller als eine einzelne Festplatte. Ich denke Bänder sind immer noch beim Backup die erste Wahl. D.h. das System was aktuell läuft liefert nicht die passenden Ergebnisse. Die bisherige Lösung sieht halt für mich nach einer Home-Lösung aus, die weder für den Einsatz von großen Datenmengen inkl Versionierung und einer vollständig durchdachten Backuplösung erstellt wurde. Die erste Frage ist, was benötigst Du als Datendurchsatz und wie groß wird das geschätzte Datenvolumen in den nächsten Jahren und was muss Du dann dazu als Volumen für die Versionierung ansetzen (ich verweise einmal auf OneFS distributed file system - Wikipedia, the free encyclopedia ). Wenn Du das abgeschätzt hast, dann kannst Du Dir Gedanken machen, welches System Du überhaupt kaufst (der Ansatz eines einzelnen Servers ist bei großen Volumina nicht sinnvoll). Dann wäre die nächste Frage mit was machst Du die Versionierung. Wenn Du das hast, dann kannst Du danach dann ein passendes Backupsystem wählen und Du wirst auch feststellen, dass ab einer bestimmten Größe das Backup auf eine einzelne Platte gar nicht mehr möglich ist. Also entweder bleibst Du bei Deiner Lösung wie jetzt, d.h. aber dass Du da nicht viel optimieren kannst und Du Dich mit der Lösung zufrieden geben musst oder Du gehst in den Bereich von professionellen Lösungen, bei denen Du eben auch Kosten hast, aber dafür eben auch mehr Leistung geboten wird.
  6. Ich gehe jetzt einmal in eine völlig andere Richtung, denn Du hast ja hier eigentlich mehrere Probleme, die Du lösen willst: * Versionierung der Daten * Backup / Sicherung * Zugriff Ich persönlich würde nicht auf Festplatten backuppen, sondern wirklich ganz klassisch ein Band (DLT) nehmen, dass dann täglich / wöchentlich ein inkrementelles / voll / differentielles Backup macht. Die Versionierung der Daten würde ich über ein transparentes Dateisystem machen z.B. https://github.com/g2p/git-fs Also ein Repository mit einem Dateisystem kombinieren. Ich halte das "händische" kopieren von einzelnen Verzeichnissen in größeren Umgebungen für nicht praktikabel. Den Zugriff auf die Daten würde ich durch entsprechende Router ACL beschränken, d.h. nicht jeder Rechner darf einen Connect aufbauen. Zusätzlich dazu musst Du Dir Gedanken über die Authentifizierung machen, d.h. wer hat welche Berechtigungen an dem System und auf welchen Daten. Wenn Du dann noch eine Verschlüsselung der Daten haben willst, würde ich auf das Repository-Filesystem z.B. EncFS aufsetzen, dann hast Du noch eine dateibasierte Verschlüsselung Generell solltest Du das Dateisystem mehrschichtig aufbauen: Hardware => Volumen => Versionierung => Verschlüsselung Ich würde halt mehrere physikalische Platten via RAID zusammen fassen, die RAID Devices dann flexibel via Logical Volume Manager in ein großes Volumen zusammen fassen, darauf dann transparent die Versionierung setzen und dazu dann wenn notwendig eine Verschlüsselung. Zusätzlich kannst Du dann ja auch noch die Berechtigungen via LAN Zugriff entsprechend definieren. Das Backup würde dann einfach das LVM auf ein Band ziehen, damit hast Du automatisch auch die Versionierung mit im Backup drin. Ob das alles so mit Windows funktioniert weiss ich nicht, da ich eher per *NIX arbeite.
  7. Du musst nachschauen, generell gilt, dass die Uni/FH die Zulassungsvorraussetzungen für einen Studiengang festlegt, wenn Du keine (Fach-)Hochschulreife hast, dann musst diese entweder nachholen oder eben schauen, was Deine Wunschhochschule von Dir verlangt. Generell gilt aber imho, dass Du keinen Rechtsanspruch gelten machen kannst, d.h. es liegt immer im Ermessen der Hochschule. Mein Tipp wäre generell mal bei dem Studienberater / Fachschaft o.ä. einen Termin zu machen und persönlich vorbei zu gehen. Theoretisch kannst Du Dir ja schon einen Gasthörerschein besorgen oder wie es z.B. auch gemacht wird ein so genanntes "Vorstudium" machen, d.h. Du würdest studieren und auch die Prüfungen ablegen, die aber unter Vorbehalt gewertet werden bis Du die Zulassungsvorraussetzung nachreichst. Ist aber alles wie gesagt Sache der Hochschule, also wirklich dort einmal Fragen
  8. Siehe Repräsentation von Graphen im Computer Wobei das Problem hier schon liegt, dass man das Straßennetz mehrfach vorliegen hat, einmal für Bus, dann für Taxi, für Boot und einmal U-Bahn, bei quadratisch wachsender Datenmenge mit vielen nicht-sparse Elementen durchaus problematisch. Dadurch, dass man ja Wege finden muss braucht man auch entsprechende Algorithmen für die Auswertung mit einer Gewichtung für die Verkehrsmittel ( Dijkstra-Algorithmus ). Wenn Spieler und/oder Mr X vom Rechner gesteuert werden sollen, ist das Problem durchaus nicht mehr trivial.
  9. Ich rate von FTP ab, da die Authentifizierung unverschlüsselt ist. Sinnvoller ist SFTP
  10. Wie WuWu schreibt, solltest Du Dir zunächst Gedanken über die Repräsentation der Daten machen. Karten wie in diesem Fall werden als Graphen repräsentiert und d.h. Du hast ein quadratisches Wachstum der Datenmenge bezüglich der Knoten im Graphen. Ich rate dabei ganz dringend von einem "klassischen relationellen Datenbankmodell" ab, denn Graphen lassen sich in "Tabellenstruktur" nur sehr schlecht speichern und vor allem verarbeiten. Es gibt Graphdatenbanken, die für solche Zwecke deutlich besser geeignet sind bzw. es gibt für relationelle Datenbanken Addons, die eben Graphen deutlich effizienter speichern kann. Bei Graphdatenbanken ist aber ein Zugriff klassisch mit SQL nicht möglich
  11. Nein ich meine das Lerntempo und die Tiefe der Inhalte, z.B. wird meist in der ersten Mathe Vorlesung (90min) der Stoff von der ersten Klasse bis zum Abitur wiederholt. Die Aussage einiger Profs "in der Schule macht man nur einfaches Rechnen" stimmt durchaus. Zusätzlich sollte Dir bewusst sein, dass man nicht einfach Fachabi macht, dann einfach 3 Jahre Bachelor Informatik-Studium und dann 2 Jahre einfach Masterstudium. Mein persönlicher Eindruck ist, dass Du im Moment denkst, Du machst jetzt Dein Fachabi und dann gehst Du eben an die FH studieren. Ich möchte Dir eigentlich klar machen, dass Du durchaus dafür sehr viel Arbeit investieren musst, um Dein Ziel zu erreichen und dass das Lernen, so wie Du es bisher kennst, für Dich einfach war, aber gerade wenn Du nun weiter kommen willst, es eben auch deutlich schwerer für Dich wird, da Du wohl viele Dinge noch lernen bzw. auch noch nacharbeiten musst. Ich kann nur hier von einer technischen Uni sprechen, aber wir haben durchaus in manchen Fächern Durchfallquoten > 90%. Ich denke Du solltest das Projekt eher realistisch sehen und Dir kleine Ziele stecken und Dich stückweise voran arbeiten, die Vorstellung, dass es einfach so gemacht wird, ist eher hinderlich. Man soll zwar sein Ziel nicht aus den Augen verlieren, aber manchmal sind kleine Stücke sinnvoller als riesen Schritte, zusätzlich braucht man Fleiß, Ausdauer und auch Geduld, denn gerade im Studium muss man auch mal Rückschläge einrechnen.
  12. Ich formuliere es mal so, FH und Uni unterscheidet sich wirklich darin, dass man an der Uni häufig eben die Theorie formal durch nimmt, wobei die FH das ganze eher aus angewandten Context sieht. In der Informatik sind für einen Anfänger egal ob FH oder Uni, meistens die Mathe-Vorlesungen und die theoretische Informatik ein Problem. "Rein" praktische Vorlesungen wie z.B. Programmieren, wird meist als eine Vorlesung in einem Semester gemacht, d.h. der Rest ist theoretischer Stoff, den Du aber in diversen Praktika dann praktisch selbstständig umsetzen musst. Hier mal zwei Aufgaben, die eher "praktisch" sind (1. Semester): Beweisen Sie per vollständiger Induktion 1^2 + 2^2 + ... + n^2 = 1/6 * n (n+1) * (2*n+1) Schreiben Sie ein rekursives Programm (in Python), dass eine Kochsche-Schneeflocke berechnet und darstellt. Verwenden Sie dazu eine Klasse für Turtle-Graphiken. Schreiben Sie ein Programm analog dazu, dass eine Minkowski-Wurst erzeugt. Das Informatik-Studium ist nicht dafür ausgelegt, dass Du "Programmieren lernst", das Programmieren gehört dazu und darfst Du Dir eigentlich selbst bei bringen. Das Studium vermittelt Dir die theoretische Basis programmieren zu können bzw. Software zu entwickeln. Z.B. ist ein nicht unerheblicher Teil in der Informatik der Bereich Laufzeitverhalten & Komplexität, d.h. wie entwirft man Algorithmen, die effizient arbeiten und ggf wenig Speicher verbrauchen (siehe z.B. P-NP-Problem / Komplexitätstheorie ). Viele Probleme, die heute existieren sind NP-vollständig, d.h. nicht mehr effizient lösbar, da man aber eine Lösung braucht, muss man sich eben oft theoretisch Gedanken machen, wie man eine "gute" Lösung findet. Eine Ausbildung unterscheidet sich deutlich von einem Studium. Ich empfehle Dir, versuche erst einmal die Qualifikation für ein Studium zu erreichen und dann kannst Du weiter schauen.
  13. siehe http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html#add(E)
  14. Stimmt, hatte ich gar nicht gesehen. Hab mich nur an der Anzahl an Variablen festgehalten (okay, dann hätten es 11 sein müssen). Mein Fehler.
  15. Ohne zu wissen, wie genau die Daten strukturiert sind, wirst Du keine Möglichkeit haben an die Daten heran zu kommen. Sprich Du brauchst ein Tool, dass das die Daten anhand des Codecs verarbeiten kann.
  16. du musst wissen welches Codec verwendet wird, evtl kann man am dem letzen Keyframe die Datei schneiden und ihr dann einen gültigen Header geben.
  17. Benutze eine Schleife, ggf eine Array-Struktur, wenn Du immer blockweise 10 Zeilen lesen willst.
  18. Ich müsste mich schwer täuschen, aber die meisten APIs bieten das Suchen in einem Zip an. Weiterhin warum willst Du einen eigenen Suchalgorithmus mit Datenstruktur implementieren !? Falls die API das Suchen nicht anbietet, dann kannst Du einmal die Verzeichnis- & Dateiliste lesen in einen Container packen und dann darin suchen, ich nehme mal an .NET bietet entsprechende Container mit entsprechenden Sortier- & Suchfunktionen. In C++ würde man z.B. einen std::vector, std::map o.ä. nehmen und dann kann ich direkt darin suchen und falls ich eine Teilstringsuche brauche, dann überlade ich das Compare meiner Itemklasse. Wenn's dann bitte komplex sein soll, dann nimm einen Listencontainer und matche die Suche via regulärem Ausdruck, das ist lineare Laufzeit, denn ich muss jede Datei / Verzeichnis nur einmal anschauen und den Match des Ausdrucks prüfen. Warum muss es so kompliziert sein !?
  19. Ich sehe da nicht die Notwendigkeit eines B-Baums, denn die meisten Zip-File Komponenten, haben entsprechenden Iteratoren um über die Daten zu laufen. Bei einem entsprechenden Baum würde ich da viel zu viel Verwaltungsaufwand sehen.
  20. Wo siehst Du dann ein Problem? Wenn Du Angst vor SQL Injections hast, dann nutze eben statisches HTML !? Wenn Du bestimmte SQL Statements unterbinden willst, dann entziehe dem User einfach die Berechtigung. Wenn Du ein Problem mit einem Script existiert hat, dann wäre ja die wichtigste Frage, welchen Bug hat das Script gehabt und man müsste dann das Script korrigieren bzw. es gar nicht mehr einsetzen. Ansonsten würde ich eher vorschlagen, dass Du z.B. ein Logsystem verwendest das Dir z.B. regelmäßig die Log sendet. Zusätzlich solltest Du eben alle System entsprechend updaten und eben die Berechtigungen der User passend setzen und Services, die nicht benötigt werden, deaktivierst bzw. so weit einschränkst, dass nicht jeder dran kommt. Ein Tool, dass das System für Dich absichert und eben nicht erlaubte Versuche abblockt, gibt es nicht, d.h. lese regelmäßig die Announcements Deiner Software und setze es um. Wichtig ist eben, dass man bei einer Neuinstallation sich überlegt was man alles braucht und wie man das absichert.
  21. Was willst Du mit mit "CMS Beispielen"? Eine Liste mit CMS' findest Du bei Wikipedia List of content management systems - Wikipedia, the free encyclopedia sie ist auch in dem von mir geposteten Artikel verlinkt
  22. Ich sehe darin kein Problem !? Wenn Du keine Software findest, die Deinen Anforderungen genügt, musst Du sie eben entweder selbst entwickeln oder entwickeln lassen und dafür musst Du ggf auch Kosten einplanen. Nimm' ein bliebiges CMS und entwickle für Deine Problemstellung ein passendes Plugin (bzw. lass dieses entwickeln), damit wären dann Deine Anforderungen erfüllt.
  23. Da Du hier weder die Scripte postet, noch deren Quelle angibst und ich auf die Schnelle nur (D)DoS Deflate - deflate.medialayer.com gefunden habe, rate ich Dir, dass Du Dich an den Script-Entwickler wendest. Da Du die Daten der Scripte nach /dev/null umleitest, ist klar warum keine Logausgabe erscheint

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...