A coding project GmbH

A coding project GmbH Webentwicklung aus Leidenschaft

Im heutigen   hat Jan-Niklas über die aktuelle Problematik von Passwörtern berichtet und eine die mögliche Zukunft von A...
19/05/2023

Im heutigen hat Jan-Niklas über die aktuelle Problematik von Passwörtern berichtet und eine die mögliche Zukunft von Auhtentifizierungsmechanisment aufgezeigt.

- Passwörter gab es schon im Mittelalter. Damals autorisierten sich die Menschen mit einem wechselnden Passwort am Tor. Manchmal mussten sie auch ein Siegel und ein bestimmtes Muster vorweisen.

- Fast 20 Jahre lang lautete das Passwort für den Start amerikanischer Atomraketen 00000000 - hoffentlich ist es inzwischen etwas komplexer geworden.

- Passwort-Regeln (Zahlen oder Wechsel von Groß- und Kleinschreibung mit einfachen Sonderzeichen) bringen nur etwas mehr Sicherheit.

- Bei Passwörtern kommt es vor allem auf die Länge an. Je länger ein Passwort ist, desto schwieriger ist es zu knacken.

- Wenn das persönliche E-Mail-Konto komprimiert wurde, hat man ein großes Problem - Angreifer können die Passwörter oft in anderen Diensten zurücksetzen.

- Abhilfe schaffen Multi-Faktor-Authentifizierungen, z.B. per SMS, Telefonanruf oder Authentifikator-App.

- Aber auch hier gibt es Probleme. In der Vergangenheit konnten durch eine Schwachstelle im SS7-Netzwerk SMS umgeleitet werden.

- Die Zukunft könnte ganz ohne Passwort auskommen. Das will zumindest die FIDO2-Allianz mit WebAuthn erreichen, an der unter anderem Google, Microsoft und PayPal beteiligt sind.

- Mit WebAuthn kann man sich direkt am Gerät authentifizieren, zum Beispiel über biometrische Daten.

- Es handelt sich um einen offenen Standard, der vom World Wide Web Consortium veröffentlicht wurde.

PS: Die letzten Freitagsvorträge wurden aus Zeitgründen nicht veröffentlicht.

Die Themen waren:
- Dominik: IT-Projektmanagement & Bionik
- Christoph: Am Abgrund der Berechenbarkeit - Das einfachste ungelöste Problem der Mathematik
- David: Gameserver-Administration mit Linux

Automatisierte Tests sind eine gute Methode, um Fehler im Idealfall zu finden, bevor sie in der Live-Umgebung auftreten....
06/04/2023

Automatisierte Tests sind eine gute Methode, um Fehler im Idealfall zu finden, bevor sie in der Live-Umgebung auftreten.

In seinem heutigen hat unser Auszubildender Jan vorgestellt. Mit Cypress kann das Verhalten eines Benutzers in einem Webprojekt simuliert werden.
Zum Beispiel werden Klicks ausgeführt, die auch der Benutzer häufig benutzt. Wir können dann testen, ob nach dem Klick auch das passiert, was passieren soll.

Ist dies nicht der Fall, kann man relativ schnell herausfinden, an welcher Stelle Korrekturen notwendig sind.

Cypress eignet sich also vor allem für Tests im Frontend-Bereich (vor allem JavaScript) und kann als gute Ergänzung zu Tests mit PhpUnit eingesetzt werden. Man kann Cypress auch verwenden, um die Seite nach einem Deployment zu testen, d.h. wenn Änderungen online sichtbar sind. So sieht man schnell, ob beim Deployment alles geklappt hat.

Je nach Projekt setzen wir unterschiedliche automatisierte Testverfahren ein. Cypress setzen wir derzeit vor allem in Verbindung mit Next.js ein.

🤯 Für seinen heutigen   hat Andre den Kern des JavaScript Frameworks   nachgebaut.Das Motto:Man muss wissen, wie die Too...
31/03/2023

🤯 Für seinen heutigen hat Andre den Kern des JavaScript Frameworks nachgebaut.

Das Motto:

Man muss wissen, wie die Tools funktionieren, mit denen man täglich zu tun hat.

Da das Thema sehr komplex ist und sich nicht in einem kurzen Post beschreiben lässt, gibt es diesmal nur einen sehr kleinen Ausschnitt:

