Diseased Open Source Software Community - it's about ethics in Code of Conducts

ext4 just works™.
Prove it.

This, I think, should be anyone's standard retort to any claim made by a poo-grammer, trannie, or penguinista in general. Prove it. You can't... and "just trust me, bro" doesn't cut it anymore.

For similar reasons: If you run into someone who lists their occupation as "software engineer", ask them if they've ever written a formal proof in their life. If they say 'yes', ask them if they've written any since their days in university. 99.999% will not be able to honestly answer yes. They're not real engineers. They're LARPing. So when they make a claim - any claim - demand they prove it. They can't and they won't. Then you can dunk on them with impunity.
 
I don't care how modern new things are if the behaviour of the people pushing it is firmly stuck in the past.
It is not "stuck in the past" it is that once again Kent shows he is superbly autistic and the process does not apply to him.
I will try to find the posts in the initial exchange a week ago or so, but just like all the previous times:

Kernel release process is ~10 weeks per minor version.
2 weeks of merge window where you get all your large pull requests merged and all new features and subsystems go in.
followed by a stabilization phase of ~8 weeks, the RC/Release-candidate phase, where ONLY bugfixes go in.
If you have major new feature work you wait until the next merge window. It is never more than ~8 weeks away,
This is the process. It is not a difficult process to understand.
2 weeks of : merge any big new features, followed by only merge small bugfixes for the next ~8 weeks.

1, Once again, during the RC cycle, Kent sends a huge merge request with a few bugfixes but ALSO massive new features and code refactoring.
2, Once again, for the n-th time, Linus tells him he can not merge that and also for the n-th time explains that "we are in the rc cycle, you should know by now we ONLY merge bugfixes right now, so please re-send it without all the new features and just the actual bugfixes. The rest need to wait for another ~3-4 weeks until the next merge window"
3, Since Kent is turbo-autistic he does not respond as a normal person with "ah, sorry, will do" and instead he posts like a fucking wall of text where he explains how he does this because he cares so much about user experience and why it is so important that these rules do not apply to him".

How fucking hard is it to understand the 2 weeks merge 8 weeks bugfixes cycle? Apparently it is super hard for some people.

This one is fun: https://lore.kernel.org/all/20250627144441.GA349175@fedora/
Josef gets quite upset that Kent tried to say "look, btrfs guys do it too" and josef posts basically a "no we absolutely fucking do not" with data to back him up.
And he also hints at it is not hard to understand or follow the rules.
 
Last edited:
It's up. Do your own testing. Show us your numbers
I've used a somewhat different methodology, not comparing cursor movement but actual content changes, as some compositors may choose to put the cursor texture into a different plane and just move that around.

C:
#include <linux/input.h>
#include <linux/keyboard.h>
#include <linux/module.h>

static void n_event_cb (struct input_handle *handle, unsigned int type, unsigned int code, int value) {
	if (type == EV_KEY && code == KEY_LEFTCTRL) {
		// Note that this method of toggling the keyboard LED is very specific to the way this is
		// implemented in the atkbd (PS/2) driver. I doubt it'll work with the USB/HID one.
		if (value)
			set_bit (LED_CAPSL, handle->dev->led);
		else
			clear_bit (LED_CAPSL, handle->dev->led);
		handle->dev->event (handle->dev, EV_LED, LED_CAPSL, value);
	}
}

static int n_input_connect (struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id) {
	struct input_handle *handle;
	int error;

	handle = kzalloc (sizeof (struct input_handle), GFP_KERNEL);
	if (!handle)
		return -ENOMEM;
	handle->dev = dev;
	handle->handler = handler;
	handle->name = "nbench";

	error = input_register_handle (handle);
	if (error) {
		pr_err ("Failed to register nbench handler, error %d\n", error);
		kfree (handle);
		return error;
	}

	error = input_open_device (handle);
	if (error) {
		pr_err ("Failed to open input device, error %d\n", error);
		input_unregister_handle (handle);
		kfree (handle);
		return error;
	}

	return 0;
}

static void n_input_disconnect (struct input_handle *handle)
{
	input_close_device (handle);
	input_unregister_handle (handle);
	kfree (handle);
}

