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

  • 🐕 I am attempting to get the site runnning as fast as possible. If you are experiencing slow page load times, please report it.
F-word removed from Linux code comments in favour of 'hug' (Original)
F-word removed from Linux code comments in favour of 'hug'
By Paul Hill · Nov 30, 2018 16:24 EST

In October, the Linux kernel project adopted a new Code of Conduct with the aim of enforcing more inclusive language; while it did have plenty of supporters, it also had detractors who were not keen on the idea at all. Today, Jarkko Sakkinen from Intel began putting the Code of Conduct into practice against several code comments, replacing the F-word with 'hug'.

Following the change, several contributors responded to the alterations calling them insane, one wondered if Sakkinen was just trying to make a joke, and another called it censorship and said he’d refuse to apply any sort of patches like this to the code he's in charge of. Another contributor said they didn’t mind the change but that some of the sentences were now difficult to understand, this was echoed by a Dutch contributor who said the replacements were confusing for non-native English speakers.

Some of the post-change comments read “Some Athlon laptops have really hugged PST tables”, “If you don’t see why, please stay the hug away from my code”, and “Only Sun can take such nice parts and hug up the programming interface”.

While these changes may not seem quite as dystopian as some imagined, it’s not very good practice to make the comments confusing. Anyone who has taken a lesson in programming can tell you that it’s very important to leave enough understandable comments throughout the code so that contributors in future can understand what the code does before they make changes.

Source: Free Desktop via Phoronix
Dropping Profanity In Kernel Code Comments: Linux Gets "Hugs" (Original)
Dropping Profanity In Kernel Code Comments: Linux Gets "Hugs"
Written by Michael Larabel in Linux Kernel on 30 November 2018 at 02:48 PM EST. 70 Comments

In seeking to comply with the Linux kernel's new Code of Conduct enacted by the recent 4.19 release, a patch series has been sent out today replacing profane kernel code comments with "hugs".

Like with most complex codebases -- especially ones developed over the course of many years by many different developers -- the Linux kernel has its share of colorful words within code comments left by developers. With a set of 15 patches sent out today by Jarkko Sakkinen of Intel, the kernel has no more fucks but instead only hugs. "In order to comply with the CoC, replace **** with a hug."

Some of the revised code comments now include "IOC3 is hugging hugged beyond belief", "Only Sun can take such nice parts and hug up the programming interface like this. Good job guys...", "Hugging broken ABI", "avoid hugging up the memory controller (somehow)", and "Hug, we are miserable poor guys..."

Surprisingly, at least with this initial patch series, it's just 33 lines of changed comments out of 3.3+ million lines of code comments within the kernel source tree but we'll see what other words may get cleaned up next for making the Linux kernel more inviting to all. Linus Torvalds has also cleaned up his colorful language and refrained from any outbursts on the mailing list since his brief retreat during the 4.19 cycle.
[PATCH RFC 01/15] MIPS: replace **** with a hug
From: Jarkko Sakkinen
Date: Fri Nov 30 2018 - 14:27:44 EST


