My "production stuff" is listed at https://github.com/alexpdp7/alexpdp7/blob/master/README.md#other-usable-projects-of-mine
I decided to move to Emacs from VS Code a few years ago because I was "too happy" with a disturbing project.
Today I've found:
https://gram-editor.com/ (graphical desktop application)
https://flow-control.dev/ (terminal)
Which look similar to VS Code, with out-of-the-box LSP support and normal keybindings... but that are not disturbing.
I have documented the procedure to create an MKV file that plays bits from other MKV files here:
Apparently Matroska files can link to separate files and splice them seamlessly?
https://mod16.org/hurfdurf/?p=8
For some time I've had an awesome usecase for this. Need to play a bit with this thing and see if I can make it work... (And if any players support this...)
I have been programming a simple elevator simulator in Python today. Then added a websockets interface and tested it with a command-line websockets tool. And then wrote a simple HTML page that connects to the websocket and fetches the simulator state.
Tomorrow I should create a graphical UI for the simulator, maybe a simple elevator controller, and perhaps a "person simulator" that has people randomly calling the elevator.
Stockholm syndrome: when the AWS console takes you to eu-north-1 when you do not have anything in that region.
In 2008-2011 I was working on some public websites- some of them were even "nation-wide" "important". And I felt confident running them my moderate systems administration skills, on simple platforms, with reasonable hardware.
(For two specific projects with important customers, we did pick overpriced and overprovisioned hardware and hosting from a "serious" company, but outside that, it wasn't very different from what you would do for personal stuff.)
I had an interesting projects list as an org-mode file. The hierarchy was organic and chaotic. This bothered me so I decided to overcomplicate it:
https://alex.corcoles.net/notes/interesting-projects
It's non-deterministic, so even unrelated changes to the underlying Git repository shuffles things around, but I find the result much more pleasant than the previous version.
I have written down some notes about software development here:
https://alex.corcoles.net/notes/tech/on-software-development
(My intention is to extend and update this as I need to... right now it just collects a few things that are on my mind.)
I was copied on an email today. Someone was requesting a count from someone else, wanting to know who in a department had done a certain thing. This lovely sentence was spoken by my screen reader:
"Can you get a quick woman raising hand man raising hand medium skin tone from your department members?"
I really hate emoji.
Recently I came in contact with Next.js. I think I already tooted that I thought it was the first framework I'd seen that delivered the old promise of good integration between the code running on the browser and the code serving your application.
But these days it surprises me more it's absolute lack of support for WebSockets!
So maybe the real-time web application problem continues to be unsolved satisfactorily for me.
Around 2000, when #PuTTY first started to become popular, it brought me more and more email. At some point it became hard to answer it all, and my inbox started to grow.
Young and optimistic, I came up with a plan to fix this. I drew a line in my inbox (by sending myself an email with subject "---------"), and told myself that I'd keep the region below the line clear, and every few days, deal with a few messages from above the line, until eventually the line was at the top again.
Of course, it didn't work at all. Soon enough there was a huge backlog even below the line, and the stuff above the line was all still there. The line became part of the problem, not the solution.
It took a historian friend of mine to point out the fallacy. To answer more mail, you must spend more time answering mail. No amount of classifying, rearranging, or reorganising it makes there be less of it. You must either answer the mail or decide not to. (And once there's too much of it, only one of *those* is possible.)
This is a post about management methods that respond to any problem by spending more rather than less time moving issues around the bug tracker or kanban board or what have you.
One thing I've learned in 25 years of software maintenance is that every time you commit crap that appears to work without being sure why it works, that's going to come back to waste a lot of your time later.
I wish command line tools would make an output mode optimized for screen readers. I just did a no-cache build of four containers with compose. Instead of hearing random numbers constantly shouted at me, I'd love to have Docker make NVDA say the current step when something significant changes. "Building php_dev. Health check for mysql_dev. Check passed. Building web_dev." No fancy progress bars, no always-updating percentages, no detailed output. Direct that stuff to a file if you want it.
Nice, searching on https://discover.holos.social/ reveals two toots about this. Perhaps Fediverse search can be useful.
Yesterday afternoon I started having some trouble with Ubuntu mirrors at work. 5 hours ago Canonical acknowledged the issue on their status page:
If you are having problems with stuff such as building containers (failures and extreme slowness), this might be it.
Some networking knowledge I figured out a good while back that should be standard, but I think it's poorly understood and worth sharing:
A route *without* a gateway address means you want the system to do an ARP (v4) or NDP (v6) lookup to find the MAC address of the *destination* and send/forward the packet to that MAC address.
A route *with* a gateway address means you want the system to do an ARP (v4) or NDP (v6) lookup to find the MAC address of the *gateway* and send/forward the packet to that MAC address.
> Brooks claims that accidental complexity has decreased substantially, and today's programmers spend most of their time addressing essential complexity.
(The Wikipedia article about No Silver Bullet.)
OK, I found the other part of The Mythical Man-Month that has not aged well.
I just learned there's a tab-size CSS property. So I assume you can style code blocks so that they have different indentation under different screen sizes, or that users could adjust tab size according to their preferences.
(And maybe code blocks using tabs for indentation are more accessible than code blocks using spaces for indentation, but I have my doubts.)
I guess I'm a person of extremes. I am a huge proponent of batteries-included web frameworks, but I also think that CGI-style raw web programming is the best option in a surprising amount of scenarios!
(And PHP is not the only option. CGI and similar wrappers like WSGI are a bit annoying, but at that scale, you can get by with a little boilerplate and no dependencies.)
I'm trying to reduce my reliance on GitHub. So I'm trying to move some repos to cgit. This means losing browser-based editing for small contributions such as typo fixing.
https://github.com/alexpdp7/quick-patch is a prototype to explore alternatives.
It's a 100-line WSGI Python webapp with no dependencies. I think I can do something functional in about 200 lines, including a CGI wrapper so that it can be deployed to web servers without Python/WSGI support.
Hmmm, having issues adding my Delta Chat URL to my Incarnator profile.
BTW, I recently discovered that writing Git hooks for doing stuff on push is easier than I expected. For example, now I do git push to run my static site generator with this:
https://ñix.es/cgit/alex/alexpdp7.git/tree/blog/post-receive?h=master
So 9 days ago, GitHub (I know) warned me of a vulnerability in Black (a Python code formatter). This does not matter, but I like to keep dependencies up to date anyway.
Today I thought... let's switch to... and then I realized.
If you know, you know. This is not ideal.
`git add -u` will add all modified files that are already staged. If you merge, then have to fix a bunch of conflicts, you don't have to add each file as you fix it. Just fix everything and use `git add -u`. I've been using git for over 7 years, and I just now learned this. I will now try to not think of all the time I spent adding files one by one after a conflicted merge.