In Neovim, C-y and C-e insert the same character as the column above or below the cursor in Insert mode
Thought this was neat. Wanted to share. https://neovim.io/doc/user/insert.html#i_CTRL-E https://neovim.io/doc/user/insert.html#i_CTRL-Y
Thought this was neat. Wanted to share. https://neovim.io/doc/user/insert.html#i_CTRL-E https://neovim.io/doc/user/insert.html#i_CTRL-Y
I have been in a group chat with 2 of my closet friends for more than 10 years now, and we have been using Facebook messenger for that entire time. However, there has always been interest in migrating to a different platform, but so far we have not been able to land on a good alternative. We have gotten very used to some of the messenger features and have disliked alternatives for lacking these features. I was wondering if anyone could suggest some solutions here, up to and including a DIY (maybe IRC?) approach.
The features we really liked from messenger:
Features we really do not need and in fact get in the way:
Features that aren't necessary but could be nice:
Does anyone have suggestions for alternatives to messenger that hit these points? We have tried Discord, but found it was way too feature heavy for how we use it, and lacked some really basic features we liked from messenger. Whatsapp was a decent replacement, but lack of themes and emoji hotkey made it less enjoyable for us than messenger, plus it is also a Meta platform which eliminated one of the main reasons we wanted to switch.
I have half a mind to set up an IRC channel for us, but it's been many years at this point since I've used IRC, so I don't know what that ecosystem is like these days, and how easy it would be to get my non-tech-savvy friends on board.
(perhaps this is better suited to ~tech, but I am posting here with an eye towards DIY solutions, although to reiterate I would also be happy with an out-of-the-box alternative)
I'm still a beginner at Godot. I've been playing with Godot and 3D scenes. It's great finally feeling comfortable enough to navigate the UI from watching the tutorials from Zenva/Humble Bundle.
Recently something that sounds straightforward took a long time for me to figure out: Fading in a 3D mesh. The solution is simple:
@onready var mesh: MeshInstance3D = find_child("body-mesh")
func _ready() -> void:
_set_material_alpha(0)
SomeSingleton.some_signal.connect(_fade_in)
func _set_material_alpha(alpha: float) -> void:
var material: Material = mesh.get_active_material(0)
if material is StandardMaterial3D:
material.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA_DEPTH_PRE_PASS
material.depth_draw_mode = BaseMaterial3D.DEPTH_DRAW_ALWAYS
material.albedo_color.a = alpha
func _fade_in() -> void:
var tween = create_tween()
tween.set_ease(Tween.EASE_IN)
tween.tween_method(_set_material_alpha, 0.0, 1.0, fade_in_duration_seconds)
The key being setting the material properties and using its albedo color to update transparency. The depth draw mode is needed, otherwise the result is ugly with jagged pixels during the tween.
Getting to the solution was the hard part. Searching forum posts I was led down some rabbit holes like using shaders—overkill for this situation. (There is a cool site though, for when I do end up needing custom shaders: https://godotshaders.com/.) Asking an LLM also didn't help much, probably because my prompt was wrong. I tried again just now and it gave me something closer to a correct solution, but missing some parts like the depth draw mode, which (by trial-and-error and reading the docs) I found is necessary for a good quality render, when using transparency.
Another small pitfall I found was that trying to change the material.transparency caused stutter. I was trying to disable transparency when the mesh was at 100% alpha, since I figured opaque rendering is cheaper. However I speculate the engine recompiles the shader when I turn off transparency, which causes the stutter. So I don't modify the material.transparency beyond that initial setting.
Also thought I'd mention, I'm using free placeholder art assets from https://kenney.nl/ - an amazing resource.
During this I learned that adding shaders to an imported 3D model in Godot is somewhat convoluted:
shader_material.set_shader_parameter("color", Color(1.0, 1.0, 1.0, alpha))This didn't work so well for me though, because the shader I was using was changing the ALBEDO and turning things white. If I knew anything about 3D programming I'd probably find a way to update the existing color value at each pixel, instead of setting albedo white everywhere. The end result of the shader I was using was that the models were turning too white. So that was a dead end.
Anyway mainly leaving this here as reference for posterity. Feel free to share a story or constructive feedback if there's anything.
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
I've grown increasingly unsure about if I'll stay with this profession long term thanks to the AI "revolution". Not because I think I'll be replaced, I have an extremely wide set of skills thanks to working over a decade in small startups so I think I'm safe for a long while to come.
No, I've grown weary because an increasingly larger share of the code that we produce is expected to be ai generated and with it shorter timelines and I just plain don't like it. I think we reached a tipping point around Claude opus 4.5 where it really is capable and that's only going to continue to get better. But damnit I like coding, I enjoy the problem solving and I feel that's getting stripped away from me basically overnight. Also, as these models become more and more capable I think the number of companies vibe coding to a product with fields of junior level engineers is going to grow which is going to push down senior job opportunities and wages.
So now I'm left wondering if it's time to start pointing towards a new career. I really love building stuff and solving problems so maybe I go back to school and switch to some other flavor of engineering? Idk. Curious where other's heads are at with this.
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace python with any of the "short names" listed in this page of supported languages):
<details>
<summary>Part 1</summary>
```python
Your code here.
```
</details>
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace python with any of the "short names" listed in this page of supported languages):
<details>
<summary>Part 1</summary>
```python
Your code here.
```
</details>
Today's problem description: https://adventofcode.com/2025/day/1
Please post your solutions in your own top-level comment. Here's a template you can copy-paste into your comment to format it nicely, with the code collapsed by default inside an expandable section with syntax highlighting (you can replace python with any of the "short names" listed in this page of supported languages):
<details>
<summary>Part 1</summary>
```python
Your code here.
```
</details>
In the Tildes Minecraft weekly thread a little while back, there was some discussion about self-hosting images. I've finally done the thing, and figured I'd share the results.
The primary goal is to make something as simple as possible: I don't really care about galleries or albums, or different file formats, or fancy automatic deduplication etc. I just want to grab an image and throw it up on a link that I can share.
I do care about easily importing images from various sources, and stripping image metadata.
The simplest solution I came up with that addresses all these while requiring minimal changes to my existing self-hosted setup is this:
/var/www/i.allemangd.dev on a subdomain with a new server {} block in my existing nginx config.scp. Then access is controlled by SSH and VPN and I don't need to worry about authentication.webp and strip metadata with imagemagick.$(uuidgen).webp.xclip by default (I only need to support one platform), or via stdin, path, or url on the command line.The code is at https://git.allemangd.dev/me/imup. @creesch, @Durinthal, @hamstergeddon, @trim: you all participated in my call for recommendations, so have a ping here in case you're interested in the solution I've landed on.
So, with all that, I'll move some of my minecraft screenshots off of imgur via this tool:
$ imup \
'https://i.imgur.com/ecokmB1.png' 'https://i.imgur.com/UNs1mlr.jpeg' 'https://i.imgur.com/83ChnpP.png' \
2026-01-20_22.15.08.png 2026-01-21_23.06.18.png \
--tag mc
Note the ones from the screenshots folder are skipped, since I already ran imup * --tag mc in that directory. Also note that one of the imgur screenshots is skipped, because it came from one of those files.
I expect the two workflows from here on will be one of:
imup $(date -I)_*.png to share recent updates on the weekly thread.imup *.png.Prt Sc; "Copy to Clipboard"; imup; Paste the url.Some adjustments I might make in the future are:
Instead of naming the file by a This is done.uuid, name the file by a hash. This way reuploading files won't explode the size of that directory - my "weekly update" thing could just be imup *.png in the screenshots directory.
Synchronize via Instead I now synchronize via temporary rsync instead of scp. It should be faster.sshfs. I think rsync in principle could be faster but this is easier.
Set up an I think I will not do this for fear of accidentally leaking something via an automatically-uploaded file in that directory. Better to be explicit.sshfs mount with this connection so my minecraft screenshots folder links directly to the static files, like https://i.allemangd.dev/mc/<date>.png. Then no manual commands are necessary. I'm a little hesitant to do that, though, since I'm not sure what happens if I put sshfs to offline host in my fstab, and probably not all my screenshots need to be public.
UPDATE: I've rewritten the thing in Python. I now name the files by hash and have a simple linking scheme for "tags". Installation is as easy as uv tool install git+https://git.allemangd.dev/me/imup, and I can carry my config around in dotfiles.
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
LISP and schemes have always, from a distance appeared to be the best way to write code. I even started my own language that has languished for the past couple years, and it's taken on a pseudo-likeness to (scheme)-like languages by accident.
This brings me to my questions -
I find the idea of CLI-inspired languages as one of the best possible ways of writing a language, and lisp is very nearly exactly that, it's just how my mind thinks about code, in a procedural/functional/modular way. This is one of the reasons I adore programming in Odin, as it's a modern systems-level procedural language, but it is not a scheme/lisp-like language. I should note, I abhor working with REPLs, but I can learn to live with it.
Corollary, as I am sure the audience for this is even smaller, ignore if you haven't a clue - but I am incredibly interested in Chez, for the performance metrics, the systems design, and the whole lot - yet there aren't any real resources other than the manual to learn. As I am not a native schemer, it's almost alien, and a bit hard to get right into and make something useful. Does anyone know of any good resources for this?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
Is it just me, or is it weird that every terminal starts at the top-left? After three commands, your prompt stays at the bottom of the screen for the rest of the session anyway.
I added this to my fish_greeting last month. (You could add something similar to .bashrc / .zshrc):
printf "\033[$LINES;1H"
If you want to print a status line or two after this then subtract the number of extra lines:
printf '\033[%s;1H' (math $LINES - 1)
cat /proc/loadavg
It might take some getting used to but it feels a lot more natural. When opening a new window or pane, the prompt is always closer to the previous one so my eyes don't need to move as much.
It's a small subtle thing but I think it is an improvement. Return to teletype.
I prefer Android and something linkable with a PC but for others obviously iOS options too.
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
A month ago I decided to take a look at Zed. It hasn't hit 1.0 yet so I wasn't sure if I'd like it. But I haven't opened any other code editors since the first launch. It's open source and seems to be cross-licensed with multiple free software licenses.
Beyond the nice GUI performance from their use of native code it's clear that my use of VSCode forks for the last few years has kept me held back. There are lots of little things I love about Zed like how you can edit code within the search results page. Or how you can use your own self-hosted LLM without the outrageous shenanigans required to do so with Cursor.
I'm doing a long overdo computer update (new CPU, mobo, and RAM), and am going to be reinstalling windows for the first time in a while. My current system is still on Win10 due to incompatiblity with Win11, however I wouldn't have updated to Win11 until now anyway. I have Win11 on a Surface Pro and with recent updates adding features that match my existing muscle memory better (such as allowing expanded window buttons and putting Start on the left), I'm not as resistant to installing Win11 on my new hardware. I have access to the Education version of Win11 which after some research looks like it's basically Windows Enterprise and that itself seems like a big feature since it shouldn't come with a lot of the bloat apps already.
With that in mind I have few questions:
Thanks in advance for tips and advice.