flashpixx
Mitglieder-
Gesamte Inhalte
8302 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von flashpixx
-
Das macht keinen Sinn, denn damit würdest Du nur einen Bruchteil der eigentlichen Laufzeit erhalten. Eine Schleife wird n mal durchlaufen, wobei n >= 0 und natürliche Zahl ist. Somit werden die Befehle innerhalb der Schleife n mal ausgeführt, d.h. dann n * O(<Komplexität der Schleife>), da eine Schleife linear zur Laufzeit beiträgt. Je nach Schleife muss man dann schauen ob es n oder n-1 ist. Du musst eben für das Landau-Symbol die Anzahl der Durchläufe ermitteln und vorher beweisen, dass die Schleife terminiert, da sonst die Laufzeit divergieren kann.
-
@tennessee: Der OP hat sein Projekt mit dem Titel aufgrund des Titels ist keine Entscheidung zu erkennen, denn es wird Nagios zur Überwachung installiert. Man hofft, dass sich dadurch auch eine Minimierung des Aufwandes entsteht. Wie man das misst, ist nicht gesagt. Bei Deiner Argumentation bastelst Du an die Vorgabe Nagios noch zig andere kleine Teilprojekte dran, die ich alle unter dem Begriff "Konfiguration des Systems" zusammenfassen kann. Wo sind bitte Entscheidungen, die Pflichtkomponenten des Abschlussprojektes sind!?
-
Das Projekt ist ungeeignet, da Du weder fachliche noch wirtschaftliche Entscheidungen triffst, Du installierst nur Nagios und bisschen auf der Konsole rumtippen reicht nicht für ein Projekt
-
das bestreite ich aber Er macht zwar weiter, aber trotzdem erhält man keine Daten. Es muss die CA vorhanden sein, das man mit dem Parameter sslcertfile in die Konfiguration eintragen kann
-
Ja, genau das meinte ich. Ich würde Dir aber aus Bequemlichkeit, wenn Du so etwas häufiger bauen musst, eine make ? Wikipedia empfehlen
-
Bitte einmal lesen Compiling Java with GCJ | Linux Journal Du musst anhand der Parameter des gcj unterscheiden, ob Du eine Source Datei oder einen Bytecode vorliegen hast. Du erzeugst erst aus den Java Klassen / Sourcen Object-Dateien und diese linkst Du dann in das Executable (analog zu C bzw C++)
-
*.o Dateien sind keine Executables. Du musst diese Dateien dann noch binden bzw linken, damit Du ein Executable erhältst. Die -o Option (Output) erzeugt das Exectuable. Die Fehlermeldung ist ein Linkerfehler, d.h. hier wird aus irgendwelche Gründen eben nicht die zugehörige Bibliothek gefunden. Ich würde darauf tippen, dass der gcj analog zum G++ / GCC die Bibliothek, die gelinkt werden soll als Parameter erwartet bzw diese auch in einem bekannten Pfad liegen muss (Umgebungsvariable LIBRARY_PATH)
-
Da hast du recht. Wichtig wäre zu wissen, ob es sich um eine Adjazenzliste oder um eine -matrix handelt. Beides wird die Repräsentation von Graphen verwendet, wobei man mit einem pair die Liste verarbeiten kann, wenn man dann noch beachtet, dass es sich um eine einfach-verkettete Liste (nach Definition) handelt. Ansonsten müsste man eben das ganze als Matrix verarbeiten
-
ein pair wird normalerweise für eine Adjazenzmatrix nicht ausreichen, denn man hat eine quadratische Matrix und nicht wie in dem Beispiel immer nur Paare, somit muss ich zeilenweise parsen
-
Wie wäre es, wenn Du die PKI Zertifikate, vor allem das CA Cert speicherst !?
-
Kann das SSL Zertifikat, das Fetchmail erhält, validiert werden?
-
Graphen werden oft als Repräsentation von Graphen im Computer ? Wikipedia dargestellt und genau diese Darstellung hat der OP vorliegen als Textdatei. Für die Darstellung des Graphen wäre Boost Graph Library: Adjacency Matrix eine Möglichkeit, sowie eben das genannte Array, dafür musst Du aber im Vorfeld die Größe des Graphen kennen. Im Grunde musst Du die Datei zeilenweise einlesen und eben anhand eines Separators zerlegen. Im korrekten Fall solltest Du genauso viele Zeilen wie Spalten haben und kannst daraus die Adjazenzmatrix erzeugen.
-
Ein Forum ist nicht dafür gedacht, dass wir Deine Hausaufgaben machen. Wir erwarten von Dir, dass Du Deine Lösungsansätze hier zeigst.
-
Das wollte ich ja eigentlich ausdrücken. Parallelisierung kann man eben auf verschiedenen Ebenen durchführen, wobei man eben immer im Kopf haben muss, dass eben manche Konzepte einen höheren Parallelisierungsgrad bieten. Ich denke, wenn man sich überlegt was man überhaupt parallelisieren will und dann die passende Technik wählt, erhält man eine gute Lösung. Einfach ein Toolkit zu verwenden zu hoffen, dass dieses das schon alles irgendwie erledigt, führt nicht zum Ziel
-
Das Problem aber bei der TPL ist, dass ein Optimierung hier relativ wenig bringt, sprich der Parallelisierungsgrad ist nicht hoch (Berechnen kann man das im Limes über das Gesetz vom Amdahl bzw Gustafsons). Wenn man Algorithmen parallelisiert (egal ob Multithread oder Multicore), dann muss man das Problem analysieren und eben sich die Daten- und Berechnungsflüsse anschauen. Auf dieser Ebene bringt eine Parallelisierung den meisten Speed-Up. Eine reine Optimierung auf TPL, also Schleifenoptimierung, bringt weniger Speed-Up. Der Ansatz ist letztendlich die Problemstellung und deren Abhängigkeiten
-
Ich würde das erst einmal unabhängig von C# designen. Ich würde eine zentrale Datenstruktur bauen, in die ein entsprechendes Locking implementiert ist. Ein Thread legt dort entsprechend einen Datensatz ab, wenn er die Antwort erhalten hat und die anderen Threads aus dem Pool entnehmen diese Daten. Wobei ich das auch als Warteschlange implementieren würde, damit Du eine definierte Abfolge haben. Eine Sache ist dabei zu beachten: Wie verhalten sich die Threads, wenn die Warteschlange leer ist, denn die Threads zu beenden ist dann sicherlich nicht in Ordnung, denn es können können einfach (noch) keine Daten in der Schlange sein. Ein Eventhandling halte ich hier für nicht sinnvoll, denn Du hast ja keine deterministische Struktur, d.h. das auf ein Event muss eine bestimmte Aktion erfolgen. In Deinem Fall ist es ja egal, wann und wer den Datensatz verarbeitet, er muss nur verarbeitet werden und letzteres stellst Du ja sicher, so lange die Warteschlange nicht leer ist, muss gearbeitet werden. Technisch würde ich mit einem Threadpool arbeiten und eben eine Strukturvorsehen, die die Daten aus dem Webservice holt und vorbereitet. Wenn ein Thread eben einen Call des Webservice verarbeitet hat, schreibst Du in eine Warteschlange eben eine ID und gibst den Thread in den Pool. Threads die im Pools sind holen sich dann die ID und arbeiten dann die konkrete ID ab. Evtl machst Du zwei Pools, einen für den Webservice Call und einen für die nachfolgende Verarbeitung. Ich denke aber, das Vorgehen musst Du dann konkret entscheiden. Ein Ziel wäre eben die Aufgaben so weit unabhängig zu designen, weil dann das Threading eben sehr effizient ist, damit solltest Du eben nur schauen wo Du synchronisiert arbeiten musst
-
Erstelle im Berichtskopf eine globale Variable und packe die AGBs in einen eigenen Bereich. Wenn Du eben die Rechnung ausgibst inkrementierst Du die Variable, wenn dann die entsprechende Modulo Division der Variablen null ist, lässt Du den Bereich mit den AGBs anzeigen
-
Nein gibt es nicht. Es gibt keine Anleitung für Dein Problem, dass Dir Schritt für Schritt sagt was Du zu tun hast. Eine Lösung hatte ich genannt, Crash hat sie ergänzt und Dir den Hinweis auf die VM Netzwerinterfaces gegeben. Danach musst Du eben die Netzwerinterfaces unter Debian konfigurieren, das ist nun mal Netz abhängig. Die Debian How-Tos geben darüber Aufschluss wie das geht, denn das ist distributionsabhängig. Wenn Du das hast, dann brauchst Du eben noch einen Dienst um einen Dateizugriff zu ermöglichen. Eine Möglichkeit, nämlich SSH hatte ich genannt, als Alternativen gibt es Samba, WebDAV, FTP, NFS usw. Für jedes gibt es auch entsprechende How-Tos, wie man das einrichtet.
-
Let me google that for you
-
wie soll man da einen Rat geben !? Netzwerkinterface der VM passend konfiguren und dann innerhalb von Debian konfigurieren und die Vebrindung via SSH herstellen (d.h. SSH Dienst konfigurieren)
-
so etwas lässt sich auch jetzt schon via Boost.Lambda lösen
-
Ich würde evtl noch folgende Konstellation betrachten: Innerhalb des LAN einen Samba laufen lassen und nach außen nur einen SSH. Mit einem entsprechenden Client kann man die Verzeichnisse, die man per SSH hällt auch in den Windows Explorer direkt einhängen (für OSX gibt es da auch Tools für). Authentifizierung via SSH Schlüssel und den SSH Server ggf nicht auf dem Standardport lauschen lassen. Finde ich gegenüber der Konfiguration eines VPN wesentlich weniger aufwändig. @Crash2001: Du magst recht haben, dass man selten die komplette dyndns-Domän abscannt um nach offenen Ports zu suchen. Aber ich halte es inzwischen auch für sinnvoller eben diverse Techniken zum Schutz einzusetzen. Denn wenn man durch einen Samba z.B. einen Trojaner ins System einschleust und der sich dann eben durch diese Freigabe im LAN verteilt, ist das eben sehr unschön
-
Nur root kann die Konfiguration des SSH Dämons ändern, kein anderer User. Es geht nicht darum, ob Du schon mal eine SSH Verbindung "gemacht" hast, ich gehe davon aus, dass Du weißt wie man einen SSH Client bedient. Dir fehlt aber ein Verständnis für die Zusammenhänge. Deswegen mein Hinweis, installiere einen Linux Server mit einem OpenSSH Server und konfigurieren einmal diesen, damit Du überhaupt mal ein Verständnis für die Problematik bekommst. Ob Du Deinen Code im Notepad oder Eclipse schreibst, ist mir egal. Es geht nicht um die Diskussion der IDE, sondern darum, dass Du hier fachlich alles zusammen wirfst. Die IDE spielt für Deine Frage überhaupt keine Rolle, aber in allen Deinen Postings beziehst Du Dich darauf. Du beschränkst das Problem darauf "ich will eine Java Anwendung". Das reicht hier aber nicht, denn Du brauchst auch eine Serverkomponente über die Du die Daten anforderst. Bei Dir soll das SSH sein, wobei hier gerade ein Arbeiten mit Passwörtern einfach aus Sicherheitsgründen nicht sinnvoll ist. Eine Serverkomponente muss installiert, konfiguriert und auch gewartet werden und dafür brauchst Du auf einem Unix System nun mal root Rechte. Bevor Du überhaupt beginnst eine Anwendung mit GUI zu realisieren, wäre der erste Schritt zu überlegen, wie Du an die Daten kommst. Und hier muss man direkt auch die Frage stellen, ob eine SSH Verbindung sinnvoll ist, da diese immer mit dem Overhead der Administration des entsprechenden Useraccounts auf dem Unixsystem verbunden ist und dadurch auch automatisch Sicherheitslücken aufweisen können, die z.B. durch Deine GUI ausgenutzt werden können, um Schaden anzurichten. Wer sagt denn, dass nur Deine Anwendung mit dem Unixsystem arbeitet, sobald ich einmal Benutzername und Passwort habe, kann ich mich auch mit einem beliebigen SSH Client direkt am System anmelden und Unfug machen (und es sollte nicht all zu schwer sein, auf dem Rechner auf dem die Anwendung läuft einen Keylogger unterzubringen, der Username und Passwort aus Deiner Anwendung ausliest). Aus diesem Grund komme ich zu der Frage "ist eine SSH Verbindung für das Problem Daten vom Rechner holen eine sinnvolle Wahl" und in meinen Augen ist sie es nicht. Alternativen habe ich genannt. Diese Alternativen setzen natürlich andere Techniken voraus, wobei man hier dann die Frage stellt, muss ein User, der nur Daten vom System abholt (und ggf vorher Daten zur Berechnung hinschickt) überhaupt einen Zugang zum System haben. Ich würde auch das ablehnen, denn wofür !? D.h. aber nun, dass Du Dir zuerst Gedanken machen musst, wie Du die Daten zum Server bzw vom Server hin und her schickst, wenn Du kein SSH nutzt. Zusätzlich müssen die Daten ja auf dem Server durch andere Programme verarbeitet und evtl auch zwischengespeichert werden. Das bedeutet aber letztendlich, dass Deine Problemstellung nicht damit beginnt, wie kannst Du mit Eclipse ein Javaprogramm schreiben, dass einen Server fern steuert, sondern Du beginnst mit dem Rahmenbedingungen, d.h. was brauchst Du zwingend für Anforderungen und welche sind nicht notwendig. Gerade auf Servern sollte man die Angriffsfläche möglichst gering halten, d.h. nicht jeder muss Zugang zum System haben. Da Du unweigerlich auch eine Kommunikation zwischen Deiner GUI Anwendung und dem Server hast, wirst Du Dich letztendlich auch mit dem Thema Netzwerkprogrammierung im weitesten Sinne beschäftigen müssen, d.h. aber auch, dass Du über die Grundlage der Kommunikation in Netzen Wissen haben musst. Du hast hier im Grunde drei Komponenten im System, einmal die GUI, die die Userdaten verarbeitet und darstellt, die Kommunikationsschicht zwischen Client und Server und die Server schickt, die ggf Berechnungen durchführt. Alle drei Schichten sollten so konzipiert (!) werden, dass sie möglichst wenig Angriffsfläche für Missbrauch bieten und ein guter Ansatz ist dabei immer ein minimales Konzept zu entwickeln, d.h. was ist überhaupt notwendig. Gleichzeitig sollte man auf bewährte Standard-Technologien setzen und nicht irgendwas selbst zusammen frickeln. Deshalb solltest Du Dir zuerst ein Konzept erarbeiten, bevor Du mit dem Coding beginnst. Gleichzeit solltest Du - der Übung halber - auch das ganze einmal selbst installieren, damit Du auch siehst, wo evtl Probleme / Schwierigkeiten auftreten. Dein durchdachtes Konzept ist der Einstiegspunkt in das Projekt.
-
Was sagt denn ein Lookup auf die Domain bzw die Adresse?
-
ps hat nichts mit Verzeichnissen zu tun, sondern liefert eine Liste über die aktuell laufenden Prozesse im System