💾 Archived View for gemini.ctrl-c.club › ~stack › tinylog.gmi captured on 2023-11-04 at 11:09:31. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
author: @StackSmith
avatar: ☣
Task complete! I raided merriam-webster's dictionary, and now have an index of all (word . url) pairs -- all 338729 of them. I should've done it in the first place. The index provides metadata I always wished I had - for instance, words "apples" and "apple" point at the same url, which makes it trivial to remove -s plurals! In minutes I created a SpellBinding-appropriate dictionary with 90000+ words, double the size of my current dictionary. Now, there are a lot of Scottish and British-only words, so it's not entirely great.
But I can answer questions like 'give me all words that end in "wood"' that are SpellBinding-appropriate in Merriam-Webster's dictionary! There are 191!
Got caught up with a simple SpellBinding-related project: find all words ending in -WOOD. Started with 87, but could not stop, and manually dug up more words - 206 now.
gemini://gemini.ctrl-c.club/~stack/gemlog/2022-08-16.wood.gmi
Amazingly, there is no reverse dictionary anywhere on the net! There are a few semantically reverse dictionaries, but no literally starting-from-the-last-letter ones.
I've been putting it off, but I have to scrub Merriam-Websters, since it is my reference dictionary. The API does not seem that useful for weird tasks like this one. I think scrubbing will work, as long as I do so respectfully over a few days and randomize my access...
Time flies! I haven't posted here in ages. I've spent the last week messing around with fun things: a vector-graphics game support library. I do love asteroids and looking at some other vector games from the old days makes me feel particularly good. Raylib is a fun backend and coding in C is kind of therapeutic.
A quick proof of concept in a pixel-acurate recording of a few seconds of my display-list-driven prototype:
gemini://gemini.ctrl-c.club/~stack/gemlog/data/aster1.mp4
Unfortunately I screwed myself: I pointed out a bug to @Skyjake, and the 'correct' implementation removes the possibility of using session ids via input URLs, as no Spartan server does things 'correctly.
I have to throw away a bunch of code that will no longer work. But I have another trick up my sleeve for managing sessions.
Listening to Konpeito music over and over again :)
tilde.cafe now has a spartan server! And my spa client is working out pretty well for a minimal client... I am looking forward to using spartan as my playground for a tinylogging server/service...
spa, my Spartan browser framework is up and running.
gemini://gemini.ctrl-c.club/~stack/gemlog/2022-03-05.spa.gmi
It is my first practical piece of HorseWare, built to Whinam principles (immutable log, indices). It also introduces 4-character `sigils`, durable mnemonic devices to represent URLs.
Recent discoveries:
What a cunt. Anyone who buys a Tesla is an ignorant asshole, best case, or just a plain old asshole.
My Spartan client is finally getting close to working, kind of. The client itself is trivial, but the URL sigil bookmark/cache system that gives every URL seen a 4-letter shortcut has been an interesting animal to code. Also, trying out the Whinam datastructure of using an immutable log with an index as a generic datastore is hard work in an entirely uncharted territory. Anyway, moving slower than anticipated, with much procrastination and uncertainty about my actions.
Wordo is now on full auto. A cron-driven script selects a new random word from the dictionary of ~6000 word and sets up a new game at 08:00 UTC.
gemini://tilde.cafe/~spellbinding/wordo/dev/cgi?
Damn, the re convention is a little cumbersome! Am I even doing it right?
Acme editor... I keep trying to eliminate the mouse, but find that I really can't - even when I use vim (poorly) I wind up switching to another terminal or something that is more easily mouse-driven. And copy-paste with the middle button (linux) is a godsend.
So I wonder if I would just love Acme, paradoxically. I have some intimate experience with Project Oberon which has a similar ad-hoc button-making capabilty, and that's _fabulous_. Sadly I don't like Oberon much as a language, perhaps unfairly, but even the idea of, for the rest of my life, typing capitalized POINTER TO seems dumb.
I don't know why the idea of placing contact information into a well-known place scares the crap out of me! It's not like I am hiding my email, but the idea of a spider harvesing all the emails in gemini space so easily just sits wrong. It's not that hard to get - just look for email addresses at index.gmi, or just scan all tildes for usernames (which correspond to the emails there). So I don't know what I am scared of.
I am also pathologically afraid and annoyed that gemini content is being proxied to the main web. I don't want them reading our shit! Well, at least they can't play SpellBinding...
Got bogged down in URL normalization. I should've just written the code to do it from the start instead of wasting a couple of days looking for a library and trying to adapt it, then realizing it has a gaping hole (and is designed by an ignoramus). Remember the Forth way:
@bacardi55: You go!
So I have a prototype that loads and renders a page, and databases the links. But I hit a snag: a brower can just send the links to the server as they are written in gemtext, but since I am databasing the links, I need to normalize them. This is not hard, but is nasty business full of corner cases.
Cool! I have several modules working:
All I need is to tie them together. I could probably string it together in the shell, or monolithic for now. Links can be navigated as numbers from the current page, 4-char codes via the mapper, or typed in as full urls. Suckless-style configuration can work - just change the colors and recomple, which is instant with a 20K executable...Sticking to spartan for now to avoid dealing with TLS... Will have a working browser with a link database tomorrow (I hope).
Finally got to work on my old idea of a modular browser. Starting with a URL mapper. It maps URLS to 4-character codes, allowing up to 1 million URLs to be 'shortened'. This code will be presented in my CLI browser (before each link), and the user can go to any link encountered by typing in 4 characters. Not just a link on this page -- any link ever seen! This works as a URL shortener, a way to navigate links, a history cache, and a 'bookmark' system of sorts.
I wrote a spartan 'client' toy in C. It's a start.
https://tildegit.org/stack/spb
I just found mozz's Spartan protocol! And his reference client. And it turns out there is a bunch of stuff there. I really love the simplicity. tilde.team has a spartan server! And it supports cgi (although I cannot figure out how to get data off the url past the ?... But it's a start.
Anyone using it? How do you browse?
I am not sure how I feel about Pleroma, or the Fediverse in general... It looks quite noisy, but I really haven't been a part of it enough to have an opinion. I know I don't like most things about twitter or facebook. Elixir is interesting to me, but again I know nothing about it...
I've been thinking about tinylogs, feeds and federation...
Some ideas on how something like it could be used to simultaneously fill all social networking needs, from chat to email to bulletin boards to gemlogs and magazines -- in the (fictional?) land of intelligent horses:
Ah, done with the chores: checking tomorrow's SpellBinding and Wordo games. Always best to do it early before my brain gets fuzzy. I really should automate it more for wordo. I would like to be able to set up a whole month's worth of games in an hour or two, and let it rip. SpellBinding is almost there, but I still have to mess with the dictionary a lot, and then update all the pre-made games...
I should've done this ages ago. What a great way to say something quickly! It was also a pleasure to find bacardi55 aggregator. I really like the gtl TUI tool, but sady it's in go, and I dare not install anything on my current machine...
Wait, it works at a tilde! And it is cool.