🌐 Currenta Coding Weekend
Im Video gibt es schon erste Inhalte zu unserer Challenge, denn Conneqtive ist dieses Jahr mit von der Partie!
Arnd Goerth wird vor Ort als Mentor die Aufgabenstellung übernehmen und mit seiner Expertise unterstützen. Thomas Nienerza ist ebenfalls am Start und wird als Teil der Jury die Ergebnisse bewerten.
Wir drücken schon jetzt allen Teilnehmern die Daumen und freuen uns auf ein spannendes Wochenende! 🏆
#conneqtive#curcw24#hackathon
Es wird ja immer in den Medien behauptet die genaue Ursache für den #crowdstrike Ausfall wäre noch nicht bekannt - Falsch ❗
Dies ist die genaue Ursache:
Eine "Null-Pointer Exception" in der kaputten .sys Datei. Sowas passiert wenn man beim Programmieren in der Sprache C/C++ nicht aufpasst, also unter Zeitdruck steht und nicht ausreichend testet und Code-Review durchführt - oder nicht genug Programmierkenntnisse hat und versucht diese durch #ChatGPT auszugleichen!
Es gibt Programmiersprachen, die sind quasi immun gegen diesen Fehler z.B. Rust, aber leider nicht so optimal um Treiber zu programmieren.
Update: der Pointer ist zeigt tatsächlich nicht auf NULL, sondern auf die Adresse 0x000000000000009c, aber die ist leider Unsinn und liegt irgendwo im Windows Speicher-Nirvana. Rest des Problems siehe oben.
Update 2:
Also der Falcon-Treiber von CrowdStrike läuft unter Windows im Kernel Mode, ist signiert und ist als "starte mich auf jeden Fall beim Neustart" konfiguriert. Dieser Treiber lädt dann sogenannte Signaturdateien, die wiederum ausführbaren Code enthalten können, diesesmal allerdings unsigniert, damit er bestimmte Bedrohungen kennt und erkennt. Leider prüft der Falcon-Treiber nicht ab ob in diesen Signaturdateien Unsinn drinsteht, was zu der unsinnigen Pointer-Adresse und damit zum Bluescreen of death (Absturz) geführt hat. War eigentlich Glück, dass der Falcon-Treiber nicht schon früher irgendeine korrupte Signaturdatei erhalten hat und gecrasht ist.
The CrowdStrike bug caused by a NULL pointer, uninitialized data, or bad pointer dereferencing from the memory unsafe C++ language? I remember teaching C/C++, and it was a nightmare teaching pointers, and, it seems that there are still problems in their usage. It would say that almost every student had no idea how to properly use points in a program. Perhaps, it's about time we moved to Rust for kernel software.
Link to screen shot: https://lnkd.in/e2B_jrfy
And here is a rebuttal of the posting: https://lnkd.in/eMTqTNic
Software testen ist an sich ja ein gelöstes Problem, aber was macht man, wenn die Software auf einem Embedded Linux Device läuft, und möglicherweise Teil der Test-Prozedur ist, dass man mit der Hardware interagieren muss?
In unserem neuesten Video zeigt Leonard Göhrs, wie man das mit Hilfe des Testfernsteuerframeworks labgrid mit Python, pytest und Gitlab-CI angehen kann:
https://lnkd.in/ew88Wukm
🚀 Booste deine Backend-Skills: Neuer Rust-Kurs bei Letsboot.ch für hochperformante Microservices mit Roland Brand! https://lnkd.in/e6drUPze
👨🏫 Tauche ein in die Welt der Serverprogrammierung mit Rust. Dieser Kurs bietet dir eine fundierte Einführung in Rust, eine der schnellsten und speichersichersten Programmiersprachen, die perfekt für die Entwicklung von Microservices geeignet ist.
Die Highlights des Kurses:
📚 Verstehe Rusts mächtiges Ownership-Modell, das Speichersicherheit bei minimalem Laufzeit-Overhead garantiert.
🛠️ Erlerne die Grundlagen von Rust mit Bausteinen wie Datentypen, Kontrollfluss, Funktionen & Closures.
📈 Baue effiziente und sichere Backend-Services durch praktische Übungen, von der Entwicklung von REST APIs bis hin zu Datenbankabstraktionen.
🤖 Implementiere ein Beispielprojekt und entwickle gut dokumentierte CLI-Apps.
#Rust#Microservices#BackendDevelopment#SoftwareEngineering
Pushing for that simplicity on the other side of complexity
Are you looking to build resource-efficient microservices and explore a powerful systems programming language?
Level up your software engineering skills with Rust!
Sign up for the Rust on the Server Course and Training and dive into the world of blazing fast compiled code!
This course covers the fundamentals of Rust, including:
* Why Rust - The GC gap, trade offs and learning curve
* Building Blocks: Data Types and Variables
* Controlling the Flow: Conditional Statements and Loops
* Functions & Closures: Building Modular Code, even across threads
* Ownership and Borrowing: The Cornerstones of Rust's Safety
* Traits: Defining Behavior for Types
* Handling Errors Gracefully: The Result Type
* Building Projects with Cargo: Your Rust Package Manager
* The Borrow Checker: Your Guardian of Memory Safety
* Unit Tests: Co-located near your code and even inside documentation
* Introduction REST API Framework (Axum)
* Introduction to database abstraction (Sqlx)
* Development of REST Endpoints
Don't miss out! ➝ https://lnkd.in/gptMegnm#rust#programming#softwareengineering
🌟 Starte durch mit Rust: Neuer Kurs mit Roland Brand! https://lnkd.in/e_Epmduz
👨🏫 Entdecke Rust – ideal für effiziente und sichere Microservices. Dieser Kurs vermittelt die Grundlagen und führt durch praktische Anwendungen.
Kurshighlights:
📚 Erlange tiefes Verständnis des Rust-Ownership-Modells.
🛠️ Praxisnahe Übungen, inklusive REST APIs und Datenbankintegration.
🤖 Realisiere ein Projekt und entwickle CLI-Apps.
#Rust#Microservices#Letsboot
Pushing for that simplicity on the other side of complexity
Are you looking to build resource-efficient microservices and explore a powerful systems programming language?
Level up your software engineering skills with Rust!
Sign up for the Rust on the Server Course and Training and dive into the world of blazing fast compiled code!
This course covers the fundamentals of Rust, including:
* Why Rust - The GC gap, trade offs and learning curve
* Building Blocks: Data Types and Variables
* Controlling the Flow: Conditional Statements and Loops
* Functions & Closures: Building Modular Code, even across threads
* Ownership and Borrowing: The Cornerstones of Rust's Safety
* Traits: Defining Behavior for Types
* Handling Errors Gracefully: The Result Type
* Building Projects with Cargo: Your Rust Package Manager
* The Borrow Checker: Your Guardian of Memory Safety
* Unit Tests: Co-located near your code and even inside documentation
* Introduction REST API Framework (Axum)
* Introduction to database abstraction (Sqlx)
* Development of REST Endpoints
Don't miss out! ➝ https://lnkd.in/gptMegnm#rust#programming#softwareengineering
Tag 2 von HackingwithSwiftUI ist im Kasten! 💻🚀 Die Erweiterung meiner Swift-Kenntnisse auf SwiftUI fühlt sich großartig an. Ich bin bereit für noch mehr Herausforderungen und spannende Entwicklungen! #SwiftUI#CodingJourney#HackingwithSwiftUI
🚀 TypeScript erobert die Kommandozeile: Das Ende von Bash?
Was zunächst ungewöhnlich klingt, könnte bald zur Norm werden: CLI-Tools mit TypeScript! Dank der Plattformunabhängigkeit von Node.js und einer Vielzahl an nützlichen Bibliotheken wie Commander und Yargs, wird TypeScript zunehmend eine attraktive Alternative zu klassischen Skriptsprachen wie Bash oder PowerShell.
Was bedeutet das für Entwickler?
Einheitliche Sprache, plattformübergreifende Nutzung und eine einfachere Einstiegshürde.
Quelle: heise online#TypeScript#JavaScript#CLI#NodeJS#Entwicklung#Coding#Programmieren#Bash#Technologie