James
@james@jvalleroy.fbx.one
Gleam is an interesting new functional programming language. It is an ML-family language with syntax very similar to Rust, but it's not a replacement.
If you like Rust and don't like Go (or Elixir's Ruby syntax), Gleam might be worth considering for I/O bound applications needing high concurrency.
Gleam can also replace Elm on the browser. Code written in Gleam is apparently 30% faster than hand-written JavaScript.
@runlevel0 Not yet. Also, I don't have anything in the near-term to build with it either.
I have plans to implement a new Dynamic DNS server but it will be in Python/Django, because I'm not expecting much load on it. Also Rust + PyO3 is a good option for optimization if Python can't keep up.
I bought an Android TV 4 years ago. Only today I had a working idea to get rid of ads on it.
Google's launcher is set as the default. It shows ads at the top which considerably affects the TV's performance. It also deceptively keeps showing titles from the Play Store as if they are available from one of your installed apps.
So, just get another launcher. You can install one from the Play Store and set it as default.
No Google Launcher, no ads.
I don’t know #Clojure sufficiently to judge the benefits of its typing system.
But when it comes to its culture of forward-and-backward stability, as someone who has often complained about developers introducing breaking changes just because they like something to have a different name, I can definitely relate to these words:
Why are we renaming everything all the time?
Once you notice this trend, it’s impossible to un-see. We get records out of the database, and what’s the first thing we do? Rename its fields. We then run it through several transformation steps which will invariable rename them again. We then put it on the wire as JSON, and, of course, that requires that we rename them again. We then load them in our SPA and, well the names we got off the wire certainly won’t do. Best rename them one more time.
It’s insanity, and yet it is the world we created.
https://git.sr.ht/~jvalleroy/lister
It's a TUI and CLI program to manage a list of items in a text file.
Redis, the popular in-memory data store, returns its main system to open source license AGPL, after facing criticism in 2024 for moving to a dual-license model (Lindsay Clark/The Register)
https://www.theregister.com/2025/05/01/redis_returns_to_open_source/
http://www.techmeme.com/250501/p40#a250501p40
I started using GitHub Copilot for work to generate both test and production code in January.
Since the refactoring work it was generating for me was too much, I stopped using it for production code a month ago.
It keeps creating test files in the wrong directories and breaks half the scripts in the repository (not consistently though 🤦♂️). Yesterday, this got pushed to the main branch and broke scripts for everybody.
The day has finally arrived! I've completely given up on AI-generated code.
If I get fired for something, let it be for a mistake I actually did, not for something that's so stupid that it's unlikely for a human to do such a thing.
Used VS Code without Copilot for a day.
While I'm at it, why not ditch Micro$oft VS Code as well? It's not a hard requirement for TypeScript.
Trying out nvim+lazyvim setup. A friend recommended that I also try wezterm. So, learning Lua seems inevitable at this point.
I have one prediction for 2025 that I am most confident about.
2025 will be the hottest year on record (since 1850), just like the two years before it.
New blog post: Three years of #SecureDrop
https://blog.legoktm.com/2025/01/31/three-years-of-securedrop.html
This is the longest I've ever held the same position at a job, so a few notes on what I've been up to over the past year and what I enjoy.
MaggieAppleton/digital-gardeners: Resources, links, projects, and ideas for gardeners tending their digital notes on the public interwebs
Using Python uv tool as a replacement for Poetry for a small Python utility I'm writing. It feels a lot like Rust's Cargo.
All that I can say for now is that it is certainly a better experience than setting up a virtualenv manually.
I am writing this proprietary tool for a team of JavaScript developers. I think they will feel that it is just as easy to use as npm/yarn or whatever is the new hotness this week.
A look at Uber Shuttle, the shared bus service that has rolled out in over 20 cities and completed ~30M trips globally, as Uber awaits approval in Bengaluru (Anisha Sircar/Rest of World)
https://restofworld.org/2024/uber-shuttle-india-shared-bus/
http://www.techmeme.com/241207/p8#a241207p8
Problems with Free and Open Source Software
https://njoseph.me/blog/posts/foss-problems/
My last blog post for September. After not writing any blog posts for 4 years, I wrote 4 in one month!
New blog post!
Using small AI tools on Debian GNU/Linux
https://njoseph.me/blog/posts/small-ai-tools-debian/
I am using the word #AI as it is meant to be used, as click-bait. 😉
Traditionally #FreeSoftware projects are driven by developers or for profit companies (sometimes governments funding specific projects). Users without programming skills usually can't influence the direction of a project. People talk about developers not getting paid for developing Free Software and users demanding more from volunteers. I think we have to rethink about this model and try to address this disconnect. @prav and https://codema.in/debphoshfund are trying to address this.
I have started quoting liberally in my linkblog (subscribe via RSS).
Earlier, I was only writing my own summary or opinion of the subject, but quoting adds more context. This is inspired by the writing style of Pixel Envy blog. https://pxlnv.com