> The Linux installations started to degrade — subtle at first, then undeniable. Random slowdowns. Browser links that wouldn't register for 10 or 15 seconds.
Very interesting. It is something I've never hit. Or, rather, I know the symptoms, but in my case they are caused not by the age of the installation, but by the memory use and swapping. When I compile something big, it can eat a lot of memory, and even 32Gb or RAM is not enough sometimes, there are lags and sometimes very painful.
It is really interesting because the behavior was persistent for all Linux distributions you tried, so probably there was some program that ate all the memory. Pity you didn't try running top and watching CPU and memory usage. Now I'll think of possible causes to the end of my days without any hope to find a real cause.
> After a Windows update (that I didn't choose to do) wiped that partition and, consequently, the Linux installation
WHAT? How people could tolerate a software that wipes partitions without asking? I mean, I can see that it can be handy if OS managed partitions by itself without asking a user what to do, but if it leads to removing user created partitions, it is a no go.
A long time ago I tried to install Mandrake Linux. In the installation process I started to change partition table and wiped it all, due to a fact that Mandrake Linux used its own custom made partition managed written in Perl that applied changes to a partition table as they arrive. I was used to fdisk, that accumulate changes and allows to review them before applying, the behavior of Mandrake's partition manages was completely alien for me. It was the first and the last time I touched Mandrake or its successor Mandriva or anything with "Mand" in front, even despite the fact that it was my mistake, I should've learned more about the partition manager before using it. It was hard (or maybe impossible) to do in an installer, but it is not an excuse. It was the last time I used installers to install Linux, I don't trust them anymore.
But people are tolerating windows that can wipe a partition when you even do not touch them. I can empathize the author ditching Windows.
It is a known and fairly common dual booting people gets hit with in that windows update rewrite the dual booting setup, it is possible that the author misunderstood what had happened and that it could have been fixed by just fixing the boot setup.
That should of course not be necessary, but it could have saved a few hours of setup if that was the case.
> it's not compiling the input program in any meaningful way, but simply writing hard-coded logic into executable memory that it already knows the program intended to perform.
The program reads the logic from stdin and translates it into machine instructions. I can agree that there is not a lot of a freedom in what can be done, but I think it just means that the source language is not Turing complete. I don't believe that compiler needs to deal with a Turing complete language to claim the title "JIT compiler".
> The program reads the logic from stdin and translates it into machine instructions. I can agree that there is not a lot of a freedom in what can be done, but I think it just means that the source language is not Turing complete. I don't believe that compiler needs to deal with a Turing complete language to claim the title "JIT compiler".
"Not Turing-complete" is quite the understatement.
A "compiler" is software that translates computer code from one programming language into another language. Not just any software that reads input and produces output.
The input language here is... not even a programming language to begin with. Literally all it can express is linear functions. My fixed-function calculator is more powerful than that! If this is a programming language then I guess everyone who ever typed on a calculator is a programmer too.
> A "compiler" is software that translates computer code from one programming language into another language.
Yes, of course.
> Literally all it can express is linear functions.
And why a language to express linear functions can't be a programming language?
> My fixed-function calculator is more powerful than that!
But it isn't compiling, it is interpreting, is it? So your fixed-function calculator is not a compiler, it is an interpreter. It is irrelevant how powerful it is. There are much even more powerful interpreters and less powerful compilers.
The example we see gets computer code in one language and translates it into machine instructions. Talking about 'understatement' you are adding to this definition more constraints and these are very fuzzy constraints on what counts as a programming language.
A compiler takes some language and translates it into something close(r) to the hardware. And that's what the OP does. And since it compiles in process and executed it too, it's JIT, as opposed to AOT.
These terms are not related to the complexity of the problem. The first compilers could only translate for formulas, hence FORTRAN.
> We love you FakeFoster, but GenZ is not ready for you.
Don't tell me about GenZ. I had oral exams in calculus as undergrad, and our professor was intimidating. I barely passed each time when I got him as examiner, though I did reasonably well when dealing with his assistant. I could normally keep my emotions in check, but not with my professor. Though, maybe in that case the trigger was not just the tone of professor, but the sheer difference in the tone he used normally (very friendly) and at the exam time. It was absolutely unexpected at my first exam, and the repeated exposure to it didn't help. I'd say it was becoming worse with each time. Today I'd overcome such issues easily, I know some techniques today, but I didn't when I was green.
OTOH I wonder, if an AI could have such an effect on me. I can't treat AI as a human being, even if I wanted to, it is just a shitty program. I can curse a compiler refusing to accept a perfectly valid borrow of a value, so I can curse an AI making my life difficult. Mostly I have another emotional issue with AI: I tend to become impatient and even angry at AI for every small mistake it does, but this one I could overcome easily.
In Italy, every exam has an oral component, from elementary school all the way to university. I perform horribly under such condition, my mind goes blank entirely.
I wish that wasn't a thing.
Interviews are similar, but different: I'm presenting myself.
> the city's foreign born population has been stable for at least 15 years
This statement doesn't contradict the one about international immigrants keeping the city from shrinking. It is easy to imagine how immigrants come to NY, give birth to natural born Americans, who then move out of the city. This process can come to some kind of a dynamic equilibrium with a stable population of foreign born people.
Not only that, when an international immigrant to the city later moves out of the city, like my cousin’s family did, that’s also counted as domestic migration.
> what if I want to load the config from somewhere else?
There are DRY and WET principles. We can argue which one of them is better, but to move something used exactly once to a method just due to an anxiety you can need it again seems to me a little bit too much. I move things into functions that are called once, but iff it makes my code clearer. It can happen when code is already complicated and long.
The block allows you to localize the code, and refactoring it into a separate function will be trivial. You need not to check if all the variables are temporary, you just see the block, copy/paste it, add a function header, and then add function call at the place where the block was before. No thinking and no research is needed. Veni, vidi, vici.
> The fact that you need to explain what’s happening with comments is a smell.
It is an example for the article taken out of a context. You'd better comment it for the sake of your readers.
> I think blocks are useful when you are referencing a lot of local variables and also have fairly localized meaning within the method.
I do it each time I need a temporary variable. I hate variables that exist but are not used, they make it harder to read the code, you need to track temporaries through all the code to confirm that they are temporaries. So even if I have just two local variables (not "a lot of") and one of them is temporary, I'd probably localize the temporary one even further into its own block. What really matters is a code readability: if the function has just three lines, it doesn't matter, but it becomes really ugly if a lifetime of a variable overshoots its usefulness for 20 lines of a dense code.
The other thing is mutability/immutability: you can drop mutability when returning a value from a block. Mutability makes reasoning harder, so dropping it when you don't need it anymore is a noble deed. It can and will reduce the complexity of reading the code. You'll thank yourself many times later, when faced with necessity to reread your own code.
There is a code and there is the process of devising the code. You cannot understand the former without reverse engineering the latter. So, when you write code, the more of your intentions are encoded somehow in your code, the easier it will be to read your code. If you create temporary variables just to parse config with the final goal to get the parsed config in a variable, then you'd better encode it. You can add comments, like "we need to parse config and for that we need three temporary variables", or you can localize those three temporary variables in a block.
I believe you are. Or we are. The quoted line tells me nothing. Is it a new game engine? Or something like winetricks to tune wine, maybe more streamlined? Or is it a some kind of app store? App launcher?
It is the site made like a presentation, in my experience they are all suck and like a real presentation are impossible to comprehend without accompanying speech.
It does say very clearly on top of the page that it is an "operating system", what is so unclear about it?
If you want to know more, just scroll down and read more detailed explanation
Not sure in what way some people expect to be fed the information. If you did not understand what it is from the first couple of sentences then maybe it is not for you.
They JUST changed it (probably reading the HN feedback). Now the title on tip reads "The operating system for the next generation of gamers" while just yesterday it was simply "The next generation of Linux gaming".
The change is for the better, but I would still like to have words like "Linux" and "distro/distribution/pack" be used.
I think it is a little more nuanced than that. Bret Devereaux wrote about steam engines[1] in Roman Empire, and the conclusion is there was no economic stimuli to kickstart steam engine. For the first half-century (or so) of steam engines they were atmospheric steam engines and they sucked (in a very literal way: they sprayed cold water into a cylinder to condense water vapor to create a (sort of) vacuum that will suck a piston into a cylinder). I don't believe that these steam engines required especially good steel. I think the biggest issue was corrosion due to a contact with water, but there was no need to keep really high pressures.
> Yeah a steam powered water pump would be useful to the Romans
According to Devereaux it wouldn't be useless for the Romans. They didn't pump water from coal mines, and when they pumped water they'd need to move fuel from somewhere else to feed it into a steam engine. It was not an an easy or a cheap task to do, because they had no railroads.
There is an old Russian joke, that goes like this:
A man approaches a girl and asks, "Would you sleep with me for $1 million?”
She responds, “Yes, of course!”
Excited, he then asks, “What about for $1?”
She indignantly replies, “Who do you think I am?”
To which he responds, “We already established who you are; now we’re just discussing the price.”
I think it fits there. There is surprising amount of people believing that they have some Values, but just to a point when they were offered to sell them for a right price.
Very interesting. It is something I've never hit. Or, rather, I know the symptoms, but in my case they are caused not by the age of the installation, but by the memory use and swapping. When I compile something big, it can eat a lot of memory, and even 32Gb or RAM is not enough sometimes, there are lags and sometimes very painful.
It is really interesting because the behavior was persistent for all Linux distributions you tried, so probably there was some program that ate all the memory. Pity you didn't try running top and watching CPU and memory usage. Now I'll think of possible causes to the end of my days without any hope to find a real cause.
reply