Some 40-years old computers still work (not all, but a lot of them), so if we're only going to use computers produced before 2010, we'll perhaps be able to use them until 2050ies. It is very possible some decent hardware (that is, controllable by the users) will become available on the market long before that period. Actually, some ARM-based SBCs available right today look controllable.
On my work I have some Windows 7 32bit machine. I'm forbidden to modify the OS, so I wanted to live boot some 32bit Linux distro -- and, surprisingly, I didn't found any.
I know from stolyarov.info that you use Debian/Devuan, but it seems their live versions are 64-bit only. I checked distros from my first, low-end PC: MxLinux, LinuxLite, Lubuntu, Xubuntu -- and now they are all 64bit only.
So, do we have any *live* 32-bit Linux distros? I probably could just pick up some EOL stuff, but I still want to know if we have any fresh options here.
>PuppyLinux
Tried Debian and Ubuntu versions, they kernel-panicked due to missing some stuff from USB drive. Didn't want to investigate, skipped.
>Slax
Tried Debian version, and it looked really nice: decent browser (chromium 117), responsive WM (Fluxbox?) and all of this in 100-300mb of RAM including browser. It even has this modern look.
I would choose that, even as main distro -- but my work network have some crap Rostelecom login page (similar to public WiFi ones) and I can't login with it. Really sad, but I think it's only my problem.
Also I remembered about LMDE (Linux Mint Debian Edition). I use Linux Mint on my laptop, but it's semi-lightweight XFCE version.
LMDE, sadly, has only Cinnamon version which is heavy (1.5GB of RAM) and not as responsive. It's not KDE or Gnome level, of course, but still disturbs after using i3wm or XFCE.
I choose it simply for the sake of being able to login in work network.
Shurely we do. Check Antix (derivative of MXLinux, in turn, derivative of Debian). I've had to run their x86 release just a week ago.
P.S.: Sadly to say, DistroWatch filters would may to help you to select right distro for your purposes, but for a now these filters not working without javashit.
Just tried your link with links2 (my daily browser, btw). For somewhat reason it gives me "403 Forbidden" error as any other link to distrowatch domain, but works with Abrowser (fork of Firefox shipped with Trisquel distro). I have a modified links2 config and a cuckflare or similar kind of shit disagrees with my user agent or something.
There is a thing more important than this: Antix uses linux-5.x kernel for i386 (while recent version is 6.x for any other arch). I suppose, the original question was not only about distro itself, but where we can find x86 linux kernel still being supported, developed, and ready for use (I have no answer there, and this is one of reasons why I suppose to migrate on any other modern UNIX, like OpenBSD or whatever). Though, even with older kernel Antix's userland is good enought to be usable.
For A. V. Stolyarov personally: sorry for previous comment, misclick take place while comment was not finished yet.
You can use Slackware Live, however you might want to build slackware live 14.2 or 15.0 yourself, because it seems that only slackware-live-current exist in 32-bit version, but the script can convert any slackware distribution.
> If languages like Python didn't exist, a lot of people who now work as 'computer programmers' could likely never become programmers and would perhaps never get paid for writing code
I understand why you think it would be a good thing for people who have to use python programs and experience various slowdowns and such, but what about those people, isn't it a good thing for them, that they finally could write some programs, which they could not otherwise? Even if they never publish the code and never become professional programmers, some mathematicians, cryptographer, hardware engineers and more can test their ideas thanks to those "easy" languages, even if the result is not as grate as if it was done in a proper language. So is it an universally bad thing?
Yes, definitely it is a universally bad thing. You can not prevent those people from distributing their, heh, shit around, making the whole world the stinky place we are now having. So people who provided those idiots with tools suitable for idiots, are actually to be held responsible for all the bad we're having from the ocean of python-written shit. And specially they are to be held responsible for all those who could become a decent programmer, but accidentally started with Python, thus closing their own path to writing good code.
BTW, this is not generally about making code easier to write. It is definitely easier to write in Pascal than in C, but writing in Pascal is not a catastrophe (unlike writing in Python), and it is not a problem to switch from Pascal to C when the time comes; this is exactly the way I recommend to learn programming from scratch. Those who start with Python, typically remain there forever; rarely a pythonist can stop being a pythonist and start working in C.
I understand your point, however the question was specifically about people who have mental capacity to program (at least in HLL) in principle, but do not intend to become professional programmers and rather just want to solve their local problems.
Also how do you regard languages which are meant for mathematicians specifically, like Julia, Octave, R and similar?
> however the question was specifically about people who have mental capacity to program (at least in HLL) in principle, but do not intend to become professional programmers and rather just want to solve their local problems
Once again: you can't make sure people of this type don't make their shit public. There's no way to impose such a restriction. So I insist there must be no such thing as the possibility to "program, but not profesionally". Either you program, and you do it seriously (no matter for money, for fun or to solve a local problem, no matter how local it is), or you don't program at all.
> Also how do you regard languages which are meant for mathematicians specifically, like Julia, Octave, R and similar?
Those are not languages, those are closed systems with their own build-in DSLs. Actually I dislike the idea of such things, specially because these systems, AFAIK, are proprietary, but I don't consider it as catastrophic as langs like Python; well, it is not that common to see published programs written in any of these langs.
Anyway, I strongly suggest mathematicians to solve their 'local problems' in something like Fortran, and I know from my own experience they are perfectly capable of that.
> Those are not languages, those are closed systems with their own build-in DSLs. Actually I dislike the idea of such things, specially because these systems, AFAIK, are proprietary
There are proprietary systems such as Wolfram Mathematica, Matlab and Maple, however Octave, Julia and R are free software. Octave was made to be compatible with Matlab, R is scheme-based, and Julia is a new language. I think it can be used for general-purpose programming, but it was meant as language for mathematicians specifically. Though you won't like it since it's based on LLVM.
> I think it can be used for general-purpose programming
> Though you won't like it since it's based on LLVM.
I won't like them, but LLVM is not the main reason. Perl was meant as a special purpose language long ago; later a crowd of agressive idiots started to use it as a general purpose lang, and now we have what we have.
Built-in DSLs have their right to exist, but each and every "high level" (and specially interpreted) language "meant" for some special purposes but organized in a way it can be used for general purposes ends up being another tool for idiots and yet another endless source of shitty software.
I have written a smallish program which generates fractals of type similar to Sierpinsky carpet. The program generated the bitmap which had to be converted to a png file later. In order to do that I first output the picture in netpbm format, which is extremely simple, then called imagemagick to convert it into the final png file.
So I was wondering, do you think it is a better approach than to use a library like libpng? And do you think I should have spent time inspecting the library API or PNG format internals instead? At least calling the external binary was my easier than either of two options.
By the way, I didn't use the program after I have played with it for a couple of weeks and neither nobody else did. None of my friends were interested in Sierpinsky type fractals enough to try generating any themselves.
> I didn't use the program after I have played with it for a couple of weeks and neither nobody else did
For such a program, there's absolutely no difference which approach you choose. Actually, there's no difference whether you did or didn't write it at all. External dependencies are intolerable because they trouble the users (and the package maintainers, if any), but your program doesn't have users nor maintainers, so there's no one to trouble.
However, if we talk about a program which is intended to be distributed to other people somehow, then let's see.
> In order to do that I first output the picture in netpbm format, which is extremely simple, then called imagemagick to convert it into the final png file.
It is a bit unclear here, how launching of the external program was actually done. I mean, I can't clearly see from your words whether you called the external program or your program did it.
If your program calls an external program on its own and can not work without it, it is definitely an external dependency and it is intolerable. However, in the setting you explain, there are at least two clear and short ways to fix this.
First is just to generate a file in the netpbm format and consider your program's job done. There may be a suggestion, e.g., in the documentation, that the user may convert it to any format he/she wants, using, for example, the convert utility from the ImageMagick kit, or any other suitable convertor. This won't be any dependency at all: indeed, your program works and does its job, regardless whether ImageMagick (or any other thing) is available in the system. The user might even upload the netpbm file to one of those online convertors, and get the picture in whatever format is desired. Actually, it is even possible the netpbm format appears exactly what the user wants, so no further conversion is to be done at all. Anyway, it is not your program's fucking business.
There's yet another option. You can provide a command line flag to let your program call the convert utility, and document it accordingly, e.g., if you have the convert utility, my program can, at your option, call it for you to get the PNG; give this flag at your command line to do so. If it is not invoked by default, hardly it can be considered a dependency, just an optional feature.
The critical factor here is if someone who packs your program in a package such as RPM or YUM or DEB or whatever else, has to specify it depends on something external or not. Usually this only takes place in case your program can not work at all without the thing it "depends" on.
> do you think it is a better approach than to use a library like libpng?
Well, since you asked: yes, I do think it is better to use a library, specialy knowing that libpng is not very large and can be easily packed together with your program, making no external dependency. However, this is not mandatory in any way. Generating netpbm is fine, too.
> Actually, there's no difference whether you did or didn't write it at all.
I think there is difference. Imagine letter Ы in pixel font, where each black pixel is letter Ы, made from pixels each of which is letter Ы? It was pretty cool and if I didn't write the program before, I would do it later.
At first I have called `convert` manually, then added it to program itself.
> RPM or YUM or DEB
yum is not a package format, it's Fedora's frontend to rpm, similar to how apt and aptitude are frontends for dpkg. Other RPM distros use different frontends, for example urpmi for Mandriva/Mageia.
> yes, I do think it is a better approach
But how it compares with a) implementing PNG format myself but using zlib to do deflate the array of pixels, b) implementing everything myself, even deflate?
PNG is quite complex, but if you only need to put a pixel array in a file and do not want to use advanced features, the only hard part will be to compress the pixel data with deflate, which as far as I know, is usually done by invoking zlib.
Well, it's only for you. Why no, you're free to choose a source of pleasure you want. Actually it's not anyone else's business, so for other people, including me, it still doesn't make any difference.
> then added it to program itself.
I strongly suggest you just make it optional, only performed when the respective flag is given on the command line. It will solve all possible issues related to dependencies, and I see no single reason for not doing it. Finally, why are you that sure PNG is better than what your program generates, be it netpbm or whatever?
Okay, all this stuff only makes sense if you're going to publish your program or give it to anyone, this way or another. In case you're going to keep it private, it's nobody's business how do you build it and how do you run it. Kazhdyy drochit kak on hochet, right? (For those who don't speak Russian, if you're interested, I'll try to provide a translation of this, but please request it explicitly :-) )
> yum is not a package format
Ah, yes, definitely you're right.
> But how it compares with a) implementing PNG format myself but using zlib to do deflate the array of pixels, b) implementing everything myself, even deflate?
It is all completely up to you, the only thing I insist is that there must be no external dependencies. As long as you pack all the libs' sources together with your own code so it is all built with a single command, there's no real problem for others.
Personally I wouldn't perhaps implement PNG on my own, because the library I use for it, named lodepng (e.g., in Thalassa, in the CAPTCHA challenge generator, see libs/captcha) consists of a single module and makes no troubles. However, if it had a complicated build system with the "traditional" ./configure script, I wouldn't adopt it, at least not as is, as I consider the use of autoconf/automake with all the stuff inappropriate. Those configure scripts take way too much of human time waiting for them to complete their job, and they are mostly senseless. But, this way or another, I'd perhaps take a ready-to-use implementation of PNG.
At the same time, in Thalassa, there's a code which detects the dimensions of an image by scanning the file, and it supports PNG, JPG and GIF; the goal was to generate these height and width attributes for an img tag. This is a thing I decided to implement on my own (see cms/imgsize.[ch]), and as of now (six years later) I'm still pretty sure I was absolutely right with the decision. It only took a couple of hours to implement that module, and if I decided to use any libraries for this primitive thing, my time score would become negative years ago. Actually it could take more time to learn the libraries than to implement that small module.
Thank you for the article. Here are few typos I found:
commited -> committed
surpriZe is usually surpriSe these days.
occured -> occurRed
For a simple comparisIon -> comparison
implementaton -> implementation
partucular -> particular
May be a week -> Maybe a week.
actualy -> actually
learnings -> learning
powerul -> powerful
accorging -> according
I really like the idea of minimizing the amount of external dependencies in the project and I have probably found a better alternative to GNU/BSD Make for C projects
[github link removed]
The idea is that you write all the building intructions in C itself. That way you only need a C compiler installed as your only external build-time dependency (one program as opposed to two).
Sorry, I will not visit GitHub and will not let references to any of the "free" web-based repository hostings appear on this site, unless it is really needed (e.g. to propose a fork of an existing project)
I strongly dislike the second option, just like any 'compounds' like IDEs. I even generally dislike ideas of linking of modules in any other manner than with the linker. Compiler must do its own job, which is to take the source code and produce the respective object code.
Anyway, this is more an abstract question, as we don't have more or less useful languages other than C and C++, and chances are we'll never have.
> Older ethernet equipment won't work faster than 100 Mbit/s, but, believe it or not, there are no higher speeds in the Internet
But just today, I was downloading a 4K movie with a speed of ~1Gbit/s. Does it not count as a valid use case?
> Besides that, no additional conditions must be imposed on the communication partner basing on the fact the partner can't or doesn't want to communicate using encryption
On a few darknet sites, I have seen their owners write "Here is my email and my PGP key, any messages not encrypted with it will be ignored" in the contact section, presumably to maximize privacy, since they are doing high risk business, that is deemed very illegal by the governments. Does that mean they are also wrong?
Btw, I am not trying to argue here or debate any of the taboos in any way, I am just interested in the opinion of the author.
> But just today, I was downloading a 4K movie with a speed of ~1Gbit/s
Generally speaking, I don't believe you (unless the movie resides in a local proxy cache or the like, which means it was not really from Internet). However, even if this really was a case, things like this don't happen very often, and if they do for a particular user, no one disallows to use "modern" active network equipment if it is really needed.
> On a few darknet sites, I have seen their owners write "Here is my email and my PGP key
I see no problem here at all, for two reasons:
this scenario doesn't involve TLS/SSL;
this is a matter of consent between end users, not between SMTP servers, and things like this don't force anyone to implement STARTTLS (which is a nightmare) within their MTAs.
Actually, using PGP/GPG in messages is a kind of thing which is only paid for by the people who need it. With STARTTLS being made mandatory, too many innocent individuals have to pay for it, that way or another. To my mind, mandatory STARTTLS, should it gets widely adopted, will make the email service as such unusable.
> I am just interested in the opinion of the author.
Today I had spare time so I responded, but this is exactly what the "preamble" on the taboo page is about.
Downloading 4K videos is literally part of my daily routine. After finishing all my paid work tasks, I start downloading an episode of a series or a movie and want it to finish downloading by the time I’m done cooking dinner so I can watch it.
I use torrents for downloading, so the speed - up to 800 Mbit/s - comes from many peers.
I prefer 4K because I watch movies on an 80-inch TV.
All this is just to say: what’s rare for one person can be part of someone else’s everyday routine.
I have a pile of old computers in my home. The oldest one is rk86 compatible factory made in early 90s. There are also things from pentium III onward, but now what? I got a lot of electronic junk and can use it and what should I do with it?
I didn't turn the rk86 one for two years, and only used it for one week after purchasing.
I don't think there's much of practical use for rk86. As of pentium3 and later, please take a look at the FEDAnet project. It is now at its early development stage, but if we manage to achieve anything real there, older 32-bit computers (pentium2 and later) will be sufficient for everything but key generation, and key generation is only needed to start a new node. The master key may also be generated offline, so it is possible to keep kinda safe of all these IntelME, AMD ASP and the company (e.g. completely wipe and reinstall the machine which was used for key generation, before reconnecting it to networks).
BTW, as of rk86, do you have software for it, audio-encoded? And how do you store these? At my moscow home, I have a rk86, too, but I didn't turn it on for like 20 years :-) I'm affraid that the compact-cassette on which all the soft is recorded, won't work after all these years. Anyway, I now doubt if I ever get there again, so this question is more out of couriosity.
I have rk86 compatible, and the tapes which came with it, but I still didn't solder an audio cable to connect it to audio-jack. So I did use a thermal printer to print assembly program with hex codes and entered them from keyboard. The program itself was written and compiled from a modern computer (made in 2010, 8G RAM) on emulator first. And yes, it did work exactly as on the emulator, which I consider a success.
Otherwise I would just use an audioplayer, like smartphone or mp3 player or something, like I did on ZX Spectrum clone, if I return to rk86 and decide to play more. I also doubt original tapes would work, but as far as I get it, software they had was already dumped by others and available via internet.
> I still didn't solder an audio cable to connect it to audio-jack
> print assembly program with hex codes and entered them from keyboard
Errrr... this takes a lot more effort than soldering a cable. Well, by orders of magnitude.
> I would just use an audioplayer
I would, too, but what I don't have is, well, what to play. That is, rk86 programs, audio-encoded and represented in some digital form (not mp3, I guess; I doubt if mp3 is okay for this purpose, but smth. like wav or raw format should serve). Several years ago I tried searching the Internet for those, and found nothing.
There is something magical in entering raw machine codes which you understand perfectly because you made them and then they work. Those programs were small, so entering them from keyboard wasn't all that annoying.
For ZX Spectrum mp3 worked fine, I think it should work even better for rk86 with more primitive modulation. The programs in binary form can be easily converted into audio, for example emu80 which is the emulator I use can first import program in digital format, then export it as wav audio file. Then one can try to use digital player to import them on a real machine. There should also be stand-alone converters from rkr or other such formats into audio.
I'm not sure if my previous reply here was sent or not, but stand alone converters exist, for example rk2wav, it's windows but source available and I have tested it, it compiles for Linux with no changes at all, except iconv from cp866 to UTF-8 (or in your case koi8r). I have also tried to load resulting wav into emu80 and it worked.
When I was reading the article, I found myself in the devil's advocate group, haha. Well, I agree with the idea of "Download and Execute" taboo, but I find the "everything with loops" definition kinda strange and missing the whole point.
Let me explain my idea. First of all, every information is interpreted by the computer and it then somehow changes or access other information on this computer. For example
Ring 0 code can execute without interruptions
App with root access reads whole PC memory
Userspace app can access and change everything it has rights to
Javascript code inside browser can allocate any amount of memory and access everything exposed in the runtime API
.png file can be interpreted into some bitmap which can be displayed
You see, JavaScript is bad not because it has loops, but because it's API is very very wide and poorly limited, I think that not many people can tell for sure what it does. But it can just consume a lot of memory and fingerprint your browser. And .png files are good because they are usually interpreted into some table of rgb colors which is displayed somewhere on the screen. And some compression formats of, lets say, image files contain loops essentially, but they are fine, cause their interpretation always results in just the bitmap. And, for example, svg files are bad because they can require network access.
So, you see, this criteria of "Contains loops" is useless and strange. Instead of making up some arbitrary technical criteria, I'd make the criteria which reflects the core idea of "Dowload and Execute" taboo, and it goes like this: "Abilities of the information require corresponding permissions". That's it. I'd even rename the taboo to this statement
And lets apply it to the information examples to see how it fits in: download and execute (or show) .png is fine, cause .png is just a sophisticated resizable bitmap. Download and execute (or show) .svg requires permission to access network, cause, well, this format lets user access the network. Download and execute (or show) HTML? This is a hard one, let's say that good browser will ask permissions lazily: if gets to .png, it will just show it, if it gets to .svg, it will just check for permission to access the network. Download and execute JavaScript code without loops? Haha, that's where my definition shines. Imagine a user browsing a web, who opens some website and a browser kindly asks the user something like "I don't know what this thing does, it can consume all your memory, it can collect a unique fingerprint, it can start accessing any resource in the web, almost like a userspace app, so, wanna run it?". Most likely the answer will be "No, and remember my choice for future JavaScript". That's it, the whole story.
With your comment, you clearly demonstrate two things. First, you, being on someone else's territory, prefer to ignore the explicitly imposed rules, because it is clearly stated on this site that none of the explicitly enumerated taboos will ever be removed from the list, and we are (well, I am) not interested in discussing them. So perhaps I should have never made your comment visible, at all.
However, the second thing you demonstrate is more interesting, that's why I decided to write this response. Basically, it's this:
> JavaScript is bad not because it has loops, but because it's API is very very wide
This statement (on which all your reasoning is based) is simply, plainly and completely wrong. JS is bad because it is a program code, no matter what API the interpreter has and what capabilities the code has access (well, documented access) to. API is about what things the code being interpreted can do in a way intentionally provided by the interpreter. Limiting our consideration to this, we make fundamental and grave mistake. E.g., one may consider PDF format is okay because interpreters of PDF don't (intentionally) provide any access to the world outside of the interpreter's own small universe, which only consists of the pages to be rendered.
However, the reality is that we can never be sure there are no exploitable bugs in the interpreter. Never ever. Furthermore, real-world interpreters are always complicated enough so that we actually must assume that detection of an exploitable security hole in any of them is basically matter of time.
Taking this into account, we must realize that interpreters that analyse any data downloaded from an external (untrusted) source are dangerous, even the HTML renderers. This danger is much reduced (but not eliminated completely) in case the interpreter is intended to just make some 'appearance' basing on its input, and the danger increases sharply if the input format is intended to define some behaviour (as opposit to appearance), as it is, believe it or not, much easier to create working exploits when the attacker has access to a ready-to-run interpreter on the remote side. And here is the real thing. Revealing an exploitable hole in an HTML renderer may be of no help for the attacker because, although mathematically possible, it would likely take too much effort to do something real, and the time of people capable of writing exploits costs enormously high. Revealing an exploitable hole in a turing-complete interpreter is a jack-pot. Not because of its API, but because it is much much easier to control the victim program if it implements a turing-complete interpreter: it already has most of the things the attacker needs, so there's no need to catch it on the revealed hole, again and again, just to build up what the attacker needs on the remote side. Instead, the attacker just sends the program for the interpreter. It is always much easier than to compose machine code and push it through the small hole.
And yes, the margin is exactly where it is highlighted: on finite computers, turing completeness is never achieved, but access to any loop constructs is effectively just the same thing as having an interpreter of a programming language.
Please note that I'm not interested in wasting time discussing this. BTW, your last paragraph is a bunch of nonsense, but I won't comment on it.
Well, I just searched on Google for "rebuildworld.net" (with double quotes).
But anyway, here are the links. I also added Y Combinator. Note that the 4chan one is especially trash, and probably all of them use JS (no idea if it's required to see the content or not).
Google may return more results, and the results may be more relevant. This in no way means Google is 'better'. Actually, Google must be given no right to exist.
No, your assumptions are wrong, I've been following Stolyarov for a while, mostly on his website, purchasing his systems programming books when he asked for the support because of cancer. I've learned a lot of good ideas from him. One of the most important things Stolyarov showed me was his "Информационное насилие" video series which got me thinking about the whole marketing problem from the different angle.
In the end, I've never completely agreed with Stolyarov on any topic, but it was this kind of disagreement which was more insightful than any solidarity and blind following. And yesterday I've just tried to contribute to the idea, to give my feedback.
You say that I came from 4chan or Reddit, and by doing this you imply that I am some kind of troll, and you also start the discussion about persona, not about the subject, which is just a boring offtopic and should be moderated. But it was not moderated by Stolyarov and given that his response was (for the lack of the better word) unwelcoming, I can see that being wrong (in your opinion) is considered a form of trolling. It's a shame, so I will just leave.
Indeed, my guess was wrong, and that's fine. Your comment just looked like it was written by a non-Russian-speaking person, so it seemed more likely that you came from outside the circle than that you were following Stolyarov's sites directly.
But you're also wrong that I was implying you were a troll. I only said that there are external sources from which new people might come — that's it.
You might be surprised, but I also don't fully agree with many, or even most, of the taboos on this site. Still, I'm interested in reading alternative opinions and arguments. I just know there's no point in sharing my views on these sites, because Andrey has explicitly said many times that his sites aren't open to comments with differing opinions on these topics.
> purchasing his systems programming books when he asked for the support because of cancer.
When I knew about my cancer in February 2025, all my books were totally sold out for years. Furthermore, purchasing my books in bookstores never had anything to do with supporting me. What a nonsense.
On the join us page there is invalid link to the taboos page (http://www.rebuildworld.net/taboo.html, it should be http://www.rebuildworld.net/taboo/, i believe).
From Parthen (unverified) Wed Dec 10 17:05:17 2025 UTC
Long-term strategy
What $subj will be? I mean, preserving old hardware is cool idea, I do it anyway, but some day it will turn to dust.
reply
From Andrey Vikt. Stolyarov
Wed Dec 10 20:47:56 2025 UTC
in reply to
this comment
Re: Long-term strategy
Some 40-years old computers still work (not all, but a lot of them), so if we're only going to use computers produced before 2010, we'll perhaps be able to use them until 2050ies. It is very possible some decent hardware (that is, controllable by the users) will become available on the market long before that period. Actually, some ARM-based SBCs available right today look controllable.
reply
From Parthen (unverified) Mon Dec 8 03:26:03 2025 UTC
32-bit live linux distros
On my work I have some Windows 7 32bit machine. I'm forbidden to modify the OS, so I wanted to live boot some 32bit Linux distro -- and, surprisingly, I didn't found any.
I know from stolyarov.info that you use Debian/Devuan, but it seems their live versions are 64-bit only. I checked distros from my first, low-end PC: MxLinux, LinuxLite, Lubuntu, Xubuntu -- and now they are all 64bit only.
So, do we have any *live* 32-bit Linux distros? I probably could just pick up some EOL stuff, but I still want to know if we have any fresh options here.
reply
From Andrey Vikt. Stolyarov
Mon Dec 8 10:41:57 2025 UTC
in reply to
this comment
Re: 32-bit live linux distros
Brief search shows a lot of options, like this:
https://forum.puppylinux.com/puppy-linux-collection
https://www.slax.org/
I don't typically use live systems so I didn't check any of them. Let us know if you do.
reply
From Parthen (unverified) Wed Dec 10 07:02:30 2025 UTC in reply to this comment
Results
>PuppyLinux
Tried Debian and Ubuntu versions, they kernel-panicked due to missing some stuff from USB drive. Didn't want to investigate, skipped.
>Slax
Tried Debian version, and it looked really nice: decent browser (chromium 117), responsive WM (Fluxbox?) and all of this in 100-300mb of RAM including browser. It even has this modern look.
I would choose that, even as main distro -- but my work network have some crap Rostelecom login page (similar to public WiFi ones) and I can't login with it. Really sad, but I think it's only my problem.
Also I remembered about LMDE (Linux Mint Debian Edition). I use Linux Mint on my laptop, but it's semi-lightweight XFCE version. LMDE, sadly, has only Cinnamon version which is heavy (1.5GB of RAM) and not as responsive. It's not KDE or Gnome level, of course, but still disturbs after using i3wm or XFCE.
I choose it simply for the sake of being able to login in work network.
TL;DR: Slax as lightweight, LMDE for modern.
reply
From Anonymous (unverified) Tue Dec 9 14:32:44 2025 UTC in reply to this comment
Re: 32-bit live linux distros
Shurely we do. Check Antix (derivative of MXLinux, in turn, derivative of Debian). I've had to run their x86 release just a week ago.
P.S.: Sadly to say, DistroWatch filters would may to help you to select right distro for your purposes, but for a now these filters not working without javashit.
reply
From dronix
Tue Dec 9 17:57:08 2025 UTC
in reply to
this comment
Re: Re: 32-bit live linux distros
> but for a now these filters not working without javashit.
Are you sure? I right now did a search in browser without JS (links2), and all works fine. Or you are talking about some another distrowatch filters?
reply
From Anonymous (unverified) Tue Dec 9 21:46:41 2025 UTC in reply to this comment
Re: Re: Re: 32-bit live linux distros
Just tried your link with links2 (my daily browser, btw). For somewhat reason it gives me "403 Forbidden" error as any other link to distrowatch domain, but works with Abrowser (fork of Firefox shipped with Trisquel distro). I have a modified links2 config and a cuckflare or similar kind of shit disagrees with my user agent or something.
There is a thing more important than this: Antix uses linux-5.x kernel for i386 (while recent version is 6.x for any other arch). I suppose, the original question was not only about distro itself, but where we can find x86 linux kernel still being supported, developed, and ready for use (I have no answer there, and this is one of reasons why I suppose to migrate on any other modern UNIX, like OpenBSD or whatever). Though, even with older kernel Antix's userland is good enought to be usable.
For A. V. Stolyarov personally: sorry for previous comment, misclick take place while comment was not finished yet.
reply
From Parthen (unverified) Tue Dec 9 23:50:09 2025 UTC in reply to this comment
Re: Re: 32-bit live linux distros
>Antix
>Proudly anti-fascist "antiX Magic"
I'm afraid to use any political engaged software. From my experience, trusting this kind of people is not a best idea.
reply
From Sandalous (unverified) Sun Dec 21 12:41:47 2025 UTC in reply to this comment
Re: 32-bit live linux distros
You can use Slackware Live, however you might want to build slackware live 14.2 or 15.0 yourself, because it seems that only slackware-live-current exist in 32-bit version, but the script can convert any slackware distribution.
reply
From Anonymous (unverified) Tue Nov 25 12:19:04 2025 UTC
Is it bad when code is easy to write?
> If languages like Python didn't exist, a lot of people who now work as 'computer programmers' could likely never become programmers and would perhaps never get paid for writing code
I understand why you think it would be a good thing for people who have to use python programs and experience various slowdowns and such, but what about those people, isn't it a good thing for them, that they finally could write some programs, which they could not otherwise? Even if they never publish the code and never become professional programmers, some mathematicians, cryptographer, hardware engineers and more can test their ideas thanks to those "easy" languages, even if the result is not as grate as if it was done in a proper language. So is it an universally bad thing?
reply
From Andrey Vikt. Stolyarov
Tue Nov 25 12:57:42 2025 UTC
in reply to
this comment
Re: Is it bad when code is easy to write?
Yes, definitely it is a universally bad thing. You can not prevent those people from distributing their, heh, shit around, making the whole world the stinky place we are now having. So people who provided those idiots with tools suitable for idiots, are actually to be held responsible for all the bad we're having from the ocean of python-written shit. And specially they are to be held responsible for all those who could become a decent programmer, but accidentally started with Python, thus closing their own path to writing good code.
BTW, this is not generally about making code easier to write. It is definitely easier to write in Pascal than in C, but writing in Pascal is not a catastrophe (unlike writing in Python), and it is not a problem to switch from Pascal to C when the time comes; this is exactly the way I recommend to learn programming from scratch. Those who start with Python, typically remain there forever; rarely a pythonist can stop being a pythonist and start working in C.
reply
From Anonymous (unverified) Tue Nov 25 14:51:46 2025 UTC in reply to this comment
Re: Re: Is it bad when code is easy to write?
I understand your point, however the question was specifically about people who have mental capacity to program (at least in HLL) in principle, but do not intend to become professional programmers and rather just want to solve their local problems.
Also how do you regard languages which are meant for mathematicians specifically, like Julia, Octave, R and similar?
reply
From Andrey Vikt. Stolyarov
Tue Nov 25 16:47:14 2025 UTC
in reply to
this comment
Re: Re: Re: Is it bad when code is easy to write?
> however the question was specifically about people who have mental capacity to program (at least in HLL) in principle, but do not intend to become professional programmers and rather just want to solve their local problems
Once again: you can't make sure people of this type don't make their shit public. There's no way to impose such a restriction. So I insist there must be no such thing as the possibility to "program, but not profesionally". Either you program, and you do it seriously (no matter for money, for fun or to solve a local problem, no matter how local it is), or you don't program at all.
> Also how do you regard languages which are meant for mathematicians specifically, like Julia, Octave, R and similar?
Those are not languages, those are closed systems with their own build-in DSLs. Actually I dislike the idea of such things, specially because these systems, AFAIK, are proprietary, but I don't consider it as catastrophic as langs like Python; well, it is not that common to see published programs written in any of these langs.
Anyway, I strongly suggest mathematicians to solve their 'local problems' in something like Fortran, and I know from my own experience they are perfectly capable of that.
reply
From Anonymous (unverified) Tue Nov 25 23:55:13 2025 UTC in reply to this comment
Re: Re: Re: Re: Is it bad when code is easy to write?
> Those are not languages, those are closed systems with their own build-in DSLs. Actually I dislike the idea of such things, specially because these systems, AFAIK, are proprietary
There are proprietary systems such as Wolfram Mathematica, Matlab and Maple, however Octave, Julia and R are free software. Octave was made to be compatible with Matlab, R is scheme-based, and Julia is a new language. I think it can be used for general-purpose programming, but it was meant as language for mathematicians specifically. Though you won't like it since it's based on LLVM.
reply
From Andrey Vikt. Stolyarov
Wed Nov 26 12:00:58 2025 UTC
in reply to
this comment
Re: Re: Re: Re: Re: Is it bad when code is easy to write?
> I think it can be used for general-purpose programming
> Though you won't like it since it's based on LLVM.
I won't like them, but LLVM is not the main reason. Perl was meant as a special purpose language long ago; later a crowd of agressive idiots started to use it as a general purpose lang, and now we have what we have.
Built-in DSLs have their right to exist, but each and every "high level" (and specially interpreted) language "meant" for some special purposes but organized in a way it can be used for general purposes ends up being another tool for idiots and yet another endless source of shitty software.
reply
From Muxail (unverified) Tue Dec 9 11:00:30 2025 UTC in reply to this comment
Re: Re: Re: Re: Re: Re: Is it bad when code is easy to write?
What about the "D" programming language? Is it also "crap"?
reply
From Andrey Vikt. Stolyarov
Tue Dec 9 12:12:05 2025 UTC
in reply to
this comment
Re: Is it bad when code is easy to write?
Definitely, and with no quotation marks. D "programming language" is just another dead-born project.
reply
From Anonymous (unverified) Tue Nov 25 11:00:50 2025 UTC
External dependencies?
I have written a smallish program which generates fractals of type similar to Sierpinsky carpet. The program generated the bitmap which had to be converted to a png file later. In order to do that I first output the picture in netpbm format, which is extremely simple, then called imagemagick to convert it into the final png file.
So I was wondering, do you think it is a better approach than to use a library like libpng? And do you think I should have spent time inspecting the library API or PNG format internals instead? At least calling the external binary was my easier than either of two options.
By the way, I didn't use the program after I have played with it for a couple of weeks and neither nobody else did. None of my friends were interested in Sierpinsky type fractals enough to try generating any themselves.
reply
From Andrey Vikt. Stolyarov
Tue Nov 25 12:53:22 2025 UTC
in reply to
this comment
Re: External dependencies?
First of all:
> I didn't use the program after I have played with it for a couple of weeks and neither nobody else did
For such a program, there's absolutely no difference which approach you choose. Actually, there's no difference whether you did or didn't write it at all. External dependencies are intolerable because they trouble the users (and the package maintainers, if any), but your program doesn't have users nor maintainers, so there's no one to trouble.
However, if we talk about a program which is intended to be distributed to other people somehow, then let's see.
> In order to do that I first output the picture in netpbm format, which is extremely simple, then called imagemagick to convert it into the final png file.
It is a bit unclear here, how launching of the external program was actually done. I mean, I can't clearly see from your words whether you called the external program or your program did it.
If your program calls an external program on its own and can not work without it, it is definitely an external dependency and it is intolerable. However, in the setting you explain, there are at least two clear and short ways to fix this.
First is just to generate a file in the netpbm format and consider your program's job done. There may be a suggestion, e.g., in the documentation, that the user may convert it to any format he/she wants, using, for example, the
convertutility from the ImageMagick kit, or any other suitable convertor. This won't be any dependency at all: indeed, your program works and does its job, regardless whether ImageMagick (or any other thing) is available in the system. The user might even upload the netpbm file to one of those online convertors, and get the picture in whatever format is desired. Actually, it is even possible the netpbm format appears exactly what the user wants, so no further conversion is to be done at all. Anyway, it is not your program's fucking business.There's yet another option. You can provide a command line flag to let your program call the convert utility, and document it accordingly, e.g., if you have the convert utility, my program can, at your option, call it for you to get the PNG; give this flag at your command line to do so. If it is not invoked by default, hardly it can be considered a dependency, just an optional feature.
The critical factor here is if someone who packs your program in a package such as RPM or YUM or DEB or whatever else, has to specify it depends on something external or not. Usually this only takes place in case your program can not work at all without the thing it "depends" on.
> do you think it is a better approach than to use a library like libpng?
Well, since you asked: yes, I do think it is better to use a library, specialy knowing that libpng is not very large and can be easily packed together with your program, making no external dependency. However, this is not mandatory in any way. Generating netpbm is fine, too.
reply
From Anonymous (unverified) Tue Nov 25 15:17:52 2025 UTC in reply to this comment
Re: Re: External dependencies?
> Actually, there's no difference whether you did or didn't write it at all.
I think there is difference. Imagine letter Ы in pixel font, where each black pixel is letter Ы, made from pixels each of which is letter Ы? It was pretty cool and if I didn't write the program before, I would do it later.
At first I have called `convert` manually, then added it to program itself.
> RPM or YUM or DEB
yum is not a package format, it's Fedora's frontend to rpm, similar to how apt and aptitude are frontends for dpkg. Other RPM distros use different frontends, for example urpmi for Mandriva/Mageia.
> yes, I do think it is a better approach
But how it compares with a) implementing PNG format myself but using zlib to do deflate the array of pixels, b) implementing everything myself, even deflate?
PNG is quite complex, but if you only need to put a pixel array in a file and do not want to use advanced features, the only hard part will be to compress the pixel data with deflate, which as far as I know, is usually done by invoking zlib.
reply
From Andrey Vikt. Stolyarov
Tue Nov 25 16:24:21 2025 UTC
in reply to
this comment
Re: External dependencies?
> I think there is difference.
Well, it's only for you. Why no, you're free to choose a source of pleasure you want. Actually it's not anyone else's business, so for other people, including me, it still doesn't make any difference.
> then added it to program itself.
I strongly suggest you just make it optional, only performed when the respective flag is given on the command line. It will solve all possible issues related to dependencies, and I see no single reason for not doing it. Finally, why are you that sure PNG is better than what your program generates, be it netpbm or whatever?
Okay, all this stuff only makes sense if you're going to publish your program or give it to anyone, this way or another. In case you're going to keep it private, it's nobody's business how do you build it and how do you run it. Kazhdyy drochit kak on hochet, right? (For those who don't speak Russian, if you're interested, I'll try to provide a translation of this, but please request it explicitly :-) )
> yum is not a package format
Ah, yes, definitely you're right.
> But how it compares with a) implementing PNG format myself but using zlib to do deflate the array of pixels, b) implementing everything myself, even deflate?
It is all completely up to you, the only thing I insist is that there must be no external dependencies. As long as you pack all the libs' sources together with your own code so it is all built with a single command, there's no real problem for others.
Personally I wouldn't perhaps implement PNG on my own, because the library I use for it, named
lodepng(e.g., in Thalassa, in the CAPTCHA challenge generator, seelibs/captcha) consists of a single module and makes no troubles. However, if it had a complicated build system with the "traditional"./configurescript, I wouldn't adopt it, at least not as is, as I consider the use of autoconf/automake with all the stuff inappropriate. Those configure scripts take way too much of human time waiting for them to complete their job, and they are mostly senseless. But, this way or another, I'd perhaps take a ready-to-use implementation of PNG.At the same time, in Thalassa, there's a code which detects the dimensions of an image by scanning the file, and it supports PNG, JPG and GIF; the goal was to generate these
heightandwidthattributes for animgtag. This is a thing I decided to implement on my own (seecms/imgsize.[ch]), and as of now (six years later) I'm still pretty sure I was absolutely right with the decision. It only took a couple of hours to implement that module, and if I decided to use any libraries for this primitive thing, my time score would become negative years ago. Actually it could take more time to learn the libraries than to implement that small module.reply
From hnat (unverified) Tue Nov 18 09:46:57 2025 UTC
Typos in 50 Years Later: There's Still No Silver Bullet
Thank you for the article. Here are few typos I found:
commited -> committed
surpriZe is usually surpriSe these days.
occured -> occurRed
For a simple comparisIon -> comparison
implementaton -> implementation
partucular -> particular
May be a week -> Maybe a week.
actualy -> actually
learnings -> learning
powerul -> powerful
accorging -> according
reply
From Andrey Vikt. Stolyarov
Tue Nov 18 17:11:00 2025 UTC
in reply to
this comment
Re: Typos in 50 Years Later: There's Still No Silver Bullet
Thanks :-)
reply
From ved
Sun Nov 23 16:45:21 2025 UTC
in reply to
this comment
Re: Typos in 50 Years Later: There's Still No Silver Bullet
abolutely -> absolutely
reply
From Andrey Vikt. Stolyarov
Sun Nov 23 17:25:05 2025 UTC
in reply to
this comment
Re: Re: Typos in 50 Years Later: There's Still No Silver Bullet
fixed, thanks
reply
From Somebody (unverified) Tue Oct 21 15:47:01 2025 UTC
The less dependencies - The better
I really like the idea of minimizing the amount of external dependencies in the project and I have probably found a better alternative to GNU/BSD Make for C projects
[github link removed]
The idea is that you write all the building intructions in C itself. That way you only need a C compiler installed as your only external build-time dependency (one program as opposed to two).
#define NOB_IMPLEMENTATION #include "nob.h" int main(int argc, char **argv) { Nob_Cmd cmd = {0}; nob_cmd_append(&cmd, "cc", "-Wall", "-Wextra", "-o", "main", "main.c"); if (!nob_cmd_run(&cmd)) return 1; return 0; }and the building process is as simple as this
It can also do parallel builds & caching, like Make
reply
From Andrey Vikt. Stolyarov
Tue Oct 21 16:05:00 2025 UTC
in reply to
this comment
Re: The less dependencies - The better
Sorry, I will not visit GitHub and will not let references to any of the "free" web-based repository hostings appear on this site, unless it is really needed (e.g. to propose a fork of an existing project)
reply
From Dmitry (unverified) Wed Oct 22 11:59:54 2025 UTC in reply to this comment
Re: The less dependencies - The better
Compiling build scripts means extra build-time dependency when cross-compiling (unless you have some multi-target compiler)
But it's interesting question: what is better?
1. Have external make-like utility (which is external dependency)
2. Have make functionality inside language
3. Have buildsystem inside source code
Second option seems to allow have less dependencies and useful when program not very complex, but makes language implementation more complex
reply
From Andrey Vikt. Stolyarov
Wed Oct 22 13:00:20 2025 UTC
in reply to
this comment
Re: Re: The less dependencies - The better
I strongly dislike the second option, just like any 'compounds' like IDEs. I even generally dislike ideas of linking of modules in any other manner than with the linker. Compiler must do its own job, which is to take the source code and produce the respective object code.
Anyway, this is more an abstract question, as we don't have more or less useful languages other than C and C++, and chances are we'll never have.
reply
From redditor (unverified) Mon Oct 20 22:31:49 2025 UTC
Some questions
> Older ethernet equipment won't work faster than 100 Mbit/s, but, believe it or not, there are no higher speeds in the Internet
But just today, I was downloading a 4K movie with a speed of ~1Gbit/s. Does it not count as a valid use case?
> Besides that, no additional conditions must be imposed on the communication partner basing on the fact the partner can't or doesn't want to communicate using encryption
On a few darknet sites, I have seen their owners write "Here is my email and my PGP key, any messages not encrypted with it will be ignored" in the contact section, presumably to maximize privacy, since they are doing high risk business, that is deemed very illegal by the governments. Does that mean they are also wrong?
Btw, I am not trying to argue here or debate any of the taboos in any way, I am just interested in the opinion of the author.
reply
From Andrey Vikt. Stolyarov
Tue Oct 21 15:54:40 2025 UTC
in reply to
this comment
Re: Some questions
> But just today, I was downloading a 4K movie with a speed of ~1Gbit/s
Generally speaking, I don't believe you (unless the movie resides in a local proxy cache or the like, which means it was not really from Internet). However, even if this really was a case, things like this don't happen very often, and if they do for a particular user, no one disallows to use "modern" active network equipment if it is really needed.
> On a few darknet sites, I have seen their owners write "Here is my email and my PGP key
I see no problem here at all, for two reasons:
Actually, using PGP/GPG in messages is a kind of thing which is only paid for by the people who need it. With STARTTLS being made mandatory, too many innocent individuals have to pay for it, that way or another. To my mind, mandatory STARTTLS, should it gets widely adopted, will make the email service as such unusable.
> I am just interested in the opinion of the author.
Today I had spare time so I responded, but this is exactly what the "preamble" on the taboo page is about.
reply
From Andy Smoker (unverified) Sun Oct 26 12:50:01 2025 UTC in reply to this comment
Re: Re: Some questions
Downloading 4K videos is literally part of my daily routine. After finishing all my paid work tasks, I start downloading an episode of a series or a movie and want it to finish downloading by the time I’m done cooking dinner so I can watch it. I use torrents for downloading, so the speed - up to 800 Mbit/s - comes from many peers. I prefer 4K because I watch movies on an 80-inch TV.
All this is just to say: what’s rare for one person can be part of someone else’s everyday routine.
reply
From Andrey Vikt. Stolyarov
Sun Oct 26 12:52:53 2025 UTC
in reply to
this comment
Re: Re: Re: Some questions
And so fucking what?
reply
From Sandalous (unverified) Sat Oct 11 07:22:10 2025 UTC
Old computers
I have a pile of old computers in my home. The oldest one is rk86 compatible factory made in early 90s. There are also things from pentium III onward, but now what? I got a lot of electronic junk and can use it and what should I do with it? I didn't turn the rk86 one for two years, and only used it for one week after purchasing.
reply
From Andrey Vikt. Stolyarov
Sat Oct 11 09:24:20 2025 UTC
in reply to
this comment
Re: Old computers
I don't think there's much of practical use for rk86. As of pentium3 and later, please take a look at the FEDAnet project. It is now at its early development stage, but if we manage to achieve anything real there, older 32-bit computers (pentium2 and later) will be sufficient for everything but key generation, and key generation is only needed to start a new node. The master key may also be generated offline, so it is possible to keep kinda safe of all these IntelME, AMD ASP and the company (e.g. completely wipe and reinstall the machine which was used for key generation, before reconnecting it to networks).
BTW, as of rk86, do you have software for it, audio-encoded? And how do you store these? At my moscow home, I have a rk86, too, but I didn't turn it on for like 20 years :-) I'm affraid that the compact-cassette on which all the soft is recorded, won't work after all these years. Anyway, I now doubt if I ever get there again, so this question is more out of couriosity.
reply
From Sandalous (unverified) Sun Oct 12 02:33:15 2025 UTC in reply to this comment
Re: Re: Old computers
I have rk86 compatible, and the tapes which came with it, but I still didn't solder an audio cable to connect it to audio-jack. So I did use a thermal printer to print assembly program with hex codes and entered them from keyboard. The program itself was written and compiled from a modern computer (made in 2010, 8G RAM) on emulator first. And yes, it did work exactly as on the emulator, which I consider a success.
Otherwise I would just use an audioplayer, like smartphone or mp3 player or something, like I did on ZX Spectrum clone, if I return to rk86 and decide to play more. I also doubt original tapes would work, but as far as I get it, software they had was already dumped by others and available via internet.
reply
From Andrey Vikt. Stolyarov
Sun Oct 12 09:06:07 2025 UTC
in reply to
this comment
Re: Re: Re: Old computers
> I still didn't solder an audio cable to connect it to audio-jack
> print assembly program with hex codes and entered them from keyboard
Errrr... this takes a lot more effort than soldering a cable. Well, by orders of magnitude.
> I would just use an audioplayer
I would, too, but what I don't have is, well, what to play. That is, rk86 programs, audio-encoded and represented in some digital form (not mp3, I guess; I doubt if mp3 is okay for this purpose, but smth. like wav or raw format should serve). Several years ago I tried searching the Internet for those, and found nothing.
reply
From Sandalous (unverified) Sun Oct 12 09:39:42 2025 UTC in reply to this comment
Re: Re: Re: Re: Old computers
There is something magical in entering raw machine codes which you understand perfectly because you made them and then they work. Those programs were small, so entering them from keyboard wasn't all that annoying.
For ZX Spectrum mp3 worked fine, I think it should work even better for rk86 with more primitive modulation. The programs in binary form can be easily converted into audio, for example emu80 which is the emulator I use can first import program in digital format, then export it as wav audio file. Then one can try to use digital player to import them on a real machine. There should also be stand-alone converters from rkr or other such formats into audio.
reply
From Andrey Vikt. Stolyarov
Sun Oct 12 09:55:04 2025 UTC
in reply to
this comment
Re: Re: Re: Re: Re: Old computers
> emu80 which is the emulator I use can first import program in digital format, then export it as wav audio file
I didn't know this. Well, if I ever have a chance to touch my rk86 again, I'll give this way a try. Thanks.
reply
From Sandalous (unverified) Mon Oct 13 05:51:13 2025 UTC in reply to this comment
Re: Old computers
I am surprised, though, why the simple idea that digital format can be converted to/from audio didn't come to your mind.
reply
From Andrey Vikt. Stolyarov
Mon Oct 13 09:13:52 2025 UTC
in reply to
this comment
Re: Old computers
This idea is obvious, what is not obvious is that the emulator is capable of doing it.
reply
From Sandalous (unverified) Wed Oct 15 04:58:45 2025 UTC in reply to this comment
Re: Old computers
I'm not sure if my previous reply here was sent or not, but stand alone converters exist, for example rk2wav, it's windows but source available and I have tested it, it compiles for Linux with no changes at all, except iconv from cp866 to UTF-8 (or in your case koi8r). I have also tried to load resulting wav into emu80 and it worked.
reply
From Andrey Vikt. Stolyarov
Wed Oct 15 08:33:19 2025 UTC
in reply to
this comment
Re: Re: Old computers
Definitely it was sent, but I doubt it may be of any interest for this site's supposed audience.
reply
From hissssst (unverified) Wed Oct 8 01:52:43 2025 UTC
Download and Execute
When I was reading the article, I found myself in the devil's advocate group, haha. Well, I agree with the idea of "Download and Execute" taboo, but I find the "everything with loops" definition kinda strange and missing the whole point.
Let me explain my idea. First of all, every information is interpreted by the computer and it then somehow changes or access other information on this computer. For example
.pngfile can be interpreted into some bitmap which can be displayedYou see, JavaScript is bad not because it has loops, but because it's API is very very wide and poorly limited, I think that not many people can tell for sure what it does. But it can just consume a lot of memory and fingerprint your browser. And
.pngfiles are good because they are usually interpreted into some table of rgb colors which is displayed somewhere on the screen. And some compression formats of, lets say, image files contain loops essentially, but they are fine, cause their interpretation always results in just the bitmap. And, for example, svg files are bad because they can require network access.So, you see, this criteria of "Contains loops" is useless and strange. Instead of making up some arbitrary technical criteria, I'd make the criteria which reflects the core idea of "Dowload and Execute" taboo, and it goes like this: "Abilities of the information require corresponding permissions". That's it. I'd even rename the taboo to this statement
And lets apply it to the information examples to see how it fits in: download and execute (or show)
.pngis fine, cause.pngis just a sophisticated resizable bitmap. Download and execute (or show).svgrequires permission to access network, cause, well, this format lets user access the network. Download and execute (or show) HTML? This is a hard one, let's say that good browser will ask permissions lazily: if gets to.png, it will just show it, if it gets to.svg, it will just check for permission to access the network. Download and execute JavaScript code without loops? Haha, that's where my definition shines. Imagine a user browsing a web, who opens some website and a browser kindly asks the user something like "I don't know what this thing does, it can consume all your memory, it can collect a unique fingerprint, it can start accessing any resource in the web, almost like a userspace app, so, wanna run it?". Most likely the answer will be "No, and remember my choice for future JavaScript". That's it, the whole story.reply
From Andrey Vikt. Stolyarov
Wed Oct 8 10:29:11 2025 UTC
in reply to
this comment
Re: Download and Execute
With your comment, you clearly demonstrate two things. First, you, being on someone else's territory, prefer to ignore the explicitly imposed rules, because it is clearly stated on this site that none of the explicitly enumerated taboos will ever be removed from the list, and we are (well, I am) not interested in discussing them. So perhaps I should have never made your comment visible, at all.
However, the second thing you demonstrate is more interesting, that's why I decided to write this response. Basically, it's this:
> JavaScript is bad not because it has loops, but because it's API is very very wide
This statement (on which all your reasoning is based) is simply, plainly and completely wrong. JS is bad because it is a program code, no matter what API the interpreter has and what capabilities the code has access (well, documented access) to. API is about what things the code being interpreted can do in a way intentionally provided by the interpreter. Limiting our consideration to this, we make fundamental and grave mistake. E.g., one may consider PDF format is okay because interpreters of PDF don't (intentionally) provide any access to the world outside of the interpreter's own small universe, which only consists of the pages to be rendered.
However, the reality is that we can never be sure there are no exploitable bugs in the interpreter. Never ever. Furthermore, real-world interpreters are always complicated enough so that we actually must assume that detection of an exploitable security hole in any of them is basically matter of time.
Taking this into account, we must realize that interpreters that analyse any data downloaded from an external (untrusted) source are dangerous, even the HTML renderers. This danger is much reduced (but not eliminated completely) in case the interpreter is intended to just make some 'appearance' basing on its input, and the danger increases sharply if the input format is intended to define some behaviour (as opposit to appearance), as it is, believe it or not, much easier to create working exploits when the attacker has access to a ready-to-run interpreter on the remote side. And here is the real thing. Revealing an exploitable hole in an HTML renderer may be of no help for the attacker because, although mathematically possible, it would likely take too much effort to do something real, and the time of people capable of writing exploits costs enormously high. Revealing an exploitable hole in a turing-complete interpreter is a jack-pot. Not because of its API, but because it is much much easier to control the victim program if it implements a turing-complete interpreter: it already has most of the things the attacker needs, so there's no need to catch it on the revealed hole, again and again, just to build up what the attacker needs on the remote side. Instead, the attacker just sends the program for the interpreter. It is always much easier than to compose machine code and push it through the small hole.
And yes, the margin is exactly where it is highlighted: on finite computers, turing completeness is never achieved, but access to any loop constructs is effectively just the same thing as having an interpreter of a programming language.
Please note that I'm not interested in wasting time discussing this. BTW, your last paragraph is a bunch of nonsense, but I won't comment on it.
reply
From Parthen (unverified) Wed Oct 8 12:48:24 2025 UTC in reply to this comment
Offtop
Is there any other sites outside stolyarov.info which have the link to this site? Like, where are this kind of guys even come from?
reply
From Andrey Vikt. Stolyarov
Wed Oct 8 13:43:41 2025 UTC
in reply to
this comment
Re: Offtop
It is unlikely to me that such links exist. Usually it takes some time for a site to become known.
reply
From Yury K. (unverified) Wed Oct 8 14:27:59 2025 UTC in reply to this comment
Re: Offtop
I've found several posts on Reddit and one on 4chan, so I guess this guy came from those posts.
reply
From Anonymous (unverified) Wed Oct 8 16:26:05 2025 UTC in reply to this comment
Re: Re: Offtop
Can you please share the links to those posts? I would like to read their comment section :).
reply
From Yury K. (unverified) Thu Oct 9 07:49:19 2025 UTC in reply to this comment
Re: Re: Re: Offtop
Well, I just searched on Google for "rebuildworld.net" (with double quotes).
But anyway, here are the links. I also added Y Combinator. Note that the 4chan one is especially trash, and probably all of them use JS (no idea if it's required to see the content or not).
reply
From Parthen (unverified) Wed Oct 8 16:34:40 2025 UTC in reply to this comment
Re: Re: Offtop
Any links? Web search didn't give any results :(
reply
From andry0980
Wed Oct 8 20:27:59 2025 UTC
in reply to
this comment
Re: Re: Re: Offtop
I'm not the author of that comment, but I do just a few queries and found this:
(JavaScript warning)
old.reddit.com/r/programming/comments/1o114bv/rebuild_the_world_project/
boards.4chan.org/g/thread/106817357/save-programming-industry
Does anyone know who calls Andrey Viktorovich as a russian Stallman?
reply
From Parthen (unverified) Thu Oct 9 16:09:40 2025 UTC in reply to this comment
Re: Re: Re: Re: Offtop
Funny enough, but DuckDuckgo didn't give all this results when I posted. Does everyone here use Google? :)
>Andrey Viktorovich as a russian Stallman
Linux.org.ru
reply
From Anon (unverified) Sun Oct 12 15:22:53 2025 UTC in reply to this comment
Re: Re: Re: Re: Re: Offtop
Sometimes Google is better than DuckDuckGo.
reply
From Andrey Vikt. Stolyarov
Sun Oct 12 17:13:25 2025 UTC
in reply to
this comment
Re: Offtop
Google may return more results, and the results may be more relevant. This in no way means Google is 'better'. Actually, Google must be given no right to exist.
reply
From Vibit (unverified) Thu Oct 9 05:35:11 2025 UTC in reply to this comment
Re: Re: Re: Offtop
Just conclude rebuildworld.net put in quotation marks and start the search.
There's no point in dragging links to Javascript sites here.
reply
From Garkier (unverified) Thu Oct 9 08:30:46 2025 UTC in reply to this comment
Re: Re: Re: Offtop
Here they are:
reply
From hissssst (unverified) Thu Oct 9 00:20:35 2025 UTC in reply to this comment
Re: Re: Offtop
No, your assumptions are wrong, I've been following Stolyarov for a while, mostly on his website, purchasing his systems programming books when he asked for the support because of cancer. I've learned a lot of good ideas from him. One of the most important things Stolyarov showed me was his "Информационное насилие" video series which got me thinking about the whole marketing problem from the different angle.
In the end, I've never completely agreed with Stolyarov on any topic, but it was this kind of disagreement which was more insightful than any solidarity and blind following. And yesterday I've just tried to contribute to the idea, to give my feedback.
You say that I came from 4chan or Reddit, and by doing this you imply that I am some kind of troll, and you also start the discussion about persona, not about the subject, which is just a boring offtopic and should be moderated. But it was not moderated by Stolyarov and given that his response was (for the lack of the better word) unwelcoming, I can see that being wrong (in your opinion) is considered a form of trolling. It's a shame, so I will just leave.
reply
From Yury K. (unverified) Thu Oct 9 11:20:37 2025 UTC in reply to this comment
Re: Re: Re: Offtop
Indeed, my guess was wrong, and that's fine. Your comment just looked like it was written by a non-Russian-speaking person, so it seemed more likely that you came from outside the circle than that you were following Stolyarov's sites directly.
But you're also wrong that I was implying you were a troll. I only said that there are external sources from which new people might come — that's it.
You might be surprised, but I also don't fully agree with many, or even most, of the taboos on this site. Still, I'm interested in reading alternative opinions and arguments. I just know there's no point in sharing my views on these sites, because Andrey has explicitly said many times that his sites aren't open to comments with differing opinions on these topics.
reply
From Andrey Vikt. Stolyarov
Thu Oct 9 13:48:43 2025 UTC
in reply to
this comment
Re: Re: Re: Offtop
> purchasing his systems programming books when he asked for the support because of cancer.
When I knew about my cancer in February 2025, all my books were totally sold out for years. Furthermore, purchasing my books in bookstores never had anything to do with supporting me. What a nonsense.
reply
From Vibit (unverified) Thu Oct 9 05:39:06 2025 UTC in reply to this comment
Re: Re: Offtop
You can read the comments on these websites with popcorn.
reply
From Andrey Vikt. Stolyarov
Thu Oct 9 13:50:07 2025 UTC
in reply to
this comment
Re: Re: Re: Offtop
I'd better enjoy my popcorn without reading those comments.
reply
From Yerror (unverified) Tue Oct 7 15:06:23 2025 UTC
Typo
http://www.rebuildworld.net/projects.html typo in "contemporatry".
Also, wouldn't "cult" fit better than "sect" in here? http://www.rebuildworld.net/taboo/#rust_lang
reply
From Andrey Vikt. Stolyarov
Tue Oct 7 15:13:38 2025 UTC
in reply to
this comment
Re: Typo
> typo
Fixed, thanks
> "cult" fit better than "sect"
To what I feel, for cultists it is not universally true that they love to argue. Sectarians always do.
reply
From Yury K. (unverified) Tue Oct 7 10:23:42 2025 UTC
Some typos
The "principles" link on "join us" page is broken. Also on taboos page I've noticed a typo: "cahieve" (should be achieve I guess :-)).
reply
From Anonymous (unverified) Tue Oct 7 08:08:33 2025 UTC
Non-existent page
On the page join_us.html In the last paragraph, the highlighted word "principles" contains a link to a non-existent page.
reply
From anon (unverified) Tue Oct 7 02:33:42 2025 UTC
Invalid link
On the join us page there is invalid link to the taboos page (http://www.rebuildworld.net/taboo.html, it should be http://www.rebuildworld.net/taboo/, i believe).
reply
From Andrey Vikt. Stolyarov
Tue Oct 7 13:10:32 2025 UTC
in reply to
this comment
Re: Invalid link
Hmmm, this is the most reported error of the new site, it was reported twice by email, three times here and even one time in Jabber :-)
Thanks to everybody for paying that much of attention!
reply
From Parthen (unverified) Mon Oct 6 20:52:06 2025 UTC
Broken link
http://www.rebuildworld.net/taboo/unicode.html
>Whatever choice you pick, be sure not to get affected by the so-called 'locale settings', as locales are prohibited on their own.
Link is pointing on http://rw.croco.net/taboo/#locales
reply
From Andrey Vikt. Stolyarov
Tue Oct 7 13:05:36 2025 UTC
in reply to
this comment
Re: Broken link
Damn :) The problem was that this nonsense works on my home computer. Fixed, thanks.
reply