2022, week 23

Where I ruminate about wanting to be solo technologist on my own time.

Created: by Pradeep Gowda Updated: Jun 08, 2022 Tagged: weekly · solo-technologist · logseq · algernon

Monday, 2022-06-06 to Sunday, 2022-06-12

Table of Contents

[TOC]

Solo Technologist

Tue Jun 7, 2022

My day job is: Software Engineering Manager. I do get to write code occassionally. I read more code than I write - on a good day. Many days I don’t even read any code.

I have been programming since age 14. But this is not about the past. There has been a lull in the amount of time I spend writing code, I do read about programming quite often, even about languages I have never programmed in. I am trying to restate what kind of programming I want to do in the future.

Often in the past, I have had the luxury and privilge of using my favourite programming language to advance the interests of the company. It is a great gig if you can get it ;)

How does one rethink programming as a “solo” developer. Many thousands of programmers are like this. The lucky ones know what kind of programming they enjoy – from the kind of programs they want to write, the problem areas to which they want to bring solutions to, contribute to a group they are part of - often open source is a great outlet for this.

When you want to program as a solo programmer, should the choice of programming language, and utility become less important? I think so.

Also, the solo programmer activities are a subset of solo technologist persona. I care about technology more than just the proramming aspect of it. I care about how my personal and family’s technology choices affect us. I care about making informed choices about these aspects. I think consolidating all these activities under “Solo Technologist” as a way of categorising “what am I doing here?” gives a definite scope.

Some things that are relevant to the solo technologist are: longevity of the technologies, effort to maintain, ease of transitioning the maintanance to a family member, cost of operations and services, making future proof technology choices, spending less time maintaining, and more time to explore for some convex payoffs.

There are other factors too: Education. This one is a biggy. Educational aspects of technology are both important at a person level (eg: “I want my kids to be able to use computers to do science/math/technology/music/art etc”) but also at a “contributions to the society” level (eg: I want to translate/preserve old manuscripts).

Towards this, having a manifesto of the purview of activities I want to do, as well as defining the boundaries (of what i’m not interested at the time doing - for me personally, this would be - game programming) is important. Writing stuff down is an important activity towards this goal.

Playing with Algernon

Algernon is a web server, written in Go language, with built-in support for QUIC, HTTP/2, Lua, Markdown, Pongo2, HyperApp, Amber, Sass(SCSS), GCSS, JSX, BoltDB (built-in, stores the database in a file, like SQLite), Redis, PostgreSQL, MariaDB/MySQL, rate limiting, graceful shutdown, plugins, users and permissions.

I’m using this to power the dynamic parts of this website. Specifically any url ending with .md, .lua, .pong2, .jsx etc are going to be handled by this, behind nginx.

To run the moonscript based samples, you need Lua5.1 since moonscript is compiled against Lua5.1. If you do default brew install luarocks, it will pull Lua5.4.. which you do not want. So, follow the instructions here and install it manually.

$ brew install lua@5.1
$ wget https://luarocks.org/releases/luarocks-3.9.0.tar.gz
$ tar zxpf luarocks-3.9.0.tar.gz
$ cd luarocks-3.9.0
$ ./configure && make && make install # no sudo required on mac
$ luarocks install moonscript

From around the web

Tools for better thinking | Untools

Tools for better thinking. Collection of thinking tools and frameworks to help you solve problems, make decisions and understand systems.

Surendranath Dasgupta Biography

He was a scholar of Sanskrit and Indian Philosophy. His main work is “A History of Indian Philosophy (5 volumes)”. Wikipedia page has links to these volumes.

logseq publish is a program to publish logseq notes as static website. I should attempt to implement this as a standalone program that can be easily installed from a package manager (cough no javascript - ironic considering the beloved logseq itself is implemented using node.js).