Disable power button on Ubuntu server

My youngest son loves to play with my PC’s shiny LED-lit power button, which is annoying at times. In Xubuntu XFCE’s “Power Manager” allows you to change the behavior of the power button from “Ask” to “Do nothing”. I also have a (headless) Ubuntu 20.04 LTS Server that runs my virtual machines (using KVM). I don’t want the power button to work on that machine either. I had some trouble finding the right setting in my web searches as Ubuntu server’s power button is managed by Systemd. ...

December 30, 2021 · Maurits van der Schee

GopherCon Europe 2021: videos online

GopherCon and GopherCon Europe are well known Go conferences. We are listing the GopherCon Europe 2021 and conference videos. The videos are posted on the GopherCon Europe Youtube channel and are linked below. GopherCon Europe 2021 Egon Elbre - Demystifying Technical Debt [24:57] Dylan Meeus - Audio Programming with Go [23:17] Mathilde Raynal & Yolan Romailler - Quantum Resistant Native Go Programs [20:19] Adelina Simion and Xiao Liu - Best Friends Forever (BFFs): Lambda and Go Apps [24:17] Julio Guerra - Dynamic Go Instrumentation for Production Environments [21:49] Grant Seltzer Richman - Unlocking eBPF from Go [24:17] Linus Lee - When Toy Languages Grow Up [26:08] Lorna Jane Mitchell - Designing Payloads for Event-Driven Systems [27:50] Sean DuBois - Pion WebRTC [22:59] Sushant Bhadkamkar - Derisking Migrations of API Backends [23:25] Dave Cheney - How Go Avoided the Integer Promotion Footgun [25:45] Dana Scheider - Technical Writing for Developers and Engineers [25:05] André Eriksson - Fusing Io/Fs with Gopls [26:01] Matteo Grella - (Neural) Natural Language Processing in Go [27:47] André Eriksson - Fusing Io/Fs with Gopls [26:01] Dylan Meeus - Audio Programming with Go [23:17] Mathilde Raynal & Yolan Romailler - Quantum Resistant Native Go Programs [20:19] Adelina Simion and Xiao Liu - Best Friends Forever (BFFs): Lambda and Go Apps [24:17] Julio Guerra - Dynamic Go Instrumentation for Production Environments [21:49] Grant Seltzer Richman - Unlocking eBPF from Go [24:17] Linus Lee - When Toy Languages Grow Up [26:08] Lorna Jane Mitchell - Designing Payloads for Event-Driven Systems [27:50] Sean DuBois - Pion WebRTC [22:59] Sushant Bhadkamkar - Derisking Migrations of API Backends [23:25] Dave Cheney - How Go Avoided the Integer Promotion Footgun [25:45] Dana Scheider - Technical Writing for Developers and Engineers [25:05] Joakim Kennedy - The Dark Side of Go: A 2020 Go Malware Round Up [32:09] Egon Elbre - Demystifying Technical Debt [24:57] Preslav Rachev - Creating Immersive Generative Art with Go [27:10] Ricardo Ferreira - OpenTelemetry for Dummies: Instrumenting Go Apps [33:39] Samuel Davidson - CTX is Key! [29:08] Panel - Go Security [56:58] Ishuah Kariuki - Terminal Emulator Basics in Golang [27:29] Valentin Deleplace - Function Inlining [23:47] Maricris Bonzo - Create Your Go Projects with TDD in Mind [25:12] Dan Lorenc - The Dependency Jungle: Supply Chain Security and Kubernetes [22:39] Panel - Go Tooling [57:43] Alan Braithwaite - Why it Takes a Team of Engineers to Process Events in RT [24:36] Other conference videos Did you like this post? There are more Go conference videos available, see: ...

November 30, 2021 · Maurits van der Schee

GopherCon 2020: videos online

GopherCon is the original Go conference. It debuted in 2014 and was celebrating it’s six-year anniversary last year. The videos are posted on the Gopher Academy Youtube channel and are also linked here: GopherCon 2020 Jonathan Amsterdam - Working with Errors [18:11] Carmen Andoh - Crossing the Chasm: Go for the Next Million Users [23:49] Jonathan Bodner - Go is Boring… And That’s Fantastic! [26:14] Dylan Bourque and Anthony Lee - Untangling the Monorepo: Moving to Go Modules [25:53] Johan Brandhorst-Satzkorn - A Journey to Postgres Productivity with Go [47:10] Kris Brandow - A Rainbow of Gophers: Building A More Diverse Community [52:27] Kevin Burke - Build and Test Caching in Go [25:21] Austin Clements - Pardon the Interruption: Loop Preemption in Go 1.14 [24:17] Agniva De Sarker - Common Patterns for Bounds Check Elimination [19:15] Jaana Dogan - Debugging Code Generation in Go [43:22] Doug Donohoe - Reordering 59 Million NYT Publishing Assets Using Go and BadgerDB [45:45] Robert Griesemer - Typing [Generic] Go [33:53] Angelica Hill - Anyone Can Be A Gopher! [33:02] Daisuke Kashiwagi - How to Write a Self-Hosted Go Compiler from Scratch [31:16] Michael Knyszek - Evolving the Go Memory Manager’s RAM and CPU Efficiency [50:54] L Körbes - The Quest for the Fastest Deployment Time [47:46] Dylan Meeus - Functional Programming with Go [46:05] Aditya Mukerjee - করো: Translating Go to Other (Human) Languages, and Back Again [34:02] Derek Parker - Deterministically Debugging Go Programs [46:31] Florin Pățan - Building an FM Radio Station with Go [34:37] Brad Peabody - Go is Not Just on Your Server, it’s in Your Browser: Intro to Vugu [55:09] Michael Richman - Write Once, Use Many: A Handy Package to Call Internal HTTP APIs [32:39] Grant Seltzer Richman - Tracing Go Programs with eBPF! [53:02] Dan Scales - Implementing Faster Defers [23:14] Travis Smith - Optimizing Performance using a VM and Go Plugins [48:01] Zac Staples - Go Make Something Real – The Potential for Go on the Factory Floor [27:34] Alex Stockwell/Kevin Tyers - A Game Engine for 300 DEFCON Hackers to Smash [36:52] Justen Walker - Safety Not Guaranteed: Calling Windows APIs using Unsafe and Syscall [44:55] Ted Young - The Fundamentals of OpenTelemetry [28:39] Ask Me Anything with the Go Team [48:12] Go Time Podcast Day 1 - What to Expect When You’re NOT Expecting [49:42] Go Time Podcast Day 2 - The Secret Life of Gophers [1:00:18] Go Time Podcast Day 3 - Go Panic! Game Show [1:00:39] Lightning Talks Day 1 [44:17] Lightning Talks Day 2 [1:08:07] Other conference videos Did you like this post? There are more Go conference videos available, see: ...

