Posts

Here be blog posts

June 2024

Try the Pomodoro Technique with Pomoglorbo

Try doing your Pomodoros with this CLI based timer written in Python

Read More

February 2024

More systemd networking fun

What was once an elegant machine built up by the wisdom of thousands of volunteers is now a rusty bucket with holes; my Debian installation. As I have recently fixed my interface configuration I thought I was done solving my networking problems. On my local network, I rely on mDNS a lot, for both macOS as well as Debian. To ssh, mosh, and sync git annexes between computers, I use .

Read More

January 2024

The one where I leave it to systemd-networkd

I like keeping my Debian 12 installation bare bones. Sometimes bare bones means accidentally disabling your only link to the outside world.

Read More

January 2024

Finding my first bug in Hugo

Here are my notes on diagnosing a bug in Hugo. Hugo is the static site generator I use for this website.

Read More

January 2024

fish and bash Variable Expansion

Some differences in how bash and fish expand variables

Read More

June 2023

Adventures in Japanese Digital Transformation

This is about having a non-Japanese name living as an immigrant in Japan and trying to get a SIM card with UQ Mobile.

Read More

May 2023

Using tmux with the X clipboard

Sometimes I would like to paste shell command invocations from my browser into my terminal and use bracketed pasting, i.e., pasting without running the command directly. Since I am running tmux (tmux 3.1c) inside of xterm, in an i3 and Xorg desktop environment, I also want to use the X clipboard. The X clipboard is used when copying text from the browser as well. Pasting things into tmux The X clipboard can be accessed through various commands, such as xsel and xclip.

Read More

May 2023

ADS-B Aircraft Tracking at Home

Here’s a quick write up on how I was able to use my RTL-SDR V3 receiver to see aircraft flying above me using the dump1090 application, which FlightAware is maintaining in its current version. The RTL-SDR is a very cheap way to get started with software defined radios. Photo of RTL-SDR receiver which I have purchased Open in new tab (full image size 662 KiB) I have bought the RTL-SDR receiver in 2017 from a reseller on eBay.

Read More

May 2023

Notes on: Marx, A Very Short Introduction

Today, I have finished reading Marx: A Very Short Introduction and have thoroughly enjoyed it. I purchased the 2018 edition, which even mentions hot topics such as the gig economy and its relation to Marx’s critique of capitalism. On the other hand, the book falls short of defining capitalism itself as a contrast to communism. The author Peter Singer thoroughly describes Marx’s philosophical background in Hegel and Ludwig Feuerbach. Then, he examines the emergence of historical materialism in Marx’s work.

Read More

April 2023

BIOS Modifications, Proprietary Firmware, and Wi-Fi on my ThinkPad X220

In which I describe how I got an Intel wireless network controller running on Debian

Read More

March 2023

This Time It's Different

With the recent hype around ChatGPT, GPT-4, and large language models in general, communities like Hacker News are breaking out into a this time it’s different doom and gloom.

Read More

March 2023

Useful zsh Shortcuts

macOS Catalina introduced zsh as the default interactive shell. zsh is compatible with Bourne shell (sh) to a large degree and introduces many valuable extensions that make everyday productivity more pleasant. In this post, I list some shortcuts for the zsh line editor (also known as the command prompt) in its default configuration.

Read More

February 2023

Software Development Ergonomics and RSI

Some rather intense keyboard clacking over the past years has resulted in me having to give my hands some time off work.

Read More

February 2023

Installing netlify-cli on macOS Ventura with npm ci

If you’re like me, you love npm ci. A lot. Until that one fateful day.

Read More

August 2020

Japanese conjugation, from two perspectives

Learning a language is different when learned as a native language or as a foreign language. We will illustrate this by taking a look at how Japanese as a foreign language (JFL) learners and Japanese as a native language (JNL) speakers learn about Japanese grammar.

Read More

July 2020

Errors in J

For the past month I’ve been using the J programming language to solve Project Euler puzzles. The language makes many of the tasks that one would usually spend quite some time on, especially with multidimensional arrays, quite pleasant to work on.

Read More

July 2020

Updates to my blog

I’ve taken some time to enhance my blog with two useful features:

  • SVG images generates are now embedded into HTML
  • Automatic PDF conversion for posts

I will cover how the two have been implemented.

Read More

September 2019

Hakyll on Netlify

If you are like me, you are more busy switching between static site generators than actually writing posts for your blog.

Read More

January 2019

Happy New Year, from Tokyo

On April 15 2018, I moved to Tokyo, Japan. I suppose that changed a few things in my life.

Read More

May 2018

What Hackathons Teach About Making Products

I like hackathons. Hackathons are competitions that run over multiple days — typically a whole weekend — and in which the participants — programmers and designers — solve a challenge in order to win a prize. Typically, there are a few challenges that are all based around some theme — blockchains, sustainability, democracy, and so on.

Read More

April 2018

Updating Smart Contracts

As time goes on, smart contract requirements change. Often, a feature is added or a bug is found. But, once a smart contract has been deployed on the blockchain, it can’t be upgraded. The entire value proposition of a blockchain is immutability. Yet, in the real world, contracts change all the time. For example, a labor contract will change when new labor laws are introduced. Similarly, there are many circumstances under which smart contracts change as well, such as

Read More

April 2018

Smart Contract Ownership

When building your smart contract platform — whether on Ethereum or any other blockchain — at some you’ll be faced with the question of ownership. In this article, I will explain three different types of smart contract ownership and discuss their advantages and disadvantages.

Read More

April 2018

ERC20 Token Allowances

