About David Bolton

David Bolton begann schon mit dem Programmieren, als er noch zur Schule ging und bevor es überhaupt PCs gab. Es gefiel ihm so sehr, dass er seinen Abschluss in Informatik machte. Er beschäftigt sich seit fast 35 Jahren mit dem Thema Programmieren – sowohl arbeitsbedingt als auch in seiner Freizeit. In dieser Zeit arbeitete er für Price Waterhouse, British Aerospace, MicroProse (wo Sid Maier Civilization kreiert hat), in einer gescheiterten Dotcom (HomeDirectory.com) und bei Morgan Stanley. Mehr als acht Jahre lange programmierte er Spiele, mehr als 12 Jahre Finanz-Software in London. Sein Leben beschreibt er als eine permanente Lernkurve. Er verfügt über umfangreiche Programmiererfahrung in 6502,Z80 und 68000 Assembler, Basic, Pascal, C, C++, C#, Java, PHP, SQL, Fortran, JavaScript und lernt zurzeit R. Außerdem entwickelt er heute mobile Apps in Xamarin (C#) und schreibt für Dice. Er lebt in New York (in Lincolnshire, England, nicht in den USA).

Author Archive | David Bolton

5 XML Alternativen für 2018

XML Alternativen

Die Extensible Markup Language (XML) – eine erweiterbare Auszeichnungssprache für die Codierung von Dokumenten – debütierte bereits vor zwei Jahrzehnten. Und obwohl es XML während dieser Zeit zu beachtlichem Erfolg gebracht hat, können sie viele Programmierer (zu denen auch ich mich zähle) nicht ausstehen.

XML war als rückwärtskompatibel zu der Standard Generalized Markup Language (SGML) beabsichtigt. Der Austausch strukturierter Daten zwischen Programmen wird somit deutlich schwerer, als eigentlich nötig. Und obwohl XML mit der Permisse entworfen wurde, sowohl für Menschen wie auch für Maschinen lesbar zu sein, ist sie letztendlich für Software viel einfacher verständlich, als für Menschen. Dass Sie zudem in einer unverhältnismäßigen Art und Weise Daten anhäuft, macht da Ganze nur noch schlimmer. (Obendrein ist die Bearbeitung super knifflig.)

Read more →

Comments { 0 }

C im Browser ausführen

C im Browser

Eigentlich ist es eher ungewöhnlich, C (oder C++) Programme im Browser auszuführen. Browser führen nur JavaScript oder Dart aus (im Chrome-Browser jedenfalls, oder mit JavaScript). Mehrere Jahre lang gab es Flash, bis es in Browsern verschwand, nachdem Mobiltelefone explizit die Ausführung von nativen Flash-Anwendungen blockierten.
Dennoch kann man immer noch Flash-Apps für Mobilgeräte entwickeln und zwar mit Adobe Air.

Das Nichtausführen von Flash auf Handys hat das Programm also auch in den Browsern getötet. Eigentlich schade, denn man konnte in den Browsern wirklich elegante User-Interfaces kodieren. Der Blumenhändler Interflora hatte 2002/2003 ein elegantes Flash UI – es sah eher aus, wie eine Windows-Oberfläche, als wie eine Website.
Ein weiteres Opfer dieser Ära waren die Java Applets, die in Browsern ausgeführt wurden. Obwohl Java zur gleichen Zeit wie das Web entstand, litt es unter mangelnder Sicherheit. Heute kann nur JavaScript in Browsern ausgeführt werden.

Read more →

Comments { 0 }

Entdecken Sie die Vorteile von MicroPython

Auch wenn Python für allgemeine Zwecke eine sehr nützliche Programmiersprache sein kann, gibt es einige Bereiche, in denen sie ganz bestimmt nicht die erste Wahl ist. Wenn Sie zu Beispiel komplexe Spiele entwickeln möchten, würden Sie doch wohl eher C++ bevorzugen. Auch in der Welt der Embedded-Software dominiert C.

MicroPython ist auf den “Embedded-Markt” ausgerichtet; die Sprache eignet sich für Micro-Controller und integrierte Systeme. Als solche ist sie eine ziemlich gute Implementierung von Python 3.4, die zwar nicht ganz vollständig, aber durchaus nutzbar ist. Zugelassen ist sie unter der liberalen MIT-Lizenz: Sie können sie also benutzen, wie Sie möchten! Schauen wir uns das mal genauer an.

Read more →

Comments { 0 }

Vier Tipps, wie Sie Software-Bugs den Garaus machen

Software Bugs

Obwohl Menschen schon seit Jahrzehnten Software entwickeln, ist und bleibt es ein langsamer und mühsamer Prozess, in den sich oft Fehler einschleichen. Trotz all der Mühe ist Software immer noch anfällig für Bugs. (Es gibt natürlich auch Ausnahmen: Zum Beispiel die Software für das Space-Shuttle-Programm: Einige Versionen davon hatte nur einen Fehler in 420.000 Zeilen Code.)

Mit anderen Worten: Egal, wie gut Ihr Coding-Team ist, irgendwann muss man immer “debuggen”. Hier finden Sie ein paar Tipps, wie Sie Bugs vernichten können:

Read more →

Comments { 0 }

Fünf Fähigkeiten, die jeder Superheld der mobilen Entwicklung haben sollte

