Projects

A quick summary of what I'm working on, what is already working and a little bit about what I'm trying to get done.

Web-Apps

Brocode  Brocode favicon

Front-End to my Brocode-API (see below).
Lesson learned: If you stick with the examples, Angular.js is insanely easy to develop with, combined with sufficient features.

Live (2.0) Brocode

Cats  Cats favicon

A digital version of our "which cat is in the house" installation at home.
Lesson learned: That 3-way-binding with Firebase is just jaw-dropping easy. Go check them out!

Live (2.1) Cats

FavoriteMovieList  FavoriteMovieList favicon

Compare movies against each other to find out which are your favorite movies.


in Development FML

Contributions

OpenSource is just awesome. I can hack the app that I use on a daily basis and in the end other people might even profit from my changes.
Thats a world I wan't to live in and I do! Sweet :)

Signal  Signal favicon

Wearable Notifications
PR: #3010$11.02USD

QuickContact in GroupMembersDialog
PR: #3033$10.60USD

Wearable reply
PR: #3244$9.02USD


Lesson learned: So great to even be rewared with Bitcoins. Thanks to OpenWhipserSystems very own Bithub.

Signal-cli

README clarifications
PR: #47


Lesson learned: Feels good to give at least something back, even if it is only README clarifications.

npm-package-json-lint

absolute version dependencies
PR: #39


Lesson learned: Great example for an OSS project getting feature richer by contributions.

NPM

crunch-css

Generates common css file for all passed html-pages and rewrites them to include that css-file (via usemin blocks). Greatly reduces the css footprint of bootstrap-based homepages.
Lesson learned: Node.js and npm are a great combination to create, distribute and use small modules of software.

1.0.1 crunch-css

gitviz

Generates information about the object database of a given git-repository. Most likely only usefull for teaching purposes.
Lesson learned: Once you go async, nothing behaves like you naively thought it would. Combined with global state, you are in race condition hell. Get out: use promises consistently.

0.8.0 gitviz

kodiremote

A command-line tool to remote control your kodi installation. Included in my i3-config, I'm able to quickly pause movies from my laptop.
Lesson learned: Tested Crockfords style of writing JS with this project. Didn't improve the projects code wildly, but might have been to small of a project to see big improvements.

0.1.1 kodiremote

git-objectids

Get all object-ids from a git repository.
Lesson learned: Feels good to create a small reuseable module.

1.0.0 git-objectids

3D-Printing

Entered the 3D-Printer movement. Go have a look HERE.

Miscellaneous

Stuff that doesn't fit into any category ...

Dotfiles

After moving all my computers to Linux I felt the need to have the same look and feel on all the systems. I googled „dotfiles” and found a whole universe around them on github. After choosing one and adding some features (Zero Prerequisites, Automatic update, etc.) I published my own dotfiles repo.
Lesson learned: Keeping all your config-files in sync really makes it a lot easier/faster and more comfortable to use your systems. It also gives you a great headstart after a fresh OS installation.

Evolving Dotfiles

Websites

Kastell-Apotheke  Kastell-Apotheke favicon

Redid the website in Jeykll. Got sick of Wordpress, constant security holes, updates break settings, nasty stuff. Just not stable enough in the long run.
Lesson learned: Jekyll isn't a silver-bullet either. Doing sophisticated html, no Markdown, Jekyll looses a lot of its charm.

Live (3.1) Kastell-Apotheke

SolarGbR  SolarGbR favicon

Tiny little website to show statistics about how much energy is produced. Second try with the Twitter-Bootstrap CSS-Framework. Still pretty happy with how easy it is to get nice and responsive designs.
Lesson learned: The generic grid is quite itchy when your content isn't fitting coincidentally.

Live SolarGbR

hARTware

Website for a small site project of mine. First landing page I ever did. Also first shot at handling a hero banner image, so focus part stays visible.
Lesson learned: Harder then expected to boil information about a project down to the bare minimum (e.g. three product features).

Live(1.4) hARTware

Kastell-Apotheke  Kastell-Apotheke favicon

A small website for a local pharmacy. Nothing fancy, responsive and partly search engine optimized. First Wordpress-powered website. Running smooth. Host-Europe is a great hoster.
Lesson learned: Wordpress desperately needs multi-language in the core. Update regularly!

Replaced (2.0) Kastell-Apotheke

AFK - Filmkreis  AFK favicon

Rewrite the homepage of the student's cinema at KIT. Making it faster and responsive. Stepping down from Bootstrap to the lightweight Gridly.
Lesson learned: New techniques, especially for naviagtion menus. Additionally I now can appreciate Bootstrap even more.

In Development AFK-Filmkreis

Herrenmode Silberzahn

Another small website for a local fashion store. One more time build with Twitter-Bootstrap CSS-Framework. Still pretty happy with how easy it is to get nice and responsive designs.
Lesson learned: Using "npm run" as a task-runner is a two-sided medal too.

Archived Herrenmode Silberzahn

Android

Nothing made it into the Play-Store, yet.
Wasn't able to release something, always losing myself in details.
For now I want to focus on homepages turning into web-apps progressively. Therefore no native apps are planned in the near future.

APIs

Brocode

Read-only list of all Brocode-Articles. Hopefully CBS won't sue me for this :P
First try to write a RESTful-API with the Node.js+MongoDB-combination.
Lesson learned: Using a NoSQL-database the first time felt great. Even though I love normalized databases, this schema-less thing felt relieving. Additionally the combination of Node.js + Express makes it very easy to just write it off.

Live (2.0) api.christophhaefner.de/brocode/random/

Pebble 

Had fun with my Pebble developing watch-faces and apps. Due to the recent announcements, all further activities on Pebble development are stopped.

Toothbrushtimer

Basically a digital version of the little sandglass I had when I was a kid to ensure I'm toothbrushing the proper amount of time.
Lesson learned: Once you go JavaScript you never want to go back :/

App Released (2.2) Toothbrushtimer

Contact Me

A digital businesscard using Pebble and QR-Code.
Lesson learned: Barely useful to exchange contact information with techies, totally useless with "normal" people.

Watchface Released (2.0) Contact Me

BroCode

Pebble-Watchapp to view BroCode-Articles. A Twitter-Bot delivering the same content as tweets is already online.
Follow him: @BroCodeBot

App / Watchface Cancelled