RSSAmplifier

Blog

Timo Denk's Blog

Recent content on Timo Denk's Blog

blog.timodenk.comRSS feed ↗94 posts

Latest posts

Binding My First Nine Books

Recently, my coworker Jiahua mentioned bookbinding and showed me some books he had made. Somehow it had never occurred to me that bookbinding is a whole topic one can just get into . Books are such familiar objects, and only after trying bookbinding did I really start paying attention to the details that go into their construction. In this post, I document my first bookbinding projects.

All Speed Limits in Aviation

While studying for my commercial pilot license on Gleim, a speed limit question came up. That was the perfect opportunity to procrastinate and write a blog post about all the speed limits in aviation. Here you go!

De Bello Gallico: Visual Notes

Commentarii de Bello Gallico is Julius Caesar’s account of his campaigns in Gaul from 58-50 BC. It was one of my favorite books as a kid. When I was twelve, I was so fascinated by Roman history I would take the train to Stuttgart University to attend history classes. Caesar’s book makes the reader picture the legions building their camps, the intense tactical warfare with Gallic…

Becoming the Best Research Engineer I Can Be

This is about who I want to be professionally. I am (1) characterizing the target (a blend of coworkers like Matt, Christian, Lukas) and (2) identifying concrete actions to get there. My meta goal is to max out what I can achieve, such that my intelligence becomes the primary limiting factor, as opposed to a lack of direction, discipline, or the environment. Interaction with Coworkers & Meetings…

Flying Over Manhattan

I visited New York City this week. As a private pilot, I can technically just rent a plane and go fly around entirely by myself. The airspace in the area, however, is so complicated that I prefer to be on the safe side by flying at least the first time with a local instructor. There are four classes of airports in the United States: Bravo, Charlie, Delta, and Golf. The first three are towered, and…

Bay Area Commute Time Tracking

Google has several campuses scattered across the Bay Area, and I typically work from either San Francisco, San Bruno (YouTube), or Mountain View. Getting to the latter is (at best) a 32-minute drive, though that strongly depends on the day of the week and the departure time. While I enjoy listening to audiobooks or just letting my thoughts wander while driving, it’s still clearly preferable…

First Solo Flight

The biggest milestone on the way towards obtaining a private pilot license (PPL) is the first solo flight. I completed mine on June 17th, 2024, and the time is ripe for a little write-up. I started taking flying lessons in January 2024 and pursued the flight training with great enthusiasm. Interrupted only by occasional travel plans, I went flying fairly regularly, about two to three times a week.…

My Cessna 172S Checklist

I started working on my private pilot license (PPL) and realized the need for a custom checklist which was tailored to my own flow. The plane I’m flying is a Cessna 172S with G1000 and the checklist is specific to it. Please find the PDF here . Below is the Markdown variant of it. This is version v8 of the checklist from June 23, 2024. The checklist is what is for me personally the optimal…

Brain2Music: Reconstructing Music from Human Brain Activity

In March 2023, Yu Takagi and Shinji Nishimoto, published their paper on image reconstruction from human brain activity . The research made the news. Often shared was this image in which one can see an image stimulus (what test subjects saw while their brain activity was recorded) juxtaposed to the reconstruction: Around the same time, we had just published the music generation model MusicLM .…

Biking 400km in Under 24 Hours

Since high school I was fascinated by the idea of exploring my physical limits by biking for as long as possible. My first attempt was in Aug 2020 and I ended up with a 261km bike ride . The major limiting factor on that day was insufficient food intake, and neck and wrist pain. With that knowledge gained I decided in 2022 that it would be time for another such challenge and set the ambitious goal…

Parachuting Sensor Data

During my first tandem parachute jump in August 2022, I collected some sensor data with a smartphone (the app is called Sensor Logger ) and a Garmin watch. Below is a little analysis of the recordings. The source code for data loading, denoising, and plotting can be found here .

Gas Station Power Output

A gas station does not produce energy, but it transfers it into cars. The energy is in the form of gasoline. As we will see in this article, one might intuitively underestimate just how much energy can be stored in gasoline.

Theory PDG Notes: MLE, MAP, Conjugate Prior, Integrating over Parameters, Tractability, Bayesian, and Probability Theory

