Using a copper wire or a similarly malleable material, pass it through a drilled hole, hammer it on one end until flat, then do the same on the other side.
It does the same job of a rivet but it's flatter and look nicer on both sides, it's of course weaker but still strong enough for small objects.
It's sometimes used to reduce risk of deformities due to heat in hand-crafted jewelry and to reduce costs of small tools.
Giving the user multiple choices to do the same things is what is great about protocols in general.
I too had the same issue being a browser-based request, so the only solution is using a proxy.
For testing (and real personal use) I rely on this one https://corsproxy.io/.
In my client, I first check if the source allows me to fetch it without issues first and fallback to prefixing with a proxy if it gives an error.
For security reasons the client don't give you a readable error for CORS, so you must use a catch-all for that, if it fails again with the proxy you can deal with any other errors it throws as you normally would (preferably outside of the fetch function).
After the fetching responded, I store the
response.url
value to fetch it again for updates without having to do extra calls (you can store it verbatim or as a flag to be able to change the proxy later).Here an extract of my code:
t
export async function fetchWithProxy(url, proxy=null) {
return await fetch(url).catch(err => {
if (!proxy) throw err;
return fetch(`${proxy}${encodeURIComponent(url)}`);
});
}
// Using it with
const res = await fetchWithProxy('https://twtxt.net/user/zvava/twtxt.txt', 'https://corsproxy.io/?');
// Get the working url (direct or through proxy)
const fetchingURL = res.url;
// Get the twtxt feed content (or handle errors)
const text = await res.text();
I also plan to allow the user to define a custom proxy field, I like the solution used by Delta.chat in their android app, where you can define the URL format with a variable
https://my-proxy?$TWTXT_URL
since it allows you to define with more freedom any proxy without a prefix format.If the idea of using a third-party proxy is not to the user liking they can use a self-hosted solution like
cors-anywhere
or build their own (with twtxt it should just be a GET).
#OpenStreetMap #FreeMaps #MapCarta
Em outubro vou dar este curso quintas à tarde com 4 encontros:
https://www.sescsp.org.br/programacao/ilustracoes-vetoriais-para-grandes-formatos-com-programacao/
#SescSP #TecnologiasEArtes

