And this is…bad? Or do you mean it’s lying?
As a programmer, it’s pretty wild how much of Windows under the hood has remained completely unchanged. I started writing software synthesizer applications back in the late '90s, using a part of the Win95 API called “winOutX”. The functions are kind of clunky to use but they allow you to programmatically create your own audio buffer arrays filled with whatever sounds you’re up to creating and dump them into the playback stream for seamless audio. This shit has remained in place, working pretty much perfectly, for the last 30 years. It was even there in WinCE/Windows Mobile, which allowed me to write software synthesis applications for early smartphones circa 2005. And it’s still all there today.
I like to rip on MS as much as the next guy (not least for them completely dropping the fucking ball as far as smartphones were concerned), but sometimes their incredibly long-term conservatism can work to your benefit.
Wait until you hear about SDL. I have two music apps on my Android phone that also work the same on the three desktop platforms. And one of them, Sunvox, also existed twenty years ago on Palm and WinCE. The UI’s reaction to my actions in both apps is so snappy it’s unsettling after using other apps.
The downside is that all the dialogs and controls are drawn by the apps and SDL, with their peculiar interaction. Though there’s some leeway to that, like calling the system’s file picker.
Sunvox is a masterpiece. Perfect for small size audio. It’s strange that it isn’t more widely used in game development or even webpages. Not just because of small sizes, but because it’s also possible to interact with the music, while it’s being generated. I have no idea of how to classify this as a piece of software but it’s mind boggling powerfull and it still runs perfectly on any potato.
It would be nice to have better recording options than using the sampler, but I guess that defies the purpose of it.
how to classify this as a piece of software
It’s a tracker combined with a modular synth in the style of Max/MSP, but also with a sequencer. Modular stuff in this vein is generally fit for live fiddling, like Reactable for example.
Unfortunately, I have a better experience with trackers in Renoise, which has dozens of decent samples out of the box, through which I can click and listen; and its effects like distortion are also much more pronounced. Sunvox seems more tailored to ‘beep boop’ synth sounds, and I’m not good with those.
would be nice to have better recording options than using the sampler
Ironically the other SDL music app, Caustic 3, has functionality for recording sounds and even a built-in audio editor. It’s a very neat mobile DAW, but alas it’s not being developed anymore — and its longstanding problem of only having two effects per instrument won’t be fixed.
It sounds like the app you wrote is doing 99% of the work. And I’m guessing it was written in C, which means it’s an x86 binary and could theoretically run on any x86 system.
Modern Windows actually has a lot of problems running older software. In some cases, the only way to get those applications working again is using Wine on Linux.
It was originally written as a C DLL utilized by a Visual Basic front end. The C DLL used the Win95 API, though, so it wouldn’t have worked on anything but Windows 95 and onwards. I subsequently ported the entire thing to C# but still using the same API to do the actual playing of the audio (I experimented with using DirectSound instead but that was really not appropriate for an application doing its own audio mixing). Now I’m working on an iOS version and I couldn’t give two fucks about Windows at this point.
it wouldn’t have worked on anything but Windows 95 and onwards
I know what you mean. All I was saying is that the binary would execute on an x86 processor regardless of the OS. Now the OS knowing what to do with it is another matter.
This is actually what Wine does, it’s a translation layer that intercepts the Win APIs and converts it to a Linux API and vice versa. The actual binary runs on the processor just the same.
I wonder if my old app circa 2000 would actually run on Linux/Wine. One of my projects for this winter is to install Linux on one of my Windows laptops. I’ll have to give the old app a try.
Windows, can I run this 25 year old software I just installed?

