2020-11-06

Some problems and solutions

Inspired by a Tweet from Elon Musk asking for resumes to include problems and solutions, i list some accomplishments of mine to be proud of myself. It may not look like much, compared to people with more resources, who are able to solve bigger problems with bigger wallets, but from my point of view, i solved the details. And i probably have forgotten things i might remember later, or have already mentioned here before. For example, in 2009, i got my body weight from 110 kg down to 65 kg in less than six months by eating mostly baby food.
In December 2019, i automated the process of making GIF images in Perl, because i don't like seeing GIF animations where objects abruptly stop and restart, like some sort of heart attack. To get all moving parts synced, smooth and repeatable, i had to get back to math to develop formulas for all the numbers needed to produce animations that loop seamlessly. I developed a heartbeat based on sine and cosine, where all objects can move at their own defined speed, but end up synced after all frames are played, so they can restart their paths together. I simplified the instructions by combining calculations to make certain movements into functions. And the combinations can be further combined to make even more complex movements. More moving parts can be added easily, because i designed an efficient interface to these functions, which enables unique combinations of movements, like different rotations, shifts and size changes. I also developed shortcuts for frequently used arrays. To make animations, i just need all objects cut up into image files, for example via GIMP, and then i write all instructions like putting Lego bricks together, by linking them to a chain of functions. Now i can produce a lot of them, fast and have fun too. If you are being cheeky, you could call my tool a leash for ImageMagick. I was not good in math at school, because i was distracted, but i did it.
In April 2020, someone put something into our door lock. Not being able to get into the house is a nightmare. My solution was to attach a servo at the door opening button in the apartment, and drive it with a Raspberry Pi Zero W. But my parents don't have an internet connection on their smartphone, so i had to put another Raspberry Pi as an WiFi extender at the window for them to get connected. I developed the front and back end to chain all parts together. A smartphone can now press the button remotely to open the door, just by using my web interface. I also wrote a watchdog for this to keep the uptime high. It's been online and working for 186 days now. This was relatively easy, because waiting for the cable and servo to arrive via mail took most of the time.
In December 2018, i automated the process of video editing, because i had to go through thousands of them for my origami cranes. Before i did that, i developed different combinations of viewing angles, or how and what people should see at a given time. I've been making YouTube videos since 2008, and before that, i made video presentations at school, so i have my own style of showing things. I like to call my tool a robot, because if i let it know where both video files are synced, it can cut and merge all videos without me needing to do anything, in documentation mode. It's all about developing a heartbeat that all parts need to follow, like dancers moving to music. In custom mode, i decide where to cut and what viewing combination should be used through a text file, basically not needing a GUI for something quite visual. Similar to my animation tool, i simplified the calculations and functions, so i just write the instructions in a row, and let it do all the cutting, speeding, and merging, like a skilled deaf person composing a symphony for the orchestra. So this is my leash for FFmpeg, also written in Perl. I like putting things into context, so being able to combine two viewing angles without breaking into sweat was important for me to keep producing the videos i like without losing too much time. Automation is about breaking things into simpler parts, so they can be repeated often, for something more complex.
Sometime since 2008, i'm developing and running my lightweight embeddable chat widget. It is basically an extremely simplified version of things i have done since 1998. A long time ago, people were making homepages and using things like that to breathe some life into them, but these days not so much. Back then, there were not many regulations limiting what can be done, but i already abandoned the idea to collect personal data, by removing the need for signing up and using cookies, and only get as little data as possible and squeeze that to make it work. Everyone can collect everything, but not everyone can produce more from less. Based on that, i automated the management, like for spam filtering. And if the numbers are not within the limits, messages get rejected or removed, similar to delaying a rocket launch due to a sensor reading. Over the years, i optimized it, made it more reliable, changed things to be more efficient, and learned a lot to keep it online, while having limited resources available to me. I was interested in many things when i was younger, but at some point i ran out of hope, and only kept this last candle burning. I can proudly say that i have been doing this for more than two decades. And there are still things to discover.
Sometime since i was born, i'm upcycling things like MacGyver. When i was a kid, i used a desk lamp to warm up a cold piece of leftover pizza in my room, while my parents were busy running the restaurant. Back then, the lightbulbs were not very efficient and heated up a lot. Throughout my life, i took durable packaging apart to build custom cases for random stuff, so they are protected. There are many YouTube videos of me doing things like that, taking cardboard and making something useful out of it, like an engineer stranded on a desert island.
In winter, the windows get cold and the humidity steams them up. I use regular computer fans to reduce the condensation, so i get a better view for my Raspberry Pi camera. I have been shooting time-lapse videos uninterrupted for over two years now. I also used computer fans as a primitive air filter by adding a mesh and putting a thin piece of cloth on it.
Besides designing interfaces, i enjoy automating workflows, because they need each other to get things done smoothly and efficiently. I can't buy time, so i have to do it myself at the end. I can fold more than 100 origami cranes in a day, with each at a different location, and get it from two points of views on video. I developed a complete workflow for it. Because there are not that many chances in life, as one can see during these times.
There were many moments where i had to build something, because i couldn't buy it, or it just had to be invented by me, like some sort of wheel i didn't know about. Some lids are pretty hard to open, but wrapping a paper towel around it gets it mostly done, or a drying rack is not always easy to come by, but some kind of cord is probably nearby.