When the sales rep announces a delivery date without consulting us ā Read more
Microplastics crisis: could gloves be contaminating the findings?
Recent research has taught us that microplastics are everywhere - but just how accurate are these studies? One of the biggest environmental concerns r⦠ā Read more
PEP 829: Structured Startup Configuration via .site.toml Files
This PEP proposes a TOML-based configuration file format to replace the .pth file mechanism used by site.py during interpreter startup. The new format, using files named .site.toml, provides structured configuration for extending sys.path and executing package initialization code, replacing the current ad-hoc .pth format that conflates path configuration with arbitrary code execution. ā Read more
Mystery object seen over Mississippi turns out to be from Roswell
Aviation authorities have confirmed the identity of an object that was sighted high above the state last week. With all the talk of the US government ⦠ā Read more
When I discover someone uses a float to store monetary amounts ā Read more
Anna Paulina Luna offers update on Trumpās UFO files release
The US Representative has provided a few words hinting at what might be going on behind the scenes. Back in February, President Donald Trump made the ⦠ā Read more
Mystery as US government registers alien.gov and aliens.gov domain names
Rumors of impending alien disclosure are rife after the White House registered two mysterious new domain names. According to federal records, the US g⦠ā Read more
When I discover the previous dev versioned files using dates in the filenames ā Read more
Mysterious Iranian radio signal could be activating sleeper agents
Radio sleuths have been left perplexed by an enigmatic radio signal that began broadcasting after the US attacked Iran. Twice a day, a mysterious seri⦠ā Read more
When my pair tells me they managed to get us extra time for our delivery ā Read more
When we come across a library thatās going to save us one to two weeks of dev ā Read more
Have aliens been attempting to communicate with us for decades?
A new study suggests that we may have been receiving signals from intelligent aliens but simply didnāt realize it. Astronomers have been listening out⦠ā Read more
When I manage to fix a bug without using Google or an AI ā Read more
USAF general with UFO connections goes missing in New Mexico
Retired general William Neil McCaslandās disappearance has sparked rumors and speculation. The 68-year-old, who retired from the US Air Force in 2013,⦠ā Read more
UFO hacker Gary McKinnon found files referencing ānon-terrestrial officersā
The 60-year-old made global headline news back in the 2000s when he hacked into US government systems. It was one of the most hotly debated news stori⦠ā Read more
UFO spotters once thwarted a secret Soviet nuclear program
During the Cold War, a spate of mysterious sightings ended up exposing a plot to hide nukes from the US. Back in 1967, eagle-eyed skywatchers in the w⦠ā Read more
When I list the technologies we use on our new project to the marketing manager ā Read more
Animals perceive time at different rates, new study claims
Different species perceive time differently to us - and each other - depending on the pace of their life. Kevin Healy: As you read this, the screen is⦠ā Read more
Trump orders release of the US governmentās files on UFOs
In a surprising move, President Trump has suddenly decided to release previously classified UFO documents. Trump seems to have become rather enamored ⦠ā Read more
When the designer uses a font with a ā¬300 web license ā Read more
Growers warn āwatered downā lavender oil widespread in surging imports
Despite an Australian lavender industry dating back to the 1850s, youāre more than likely using an imported and āwatered-downā product, local growers say. ā Read more
@abucci@anthony.buc.ci coined the term āfailsceneā:
https://buc.ci/abucci/p/1771250567.039684
I wonder about using āfailsceneā to describe the current slate of AI tools and demos. In contrast with the demoscene, which is about getting very low powered computers to do cool things you wouldnāt expect them to be able to do, the failscene is about getting very high powered computers to fail at doing boring things we already know how to do without them. Plus you can stylize it fAIlscene if youāre inclined to.
I love it.
There was an endless coming and going of sun, clouds and rain. Not to forget about the wind. I called it quits a bit earlier and went into the woods.
Towards the end I was completeley surrounded by rain curtains in all directions. This looked super cool. I thought I might make it home just in time without having to use my umbrella, but the rain clouds were way quicker than I anticipated. Just after the rain hit me, I met an acquaintance who just started his walk. The wind picked up hard and rain hammered down, mixed with snow. Holding the umbrella was a workout. Shortly after I returned, the rain stopped again.
I didnāt notice the kestrel sitting on the tree when I took the last photo. That was a nice surprise when I sorted through the nearly 300 pics.
āAliens are real but I havenāt seen themā, Obama says, then backtracks
Former US President Obama recently made a comment about aliens that whipped social media users into a frenzy. Speaking recently on a podcast with host⦠ā Read more
As @pluralistic@pluralistic wrote: āAI is asbestos in the walls of our tech society, stuffed there by monopolists run amok. A serious fight against it must strike at its rootsā https://www.theguardian.com/us-news/ng-interactive/2026/jan/18/tech-ai-bubble-burst-reverse-centaur
@movq@www.uninformativ.de There are always some folks who would appreciate that. But I fear they are the minority. The rest just doesnāt give a shit.
The selfcontradiction is that those who proudly use and promote AI also claim to be sustainable and green and so on. Iāve no clue how this is not considered fraud, but there we are.
@kiwu@twtxt.net Since Iām not living in the US, I havenāt seen it. Iāve only witnessed all the āoutrageā about it through shows like Jon Stewartās Daily Show. š¤£
@lyse@lyse.isobeef.org They certainly donāt. š«¤
Had an idea earlier: How about going all in on sustainability and saving money/energy, so how about telling your customers āAI is a bad idea $because_long_list_of_reasons, here are our alternatives, youāll thank us in 5 yearsā? (I bet the customers wouldnāt listen either ⦠š)
Consciousness may be able to persist after death, new study claims
An Arizona State University researcher has compiled compelling evidence concerning death and consciousness. Exactly what happens to us when we die is⦠ā Read more
WA hop growers gear up for harvest as craft beer tastes evolve
Local brewers are experimenting with new flavours, while some farms invest in US-made machinery to modernise and streamline the harvest process. ā Read more
Fancy a 15% discount on my #Domestika #Python + #CreativeCoding course?
A_B_A_VILLARES-2026
Valid up to March 13th
(Beware Domestika also uses dark patterns like a very low priced offering that will trigger a āyearly subscriptionā after a month if you donāt read the small print and cancel⦠not nice)
Cheers to all #Python #CreativeCoding people here using #Linuxā¦
Would you like to test a script by our friend and co-maintainer of thonny-py5mode GoToLoop that installs #ThonnyIDE and #py5 on your machine to see how it goes and help improve it?
I wonder if it would be bad form to ask students to run something like this:
curl -fsSL https://Gist.GitHubUserContent.com/GoToLoop/246a31d437aaa8c6eadb7f7186544e0f/raw/thonny-installer.bash -o thonny-installer.bash && chmod +x thonny-installer.bash && ./thonny-installer.bash
(because, you know, it trains them to run potentially dangerous stuff in other occasions)
Okay, so the funniest thing that has happened at work in the realm of AI so far is this:
So this guy (that holds a certain position of power) wants people to use more AI, meaning people are expected to install a set of AI tools on their laptops. But, of course, he doesnāt want to write proper documentation for this, because that would be silly monkey work, right? So he conjures up some AI prompts that are intended to make the AI agent install all this stuff by itself.
Do you see where this is going? Can you see the punchline?
Thatās right! Since none of this AI stuff is deterministic, every setup is different. š¤¦āāļø Like, 10, 20 systems, all set up a little different and people wonder why this or that doesnāt work as expected.
Okay, itās not funny.
When I realize I could have used an existing library instead of rewriting everything ā Read more
Fuck me dead! I accidentally confused an HTML file for a YAML file and manually opened it in my browser. Unfortunately, I clicked on the OK button of the popped up dialog a bit too fast, it just caught me off guard. It asked which program to open the YAML file in. Of course Firefox thought that it could handle that and suggested itself by default. Conveniently, the ādonāt prompt me again and always use this selection from now onā checkbox was enabled.
And then the endless loop of death started. Turns out, this fucking browser canāt do shit with YAML files and delegated to what had been just configured. Oh, would you look at that!? Firefox! Empty tabs after empty tabs appeared. Killing and restarting Firefox just loaded the last session with all the tabs and the loop continued.
Some bloody snakeoil on my work machine slows down link openening requests by two, three seconds. Itās always absolutely anoying, but luckily, it actually limited the rate of new tabs popping up. I still could not close the many tabs fast enough that had accumulated before I noticed what was going on in the background.
Going to the settings to change them was always interrupted with a new tab opening in the foreground.
Finally, killing Firefox and renaming the file on disk before restarting Firefox did the trick and broke the loop. I was still holding down Ctrl+W for a minute or so to get rid of the useless tabs. I didnāt want to loose the important tabs, so just ditching the session wasnāt an option.
salty-chat TUI client as well, which now includes proper notifications and a background agent that keeps running so you never miss any messages. It all "just works"⢠and I'm quite happy with the outcome! 𤩠#saltyim #revamp
@bender@twtxt.net Whwn do i see you start to use Salty IM more? š
UFO disclosure advocate granted access to secretive US bases
President Trump has reportedly given permission for US Congressman Eric Burlison to access the facilities. Burlison, who has long called for more tran⦠ā Read more
Is it really possible to deflect an asteroid using nuclear weapons ?
Scientists have used a new computer simulation to find out if nuking an asteroid could actually save us from catastrophe. Nuclear weapons have the pot⦠ā Read more
I canāt remember if the hex viewer back then had these options. Donāt even recall what software that was. :-)
The one that I used during my Windows 95 days was āHex Workshopā. It had similar features, just not as promimently displayed. It shows them down there in the statusline as āValueā:
Newer versions can probably do more, havenāt checked. š (Assuming this program still exists.)
Apart from selecting text to copy into the clipboard. But that probably has the potential for trouble and interference with button clicks, etc.
Yeah, thatās a big problem: Once you activate mouse mode in the terminal, the terminal loses the ability to select text. š Youād either have to emulate that in the program itself (like Vim does) or give the user an easy way to turn mouse support on/off during runtime.
How did the startup times develop?
Theyāre pretty stable at around 230 ms on my old NUC. Itās just fast enough so that it doesnāt annoy me.
@movq@www.uninformativ.de Nice, itās coming together! Despite it being ages ago that I used a hex editor or viewer, these different representations of information appear very handy to me. If I had to mess around on binary formats, Iād definitely appreciate them. I canāt remember if the hex viewer back then had these options. Donāt even recall what software that was. :-)
I, too, only very, very rarely use the mouse in the terminal. Apart from selecting text to copy into the clipboard. But that probably has the potential for trouble and interference with button clicks, etc. If one isnāt careful.
How did the startup times develop?
Hmmm, thatās a pity. I never realized that before. The following Go code
var b bool
ā¦
b |= otherBool
results in a compilation error:
invalid operation: operator | not defined on b (variable of type bool)
I cannot use || for assignments as in ||= according to https://go.dev/ref/spec#Assignment_statements. Instead, I have to write b = b || otherBool like a barbarian. Oh well, probably doesnāt happen all that often, given that I only now run into this after all those many years.
Iām inclined to remove all mouse support, except for moving windows. š¤ I originally wanted this to emulate the behavior of DOS programs, but a) mouse support is a lot of code, b) using the mouse is cumbersome anyway and I would rarely do it.
@shinyoukai@yume.laidback.moe I donāt have a use for it, just curious, why did you fork it?
Also transfering interesting radio recordings I found on the used MiniDiscs to FLAC.
New leaked US military footage shows fast-moving UFO over Syria
The intriguing new footage was recently revealed by investigative journalists Jeremy Corbell and George Knapp. According to Corbell, the clip - which ⦠ā Read more
TIL that #Processing 4 on Windows now has an installer!
I is not just a zipped folder anymore, I wonder if it will make it harder for people to use it on restricted school labsā¦
TIL that #Processing4 on Windows now has an installer!
https://processing.org/download
I is not just a zipped folder anymore, I wonder if it will make it harder for people to use it on restricted school labsā¦
TIL that #Processing4 on Windows now has an installer!
https://processing.org/download
It is not just a zipped folder anymore, I wonder if it will make it harder for people to use it on restricted school labsā¦
Would you drink wine from a bottle made from seaweed instead of glass?
The federal government provides $2 million towards developing low-emissions alternatives to glass wine bottles using materials like seaweed and plant sugar. ā Read more
When someone asks me why weāre still using PHP ā Read more
Did Thomas Edison accidentally produce graphene 147 years ago ?
Officially isolated in 2004, graphene may have existed unintentionally in materials used long before that by Thomas Edison. First theorized in 1947 be⦠ā Read more
@klaxzy@klaxzy.net Nope, not IONOS, but we use them a lot at work. To be honest, I consider them one of the better providers (at least regarding the IaaS stuff that we do). š
When the sales rep suddenly comes to grab us for a client meeting ā Read more
The rise of AI psychosis: can AI trigger or exacerbate mental illness?
As more and more of us come to rely on AI in our daily lives, a psychiatrist looks at the potential consequences. Alexandre Hudon: Artificial intellig⦠ā Read more
Every single year I complain we should have an independent survey of Python users, not of āPython developersā, as many people who use Python do not identify as professional software developers (https://ciberlandia.pt/@villares/109885982178235703) and the questions in the survey make no sense for them. We should have someone doing serious research designing an unbiased survey, not a software firm like Jetbrains doing market research.
Every year I fail to do something effective about this.
[Reposted publicly with some tweaks]
Free solo climber Alex Honnold scales skyscraper without any ropes
The daredevil climber is well known for his ascents of impossibly tough routes without using any safety equipment. For most people, climbing up a moun⦠ā Read more
Americans in six US states warned about the threat of āexploding treesā
A peculiar phenomenon that occurs only during periods of particularly cold weather has been raising eyebrows recently. If you happen to be strolling t⦠ā Read more
What a beautiful, beautiful 0°C Sunday arvo and evening! The weather forecast delayed the snow by the minute. An hour or so after it finally started very, very lightly, I headed off for the woods to check out the lake again. Unfortunately, with the fresh snow layer, the crazy wild surface texture of the ice sheet wasnāt visible anymore. But it brought some other nice views and photo opportunities.
I initially thought that I just go for a quick turn. However, with the snowfall a wee bit increasing I was hooked and kept going. Visibility was poor, but the snow blankets just looked too stunning. The road surfaces were quite slippery, so I often just walked alongside the pathways. On downhill slopes I had some good fun sliding down the road on my feet. With varying success. Luckily, I managed not to fall.
On the summit of the mountain the twigs had those absolutely magnificently looking windblown crystal coverings. Awwwwwww! They never get old. It was already getting dark, so the camera was tired and wanted to sleep. The snow program then made use of the flash and Iām quite pleased with how these shots turned out.
Two deer crossed the road in front of me and ran into the woods, that was sight for sore eyes. Although I felt bad that they had to flee from me in this white terrain. By the time I got home, the snow had accumulated around eight centimeters in height, even in town down in the valley. Walking on this fresh snow is just amazing. And I love the sound it makes. Today, the snow consistency must have been just right, because the crushing sound was really loud.
I cannot recall that I had frozen hair and beard before, but today, there was a thick ice buildup. In case I had, it was definitely never this much. Felt really cool.
Enough of this preliminary skirmishing, there ya go: https://lyse.isobeef.org/waldspaziergang-2026-01-25/
Has a bit of a long history story behind this, where last year at work we were reading this book called Engineering a Safer World and initially came across a service called Speech Reply that allowed me to upload a PDF copy of the book and start to read it, but unfortunately, the free trial right now before I can finish reading it turns out that Speech Reply service cost a whopping US$30 a month and expected me to pay a full year upfront, which was well over US$300 just for one fucking book! So I sent their sales and support staff a message kindly asking if it were possible to just pay for the audio transcription of just a single book or to change to a monthly subscription fee, to which they refused, so basically in the end I got very angry and told them to go fuck themselves and built my own service. A year later here we are :-)
Another project where Iām going to use my terminal widget toolkit is a hex editor. This is still very young, obviously, and thereās a lot of work to do (both in the toolkit and this particular application), but Iām making some progress:
https://movq.de/v/2bae14ed16/vid-1769283187.mp4
Since this program is UTF-8 clean (I hope), you can do things like enter multi-byte UTF-8 sequences or paste them from the system clipboard (another hex editor I just tried failed to do this correctly):
https://movq.de/v/e9241034c1/vid-1769283755.mp4
Under the hood, Iām using mmap() with MAP_PRIVATE, which is really cool: I get the entire file as a byte array, no matter how large it is, no need to actually read it upfront; and MAP_PRIVATE means that I can write to this area however I like without changing the underlying file. The kernel does copy-on-write for me. Only when you hit Save, it will write to the filesystem. And itās just a couple lines of code. The kernel does all the magic. š„³
Your supermarket apple could be a year old. How is that possible?
Apples only grow for three months of the year ā but thanks to an ancient technique, that doesnāt stop us grabbing one from the grocery store year round. ā Read more
Egyptās pyramids were built using an internal lifting system, study suggests
New research has proposed that counterweights and pulley-like mechanisms were used to build the pyramids. The effort and skill needed to construct som⦠ā Read more
Spent basically the entire day (except for the mandatory walk) fighting with Pythonās type hints. But, the result is that my widget toolkit now passes mypy --strict.
I really, really donāt want to write larger pieces of software without static typing anymore. With dynamic typing, you must test every code path in your program to catch even the most basic errors. pylint helps a bit (doesnāt need type hints), but thatās really not enough.
Also, somewhere along the way, I picked up a very bad (Python) programming style. (Actually, I know exactly where I picked that up, but I donāt want to point the finger now.) This style makes heavy use of dicts and tuples instead of proper classes. That works for small scripts, but it very quickly turns into an absolute mess once the program grows. Prime example: jenny. š©
I have a love-hate relationship with Pythonās type hints, because they are meaningless at runtime, so they can be utterly misleading. Iām beginning to like them as an additional safety-net, though.
(But really, if correctness is the goal, you either need to invest a ton of time to get 100% test coverage ā or donāt use Python.)
My mate and I went on a hike earlier. Yesterday, we had lovely 12°C. But today, it was down to at most 4°C. Oh well. At least the sun was out and and there was just a tiny bit of wind. We knew upfont that scarf, beanie and gloves were mandatory. Especially at the more windy sections like up top the hills. The view was absolutely terrible, but we made the best of it.
With the sun shining on us during our lunch break at a forest edge bench, we still enjoyed the lookout in 01. I brought some old carpet scraps to sit on and was happily surprised that they isolated even better than I had hoped for. Some hot tea helped us staying warm.
After five hours we returned just after sunset. Iām quite tired now, completely out of shape.
I love using #ThonnyIDE, and, on Linux, I can use !pip install, !jupyter lab, and !py5-live-coding mysketch.py on the interactive shell console, I wish this would work on Windows too :(
When the API Iām using returns an error code with no explanation ā Read more
@bender@twtxt.net Iām already using it for tracktivity (meant for tracking activities and events, like weather, food consumption, stuff like that), which is basically a somewhat-fancy CSV editor:
I have a couple of other projects where I could use it, because they are plain curses at the moment. Like, one of them has an āedit boxā, but you canāt enter Unicode, because it was too complicated. That would benefit from the framework.
Either way, itās the most satisfying project in a long time and Iām learning a ton of stuff.
Pentagon obtains device connected to āHavana syndromeā mystery
The US government has acquired a device that may be responsible for years of unexplained symptoms. The true nature of Havana syndrome, which is named ⦠ā Read more
Canoes discovered in Wisconin lake are āolder than the Great Pyramidā
A groundbreaking archaeological discovery indicates that an advanced culture existed in the US at the time of the ancient Egyptians. The find, which w⦠ā Read more
Iām trying to implement configurable key bindings in tt. Boy, is parsing the key names into tcell.EventKeys a horrible thing. This type consists of three information:
- maybe a predefined compound key sequence, like Ctrl+A
- maybe some modifiers, such as Shift, Ctrl, etc.
- maybe a rune if neither modifiers are present nor a predefined compound key exists
Itās hardcoded usage results in code like this:
func (t *TreeView[T]) InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
switch event.Key() {
case tcell.KeyUp:
t.moveUp()
case tcell.KeyDown:
t.moveDown()
case tcell.KeyHome:
t.moveTop()
case tcell.KeyEnd:
t.moveBottom()
case tcell.KeyCtrlE:
t.moveScrollOffsetDown()
case tcell.KeyCtrlY:
t.moveScrollOffsetUp()
case tcell.KeyTab, tcell.KeyBacktab:
if t.finished != nil {
t.finished(event.Key())
}
case tcell.KeyRune:
if event.Modifiers() == tcell.ModNone {
switch event.Rune() {
case 'k':
t.moveUp()
case 'j':
t.moveDown()
case 'g':
t.moveTop()
case 'G':
t.moveBottom()
}
}
}
})
}
This data structure is just awful to handle and especially initialize in my opinion. Some compound tcell.Keys are mapped to human-readable names in tcell.KeyNames. However, these names always use - to join modifiers, e.g. resulting in Ctrl-A, whereas tcell.EventKey.Name() produces +-delimited strings, e.g. Ctrl+A. Gnaarf, why this asymmetry!? O_o
I just checked k9s and theyāre extending tcell.KeyNames with their own tcell.Key definitions like crazy: https://github.com/derailed/k9s/blob/master/internal/ui/key.go Then, they convert an original tcell.EventKey to tcell.Key: https://github.com/derailed/k9s/blob/b53f3091ca2d9ab963913b0d5e59376aea3f3e51/internal/ui/app.go#L287 This must be used when actually handling keyboard input: https://github.com/derailed/k9s/blob/e55083ba271eed6fc4014674890f70c5ed6c70e0/internal/ui/tree.go#L101
This seems to be much nicer to use. However, I fear this will break eventually. And itās more fragile in general, because itās rather easy to forget the conversion or one can get confused whether a certain key at hand is now an original tcell.Key coming from the library or an āextendedā one.
I will see if I can find some other programs that provide configurable tcell key bindings.
@movq@www.uninformativ.de Sorry, I meant the builtin module:
$ python3 -m pep8 file.py
/usr/lib/python3/dist-packages/pep8.py:2123: UserWarning:
pep8 has been renamed to pycodestyle (GitHub issue #466)
Use of the pep8 tool will be removed in a future release.
Please install and use `pycodestyle` instead.
$ pip install pycodestyle
$ pycodestyle ...
I canāt seem to remember the name pycodestyle for the life of me. Maybe thatās why I almost never use it.
German UFO center received record number of sighting reports last year
The UFO phenomenon is not just prevalent in the US - people across Europe have also reported their own close encounters. Known as the Central Research⦠ā Read more
Since I used so much Rust during the holidays, I got totally used to rustfmt. I now use similar tools for Python (black and isort).
What have I been doing all these years?! I never want to format code manually again. š¤£š
@lyse@lyse.isobeef.org Itās not super comfortable, thatās right.
But these mouse events come with a caveat anyway:
ncurses uses the XM terminfo entry to enable mouse events, but it looks like this entry does not enable motion events for most terminal emulators. Reporting motion events is supported by, say, XTerm, xiate, st, or urxvt, it just isnāt activated by XM. This makes all this dragging stuff useless.
For the moment, I edited the terminfo entry for my terminal to include motion events. That canāt be a proper solution. Iām not sure yet if Iām supposed to send the appropriate sequence manually ā¦
And the terminfo entries for tmux or screen donāt include XM at all. tmux itself supports the mouse, but Iām not sure yet how to make it pass on the events to the programs running inside of it (maybe thatās just not supported).
To make things worse, on the Linux VT (outside of X11 or Wayland), the whole thing works differently: You have to use good old gpm to get mouse events (gpm has been around forever, I already used this on SuSE Linux). ncurses does support this, but this is a build flag and Arch Linux doesnāt set this flag. So, at the moment, Iām running a custom build of ncurses as a quick hack. š And this doesnāt report motion events either! Just clicks. (I donāt know if gpm itself can report motion events, I never used the library directly.)
tl;dr: The whole thing will probably be ākeyboard firstā and then the mouse stuff is a gimmick on top. As much as Iād like to, this isnāt going to be like TUI applications on DOS. Iāll use āWindowsā for popups or a multi-window view (with the āWindowManagerā being a tiny little tiling WM).
Hey folks! We have recently had a wonderful new release of #py5, read about the new 3D trimesh integration feature and the matplotlib TextPath integration.
That release was quickly followed by a release to fix some small issues that surfaced this last week. Please check out py5 0.10.9a1 and join us at https://github.com/py5coding/py5generator/discussions to share your experiences!
#CreativeCoding #Processing #Python #genuary (sorry for the hashtag spamming, I couldnāt resist!)
Oldest known evidence of poison use in hunting discovered in South Africa
The discovery of poisoned arrow tips dating back 60,000 years has served to rewrite the history books once again. Marlize Lombard: The oldest evidence⦠ā Read more
Declassified UK UFO files reference interest in obtaining alien technology
Newly published files from the UKās Defence Intelligence Staff reference UFO cases from the 1980s and 1990s. The US is not the only country to have pu⦠ā Read more
httpd now sends the Last-Modified with UTC instead of GMT. Current example:
@shinyoukai@neko.laidback.moe Not using OpenBSD or httpd? Yeah. Itās been working quite well since ~2017, so, meh, too lazy to switch now. But nothing is set in stone, of course.
And now the event loop is not a simple loop around cursesā getch() anymore but it can wait for events on any file descriptor. Hereās a simple test program that waits for connections on a TCP socket, accepts it, reads a line, sends back a line:
https://movq.de/v/93fa46a030/vid-1767547942.mp4
And the scrollbar indicators are working now.
Iāll probably implement timer callbacks using timerfd (even though thatās Linux-only). š¤
More widget system progress:
https://movq.de/v/87e2bce376/vid-1767467193.mp4
I like the oldschool shadow effect. š Not sure if Iāll keep it, but itās neat.
The menu bar is still fake.
Had to spend quite a bit of time optimizing the rendering today. This can get really slow really quickly.
Unicode is Pain.
I might be able to start porting my first program (currently uses urwid) soon. š¤
@movq@www.uninformativ.de I noticed that your feedās last modification timestamp was missing in my database. I cannot tell for certain, but I think it did work before. Turns out, your httpd now sends the Last-Modified with UTC instead of GMT. Current example:
Sat, 03 Jan 2026 06:50:20 UTC
Iām not a fan of this timestamp format at all, but according to the HTTP specification, HTTP-date must always use GMT for a timezone, nothing else: https://httpwg.org/specs/rfc9110.html#http.date
@eldersnake@we.loveprivacy.club
Steps to world domination:
- āInventā āAIā (by using other peopleās data).
- Get people hyped about it and ideally hooked on it.
- Only provide it as a cloud service. But hey, if you want to, you can run it locally!
- Buy all hardware available on the market, so that nobody but you can build more systems.
- All PCs of consumers and competitors are too weak now and canāt be upgraded anymore.
- Everybody depends on your cloud service! Win!
All of that is possible because corporations donāt have a āconscienceā in capitalism. Nobody forces the RAM manufacturers to sell all their stuff to just one or two buyers, but since the only goal of that manufacturer is to make money, they do it.
@shinyoukai@neko.laidback.moe I canāt believe Trace and Edgewall Software is still around and in use š¤£
On my way to having windows and mouse support:
https://movq.de/v/95bbbbd3e8/basic-windows.mp4
It would be cool to have something like Turbo Vision eventually.
(I considered just using Turbo Vision, but itās a C++ library and thatās not quite what Iām looking for. But itās not yet completely off the table.)
Scientists publish findings of new hunt for alien technology on 3I/ATLAS
The new observations were made back in December using the 100-meter Green Bank Telescope in West Virginia. Last year, speculation was rife over whethe⦠ā Read more
I keep thinking about this piece on students that have not learned yet about folder/directory structuresā¦
I have met many students like that, I wonder if I could help them get it better, or if I shouldnāt worry about it at all (theyāll mostly get used to it without much help).
@movq@www.uninformativ.de Well, just a very limited subset thereof:
- inline and multiline code blocks using single/double/triple backticks (but no code blocks with just indentation)
- markdown links using using
[text](url)
- markdown media links using

And thatās it. No bold, italics, lists, quotes, headlines, etc.
Just like mentions, plain URLs, markdown links and markdown media URLs are highlighted and available in the URLs View. Theyāre also colored differently, similarly to code segments.
I definitely should write some documentation and provide screenshots.
Hurray, I finally fixed another rendering bug in tt that was bugging me for a long time. Previously, when there were empty lines in a markdown multiline code block, the background color of the code block had not been used for the empty lines. So, this then looked as if there were actually several code blocks instead of a single one.
mu (µ) now has builtin code formatting and linting tools, making µ far more useful and useable as a general purpose programming language. Mu now includes:
- An interpreter for quick āscriptinogā
- A native code compiler for building native executables (Darwin / macOS only for now)
- A builtin set of developer tools, currently: fmt (-fmt), check (-check) and test (-test).
@shinyoukai@neko.laidback.moe Because you might not want to commit all changed files in a single commit. I very often make use of this and create several commits. In fact, I like to git add --patch to interactively select which parts of a file go in the next commit. This happens most likely when refactoring during a feature implementation or bug fix. I couldnāt live without that anymore. :-)
If you have a much more organized way of working where this does not come up, you can just git commit --all to include all changed files in the next commit without git adding them first. But new files still have to be git added manually once.
$HOME is not specified it tries to resolve the user's home directory by user.Current().HomeDir. Maybe that's overkill, I have to check the XDG spec.
Ok, the standard library implementation is wonky at best, at least in regards to XDG, because it really doesnāt implement it properly. https://github.com/golang/go/issues/62382 I stick to my own code then. It doesnāt properly support anything else than Linux or Unixes that use XDG, but personally, I donāt care about them anyway. And the cross-platform situation is a giant mess. Unsurprisingly.
@movq@www.uninformativ.de Thanks! Iāll have a look at SnipMate. Currently, Iām (mis)using the abbreviation mechanism to expand a code snippet inplace, e.g.
autocmd FileType go inoreab <buffer> testfunc func Test(t *testing.T) {<CR>}<ESC>k0wwi
or this monstrosity:
autocmd FileType go inoreab <buffer> tabletest for _, tt := range []struct {<CR> name string<CR><CR><BS>}{<CR> {<CR> name: "",<CR><BS>},<CR><BS>} {<CR> t.Run(tt.name, func(t *testing.T) {<CR><CR>})<CR><BS>}<ESC>9ki<TAB>
But this of course has the disadvantage that I still have to remove the last space or tab to trigger the expansion by hand again. Itās a bit annoying, but better than typing it out by hand.
@lyse@lyse.isobeef.org Well, I used SnipMate years ago (until 2012). IIRC, itās more than just āinsert a bit of text hereā, it can also jump to the correct next location(s) and stuff like that. Donāt remember why I stopped using it.
Then I used nothing for a long time. Just before Christmas, I made my own plugin (⦠of course ā¦), which does everything I need at the moment (and nothing more).
It can insert simple templates and then jump to the next location:
https://movq.de/v/67cdf7c827/sisni%2Dpython.mp4
And replace a string after insertion:
https://movq.de/v/67cdf7c827/sisni%2Dheader.mp4
(Itās not public (yet?) and it also uses vim9script, so I guess it wouldnāt work on your system.)
Question to my fellow Vimers: Which snippet insertion mechanism are you using or can you (not) recommend?
tt URLs View now automatically selects the first URL that I probably are going to open. In decreasing order, the URL types are:
@lyse@lyse.isobeef.org That sounds useful. š¤
@lyse@lyse.isobeef.org I can tell you this right now, writing assembly / machine code is fucking hard work⢠š Iām sure @movq@www.uninformativ.de can affirm 𤣠And when it all goes to shit⢠(which it does often), man is debugging fucking hard as hell! Without debug symbols I canāt use the regular tools like lldb or gdb š
println(1, 2) was bring printed as 1 2 in the bytecode VM and 1 nil when natively compiled to machine code on macOS. In the end it turned out the machine code being generated / emitted meant that the list pointers for the rest... of the variadic arguments was being slot into a register that was being clobbered by the mu_retain and mu_release calls and effectively getting freed up on first use by the RC (reference counting) garbage collector š¤¦āāļø
@prologic@twtxt.net Tada, congratulations! I find that rather interesting, thanks for telling us. :-)
Whoo! I fixed one of the hardest bugs in mu (µ) I think Iāve had to figure out. Took me several days in fact to figure it out. The basic problem was, println(1, 2) was bring printed as 1 2 in the bytecode VM and 1 nil when natively compiled to machine code on macOS. In the end it turned out the machine code being generated / emitted meant that the list pointers for the rest... of the variadic arguments was being slot into a register that was being clobbered by the mu_retain and mu_release calls and effectively getting freed up on first use by the RC (reference counting) garbage collector š¤¦āāļø
@zvava@twtxt.net By hashing definition, if you edit your message, it simply becomes a new message. Itās just not the same message anymore. At least from a technical point of view. As a human, personally I disagree, but thatās what Iām stuck with. Thereās no reliable way to detect and ācorrectā for that.
Storing the hash in your database doesnāt prevent you from switching to another hashing implementation later on. As of now, message creation timestamps earlier than some magical point in time use twt hash v1, messages on or after that magical timestamp use twt hash v2. So, a message either has a v1 or a v2 hash, but not both. At least one of them is never meaningful.
Once you āupgradeā your database schema, you can check for stored messages from the future which should have been hashed using v2, but were actually v1-hashed and simply fix them.
If there will ever be another addressing scheme, you could reuse the existing hash column if it supersedes the v1/v2 hashes. Otherwise, a new column might be useful, or perhaps no column at all (looking at location-based addressing or how it was called). The old v1/v2 hashes are still needed for all past conversation trees.
In my opinion, always recalculating the hashes is a big waste of time and energy. But if it serves you well, then go for it.