Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Whiz-zarD

User
  • Registriert

  • Letzter Besuch

Alle Beiträge von Whiz-zarD

  1. Eine Möglichkeit wäre per Sockets. Mit einem Socket können via Netzwerk (per TCP oder UDP) zwei Prozesse, miteinander kommunizieren. Du müsstest dafür ein Socket in der Java-Applikation öffnen. Dann kann der Webserver über diesen Socket mit der Applikation kommunizieren. Wie man eine Socket-Verbindung aufbaut, findest du z.B. hier. Eine andere Möglichkeit wäre über eine Message Queue, wie z.B. RabbitMQ. Dies ist eine separate Applikation. Die Java-Applikation registriert sich an der Message Queue und der Webserver schickt Nachrichten an die Queue und die Java-Applikation nimmt dann die Nachrichten entgegen. Auf der RabbitMQ-Webseite findest du Tutorials zu allen Einsatzszenarien.
  2. Whiz-zarD hat auf einen Beitrag in einem Thema geantwortet in Ausbildung im IT-Bereich
    Die Antwort eines Softwareentwickler: It depends. Ich würde mal sagen, es kommt immer auf das Team und auf die Firma an. Es ist gut, wenn der Azubi ins Team integriert wird und auch Verantwortung übernimmt. Dennoch muss man bedenken, dass es ein Azubi ist und man ihn nicht als Entwickler mit mehrjähriger Berufserfahrung ansehen sollte und ihn auch Aufgaben geben, für die er sich gewachsen fühlt. Wenn es für dich zu viel Stress bedeutet, würde ich mal mit dem Ausbilder sprechen. Menschen, die keine Entwickler sind, haben oftmals ein falsches Bild von der Softwareentwicklung. Das ergeht mir auch fast jeden Tag, wenn ein Kundenverantwortlicher ins Büro kommt und fragt, wie lange wir an der Entwicklung für Feature X benötigen und das am besten noch gleich in 10 Minuten im Detail erklären, wie wir es machen würden, weil er gleich mit den Kunden telefoniert. Das ist leider Alltag in vielen Firmen. Da muss man die Leute erziehen und denen klarmachen, dass das alles nicht so einfach ist. Es ist nun mal nicht mit ein paar Mausklicks getan. Na klar kannst du dir eine Testumgebung zu Hause aufbauen und damit rumspielen. Du installierst dir halt einen SQL-Server (z.B. MySQL oder MariaDB) und dann kannst du mit Java schon darauf zugreifen. Alternativ kannst auch auf einen SQL-Server verzichten und SQLite verwenden. Hibernate selber ist ja ein. sog O/R-Mapper. Es stellt dir eine Abstraktion zwischen der objektorientierten Welt in Java und der relationalen SQL-Welt dar. Hibernate baut im Hintergrund die jeweiligen SQL-Queries und schickt diese zur Datenbank. Dann kommt die Antwort vom Server zurück und Hibernate baut daraus deine Klasseninstanzen, mit denen du dann in Java arbeiten kannst. Ich bin jetzt nicht so ganz firm in Hibernate aber ich weiß, dass Hibernate auch die jeweiligen SQL-Queries loggen kann, sodass du dir mal anschauen kannst, was er da eigentlich generiert. Die Verbindung zwischen deiner Anwendung und dem SQL-Server erfolgt über die JDBC-Schnittstelle. Wenn du der englischen Sprache mächtig bist, kannst du ja mal in deiner Firma nachfragen, ob sie dir ein Account bei Pluralsight spendieren könnten. Da findet man sehr viele Tutorials und andere Videos von professionellen Entwicklern. Allerdings ist Pluralsight nicht kostenlos aber ich finde, es ist die Investition wert.
  3. Warum denn nicht Swift und Java? Wenn du eh schon ein iPhone und ein Mac hast, wo liegt denn da das Problem privat mit Swift zu arbeiten, während man in der Schule Java benutzt?
  4. Whiz-zarD hat auf einen Beitrag in einem Thema geantwortet in Anwendungsentwickler und Programmierer
    Es gibt da keine Silberkugel beim Design einer relationalen Datenbank. Für jedes Problem muss individuell entschieden werden, was nun die geeignete Form ist. Auch eine Normalisierung ist nicht für jeden Fall geeignet. Es gibt also viele Fälle, wo eine denormalisierte Tabelle mehr Sinn macht, als eine normalisierte. Eine 1:1 Relation kann also durchaus Sinn machen. Beispiel: Du hast mehrere Gruppen von Personen. Du hast Angestellte, Manager und Kunden. Jede Gruppe besitzt gemeinsame Daten, wie z.B. den Namen aber es gibt unterschiedliche Daten. Ein angestellter oder ein Manager hat ja keine Kundennummer aber ein Kunde schon. Um die Person-Tabelle nicht unnötig breit zu machen, machst du eine Person-, eine Angestellte- und eine Manager-Tabelle. In Person speicherst du die globalen Daten und die Angestellte- und Manager-Tabelle die jeweiligen spezifischen Daten haben dann eine 1:1 Relation zur Person-Tabelle. Ein anderes Beispiel: Aufgrund von Performance willst du eine Tabelle auf eine SSD oder sogar in den Arbeitsspeicher (In-Memory) schieben aber in dieser Tabelle befindet sich ein BLOB-Feld, was sehr groß sein kann (mehrere GBs). Dieses Feld wird aber nicht immer benötigt bzw. muss nicht schnell geladen werden können. Um die SSD oder den Arbeitsspeicher nicht unnötig zuzumüllen, wird das BLOB-Feld in eine Separate Tabelle ausgelagert, die dann auf einem langsameren Speicher liegt und mit einer 1:1-Relation verbunden.
  5. Möglich ist das schon. Dies muss dann nur der zuständigen Stelle mitgeteilt werden, damit die es im Register ändern. Die Frage ist nur, ob der Betrieb da mitspielt und ob der Azubi es dann auch schafft?
  6. In Hinblick dessen wäre auch die Dotcom-Blase zu erwähnen. Der Fachinformatiker entstand während der Boom-Phase. https://de.wikipedia.org/wiki/Dotcom-Blase
  7. Ich würde schauen, welche Technologien und Programmiersprachen der Betrieb verwendet und dann gezielt nach Büchern suchen, sofern der Betrieb nicht schon welche besitzt. Alles andere macht aus meiner Sicht wenig Sinn.
  8. Whiz-zarD hat auf einen Beitrag in einem Thema geantwortet in C und C++
    Richtig. Was macht denn eine if-else-Abfrage? http://www.if-schleife.de
  9. Und so sieht dann auch die Software aus... Ich höre immer wieder von Firmen, die versuchen ein großes Projekt mit Studenten aufzubauen. Zuerst klappt es auch wunderbar. Die Software nimmt schnell Form an und die Kunden sind zufrieden aber dann kommt die Nüchternheit: In jeder neuen Version gibt es immer mehr Bugs und die Releasezyklen werden immer länger... Unittests? Integrationstests? Gibt es nicht. Clean Code? Codemetriken? Was ist das? SOLID? DRY? Datenkapselung? Nie gehört.
  10. http://php.net/manual/de/language.types.array.php Arrays in PHP sind eine Liste von Schlüssel-Wert-Paaren. Der Pfeil bedeutet, dass der Schlüssel einem Wert referenziert. Wenn du $wochentage["Sun"] eingibst, erhälst du "Sonntag", weil der Schlüssel "Sun" den Wert "Sonntag" referenziert.
  11. Das Frage ich mich auch.
  12. Glaub mir, wenn du einen richtigen Taschenrechner programmierst, bist du schon einige Zeit damit beschäftigt
  13. Was für ein Quatsch... Wie soll man da auch großartig helfen können? Wir kennen diese Person nicht persönlich und auch nicht seine Neigungen. Auch für Freunde und Familie wird es schwer, die Frage zu beantworten. Das muss er wohl oder übel selbst mit sich ausmachen, was für ihn besser geeignet wäre. Das einzige, was ich empfehlen könnte, wäre ein Praktikum zu absolvieren. z.B. als Softwareentwickler, um mal zu sehen, ob das Thema überhaupt einen schmeckt. In meiner Ausbildung hatte ich auch viele Kommilitonen, die sich anfänglich für die Softwareentwicklung interessiert haben aber später doch die Ausbildung abbrachen, weil es doch schwieriger war, als sie dachten.
  14. Dann könnte man sich auch überlegen, die Spiellogik in eigene Klassen auszulagern, anstatt sie in eine Form zu schreiben, damit das Spiel von der grafischen Oberfläche unabhängig wird.
  15. Schaue dir mal die for-Schleifen genauer an. i ist bei dir die Breite und f die Höhe. Dein Array hast du aber andersrum definiert.
  16. Es wird eine Exception geworfen. Sprich es kommt zu einem Fehler. Deswegen macht er nicht weiter. Allerdings bekommst du die Exception nicht mit, da sie vom Debugger nicht abgefangen wird. Aktiviere mal alle Exceptions unter Debuggen -> Fenster -> Ausnahmeeinstellungen (auf englisch: Debug -> Window -> Exception Settings). Dann solltest du auch die Exceptions bekommen, warum er nicht weitermacht.
  17. Der Ansatz ist schon mal richtig. Schaue dir aber mal x und y an und versuche mit dem Debugger mal herauszufinden, welche Werte sie bei jedem Durchlauf haben. Vielleicht kommst du selber drauf, was los ist. Allerdings brauchst du x und y im Grunde gar nicht. Die Werte lassen sich auch mit einer einfachen Multiplikation errechnen: 1 * 50 = 50 2 * 50 = 100 3 * 50 = 150
  18. Es kommt eine IndexOutOfRangeException, wenn i = 6 ist. Der Grund ist, du hast zwar die erste Dimension vom Array mit einer Größe von 6 definiert aber der Index fängt bei 0 an zu zählen. D.h. wenn i gleich 6 ist, greifst du somit quasi auf das 7. Element zu und das liegt außerhalb des Bereichs und es kommt zu einer Exception. Das gleiche gilt auch für f. Allerdings sehe ich noch einen weiteren Fehler: picbox[6, f] Die 6 müsste erst mal eine 5 sein aber das ist nicht der Fehler, den ich meinte. Mit der ersten for-Schleife definierst du nur die oberste Zeile und mit der zweiten for-Schleife die letzte Spalte. Zumal ist das Codeverdoppelung, was man vermeiden sollte. Es hat also noch Verbesserungspotenzial. Du kannst auch Schleifen in einer Schleife schreiben. Also: for(...) { for(...) { ... } }
  19. Eine Ausbildung ist aber dennoch was anderes, als das Lernen aus Büchern oder Videos. Lernen aus Büchern oder Videos werden dir keinen guten Programmierstil vermitteln können, weil du u.a. kein Code Review durchführen kannst. Mit wem auch? Gerade im Dialog mit anderen Entwicklern lernt man sehr viel. Es bringt ja nichts, wenn man zwar jedes Problem schnell gelöst bekommt, man aber der einzige ist, der den Code überhaupt versteht oder der code nur Spaghetticode ist. Man sieht ja auch, dass der Trend vermehrt zum Pair-Programming geht. Es dauert zwar etwas länger aber der daraus resultierende Code ist lesbarer und stabiler.
  20. Im Berufsleben kommt es eher später darauf an, welche Referenzen man vorzuweisen hat. Wenn ein FISI später hauptsächlich Entwicklertätigkeiten übernahm, hat man auch Chancen, als Entwickler irgendwo eingestellt zu werden. Es bringt also nichts, wenn du den AEler hinten ranhängst und dann doch nur Server administrierst. Man sollte aber auch nicht denken, nur weil man FIAEler ist, dass man sich plötzlich auf alle Entwicklerstellenangebote bewerben kann, denn auch hier kommt es auf die Referenzen an. Jemand, der z.B. hauptsächlich mit C# oder Java entwickelt, wird wohl kaum ein Job als COBOL-Entwickler finden. Das betrifft allerdings nicht nur die Sprachen, sondern auch die Technologien, die man im Laufe seiner Berufszeit verwendet hat. Jemand der z.B. zwar mit C# entwickelt aber noch nie was mit WPF zu tun hatte, wird es schwierig haben, einen Job zu finden, wo WPF gefragt ist. Das ist nicht richtig. Es bringt dir keiner bei, wie man richtig programmiert. Richtiges Programmieren lernt man nicht aus Büchern, sondern nur durch Übung, Übung und noch mehr Übung. Bücher und Co. geben einem nur Hinweise, was man besser machen könnte aber die berühmte Silberkugel wird und kann dir keiner präsentieren. Oder meint jemand, der das Buch "Clean Code" von Robert C. Martin durchgelesen hat, plötzlich ein super Entwickler zu sein, der zu 100% die SOLID-Prinzipien einhalten kann? Tutorials geben oft nur Lösungen für einfache Beispiele und selbst da gibt es mal gute und mal schlechte Lösungen.
  21. Hilfreich wäre auch Vererbung. So könnte man z.B. die Buttons mit weiteren Informationen ausstatten: public class MyButton : Button { public int Spalte { get; set; } } So hätte man z.B. einen Button, der die Spalten-Information besitzt und so könnte man jeden Button mit dem selben Event ausstatten. Man hat also nur noch eine Event-Implementierung, anstatt zig kopierte.
  22. Ist doch völlig Banane, welches Gerät du nimmst. Du wirst in der Umschulung mit Sicherheit keine Apps dafür entwickeln, sondern Konsolen- oder Desktopanwendungen. Zum Anfang wohl eher nur Konsolenanwendungen. Eine Android-App zu entwickeln ist nämlich noch ein bisschen was anderes und da wird man wohl nicht die Zeit haben, das SDK zu erklären. Inzwischen kannst du auch mit C# und Xamarin Crossplattform-apps schreiben, die sowohl auf Android als auch auf iOS laufen. Es kommt also darauf an, was du in deiner Freizeit machen möchtest.
  23. Theoretisch bräuchte man sowas gar nicht programmieren. Da gibt es Haufenweise ETL-Tools, die dies übernehmen könnten. Gut man müsste dann schauen, ob es für diese Tools Konnektoren für die Eingangsquelle (SAP?) gibt. Viel mit Datenbank hat das Projekt auch nicht zu tun. Die Tabellen werden ja schon vom Ticketsystem vorgegeben und müssen nicht selbst entworfen werden. Anstatt aber reine SQL-Queries abzufeuern würde ich mal schauen, ob das Ticketsystem eine API besitzt, mit der man von Außen Tickets generieren kann. Das ist der sichere Weg, da man nicht sicher sein kann, ob da nicht noch andere Routinen, während der Ticketerstellung, laufen, wie z.B. eine Generierung von Metadaten. So könnte man die XML-Datei einlesen und dann die API aufrufen. Allerdings sehe ich da auch Probleme mit der fachlichen Tiefe. Aus einer XML-Datei SQL-Insert-Queries zu bauen, ist im Grunde nur noch Fleißarbeit. Ihr dürft aber nicht vergessen, wenn ihr reine SQL-Queries abfeuert, umgeht ihr das Ticketsystem, weil dies davon nichts mitbekommt. Wenn, dann müsst ihr diese Fehler auch noch ins Ticketsystem übertragen und dann wird das Thema auf einmal sehr komplex. Darum sagte ich ja, dass ihr lieber mal schauen solltet, ob das Ticketsystem nicht eine API besitzt. Wir haben auch so tolle Kunden, die meinen, Daten per SQL-Queries in die Datenbank zu pumpen, anstatt unsere Import-Funktion zu verwenden. Wir nehmen da keinerlei Haftung, wenn da irgendwas schieflaufen sollte und es läuft da regelmäßig was schief.
  24. Ich kenne mich jetzt nicht mit dem SQL Server gut aus aber ich weiß, dass er die Daten blockweise von der Festplatte in den Arbeitsspeicher überführt. Es wird wohl besser sein, wenn Festplatte und Server aufeinander abgestimmt sind.
  25. Da bin ich leider auch ein bisschen raus, da ich mich mit Unity nicht wirklich auskenne. Da weiß ich nicht, wie man mit Unity arbeitet. Sorry. Aber ein kleiner Hinweis: Anstatt List<AudioClip> kannst du auch ein Dictionary<string, AudioClip> machen, dann brauchst du die foreach-Schleife nicht und die PlaySound-Methode lautet einfach: public void PlaySound(string audioClipToPlay) { if(this.soundClips.Exists(audioClipToPlay)) audioSource.PlayOneShot(this.soundClips[audioClipToPlay]); }

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.