In the early 2000s there was this website called dll-files.com or something like that, and every time that error popped up (which happened a lot in the 90s and 2000s), you’d go to that website, download the missing file, and 99% of the time it would fix the problem. These days I’d advise against obtaining random DLL files from the internet but back then it was like magic.
hello windows 8
macOS, can I install this 2 year old program?
No, the architecture is no longer supported in this version of macOS
“no because the dev hasn’t paid us to certify it as safe so you’ll have to jump through 37 hoops in order to allow you to right click, hold options, and click open. THEN we’ll give you an option to install it”
THIS! I can support apple cutting legacy cruft while designing their products. But the gatekeeping of otherwise functional code you can already observe and cockblock at any time remotely is psychotic.
Is this a LibreWolf on Mac reference, because I hate this so much about LibreWolf on Mac lol.
Not so much a librewolf reference as much as a “any app you download from the Internet” reference lol
I’ll have to try installing librewolf when I’m feeling frisky though
brew install —cask librewolf
I mean, macOS has a lot of issues but the one hoop needed to run any unsigned app is “right-click app icon, click open”.
OMG thanks.
I think I actually knew this at some point but somehow it completely slipped my mind.
Sometimes it won’t let you even get to that step without going into the settings and finding a secret security notification that it blocked it from opening
What version are you running? I just tried on Ventura, worked fine on both a .dmg package and some terminal script, both unsigned, and both would need the settings thing if I simply double clicked to open. You still get a prompt, but you have an “open anyways” option.
I’m on the latest version right now, but can’t remember a time I’ve actually installed something on this version. On at least the previous version I believe I had a mix of annoying and the “open anyways” prompt, and then before that just annoyance. I can’t remember exactly what I was installing off the top of my head though, sorry
Yeah, and in rare instances, you’ll need to take the app/binary out from the quarantine
I guess that is true, yes. I do think it’s generally a good thing that they’re locking down specific permissions like that though.
Are you still taking about macs? Because that’s Windows.
Is it? The only hoop I can remember jumping through is the (usually) singular UAC popup
Unless you’re Ubisoft and pop up 5-8 of them every time you open Ubisoft connect
Windows will block any software that isn’t popular. Unless the developer pays Microsoft.
I think I’ve seen this before, very rarely though. If I remember correctly you can continue to open it from the popup, right?
“Windows Smartscreen has blocked this app from running”
Yes, you can pull the “more options” thing and run it.
There’s a button to ignore it, and paying Microsoft wouldn’t help anyways, there’s someone else you need to pay for signing keys
John Windows himself…
I’ve never seen that, and I’ve been using Windows professionally and personally for…ever.
It’s only a thing if you leave smartscreen on. Think it might also only apply to stuff downloaded through Edge, but don’t quote me on that.
Windows 11 won’t install those 25 year old programs anymore. Wine will.
I never tried this but your comment made me wonder: there are probably some programs that run better using WINE in WSL than running them directly in Windows 11.
I’m really sorry to do this, but 25 years ago was 2001.
Now that the painful part is out of the way, 32-bit software from 2001 should work in Windows 11.
Oh cool, let me install this software, what, it won’t install because it’s missing quicktime? Oh it needs directx 8 runtime? That could be a problem. Let’s advance the clock, 2004, that should be fine… What do you mean you can’t run .NET 1.1 applications and so that won’t run?
Ironically, wine is more likely to have a path to easily run those programs under Linux, but if you had a Linux binary from that era you’d likely have a hard time getting that to run, probably harder than the microsoft scenario. So old Windows software is more likely to run under Linux than old Linux software…
Oh, it should work and it will if you put all the files in the right places yourself by say installing it on wine and copying the changes to the wine system directories over, but starting in Windows 11 running the installer gets a deliberate “this program isn’t meant for this version of Windows” error.
Run the installer in compatibility mode, then run the application in compatibility mode?
Didn’t work. Application doesn’t even need compatibility mode to run. Running the app copied by someone else from their previous Windows 10 computer sorta works but didn’t find files installed to system directories. Windows 11 just deliberately refuses to execute the installer probably based on recognizing the old family of installer programs specifically.
The users wanted a new Linux laptop. I installed LMDE, showed them how to run the installer with wine. It made a menu item. Drag and drop from whatever the cinnamon file manager is doesn’t work, and there was no file association to open the program’s files. I added one that just opens them with wine and lets it figure it out. I also showed them where their wine c drive was.
After a few weeks they wanted to print to pdf as well as their printer from wine and I had them install cups-pdf
You will run into a lot of old Library issues. Like elf binary missing, lack of 32 bit is starting to become a problem. If you have any old 2.4 kernel dependencies your probably gonna have a problem in Linux
I ran into old software (for Windows XP), especially games not working even with compatibility mode used for the install and opening of the app. Now if the publisher or Steam or some party puts a tad bit of effort, then yes, those games can work, although I guess a big part of that is also hardware and driver related if talking about 3D games for instance.
My machines and my children’s machines will never boot Windows again.
Good! Not sure how that’s relevant, but good!

