Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2.018
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    48

Alle Inhalte von Whiz-zarD

  1. Mir ist ebenfalls nicht klar, was mit "Katalog" gemeint ist und was hier abgeglichen werden soll? Was verstehst du unter einem Muster? Gibt es eine Vorlage? Also ein konkreter Soll-Ist-Vergleich? Oder gibt es Kriterien, die auf eine bestimmte Art- und Weise konfiguriert werden müssen; Z.B. im Programmcode oder durch den Anwender.
  2. Ok, hab es jetzt mal bis dahin gespielt. Er will die exakte Spaltenreihenfolge und die ist bei dir vertauscht. Es muss select status, avg(gold) from bewohner group by status lauten
  3. Nimm mal die Where-Klausel raus. Vielleicht gibt es da noch mehr Status-Werte als nur die drei. Er sagt ja, es ist die falsche Anzahl von Zeilen und nicht von Spalten. Daher gehe ich davon aus, dass deine Where-Klausel zu viel filtert.
  4. Ich kenne mich mit den Geräten von Unity Media nicht aus. Ich weiß nur, dass Vodafone/Kabel Deutschland der Router in den Bridge Modus geschaltet werden kann. Wo liegt aber das Problem, dass an diesem Router nur ein Gerät angeschlossen wird? Es ist ja nicht so, dass man ständig davon ausgehen muss, dass da Leute Zugang haben und ihre Geräte per LAN dort anschließen. Das WLAN von Router A schaltet man dann einfach aus. Ohne den Bridge Modus schließt man halt Router B an Router A an. Das wars. Router C und D eben als AP an Router B. Probleme gibt es dann nur bei der Portweiterleitung, wenn man welche nutzt, weil man ihr zwei Geräte (Router A und B ) konfigurieren müsste.
  5. Wenn es geht, dann schalte Router A in den Bridge Modus. Dann läuft dieser nur als Modem und leitet die Datenpakete an Router B weiter. Router C und D werden als Access Points eingerichtet und mit Router B per Kabel verbunden. Dann läuft das gesamte Netzwerk über Router B und kann von dort aus konfiguriert werden.
  6. Webprogrammierung ist Anwendungsentwicklung. Da gibt es keinen Unterschied. Es ist egal, ob du eine Webseite, einen desktopclient oder eine App entwickelst. PHP gehört zu den objektorientierten Sprachen, genauso wie C#. Du wirst also viele Gemeinsamkeiten finden und als Softwareentwickler muss man auch mehr Sprachen können. PHP kannst du auch für andere Dinge benutzen, als nur für Webseiten. Es ist eine Sprache, die dir Text zurückgibt. Du kannst also PHP-Scripte per Konsole starten und was dir z.B. eine CSV-Datei zurückgibt.
  7. Ich denke, ihr redet da einander vorbei. Unter "fiktiv" hätte ich auch was anderes verstanden. Ich und @charmanta haben es wohl so verstanden, dass es kein echtes Kundenprojekt ist, sondern nur so angenommen wird, als hätte ein Kunde oder die Firma intern das Projekt in Auftrag gegeben und nicht, dass das Projekt nur auf Papier stattfand. Das hat zwar nichts mit Fachinformatiker zu tun aber meine Mechatroniker-Abschlussarbeit war so etwas fiktives. Ich hab in einer Firma gelernt, wo die Mechatroniker nur die Wartungsarbeit übernommen haben. Wir haben also nichts produziert und wir mussten uns auch ein Projekt ausdenken. In der Lehrwerkstatt hatten wir uns eine Anlage ausgedacht, die automatisch einen Tesafilmrollenhalter baut. Jeder Azubi hat dann ein Teil dieser Anlage entworfen und gebaut. Die Anlage ging nie in Produktion. Ich weiß, dass später eine andere Firma die Anlage für Lehrzwecke gekauft hat.
  8. Der TE hat in eines Projektantrag explizit erwähnt, dass er ein MS SQL-Server verwendet. Um die Daten in den Server zu bekommen, benötigt er SQL. Als ist es nicht hilfreich, zu erwähnen er solle SQL lernen, weil das Teil seines Projektes ist, sondern das ist nur eine Wiederholung des offensichtlichen. Wozu auch? Das wird auch nicht von der Ausbildungsordnung gefordert. In der Ausbildungsordnung heißt es lediglich: Das bedeutet nicht, dass er darlegen muss, dass das Projekt wirtschaftlich rentabel ist und dass die Kosten sich irgendwann amortisieren und ggf. irgendwann mal Gewinne einfahren, sondern dass das Projekt im wirtschaftlichen Rahmen geblieben ist. Sprich: Der Kunde bekommt das, was er wollte und nicht mehr. Dem Kunden sollen keine goldene Wasserhähne verkauft werden, wenn er ausschließlich chromierte Wasserhähne möchte. Aber gut, hier wären wir weder bei dem Thema "IHK und ihre Vorstellungen" und meine Meinung über die IHKs und dass sie über das Ziel hinausschießen, sollte vielleicht hier schon bekannt sein. Also BTT.
  9. Dennoch verstehe ich nicht, warum gerade in diesem Thread, welcher ausschließlich um ein Abschlussprojekt handelt, erwähnt wird, dass in der schriftlichen Prüfung SQL vorkommen könnte und er das lernen sollte. Zum Abschlussprojekt gehört auch das Fachgespräch und da ist es klar, dass wenn er SQL verwendet, auch weiß, was SQL ist.
  10. Im Rahmenplan ist nicht explizit von relationalen Datenbanken und SQL die Rede. Der Begriff "SQL" kommt dadrinnen gar nicht vor. Relationale Datenbanken und SQL sind die gängigste Form, ja aber nicht die einzige. Der Rahmenplan sieht sogar vor, dass man eine aufgabengerechte Datenbank auswählen und mit dieser arbeiten können soll. D.h. der Rahmenplan gibt sogar vor, dass man mehrere kennen sollte.
  11. Für einen FIAEler könnte ich mir viele Projekte ohne SQL und relationale Datenbanken vorstellen. Das ist ja nicht die einzige Form, wie Daten persistiert werden können. Es gibt sogar viele Szenarien, wo relationale Datenbanken ungeeignet sind. Wobei ich mich weiterhin frage, wofür das Script auf den Clients gut sein soll? Es ist von dem Einsatz eines Monitoring-Tools die Rede. Kann das Tool nicht die An- und Abmeldezeiten protokollieren?
  12. Der Grund für die Exception ist, dass load(string uri) intern einen XmlTextReader instanziiert. Der schaut nach, ob die Encoding-Deklaration vorhanden ist. Falls nicht, wird standardmäßig UTF-8 als Encoding gewählt. Der XmlTextReader versucht daraufhin die Zeichen zu interpretieren und fällt bei dem å auf die Nase, weil die Datei nicht UTF-8 kodiert ist. Der StreamReader ist auch nichts anderes, als ein TextReader, von daher kann auch dieser genommen werden, wie @Gottlike schon schrieb.
  13. Ich frage mich, wofür überhaupt das Skript auf jedem Client gebraucht wird? Die benötigten Informationen werden schon im AD gespeichert. Die Daten müssen doch nur noch aufbereitet werden. Z.B. über ein ETL-Prozess.
  14. Wirklich optimal ist der Code auch nicht, da du gnadenlos jeden Teilabschnitt durchläufst, auch wenn klar ist, dass schon ein Teilabschnitt nicht genug Kapazität besitzt und die Route somit ausgeschlossen werden kann. Also müsstest du die Abbruchbedingung der for-Schleife noch anpassen. Aber hier sieht man die Tücken, wenn eine Funktion mehr als eine Sache tun soll. Es wird schnell unübersichtlich. Zum einen wird man am Anfang der Funktion mit Variablendeklarationen erschlagen. Variablen sollten so lokal wie möglich deklariert werden. z.B. streckeOkay brauchst du nur in der foreach-schleife aber sie wurde außerhalb des Scopes deklariert und steht somit der gesamten Funktion zur Verfügung. Zum anderen muss man sehr viel "Schmutz" einbauen, damit der Code auch funktioniert, wie z.B. streckeOkay = true; so etwas stört den Lesefluss. Ja, ich habe sowas auch drinnen aber im Nachhinein ist die Variante mit der Initialisierung des günstigsten Preises auf -1 wohl eine bessere Alternative und ich könnte mir die isInitialized-Variable sparen. Man sollte sich immer im klaren sein, dass Code mehr gelesen wird, als geschrieben. Daher sollte der Code sauber und klar sein. Man kann schon an den Kommentaren erkennen, dass der Code eben nicht klar und sauber ist, weil die Kommentare den Code erklären müssen. Wenn man Kommentare schreiben muss, um den Code zu erklären, sollte man die Finger von der Tastatur nehmen und mal überlegen, wieso es ein Kommentar bedarf und nicht der Code für sich selbst sprechen kann? Der folgende Code ist schon großer Mindfuck. if ((streckeOkay == true && guenstigsterPreis == -1.0) || (streckeOkay == true && preis < guenstigsterPreis && guenstigsterPreis != -1.0)) { ... } Das muss man mehrmals lesen, um es überhaupt richtig zu verstehen. Man kann es auch einfacher schreiben: if (streckeOkay && (preis < guenstigsterPreis || guenstigsterPreis == -1.0)) { ... } Dann wird es vielleicht schneller deutlicher, was gemeint ist und bedarf ggf. kein Kommentar mehr. Auch in Sachen Testbarkeit ist es nicht klug, mehr Dinge auf einmal zu tun (Streckenabschnitt überprüfen, Preis berechnen und günstigste Route ermitteln). Wenn in der Funktion ein Fehler auftreten sollte, muss die gesamte Funktion überprüft werden und das ist wesentlich aufwendiger, als wenn man in einer Unterfunktion den Fehler findet. Daher: Funktionen so klein wie möglich halten und Teilaufgaben in Unterfunktionen ausgliedern. Die Funktion findeRoute() soll die günstigste Route finden. Nicht mehr und auch nicht weniger. Es ist nicht ihre Aufgabe, den Preis zu ermitteln oder schauen, welche Routen geeignet sind. Das sollen Unterfunktionen erledigen, die dann isoliert betrachtet und getestet werden können. Das ist vielleicht alles Meckern auf hohem Niveau und für die Abschlussarbeit reicht es aber im produktiven Einsatz wäre so ein Code mehr hinderlich als nützlich. Man hat hier schon angefangen Code zu optimieren (eine Route wird einmal durchgegangen) aber durch die Optimierung muss man einiges drumherum bauen, was eben stört und man hat sich damit sogar einiges verbaut.
  15. Nicht unbedingt. Man könnte doch auch ein Projekt anlegen, wo man noch nicht weiß, was die Tasks sind. Auch das kann man mit "nicht unbedingt" beantworten. Möchte man im Vorwege Personen einem Projekt zuteilen, ohne dass sie explizit schon Tasks im Projekt übernommen haben, so braucht man diese Tabelle. Es ist also eine Frage des späteren Workflows der Projektverwaltung.
  16. Da habe ich auch so meine Bedenken, dass es da welche gibt, die Punkte abziehen, wenn es von der offiziellen Lösung abweicht. Zu mal viele der offiziellen Lösungen falsch sind.
  17. Ich würde versuchen, nicht alles in eine Methode zu klopfen, sondern daraus mehrere Methoden machen, um da ein Überblick zu behalten. Mein Anfang würde so aussehen: findeRoute(Gewicht : Integer) : Integer { int indexGuenstigsteRoute; double preisGuenstigeRoute; bool isInitialized; for(int i = 0; i < Routen.Length; i++) { route = Routen[i]; if(hatGenugKapazitaet(route, Gewicht)) { preisRoute = berechnePreis(route); if(preisRoute < preisGuenstigeRoute || !isInitialized) { indexGuenstigsteRoute = i; preisGuenstigeRoute = preisRoute; isInitialized = true; } } } return indexGuenstigsteRoute; } Jetzt müsste man noch die Methode hatGenugKapazitaet() und berechnePreis() implementieren: hatGenugKapazitaet(Route : Route, Gewicht : Integer) : Boolean { for(int i = 0; i < Route.Length - 1; i++) { if(holeStreckeGewicht(route[i], route[i + 1]) < Gewicht) return false; } return true; } berechnePreis(Route : Route) : double { double preis = 0; for(int i = 0; i < Route.Length - 1; i++) { preis = preis + holeStreckePreis(route[i], route[i + 1]); } return preis; } Glücklich bin ich aber mit der Lösung nicht. Da sind noch einige Dinge, die man evtl. verbessern kann. Zu deiner Frage: Wir nehmen die Route A - D - E - B: Wenn es genug Kapazität bei A - D gibt aber bei D - E nicht, dann muss false zurückgegeben werden, weil die Route von A nach B in einer Teilstrecke nicht genug Kapazität hat. So verstehe ich zumindest die Aufgabe.
  18. strecken_beginn = Zeile.Spalten[0]; strecken_ende = Zeile.Spalten.Anzahl - 1; frachtkapazitaet = holeStreckeGewicht(strecken_beginn, strecken_ende); Das kann doch nicht funktionieren, da strecken_beginn immer A und strecken_ende immer B ist. Demnach ist frachtkapazitaet immer gleich. Auch ist strecken_ende bei dir ein Integer ist und kein String. Demnach müsste man z.B. bei der zweiten Route ( A - C - B ) die freie Kapazität für A - C und C - B ermitteln. Hier müsste man also eine verschachtelte Schleife bauen, die für alle Streckenabschnitte ermittelt, ob eine Strecke genügend Kapazität liefert
  19. Ganz ehrlich: Warum sollte man sich unnötig so einen Stress antun? Bei guten schulischen Leistungen kann man schon im Vorwege vertraglich regeln, die Ausbildung früher zu beenden. Selbst wenn man das im Vorwege nicht tut, kann man weiterhin die Abschlussprüfung vorziehen. Im Endeffekt kommt man da auch mit 21 Jahren raus und es ist wesentlich stressfreier. Mit Abitur ist man ca. mit 19 Jahren fertig. Wenn man dann die Ausbildung anfängt und dann auf 2 Jahre verkürzt, ist man 21. Auch ohne Abendschule. Das eine Jahr würde ich mir schon gönnen, um das Leben stressfreier zu machen. Eines sollte man nicht vergessen: Wir Menschen werden immer älter. Warum also schon zum Anfang des Berufsleben so einen Stress machen? Wir müssen noch lang genug arbeiten.
  20. Ich finde, du solltest vielleicht erst mal von deinem hohen Ross runterkommen. Mag vielleicht nicht so sein aber deine Texte klingen doch sehr überheblich. In den letzten zwei Jahren habe ich viele solcher "Wunderkinder" gesehen, die von sich behaupten, sie seien die coolsten Hacker, weil sie das eine oder andere Projekt auf Github veröffentlicht und in einer Firma 0815-Arbeit getan haben, was Mami und Papi arrangiert haben, weil der kleine Sprössling ja so gut mit Computer umgehen kann aber was sie produziert haben, war für den professionellen und alltäglichen Einsatz nicht zu gebrauchen. Sie sind ja noch Kinder ohne Erfahrung. Nur weil du die Syntax und ggf. einige Frameworks einer Sprache kennst, heißt es noch lange nicht, dass du auch ein guter Entwickler bist, denn dazu gehört z.B. auch ein Verständnis für, wie man sauberen und gut strukturierten Code schreibt, denn Code wird mehr gelesen, als geschrieben. Was ich schon merkwürdig finde ist, dass du schreibst du hättest Erfahrung mit Visual Studio aber in deiner Liste der Programmiersprachen taucht kein Visual Basic, C# oder F# auf. Vielleicht meinst du ja mit C++ aber auch Microsofts C++/CLI. Zwischen C++ und C++/CLI gibt es noch viele Unterschiede. Wie man Reverse Engineering gut beherrschen kann, ist mir auch ein Rätsel. Nur weil man evtl. ein paar Sprungmarken umschreiben kann, um somit die Passwortabfrage zu umgehen, heißt es noch lange nicht, dass man den tatsächlichen Algorithmus dahinter verstanden hat. Ich selber würde erst mal das Abitur fertig machen. Schaden kann es nicht und wenn man gute schulische Leistungen erbringt, kann man auch die Ausbildungszeit verkürzen oder die Abschlussprüfung vorziehen. Ein Abbrechen des Abiturs halte ich nicht für schlau.
  21. Eine App ist eine Software. Also kannst du auch eine App als Projektarbeit wählen. Allerdings muss dir klar sein, dass du für die gesamte Projektarbeit nur maximal 70 Stunden zur Verfügung steht. Also mit Anforderungsanalyse, Dokumentation, Test, etc. Eine komplette App wirst du in dieser Zeit wohl nicht schaffen (je nachdem wie groß die App werden soll). Daher wird es wohl eher ein Teilbereich, wie z.B. die Implementierung eines Feature.
  22. 2015 war die letzte Express-Version. Es gab da mehrere Express-Editionen für unterschiedliche Aufgaben (Desktop, Web, UWP, Quellcodeverwaltung). Die Express-Version wurde aber nun komplett eingestellt, weil sie aufgrund der Community-Version überflüssig wurde. Du entwickelst aber mit ASP.NET keine Client-Anwendung, sondern eine Client-Server-Anwendung. Der Code wird also auf dem Server ausgeführt und der Client stellt das Ergebnis nur grafisch dar. Mit dem neueren ASP.NET MVC benutzt stark das MVC-Pattern (Model-View-Controller) und zwingt den Entwickler auch dazu, dies einzuhalten. Da brauchst also schon ein bisschen technisches Verständnis, wie dieses Pattern funktioniert. Du hast dort auch kein GUI-Designer wie in WinForms- oder WPF-Anwendungen.
  23. Ich hätte mir da auch ein Struct gebaut, was mir die benötigten Informationen der Textdatei bereitstellt und hätte das Struct mittels einer Funktion gefüllt. Der Name der Funktion getDate() suggeriert auch was anderes. Vor allem ist der Parameter "anzahl" totaler Unfug. Erstmal stimmt der Name nicht, weil man nicht irgendeine Anzahl (von was?) reinreicht, sondern die Zeilennummer, wo das Datum steht. Warum muss der Aufrufer der Funktion dies überhaupt wissen? Das nächste ist, dass der Aufrufer der Funktion wissen muss, dass nur zwei Werte erlaubt sind (18 und 33). Alle anderen Zahlen führen zu einem NULL. Wenn sich auch mal die Zeilennummer ändert, dann muss man auch noch zu allem Übel zwei Stellen im Code anpassen. Da die getDate()-Funktion sowohl das Datum von Zeile 18 als auch das Datum aus Zeile 33 zurückgibt, macht die Funktion zwei Dinge und somit erhöht sich auch die Komplexität der Funktion und wird schlechter les- und testbar. Da sie eben im Grunde auch zwei Mal das gleiche tut, haben wir hier sogar noch eine Codeverdoppelung und müssen im Falle eines Fehlers wieder zwei Stellen im Code anpassen.

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