It's not about the boat or the cloud. Yes, they are self-imposed restrictions, but not the actual point the author is trying to make. The message I got from the text was that all these modern systems we use hurt the preservability of software. The text was about the author's journey in finding a solution for preserving their software for generations to come. A solution that if everything is lost, the runtime can be recreated easily so that the actual software can be run again.
This is something that I have been thinking about myself a lot and it was interesting to see that the thought-process has been similar with LISP, Oberon, Smalltalk, Forth etc.
It's like a carpenter creating his own tools before building a dining room table.
I believe the author writes code as an artistic outlet. They use the word beauty/beautiful 12 times, the word love 8 times, and little (in a cute diminutive way) 10 times. The expresses a relationship with coding that most people don't have. It would be like an author expressing love for a pencil. Some may agree, but many would say "its just a pencil, the words are what matter." In a similar way programmers may say "its just a language, the features are what matter." Even then, Forth is chosen in the end for completely stylistic reasons.
Even the nostalgia factor for choosing a Forth is contrived. There are plenty of portable, modern languages that will likely be runnable for decades. Lua is embeddable and will likely be put into new systems for decades, and can run on low power hardware. But Forth is ancient. Its like learning calligraphy. Either you are in a niche, or you just love doing it. But no one uses it for the daily correspondences, they have messaging apps now.
I do agree that everything being connected to the cloud definitely excludes people and places. And that place may be anytime in the future. But you can combat this with more modern solutions.
> There are plenty of portable, modern languages that will likely be runnable for decades
I'm actually not sure this is true. There are certainly a few quite venerable languages that will be around unchanged for decades (i.e. Java).
I wouldn't however take the bet, that, say, Go or Rust will be able to compile code written now, on whatever the current compiler version is in 2035. I certainly wouldn't take the bet that you will still be able to download the correct dependency versions from a package manager after 10 years...
I liked reading this - permacomputing is often a nice contrast with today's world where everything is constantly improving and changing and breaking at the same time.
I wonder what "peramcomputing in action" would be when you're just trying to build a website, or a SAAS app. Those things aren't really the cool alternative dreams of 100 rabbits, but they could still benefit from these kind of ideas.
One thing that often strikes me, is that the web, despite being a huge part of the problem, actually poses a lot of solutions. PWAs and WASM offer some pretty great opportunities for portability, and WASM in particular is probably the closest we've got yet to a "universal virtual machine" (I know it's still got a long way to go)
It is still unclear to me what the author wants to build. The story is cool to the level hippies-on-a-boat can be, but I'm unsure of its message, apart from software requiring internet can be tricky while at seas.
Modern software stacks are usually cloud-dependent, and much bigger and more complex than they need to be, especially for offline, low-bandwidth, or low computing power use cases.
Small, simple, useful software can be written for these use cases and has ownership and longevity benefits.
Not a groundbreaking message, but a true one. And brought home by their interesting cirumstances.
They're building games, interactive fiction and music software, for example. Famously they've invented a rather portable platform for software development that is more like a Commodore 64 or Amiga than MICROS~1 Visual Studio.
Yeah. I'm skeptical that software made for 2 people on a boat in international waters is going to generalize to people living on land under the ongoing American situation
It's good for them, but the only person I know who owns a boat is richer than me, and I'm already richer than basically all my friends
The vast majority of people living on boats are very, very broke. You can buy an old sailboat for about the price of a second-hand car, fix it up yourself, set sail, and now you don't pay rent/mortgage/utilities...
(source: I grew up on such a sailboat, and we were broke as shit)
I agree with your first paragraph, but there are lots of basically-broke people who live on boats
Old sailboats can be had for practically (and in many cases actually) nothing. If you’re reasonably handy and willing to learn you can do all the maintenance they require yourself
Boats can be some of the cheapest housing there is, even more so if you want to live somewhere picturesque
I've met people who live on boats, they work odd jobs to buy scrap parts to fix their boats themselves and eat mostly fish that they catch. Just like travelling in general, you can basically do it on nothing if you wish.
I respect this attempt to create something principled, small and self-contained. Uxn is great as a "toy" system or a teaching resource but also as something that contributes to the diversity of ideas of what computing is/can be.
I'm skeptical about some kind of catastrophic disaster that makes popular technologies inaccessible (the pandemic demonstrated our strong impulse towards business-as-usual even when the world is burning) but having ecosystems that aren't as vulnerable to corporate capture and exploitation seems valuable in its own right.
I have always been skeptical of dependency (both libraries and connected runtime services), but there’s a balance.
There’s things that we just can’t do, without a dependency. We stand on the shoulders of giants.
Right now, I’m developing and refining a demonstration client/server app, for a future article on implementing PassKeys on iOS. I require two dependencies. On the server end, I use the PHP lbuchs/WebAuthn library, and on the client end, I use KeychainSwift.
The first dependency is a requirement. Implementing that functionality myself, would be prohibitive. The second dependency is one that I could do myself, but that would add a lot of complexity to an already fairly complex project.
The moral of the story is that I always have to justify every dependency that I use, and that justification involves a lot of figuring out the pros and cons. I’m always a bit discouraged, when I see folks throwing in dependencies, willy-nilly.
I remember once, attending a class on GraphQL. It hardly mentioned the standard at all. It was a class on the abstraction dependency (A JavaScript library. Maybe something like Pandas). The class was worthless to me, as I don’t work in JS. I wanted to find out about the standard.
"the playfulness of Microsoft Bob" somehow made me remember Microsoft Comic Chat.[1]
Having toons with chat bubbles somehow made the foaming at the mouth mad ramblings of all those burgeoning future reddit moderators feel a little more benign.
>When your connection to the internet fails and that the software locks up, that skill that you thought was yours was actually entirely owned by someone, and can be taken away.
There's a middle ground between locally installed software that fails as soon as you don't have an internet connection for the phone home, and locally installed software that can be used totally unplugged. You can stick a countdown timer within the software that allows 7, 30, 90 etc days of consecutive offline interactivity before the user needs to phone home again. Heck, if you really wanted to, you could sell copies or subscriptions to that software at varying price points depending on how many days the user expects to need - if it's a feature people want, it's a feature you can price in.
Why isn't this model more common? Mm, plenty of reasons. You need to implement pretty sophisticated techniques under the hood to deter software crackers, for one, which aren't required when you make an API call every sixty seconds to an Azure Function. For two the modal human mind really hates middle grounds of this sort. I actually suspect that some "online-only" local software implements something like this under the hood, and just doesn't advertise it, or perhaps gates it being being an enterprise feature. (I have unfortunately learned firsthand that advertising my software as "works up to 30 days off-grid" gets considerably more ire than "ah, sorry, it does require an internet connection, everything's in the cloud these days, you know how it is".)
But probably the most common reason is simply that most people don't need it! Most regular people aren't using software at all when they go off grid.
I have a deep hatred for software with x days offline capability. It's not fun to discover something won't work because someone else had a bad model of what's "reasonable" when you're doing field work in rural Mongolia or wherever. It's happened to me twice. Once I was lucky enough to accidentally discover this before leaving (PDF reader), and once while already in the field (drone software).
Now I'm a lot more diligent about FOSS for anything important.
I don’t think such a middle ground is really realistic. There are plenty of apps that are just thin wrappers around their backend calls and are no more capable of working offline than I am of going without food or water. But if a program is capable of being fully functional offline for 30 days, then what does it really need to call home for, other than as a confirmation of payment?
Well, you're right it isn't realistic, that's why everything is a SaaS nowadays. That's what the second order effects of this kind of expectation generates.
>Other than as confirmation of payment
This is the wrong way around, imo. Confirmation of payment is like the #1 problem a business has to solve. If the business can't reliably turn a profit by running their software on your machine, then they will run it on their own machines, no matter how much it degrades the user experience. The end result is a hollowed out market for anything local and not offered totally for free, which sadly and ironically excludes a great deal of valuable software.
Such a rambling mess of an article (no offense.) Author just blabbered on about obscure-nothingness and nothing cohesive ever appeared. I suggest putting together one single philosophy and posting it. We don't need to see every piece of obscure info that made you believe something. It's confusing as all hell to read.
This couple IS the philosophy. Sailing and making stuff as no one even dares. I recommend reading more stuff from them. They probably know something that we don't.
Amazing read that resonated with me deeply.
It's not about the boat or the cloud. Yes, they are self-imposed restrictions, but not the actual point the author is trying to make. The message I got from the text was that all these modern systems we use hurt the preservability of software. The text was about the author's journey in finding a solution for preserving their software for generations to come. A solution that if everything is lost, the runtime can be recreated easily so that the actual software can be run again.
This is something that I have been thinking about myself a lot and it was interesting to see that the thought-process has been similar with LISP, Oberon, Smalltalk, Forth etc.
It's like a carpenter creating his own tools before building a dining room table.
I believe the author writes code as an artistic outlet. They use the word beauty/beautiful 12 times, the word love 8 times, and little (in a cute diminutive way) 10 times. The expresses a relationship with coding that most people don't have. It would be like an author expressing love for a pencil. Some may agree, but many would say "its just a pencil, the words are what matter." In a similar way programmers may say "its just a language, the features are what matter." Even then, Forth is chosen in the end for completely stylistic reasons.
Even the nostalgia factor for choosing a Forth is contrived. There are plenty of portable, modern languages that will likely be runnable for decades. Lua is embeddable and will likely be put into new systems for decades, and can run on low power hardware. But Forth is ancient. Its like learning calligraphy. Either you are in a niche, or you just love doing it. But no one uses it for the daily correspondences, they have messaging apps now.
I do agree that everything being connected to the cloud definitely excludes people and places. And that place may be anytime in the future. But you can combat this with more modern solutions.
> There are plenty of portable, modern languages that will likely be runnable for decades
I'm actually not sure this is true. There are certainly a few quite venerable languages that will be around unchanged for decades (i.e. Java).
I wouldn't however take the bet, that, say, Go or Rust will be able to compile code written now, on whatever the current compiler version is in 2035. I certainly wouldn't take the bet that you will still be able to download the correct dependency versions from a package manager after 10 years...
But that's going to be true of any package manager. You're betting on Maven existing over the same timeframe as Go.
But a go-vendored repository is buildable indefinitely, and the compiler itself is easy to bootstrap.
I liked reading this - permacomputing is often a nice contrast with today's world where everything is constantly improving and changing and breaking at the same time.
I wonder what "peramcomputing in action" would be when you're just trying to build a website, or a SAAS app. Those things aren't really the cool alternative dreams of 100 rabbits, but they could still benefit from these kind of ideas.
One thing that often strikes me, is that the web, despite being a huge part of the problem, actually poses a lot of solutions. PWAs and WASM offer some pretty great opportunities for portability, and WASM in particular is probably the closest we've got yet to a "universal virtual machine" (I know it's still got a long way to go)
It is still unclear to me what the author wants to build. The story is cool to the level hippies-on-a-boat can be, but I'm unsure of its message, apart from software requiring internet can be tricky while at seas.
> but I'm unsure of its message
My takeaway:
Modern software stacks are usually cloud-dependent, and much bigger and more complex than they need to be, especially for offline, low-bandwidth, or low computing power use cases.
Small, simple, useful software can be written for these use cases and has ownership and longevity benefits.
Not a groundbreaking message, but a true one. And brought home by their interesting cirumstances.
They're building games, interactive fiction and music software, for example. Famously they've invented a rather portable platform for software development that is more like a Commodore 64 or Amiga than MICROS~1 Visual Studio.
Yeah. I'm skeptical that software made for 2 people on a boat in international waters is going to generalize to people living on land under the ongoing American situation
It's good for them, but the only person I know who owns a boat is richer than me, and I'm already richer than basically all my friends
The vast majority of people living on boats are very, very broke. You can buy an old sailboat for about the price of a second-hand car, fix it up yourself, set sail, and now you don't pay rent/mortgage/utilities...
(source: I grew up on such a sailboat, and we were broke as shit)
I agree with your first paragraph, but there are lots of basically-broke people who live on boats
Old sailboats can be had for practically (and in many cases actually) nothing. If you’re reasonably handy and willing to learn you can do all the maintenance they require yourself
Boats can be some of the cheapest housing there is, even more so if you want to live somewhere picturesque
(There are, of course, significant downsides)
I've met people who live on boats, they work odd jobs to buy scrap parts to fix their boats themselves and eat mostly fish that they catch. Just like travelling in general, you can basically do it on nothing if you wish.
2 replies →
They thoroughly document their lives, you could just go check whether this skepticism is warranted.
1 reply →
I respect this attempt to create something principled, small and self-contained. Uxn is great as a "toy" system or a teaching resource but also as something that contributes to the diversity of ideas of what computing is/can be.
I'm skeptical about some kind of catastrophic disaster that makes popular technologies inaccessible (the pandemic demonstrated our strong impulse towards business-as-usual even when the world is burning) but having ecosystems that aren't as vulnerable to corporate capture and exploitation seems valuable in its own right.
Interesting couple of guys. Loved the story.
I have always been skeptical of dependency (both libraries and connected runtime services), but there’s a balance.
There’s things that we just can’t do, without a dependency. We stand on the shoulders of giants.
Right now, I’m developing and refining a demonstration client/server app, for a future article on implementing PassKeys on iOS. I require two dependencies. On the server end, I use the PHP lbuchs/WebAuthn library, and on the client end, I use KeychainSwift.
The first dependency is a requirement. Implementing that functionality myself, would be prohibitive. The second dependency is one that I could do myself, but that would add a lot of complexity to an already fairly complex project.
The moral of the story is that I always have to justify every dependency that I use, and that justification involves a lot of figuring out the pros and cons. I’m always a bit discouraged, when I see folks throwing in dependencies, willy-nilly.
I remember once, attending a class on GraphQL. It hardly mentioned the standard at all. It was a class on the abstraction dependency (A JavaScript library. Maybe something like Pandas). The class was worthless to me, as I don’t work in JS. I wanted to find out about the standard.
"the playfulness of Microsoft Bob" somehow made me remember Microsoft Comic Chat.[1]
Having toons with chat bubbles somehow made the foaming at the mouth mad ramblings of all those burgeoning future reddit moderators feel a little more benign.
[1] https://en.wikipedia.org/wiki/Microsoft_Comic_Chat
Annoyed every other IRC user though.
(2022) Discussion in 2023 (123 points, 28 comments) https://news.ycombinator.com/item?id=34219654
Right. From the title, I thought it was going to be about programmer survival in the age of LLMs.
>When your connection to the internet fails and that the software locks up, that skill that you thought was yours was actually entirely owned by someone, and can be taken away.
There's a middle ground between locally installed software that fails as soon as you don't have an internet connection for the phone home, and locally installed software that can be used totally unplugged. You can stick a countdown timer within the software that allows 7, 30, 90 etc days of consecutive offline interactivity before the user needs to phone home again. Heck, if you really wanted to, you could sell copies or subscriptions to that software at varying price points depending on how many days the user expects to need - if it's a feature people want, it's a feature you can price in.
Why isn't this model more common? Mm, plenty of reasons. You need to implement pretty sophisticated techniques under the hood to deter software crackers, for one, which aren't required when you make an API call every sixty seconds to an Azure Function. For two the modal human mind really hates middle grounds of this sort. I actually suspect that some "online-only" local software implements something like this under the hood, and just doesn't advertise it, or perhaps gates it being being an enterprise feature. (I have unfortunately learned firsthand that advertising my software as "works up to 30 days off-grid" gets considerably more ire than "ah, sorry, it does require an internet connection, everything's in the cloud these days, you know how it is".)
But probably the most common reason is simply that most people don't need it! Most regular people aren't using software at all when they go off grid.
I have a deep hatred for software with x days offline capability. It's not fun to discover something won't work because someone else had a bad model of what's "reasonable" when you're doing field work in rural Mongolia or wherever. It's happened to me twice. Once I was lucky enough to accidentally discover this before leaving (PDF reader), and once while already in the field (drone software).
Now I'm a lot more diligent about FOSS for anything important.
Tell me more, if you're able. What happened?
I don’t think such a middle ground is really realistic. There are plenty of apps that are just thin wrappers around their backend calls and are no more capable of working offline than I am of going without food or water. But if a program is capable of being fully functional offline for 30 days, then what does it really need to call home for, other than as a confirmation of payment?
Well, you're right it isn't realistic, that's why everything is a SaaS nowadays. That's what the second order effects of this kind of expectation generates.
>Other than as confirmation of payment
This is the wrong way around, imo. Confirmation of payment is like the #1 problem a business has to solve. If the business can't reliably turn a profit by running their software on your machine, then they will run it on their own machines, no matter how much it degrades the user experience. The end result is a hollowed out market for anything local and not offered totally for free, which sadly and ironically excludes a great deal of valuable software.
Such a rambling mess of an article (no offense.) Author just blabbered on about obscure-nothingness and nothing cohesive ever appeared. I suggest putting together one single philosophy and posting it. We don't need to see every piece of obscure info that made you believe something. It's confusing as all hell to read.
Not everything needs to be told in a YouTube short. Fwiw I thought it was well told and illuminating.
This couple IS the philosophy. Sailing and making stuff as no one even dares. I recommend reading more stuff from them. They probably know something that we don't.