When you are not planning to use a monitor or keyboard on your raspberry, being able to boot directly into a system with WIFI and ssh configured is an enourmous time saver, because you don’t have to plug your ethernet cable into the raspberry to configure its WIFI. Firstly make sure your card / adapter does not have the switch on it set to write protection. If you can’t put […]

3D printing faces

So I 3D printed my boyfriend’s face with his Prusa I3 MK3! 🙂 As you can see there is a bottom 5 layer white board and the rest is printed with black on top of it. This technique for creating a 2d image out of an actual image will really not work with images with bad lighting, as it kind of relies to there being nice shading and all. First […]

Rarely, but every once in a while you will run into the need to have multiple root angular modules with two-way communication between them. A good example would be embedding anuglar into a static webpage for only certain portions of the page. The solution? A shared singleton service! In the following example we take a not-so-conventional case of having a navigation and the content both as a single independent root […]

Upon many failed efforts to find a working validation hook / middleware for Sails.js 1.x, I gave up and created my own helper hook. You can find it under sails-hook-validation-ev on github. About It is a Sails 1.x hook for validating REST requests with the help of express-validator. Because - why reinvent the wheel? Uses the same configuration functions as express-validator. Supports validators, sanitizers, localization, … Installation As simple as: $ npm install - save […]

My objective was to create (in an automated, easy way for anyone deploying the project) a database view, for which I could have a regular django model, that I could use like any other model backed up by database tables. Turns out the easiest way is to create a custom migration. In my example I was using postgresql, it could be you require doing some minor changes for mysql. Model […]

The following post will revolve around a C++ snippet taken from a book I bought recently – Building Embedded Systems by Changyi Gu. The snippet will generate a cosine lookup table of 2048 items – which could be used to avoid floating point math. Useful for cases where we are very time-constrained when running the program. Author’s first version of building a lookup table contains manually constructing an array of […]

ELF file format icon

ELF stands for Executable and Linkable Format, and even if you’re a programmer it is very possible you’ve never actually heard of it. Files in this format are produced by the compiler and most importantly – they are cross platform. You will find different types of formats produced by compilers on different platforms, but ELF has become the standard for unix-type systems in 1999. Windows uses the PE – Portable […]

let's encrypt

Let’s encrypt is a free CA – certificate authority. To get a certificate from it, you have to demonstrate control over the domain via the ACME protocol. You don’t need to know much about it, because Certbot, an ACME client, will do that for you. Certbot will do some handshake magic with your private key, to prove to Let’s Encrypt, that you really do own the domain. You will however […]

If you’re like me, and host a thousand things on a single server, you’ve probably tinkered around with docker and docker-compose. The most appealing side of docker-compose, is that it saves you from configuring your machine in ways not even you will know about anymore tomorrow. So there’s plenty of tutorials on how to deploy wordpress with docker-compose on the internet, and here’s just my take on things I picked […]

The objective of the following configuration is to create a website kiosk on which it would be impossible to quit chromium and it would not use too many resources. Essentially, openbox as a minimal window manager is installed, along with chromium and transformed into a service. It is recommended to start with a clean installation of ubuntu-server/debian-server with no desktop environment. $ sudo apt install –no-install-recommends xorg openbox chromium-browser xserver-xorg-legacy […]