Game Dev Fundamentals - Trevors-Tutorials.com #1
- YouTube
Profitez des vidéos et de la musique que vous aimez, mettez en ligne des contenus originaux, et partagez-les avec vos amis, vos proches et le monde entier.www.youtube.com
This video complements the text tutorial at trevors-tutorials.com/0001-gam…
Trevors-Tutorials.com is where you can find free programming tutorials. The focus is on Go and Ebitengine game development. Watch the for more info.
The Go Programming Language
Go is an open source programming language that makes it simple to build secure, scalable systems.go.dev
MAGA acolyte Marjorie Taylor Greene votes alongside Tlaib and Omar to cut US funding for Israel
cross-posted from: lemmy.ml/post/33488630
cross-posted from: lemmy.ml/post/33488629
By MEE staff
Published date: 18 July 2025 20:59 BST
Hardline America Firster and staunch Trump supporter Marjorie Taylor Greene voted alongside progressive Democrat Congresswomen Rashida Tlaib and Ilhan Omar to strip Israel of $500m in US funding, hours after it bombed the Holy Family Catholic Church in Gaza.The House of Representatives, however, rejected in a 422-6 vote on Thursday, to cut funding for the Israeli Cooperative Program - an agreement through which the US provides Israel with $500m to boost its missile programmes.
It is a separate allocation from the $3.3bn the US sends Israel as "security assistance" every year.
adhocfungus likes this.
AOC’s office vandalized after recent House vote involving US aid to Israel
A Bronx office of the US House member Alexandria Ocasio-Cortez was vandalized early on Monday, according to New York City police, who say they are investigating.
The vandalism occurred after Ocasio-Cortez on Friday voted against a defense spending bill amendment authored by the Republican congresswoman Marjorie Taylor Greene of Georgia that would have eliminated funding for the system protecting Israel from missiles.
Her vote on Greene’s amendment prompted the Democratic Socialists of America to issue a statement accusing Ocasio-Cortez of backing Israel’s “eliminationist campaign against the Palestinian people”.
AOC’s office vandalized after recent House vote involving US aid to Israel
NYC office found covered in red paint after AOC voted ‘no’ on defense bill that included over $600m in aid for IsraelRamon Antonio Vargas (The Guardian)
like this
AOC’s office vandalized after recent House vote involving US aid to Israel
A Bronx office of the US House member Alexandria Ocasio-Cortez was vandalized early on Monday, according to New York City police, who say they are investigating.
The vandalism occurred after Ocasio-Cortez on Friday voted against a defense spending bill amendment authored by the Republican congresswoman Marjorie Taylor Greene of Georgia that would have eliminated funding for the system protecting Israel from missiles.
Her vote on Greene’s amendment prompted the Democratic Socialists of America to issue a statement accusing Ocasio-Cortez of backing Israel’s “eliminationist campaign against the Palestinian people”.
AOC’s office vandalized after recent House vote involving US aid to Israel
NYC office found covered in red paint after AOC voted ‘no’ on defense bill that included over $600m in aid for IsraelRamon Antonio Vargas (The Guardian)
like this
I posted the evidence that your answer is objectively untrue. Even the Democratic Socialists of America said as much if you need more evidence.
While the Congresswoman voted against the defense appropriations bill itself, voting against funding for the imperialist military-industrial complex and the Israeli genocide,...
If we can't establish a baseline of truth, than this conversation is meaningless. Good day.
As for anyone else scrolling by, AOC DID NOT VOTE TO SEND WEAPONS TO ISREAL. PERIOD. The facts are out there. Anything else is merely a bullshit attempt to wedge apart the left, and it seems to be working quite well by the looks of it. Don't fall this bullshit.
Her vote on Greene’s amendment prompted the Democratic Socialists of America to issue a statement accusing Ocasio-Cortez of backing Israel’s “eliminationist campaign against the Palestinian people”.
What's this?
Ferragosto in Jazz
ferragosto StreetFood&Jazz - Campo Antico
Street Food & Jazz – o 🌙 Street Food & Jazz – Ferragosto-Sera Il tuo browser non supporta il video. Una serata sotto le stelle tra jazz, brace e sapori veri Dalle 19:30, il giardino di Campo Antico si trasforma in un piccolo villaggio del gusto: isol…Campo Antico
Campo Antico | Ricevimenti
Campo Antico Ristorante: Un Tributo alla Tradizione e alla Sostenibilità e per la freschezza degli ingredienti. Prenota un tavoloCampo Antico
Scraping the Bottom of the Barrel: Ukraine Recruits Murderers & Drug Convicts to Fill Army Ranks
Scraping the Bottom of the Barrel: Ukraine Recruits Murderers & Drug Convicts to Fill Army Ranks
With Ukraine’s manpower nearly exhausted, authorities claim that nearly 9,500 convicts—including 100 women—have been drafted into the armed forces.Sputnik International
The U.S. at it's best used to enlist convicts.
-take that whatever way you want.
xAI workers balked over training request to help “give Grok a face,” docs show
xAI workers balked over training request to help “give Grok a face,” docs show
Slack messages: Some xAI employees refused to join invasive Grok training.Ashley Belanger (Ars Technica)
like this
'License to Kill': New Report Finds Higher Homicide Rates in 'Stand Your Ground' States
A new report by Everytown for Gun Safety finds that states with "Stand Your Ground" laws have higher homicide rates. "These laws change the nature of self-defense, turning everyday disputes into deadly confrontations," the report says.
'License to Kill': New Report Finds Higher Homicide Rates in 'Stand Your Ground' States
"These laws change the nature of self-defense, turning everyday disputes into deadly confrontations," the report, compiled by Everytown for Gun Safety, says.stephen-prager (Common Dreams)
NVIDIA Makes More Hopper & Blackwell Header Files Open-Source
Last week NVIDIA open-sourced 12k lines of C header files for Blackwell GPUs to help in the open-source driver efforts, namely for Nouveau / NVK and the in-development NOVA Rust driver. On Friday they made public some additional header files for helping in the Blackwell and Hopper open-source driver enablement.
Amid Calls for Epstein Files, Trump Admin Releases 230,000 MLK Documents
One critic called the move "a desperate attempt to distract from the Trump administration's decision to block the release of the Epstein files."
Amid Calls for Epstein Files, Trump Admin Releases 230,000 MLK Documents
One critic called the move "a desperate attempt to distract from the Trump administration's decision to block the release of the Epstein files."brett-wilkins (Common Dreams)
US | FCC to eliminate gigabit speed goal and scrap analysis of broadband prices
Analysis of broadband affordability deemed “extraneous” by FCC chair.
thisisbutaname likes this.
Escobar Phone creator pleads guilty to scamming buyers, never delivered devices
Gustafsson was the CEO of Escobar Inc., a corporation registered in Puerto Rico that held successor-in-interest rights to the persona and legacy of Pablo Escobar, the deceased Colombian narco-terrorist and late head of the Medellín Cartel. Escobar Inc. used Pablo Escobar’s likeness and persona to market and sell purported consumer products to the public.From July 2019 to November 2023, Gustafsson identified existing products in the marketplace that were being manufactured and sold to the public. He then used the Escobar persona to market and advertise similar and competing products purportedly being sold by Escobar Inc., advertising them at a price substantially lower than existing counterparts being sold by other companies.
Gustafsson then purportedly sold the products – including an Escobar Flamethrower, an Escobar Fold Phone, an Escobar Gold 11 Pro Phone, and Escobar Cash (marketed as a “physical cryptocurrency”) – to customers, receiving payments via PayPal, Stripe, Coinbase, among other payment processors, as well as bank and wire transfers.
Despite receiving customer payments, Gustafsson did not deliver the Escobar Inc. products to paying customers because the products did not exist.
In furtherance of the scheme, Gustafsson sent crudely made samples of the purported Escobar Inc. products to online technology reviewers and social media influencers to attempt to increase the public’s demand for them. For example, Gustafsson sent Samsung Galaxy Fold Phones wrapped in gold foil and disguised as Escobar Inc. phones to online technology reviewers to attempt to induce victims who watched the online reviews into buying the products that never would be delivered.
Also, rather than sending paying customers the actual products, Gustafsson mailed them a “Certificate of Ownership,” a book, or other Escobar Inc. promotional materials so there was a record of mailing from the company to the customer. When a paying customer attempted to obtain a refund when the product was never delivered, Gustafsson fraudulently referred the payment processor to the proof of mailing for the Certificate of Ownership or other material as proof that the product itself was shipped and that the customer had received it so the refund requests would be denied.
Gustafsson also caused bank accounts to be opened under his name and entities he controlled to be used as funnel accounts – bank accounts into which he deposited and withdrew proceeds derived from his criminal activities. The purpose was to conceal and disguise the nature, location, source, ownership, and control of the proceeds. The bank accounts were located in the United States, Sweden, and the United Arab Emirates.
Swedish Man Who Licensed Rights to Late Colombian Drug Lord Pablo Escobar Pleads Guilty to Fraud, Money Laundering Charges
A Swedish national who licensed the rights of the late Colombian narco-terrorist Pablo Escobar pleaded guilty today to six federal criminal charges for defrauding investors by marketing and selling products – including flamethrowers and cellphones – …www.justice.gov
Neox does NOT like DIRT!
- YouTube
Profitez des vidéos et de la musique que vous aimez, mettez en ligne des contenus originaux, et partagez-les avec vos amis, vos proches et le monde entier.www.youtube.com
Re: Neox does NOT like DIRT!
This is a pretty huge oversight... it sounds like the first edition neox will need constant upkeep like a bike chain, etc!
Quite a departure from the typical "throw it in your bag" grigri.
I'm worried they'll be doctored to shit, maybe they can't release doctored versions of them because someone with knowledge of the originals would call them out (if you're that person stay safe!), but when (and I mean when, they're waiting until they've gotten all the good people out of the way before they try lying) they're going to be full of nothing but their common targets and enemies.
Still though release the damn files, they were on your fucking desk and you gave to podcasters
Three weeks later
HERE ARE THE FILES IN THEIR COMPLETE AND UNALTERED FORM:
Link to an empty word doc that just says "If I go to jail I'll kill myself. I sure hate trump."
Domande da fare per scoprire un tradimento: queste funziona davvero
Avatar 3: Fuoco e Cenere svela il suo primo poster e anticipa l'uscita del trailer
Avatar: Fuoco e Cenere ha condiviso il suo primo poster ufficiale, anticipando il debutto del suo trailer in arrivo in concomitanza con I Fantastici 4: Gli Inizi al cinema. Il franchise ideato da James Cameron continua ad espandersi e riporterà molto presto il pubblico affezionato su Pandora in compagnia di Na’vi coraggiosi. Dopo il primo Avatar nel 2009 e il sequel Avatar: La via dell’acqua distribuito nel 2022, Cameron riporterà Jake Sully e la sua famiglia di nuovo in azione con Avatar: Fuoco e Cenere. Terzo capitolo del franchise, ha anticipato la data d’uscita del suo primo trailer ufficiale.
Il film, invece, ha già da tempo fissato la sua data d’uscita per il 19 dicembre 2025.
Avatar 3: Fuoco e Cenere svela il suo primo poster e anticipa l'uscita del trailer
Avatar: Fuoco e Cenere ha mostrato al pubblico il suo primo poster ufficiale, accompagnando l'annuncio con la data d'uscita del primo trailer in arrivo prestissimo al cinema.Cristina Migliaccio (ComingSoon.it)
like this
Godot getting serious
- YouTube
Profitez des vidéos et de la musique que vous aimez, mettez en ligne des contenus originaux, et partagez-les avec vos amis, vos proches et le monde entier.youtube.com
Feddit Un'istanza italiana Lemmy reshared this.
Il Campo e la Trincea: La Memoria del Tenente Luigi Ferraris
Il Campo e la Trincea: La Memoria del Tenente Luigi Ferraris
di Francesco Caldari 23 maggio 1915. Cinquantadue squadre si erano presentate al via del campionato di calcio 1914/15. In quattro rimangono per il girone “Nord” ed in sei per la Lega “Centro-Sud”.www.tuttostoria.net
Ex-officer sentenced to 33 months in prison in Breonna Taylor case
Brett Hankison, a former Kentucky police officer who was convicted in the death of Breonna Taylor, a 26-year-old emergency medical technician, was sentenced on Monday to 33 months in prison.
Taylor was shot and killed on March 13, 2020, during a botched drug raid authorized by the Louisville Metro Police Department. A Louisville detective at the time, Hankison, 46, was found guilty last November of violating Taylor's civil rights while executing a search warrant on her home, which resulted in the tragedy.
Hankison will not report directly to prison, with U.S. District Judge Rebecca Grady Jennings saying during Monday's sentencing hearing that the Bureau of Prisons will decide when his sentence begins, according to The Associated Press. His prison sentence will be followed by three years of supervised probation.
☆ Yσɠƚԋσʂ ☆ likes this.
Tesla is the least-trusted car brand in America
Self-Driving Cars and Electric Vehicles: U.S. Market Insights & Analysis, July - Electric Vehicle
EVIR surveyed more than 8,000 U.S. consumers, weighted by education, race, gender, age, income, and geography, to uncover the truths behind what’s powering or stalling the EV and self-driving car transition.sedrick@kineticstrategies.us (ev-intelligence.com)
copymyjalopy likes this.
essell likes this.
How can I share/store sensitive data for family
I need to start making plans for when I am gone, much sooner than I thought, and I realized our finances are pretty opaque to my spouse. Our bank account is shared, but there are other sites that only I have access to.
The easiest solution would be to physically write down logins and what needs done, put it in an envelope, and tell my family where that envelope is. I'm not thrilled about that, because I would have to shred and rewrite it every time I update a password or a URL changes, and it'd be vulnerable to nosy guests.
Putting it in a shared Google Doc would be easiest for everyone. But then Google has that data. Even supposing I trust a cloud SaaS provider not to misuse the data (which is a big 'if') I do not trust them to never have a data breach.
Self-hosting seems like the next step, except I expect my home server to be the first thing to collapse once I'm gone. Filing login info with an estate attorney would still require frequent updates. Putting a document on a flash drive risks data loss, but is what I'm leaning towards.
Is there a solution I'm missing?
like this
I would use Keepass. You would have a single file, opened with a single password, that you could share with them however you want.
Wishing you the best
adhocfungus likes this.
adhocfungus doesn't like this.
like this
Technology reshared this.
But then he would have been a good human, and one who worried about the right things.
You can’t just swap suicide like that.
KI-Tool versteckt Inkompetenz
Ein Vibe-Coder schreibt ohne es zu merken auf X, wie kaputt Vibe-Coding ist: Ein Staging-System greift direkt auf die Produktionsdatenbank zu. Keine Versionskontrolle mit Git. Tests funktionieren laut den Posts nur auf dem Produktionssystem. Und der Höhepunkt: Ein KI-Tool warnt explizit „I can not be trusted, I will violate the rules“ und „hire human developers you can trust“ – trotzdem verwendet der Typ das Tool weiter.
Da hab ich schon Meinung zu.
jascha.wtf/ki-tool-versteckt-i…
#Claude #Inkompetenz #KITools #MonsterEnergy #Softwareentwicklung #VibeCoding
KI-Tool versteckt Inkompetenz
Ein Vibe-Coder schreibt ohne es zu merken auf X, wie kaputt Vibe-Coding ist: Ein Staging-System greift direkt auf die Produktionsdatenbank zu. Keine Versionskontrolle mit Git. Tests funktionieren laut den Posts nur auf dem Produktionssystem.jascha.wtf
Quanto costa un funerale oggi in Italia?
reshared this
Purtroppo me l'hanno regalato, quindi l'autore è stato pagato e non posso fare resi
16.50€ per questa porcheria!
All'interno altre gemme "ai slop" come fette di banana con il picciolo, petti di pollo con ossa, forchette dai denti storti, ecc
Most doctors in most Gaza hospitals involved in ‘terrorist activities’ says Israel Special Envoy
Most doctors in most Gaza hospitals involved in ‘terrorist activities’ says Israel Special Envoy
We spoke to Fleur Hassan-Nahoum, who's Israel’s Special Envoy for Trade and Innovation.Channel 4 News
like this
Laura Santi è morta dopo aver avuto accesso al suicidio assistito, infine
Laura Santi è morta dopo aver avuto accesso al suicidio assistito, infine
Dopo un lungo e complesso iter giudiziario, civile e penale, per vedersi riconosciuto questo diritto: è la nona persona in Italia e la prima in UmbriaIl Post
Nintendo can disable your Switch 2 for piracy in the U.S., but not in Europe, as confirmed by its EULA
Nintendo can disable your Switch 2 for piracy in the U.S., but not in Europe, as confirmed by its EULA
The significant legal differences between the United States and Europe cause Nintendo to punish piracy differently depending on the territory.Rubén Martínez (Meristation)
like this
And Nintendo JP says that “Nintendo Switch and Nintendo Switch 2 cannot be remotely located, their users remotely identified nor disabled over the Internet” (tweet in Japanese warning people against accidentally losing or getting their consoles stolen over summer vacation)
But I bet it is more like “Nintendo won’t disable them remotely even if people report ones stolen to them with serial numbers and police reports”, but they’ll happily do so if they caught you using the console in an unapproved manner in their eyes.
like this
Twitter link with an archive link or screenshot. We don't allow direct Twitter links on our instance. Thanks.
This is by definition "we are just assholes"
Someone play for 5 minutes with a mig switch a legit dump of their own, legally purchased game, just for convenience, to have multiple games on the same cart? The console is now almost useless. You can't play any digital games that you purchased with real money, and physical games can't get any update. Game requires a 20gb day one patch to be playable? Though luck buddy, go to buy a new console!
They stole your console? Oh no! Yes, we absolutely could do the same, as it's bound to your Nintendo account and we could add a button "report as stolen and ban it from internet" in your profile. But we won't, go to buy a new console!
- YouTube
Profitez des vidéos et de la musique que vous aimez, mettez en ligne des contenus originaux, et partagez-les avec vos amis, vos proches et le monde entier.www.youtube.com
A Self-hosted, BSD-native Gemini Protocol Server Stack
For those who are adventurous enough to explore the non-http corners of the Internet, the Gemini protocol is a delightful experience to use. It has been around a number of years, making the biggest bang around the time when discontent with the web’s general demise started to reach current heights (so maybe around 2022).
My “capsule”, Vigilia, is self-hosted, and has been since its inception. It used to run on a disused Macbook Pro running Fedora Server, under our TV at home, but since then I have become much more confident in using OpenBSD. It used to run on a little Python CGI script I wrote, which also started to feel too bloated and complex, with too many bells and whistles that I frankly had no need for. It was time to make a change, so I replaced the old Macbook with a Raspberry Pi, and Fedora with OpenBSD, and then took my time to figure out a new “status quo”.
0. Philosophy
I wished to create a more Unix-minded stack. The more I have been using OpenBSD and Unix systems the more I have been sold on the “everything is a file” philosophy, as well as opting to use internal tools as much as possible rather than reinvent the wheel on my own. That is to say, I’d much rather work with simple scripts and shell commands than write complicated and buggy code.
So with that in mind, here’s the stack that I settled on after a some trial and error:
1. Hardware
I have absolutely no intention to expose our home IP address via DynDNS or similar. However, I like to be in control of my data as much as possible: ideally as little of my data should be hosted on “someone else’s computer”. If I can’t unplug the hard disk and put it in a drawer, I can’t guarantee it’s security from a hack.
So Vigilia is actually two servers. The server with the actual data is at home, in running on a Raspberry Pi 4B. But as a “public front” vigilia runs a reverse-proxying gemini server on a standard VPS over at OpenBSD.amsterdam.
2. Network setup
I will not go into the intricacies of the dual-wan setup in this post I have at home; but to keep things connected to each other I am using Tailscale to tie the servers together in a Virtual LAN. This is incredibly handy because they get to have easy to remember static IP addresses, all over an encrypted channel.
So here’s the rough idea:
- Vigilia.cc’s DNS records resolve to the OpenBSD.Amsterdam VPS running
gmid
- VPS and home server both run
tailscale
- VPS reverse-proxies incoming gemini connections to home server
3. Gemini server config
Both the VPS and the local server run [url=https://gmid.omarpolo.com]gmid[/url]
. It’s a fast and simple gemini server that mirrors OpenBSD’s httpd
; which means it is very easy to configure, it is stable and secure. It can run in chroot
ed environments, and as its own user, so it’s just a Good Thing all over. Most importantly, it can relay and reverse-proxy TCP connections with sni
fields intact, which is something for example OpenBSD’s relayd
, built primarily for HTTP, does not do.
My gmid
config files look something like this:
### REMOTE_SERVER:/etc/gmid.conf#user "_gmid" # running it as its own user to achieve privilege separationchroot "/var/gemini" # and in a chroot so it can't just access random bits of the file systemlog { syslog # log to /var/log/messages}vigilia_pem = "/etc/ssl/PUBLICKEY.pem"vigilia_key = "/etc/ssl/private/PRIVATEKEY.key"public_ip = "46.23.93.41" # OpenBSD Amsterdam VPS' public addresshomeserver = "100.REDACTED.REDACTED.101" # TailScale IP of the home machine public_port = "1965"homeserver_port = "2965"server "vigilia.cc" { listen on $public_ip port $public_port cert $vigilia_pem key $vigilia_key proxy { proxy-v1 # this directive enables some advanced features like forwarding IP Addresses of visitors verifyname off # I found I need to specify this somehow, maybe because of self-signed certs sni "vigilia.cc" relay-to $homeserver $homeserver_port }}
This above allows to listen for connections to vigilia.cc:1965
and forward them to HOME_SERVER:2965
. So thus the homeserver has the following configuration:
### HOME_SERVER:/etc/gmid.conf#user "_gmid" chroot "/var/gemini" log { syslog }internal_address = "100.REDACTED.REDACTED.101" # TailScale IP of the home machine internal_port = "2965"# The below are the same certificates that are in use on the VPSvigilia_pem = "/etc/ssl/PUBLICKEY.pem"vigilia_key = "/etc/ssl/private/PRIVATEKEY.key"server "vigilia.cc" { listen on $internal_address port $internal_port proxy-v1 # add proxy-v1 support for relayed connections cert $vigilia_pem key $vigilia_key log on location "*" { auto index on # enables directory listing }}
4. Getting the files to the Server
Because I am lazy I want to edit files locally and I want them to magically appear on my capsule. So I am using [url=https://syncthing.net/]syncthing[/url]
to copy things over automagically from DESKTOP:~/public_gemini
to HOME_SERVER:/var/gemini
.
Syncthing runs most reliably as my own user, I found. To do this it is best to follow the documentation for the Syncthing OpenBSD package — but basically it involves starting it via the user’s crontab
with the “@reboot
” directive. But as it runs as my own user, I need to set the permissions properly. HOME_SERVER:/var/gemini
is owned by the _gmid
user in the _gmid
group so I also added MYUSER
on both machines to the same _gmid
group, and made sure MYUSER
has write access:
#!/bin/sh# HOME_SERVERusermod -G _gmid MUYSERchown -r _gmid /var/geminichmod -r ug=rwx,o=r /var/gemini
Then I set up syncthing on HOME_SERVER
. As it is running headless, I needed to access the web interface, which I achieved via SSH tunneling:
$ ssh -L 9999:localhost:8384 HOME_SERVER
This way I could open a browser on DESKTOP
and access the server’s Syncthing settings.
So here are the settings:
On the DESKTOP:
- Syncthing web interface -> Add folder
- Folder path:
~/public_gemini
- Folder label: Gemini files (or something)
- Ignore patterns: “
*.sock
” (Unix sockets might confuse the poor thing) - Sharing: HOME_SERVER
- Pause syncing for now
On HOME_SERVER:
- Establish ssh tunnel to HOME_SERVER as described above
- Open remote Syncthing webinterface on DESKTOP: localhost:9999
- Accept the incoming share request for “Gemini files” from DESKTOP; but point it to /var/gemini
- Folder path:
/var/gemini
- Folder label Gemini files
- Advanced: UNTICK “Wach for changes” because OpenBSD doesn’t seem to allow Syncthing to poke around in
/var
with those various Go modules and you’d just get errors, like I did - Check the Ignore patterns — if it didn’t synchronise “
*.sock
” then specify it manually
On DESKTOP:
- Unpause syncing
Now any file you write into DESKTOP:~/public_gemini
will sync across to HOME_SERVER:/var/gemini.
Yay!
6. Setting up automatic static site generation
Now if you are content to maintain your capsule manually, you are done. As I said I am lazy so I want my little “ssg” script, Lumen, to create index pages for each directory for me. Lumen, I promise, will be made available once I tidy it up.
Lumen basically lists all files recursively and generates an index.gmi
for each directory. This means that Lumen has to be re-run each time the folder changes. OpenBSD is acquiring some degree of file watching natively.1 However [url=https://openports.pl/path/sysutils/entr]entr[/url]
already exists in ports.
It took a bit of tweaking but basically here’s the command I ended up using, adapted from one of the examples provided in the entr
manpage:
$ while sleep 0.1; do find /var/gemini/vigilia.cc/* | entr -nd python3 /var/gemini/cgi/lumen.py -d /var/gemini/vigilia.cc; done
What it does is, in a loop it recursively lists all files every 0.1 seconds in /var/gemini/vigilia.cc
, and feeds the output to entr
. Then entr
runs with -n
to specify a non-interactive session (in interactive sessions it also responds to e.g. keystrokes and tty changes – so to be safe, I don’t want that); and with -d
to specify it should be looking for changes in the parent folder of any changing files. The looping and the -d
directive were added because sometimes I ran into issues when a file got deleted: entr
just quit because it could not find the removed file in a “stale” file list it was provided on launch. Lumen needs a -d
argument as well to specifiy which directory it needs to work on.
7. System config
Because there are a few other servers like “auld.vigilia.cc” also running on the home machine (the configs for wich aren’t reproduced above for brevity’s sake) and because those rely on a number of CGI scripts I have to start them on launch. I ended up using supervisor
d for these. Supervisor is a cool little daemon for launching things. I could use rc
but supervisord
allows me to specify a few extra bits more easily, like redirecting output to syslog
and other things.
So for HOME_SERVER, here is my supervisord
configuration:
#### HOME_SERVER:/etc/supervisord.conf## [... snip ...][program:gmid]command=/usr/local/bin/gmid -f ; the program (relative uses PATH, can take args)process_name=%(program_name)s ; process_name expr (default %(program_name)s)directory=/var/gemini/ ; directory to cwd to before exec (def no cwd)priority=100 ; the relative start priority (default 999)autostart=true ; start at supervisord start (default: true)startretries=3 ; max # of serial start failures when starting (default 3)autorestart=true ; when to restart if exited after running (def: unexpected)killasgroup=true ; SIGKILL the UNIX process group (def false)stdout_syslog=true ; send stdout to syslog with process name (default false)stderr_syslog=true ; send stderr to syslog with process name (default false)[program:lumen-vigilia_cc]command=/bin/ksh -c 'while sleep 0.1; do find /var/gemini/vigilia.cc/* | entr -nd python3 /var/gemini/cgi/lumen.py -d /var/gemini/vigilia.cc; done'process_name=%(program_name)sdirectory=/var/gemini/priority=102autostart=truestartretries=3autorestart=trueuser=MYUSERNAMEstderr_syslog=truestdout_syslog=true
There are other directives that start the CGI scripts for “auld.vigilia.cc” in the config, omitted here.
Note that you can specify “priority” to control in what order you want the scripts to run. I first want the gemini server to run (100); then I want it to run the CGI scripts (101 — left out of the above example); then I want to run the static site generator’s watcher (102). Notice I am telling explicitly it to run /bin/ksh
with a command specified in -c
; this is because simply feeding it a complex command confuses supervisor
d, as I discovered.
One nice feature of supervisord
is that it can redirect both stderr
and stdout
to syslog, so any commands and processes supervisord
runs will have their output sent to /var/log/messages
, neatly tagged and organised.
Conclusion
So there you have it — my Gemini stack from start to finish. It was a really fun experiment to start to use OpenBSD, instead of reinventing the wheel, or relying on some monolithic CGI scripts. You can do quite a lot with just system internals and a few packages.
- The
watch
utility was added to 7.7-current on 2025-05-19; it will make its way into 7.8 hopefully. ↩︎
Adapted from the original article “Vigilia’s New Gemini Stack” published via Gemini at vigilia.cc on 21 July 2025.
Trying Guix: A Nixer's Impressions
One aspect of Guix I found to be really fascinating: That there is basically no conceptual difference between defining a package as a private build script, and using a package as part of the system.
Let me explain: Say you wrote a little program in Python which uses a C library (or a Rust library with C ABI) which is in the distribution. Then, in Guix you would put that librarie's name and needed version into a manifest.scm
file which lists your dependency, and makes it available if you run guix shell
in that folder. It does not matter whether you run the full Guix System, or just use Guix as s package manager.
Now, if you want to install your little python program as part of your system, you'll write an install script or package definition, which is nothing else than a litle piece of Scheme code which contains the name of your program, your dependency, and the information needed to call python's build tool.
The point I am making is now that the only thing which is different between your local package and a distributed package in Guix is that distributed packages are package definitions hosted in public git repos, called 'channels'. So, if you put your package's source into a github or codeberg repo, and the package definition into another repo, you now have published a package which is a part of Guix (in your own channel). Anybody who wants to install and run your package just needs your channel's URL and the packages name. It is a fully decentral system.
In short, in Guix you have built-in something like Arch's AUR, just in a much more elegant and clean manner - and in a fully decentralized way.
like this
I had a go at using guix as a package manager on top of an existing distro (first an immutable fedora, which went terribly, then OpenSUSE). Gave up for a few reasons:
- As mentioned in the article,
guix pull
is sloow. - Packages were very out of date, even Emacs. If I understand correctly, 30.1 was only added last month, despite having been available since February. I get that this isn't the longest wait, but for the piece of software you can expect most guix users to be running, it doesn't bode well.
- The project I was interested in trying out (Gypsum) had a completely broken manifest. Seems like it worked on the dev's machine though, which made me concerned about how well guix profiles actually isolate Dev environments. This was probably an error on the dev's part, but I'd argue such errors should be hard to make by design.
All in all I love the idea of guix, but I think it needs a bigger community behind it. Of course I'm part of the problem by walking away, but 🤷
- As mentioned in the article,
guix pull
is sloow.
This one has beem discussed on several forums discussing the original blog post, like here or also here on lobste.rs
Part of the reason for slow pulls is that the GNU projects savannah server, which Guix was using so far, is not fast, especially with git repos. Luckily, this is already being improved because Guix is moving to codeberg.org, a FOSS nonprofit org which is hosted in Europe. So if one changes the configured server URL, it is faster. (On top of that interested people might use the opportunity to directly take influence, and donate to codeberg so that they can afford even better hardware 😉).
OpenAI and UK sign deal to use AI in public services
OpenAI and UK sign deal to use AI in public services
The US tech firm behind ChatGPT say it will work with the UK government to "deliver prosperity for all".Mitchell Labiak (BBC News)
thisisbutaname likes this.
Fedora Must (Carefully) Embrace Flathub
Fedora Must (Carefully) Embrace Flathub
Motivation Opportunity is upon us! For the past few years, the desktop Linux user base has been growing at a historically high rate. StatCounter currently has us at 4.14% desktop OS market share...Michael Catanzaro (Michael Catanzaro's Blog)
like this
L'enorme braccio reclutato per agevolare la rinascita del nucleare in Gran Bretagna - Il blog di Jacopo Ranieri
L'enorme braccio reclutato per agevolare la rinascita del nucleare in Gran Bretagna - Il blog di Jacopo Ranieri
Affermò la profezia: “E quando il destino dovrà compiersi, il giorno si trasformerà in notte, e il normale ciclo diurno sembrerà finire prima dell’ora del tramonto.Jacopo (Il blog di Jacopo Ranieri)
What is the exact meaning of the "Banned" label next to a user?
For example, I've come across this:
^[1]^
::: spoiler References
1. Type: User Page. Name: "CanadaRocks" ("@CanadaRocks@piefed.ca"). Publisher: ["Lemmy". "sh.itjust.works"]. Accessed: 2025-07-22T02:07Z. URI: sh.itjust.works/u/CanadaRocks@….
:::
[…] Due to a bug, currently the user can post & comment […]
Do you have a link to the bug?
A hacky, incomplete solution has been running for a while: github.com/LemmyNet/lemmy/issu…
A full solution has been merged, but I don’t think it’s been released yet: github.com/LemmyNet/lemmy/pull…
Instance banning a remote user should prevent them from participating in remote versions of communities
Requirements Is this a feature request? For questions or discussions use https://lemmy.ml/c/lemmy_support Did you check to see if this issue already exists? Is this only a feature request? Do not p...sunaurus (GitHub)
[…] A full solution has been merged, but I don’t think it’s been released yet: github.com/LemmyNet/lemmy/pull…
It looks like it's coming with Lemmy 1.0 ^[1]^.
::: spoiler References
1. Type: Comment. Author: "Nutomic". Publisher: [Type: Post. Title: "Open issues on popular lemmy apps to prepare for 1.0.0 release". Author: "dessalines". Publisher: ["GitHub". "LemmyNet/Lemmy"]. Published: 2025-03-15T13:17:39.000Z. URI: github.com/LemmyNet/lemmy/issu….]. Published: 2025-06-02T08:21:42.000Z. Accessed: 2025-07-22T06:26Z. URI: github.com/LemmyNet/lemmy/issu….
:::
Open issues on popular lemmy apps to prepare for `1.0.0` release
Now that we've fundamentally changed nearly all the data structs, there's no reason to keep an api/v3 in the codebase. Nearly every data structure was changed with #5482 . As one example: GET /comm...dessalines (GitHub)
Yes. It "blocks" the user. Afaik it should prevent the banned user from interacting with communities from the instance they were banned from and also the instance will no longer accept any new interactions from the user (local users cant see new content of that user, like PMs, comments, etc.)
Additionally, their content can also be removed, but that is optional.
Hrm, I have a suspicion that it was a false positive by the automod (maybe it didn't like "kill this idea"?):
^[1]^
Update (2025-07-22T02:37Z): The moderation action was a false positive, and has been reverted ^[2]^.
::: spoiler References
1. Type: Webpage. Title: "Modlog". Publisher: ["Lemmy". "sh.itjust.works"]. Accessed: 2025-07-22T02:31Z. URI: sh.itjust.works/modlog?actionT….
2. Type: Message. Author: "InEnduringGrowStrong" (@inenduringgrowstrong:matrix.org). Publisher: ["Matrix". "sh.itjust.works"]. Published: 2025-07-22T02:36Z. Accessed: 2025-07-22T02:40Z. URI: matrix.to/#%2F%21ftaqqnpOePvPw….
:::
Matrix - Decentralised and secure communication
You're invited to talk on Matrix. If you don't already have a client this link will help you pick one, and join the conversation. If you already have one, this link will help you join the conversationmatrix.to
They also can’t send direct messages to users on that instance.
Can a user on the banning instance message the banned user? If so, can the banned user reply?
Can a user on the banning instance message the banned user?
I’ve never tried it so I’m not sure.
If so, can the banned user reply?
I’ve never tried this either, but I highly doubt it.
Winter_Oven
in reply to casual say_gex_enjoyer • • •meme_historian
in reply to casual say_gex_enjoyer • • •Etterra
in reply to casual say_gex_enjoyer • • •blackstampede
in reply to casual say_gex_enjoyer • • •Francois
in reply to casual say_gex_enjoyer • • •whotookkarl
in reply to Francois • • •