Home

Welcome to

www.phk.name

Deutsche Version

About me

My name is Philipp Keck. I am 32 years old, live in Zurich, Switzerland, and work as a Software Engineer at .
Since I was twelve years old I have been interested in software and how it is developed. During my software engineering degree at the University of Stuttgart, I was a member of the , a working student at and an intern at Google Munich. In my spare time, I take photos and play the piano/keys.

Skills

    • C++
    • Python
    • Java
    • JEE
    • Android
    • TensorFlow
    • JavaFX
    • JSF
    • C# + .NET
    • Rust
    • R
    • JS
    • React
    • Redux
    • HTML
    • CSS
    • jQuery
    • PHP
    • MySQL
    • Photoshop
    • Illustrator
    • Inkscape

Projects

X10Receiver.NET v2

History

Everything began with a Medion® computer, my first computer, which shipped with this remote control. The only application that could be controlled with this remote was PowerCinema 2.0 and in no way I could imagine using a fullscreen application to listen to my music, just to make the remote work.
Hence, I learned Visual Basic 6 to write an application that allowed me to control Winamp with my remote. This project became soon the first version of X10Receiver. Since all plugins were hard-coded into the application (so they weren't actual plugins), I decided to entirely rewrite it, based on VB.NET and with a proper plugin architecture - and the result was called X10Receiver.NET. In order to improve efficiency and usability, I seperated the signal processing background unit from the user interface, which could therefore be a lot more extensive. To my knowledge, today's X10Receiver.NET v2 (written in C#) is the only remote control software to provide setup wizards that are so highly simplified and automated, that the average user can just click through it without the need to change anything. However, this does not limit the wide range of possibilities the program offers due to the ability to work with complex, user defined definitions, which do not require coding skills.

Status

All planned and favored features have been implemented and have been stable for several years. Another remake (v3) is not being planned, only bugfixes and and new plugin or feature requests will be implemented. Based on user feedback, the usability improves continiously. An Android app can be used to replace the physical remote control, and for advanced interactive functions.

Manni

Manni (German pronunciation sounds like money) is a web and Android app to manage personal finances. It is based on tracking transactions, account balances, earnings and expenses.

Recording Transactions

Transactions can be fetched automatically from all German banks that support HBCI, as well as several others (e.g. N26). The user categorises the earnings/expenses in order to find and statistically evaluate them later. Recurring payments (e.g. salary, rent or groceries) can be recorded automatically with rules. Cash payments need to be entered manually, which is convenient with user-defined shortcuts: For instance, "8e t" might record an 8 euro expense in the "transport" category.

Splitwise Integration

Splitwise tracks shared expenses with roommates, family and friends. Manni can send recorded payments to Splitwise and split them in a specified ratio, even fully automatically with rules. Furthermore, expenses paid by other Splitwise users are automatically recorded in Manni as shared expenses and appear in personal charts and statistics. Outstanding debts can be converted to other currencies and moved to other Splitwise groups in order to settle them without any unnecessary transfers.

Portfolio Balancing

Stock and index fund investments can be organised in asset classes, and every asset class can be assigned a target percentage of the total. In addition, the "100 minus age" rule (aka. "own your age in bonds") is used to distribute assets among low-risk and higher-risk asset classes. Based on these distribution rules, the current account balances and daily market rates, the algorithm computes which asset classes need more/less funds in order to reach the desired distribution.

Reporting

Various charts visualize the distribution of revenues and expenses by category, historical account balances, portfolio value, the monthly savings rate and more. A global search feature, quickly finds past payments.

SchulScheduler

SchulScheduler is a timetabling software for small and medium-size schools developed during a one-year student project. It is available in German only and targets German schools. Please refer to the German page or the SchulScheduler homepage for further information.

Tools

In this section I would like to present some of the little utilities that I wrote to make life easier. Some tools have not (yet) been released, but I would appreciate if you expressed your interest in them. If a sufficiently large number of potential users can be found, I will develop a stable version of the tool and release it. The tools that are already available are available for download at no charge, of course (although you might consider making a donation ;-)) and work without installation.


WakeFolder

Windows shares allow accessing directories that are located on other computers - but they only work if the other computer is running. In this way, I am to watch TV shows for example, that have been recorded by another computer in the network. WakeFolder helps waking the computer up through Wake-On-LAN, if necessary. For more detailed information/instructions please view the screenshot.


Picture sorting

After every holiday trip you see yourself confronted with an overwhelmingly large amount of pictures (thanks to the new digitial cameras) that have to be sorted. To simplify and speed up the sorting process, I developed this tool, which allows the user to configure his keyboard keys to perform certain actions on the picture being displayed. This way, it is for example possible to flip through the pictures from a directory in fullscreen mode and directly delete failed shots, copy the best ones to a sub-folder and move panorama-parts to a third folder.
During the development, I put great effort in improving the speed of the tool: Pictures are preloaded to a cache and can therefore be viewed with no delay - even over LAN. The tool is freely configurable (see the screenshot) and non-destructive (pictures are never deleted, only moved to the recycle bin). In combination with X10Receiver.NET it can be conveniently be controlled from the couch.

Note: This tool has not yet been translated into English. Please tell me if you'd like to see an English version of it.


MapDroyd/NavDroyd Pin Editor

There are two great android (navigation) apps called MapDroyd and NavDroyd that allow saving places as "pins". Since this is very tricky on the phone, I wrote a tool that enabled you to directly import pins from .kml files (from GoogleEarth) to the MapDroyd/NavDroyd database using drag-drop, while the phone is connected to the computer in storage mode.
Features: Drag-Drop, Create folders/categories, Re-order, edit labels/notes

Warning: The tool only processes the coordinates, the title and the description of the pins. All further information will be lost. Therefore, please backup your data before testing!


Klingeling

This app helps calling everyone who is in the same house (more precisely the same wi-fi network) to lunch or dinner. Every smartphone that has the app installed will notify its user, who can then reply with "OK", "Later" or "Won't come". Available in German only (so far).


LogikBerechner

A small tool to find all solutions to a set of boolean propositions, made up of atomic formulas A-Z, constants (0 and 1) and operators like AND, OR, XOR, NAND, negation, biconditionals, implications, satisfiability operators. It supports nested bracketing and variables for partial formulas. Results can be displayed or exported in CSV format.
The source code is public and free to use for all purposes.


Photography


Contact

Philipp Keck
Robert-Stephenson-Weg 55
8004 Zürich
Switzerland

+41 (0)77 9649607
philipp@philippkeck.de



Credits

Terms of Use

Using this website ("site") indicates that you have read and accept these terms of use ("terms"). If you don't accept these terms, you are not authorized to use this site as well as my software (collectively "products").

Disclaimer

My products are provided "as is" and "with all faults". In no event will Philipp Keck or anyone else mentioned on this website or in the products be liable for any damages caused by the products, their contents or any linked contents respectively by using it.

Trademarks

All trademarks and registered trademarks are the property of their respective owners.

Privacy

I (the operator of this website, Philipp Keck) respect your privacy. In no way will I sell, rent or lease your personal information or give it to a third person in any other way. Collection of personal data is limited to the technically required minimum or is performed anonymously.
You are entitled at any time to request information about all data (beloning to you) stored on my server, it's origin and purpose. Further information on how to contact me can be found above this privacy statement.