Wichtig bei dem Thema ist vor allem die Performance und das der Browser während des Renderings nicht blockiert.

Hierzu greif React auf die Funktion window.requestIdleCallback() zurück, mit der die Arbeit dann ausgeführt wird, wenn der Browser gerade dazu Zeit hat.

🕰   hat eine lange Geschichte.In seinem   erzählte Peter drei spannende Geschichten darüber, wie schon vor sehr langer Z...
24/03/2023

🕰 hat eine lange Geschichte.

In seinem erzählte Peter drei spannende Geschichten darüber, wie schon vor sehr langer Zeit gehackt wurde.

Gründe für das Hacken:

- John T. Draper: Spaß
- John Nevil Maskelyne: Rache (1903)
- Gebrüder Blanc: Habgier (1830)

🥣 John T. Draper: Captain Crunch

John T. Draper fand heraus, wie man kostenlos telefonieren kann.
Er pfiff mit einer Spielzeugpfeife aus einer Cornflakes-Packung und überlistete damit die Signale des Telefonnetzes.

🎩 John Nevil Maskelyn gegen Guglielmo Marconi

Guglielmo Marconi war einer der Pioniere der drahtlosen Telegrafie. Er behauptete, seine Nachrichten seien abhörsicher, da Sender und Empfänger die Frequenz kennen müssten, auf der die Signale gesendet werden.
John Nevil Maskelyn war Zauberkünstler und nutzte die drahtlose Telegrafie für seine Zaubertricks. Guglielmo Marconi machte ihm jedoch Schwierigkeiten, weil die Zaubertricks Patente verletzten.
Eines Tages hatte Marconi eine wichtige Präsentation in London. Da Maskelyn die Technik verstand, baute er während dieser Präsentation Schimpfwörter in die Übertragung ein und blamierte Marconi so vor wichtigem Publikum.

💸 Die Brüder Blanc: Mit Wissensvorsprung zum Vermögen

An der Börse kann man mit einem Wissensvorsprung viel Geld verdienen. Vor Internet und Telefon dauerte es zwei Tage, um Nachrichten mit der Postkutsche von Paris nach Bordeaux zu bringen. Für Börseninformationen ist das natürlich zu langsam. Die Brüder Blanc schafften es, diese Informationen in der Hälfte der Zeit zu übermitteln.

Dazu haben sie die staatlichen Telegrafentürme "angezapft". Telegrafentürme dienen der Nachrichtenübermittlung über große Entfernungen.
Sie konnten in 196 verschiedenen Varianten ausgerichtet werden. Die Türme stehen ca. 10 - 12 km voneinander entfernt. Auf jedem Turm befand sich eine Person, die mit einem Fernglas die Signale des vorherigen Turms sichtete und auf dem eigenen Turm darstellte.
Die Nachrichten selbst waren geheim, nur der Sender, der Empfänger und eine Kontrollstation wussten, was sie bedeuteten.

Wie gelang es, geheime Nachrichten in dieses staatliche System einzuschleusen? Von den 196 Signalvarianten waren 104 nur für Kontrollsignale vorgesehen. Damit wurde sichergestellt, dass die Nachrichten korrekt übertragen wurden.
Die Brüder bestachen Leute auf einem vorderem Turm, die für sie bestimmte Kontrollsignale einbauten.

Es gab aber eine Kontrollstation, die alle Befehle kannte und die Kontrollsignale wieder säuberte.
Was half da? Natürlich: Bestechung. In der Nähe des Kontrollturms gab es jemanden, der die Nachricht mit einer Kutsche zum nächsten Turm hinter dem Kontrollturm brachte.

In der Nähe der letzten Station saß dann jemand, der die Nachricht auslas, so dass mit den Informationen entsprechend gute Entscheidungen an der Börse getroffen werden konnten.

Die beiden Brüder wurden durch den Wissensvorsprung sehr reich und stiegen dann ins Kasinogeschäft ein.

19/03/2023

Das PHP-Framework Laravel 10 ist erschienen. Highlights sind vor allem Laravel Pennant, stärkere Typisierung und Messung von Unit-Tests.

Diese Woche fand unser Freitagsvortrag bereits am Dienstag statt.Thema: UsabilityJan-Niklas berichtete darüber, worauf e...
17/03/2023

