Configuration directory for Linux service
Have you ever struggled with finding the right place to store your service’s configuration files on a Embedded Linux system?
I’ve observed numerous file storage and System Configuration practices, such as placing everything under /data, utilizing /opt/…, or keeping operational data under /etc/…, among others.
While these methods are feasible, I would advise against them.
The Filesystem Hierarchy Standard (FHS) specifies the appropriate locations for different types of files.
If you’re developing services for Embedded Linux, adhering to the FHS can significantly simplify software deployment and management. By following these standards, developers ensure their applications are more portable and easier to maintain. For instance, tools like Yocto automatically locate files expected in standard directories. Runtime behavior is as expected when you choose the correct location for temporary and log files.
Selbstständigkeit: Angebot
Heute starte ich in die Selbstständigkeit. Mein Angebot umfasst:
-
Agile Praktiken für Entwickler: Coaching und Mitarbeit zur Implementierung effektiver agiler Methoden (Extreme programming) in Entwicklungsprojekten, um die Produktivität und Qualität zu steigern.
-
Individuelle Softwareentwicklung: Entwicklung massgeschneiderter Qualitäts-Software für nachhaltig erfolgreiche Produkte.
-
Architekturberatung: Beratungsdienste zur Gestaltung und Optimierung von Softwarearchitekturen, um eine langfristige Skalierbarkeit, Flexibilität und Wartbarkeit sicherzustellen.
-
Embedded GNU/Linux-Anwendungs- und Systementwicklung: Expertise in der Entwicklung von eingebetteten Systemen und Anwendungen unter Verwendung von GNU/Linux.
-
Unterstützung bei der Einhaltung des Cyber Resilience Acts: Massgeschneiderte Beratung und Lösungen, um Kunden bei der Einhaltung des CRA zu unterstützen.
Selbstständigkeit: Der Weg dahin
Es ist Zeit für ein neues Kapitel: Heute starte ich in die Selbstständigkeit.
Meine Karriere begann mit einer Elektronikerlehre, gefolgt von Jahren in der Berufswelt, die mich zur Software-Entwicklung führten. Ich studierte Systeminformatik an der ZHAW, erwarb meinen Master in Computer Science an der ETH, absolvierte ein Praktikum am CERN und verfasste meine Masterarbeit an der University of California in Irvine. Währenddessen entdeckte ich Freie Software/Open Source mit den Werten, welche ich bis heute teile.
Compiler support for switch-case error detection
Not adding a default label to the switch-case statement improves the C++ code quality. The normal use case for a switch-case is over an enum like in the example below.
enum class Op {
Addition,
Subtraction,
};
double execute(Op op, double left, double right) {
switch (op) {
case Op::Addition:
return left + right;
case Op::Subtraction:
return left - right;
}
return {};
}
All the enum options have to be considered in the switch-case (if this is not the case then probably something else is a bit smelly in the code).
The compiler is telling us whenever we missed an enum options.
In gcc it is the -Wswitch flag, this comes for free with -Wall.
The benefits are:
Effizienz durch Exzellenz
Aufgrund mangelnder Zeit im Projekt benötigten wir wesentlich mehr Zeit für die Implementierung der Features.
Dieses paradoxe Phänomen tritt häufig in der Softwareentwicklung auf. Entwickler stehen unter Zeitdruck und sehen sich gezwungen, schnelle Lösungen zu implementieren, anstatt sich Zeit zu nehmen, diese zu planen und so zu implementieren, dass die Software nachhaltig erweiterbar ist. Dies führt zu schlechter Codequalität und unzureichender Testabdeckung, die später mehr Zeit und Ressourcen erfordern, um sie zu beheben. Der Versuch, Zeit zu sparen, indem man an der Qualität spart, endet in einem viel längeren Entwicklungszyklus.
Erste Schritte mit cucumber-cpp
Cucumber-cpp bietet die Infrastruktur um Behaviour Driven Development (BDD) mit C++ oder C zu machen. In diesem Beitrag zeige ich wie du deinen Akzeptanztest mit cucumber-cpp implementierst.
Umsetzen wollen wir ein Lauflicht. Einerseits ist es eine genug kleine Aufgabe, anderseits sind Lauflichter einfach cool. So ein Lauflicht hat zwar nicht wirklich viel Verhalten (Behaviour), aber es geht hauptsächlich um die Infrastruktur. Natürlich kann man so ein Lauflicht auch noch beliebig kompliziert machen.