Das hier ist mein privates/ privater Blog. Oben im Menü findest du noch weitere Seiten. Ich schreibe über verschiedene Sachen, die mir passieren, die ich mache, erlebe oder was andere interessieren könnte. Mehr zu mir findest du hier.

Veröffentlicht unter Allgemein | 1 Kommentar

100 Jahre nach der Titanic

Heute vor 100 Jahren sank die Titanic auf ihrer Jungfernfahrt von Southampton nach New York nach der Kollision mit einem Eisberg. Sie war damals das größte Schiff der Welt und galt als unsinkbar und doch war sie es nicht.

Die Titanic in Southampton

Die Titanic in Southampton

Bei ihrem Untergang verloren 1517 der 2227 Passagiere im eiskalten Atlantik ihr Leben, auch weil zu wenig Rettungsboote an Bord waren und die vorhandenen nur unzureichend gefüllt wurden. Heute liegt die Titanic in knapp 3700m Tiefe.

Das Wrack der Titanic

Das Wrack der Titanic

Bildquellen: Courtesy of NOAA/Institute for Exploration/University of Rhode Island (NOAA/IFE/URI) und Unknown via http://commons.wikimedia.org/

Veröffentlicht unter Allgemein, Die Welt, Geschichte, News | Verschlagwortet mit , , | 2 Kommentare

UTC vs GMT vs London Local Time (vs CET)

Ich hab mich gerade gefragt, ob die GMT auch Sommerzeit mit einbezieht und wie denn die UTC dazu steht. Nach einiger Recherche konnte ich etwas Licht in das Dunkel bringen. Wen es also interessiert, hier die harten Fakten.

GMT (Greenwich Mean Time) ist der alte Zeitstandard, an dem alles Zeitzonen ausgerichtet wurden. GTM wurde als primäre Referenz für das Britische Empire eingeführt und wurde schnell zum allgemeinen Standard. Der BBC World Service arbeitet nach GMT. Nun kam es jedoch, dass die Sonne und die Erde nicht so regelmäßig sind und die Zeit von Zeit zu Zeit angeglichen werden muss. Dabei geht es nicht um Sommer- und Winterzeit, sondern Schaltsekunden.

GMT ist unabhängig von Sommer und Winterzeit.

UTC (Coordinated Universal Time) wurde am 1. Januar 1972 offizieller Standard und richtet sich, wie GMT, nach der Zeit bei Null Grad Longitudinal, was den Nullmeridian bezeichnet, der durch den Londoner Stadtteil Greenwich geht. Im Gegensatz zu GMT gibt es jedoch alle paar Jahre Schaltsekunden, um der verlangsamenden Erdrotation zu folgen. Da die Abweichung zu GTM sehr gering ist, wird die UTC teilweise auch als GMT bezeichnet (z.B. vom BBC).

UTC ist auch der Standard für alle Zeiten im Internet und im internationalen Handel.

London Local time ist die Zeit, welche in London gilt. Das heißt im Winter UTC und im Sommer die BST (Britisch Summer Time), welche UTC+01:00 entspricht.

CET (Central European Time) entspricht UTC+01:00 und gilt in Mitteleuropa in Winter. CET hat keine Sommerzeit.

Unix time richtet sich an der UTC aus und wird in Sekunden seit Donnerstag, 1. Januar 1970 angegeben. Die Umrechnung in UTC ist nicht trivial, da Schaltjahre, Schaltsekunden und eventuell die Sommerzeit mit eingerechnet werden müssen.

Also nun noch der ultimative Tipp, wenn man Zeiten ganz klar ausdrücken will. Zeit in Lokaler Zeit angeben oder auf UTC verweisen. Für die Umrechnung empfehle ich Wolfram Alpha.

Veröffentlicht unter Allgemein, Betriebssysteme, Gedanken über das Leben, HowTo, Internet | Verschlagwortet mit , , , , , , , , | Hinterlasse einen Kommentar