Superheld
Ein Programmierer zu sein, wurde viel komplizierter, seit der Zeit als es die ersten PCs gab. Davor brauchte man nur einen Compiler und einen Editor, um zu entwickeln und Computerprogramme zu schreiben. Dann kam Windows und alles hat sich verändert: Sie mussten viele weitere Tools kennen, einschließlich Build-Systeme, Datenbank-Clients und -Server, Versionskontrollsysteme, Grafikeditoren und andere. Und Sie mussten die ereignisgesteuerte Programmierung beherrschen.
Um aber ein Superheld der mobilen Entwicklung zu sein, brauchen Sie noch mehr. In diesem Artikel gehe ich auf fünf spezifische Fähigkeiten ein, die Sie benötigen.

Read more →

Comments { 0 }

Was ist Elliptische Kurven-Kryptographie?

Elliptische Kurven-Kryptographie

Elliptische Kurven-Kryptographie ist ein Satz Algorithmen für die Ver- und Entschlüsselung von Daten und den Austausch kryptographischer Schlüssel. Aber warum wird sie elliptisch genannt? Das Wort stamm von Ellipse, einer mathematischen Kurve auf einer Ebene, die zwei Kristallisationspunkte so umgibt, dass die Summe der Abstände zu den beiden Kristallisationspunkten von jedem Punkte der Kurve aus gleich ist. Planeten in der Umlaufbahn round the Sun bewegen sich in einer elliptischen Umlaufbahn, nicht in einer runden.

Nun ist es zwar einfach, die Länge eines Teilbogens in einem Kreis zu berechnen, aber es ist eine ziemlich komplexe Aufgabe, einen Bogen auf einer Ellipse zu berechnen. Ich werde sie mit mathematischen Erklärungen verschonen. Kryptographie ist ganz allgemein ein Gebiet, in dem höhere Algebra-Kenntnisse erforderlich sind, um sie wirklich zu verstehen, aber man kann sie auch verwenden, ohne wirklich tiefgehende Kenntnisse zu haben. Read more →

Comments { 0 }

Braucht man einen Abschluss für eine Arbeit als Entwickler?

IT certificate - Abschluss

Die landläufige Meinung ist, dass man einen Universitätsabschluss braucht, um eine Stelle in der Technologiebranche zu bekommen. So ist es schon seit mindestens den siebziger Jahren. Damals war es nicht wichtig, was für einen Abschluss man hatte, und es brauchte auch kein besonders guter Abschluss zu sein. Man konnte mit nur einem geisteswissenschaftlichen Abschluss ein Entwickler werden, und viele schafften das auch. Read more →

Comments { 0 }

Einen schnelleren Pokerblatt-Auswerter schreiben

Fünf Karten zu nehmen und herauszufinden, welches Pokerblatt das ist, ist ein interessantes Problem. Ich bin nicht der erste, der das versucht. Ich habe das schon einmal in C# und einmal in C++ versucht. Dieses Mal möchte ich zwei Dinge erreichen. Als erstes möchte ich eine Auswertung erhalten, was das Blatt enthält (Paare, Drillinge, Straße usw.) und als zweites möchte ich dem Blatt eine Punktzahl zuweisen, um es mit einem anderen Blatt vergleichen zu können und zu sehen, welches das beste ist. Zwei Blätter könnten beide als Drillinge ausgewertet werden (drei Karten mit gleichem Rang), aber drei Asse schlagen drei Damen.

Die möglichen Blätter sind unten vom niedrigsten zum höchsten aufgeführt. Jede Karte hat einen Wert (von Ass bis König, aber ein Ass kann in einer Straße A-2-3-4-5 nur 1 zählen, ist aber ansonsten höher als ein König) und eine Farbe (Herz, Kreuz, Karo, Pik).  Read more →

Comments { 0 }

Erste Schritte mit „Metal“

metal - Dice Tech

Gemäß einer Antwort auf Quora von Paul Ledak ist die Verarbeitungsgeschwindigkeit eines iPhone 6 im Vergleich zum Apollo-Steuerungscomputer mehr als zehn Größenordnungen größer – ein iPhone 6 ist 120 Millionen mal schneller!

Aber das ist vielleicht noch untertrieben, denn der Apple A8-Chip im iPhone 6 hat auch einen Grafikprozessor (GPU), der für Grafiken oder allgemeine Berechnungen, wie z. B. die Erzeugung von Bitcoins (Mining) verwendet werden kann. Laut Anandtech handelt es sich dabei um einen PowerVR GX6450 und ein iPhone 6 umfasst vier GPU-Kerne.

Apple hat ein Framework mit Namen „Metal“ (wie in „Pedal to the Metal“) entwickelt, mit dem Sie den Grafikprozessor sowohl für grafische als auch für die Berechnung paralleler Operationen nutzen können. Wenn Sie sich mit OpenCL, CUDA oder Microsoft C++ AMP auskennen, haben Sie eine Vorstellung davon. Read more →

Comments { 0 }

Wie steht es um Go im Jahr 2016?

Ein Blick auf die Programmiersprache go.

Die Programmiersprache Go, alias GoLang, wird im November diesen Jahres sieben – und es hat schon so einiges geleistet. Mal abgesehen von Google, ist Docker die wohl bekannteste Open-Source-Software für die Bereitstellung von Containern – powered by Go. Auf Wikipedia finden Sie eine detaillierte Liste von hochkarätigen Usern: Wikipedia-Seite zur Programmiersprache Go.

Read more →

Comments { 0 }