Lorenz Hübschle-Schneider

I'm a newly-fledged computer scientist with strong interests in algorithm engineering. Currently I'm a PhD student at Karlsruhe Institute of Technology (KIT), after completing my master's studies at the University of Leicester earlier in 2014. Apart from my studies, I like to contribute to some great open source projects like Glowing Bear.

Current Projects and Participations

These are the projects I actively work on at the moment.

Glowing Bear
since December 2013

Glowing Bear strives to provide a modern IRC experience, right in the browser, wherever you are. Some people would probably call this "cloud", but as I'll detail below, that's not entirely true.

What Glowing Bear isn't:
  • A standalone IRC client (it's a WeeChat relay client)
  • Hosted IRC

What it is and does:
  • An IRC frontend running in your browser, talking directly to your WeeChat instance via WebSockets
  • An Android and Firefox OS app that provides a better native experience on your smart phone or tablet
  • Supports fully TLS-encrypted communication with your server
  • Fully IPv6 capable, of course

While it provides most of what you would expect from an IRC client in the cloud, it is not: Glowing Bear connects to your WeeChat instance (most likely running on a machine that you control). Glowing Bear is pure client-side JavaScript, connecting directly to your server, and your server only. This means that you are in control 100% of the way.

I joined the Glowing Bear team in December of 2013, a time in which I was looking for a browser-based IRC frontend. At the time, I was running irssi in a terminal multiplexer on a shell server, ssh'ing in there every time I needed it. This seems to be a fairly common approach, yet it felt unnecessarily clunky and the mobile experience was horrible. So I went out to look for a replacement. My friend xhochy suggested IRCCloud, which is pretty neat, but I preferred a self-hosted, open source solution and didn't feel like paying 4€ a month for IRC. There turned out to be quite a few projects in that direction – most including their own IRC client, some building on top of existing clients –, but Glowing Bear is the one I liked best. It's simple, quickly set up, easy to use and understand, and worked pretty well already, although a bit rough around the edges.

Shortly after, I began contributing bits and pieces, like dynamic loading of lines, hierarchical buffer view, performance improvements, a per-buffer input history, or an improved mobile experience. Since then, I have become the leading contributor. You can try it here if you want to give it a spin. I maintain the native app with Apache Cordova to leverage the full power of native apps like notifications. It is available for Android on the Google Play Store and for Firefox OS on the Firefox Marketplace.

Techniques used:  JavaScript AngularJS WebSockets Apache Cordova

Past Projects

These are some projects I'm no longer working on

Compression Methods for Labelled Trees
June — September 2014, early 2015

In my MSc project at the University of Leicester, I studied compression methods for labelled trees (e.g. XML files) with my supervisor, Prof. Rajeev Raman. The project studies one approach based on top trees in particular. I implemented, analysed and improved upon said technique by showing tighter bounds on existing methods, as well as devising heuristics to improve compression and output representations for use without decompression.

Rajeev Raman and me have since improved upon the work in my thesis and submitted it as a paper to the Symposium of Experimental Algorithms 2015. I will present it in Paris on 29 June 2015. A technical report is due to appear shortly.

Techniques used:  C++11 Scala XML Data compression

Route planning for Electric Vehicles
December 2012—June 2013, June 2014

For my BSc thesis at the Group Algorithms 1 at Karlsruhe Institute of Technology, I developed a novel approach for route planning for electric vehicles. Using real-world map, elevation, and energy consumption data, it can compute optimal routes within seconds. In contrast to other algorithms, the method I proposed is fully geared towards the requirements of electric vehicles. It considers not only travel time and energy consumption (battery drain), but also the speed driven along each road. Therefore, it computes a comprehensive set of routes, from which the driver can pick the one that best suits their requirements.

I have since further optimised the implementation in collaboration with my advisors, and added another very efficient heuristic method to further reduce running times to sub-second values at minimal cost to the solutions' quality. We published the results in ATMOS 2014, available online here.

You can find the full thesis here.

Techniques used:  C++11 Multi-Label-Correcting Search Real-World Road Networks SRTM3 Elevation Data PHEM Energy Consumption Data

Small Projects and Short Hacks

These projects are small or were built in a short period of time, e.g. a weekend project, and may not be developed anymore thereafter. Nevertheless I will try to keep them running and everything uploaded for documentation. I should probably add a whole lot of stuff that I currently don't remember to this list

Started March 2013

Ever needed a VPN right now? With instavpn, you'll be connected in just a minute! Using DigitalOcean and sshuttle, instavpn provides you with a dirt cheap working VPN within sixty seconds. It'll even tear down the host once you're done, so you only pay for what you use. That's only $0.007 an hour with DigitalOcean's current pricing, or $0.21 per month if you use it for an hour every day!

So what does it do? Using the DigitalOcean API, it creates a new droplet in your account. DigitalOcean promise that this will take at most 55 seconds. Then, it connects you to your new machine using sshuttle, a zero-setup transparent proxy server that forwards over SSH. That accounts for the remaining 5 seconds. Once you're done, simply Ctrl+C out of it, and it'll destroy your droplet so you won't pay any more than necessary. There's even a self-destruct mechanism should you lose the connection!

Techniques used:  Python 3 DigitalOcean sshuttle

Started March 2013

A small script to teach hubot message relaying. Suppose I want to highlight someone in a group chat (Campfire, IRC, XMPP, and several dozen other chat protocols are supported), but they're not online. Hubot-tell teaches hubot, GitHub's open source life embetterment robot, to do exactly that. It even supports multiple recipients and different command aliases.

Techniques used:  CoffeeScript node.js hubot


PGP: 2452 F4DF D3FC 902C



Based on the Kelvin Theme by BLACKTIE.CO & xhochy