Community

Activity

it seems like people talk about activitypub everywhere except on the fediverse.

日本語を勉強している

the first thing i wrote on my sinclair zx81 was a space shooter in basic that used print at to move ships around the screen. it was so laggy it was impossible to play. i didn't know z80 machine language. the last thing i wrote on my zx81 was a z80 disassembler—by then i'd learned machine language and had rewritten the space shooter, as well as written a text-based adventure game (in basic). i learned a lot about programming for $99.

rip clive sinclair

#zx81 #sinclair

building ktistec is still an endeavor—both in time and in space. i have work ahead of me to reduce the build footprint—since starting this project, i've learned that some combinations of the crystal language features i used to recreate rails magic (macros, named arguments and inheritance) are hard on the compiler.

in any case, having exceeded the capacity of the tiny linux vps that hosts epiktistes, i set out to build a statically linked executable on my laptop (macos mojave) that i could deploy to my vps (linux centos).

the official instructions, using docker and alpine linux, are here. to get it to build, i had to install the static libraries for sqlite, and to get it to run on my vps i had to specify the location of the openssl cert file, which is loaded at runtime and doesn't match the location in alpine linux.

tl;dr the steps

  • build (i haven't automated any of this yet)
    1. docker run --rm -it -v $(pwd):/workspace -w /workspace crystallang/crystal:latest-alpine sh
    2. apk update && apk upgrade
    3. apk add sqlite-static
    4. crystal build src/ktistec/server.cr --static
    5. exit
  • run (after copying the executable to the vps)
    • SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt ./server

#ktistec #crystal

i'm on a serious they might be giants bender...

#tmbg #joinus

commits 99a0fd6 to 70bcf3f implement metrics and charting.

inbox and outbox activity

an instance of the Point model records an occurrence of an event—for example, the arrival of an activity in my inbox. points have a timestamp and a value and can be aggregated by day, week, etc. aggregation takes into account the timezone of the account that's viewing the chart so you'll need to specify a timezone during setup or in your account settings. i use chart.js for the charts.

i'm only collecting inbox and outbox metrics right now, but this will expand to include other types of metrics—social events, errors, etc.

looking at the chart above... i clearly need to post more...

#ktistec

i spent most of the summer cleaning up the codebase of my covid project (aka ktistec).

in theory, ruthlessly refactoring should be a pleasure. truth be told, i don't enjoy it as much as building new features. nonetheless, everyone else—including my future self—should find things more consistent.

things i did include replacing ecr templates with slang templates, using form helpers to make forms behave more consistently and to reduce boilerplate, etc. etc. etc. i also moved from turbolinks to turbo, which allowed me to remove my custom code for making updates to parts of a page. i know it's not cool but i'm a fan of html over the wire. i also fixed/improved timeline handling and refactored population/management of timelines and notifications. i really need to refactor handling of all side-effects—i just found another place in the code where out-of-order messages result in duplicates in the inbox.

(interesting aside about that... it's possible to get a forwarded create activity from a source before receiving the create activity from the origin itself. it's not surprising in retrospect. the origin was busy sending to followers and i was in the queue. meanwhile, another follower who was mentioned in the related object broadcast the activity to their followers...)

#ktistec

an unfortunate encounter

with only seven hit points remaining and having already used relentless endurance, atorash, the half-orc ranger, races around a table to close with the griffon...

#dnd

i guess i'd never watched the video... this is just hilarious...

https://www.youtube.com/watch?v=8lsWeBNb_eI

#tmbg #ill-be-haunting-you