Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

297 lines (295 sloc) 13.014 kb
---
layout: default
title: XhochY
---
<div id="intro">
<div class="container">
<div class="row" id="name">
<div class="col-lg-2 col-lg-offset-1">
<img src="/images/avatar.jpg" alt="Avatar" />
</div>
<div class="col-lg-6">
<h2>Uwe L. Korn</h2>
</div>
</div>
<div class="row">
<div class="col-lg-2 col-lg-offset-1">
<h5>ABOUT</h5>
</div>
<div class="col-lg-6">
I'm a (final year) computer science student with strong interest in data science.
Currently I'm studying at the University of Bristol in the MSc program <em>"Advanced Computing - Data Mining, High Performance Computing and Machine Learning"</em>
Asides my studies, I devote some time to open source projects like Tomahawk Player and spend occasionally a weekend building hacks around music.
</div>
</div>
</div>
</div>
<div class="container desc">
<div class="row">
<div class="col-lg-7 col-lg-offset-2">
<p>
<h2><em>Current Projects and Participations</em></h2>
<small>These are the projects where I actively work on at the moment.</small>
</p>
</div>
</div>
</div>
<div class="container desc">
<div class="row">
<div class="col-lg-2 col-lg-offset-1">
<p>
<a href="http://www.tomahawk-player.org/">
<t>Tomahawk Player</t>
</a>
<br />
<small><em>since December 2012</em></small>
</p>
</div>
<div class="col-lg-6">
<p>
Tomahawk decouples the name of the song from the source it was shared from - and fulfills the request using all of your available sources.
</p>
<p>
My major contributions to Tomahawk include the extension of the networking backend to improve connection handling between two player instances and the addition of IPv6 support.
Furthermore I added the <em>Trending</em> section which gathers the Charts among your peers as well as determines which Playlists and Artists are trending.
</p>
<p>
Currently I devote my Tomahawk time to improve the functionality of the resolvers, Tomahawk's plugin system which gives unified acces to music services.
Recent advances here are the support of a unified API of transforming an music service URL into more useful information like the content of a playlist it represents.
</p>
<p>
<em>Used techniques:&nbsp;</em>
<span class="label label-primary">C++</span>
<span class="label label-primary">Qt</span>
<span class="label label-primary">JavaScript</span>
<span class="label label-primary">CMake</span>
</p>
</div>
</div>
</div>
<div class="container desc">
<div class="row">
<div class="col-lg-2 col-lg-offset-1">
<p>
<a href="https://www.gentoo.org/">
<t>Gentoo</t>
</a>
<br />
<small><em>since spring 2011</em></small>
</p>
</div>
<div class="col-lg-6">
<p>
As Gentoo is the operating system on my laptop, I contribute patches and packages to the Qt, KDE and Science overlay for software that had a recent release or a change in the build system in the upstream source tree.
</p>
<p>
My major work here was adjusting packages for the support of building them with Qt4 and/or Qt5.
This did not only involve adjusting the packages in Gentoo itself but also meant that upstream sources needed to be patched as many packages were needed in parallel in Qt4 and Qt5 installed but upstream had sometimes not addressed this problem.
</p>
<p>
<em>Used techniques:&nbsp;</em>
<span class="label label-primary">ebuild</span>
<span class="label label-primary">bash</span>
<span class="label label-primary">patch/diff</span>
<span class="label label-primary">CMake</span>
</p>
</div>
</div>
</div>
<div class="container desc">
<div class="row">
<div class="col-lg-2 col-lg-offset-1">
<p>
<a href="https://github.com/xhochy/node-tomahawkjs"><t>node-tomahawkjs</t></a>,
<a href="https://github.com/xhochy/node-tomahk"><t>node-tomahk</t></a>,
<a href="https://github.com/xhochy/hubot-tomahk"><t>hubot-tomahk</t></a>
<br />
<small><em>since July 2013</em></small>
</p>
</div>
<div class="col-lg-6">
<p>
As an addition to the Tomahawk ecosystem, I created some Node.JS packages which build upon technologies which were born out of the player.
This includes (in the order of the title): a wrapper library to use the content/service resolvers from Tomahawk unmodified in Node, a wrapper to the toma.hk API and a hubot plugin that responds with the metadata to music links it detects in a chat.
</p>
<p>
<em>Used techniques:&nbsp;</em>
<span class="label label-primary">JavaScript</span>
<span class="label label-primary">CoffeeScript</span>
<span class="label label-primary">Hubot</span>
<span class="label label-primary">Node.JS</span>
</p>
</div>
</div>
</div>
<div class="container desc">
<div class="row">
<div class="col-lg-2 col-lg-offset-1">
<p>
<a href="http://www.videolan.org/"><t>VLC / VideoLAN</t></a>,
<a href="https://libav.org/"><t>libav</t></a>,
<a href="http://phonon.kde.org/"><t>Phonon(-VLC)</t></a>
<br />
<small><em>since March 2014</em></small>
</p>
</div>
<div class="col-lg-6">
<p>
As another direction started from my work on Tomahawk, some of my time went into fixing various problems in our multimedia stack.
In Tomahawk, we use Phonon as our playback library with VLC as the prefferred backend.
In VLC, most of the codecs are provided through libav/ffmpeg.
</p>
<p>
The most impactful contribution in this stack was the improvement of audio-only playback encapsulated in the <t>rtmp://</t> protocol.
This included fixing the detection of the number of media streams present in an rtmp stream that did not send metatdata.
Furthermore we had to ensure that all possible backends support the same URL schema so we could pass this information seamlessly through all layers.
(This was required for Beats Music support in Tomahawk)
</p>
<p>
<em>Used techniques:&nbsp;</em>
<span class="label label-primary">C</span>
<span class="label label-primary">C++</span>
<span class="label label-primary">Wireshark / tcpdump</span>
<span class="label label-primary">rtmp</span>
</p>
</div>
</div>
</div>
<div class="container desc">
<div class="col-lg-7 col-lg-offset-2">
<p>
<h2><em>Small Projects and Weekend Hacks</em></h2>
<small>
These projects were built in a short period of time, e.g. a HackDay or a University course and may not be developed anymore thereafter.
Nevertheless I will try to keep them running and everything uploaded for documentation.
</small>
</p>
</div>
</div>
<div class="container desc">
<div class="row">
<div class="col-lg-2 col-lg-offset-1">
<p>
<!-- TODO: Add link -->
<t>A Book of Music</t>
<br />
<small>
<em>
MusicHackDay London,<br />
December 2013
</em>
</small>
</p>
</div>
<div class="col-lg-6">
<p>
Last summer I read relaxed on my couch the biography of Blur bassist Alex James.
Despite being a good book, I really wanted to smell the cheese he consumes and produces and the music Blur made over time.
</p>
<p>
For reading I really like to use my eBook reader as it is more handy and the lighting is better than any lamp at night.
As it does not has a headphone jack or a speaker, it cannot play music files.
Even if it had, it would really prefer to use my quality speakers instead of a crappy built-in speaker.
Neither I want to be wired with my reader to speaker nor do I want to walk to my computer to lookup a track and play it.
</p>
<p>
To solve this problem, A Book of Music parses an ebook and inserts links to its webservice to start the playback directly from your eBook reader but tracks will be played on your favorite machine which is connected to high quality speakers.
As an input source for eBooks I'm using Wikipedia and preindexed all sites that describe songs to have a knowledge which links point to music.
</p>
<p>
<em>Used techniques:&nbsp;</em>
<span class="label label-primary">JavaScript</span>
<span class="label label-primary">CoffeeScript</span>
<span class="label label-primary">Wikipedia</span>
<span class="label label-primary">ePUB</span>
</p>
</div>
</div>
</div>
<div class="container desc">
<div class="row">
<div class="col-lg-2 col-lg-offset-1">
<p>
<!-- TODO: Add link -->
<t>TomaWall</t>
<br />
<small>
<em>
MusicHackDay Paris,<br />
April 2013
</em>
</small>
</p>
</div>
<div class="col-lg-6">
<p>
Just one week after the introduction of Twitter Music, MHD Paris took place.
On of the major complaints I heard from my peers about it was the missing feature to just play the tracks that appear in your timeline, even if the are from Soundcloud, Deezer or other services not included in the initial Twitter Music Release.
This hack simply solves this problem by parsing your Timeline and providing all posted tracks in a toma.hk playlist.
(This hack lead later on to the creation of the UrlLookup capability in Tomahawk resolvers)
</p>
<p>
<em>Used techniques:&nbsp;</em>
<span class="label label-primary">JavaScript</span>
<span class="label label-primary">CoffeeScript</span>
<span class="label label-primary">Twitter</span>
<span class="label label-primary">Node.JS</span>
<span class="label label-primary">heroku</span>
</p>
</div>
</div>
</div>
<div class="container desc">
<div class="row">
<div class="col-lg-2 col-lg-offset-1">
<p>
<!-- TODO: Add link -->
<t>Oh my Youth!</t>
<br />
<small>
<em>
MusicHackDay London,<br />
November 2012
</em>
</small>
</p>
</div>
<div class="col-lg-6">
<p>
As my first experience on a MusicHackDay I did one of the typical hacks that people do at their first event like this: an automatic playlist generator.
It takes as input two of your favorite artist when your were really young and optionally a release year.
With this information it searches the MusicBrainz Database to find a compilation that features both artists and was released in the specified year.
Altough this might not be the music you still hear today, childhood memories will definitely come back!
</p>
<p>
<em>Used techniques:&nbsp;</em>
<span class="label label-primary">JavaScript</span>
<span class="label label-primary">Spotify</span>
<span class="label label-primary">MusicBrainz</span>
</p>
</div>
</div>
</div>
<!--
TODO:
* songride
* fillyourshelves
* node-ktoblzcheck-webapi
-->
<div class="container desc">
<div class="col-lg-7 col-lg-offset-2">
<p>
<h2><em>Previous and retired Projects</em></h2>
<small>These are the projects where I do not work on anymore or that are completely retired.</small>
</p>
</div>
</div>
<!--
TODO:
* Schoorbs
* rainpress
* ldapom
* myhadinet
* logolyze
* scrobber-ng
-->
Jump to Line
Something went wrong with that request. Please try again.