Diese Woche fand unser Freitagsvortrag bereits am Dienstag statt.
Thema: Usability

Jan-Niklas berichtete darüber, worauf es bei Usability im Großen und Ganzen ankommt.

Was ist Usability?

- Wie effektiv kann etwas benutzt werden?
- Wie effizient lässt sich etwas nutzen?
- Wie zufrieden bin ich als Benutzer?
- Wie fehleranfällig ist das Produkt?
- Wie einfach ist der Umgang mit dem Produkt?

Der Bereich User Experience erweitert die Usability um die Themen Emotionen, Vorstellungen, Vorlieben, Wahrnehmungen, Reaktionen, Verhaltensweisen und Leistungen.

So sieht ein benutzerzentrierter Designprozess aus:

- Kontext des Nutzers verstehen
- Nutzeranforderungen spezifizieren (am besten gemeinsam mit dem Nutzer)
- Design-Lösung entwickeln
- Design-Lösung evaluieren - Wenn die Anforderungen nicht erfüllt werden, kehrt man zu einem der vorherigen Schritte zurück.

In diesem Bereich ist es hilfreich, dem CRAP-Prinzip zu folgen.
Was ist CRAP?

C = Contrast - Ungleiche Funktionen sollen unterschiedlich aussehen
R = Repetition - visuelle Elemente sollten sich im Design wiederholen
A = Alignment - Jedes Element sollte in Beziehung zu den anderen stehen.
P = Proximity - Zusammengehörige Elemente werden sinnvoll gruppiert

Jakob Nielsen hat 10 Heuristiken zur Verbesserung der Usability von Webprojekten zusammengestellt:

- Sichtbarkeit des Systemzustands - Was passiert gerade?
- Übereinstimmung zwischen System und realer Welt - Erleichterung der Bedienung durch Analogien
- Benutzerkontrolle und Freiheit - Aktionen können rückgängig gemacht oder abgebrochen werden.
- Konsistenz und Standards - Konsistentes Design erleichtert das Verständnis
- Fehlervermeidung - Klare Anweisungen geben und komplette Abläufe vermeiden
- Erkennen statt Erinnern - Aufgaben intuitiv ausführen, ohne sich an vorherige Schritte erinnern zu müssen
- Flexibilität und Effizienz in der Nutzung - z.B. durch Shortcuts
- Ästhetik und Minimalismus - Unnötiges weglassen
- Unterstützung bei der Fehlererkennung, -diagnose und -behebung - Klare Fehlermeldungen / Anleitungen zur Fehlerbehebung
- Hilfe und Dokumentation - ggf. durchsuchbare und benutzerzentrierte Anleitungen

Fazit
- Usability ist ein wichtiger Faktor für die Nutzerzufriedenheit und damit für den Produkterfolg.
- Ein nutzerzentrierter Designansatz und Designprinzipien wie CRAP können zu einer nutzerfreundlichen Gestaltung beitragen.
- Evaluationsmethoden wie Usability-Tests, Nutzer-Feedback und heuristische Analysen können die Usability verbessern.

Laravel Nova ist ein Tool, mit dem man relativ einfach Admin-Oberflächen für Laravel-Projekte erstellen kann. Christoph ...
10/03/2023

Laravel Nova ist ein Tool, mit dem man relativ einfach Admin-Oberflächen für Laravel-Projekte erstellen kann. Christoph hat heute in seinem eine Live Coding Session gemacht und gezeigt, welche Möglichkeiten es hier gibt.

Die Highlights:

- Datensätze (Ressourcen) können aufgelistet, gefiltert und editiert werden
- Mit Cards können individuelle Dashboards erstellen
- Das Rechtesystem ist vollständig in Laravel integriert

Tabs oder Spaces? Klammer in gleicher oder in neuer Zeile?Diese Fragen können dazu genutzt werden, um Entwickler in hitz...
03/03/2023

Tabs oder Spaces? Klammer in gleicher oder in neuer Zeile?

Diese Fragen können dazu genutzt werden, um Entwickler in hitzige Diskussionen zu bringen. Andre hat sich getraut diese heiklen Themen in seinem anzugehen.

Vorab: Bei uns blieb es ruhig und sachlich 😇

Worum geht es genau?
In der Programmierung gibt es verschiedene Möglichkeiten Code zu formatieren. Ziel dabei ist es, dass der Code übersichtlich bleibt und man schnell erkennen kann was in einer Datei passiert.

