luke.b//blog

I called in sick this afternoon, I needed some time to take a break. I think I need to be a bit more mindful of how much news I watch before bed otherwise episodes like last night will keep happening.

Plus it’s like super warm in my bedroom.

Time to work on my books!

oh wow it’s late and I just don’t feel like sleeping.

I can’t sleep so I’ll guess I’ll write something instead.

I’m thinking a lot about what I want to do next with my time in the context of the world’s blatant societal issues.

I’ve been following the protests ongoing in cities in America and around the world and I think it’s important now to listen, watch and feel uncomfortable before standing with the people affected and asking what can be done. What can an ally do apart from showing up and protesting and donating to the cause?

Black lives matter. But not everyone gets the sentiment of this. Societies the world over are boiling over in the face of a systemic problem with race. And I literally lay awake at night wondering what’s stopping me from doing my bit. What’s stopping anyone?

My thoughts tend to circle back to the social networks driving the division and phones in our pockets showing us the pain people are facing right now in the societies we claim to be a part of.

On one hand, holding people accountable for their actions is easier than it’s ever been, but at the same time people are being driven to extreme content and social networks are becoming more divisive, for example Facebook deliberately shut down efforts decrease the divisiveness of content being shown on users’ timelines. Twitter on the other hand is sticking to it’s policies of flagging content that glorifies violence, even if it comes from Trump himself.

Tech companies are controlling the content we see and interact with every day, often with algorithms built to maximise the likelihood of interaction for the purpose of advertisement or political campaigning.

I feel helpless to this situation, not least because it seems to be a problem deeply routed in the very capitalism that underlies it all. But the people in society who use these social networks have a choice, although it seems many choose the comfort of a system they know, whether that’s a social network or a societal system.

I think it would be naïve to assume that throwing any tech at a problem will help, but that doesn’t mean tech or software can’t be used positively to remedy these issues.

Also, without listening and understanding the root of these systemic societal failures, a technical offering will not only seem blind to the problem but might do harm in appearing to help whilst not helping at all.

Although maybe systemic change is easier in the context of social networks and software in general. After all, tech has the potential to be completely unconstrained. However, this is how the social networks gained dominance online in the first place, not forgetting that none of these companies or their executives were elected by any people. The constraints are policies which are dictated by, more often than not, a small board of directors looking to maximise returns from their multi-million ad networks.

In essence we have reached a point where capitalism has driven us to consume not just snacks, cars, houses but also political extremism, hatred and the judgement of other people. All in the name of driving an economy that benefits the few, keeping the poorest people poor and keeping the wealthy, wealthy.

Then what is an alternative to this?

If tech really is unconstrained, why is the antithesis of the capitalism-driving ad-machine not thriving? And what would that even look like?

Removing ads would be easy assuming a subscription-based social network would be something people would be willing to pay for. But this doesn’t prevent hateful content from propagating. Even with the best intentions and strictest moderation, we would still have to reconsider how we consume and create content, or really, reconsider what it even means to contribute meaningfully and respectfully to society. This much we know we have to do anyway if we’re going to save the planet we’re living on, but I’ll gloss over that small detail for now. We need to be mindful of the content we create and how we share it. This isn’t a technical problem, which to me sounds like a good reason why this doesn’t already exist.

The problem isn’t that a platform doesn’t exist to host a society that is free of hate, but rather there isn’t a society free of hate.

I’m sure Mark still has a vision for Facebook that appears utopic, where hate and violence are things of the past and the entire world is a hive of positivity.

There are communities out there that aren’t driven by hate, it is possible. But there is no silver bullet for this.

I don’t believe there is much incentive for Facebook to combat hateful content and it’s concerning that society is even looking to these companies and pointing the blame there instead of government.

Social network companies are becoming their own unofficial states where terms of use are the rule of law and people can be a netizen of any number of them.

What we need now more than ever are respectful netizens. But first we need a respectful society.

Anyways, I’m by no means an expert on ethics or politics but I do feel a renewed interest in doing my part to make the web a more respectful, less divisive place to be.

It turns out that Gary has a screencast describing exactly what I want to do with subterminal.js, which is replacing the bloated imperative shell with small, unit-tested functional core parts until there’s basically nothing interesting or at least nothing worth testing in the imperative shell.

I will do this tomorrow though because I am completely shattered.

Another part of me wants to write a guide to writing a terminal 😈

and the other part of me wants to write my own text editor and maybe not in JS because I’ve using a lot recently and maybe I should branch out a bit.

Part of me wants to rewrite nomad because the code really is a mess.

I watched Boundaries by Gary Bernhardt again today, the video that inspired me to write my own terminal. I’ve realised the code itself has become something that is not exactly “functional core, imperative shell” and now it has a lot of tests and I’ve had a lot of experience with how programs expect terminals to handle them, I feel confident that I can extract functional pieces from the main class.

The Subterminal class itself could also be completely removed, I realise. It was initially quite convenient to collect the functionality of a terminal into a single class but a terminal is really a collection of distinct functions that are controlled by different imperative instructions as the user interacts with the programs being run.

For example, the cursor position of the terminal could exist separately to most functions, with other functions taking the current cursor position as input.

This would allow each function to be tested very easily, which currently cannot be done. SubTerminal does have a few tests that cover some functions of it, but these often cover multiple functions at once and so are more like integration tests.

It would be nice to test the cursor positioning function separately to the scroll margins function.

It’s too late, time for sleeps.

I haven’t ssh’d into my box in ages. I handle all updates via git now, this seems so obvious - not sure why this isn’t some kind of “thing”.

Something I struggle with is the vast number of things that I could spend my time working on and the vast number of ideas I’ve had that someone else has implemented successfully.

I think I give myself a hard time for working on personal stuff or just working for a living. I think I sometimes see it as a waste and I always think I could be spending it making the next Big Thing.

Anyway, maybe now’s the time to start one of these Big Thing projects and see where it goes.

I feel like I’ve got everything I need apart from time. And a companion to share it with *cue sad violin playing in the background.*

I think tomorrow I’m going to have a big clean-up of my dev env configuration. I feel like fixing the colour palette that I’m using which is lacking … colour.

page 11 of 27 after before