flak rss random

moving to the cloud

I’ve been reading a lot about the benefits of virtualization and cloud deployment. And how to integrate these systems with modern web client design. It was all very exciting. So now I’m pleased to announce flak is fully cloud enabled. Here’s the story of my incredible journey.

The first thing we need is a virtual machine. I’m using copy/v86 for this. It’s a machine emulator written in javascript, so it’s web ready from the start.

Next we need a cloud of virtual machines. Preferably the cloud should autoscale in response to traffic levels. To achieve this, I create a new virtual machine for every visitor. This guarantees great performance. It’s also very secure. Everybody has their own virtual machine, so it’s not possible for an attacker to alter the post you’re currently reading.

However, I’m not willing to stop at good enough. We can do better than that. We can create a virtual machine for every post as well. You’ve heard about containers and isolation, right? Every flak post now runs in its own container, isolating it from other posts.

To improve performance, I’ve distributed the virtual machine cloud across the internet by leveraging the powerful javascript engine of each browser. Your personal virtual machine is ideally located in close proximity to you, improving interactive response time.

It’s time for some real talk about the costs of running this infrastructure. Just kidding, there are no costs. All these machines are entirely virtual. I don’t have to pay even a penny to run them.

Modern web design is all about rich interactive experiences. What can I do to make things responsive without slow and tiresome server requests? That’s another great thing about this new architecture. By running the virtual machine in your browser, there are no server requests. Everything you need to view each post is fully loaded and contained within the VM. You can read and scroll at your own pace, and enjoy immediate feedback.

As a reader, I’m sure you’re very excited about these changes, but this is only the beginning. I hope to further expand and enrich the client side experience over time. It’s only going to get better.

Posted 01 Apr 2019 04:01 by tedu Updated: 01 Apr 2019 04:01

code integrity vs data security

On the last day of AsiaBSDCon, George Neville-Neil gave the keynote talk, Security Fantasies and Realities. Some of it was good and some of it was bad. One of the central points is that the ioshitsunami is coming and in order to save humanity we need to do more of the good security and less of the bad security. One of the, or perhaps just the, good security things to do is hardware root of trust, which I will call TPM, although it has a few brand names.


Posted 26 Mar 2019 02:15 by tedu Updated: 26 Mar 2019 02:15
Tagged: security software thoughts

honk preview

Some people tweet. (Me, previously.) Some people toot. (No, thank you.) I have decided to honk.


Posted 24 Mar 2019 10:51 by tedu Updated: 24 Mar 2019 10:51
Tagged: activitypub project web

Thinkpad X1 Carbon 6

I got a new Thinkpad, the 6th gen (2018) X1 Carbon, herein referred to as the t6x1c because why not. I’m not the first to get this laptop, and I’m sure some complete reviews are out there, but a few more personal notes I found interesting.


Posted 13 Mar 2019 21:51 by tedu Updated: 13 Mar 2019 21:51
Tagged: computers

rewriting everything in go

I’ve been a rather happy lua user for a few years. In particular, the luajit implementation. But as part of an ongoing overhaul of this and that, I decided to rewrite all my lua code in go. Or wait, let me rephrase that.


Posted 11 Mar 2019 03:25 by tedu Updated: 11 Mar 2019 15:42
Tagged: flak go

package of the moment: tview and tcell

I wanted to make an interactive terminal interface for something. Usually I just bang out some vt100 escapes to move the cursor around, color this, erase that. It’s crude but effective as long as the number of screen elements is kept to a minimum. This time, though, I decided on a slightly more disciplined approach, and so I was looking for a library that might assist in drawing views of various sizes, and input fields, and buttons. The works. In go.


Posted 18 Feb 2019 17:58 by tedu Updated: 09 Apr 2019 21:05
Tagged: go software

github ui

I’ve been paying a bit more attention than usual to web interfaces, and there’s a few examples which really get to me. GitHub is one that’s annoyed me for a while, but I didn’t quite know what was wrong until I looked at some screenshots to see what was frustrating me.


Posted 13 Feb 2019 23:08 by tedu Updated: 14 Feb 2019 17:39
Tagged: rants web

patience diffing algorithm

I needed a (text) diff algorithm, and if you search for one you mostly come up with the Myers algorithm. But then I stumbled across something called patience diffing, and it turns out to be just what I wanted. It’s already described elsewhere, but it seems more people could stand to know about it, so here we are. It’s easy to understand, and more importantly, usually makes pretty diffs (often prettier than Myers).


Posted 13 Feb 2019 21:34 by tedu Updated: 20 Feb 2019 10:06
Tagged: programming

but what about screen readers

But what about screen readers, you ask. Somebody did a web thing you don’t like. Doesn’t this break screen readers?

It seems the easy way to find out would be to test. But that requires caring about screen reader usability enough to actually have one on hand to test. Much easier to wag fingers. Screen readers are the starving children of web accessibility arguments. Why don’t you care about the starving children?

It’s borrowing somebody else’s concerns to score internet points. Oh, hi, I just wanted to try this on and post a few comments, you can have it back now. Thanks. I wouldn’t want to have to think about this all the time.

Posted 08 Feb 2019 18:02 by tedu Updated: 08 Feb 2019 18:02
Tagged: rants web

griping about go

I mostly like go, but after working with it a bit more I realize there are a few jibs of which the cut I do not like.


Posted 07 Feb 2019 15:11 by tedu Updated: 07 Feb 2019 15:11
Tagged: go programming