scalajs
for a few weeks now. I rarely write user interfaces, so I'm not exactly learned. But I can say that the combination of scalajs
and the laminar
library is really nice to work with.
# I am the Watcher. I am your guide through this vast new twtiverse. # # Usage: # https://watcher.sour.is/api/plain/users View list of users and latest twt date. # https://watcher.sour.is/api/plain/twt View all twts. # https://watcher.sour.is/api/plain/mentions?uri=:uri View all mentions for uri. # https://watcher.sour.is/api/plain/conv/:hash View all twts for a conversation subject. # # Options: # uri Filter to show a specific users twts. # offset Start index for quey. # limit Count of items to return (going back in time). # # twt range = 1 2032 # self = https://watcher.sour.is?uri=https://anthony.buc.ci/user/abucci/twtxt.txt&offset=132 # next = https://watcher.sour.is?uri=https://anthony.buc.ci/user/abucci/twtxt.txt&offset=232 # prev = https://watcher.sour.is?uri=https://anthony.buc.ci/user/abucci/twtxt.txt&offset=32
scalajs
for a few weeks now. I rarely write user interfaces, so I'm not exactly learned. But I can say that the combination of scalajs
and the laminar
library is really nice to work with.
h
~ $ adb connect
adb: usage: adb connect <host>[:<port>]
~ [1]$ adb connect 10.0.0.234
missing port in specification: tcp:10.0.0.234
adb
, those square brackets around :<port>
are supposed to mean it's optional.
caddy file-server
is meant to do this. If you add -- domain foo.TLD
at the end it magically does https for you too.
systemd
unit isn't great, but it works to start yarnd
and restart yarnd
on reboot.
[Unit]
Description=Buccipod yarn.social
After=syslog.target
After=network.target
[Service]
Type=simple
User=abucci
Group=abucci
EnvironmentFile=/etc/default/yarnd
ExecStart=/usr/local/bin/yarnd -d /var/local/lib/yarnd/data -s bitcask:///var/local/lib/yarnd/data/yarn.db --admin-email "abucci@bucci.onl" --admin-name "Anthony Bucci" --admin-user "abucci" --descriptio
n "Buccipod, a yarn.social pod" --lang "en" --name "Buccipod" -u "https://anthony.buc.ci"
TimeoutSec=300
[Install]
WantedBy=multi-user.target
grep
and wc
make
, and it'd explode. After reading the weird errors, you finally figure out that SpecialSoftware depends on libFoo. So you'd download the source code for libFoo, try to compile it, and it'd explode.
fail2ban
and set up rules appropriate to yarnd
. I'm not familiar enough to say what those should be, but blocking http POST floods is a good idea. You can also manually add IP addresses to fail2ban
jails, or semi-automate that where you read the IPs you want to ban from a list that you update regularly.gum
, which looks like a great way to add interactivity to shell scripts. charm cloud
part of it. Even though they say they end-to-end encrypt anything sent to or stored on their servers, and even though I mostly believe that, there's no way to verify. Reading the source code is not verification because there are no guarantees that what's running on their servers matches what's in the source code. So, it's safest to self host, and I'm glad they provide that option.
scala
and haven't done any jvm
heap of GC tuning yet, so that's another way to improve performance.
scala
world I like the approach the Laminar library takes. Somewhere in the guts of it is an Observer
pattern but the abstraction presented to the typical library user is a bunch of signals that you wire together, some of which require responses.
Observable
and that is why its orbit is the way it is π
Observable
pattern has caused a lot of damage to how people think about reactive systems.
scala
functional effects libraries π
unison
seems to address several pain points, and I think their big idea of hashing parse trees and keeping an ever-growing database of code that is easy to marshall over the network if you want is very cool.
twtxt
feeds but then stopped. You can goodl "twtxt.txt" and find lots. Hopefully with a nice web app and phone app and cli tool like yarn.social has enough critical mass will build.
yarnc
. I've mostly been using the web app to experiment, but some days I'm mostly in the command line (I'm in tech and code a fair amount) and it's cool to be able to dash off a thought from there. I liked that about twtxt
.