Instead of programming I picked up some power tools and build a shelf. Very rewarding, but also very frustrating since I'll need a lot more practice to even get to a beginners level.

Building a gaming pc for my friend. It almost fits :thonk: ah damn it. OK I'll take that off.

And then in the new Iron Sky movie...

Hitler rides in on a TRex: "Sieg Heil, Mutterfickers!"

:awesome:

Here are some of my notes on how I set up the OpenWRT router. I put some effort into creating a presistent SSH tunnel to a server that I can always reach. The second part to it is a good `.ssh/config` that connects with only one command through the jump server and opens a http tunnel to reach the webinterface of the router.
gist.github.com/select/df780c4

The project is not finished yet. The next step is a HTML5 interface for reading and controlling the connected IoT devices.

For my home automation project I have a Sonoff-Tasmota that sends data to an OpenWRT router via MQTT. Now I want some long term stats from the temperature sensor I build in, and since the router (an old TP Link) is very limited (32 MB RAM) I thought I write the script in what is popular on OpenWRT: Lua
Thanks to tylerneylon.com/a/learn-lua/ and Lua getting up to speed is simple and I think I will have something up and running soon.

A new subway map for Berlin. Easier to read, less robotic - at least thats the claim. Time will tell, but at leas the are around Mehringdamm is nicer. berlintransitmap.de/

🔑 You know what ticks me off?
Services that restrict the password length.

🗝️ But you know what really ticks me off?
Services that prune your passwords without telling you ... and then on the next login tell you that your password is wrong. 🙈

🔐 This happened to me a couple of times and it cost me so many hours to find out what is wrong. For the be better of mankind (and to internet shame 😏) I would like to create a collection of services that are guilty of

You can use this tool (keycode.info/) for migrating your code.

The next person that will look at your code will thank you for it.

:html5: Instead of writing
```
if (event.keyCode == 38 || event.keyCode == 33) {
onScroll('up');
}
if (event.keyCode == 40 || event.keyCode == 34) {
onScroll('down');
}
```
use the well supported `key` attribute
```
if (event.key == 'ArrowUp' || event.key == 'PageUp') {
onScroll('up');
}
if (event.key == 'ArrowDown' || event.key == 'PageDown') {
onScroll('down');
}
```

Min version with support [1]
Chrome: 51
Firefox: 23
IE: 9
Safari: Yes

[1] developer.mozilla.org/en-US/do

:html5: # Performant CSS animations

Rule of Thumb: Only use `opacity` or `transform`. [1]

More specifically `position`, `scale`, `rotation` and `opacity` are guaranteed to have good performance.

Reason: rendering a page goes through stages: 1 - Styles 2 - Layout 3 - Paint 4 - Composite. Later stages are better since they do not cause previous stages to be recalculated. The above properties are all part of the Composite stage. [2]

[1] html5rocks.com/en/tutorials/sp
[2] medium.com/outsystems-experts/

:brain1: Here is another prediction of the future from the past. This time the prediction is less accurate, but more funny :awesome: (in German)

So we finally made the blinders home automation work. ESP8266, Arduino, and Tasmoto... What a beautiful mess :D

Honestly I never believed in home automation, but my friend introduced me to these awesome cheap programmable China chips and I just couldn't resist.

Next step, beautifying the setup... Peekaboo blue=wifi red=up green=down

:brain4: This professor knew very well what the combjuder age will bring (in German)

Just now we had to add Greek language to one of our apps and the ISO code was "el". Well, I did not expect that. Why is that Wikipedia?

Greek (Modern Greek: ελληνικά [eliniˈka], elliniká, "Greek", ...

Ah yes and I know its an Hellenic language. So the "H" was dropped (or rather added, the French don't care anyway) and voila "el" for Greek.

:clippy: Here is a great cli tool you might not have tried yet: ncdu (graphical disk usage tool)

To see how much space your current folder and its content uses you have `du`. But how about the largest sub folder? what is really taking up all the space? `ncdu` allows you to see the used space graphically browse through folders (arrow keys and enter) and delete files (d). I like the handy alias `alias du="ncdu"` that replaces du with ncdu.

Install it with `apt install ncdu` and start cleaning up.

Show more
Mastodon for Tech Folks

This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either! We adhere to an adapted version of the TootCat Code of Conduct and have documented a list of blocked instances. Ash is the admin and is supported by Fuzzface, Brian!, and Daniel Glus as moderators. Hosting costs are largely covered by our generous supporters on Patreon – thanks for all the help!