I only have used the power connector on a Surface Go tablet but have really no complaints. I've never been much of an MS person, but with that thing Windows (10) certainly left on a high note for me.
5 years is not a lot. It releases every 2 years, so it requires upgrading at least every 4 years. In the worst case it's just 3 years of support, if you install right before the next release.
ELTS is 10 years and paid. It's great that it exists, but not relevant for my toy projects.
I feel there is a balance to be struck between a project that is popular (where if you run into problems, you will get good support), and one that technically gives longer-term support (but if things go wrong, that support might not be very good).
I haven't used a lot of different distros, but for me, Debian has been a good balance of those factors. You may need to do more upgrades per decade, but the ones that you do are more liable to go smoothly.
I don't work on a server team, but in network/network security. My company made an announcement that they are extending our product's software lifetime to four years: 3 years standard support + 1 year high sev patches.
It seems to me in the 2020s that 5-7 years is plenty of support for a single OS release, and that OS support teams should be nimble enough to roll out new instances and migrate data at that cadence.
So there is a project that you care enough about to keep it alive, but 1-2 hours every FOUR YEARS is too much? At some point I just have to call you lazy dude.
Either the 1-2 hours is a drop in the bucket compared to what you spend on it anyway (like a blog you still regularly update), or you don't actively update the project but still care enough about it to spend half an evening every few years, or you should just admit you don't care about it enough anymore to do even that. In the last case just delete the project.
> So there is a project that you care enough about to keep it alive, but 1-2 hours every FOUR YEARS is too much? At some point I just have to call you lazy dude.
I want the machine that serves my static blog pages to have, ideally, 0 maintenance.
It needs to do one thing, serve some static HTTP pages and have new pages pushed to it.
Quite frankly I wish some of those "minimal docker first OSs" had taken off.
If you want 0 maintenance, then you don't want to run your own infrastructure. Go give NearlyFreeSpeech or some other shared host a few cents every month and you'll be much happier.
Not familiar with Erlang that much, but it's pretty clear Erlang was prototyped on Prolog because of its convenient facilities for DSLs using op/3 to define new tokens for its built-in bottom-up expression parser (using operator precedence parsing) and its Definite Clause Grammar recursive descent parser as trivial specialization of core SLD resolution (Prolog was created for NLP and planning apps in the first place after all).
I guess what may also have contributed is that there are a number of concurrent logics implemented in Prolog for prototyping Erlang's scheduler such as Concurrent Transaction Logic ([1]).
"Planning, optimization, diagnostics, and complex configuration" [1]
Prolog also works extremely well as a target language for code generation by LLMs for these domains due to it being "higher up in the food chain" compared to procedural languages so to speak, and because Prolog was originally envisioned for classic NLP and hence has a corpus of one-to-one mappings from natural language to logic (as in the example in [3]). So well in fact that even with last-gen models textual descriptions for suitable problems become the bottleneck and you can in many cases just go straight to Prolog code instead ([2]).
Prolog is actually a perfect fit for all kinds of adventure, role playing, strategy, and classic board/card games, with clauses representing game rules and facts representing the game state and universe in the most natural way.
Simple general-purpose opponents can be coded using just recursive backtracking search, while more advanced ones (supporting moves that need to destructively change state) can still be conveniently modelled by reifying facts and thereby enable backtracking over assert/retract-like Prolog DB modifications, as used in discrete combinatorial planners [1].
> Here is a stack machine that [instead of addition] implements subtraction, based on the mode assignment i/o/i [without changing the code already used for addition]. (You might have heard people claim that logic programs can be "run backwards"; this is one thing that can mean.)
k >> plus 0 _ P |----> k << P
k >> plus (s N) _ (s P) |----> k; _ >> plus N _ P
k; _ << P |----> k << P
So if you're confused because of the slightly unusual notation, here's the same thing in Prolog syntax:
% "Sum is the sum of S1 and S2"
plus(S1, S2, Sum) :- Sum is S1 + S2.
% "What is the sum of 3 and 5?"
?- plus(3, 5, S).
% Answer: S = 8
% "Is 10 the sum of 3 and 5"
?- plus(3, 5, 10).
% Answer: fail
% "What's the difference between 3 and 10?"
?- plus(3, X, 10).
% throws an error
It doesn't work this way in general because the Prolog is/2 predicate can only be used in one direction to evaluate the term on the right hand side where must all variable must be bound to a number in context. The article mentions Peano arithmetic as one finite/incomplete axiomatisation of natural numbers but doesn't elaborate on it.
Thanks. I thought it was interesting choosing arithmetic instead of some other relation because multimodal arithmetic (via CLP) is more of a PhD thesis than a blog post. Other relations might've been easier to demonstrate a general query.
What I couldn't tell from the article was if the author somehow achieved a multimodal arithmetic relation without needing CLP using a stack machine. That would be a neat technique.
Excuse my ignorance, but how is that migration (especially of older libraries that are apparently being rewritten) not just a copy/paste action from one server to the other? When I build software to deploy it it includes everything it requires library wise. At least the few things I've deployed so far.
You have to copy data across, and confirm that everything worked correctly, and if you're being fancy about it you need to freeze writes to the old server while you are migrating and then unfreeze after you've directed traffic to the new server. It's not trivial.
Sometimes you need library version X, which uses a compiled binary for the platform, which requires C library version Y, which requires glibc version Z, which is deprecated on the current version of the OS, etc etc etc.
Or you can update the app to remove the dependency on the library.
But honestly, this is what containers or VMs are built for in the first place.
It might surprise you to learn that nowadays there are a lot of people using LLM code assistants. Those who do can also use them to help them write blog posts.
> They really can't help themselves showing how they didn't put any effort doing a thing.
I would be proud to show that I managed to take one of the most radical changes we can do to a system, which would otherwise be practically unthinkable, and use a tool to make it trivial ton pull off.
Windows until 24H2 (when Edge and the last remnants of IE were replaced by Chrome) supported HTML apps [1], introduced with Windows 98 Active Desktop. They weren't used much but actually not that bad for end-user needs.
You must go back to the drawing board and rely on highly-regulated Telecom standards (that's why they were mandated in the first place!) not monopolistic defacto "best practices" you have no influence over because they're more convenient for you.
This is simply unconstitutional and should be escalated ASAP if you don't want to end it before the appropriate court in Leipzig, Karlsruhe, or maybe Luxembourg.
reply