Wenn verschiedene Entwickler unterschiedliche Formatierungen verwenden kann dies zu unnötigen oder unübersichtlichen Änderungen führen.

Wir haben uns intern darauf geeinigt, so weit wie möglich mit etablierten Standards zu arbeiten und keine Sonderregeln zu verwenden.

In PHP verwenden wir PSR-12, in JavaScript halten wir uns an die Standards des MDN. Die Formatierung stellen wir in unseren Tools (je nach Entwickler Visual Studio Code, PhpStorm oder Vim) entsprechend ein. Zusätzlich nutzen wir Laravel Pint.

Dominik hatte für die Vorbereitung seines Freitagsvortrags leider zu wenig Zeit. Also hat er ChatGPT genutzt, um einen V...
24/02/2023

Dominik hatte für die Vorbereitung seines Freitagsvortrags leider zu wenig Zeit. Also hat er ChatGPT genutzt, um einen Vortrag über ChatGPT zu erstellen.

Da auch meine Zeit knapp ist, ist hier die von ChatGPT generierte Zusammenfassung des Vortrags:

- KI ermöglicht Computern, Aufgaben zu erledigen, die menschliche Intelligenz erfordern.
- KI-Systeme lernen, sich anzupassen und Probleme zu lösen, indem sie Daten analysieren und Muster erkennen.
- KI-Systeme basieren auf Algorithmen wie neuronalen Netzen oder Entscheidungsbäumen.
- KI hat Wurzeln in den 1950er Jahren und hat sich in den letzten Jahren schnell entwickelt.
- ChatGPT ist ein fortschrittlicher Chatbot von OpenAI, der Konversationen führen, Text generieren, übersetzen und Zusammenfassungen erstellen kann.
- Das Ziel von OpenAI ist es, KI-Systeme zu entwickeln, die komplexe Aufgaben ausführen und ethische und sicherheitsrelevante Aspekte berücksichtigen.
- Ein neuronales Netz ist ein künstliches Netzwerk von Neuronen, das komplexe Muster erkennen kann.

Der erste Arbeitstag ist immer recht aufregend – Man lernt viele neue Kolleg:innen, Tools, Abläufe und Projekte kennen. ...
15/02/2023

Der erste Arbeitstag ist immer recht aufregend – Man lernt viele neue Kolleg:innen, Tools, Abläufe und Projekte kennen. Da wir regelmäßig neue Kolleg:innen dazu bekommen, haben wir für den ersten Tag mittlerweile einen festen Ablauf festgelegt. Heute war es für unseren neuen Entwickler David soweit.

1. Begrüßung:
Der Arbeitsbeginn für den ersten Arbeitstag ist um 10. So haben wir intern davor noch kurz Zeit die wichtigsten E-Mails zu beantworten, sodass wir im Anschluss uns in Ruhe um die Einarbeitung kümmern können.

2. Büroführung:
Als Erstes zeigen wir unsere Räumlichkeiten – Und wo man bei uns etwas finden kann (z.B. Kaffee oder Tee). Wenn man dabei auf andere Kolleg:innen stößt, gibt es natürlich schon eine Kurzvorstellung. Da unsere Büros im Technologiehof liegen gibt es auch dort noch einiges zu Erkunden. z.B. Konferenzräume, Wintergarten oder das Bistro.

3. Übergabe und Erklärung von Hard- und Software
Auf dem Notebook und Diensthandy haben wir vorab bereits alles Wichtige vorinstalliert, damit wir direkt loslegen können. Gerade bei Entwickler:innen gibt es bei uns viele Tools zu erkunden. Unser Standard-Setup kann aber vom Mitarbeiter bei Bedarf geändert werden. Als Entwicklungsumgebungen kommen bei uns je nach Vorliebe PhpStorm, Visual Studio Code oder Vim zum Einsatz.

4. Foto, Unterlagen und Co
Für die Website wird direkt am ersten Tag ein Foto gemacht. Das von David geht auch in Kürze online. Evtl. gibt es auch noch ein paar Unterlagen die ausgetaucht werden müssen.

5. Kennenlernen des Teams
Da bei uns immer nur ein Teil des Teams im Büro ist, machen wir kurz vor dem Mittag eine gemeinsame Konferenz, wo jeder sich kurz vorstellt. Eine Information, die dabei nicht fehlen darf ist die Lieblingsfarbe.

