Posts mit dem Label Programmierung werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Programmierung werden angezeigt. Alle Posts anzeigen

Sonntag, 27. April 2014

Brau Dein Bier!

Ludum Dare hat wieder zugeschlagen!

Nachdem ich schon lange nicht mehr an Ludum Dare teilgenommen habe, habe ich am Freitag spontan entschlossen, wieder teilzunehmen. Mit Drei anderen Teilnehmen hat, jeder für sich, ein Spiel programmiert.

Das Thema hieß "Beneath The Surface" und entstanden ist ein Spiel, in welchen man einem Hefeteilchen helfen muss, Zucker in Alkohol zu verwandeln. Da wir uns darauf geeinigt haben, unsere Spiele mit 3000 enden zu lassen, heißt mein Spiel jetzt Beer 3000.

Die anderen Spiele sind noch in Entwicklung. Ich bin schon gespannt auf:

  • Shark 3000
  • Zombie 3000 und
  • Anti Minecraft 3000

Link zum Spiel

Samstag, 1. März 2014

Bitcoin Client nach wie vor in Arbeit

Vor 2 1/2 Wochen habe ich angekündigt einen Bitcoin Client zu programmieren. Da das schon eine Weile her ist, will ich kein kurzes Update geben.

Was wurde bereits Programmiert?

Mittlerweile wurde das Protokoll soweit implementiert, sodass man alle Pakete erstellen kann, um sich zu einem Node zu verbinden. Technisch gesehen: Alle Pakete, die für den Handshake benötigt werden. Jedoch müssen die selben Pakete auch gelesen werden können und das fehlt in der Implementierung noch. Das hört sich nach wenig ist, jedoch muss man dazu sämtliche Grundlagen programmieren, beispielsweise die Umwandlung in die verschiedenen Zahlen, Zeichenketten oder IP Adresse im Protokoll. Jedes Paket hat zudem gewisse Header, was zu diesem Zeitpunkt schon implementiert werden muss.

Wird auch getestet?

Das Ganze implementiere ich mittels TDD (=Test Driven Development). TDD heißt, bevor ich etwas implementiere, wird zunächst der Test geschrieben. Dieser muss erst fehlschlagen, da es noch nicht implementiert wurde (der Test wird damit getestet). Danach wird die Unterfunktion programmiert und der Test gestartet. Schlägt der Test fehl, dann stimmt etwas entweder im Test oder in der Implementierung nicht. Das macht die Entwicklung langsamer, da mehr programmiert werden muss aber dafür deutlich sicherer.

Ein anderer Vorteil von TDD ist, dass man nach einer Optimierung testen kann, ob noch alles funktioniert. Schleicht sich irgendwo ein Fehler ein und ein Unterprogramm liefert falsche Ergebnisse, dann kann man durch Erweiterung der Tests sicherstellen, dass das nie wieder passiert.

Wie lange dauerts denn jetzt noch?

Vor Ende April schaffe ich einen Podcast nicht mehr. Anfang bis Mitte April kann ich es aber schaffen, einen Blogeintrag zu erstellen. Ein Podcast bedeutet mehr Aufwand, und deshalb benötige ich dafür mehr Zeit.

Was kann die erste Version

In der Version soll lediglich die Aktivität des Bitcoins gesnifft werden. Das bedeutet, die erste Version soll sich mit einem Node verbinden, den Handshake erfolgreich durchführen und anschließend die empfangenen Pakete soweit es geht anzeigen.

Also in kurz

  • Fertige Programmierung des Handshakes: Anfang April
  • Blogeintrag zur Version: Anfang bis Mitte April
  • Podcast: Wahrscheinlich Ende April

Happy Bitcoining! Und lasst euch nicht vom Gox stressen!

Dienstag, 11. Februar 2014

Bitcoin selber programmieren

Heute habe ich beschlossen, einen Bitcoin Client selbst zu programmieren. Zusätzlich will ich daraus einen Podcast erstellen, wobei jeder Teilabschnitt als eine Episode zusammengefasst wird.

Welche Programmiersprache?

Zunächst bin ich zwischen C, C++ und Python geschwankt, habe mich jedoch letztendlich für Python entschieden. Warum nicht C oder C++? Weil ich ein Weichei bin! Die Aufgabe ist nicht einfach und obwohl ich der Meinung bin, dass ich das Bitcoin Protokoll relativ gut verstanden habe, reicht es noch lange nicht um dafür zu programmieren. Das Protokoll werde ich erst durch das Programmieren im Detail verstehen. Dadurch muss ich jedoch auch in meiner Programmiersprache möglichst flexibel sein.

Zusätzlich ist Python einfacher für die Zuschauer zu verstehen und nachzumachen.

Welche Lizenz?

Das habe ich nicht entgültig entschieden, auf jeden Fall OpenSource. Die Videos natürlich CC. Ehrensache!

Wen soll denn der Pfusch überhaupt interessieren??

Fresse!

Was kommt als erstes?

Zuerst werde ich versuchen, mich auf das Testnetzwerk zu verbinden und einfach nur mitlesen. Weitere Details sehe ich danach.

Wann geht's los?

Sobald wie möglich.