Lamb: my upcoming selfhosted microblogging service
Started a new project called Lamb:
Literally Another Micro Blog.
Barrier free super simple blogging.
- sqlite based
- twitter like interface
- register to a flock, index of blaats
Started a new project called Lamb:
Literally Another Micro Blog.
Barrier free super simple blogging.
- sqlite based
- twitter like interface
- register to a flock, index of blaats
I spun up a test Wagtail install and followed its tutorial which lets you make a basic blog with categories, tags, galleries. The interface looks good on screenshots but is a bit unpolished in places, I tried installing wagtail-blog as well but it’s written for v2 and we’re at v4 now. That could be quite easy to update, I haven’t checked but might do, depending on motivation.
That said compared to the tutorial creating RSS feeds is not too hard, a WordPress Importer would be nice.
After that investigate some indieweb features.
So, I’m building a digital card game… (Follow https://2022.vandragt.com/category/project/ if you want to read my devlog).
Drinking coffee is a form of time travelling.
Fafi developer builds can now index individual urls, and extract urls from text based files (such as .html). That should make it more interesting if you want to search page content but don’t use Firefox.
Draft mail is the WordPress custom post-type of databases.
Ultimately all productivity apps for privacy focused folks trend towards a locally synced database containing stuff. A database searched with an interface you already use. This is e-mail, if that wasn’t already ruined by untrusted parties.
Some of these use a man in the middle process to filter content, and high volume incoming / outgoing mail might get your account in trouble. So there are webservices with paid options to sustain them, with data export and privacy concerns.
Search Firefox bookmark contents, with this commandline client. Fafi extracts the page content of bookmarks and stores them into a searchable SQLite database.
fafi.pex
file from the terminal.You can download the pex file, or use pipx install fafi
(requires pipx), and run it.
This is how I do it:
pyenv
. Modern python comes with pip
already installed. poetry
at the moment to manage them.pipx
if you want to install a global utility, so it’s isolated from any projects.Feedback welcome.
Working on an RSS service in 2022.
Castro podcast player seems abandoned? What have people moved to?
It’s possible to drag and drop a link from the Firefox download list directly onto a webpage!
I have recently been interested in using HTMX, but there’s not been any activity within the WordPress community as far as I can see. I hope to change that with HTMXpress (pronounced as HTM express).
HTMX allows you to annotate dynamic script style behaviour via custom HTML properties, using progressive enhancement. Perhaps you’re familiar with Hotwire (ruby on rails) or Intercooler.js (htmx predecessor).
By using the Rewrite Endpoints API to create a custom endpoint; and a bit of custom template logic, we can output a serverside partial or custom theme template.
Using this setup, WordPress can leverage HTML over the wire solutions such as HTMX.
HTMX then allows us to do dynamic serverside based rendering; live search and other features without the overhead and complexity of reactive JavaScript frameworks, whilst benefiting from trusted object and full page caching solutions.
Currently it’s a prototype. I’ll be blogging more about progress as things go on.
I tested and created a IFTTT recipe for backing up Liked Songs’ tracks : https://ifttt.com/applets/iMnNGt3V-backup-spotify-likes.
Despite the incorrect labelling “Saving a spotify track” means liking it, not “downloading to your device”. So you can add it to another Spotify playlist.
To get historical likes, cmd-a / ctrl-a (or equivalent) all Liked Songs tracks and drag them into the backup playlist.
This enables playlist options such as Playlist Radio giving you similar songs to the ones in the backup playlist.
I’m always collecting interesting links to read later, but like to try out a bunch of services. It’s very easy to add links to Safari’s reading list (particulary on iOS), so I used it quite a bit. Now I’ve switched to Pocket, I’d like to get those links out.
The thing you might not know is that Reading List items are stored as bookmarks.
Pocket can import browser bookmarks, but you might not want to import non Reading List items. This is how you do that:
reading-list.html
. Delete them from Safari.If you use Safari for regular bookmarks, restore the browser bookmarks without the reading list items:
If you have other browsers with bookmarks you want to add to your reading list, you can use the same idea to get them into pocket, using Safari as a way to prune any bookmarks you don’t want to import.
You might have noticed that after muting a Gmail conversation it pops back into the inbox.
Google says:
“Muted conversations will only pop back into your inbox ready for your attention if a new message in the conversation is addressed to you and no one else, or if you’re added to the ‘To’ or ‘CC’ line in a new message.”
If you find conversations are popping back into the inbox you can create a new Apps Script (from Google Drive) with the following contents and add a Timed project trigger (most easily available from the classic editor) to run it every 15 minutes:
function archiveMuted() {
var threads = GmailApp.search('is:muted',0,100);
GmailApp.moveThreadsToArchive(threads);
}
Adjust the number 100 to the amount of muted email threads you expect in your inbox every 15 minutes.
This is non-obvious, but might save you some time when using node based tooling:
I’ve taken to upgrade homebrew
packages once a week on Monday morning, and replacing any packages that cause issues in my workflow and managing them some other way. This seems to work quite well, and is a better workflow than waiting until a new package needs to be installed and then breaking lots of things.
It turns out Mail’s “Mail Privacy Protection” warns you it does not work, this can be because you have Network’s “Limit IP Address Tracking” enabled (it also doesn’t work with proxy’s and VPNs). The latter works only in Mail and Safari, so if you use another main browser you could simply disable the “Limit IP Address Tracking” option and benefit from Mail privacy.
How both these options work with iCloud Private Relay on Mac I’m not sure.
I keep forgetting the best way to do this, so thought it best to write it down.
Suppose you are building a library and an example project that implements it. You can do this in a single repository with an example folder, for small examples.
But for larger examples you might want to use a separate repository, with it’s own issues and documentation.
This can make it a hassle to work with the library and keep the project in sync.
Let’s say these are mylibrary
and myproject
which is using the library. Let’s assume you’re using PHP and Composer. mylibrary
is at version 0.1 but there are newer commits in the develop
branch.
$ cd myproject
$ composer config repositories.me vcs https://github.com/me/mylibrary
$ composer require me/mylibrary:0.1 --prefer-source
--prefer-source
means Composer will install from source
if there is one, the result is a git repository.
Once installed it’s then easy to switch to any other branch you want to work on:
$ cd vendor/me/mylibrary; git switch develop
You don’t have to register the repository with packagist if you follow this workflow! As a bonus when after you run composer update
in myproject
the mylibrary directory sticks with the branch.