The singing VHDL Board

Nach 6 Monaten warten ist es so weit! Es lebt.

Vor etwas mehr als 6 Monaten habe ich mit einem Kommilitonen angefangen an einem Musikplayer in VHDL zu arbeiten. Dadurch, dass wir im letzten Semester kaum Zeit gefunden haben, hat sich die Entwicklung etwas verzögert. Nichtsdestotrotz waren wir unheimlich stolz, als wir zum ersten Mal etwas hörten, was eine Melodie sein könnte und nach ein paar Bitoperationen auch richtige Musik hörten.

Was ist denn nun sooooo toll an dem Player? Naja, einerseits ist alles in VHDL implementiert, das heißt, dass alles in Hardware läuft und wir uns wirklich um jedes Bit kümmern müssen. Andererseits haben wir wirklich alles selber implementieren müssen und konnten nicht auf ein Betriebssystem oder Programmbibliotheken zurückgreifen.

Das Ganze haben wir auf einem Spartan 3 FPGA Board aufgebaut, an das wir über eine Schnittstelle einen SD/MMC Slot und einen DAC mit einem Kopfhörerausgang angeschlossen haben. Die Musik ist liegt als unkomprimiertes WAV/RIFF auf der Karte.

Der Player besteht aus vier Hauptkomponenten. Als erstes gibt es einen MMC/SD Kartenleser, welcher das SPI Protokoll zur Kommunikation mit der Karte implementiert. Dazu mussten wir uns durch die Dokumentation der Karten arbeiten und die verschiedenen Schritte zur Initialisierung der Karte, dem Senden von Befehlen und Empfangen von Datenblöcken implementieren. Da die Karte immer 512 Byte Blöcke auf einmal liefert und wir diesen nicht auf dem FPGA Chip speichern können (das sind immerhin 512*8 = 4096 Bit!) nutzen wir eine Blockram Fifo, die auf dem Board verbaut ist. Die Ausgangsseite der Fifo ist an eine weitere Komponente angeschlossen, die auch wieder per (dieses Mal sehr einfachen) SPI mit dem DAC kommuniziert. Der DAC wandelt dann eine digitale 12 Bit Zahl, die von der Karte durch die Fifo kam, in eine analoge Spannung um. Und das ist dann das, was der Kopfhörer oder Lautsprecher ausgibt.

Besonders interessant fand ich bei der Entwicklung den MMC Kartenleser. Dabei hat uns besonders das Datenblatt von Samsung geholfen, dass du hier finden kannst. Wenn wir das Projekt abgeschlossen haben, werden wir den Sourcecode sicher veröffentlichen. Wer also auch einen SD/MMC Kartenleser in VHDL bauen will, kann sich dann inspirieren lassen.

Das Programm ist noch nciht ganz fertig und wir arbeiten gerade noch an der Tastatursteuerung per PS/3 Tastatur. Stay tuned.

Veröffentlicht unter Computermagie, Universität/HPI, VHDL | Verschlagwortet mit , , , , , , , , , , | Hinterlasse einen Kommentar

Shopping tour Optimizer

Wie schon im letzten Jahr habe ich mit einigen Kommilitonen am InformatiCup teilgenommen. Dieses Mal ging es darum ein Programm zu schreiben, dass eine Einkaufstour optimiert. Gegeben ist eine Menge von Läden, in denen man Produkte kaufen kann und eine Einkaufsliste. Ziel ist es, möglichst günstig die Einkaufsliste abzuarbeiten. Problem ist dabei, dass es nicht alle Produkte überall gibt, die Preise für gleiche Produkte verschieden sind und die Läden an verschiedenen Orten liegen, sodass Fahrtkosten entstehen.

Die Aufgabe gibt es hier.

Da wir in diesem Jahr ziemlich viel mit der Uni beschäftigt waren, haben wir das Projekt praktisch in drei Wochen vor der Abgabe schreiben müssen. Aber dafür ist es doch ganz cool geworden.