Windows sucks, but I made some tools 20 yrs ago and they still just run in win11. As they did on all other windows before since…I dunno, 95? Or 3.11?
But anyhow: Windows sucks.
you’re right, but Windows 7 had a space in our hearts, after that it’s all a load of garbage
3.11, 98, 8.1 and 10 were okay too. I was there…3000 years ago.
I’m still on Windows 3.11 because I demand an edition for Workgroups and nothing else has it in the name!
Fair point. And it REALLY would be time for a new one to support those. Screw domains!
Depends on the program. I’ve got a handful of that old on CDs that still install fine. Checked when I was backing them up to ISO. There’s little bits of weirdness and unintended behavior while running them now, but they still install and run to a fairly acceptable degree.
That experience varies wildly though. Wine tends to handle things better and more consistently.
I’ve tried getting Windows XP games to run both in windows 7/10/11 and wine with little success. However, I have gotten them to work in Windows XP virtual machines.
The problem I find with many games made for Win95/98/XP is that the game uses one or more third-party libraries that were only “valid” for a year or two. After that, updates to the OS closed loopholes that the poorly-written old versions of the libraries relied on, but the poorly-written newer versions of the libraries released to deal with those issues then break compatibility with the previously-released game, which was never updated or patched.
I wanted to do the cool neofetch thing all the femboys in thigh highs are doing. Shits already installed on mint. My boring ass win98 clone is doing the femboy thing no questions asked.
Interesting. Neofetch has ceased development but fastfetch is here to take its place though.
Not gonna lie, having to relearn that muscle memory is gonna be hard lol.
You can always alias it! With my neofetch config, I get nearly identical output with fastfetch so I switched a while back.
Hey. The cool transfems in thigh highs are doing it too.
“Old tools” does not mean obsolete or bad. It means tested, hardened, and reliable. And crucially, probably runs in a couple megabytes of memory, which you might need if the cost of RAM suddenly quintuples for no reason.
B-but don’t you want AI in vi?
AI in vim is actually often convenient.
:set aiCool, now it will keep track of my indentation.
Now sometimes that gets in the way, and while you can:
:set noaiUsually it’s best for me to:
:set pasteAnd that’s my take on the utility of AI in vim. (that is what you meant right, there isn’t some other AI people are thinking of right?)
You can almost hear the legacy programmers screaming about Haskel and C from here. /j
Nope, can’t find this ancient version of libc!
You can still compile it against the modern version.
And if it’s static linked it will either run or you can ask Linus to murder someone for you.
Hmm I’ll email Linus
I was trying to compile the first version of SuperTuxKart just for fun, how naive I were… Nowadays it’s like translating ancient runes and good luck finding those ancient libraries
If I may, is there a way to quickly and easily have a disposable/revertible environment for building? For Fedora specifically. It’s annoying to install a whole suite of packages because I need them just this once and then either manually delete the ones I didn’t manually install before and actually need or just live with a whole bunch of devel packages that’ll never be used again
Distrobox might be the easiest way. If you use a custom HOME directory you can even keep the build artefacts isolated.
You can use docker for that. I think there are even some tools to make it easier to use for that use case, but I just use plain docker for it
It’s funny because that’s true that an old Linux binary is likely to have issues under Linux, but an similarly old Windows application might work better under Wine on Linux than modern Windows.
libc is actually relatively less likely, glibc is awfully conservative about changes, but there are a maze of likely service and library dependencies that were abandoned or didn’t regard backwards compatibility with the same importance.
My issues are not install, but uninstall. Why do I have so much crap installed? I used it on a project once 7 years ago and haven’t since. Why not uninstall it? It is useful, just not currently. It took less than a minute to install when you installed it the first time and your connection is faster now? But what if the archive goes down or it is retired or obsolete? It is small, keep it!
Turns out lots of small adds up to big.
Turns out lots of small adds up to big.
Nickel and dimed into a dollar I see
And yet some linux devs look at me using containers for development like I’m the Demon Lord of Overhead
If you use it to make sure your deployment is sane and that your dev system didn’t have an invisible component that you assumed as a dependency, great. Containers are a great tool for simulating minimalist clean setups and not incurring surprise hidden dependencies.
If your application carries a whole container with it for the user to use and that’s the only way to use the software, that’s going to be annoying. ‘docker style’ for bloat, flatpak/snap depends on the app but sometimes the application functionality is broken by the container boundaries. Admittedly flatpak/snap is frequently acceptable, really depends on if the program has a lot of interoperability features that get broken in the flatpak/snap runtime model.
If your application only is deployable as a pod… I’m almost certainly going to want to avoid it if at all humanly possible. Pods as a self-hosted approach to do what you want, ok, fine and I own all that. If a third party pod is happening, I tend to see some part of it fall over it and no one can figure it out because the application is microserviced into oblivion and no human actually understands the whole flow… It’s possible also to do this with ‘traditional’ application delivery, but a pod is a very high sign that no one even bothered thinking hard about how it should come together and play nice with others.
why install natively if already in an image? just run the image, boom, done.
I can’t think of a good reason to not use an image if it already exists.
Yeah, all of mine are usually just there to spit out binaries to use locally and alert me to any new dependencies slipping by. I once worked at a company that would ship web apps with databases that only ran in a container so that they could make each layer of its image a migration. It made CI take upwards of 40 minutes for just regular PR builds.
And then there’s people who are just allergic to containers. If you want me to work on your C project, I’m not leaving dev libraries lying around or wondering why something works on my system and not on others. I’m building a Dockerfile that has only what should be needed to build and feeding make through a container and volume binding the output.
Edit: I hate flatpak and snap so much actually lol. Most of the Dockerfiles I write are just building apps from source that don’t distribute any other way. I’ll even accept AppImages, but if you make me use flatpak, I will not hesitate to start building from source.
What i find funny are people building golang binaries without cgo and still wrapping them in full distro containers. Your binary uses nothing from the container and still it gets packaged that way…
Seen so many developers incur a huge headache trying to figure out overly complicated container setup when they could just run their already static binary without any drama…
Specially for rolling release distros.
I had fun installing everything I thought of just checking out once, including games and stuff (assets tend to be large).
But after a few updates and not actually using most of them, I realised how much load I was putting on the network and removed many of them.
Roller Coaster Tycoon came out in 1999 but I notice it didn’t come preinstalled on Mint. Is my install broken? /s
Sorry, only 25 year old software included. You’re on your own for 27 year old software.
Initial release of
ddwas for Unix in 1974 and it’s still updated for use in modern systems.I used it just the other day and it was already installed.
WIndows will install it. Running it correctly… different story.
I don’t have hard data, but if my experience is at all representative then you’re much more likely to be able to run a 25 year old Windows program on Linux than on Windows.
Windows: can’t run SETUP.EXE as it is a 32 bit program
We have a 22 year old version of RedHat 4. It works fine and is reliable but has problems with out dated security.
xdotoolis not already installed, and also will not work 🙄It does work but if you’re using Wayland, it won’t. But one would be rather silly to expect an X11/Xlib tool to work without X11.
Yeah, I wouldn’t expect it to work, so I wouldn’t expect a meme to imply that Linux has great backwards compatibility, when things change somewhat rapidly in mainstream Linux, making it quite hard to maintain.
X11 isn’t Linux… Linux is excellent for backwards compatibility. Can’t say the same about userspace though.
You’re right! And yet it doesn’t really matter that much, does it?
Yes, it does. Not only for servers, but every single application that wasn’t written for X11 specifically continues to just work. Which is the vast majority.
Would you enjoy trying to explain this to your grandma or other stereotypically tech-un-savvy relative after you got her to install Ubuntu and something she was able to do before stopped working after an update?
You’re interested in backwards compatibility on servers, and in backwards compatibility for a subset of applications. Cool. Convenient for you! Recognise that there’s more to it than that, that when people meme about how awesome Linux is compared to Windows, focusing on servers and non-graphical applications isn’t good enough.
Not backwards compatibility. Straight up compatibility.
and yes, I wouldn’t mind. I enjoy explaining things.
The meme isn’t implying great backward compatibility. It’s implying great tool maintenance and availability.
I’m going to miss
xdotool(andwmctrl) when my distro eventually ditches X11.I don’t use them often, but I do use them, and their functionality is nice to have.
There are partial replacements out there, but last I checked, they were very weak approximations.
what do those do? I run x11 but never knowingly used them
They allow the user to script changes to, and pull information from, windows in the window manager. Like read, if not also set, a window’s title, change a window’s dimensions, move it around, send it to a different desktop, send keypresses, bring a window to the foreground, etc. etc.
Basically, anything the user can do with the mouse, keyboard or window manager via the GUI, and a little more besides, can be automated.
The two commands work slightly differently to each other and one can often do something the other can’t.
As an example, I have a script that resizes the active window to a 4:3 ratio at full vertical height on my 16:9 monitor. I’ve then bound that script to a keypress in the window manager. It’s a lot like having something halfway between window mode and maximised mode.
Couldn’t I do that with the mouse? Sure. But with the script I don’t have to gauge by eye and spend multiple mouse clicks and movements trying to get it just right.
That sounds absolutely amazing and something that I’m definitely going to be looking up when I go on my desktop later. Thank you for informing me
Be aware that a lot of distros will be switching from X11 to Wayland at some point in the not-too-distant future and these ancient tools will not work there.
People have tried to write equivalents (
ydotoolis one I’m aware of), but Wayland has intentionally been written to make doing such things difficult, for “security” reasons.I will be grumpy until I can make my scripts work again, but that’s for future me to deal with.
Yeah, sadly, I’m aware. I know that Wayland is making its rounds. I’m not looking forward to it. I try it every once in a while to see if it’s gotten better, but so far, every time I’ve tried, I have artifacting and tearing, which just doesn’t happen on X11




