I decided against blind rivets, because they leave ugly looking and sharp backsides, which can also interfer with the contents of the box. However, they would be an easy solution to make the corners more rigid and prevent any movement from the short sides.
Unfortunately, I can't weld or solder, so that's not an option. It would be the by far best solution. I wanna learn it one day, though.
Yes, Ken is a really great dude. He's the reason I gave this a shot in the first place. :-)
I can confirm, the
User-Agent
header appears to be fixed. \o/Two other things I noticed, though:
1. There's now an
OPTIONS
request for my feed coming from something that claims to be Firefox, pointing to your feed URL in the query. No clue what this is about. In any case, it's rejected with a 405 Method Not Allowed
.2. Not that these few requests bother me at all, but you might wanna implement caching next with either the
If-Modified-Since
or If-None-Match
request headers. This way, if the feed hasn't changed, the web server can reply with a 304 Not Modified
and no body at all, saving unnecessary traffic. But again, this is really not an issue for me at all. I just wanted to make sure you're aware of it, that's all. It might be even already on your agenda. Or you might decide to never do anything about it, which is also fine for me. :-)
No entanto, muitos nutrem uma tóxica noção de superioridade em relação aos pedestres: furam a sinalização, cruzam de qualquer jeito a faixa de pedestre, assustam a gente e tiram finas. É detestável isso.
Não seja ciclista com a mente carrocrata.
BTW - I promise, I intended it to be pronounced like "TweetStream" (or as written, "TwtStrm"), rather than "TweetStorm". Sorry again. 😊
After another round of coding this weekend, I'm happy to report that it now renders _all_ the twts (with markdown parsing), complete with
localstorage
and server-based file caching.
zs
looks pretty cool! I love simple static site generators, and look forward to trying it on my next web site project. Kudos!
To build a compliant PWA you need to provide a webmanifest json and a service worker.
Those requirements are not directly part of this project.
You can build the client as a standalone PWA or even as a widget inside an existing page.
The general steps are closer to how you would include a third-party library in an existing project, by importing it as a dependency and using it in your website.
I'm pretty sure most users would expect a PWA (me included) so I plan to provide a ready-made template ready to be deployed as is.
The client I'm developing is a single tenant project that runs entirely in the browser (it might use an optional backend).
It's entirely based on native web-components and vanilla JS, it is designed to act closer to a toolkit than a full-fledged client, allowing users to "DIY" their own interface with pure html or plain javascript functions.
Users can also build their own *engines* by including a global javascript object that implement the defined internal API (TBD).
I'm planning to build a system that is easy enough to build and use with any skill level, using only pure html (with a homebrew minimal template engine) or via plain JS (I'll be also providing some pre-made templates too).
Everything can be self-hosted on any static hosting provider, this allows to spread twtxt within communities like Neocities and similarly hosted websites (basically any Indieweb/Smallweb/Digital garden website and any of the common GitHub/Lab/Berg/lify Pages).
It will be probably named something like TxtCraft or craf.txt but I'm not really sure yet... 🤔 (Maybe some suggestions could help)
I'm still in the experimental phase, so there's no decent source-code to share yet, but it will soon enough!
BTW, That Sheet Metal Dude is something else himself, skilled enough to teach others, can work properly with self-imposed contraints, care about safety and is humble enough to be wiling to learn from others, a true craftman worthy of respect.
The new blog for prologic.blog soon to be powered by zs using the zs-blog-template is coming along very nicely 👌 It was _actually_ pretty easy to do the migration/conversation in the end. The results are not to shabby either.
Before:
- ~50MB repo
- ~267 files
After:
- ~20MB repo
- ~88 files
«This year at PyCon UK, you’re warmly invited to a world premiere: Ada, a brand-new play inspired by Ada Lovelace, written by Emily Holyoake, and staged as a rehearsed reading by Nottingham-based theatre company Chronic Insanity
'You may turn the handle, and I will whirr and calculate without error!'
Decades before the first computers are built, Ada imagines machines that can do anything, even compose beautiful pieces of music. Far beyond Ada’s future, a learning machine called Ginny breaks free of her routine and tests the boundaries of what ought to be possible.
Ada is an intricate re-telling of the life and legacy of Ada Lovelace, pioneer of computing, paralleling her history with a contemporary story about the potential of artificial intelligence.
Cast and Crew:
Ada: Ruth Page
Babbage: Jamie Richard-Stewart
Lady Byron/Anna: Lynne Payne
Ginny: Natalie Patuzzo
Jasper: Ben Gilbert»
https://www.youtube.com/watch?v=CtrsssksCNU
#AdaLovelace #PyConUK #Theater
'You may turn the handle, and I will whirr and calculate without error!'
Decades before the first computers are built, Ada imagines machines that can do anything, even compose beautiful pieces of music. Far beyond Ada’s future, a learning machine called Ginny breaks free of her routine and tests the boundaries of what ought to be possible.
Ada is an intricate re-telling of the life and legacy of Ada Lovelace, pioneer of computing, paralleling her history with a contemporary story about the potential of artificial intelligence.
Cast and Crew:
Ada: Ruth Page
Babbage: Jamie Richard-Stewart
Lady Byron/Anna: Lynne Payne
Ginny: Natalie Patuzzo
Jasper: Ben Gilbert»
https://www.youtube.com/watch?v=CtrsssksCNU
#AdaLovelace #PyConUK #Theater
Vocês sabem que é possível ler de graça a versão em português do Python Fluente do Luciano Ramalho, não é mesmo?
(https://pythonfluente.com)
Agora, se você sonhava com uma edição em papel, ajude o @lr a fazer ela acontecer contribuindo no:
https://www.catarse.me/pythonfluente
#Python #PythonFluente #Livro

I haven’t checked in desktop; I try not to touch desktop on weekends. 😂
I made some #Python #numpy, #shapely, #trimesh & #py5 stickers!
PS: I asked the PSF to check if the logos were alright: "you can change the colors and add elements inside, but not change the shape or position of the snakes". So I had to change my original Python Reading Club logo...

I made some #Python #numpy, #shapely, #trimesh & #py5bot stickers!
PS: I asked the PSF to check if the logos were alright: "you can change the colors and add thing inside, but not change the shape or position of the snakes". So I had to change my original Python reading club logo...

- Clean layout & typography
- Chroma code highlighting (aligned to your site palette)
- Accessible copy-code button
- “On this page” collapsible TOC
- RSS, sitemap, robots
- Archives, tags, tag cloud
- Draft support (hidden from lists/feeds)
- Open Graph (OG) & Twitter card meta (default image + per-post overrides)
- Ready-to-use 404 page
As well as custom routes (_redirects, rewrites, etc_) to support canonical URLs or redirecting old URLs as well as new
zs
external command capability itself that now lets you do things like:
$ zs newpost
to help kick-start the creation of a new post with all the right "stuff"™ ready to go and then pop open your
$EEDITOR
🤞#awesome #zs
The way I have it setup right now would take me more work to integrate with your script though.
I'm keeping things dumb on purpose, I just have to finish my client to have all the cool buttons that do it for me.
I use most of it as a hosting platform for personal use only and as a remote development environment (I do share a couple of tools with a friend though).
But given the costant risks of DDoS, hacking, bots, etc. I keep any of my public facing resources purely static and on separate hosting providers (without lock-ins of course).
Lately, I began using homebrew PWAs with CouchDB as a sync database, this way I get a fantastic local-first experience and also have total control of my data, that also sync in a locally hosted backup instance in real-time.
Also, I was already aware of Salty.im, but what I'm thinking is a more feature complete solution that even my family can use quickly, Delta.chat with the new chatmail provider (self-hostable) might be the solution for my needs.
But I'm still thinking if it's worth the trouble. I might just drop everything and only use safe channels to speak with them (free 24/7 family tech-support is easy to manage 😆).
Also, I'll be waiting for the day you'll share with us your story, I'm pretty curious about it!
groff --version
)?
https://lyse.isobeef.org/tmp/screenshot-2025-09-27-13-56-13.png
Yes, this was a flat piece of sheet metal. It went together like a cardboard box, just much slower and with timbers clamped down to get a straight folding line. I don't have a sheet metal brake, so I just carefully hammered the piece bit by bit. Like in this video by the Sheet Metal Dude: https://www.youtube.com/watch?v=WYgEfWEMXk0
- https://lists.gnu.org/archive/html/groff/2023-04/msg00400.html
- https://savannah.gnu.org/bugs/?63960
Most importantly:
> This is resolved in the groff trunk.
🥳
man-pages
project: https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/man/man7/ascii.7I do have an idea what’s going on. Could be an unfortunate interaction between the table preprocessor `tbl` and the `man` macro package. 🤔
https://movq.de/v/b05a7ce782/vid-1758959332.mp4
When you call
man ascii
, you get this nice table, but there’s a weird vertical line at the bottom. That line is supposed to be a vertical rule and is supposed to go from the bottom of the table all the way to the top.Let’s see if I can debug this. (Not getting my hopes up at this point, but I’ll try.)
Acho que quero fazer algo parecido com isso aqui, mas a minha incompetência / inexperiência me derruba...
Tenho um geodataframe com praças e parques, e um com massa de vegetação significativa (que peguei no geosampa), queria saber calcular em uma coluna o quanto cada praça está coberta de vegetação significativa...
https://gis.stackexchange.com/questions/421888/getting-the-percentage-of-how-much-areas-intersects-with-another-using-geopandas
Eu soube fazer um overlay de instersecção, filtrar as com área menor que 100m2 e usar o .explore() pra colorir as massas por área, já fiquei feliz, mas queria mais rsrsrs.
#python #geopandas #geoPython #GIS
Acho que quero fazer algo parecido com isso aqui, mas a minha incompetência / inexperiência me derruba...
Tenho um geodataframe com praças e parques, e um com massa de vegetação significativa (que peguei no geosampa), queria saber calcular o quanto de cada praça está coberto de vegetação significativa...
https://gis.stackexchange.com/questions/421888/getting-the-percentage-of-how-much-areas-intersects-with-another-using-geopandas
Eu soube fazer um overlay de instersecção, filtrar as com área menor que 100m2 e usar o .explore() pra colorir as massas por área, já fiquei feliz, mas queria mais rsrsrs.
#python #geopandas #geoPython #GIS

> immigration and multiculturalism
What about it? I grew up in a multicultural country.
https://zsblog.mills.io/
🤞
User-Agent
header. Instead of the URL, the nick is repeated.
The green party and the (far) left are opposing this (at least in Germany). Sadly, Germany is leaning more right with every year … As for young people: The (far) left is the strongest party among young people, with the (far) right being the second strongest one. (https://www.tagesschau.de/wahl/archiv/2025-02-23-BT-DE/umfrage-alter.shtml) Is there cause for hope? I don’t know.
I am feeling "mushy" today. Ugh, ageing sucks.