Predatory Advertising in Tech

All my tech-savvy readers and YouTube using colleagues, of course cringe, whenever they accidentally end up on a video with a VPN sponsoring. A sponsoring usually not in the form of an traditional ad, but as a spoken endorsement by the creator himself, so my god damn adblocker can’t block it.

And it’s become so many, basically all medium sized youtubers who need to make some money on the platform since the YouTube-adpocalypse, have, at some point, gone down the VPN shilling route. But this is not only a lesson about the problems of having individuals with no formal education…


It doesn’t have to be difficult

Pathfinding in Unreal Engine can become very overwhelming, as soon as you want to go beyond simplistic two dimensional pathing. Luckily there is a plugin, which allows us to create a simple Behaviour Tree (from now “BT”) for any kind of pathfinding - even if there are very dynamicly moving objects in the level.

Complete AI behavioural tree (BT)

This is the BT we will create. It retrieves the player location and then executes an action (in this case “Shoot”), while flying (pathfinding) towards the player location - if the player is beyond a threshold range. …


A very emotional ethics discussion in Germany

German Parliament, Chancellor Merkel speaking (Tobias Koch — CC BY-SA 3.0)

For a while now, there has been a discussion on the horizon in my country, as to the question, wherever private businesses should be allowed to treat vaccinated people differently (i.e. normally), as long as not everybody had the chance to get vaccinated.

At the moment the German government and specifically the German Ethics Council, which advises the government in such matters, took the (only) easy way out: As long as it isn’t fully established, that a vaccinated person can’t infect an unvaccinated person, obviously, they can’t be treated differently. However at the moment, it seems more and more likely…


Make a modern gaming-UI as a complete design noob

I recently had to create an UI in Unreal Engine, and being the gimp-grouch that I am, I instantly thought I could (ab-)use LibreCAD, an Open Source technical drawing program, to create a scalable vector UI.

There was just one problem. Unreal Engine can’t import vector graphics.

LibreCAD is intuitive, easy to use and Open-source

This article assumes you have basic knowledge of Unreal Engine and C++. LibreCAD, as long as you only want to draw some straight lines, is completely self explanatory.

Now, there are more sensible solutions to this, you could just buy an SVG-importer on the marketplace, for a mere 20 bucks. You could also…


How to make websites work offline

Offline websites with service workers

One of the best additions to browser capabilities in recent years was the addition of service workers and offline support in general. We can now preload data, like articles or network intensive data like pictures, style-sheets or JavaScript libraries, from our web service. This is extremely useful for mobile devices in regions with unstable or slow internet connection. (…like this backwater country in the middle of Europe I am living in.)

Basics

The general approach is, to check for new content, whenever there is an internet connection (or access to WLAN) and display it on demand. The service worker is just…


Nobody can force you to use your brain, but some will at least make you feel bad, if you don’t.

photo by freestocks, licensed CC0

My recent article about VPN shilling on YouTube, has really made me think about which creators I actually still enjoy.

So, in case you can’t stand watching another, meaningless, infotainment video, which the YouTube algorithm suggested to you or which you got click-baited into (“What if we put a nuke on the moon “— no I’m not going to link it, I don’t want it to get any more views.) Here are some great, zero click-bait channels, which really dig into topics, with widespread scientific illiteracy.

1. Peter “potholer54" Hadfield

Peter Hadfield, is a long time journalist, who posted entirely undercover as Potholer54 for…


This article is a indirect successor to JavaScript-lazyload. You might want to read this first. To recap: We have designed a JavaScript routine, which will load images based on the view-ports size and position. Previously we have pre-generated those images and returned specific resolutions as static content, now we want to automatically scale images according to URL arguments.

Flask location block

In this guide we assume a media URL will look like this:


In this article I will showcase a template to activate an arbitrary application once it is accessed and deactivate it again automatically if it’s no longer used. While it is not difficult per se it unfortunately requires a lot of systemd units and can be confusion at first. If you only want the code go to my GitHub.

Overview

Actual service

Assuming we have a file /usr/bin/roflcopter.sh that runs continuously once started and provides a service on a Unix or network socket, we first need a systemd unit that starts this program.

[Unit]
Description=ScriptWapper
Requires=check-deactivate.service

[Service]
Type=simple
ExecStart=/usr/bin/roflcopter.sh
ExecStop=pkill roflcopter

[Install]
WantedBy=multi-user.target

Systemd socket proxy

We…


Photo by Chris Ried on Unsplash

I like to start my flask projects with a simple __name__ == "__main__" with argparse and app.run(). But obviously the flask inbuilt server is not the fastest and probably not the safest either. This is why you should eventually use a WSGI-runner like waitress to run your app. This post will show how to migrate, while keeping any standalone capabilities.

Migrating “__init__” code

In short, everything in your if __name__ block is not going to be executed anymore, the simplest solution is to move it to a @app.before_first_request anotated function, so:

app = Flask("LOL") if __init__ == "__name__": # arparse stuff ... #…


I know it isn’t cool these days to just have a build-script, but you really don’t have to follow the trend of making CI more and more complicated. Jenkins and Docker both have their respective places, but these powerful tools should be used with care, and only whenever the complexity of a project actually justifies and necessitates complex CI-pipelines.

Cue Webhooks. GitLab and GitHub have an inbuilt feature called Webhooks. Whenever a certain event, for example a push on the master branch, occurs, a remote URL is automatically queried to inform a remote server of this event.

Setup on your server

Set up a deploy script

First, you need…

Yannik Schmidt

Python programmer at heart, web developer on my bad days.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store