An year - already? It’s been little more than an year of starting with F# and functional programming for real. I can finally say that I feel comfortable with the mental model. I’ve started thinking in functions rather than in terms of Object/Classes/Interfaces and then wondering "how do I do that in FP?". Frankly, this switch has been the hardest part of the transition. It hasn’t been easy, nor was there any 'one moment' of enlightenment that stands out - rather, more a series of randomly interspersed 'aha' moments.
Oops! Ran into a weird problem yesterday - I had to manually update my Gitlab LetsEncrypt Auto SSL tool to use the newest dehydrated script. Updated the new script and ran docker build docker build -t gitlab-cf-le-autossl . And it blew up on apk update… What the heck? 😕 That’s weird, I think. A little bit of duckduck-fu 🦆 ensued and all I could find is network fetch errors during docker build when behind a proxy… I’m at home and don’t have a proxy so that’s not going to be it.
KDE frustrations On my home desktop, I have KDE Neon ever since it came out and before Kubuntu 16 I guess. I should also mention that my home desktop also happens to be a common machine with each family member with their own accounts (so it’s sort of a shared computer). Not once in the last 5+ years have any of them complained that something didn’t work as expected. However, this doesn’t mean that KDE is the bright, shining light of Linux desktop UX.
Like a lot of fellow geeks, I have collected a few raspberry pi’s at home. For the longest time, these were basically bought and then were forgotten on a desk. At some point though, I finally got around to putting them to work for adblocking - and since then, they’ve become pretty much my goto machines when I need a server that’s available 24x7. Speaking to my friends, a lot are in the same quandry - got a pi, booted it up a few times and then it lies….
This is another one of those 'scratch an itch' projects - recently, was away from home and needed to dial back in to one of my home machines. It wasn’t something I was set up to do - so all I could do was wait till I got back home. Once I got back home, I started looking into setting up a VPN server that I could use to dial home.
So what’s the deal Chances are that if you’ve somehow landed here, it means that you have an idea of what DNS does for you. Chances are also there that you’re also privacy & security conscious and want to secure DNS lookups. In any case, a short refresher below: 50K feet view of DNSSEC DNS is how your machine (and other machines including your router etc) translate a domain name like www.
This is just so awesome! LEGO officially released Micropython image that can run on the EV3. For the uninitialized LEGO mindstorms is LEGO’s robotics focused kit. Think LEGO technic blocks + a programmable microcontroller and assorted selection of motors and sensors. The EV3 'Brick' runs a visual programming interface built on Labview(?). It’s nice for kids to get started with but a PITA as you need a windows machine.
I have ~90+ projects that I’ve starred on github over time. Usually, I’d like to know when they cut a new release. Github offers an RSS feed for project releases but having to go into releases page of each project to grab it’s RSS feed url and then having to stick that into your feed reader isn’t fun. That’s where today’s micro tip comes in: Stick the following into your terminal (of course replace your github username).
Wireguard is a new, fast efficient VPN that’s likely to be merged into the linux kernel. If you haven’t heard about it yet, then head over here for a quick overview. Wireguard only works on UDP though and in this post, we’ll see how to use it by tunneling UDP over TCP Now on Linux, udptunnel, socat and even tunneling UDP over SSH are all great options but I’m stuck with a Windows machine so need something that’ll work cross platform - and that’s where I came across Secure Socket Funnel
Scratching an itch A fuzzy finder is invaluable - Triggering the fuzzy finder with denite (plugin that shows filterable lists from many sources - files, buffers, tags etc) is probably the most frequent operation in vim/neovim. Having something that’s used so frequently fast and correct is critical! Given that I have to use windows (still on 8.1) - so tools like fzy or fzf don’t exactly work properly. As I said, I use denite to switch/jump buffers, tags, files, whatever.