Browsed by
Kategorie: C++

Little Endian, Big Endian oder generelles Umdrehen von Bytefolgen in C#

Little Endian, Big Endian oder generelles Umdrehen von Bytefolgen in C#

Ab und zu sehnt man sich auch unter C# zur guten alten C++ (naja, C) Zeit zurück, wo man noch beliebig tiefen Zugriff auf alles hatte, beliebig Typen casten konnte und – so lange man ein wenig aufgepasst hat – so wahre Wunder bewirken kann. (Ja, und das konnte nicht jeder.. und nach ein paar Anfangsfehlern ist auch alles gut gelaufen.)

Die Typensicherheit ist in C# etwas schwieriger zu umgehen, jedoch geht auch das, und damit lassen sich dann beispielsweise in hardwarenaher oder Netzwerk-Programmierung Werte dem Zielformat anpassen, z. B. auf Byteebene in der Reihenfolge umdrehen – und dass dann auch für floats et al.

Mehr lesen Mehr lesen

Unclean Code

Unclean Code

Clean Code kennt jeder. Bestimmt hat man schonmal irgendwo davon gehört, davon gelesen, oder evtl. sogar schonmal mit jemandem diskutiert, ob einige der Vorschläge des Clean Code nicht doch so weit gehen, daß schon wieder Cluttered Code entsteht (wenn Funktionen nur noch Dreizeiler sind – man überlege, ob es dann nicht Verwirrung wegen der Anzahl der Funktionen gäbe).

Unclean Code hingegen kennen wir oft bestens.

Nicht notwendigerweise, wenn wir in unseren eigenen Code schauen, aber zumindest, wenn wir in dieses viele Jahre alte Stück Code unseres Vorgängers schauen, und uns das kalte Grauen kommt.

Mehr lesen Mehr lesen

Das Programmierer-Einstellungsinterview: Beispielfragen

Das Programmierer-Einstellungsinterview: Beispielfragen

Es gibt viele verschiedene Sichtweisen bei einem Interview.

Die beste Ausgangslage hat hier derjenige, der sich flexibel in die verschiedenen Standpunkte der Partner hineinversetzen kann. So merkt er schneller, was der Sinn einer Frage ist, welche Antwort die gewünschte sein kann, und ob hinter bestimmten Fragen oder Antworten evtl. Dinge stehen, die auf einen späteren größeren Konflikt hindeuten könnten.

Hier will ich ein paar Beispiele für primär technische Fragen geben, anhand derer bis zu einem gewissen Grade festgestellt werden kann, ob der Kandidat fachlich etwas taugt.

Mehr lesen Mehr lesen

Codekicker vs Stackoverflow

Codekicker vs Stackoverflow

Früher gab es einmal Codeproject und Codeguru mit seinem großen Forum.

Fast vergessen scheinen diese Zeiten zu sein, denn.. wer Rang und Namen hat, treibt sich bei Stackoverflow herum. Codekicker ist nun angetreten, um Stackoverflow den ersten Rang im deutschsprachigen Raum abzunehmen.

Somit gibt es nun ein Portal mehr, wo man als Programmierer seine Fragen absetzen kann und evtl. bereits nach kurzer Zeit eine Antwort hat.

Mehr lesen Mehr lesen

Manifest-Problem nach Sicherheitsupdate bei Visual C++ 2005/2008

Manifest-Problem nach Sicherheitsupdate bei Visual C++ 2005/2008

Es sind in den letzten Tagen neue Sicherheitsupdates für die Runtimes für Visual Studio 2005 sowie 2008 (jeweils betreffend die C++ Runtime) erschienen.

Jetzt heißt es wieder: aufpassen, welche Runtime wo installiert ist. Entwicklerechner werden typischerweise mit dem Update des Visual Studios auch die neue Version der Runtime erhalten (Release und Debug Versionen). Auf anderen Rechnern muß die neue Version ebenfalls installiert werden, meistens passiert dies bereits durch das Windows Update, wenn nicht, findet man das 2005er Redistributable Package für SP1 (mit Sicherheitsupdate) sowie eine passende Seite für Visual C++ 2008 mit Verweis auf Downloadseiten.

Mehr lesen Mehr lesen

Spaß mit stl::shared_ptr auf ein c-array in C++ (Memory Tester)

Spaß mit stl::shared_ptr auf ein c-array in C++ (Memory Tester)

Ich hatte schon einmal das Problem, eine Reihe von Klassen in einen STL Container einfügen zu wollen, wobei die Klassen jeweils sehr große Datenmengen (ein Array) enthalten und ich dabei über die Kopiererei der STL Container gestolpert bin (die dann entsprechend lange dauert).

Das letzte Mal hatte ich dann noch selber einen Container gebastelt, diesmal wollte ich schön und sauber mit der STL (habe gerade keine Boost installiert) entwickeln.

Mehr lesen Mehr lesen