Free OTP 'soft token' written in Go

I have written open-source software that you can use as an alternative to Google/Microsoft Authenticator on any device (that Go can cross-compile for). You may (for instance) run it on your Raspberry Pi (zero) and use it as a “semi-hardware” token. The software does not (yet) support QR code scanning, so you you need to manually enter the name and secret to set up the token. Time-based One Time Passwords (TOTP) Time-based One Time Passwords (TOTP) is a technology where you agree on a shared secret with an authentication system. This shared secret is often shared via a QR code and stored in for instance a smartphone. The shared secret is combined with the UTC time in seconds in then hashed to produce a 6 digit code that is valid for 30 seconds. This is the protocol that is used by Google Authenticator and Microsoft Authenticator. ...

November 8, 2020 · Maurits van der Schee

Beelink Gemini T34 modding

I bought a “Beelink Gemini T34” mini PC for 120 EUR with 8GB RAM, 128 mSATA SSD and a N3450 quad core 2.2 Ghz CPU with an Scenario Design Power (SDP) of only 4W. It is the successor of my “Beelink T4” mini PC with 4GB RAM, 64 GB eMMC and a Z8500 quad core 2.24 Ghz CPU. I run Xubuntu 20.04 on these boxes and you can run them as a low power (headless) server or as a HTPC (Home Theater PC) for Full-HD video. In this post we will unlock the full potential of the T34, by making it run much cooler and thus faster (as this avoids CPU throttle). ...

September 11, 2020 · Maurits van der Schee

Free GDPR scanner online!

I have created a free GDPR scanner at: TQdev.com/gdpr-scanner. You can use it to see what domains are connected by your website and see who is running those domains and where they are hosted. Ideally you see only one entry with only the domain that you have entered in the web browser. In reality many websites use a lot of external services and thus also share your IP address and user agent with those services. Since this information is considered personal information this is subject to the GDPR. The GDPR says that you can only share this information if there is a need and a legal ground to do so OR a user consent. This scanner (that gives no consent) helps you identify services that information is shared with, so that you can consider whether or not you are GDPR compliant. ...

August 5, 2020 · Maurits van der Schee

PHP-CRUD-API now on Docker Hub

PHP-CRUD-API is an “automatic” API: software that turns your database into a REST API. This is possible thanks to database reflection (asking the database which tables and fields it has). Support for Docker and Docker Compose has been added and the Docker image is registered on Docker Hub. Test using Docker To do proper testing you may have to test the full matrix of all dependencies (PHP, MySQL, MariaDB, PostgreSQL, SQLite and SQL Server) and there corresponding versions. For PHP there are already 5 supported versions (7.0, 7.1, 7.2, 7.3 and 7.4), for MySQL there are 3 supported versions (5.6 5.7 and 8.0) and for PostgreSQL there are 9 supported versions (9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 10, 11 and 12). Only these combinations of these major versions would lead to 5 x 3 + 5 x 9 = 50 test runs. ...

August 1, 2020 · Maurits van der Schee

OSX clean install error messages

When you buy a second hand Mac you should do a clean install of OSX from a USB drive for security reasons. This sounds easy, but there are some problems you may run into. In this post we discuss 2 common, but cryptic, error messages and explain how to avoid them. Note that a clean installation requires you to have a USB drive with a bootable OSX installer. Note that on newer Macs you don’t need an USB drive as these support macOS Recovery over the Internet by pressing Option-Command-R after boot. ...

July 26, 2020 · Maurits van der Schee

uBlock Origin on Android

On Xubuntu I protect my privacy by using an ad-blocker (uBlock Origin) in my browser (Firefox). On my phone (Android) I also use Firefox, but I was not able to install uBlock Origin in Firefox on Android, until now! I tried it again today and on my Android 10 (Android One) Xiaomi A3 with Firefox 68.9.0 and it just works. For me this is huge, as this makes surfing the web on my phone a viable option. Until now is was minimizing browser usage on my phone, due to privacy concerns. ...

July 17, 2020 · Maurits van der Schee

Beelink T4 modding and overclocking

I bought a “Beelink T4” mini PC for 100 EUR with 4GB RAM, 64 GB eMMC and a Z8500 quad core 2.24 Ghz CPU with an Scenario Design Power (SDP) of only 2W. It is the successor of my “Z83II” mini PC with 2GB RAM, 32 GB eMMC and a Z8350 quad core CPU. I run Xubuntu 20.04 on these boxes and you can run them as a low power (headless) server or as a HTPC (Home Theater PC) for Full-HD video. In this post we will unlock the full potential of the T4, making it run a little faster and much cooler. ...

June 21, 2020 · Maurits van der Schee

PHP-CRUD-API v2 now supports SQLite

After 1 year of slowly growing PHP-CRUD-API v2 another milestone is reached. Today SQLite support, the fourth supported database engine, is (re)added to the project. It was removed with the introduction of v2. This feature is added in order to facilitate fast prototyping as SQLite is easy to install and configure. I want to thank Raymond Verbruggen for his feature request and his contribution to deliver this feature. SQLite support on steroids A few weeks ago I redid the research on the performance of a SQLite implementation. I found that since version 3.16 of SQLite there are new reflection methods available that allow better performance of my reflective REST API. Other DBMS systems provide reflection using the “information schema”, which is a SQL standard. SQLite now has similar functionality, but non-standard with “pragma table functions”. These functions differ from the “pragma statements” used to implement SQLite support in v1, as the new pragma table functions can be combined with “select” or “where” clauses, while the old pragma statements could not. This flexibility means we no longer need to create a “pseudo” information schema for SQLite. It also means we don’t support older versions of SQLite, such as the version 3.11 that is used in Ubuntu 16.04. ...

April 13, 2020 · Maurits van der Schee

Ultimate NUC killer under 500

I’ve built another PC. This time I wanted to replace my Intel NUC i5 with something more powerful. I’ve chosen an ASRock DeskMini A300 case (with a STX-sized motherboard) and a Ryzen 3 3200G processor. This little machine costs less than 500 euro, is super fast and not too noisy. I run Xubuntu 20.04 LTS and it works great, I’m very pleased with the results! List of materials The materials used in this build: ...

February 14, 2020 · Maurits van der Schee

Install OpenConnect VPN server on KVM

In a previous post I have shown how to add an IPsec IKEv2 VPN to your (Ubuntu 18.04) KVM setup. In this post I will show you how to add and configure OpenConnect VPN. I will show how to install the VPN endpoint on a virtual machine, as a replacement for the VPN installation that we did in the previous post. OpenConnect may be easier to setup and maintain, but it is not clientless on Windows 10 and does require a (user-friendly and free) VPN client. ...

February 7, 2020 · Maurits van der Schee