Media Night Apps

This year there is something new on the Media Night, the student fair at our university.

The booklet is dead!

In its past, the Media Night had had a printed booklet with its program and time table in it. The booklet was produced by one of our printing faculties for which the HdM is pretty famous. It was distributed for free during the evening of the fair.

old_bookelt

Long live the booklet!

However, since this semester the good old booklet is history! Instead of it, the Media Night has a brand new app with all projects, students and even an indoor navigation. You can find it in Apple’s App Store and Google’s Play Store.

Most innovative projects

But why only have one app if you could have two? In case you have an Apple iPad or iPhone you can get an app about the 10 most innovative projects of this Media Night. And – TechTrends is one of it!

innovative_app

I hope you enjoy the apps, the projects and the evening.

Best regards from the Media Night,
Thomas

Media Night Winter Semester 2013/2014

opinion-trends-poster

During the last summer semester, two friends of mine and I made a student project called TechTrends. TechTrends was a web application that let you search for articles and trends in the field of computer science. Based on posts from Reddit and Hackernews, it provided an intelligent search on a growing number of articles and blogs.

During this winter semester I continued the project and implemented a sentiment analysis for TechTrends. Based on the existing infrastructure such as our database and our crawler, I add an automated categorization of articles according to their comments on Hackernews and Reddit.

You can find the old and stable version of our project under http://techtrends.mi.hdm-stuttgart.de/. The up-to-date development version is available under http://opiniontrends.mi.hdm-stuttgart.de/.

media_night_ws13

I will present the project at the Media Night at our university next week. It’s open for everybody and for free. It will start around 6 pm, but you can come whenever you want to, there is no schedule. Every project has its own booth, where it is presented and where you can ask question and get in touch with the people behind it.

You can find the program and information about all projects on http://www.hdm-stuttgart.de/medianight.

What? – Media Night Winter 2013
When? – 16th January 2014, from 6 pm to 10 pm
Where? – Hochschule der Medien, Nobelstraße 10, 70569 Stuttgart

Best regards,
Thomas

Bildoptimierung für Webseiten

Am vergangenen Montag (05. August 2013) haben ich die letzte Projektarbeit für dieses Semester abgeschlossen: ein Paper über Bildoptimierung für Webseiten. Zusammen mit Annette Landmesser habe ich das Paper für die Veranstaltung Entwicklung von Rich Media Systemen von Jakob Schröter an der HdM Stuttgart geschrieben.

Ihr findet das Paper direkt von Google Drive hier.

Unsere Präsentation ist hier zu finden.

Beste Grüße,
Thomas Uhrig

TechTrends Final Presentation

Tomorrow morning is the final presentation of our semester project TechTrends. I posted several articles about TechTrends (see here) and I will definetely post one more after tomorrow. But for now, here’s our final presentation.



The presentation shows how we built TechTrends and covers different aspects of the development process. It talks about crawling Hackernews and Reddit, preprocessing and learning a model to query. We also describe problems, further ideas and many more. The presentation will take about 60 to 70 minutes (and everybody is still welcome tomorrow).

The presentation will also be streamed live on http://events.mi.hdm-stuttgart.de.

Best regards,
Thomas Uhrig

TechTrends Presentation

Next Friday (July 26th 2013) the final presentation of TechTrends will take place at our university. The presentation will take about 60 min and will cover topics like architecture, crawling, data storage and front end design. Everybody interested is welcome (please send me an email before). Here’s the whole schedule for next week:

09.00h-10.10h Tech Trends (by Brand, Uhrig, Pernpeintner)
10.15h-11.25h Newsline (by Förder, Golpashin, Wetzel, Keller)
11.45h-12.35h Intellligent Filters for Image Search (by Landmesser, Mussin)
12.40h-13.50h Nao Face Recognition (by Sandrock, Schneider, Müller)
13.55h-14.35h GPU-driven deep CNN (by Schröder)

The presentations will take place in room 056 (Aquarium). I will upload the presentation to my speakerdeck account at the end of next week.

Best regards,
Thomas Uhrig

Image optimization for websites

Optimizing the images of a web page is easy and the best way to speedup the site. On the basis of the famous book “Even Faster Web Sites” by Steve Souders, Annette Landmesser and I made a small presentation for an university course called Development of Rich Media Systems thought by Jakob Schröter. The presentation contains some general patterns and practices for lossy and non-lossy optimization. Enjoy.



I will also write a paper about image optimization for websites for my university course in a couple of weeks. The paper will be in German.

Best regards,
Thomas Uhrig

Paper about XForms and XFormsMM

I have currently finished a paper about XForms (and XFormsMM) for an univerity course called Adaptive User Interfaces. The paper gives a general introduction to XForms as well as to XFormsMM. XFormsMM is a (quite theoretical) approach how multi-modal forms can be build on top of XForms. It’s based on a paper of Mikko Honkala and Mikko Pohja and on the idea of extending XForms with modality-dependent style-sheets.

You can download the paper here. My own presentation about XForms can be found here.

I have used the following resources, which are also a good starting point to get some information about XForms:

To get started and to get an idea of what XForms is, I’ve made a small example using the FormFaces library:

The code is quite simple. First of all, you have to declare some namespaces for XForms itself and for the XML events XForms is using:

After that, you have to include the FormFaces JavaScript library to your code:

Now you can declare an XML data-model to be modified with the form, e.g. from an XML file:

The corresponding XML file looks like this:

