HNHacker News
TopNewBestAskShowJobs

badsectoracula

8,813 karma · joined August 13, 2009

Mail me at badsector@runtimeterror.com
submissionscomments
badsectoracula··on YouTube AI error costs creator his channel over alleged link to Japanese account
Why?
badsectoracula··on Linux gamers on Steam cross over the 3% mark
> even though you won't see the action for up to 16.67 milliseconds later

Note that this is only the case if you have vsync enabled. Without vsync you will see the action (or some reaction anyway) +2ms later instead of +16.67ms, just not the full frame. This will manifest as screen tearing though if the screen changes are big - though it is up to personal preference if it bothers you or not.

Personally i always disable vsync even my high refresh rate monitor as i like having the fastest feedback possible (i do not even run a desktop compositor because of that) and i do not mind screen tearing (though tearing is much less visible with a high refresh monitor than a 60Hz one).

badsectoracula··on The FSF considers large language models
Eh, i do not think these are comparable, unless you really stretch the idea of what is a "commit", who makes it and you consider all sorts of destructive modifications of branch history and commits normal.
badsectoracula··on The FSF considers large language models
> The prompt used to create the code should also be provided. The LLM-generated code should be clearly marked.

I have a feeling the people who write these haven't really used LLMs for programming because even just playing around with them will make it obvious that this makes no sense - especially if you try to use something local based that lets you rewrite the discussion at will, including any code the LLM generated. E.g. sometimes when trying to get Devstral make something for me, i let it generate whatever (sometimes buggy/not working) code it comes up with[0] and then i start editing its response to fix the bug so that further instructions are under the assumption it generated the correct code from the get go instead of trying to convince it[0] to fix the code it generated. In such a scenario there is no clear separation between LLM-generated code and manually written code nor any specific "prompt" (unless you count all snapshots of the entire discussion every time one hits the "submit" button as a series of prompts, which technically is what the LLM using as a prompt instead of what the user types, but i doubt this was what the author had in mind).

And all that without taking into account what someone commented in the article about code not even done in a single session but with plans, restarting from scratch, summarizing, etc (and there are tools to automate these too and those can use a variety of prompts by themselves that the end user isn't even aware of).

TBH i think if FSF wants to "consider LLMs" they should begin by gaining some real experience using them first - and bringing people with such experience on board to explain things for them.

[0] i do not like anthropomorphizing LLMs, but i cannot think of another description for that :-P

badsectoracula··on Look at how unhinged GPU box art was in the 2000s (2024)
Early to mid 90s Borland had a lot of fun making "multimedia" :-)

There was also this[0] video posted recently here of a Turbo Pascal tutorial which has some interesting intro :-)

[0] https://www.youtube.com/watch?v=UOtonwG3DXM

badsectoracula··on IDEs we had 30 years ago and lost (2023)
> Yes, using older distro is the de facto method of resolving this problem.

What i describe is different from what you wrote, which is that Linux is not binary compatible between distros. This is wrong because Linux is binary compatible with other Linux distributions just fine. What is not compatible is using a binary compiled using a newer version of some shared libraries (glibc included but not the only one) on a system that has older versions - but it is fine to use a binary compiled with an older version on a system with newer versions, at least as long as the library developers have not broken their ABI (this is a different topic altogether).

The compatibility is not between different distros but between different versions of the same library and what is imposed by the system (assuming the developers keep their ABIs compatible) is that a binary can use shared libraries of the same or older version as the one it was linked at - or more precisely, it can use shared libraries that expose the same or older versions of the symbols that the binary uses.

Framing this as software not being binary portable between different distros is wildly mischaracterizing the situation. I have compiled a binary that links against X11 and OpenGL on a Slackware VM that works on both my openSUSE Tumbleweed and my friend's Debian system without issues - that is a binary that is binary portable against different distros just fine.

Also if you want to use a compiler more recent than the one available in the distro you'll need to install it yourself, just like under Windows - it is not like Windows comes with a compiler out of the box.

badsectoracula··on OpenAI researcher announced GPT-5 math breakthrough that never happened
I think you have that last part backwards, it is not the LLM driving the interaction, it is the program that uses the LLM to generate the instructions that does the actual driving - that is the bit that makes the LLM start doing things. Though that is just splitting hairs.

The original point was about the capabilities LLMs themselves since the context was about the technology itself, not what you can do by making them part of a larger system that combines LLMs (perhaps more than one) with other tools.

Depending on the use case and context this distinction may or may not matter, e.g. if you are trying to sell the entire system, it probably is not any more important how the individual parts of the system work than what libraries you used to make the software.

However it can be important in other contexts, like evaluating the abilities of LLMs themselves.

