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.

Visar

User
  • Registriert

  • Letzter Besuch

Alle Beiträge von Visar

  1. Wir sind im Monat vor der schriftlichen Abschlussprüfung die Prüfungen der vergangenen acht Jahre durchgegangen. Sofern es Diskussionsbedarf oder Probleme gab, wurde das Ganze noch einmal ausführlich besprochen. Dazu hatten wir vereinzelt Unterricht zum Thema BAB und solchen Kuriositäten. Ansonsten habe ich de facto nicht gelernt.* Gerade bei WiSo würde ich die Prüfungen unbedingt machen, da sich eine Vielzahl von Fragen irgendwann wiederholt. Führt dazu, dass einem WiSo irgendwann recht schnell von der Hand geht und eine Punktzahl über 80 sicher sein sollte. Ansonsten insbesondere darauf achten, dass die Basics sitzen: Ohmsches Gesetz, Dreisatz sowie Umrechnungen von Dezimal zu Binär/Hex oder auch von Werten mit Binär-/Dezimalprefix wie Mega- zu Mebibyte und umgekehrt. Das kann immer dran kommen und du wirst dich verfluchen, wenn du solche einfachen Punkte liegen lassen musst. * Visar erzielte eigenen Angaben zufolge nichtsdestotrotz 87 Punkte in Prüfungsteil B, siehe Prüfungsergebnisse.
  2. Visar hat auf einen Beitrag in einem Thema geantwortet in Plauderecke
    Mir erschließt sich nicht, weshalb die Leute heutzutage immer gleich super frustriert sind, wenn etwas mal nicht ihren Vorstellungen entsprechend läuft. Musst du dein Ticketsystem überhaupt in irgendeinem Shop wie CodeCanyon veröffentlichen? Was spricht dagegen, das Ganze weiter auf GitHub zu pflegen? Oder war das Ziel jetzt zwingend die Monetarisierung? Über den Sinn des privaten Programmierens kann ich wenig sagen. Bei mir sind das oft Refactorings alter Projekte, die einfach notwendig geworden sind, weil. --- Davon abgesehen. Möglicherweise hat u.a. die Code-Qualität zum "Hardreject" des Projektes geführt. Es gibt praktisch keine Tests, dazu brichst du an verschiedenen Stellen mit üblichen Konventionen in Sachen Laravel, wie etwa der Benennung von Methoden für Controller und Routen, Views existieren darüber hinaus doppelt oder dreifach (/resources/views/dashboard_agent.blade.php, /resources/views/dashboard_client.blade.php, /resources/views/dashboard_guest.blade.php), statt Blade-Direktiven zu nutzen und Content in Abhängigkeit zur Benutzerrolle anzuzeigen. Das bläht das System an sich schon mal auf. Eher schade ist obendrein, dass du ein paar Gruppen dem Empfinden nach hardcodest statt Pakete wie spatie/laravel-permission sinnvoll einzubinden und die Erstellung von Rollen/Gruppen oder die individuelle Zuweisung von Benutzerrechten zu ermöglichen. Events/Listener für den Versand von Notifications bei Änderungen am Ticket suche ich ebenso vergeblich, dabei erscheint mir ein solches System prädestiniert dafür zu sein. Und weshalb du die Standard-Authentication im Projekt hast, allem Anschein nach aber nicht nutzt, erschließt sich mir genauso wenig wie das Vorhandensein von nicht benötigten Dateien wie /resources/js/components/ExampleComponent.vue. Hm. Zudem ist das Ganze weder PSR-2- noch PSR-12-compliant. Einen CodeSniffer drüber laufen zu lassen, sollte nicht schaden. Beispiel: PS D:\dnyXTicket> phpcs --standard=PSR12 .\app\Http\Controllers\TicketController.php FILE: D:\dnyXTicket\app\Http\Controllers\TicketController.php ---------------------------------------------------------------------- FOUND 40 ERRORS AND 26 WARNINGS AFFECTING 65 LINES ---------------------------------------------------------------------- 1 | ERROR | [x] End of line character is invalid; expected "\n" | | but found "\r\n" 19 | ERROR | [ ] Import statements must not begin with a leading | | backslash 20 | ERROR | [ ] Import statements must not begin with a leading | | backslash 21 | ERROR | [ ] Import statements must not begin with a leading | | backslash 22 | ERROR | [ ] Import statements must not begin with a leading | | backslash 23 | ERROR | [ ] Import statements must not begin with a leading | | backslash 24 | ERROR | [ ] Import statements must not begin with a leading | | backslash 25 | ERROR | [ ] Import statements must not begin with a leading | | backslash 26 | ERROR | [ ] Import statements must not begin with a leading | | backslash 58 | WARNING | [ ] Line exceeds 120 characters; contains 200 | | characters 61 | ERROR | [x] Expected 1 space(s) after closing parenthesis; | | found newline 142 | WARNING | [ ] Line exceeds 120 characters; contains 130 | | characters 201 | WARNING | [ ] Line exceeds 120 characters; contains 149 | | characters 205 | WARNING | [ ] Line exceeds 120 characters; contains 173 | | characters 207 | WARNING | [x] Usage of ELSE IF is discouraged; use ELSEIF | | instead 212 | WARNING | [ ] Line exceeds 120 characters; contains 149 | | characters 216 | WARNING | [ ] Line exceeds 120 characters; contains 171 | | characters 240 | ERROR | [x] The first expression of a multi-line control | | structure must be on the line after the opening | | parenthesis 243 | ERROR | [x] Each line in a multi-line control structure must | | be indented at least once; expected at least 12 | | spaces, but found 8 243 | ERROR | [x] The closing parenthesis of a multi-line control | | structure must be on the line after the last | | expression 279 | WARNING | [ ] Line exceeds 120 characters; contains 149 | | characters 283 | WARNING | [ ] Line exceeds 120 characters; contains 173 | | characters 285 | WARNING | [x] Usage of ELSE IF is discouraged; use ELSEIF | | instead 290 | WARNING | [ ] Line exceeds 120 characters; contains 149 | | characters 294 | WARNING | [ ] Line exceeds 120 characters; contains 171 | | characters 314 | ERROR | [x] Whitespace found at end of line 318 | WARNING | [ ] Line exceeds 120 characters; contains 125 | | characters 321 | ERROR | [x] Whitespace found at end of line 350 | ERROR | [x] Whitespace found at end of line 354 | WARNING | [ ] Line exceeds 120 characters; contains 125 | | characters 357 | ERROR | [x] Whitespace found at end of line 373 | ERROR | [x] Inline control structures are not allowed 374 | ERROR | [x] Inline control structures are not allowed 375 | ERROR | [x] Inline control structures are not allowed 376 | ERROR | [x] Inline control structures are not allowed 377 | ERROR | [x] Inline control structures are not allowed 378 | ERROR | [x] Inline control structures are not allowed 379 | ERROR | [x] Inline control structures are not allowed 380 | ERROR | [x] Inline control structures are not allowed 398 | ERROR | [x] Whitespace found at end of line 412 | WARNING | [ ] Line exceeds 120 characters; contains 154 | | characters 416 | WARNING | [ ] Line exceeds 120 characters; contains 157 | | characters 433 | ERROR | [x] Whitespace found at end of line 456 | ERROR | [x] Whitespace found at end of line 459 | ERROR | [x] Inline control structures are not allowed 460 | ERROR | [x] Inline control structures are not allowed 471 | WARNING | [ ] Line exceeds 120 characters; contains 149 | | characters 475 | WARNING | [ ] Line exceeds 120 characters; contains 159 | | characters 493 | ERROR | [x] Whitespace found at end of line 496 | ERROR | [x] Inline control structures are not allowed 497 | ERROR | [x] Inline control structures are not allowed 519 | ERROR | [x] Whitespace found at end of line 522 | ERROR | [x] Inline control structures are not allowed 523 | ERROR | [x] Inline control structures are not allowed 556 | WARNING | [ ] Line exceeds 120 characters; contains 129 | | characters 559 | ERROR | [x] Whitespace found at end of line 561 | WARNING | [x] Usage of ELSE IF is discouraged; use ELSEIF | | instead 581 | WARNING | [ ] Line exceeds 120 characters; contains 162 | | characters 586 | WARNING | [ ] Line exceeds 120 characters; contains 164 | | characters 612 | WARNING | [ ] Line exceeds 120 characters; contains 137 | | characters 632 | ERROR | [x] Whitespace found at end of line 646 | WARNING | [ ] Line exceeds 120 characters; contains 125 | | characters 649 | ERROR | [x] Whitespace found at end of line 709 | WARNING | [x] Usage of ELSE IF is discouraged; use ELSEIF | | instead 711 | WARNING | [x] Usage of ELSE IF is discouraged; use ELSEIF | | instead 718 | ERROR | [x] Expected 1 space(s) after closing parenthesis; | | found newline ---------------------------------------------------------------------- PHPCBF CAN FIX THE 37 MARKED SNIFF VIOLATIONS AUTOMATICALLY ---------------------------------------------------------------------- Ich habe außerdem das Gefühl, dass deine Controller Logik beinhalten, die dort nicht hingehört.
  3. Visar hat auf InTheVoid's Thema geantwortet in IT-Arbeitswelt
    Wenn er wüsste was GitHub ist, müsste er de Frage ja nicht in der Form ("Mehrwert für Junior-Entwickler?") stellen. Oo
  4. Ich frage mich gerade, welchen Ausbildungsberuf du eigentlich wo lernst, wenn AE dieselbe Priorität hat wie die Märchenstunde.
  5. @ChrisRaphi Bitte nicht einfach fremde Themen kapern.. Es gibt Themen für die Suche nach Prüfungen/Lösungen:
  6. Bei uns wird auch Aruba eingesetzt und auch wenn das mächtig sein mag, ist die Konfiguration einer Anwendung aber nicht gleichzusetzen mit fachlicher Tiefe. Darauf bezog sich das "anspruchsvoll" bei mir maßgeblich. Vielleicht etwas zu unsauber ausgedrückt. TL;DR Ich sehe das wie @charmanta.
  7. Wie die anderen schon gesagt haben: 9,5 Stunden Dokumentation empfinde ich bei einem FISI als etwas.. viel. Realisierungsphase: 2+1+5+3 sind 11, nicht 12. Das Thema selbst empfinde ich ansonsten zwar als "nützlich", aber ich habe nicht den Eindruck, dass es besonders anspruchsvoll wäre. Am Ende ist es die Installation und Konfiguration einer Software. Hm.
  8. Vielleicht geht das nur mir so, aber ich frage mich durchaus.. Weshalb hast du das Thema auf diese Weise erstellt, essentielle Details zum Sachverhalt wie Minusstunden* auslassend, wodurch dein Vorgesetzter tatsächlich einfach nur pöhse rüber kommt und du wie der arme, gescholtene und ausgebeutete Angestellte, der keine Zeit mit seiner Familie verbringen darf? Bei Minusstunden muss ich ehrlich sagen, dass ich es trotz vorheriger Zusage durchaus legitim finde, wenn er dich für Tag X einbestellt. Ob das Meeting nun der Grund ist oder etwas anderes. Du hast eben Minusstunden. Dann auf einen freien Tag zu pochen fände ich schon eher dreist und würde ich mir selbst auch nicht herausnehmen. * Gleitzeitregelung hin, Gleitzeitregelung her. Die kennen wir schließlich nicht im Detail.
  9. Nummer 2 ist richtig, da du bei einem Preis von 90 ein Angebot von 75 und eine Nachfrage von 55 vorliegen. Daraus ergibt sich ein Angebotsüberhang von 20, da Angebot > Nachfrage. Einen Nachfrageüberhang hast du beispielsweise bei einem Preis von 45, wo die Nachfrage 90 beträgt und das Angebot lediglich 40. Beachte dabei, dass die gestrichelte Linie das Angebot und die durchgezogene die Nachfrage repräsentiert. Mich hat das in der Prüfungsvorbereitung anfangs auch durcheinander gebracht.
  10. Visar hat auf InTheVoid's Thema geantwortet in IT-Arbeitswelt
    GitHub fußt auf der Versionsverwaltung Git, dient also der Versionierung deines Projektes. Dein Vorteil? Du kannst Änderungen jederzeit nachvollziehen, rückgängig machen und was Git eben noch so kann. Dazu hat Git SVN in vielen Bereichen mittlerweile abgelöst. Dein Bonus-Vorteil ist also, dass du Erfahrung im Umgang mit Git sammeln kannst. Wenn du heiß drauf bist, kannst du deine Projekte auch öffentlich machen und Leute zur Kollaboration anregen. Klassisches Feedback solltest du aber nicht erwarten, das ist schließlich keine Plattform zur Code Review. Oft kommt "Feedback" eher in Form von Issues oder Pull Requests, aber eher dann, wenn irgendjemand deinen zur Verfügung gestellten Code nutzen möchte und dabei z.B. Fehler entdeckt, die ihn am eigenen Fortschritt hindern.
  11. Ich hätte den Kompromiss dankend abgelehnt und darauf hingewiesen, dass ein entsprechender Antrag gestellt, abgenickt wurde und ich dementsprechend den Freitag nicht da sein werde. Prioritäten. Zudem ist es dir gegenüber verhältnismäßig unfair, das einen Tag vor der geplanten Freizeit doch noch zu canceln, nur weil Chef nicht nachgedacht hat. Davon abgesehen wäre es sicherlich kein Beinbruch gewesen, das erst am Montag zu besprechen.
  12. Könnten wir jetzt bitte einmal die Aufgabe selbst posten? Danke.
  13. Das bezweifle ich einfach mal, da das Themenfeld so umfangreich ist, dass selbst Juristen in vielerlei Hinsicht noch uneins sind. ?
  14. Visar hat auf Melina's Thema geantwortet in Ausbildung im IT-Bereich
    Programmierung ist ein etwas breites Feld. Wo genau hakt es denn bei dir?
  15. Bei einer einzelnen, externen Festplatte gehst du in Sachen Vollbackup natürlich auch ein Risiko ein. Dazu muss gesagt werden, dass du auf deinem NAS mit mehr Platten auch verschiedene Volumes einrichten kannst. Heißt, dass deine Backups natürlich unnötigerweise im selben Raum lagen, physikalisch jedoch zumindest davon getrennt wären. Halte ich immer noch für besser als eine Externe, nachdem mir in 5 Jahren zwei plötzlich abgetaucht sind und ich 2,5 TB Daten verloren habe. -.- Hinsichtlich des Hauses, das abbrennt: Zweites NAS in der Firma aufstellen und die beiden Geräte synchronisieren. Sowohl Synology als auch Qnap bieten Lösungen in Sachen Georedundanz. Kostet dann doppelt, ist es aber sicher wert. An 3-2-1 dachte ich auch, aber da ist 2-Bay natürlich unterdimensioniert.
  16. Wenn die Leute unbedingt wissen sollen, dass du dich gerne mit Stuhl Gang!, Eya_kuh_lat, Abschaum und den Leuten von der Dildo Crew beschäftigst. Hm, ja, unbedingt. Spaß beiseite. Kann man erwähnen, aber mehr als den Namen und deine Funktion würde ich auch nicht reinschreiben, sollte reichen um zu zeigen, dass du irgendwelche Dinge tust.
  17. Klingt beides ein bisschen danach, als ob er sich angewöhnen sollte eine Versionsverwaltung zu nutzen. 2 TB sind nicht üppig, 4 TB sind heutzutage aber auch nicht gerade das Nonplusultra. So viel steckt bereits an Festplatte in meinem PC. Was spricht gegen ein entsprechend groß dimensioniertes NAS, dass sich z.B. auch die Option der Ablage eines Vollbackups von mehreren Endgeräten böte? Weshalb kein NAS mit Hot-swappable Festplatten? Weshalb ein NAS das quasi keinen RAM hat? Von was für einer FRITZ!Box sprechen wir hier, sprich: Unterstützt das Teil Gigabit-LAN? Empfehlenswert. Bereue auch nicht, damals für Zuhause zu einem KMU/SMB-NAS gegriffen zu haben.
  18. Selbst dann müsstest du die DSGVO/GDPR hinreichend abdecken, da Europarecht. EU-weit oder deutsches Büro macht also keinen Unterschied.
  19. @_n4p_ Es wäre doch fad, wenn dir die einfachen Lösungen immer zuerst einfallen würden. ? Aber stimmt schon. implode hab' ich gar nicht dran gedacht. Liegt vermutlich daran, dass ich für gewöhnlich noch mit den Arrays weiter arbeite, statt mir einfach einen String zu bauen. Oo
  20. @Whitehammer03 Zu aller erst.. hätte die Frage sein sollen, weshalb überhaupt foreach. Immerhin ist mir die maximale Anzahl der Elemente bekannt, weshalb nehme ich also keine for-Schleife?! Bah. Jungspunde. ? $last_key = end($input) ...gibt mir den letzten Wert aus dem Array zurück. Das habe ich an der Stelle auch nur gemacht, da ich nach jedem Element Zeilenumbrüche haben wollte - abgesehen vom letzten. Dummerweise zählt so ein foreach ja nicht selbst mit - dafür liest es sich trotzdem schöner. Zum Vergleich: <?php // For-Schleife for ($i = 0; $i < count($input); $i++) { $output .= $input[$i]; $output .= ($i < (count($input) - 1)) ? "<br />" : null; } // Foreach-Schleife $last_key = end($input); foreach ($input as $elem) { $output .= $elem; $output .= ($last_key != $elem) ? "<br />" : null; } Die Funktion handleNewsletter(array $input) habe ich mir geschrieben, da deine Basis ein sehr langes echo beinhaltet und ich gerade keine Lust hatte, mir das noch zurechtstückeln zu müssen. Also den String "unterbrochen", Funktion aufgerufen und Parameter übergeben, fertig. ? Ansonsten: Ja, dem foreach wird das Array $input übergeben und mit jedem Element $elem aus $input soll anschließend X gemacht werden.
  21. @Whitehammer03 Die Möglichkeit besteht. Persönlich würde ich an der Stelle direkt mit dem Array arbeiten, denn ansonsten müsstest du später bei jedem neuen Newsletter Variablen nachpflegen. Das ist nicht besonders.. toll. Daher hätte ich deinen Code jetzt wie folgt geändert: " (...) <tr> <td>Kontaktanfrage</td> <td>$Kontaktanfrage</td> </tr> <tr> <td>Newsletter</td> <td>".handleNewsletter($Newsletter)."</td> </tr> (...) " ...und sei es nur, weil auch kleine Funktionen Freude bereiten oder irritieren können: function handleNewsletter(array $input) { $output = ""; $last_key = end($input); foreach ($input as $elem) { $output .= $elem; $output .= ($last_key != $elem) ? "<br />" : null; } return $output; } @Chief Wiggum Dabei wäre Senilität hier von Vorteil, es geht immerhin um PHP. Besser schnell wieder vergessen und mit, ich weiß nicht, irgendetwas anderem beschäftigen.. xD
  22. @Whitehammer03 Radio-Buttons, wie deine ip_Kontaktanfrage sind so gestaltet, dass du nur eine Auswahl treffen kannst. Entweder-oder. Das führt dazu, dass das Skript den Wert recht stumpf übernehmen kann. Prinzipiell geht das bei Checkboxen auch, sie dürfen dann nur nicht denselben Namen haben. Wenn du also aus ip_Newsletter schlicht ip_Newsletter1 und ip_Newsletter2 machst, kannst du die Boxen genauso verarbeiten wie die Radio-Buttons. Sofern du aber den gleichen Namen für deine Checkboxen verwendest wird davon ausgegangen, dass es sich um eine Mehrfachauswahl handelt und die Werte werden sinnvollerweise, zusammenhängend in einem Array gespeichert - und du musst den Namen wie bereits gezeigt um [] ergänzen. Und was sind das bitte für Unterlagen, die euch so böse aufs Glatteis führen?
  23. @_Sly Gute Antwort. Allerdings Beispielcode, der mit ziemlicher Sicherheit auf 'ne Exception hinausläuft. ? Grundsätzlich machen Interfaces in größeren Applikationen Sinn, sehe ich ähnlich. Bezogen auf das konkrete Beispiel würde ich mich fragen ob das nicht etwas Overkill ist. Du wirst Passwörter ja eigentlich nicht unterschiedlich verschlüsseln, sondern dich auf eine Methode festlegen. Weil du ansonsten unnötige Komplexität zum Login hinzufügst, da du bei jedem Login auf irgendeine Weise prüfen müsstest welche Hashing-Funktion genutzt wurde. Das Interface würde hier also eher den ursprünglichen Zweck erfüllen, Vorgaben für deine Klasse User zu machen und kann dir gleichzeitig eine Hilfestellung sein, da du in einer modernen IDE einen Fehler angezeigt bekommst, solange das Interface nicht vollständig implementiert ist. Das führt mitunter dazu, dass Leute sauberer arbeiten, auch wenn es natürlich ein beträchtlicher Mehraufwand sein kann.
  24. @Whitehammer03 Hätte das doch nicht nur im Zug überfliegen und auf das Offensichtliche eingehen sollen. Mir ist dabei entgangen, dass du unnötige form-Tags um sowohl das select als auch die beiden inputs gesetzt hast. Wenn ich deinen Code also wie folgt anpasse und die unnötigen Tags entferne, denn du möchtest an und für sich keine Formulare im Formular aufmachen, sieht das so aus: <label>Art der Kontaktanfrage: <select name="ip_Kontaktanfrage" size="5"> <option>Feedback</option> <option>Angebotsanfrage</option> <option>Hardwaresupport</option> <option>Softwareproblem</option> </select> </label> <p>Abonieren Sie auch unsere verschiedenen Newsletter!</p> <fieldset> <input type="checkbox" id="mc" name="ip_Newsletter[]" value="Unternehmensneuigkeiten"> <label for="mc"> Unternehmensneuigkeiten</label> <input type="checkbox" id="vi" name="ip_Newsletter[]" value=" Hardware- und Softwarenews"> <label for="vi"> Hardware- und Softwarenews</label> </fieldset> ... dann erhalte ich beim Absenden folgende, prognostizierte Rückmeldung: Notice: Array to string conversion in E:\Programme\xampp\htdocs\form.php on line 42 Wenn ich mir das Array mittels var_dump($_POST) ausgeben lasse: array(8) { ["ip_Kontaktanfrage"]=> string(15) "Softwareproblem" ["ip_Newsletter"]=> array(1) { [0]=> string(27) " Hardware- und Softwarenews" } ["ip_anrede"]=> string(0) "" ["ip_name"]=> string(0) "" ["ip_anschrift"]=> string(0) "" ["ip_Email"]=> string(0) "" ["ip_Nachricht"]=> string(24) " " ["ip_Submit"]=> string(16) "Nachricht senden" } Dazu wird in der Tabelle bei "Newsletter" nur "Array" ausgegeben. Bedeutet, dass du hier noch eine Schleife über das Array jagen musst, um dir die Auswahl des Benutzers anzeigen zu lassen.
  25. Hi, der Type und Name für die Newsletter-Inputs sind falsch. Ist: type="radio" name="ip_Newsletter" Sollte: type="checkbox" name="ip_Newsletter[]" Soweit ich weiß bekommst du in $_POST["ip_Newsletter"]; dann auch ein Array zurück, d.h. echo geht nicht weil array to string conversion.

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.