Hide Your Ports - Authentication Before Connecting

Think about the services that only a few people need to access, but they need to be accessible from anywhere, over the internet. The internet is a giant untrusted monster network, full of evil people actively trying to harm you. If only a few people (let’s say in the ten-thousands) need to access your service, why do you make the service accessible to billions? It’s so asymmetrical. VPN Gateways VPN Gateways! They’re great! They sit on the edge of your network, and they let you access all your internal stuff! But if you want someone to be able to connect to your VPN over the internet, the VPN gateway itself must be publicly accessible. Yes, you likely have authentication on your gateway such as an IPSec Pre-Shared Key, and/or a username and password. But your gateway is still internet-facing, and let’s just say there are no guarantees for security. ...

July 21, 2024 · 4 min · 810 words · Steven Polley

Dipole - Magnet Links for ruTorrent

Download your linux ISOs with style, using magnet links. Problem with rutorrent is that since it’s a web application, there is no URL handler application for adding torrents via magnet links. Using dipole, you now can! https://code.stevenpolley.net/steven/dipole I got bored today, so made this for a fun little project. Enjoy!

April 22, 2023 · 1 min · 50 words · Steven Polley

Human Scheduling Is Insane

I’ve had the past 11 or so days free to work on some personal projects and had some ideas for a personal to-do list app I’d created and been slowly tinkering on and off for the past 2 years. Little did I know I would find out just how complicated it can be to decide what I should do next in my life. I’m not even talking about big life-changing events, but the little things done in life - the chores, the tasks, the toil. ...

April 6, 2021 · 7 min · 1394 words · Steven Polley

Development Environment as Code

I feel like I’m just memeing with the whole “as code” thing at this point - so let’s take it further and make a development environment as code. This will give you an instance of VS Code accessible in a web browser with access to all the buildtime and runtime dependancies I need to survive on this planet. As I further explore the theme of Infrastructure as Code (IaC), containers, and cloud-native technologies, I wanted to build an environment where I would be able to develop and effectively “control” my infrastructure securely, remotely, and from any device and wondered if it would be possible to work and develop entirely from a Docker container, which itself is defined and built using code checked into version control. Remember, one large benefit of keeping declarative infrastructure in version control is it effectively covers your backout plan for change management, which lowers your impact when deploying changes (rapid revert), and allows you to fail fast. Rolling back the change in your infrastructure merely requires rolling back in your version control system, which is one of its primary purposes. ...

October 5, 2020 · 6 min · 1113 words · Steven Polley

Measuring and Encoding Information

Information is all around us. It makes up our thoughts and ideas, who we are, what we do, the knowledge we gain from the books we read, the music we listen to, and the smells we smell. It includes everything we perceive from our senses, as well as everything we don’t. It’s everywhere, just as light or gravity is. And like light or gravity, we can measure information. Much like we can measure distance using a unit such as meters, or temperature in units such as kelvin or celsius, there is a fundamental unit for measuring information. This unit is named bits. ...

August 15, 2020 · 9 min · 1723 words · Steven Polley

Covid19 Stats Edmonton

I’m getting less and less ambition as time goes on. For real though, I just wanted to build a simple covid19 stats for Polybar, but it works fine as a console application for Windows normies too. All it does it get the numbers from the Alberta site, and output them. Check it out here: https://code.stevenpolley.net/steven/covid19-edmonton Edit April 25, 2020 Now it’s webscale. Passing -web as a parameter will instead start a web interface on 0.0.0.0:8080 which displays the statistics in a dashboard-like format. ...

April 24, 2020 · 1 min · 83 words · Steven Polley

Cyclescaler

When I was first starting to learn how to build a scalable application, I wanted to make a render farm for Blender animations and so I did. It’s full of TBD’s, but hey! It works and it works well, I’ve used it on many projects. It can be used with preemptible instances on major cloud providers to rip through any rendering you need. Google owns a similar product named Zync, but mine is open source and web based instead of a thick plugin for your 3D software. ...

April 3, 2020 · 1 min · 91 words · Steven Polley

Fallacies of Distributed Systems

False assumptions in distributed computing happen all the time, and they often have high costs. Peter Deutsch asserts that there are at least 7 false assumptions system architects and software developers are likely to make, and James Gosling later added an eighth fallacy. The network is reliable Latency is zero Bandwidth is infinite The network is secure Topology doesn’t change There is one administrator Transport cost is zero The network is homogeneous We’ll look through each one, why it’s relevant when designing and operating any distributed application, and explain what you should genuinely assume (the worst). ...

June 23, 2019 · 15 min · 3162 words · Steven Polley

Go-easyDNS

I needed to create and destroy records for Let’s Encrypt DNS validation, so I created some bindings for easyDNS in Go to allow CRUD operations on records. The bindings aren’t near complete, but it’s enough to manage DNS records. https://code.stevenpolley.net/steven/go-easydns Check it out, and open an issue if there are additional operations you’d like support for.

June 23, 2019 · 1 min · 56 words · Steven Polley

Mandelmap

Many years ago, I fell in love with the idea of computer-generated art. While 3D rendering is fun, geometric art is what I love the most. One of my first programming projects was a computer generated Spirograph, which was a lot of fun to create. Spirograph It’s been a few years since making anything like this, but in the past year, I taught myself Go (which is a great language, Rust BTFO). Go is excellent for parallel processing, since it has concurrency primitives built in, and it has a lot of web technologies built right in, such as a fully functioning web server. Go has gained a lot of attention by folks that are writing distributed and scalable applications. Successful infrastructure projects such as Docker, Kubernetes, Prometheus, and Terraform are all written in Go, and if it’s good enough for these guys, it’s probably good enough for anything I’ll be making in the next few years. ...

June 22, 2019 · 4 min · 695 words · Steven Polley