November 28, 2021 · Maurits van der Schee

ASRock Deskmini X300 SFF Linux PC

I’ve replaced my Intel NUC i5 with something more powerful (ASRock DeskMini A300 case with a Ryzen 3 3200G processor), see my original post Ultimate NUC killer under 500. It worked wonders, but I wanted even more performance at my fingertips, so I replaced the ASRock DeskMini A300 with a X300 (it’s successor) and the Ryzen 3 3200G with a Ryzen 7 5700G processor. Also I’ve used a black instead of a brown Noctua low profile CPU cooler and installed 64GB RAM instead of 16GB. Like previous build it is super fast and not too noisy. I run Xubuntu 20.04 LTS and it works great (although you may prefer a newer kernel for improved video performance), I’m very pleased with the results! ...

November 18, 2021 · Maurits van der Schee

Maussoft MVC ported to .NET 5

In 2015 I was working on a Simple C# web framework for .NET. Back then I wanted to create an MVC framework that would allow me to run C# web applications on Linux. Back then I was using MonoDevelop to work on C# code for Mono. Today in 2021 I’m using Visual Studio Code to write C# code for .NET 5 (still on Linux). This port aims to take full advantage of the new .NET 5 platform and it’s support for Linux. I am especially interested in cross-platform support and creating single executable web applications (like Go can do with go-bindata-assetfs). ...

October 31, 2021 · Maurits van der Schee

Rails' singularize and pluralize in PHP

Ruby on Rails was preaching plural table names back in 2005 and DHH shipped Rails with an “Inflector” class: a class that could convert (English) plurals into singulars and vice versa. This was used to map the plural table names to the singular “Model” class names when doing “scaffolding” (code generation). The Inflector class had a “singularize” and a “pluralize” method that you could call with either the plural or the singular form of an (English) noun and it would convert it for you. Thus, it could convert the string ’lives’ to ’life’ with the “singularize” method and ‘person’ to ‘people’ with the “pluralize” method. This post will explain how this magical “Inflector” class worked. ...

September 28, 2021 · Maurits van der Schee

Fanless Intel NUC i7 with Akasa case

Five years ago (2015) I have built a completely silent (no moving parts nor coil whine) PC: A 5th gen Intel NUC i7 with 16 GB RAM and a 512 GB NVMe drive. Those parts have been discontinued, but if you would build something like that again today you could: A 10th gen Intel NUC i7 with 64 GB RAM and a 2 TB NVMe drive. (source: Youtube) ...

August 21, 2021 · Maurits van der Schee

PHP 7 error handling class

Since writing bug-free code is not possible it is very important that you can quickly reproduce and fix bugs. Any programmer will tell you that this is only possible with a good bug report. Not all bugs are about missing/wrong functionality, sometimes the application runs into an error. Fortunately error reports (or crash reports as they are sometimes called) can be automated. In this post I will explain how errors are handled in PHP and how you can collect and log error data. ...

July 27, 2021 · Maurits van der Schee

Planned obsolescence and the right to repair

What have light-bulbs in common with Apple products? They are designed so that you can’t repair them and they are (needlessly) designed so that they need replacement pretty fast. Batteries are glued into the phone and the glass front panel breaks easily and is hard to replace. Is that legal? I feel it shouldn’t be. Fortunately, fines of millions of euros are given to counter this phenomenon also known as “planned obsolescence”. Still it seems these fines are not frequent and/or high enough to stop manufacturers from applying this practice. Planned obsolescence is mainly a environmental threat as many appliances and devices are thrown away and end up on garbage dumps (needlessly). ...

July 6, 2021 · Maurits van der Schee

Antec ISK 110 with 3400G using cTDP

I’ve built another PC. This time I wanted to create a silent but powerful small form factor PC. It aims to replace my AMD 3400G midi tower with something equally powerful and quiet that fits my desk. I’ve chosen an ASRock Fatal1ty B450 Gaming-ITX/ac motherboard with a on-board WiFi 5 (802.11ac) in an Antec ISK110 VESA-U3 small form factor case. I transferred the AMD 3400G quad core, the 2x16 GB of G.Skill Ripjaws 3600 a the 2 TB ADATA XPG SX8200 Pro NVMe drive. It is a small, pretty, super fast and not too noisy little box. The case costs 91 euros and has a built-in 90W power supply and comes with an IEC-C5 (also known as “clover”) power cable included. Unfortunately the cable I received was UK type instead of EU type. ...

June 23, 2021 · Maurits van der Schee