Now, you can write XForms controls to operate on this data-model. A simple control can look like this:

So, all together:

Best regards, Thomas Uhrig.

Presentation about XForms

I have currently finished a presentation about XForms and how you can use XForms to create multimodal applications (according to a paper of Mikko Honkala and Mikko Pohja). Here is the Google Doc and here is the PDF file.



I will post my own paper about the topic in a couple of days (or at the end of the term if I’m lazy…).

Best regards, Thomas Uhrig.

Nepomuk – digitales Metronom für Android-Geräte

Im den vergangenen Monaten, habe ich mich im Rahmen eines Pflichtprojekts in meinem Studium, mit der Entwicklung von Software auf der Android-Plattform auseinandergesetzt. Entstanden ist dabei Nepomuk, ein digitales Metronom mit Sprache für die Android-Plattform (ab 1.6).

Die Idee zu diesem Projekt stammte von Michiel Oldenkamp ( www.musithek-oldenkamp.eu ), einem langjährigen und professionellen Musiker. Dieser stellte während seinen Unterrichtsstunden häufiger fest, dass das Ticken eines Metronoms alleine nicht ausreiche. Viel mehr benötigten die Schüler einen ständigen Nebensitzer, zum permanenten Vorzählen des Taktes. Daraus entstand die Idee ein digitales Metronom für ein mobiles Endgerät zu entwickeln, welches neben dem übliche Ticken, über eine Sprachausgabe verfügt.

Nepomuk implementiert insgesamt sieben Sprachen, drei verschiedene Klangschemata und eine Tapper-Funktion zur Berechnung des Tempos. Eine Präsentation als Videoaufzeichnung, ist unter http://events.mi.hdm-stuttgart.de/ zu finden. Außerdem habe ich das Projekt auch auf der diesjährigen Media Night an der HdM Stuttgart vorgestellt.





Das größte Problem bei der Entwicklung war sicherlich die Android-Plattform selbst. Google verfolgt mit dem auf Linux basierenden Betriebssystem und der eigens entwickelten Java VM zwar ehrgeizige Ziele, erreicht diese aber gerade in puncto Real-Time-Audioverarbeitung nicht. Denn was soll ein Metronom unbedingt können? – Richtig, es muss im Takt ticken. Doch was bleibt von einem “Takt”, wenn Oberflächen permanent neu gestartet werden falls man das Handy kippt, wenn der Garbage Collector nach dem Stop-the-World Prinzip vorgeht oder wenn die Audio-API zuviel Latenz aufweist?

Wer sich für die App, bzw. die Probleme und Umsetzung interessiert, kann hier die gesamte Dokumentation und den Quellcode, sowie die eigentliche Anwendung herunterladen.

Dokumentation

Quellcode

Nepomuk (Android App)

Beste Grüße, Thomas Uhrig.

Naiver Bayes Klassifizierer (Präsentation & Python-Code)

Data-Mining, also die Extraktion von Wissen aus sehr großen Datenmengen, ist ein Teilgebiet der künstlichen Intelligenz welches zunehmend an Bedeutung gewinnt. Es findet sich im Umfeld von Softwareentwicklung und Datenbanken wieder, in Erhebungen und Statistiken, in Marketing und Management. Dokumente wie Webseiten, E-Mails oder RSS-Feeds, werden geclustered und klassifiziert.

Der naive Bayes Klassifizierer erlaubt es, Dokumente relativ einfach nach gelernten Regeln zu klassifizieren, also in Gruppen einzuteilen. Anhand vorklassifizierter Dokumente lernt er welche Wörter, mit welcher Wahrscheinlichkeit in welcher Gruppe auftreten. Ein neues Dokument, wird dann anhand der Wahrscheinlichkeiten der einzelnen Wörter, sowie der Wahrscheinlichkeit, dass diese Klasse überhaupt auftritt eingeordnet.

Der naive Bayes Klassifizierer kann zwar keine semantische Aussage über ein Dokument treffen (eine Aussage “das Dokument A ist zu 56,743% Werbung” wäre also weder möglich noch sinnvoll, da sie mehr als subjektiv ist), jedoch kann er relativ sicher die Klasse angeben in die das Dokument am wahrscheinlichsten fällt und es dieser zuordnen. So ist der naive Bayes Klassifizierer etwa das Mittel der Wahl für Spam-Filter in E-Mail-Programmen geworden. Der Nutzer kann den Klassifizierer anlernen und an einigen Stellschrauben drehen. Hat er genügend “Wissen gelernt”, so erfolgt die Einteilung in Spam und Nicht-Spam überzeugend und performant.

Anbei findet ihr eine Präsentation (*.pdf) zum naiven Bayes Klassifizierer, sowie eine kommentierte Implementierung in Python. Die Präsentation stellt das Verfahren noch einmal im Detail vor und gibt auch Einblicke in die Mathematik – nämlich das Bayes-Theorem – hinter der Idee. Die Python-Implementierung setzt einen Bayes Klassifizierer für Dokumente (also allgemein Strings) um. Diese Implementierung lernt anhand einer Reihe von vorgegebenen Dokumenten und teilt ein neues Dokument dann in einer von zwei Klassen ein (siehe Screen-Shot).

Präsentation: naiver_bayes_klassifizierer_präsentation.pdf

Python-Implementierung: naiver_bayes_klassifizierer.zip

Beste Grüße, Thomas Uhrig.

Klassifizierer