Veröffentlicht unter Allgemein, Computer, Projekte, Python, Qt, Universität/HPI | Verschlagwortet mit , , , , , , , , , , | Hinterlasse einen Kommentar

Tagshot und andere Projekte

Lang ist’s her, dass ich hier mal was veröffentlicht habe. Dafür habe ich jetzt ein paar umso coolere Projekte, die ich gerne vorstellen möchte.

Im letzten Semester habe ich an drei größeren Projekten gearbeitet. Darunter ein Spiel, eine Webbasiertes Fotoverwaltungstool und ein Programm zum Optimieren von Einkaufswegen. In diesem Artikel möchte ich das Fotoverwaltungstool vorstellen, was treffenderweise Tagshot heißt.

Das Programm habe ich mit vier Kommilitonen im Rahmen eines Studienseminars erstellt und soll dabei helfen, die große Anzahl an Photos, die am HPI aufgenommen werden, zu verwalten. Verwalten heißt dabei suchen, taggen, bewerten, herunterladen, löschen und auch nur einfach ansehen um gute Bilder zu finden.

Wir haben das Tool bei uns am HPI bereits in Benutzung und haben etwa 10.000 Bilder in der Datenbank. Dabei ist beim Suchen keine Verzögerung spürbar.

Ein wenig zur Technik. Das Backend ist in Ruby on Rails geschrieben und sucht nach Bildern in einem bestimmten Verzeichnis. Die Metadaten der Bilder werden in eine Datenbank geschrieben (bei uns postgreSQL) und Thumbnails erzeugt. Das Frontend ist eine einzige Seite, auf der mit JavaScript die Website dynamisch aufgebaut wird. Auch die gesamte Navigation findet auf einer Seite statt. Als Grundframework für das Frontend haben wir Backbone.js benutzt.

Coole Features von Tagshot sind:

  • Taggen und bewerten von Bildern
  • Bilder nach Bewertung und Tags durchsuchen. Dabei können Boolesche Operatoren benutzt werden
  • Schnellvorschau
  • Unendliches Scrollen und dynamisches Nachladen von Bildern
  • Tastaturnavigation für schnelles Bearbeiten
  • Vergrößern/ Verkleinern der Ansicht
  • Detailansicht
  • Verschiedene Auflösungen herunterlade
  • Bearbeiten von mehreren Bildern gleichzeitig
  • Getestet in Webkit und Firefox

Das Projektrepo (Git) und die Projektorganisation (Redmine) sind zur Zeit noch am HPI gehostet, werden aber bald auf https://github.com/tagshot/tagshot umziehen. Das Projekt ist immer noch in der Entwicklung und einige Features fehlen noch (drehen von Bildern…), aber Tagshot ist trotzdem schon gut benutzbar und schnell.

<update>Die Quellen sind online auf https://github.com/tagshot/tagshot</update>

Auf Youtube gibt es kleines Demovideo, dass die wichtigsten Grundfunktionen zeigt.

Veröffentlicht unter Browser, Computermagie, jQuery und JavaScript, Projekte, Universität/HPI, Videos | Verschlagwortet mit , , , , , , , , , , , | Hinterlasse einen Kommentar

eine Domain

Es ist soweit. Ich habe mir endlich eine anständige Domain geleistet. Also ab jetzt ist mein Blog auf domoritz.de. Yaaay.

Ach, und ich habe einiges an caching in den vergangenen Wochen eingebaut, sodass die Seite wesentlich schneller laden sollte.

Veröffentlicht unter Allgemein, Website, Wordpress | Verschlagwortet mit , , , , , , | Hinterlasse einen Kommentar

RHoK

Am letzten Wochenende war wieder der RHoK und ich war dieses Mal in Berlin mit dabei. So viel zum allgemeinen möchte ich gar nicht sagen, da im Prinzip alles gewittert wurde.