static const struct input_device_id n_input_table[] = {
	{
		.flags = INPUT_DEVICE_ID_MATCH_EVBIT,
		.evbit = { BIT_MASK(EV_KEY) },
	},
	{ },
};

MODULE_DEVICE_TABLE(input, n_input_table);

static struct input_handler n_input_handler = {
	.event =	n_event_cb,
	.connect =	n_input_connect,
	.disconnect =	n_input_disconnect,
	.name =		"nbench",
	.id_table =	n_input_table,
};

static void __exit nbench_exit (void) {
	pr_info ("nBench EXIT\n");
	input_unregister_handler (&n_input_handler);
}

static int __init nbench_init (void) {
	pr_info ("nBench INIT\n");
	int rc = input_register_handler (&n_input_handler);
	if (rc != 0)
		return rc;
	pr_info ("nBench INIT SUCCESS\n");
	return 0;
}

module_init (nbench_init);
module_exit (nbench_exit);

MODULE_LICENSE ("GPL");
MODULE_AUTHOR ("ñ");
MODULE_DESCRIPTION ("BIKE SHED DESTROYER 9001!!!!!!!");
MODULE_VERSION ("0.1488");

C:
#define SDL_MAIN_USE_CALLBACKS 1
#include <SDL3/SDL.h>
#include <SDL3/SDL_main.h>

static SDL_Window *window = NULL;
static SDL_Renderer *renderer = NULL;
static bool key_down = false;

static void n_render_frame () {
	if (key_down)
		SDL_SetRenderDrawColor (renderer, 255, 255, 255, SDL_ALPHA_OPAQUE);
	else
		SDL_SetRenderDrawColor (renderer, 0, 0, 0, SDL_ALPHA_OPAQUE);
	SDL_RenderClear (renderer);

	SDL_RenderPresent (renderer);
}

SDL_AppResult SDL_AppInit (void **appstate, int argc, char *argv[]) {
	SDL_SetAppMetadata ("nBench userspace", "0.1488", "rs.nigge.nbench");

	if (!SDL_Init (SDL_INIT_VIDEO)) {
		SDL_Log ("Couldn't initialize SDL: %s", SDL_GetError());
		return SDL_APP_FAILURE;
	}

	if (!SDL_CreateWindowAndRenderer ("nbench", 640, 480, SDL_WINDOW_RESIZABLE, &window, &renderer)) {
		SDL_Log("Couldn't create window/renderer: %s", SDL_GetError());
		return SDL_APP_FAILURE;
	}

	return SDL_APP_CONTINUE;
}

SDL_AppResult SDL_AppEvent (void *appstate, SDL_Event *event)
{
	if (event->type == SDL_EVENT_QUIT || (event->type == SDL_EVENT_KEY_DOWN && event->key.key == SDLK_ESCAPE))
		return SDL_APP_SUCCESS;

	if (event->type == SDL_EVENT_KEY_DOWN && event->key.key == SDLK_LCTRL)
		key_down = true;

	if (event->type == SDL_EVENT_KEY_UP && event->key.key == SDLK_LCTRL)
		key_down = false;

	n_render_frame ();

	return SDL_APP_CONTINUE;
}

SDL_AppResult SDL_AppIterate (void *appstate)
{
	n_render_frame ();
	return SDL_APP_CONTINUE;
}

void SDL_AppQuit (void *appstate, SDL_AppResult result) {}

drmmutter/x11mutter/waylandicewm (x11)
16818924
16658125
8737217
24816516
16566534
8818816
85664
80
72
70
64

At least for mutter there doesn't seem to be much of a difference between X11 and Wayland. I think the big difference we can see here is mainly due to composited vs. composite-less rendering. I should probably determine how bad composited X via Mutter is compared to something like picom, but I don't feel like compiling that right now.

As to what the actual numbers mean, they are the frame number difference between the initial frame where I saw the capslock LED and the initial frame I saw a visual change on the screen, but I think kdenlive is just buggy and uses 240 frame numbers per second, even tho my phone already converted the 240 fps footage to 8x 30fps. So if you want actual time difference, ⌊X/8⌋/(8*240) should do it.
 
