Schlagwort-Archive: Programmieren

Vorher, nachher, H5P

Der H5P Content Type Hub steht in den Startlöchern, und selbst einen „Inhaltstyp“ zu erstellen, ist gar nicht so kompliziert. Dokumentation zum Einstieg gibt existiert, und auch ein Video. Ich habe mir den freien Quelltext von Juxtapose geschnappt, und mit ein wenig Drumherum von mir gibt es bereits ein funktionieren neuen Inhaltstyp für H5P. Ich werde noch Fehler ausmerzen, den Code noch aufräumen und die Benutzeroberfläche etwas anpassen, und dann erwartet euch so etwas hier …

Wer es gar nicht mehr erwarten kann, darf sich natürlich wie gewohnt auch bereits bei github bedienen

Mein Abschlussprojekt zum Maschinenlernen … Los geht’s!

Nachdem ich Ende letzten Jahres zwei Wochen Urlaub dafür genutzt hatte, um Zeit für die „Machine Learning Engineer“-Fortbildung bei Udacity zu investieren, ging es danach deutlich langsamer voran. Es war schwieriger als gedacht, ein Thema für mein Abschlussprojekt zu finden. Ich hatte ja auch hier etwas dazu geschrieben. Datensätze gibt es im Netz genug, aber ich wollte an etwas arbeiten, was auch jemand gebrauchen könnte.

Tatsächlich hätte ich für OpenSNP an einem Modell arbeiten können, um anhand von Genomdaten die Herkunft einer Person zu bestimmen, aber dafür kenne ich mich dann mit Biologie doch zu wenig aus. Danach hatte ich Kontakt zu jemandem, der die Problemlösungskompetenz von Studierenden untersucht und auch zahlreiche Daten dazu gesammelt hatte. Seinen Artikel habe ich dank Sci-Hub … per Zufall gefunden. Die Daten lagen allerdings unter Verschluss. Closed Science. Ich sollte erst einmal meinen Lebenslauf schicken, vermutlich um zu prüfen, ob da ein böser Konkurrenzforscher seine Arbeit „stehlen“ wolle. Habe ich verschickt, aber danach nie wieder etwas gehört und auch nicht nachgebohrt. So ein Umfeld meide ich doch lieber … Was soll’s.

Analysesoftware auf einem Laptop

Da der Gebührenzähler unerbittlich tickt, habe ich mich dazu entschlossen, doch einfach ein Wald-und-Wiesen-Thema zu nehmen. Ich habe ein paar Datensätze zu Videospielen gefunden und werde versuchen, damit etwas auf die Beine zu stellen. Vielleicht ist es möglich, darauf aufbauend ein Model zu erstellen, mit dem man anhand von Kritiker- und Kundenbewertungen und ein paar anderen Daten die Verkaufszahlen vorhersagen kann. Der von mir eingereichte Vorschlag ist jedenfalls gerade angenommen worden, und ich kann nun loslegen.

Als Nebenprodukt ist außerdem noch eine weitere Projektidee für H5P (und darüber hinaus) entstanden, die allerdings den Rahmen eines Abschlussprojektes sprengen würde. Werde ich im Nachgang angehen. Offen. Mehr dazu gibt es in Kürze.

Make H5P fuzzy and fluffy!

Just before we were able to eventually say Goodbye to ugly 2016, I visited the 33rd Chaos Communication Congress in Hamburg. One evening, I chatted with a physicist. He asked me whether it was possible to use something like fuzzy answers with clozes in H5P.  It wasn’t. But indeed, this might come in handy. Thanks for sharing the idea! Such a feature would be pretty neat in order to forgive typos. It could also be useful for accepting different spellings of names without explicitly stating all possible alternatives.

Well, what do you think I did after I returned home? 😉 As always, I cannot promise a date for a release. The guys over at Joubel are busy working on other cool new stuff for H5P and will have to find some time first for checking my contribution. Anyway, if you’re impatient („Patience is for wimps!„), you can get the code from github. Please note that you will also need the new library H5P.TextUtilities that I created to source some functions that may also be relevant for other interactivities.

Tech Talk

I simply used two common string metrics: (Damerau-)Levenshtein distance and Jaro(-Winkler) distance.

The Levenshtein distance uses the number of operations necessary to transform one string into the other. Operations are deleting, inserting or exchanging a character. Damerau added swapping a character to the pool of operations. Consequently, the few operations you need for a transformation, the more similar the strings are.

The Jaro distance on the other hand „simply“ represents the similarity in percent. Winkler refined the algorithm a little bit for particular cases. I also found a paper from 2012 that suggests a more general improvement. Well, I need something to explore in the future, right? 😉

The users of H5P can, of course, use the options to tweak both algorithms a little bit. It’s hard to say in advance what the maximum number of operations for Damerau-Levenshtein or the minimum threshold for Jaro-Winkler should be. Also, the options might change. I just noticed that a discussion started whether an on/off switch might be more user friendly. Gotta go!

A Babel fish for H5P?

It’s so sad. The Babel fish still has not been found on earth. If we want to present videos to a wider audience, we have to rely on dubbing, voice-over, or captions. Unfortunately, the Interactive Video Library of H5P doesn’t support the latter yet. Someone gave it a shot late last year, but it seems it never got implemented.

Well, YouTube offers to augment videos with captions. Also, H5P supports to use videos directly from YouTube. I took the liberty of digging into some undocumented features of YouTube’s API, and I wrote some code. As a result, I have something that seems to be working. Start the video and see for yourself…

UPDATE: YouTube changed its API. My implementation won’t work anymore.

Make it cute and cuddly!

As I mentioned on Twitter already: We want it to be cute and cuddly, right?

First of all, I am not sure if it runs smoothly on all the major browsers and platforms. Maybe you could have a look on your system and report your findings in the comments below?

Secondly, the video has to be started before you can choose a language (if there are captions available). The same is true for choosing the video quality by the way, and that’s why both icons are ghosted before playing. A workaround would be to start the video automatically, wait for a certain signal from YouTube, and then stop playing and jump back to the start. This shouldn’t take too much time, but it might be visible. I still have to check that.

Furthermore, we slowly but surely might run into trouble with all the icons down in the player’s toolbar. It’s becoming quite crowded, although here on this blog the content width is so small that H5P switches to its alternate mode anyway. It hides options behind the button with the three dots. What do you think? Is it user friendly enough? Should the alternate version become the default? Just leave me a comment!

Oh, and if you happen to come across any other bugs, please just let me know!