RSSAmplifier

Blog

peanball.net

Recent content on peanball.net

peanball.netRSS feed ↗52 posts

Latest posts

What I think about when I edit — Eva Parish

A good overview of what to look out for when writing, technical or otherwise.

The Parable of the Two Programmers

Mastering Programming - by Kent Beck

Power of Small Optimizations

A good guide to gain small and big wins.

Powerline Connection Speed Monitoring via `pla-util`

First off, if you can have a real network cable, use that. As temporary measure I set up a powerline connection between the apartment and basement. Connection speeds vary quite a bit and I wanted to be able to monitor reported network speeds.

Leading as the most experienced engineer in the room

An interesting view of how the world changes from solving problems to supporting others in solving problems.

What a good debugger can do

There’s nothing more powerful than a developer with a good debugger and the knowledge of how to use it.

Router & Home Server on OpenWRT and Raspberry Pi 4

A detailed breakdown of my OpenWRT Router setup on a Raspberry Pi 4. Alternative titles for this project could be: Over-Engineering a Router , or My Home Server runs on OpenWRT .

A Skeptic’s Guide to Software Architecture Decisions

Admittedly, I’m often too positive on assumptions and not sceptical enough. This is a good article to help fix that or change the approach.

You Want Modules, Not Microservices

Another article of why Microservices might not be the right solution to your problem.

The Perfect Commit

I aspire to at least have a pull request with those features. Generous use of git rebase make it possible for very commit. This requires some planning ahead and cleanup but makes reviews now or later so much easier.

Staff engineer archetypes

In my career I’ve been all these roles at one point or another, but at smaller sizes. My current role fits neatly into the Team Lead . There are aspirations for Architect though.

Benchmarking Caddy vs. Nginx

Some ways to get better at debugging

A short overview for strategies on how to get better at debugging. In short: know the code know your tools know yourself know how to approach problems

Sharing Network Namespaces in Docker

A guide on how to share the network namespace with another container. This is how a Pod in Kubernetes contains multiple containers. If you’re not working with Kubernetes but e.g. with Docker or docker-compose , this works in the same way pretty much.

Uncommon Uses of Python in Commonly Used Libraries

I have complicated feelings about TDD • Buttondown

TDD often makes your design better! My point is that it can also make your design worse. Some TDD is better than no TDD, but no TDD is better than excessive TDD. TDD is a method you use in conjunction with other methods. Sometimes you’ll listen to the methods and they’ll give conflicting advice. Sometimes, TDD’s advice will be right and sometimes it will be wrong. Sometimes it’ll be so wrong that…

A script to fix EDID problems on external monitors in macOS

Finally I found the missing link to set up EDID overrides on Big Sur and later, where System Integrity Protection (SIP) is enabled. In short, MacOS also takes overrides from the path /Library/Displays/Contents/Resources/Overrides , which is admin writable.

Introducing Ristretto: A High-Performance Go Cache - Dgraph Blog

You Don’t Need Microservices.

Most companies and projects are by far not big enough to benefit from microservices, and not good enough to deal with the implications and repercussions. There’s a reason “distributed systems” are hard: it’s the next difficulty level after multi-threaded concurrency — harder to observe, harder to reason about.

How finishing what you start makes teams more productive and predictable

The aspect of “transaction cost” for doing a particular thing once or multiple times is interesting. Starting a bunch of things in parallel will often lead to many being finished at a similar point in time, often all at once and leading to the dreaded ‘big bang integration’, which even in short sprints may be painful enough already. That said, I love starting multiple things at once. Sometimes…

Richardson Maturity Model (for REST)

A follow-up to the question whether we do REST wrong that provides examples of what constitutes a fully RESTful service.

How Did REST Come To Mean The Opposite of REST?

And here I thought I knew full well what RESTful APIs had to look like. The constraint in my head was that individual resources (e.g. items in a database) should have their own URL and you used the HTTP verbs ( GET , POST , DELETE , etc.) correctly. What was missing from that is the Hypermedia aspect, where each response defines the appropriate URLs for the possible next steps.