At least for mutter there doesn't seem to be much of a difference between X11 and Wayland. I think the big difference we can see here is mainly due to composited vs. composite-less rendering. I should probably determine how bad composited X via Mutter is compared to something like picom, but I don't feel like compiling that right now
How does Mutter compare to Muffin (Cinnamon) just out of curiosity?
 
  • Dumb
Reactions: skunt
Code Of Ethics
1. History
This document was originally called a "Code of Conduct" and was created for the purpose of filling in a box on "supplier registration" forms submitted to the SQLite developers by some clients. However, we subsequently learned that "Code of Conduct" has a very specific and almost sacred meaning to some readers, a meaning to which this document does not conform [1][2][3]. Therefore this document was renamed to "Code of Ethics", as we are encouraged to do by rule 71 in particular and also rules 2, 8, 9, 18, 19, 30, 66, and in the spirit of all the rest.

This document continues to be used for its original purpose - providing a reference to fill in the "code of conduct" box on supplier registration forms.

2. Purpose
The founder of SQLite, and all of the current developers at the time when this document was composed, have pledged to govern their interactions with each other, with their clients, and with the larger SQLite user community in accordance with the "instruments of good works" from chapter 4 of The Rule of St. Benedict (hereafter: "The Rule"). This code of ethics has proven its mettle in thousands of diverse communities for over 1,500 years, and has served as a baseline for many civil law codes since the time of Charlemagne.

2.1. Scope of Application
No one is required to follow The Rule, to know The Rule, or even to think that The Rule is a good idea. The Founder of SQLite believes that anyone who follows The Rule will live a happier and more productive life, but individuals are free to dispute or ignore that advice if they wish.

The founder of SQLite and all current developers have pledged to follow the spirit of The Rule to the best of their ability. They view The Rule as their promise to all SQLite users of how the developers are expected to behave. This is a one-way promise, or covenant. In other words, the developers are saying: "We will treat you this way regardless of how you treat us."

3. The Rule
First of all, love the Lord God with your whole heart, your whole soul, and your whole strength.
Then, love your neighbor as yourself.
Do not murder.
Do not commit adultery.
Do not steal.
Do not covet.
Do not bear false witness.
Honor all people.
Do not do to another what you would not have done to yourself.
Deny oneself in order to follow Christ.
Chastise the body.
Do not become attached to pleasures.
Love fasting.
Relieve the poor.
Clothe the naked.
Visit the sick.
Bury the dead.
Be a help in times of trouble.
Console the sorrowing.
Be a stranger to the world's ways.
Prefer nothing more than the love of Christ.
Do not give way to anger.
Do not nurse a grudge.
Do not entertain deceit in your heart.
Do not give a false peace.
Do not forsake charity.
Do not swear, for fear of perjuring yourself.
Utter only truth from heart and mouth.
Do not return evil for evil.
Do no wrong to anyone, and bear patiently wrongs done to yourself.
Love your enemies.
Do not curse those who curse you, but rather bless them.
Bear persecution for justice's sake.
Be not proud.
Be not addicted to wine.
Be not a great eater.
Be not drowsy.
Be not lazy.
Be not a grumbler.
Be not a detractor.
Put your hope in God.
Attribute to God, and not to self, whatever good you see in yourself.
Recognize always that evil is your own doing, and to impute it to yourself.
Fear the Day of Judgment.
Be in dread of hell.
Desire eternal life with all the passion of the spirit.
Keep death daily before your eyes.
Keep constant guard over the actions of your life.
Know for certain that God sees you everywhere.
When wrongful thoughts come into your heart, dash them against Christ immediately.
Disclose wrongful thoughts to your spiritual mentor.
Guard your tongue against evil and depraved speech.
Do not love much talking.
Speak no useless words or words that move to laughter.
Do not love much or boisterous laughter.
Listen willingly to holy reading.
Devote yourself frequently to prayer.
Daily in your prayers, with tears and sighs, confess your past sins to God, and amend them for the future.
Fulfill not the desires of the flesh; hate your own will.
Obey in all things the commands of those whom God has placed in authority over you even though they (which God forbid) should act otherwise, mindful of the Lord's precept, "Do what they say, but not what they do."
Do not wish to be called holy before one is holy; but first to be holy, that you may be truly so called.
Fulfill God's commandments daily in your deeds.
Love chastity.
Hate no one.
Be not jealous, nor harbor envy.
Do not love quarreling.
Shun arrogance.
Respect your seniors.
Love your juniors.
Pray for your enemies in the love of Christ.
Make peace with your adversary before the sun sets.
Never despair of God's mercy.
 