For example i have written a script on my PC that my window manager calls to grab whatever text i have selected on whatever application i'm running and passes it to a program i've written in llama.cpp to load Mistral Small with a prompt that makes it check for spelling and grammar mistakes which in turn produces some script-readable input that another script displays in a window.

This, in a way, is an entire system. This system helps me find grammar and spelling mistakes in the text i have selected when i'm writing documents where i care about finding such mistakes. However it is not Mistral Small that has the functionality of finding grammar and spelling mistakes in my selected text, it only provides the part that does the text checking, the rest is done by other external non-LLM pieces. An LLM cannot intercept keystrokes in my computer, it cannot grab my selected text nor can create a window on my desktop, it doesn't even understand these concepts. In a way this can be thought as a limitation from the perspective of the end result i want, but i work around it with the other software i have attached to it.

badsectoracula··on OpenAI researcher announced GPT-5 math breakthrough that never happened
> Sure, but isn't that moving the goalposts? Why shouldn't we use LLMs + tools if it works?

Personally i do not see it like that at all as one is referring to LLMs specifically while the other is referring to LLMs plus a bunch of other stuff around them.

It is like person A claiming that GIF files can be used to play Doom deathmatches, person B responding that, no, a GIF file cannot start a Doom deathmatch, it is fundamentally impossible to do so and person A retorting that since the GIF format has a provision for advancing a frame on user input, a GIF viewer can interpret that input as the user wanting to launch Doom in deathmatch mode - ergo, GIF files can be used to play Doom deathmatches.

badsectoracula··on IDEs we had 30 years ago and lost (2023)
> Glibc is the main reason Linux software is binary non-portable between distros

Linux software is binary portable between distros as long as the binary was compiled using a Glibc version that is either the same or older than the distros you are trying to target. The lack of "portability" is because of symbol versioning so that the library can expose different versions of the same symbol, exactly so that it can preserve backwards compatibility without breaking working programs.

And this is not unique to Glibc, other libraries do the same thing too.

The solution is to build your software in the minimum version of libraries you are supposed to support. Nowadays with docker you can set it up in a matter of minutes (and automate it with a dockerfile) - e.g. you can use -say- Ubuntu 22 to build your program and it'll work in most modern Linux OSes (or at least glibc wont be the problem if it doesn't).

badsectoracula··on IDEs we had 30 years ago and lost (2023)
IIRC it wasn't VCL but another framework like VCL that was built on Qt.

