Zum Inhalt springen

FinalFantasy

Mitglieder
  • Gesamte Inhalte

    966
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von FinalFantasy

  1. Hi, schonmal Danke, den Link zur IT Akademie werde ich mir noch genauer ansehen, sieht aber auf den ersten Blick ganz gut aus. Auf die Kurse von Microsoft bin ich mittlerweile auch gestoßen, die beziehen sich aber soweit ich gesehen habe, alle auf .NET, was mir in meinem momentanen Job überhaupt nichts bringt. Leider ist das hier auch nicht so allgemein, wie beim MCSE beispielsweise. Wie siehts aus mit Quereinstieg als Systemintegrator? Hat da schon jemanden Erfahrungen gemacht? Wie könnte man so einen Einstieg hinkriegen?
  2. Sorry, ich vergaß: Was habe ich bis jetzt gemacht: Massiv C++, in der Ausbildung 2 Jahre mit Firmeneigenen Framework und jetzt die letzten 2,5 Jahre eine Windowsanwendung mit Qt ansonsten habe ich zeitweise schon Applikationen in Delphi und C#.NET entwickelt (ca. ein dreiviertel Jahr gegen Ende der Ausbildung und danach) ein Jahr lang hab ich SAP-Zeugs mit ABAP entwickelt, wobei mir das überhaupt nicht gefallen hat.
  3. Hi, ich hab bereits nach meinem Fachabi (FOS) eine Ausbildung zum FIAE abgeschlossen und arbeite in diesem Beruf mittlerweile 3 Jahre. Jetzt würde ich mich gerne Weiterbilden, die Frage ist nur wie? Für Systemintegratoren gibt es ja auch den MCSA und MCSE, CCNA.... mir ist leider absolut nichts ähnliches im Anwendungsentwicklungsbereich bekannt. Auch gegen einen Wechsel in die Systemintegrationsschiene hätte ich nichts einzuwenden, würde mir sogar gefallen. Vollzeitstudium scheidet aus finanziellen Gründen komplett aus Fernstudium scheidet aus finanziellen und zeitlichen Gründen auch aus BA-Studium in dieser Richtung gibts in Bayern nicht, nächstes wäre BW und da bräuchte ich dann auch eine neue Arbeitsstelle Vernünftige Fortbildungskurse mit entsprechend angesehenen Abschlüssen habe ich bis jetzt noch nicht gefunden. Techniker wäre möglich, wenn auch teuer, aber da zweifle ich irgendwie an dem Nutzen. Gibts noch andere Möglichkeiten? Wenn ja welche? Wie stehen die Chancen als Quereinsteiger in die Systemintegration als AE?
  4. FinalFantasy

    Netzwerkrechner

    Deinen Codeauszug verstehe ich jetzt nicht ganz. netid ist ein leeres Array und was hast du im ip Array und was im mask Array drinstehen? Die mask müsstest du ja eben erst "berechnen", grad der Teil fehlt in deinem Auszug.
  5. FinalFantasy

    Netzwerkrechner

    int cidr = 24; int mask = 0xFFFFFFFF << 32-cidr; cout << ((mask & 0xFF000000) >> 24) << ((mask & 0xFF0000) >> 16) << ((mask & 0xFF00) >> 8) << ((mask & 0xFF)) ; [/PHP] Also hier die Erklärung: 0xFFFFFFFF stellt einen Integer dar, der binär gesehen mit lauter Einsen gefüllt ist. Deine CIDR-Zahl ist in diesem Fall 24, d.h. die Netzwerkmaske besteht aus 24 Einsen + 8 Nullen. Das "<< 32-cidr" schiebt jetzt 8 Nullen von rechts in unseren komplett mit Einsen gefüllten Integer. Die Einsen die dabei vorne "rausfallen" sind einfach weg und stören nicht weiter das cout is der Standard-Output unter C++, wird also bei dir mit Java nicht funktionieren, hat aber keinen Einfluss auf die Funktionsweise "(mask & 0xFF000000)" maskiert unseren Subnetz-Integer so, dass nur die ersten 8 Bit (oder 1 Byte) übrig bleiben, der Rest sind also nur noch Nullen. Die für unsere gesuchte Zahl relevanten Daten (1 Byte, der erst Teil der IP-Adresse) stehen aber noch links im Integer. Würde man den Integer so als Zahl ausgeben, wäre die Zahl ziemlich groß, im Beispiel 4278190080. Da uns sowieso nur das erste Byte interessiert, schieben wir den Integer wieder um 3 Byte (24Bit) nach rechts. Die für uns interessanten 8 Bits stehen jetzt ganz rechts und vorne sind nur noch Nullen. Die resultierende Zahl ist also 255. Genauso funktioniert es mit der zweiten und dritten Stelle. Die Maskierung ist angepasst und es muss nur um 2, bzw 1 Byte gsechoben werden. Beim letzten Byte braucht man nichtmehr schieben, weil die Daten ja scho ganz rechts stehen. Binär gesehen läuft das dann so: [PHP] Netzmaske: 11111111.11111111.11111111.11111111 entspricht 0xFFFFFFFF 11111111.11111111.11111111.00000000 um acht Stellen nach links schieben Ausgabe: 1.Stelle: 11111111.11111111.11111111.00000000 Netzmaske && 11111111.00000000.00000000.00000000 Bitmaskierung 0xFF000000 -------------------------------------- 11111111.00000000.00000000.00000000 das jetzt 24 Stellen nach rechts schieben 24>> 00000000.00000000.00000000.11111111 entspricht 255 2.Stelle: 11111111.11111111.11111111.00000000 Netzmaske && 00000000.11111111.00000000.00000000 Bitmaskierung 0xFF0000 -------------------------------------- 00000000.11111111.00000000.00000000 das jetzt 16 Stellen nach rechts schieben 16>> 00000000.00000000.00000000.11111111 entspricht auch 255 Ich denke der Knackpunkt ist hierbei nur die Bitmaskierung. Dazu dürfte man aber bei Dr. Google ziemlich viel finden.
  6. Funktionspointer sind Membervariablen (nämlich erstmal nur Pointer, egal auf was) in der Struktur oder Klasse. Dabei kommt mir folgende Frage: Der Linux Kernel ist doch in C geschrieben. Kann man denn in C auch schon Methoden in structs einbauen? Also wirklich C, so ganz ohne ++? Hier sind korrekter ausgedrückt wohl eher Methoden als Funktionen gemeint (eine Funktion hat keine Klasse zu der sie gehört). Ob das dann guter Stil ist, ist wohl wirklich Geschmackssache. Ich verwende es eigentlich selten bis gar nicht.
  7. FinalFantasy

    Netzwerkrechner

    Ja, ist mir nachher auch aufgefallen, dass ja eigentlich nach Java gefragt war, aber Shift-Operator und Binär-Und-Operator wirds ja wohl auch unter Java geben, oder? Wer verstanden hat, wies funktioniert, sollte da jedoch leicht auch auf andere Sprachen übertragen können
  8. FinalFantasy

    Netzwerkrechner

    So etwa? int cidr = 24; int mask = 0xFFFFFFFF << 32-cidr; cout << ((mask & 0xFF000000) >> 24) << ((mask & 0xFF0000) >> 16) << ((mask & 0xFF00) >> 8) << ((mask & 0xFF)) ; [/PHP]
  9. Danke, das sind mal zwei brauchbare Antworten. Das mit dem Eventlistner werd ich mir mal genauer anschauen, klingt jedenfalls vernünftig. Den eigentlichen Widget in AWidget zu verpacken, wäre natürlich auch eine Möglichkeit. Manchmal sieht man den Wald vor lauter Bäumen nicht. :upps
  10. Das PlugIn-System hat mit dem Problem an sich nichts zu tun, also dazu nur soviel: Es gibt eine Basisklasse PlugIn von der alle PlugIns abgeleitet sind. Das Hauptprogramm kennt nur die rudimentäre PlugIn-Klasse. Alle Spezialitäten müssen demnach innerhalb der PlugIns realisiert werden. PlugIn ist in diesem Projekt vielleicht sogar der falsche Name, weil die Anwendung eigentlich nur ein Container für die PlugIns ist und die eigentliche Arbeit fast komplett aus den PlugIns kommt. Ein QWidget, der aus dem PlugIn stammt, wird in die Gui eingebunden. Um flexibel zu halten, kriegt die Anwendung nur ein QWidget, auch wenn das PlugIn intern beispielsweise einen QGraphicsView verwendet. Jetzt hab ich allerdings an diesen Widget spezielle Anforderungen, die ALLE Widgets aus ALLEN PlugIns mitbringen, obwohl diese intern höherwertige Klassen von QWidget verwenden. Die Hauptanwendung muss demnach diese Spezialität kennen. In einem puren QWidget ist diese Spezialität aber natürlich nicht enthalten. Würde es sich bei dieser Spezialität um eine simple Methode handeln, z.B ganz einfach "bool isXYSet()", wäre es kein Problem dies wie in meinem Beispiel zu realisieren. Jetzt brauch ich aber als Spezialisierung ein Signal oder einen Slot, um aber in meinem Interface (AWidget) einen Slot definieren zu können, muss ich selbst schon von QObject erben (und auch das Q_OBJECT Makro einbauen), da Slots sonst nicht funktionieren. Dieses geerbte QObject wird aber dann zum Problem, wenn ich das Interface (AWidget) via Mehrfachvererbung in einen QWidget einbinden will -> Mehrfachvererbung von der gleichen Basisklasse. Die einfachste Lösung wäre, wenn QWidget QObject nur virtuell erben würde und ich AWidget auch nur virtuell von QObject ableiten würde. QWidget müsste dann so aussehen: class QWidget : virtual public QObject {}; AWidget wäre dann: class AWidget : virtual public QObject {}; [/PHP] leider erbt QWidget aber QObject nicht virtuell. Ich arbeite aktuell mit VS2005 mit dem Microsoft Kompiler. Die Mac-Portierung folgt erst noch, ist also aktuell noch nicht in Arbeit. EDIT: Bevor danach gefragt wird: Die PlugIns sind DLLs die dynamisch geladen werden. Um sie dynamisch laden zu können, steht über dem ganzen nochmal eine C-Schnittstelle und die PlugIns werden darüber über eine Factory geladen.
  11. Ich muss bei C++ bleiben, da wir das in diesem Projekt mit Qt einsetzen. Die Software soll auch auf Mac laufen, deshalb auch Qt. Ich leg sehr viel Wert auf eine saubere OOP-Struktur, will aber trotzdem einen möglichst einfachen Weg gehen. Deshalb suche ich eben auch nach einer praktikablen Lösung. Templates sind mir auch schon in den Sinn gekommen. Dabei stoß ich allerdings auf das Problem, dass das ganze im Rahmen einer PlugIn-Struktur realisiert wird und dieses Problem die Schnittstelle betrifft. Templates müssen aber zur Kompilezeit mit den entsprechenden Typen erzeugt werden. Sollte also in einem PlugIn ein neuer Typ verwendet werden, kennt das Hauptprogramm diese Templatevariante nicht. Ich müsste also das Hauptprogramm ändern, was den PlugIn-Sinn zerstören würde.
  12. Ja, so stimmts, nur bei dieser Lösung muss ich jedesmal wenn ich für jede Q*-Klasse die ich verwenden will, erst ne Ableitung machen. Das will ich eigentlich vermeiden. Ich will/muss ja dabei nichtmal an dieser Struktur festhalten. Bin allgemein auf einer Suche, dieses Problem irgendwie zu lösen, da ich die gleiche Thematik jetzt schon öfters hatte.
  13. Wenn du dir das Codebeispiel ansiehst, siehst du, dass ich A und B nicht von X ableite, sondern von AWidget. Abgesehen davon tritt bei dem was du jetzt geschrieben hast, das gleiche Problem auf. QWidget -> X -> A, B, C enthält schon QObject (QWidget stammt auch von QObject ab). Wenn ich jetzt als Y von A und QLabel ableite, habe ich zweimal QObject drin, einmal von A, einmal von QLabel (QObject -> QWidget -> QLabel). Das führt dazu, dass der Compiler schonmal eine Warnung ausgibt. Spätestens, wenn ich in meiner Ableitung auf irgendwas von QObject zugreife (und das geschieht zwangsläufig schon durch das Meta-Object System von Qt), kriegt man einen Kompilerfehler, weil nicht klar ist, auf welches QObject man zugreifft.
  14. Mhhh, ich will es nicht direkt ändern, ich will es "nur" erweitern. Das ist das Problem. Dann kann ich keine Qt-Klassen mehr verwenden. D.h. ich muss mir im Grunde Ableitungen von ALLEN QtGui Klassen machen. Dabei will ich nur eine Methode dazuhaben, die sich wiederum auch mit QWidget-Level begnügen würde. Demnach müsste ich in meinen Klassen sämtliche Funktionalitäten aller von QWidget abgeleiteten Klassen neu implementieren, weil an die Originale komm ich ja nicht mehr ran, ohne wieder in das Diamantproblem zu geraten. Darum geht es mir auch. Dachte nur, dass der Pseudocode es vielleicht verständlicher macht.
  15. Hi, hab hier ein Problem und will das gleich mal praktischerweise unter Verwendung von Qt erläutern. In diesem Beispiel wird das Problem eigentlich durch Qt verursacht, hatte ähnliche Fälle aber bereits auch Qt-unabhängig. Ich habe eine Basisklasse A. Von A gibt es mehrere Ableitungen, sagen wir B und C. A wird von Klasse Base verwendet. Eine abstrakte Methode "getWidget" von A gibt mir einen Pointer auf QWidget zurück, der von Base weiterverwendet wird. Diese Methode muss also in B und C implementiert werden, diese können intern aber natürlich eine höherwertige Klasse von QWidget, also z.B. ein QLabel oder gar einen QGraphicsView, verwenden. Base MUSS aber davon unabhängig sein! Damit ist die Klasse A quasi eine Schnittstelle. Jetzt bin ich an dem Punkt, an dem ich die Schnittstelle erweitern muss. Solange es sich bei der Erweiterung um einfache Methoden handelt, ist das kein Problem. Ich erstelle mir eine Klasse AWidget, die die Methode implementiert oder abstrakt enthält. Der verwendete Widget erbt danach von AWidget + beliebiger Widget. AWidget wird also als Interface verwendet. Die Methode "getWidget" von A gibt danach keinen QWidget mehr zurück sondern einen AWidget. Damit steht die erweiterte Funktionalität zur Verfügung. (Alternativ kann weiterhin ein QWidget zurückgegeben werden, der via dynamic cast aber auf AWidget gecastet werden kann). Jetzt möchte ich AWidget aber mit einem SIGNAL ausstatten. Um in AWidget aber Signals & Solts verwenden zu können, muss ich AWidget zumindest von QObject ableiten. Dabei kriege ich aber das Problem, dass AWidget von QWidget (oder höher) und QObject erbt. QWidget erbt aber auch von QObject und damit habe ich hier ein Diamantproblem. Ergo: Ich will die Funktionalität einer Basisklasse erweitern, ohne dessen Code direkt ändern zu können (die Qt-Sourcen ändern wäre nicht gut). Ich kann aber auch nicht QWidget ableiten und erweitern und dieses dann immer weiter verwenden, da ich natürlich auch bereits vorhandene, von QWidget abgeleitete Klassen verwenden will. Ist jemandem eine Lösung dieses Problems bekannt, oder hat vielleicht jemand Tips für mich, wie man das umgehen könnte? Bin für jede Hilfe dankbar.
  16. Tschuldigung, ich vergaß... die Ruckler treten sowohl im Singleplayer als auch Multiplayer gleichermaßen auf, an der Verbindung (die man ja im Singleplayer so dringend braucht), liegts nicht.
  17. Hi, ich hab mir das Spiel gestern gekauft, und ich muss sagen, mir gefällt es super. Was mich allerdings wundert: Ich habe mit den Einstellungen rumgespielt, und das ist verwirrend. Selbst auf höchsten Einstellungen (DX9) find ich die Grafik schon gut, hab aber schon besseres gesehen. Die Grafik von FEAR war zum Beispiel um Welten besser, finde ich UND es lief bei mir spielbar mit ansehnlichen Einstellungen. Mit Hellgate hab ich jetzt erstmal das Problem, dass es auf den niedrigsten Einstellungen immernoch heftige Ruckler hat (sporadisch, wobei ich bisher nicht feststellen konnte, an was es liegt. Jedenfalls nicht an Grafikeffekten oder Gegnern... man geht durch einen Tunnel... 2 Gegner und ruckel ruckel...). Und das Spiel sieht auf den niedrigsten Einstellungen aus, als wäre es 4 Jahre alt!!! Kann mir jemand Tips geben, oder hat ähnliche Probleme? P4 3,0Ghz(HT), 1,5GB Ram, Radeon X1800GTO (256MB) (ich weiß, ist nicht das aktuellste) Wie gesagt, andere Spiele laufen mit wesentlich besseren Grafikeinstellungen absolut flüssig.
  18. Anhand der Reihenfolge identifizieren geht nicht, da man die Ergebnisse in PHP als assoziatives Array kriegt... kommt so ein Fall vor, dass zwei Spalten den selben Namen haben, kommt PHP damit schon nicht zurecht, weil man dann zwei Werte zum gleichen Key hat. Die Wildcard durch jedes Feld austauschen will ich nicht, weil ich weiß, dass sich die Felder ändern können oder neue dazu kommen können. In dem realen Code muss ich ausserdem 4 mal joinen, nicht zweimal, a 16 Spalten pro Tabelle.... naja... abgesehen vom Index brauche ich sowieso jede Spalte. Hat also nichts mit Faulheit zu tun, sondern mit mangelnder Flexibilität. Ich hab das jetzt erstmal mit einem View gelöst, in dem ich wirklich alle Spaltennamen angegeben habe (soviel zur Faulheit), so gibt es wenigstens nur eine Stelle an der man im Fall der Fälle ändern muss. Aber es hätte ja sein können, dass es eine elegantere Lösung gibt, z.b. dass man Prefixe vergeben kann, oder sowas in der art. Wie meinst du 2 Selects? Für jeden Eintrag in a nochmal einen Select auf b machen? Dann käme ich bei einer Abfrage auf.... viele Selects. Falls du Subselects meinst, stellt sich das selbe Problem, dass ich jede Spalte aufführen muss, da ich sonst wieder die gleichen Spaltennamen mehrfach habe.
  19. Hi, ich habe folgendes Problem: Eine Tabelle a enthält 2 Referenzen auf Tabelle b, also muss ich b zweimal auf a joinen: SELECT a.*, b1.*, b2.* FROM a LEFT JOIN b AS b1 ON a.b1id = b1.id LEFT JOIN b AS b2 ON a.b2id = b2.id [/PHP] Als Ergebnis erhalte ich logischerweise eine Tabelle, die aber alle Spalten der Tabelle b doppelt enthält. Das ist ja auch so gewünscht, allerdings werte ich das Ergebnis in PHP aus und kann hier nichtmehr erkennen, welche Spalte von b1 stammt und welche von b2. Gibt es eine Möglichkeit, allen Spaltennamen von einer Tabelle ein Prefix in den Spaltennamen zu schreiben, ohne jedes Feld beim SELECT aufführen zu müssen?
  20. Hi, ich habe hier ein Problem mit FTP-Uploads auf einen IIS-FTP-Server. Bricht die Verbindung während des Uploads ab, lockt der IIS die (unvollständige) Datei noch eine ganze Weile (ca. 5min). Man muss also diese Zeit abwarten, bevor man einen Resume machen kann. Weiß zufällig jemand, ob man diese Zeit einstellen kann? Wenn ja möglicherweise auch noch wo? Der selbe Effekt tritt übrigens auch mit Filezilla-Server auf.
  21. Naja, ich seh das nicht so... wenn man wenigstens eine Benachrichtigung kriegen würde... aber naja... Wenn jemand meine Telfonnummer in sein Handy gespeichert hat, weil ich die irgendwann mal hergegeben hab, kann ich auch nicht einfach meine "Autorisierung" zurückziehen... Aber wie es aussieht, scheint die Mehrheit mit solchen Funktionen einverstanden sein... ok, damit hätte ich nicht gerechnet... ich bin damit jedenfalls nicht einverstanden.
  22. Dass die Kontaktlisten früher offline gespeichert wurden, und irgendwann dann mal online gespeichert wurden, hab ich mitbekommen. Schließlich benutze ich auch schon seit.... 1998 (ich weiß nichtmehr genau) ICQ. Also so wie ich das sehe, siehst du diese Funktionalität eher als nützlich/praktisch? Aber du hast mich auf eine Idee gebracht... würde man die Kontaktliste offline speichern und bei jedem connect mit der Onlineliste vergleichen, könnte man zumindest eine Meldung ausgeben, dass sich jemand von meiner Liste gelöscht hat...
  23. Ich hab meine Telefonnummer nicht ins Profil gestellt, und werd ich auch sicher nie tun. Das war nur ein Vergleich, wie es wäre, wenn sich andere Leute an Telefonbucheinträgen von Handys vergreiffen könnten, ohne dieses wirklich in die Finger zu kriegen. Genauso ist es, wenn andere Leute in meiner Kontaktliste rumfurwerken können. Mich haben nur andere Meinungen zu diesem Thema interessiert, weil ich wissen wollte, ob ich der einzige bin, der das für nicht gut hält. QIP ist nunmal der einzige mir geläufige Client, der solche Funktionen bietet.

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...