some people at RHoK

some people at RHoK

Ich war beim Team “Climate Goggles” mit dabei. Wir haben mit Django eine Webapp geschrieben, die es Nichtwissenschaftlern ermöglichen soll Aussagen über den Klimawandel zu verifizieren. Dazu werden zu einer Aussage passende Artikel gesucht, die nach wissenschaftlichen Gesichtspunkten vertrauenswürdig sind.

climate goggles

climate goggles

<update> Ich habe weitergemacht und das Project fortgeführt. Code hier: https://github.com/domoritz/validitychecker </update>

Veröffentlicht unter Erlebnisse, Projekte, Python | Verschlagwortet mit , , , , , | Hinterlasse einen Kommentar

Google Developer Day 2011 in…

Berlin!

Letzten Samstag war ich im ICC beim Google Developer Day 2011. Der GDD in Berlin war der größte weltweit und es waren angeblich mehr als 2000 Leute da.

Meine persönliche Agenda sah so aus, dass ich erst zur gemeinsamen Keynote gegangen bin auf der es nach der Begrüßung um Android, HTML5 und Google + ging.

vor der Keynote

Danach bin ich zum Vortrag über die Google Places Api gegangen, welcher von Mano Marks gehalten wurde. Es ging hauptsächlich um die Anwendung der API, aber auch ein wenig um die Technik hinter Google places.

Danach wollte ich mir unbedingt den Vortrag zu offline HTML ansehen. Der Vortrag war mit Ido Green und die Folien gibt es hier. Neben allgemeinen Infos gab’s vor allem praktische Tipps und Code.

Nach dem Essen bin ich zum Vortrag über Machine Learning mit einem Professor von der TU Berlin gegangen. Der Vortrag war allgemein relativ einfach gehalten und befasste sich mit allgemeinen Problemen, Support Vector Machines und Brain Computer Interfacing.

Anschließend ging’s für mich zum Vortrag mit dem vielversprechenden Titel “These Aren’t the Sites You’re Looking For: Modern HTML5 Web Apps”. Es ging aber weniger um schlechte Seiten als darum, wie man Seiten gut macht. Folien gibt’s hier.

Modern Web Apps

Modern Web Apps

Von den nächsten Vorträgen fand ich die Präsentation zu Dart am vielversprechendsten. Die Folien gibt’s hier. Was für mich am interessantesten über Dart war, ist, dass nicht versucht wird, dass Rad neu zu erfinden sondern auf extrem Bestehendes aufzubauen. Das zeigt sich schon an der Inspirationsliste:

  • Object model inspired by Smalltalk
  • Compilation strategy inspired by Self
  • Optional types inspired by Strongtalk
  • Isolates design inspired by Erlang
  • Syntax inspired by JavaScript & C

Nach dem Dartvortrag habe ich mit mir einen zum Thema “V8 Performance Tuning Tricks” angesehen, in dem Daniel Clifford, der “Technical Lead and Manager of the V8 development team” einige Lowlevel JavaScript Tricks vorgestellt hat. In dem Fall waren die Beispiele jedoch etwas klein und da nenne ich das “premature optimization”. Aber gut.

Und dann zum krönenden Abschluss habe ich mir zwei Vorträge angesehen. Einen zum Google EMEA Programm und dann noch zu einem Vortrag über die Geschwindigkeit von HTML Videos gegenüber Flash Videos.

Joa, und das war’s dann auch. Langer Tag, viel gesehen. War interessant aber für mich auf einem etwas zu oberflächlichen Level. Die meisten Sachen kann man auch aus den Dokus lesen. Aber um einen Überblick zu bekommen und so die Dinge im Hinterkopf zu behalten war es auf jeden Fall klasse. Danke Google.

Veröffentlicht unter Browser, Computer, Google, HowTo, jQuery und JavaScript | Verschlagwortet mit , , , , , , , , , , | Hinterlasse einen Kommentar