Which Steam games can be run without the Steam launcher?
Quite a few Unity-based games. Kerbal Space Program comes to mind. If you want to, you can always go to your steam library directory and launch the executables directly with Steam closed, and see which ones either refuse to launch or launch Steam when you kick them over.
 
I'd say the biggest difference is that X11 was designed by engineers and Wayland was designed by marketing. X11 is a fully featured solution if a little ugly in some corners, Wayland is half thought out and relies on others filling in the gaps of it's abilities.
Relevant xkcd comic:
x11.webp

Thomas Jefferson thought that every law and every constitution should be torn down and rewritten from scratch every nineteen years--which means X is overdue.

I never had t open xorg.conf, though.
 
The real problem was figuring out in XF86Config how to set up your monitor. Get out the manual, compute the modelines. If you didn't have the manual hope someone had posted similar on Usenet or just sort of guess and try not to fry your monitor if it was fixed frequency.
Modeline "1600x1200" 155 1600 1656 1776 2048 1200 1202 1205 1263

Never forget what they took from you.
 
Which Steam games can be run without the Steam launcher?
A bunch of random indie games that just don't seem to care and will optionally use steam_api64.dll if it's there or skip it. There's pirated games that you don't need to crack, effectively DRM free steam games do exist, with optional steam integration.
 
The real problem was figuring out in XF86Config how to set up your monitor. Get out the manual, compute the modelines. If you didn't have the manual hope someone had posted similar on Usenet or just sort of guess and try not to fry your monitor if it was fixed frequency.
Modeline "1600x1200" 155 1600 1656 1776 2048 1200 1202 1205 1263

Never forget what they took from you.
I think my last CRT monitor was ~2005? After I graduated college, I got an LCD with a DVI connector and never looked back. The last time I had to manually set a modeline was ~2016 when I got an LG monitor that was 4k-DCI (an actual 4096x2160 monitor instead of the 4K/UHD). I had to manually add the correct mode lines via xrander based on some blog post I found. Within a few months though, there was an xorg update that pulled the correct modelines from that monitor from the EDID.

You can set TearFree via xrandr on startup and not mess with a custom xorg.conf. The only real reason today for a custom xorg.conf is if you're trying to establish a true multi-seat Linux setup (2+ monitors, 2+ keyboards, 2+ mice all with their own Xserver and login screen). Not sure if you can do that with Wayland today.
 
I've been reviewing some of the XLibre commits. I like some of what I see. I do agree with cleaning up the codebase, even if it it's largely just churn. I do see bug fixes. metux seems committed to putting the labor. I see outside contributions being merged (shout out to @dec05eba).

A successor fork to Xorg has always seemed inevitable considering how Red Hat has gatekept the Xorg project, discouraging contributions and spreading FUD with such desperation that they're actively misleading people. Xorg isn't going away, Wayland hasn't successful replaced it. Me and many others are going to continue using Xorg for as long as Wayland is a clusterfuck (which at this rate, is forever). Eventually someone is going to want to make meaningful changes and Red Hat will drag their heels on it. This is exactly what happened. No culture war needed.

For this reason I feel XLibre has the best chance of thriving compared to primarily culture-war based forks like Redot (which I was very critical of) and Sneedacity (which was kinda just a meme). Unlike in these previous instances, there is a need and there is someone with relevant codebase experience heading it up.

I won't be moving over, it needs some more time to cook. Plus from what I can tell nvidia drivers might not be working due to ABI changes. Obviously this is a non-starter that must be resolved. Adults use NVIDIA cards, I'm sorry.
>novideo
 
  • Dumb
Reactions: ScooterL
Back