In order to comply with the CoC, replace **** with a hug.

Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx>
---
arch/mips/pci/ops-bridge.c | 24 ++++++++++++------------
arch/mips/sgi-ip22/ip22-setup.c | 2 +-
2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/arch/mips/pci/ops-bridge.c b/arch/mips/pci/ops-bridge.c
index a1d2c4ae0d1b..c755c4c92fa9 100644
--- a/arch/mips/pci/ops-bridge.c
+++ b/arch/mips/pci/ops-bridge.c
@@ -56,7 +56,7 @@ static int pci_conf0_read_config(struct pci_bus *bus, unsigned int devfn,
return PCIBIOS_DEVICE_NOT_FOUND;

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to look at it for real ...
*/
if (cf == (PCI_VENDOR_ID_SGI | (PCI_DEVICE_ID_SGI_IOC3 << 16)))
@@ -76,7 +76,7 @@ static int pci_conf0_read_config(struct pci_bus *bus, unsigned int devfn,
oh_my_gawd:

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to look at the wrong register.
*/
if ((where >= 0x14 && where < 0x40) || (where >= 0x48)) {
@@ -85,7 +85,7 @@ static int pci_conf0_read_config(struct pci_bus *bus, unsigned int devfn,
}

/*
- * IOC3 is fucking fucked beyond belief ... Don't try to access
+ * IOC3 is hugging hugged beyond belief ... Don't try to access
* anything but 32-bit words ...
*/
addr = &bridge->b_type0_cfg_dev[slot].f[fn].l[where >> 2];
@@ -118,7 +118,7 @@ static int pci_conf1_read_config(struct pci_bus *bus, unsigned int devfn,
return PCIBIOS_DEVICE_NOT_FOUND;

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to look at it for real ...
*/
if (cf == (PCI_VENDOR_ID_SGI | (PCI_DEVICE_ID_SGI_IOC3 << 16)))
@@ -139,7 +139,7 @@ static int pci_conf1_read_config(struct pci_bus *bus, unsigned int devfn,
oh_my_gawd:

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to look at the wrong register.
*/
if ((where >= 0x14 && where < 0x40) || (where >= 0x48)) {
@@ -148,7 +148,7 @@ static int pci_conf1_read_config(struct pci_bus *bus, unsigned int devfn,
}

/*
- * IOC3 is fucking fucked beyond belief ... Don't try to access
+ * IOC3 is hugging hugged beyond belief ... Don't try to access
* anything but 32-bit words ...
*/
bridge->b_pci_cfg = (busno << 16) | (slot << 11);
@@ -189,7 +189,7 @@ static int pci_conf0_write_config(struct pci_bus *bus, unsigned int devfn,
return PCIBIOS_DEVICE_NOT_FOUND;

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to look at it for real ...
*/
if (cf == (PCI_VENDOR_ID_SGI | (PCI_DEVICE_ID_SGI_IOC3 << 16)))
@@ -213,14 +213,14 @@ static int pci_conf0_write_config(struct pci_bus *bus, unsigned int devfn,
oh_my_gawd:

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to touch the wrong register.
*/
if ((where >= 0x14 && where < 0x40) || (where >= 0x48))
return PCIBIOS_SUCCESSFUL;

/*
- * IOC3 is fucking fucked beyond belief ... Don't try to access
+ * IOC3 is hugging hugged beyond belief ... Don't try to access
* anything but 32-bit words ...
*/
addr = &bridge->b_type0_cfg_dev[slot].f[fn].l[where >> 2];
@@ -257,7 +257,7 @@ static int pci_conf1_write_config(struct pci_bus *bus, unsigned int devfn,
return PCIBIOS_DEVICE_NOT_FOUND;

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to look at it for real ...
*/
if (cf == (PCI_VENDOR_ID_SGI | (PCI_DEVICE_ID_SGI_IOC3 << 16)))
@@ -281,14 +281,14 @@ static int pci_conf1_write_config(struct pci_bus *bus, unsigned int devfn,
oh_my_gawd:

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to touch the wrong register.
*/
if ((where >= 0x14 && where < 0x40) || (where >= 0x48))
return PCIBIOS_SUCCESSFUL;

/*
- * IOC3 is fucking fucked beyond belief ... Don't try to access
+ * IOC3 is hugging hugged beyond belief ... Don't try to access
* anything but 32-bit words ...
*/
addr = &bridge->b_type0_cfg_dev[slot].f[fn].l[where >> 2];
diff --git a/arch/mips/sgi-ip22/ip22-setup.c b/arch/mips/sgi-ip22/ip22-setup.c
index b69daa02401b..50f04fe491ca 100644
--- a/arch/mips/sgi-ip22/ip22-setup.c
+++ b/arch/mips/sgi-ip22/ip22-setup.c
@@ -36,7 +36,7 @@ void __init plat_mem_setup(void)
board_be_init = ip22_be_init;

/* Init the INDY HPC I/O controller. Need to call this before
- * fucking with the memory controller because it needs to know the
+ * hugging with the memory controller because it needs to know the
* boardID and whether this is a Guiness or a FullHouse machine.
*/
sgihpc_init();
--
2.19.1
[PATCH RFC 00/15] Zero ****s, hugload of hugs <3
Jarkko Sakkinen jarkko.sakkinen at linux.intel.com
Fri Nov 30 19:27:09 UTC 2018


In order to comply with the CoC, replace **** with a hug.

Jarkko Sakkinen (15):
MIPS: replace **** with a hug
Documentation: replace **** with a hug
drm/nouveau: replace **** with a hug
m68k: replace **** with a hug
parisc: replace **** with a hug
cpufreq: replace **** with a hug
ide: replace **** with a hug
media: replace **** with a hug
mtd: replace **** with a hug
net/sunhme: replace **** with a hug
scsi: replace **** with a hug
inotify: replace **** with a hug
irq: replace **** with a hug
lib: replace **** with a hug
net: replace **** with a hug

Documentation/kernel-hacking/locking.rst | 2 +-
arch/m68k/include/asm/sun3ints.h | 2 +-
arch/mips/pci/ops-bridge.c | 24 +++++++++----------
arch/mips/sgi-ip22/ip22-setup.c | 2 +-
arch/parisc/kernel/sys_parisc.c | 2 +-
drivers/cpufreq/powernow-k7.c | 2 +-
.../gpu/drm/nouveau/nvkm/subdev/bios/init.c | 2 +-
.../nouveau/nvkm/subdev/pmu/fuc/macros.fuc | 2 +-
drivers/ide/cmd640.c | 2 +-
drivers/media/i2c/bt819.c | 8 ++++---
drivers/mtd/mtd_blkdevs.c | 2 +-
drivers/net/ethernet/sun/sunhme.c | 4 ++--
drivers/scsi/qlogicpti.h | 2 +-
fs/notify/inotify/inotify_user.c | 2 +-
kernel/irq/timings.c | 2 +-
lib/vsprintf.c | 2 +-
net/core/skbuff.c | 2 +-
17 files changed, 33 insertions(+), 31 deletions(-)

--
2.19.1
As Jarkko Sakkinen typed "In order to comply with the CoC, replace **** with a hug." he must have checked a dozen times to make sure he didn't accidentally type *hugs*.
 
I found a guy named Bryan Lunduke on YouTube. He's a Linux wonk and seems to give a lot of speeches at conferences that find their way onto YouTube which are pretty entertaining, and he makes his own videos as well; they're more commentary and analysis rather than tutorials or the like.
He's actually a board member at openSUSE so the fact that he doesn't follow the SJW herd and has sane opinions is more important than you might realize.

Is that a big deal?
More mountains of unauditable, insecure code being crammed into Firefox to enable features nobody wants or cares about.
 
  • Agree
Reactions: Marvin
Have you ever looked at the dependency tree for a JS project that uses npm? It's a nightmare. You'll sometimes get packages that require packages that require packages... ten levels deep. I'm convinced it's because devs who rely this heavily on javascript just don't want to write their own code, or are incapable of doing so.
It's not just Javascript. Any time you introduce a one-click package management tool, suddenly even "Hello World" becomes an autistic Voltron of packages.
 
  • Agree
Reactions: Eternal Gopnik
F-word removed from Linux code comments in favour of 'hug' (Original)
By Paul Hill · Nov 30, 2018 16:24 EST

In October, the Linux kernel project adopted a new Code of Conduct with the aim of enforcing more inclusive language; while it did have plenty of supporters, it also had detractors who were not keen on the idea at all. Today, Jarkko Sakkinen from Intel began putting the Code of Conduct into practice against several code comments, replacing the F-word with 'hug'.

Following the change, several contributors responded to the alterations calling them insane, one wondered if Sakkinen was just trying to make a joke, and another called it censorship and said he’d refuse to apply any sort of patches like this to the code he's in charge of. Another contributor said they didn’t mind the change but that some of the sentences were now difficult to understand, this was echoed by a Dutch contributor who said the replacements were confusing for non-native English speakers.

Some of the post-change comments read “Some Athlon laptops have really hugged PST tables”, “If you don’t see why, please stay the hug away from my code”, and “Only Sun can take such nice parts and hug up the programming interface”.

While these changes may not seem quite as dystopian as some imagined, it’s not very good practice to make the comments confusing. Anyone who has taken a lesson in programming can tell you that it’s very important to leave enough understandable comments throughout the code so that contributors in future can understand what the code does before they make changes.

Source: Free Desktop via Phoronix

Dropping Profanity In Kernel Code Comments: Linux Gets "Hugs" (Original)
Dropping Profanity In Kernel Code Comments: Linux Gets "Hugs"
Written by Michael Larabel in Linux Kernel on 30 November 2018 at 02:48 PM EST. 70 Comments

In seeking to comply with the Linux kernel's new Code of Conduct enacted by the recent 4.19 release, a patch series has been sent out today replacing profane kernel code comments with "hugs".

Like with most complex codebases -- especially ones developed over the course of many years by many different developers -- the Linux kernel has its share of colorful words within code comments left by developers. With a set of 15 patches sent out today by Jarkko Sakkinen of Intel, the kernel has no more fucks but instead only hugs. "In order to comply with the CoC, replace **** with a hug."

Some of the revised code comments now include "IOC3 is hugging hugged beyond belief", "Only Sun can take such nice parts and hug up the programming interface like this. Good job guys...", "Hugging broken ABI", "avoid hugging up the memory controller (somehow)", and "Hug, we are miserable poor guys..."

Surprisingly, at least with this initial patch series, it's just 33 lines of changed comments out of 3.3+ million lines of code comments within the kernel source tree but we'll see what other words may get cleaned up next for making the Linux kernel more inviting to all. Linus Torvalds has also cleaned up his colorful language and refrained from any outbursts on the mailing list since his brief retreat during the 4.19 cycle.
[PATCH RFC 01/15] MIPS: replace **** with a hug
From: Jarkko Sakkinen
Date: Fri Nov 30 2018 - 14:27:44 EST



In order to comply with the CoC, replace **** with a hug.

Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx>
---
arch/mips/pci/ops-bridge.c | 24 ++++++++++++------------
arch/mips/sgi-ip22/ip22-setup.c | 2 +-
2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/arch/mips/pci/ops-bridge.c b/arch/mips/pci/ops-bridge.c
index a1d2c4ae0d1b..c755c4c92fa9 100644
--- a/arch/mips/pci/ops-bridge.c
+++ b/arch/mips/pci/ops-bridge.c
@@ -56,7 +56,7 @@ static int pci_conf0_read_config(struct pci_bus *bus, unsigned int devfn,
return PCIBIOS_DEVICE_NOT_FOUND;

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to look at it for real ...
*/
if (cf == (PCI_VENDOR_ID_SGI | (PCI_DEVICE_ID_SGI_IOC3 << 16)))
@@ -76,7 +76,7 @@ static int pci_conf0_read_config(struct pci_bus *bus, unsigned int devfn,
oh_my_gawd:

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to look at the wrong register.
*/
if ((where >= 0x14 && where < 0x40) || (where >= 0x48)) {
@@ -85,7 +85,7 @@ static int pci_conf0_read_config(struct pci_bus *bus, unsigned int devfn,
}

/*
- * IOC3 is fucking fucked beyond belief ... Don't try to access
+ * IOC3 is hugging hugged beyond belief ... Don't try to access
* anything but 32-bit words ...
*/
addr = &bridge->b_type0_cfg_dev[slot].f[fn].l[where >> 2];
@@ -118,7 +118,7 @@ static int pci_conf1_read_config(struct pci_bus *bus, unsigned int devfn,
return PCIBIOS_DEVICE_NOT_FOUND;

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to look at it for real ...
*/
if (cf == (PCI_VENDOR_ID_SGI | (PCI_DEVICE_ID_SGI_IOC3 << 16)))
@@ -139,7 +139,7 @@ static int pci_conf1_read_config(struct pci_bus *bus, unsigned int devfn,
oh_my_gawd:

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to look at the wrong register.
*/
if ((where >= 0x14 && where < 0x40) || (where >= 0x48)) {
@@ -148,7 +148,7 @@ static int pci_conf1_read_config(struct pci_bus *bus, unsigned int devfn,
}

/*
- * IOC3 is fucking fucked beyond belief ... Don't try to access
+ * IOC3 is hugging hugged beyond belief ... Don't try to access
* anything but 32-bit words ...
*/
bridge->b_pci_cfg = (busno << 16) | (slot << 11);
@@ -189,7 +189,7 @@ static int pci_conf0_write_config(struct pci_bus *bus, unsigned int devfn,
return PCIBIOS_DEVICE_NOT_FOUND;

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to look at it for real ...
*/
if (cf == (PCI_VENDOR_ID_SGI | (PCI_DEVICE_ID_SGI_IOC3 << 16)))
@@ -213,14 +213,14 @@ static int pci_conf0_write_config(struct pci_bus *bus, unsigned int devfn,
oh_my_gawd:

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to touch the wrong register.
*/
if ((where >= 0x14 && where < 0x40) || (where >= 0x48))
return PCIBIOS_SUCCESSFUL;

/*
- * IOC3 is fucking fucked beyond belief ... Don't try to access
+ * IOC3 is hugging hugged beyond belief ... Don't try to access
* anything but 32-bit words ...
*/
addr = &bridge->b_type0_cfg_dev[slot].f[fn].l[where >> 2];
@@ -257,7 +257,7 @@ static int pci_conf1_write_config(struct pci_bus *bus, unsigned int devfn,
return PCIBIOS_DEVICE_NOT_FOUND;

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to look at it for real ...
*/
if (cf == (PCI_VENDOR_ID_SGI | (PCI_DEVICE_ID_SGI_IOC3 << 16)))
@@ -281,14 +281,14 @@ static int pci_conf1_write_config(struct pci_bus *bus, unsigned int devfn,
oh_my_gawd:

/*
- * IOC3 is fucking fucked beyond belief ... Don't even give the
+ * IOC3 is hugging hugged beyond belief ... Don't even give the
* generic PCI code a chance to touch the wrong register.
*/
if ((where >= 0x14 && where < 0x40) || (where >= 0x48))
return PCIBIOS_SUCCESSFUL;

/*
- * IOC3 is fucking fucked beyond belief ... Don't try to access
+ * IOC3 is hugging hugged beyond belief ... Don't try to access
* anything but 32-bit words ...
*/
addr = &bridge->b_type0_cfg_dev[slot].f[fn].l[where >> 2];
diff --git a/arch/mips/sgi-ip22/ip22-setup.c b/arch/mips/sgi-ip22/ip22-setup.c
index b69daa02401b..50f04fe491ca 100644
--- a/arch/mips/sgi-ip22/ip22-setup.c
+++ b/arch/mips/sgi-ip22/ip22-setup.c
@@ -36,7 +36,7 @@ void __init plat_mem_setup(void)
board_be_init = ip22_be_init;

/* Init the INDY HPC I/O controller. Need to call this before
- * fucking with the memory controller because it needs to know the
+ * hugging with the memory controller because it needs to know the
* boardID and whether this is a Guiness or a FullHouse machine.
*/
sgihpc_init();
--
2.19.1
[PATCH RFC 00/15] Zero ****s, hugload of hugs <3
Jarkko Sakkinen jarkko.sakkinen at linux.intel.com
Fri Nov 30 19:27:09 UTC 2018



In order to comply with the CoC, replace **** with a hug.

Jarkko Sakkinen (15):
MIPS: replace **** with a hug
Documentation: replace **** with a hug
drm/nouveau: replace **** with a hug
m68k: replace **** with a hug
parisc: replace **** with a hug
cpufreq: replace **** with a hug
ide: replace **** with a hug
media: replace **** with a hug
mtd: replace **** with a hug
net/sunhme: replace **** with a hug
scsi: replace **** with a hug
inotify: replace **** with a hug
irq: replace **** with a hug
lib: replace **** with a hug
net: replace **** with a hug

Documentation/kernel-hacking/locking.rst | 2 +-
arch/m68k/include/asm/sun3ints.h | 2 +-
arch/mips/pci/ops-bridge.c | 24 +++++++++----------
arch/mips/sgi-ip22/ip22-setup.c | 2 +-
arch/parisc/kernel/sys_parisc.c | 2 +-
drivers/cpufreq/powernow-k7.c | 2 +-
.../gpu/drm/nouveau/nvkm/subdev/bios/init.c | 2 +-
.../nouveau/nvkm/subdev/pmu/fuc/macros.fuc | 2 +-
drivers/ide/cmd640.c | 2 +-
drivers/media/i2c/bt819.c | 8 ++++---
drivers/mtd/mtd_blkdevs.c | 2 +-
drivers/net/ethernet/sun/sunhme.c | 4 ++--
drivers/scsi/qlogicpti.h | 2 +-
fs/notify/inotify/inotify_user.c | 2 +-
kernel/irq/timings.c | 2 +-
lib/vsprintf.c | 2 +-
net/core/skbuff.c | 2 +-
17 files changed, 33 insertions(+), 31 deletions(-)

--
2.19.1

As Jarkko Sakkinen typed "In order to comply with the CoC, replace **** with a hug." he must have checked a dozen times to make sure he didn't accidentally type *hugs*.
This just speaks to how America-centric these supposedly "progressive" fucksticks are. At least with the prior use of "fuck" someone with a cursory knowledge of English swear words would be able to get at the meaning of the comments. This replacement will make it much harder for non-English speaking people to understand, and will probably also make English speakers have to slow down and parse what they just read. Troons were a mistake.
 
Just imagine. Intel actually paid some humour deprived fucksteak to grep the kernel source for swear words and submit a patch to remove them because... someone might be offended when they try to figure out why their Nvidia drivers aren't working?

This is what fucking happens when you let corporations move in and fuck up your perfectly good hobby operating system.

Previously.

As I write this, it's just a bit over ten years since I started working at Mosaic Communications Corporation. In memory of that, here's a piece of history I managed to dig up.

When we created mozilla.org and released (most of) the source code to Netscape Confusicator 4.x, Netscape's lawyers made us go through a big "sanitization" process on the source code. Largely this consisted of making sure we had the legal rights to all the code we were releasing, and making sure every file had proper and accurate copyright statements; but they also made us take out all the dirty words. Specifically, "any text containing vulgar or offensive words or expressions; any text that might be slanderous or libelous to individuals and/or institutions."

At our release party on April 1, 1998 Pierre Saslawsky was handing out guerilla party favors consisting of a CD-ROM archive of the mcom.bad-attitude newsgroup, and a single sheet of paper with some choice source code obscenities on it from the pre-sanitization tree.

I found that piece of paper, and typed it in, below.

For comparison, a similar set of searches from the Netscape 3.02 source tree follows. (We didn't search for the exact same sets of words, and I suspect he edited his more heavily than I did, so don't assume that because the second list is longer, the number of obscenities in the 4.x series was lower...)

Enjoy it. By which I mean to say, fuck you.

Also.

It's not just Javascript. Any time you introduce a one-click package management tool, suddenly even "Hello World" becomes an autistic Voltron of packages.

I don't think it's quite that simple, there's a culture at play. Like CPAN is a comprehensive archive of incredible modules that often do incredibly esoteric things. Like, there's never been a complicated job that I want to do with Perl that there totally wasn't a module to do the heavy lifting for, even weird things like calculating the informatic distance between strings in 4 different ways, which is actually something I wanted to do and found a module for. Despite its comprehensiveness and the relative ease of installing new CPAN modules, it's never really attracted 5 line modules like that retarded npm leftpad function where the author abandoned it and the whole world broke.
 
Last edited:
  • Semper Fidelis
  • Feels
Reactions: Morshu and Marvin
I think it's fair to say that at a certain level of dependencies, the author of the software in question himself doesn't really know anymore what it does. This also makes for bugs that might be hard or impossible to grasp, let alone for difficult security implications. Some programmers really like to avoid, you know, programming. I also personally often found it easier to just implement something myself then to try to wrap my mind around the thought process about how somebody else thought it should be implemented. There are a lot of "professionals" who would be overwhelmed by writing a simple BASIC program on a C64. "Whaddya mean there's no package manager? I'm supposed to do it all by myself?!"

That with the Linux kernel doesn't really surprise me at this point. It's less SJW/tranny nonsense but more commercialization of the Linux project nonsense. Corporate culture and all. Pretty conservative corporate culture at that. The SJW/tranny brigade probably approves of it though because they're worse than the crazy church people in the 90s that wrote complaint letters to TV- and Radio stations.
 
I think it's fair to say that at a certain level of dependencies, the author of the software in question himself doesn't really know anymore what it does. This also makes for bugs that might be hard or impossible to grasp, let alone for difficult security implications. Some programmers really like to avoid, you know, programming. I also personally often found it easier to just implement something myself then to try to wrap my mind around the thought process about how somebody else thought it should be implemented. There are a lot of "professionals" who would be overwhelmed by writing a simple BASIC program on a C64. "Whaddya mean there's no package manager? I'm supposed to do it all by myself?!"
So how far do you take that? Do you also code your own graphics libraries so you fully understand how your app's windows are being drawn to the screen? Do you code your own filesystem so you fully understand how data is being written to and read from disk? Do you code your own operating system and BIOS… do you solder together your own CPUs out of transistors… do you mine your own tin and silicon?

Leveraging pre-existing code doesn't make you a dumb coder; it makes you a smart one, because you're not wasting time and possibly introducing insecurities by re-implementing things that smarter people have already implemented and refined for years, or, in some cases, a decade or more. As a web developer, I can leverage Drupal or WordPress to get a MVP of a client's site up and running in days, without having to spend weeks re-implement user credentials and access levels, database connectivity, and so on. I'd be cheating my clients if I did it any other way - if I got any clients at all.

Yes, this means that I don't know, line by line, what 95% of my project's code is doing. But things like what happened here with NPM are so rare that it's not worth sweating it.
 
I feel I hit a nerve.

It's the same like with the performance discussion when computer performance kept improving in very short order and students were being told that it kind of doesn't matter if their program is less effective computationally as long as coding it happens quick. Performance doesn't matter until it actually does and then some people literally do not know how to code effectively or understand that their construction doesn't exist in a vacuum and the machine it runs on might actually be required to do more. There's a balance to be stricken I think.

When I see, for example, relatively simple projects like alacritty pulling in half of the rust libaries that exist in just to do some terminal emulation, I kind of get the feeling that a project like that is never going to get finished or run well as terminal emulation is a hard thing to pull off correctly and the developers don't seem to really understand what they are doing or how they want to get there. Using these dependencies in themselves might or might not actually be the issue here, it's more the approach.

I have coded my own graphics libraries before, I have touched filesystems and I have worked with assembler and pretty close to the operating system in more primitive times. I also have built my own 4 bit computer in my formative years. Haven't mined my own tin yet tho! Does any of that make me a CPU designer or an assembly/game engine wizard? No. You don't *need* to understand or know all these things and the field is pretty big and there are tons of things I also have no idea abut, but I'd actually argue understanding what is going on, at least in theory, will make you a more effective coder and yes - sometimes I find it's actually easier to just implement things myself than to try to wrap my head around the solution of somebody else. YMMV, obviously. The time I waste implementing it myself early on I save later by actually understanding what is going on when there are problems and also being able to modify my own implementation quickly if I figure out I need it to do more or something a bit differently. A balance is also to be stricken here too, of course.

There are just too many "coders" that do python and web development and barely know anything about the underlying systems except where the power on button on their computer is. Maybe it's enough to do their job and that's fine, I just think a more broad education and knowledge base would help to actually see less of the atrocities in programming and implementation we see these days. We would also not have to deal with all this "post-meritocracy" nonsense now which I am afraid will probably gain more traction in coming years.
 
I feel I hit a nerve.
Well… you aren't the only one in this thread pooping on the idea of using package managers or OSS libraries in general, but you're the one I ended up responding to - so of course you had to be the one who has written your own graphics libraries and shit, ffs.

Your point about efficiency is well made, though. Using a library means including more code in your project than it actually needs. But the trade-off with not having to reinvent wheels and probably doing so poorly is well worth it.
 
  • Agree
  • Feels
Reactions: Zero0 and Marvin
Your point about efficiency is well made, though. Using a library means including more code in your project than it actually needs.
It's more code that you don't know. People just tend to trust random crap on npm, even though any idiot can put shit up there. It doesn't save you any work if you have to audit the code first.

Don't treat an established third-party library with a good reputation the same as some random micro-library from your language's package manager.
 
Linux.org got hacked and was replaced with an image of someone's ass, along with a shoutout to Terry A Davis and a link to a news article about the Code of Conduct chaos.
upload_2018-12-6_20-12-41.png

Edit: Linux.org got edited again and this time with dox of Coraline Ada.
 
Last edited:
Linux.org got hacked and was replaced with an image of someone's ass, along with a shoutout to Terry A Davis and a link to a news article about the Code of Conduct chaos.

Edit: Linux.org got edited again and this time with dox of Coraline Ada.

Please note: linux.org is a community forum with a good domain, it's not officially associated with the kernel.

Apparently the owner simply forgot to renew the domain name. I'm not sure that can count as a hack at all.
 
Please note: linux.org is a community forum with a good domain, it's not officially associated with the kernel.

Apparently the owner simply forgot to renew the domain name. I'm not sure that can count as a hack at all.

Looking back in archive.org it's been there for a while.
 
  • Informative
Reactions: Ti-99/4A
There are just too many "coders" that do python and web development and barely know anything about the underlying systems except where the power on button on their computer is. Maybe it's enough to do their job and that's fine, I just think a more broad education and knowledge base would help to actually see less of the atrocities in programming and implementation we see these days.
In my experience, I find code bootcamp people to be way more useful programmers than people who are suckered in by macho code nerd bullshit.

Honestly, I just appreciate the humility bootcamp people have. They're usually new to computers and programming and are keenly aware they have a lot to learn. It's easier to teach them to deal with their faults than it is to teach the macho code nerds to deal with their faults. The former are merely ignorant; the latter are stubborn and convinced of their talents, however flabby they might be.
We would also not have to deal with all this "post-meritocracy" nonsense now which I am afraid will probably gain more traction in coming years.
I think the post-meritocracy nonsense is mostly a fringe social thing. If you work at a company that actually gets work done and stays in business, a meritocracy is in play at some point.

Really, any lack of meritocracy that existing companies have is due to much more entrenched things like shitty management. When it comes to actual programmers, there's not much room for post-meritocracy nonsense. Someone's got to do the work in the end.
 
Last edited:
  • Agree
Reactions: Cackspangler
Future versions of Microsoft Edge will be based on the Chromium browser. (Chromium is the open-source development branch of Chrome and presumably has slightly less spyware.)

Note that they're not just saying they're going to throw out the Trident rendering engine that IE has been using for two decades in favor of the Blink rendering engine that Chrome uses, though I presume they'll do that too; it's sounding like future versions of Edge will be little more than rebadged versions of Chromium.

On the one hand, I can understand why they're doing this; why spend the money maintaining your own rendering engine when Google is giving theirs away for free? On the other hand, I'm a bit sad because this brings the number of widely-used rendering engines down to two (or three, depending on how you count); Firefox's Gecko, and everything else's WebKit/Blink (Blink being Google's fork of WebKit). And we're already in a bad spot where Chrome/Blink has a near-hegemony and some lazy developers aren't making sure their sites are compatible with anything else. It's the bad old days of IE's world domination all over again, except even worse because Google spies on you way worse than MS ever did.

Twelve or fourteen years ago, when I'd be brought to the edge of tears trying to get a designer's design to work properly in IE 6, if you had told me that I'd one day be mourning the loss of Trident, I would have laughed in your face.

tl:dr; Especially after the Edge changeover, if you use Chrome as your primary browser, you're either an idiot or naive.

Really, any lack of meritocracy that existing companies have

Yes, I agree that
 
Oh, Shanley! A name I remember from GamerGate 1.0. The more things change…

The "Linux community" didn't do this, kid. Arguably, since a forum serving the Linux community was what was defaced, the Linux community was the victim here. This was one troll over in Transnistria or somewhere, and you, like you people do, are attributing their actions to an entire unrelated group, and victim-blaming in the process.
 
Back