Have you ever wondered how your users can spend ERC20 platform tokens to buy assets and other tokens from you? Or — in more technical terms — how to make sure a smart contract executes a particular function as soon as it receives tokens? This post is all about using ERC20 approve() and transferFrom() to allow your users to do much more than just keep tokens in a wallet.

Read More

April 2018

3 Useful Python Code Patterns

Over the years I have found out how important it is to constantly challenge yourself. Coding is craftsmanship. A good craftsman will always try to improve the toolbox they use every day. Code patterns belong in any good toolbox.

Read More

March 2018

Anatomy of a Token Platform

I had the tremendous privilege of speaking about creating sustainable token platforms at TokenSky 2018 in Seoul, Korea. Not only did I have a great time presenting some of the ideas that I’ve come across, I also encountered a lot of stimulating questions from individuals and companies all interested in enhancing their platform using some kind of blockchain token.

Read More

March 2018

Designing a Better Web Analytics Platform

Not many things a business owner has to go through are as scrutinous and unpleasant as a data privacy audit.

Read More

March 2018

The Four Phases of a Data Science Project

Imagine this: You’re pitching an idea for an interesting data science problem that you can solve for your client. The client is sold on the idea and wants to immediately know how fast you can get it done, and more importantly, what the project milestones will look like.

Read More

February 2018

Memory Usage of Pandas Categoricals

A great method to improve memory usage of Pandas DataFrames is by converting columns with categorical variables to use the data type categorical.

Read More

January 2018

Effective Data Science Notebooks

I believe that being a data scientist is about communication first, and data science second.

Read More

December 2017

transform()ing Like a Pro in Pandas

The Pandas API surprises me with a new feature or method almost every day, and I have yet again discovered an interesting piece of functionality.

Read More

December 2017

Aggregating in Pandas

The other day I caught myself writing one too many df.groupby() in Pandas, and thought to myself:

Read More

December 2017

Scaling from Pandas to Dask

Scaling Pandas DataFrame aggregations can be quite tricky. I have had a very specific problem to solve that involved aggregates on group by expressions.

Read More

July 2017

When to use C and when to use Python

I’ve now solved the first 15 Project Euler challenges in C. But then, I’ve hit a road block. Let me explain.

Read More

June 2017

Sharpening my InfoSec tools

After a long time of being complacent with my skills, I thought I should up my InfoSec game. So far I’ve been mainly busy with figuring out how to enhance application security in my work. That means I learned how to

Read More

June 2017

The difference between 大切、大事、重要

Let’s look at how 大切、大事、重要 are different. 大事 and 大切 Yep, both have the same meaning. Both mean 大事なアルバム This album is important (to me) 重要 This adjective serves to identify concepts as important in a context that transcends one’s own preference and identity. 重要なアルバム This album is important (in the history of music) Conclusion 大事 and 大切 come very close to the English word important. 重要 is about expressing importance in the context of something larger.

Read More

June 2016

A brief UberRUSH overview and tutorial

Uber Rush provides cost-effective on-demand courier services. It is an exciting service that will allow companies to start delivering to local customers faster. Uber tries to make the process as easy as possible by providing an API which can be easily integrated into existing shop solutions and lets customers order cheap and easy shipping.

Read More

April 2016

How to Replace Judges with Robots

The other day, I found out something real fun: Not all bike lanes in Germany need to be used! Since bike lanes are quite dreadful and not at all safe, I wanted to write a handy tool to show me when to use a bicycle lane and when not.

Read More

December 2015

The Python 3 Statistics Module and Salaries

Python 3.4 introduced the statistics module. It contains helpful methods for determining basic statistical properties, such as mean, median and standard deviation of samples and populations.

Read More

November 2015

Byte Histogram in Python 3

I had this curious thought the other day: what is the byte value distribution in binary files, such as an executable? Take for example /bin/echo on OS X 10.11.1.

Read More

November 2015

You should get Packing with Python 3.5

The new Python 3.5 unpacking syntax makes a programmer’s life much easier.

Read More

November 2015

To avoid Robocallers, use Pandas

I found a really neat data source online on unwanted robocalls that the FCC (Federal Communications Commission, a United States government agency) has created and published openly. The data source provides times and dates of unwanted robocalls that consumers have reported to the FCC. We can use this data source to find out all kinds of things, but today we will be content with just finding out the time of the day households are most likely to receive robocalls.

Read More

November 2015

Parsing S-expressions with Python 3

This is a simple s-expression parser written in Python 3. It understands symbols and numbers and uses tuples to represent the data internally.

Read More

November 2015

Tuples vs Lists in Python 3

Creating tuples from generator expression is surprisingly fast.

Read More

October 2015

Filtering Trees

Today we are going to look at how to filter items in tree data structures using Python 3. We are going to compare a stateful approach and a functional and recursive approach. In the end we will discuss the advantages of a functional implementation.

Read More

October 2015

Exploring Python dis

As you might know, CPython, the most commonly used implementation of Python, uses a stack based virtual machine to run Python scripts.

Read More

October 2015

Programmatically Accessing Cloud Photo APIs

This is a short evaluation on whether one can perform a series of basic tasks using the APIs that cloud photo services provide.

Read More

September 2015

Using Async Functions in Python 3.5

With the new async syntax in Python 3.5, defining asynchronous functions has become a lot simpler. In this article, I will demonstrate a simple example for this new feature.

Read More

September 2015

5 Ways to Filter Items in Python 3

Given a list items, that contains ints and None, produce a list that only contains the int values with their order of appearance preserved.

Read More

September 2015

Who To Sue If Skype Spam Kills You

The other day I received this ominous message on Skype from an infected machine:

Read More