24 Feb 2019
⌨
Da meinte doch tatsächlich mal ein
Java-Programmierer,
ich solle keinen Code nutzen, der auf den
Calendar -
Klassen basiert und
SimpleDateFormat
einsetzt, denn diese sind nicht Thread-sicher.
Ich kann das ja immer noch nicht glauben, dass Java in seinem Aufbau so defekt
ist, dass es Kalender-Rechnungen in globalen Variablen vermurxt und dann
Fehler oder Abstürze produziert, wenn unterschiedliche Instanzen in Threads
benutzt werden.
… doch offenbar melden mehrere Seiten solche Probleme.
» Ganzen Beitrag lesen
23 Feb 2019
⌨
In einer Zeit, als die alten Götter herrschten,
schrie das Land, das Kriegsherrn in Aufruhr versetzten, nach …
Exceptions, weil weder
Hercules noch
Xena
ein Konzept zur strukturierten Fehlerbehandlung vorweisen konnten.
C++ wurde erst 1998
vollständig standardisiert und die anderen Sprachen
… gab es die eigentlich schon?
Doch einer der ältesten Titanen, nämlich
C, zeigte sich
unbeeindruckt, da er schon lange über ein Technik verfügte, in “Ausnahmefällen”
quer durch den Code zu springen.
» Ganzen Beitrag lesen
22 Feb 2019
⌨
Ein paar wichtige Informationen bekommt jeder genetisch mitvererbt,
wenn er das Licht der Welt erblickt.
Das ist bei Prozessen ganz ähnlich wie bei Menschen.
Die “Umgebung”
(“Environment”) beinhaltet einige Datenwerte, die der
Elternprozess seinen Kindern “aufdrücken” kann, und wenn er sich nicht
weiter darum kümmert bekommen die Kinder das gleiche, was er selbst
auf den Weg mitbekommen hat … die Umgebung wird also vererbt.
» Ganzen Beitrag lesen
21 Feb 2019
⌨
Hätte man “Pipes”
in der Programmierung als “Pipeline” bezeichnet, würden vielleicht mehrere
Entwickler den Namen kennen und die Technik einsetzen.
Linux bzw. Unix -
Fans wissen mit dem Begriff gut umzugehen, doch auf Seiten
der Windows
Gemeinde fehlt dieses Wissen leider nur all zu oft.
Dabei sind Pipes eine schöne klassische Form Daten zwischen Eltern- und
Kindprozessen auszutauschen.
» Ganzen Beitrag lesen
20 Feb 2019
⌨
WBEM
, oder auch
Web-Based Enterprise Management
ist ein Ansatz um Administration und Fernwartung in großen Netzwerken
(Unternehmen) zu standardisieren.
Microsoft preschte schon vor den 2000ern mit seiner eigenen
COM-Implementierung
davon vor, nannte es WMI und deshalb haben wir heute zu vielen
Systemkonfigurationen primär nur über die WMI-Schnittstellen Zugang.
» Ganzen Beitrag lesen
19 Feb 2019
⌨
Verwaltete Sprachen wie
Java oder jene des
dotNet Frameworks definieren
einen Standard wie Funktionen ausgestalten sein müssen.
Damit kann das Framework seine eigenen Funktions-Aufrufbäume genau
zurückverfolgen.
Das merkt man vor allem bei
Exception, die ganz genau
wissen woher sie kamen.
C und C++ kennen einen solchen
Standard für den Aufbau des Callstacks
nicht, weil im Zuge der Optimierung Funktionen eingebettet (Inlining)
werden können oder andere interne Calling-Conventions benutzt werden dürfen.
Will man aber dennoch “seine Herkunft” zur Laufzeit ermitteln muss man selbst
Hand anlegen.
» Ganzen Beitrag lesen
18 Feb 2019
💬
Wäre es nicht so Deppen-einfach, dass sogar ich es hinbekomme, würde ich nicht
darüber schreiben:
Also: Wie kann man Vanille-Eiscreme ohne Kohlenhydrate zubereiten, damit
man in seiner Low-Carb Diät
auch etwas zum Naschen hat?
» Ganzen Beitrag lesen
17 Feb 2019
⌨
Während Windows 9x nur
ANSI-kodierte Byte-Strings kannte, unterstützte
NT 4 einige
Unicode-Bereiche in der Form
von UTF-16. Die Windows API ist daher
auf NT-Systemen großteils doppelt implementiert.
Pessimistisch könnte man auch sagen: Sie ist gespalten.
Wer mit “alten” ANSI-Bytes-Strings arbeitet darf hinten ein großes “A”
anhängen, und wer Unicode nutzen will, lässt seine APIs und Strukturen
auf ein großes “W” für Wide-Character enden.
Die meisten kümmern sich jedoch darum nicht sondern nutzen die API
ohne “A” oder “W” Suffix und verlassen sich darauf, dass die Windows-Header
automatisch die richtige Form wählen.
» Ganzen Beitrag lesen
16 Feb 2019
⌨
So wie sich Sommer und Winter abwechseln, so kämpften Microsoft und die
OpenSource Programmierer jahrelang um “das Beste” Berechtigungskonzept.
DOS und
Windows 3.x und 9x waren rechtelos
und damit den Unix-Derivaten
schwer unterlegen. Mit
Windows NT 3 und NT 4
legte man ACLs
(Access Control Lists) über FAT32
und taufte es NTFS, was flexibler als
die alten POSIX-Rechte war, die nur zwischen einem Eigentümer (Owner),
einer Gruppe (Group) und allem anderen (Other) unterschied.
Etwas später zogen Linux und
BSD nach
unten bauten einen erweiterten
POSIX
Entwurf ein, der diese Zugriffslisten (ACLs) auch auf ihrer Seite möglich
machte.
Und letztendlich versuchte man in beiden Welten durch diverse Tricks die
begehrten “Administrativen Privilegien” stückweise den Anwendungsprogrammen
bereitzustellen, ohne dass man gleich alle Macht dem Standard-Benutzer-Account
vor die Füße warf.
Um niemanden zu beleidigen sagen wir deshalb: Es steht nun unentschieden.
» Ganzen Beitrag lesen
15 Feb 2019
⌨
In der letzten Episode unserer Daily-Soap
“Gute APIs, Schlechte APIS”
sahen Sie:
Aufruhr in der Editoren-Straße! Großmutter Textbox zeigte erste Anzeichen
für Demenz, als ihr Schwiegersohn Updatetimer sie nach der aktuellen
Cursorposition fragte. Während dessen plagen Familienvater Streamwriter
schwere Gewissensbisse, nachdem er heimlich mit seiner Jugendfreundin UTF-16
fremd gegangen war, während seine angetraute UTF-8 zu Hause saß und den kleinen
ANSI-Codec stillte. Parallel kam es zu einer Schlägerei zwischen dem
pubertierenden Jungen ToolBar, der mit seinem Zimmergenossen MenuBar um seine
ID-Zuordnung im Streit lag. Und während alle ihren Problemen nachgehen,
beobachtet Professor Statemanager distanziert und dennoch mit Sorge, wie sich
Grußmutter Textbox’ Gesundheitszustand verändert.
» Ganzen Beitrag lesen
14 Feb 2019
⌨
Ach die liebe ZLIB …
nichts kommt ohne sie aus und immer noch hat sie den Speichermanager mit im
Schlepptau um auch noch unter DOS
mit 64 KByte auszukommen.
Die deflate
Kompressionsmethode
zählt zu den ältesten und am weit verbreitesten und ist die Basis des
GZIP und
ZIP Formats.
Da sie als OpenSource
zur Verfügung gestellt wird, wird sie auch intern in vielen Produkten
benutzt um Datenmengen zu verkleinern.
Doch im Laufe der Zeit wurden neuere Algorithmen entwickelt, die durchaus
mit der alten ZLIB in Konkurrenz treten.
» Ganzen Beitrag lesen
13 Feb 2019
💻
Fortsetzung zu gestern: Apropos Video!
Das Video-Tool Virtual-DUB zählte
für über 10 Jahre zu einem meist genutzten Tools am PC.
Schließlich wurde jede Woche entweder etwas im Fernsehen mit der der
TV-Karte aufgenommen, oder ein
DVD-Inhalt auf eine CD herunter konvertiert.
Und das tat ich mit dem OpenSource Video-Editierungs- und -Konvertierungs-Tool
Virtual DUB (www.virtualdub.org.
» Ganzen Beitrag lesen
12 Feb 2019
🔧
Nachdem der Millennium-Bug
(wie erwartet) überhaupt nichts angerichtet hatte, war eine der ersten
Investitionen im neuen Jahrtausend eine
TV-Karte.
Ich hatte bei einem Bekannten mit großen Augen verfolgt, wie er “am Computer”
das terrestrisch ausgestrahlte Fernsehprogramm in einem Fenster unter
Windows 98 sehen konnte,
und wusste: “Das will ich auch haben!”
» Ganzen Beitrag lesen
11 Feb 2019
🔧 💻
In der Programmierung zieht sich ein bestimmter Faden durch meine persönliche
Entwicklung, die die Art der Nutzung der Sprachen entscheidend geprägt hat.
Und dabei handelt es sich um “langsamere” Systeme.
In Jugendtagen lag dies stets an fehlenden Geldmitteln, dass das Low-Cost
System eingekauft wurde und die High-End Gamer-Maschine gar nicht erst
beachtet wurde.
Dieses Situation hat sich bis heute nicht geändert, obwohl es heute einen
taktischen und keinen finanzieller Hintergrund dafür gibt.
Denn die Devise lautet: “guten” Code zu produzieren, der auch auf
langsameren und älteren Systemen vernünftig ausführbar sein soll.
» Ganzen Beitrag lesen
10 Feb 2019
⌨
Ja, es hatten damals viele gedacht, dass zu den 2
Pokemon Editionen
Schwarz und Weiß
wie in den Generationen zuvor etwas später eine dritte erscheinen würde. Und
da lag die Spekulation auf den Namen “Grau” natürlich nahe.
Doch Nintendo bzw. Game Freak
machte allen Strich durch die Rechnung und brachte sowohl Schwarz als auch
Weiß in einer
2. Edition
heraus und brach somit im Jahr 2012 ein Schema, welches sie seit 1998
konsequent verfolgt hatten.
Das Umrechnen von Farbpixel in graue oder im Extremfall in schwarz-weiße hat
auch heute noch Relevanz, wenn es um das sparen von Speicherplatz geht, oder
um Bereiche, wo Farben irrelevant sind (z.B. in bestimmten Szenarien der
Bilderkennung).
» Ganzen Beitrag lesen