the wild web: Reckless Software Construction

“Be an engineer, not MacGyver.”

Giving a Shit as a Service - Allen Pike

Always work at a place where you and your colleagues give a shit about the product(s), the work, and the people around them.

How high capacity utilisation hurts a team's performance

An interesting look at how long lead times from idea to specification to implementation to release can cause waste in the software development process.

The Illustrated QUIC Connection: Every Byte Explained

A deep dive into the protocol powering HTTP/3 and others, implementing a lot of TCP and supporting encryption at all steps.

Go: The Complete Guide to Profiling Your Code

An excellent guide I found via Tim Bray’s blog ‘ongoing’ - Making Code Faster .

Data Race Patterns in Go

At work I develop in Go and this is a good list of things to look out for and avoid.

eBPF, sidecars, and the future of the service mesh

I‘m learning about eBPF. It’s an absolutely fascinating technology.

Planning is For Doing

“The only purpose of a plan is to ensure better results, it has no value in itself. And as James wrote, we must know what to overlook, as sometimes it is better to have no plan at all.” I value knowledge and being able to respond or adapt when it’s needed over obsessive planning of details that will be wrong the second you get to working on something. Many people are able to adapt and figure out…

maxgoedjen/secretive: Store SSH keys in the Secure Enclave

Product vs. Feature Teams

An interesting and apt breakdown of team types. I work in neither a product nor a feature team at the moment but am trying to add more product thinking into my own work and then my team’s.

Prometheus vs. InfluxDB: A Monitoring Comparison

Outputting only the match / capturing group with grep

Grep doesn’t handle capturing groups, but with lookaround you can match and exclude prefixes. This leaves you with the part of the pattern that you needed.

On rebooting: the unreasonable effectiveness of turning computers off and on again

Getting back to a defined and known state is a great way to recover. I found the concept of ‘crash-only-software’ very interesting, and the described approach of inevitable improvement and resilience from software that rather crashes than being in an unknown state. If it keeps crashing and you depend on it, you will get to understanding and fixing the issues quicker.

Switching to Hugo and peanball.net

For a long time I’ve had the domain codedesigner.de but went by the name peanball everywhere else. Now I’ve registered peanball.net .

A list of new(ish) command line tools

TipBITS: Always Show Window Proxy Icons - TidBITS

I use the macOS proxy icon all the time. For me it is one of the most useful features on day-to-day use of macOS. Having it available at all times, not after hovering and an animation is great.

Microservices: Why Are We Doing This?

At work I help maintain a platform used for microservices. This article helps ask the question whether microservices are the right approach for that particular application or system at all.

A better OMX Player Controller

I’m using omxplayer on the Raspberry Pi for video playback because it utilizes the Raspberry Pi’s hardware video decoding. Because the front-end is a separate application, I just need to remote control OMX Player to start and stop the video and figure out how far the video has played back already.

Raspberry Pi Video Overlay on OMXPlayer via Kivy

In one of my hobby projects I needed to display additional information on top of a running video. The whole project is based on the Raspberry Pi and Python. This article describes the approach I’ve taken to display arbitrary content over the video with the help of the very flexible (and admittedly awesome) Kivy framework.

Maximizing in Yosemite

Swift Pitfalls

Building Things with Raspberry Pi

Rover in Action

I’m working at a software company. One of our side projects is the integration of new control concepts and input devices to robotic control. We’ve integrated a couple of input devices and can control different rovers. One of them is the one I built.

Raspberry Pi Pulling the Plug

While browsing for different breakout boards for the Rover I’ve discovered a nice little board that has a push button and logic pin to control a MOSFET. This little contraption allows switching on and off the power, say through a USB cable.

Rover with Raspberry Pi

Using the Motor Controller

The Raspberry Pi has only a single PWM output. The Dagu Rover 5 chassis has 4 motors and 4 optical encoders that need reading as well. So my approach was to get a PWM servo/logic controller that could control the Dagu Motor Controller and additionally some servos for the camera pan/tilt.

New Web Site Skin

I’ve updated the skin on the web site for something better looking. It’s based on the UP skin.