bubbles

github Migration

Heute habe ich meine 27 git Repositories auf github umgezogen. Ich habe mich entschlossen sie so einer größeren Öffentlichkeit zugänglich zu machen und als zusätzliches Backup auf meinem Server zu spiegeln.

Seit kurzem hat github seine neue API v3 veröffentlicht. Auf dieser aufbauend habe ich ein PHP Script geschrieben, welches existierende Repositories einfach auf github erstellt und hochläd:

  1. Das Script in das Wurzelverzeichnis aller Repositories ablegen
  2. github Username und Passwort im Skript anpassen
  3. php github.php

Ein paar Features:

  • Es wird automatisch ein entsprechende github Remote im Repository hinzugefügt
  • Alle in der Datei gitweb.projects gelisteten Repositories werden als öffentlich markiert
  • Befindet sich im Repository eine Datei description wird deren Inhalt übernommen
  • Per Exclude-Filter können bestimmte Repositories ausgeschlossen werden

RWTH uC Tetris

Neben der Informatik Vorlesung besuchte ich dieses Semester die Mikrocontroller AG. In dieser freiwilligen Veranstaltung lernten wir den aus der Vorlesung bekannten Mikrocontroller, ATMega zu benutzen.

Zusammen mit meinen Gruppenmitgliedern Annika, Maiwand & Christian bauten wir ein 8×16 LED-Dot Matrix Display auf dem wir Tetris spielen konnten:

Von der Uni haben wir dabei ein Mikrocontroller Board als Leihgabe bekommen. Das ergänzten wir durch das selbst gelayoutete Display und einen umgebautes SNES Gamepad.

Wir haben dabei darauf geachtet durch geschicktes Hardware Layout die Programmierung zu vereinfachen. So haben wir die normalen 10 Blöcken pro Zeile auf 8 reduziert, um unser komplettes Spielfeld in einem  Integer-Array (uint8_t board[16]) speichern zu können. Vieles lies sich so recht realisieren:

  • Stein verschieben: Logical Shift Left/Right (board[line] <<= 1)
  • volle Zeilen erkennen: board[line] == 255

Während der letzten Vorlesung bekamen wir die Gelegenheit das Projekt unseren Kommilitionen und Prof. Roßmann vorzustellen.

Der Sourcecode und die Eagle-Dateien der Displayplatine sind im git verfügbar.


transcode

Ich sitze im Zug nach Hause. Komme von der letzten Vorlesung des 2. Semesters: Informatik. Eigentlich bin ich auf dem Weg in die Semester-”Ferien”, ständen da nicht für den nächsten Monat noch 4 Klausuren in meinem Kalender ;-)

Informatik, Grundlagen des Digitalrechners. Klingt eigentlich recht trocken. Trotzdem ist es klar mein Favorit unter den Fächern dieses Semesters.
Als Ergänzung zur Vorlesung richtete unser Professor einen kleinen Wettbewerb aus.
Mein Beitrag zum Students Englightment Award ist ein Compiler Frontend für den GNU Compiler der Atmel AVRs.

Teil der Vorlesung war die Einführung des Mikrocontrollers ATMega8 von Atmel und dessen Programmierung mit Assembler. Dabei lernten wir zuerst die Schaltungstechnischen Grundlagen und die Minimierung von Schaltnetzen. Anschließend sind wir auf den Aufbau der Zentralen Recheneinheit eingegangen (Steuerwerk, ALU etc..).

transcode kompiliert/assembliert ANSI C und Assembler in Maschinencode und umgekehrt. Dabei wird mit Hilfe von Debugging Informationen ein Bezug zwischen Zeilen im C-Code und den Mnemonics hergestellt. Durch Auswählen von Zeilen werden Bezüge direkt durch Hervorhebungen dargestellt. Für die Darstellung des Maschinencodes lässt sich zwischen binär, dezimal & hexadezimaler Form wählen.

Ziel des Tools ist es die Arbeitsweise des Compilers und dessen Optimierungen tiefer zu verstehen. transcode ist im Rahmen der Vorlesung Grundlagen der Informatik 2 von Prof. Roßmann als Beitrag für den Fellow Student Enlightment Award entstanden.

Zum Tool gehts hier.

Der Sourcecode ist wie immer im git verfügbar.