
Whiz-zarD
Mitglieder-
Gesamte Inhalte
2076 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
51
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von Whiz-zarD
-
Der Meinung bin ich zwar auch aber das sehen hier viele anders. Begründet wird es immer damit, dass ein Fachinformatiker abschätzen können muss, wann sich eine Investition lohnt oder dass man sich ja auch selbstständig machen kann aber das trifft bei jedem Ausbildungsberuf zu und niemand wird wohl behaupten, dass ein Schreiner oder ein Mechatroniker ein kaufmännischer Beruf wäre. Gerade bei den Softwareentwicklern gab es im letzten Jahrzehnt ein sehr großes Umdenken, sodass ein Entwickler gar nicht mehr dafür zuständig ist, wie teuer eine Entwicklung wird, sondern nur wie komplex, weil es sich einfach gezeigt hat, dass man es gar nicht abschätzen kann, wie teuer eine Entwicklung wird. Darum wurde auch die agile Entwicklung ins Leben gerufen, um die Software in kleinen Iterationen zu entwickeln und gegenzusteuern, wenn irgendwas nicht richtig läuft. In diesem Zusammenhang sollte man Ausbildungen auch wieder lukrativer und moderner gestalten. Was ich hier so manchmal lese, ist es für mich eigentlich kein Wunder, dass immer mehr Jugendliche eher studieren gehen, als eine Ausbildung machen. Ich finde, die Ausbildungsbetriebe sollten die Praxis zeigen, während die Berufsschulen weiter in die Tiefe gehen und den Azubis Detailwissen lehren und gerade als Fachinformatiker benötigt man doch sehr viel Detailwissen. Dafür müsste man aber den Ausbildungsrahmenplan weiter konkretisieren. So könnte man eine echte Alternative zu einem Studium ins Leben rufen. Die Azubis bekommen dann größere Aufgaben, die sie dann in den Betrieben abarbeiten müssen und die Betriebe betreuen den Azubi bei dieser Aufgabe. Das bedeutet für die IHK und den Berufsschulen wohl mehr Arbeit und können nun mal nicht einen schwammigen Ausbildungsrahmenplan erstellen, der für alle Ewigkeit Gültigkeit besitzt. Es ist doch schon recht pervers, dass man erst mal enormen Stress ausgesetzt ist, um überhaupt erst mal einen Ausbildungsplatz zu bekommen, um dann nur eine Ausbildung zweiter Klasse zu bekommen, während man bei einem Studium sich einfach an einer Hochschule anmeldet. Die Hochschulen haben zwar auch gewisse Voraussetzungen aber diese sind ja inzwischen genauso so hoch, wie für eine duale Ausbildung. Ich kann mich noch gut daran erinnern, als ich vor kanpp 20 Jahren angefangen habe, mich zu bewerben. An einen Ausbildungsplatz als FIAEler, mit einem Realschulabschluss, war damals sowieso nicht zu denken. Gut, die Zeiten haben sich inzwischen ein wenig geändert aber 30 bis 40 Bewerbungen muss man ja heutzutage immer noch schreiben, um dann evtl. hinterher festzustellen, dass der Betrieb nur einen billigen Arbeiter haben will. Aber gut, back to Topic: Ich denke schon, dass die Ausbildungsvergütung schon gerecht ist. Schließlich verrichtet auch ein Azubi eine gewisse Arbeit im Unternehmen. Seien es auch erst mal nur Handlangerarbeit aber die muss auch getan werden. Man sollte aber einen Azubi so behandeln, was er auch ist: Ein Azubi. Er befindet sich nun mal in der Ausbildung und möchte was beigebracht bekommen. Dementsprechend sollte er nur Arbeiten unter Begleitung durchführen und die Betriebe müssen mehr in die Pflicht genommen werden. Die Höhe der Ausbildungsvergütung ist immer so ein schmaler Grat. Das Problem ist nämlich, wenn er zu hoch ist und dies die Erstausbildung ist und der Azubi unter 27 Jahren ist, wird das Kindergeld gestrichen. Bei einer Zweitausbildung steht man evtl. schon mit beiden Beinen im Leben und dann wäre zu wenig. Wenn, dann sollte einem die Chance gegeben werden, dass man dann einen Ausbildungskredit aufnehmen könnte, der sehr wenige bis keine Zinsen besitzt, um eine Ausbildung finanziell zu unterstützen.
-
C# Sicherheits-Probleme (Passwörter in Datenbank)
Whiz-zarD antwortete auf Tician's Frage in Anwendungsentwickler und Programmierer
Was genau will man aber damit erreichen? -
95% der Zeit nur First Level Support
Whiz-zarD antwortete auf Subsampling's Thema in Ausbildung im IT-Bereich
Jeder, der frisch von der FH kommt, fängt eigentlich als Junior-Entwickler an. Und was wäre dann die Alternative? -
C# Sicherheits-Probleme (Passwörter in Datenbank)
Whiz-zarD antwortete auf Tician's Frage in Anwendungsentwickler und Programmierer
Naja, klingt auch nicht so wirklich sicher: Irgendwo muss der Kram ja liegen, damit die Runtime den Code ausführen kann. Also liegen die DLLs ja irgendwo unverschlüsselt. Sei es auf der Festplatte oder im Speicher. Im Text schreiben sie ja selber, dass der Encryptor nichts nützt, wenn der Angreifer das geschützte Programm auf seinem eigenen Rechner ausführen kann: Fazit: Das Tool ist Nutzlos und Geldverschwendung. Wer eine Ausführungsdatei ausliefert hat eh keine Kontrolle drüber, wo diese ausgeführt wird und wenn sie irgendwo auf einem Server läuft, sollte der Server schon so abgesichert sein, sodass der Angreifer kein Dump vom Arbeitsspeicher ziehen kann. Es verhindert also gar nichts. Es erschwert es nur ein wenig. Für Leute mit krimineller Neigung sollte dies aber auch kein Problem darstellen. -
C# Sicherheits-Probleme (Passwörter in Datenbank)
Whiz-zarD antwortete auf Tician's Frage in Anwendungsentwickler und Programmierer
Für unsere Anwendung haben wir ein AD-Plugin entwickelt. Die Authentifizierung und die Autorisierung läuft dann über AD, sodass ein Kunde die Rechteverwaltung unserer Software direkt in AD abbilden kann und nicht über eine Datenbank. Das ist wohl das, was du auch eigentlich möchtest. -
Nein, im File System liegen die Attribute der Datei. Für NTFS ist sogar der Inhalt der Datei ein Attribut: Quelle: http://www.ntfs.com/ntfs-files-types.htm Wie gesagt, eine Datei hat per se erst mal kein Header. Es ist nur ein Strom aus Bytes. Das, was dein Ausbilder wohl (hoffentlich) meint, ist, dass Dateien einen Header für Anwendungen haben kann, wie z.B. beim Bitmap-Bildformat, wo die ersten 54 Bytes Informationen über das Bild stehen (z.B. Höhe und Breite, Farbtiefe, Pixelreihenfolge, etc) und erst dann die Pixel-Daten anfangen. Da sind wir aber beim Thema der Dateiformate und das ist pro Format unterschiedlich. Eine simple Textdatei, die du mit dem Editor erstellst, hat z.B. überhaupt kein Header.
-
C# Sicherheits-Probleme (Passwörter in Datenbank)
Whiz-zarD antwortete auf Tician's Frage in Anwendungsentwickler und Programmierer
Das ist sehr einfach, da der C#-Code in IL-Code vorliegt und dieser kann wieder in C#-Code umgewandelt werden kann. Das nennt sich dekompilieren. Da gibt es den kostenlosen Decompiler dotPeek von JetBrains. Verwende ein Algorithmus, der auch für Passwörter gedacht ist. Wie z.B. bcrypt. Irgendwo müssen die Daten ja herkommen und nein, die Verbindungsdaten sollten nicht im Quellcode stehen, sondern in einer Konfigurationsdatei, die ausgelesen wird, ansonsten muss man ja das Programm neu kompilieren, nur weil man die Datenbank auf einen anderen Server transferiert hat. So lange die Datei nicht von außerhalb erreichbar ist und auch nur bestimmte Personen darauf zugreifen können, ist doch alles in Ordnung. -
https://de.wikipedia.org/wiki/Handle https://de.wikipedia.org/wiki/Everything_is_a_file https://de.wikipedia.org/wiki/Dateisystem https://de.wikipedia.org/wiki/Partitionstabelle https://de.wikipedia.org/wiki/Datei Mit ein bisschen stöbern auf Wikipedia sollte man eigentlich selbst auf solche Quellen kommen.
-
Eine Datei hat erst mal keinen Aufbau. Es ist nur ein Strom aus Bytes und besitzt auch kein Header. Attribute, wie z.B. Erstellungsdatum, Besitzer, Schreibgeschützt und der Pfad in der Partition stehen im File System. Wenn man eine Datei öffnet, erhält man vom Betriebssystem einen einen sog. Handle. Über diesen Handle kann man dann die Datei einlesen. Unter Unix gibt es den Leitsatz: "Everything is a file". Das bedeutet, dass alle I/O-Byteströme als Datei im File System verfügbar gemacht werden sollen. D.h. selbst Tastendrücke auf der Tastatur sind als Bytestrom als Datei im File System verfügbar.
-
B ist nicht abgelitten von A, daher kann B nicht zu A gecastet werden. Schon mal das eh keinen Sinn machen würde, weil B dann schon die Eigenschaften von A besitzen würde. Darüber hinaus macht deine convert()-Methode überhaupt keinen Sinn und ist auch syntaktisch falsch.
-
Eben. Die Aufgabe ist ja jetzt keine Raketenwissenschaft. Ich verstehe nicht, wo nun das Problem liegt und du hast bis jetzt noch nicht mal eine Frage gestellt oder gezeigt, was du bis jetzt gemacht hast. Angeblich kannst du ja die Diagramme zeichnen. Wo ist dann nun das Problem, daraus Klassen und Methoden zu bilden?
-
Und was ist nun deine Frage? Hier wird keiner deine Hausaufgaben machen.
-
Die Aufgabe ist von dir sehr merkwürdig beschrieben. Ich nehme mal an, du sollst Klassen-Diagramme entwerfen, die das UND, ODER und NICHT abbilden und um zweiten Schritt dies in Java implementieren. Was genau erwartest du denn jetzt?
-
Was mir spontan auffällt ist die Methode getList(). Du reichst als Parameter eine Instanz von der Klasse DBM rein. Wenn die Instanz aber Null ist, erzeugst du eine: if( dbm == null ){ dbm = new DBM(); } Wozu? Das zeigt, dass du DBM als Parameter gar nicht benötigst. Du könntest den Parameter wegnehmen und es würde trotzdem laufen. Das zeigt, dass du ein Problem mit Abhängigkeiten hast, denn die Frage, die ich mir stelle ist, wieso weiß die Klasse TestUser so viel von der Datenbank? TestUser sollte eigentlich nur eine "dumme" Klasse sein (Stichwort POJO) und ein Service/Repository holt dir die Objekte. Auch der folgende Code in der selben Methode finde ich gruselig: while (resultSet.next()) { list.add( new testuser(resultSet.getInt(1),resultSet.getInt(2), resultSet.getString(3),resultSet.getInt(4),resultSet.getInt(5), resultSet.getInt(6),resultSet.getInt(7),resultSet.getDate(8), resultSet.getDate(9),resultSet.getDate(10),resultSet.getString(11)) ); } Das bedeutet, dass die Spaltenreihenfolge in der Datenbank exakt eingehalten werden muss. Kommt mal eine Spalte hinzu oder wird entfernt, muss dem Entwickler auch klar sein, dass er diesen Code anpassen muss. Ansonsten kommt es zu Fehlern. Gängige O/R-Mapper mappen auf Basis des Spaltennamens und nicht an der Anordnung der Spalten. Der Konstruktor von DBM ist abhängig von der Klasse FacesContext: public DBM() throws Exception { init(); } private void init()throws Exception{ FacesContext fc = FacesContext.getCurrentInstance(); db_server = fc.getExternalContext().getInitParameter("DB-SERVER"); db_user = fc.getExternalContext().getInitParameter("DB-USER"); db_password = fc.getExternalContext().getInitParameter("DB-PASSWORD"); db_driver = fc.getExternalContext().getInitParameter("JDBC-DRIVER"); Class.forName(db_driver); } D.h. die Klasse kann also nur im JSF-Kontext instanziiert werden. Entwickelst du dann eine Konsolenanwendung, musst du die Klasse quasi neu implementieren, weil FacesContext nicht bekannt ist. Also hast du auch hier wieder ein Abhängigkeitenproblem. Da gibt es noch mehr zu erzählen, aber das sind wohl die gravierendsten Punkte.
-
Bevor ich hier irgendwas mit C anfange, würde ich auf Microservice Architekturen, Message Queues und Event Sourcing setzen, um die Anwendung skalierbar zu machen. Nichts ist performanter als die parallele Verarbeitung und bei Browsergames kann man sehr gut Logiken parallelisieren.
-
Ich weiß auch nicht, was für ein Spiel das werden soll aber ich bezweifel, dass du nur mit JavaScript und PHP ein Browsergame hinbekommst. Im Hintergrund wird ja auch diverse Logik durchgeführt und die sollen ja nicht erst laufen, wenn der Spieler die Webseite aktualisiert und somit ein PHP-Skript anstößt, sondern die sollen ja von selbst angestoßen werden. Beispiel: Du entwickelst ein Aufbau-Strategie-Spiel ala Travian und der Spieler macht ein Upgrade auf eine Holzfällerhütte und die Hütte produziert dann 10 anstatt 5 Tonnen Holz. Das Upgrade dauert eine Stunde. Dann muss auf dem Server ein Programm laufen, was dann nach einer Stunde den Status in der Datenbank ändert, damit die Menge des produzierten Holzes auch korrekt berechnet werden kann. Das PHP-Skript kann jetzt schlecht eine Stunde warten, weil du damit den Webserver überlasten würdest, wenn da plötzlich Tausend PHP-Skripte in der Warteschleife liegen. Schon mal die Standardkonfiguration von PHP ist, dass ein Skript maximal nur ein paar Minuten laufen darf, bevor es abbricht.
-
Bootstrap kein Hintergrundbild möglich
Whiz-zarD antwortete auf mintmaroo's Thema in Skript- und Webserverprogrammierung
Schon mal geschaut, ob das Bild überhaupt aufrufbar ist? -
Sorry, dann ist die IT-Branche nichts für dich, denn die IT ist kreativ ... Wenn du einen stumpfsinnigen Job haben willst, wo du beim Pförtner das Gehirn abgeben kannst, dann bewirb dich bei VW fürs Arbeiten am Fließband.
-
Bewerbung in eigene Homepage packen?
Whiz-zarD antwortete auf qyzi's Thema in Jobsuche, Bewerbung und Zeugnisse
Naja, Expression Web ist nun nicht gerade aktuell und die Entwicklung wurde auch schon vor 4 Jahren eingestellt. Von daher würde ich da auch die Finger von lassen. Eine Bewerbung würde ich auch nie als eine Webseite darstellen. Unbekannte URLs werden von Firmen nicht angeklickt und die Bewerbung wird sich erst gar nicht angeschaut. Wenn du aber ein paar Projekte hast, kannst du sie ja auch bei Github hochladen und im Lebenslauf ein Link zu deinem Gihub-Account setzen. Das wird in Bewerbungen schon eher anerkannt, da Github allgemein bekannt ist. -
Wofür brauchst du XAMPP, wenn du nur einen MySQL Server brauchst? Ich würde auch MariaDB nehmen anstatt MySQL. Davon abgesehen, dass ich den Quellcode doch recht gruselig finde, verstehe ich jetzt nicht, wo dein Problem liegt. Gut, ich kenne mich auch nicht mit JSF aus, aber du wirst ja wohl in der Lage sein, den Code zu debuggen und dann kannst du ja den Code Schritt-für-Schritt durchgehen und schauen, wo was schiefläuft.
-
Im Grunde ist es doch ein vollständiges XML-Dokument. Du bekommst halt nicht nur eins, sondern mehrere. Der Wurzelknoten ist halt <frame>. Nun kommt es halt auf den Kontext drauf an, was du mit den Daten vorhast. Wenn die XML-Struktur vorgegeben ist, könnte man dann den XmlSerializer verwenden und aus dem XML-Dokument ein POCO-Objekt erzeugen. [XmlRoot("frame")] public class Frame { [XmlElement("id")] public int Id { get; set; } } string xml = "<frame><id>1</id></frame>"; XmlSerializer serializer = new XmlSerializer(typeof(Frame)); Frame frame = (Frame)serializer.Deserialize(new StringReader(xml)); Um einfach über alle Kind-Elemente im Wurzelknoten zu iterieren kann man auch ein XDocument verwenden: string xml = "<frame><id>1</id></frame>"; XDocument xDoc = XDocument.Parse(xml); foreach(XElement element in xDoc.Root.Descendants()) { Console.WriteLine($"{element.Name} -> {element.Value}"); } Ein XDocument lässt sich auch mittels Linq Filtern. Eine weitere Möglichkeit, um Abfragen auf XML-Dokumenten abzusetzen wäre XPath und der XPathNavigator: string text = "<frame><id>1</id></frame>"; XPathDocument docNav = new XPathDocument(new StringReader(text)); XPathNavigator nav = docNav.CreateNavigator(); XPathNodeIterator nodes = nav.Select("//frame/*"); while (nodes.MoveNext()) { Console.WriteLine($"{nodes.Current.Name} -> {nodes.Current.Value}"); } XPath ist eine vom W3C entwickelte Abfragesprache für XML-Dokumente. Eine Dokumentation findest du auch im Wikipedia-Artikel. Viele Wege führen nach Rom aber ich halte die Lösung mit regulären Ausdrücken eine der schlechtesten. Das ist sehr fehleranfällig, denn was passiert, wenn dazwischen irgendwo mal ein Leerzeichen oder ein Zeilenumbruch ist? Damit muss dein Ausdruck auch klar kommen können, denn das ist ja kein Fehler. Auch sind reguläre Ausdrücke schlecht lesbar. Ich denke mal, du selbst wirst den regulären Ausdruck binnen kürzester Zeit nicht mehr verstehen und muss erst mal wieder nachschauen, was der bedeutet. XML-Dokumente einlesen ist ein gelöstestes Problem und warum sollte man sich wieder selbst eine Lösung ausdenken? Selbst das .Net-Framework bietet hier sogar mehrere Lösungen an. Das Framework bietet mit der XmlDocument-Klasse sogar noch eine vierte Variante.
-
Joa, man sollte da nicht zu sehr verkrampft an die Sache rangehen. Was bringt es, wenn man die perfekte Firma findet aber dort keinen Ausbildungsplatz bekommt? Man sollte sich also erst mal bewerben. Außerdem darf man heutzutage sich auch nicht auf einziges Thema versteifen. Unix/Linux und C-Programmierung ist zwar schön und gut aber in der Wirtschaft werden überwiegend andere Leute gesucht. Leute, die mehr Sprachen, wie z.B. Java, C# oder JavaScript/TypeScript beherrschen und auch Techniken wie z.B. Microservices und Message Queues kennen. Inzwischen kommen auch immer mehr funktionale Sprachen in den Vordergrund. Nicht umsonst bekommen C# und Java immer mehr Features aus der funktionalen Programmierung und ganz ehrlich: Ich würde C# und Java immer vor C/C++ bevorzugen. C/C++ haben einfach zu viele Tücken, auf die man achten muss. Viele Sicherheitslücken in Geräten beruhen nämlich darauf, dass man Dinge nicht beachtet hat, wie z.B. die Sicherheitslücke in der Firmware der WLAN-Chips von Broadcom, wo man einfach versäumt hat, einen Speicherüberlauf zu überprüfen. Also einfach mal Bewerbungen rausschicken und schauen, wohin die Reise geht.
-
Es gibt Bildungszentren, die bieten auch einen zwei wöchigen Vollzeit-Kurs an. Dann braucht man auch nicht die ganzen 4 Monate da rumeiern und man hat es schnell rum. Das Problem ist nur, dass man in der Regel 6 Wochen vorher bei der IHK zur Prüfung anmelden muss. Die 1.000 € finde ich auch ein bisschen viel. Ab August werde ich auch meinen Ausbilderschein machen. In Raum Hamburg kostet so ein Kurs ca. 520 € plus 160 € Gebühren für die Prüfung. Also in Summe 680 €. Bei der Prüfung gibt es einen schriftlichen und mündlichen Teil. Im schriftlichen Teil geht es um die Theorie. Also um die Gesetze und welche Pflichten und welche Rechte ein Azubi hat. im mündlichen Teil geht es um die soziale Kompetenz. Also ob du in der Lage gibt, Themengebiete sachlich und verständlich einem Azubi beizubringen. Dafür wird entweder eine Unterweisungsprobe oder eine Präsentation durchgeführt. Ich würde aber mal in deiner Firma nachfragen, ob du vielleicht einen Zuschuss bekommst oder ob sie vielleicht die Kosten gänzlich übernehmen.
-
Wie sehen denn die Fragmente aus?
-
Schön, dass es in Perl klappt ... Das Problem ist nicht der reguläre Ausdruck. Er hat einfach die falsche Methode verwendet.