6. Gemeinsames Mittagessen
Eigentlich gehen die Kollegen vor Ort jeden Tag gemeinsam in den Mittag – Wenn jemand neu anfängt ist das aber auch noch eine gute Möglichkeit, um sich persönlich etwas besser kennenzulernen. Heute waren wir bei einem nepalesischem Restaurant.

7. Projektvorstellung
Wir gehen im schnelldurchlauf alle größeren Kundenprojekte durch, sodass man ungefähr weiß, woran auch der Rest des Teams gerade arbeitet. Bei uns ist es so, dass wir einige Referenzen nicht öffentlich haben, so dass es auch immer spannend ist, wo wir überall aktiv sind.

8. Besprechung der Abläufe
In Kurz: Wir arbeiten mit Scrum, es gibt Daily Stand ups, Retrospektiven, einen Tech-Debt-Day und freitags immer einen Vortrag.

9. Einarbeitung in ein Projekt
Die Einarbeitung in ein neues Projekt erfolgt immer mit der Person, die in letzter Zeit am meisten im Projekt aktiv war.

Fazit:
Der erste Arbeitstag ist bei uns immer voll mit Informationen. Aber keine Angst: Die wichtigsten Themen haben wir dokumentiert – Teilweise auch auf Video.

Herzlich Willkommen, David!

Im heutigen Freitagsvortrag stellte Henning die dokumentorientierte Datenbank CouchDB vor.- Die Daten werden im JSON For...
10/02/2023

Im heutigen Freitagsvortrag stellte Henning die dokumentorientierte Datenbank CouchDB vor.

- Die Daten werden im JSON Format gespeichert.
- Der Zugriff erfolgt über REST
- Es gibt eine eingebaute Möglichkeit zum Clustering
- Die Datenbank kann einfach auf andere Systeme repliziert werden - dadurch können Systeme offlinefähig gemacht werden.
- Die Abfrage der Daten erfolgt über Mango-Queries (ebenfalls JSON)
- Es gibt ein eingebautes Versionierungssystem für Dokumente.
- Mit Fauxton können die Daten in einer Oberfläche verwaltet werden.

Im heutigen Freitagsvortrag hat Stefan Wienströer über den Bereich Informationsbeschaffung in der Cybersecurity berichte...
27/01/2023

Im heutigen Freitagsvortrag hat Stefan Wienströer über den Bereich Informationsbeschaffung in der Cybersecurity berichtet:

Es gibt 5 Phasen eines Hacking-Angriffs:
- Informationsbeschaffung
- Schwachstellen finden
- Aktives Eindringen
- Sich im System festsetzen
- Spuren verwischen

Online-Tools, um verwendete Software und Versionen zu finden sind zum Beispiel:

- buildWith (inkl. Historie von Tracking-Tools und IPs)
- Netcraft

In der "Google Hacking Database" lassen sich mit Hilfe von Google Sicherheitslücken auf Websites finden. Diese sind weniger gezielt und können zum Aufbau von Botnetzen genutzt werden.

Beispiele:
- intext:"index of" ".sql" - Findet Backups von Datenbanken (inkl. Passwörter)
- intitle:"index of" inurl:superadmin

Mit dem Tool "Metagoofil" kann man diese Suche noch gezielter durchführen und Datenbanken direkt herunterladen.

Das Tool "Recon-NG" bietet zahlreiche Möglichkeiten zur Informationsbeschaffung (Extraktion von Mitarbeiterdaten wie E-Mail Adressen, Sicherheitslücken, IP-Informationen & Co)

Ein großes Risiko besteht im Social Engineering, wo Leute gezielt Personen aus Unternehmen anschreiben, um an geheime Informationen zu kommen. Hier ist es wichtig, alle Mitarbeiter sensibel für das Thema zu machen.

Adresse

Mendelstraße 11
Münster

Benachrichtigungen

Lassen Sie sich von uns eine E-Mail senden und seien Sie der erste der Neuigkeiten und Aktionen von A coding project GmbH erfährt. Ihre E-Mail-Adresse wird nicht für andere Zwecke verwendet und Sie können sich jederzeit abmelden.

Service Kontaktieren

Nachricht an A coding project GmbH senden:

Teilen