agnos.is

The agnos.is blog

Published: 2024-03-24T23:10:20+01:00

gemini://agnos.is/section/trackballs/

In the spirit of the small web, I have created a new section page about my favorite input device: the trackball mouse! Trackballs are a bit obscure in the modern age of touchpads and optical mice. But there is still a small yet dedicated group of computer users that use trackballs as their primary way of interacting with their machines. Personally, I switched to using a trackball along with a mouse a few years ago due to RSI and ergonomics issues. After trying 4 different trackballs, I finally found the perfect one for me.

For whatever reason, trackballs seem to be a bit more complicated when it comes to finding β€œthe right one” compared to a mouse. Any mouse will do (though some are obviously better than others), but due to the way one holds a trackball, it needs to fit the hand β€œjust right,” and the ball needs to move β€œjust right,” and the buttons have to be within just the right distance.

My Perfect Trackball

My trackball of choice is the GameBall.

At risk of sounding like a shill for the GameBall, it truly is one of the best trackballs available. While its primary marketed use is gaming, it works perfectly fine for any regular computing task.

Other Brands

Other popular brands include Kensington and ELECOM. I can recommend both, although the ELECOM trackballs often have low-quality bearings that need replacing in order for the ball to move truly smoothly.

License: CC-BY-SA-4.0.

Written by: @[email protected]

Published: 2024-03-24T16:19:58+01:00

I have made a small update for gemfreely, and have some plans for the roadmap ahead. I've been thinking about how to implement comment sync, as well better ways of serving the blog.

🦠 Germ Update

gemfreely has been updated to 0.1.7 in order to integrate some bug fixes from the underlying Gemini protocol library: germ.

Germ – 🦠 The Definitive Gemini Protocol Toolkit

This is the library that powers Gemfreely's connection to Gemini and parsing of Gemfeeds. It's very easy to use, and has now been updated to allow better detection of MIME types (Atom vs Gemfeed, for example), and I can remove the kludge fix for emojis in title headings.

πŸ›£οΈ Roadmap