LCL (Lazarus' equivalent of VCL) took another approach where the base stuff are very Windows-y (due to the VCL heritage) but the backends have to essentially implement not only the backend-specific (Gtk, Qt, etc) widget functionality but also a small subset of the Windows API.

While this makes porting harder for the Lazarus developers, it makes it easier to port stuff between OSes and even port stuff from Delphi to Lazarus (some developers can also use both Delphi and Lazarus - e.g. AFAIK Total Commander uses Delphi for the 32bit builds and Lazarus for the 64bit builds).

badsectoracula··on IDEs we had 30 years ago and lost (2023)
I'm pretty sure you could do asm blocks in Turbo C using brackets, e.g. asm { ... }, though it might have been a Turbo C++ thing (i never really used plain TC much).
badsectoracula··on IDEs we had 30 years ago and lost (2023)
> I have a feeling I would need 0 minutes to learn the basics of turbo c++.

Well, Turbo C++ (at least the one in the article) does use common conventions but those were conventions of 1992 :-P. So Copy is Ctrl+Ins, Paste is Shift+Ins, save is F2, open is F3, etc. Some stuff are similar to modern editing like Shift+motion to select, F1 for help, F10 to activate the menu bar, etc. And all shortcut keys are displayed on the menu bar commands so it is easy to learn them (some of the more intricate editor shortcut keys are not displayed in the menus, but are mentioned in the help you get if you press F1 with an editor window active).

badsectoracula··on IDEs we had 30 years ago and lost (2023)
I think you probably refer to something else than what i meant in my post above.

Borland C++ had the compiler as part of the IDE (there was also a separate command-line version, but it was also compiled as part of the IDE). This allowed the IDE to not spawn separate processes for each file nor even need to hit the disk - the compiler (which was already in RAM as part of the IDE's process) would read the source code from the editor's buffer (instead of a file, so again, no hitting the disk) and would also keep a bunch of other stuff in memory between builds instead of reading it.

This approach allows the compiler to reuse data not only between builds but also between files of the same build. Meanwhile make is just a program launcher, the program - the compiler - need to run for each file and load and parse everything it needs to work for every single source file it needs to compile, thus rebuilding and destroying its entire universe for each file separately. There is no reuse here - even when you use precompiled headers to speed up some things (which is something Borland C++ also supported and it did speed up things even more on an already fast system), the compiler still needs to build and destroy that universe.

It is not a coincidence that one of the ways nowadays to speed up compilation of large codebases is unity builds[0] which essentially combine multiple C/C++ files (the files need to be aware of it to avoid one file "polluting" the contents of another) to allow multiple compilation units reuse/share the compilation state (such as common header files) with a single compiler instance. E.g. it is a core feature of FASTbuild[1] which combines distributed builds, caching and unity builds.

Of course Borland C++'s approach wasn't perfect as it had to run with limited memory too (so it still had to hit the disk at some point - note though that the Pascal compilers could do everything in memory, including even the final linking, even the program could remain in memory). Also bugs in the compiler could linger, e.g. i remember having to restart Borland C++ Builder sometimes every few hours of using it because the compiler was confused about something and had cached it in memory between builds. Also Free Pascal's text mode IDE (shown in the article) has the Free Pascal compiler as part of the IDE itself, but in the last release (i think) there is a memory leak and the IDE's use keeps increasing little by little every time you build, which is something that wouldn't matter with a separate program (and most people use FPC as a separate program via Lazarus these days, which is most likely why nobody noticed the leak).

[0] https://en.wikipedia.org/wiki/Unity_build

[1] https://fastbuild.org/

badsectoracula··on IDEs we had 30 years ago and lost (2023)
AFAIK Borland C++ (even on Windows) used to read the source from whatever editor buffers you had already in the IDE and since the compiler was part of the IDE, it cached various states in memory, which is why it was so fast (for a C/C++ compiler anyway - Delphi was much faster) even on slow hardware. Meanwhile Visual C++ (and modern IDEs) had you autosave the file to disk so the compiler, that was launched as a separate program (often for each file), could read it (and rebuild its internal state from scratch for every single file).
badsectoracula··on IDEs we had 30 years ago and lost (2023)
There is also Free Vision which is part of Free Pascal. I used it sometime ago when i wanted to write a TUI viewer[0] for info files[1], though i never finished it (should pick it up at some point since it is mostly done).

[0] https://i.imgur.com/Qvkt3W0.png

[1] https://www.gnu.org/software/texinfo/manual/texinfo/html_nod...

badsectoracula··on IDEs we had 30 years ago and lost (2023)
> it just uses conventions he is not used to

...and everyone else, including everyone who is also using a GUI on Linux - even if they use the GUI version of Emacs.

badsectoracula··on No I don't want to turn on Windows Backup with One Drive
Well, they did mention "AHK or equivalent" so it sounds like converting them isn't out of the question.
badsectoracula··on C++ Reflection and Qt MOC
> looking for ways that are 100% backward-compatible to inccur no change in its commercial userbase?

Non-commercial users also care about backwards compatibility.

Also FWIW Qt does break backwards compatibility in major versions, though the breakage isn't huge. And regardless of commercial or non-commercial, it is in general a good idea to avoid breaking people's working code.

badsectoracula··on No I don't want to turn on Windows Backup with One Drive
About AutoHotKey, you can do similar stuff as long as you are using X11 as there are various utilities for it, such as xdotool[0]. There is even an AutoHotKey-for-Linux project[1] (it also needs X11 - the author did try to port it to Wayland but gave up). For Wayland there are some alternatives like ydotool[2] (actually AFAIK since ydotool uses some daemon to inject events it works with anything, not just Wayland, but on the other hand it only provides a basic tiny subset of xdotool's commands) but the core protocol isn't particularly friendly to such automation.

[0] https://github.com/jordansissel/xdotool

[1] https://github.com/phil294/AHK_X11

[2] https://github.com/ReimuNotMoe/ydotool

badsectoracula··on No I don't want to turn on Windows Backup with One Drive
TBH if i decide to change OS again, i'll probably go with Gentoo because AFAIK it provides means to have custom patches for packages and i'd like to do things like, e.g., add some stuff in the file dialog for Gtk3. Though i'm not sure this is something most people would care about, so i didn't mention it (also i only have a vague idea that this is possible, i haven't actually tried it in practice).
badsectoracula··on No I don't want to turn on Windows Backup with One Drive
It is not ok on iOS or macOS or even Android or whatever else. The feature to have some online storage with backup is fine, IMO, but what is not fine is the OS nagging you to use that feature. This thing must be opt-in and only if the user themselves initiate it.

Also it should not be locked to a single online storage provider but use some sort of standardized protocol (or at least some pluggable mechanism) to allow any online storage provider - including using self-hosted options - to work with it.

This is how you make something that works for your users instead of taking advantage of them.

badsectoracula··on No I don't want to turn on Windows Backup with One Drive
May i suggest some solutions? :-P

-> https://endof10.org/ (it has a map with people who can help install Linux)

-> https://www.opensuse.org/ (what i'm using on my PCs, works fine for the most part[0])

-> https://www.linuxmint.com/ (people seem to like this)

-> https://bazzite.gg/ (seems to be popular with gamers)

-> https://www.debian.org/ (almost everything is based on this :-P)

[0] for the most part because nothing - not even macOS where Apple controls the entire stack from CPU up to the OS - is without problems. Though i'm doing weird stuff with my PC - on my laptop i just threw it in ~3 years ago and it has been working without issues since then

badsectoracula··on Is Odin just a more boring C?
Nobody said to not use libraries. Hell, even the Odin site's main page links to one.
badsectoracula··on Ask HN: Abandoned/dead projects you think died before their time and why?
Delphi 2, the first 32bit version of Delphi, had all of this. Some, like threads, even had wrappers (TThread), but Delphi came with Win32 bindings out of the box so all Win32 functions were available too - and it came bundled with documentation for the APIs. In addition, calling out to a DLL was trivial so even if a function wasn't available, you could just define it. Pretty much anything you could do with a C compiler was possible with Delphi 2 too.

Free Pascal obviously has all of that stuff too.

badsectoracula··on C++ Reflection and Qt MOC
That is what the linked article is about: what moc provides and what the pure C++ equivalent (if any) could be.
badsectoracula··on Is Odin just a more boring C?
> 677,633 packages in PyPI.

Chances are 677,634 of those will be broken next week though :-P

The problem with package managers is that they encourage piling on dependencies and creating deep (and thus fragile and often hard to reason about) dependency trees.

I loathe having to install anything more complicated than simple scripts[0] based on Python because unless the developer constantly chases after all their dependencies to keep them in working order, i'll be the one who will have to do that when something inevitably breaks (assuming it wasn't already broken the time i decided to try it - which is sadly something i encountered more than a few times). And once the developer moves on, the bitrot spreads alarmingly fast.

[0] and even that isn't reliable if the scripts rely on more than whatever comes preinstalled with Python

badsectoracula··on Learn Turbo Pascal – a video series originally released on VHS
AFAIK in practice Turbo Pascal won because it was cheaper, faster and provided all the necessary tools that standard Pascal didn't - though those tools were largely inspired from UCSD Pascal and after Turbo Pascal other Pascal implementations basically replicated its syntax, so in a way Turbo Pascal became the defacto standard.

I find it kinda amusing that Free Pascal was Turbo Pascal compatible from 1997 but it only fully implemented a standard Pascal mode (the compiler supports multiple dialects) just ~10 years ago (and still doesn't support the Extended Pascal syntax).

badsectoracula··on AMD and Sony's PS6 chipset aims to rethink the current graphics pipeline
> it’s odd how quickly people handwave away graphics in a visual medium.

There is a difference between graphics as in rendering (i.e. the technical side, how something gets rendered) and graphics as in aesthetics (i.e. visual styles, presentation, etc).

The latter is important for games because it can be used to evoke some feel to the player (e.g. cartoony Mario games or dreadful Silent Hill games). The former however is not important by itself, its importance only comes as means to achieve the latter. When people handwave away graphics in games they handwave the misplaced focus on graphics-as-in-tech, not on graphics-as-in-aesthetics.

badsectoracula··on Windows Subsystem for FreeBSD
> but recently putting Linux on my spare PC, I didn't get how people say it's fine for games now.

It is because there are way more games that work than games that do not work at all. Also in general the "golden path" is really an all AMD PC (since that is where most of the testing and open development goes).

That said sometimes you may need to tinker/tweak things but this applies to Windows too, hence the existence of pcgamingwiki (which recently has added Linux info, though that is still dwarfed by the Windows info). I've been gaming on Linux for a few years now and was gaming on Windows before that and i do not find Linux any worse at all when it comes to getting stuff working (this was certainly not the case before ~2021 or so though).

badsectoracula··on Windows 3.1 in a Windows 95 Virtual Machine (2022)
> some things never change.

Other things however do change. It is pointless to make current decisions on the state of software and drivers from years - let alone decades - ago. Back in the 2000s and early 2010s AMD's OpenGL story on Linux was pathetic, if you really wanted any sort of decent OpenGL on Linux you had to use Nvidia.

Things are very different nowadays and i'm saying that as someone who used to buy Nvidia because of their better OpenGL drivers and especially their Linux support.

← PreviousPage 12 of 34Next →