There are several terms in probability theory which keep popping up in our machine learning paper discussion. Michael Hefenbrock and I sat down to get the hang of what exactly is behind a few of these terms. This blog contains the notes we took during our long, late night “theory PDG” sessions. Big shout out to Michael (aka. mh) for sharing his knowledge and being incredibly good at…

My Values (Snapshot as of 2022)

Earlier this year a friend and I sat on a cliff in Santa Cruz, California, watching the waves. She asked me what my values were. Since I was unable to verbalize them beyond a dull “honesty, politeness, …”, I took it home as an assignment, which I completed in the form of a doc the day after. The values are likely to change over the course of my life. Proactivity & Curiosity Take…

Five Years With Neural Networks and a Research Retreat

Five years ago I worked on a project trying to replace a physical keyboard with a glove that was equipped with accelerometers. The idea was to measure the fingers’ accelerations and determine the intended “key press” even though the user would only type on a flat surface like a table. The photo shows all the components in a testing setup: From the bottom to the top that’s…

All My 3D Prints of 2021

Last year I published a blog post with all my 3d printing projects of the year 2020. The idea was to have an exhaustive list to not forget about “that tiny glass holder for the balcony rail” and other smaller projects of that kind. Scrolling through the list later on proved to be fun, so I intend to archive this year’s prints in the same fashion in this blog post.

My Favorite Papers at NeurIPS 2021

In December 2021 I had the pleasure to attend NeurIPS (the thirty-fifth Conference on Neural Information Processing Systems). For the second time the conference was held remotely, not in Sydney as originally planned. A total of 2334 papers were accepted to the conference, the full list of which can be found here . I worked my way through the papers and read a number of them. My favorites are in…

Notes on Anne Frank’s Diary

In preparation for a trip to Amsterdam I read Anne Frank’s diary, whose original Dutch title is Het Achterhuis (The Annex) . I scribbled down some notes on points that stood out to me. They may serve as a (subjective) summary to people interested in the topic and as a reminder for myself.

Chess Art: Kasparov vs. Deep Blue

In 1996 the IBM supercomputer “Deep Blue” beat the reigning world champion Garry Kasparov at the game of chess. An event of symbolic significance. I created an artwork which shows the final position of the game, with special emphasis on the defeated human king. This post contains some photos and a making-of video. There is a Wikipedia article about the game.

On Single-Color Paintings and Aphorisms

