God Emperor of Mastodon (new account)
@michal@sapka.pl
341 following, 904 followers
Periodic official communication, just to clarify a few things.
The BSD Cafe is an open, inclusive and friendly community. A community of people who try to be *“pro, not against”* and *“supporters, not haters”*: enthusiasts, friends, people who come here to share, to learn, to discuss. Not to hate each other.
This does not mean that we all have to think in the same way. Quite the opposite: it means that we can have different opinions, discuss them, defend them strongly, and question each other’s ideas.
What it does not mean is that it is acceptable to insult, threaten, attack people, or pretend that there can only be one morally acceptable position on every possible subject.
Calling the BSD Cafe a "Nazi Bar" from the outside simply because we do not automatically censor people who have an opinion different from yours is offensive towards the hundreds of people who are part of this community.
People are, of course, free to criticise what happens here. But expecting us to attack, ban or silence someone because you believe they deserve it, and then accusing the whole Cafe because we do not, is something different.
And I have seen something even worse lately: actual calls for hate. The equivalent of *“hey, everyone, go and attack this person”*, simply because that person does not share your position.
No. This is not acceptable.
And, dear friends, declaring yourself anti-Nazi while organising a crowd against somebody, intimidating them and treating them as an enemy who deserves to be attacked means using exactly the kind of methods you claim to oppose.
I do not say this lightly. I come from a family, and from a country, with a very real history of fascism and of the antifascism that immediately followed it. These are not just abstract words to me.
Hate is not tolerated, at any level, inside or outside the Cafe. The same is true for threats, intimidation and aggression. Believing that our cause is right does not make those behaviours more acceptable.
You disagree with someone? Say it. Explain why. Argue against their ideas. Support yours with all the conviction you want. But do not aggressively attack. This is not tolerated.
And expecting everyone else to attack that person too, or considering them somehow complicit because they do not, is something different. And it is not what I want for this community.
On any subject.
Even pineapple on pizza (!!!).
The Fediverse is a non-place, but it is made of real people. Wonderful people, very often. Let’s not turn it into version 2.0 of traditional social media, where every discussion becomes a war and anyone who does not think exactly like us automatically becomes the enemy.
In the last few weeks I have seen people stepping away exactly because of this. On different subjects, people accused of the worst things not because of something they had done, but because they had not said what someone expected them to say. Some of them, for their own wellbeing, simply decided to take a step back.
We all lost something because of that. Nobody gained anything.
So let’s keep supporting what we believe in. Let’s do it with conviction, and with firmness when needed. But let’s discuss ideas without turning people into targets.
From experience, I have learnt that real change also requires discussion, organisation, patience and concrete actions. We can disagree deeply without stopping considering each other as people.
This is the kind of place I want the BSD Cafe to continue to be.
https://journal.bsd.cafe/2026/03/31/im-just-the-barista/
#BSDCafe #Fediverse #SupportersNotHaters
I’m Just the Barista
The spirit of the BSD Cafe is to try to create a serene, open, friendly, positive, and welcoming environment for all who want to be a part of it. I am just the Barista. I can't solve the world's problems, but I can try to keep the counter clean, keep the machines running, serve a good BSD coffee, and ensure that, at least here, friends can find a moment of peace and constructive sharing. We need more bars and fewer shopping malls. [SENSITIVE CONTENT]
This is the text I wrote for my part of the talk “Liberating the Social Web Using *BSD“, presented together with the great Jeroen (@h3artbl33d) at EuroBSDCon 2025 in Zagreb. It’s not a transcript – it’s the base I worked from, the thoughts I organized before stepping on stage. What I actually said may have been slightly different in places, as it always is when you speak from the heart rather than read from a page. But these are the words, and the spirit is exactly the same.
Today, I’m not just here to talk about technology, but about how the principles of BSD systems can help us build healthier and more resilient online communities. And I’ll do this by telling you the story of the bar I founded, the BSD Cafe.
The idea for the BSD Cafe was born long before its launch but, as I often do, I thought carefully about whether to proceed. On 27 December 2022, I decided to register the domain. The name came from careful reflection with my wife. The idea was to create a virtual space that resembled not so much the cafes scattered around the world, but the Italian “Cafe” (which are called “Bar”).
For many years (and in many contexts, still today), Italian bars have been at the center of people’s recreational social lives. The Barista, the manager of the establishment, is not just a keeper but a point of reference: they don’t just serve coffee, but they listen and, if asked, offer advice with the wisdom of someone who sees many people and many things, even just out of the corner of their eye, and hears many stories. It used to be said that the best advisors were priests and bartenders, but that the latter certainly gave more entertaining advice.
And the bar is precisely the place where people go to relax. There are often televisions, tables for playing cards, and recreational rooms. The bartender ensures that everything runs smoothly, but also that everyone feels comfortable: that the person passing through gets directions to their destination, that the person who just walked in gets their coffee at their preferred temperature, and that the person who entered a little earlier, who needs some rest today, has a table in a more private area.
The spirit of the BSD Cafe is the same: to try to create a serene, open, friendly, positive, and welcoming environment for all who want to be a part of it. Those who just want to read can do so. Those who post a lot are welcome. Everyone should have the experience that makes them most comfortable and at ease. No one should ever feel forced to do something they don’t want to do; no one should ever feel uncomfortable. Therefore, everyone can choose a noisy and active table, or a more reserved and quiet one.
We can therefore assume that the BSD Cafe has an infinite number of available tables. We can thus call it a Turing cafe. 🙂
In Italian bars, people used to go (and in some areas, still do) to find their “bar friends”. These are people you meet at the bar without an appointment. You go to the bar freely, when you have the time and inclination, and you find the people who regularly frequent that place. And the choice of the bar often aligns with the theme of the bar itself. For example, in Italy, there are many “Bar Sports” where people meet to catch up, watch games together, and read and comment on sports news. The idea of the BSD Cafe is the same – a bar where enthusiasts of BSD systems, Open Source, and technology can be found. And for me, although I might occasionally talk about users (out of technical habit), at the BSD Cafe, there are only “bar friends”.
The BSD Cafe is a place where we are “for”, not “against”. Supporters, not haters. Bar friends, not opponents. This doesn’t mean that opinions on other software can’t be expressed, even extremely negative ones (I do it myself from time to time), but the general spirit is that of open source: to build, to discuss, to understand. Wars against other solutions, especially if they are open source, are not part of the atmosphere of the BSD Cafe. We have our preferences – we support our ideas and solutions, but we are not here to “destroy” others. Among our users, there are people who develop Linux distributions – and for me, that is extremely positive!
When people are at ease and in a serene environment, they are often encouraged to be serene themselves. Some are negative and aggressive because they absorb it from their environment. Some users of the BSD Cafe have told me exactly this: the civil, friendly, relaxed, positive, and constructive level of the BSD Cafe is good for their mental health. Conversely, there are unfortunately people who find pleasure in causing trouble, in muddying the atmosphere. For these people, unfortunately, there is no solution, but the Cafe is not the place for them.
Political discussions can be part of our lives and daily routines, but the BSD Cafe is not a political group. In recent years, politics has become a topic not of discussion but of conflict. It has always been so to some extent, but commercial social media platforms have understood that hatred and conflict generate engagement, and engagement means selling advertising – a lot of advertising. Therefore, at the BSD Cafe, you might occasionally hear talk of politics or the political repercussions of technical decisions and choices. And that is perfectly okay. But it is not a place from which political conflicts should arise. We are for – supporters, not haters. We are here to build, not to destroy.
The BSD Cafe is therefore a place centered on the BSDs, and all services are, therefore, based on BSD operating systems.
All technologies used must be able to run “from my garage”. I am a professional – so this is not a hobby project – but it must not depend on any proprietary solution or “Cloud” solution. Today, there is a tendency to standardize (too much?) everything related to technical choices. If it’s pro, it’s Kubernetes/cloud/serverless/etc. – if it’s not, it’s “old” or “not pro”. I am, and have always been, a proponent of OwnYourData. And this is a mantra at the BSD Cafe. All services are based on Open Source solutions, outside the dynamics and centralized management of the usual companies. We must be free and maintain our technological autonomy; we cannot create a system where our communications and our data depend exclusively on third-party companies. I have enough experience to understand that, sooner or later, even the most solid companies can fail or change their business model. The BSD Cafe is therefore always in favor of self-hosting. Sometimes this means losing users, but not bar friends. It happens, in fact, that at a certain point, friends decide to try the BSDs and start self-hosting their own services. For me, that is a success: one less number in the statistics, but one more success on a technical and ideological level. And for all intents and purposes, they remain bar friends, even if their “handle” is different from “bsd.cafe” – it is the spirit, not an extension, that unites us.
From time to time, I have migrated the main VM of the BSD Cafe. Sometimes I have given notice, other times not (the downtime is minimal). In some cases, the system has run from my home desk, from the Mini PC I used as a home server and now use daily as a workstation. At the core of the technical choices, in fact, is the decision not to depend (strictly) on any specific technology or hardware. For this reason, the structure of the BSD Cafe is replicable and malleable, as well as described in its Wiki: it is a community of technology enthusiasts, and I want them to judge the choices transparently and autonomously, without hiding anything.
The BSD Cafe was not created to be just a Fediverse instance but, from the beginning, to provide a series of services powered by the BSDs for enthusiasts and friends of the BSDs. To date, the main services are:
- A Mastodon instance – the beating heart of the BSD Cafe in the Fediverse, which currently has about 500 total users (now 600 – of which about half have been active in the last 30 days). This is where we chat, get informed, joke, critique, build, discuss, and get to know each other.
- A snac instance – also for access to the Fediverse. Snac is an example of lightweight software, with no dependencies, that is stable and easy to self-host. It does not use a database but the file system and is the basis of another project of mine, FediMeteo. The snac/ZFS combination is fantastic. The developer is a caring, helpful, and fantastic person. It is my first choice for personal projects and more – it currently has more or less 30 users.
- A Lemmy instance – blendit – which, however, is giving me problems and headaches. I’ve been thinking about it for a while; it might be the first of the BSD Cafe services that I will be forced to retire. More about this later.
- A Matrix server – based on Synapse, it has become the hub for many interesting topics both in the thematic channels (BSD-themed) and in the Lounge, the general channel, where we talk about a bit of everything. The server is federated, so it is also an access point for channels and groups on other servers. We chat, we discuss, we ask – a bit like with the Fediverse, but on Matrix.
- miniflux and freshrss – RSS is not dead – it is alive and well and still a fundamental tool for updates and consultation. Two jails, two services to give our friends a way to read the news. This is our reading corner, the newspapers, the newsletters. Here, you remain autonomous and in silence, you choose what you want to read, and you savor the content. Without advertising, without interruptions.
- wallabag – called “press” – to save your bookmarks, sites, articles. Save the web. Freely. Our post-it notes, but private.
- myip – by connecting to myip, you will get your IP back – both v4 and v6 – via telnet, http, https, ssh, etc. – ideally, it is an echo chamber, to “hear” the reflection of your own voice – that is, your own IP.
- wiki.bsd.cafe – the project’s homepage and a series of articles and content about the BSDs. It is not very rich in content at the moment, but some friends contribute regularly and keep the information in it updated. It contains articles on how the BSD Cafe is structured (for each service, an explanation of the division into jails, etc.). Our recipe book – for the coffee machine, but also for the BSDs!
- brew.bsd.cafe – powered by Forgejo, it has become the home for many projects by friends of the BSD Cafe. I use it daily for my own needs, and it is a way to avoid using centralized tools controlled by the “usual suspects”. And, unlike the main and most famous similar service in the world, it also supports IPv6! It is our creative workshop, the development den. The garage where we have our tools and build, collaborating.
- journal.bsd.cafe – the latest, in chronological order, added to the BSD Cafe. Our journal, what we want to tell the world and leave a trace of. It is a WordPress blog, federated in the Fediverse thanks to the ActivityPub plugin, where authors can create and publish articles, even those not strictly related to the BSDs. So far, various articles have been published, and some of them have had some success on sites like Hacker News or Lobste.rs – because quality is still appreciated, especially in the world of standardized and imprecise content from LLMs (or “AI”, as is fashionable today).
- There are other active services but not publicly usable, such as “tube” – our TV – Peertube. They are currently experimental.
Let’s get into the technical details:
The BSD Cafe is not “cloud ready”. The BSD Cafe was not created to be serverless. We love our servers, and we don’t need the “cloud” to run our services.
The BSD Cafe started with a FreeBSD VM on Hetzner in Finland for €3.29 per month. It is still active and is the primary for the entire infrastructure and is named “bsdcafevm”. It hosts the reverse proxy, in a jail, which routes all incoming connections, and is the “router” for the larger VM. This VM also hosts a “ns2” jail, which is the secondary DNS, and the “backup” instance of Mastodon, which helps with queue management and becomes primary when I shut down the other one during updates. For IPv6, Hetzner assigns a routed /64 block. I have divided it into /72 subnets so that I can route to other VPSs, services, etc., and provide an IPv6 address to any jail.
The main VPS, which hosts the services, called “bc01”, connects to this VM via Wireguard. bc01 has some particular characteristics, including:
- It was originally a VM on Proxmox, as I was using hardware I already owned. It is now on bhyve, on a FreeBSD host under my control (in Germany).
- It does not have a public IP assigned, but connects to the Internet only via NAT on the host. This is a clear choice: this VM should only connect to bsdcafevm. BSDCafeVM will forward connections from the reverse proxy and will handle “NATing” outgoing IPv4 connections from bc01. The Wireguard rules on BSDCafeVM will also ensure that IPv6 connections reach the jails of this VM. The purpose is simple: this VM must be able to be moved anywhere, and the services must be able to resume functioning immediately. And this happens because all it needs is a Wireguard connection to BSDCafeVM, so there are no services exposed directly. This is the reason why this VM has been moved many times without any changes to IPs, addresses, etc. More information on this VM later.
A small VM (for one euro per month) based on FreeBSD that, within a jail, has the ns1 nameserver, which is the primary authoritative one. This VM also serves other purposes from time to time, such as monitoring the rest, etc.
A jail within one of my FreeBSD hosts in Poland, on OVH, contains the media files for the Mastodon instance. This is the most voluminous part of the entire hosting setup because Mastodon downloads and reprocesses all the multimedia content it encounters. This is for two main purposes: to clean it, in order to possibly remove malicious content, and to ensure that users of one’s own instance only have contact with their own media repository, not with that of the original instance – both for performance and privacy reasons. This server has spinning disks. Initially, I used Minio, but over time, performance plummeted. A few months ago, I migrated to SeaweedFS, and I am very satisfied with it. The outgoing bandwidth of this machine is not very wide, and I have other services on it. For this reason, I applied a solution that I described in an article on my blog.
I have used some VMs or physical hosts (spread across Europe and the USA) to act as a CDN. The BSD Cafe’s DNS will return the IP (both v4 and v6) closest to the caller, among those available, and this host will connect directly to the media server, then caching the content. The problem, in fact, does not arise when a user scrolls through their timeline, but as soon as they publish multimedia content: all known instances will connect to download and reprocess that file, generating a spike. This has little impact if it is a normal post, but it is extremely voluminous if it is content of a considerable size, like an image or a video. In this way, the various CDN nodes will download the content only once and serve it to all instances in their area of competence. These CDN nodes also do other things, can be activated or deactivated based on my needs, and are based on FreeBSD, NetBSD, and OpenBSD (one of them is on OpenBSD Amsterdam).
Another FreeBSD VPS (which I use for other things) contains “status.bsd.cafe“, which is the jail with Uptime Kuma that shows the status of the services or any of my communications about them. I do not receive notifications from this host, but from another monitoring system, so it is only to show the status of the situation.
In practice, the BSD Cafe mainly needs the “endpoint” VPS, the VPS with the services, and the jail with the media, which could be condensed into a single system if desired. Everything else is optional and I keep it active as I have resources available on external hardware.
Many of the technical choices have been documented in articles on my blog or in the BSD Cafe Wiki.
But all of this requires backups. And the BSD Cafe has a clear and defined backup procedure.
The main VPSs – namely bsdcafevm and bc01 – are based on FreeBSD and, therefore, ZFS. Both have the same type of backup, defined as follows:
- A local snapshot every 5 minutes, kept for two hours. In this way, in case of problems, it is possible to “clean up the coffee drop” before the tablecloth is indelibly stained—as well as one per hour, kept for 24 hours.
- An external backup, performed at regular intervals, to an external backup host. The frequency varies from 15 minutes to an hour, depending on the available space and the load, which I modify according to my needs. All datasets of the VMs are copied, including system ones, for a possible quick recovery in case of a disaster.
- An external backup to a backup server of mine, one meter away from me. This happens every 24 hours, and I consider it the “extreme disaster recovery” because, in my opinion, the safest data is the data that is physically reachable. The disks of this server (which also contains other backups) are all encrypted with GELI, so in case of theft, they are unusable.
Last but not least, the physical FreeBSD host on which bc01 currently rests is also backed up every 15 minutes to another external backup server, so the entire disk image. An additional layer of redundancy, to help me sleep better at night.
From a technical standpoint, therefore, I have tried to create a simple but secure infrastructure, with the most granular separation possible (for example: the main Mastodon instance has a jail for Mastodon, one for the Redis for the queues, etc., one for the Redis for the timeline caches (only in RAM, does not write to disk), and one for the database (PostgreSQL).
Then there are the common service jails (unbound for DNS resolutions, smtp for sending and receiving emails, etc.).
Being the Barista of the BSD Cafe is a privilege and an honor. The success of the project has exceeded my expectations, and this has filled me with joy. The BSD community is fantastic, mature, intelligent, and positive. The friends who approach the BSDs absorb all of this and transmit it to others, creating a virtuous circle. But it’s not always roses. There are problems, from time to time, that need to be solved. And, to quote my previous talk: “The main challenge is often ideological, not technical“.
Apart from the problems with blendit – Lemmy – which accumulates all the media it sees in a frenzied way and never deletes it, as well as having created serious update problems – all the software is on average stable and reliable.
The most complex part of my role as a barista, in fact, is not technical, but human: moderation. The techniques of scams and disturbances are constantly improving, and it is increasingly difficult to distinguish a new friend of the bar from a troublemaker. But the biggest challenge is maintaining balance.
Our philosophy is clear: to be for, not against. Supporters, not haters. This principle is a conscious choice, in stark contrast to the dominant model of commercial social media. These platforms are often designed around an engagement economy, where algorithms optimized to generate conflict and outrage maximize the time spent on the site and, consequently, advertising profits. The BSD Cafe rejects this model. We are not here to capitalize on anger, but to build a refuge from the toxicity of the internet.
This approach manifests itself in the way we handle controversial topics. Recently, a technical theme with strong political implications has begun to appear in discussions. My line is not to censor the topic itself. I firmly believe in open discussion. I only intervene when the discussion ceases to be a critical analysis and becomes a personal attack. For some, this is not enough: they would like a total ban on certain topics and the immediate exclusion of those who introduce them. My experience, however, has shown me that a more patient approach is often more constructive. I have seen people support controversial software solutions simply because they did not know their background. Thanks to civil and informative discussions, they have understood the context, thanked the community, and made more informed choices. Banning them instantly would have been unfair and would have denied everyone an opportunity for growth.
However, this philosophy of constructive positivity has attracted a specific criticism: that of promoting “Toxic Positivity”. The accusation is that, in our desire to maintain a serene environment, we end up excluding those who are suffering, invalidating their negative experiences because they “clash” with the atmosphere of the bar.
This is a criticism that I take very seriously, because it touches the heart of the project. And my answer is that it is a fundamental misunderstanding of our purpose. The goal is not to deny that pain, injustice, and suffering exist in the world. On the contrary: the BSD Cafe exists precisely because the world is often a difficult place.
Our purpose is not to pretend that those who suffer should stop suffering, but to offer them a place where, for a while, they may not be defined solely by their suffering. A place where they can be, first and foremost, a technology enthusiast, a FreeBSD expert, a curious OpenBSD user. A friend of the bar. We are always ready to support, console, and help those who need it, but we want to protect that mental space where shared passions unite us and give us relief.
Fortunately, this vision is confirmed by the very people we are trying to help. The number of private messages of appreciation I receive from people going through terrible times far exceeds the criticism. They write to me that “the civil, friendly, and constructive level of the BSD Cafe is good for their mental health”, because it allows them to disconnect from daily dramas that would otherwise be unbearable.
I am just the Barista. I can’t solve the world’s problems, but I can try to keep the counter clean, keep the machines running, serve a good (BSD) coffee, distribute (many) stickers, and ensure that, at least here, friends can find a moment of peace and constructive sharing. But a bar is nothing without its regulars. And the success of the BSD Cafe is not mine, but that of the BSD Community and the friends who are part of it. The richness of this place is not only the quality of the Coffee (which, being BSD, is very high), but mainly the human richness of the friends who are part of it. And to them, to all of you, I say thank you. From the bottom of my heart.
We need more bars and fewer shopping malls, and that is why I recently also founded the illumos Cafe. We want people who sit down, who socialize, or who simply enjoy the atmosphere of an environment that is familiar, friendly, and positive to them. Like this conference and all the BSD Conferences, because the environment is the same. Enough of shiny shop windows; a good hot drink, in the company of friends, can help you live better. “From the people, for the people“.
@stefano it seems you are meeting the Paradox of tolerance.
@benedikt_lauenburg @stefano This. Tolerance for intolerance breaks the social contract that it tries to establish. Fascists, narcissists, and other bad actors have to be exposed and expelled for they will corrupt everything otherwise.
@simondassow @benedikt_lauenburg we’re saying the same thing, and I’ll clarify it. More about it as soon as I’ll be comfortable enough (on the move now)
@simondassow @benedikt_lauenburg Yes, but I think the paradox of tolerance has to be applied consistently.
We cannot tolerate intolerance, regardless of where it comes from, and regardless of whether the people expressing it happen to have an ideology close to our own.
Let me give you a real example that I have just been given permission to share, without identifying details.
A few months ago, after some encouragement from me, someone joined the Fediverse. Not the BSD Cafe, but a more general-purpose instance.
They started posting photos, thoughts and experiences, made quite a few mutual connections, and eventually almost stopped using their X account.
At some point, somebody asked why they had not deleted their X account completely. Their answer was simple: they still had a lot of content there that they wanted to keep, and some contacts who had not moved to the Fediverse yet. They hardly used it anymore, but did not want to delete it.
One morning they woke up and discovered that roughly half of their connections here had disappeared.
Then came private messages calling them a Nazi because they still had an account on X. A couple of messages contained very serious threats, including variations of "you posted photos, I know where you live", with additional details.
Then complete strangers started insulting them.
Someone had apparently posted something along the lines of: "Hey, X is a Nazi. Everyone block them."
That was enough: they tried to explain. It made no difference. Eventually they deleted everything and left, disappointed and bitter about the whole experience.
Who benefited from this?
Given time, this person would probably have brought more people to the Fediverse. They might eventually have deleted their X account too.
Instead, the exact opposite happened.
And this is precisely why I think we have to be careful when invoking the paradox of tolerance.
Being intolerant of people who threaten others, deny their rights, intimidate them or organise harassment is one thing.
Deciding that somebody belongs to a morally unacceptable category, and therefore intimidation, collective punishment or harassment against them becomes justified, is something very different.
Intolerance does not become tolerance just because we believe we are using it against the right people.
@stefano
And that's how I closed my LittleFedi account. Later, I'll tell you about my experience with these things.
@stefano
Stefano, I don't know what prompted this, but thanks for speaking up and making your position clear. I absolutely agree with what you're saying here (and in the responses to this post).
I trust your instinct to be able to distinguish between people who mean well but have their own opiníons on things, even if these opinions are maybe not exactly in line with what seems to be the consensus amongst others on the fediverse, and genuinely bad actors whose goal is to spread hate and promote dangerous ideologies like fascism.
And bringing up this "Nazi bar" analogy in my opinion says more about the person using it than the place they're talking about. I've seen people who pride themselves about stepping up against the "Nazi bar" happily orchestrate hate mobs against people who merely dared to disagree with them on a minor issue...
Pure joy
@stefano 4 sono meglio di 1 😜
Ja pierdole, do restauracji weszło czworo emerytów, najpierw byli gburowaci do obsługi, potem sobie głośno opowiadali żarty o "batyrze", a teraz puszczają rzeczy z komórek, też głośno. Radykalni kodziarze on tour 🙄
(USOTASOC simply rolls of the tongue)
I'm new in the #emacs world since this year and thought it was a good idea to submit a talk at EmacsConf to push myself to learn more.
It got accepted. Now I have to do the whole fake it till you make it thing?
https://emacsconf.org/2026/talks/local/
See you there!
Spoiler: How do you bake bread in Emacs?
@jefklak Congrats. Looking forward to whatever it turns out to be. One other thing to maybe think about is things like git-auto-commit-mode
@jefklak That sounds really cool! =) I've been using backup-walker and git-timemachine, and I'm looking forward to seeing what kind of interface you've been experimenting with. Also, I've been reading your blog for a while, so I was delighted to see a submission from you for this year's EmacsConf. Welcome!
I'd love to put some decorative stock art on the blank pages in #TwistedPresents, but I don't trust my ability to avoid AI images.
See: https://xteddy.org/music.html
Indeed, that URL and the information in it is perhaps twenty years out of date but still relevant.
Since almost two years ago, I've sent my dad a C90 cassette and have amassed around 26 of them:
https://docs.google.com/document/d/1V-0d5A7uiwdNvdJuOTRJeUfqLoZNDMytq5_js1231hQ/edit?usp=sharing
I have no intention of stopping -- and what fun it is!
@thomasadam The google doc is not viewable it seems (permission denied). ;
The list on xteddy works of course. Nice eclectic collection. Is this collection of physical media the only thing you listen to, or do you also listen to downloaded music?
@jns Hmm, The google doc should be word-viewable, I'll double-check.
Everything is what I own on CD or mini-disc, or tape, depending.
I do listen to streaming music in the car (due to convenience) but that's about it...
@jns My policy with recording C90s is such that if I don't own it, it's not going to make it onto a tape.
s/tape/tape|minidisc|cd/g
@michal Oh, sorry to hear that. I bet you could retrofit a CD player, no?
There are no Terminator films worth watching after T2.
There are no Alien films worth watching after Aliens.
There are no Avatar films worth watching.
Have you ever ran out of fuel while driving a car?
| Never: | 53 |
| Once: | 29 |
| A few times: | 14 |
| Many times: | 1 |
@Szescstopni I ran out of fuel once. On the Bay Bridge. At rush hour. On a first date.
As you may expect, the rest of the night did not go well.
@Szescstopni I was in a car that ran out of gas with someone else driving. I was 11. Fortunately, it ran out of gas at the top of a really steep hill, and momentum was able to get us to a gas station. :)
@CStamp I once ran out of gas about two hundred metres from a gas station, to which I was driving. Made it to the pump. Momentum, while sometimes dangerous, can be a life-saver :)
@Szescstopni @Flux I voted “never” but one time I was really pushing it and the car died like 30 seconds before the gas station, but I coasted in so I think technically that means I had *exactly* enough to get where I was going?
@Szescstopni Not sure if counts as the car was parked and it was the slightly sloped surface that made the little fuel I had not reach the pump in the tank. The other time while actually driving it turned out to be a faulty fuel pump. So the engine ran out of gas but not the tank.
Though I ran that thing on fumes as a rule so I'm surprised I didn't actually properly run out while driving at any time.
@Szescstopni Does it count as running out of fuel, when you run your fuel tank dry, but you have a full jerry can on board? Happened once for me.
@Szescstopni
Many times between 18 and 25 years old.
I never had enough spare money to put much fuel in and so kept on running out.
I eventually learned to work the other way around, invest in a full tank once, and top up often. But then I got into monitoring fuel consumption and recording it all manually (This is back in the 80s), and the easiest way was to fill the tank each time and compare the amount put in to the miles driven since the last refill.
So I always run a full tank now.
Battery charge is a different matter. I only charge up full if I know I will need the range for the next day. Otherwise, it is charge enough for the journey out and back.
@Maker_of_Things Right, for me this was usually a matter of money – still sometimes is, and my tank is rarely fu;;.
@Szescstopni Having a car with a wonky fuel gauge will do it to you. It makes life more *exciting.* Not. ;)
@jhv My case right now :)
@Szescstopni @grifferz no, but I've had the clutch completely fail and only just roll into the drive. Mechanic had to tow it to the shop...
David Chisnall (*Now with 50% more sarcasm!*) » 🌐
@david_chisnall@infosec.exchange
I have used vim since around 2000. I have written five books, a PhD thesis, a few dozen papers and over 150 articles with it. At this point, my higher brain functions are not engaged at all when I use a bunch of common vim commands, they just happen. Documents I wrote with anything else have random :w in the middle.
So I tried NeoVim when it was quite new. Vim that you are familiar with, but better? Great!
Persistent undo is one of my favourite features of vim (introduced a few years after I started using it). My .vimrc includes a couple of lines related to this. One sets the path to be under ~/.cache so the undo files do not clutter the rest of the filesystem (I do the same for the swap files). The other sets the undo limit to something large (10,000, I think) because disk space is enormous relative to pretty much anything involving human-readable quantities of plain text.
I don’t often need the persistent undo. But on the few occasions when I have needed it, it’s been invaluable: ooops, I deleted something from this file, maybe last week and one reboot ago, what was it? Undo until I find it, copy it, paste it into the current version. Or, a bit more commonly: I had this working, then I tidied it up ready to commit, now it isn’t working, what did I do?
Vim has kept this working across major version upgrades over a period of about 20 years. I don’t even think about it, it’s just part of Raskin’s First Law: A program may not harm a user’s data or, through inaction, allow a user’s data to come to harm. If vim or the computer crash, or if I close a file and come back to it six months later, my undo history is still there.
The first thing I noticed in NeoVim was that undo didn’t work. I tried opening the file in vim and undo didn’t work there either.
Neovim had changed the format of the undo files. It hadn’t upgraded the old one. It hadn’t used a different name for its undo files. It had just noticed the existence of a vim undo file, deleted it (losing all of the data in it) and replaced it with one that vim couldn’t read.
I raised an issue about this and was told that the persistent undo format was unstable and users should not rely on data being preserved in a feature explicitly called persistent undo. It had changed once and would probably change again.
And that ended my experience with NeoVim. The authors showed immediately that they absolutely could not be trusted with any of my data. Breaking persistent undo is something I could forgive as a bug, but the attitude that just because something is a persistent file on your filesystem that contains data that you might want is no reason for their program not to delete it meant they had no concept of a duty of care to their users.
Apparently now they’re platforming white supremacists. I am completely unsurprised. Different facets of the same underlying attitude.
@david_chisnall I've used vim since 1992. You lost me at looking for something new.
@flyingpenguin In 1992, Vim was something new!
@david_chisnall vimproved. not new vi
@flyingpenguin Of course, new vi was three years old by then.
@david_chisnall neo never actually means new. It means an old, discredited thing MAGAd. neo-Nazi, neofascist, neo-Confederate.
@flyingpenguin Aside: it was weirdly hard to find when nvi was first released. The closest I came was that FreeBSD’s man page says they first shipped it in 4.4BSD, but it’s not clear if it was written specifically because of the AT&T lawsuit or shipped in BSD because of that, and how much before the 4.4BSD release it was written.
@fanf , you might know the answer to this?
@david_chisnall @fanf Bostic built it for 4.4BSD, from Steve Kirkendall's elvis 1.8. So that's 1993, according to man page, after vim.
@flyingpenguin @david_chisnall
I too have used vim since the early 90s and learned TODAY that it has persistent undo!
@david_chisnall thanks. I was thinking of checking out NeoVIM, but now I won't bother.
Me neither. Thanks David, you’ve saved us. 👍🙏🏻
@Su_G @sybren There is also the related AI issue in both projects
https://mastodon.bsd.cafe/@ricardo/117167918002226808
@david_chisnall
Yup, not happy to see vim accepting slop, but there are a couple of vim forks that are rejecting them. As I said elsewhere in the thread, vim reached feature completeness for me a long time ago (I think 7 had some things I cared about? Not sure. Definitely before 8), so my requirement for a fork is:
I shall watch to see which one ends up being better at that.
@david_chisnall I, too, employ the Vim tool as an extension of my nervous system. I, too, have found the NeoVim to be less than desirable.
@david_chisnall I looked VIM up today. How do I get to know how to you it? Its interesting..
Honestly, I probably wouldn't recommend it for new users. It's a modal editor, which is a bit weird, and it's quite clunky for extensions. I use ALE to make it work with LSP servers but it's a bit bolted on.
For me, it has two big advantages:
Without the sunk cost of the latter, the former probably wouldn't be enough to keep me on vim.
That, "it runs everywhere", combined with "it *is* everywhere", was my reason to go for vi, back in the early 200x-es. It was just there on SunOS at uni that I could reach with ssh from the pool room. No other editor was.
You tease us with your Undo Life(tm) but do not grace us with your .vimrc snippets. Talk about clickbait....
Relevant parts
set undodir=${XDG_CACHE_HOME}/vim/undo//
set dir=${XDG_CACHE_HOME}/vim/swap//
set backupdir=${XDG_CACHE_HOME}/vim/backup//
set undofile
set undolevels=1000
set undoreload=10000
I also have:
set autoread
This automatically reloads the file if something else changes it and I have no unsaved changes (e.g. if I run clang-format over all files in the directory while I have vim open). The undoreload setting makes sure that this works with undo nicely: if I discover that some auto formatting tool, or git stash (or a partial commit or something), has screwed up the file, I can undo to the last version that vim saved (and prior versions that vim saved).
My .cache/vim directory is about 200 MiB. On the first machine I used vim on, that would have been a huge chunk of the total disk, but today it's a rounding error.
@david_chisnall @nokke is it theft if I copy this? Seems so useful!
I do not believe that anything in my .vimrc quoted section meets the definition of a creative work to merit copyright. If you live in a jurisdiction that disagrees, you may treat them as if they are licensed as CC0 1.0.
@david_chisnall @technicalotter @nokke
👍
Well said and thank you.
My contribution in exchange,
~/bin/ngvim
nohup gvim $*
to detach a (gnome window) vim from a shell.
@BRicker @technicalotter @nokke
Even on the local machine I use vim in the terminal and `set mouse=‘ because I really like being able to select and copy text with the terminal’s copy functionality without moving my cursor. It gives me vim’s yank buffer and the system clipboard as two completely independent things with different lifetimes. Vim’s mouse integration breaks this and moves the cursor whenever I try to select something.
@david_chisnall @technicalotter @nokke
Yes, which clipboard/buffers you want/expect to be linked and which distinct are a definite tradeoff (and very personal).
I can respect your choice (I can remember when all editors were in-terminal and there wasn't a mouse) but (usually) choose differently (I will do a small quick fix in-terminal vim).
@BRicker @technicalotter @nokke
There are three things, and my approach isn’t ideal for all of them:
The first is being able to select and copy text without moving the insert point. This is more useful for code than prose, but I find this incredibly useful. Acron’s RiscOS did this as the system level. If you selected with the left mouse button, it moved the cursor to the selection (so you could overwrite by typing). If you selected with the right mouse button (middle brought up the menu), it created the selection but didn’t move the cursor, so you could easily copy from the selection and paste at the cursor. I have never seen any other system do both well. Vim in a terminal does one well with mouse support enabled and the other well with most support disabled. This is a tradeoff and it’s obvious that picking only one will not work for everyone (which is a shame because almost every other text box on almost every OS picks one without considering the tradeoff).
The second is having more than one clipboard. Again, this is something that is generally useful. And, in fact, two isn’t great. Emacs, I believe, lets you have multiple. I think there’s even some way of doing this in vim. It’s pretty much essential to have more than one in vim because vi conflates delete and cut, so if you want to copy something, delete something else, the paste, it!s clunky. Using a second clipboard makes this less clunky (though using the system clipboard via the terminal means you sacrifice the ability to use macros, which is annoying). The OS I’ve seen with the nicest approach to multiple clipboards was the Newton. You didn’t have a system clipboard as a user abstraction, you just dragged things to the edge of the screen. It then appeared as a little tab and you could switch applications and drag it back to paste. Direct manipulation all of the way.
The third is having a private-to-the-editor clipboard. This is useful only intermittently, but sometimes I ‘yank’ something in vim, then need to do something else before pasting it and that may involve copying and pasting between other applications. Many, many years ago, I built a little proof of concept that treated the clipboard as a stack. If you copied nothing, it popped the top entry from the stack, otherwise each new copy pushed the previous copied thing and each past would use the top element. It worked nicely and would have solved this problem, especially if you had a ‘pop everything until you get to the last thing the active clipboard client copied’ (or even ‘duplicate the last thing the active clipboard client copied to the top of the stack’) as operation.
As with many other things I do on computers, I’m working around the fact that the systems don’t provide the right UI abstractions to solve the problems I actually have and am getting the closest approximation. And it’s not good, it’s just better than nothing.
@david_chisnall @BRicker @technicalotter @nokke RiscOS was my first "grown-up" OS, so when I started using Windows, it was a horrible shock to discover that there was this invisible and uninspectable thing called a clipboard where your selection vanished to before you could paste it anywhere.
I've been thinking idly about this recently, and I'm not sure how well "multiple selections" works in the RiscOS model, compared to multiple (inspectable) clipboard slots.
@darkling @BRicker @technicalotter @nokke
It makes me so sad that the iPhone didn’t adopt the Newton model. It was still in patent when the iPhone launched but Jobs had a deep and irrational hatred of everything connected to the Newton.
@david_chisnall @BRicker @technicalotter @nokke I don't know that one. I don't think I've even *seen* a Newton IRL, let alone used one.
OK I was just having fun but the kids took this to heart.
" add the dash ('-'), the dot ('.'), and the '@' as "letters" to "words".
set iskeyword=@,48-57,_,192-255,-,.,@-@
" Make shift-insert work like in Xterm
map <S-Insert> <MiddleMouse>
map! <S-Insert> <MiddleMouse>
" highlight extra/unwanted whitespace
autocmd ColorScheme * highlight ExtraWhitespace ctermbg=red guibg=red
highlight ExtraWhitespace ctermbg=red guibg=red guifg=red
match ExtraWhitespace /\s\+$\| \+\ze\t/
@david_chisnall I was curious about the “platforming white supremacists” part. I’m assuming you’re referring to this? https://github.com/neovim/neovim.github.io/issues/501
"Our persistent data format is unstable. So you should not rely on your persistent data being persistent."
🤔
Interesting definition of persistence...
@david_chisnall it's just fantastic to know that everything i depend on is now either full of slop or influenced by fascists, or both.
hyprland, keepassxc, rsync, and now neovim.
i'm so fucking tired of this shit, man.
@david_chisnall What are the .vimrc commands to put files in .cache? I'd try to google it, but that feature has been neaped by AI.
Further down the thread:
https://infosec.exchange/@david_chisnall/117172481079439378
Relevant parts
set undodir=${XDG_CACHE_HOME}/vim/undo//
set dir=${XDG_CACHE_HOME}/vim/swap//
set backupdir=${XDG_CACHE_HOME}/vim/backup//
set undofile
set undolevels=1000
set undoreload=10000I also have:
set autoreadThis automatically reloads the file if something else changes it and I have no unsaved changes (e.g. if I run
clang-formatover all files in the directory while I have vim open). Theundoreloadsetting makes sure that this works with undo nicely: if I discover that some auto formatting tool, or git stash (or a partial commit or something), has screwed up the file, I can undo to the last version that vim saved (and prior versions that vim saved).My
.cache/vimdirectory is about 200 MiB. On the first machine I used vim on, that would have been a huge chunk of the total disk, but today it's a rounding error.
@david_chisnall It’s startling how little regard or awareness developers have for things like protocols and file formats given how much it actually impacts users. Apple is surprisingly a major offender here. Multiple times, various syncing services have been broken, and the fix is to update to version x … except that for N reasons various systems CANNOT be updated to version x … 😡
@david_chisnall not a vim vs neo thought, but i have done 'emergency' surgery on servers headless (no monitor/console, just a keyboard) and never doubted that vim was doing exactly what i expected as i typed blind. that level of trust/comfort
that is a pretty rare tool to have in your tool box
@rdp @david_chisnall Bram Moolenaar died in August 2023. I can't see him putting up with the ensloppified enshitification in vim itself if he was still alive and in charge. (NeoVim looked nice in 2018-2024, but now it's a Milkshake Duck …)
@david_chisnall I have for years off and on considered trying neovim and then just always shrug. I try not to specialize my tooling too much really. But are you saying when you installed it and ran it it deleted your EXISTING vim undo files?! I am glad I never tried it! My god.
@r343l Yup, deleted them and overwrote them with something that didn’t work in vim. Didn’t even use a different file extension or try to import the old data.
@david_chisnall Perhaps excusable very early in a project but for something aimed at replacing vim should have come with very clear warnings. :/
There are two things:
The first is fine. New project, new contributors, bugs happen. The second tells me that they don’t care about their users’ data.
The second, not the first, was why I don’t trust NeoVim.
Anyone who has actually shipped something will have had bugs that make users unhappy. Some may have cause them to lose important data. The thing I judge a project on is how they handle such things. If they acknowledge the big and fix it, that’s fine. If they put processes in place to try to avoid that bug class in the future, that’s great. If they defend data-destroying bugs, that’s a warning.
@michal it's a great time to rake in those doubloons for Apple right now, they know the folk who are Still Apple fanboying now will pay whatever they charge for the privilege anyway. For everyone else who has to buy Apple hardware due to their lock-in and all, buying second-hand M3 or even M4* based hardware will more than suffice. It'll still get supported by Apple for years to come, performance is "too much for most" already anyway, and everything else is basically identical anyway 😃
Evidence A: Fraiser. On multiple episodes we see a beautiful Mac classic (128?) in his bedroom. He never uses it. But, the first time we see him in front of a computer, it's a Compaq laptop - the same Roz uses a few scenes before. Why would he use it to write his own obituary? I know why - because the scene should happen in his living room to add the rest of Crane family there, but damn. At least Seinfeld used his desktop!
On the happier side: whenever I remind myself about https://youtu.be/_ZLhKRGDNi8?si=utiGhd4LFdyYoPgm&t=63 I smile. But I'm also sad, because I will not notice such things in the future because no one has time to follow a zillion Netflix shows with 5 years between series.
@michal I agree, it’s obviously a more fragile design. Say I, typing on a phone with a busted USB-C port.
@michal Seriously?
@michal No second thoughts about e-waste, proprietary designs, or slow speeds? 🤔
@michal in my opinion lighting also sucks balls, I just want more specialized ports (like headphone jacks) and pogo pins. USB-C connector is not perfect, but the fact I can use it to get 100W power, display, bunch of periphery and 2.5 gbit ethernet to a computer - pretty amazing. Old school dock stations were better ergonomically and longevity-wise, but they were not universal, you had to get one for the laptop model.
@michal LPT was better than Lightning ofc, it was just replaced by USB (which is still better than Lightning)
@michal if I may, the correct wording is:
we loose it because Apple didn't open the patents, didn't want to make it a standard.
now, i'm fine with usb-c, it's just not built the same according to the brand, which happens also for lightning by the way, be it MFi certified or not.
@michal Never used lightning. What are the strong points? Re USB-C, tbh I am pretty happy with it, 99% of my devices support it and it mostly works. Compared to how it was before EU forced it, it's night and day..
USB-C is something fitting in a tank more than regular, everyday usage. Hard edges, annoying feeling whenever you are 1mm away from the port. Industrial.
https://www.youtube.com/watch?v=AqU34WsJ0no&list=PLcOKn2Ebnf7kBitN2tF7ePHTEcDlNS19O
nuintari's rules of networking 0x59:
ALL CAPITAL LETTERS HAVE BEEN SCIENTIFICALLY PROVEN TO CAUSE SIGNIFICANT EYESTRAIN. DO NOT INSIST ON ARBITRARY, ALL-CAPITAL LABELING CONVENTIONS.
@nuintari I like it for certain things like prefix-list names or VRF names, to spot them easier in big configs...
I know it has a remaster, but it still had low-res bgs.
Well this is forking depressing. 😞
https://hypersubject.net/posts/on-adaptation,-again
#AI #slop #SelfRespect? #WeAllBowDownToBabylon, eventually, I guess
@rl_dane its written by a 30 year old. assuming its a real human at all, and not a bot or a paid shill for the industry. I put weight in direct proportion to age and credibility, esp in the social media of 2026 awash with bots, trolls, teens, intoxicated, insane etc
This is someone I've followed for a couple months and who has put generally good stuff out there.
I see it as yet another domino falling, yet another engineer saying, "Well, I gotta pay the bills," not thinking that they won't be able to pay any bills in three years, no matter what the fork they do. ☹️
Everyone is capitulating to the all-devouring hellmaw.
@rl_dane fair enough. I'm old enough to have witnessed tons of fads come and go. I like the whooshing sound as they blow past?
I don't think this is a fad, or if it is, the fads are stacking up blocks to build a tower of crap to heaven. :/
The sad thing is that GOOD fads even got replaced by CRAP ones.
Anyone remember #AJAX?!? (Asynchronous Javascript and XML, the tech that powered Web 2.0)
@rl_dane @synlogic4242 Especially when they are young, it's pretty hard to prioritize their bills in 3 years over the food on the table next month.
But, honest question: What do you think they should do instead? I'm in totally the same situation and while it's easy to say to continue learning, I'm paid for output, not for the most ethical or most teaching solution.
I get it. It's frickin' hard.
I'd say at the very least, keep talking about the issues, and try to build actual community with the professionals you know. Don't ever let the kind of "ethical issues aside..." crap become the default, forgone conclusion.
Over the last 20 years, knowledge workers have been slowly relegated from being professionals to mere laborers, and the #GenAI crap is just another bullet point along that agenda.
Fight the "there's nothing to be done about it" mind games and nonsense. Work diligently, but live beneath your means. Yes, the loud anti-AI voices will get shouted down and silenced in the workplace, sadly. I'd love it if we'd all go out in a blaze of glory like that, but it's unlikely.
The thing is, it's not always about the frontal attack. I don't see a lot of posts about hocking molotov cocktails at data centers. I do see a lot of posts about seeding highly invasive and destructive weed species around data centers to slowly undermine the foundation. That kind of shiz is genius.
Resistance isn't always about head-butting your dickhead boss in front of everyone. That makes for an amazing movie scene. But resistance is RESISTANCE. That teensy little 1kOhm solid state resistor on your motherboard is still RESISTING. It all adds up.
Be polite. Be accomodating. But be incessant and tireless in "smiling resistance." Speak to the better angels on the shoulder of every corporate gargoyle.
@rl_dane Software developers reaping the rewards of not collectivizing. It's always a bitter pill for labor aristocracy when they realize they are still, at the end of the day, labor.
@rl_dane I think I need to find a different industry to work in.... I wasn't expecting the concept of being a software dev to become so sad.
I'm not even sure what I could get into-- I'm like 98% sure the entire world is about to explode
Feels that way.
Probably not helpful, but after WWII, when Iran got divvied up between the Soviets and the Americans, my grandmother found herself on the Soviet side of the country, where there was no money and people were slowly starving. She made an excuse to go visit the south side with her kids, and her dad put up part of the family land as collateral with the government for her return. Obviously, she never returned.
She went to Tehran and started knitting sweaters and scarves to sell to the American soldiers' families. She found some way of bringing in income, and kept her family afloat through some really awful years.
The point of the story is, we've been sold this lie that corporations will take care of us, and they're slowly shivving us.
We have to return to individual ingenuity and creativity to survive.
Hopefully. 🤷♂️
> and her dad put up part of the family land as collateral with the government for her return.
Whew, first I read that government took her dad as a hostage
So basically he traded part of the family land for the freedom of his daughter? Sounds like an incredibly good deal under those curcimstances.
> Obviously, she never returned
The great decision!
@michal For one of my main client projects, I have to do a lot of testing with different displays. So I have a couple such portable displays, so I can do some work when I'm on the road, and also because they're more convenient to work with in my office when I need a display with a specific resolution.
A few things to look out for in practical use:
- DPI. One of my displays is a 13" 4K. I have good eyes, and at 200%, the text is at the small end of comfortable. I'd probably go for min 16" at 4K.
@michal
- DPI, cont: I also have a 13" 1080p display, and I find the pixels on that to be annoyingly coarse at typical laptop display viewing distances. Around 2.5K-3K is probably optimal.
- Build & panel quality. There are a lot of quite cheap devices out there from unknown brands. I have one such display and its colours are pretty washed-out compared to a high quality laptop display. Additionally, the frame has hard aluminium edges & the screen surface is sensitive like a desktop display's.
@michal
- Portability (if you care); the cheap display is a little fragile and will damage things with its hard edges. The better-built ones on the other hand are robust and come with a carry case, but are heavier and fatter than an iPad. I haven't yet seen any as well-built and thin as a good tablet but acting as a simple display.
- Lack of VESA mount (if you care); these things generally don't have any threaded holes for mounting on an arm.
Would you consider making such portable 16'' as your primary display?
@michal As far as I can tell, my eyes and neck experience less strain when the screen is further away, so I'd probably say no as the primary when not on the road. (with glasses correcting my short-sightedness of course)
What physical resolution is your 27" and have you experimented with different scale modes? Usually uncomfortable screen real estate means the problem is DPI/resolution, not physical size.
@michal A large screen with 200-210dpi a little further away than my outstretched arm seems to be about perfect for me at 200% scaling, or 100-105dpi at 100%. (though the smoother text at 200% is very nice indeed)
Popular options for that are 5120x2880 or 2560x1440 at 27"; my current primary is a 3440x1440 34" ultra-wide which is nice aside from the rough text. There are a bunch of affordable-ish 6K displays now on the market I'd love to try.
@michal I also have a 27" with 4K and to be honest, that one was a mistake. I just can't get on with it - non-integer scaling just doesn't look good at that sort of DPI.
@michal I guess the thing is, none of that is in my experience related to physical display size, and all to do with logical resolution (pt). So I'd experiment with larger scaling modes and see if those work better for you in terms of screen real estate even if they don't look great.
Do you have a library card for your local public library?
| No: | 146 |
| No, but planning to get one: | 68 |
| Yes, and will renew: | 544 |
| Yes, but no renew planned: | 27 |
Closed
@jwildeboer
I never leave the house without my library card, and I have no plans to change that 🙂
@metaphernpark I might have to get a new one, as my current one is at least 15 years old and starts to deteriorate :)
@jwildeboer when I got my first library card I was really surprised how much I could do with it. It’s such a great service everyone should know about.
@jwildeboer I have 2! One for my local community library and one for the nearest big city. They have different collections.
Missing option: I've never lived anywhere that required you to renew a library card. Mind don't have dates on them. After some period of inactivity they may need some confirmation that I still live there, but there's no explicit timeout.
I have a card for my local library but I haven't used it much since they started charging to reserve books. I used to reserve 1-2 books I wanted to read and then go in and collect them and usually pick up 3-4 others at the same time after browsing. Now that they charge, I don't reserve books and that removes my reason for scheduling time to go into the library, so I also don't get around to browsing.
@jwildeboer I have one, but rarely used it. I use their online services more often. The card does not need to be renewed, but I am member of their 'Förderverein' which has a annual fee. The fee is to finance events and some extra services of the library
@jwildeboer I'm a member of the local library here in Durres. They don't have a library card system here. They use the older system of writing down the book I borrowed on a card with my name on it which they keep in a box. The library still has a card catalogue system, something which I haven't seen since my early teens.
@jwildeboer And not just to support the library, but also because of Onleihe, Filmfriend and BibBot ;-)
@jwildeboer
Useful reminder: book due to be returned today but may extend it (again).
Our library aystem doesn’t require membership renewals, it’s perpetual (altho maybe not for children).
@jwildeboer And will not renew, because we don’t renew library cards here :D
But I voted as if.
@faket Automatic renewal is also renewal ;) I only had 4 options and had to make compromises.
@jwildeboer Yeah, but it’s not even an automatic renewal. Just once you got your card, you have it, that’s it :D
In Denmark you can register at any public library (or online) with your national health card - a card you scan when you use our free healthcare system - and that's it, it now functions as a library card too.
Many libraries are open 24/7 unstaffed and you just scan the card, type a pin, and you're in.
We use this a lot - this week we took 50(!) books back, mainly books the kids have been reading, and took out another 30 or so.
@jwildeboer Living a short walk away from the America Gedenkbibliothek in Berlin it’s not really a question to have a library card. The AGB/ZLB offers a huuuuuge amount of books, music, movies etc… – and of course ebooks, audio and online-movies. And a library of things with e.g. tools and devices.
You can read and work there even without a library card.
@jwildeboer I never got a physical card because I have never actually entered any of the physical libraries, but I'll definitely renew my subscription to borrow ebooks!
@jwildeboer Wait--y'all's library cards expire?
@jwildeboer Where I'm from library cards don't have be renewed. But you can get it replaced if yours is lost or stolen.
@jwildeboer
Do you need to renew library cards? As long as I keep using mine, I don't have to renew it.
@jwildeboer Ours is completely useless for me. They have a lot of books for children (which we use very often) and for the grownups...well...a lot of books about love and stuff, obviously targeted at women. Lots of pastel-colored covers. No Science Fiction or anything else that suits my taste.
For those with perpetual library cards, I hear you. Just vote with Yes, will renew if you plan to keep on using the library or No if you don't plan to do that. I only have 4 options, so some ambiguity is unavoidable. Thanks!
@jwildeboer we don't use that here.
Everyone here has a unique public health care id number.
You use this at the public library to check out books
@jwildeboer wait, di you need to renew it over there? Its not just forever? Why not?
@Muzzle See https://social.wildeboer.net/@jwildeboer/117155913075793686
@jwildeboer My library card is my employee ID. Granted, not much fiction at #hsharz, but we have a lot of humanity's relevant knowledge available 😅
" The Definitive History of Sci-Fi (A 4-Hour Bookshelf Masterclass) "
The people that claim to be surprised by the #EU #PPWR on packaging and recycling and paint it as a surprising shock that will kill small businesses do, well, surprise me. The process started in 2015, there was a public consultation period in 2020-21, the rules entered into force in February 2025. What is "new" is that after that introduction period we have now reached the general application phase. So if you do business in the EU but decided to not really care — that's on you?
@michal Could even be classic reverse lobbyism by the big players. I’ve seen it many times before. Out of nowhere groups and companies show up loudly criticising some rule or regulation to make it an „us poor small businesses versus the evil EU“ story. But it’s orchestrated by the big players to make sure they remain untouched.
@jwildeboer it does not surprise me that people are surprised. There are so many of these things running in parallel and it is hard to keep up when you are running a small business and have to worry about a million things.
I mean I grew up with "Stuttgart 21" planning. Back in high school in the mid 90s we even drew sketches of how it could look like.
But I never believed it would actually happen. So did many citizens in Stuttgart.
@jwildeboer they certainly messed up. That, however, doesn't change the fact that the requirement for a representative in every EU country goes against the very idea of a single market.
While it was certainly negligent to realise the problem only now, such a core principle should be upheld by the EU without the need of continuous supervision. On the other hand, this should apply to Schengen as well 😬
@weddige I think this legislation wouldn't survive even a cursory review at the EUCJ and would be deemed excessive straight away. So I wonder why no SME (Small to Medium sized Enterprise) association did exactly that: take it to court.
https://www.smeunited.eu/news/smes-need-smart-simplification-for-the-green-transition
Since the shops closed or limit shipping destinations a lot of people will be reminded every day when looking for stuff. A lot different from other laws.
If you look at the list of people who donated a million each, you'll find DHH's business partner (Jason Fried), the CEO of Shopify, where DHH is on the board (Tobi), and other people close to him.
It's safe to assume most of them — maybe except Dell and Cloudflare — would not have donated to Linux-related projects that DHH is not involved in.
Code review / finding bugs is a particularly good use case, since false positives are benign.
I figure they're also really good at locating the source of a bug when it's reported, if that's what you mean with solving their problems.
@michal This is ambiguous. Do you like the wet bread or not?! :-D
i wonder if apple are so flat out of ideas they'll release this completely broken shit anyway
https://www.macrumors.com/guide/iphone-ultra/
(note: preview card date is 2023, but the current version is dated 21 Aug 2026 https://archive.is/Aetuy )
Oh my goodness, Apple is about to invent folding phones, six years later!! AMAZING!!!
Every time I see a MacBook with a notch, I'm very tempted to stand in front of the person using it, gently close the macbook, lean forward, stare into their flipping soul, and just say, "Get help."
@rl_dane @davidgerard There have been a drip of reports for the past five years that Apple was working on one, but refused to release it until (a) they could do one without a tendency to crease along the fold, and (b) a manageable defect rate (to avoid blowing up the warranty budget).
I'd quite like an iPad Mini that folds down into an iPhone, thanks, but not at a higher price than an iPad Mini *and* an iPhone Pro Max.
@davidgerard surely people will enjoy the ear cameras that read to them and the category of phone that’s most known for carriers begging people to downgrade to them because they’re extraordinarily expensive and break almost instantly
what do you mean you don’t want surveillance cameras in your ears and a scam phone
@davidgerard I mean if they're considering AirPeeps Bro Max, one could say this even makes a smidgeon of more sense. People do fall for foldables, I only didn't get one cos I can't afford, and there was a considerable amount of time about a year, year and a half ago where I was too stupidly enamoured by them...
@librarysquirrel they're a fantastic idea! and the reality has sucked ass for their entire existence, and the article mentions way down as a casual aside that even Apple can't make one that doesn't suck ass
@davidgerard Was really confused why the preview link seemed to be 3 years old. Looks like there are comnents on the post - ostensibly published last week - going back to February 2023. Presumably Apple have been grappling with this very question for at least that long?
@speculationfictive yeah i assume they just keep the folding rumours in one place, i have attached the precise archive copy
@davidgerard that whole article is just slop, right, or is it, similar to singers who now sing like Autotune, people writing like slop?