944 karma · joined August 8, 2017
My "tune for vmware" script has grown to three lines over the years:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag
echo 1 > /proc/sys/vm/compaction_proactiveness # default 20Same as outsourcing security: When shit hits the fan, you have somebody else to point your finger at. No inconvenient questions to ask withing your org, potentially having to blame someone you like on a personal level etc.
Worst case, you have to ask the guy who green-lit the outsourcing some inconvenient questions, but if the company you outsourced to is big enough, you can easily take the "nobody ever got fired for buying IBM" escape route.
Then with Linux, you could have what could run on any big server, for free, as a teen in your bedroom. You could poke at everything, look at the source code, ask around how you do this or that, since knowing how to do X wasn't some well-guarded secret to have an advantage over the competition, but something fun to share. Eventually those teens would get older and look for jobs or go to university, while at the same time Linux keeps on maturing, and now if you as a company want to build some system from the ground up, or just replace something ancient, you can pick that expensive well-established system from IBM, requiring expensive experts to maintain them, and program for them, expensive software, ... or go with that free OS that a lot of people know their way around with and ask for a much lower salary.
Of course, this didn't happen over night, especially the "it's free but there is nobody to yell it if it breaks" aspect of open source was very strange to $BIGCORP and seen as an unacceptable risk, but there was a steady shift towards that, also in large parts because it was pioneered by all those late 90s/early 2000s tech startups that were exactly created by those "Linux teens". Because that's what you tinkered with in college, not some proprietary OS that you couldn't even afford, or get updates for, or ask anyone for help if you got stuck.
Learn "FPGA 'n stuff" and build my own display controller. Like many people here, I don't understand why this takes so much bloody time. Not just the input switching, but also switching resolution or refresh rate on the same input. So either I'd have an a-ha moment and see why it's not possible (more likely outcome), or well, it'll just work and I can write a cool hackaday post.
The EDID explanation given in the comment currently at the top doesn't make too much sense: Even if the display is off and not in some super hardcore energy saving mode, EDID works, i.e. your computer can query the EDID data from the screen and know what its preferred resolution is, etc. Likewise, even if your display is switched to HDMI-1, a machine connected to HDMI-2 can already be outputting 1080p60 to it, so why does switching inputs take more than a few milliseconds?
Afaik (and I only have very rough knowledge here), there is no side-channel in HDMI/DVI that tells the display what mode it's actually receiving, so the display has to look at the signal and make sense of it. So you have to put some brains in it. But that can hardly take several seconds, i.e. hundreds of frames? Maybe two or three frames! I could see this being a cost cutting measure, maybe doing the dumb implementation that takes seconds instead of milliseconds saves you a cent or two per device.
I'd be curious to know how much production code today that's written in C is that performance critical, i.e. depends on all those bonkers exploits of UB for optimizations. The Linux kernel seems to do fine without this.
One example that comes to mind is more powerful/prominent search features. In the 90s, as a home user, you had a folder with some documents and in total, the number of installed games plus apps was probably around a dozen. So it was ok that on Windows, searching for files was hidden in a sub-menu and rather slow. Today, you have a bazillion tools and apps, games, documents from 30 years of migrating to a new system, backups, so you make search faster to access.
People value consistency and gradual development, not failed, half-baked overhauls like the Windows 8 debacle. And obviously that stuff actually works. Which is continuing to be a big downside of KDE or Linux in general. Too many components working together, maintained by different teams and ever-changing. It's basically up to the Distros to find the perfect combination of library and software versions to get a good experience.
Now that you mention that again, I wonder what the underlying issue here was. Nothing in the game depends on the real time clock, and more importantly, how does reloading the saved progress at an arbitrary point in the future break things? I do remember though that poking around the game files I couldn't figure out back then where the progress is stored at all. When I moved to a new machine, I reinstalled the game and then copied over everything from the old machine, basically replacing the entire game, and still all progress was lost. I could still load the individual save games though–which I always saved right after passing the scenario, so nothing happened. Luckily I was only 4 or 5 parks in, so from then on I made sure to save individual scenarios right before passing them, never after, so the win condition would trigger again after loading them.
> The unauthorised reproduction, translation, adaptation or transformation of the form of the code in which a copy of a computer program has been made available constitutes an infringement of the exclusive rights of the author. Nevertheless, circumstances may exist when such a reproduction of the code and translation of its form are indispensable to obtain the necessary information to achieve the interoperability of an independently created program with other programs. It has therefore to be considered that, in these limited circumstances only, performance of the acts of reproduction and translation by or on behalf of a person having a right to use a copy of the program is legitimate and compatible with fair practice and must therefore be deemed not to require the authorisation of the rightholder. An objective of this exception is to make it possible to connect all components of a computer system, including those of different manufacturers, so that they can work together. Such an exception to the author's exclusive rights may not be used in a way which prejudices the legitimate interests of the rightholder or which conflicts with a normal exploitation of the program.
Directive 2009/24/EC
This would allow you to disassemble and modify any parts of OSX and its drivers in order to help write a Linux driver. Does the same apply in the US?
I just put a NIC in mine and use the mTCP utilities. Easy as pie :-))
Then plan for it, architecturally, so that you can add or enable these features later on, or when you need it. Start with something sensible, appropriate for real-world usage. Wayland was everything but. With X11 the ship has sailed in that regard, but if you start over, don't create something that doesn't even offer these features in the name of security and then let the community come up with 10 different solutions to the same problems in the most uncoordinated way possible.
> Not if you were aware of the current issues with Xrandr and why it is a poor target.
xrandr works exactly fine for setting up your screens. You can pass resolution, refresh rate, position and orientation via command line in a simple and understandable way. It's a great example for a trivial real-world tool that should just exist.
> It is absolutely not trivial, and there are security/usability issues with it. To do this "the right way" would be more or less duplicating the entire KMS API into every implementation. Even XRandr is still missing features compared to that, so it is not an adequate solution either.
This completely confirms second system syndrome. It's only as complicated and non-trivial as you want it to be. I can only imagine what kind of convoluted security nonsense you think of when you say "the right way". Ask the display server for a list of screens and supported resolutions, and then tell it what you want to do with those. Done. X11 does it, Windows does it, macOS does it.
Exactly. Like, holy moly did the people working on Wayland get carried away by the mobile OS world. And second system syndrome too probably. I'm using $DISTRO because I trust them enough to not package spyware/malware in their repos. I know it's not 100% safe, there have been and will be security bugs that don't get fixed in a timely manner, or even ones that got introduced by distro-specific patches in the first place, but holy hell my OSS desktop is not a proprietary smartphone OS loaded with random closed-source apps from god knows who that tries to steal my data for profit. If I get pwned then it's certainly not through my display server.
I mean, eventually, like always, the open source world will get its shit together, and Wayland will probably become usable, but we only recently kinda solved the whole screen recording issue.
A few weeks ago I wanted to have a simple script, that would quickly switch between a couple display configurations. With X11 that was dead simple by using xrandr. It works with every DE/WM on this planet. You'd assume there's an equivalent tool for Wayland. But mumble mumble security, you cannot do that, so we got the same f#+ing situation as with screen recording again, every WM/compositor comes up with their own solution to something absolutely trivial. GNOME/Mutter have a dbus-API, wlroots-based ones have "wlrandr" via some protocol extension, KWIN I didn't even bother checking. But it's only 15 years since the project started right, why should something trivial as this have been settled upon yet? I even stumbled upon a discussion in an issue tracker that I cannot find just now where Wayland devs argued that you don't even want something like that. Like, go working for Apple with that mindset.
Give it another 10 years, and it might be ready to serve more than the absolutely trivial average Joe use-case.
Which is not made better by your sentiment? I mean GPL at least forces you to either try negotiating a different license with the author (for money ideally), or suck it and use something inferior. Using a permissive license that allows multi-billion dollar companies to use your code for free certainly doesn't help changing the mind set of "open source is other people working for me for free".
Take your time, especially if you're easily angered, like the parent comment mentions. If your baby just won't stop crying no matter what you try or do and you feel like you might be losing it, just put it back in the crib, leave the room for 5 minutes and come back when you calmed down.