The next major thing I want to add to gemfreely is the ability to sync comments coming in to the blog post from the Fediverse. This is somewhat difficult, because WriteFreely does not really do anything with replies to comments (it's a request feature). The recommended workaround is to add a separate account to the signature of the post, so that account gets notified by replies from other users. This is the path I will try first.

  • Integrate a Mastodon/Misskey API client.
  • Listen to notification stream, and write comments to Gemtext files.

I have also been considering integrating Fluffer, an experimental Gemini web app SDK for Rust. This would allow gemfreely to run in an actual server mode, and act as a proxy to WriteFreely itself. I'm not sure how I'll apply that yet, though.

Fluffer – an experimental crate that aims to make writing Gemini apps fun and easy

License: CC-BY-SA-4.0.

Written by: @[email protected]

Published: 2024-03-22T19:21:13+01:00

Linux-libre 5.15.151 Gentoo dist-kernel

The stable 5.15.x dist-kernel for Gentoo has updated to 5.15.151, and a new Linux-libre dist-kernel release follows it on my personal overlay.

gemini://agnos.is/projects/linux-libre-gentoo/

gemfreely 0.1.6

I have also updated gemfreely to 0.1.6:

  • Static binary releases (for Linux)!
  • Gemfeeds whose titles start with an emoji are now handled correctly.
  • Changes to internal code structure and cleanup (removal of unused files).

The most important change for in this release is that new releases are now available as statically compiled executables. You can just download and run gemfreely without building it from source using cargo.

Grab the new release here What is Gemfreely?

License: CC-BY-SA-4.0.

Written by: @[email protected]

Published: 2024-03-21T21:19:34+01:00

There is now a page on the capsule for the gemfreely tool.

gemini://agnos.is/projects/gemfreely/

This contains an intro to the tool and basic documentation.

License: CC-BY-SA-4.0.

Written by: @[email protected]

Published: 2024-03-21T14:22:58+01:00

The gemfreely command supports sanitizing the generated Markdown files by stripping out text before and after certain points in the file, based on a string marker. The Justfile accidentally had a space in both markers, and thus it was missing the markers in the gemtext files. This should be fixed as of this post... I hope. It's time to add some tests to gemfreely.

gemfreely (crates.io)

License: CC-BY-SA-4.0.

Written by: @[email protected]

Gemfreely now on crates.io

Return to Posts

Published: 2024-03-21T14:18:49+01:00

The Gemfreely tool is now available to install on crates.io:

cargo install gemfreely

It also now supports basic error reporting, along with an optional date format override for Gemlog Atom feed date parsing (the default format is the one used by the atom.xml of this site). I will next add documentation to it, and then move on to better error reporting, which actually includes context of the validation failures. Right now, the error doesn't really give the user a clue where it happened.

The CI pipeline that builds the Gemini capsule will now also automatically synchronize to the Fediverse via WriteFreely, so this post SHOULD show up in WriteFreely shortly after it's posted to the Gemini site... We hope.

The next step is to somehow redirect the WriteFreely instance to my static site, as WriteFreely is only really used to push things to the Fediverse; I'm not necessarily interested in exposing it as a separate site.

License: CC-BY-SA-4.0. β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€— Back :: /posts Home

Written by: @[email protected]

Gemfreely: Synchronize Gemlogs to WriteFreely

Return to Posts

Published: 2024-03-21T12:10:52+01:00

I have created a tool to enable β€œintegration” of this Gemini site into the wider Fediverse. It is called Gemfreely, and it performs a one-way sync of a Gemlog feed to a WriteFreely instance. The tool was created for my specific requirements, but should be applicable to many/most Gemlogs.

The code can be found here:

https://git.agnos.is/projectmoon/gemfreely

Documentation is (or will) be found at the associated Git repo. The next major items on the roadmap are:

  • Some kind of comment integration.
  • Sync updates to Gemlog posts as WriteFreely updates.
  • Broader compatibility with more Gemlogs, as there's no doubt some bugs.

The tool will remain a one-way sync from Gemini to WriteFreely, aside from the comment integration (when implemented). It will not sync WriteFreely posts to a Gemlog. At least, I will not write that code! Someone is welcome to contribute that.

License: CC-BY-SA-4.0. β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€—β€— Back :: /posts Home

Written by: @[email protected]

Published: 2024-02-10T12:33:58+01:00

Words have power, and the paradoxical nature of the vocabulary used in Geminispace is symbolic of a greater underlying change that society must embrace.

Surrealism

I have noticed that a lot of the naming and vocabulary in Geminispace is based on astronomical terminology. And I like it. Much of Geminispace has a slightly surreal feeling to it, one in which I am eager to participate. The feeling that you are floating in space, a vast universe before you, with only you and the fundamental forces of nature as your companions, is manifest in the way we write the words presented on capsules. That feeling appears in the name of the protocol, the standard port (1965), and in many of the capsule names used.

It evokes a specific feeling, one that for me represents the hope of something new, an exploration of deep possibility and potential. The feeling of vastness is paradoxically coupled with the close-knit nature of the small web (let's face it: Gemini is not well-known or easily accessible to the average user). Those of us who are in Geminispace are all explorers of a new method of thinking and doing things with technology. Words have power, processes have power. Technologically speaking, Gemini is a reaction of sorts to what the Web has become, but there is a powerful symbolism behind it, and that symbolism is attached to an ever-growing movement. Gopher, Gemini, the Fediverse, Matrix, XMPP, and other technologies are different facets of a larger current of social change.

The Cathedral and the Bazaar

Large corporations have built the cathedral and locked it down, while we continue to mingle in the bazaar. We in the bazaar do not always agree on β€œthe right way” to do things (and in fact, that disagreement can sometimes be a hindrance), nor do we even all have the same opinions or ideologies. But what matters is the unified attempt to reclaim and redefine technology in a way that works for us, rather than exploiting us.

One of the most important things we can hope to achieve from these disparate movements is an embrace of digital democracy, where technology works for the interests of society and a free people. This is even more important in an era where generative AI and deepfakes are causing disinformation to rocket out of control. Projects like Gemini are a simple manifestation of a much greater obligation that we have. The promotion of innovations like Gemini pushes the idea of digital democracy, privacy by design, and decentralized control over our own data into the public mindset. Telling a friend about something like Gemini might seem inconsequential (and when measured alone, it probably is!), but it furthers the greater behind it all, even if in the most minute way.

Gemini isn't going to be the thing that helps people take back the internet. But it will be one building block in an optimistic future where user freedom and privacy reign supreme. Technology alone will not bring about this future: it's about mindshare, cultural shifts, and regulation, too. These things are arguably even more important than the software itself.

Filed under: opensource, ideology, gemini

License: CC-BY-SA-4.0.

Written by: @[email protected]

Published: 2024-02-12T14:23:06+01:00

The capsule build system now uses the Just tool to make it easier to use gempost.

Gempost (GitHub) Just (GitHub)

The entire current content of the file is below. I will expand this over time to enable templating of static pages, and other things.

@ensure:
	which gempost >/dev/null 2>&1  || cargo install gempost
	which tera >/dev/null 2>&1 || cargo install tera-cli

build: ensure
	gempost build -c ./capsule-main.yaml
	gempost build -c ./astroponic-garden.yaml

post TITLE: ensure
	gempost new -c capsule-main.yaml -t "{{TITLE}}" "{{ lowercase(replace(TITLE, ' ', '-')) }}"

plant TITLE: ensure
	gempost new -c astroponic-garden.yaml -t "{{TITLE}}" "{{ lowercase(replace(TITLE, ' ', '-')) }}"

deploy MESSAGE: build
	git add .
	git commit -m "{{ MESSAGE }}"

Filed under: capsule

License: CC-BY-SA-4.0.

Written by: @[email protected]

Published: 2024-02-24T20:02:14+01:00

My beliefs in open source extend further than just software. I believe the principles behind the free software movement can be applied to most industries, in and out of the hardware space. Two things I have strong opinions on, that I've noticed myself repeating over the past few years:

  • 90% of what Apple does should be illegal.
  • Anything that can be connected to or interacted with in some way should be required to have a public API or standard.

These would be fundamental regulatory changes that would drastically alter society in ways both big and small.

90% of What Apple Does Should be Illegal

Something of a ridiculous clickbait way of putting this idea. In reality, it is more about a consumer-first focus and protecting the rights of the users of devices and software. The Digital Markets Act of the EU, as well as the EU forcing USB-C and replaceable batteries in mobile phones are perfect examples of this idea in action. Especially the Digital Markets Act.

Apple markets themselves as a company that produces user-friendly and privacy-respecting products. I argue that this is not true. Apple produces products that are EASY TO USE, which is different than user-friendly. Apple's products are actually user-hostile, locking you in to a specific way of doing things, and not playing well with any kind of interoperability. Almost everything they do is profit-driven, not user driven. This is noticeably true in their hardware. Dongles, removal of the headphone jack, strange proprietary cables.

Regulation fixed this.

More regulation is needed. Right to repair, for example, should not be done by companies out of the goodness of their hearts. It should be a legally required mandate.

Everything Should Have an Open Standard

Or, the Death of Reverse Engineering

I came up with this thought after dealing with many devices that can only be fully configured or used by making use of some official app (which almost always is hoovering up data). It is absolutely ridiculous that things you own cannot be used the way you want without submitting to onerous and possibly illegal terms of service. Everything has an app now. Almost everything doesn't need an app. Most internet-of-things (IoT) devices don't need to be connected to a cloud.

Local-first, open standards first. If it can be connected to, the manufacturer should be required to publish (or adhere to) some standard API/specification and make it possible to connect to and manipulate the device using that API or specification. A simple example is an electric scooter. Many of them have official apps that allow changing of acceleration sensitivity, max speed, etc over Bluetooth. There is zero reason for this to require a specific app. This could be both a standard protocol AND standard API.

Why should something like this be required?

  • Product longevity. Less e-waste.
  • Increased competition. Businesses can build on top of one another with new features.
  • Real ownership. No more buying a thing to own but not REALLY owning it.

License: CC-BY-SA-4.0.

Written by: @[email protected]