I'm Ross McDonald. Geek, thinker, Open Source committer, calisthenics practitioner, Italian and Spanish language learner, gamer, Sci-Fi fan, comic/Anime/Manga consumer, coffee and wine lover, husband and father. Exploring the web of knowledge across multiple protocols - gemini and http.
This simple OpenBSD setup post relates to the recucing over software and hardware thread and specifically[1]. It is my intent to work through my own re-familialarisation with OpenBSD - no matter how simple or obvious, so this will save me from any unecessary processing or decision making in the future or equally work for anyone starting out for the first time. I may well be frequently stating the obvious. We'll assume this is OpenBSD on a server. Then we'll start from the point you have created a non-root user and probably setup 'doas' (which is basically sudo). In my case all of the following is with OpenBSD 7.5. First lets get vim on the server. This should be really straight forward, but surprisingly it will make you think for a moment (or at least make a choice). At your prompt run: YOUR_MACHINE$ doas pkg_add vim You will probably be prompted for a password - supply it. Output is something like: mbiguous: choose package for vim a 0: <None> 1: vim-9.1.139-gtk3 2: vim-9.1.139-gtk3-lua 3: vim-9.1.139-gtk3-perl-python3-ruby 4: vim-9.1.139-gtk3-python3 5: vim-9.1.139-no_x11-lua 6: vim-9.1.139-no_x11 7: vim-9.1.139-no_x11-perl-python3-ruby 8: vim-9.1.139-no_x11-python3 9: vim-9.1.139-no_x11-ruby You'll want to choose 6 in this case because you'll be running vim in the shell. Next lets get git setup. I've had enough of Github and its BS AI and anything else Microsoft may be doing with it and my code and data that I've either not heard about yet or don't have the time to research. The likes of Sourcehut is appealing but I don't want to pay to host repositories. Why not a bare bones install of Git on my brand new OpenBSD server then? At your prompt run: YOUR_MACHINE$ doas pkg_add git YOUR_MACHINE$ doas mkdir -p /home/git YOUR_MACHINE$ doas user add git YOUR_MACHINE$ doas chown -R git:git /home/git YOUR_MACHINE$ doas chsh -s $(which git-shell) git We'll assume you end up with a verion of git that is 2.44.0 or a little later (2.44.0 specifically requires a number of commands below to be precisely copied - e.g. maintenance related tasks). Then append the following to /etc/ssh/sshd_config with config for the git user: YOUR_MACHINE$ vim /etc/ssh/sshd_config Paste: Match User git AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no PermitTTY no Create a repository: YOUR_MACHINE$ doas -u git git init --bare /home/git/YOUR_REPO.git Output from this will likely warn you about 'master' branch as a name being subject to change - we can deal with that later. Change directory into the repository you created (e.g.): YOUR_MACHINE$ cd /home/git/YOUR_REPO Now start git maintenance: YOUR_MACHINE$ doas -u git git maintenance register Output from this can be found in /home/git/.gitconfig. Now run the maintenance once so relevant crontab entries are created (ensure you are in the directory for the repo you created): YOUR_MACHINE$ doas -u git git maintenance start Output from this will likely give you some info indicating 'no crontab for git'. You can ignore this - the crontab entries wlil have been created - you can check them. YOUR_MACHINE$ doas -u git crontab -l Finally back on your own machine clone your repo (or add it as a remote to a freshly created local repo) - however you'd like to work with it. Don't forget to add your public ssh key to the git user on your OpenBSD server for scp style clone or remote add syntax. [1] https://r0ss.me/notes/20240421-reduced-os-openbsd.htmlPublished :
I got into the idea of reducing over software and hardware before, initially touching on protocols[1] then community and ecosystems[2] and finally reading[3]. This time I'm going a little deeper under the stack - down to the bottom to look at the OS. If you can choose a protocol that is simpler and a medium (like text) that is simpler, why not an Operating System that is simpler. I've decided I'm going to get back into OpenBSD after many years away. After forking from NetBSD many years ago OpenBSD has favoured a security driven approach ever since. This means removing everything that should not be along for the ride whether that be programs or simply lines of code. Without getting into the details (which it would be hard to verify) - it is generally accepted that OpenBSD is smaller than both NetBSD and FreeBSD. The latter two are generally accepted to be smaller in size (where we are looking at the dimension of LoC usually) than Linux which is itself smaller than Windows. Correspondingly (and this is my experience too) most hold a view that Linux is more secure than Windows and OpenBSD in particular is more secure than Linux. On the one hand it is probably unfair to point at Microsoft and accuse them of being less secure than *nix flavours of OS... but... well... look in the news. The incidents involving government level security are particularly terrifying. Another benefit of the approach taken by the OpenBSD community and their freedom of choice in terms of the direction they take with the OS is that it can be very stable and slow to change (you could point to this and generally be right in surmising that the interfaces, protocols, code conventions and culture are well designed and nicely functional. I'll write a few entries on OpenBSD over time but thought I would start with the first choice on the way to getting the OS up and running - where and how to host it. The community at zaibatsu.circumlunar.space have been very helpful in pointing me at a few options in the US, Germany and the Netherlands with good OpenBSD compatibility. Options I considered were: ramnode (US), hertzner (Germany), openbsd.amsterdam. I don't have experience with any of them myself (but will report back when I do). For now I have opted for openbsd.amsterdam for the following reasons: it is hosted in the EU (and right now the rule of law and government is saner there than most other places), vps and cloud hosting orgs in the Netherlands are often sustainable powered or on the way to it (I do not know if openbsd.amsterdam is), it is pretty affordable and they send some of the money to the OpenBSD community. I'll talk a little about initial setup next time. [1] https://r0ss.me/notes/20240307-m1cr0punk-mininalist-net.html [2] https://r0ss.me/notes/20240310-sundog.html [3] https://r0ss.me/notes/20240317-on-reading.htmlPublished :
I was at my local Hackspace on Wednesday night building a bat detector. While I've been interested in electronics for a while I've never tried soldering, or surface mounted soldering. I've never really played with individual capacitors, resistors, LEDs in a meaningful way either. We used a Pistrelle Bat detector electronics project[1] which includes a Raspberry Pi Pico. For sure I was the slowest in assembling pretty much every bit of it, struggled to see what I was doing, but it was fun. The moment of truth was heating the board for the surface mounts to do their thing... there was a little popping but someone experienced was on hand to quickly flip any components back over that popped off in the heat. I was very pleased with the outcome, the detector passed all its tests afterwards and now has its battery pack temporarily soldered on. I took it out to the garden last night but sadly no luck bat hunting yet. Now I come to think of it I can't remember the last time I saw dark flitting shapes in the garden in the evenings... I hope they are still around. [1]: https://www.omenie.com/pipistrelle.htmlPublished :
It all starts with reading. It is so important. Can you enjoy it? Can you read free of distraction? Can you find the most useful articles, phlogs, Gemini capsules, books to read? Can you read with privacy? Can you read without the network getting in the way or without depending on a permanent connection? Can you read something where an unscrupulous other party is not trying to sell you something, not trying to peddle some new ill-conceived BS? I think enjoyment of reading, finding the most useful sources to read and all these other concerns are something we can work towards. Subjectively, if I can read whenever I like, with privacy, uncontaminated by the mistakes and agenda of others then I am happy. For a long time as many others are doing in http(s) land I put energy into finding distraction-minimised approaches to reading such as read-later, with browser plugins, first class browser functionality and apps. Sometimes I even paid for this. All the while I did not think on the fact it was the protocol itself which had led to this sorry state of affairs. Its always turned on, the connection is permanent, every screen of simple text I would like to read can be obfuscated into oblivion by greedy corporates or those who are just out to cause mischief. This always-on phenomenon, and the unbridled distractions conditioned us, removed our ability to select material to read with a real intent. Maybe it even degraded our ability to think in a focussed way, perhaps reducing the quality of our work. We have forgotten that we should not be jacked-in all the time. We forgot that good design is always about pulling something apart and understanding its component parts and how they may be fitted together in different ways. Does a piece of software need to be online to function? Should we be conflating content types in a single view without careful constraints being in place? Should BigTech be able to poison search results in any way they see fit? Reductionism again, plain and simple. Make it smaller, tend towards the micro.Published :
It was an inevitability... once I followed the rabbit hole down into first Gemini and then Gopher land I would find the world of the TildeNixes, the Pubnixes, all those places acting as a refuge from commercialisation, bloat, surveillance, hype and generally BS. Add to that the fact that I am a massive Sci-Fi fan (always have been) and zaibatsu.circumlunar.space seems to be the sweet spot. I'm very happy to be the newest sundog in that habitat. While I'm a complete newb to Gopher (I kicked off my internet world straight into email clients like Pine and then naturally stepped into the Web, I've been on a mission to minimise, reduce, simplify as many aspects of computation as possible for some time. I'm writing this with Emacs, my reading and rabbit hole following has been via Offpunk, and I run as much of my own infrastructure as possible on small tech (Raspberry PI etc). I'm learning a huge amount about how much further others are taking this and it is fascinating. So refreshing to see Sci-Fi used for good unlike the BS being peddled via various evil megalomaniacs in tech right now!Published :
I've been a web only digital citizen until recently though I have tinkered in the best bits of that web through initiatives such as Indieweb. The problem is Indieweb with its fantastic social first conventions and constructs still operates in a space where the very environment lends itself to hostile BS from BigTech. Mixing things up, publishing to Gemini Protocol and Gopher means I can more fully realise my attempt to reduce everything. I've been on a quest to use older more stable programming languagues (e.g. Lisp and derivatives) and smaller hardware (e.g. RaspBerry Pi and various ESP32 machines), why not simplify my protocols too? Smol-web seems perfect. Without losing myself in the various movements and their associated environments, Cyberpunk, Steampunk, Solarpunk etc - I'm thinking I can start with the Stoic approach 'make yourself right, never mind them' until I figure this out... of course my default will be to play by the rules as a default. Therefore I think I am going about this as a 'Micropunk', a self contained organism navigating the 'Nixpunk' landscape... and for good measure to simplify search terms when inevitably at some point that search is over the Web we'll mix in some binary to the name and make it 'M1cr0punk'. I'll write more about reducing over software and hardware here - and sometimes reducing over the information systems landscape (which tends to be a more complex topic for me at least in terms of putting words to thoughts). Also published at: gopher://zaibatsu.circumlunar.space:70/1/~r0ss/ gemini://r0ss.me/Published :
Having been lurking in Gemini Protocol[1] capsules for a while now enjoying the refreshing lack of bloat and big corp tracking and other BS I recommend you give it a try. There are some excellent Gemini clients ranging from terminal based to graphical with some examples handling offline beautifully e.g. Offpunk[2]. Most important there is a load of great content out there not all stuck in a zero sum game of search engine optimisation and dead-end cult like tech stack options. A new frontier worth enjoying. [1]: https://geminiprotocol.net/ [2]: https://sr.ht/~lioploum/offpunk/Published :
Following on from my last post on Guix it made sense to dig Emacs back out - and this time why not try to do everything with it? So far I have EXWM[1] configured so I can use Emacs as my OS, I've got the usual packages like org, org-capture and org-agenda setup and I have clojure, lsp[2] and cider all in place. For good measure I have IRC, mail and media setup via emms[3]. For Emacs itself, UI and config I've really benefited from Nano Emacs[4] and the fine config samples provided by SystemCrafters[5]. There is still so much more to do but I can already do pretty much everything I need. Launching Obsidian or browsers from Emacs as an OS is pretty awesome. [1]: https://github.com/ch11ng/exwm [2]: https://github.com/emacs-lsp/lsp-mode [3]: https://www.gnu.org/software/emms/ [4]: https://github.com/rougier/nano-emacs [5]: https://systemcrafters.net/Published :
I'd ignored Guix[1] before as I did not have enough time to try it properly. Having recently experienced some drift across my Linux machines (and having grown tired of tinkering at too low a level with bash), and realising my love more and more for all things Lisp (so far a 14 plus years love affair not including time spent with it at University) I decided to just install Guix first class on my laptop dev machine. I need not say anything more than... wow. [1]: https://guix.gnu.orgPublished :
It's the dawn of a new age - Lisp on my Inkplate 6 plus (ESP32)[1]. I've tinkered with the device infrequently since buying it in the summer (mostly because I am very busy - but partly because I can no longer bring myself to be excited or particularly interested in programming C). uLisp[2] changes the game however after being initially disappointed my board did not have enough Flash RAM to handle Clojurescript via Esprit. The installation was simpler than many blogs and sites make it seem to be. I used Arduino IDE this time as my dev environment is in flux post Sonoma. Couple of gotchas that will save you internet research time: ensure you choose the e-radionica Inkplate 6Plus board (code will not upload successfully with other options), choose 115200 as the upload speed, download the uLisp ino[3] as a raw file then upload to your device via USB-C, when uLisp is uploaded to the device use the Serial Monitor and ensure it is configured to 9600 baud, play with uLisp. I think the use cases are many and will write about some later. [1]: https://hackaday.com/2021/06/21/review-inkplate-6plus/ [2]: http://www.ulisp.com/show?3J [3]: https://github.com/technoblogy/ulisp-esp/blob/master/ulisp-esp.inoPublished :
It's not truly interoperable unless it is truly free[1]. Make sure wherever it is most important that you do not rely on proprietary. While you are at it make sure privacy is as good as it can be! [1]: https://www.fsf.org/blogs/community/software-that-supports-your-body-should-always-respect-your-freedomPublished :
This article on the beauty of finished software[1] made me think of all that I love about Lisp[2] and consequentially Clojure[3]. I think we should also think about the beauty of software that is backwards compatible and slow to change (think the opposite of move fast and break things - it doesn't need to move fast or break things if it is done right either first time or shortly thereafter), software that is the result of careful design, which consequently is pragmatic, extensible and a joy to use. [1]: https://josem.co/the-beauty-of-finished-software/ [2]: https://en.wikipedia.org/wiki/Lisp [3]: https://clojure.orgPublished :
I decided I do enough interesting things with the family to require me making an effort to remember where I go and what I do beyond an Apple Photos library. Accordingly I've taken the next #indieweb step and implemented a simple version of 'checkin'[1] using the excellent OwnYourSwarm[2]. [1]: https://indieweb.org/checkin [2]: https://ownyourswarm.p3k.ioPublished :
If you are trying to connect to a pi zero (w) over USB from Parrot and related Linux distros you can follow all the guides on 'connecting to pi zero via USB' you like, unfortunately it most likely won't work, nearly all of them missed the step that made it work conveniently for me... the Avahi daemon[1] - which layers on some service discovery goodness. [1]: http://avahi.org/Published :
'Arc'[1] deserves some kudos. If you are worried about the security of your secret things, passwords and otherwise and would prefer to keep them encrypted on a portable device not on a server or in the control of potentially unreliable parties give it a go. I've opted for a Pi Zero W and got a cool Pimoroni Pibow case for it. #privacy #arc [1]: https://www.evilsocket.net/2017/12/07/DIY-Portable-Secrets-Manager-with-a-RPI-Zero-and-the-ARC-Project/Published :
'Elon Musk secretly ordered his engineers to turn off his companyโs Starlink satellite communications network near the Crimean coast last year to disrupt a Ukrainian sneak attack on the Russian naval fleet'[1]. At this point I'm not sure how far control of expensive things IN SPACE which are critical to some down here is from whimsy. ๐ [1]: https://edition.cnn.com/2023/09/07/politics/elon-musk-biography-walter-isaacson-ukraine-starlinkPublished :
'UK Government Seeks to Dispel Encryption Concerns'[1] - I'm very glad that this has been stopped for now. This gives all involved time to find better ways to tackle the root problem. Privacy and the creation of a safe society are intrinsically linked and it is complex to understand how. [1]: https://www.govinfosecurity.com/uk-government-seeks-to-dispel-encryption-concerns-a-23021Published :
'Largest local government body in Europe goes under amid Oracle disaster'[1] - very sad, if nothing else because there is no reason to use Oracle, or IBM's alternative, or Microsofts etc etc. There are plenty of perfectly usable and free alternatives and there have been for decades. So so sad. [1]: 20230907-bigtech-needlessly-breaking-the-world.ednPublished :
'Twitter accused of helping Saudi Arabia commit human rights abuses'[1] - I don't know if it is true, but it is just one more bit of bad over there at 'X'... I'm re-evaluating whether I want to continue tweeting (xing?). Oh yeah, the verb is now broken/unclear... [1]: https://www.theguardian.com/world/2023/sep/04/twitter-saudi-arabia-human-rights-abusesPublished :
My Beepy[1] turned up yesterday. I've been busy but still managed to tinker enough to get Beeper[2] up and running on it. The fun factor is very high and I can see the promise of more projects to come. Right now I need to spend some time getting to know the Blackberry keyboard and learning how to use gomuks[3] as a Beeper client. [1]: https://beepy.sqfmi.com [2]: https://www.beeper.com [3]: https://github.com/tulir/gomuksPublished :
In the spirit of iterative design I'm revisiting my previous information sharing architecture[1] and Udat Watchy Github repository[2] posts with a few updates. I've settled on Vox Machina[3] as the name for my data and event handling architecture. Accordingly I have started to migrate my Github repositories over to the vox-machina Github organisation. I have also done some thinking about the structure of the architecture to see if it can meet all my needs which has updated the diagram a little. More to come. [1]: https://r0ss.me/notes/20230608-information-handling-early-thoughts.html [2]: https://r0ss.me/notes/20230609-watchy-udat.html [3]: https://github.com/vox-machinaPublished :
So Beeper is working out very well for me. I have setup Messages, Telegram, Signal, Discord and Google Chat. There are a few minor issues with images not working at times, but overall the interface is very usable and this is saving me a good amount of time. I can't wait for my Beepberry to arrive so I have my dedicated comms cyberdeck.Published :
I was one of the lucky ones on a 'bump' 500 to the top of the Beeper[1] list! Very excited to be able to start using it, have been waiting for a while. This gets be on one step of the way to using Beepberry[2] :-) Open hackable devices and unified messaging - that's a good place to aim for. Will report back on Beeper. [1]: https://www.beeper.com [2]: https://beepberry.sqfmi.comPublished :
I've been fascinated with working with information better for years. Some thoughts are starting to coalesce. These thoughts include how I'm looking into collection, processing, publishing and sharing information. This is a healthy blend of professional and personal interest. The diagram presents a number of ideas I will expand on as I develop my thinking. Here at least I've got some names for machinery that amuses me.Published :
Another day another 'silo' implosion. This time Reddit[1]. I'm confused, why are we enthralled by these silos? We can share our thoughts without paying, without our data being locked behind paywalls or preposterous third party API shenanigans. What do we need beyond Indieweb style protocols and cooperatively run hardware to enable them? Sure a little governance thinking... some of us are looking into that also. [1]: https://tinyurl.com/5rffp94vPublished :
Experimenting with using Github as my Task Manager. Pretty much all my projects are in Github anyway and the 'Projects' functionality cuts across repositories and integrates nicely with todos in repos. The mobile app provides for projects interaction which is a bonus. Currently the MacOS client does not seem to. Finally looks like I can create todos on some kind of recurring basis with Github Actions. I will report back!Published :
Beepberry[1] is what I was 'researching' when I was distracted by Watchy per my last note. I had to preorder instantly :-) There is something so appealing about these open hackable devices. I'm working on some projects that leverage new ways to make information accessible (and open up events that are trapped in silos) and orienting around fun gadgets makes it easier to get some skin in the game to ensure good design! [1]: https://beepberry.sqfmi.comPublished :
Came across Watchy[1] by SQFMI when going down the rabbit hole on hackable devices. I have always avoided hardware (seem to have infinite patience for software but am not confident with hardware). Had to buy it for the promise of open source hackability - a device that works how I want it to where the possibilities for what I can do with the data are endless. Early days, but it's on my wrist and counting my steps. Will report back. #watchy [1]: https://watchy.sqfmi.comPublished :
I've finished creating a first attempt at part of the Webmention[1] protocol on my little Indieweb toolkit experiment. So far only receiving 'reply' webmentions on 'notes' on my site, but its a start. When it is feature complete and robust enough I'll update my indieweb wiki pages. Feels good to build it out for myself - slowly bringing me back into the software engineering world after a considerable time away. #indieweb #webmention [1]: https://indieweb.org/WebmentionPublished :
I see material like the study commissioned by Meta (conjecturing on the value by 2035 of what it is peddling)[1] much as I see material published by a16z on the 'state of crypto'[2] - speculative BS created purely to sucker the next cadre of unfortunates in to parting with their cash. ๐ [1]: https://www.reuters.com/technology/metaverse-could-contribute-up-24-us-gdp-by-2035-study-2023-05-09/ [2]: https://api.a16zcrypto.com/wp-content/uploads/2023/04/State-of-Crypto.pdfPublished :
Ok, Fediverse posts (Indieweb notes only for now) seem to be working. I hit a snag in trying to trigger delete Activitypub activity from Bridgy Fed but that is potentially down to the particular tool I am using. It's been fun. Next on to building out some indieweb-login functionality on a pet project mine - more on that later.Published :
In a huge coincidence (World Password Day) yesterday (late evening) I spent a big chunk of time working on enabling passkeys, looking into the web dev side of them, and of course implementing the brilliant #indieauth. Very satisfying finding ways to use them in new projects I'm tinkering on, particularly where my projects concern friends and family, giving people ways to control their identity is just the right thing to do.Published :
I think this sentence is one of the best I have read in recent months. On the subject of ChatGPT Dan McQuillan says 'Instead of expressing wonder, we should be asking whether it's justifiable to burn energy at "eye watering"[1] rates to power the world's largest bullshit machine.' [1]: https://twitter.com/sama/status/1599669571795185665Published :
I'm having some trouble with definitions. Dichotomy - 'a division or contrast between two things that are or are represented as being opposed or entirely different'. Trichotomy - 'a division into three categories'. So my first thought on how to go beyond this where there is no obvious number is to use polychotomy - 'a division or separation into many parts or classes'. Reading a little deeper though (and this is not sourced from a definition) I see 'Di', in dichotomy means 'between or across' rather than 'two', perhaps the meaning of dichotomy has changed (or has been perceived to have changed) over the years. Now what to do?Published :
When you are building a Micropub capability on your indieweb site and you have too many post types to add and too little time - which are the most important? ๐ I've kept it easy so far, replies and likes - basic social capabilities - but I'm excited to do something more creative with reviews, favourites or something to do with one of my hobbies. #indieweb #micropubPublished :
So I don't want to use Twitter in the browser, with ads and an interface I just don't want to be forced to use. Currently using email notifications on an adhoc basis as the UI now - obviously far from ideal - what are other people doing? Obviously anything I post goes to my own Indieweb website first and any silo's after. Clearly I'm on Mastodon and enjoying! #mastodon #twitterPublished :
I have finally taken the first step towards implementing my own Micropub endpoint. Only notes (what I for some reason prefer to call posts) currently provisioned for but I can see the attraction of opening up my possibilities for adding content to my own site (and from there to re-posting in the silos). Feels good to bring the dev skills back online (albeit slowly - and wow the code is brittle right now) ๐ #indieweb #micropubPublished :
There is a feeling of great satisfaction to be had when in addition to doing your bidding as you use it in your daily work your computer is busy working hard on something else for you at the same time. In this case using Whisper by OpenAI to transcribe all those little notes I've made to myself while walking or generally away from โจ๏ธ. This is happening locally on my Mac and I feel like I finally have a minion ๐ค. #openai #whisperPublished :
Too much raw data is moving, obscuring the route to resolving issues in the real world - why is that? I'm interested in finding a better way to use information to resolve a subset of real world problems, without large and complex ontologies, without semantics bleeding across boundaries, without lock-in, without stifling innovation, without feeding 'big data' platforms or 'monism'. #signalsPublished :