A typical (in the best possible sense) video from Simon Brown. Best part for me was modelling and that a common structure is more important than the notation itself.
Category Archives: Technical Stuff
Dave Farley: The Problem With Microservices
The definitive video on Microservices, as far as I’m concerned. No marketing bullshit, no misguided “stateless-hello world-crap”, but a concise and applicable set of criteria. It is also worth noting, that overall/in general Dave prefers a service-oriented monolithic architecture. I can’t express how great this video is to describe the real core of the idea of Microservices. Please take the time to watch!
Kevlin Henney: Software Is Details
Brilliant video with lots of references to good stuff for reading.
Linux and the Speed of Innovation
Although I have been a Linux person since 1995, I have come to like FreeBSD a lot. Primarily because two of my major systems are based on it. As my firewall I have been using pfSense for a number of years, and for storage it is FreeNAS. And both have never let me down, neither in terms of stability nor regarding their functionality.
Now the company behind FreeNAS (iXsystems) has announced a while ago, that they will move to Linux as the underlying operating system for their future core product. I am not sure I welcome this change that much. I can understand that simply for available know-how iXsystems want to do this switch. Plus the hardware vendor support is obviously broader and the community also does their part in testing. But, with some level of exaggeration, Linux (not the kernel but adjacent things like systemd
) has become kind-of the JavaScript framework of *nix systems. What I mean by that is that I personally perceive the rate at which things are re-done as too high for my liking. Just like every year multiple JavaScript frameworks appear that do the same thing as twenty others, just differently.
While there is merit to improving things, stability is often more important. And stability not only means that things work as expected. But also the rate of change is a factor. If a new framework saves me 20% development time that sounds great. But in the enterprise evolution, and by that investment protection, is typically what gets you the much better ROI. Because the 20% development improvement are more than eaten up by effort in other areas (esp. operations).
Dave Farley: Continuous Integration vs Feature Branch Workflow
There seems to be, at least partly induced by the relatively powerful merge-capabilities of Git, a trend back to using feature branches in distributed development. Since most of the folks I heard supporting this, are not super-senior it appears that feature branches seem the more obvious choice. Dave Farley, who is basically one of the inventors of CI/CD makes a very compelling argument against features branches in this video. Please watch!
Installing MySQL 8.0.22 CE and phpMyAdmin 5.0.4 on Debian 10
Quite recently I had decided to set up a VM with a database server in my home lab. My preferred server OS is Debian Linux (esp. since Red Hat announced the end of CentOS) and I wanted a recent version of MySQL, together with phpMyAdmin of course.
The MySQL installation was done following the instructions from here. Please make sure to check the MySQL page for the current version of mysql-apt-config_x.x.x-x_all.deb
. The version mentioned in the article as an example is outdated.
For phpMyAdmin I followed the instructions from Digital Ocean, since I have had good experiences with other such documents from them. That document is meant for MariaDB, so things should work. Of course, you need to adjust the database command from mariadb
to mysql
, but that wasn’t too hard :-).
What did not work, though, was the command to create the pma
user for phpMyAdmin, which created the following output:
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'PASSWORD'; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'PASSWORD'' at line 1
The underlying reason is that MySQL 8 does not allow the implicit creation of users anymore. So you have to split the command into the creation and the grant of rights like this:
mysql> create user 'pma'@'localhost' IDENTIFIED BY 'PASSWORD'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost'; Query OK, 0 rows affected (0.00 sec)
The rest of the preparation went smoothly and soon I was presented with the login screen. However, I could not log in, but got the following error:
mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
This is caused by a change of the default authentication in MySQL. To go back to the old way for a particular user, you can issue the following command in MySQL:
mysql> alter user 'pma'@'localhost' identified with mysql_native_password by 'PASSWORD';
With that change I was able to log on the phpMyAdmin. It should be noted, though, that this change has security implications. So please check this article if that approach is ok for you.
R. Stanley Williams: Finding the Missing Memristor
A bit different from what I usually watch, but still very interesting.
Saad Ali: Kubernetes Design Principles – Understand the Why
Interesting stuff
My Journey with Data and Backups
I started with PCs in 1990 on a 286 with a 42 MB hard disk (Seagate ST251-1), which about one year later had issues with faulty sectors. This was a couple of years before (consumer) hard disks started to internally re-map bad sectors. And it was also the first and last time that I lost data. Ever since, I have been paranoid about backups (and more importantly restores).
I started with simple floppy disks for source code, spreadsheets, etc. and went for a DAT streamer in 1996 (HP C1536). This only lasted 3 years and after that abysmal experience I switched to a QIC streamer (Tandberg SLR-24), which lasted until about 2008. Well, that’s when I took it out of service. It was in perfect working condition but 12 GB capacity per cartridge started to be an issue. Since then I have used hard disks in various ways, since streamers have become a prohibitive upfront investment for me. I would still prefer streamers, but that is a different story.
All the people I know (incl. at work) initially think of my efforts as overkill. Until they loose 10 years of digital pictures, esp. when their children are involved. That is when they are willing to invest time and money. The same goes for many companies, unfortunately. A friend told me about a malware attack on his employer about a year ago. All of a sudden there was budget for keeping backups longer than just 30 days, a properly segmented network, and other things their IT department had wanted for more than a decade. Everybody (incl. me – see above) has to learn this the hard way, I guess.
A side note on NAS gear that is typically more in the consumer space. I am currently in the process of switching to a new FreeNAS box. There were long deliberations as to whether I should go for Synology instead. The core reason why I stayed with FreeNAS is that it I have flexibility. From a usability and ease-of-use perspective I got the impression that Synology is (far?) superior. But that comes at the price of limitations. A mass market product needs to keep support tickets under control and the only way for that is to constrain people’s options. And I wanted to stay flexible, even if that meant to spend more money (hardware specs are considerably higher than the Synology model in question) and time for setting things up.
Finally, I am not going for TrueNAS 12 right now but start with FreeNAS 11.3 U5. Yes, I have seen and read many highly positive comments about v12 and how stable it is. But IMHO nobody can be really sure for at least a couple of weeks that no hidden errors exist.
How much true innovation is there in IT?
One thing I hear quite often from people, when they learn that I work in IT, is that in their view the speed of change is so high. And how can I keep up with all these completely new things popping up all the time …
Well, not so much is really fundamentally new. Most of the changes we see are incremental (or evolutionary to use a different term). I was aware of this for hardware and various aspects of software. But for programming languages the extent of old ideas coming up as the “new hot stuff” surprised me. Robert C. Martin has made a video about this (see below). Its style is not really my cup of tea, but it has a lot of interesting information.