Front-end development is a joke

There are some self-proclaimed “expert” front-end developers on the Internet talking about “guidelines” for large scale CSS projects that are absolutely absurd. I like absurd jokes and I am pretty amused by these “guidelines”. But a lot of people seem to be taken these “technologies” seriously. To protect the industry and make it a less toxic environment for beginners I will debunk these “CSS naming conventions” in this post. The serious offenders The following acronyms promote absurd use of CSS and beginners should be aware that these are jokes: ...

May 25, 2016 · Maurits van der Schee

A Swagger documented REST API

“A fully documented REST API” in five minutes? With Swagger you can! Simply upload “api.php”, configure the database and load up the PHP script. You will see a huge JSON object in your browser. This is the Swagger 2.0 standardized description of your generated API (based on your database structure). The good part? You can point the Swagger UI tool to this URL and it will make beautiful documentation for you, like this one. You can also Copy/Paste the JSON code into the Swagger editor to customize it. In the main menu of the editor choose “File” and then choose “Paste JSON…”. ...

May 23, 2016 · Maurits van der Schee

Installing Adminer on Ubuntu 16.04

As I wrote two years ago and four years ago: Adminer is a very good alternative to PHPMyAdmin. I often find myself looking up those old posts, because I frequently install, recommend or update Adminer. After using this software daily for several years I can say without a doubt that it is much better than PHPMyAdmin. Adminer is constantly updating and adding nice new features without changing dramatically and alienating it’s users. The top 3 reasons why I use Adminer are: ...

May 20, 2016 · Maurits van der Schee

RSS + Sitemap + Archive in MindaBlog

I have been blogging for two and a half months now on TQdev.com and traffic slowly starts to build up. Unlike most blogs on the Internet this blog is not powered by Wordpress. For this blog I am writing my own blogging software. I am basing the features on my WordPress experience. The software aims to be a Wordpress clone that is faster, more secure and batteries (such as SEO and analytics) included. It renders super-fast as it does not do any cross-site requests or execute any JavaScript at all. It is not complete yet, but very much a “Work In Progress” that is being built while also writing posts. I chose this path because I feel that it is quite educational (and satisfying) to be confronted with every detail of blogging and it’s software. ...

May 17, 2016 · Maurits van der Schee

Xubuntu 16.04: Thunar crashes on rename

I love Ubuntu, but I prefer XFCE over Unity as a window manager for its speed and classic (Gnome2-like) looks. In Xubuntu 16.04 Thunar contains a bug that makes it crash when files are renamed. Note that “Xubuntu” is Ubuntu with the XFCE window manager and “Thunar” is the file manager of XFCE. The actual file operation of the rename is executed without being affected, but it is nevertheless annoying that Thunar crashes as you have to re-open Thunar and navigate to the path you were working in. Fortunately this is all open-source software and we can just “scratch our own itch”. This post will explain what I did to get rid of this bug. ...

May 15, 2016 · Maurits van der Schee

No More NoSQL

A developer with genuine interest in NoSQL asked reddit about the need for NoSQL in scalable systems: So I’m really confused about noSQL. I constantly hear the argument that if people knew how to write SQL they wouldn’t need noSQL, but yet every book I read about noSQL claims that if you need to scale you pretty much have to use noSQL because of clustering and SQL clustering is much more complicated and you lose relations.. Can you give me an overview / glimpse of why SQL is just as scalable? ...

May 11, 2016 · Maurits van der Schee

Trading durability for performance without NoSQL

Developers turn to NoSQL solutions whenever they are confronted with a DBMS (write) performance challenge. I think that in most of the cases that is an exceptionally bad idea. By choosing NoSQL you trade the A, C and I from ACID for performance: Atomicity (risk of writes half succeeding, due to lack of multi-entity transactions) Consistency (risk of ambiguous data due to denormalization into multiple key/value sets) Consistency (risk of “messy” data, due to lack of schema and constraints) Isolation (risk of parallel writes on inconsistent state, due to lack of multi-entity transactions) Durability (risk of losing data by not flushing to disk, but keeping in memory) A, C and I are actually the things of ACID that I often don’t want to trade. The thing I am most willing to trade is the “D”. I don’t care that in the very unlikely event of an application or server crash a few seconds of writes are lost in exchange for a ten to hundreds times better performance. Or as they say at MongoDB: ...

May 7, 2016 · Maurits van der Schee

Debugging Go with VSCode and Delve

Go, a programming language (by Google), is now supported by Visual Studio Code (by Microsoft). It has step-by-step debugging support thanks to the Delve debugger. I am very impressed with Visual Studio Code and it’s support for the Go language. I am running Ubuntu 16.04 and everything worked flawless and even when I was missing some packages Visual Studio Code nicely informed me how to solve this. Installation of Go First we install Go and set the GOPATH variable in the “.bashrc” file: ...

April 30, 2016 · Maurits van der Schee

Parameter 2 expected to be a reference

After my recent upgrade to Ubuntu 16.04 I have been making sure all my open source PHP projects work on PHP7. I am thrilled about PHP7 as it is about 2x faster than PHP5. In my experience it brings PHP more or less on par with NodeJS in terms of execution speed. PHP Warning for “bind_param” and “bind_result” When I was porting my PHP MVC framework (MindaPHP) to PHP7 I ran into the following warning: ...

April 29, 2016 · Maurits van der Schee

Install VNC on your Ubuntu 16.04

I upgraded my HTPC from Ubuntu 14.04 to 16.04 and since the box does not have a keyboard or mouse I had to setup remote access. I chose to install x11vnc, which is easy to use, but requires tunneling over SSH to be secure. Install SSH and enable it in the firewall I chose “x11vnc”, which is easy to use and can be configured to be active during the login (greeter). It’s built-in security is not good, so it requires tunneling over SSH to be secure. That’s why we start installing an SSH server using: ...

April 24, 2016 · Maurits van der Schee