Single-color paintings (aka. monochrome paintings) are painted using just one color. For example, a painting called IKB 92 by the French painter Yves Klein is painted entirely using a specific blue shade (HEX code #002FA7 ). The very color itself (!) is even named after the painter and now referred to as International Klein Blue. The featured image of this post (at the top) illustrates it.…

Populating a Google Spreadsheet With Data From Google Calendar

This is a short technical explanation of how one can automatically populate a Google spreadsheet with data retrieved from a Google calendar . My concrete use-case is the following: I track my violin practice time in Google Calendar by adding an event every time I play. For example, on a Tuesday morning there would be a calendar entry called “Violin 🎻 Practice” from 08:00 to 09:00. To…

Becoming Carbon-Neutral Is Not Enough to Stop Climate Change

My understanding of the dynamics of climate change has evolved over the past months. The cause is a bi-weekly paper discussion in which a group of friends and I read research papers dealing with climate change (in parallel to our normal, weekly machine learning paper discussion group). After reading a handful of papers I realized that assumptions I had previously held about climate change do not…

Influencing People (Essay)

“The creatures outside looked from pig to man, and from man to pig, and from pig to man again; but already it was impossible to say which was which” writes George Orwell in his novella Animal Farm , published in 1945. I came across this book because my compiler construction lecturer mentioned it: “If someone wants to really understand democracy”, he said while taking a…

3D-Printed Violin

In early 2021 I built my very first instrument – a 3d-printed violin! This blog post starts with a seven-minute video outlining the creation process. The video also features a professional violinist who tested the printed instrument. Additionally, in text form, the blog post is sharing what a luthier says about the violin, as well as more technical details, which accompany the video. Lastly, you…

Calculating the Exact Finger Positions for a String Instrument

Playing string instruments like violin, viola, cello, or double bass requires the musician to place their finger at specific positions on the instrument’s fingerboard to play the desired tones. The musicians memorize the approximate finger positions and perform very quick, ideally imperceptible corrections once the tone is audible, using their relative hearing. This blog post takes on the…

All My 3D Prints of 2020

On the occasion of completing orbit #23 around the Sun, I purchased a 3D printer in June 2020. Everybody remotely close to me knows about it, because I just keep on talking about it. Quite frankly, it was one of the most exciting technical toys I have ever bought (for only 250 EUR!) and it made me discover an artsy side of myself. I already shared a selection of my 3D printing projects on this…

My Favorite Papers at COLING’2020

In December 2020 I attended COLING'2020 (the 28th International Conference on Computational Linguistics) to present “Contextual BERT” at the TextGraphs-14 workshop and to learn about the latest advancements in natural language processing (NLP). This year the conference was not held in Barcelona but remotely, which shifted the focus from poster sessions and chatting more towards plain…

Is There Even A Good One? Matching Voting Systems With Logical Requirements

I recently discovered that voting systems are an intriguing field to study. In everyday life we often encounter situations in which a vote takes place, e.g., when agreeing on which movie to watch, which restaurant to dine at in a group, or when electing government officials. There are a number of different ways in which such voting can be carried out. For example by letting every movie evening…

A Miniature Grand Piano

This is a short documentation of a recent 3d-printing project of mine. It is a miniature grand piano, at 1:10 the scale of a Yamaha C6 grand piano. The blog contains a video exhibiting the piano, explains the creation process a little bit, and links to the STL files which can be used to modify or print the piano.

3D-Printed Solar System

Here is project #2 with the new 3D printer, just like the Berlin Wall it’s an artsy one: the eight planets of our Solar System scaled down by a factor of about 10 9 . This post contains a photo gallery of the planets, and further down the details of design, creation, and painting. Photo Gallery The eight planets from left to right: Mercury, Venus, Earth (that’s us on that small…

Berlin Wall Miniature

Every morning I pass by the Berlin Wall in the area of the East Side Gallery and have started to appreciate this unique piece of history with the diverse paintings on it. The first project with my recently acquired 3D printer was therefore nothing but a miniature version of a Berlin Wall segment (after a 1×1×1 cm sand castle test print). This blog post is about sharing the “Berlin Wall…

Logging Piano Keystrokes With a Serverless Backend

Over the past months I have been working on a private project which is about logging piano keystrokes. The idea is to have a Raspberry Pi cable-connected to a digital piano and have it read the piano’s MIDI signal. While playing, the key-press data is then being forwarded to a logging backend which writes it into a database. This year’s birthday blog post is about the lessons I learned…

Denk Development Turns Four

The date of this blog post’s publication coincides with Denk Development’s fourth birthday (or rather founding day ). Back in early 2016 I started to receive requests from people on the internet, who had seen my YouTube videos in which I tinker with electronics. Quite a few were asking for support with their own projects specifically people who were skilled in electronics, but less so…

My Arduino Boilerplate Sketch

When starting a new Arduino project, one typically starts with a blank .ino file. Over the past years I have identified software patterns that appear across almost all of my Arduino projects. To better support those, I have created an Arduino boilerplate sketch which I use instead of the blank file, when starting a new project. This post shares the boilerplate code and explains its functionality.…

Notes on the Book "Israel: A Concise History of a Nation Reborn"

In January 2020 I went on a trip to Israel to explore the country. In preparation I read the book “Israel: A Concise History of a Nation Reborn” by Daniel Gordis and took some notes. My goal was to better understand this interesting country, e.g. what the situation in Gaza Strip and West Bank is, and how these critical territories came into existence. Israel is unique in that it is…

My Looked-up English Words

Since 2015 I have kept track of the words I looked up to either translate them from English to German oder the other way around. This post contains all of them, split by years and sorted by a (very inaccurate) difficulty estimation that is based on some Abfrage3 test answers of mine. I plan on revisiting this post every year to extend it with the new words.

My Favorite Papers at NeurIPS 2019

In December 2019 I had the pleasure to attend the 33rd Conference on Neural Information Processing Systems (NeurIPS 2019) in Vancouver, Canada, to present my work on document understanding. During the three main conference days there were a total of 1,428 papers on exhibition in poster sessions. I tried to read at least all titles and to look at the posters more carefully that seemed interesting…

Shift Register 74HC595 Arduino Library

The Shift Register 74HC595 Arduino Library simplifies shift registers usage. It allows you to set single pins of your shift register either high or low, just like normal Arduino pins. It thereby removes the overhead of shifting out bytes that were created with complicated bit-wise operations. Setting for instance the second pin of your shift register would simply look like sr.set(2, HIGH);

Exporting Matplotlib Plots to LaTeX

This blog post explains how plots from matplotlib can be exported to PGF files, which in turn can be imported into $\LaTeX$ documents. The full source code can be found in the appendix. Motivation Skip this part if you are already motivated, i.e. you know why you would want to export from matplotlib to LaTeX. Suppose you have a Python script that produces a nice plot using matplotlib. You might…

Simulating a Coin Toss with Arbitrary Bias Using Another Coin of Unknown Bias

Back in January this year I was commuting to work and routinely opened the daily coding problem email: “Good morning! Here’s your coding interview problem for today. […] Assume you have access to a function toss_biased() which returns 0 or 1 with a probability that’s not 50-50 (but also not 0-100 or 100-0). You do not know the bias of the coin. Write a function to simulate an…

Vision-based Page Rank Estimation with Graph Networks

As part of our Bachelor studies, Samed Güner and I worked on a student research project on vision-based page rank estimation . In this blog article we share our work on a non-technical level. The accompanying written report contains all the technical and mathematical details on more than 100 pages.

Polynomial-time Approximation Schemes (PTAS)

During the 6th semester of my BSc studies I have chosen to attend a seminar on Theoretical Computer Science. My task was to present the topic “polynomial-time approximation schemes” to the others. In this article I am sharing the work. Also available are the slides .

Piano Note Practice (Online Tool)

Learning piano pieces can take some time. For some piano players a difficult aspect of it is reading the notes. If one gets used to memorizing them, or (even worse) always writes the corresponding letter above them (e.g. “c” or “♯g”), learning a new piece takes quite a while. In order to get better at recognizing piano notes just by looking at them, I have written a new…

The Role of Artificial Intelligence in Future Technology

“That’s me!” is what world’s leading professional player Lee Sedol from South Korea would have proudly replied to someone asking “Who is the best player at the Chinese game of Go?” – until he was beaten in a five-game match in March 2016. His opponent was a computer program called “Alpha Go” ( Silver et al., 2016 ). For the first time, a computer had…

Matrix Types Cheat Sheet

In the field of linear algebra there are a variety of different matrix types. Each has its own definition and relevance. I had trouble finding a good overview online and thought I’d compile a list myself: This article lists a selection of matrix types as well as their definition , mostly based on the corresponding Wikipedia articles. Generally, I recommend The Matrix Cookbook for concise…

Linear Relationships in the Transformer’s Positional Encoding

In June 2017, Vaswani et al. published the paper “Attention Is All You Need” describing the “Transformer” architecture, which is a purely attention based sequence to sequence model. It can be applied to many tasks, such as language translation and text summarization. Since its publication, the paper has been cited more than one thousand times and several excellent blog…

Using TensorFlow’s Batch Normalization Correctly

Update : This guide applies to TF1. For TF2, use tf.keras.layers.BatchNormalization layer. The TensorFlow library’s layers API contains a function for batch normalization: tf.layers.batch_normalization . It is supposedly as easy to use as all the other tf.layers functions, however, it has some pitfalls. This post explains how to use tf.layers.batch_normalization correctly. It does not delve…

Notes on "Haskell Programming – from first principles"

From November, 13th 2017 to June, 9th 2018, a friend and I were working our way through the 1285 pages of “Haskell Programming – from first principles” by Christopher Allen and Julie Moronuki. That’s more than six pages per day! While reading and discussing, I took a few notes here and there, which I want to publish in this post. Some of the sentences are directly taken from the…

Smart Poker Table

Our “Smart Poker Table” detects the players’ cards as well as the community cards. It computes the winning probabilities for each player, according to the rules of Texas Hold’em, and renders them onto a screen.

Poker Heads-Up Pre-Flop Odds

In this article we define and publish the exact pre-flop probabilities for each possible combination of two hands in Texas Hold’em poker. An online tool at tools.timodenk.com/poker-odds-pre-flop makes the data visually accessible.