SoylentNews History Log: Difference between revisions
First pass of trying the cleanup script. gotta do some manual cleanup still, but a good start. ~Sarah |
m fix categories |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:Preservation and Documentation]] | |||
[[Category:History]] | |||
[[Category:Discussion Logs]] | |||
<div style="line-height: calc(100% * 0.75);"> | <div style="line-height: calc(100% * 0.75);"> | ||
'''NCommander''' (''Today at 1:02 PM'') | '''NCommander''' (''Today at 1:02 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
@BlackCoffeeDrinker @Wiki Volunteer here, talking about how slashdot and soylentnews broke off, one of the major changes of the guard of the 90s | <nowiki>@BlackCoffeeDrinker @Wiki Volunteer here, talking about how slashdot and soylentnews broke off, one of the major changes of the guard of the 90s | ||
<br> | </nowiki><br> | ||
So, some context, Slashdot was formed in the very early 90s by CmdrTaco, and CowboyNeal, pretty much the first tech news of the early Internet | <nowiki>So, some context, Slashdot was formed in the very early 90s by CmdrTaco, and CowboyNeal, pretty much the first tech news of the early Internet | ||
<br> | </nowiki><br> | ||
This was in the days of the dotcom boom, and it got handed over probably a dozen times; it was an Internet landmark, like SourceForge, or Tucows was | <nowiki>This was in the days of the dotcom boom, and it got handed over probably a dozen times; it was an Internet landmark, like SourceForge, or Tucows was | ||
<br> | </nowiki><br> | ||
(RIP tucows) | <nowiki>(RIP tucows) | ||
<br> | </nowiki><br> | ||
(please ask questions, I'm recounting this all from memory, and some of this is a decade old) | <nowiki>(please ask questions, I'm recounting this all from memory, and some of this is a decade old) | ||
<br> | </nowiki><br> | ||
Eventually Slashdot got acquired by DICE Enterainment, after a very long period of changing hands | <nowiki>Eventually Slashdot got acquired by DICE Enterainment, after a very long period of changing hands | ||
<br> | </nowiki><br> | ||
Like all the original editors were gone | <nowiki>Like all the original editors were gone | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 22: | Line 25: | ||
'''BlackCoffeeDrinker''' (''Today at 1:05 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:05 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
slashdot's logo was /. because you know... | <nowiki>slashdot's logo was /. because you know... | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 30: | Line 33: | ||
'''NCommander''' (''Today at 1:05 PM'') | '''NCommander''' (''Today at 1:05 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
http:///..com | <nowiki>http:///..com | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 38: | Line 41: | ||
'''emotional support mom friend''' (''Today at 1:05 PM'') | '''emotional support mom friend''' (''Today at 1:05 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
That's not confusing at all lol | <nowiki>That's not confusing at all lol | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 46: | Line 49: | ||
'''NCommander''' (''Today at 1:05 PM'') | '''NCommander''' (''Today at 1:05 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
since browsers back in those days you needed to put http:// | <nowiki>since browsers back in those days you needed to put http:// | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 54: | Line 57: | ||
'''BlackCoffeeDrinker''' (''Today at 1:05 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:05 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I wanna say it was right-leaning? Hated microsoft and loved open-source | <nowiki>I wanna say it was right-leaning? Hated microsoft and loved open-source | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 62: | Line 65: | ||
'''NCommander''' (''Today at 1:06 PM'') | '''NCommander''' (''Today at 1:06 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Well, Gopher was still active, and you'd still frequently find news: and telnet: links | <nowiki>Well, Gopher was still active, and you'd still frequently find news: and telnet: links | ||
<br> | </nowiki><br> | ||
Like, I remember when those were on theopen net | <nowiki>Like, I remember when those were on theopen net | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 72: | Line 75: | ||
'''NCommander''' (''Today at 1:06 PM'') | '''NCommander''' (''Today at 1:06 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Much more liberarian than anything else | <nowiki>Much more liberarian than anything else | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 80: | Line 83: | ||
'''sirocyl''' (''Today at 1:06 PM'') | '''sirocyl''' (''Today at 1:06 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I remember when ftp:// was relatively common, too | <nowiki>I remember when ftp:// was relatively common, too | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 88: | Line 91: | ||
'''NCommander''' (''Today at 1:06 PM'') | '''NCommander''' (''Today at 1:06 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
you mean today? | <nowiki>you mean today? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 96: | Line 99: | ||
'''BlackCoffeeDrinker''' (''Today at 1:06 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:06 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Yes, news: was common | <nowiki>Yes, news: was common | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 104: | Line 107: | ||
'''emotional support mom friend''' (''Today at 1:06 PM'') | '''emotional support mom friend''' (''Today at 1:06 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
B zhzhmfskgdzdhkzhldzlhdslhds | <nowiki>B zhzhmfskgdzdhkzhldzlhdslhds | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 112: | Line 115: | ||
'''NCommander''' (''Today at 1:06 PM'') | '''NCommander''' (''Today at 1:06 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Anyway | <nowiki>Anyway | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 120: | Line 123: | ||
'''emotional support mom friend''' (''Today at 1:06 PM'') | '''emotional support mom friend''' (''Today at 1:06 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
More so than now? | <nowiki>More so than now? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 128: | Line 131: | ||
'''sirocyl''' (''Today at 1:06 PM'') | '''sirocyl''' (''Today at 1:06 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
my thoughts exactly | <nowiki>my thoughts exactly | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 136: | Line 139: | ||
'''emotional support mom friend''' (''Today at 1:07 PM'') | '''emotional support mom friend''' (''Today at 1:07 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Yranhfsksfumfsldgujzxgn | <nowiki>Yranhfsksfumfsldgujzxgn | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 144: | Line 147: | ||
'''NCommander''' (''Today at 1:07 PM'') | '''NCommander''' (''Today at 1:07 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
DICE had made a lot of unpopular changes, but the straw that broke the camels back was "Beta" | <nowiki>DICE had made a lot of unpopular changes, but the straw that broke the camels back was "Beta" | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 152: | Line 155: | ||
'''sirocyl''' (''Today at 1:07 PM'') | '''sirocyl''' (''Today at 1:07 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
oh no | <nowiki>oh no | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 160: | Line 163: | ||
'''BlackCoffeeDrinker''' (''Today at 1:07 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:07 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
at some point users revolted because they didn't like changes | <nowiki>at some point users revolted because they didn't like changes | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 168: | Line 171: | ||
'''CEO of Email, Inc.''' (''Today at 1:07 PM'') | '''CEO of Email, Inc.''' (''Today at 1:07 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Never goes well | <nowiki>Never goes well | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 176: | Line 179: | ||
'''NCommander''' (''Today at 1:07 PM'') | '''NCommander''' (''Today at 1:07 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Like it was this horrid whitespace meme; it turned a very information dense site into a wordpress block | <nowiki>Like it was this horrid whitespace meme; it turned a very information dense site into a wordpress block | ||
<br> | </nowiki><br> | ||
no, it was just bad | <nowiki>no, it was just bad | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 186: | Line 189: | ||
'''sirocyl''' (''Today at 1:07 PM'') | '''sirocyl''' (''Today at 1:07 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
it introduced gradients and rounded corners, too | <nowiki>it introduced gradients and rounded corners, too | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 194: | Line 197: | ||
'''NCommander''' (''Today at 1:08 PM'') | '''NCommander''' (''Today at 1:08 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
It was like if every page of the print New York Times was double spaced | <nowiki>It was like if every page of the print New York Times was double spaced | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 202: | Line 205: | ||
'''sirocyl''' (''Today at 1:08 PM'') | '''sirocyl''' (''Today at 1:08 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
it was awful | <nowiki>it was awful | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 210: | Line 213: | ||
'''CEO of Email, Inc.''' (''Today at 1:08 PM'') | '''CEO of Email, Inc.''' (''Today at 1:08 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Did it go back then? I noticed Soylentnews looks the same as Slashdot does now | <nowiki>Did it go back then? I noticed Soylentnews looks the same as Slashdot does now | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 218: | Line 221: | ||
'''BlackCoffeeDrinker''' (''Today at 1:08 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:08 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
yes, everything still loaded fine in netscape 3 before that | <nowiki>yes, everything still loaded fine in netscape 3 before that | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 226: | Line 229: | ||
'''NCommander''' (''Today at 1:08 PM'') | '''NCommander''' (''Today at 1:08 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Someone should look it up on Wayback | <nowiki>Someone should look it up on Wayback | ||
<br> | </nowiki><br> | ||
To think we need a screenshot of that | <nowiki>To think we need a screenshot of that | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 236: | Line 239: | ||
'''BlackCoffeeDrinker''' (''Today at 1:08 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:08 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
let me check | <nowiki>let me check | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 244: | Line 247: | ||
'''sirocyl''' (''Today at 1:08 PM'') | '''sirocyl''' (''Today at 1:08 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
damn archiveorg slow today | <nowiki>damn archiveorg slow today | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 252: | Line 255: | ||
'''NCommander''' (''Today at 1:09 PM'') | '''NCommander''' (''Today at 1:09 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Anyway, Slash (the underlying software) had been open source at one point, but had been left to die in a old CVS repo | <nowiki>Anyway, Slash (the underlying software) had been open source at one point, but had been left to die in a old CVS repo | ||
<br> | </nowiki><br> | ||
(might have been git? Either way, it was heading towards death) | <nowiki>(might have been git? Either way, it was heading towards death) | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 262: | Line 265: | ||
'''emotional support mom friend''' (''Today at 1:09 PM'') | '''emotional support mom friend''' (''Today at 1:09 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I'm picturing the pharmacy here which makes it funnier | <nowiki>I'm picturing the pharmacy here which makes it funnier | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 270: | Line 273: | ||
'''sirocyl''' (''Today at 1:09 PM'') | '''sirocyl''' (''Today at 1:09 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
... wasn't git, I'm sure. was it? | <nowiki>... wasn't git, I'm sure. was it? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 278: | Line 281: | ||
'''BlackCoffeeDrinker''' (''Today at 1:09 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:09 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
CVS i think | <nowiki>CVS i think | ||
<br> | </nowiki><br> | ||
or SVN | <nowiki>or SVN | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 288: | Line 291: | ||
'''CEO of Email, Inc.''' (''Today at 1:09 PM'') | '''CEO of Email, Inc.''' (''Today at 1:09 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Oh, so it got abandoned before you picked it up, then? | <nowiki>Oh, so it got abandoned before you picked it up, then? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 296: | Line 299: | ||
'''sirocyl''' (''Today at 1:09 PM'') | '''sirocyl''' (''Today at 1:09 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
mercurial maybe? | <nowiki>mercurial maybe? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 304: | Line 307: | ||
'''CEO of Email, Inc.''' (''Today at 1:09 PM'') | '''CEO of Email, Inc.''' (''Today at 1:09 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
The software I mean | <nowiki>The software I mean | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 312: | Line 315: | ||
'''NCommander''' (''Today at 1:09 PM'') | '''NCommander''' (''Today at 1:09 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
DICE was still using it, there are some trademark tells like the X-Fry/X-Bender headers | <nowiki>DICE was still using it, there are some trademark tells like the X-Fry/X-Bender headers | ||
<br> | </nowiki><br> | ||
brb | <nowiki>brb | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 322: | Line 325: | ||
'''NCommander''' (''Today at 1:10 PM'') | '''NCommander''' (''Today at 1:10 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
back | <nowiki>back | ||
<br> | </nowiki><br> | ||
Regardless or not, enough was enough, so a bunch of us basically got together in IRC on Freenode | <nowiki>Regardless or not, enough was enough, so a bunch of us basically got together in IRC on Freenode | ||
<br> | </nowiki><br> | ||
The channel was #alphaslash or something like that | <nowiki>The channel was #alphaslash or something like that | ||
<br> | </nowiki><br> | ||
The idea was to create a replacement. A few others had launched, like pipedot.org, which was basically a reimaginating with a new PHP codebase, and technocrat relaunched briefly | <nowiki>The idea was to create a replacement. A few others had launched, like pipedot.org, which was basically a reimaginating with a new PHP codebase, and technocrat relaunched briefly | ||
<br> | </nowiki><br> | ||
I think there was some efforts to see if kurosh5n could be risen from the dead | <nowiki>I think there was some efforts to see if kurosh5n could be risen from the dead | ||
<br> | </nowiki><br> | ||
There were folks who remembered that Slash had been open source at once point, and the original archives were still up (it might still be there https://slashcode.com/) | <nowiki>There were folks who remembered that Slash had been open source at once point, and the original archives were still up (it might still be there https://slashcode.com/) | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 340: | Line 343: | ||
'''CEO of Email, Inc.''' (''Today at 1:13 PM'') | '''CEO of Email, Inc.''' (''Today at 1:13 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Just redirects to sourceforge 😔 | <nowiki>Just redirects to sourceforge 😔 | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 348: | Line 351: | ||
'''emotional support mom friend''' (''Today at 1:13 PM'') | '''emotional support mom friend''' (''Today at 1:13 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
:/ | <nowiki>:/ | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 356: | Line 359: | ||
'''NCommander''' (''Today at 1:13 PM'') | '''NCommander''' (''Today at 1:13 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
and oh boy, Slash is a crankly SoB | <nowiki>and oh boy, Slash is a crankly SoB | ||
<br> | </nowiki><br> | ||
This was the Perl CMS | <nowiki>This was the Perl CMS | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 366: | Line 369: | ||
'''CEO of Email, Inc.''' (''Today at 1:13 PM'') | '''CEO of Email, Inc.''' (''Today at 1:13 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Perl I'm guessing? | <nowiki>Perl I'm guessing? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 374: | Line 377: | ||
'''NCommander''' (''Today at 1:13 PM'') | '''NCommander''' (''Today at 1:13 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
the original | <nowiki>the original | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 382: | Line 385: | ||
'''CEO of Email, Inc.''' (''Today at 1:13 PM'') | '''CEO of Email, Inc.''' (''Today at 1:13 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Yepp | <nowiki>Yepp | ||
<br> | </nowiki><br> | ||
Called it | <nowiki>Called it | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 392: | Line 395: | ||
'''NCommander''' (''Today at 1:13 PM'') | '''NCommander''' (''Today at 1:13 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
it required a Makefile.PL and has a CPAN bundle | <nowiki>it required a Makefile.PL and has a CPAN bundle | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 400: | Line 403: | ||
'''CEO of Email, Inc.''' (''Today at 1:13 PM'') | '''CEO of Email, Inc.''' (''Today at 1:13 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
🥖 | <nowiki>🥖 | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 408: | Line 411: | ||
'''NCommander''' (''Today at 1:14 PM'') | '''NCommander''' (''Today at 1:14 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
and was written in an era when CPAN expected to be installed as system libraries | <nowiki>and was written in an era when CPAN expected to be installed as system libraries | ||
<br> | </nowiki><br> | ||
But the worst part? | <nowiki>But the worst part? | ||
<br> | </nowiki><br> | ||
It used parts of mod_perl that aren't $r | <nowiki>It used parts of mod_perl that aren't $r | ||
<br> | </nowiki><br> | ||
oh god did it use parts. It basically kept a scorecard in Apache's shared memory space | <nowiki>oh god did it use parts. It basically kept a scorecard in Apache's shared memory space | ||
<br> | </nowiki><br> | ||
to do synchrozation across tasks | <nowiki>to do synchrozation across tasks | ||
<br> | </nowiki><br> | ||
it has a cron replacement written in Perl | <nowiki>it has a cron replacement written in Perl | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 426: | Line 429: | ||
'''BlackCoffeeDrinker''' (''Today at 1:15 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:15 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Someone that's good in perl wrote this | <nowiki>Someone that's good in perl wrote this | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 434: | Line 437: | ||
'''CEO of Fish Inc.''' (''Today at 1:15 PM'') | '''CEO of Fish Inc.''' (''Today at 1:15 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Horrifying | <nowiki>Horrifying | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 442: | Line 445: | ||
'''NCommander''' (''Today at 1:15 PM'') | '''NCommander''' (''Today at 1:15 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
and I mean daemon | <nowiki>and I mean daemon | ||
<br> | </nowiki><br> | ||
Well, how it worked was insane | <nowiki>Well, how it worked was insane | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 452: | Line 455: | ||
'''CEO of Email, Inc.''' (''Today at 1:15 PM'') | '''CEO of Email, Inc.''' (''Today at 1:15 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
But why | <nowiki>But why | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 460: | Line 463: | ||
'''NCommander''' (''Today at 1:15 PM'') | '''NCommander''' (''Today at 1:15 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
because it generated static pages for everything | <nowiki>because it generated static pages for everything | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 468: | Line 471: | ||
'''CEO of Email, Inc.''' (''Today at 1:15 PM'') | '''CEO of Email, Inc.''' (''Today at 1:15 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Huh, I guess that was probably wise when it came out | <nowiki>Huh, I guess that was probably wise when it came out | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 476: | Line 479: | ||
'''NCommander''' (''Today at 1:16 PM'') | '''NCommander''' (''Today at 1:16 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
You basically had the #1 site on the early Internet, by being run by hobbyest with 1993 tech | <nowiki>You basically had the #1 site on the early Internet, by being run by hobbyest with 1993 tech | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 484: | Line 487: | ||
'''CEO of Email, Inc.''' (''Today at 1:16 PM'') | '''CEO of Email, Inc.''' (''Today at 1:16 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Sounds like quite the feat honestly | <nowiki>Sounds like quite the feat honestly | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 492: | Line 495: | ||
'''emotional support mom friend''' (''Today at 1:16 PM'') | '''emotional support mom friend''' (''Today at 1:16 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
honestlu | <nowiki>honestlu | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 500: | Line 503: | ||
'''NCommander''' (''Today at 1:16 PM'') | '''NCommander''' (''Today at 1:16 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Like, I can't think of anything than Slashdot. It used to be whenever a server landed on Slashdot - BOOM | <nowiki>Like, I can't think of anything than Slashdot. It used to be whenever a server landed on Slashdot - BOOM | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 508: | Line 511: | ||
'''BlackCoffeeDrinker''' (''Today at 1:16 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:16 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Slashdot currently has 16 web servers all of which are running Red Hat 9. Two serve static content: javascript, images, and the front page for non logged-in users. Four serve the front page to logged in users. And the remaining ten handle comment pages. All web servers are Rackable 1U servers with 2 Xeon 2.66Ghz processors, 2GB of RAM, and 2x80GB IDE hard drives. The web servers all NFS mount the NFS server, which is a Rackable 2U with 2 Xeon 2.4Ghz processors, 2GB of RAM, and 4x36GB 15K RPM SCSI drives. | <nowiki>Slashdot currently has 16 web servers all of which are running Red Hat 9. Two serve static content: javascript, images, and the front page for non logged-in users. Four serve the front page to logged in users. And the remaining ten handle comment pages. All web servers are Rackable 1U servers with 2 Xeon 2.66Ghz processors, 2GB of RAM, and 2x80GB IDE hard drives. The web servers all NFS mount the NFS server, which is a Rackable 2U with 2 Xeon 2.4Ghz processors, 2GB of RAM, and 4x36GB 15K RPM SCSI drives. | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 516: | Line 519: | ||
'''NCommander''' (''Today at 1:17 PM'') | '''NCommander''' (''Today at 1:17 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Yeah | <nowiki>Yeah | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 524: | Line 527: | ||
'''CEO of Email, Inc.''' (''Today at 1:17 PM'') | '''CEO of Email, Inc.''' (''Today at 1:17 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Well, that's where the "Slashdot effect" comes from | <nowiki>Well, that's where the "Slashdot effect" comes from | ||
<br> | </nowiki><br> | ||
Which became the Reddit hug of death | <nowiki>Which became the Reddit hug of death | ||
<br> | </nowiki><br> | ||
Idk what the equivalent is now with widespread cdn use etc | <nowiki>Idk what the equivalent is now with widespread cdn use etc | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 536: | Line 539: | ||
'''NCommander''' (''Today at 1:17 PM'') | '''NCommander''' (''Today at 1:17 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
this was a codebase as written by the early wizards | <nowiki>this was a codebase as written by the early wizards | ||
<br> | </nowiki><br> | ||
not for elegance, but for pure functionality | <nowiki>not for elegance, but for pure functionality | ||
<br> | </nowiki><br> | ||
Like, the only webapp that I can think is more hardcore is the original SF2.5 source code | <nowiki>Like, the only webapp that I can think is more hardcore is the original SF2.5 source code | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 548: | Line 551: | ||
'''BlackCoffeeDrinker''' (''Today at 1:18 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:18 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Besides the 16 web servers, we have 7 databases. They currently are all running CentOS 4. They breakdown as follows: 2 Dual Opteron 270's with 16GB RAM, 4x36GB 15K RPM SCSI Drives These are doing multiple-master replication, with one acting as Slashdot's single write-only DB, and the other acting as a reader. | <nowiki>Besides the 16 web servers, we have 7 databases. They currently are all running CentOS 4. They breakdown as follows: 2 Dual Opteron 270's with 16GB RAM, 4x36GB 15K RPM SCSI Drives These are doing multiple-master replication, with one acting as Slashdot's single write-only DB, and the other acting as a reader. | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 556: | Line 559: | ||
'''emotional support mom friend''' (''Today at 1:18 PM'') | '''emotional support mom friend''' (''Today at 1:18 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Wow | <nowiki>Wow | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 564: | Line 567: | ||
'''CEO of Email, Inc.''' (''Today at 1:18 PM'') | '''CEO of Email, Inc.''' (''Today at 1:18 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
It's funny that they ended up in the same hands | <nowiki>It's funny that they ended up in the same hands | ||
<br> | </nowiki><br> | ||
(assuming you mean sourceforge?) | <nowiki>(assuming you mean sourceforge?) | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 574: | Line 577: | ||
'''NCommander''' (''Today at 1:18 PM'') | '''NCommander''' (''Today at 1:18 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
We didn't have social media like that back then, it was basically articles, and AIM | <nowiki>We didn't have social media like that back then, it was basically articles, and AIM | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 582: | Line 585: | ||
'''NCommander''' (''Today at 1:18 PM'') | '''NCommander''' (''Today at 1:18 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Yeah | <nowiki>Yeah | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 590: | Line 593: | ||
'''BlackCoffeeDrinker''' (''Today at 1:19 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:19 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
2 Dual Opteron 270's with 8GB RAM, 4x36GB 15K RPM SCSI Drives These are Slashdot's reader DBs. Each derives data from a specific master database (listed above). | <nowiki>2 Dual Opteron 270's with 8GB RAM, 4x36GB 15K RPM SCSI Drives These are Slashdot's reader DBs. Each derives data from a specific master database (listed above). | ||
<br> | </nowiki><br> | ||
Lastly, we have 3 Quad P3 Xeon 700Mhz with 4GB RAM, 8x36GB 10K RPM SCSI Drives which are sort of our miscellaneous 'other' boxes. They are used to host our accesslog writer, an accesslog reader, and Slashdot's search database. | <nowiki>Lastly, we have 3 Quad P3 Xeon 700Mhz with 4GB RAM, 8x36GB 10K RPM SCSI Drives which are sort of our miscellaneous 'other' boxes. They are used to host our accesslog writer, an accesslog reader, and Slashdot's search database. | ||
<br> | </nowiki><br> | ||
16 + 7 + 2 + 3 | <nowiki>16 + 7 + 2 + 3 | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 602: | Line 605: | ||
'''NCommander''' (''Today at 1:19 PM'') | '''NCommander''' (''Today at 1:19 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Remind me to document just how I ended up in Savannah documentation | <nowiki>Remind me to document just how I ended up in Savannah documentation | ||
<br> | </nowiki><br> | ||
But, let's get back to it | <nowiki>But, let's get back to it | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 612: | Line 615: | ||
'''BlackCoffeeDrinker''' (''Today at 1:20 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:20 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Perl that had to manage running on 28 servers | <nowiki>Perl that had to manage running on 28 servers | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 620: | Line 623: | ||
'''NCommander''' (''Today at 1:20 PM'') | '''NCommander''' (''Today at 1:20 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
There had been a few efforts to try and get the original code running. It was "decently documented" for what was an internal codebase | <nowiki>There had been a few efforts to try and get the original code running. It was "decently documented" for what was an internal codebase | ||
<br> | </nowiki><br> | ||
But it was tied to Apache 1.3, it needed a very specific configuration of mod_perl, and more | <nowiki>But it was tied to Apache 1.3, it needed a very specific configuration of mod_perl, and more | ||
<br> | </nowiki><br> | ||
And this was 2014(ish?), Apache 1.3 was dead and buried at that point | <nowiki>And this was 2014(ish?), Apache 1.3 was dead and buried at that point | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 632: | Line 635: | ||
'''CEO of Email, Inc.''' (''Today at 1:21 PM'') | '''CEO of Email, Inc.''' (''Today at 1:21 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Were the undocumented parts things your people had to figure out themselves? Or were the original slash people still reachable somehow | <nowiki>Were the undocumented parts things your people had to figure out themselves? Or were the original slash people still reachable somehow | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 640: | Line 643: | ||
'''NCommander''' (''Today at 1:21 PM'') | '''NCommander''' (''Today at 1:21 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
We had no help from the original founders | <nowiki>We had no help from the original founders | ||
<br> | </nowiki><br> | ||
Anyway, I decided to take on the challenge | <nowiki>Anyway, I decided to take on the challenge | ||
<br> | </nowiki><br> | ||
Back in middle school, I loved Slashdot, I even tried to run it ontop of Mac OS, going as far as learning how to compile Perl, and Apache, etc. | <nowiki>Back in middle school, I loved Slashdot, I even tried to run it ontop of Mac OS, going as far as learning how to compile Perl, and Apache, etc. | ||
<br> | </nowiki><br> | ||
I never actually got it running, cause of CPAN problems, but I knew pretty much what it was going to take | <nowiki>I never actually got it running, cause of CPAN problems, but I knew pretty much what it was going to take | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 654: | Line 657: | ||
'''CEO of Email, Inc.''' (''Today at 1:23 PM'') | '''CEO of Email, Inc.''' (''Today at 1:23 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Heh, your slash adventures started early, then | <nowiki>Heh, your slash adventures started early, then | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 662: | Line 665: | ||
'''NCommander''' (''Today at 1:23 PM'') | '''NCommander''' (''Today at 1:23 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I ran Linux on my macs before we got Mac OS X | <nowiki>I ran Linux on my macs before we got Mac OS X | ||
<br> | </nowiki><br> | ||
I was in middle school? It was the greatest thing to do | <nowiki>I was in middle school? It was the greatest thing to do | ||
<br> | </nowiki><br> | ||
I love understanding systems | <nowiki>I love understanding systems | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 674: | Line 677: | ||
'''CEO of Email, Inc.''' (''Today at 1:23 PM'') | '''CEO of Email, Inc.''' (''Today at 1:23 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I hear you there, it's fun and satisfying to understand | <nowiki>I hear you there, it's fun and satisfying to understand | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 682: | Line 685: | ||
'''NCommander''' (''Today at 1:23 PM'') | '''NCommander''' (''Today at 1:23 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Like, push comes to shove? I could probably do a LFS type system without the book | <nowiki>Like, push comes to shove? I could probably do a LFS type system without the book | ||
<br> | </nowiki><br> | ||
Anyway, getting off topic | <nowiki>Anyway, getting off topic | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 692: | Line 695: | ||
'''CEO of Fish Inc.''' (''Today at 1:24 PM'') | '''CEO of Fish Inc.''' (''Today at 1:24 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
This idea of using Perl to manage a website sounds horrifyingly similar to this ticketing application I helped support at work for a little bit | <nowiki>This idea of using Perl to manage a website sounds horrifyingly similar to this ticketing application I helped support at work for a little bit | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 700: | Line 703: | ||
'''NCommander''' (''Today at 1:24 PM'') | '''NCommander''' (''Today at 1:24 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I bought a linode instance, install MySQL | <nowiki>I bought a linode instance, install MySQL | ||
<br> | </nowiki><br> | ||
and started to climb that cliff | <nowiki>and started to climb that cliff | ||
<br> | </nowiki><br> | ||
I compiled a freestanding version of Perl | <nowiki>I compiled a freestanding version of Perl | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 712: | Line 715: | ||
'''BlackCoffeeDrinker''' (''Today at 1:24 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:24 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I know what you're talking about 😛 | <nowiki>I know what you're talking about 😛 | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 720: | Line 723: | ||
'''NCommander''' (''Today at 1:24 PM'') | '''NCommander''' (''Today at 1:24 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
(because only Python is worse about virtual environments) | <nowiki>(because only Python is worse about virtual environments) | ||
<br> | </nowiki><br> | ||
Has to be a threading one | <nowiki>Has to be a threading one | ||
<br> | </nowiki><br> | ||
I compiled Apache 1.3, with some patching, mod_perl 1.3, and then began the grind of fixing the CPAN bundle | <nowiki>I compiled Apache 1.3, with some patching, mod_perl 1.3, and then began the grind of fixing the CPAN bundle | ||
<br> | </nowiki><br> | ||
A lot of CPAN was already dying to atrophy by that time | <nowiki>A lot of CPAN was already dying to atrophy by that time | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 734: | Line 737: | ||
'''CEO of Fish Inc.''' (''Today at 1:25 PM'') | '''CEO of Fish Inc.''' (''Today at 1:25 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
So glad to know I’m not alone https://github.com/bestpractical/rt | <nowiki>So glad to know I’m not alone https://github.com/bestpractical/rt | ||
< | </nowiki> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 750: | Line 745: | ||
'''NCommander''' (''Today at 1:25 PM'') | '''NCommander''' (''Today at 1:25 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
bugzilla is another old guard one | <nowiki>bugzilla is another old guard one | ||
<br> | </nowiki><br> | ||
... mod_perl too, oof | <nowiki>... mod_perl too, oof | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 760: | Line 755: | ||
'''BlackCoffeeDrinker''' (''Today at 1:26 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:26 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
first job was rt + bugzilla + cvs | <nowiki>first job was rt + bugzilla + cvs | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 768: | Line 763: | ||
'''NCommander''' (''Today at 1:26 PM'') | '''NCommander''' (''Today at 1:26 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Although not as bad as Slash | <nowiki>Although not as bad as Slash | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 776: | Line 771: | ||
'''CEO of Email, Inc.''' (''Today at 1:26 PM'') | '''CEO of Email, Inc.''' (''Today at 1:26 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Wait, is Soylent still apache 1.x? | <nowiki>Wait, is Soylent still apache 1.x? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 784: | Line 779: | ||
'''NCommander''' (''Today at 1:26 PM'') | '''NCommander''' (''Today at 1:26 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
no | <nowiki>no | ||
<br> | </nowiki><br> | ||
that was the itch I couldn't let stand | <nowiki>that was the itch I couldn't let stand | ||
<br> | </nowiki><br> | ||
Like | <nowiki>Like | ||
<br> | </nowiki><br> | ||
I said at the bginning "we're going to do that" | <nowiki>I said at the bginning "we're going to do that" | ||
<br> | </nowiki><br> | ||
and that was the last major thing I did in that code base | <nowiki>and that was the last major thing I did in that code base | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 800: | Line 795: | ||
'''CEO of Email, Inc.''' (''Today at 1:27 PM'') | '''CEO of Email, Inc.''' (''Today at 1:27 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Well, 2014. 1.3 would have been fucking ancient | <nowiki>Well, 2014. 1.3 would have been fucking ancient | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 808: | Line 803: | ||
'''NCommander''' (''Today at 1:27 PM'') | '''NCommander''' (''Today at 1:27 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Yeah, I'll get back to that | <nowiki>Yeah, I'll get back to that | ||
<br> | </nowiki><br> | ||
By and large, we decided the risk was "acceptable" since we ended up putting the web frontends behind an nginx SSL terminator | <nowiki>By and large, we decided the risk was "acceptable" since we ended up putting the web frontends behind an nginx SSL terminator | ||
<br> | </nowiki><br> | ||
oh god, I forgot about that | <nowiki>oh god, I forgot about that | ||
<br> | </nowiki><br> | ||
Slashdot used to make SSL a paid feature | <nowiki>Slashdot used to make SSL a paid feature | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 822: | Line 817: | ||
'''BlackCoffeeDrinker''' (''Today at 1:27 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:27 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
yes! | <nowiki>yes! | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 830: | Line 825: | ||
'''NCommander''' (''Today at 1:28 PM'') | '''NCommander''' (''Today at 1:28 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
We wanted to go HTTPS by default, the whole thing was a fucking passion project; it was going to be perfect | <nowiki>We wanted to go HTTPS by default, the whole thing was a fucking passion project; it was going to be perfect | ||
<br> | </nowiki><br> | ||
Let me find the articles | <nowiki>Let me find the articles | ||
<br> | </nowiki><br> | ||
Like | <nowiki>Like | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 842: | Line 837: | ||
'''BlackCoffeeDrinker''' (''Today at 1:28 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:28 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
(before you say WHY... https used to be slow back then) | <nowiki>(before you say WHY... https used to be slow back then) | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 850: | Line 845: | ||
'''NCommander''' (''Today at 1:29 PM'') | '''NCommander''' (''Today at 1:29 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I wrote about this | <nowiki>I wrote about this | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 858: | Line 853: | ||
'''BlackCoffeeDrinker''' (''Today at 1:29 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:29 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
(but also, /. didn't need https) | <nowiki>(but also, /. didn't need https) | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 866: | Line 861: | ||
'''NCommander''' (''Today at 1:29 PM'') | '''NCommander''' (''Today at 1:29 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
It was considered to be high cost for CPU | <nowiki>It was considered to be high cost for CPU | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 874: | Line 869: | ||
'''BlackCoffeeDrinker''' (''Today at 1:29 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:29 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I remember we used to host the minimum amount over HTTPS | <nowiki>I remember we used to host the minimum amount over HTTPS | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 882: | Line 877: | ||
'''CEO of Email, Inc.''' (''Today at 1:29 PM'') | '''CEO of Email, Inc.''' (''Today at 1:29 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Understandable in a way, encryption is expensive | <nowiki>Understandable in a way, encryption is expensive | ||
<br> | </nowiki><br> | ||
This was before knowledge of the NSA dragnets were public, and also, SSL was seen as relatively pointless by and large; you could still get away with a self signed certificate on the public web | <nowiki>This was before knowledge of the NSA dragnets were public, and also, SSL was seen as relatively pointless by and large; you could still get away with a self signed certificate on the public web | ||
<br> | </nowiki><br> | ||
It was really the bandwidth more than anything | <nowiki>It was really the bandwidth more than anything | ||
<br> | </nowiki><br> | ||
Let me find these articles | <nowiki>Let me find these articles | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 896: | Line 891: | ||
'''NCommander''' (''Today at 1:31 PM'') | '''NCommander''' (''Today at 1:31 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
https://soylentnews.org/search.pl?op=stories&author=2 | <nowiki>https://soylentnews.org/search.pl?op=stories&author=2 | ||
<br> | </nowiki><br> | ||
Everything I wrote on SN | <nowiki>Everything I wrote on SN | ||
<br> | </nowiki><br> | ||
Oh fucking hell I forgot about a lot of this | <nowiki>Oh fucking hell I forgot about a lot of this | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 908: | Line 903: | ||
'''NCommander''' (''Today at 1:31 PM'') | '''NCommander''' (''Today at 1:31 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
https://soylentnews.org/article.pl?sid=14/02/16/2220240 - so it was a major meme on Slashdot how the antique the thing was | <nowiki>https://soylentnews.org/article.pl?sid=14/02/16/2220240 - so it was a major meme on Slashdot how the antique the thing was | ||
< | </nowiki><br> | ||
<nowiki>Like, we were going to one up old Slashdot so hard | |||
<br> | </nowiki><br> | ||
< | |||
Like, we were going to one up old Slashdot so hard | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 922: | Line 913: | ||
'''BlackCoffeeDrinker''' (''Today at 1:32 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:32 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
https://cdn.discordapp.com/attachments/1014650516854296697/1039970670257377290/image.png | <nowiki>https://cdn.discordapp.com/attachments/1014650516854296697/1039970670257377290/image.png | ||
<br> | </nowiki><br> | ||
lol | <nowiki>lol | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 932: | Line 923: | ||
'''NCommander''' (''Today at 1:32 PM'') | '''NCommander''' (''Today at 1:32 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
That was actually a Mission Accomplished moment | <nowiki>That was actually a Mission Accomplished moment | ||
<br> | </nowiki><br> | ||
Cause well | <nowiki>Cause well | ||
<br> | </nowiki><br> | ||
... UTF-8 has a lot of edge cases | <nowiki>... UTF-8 has a lot of edge cases | ||
<br> | </nowiki><br> | ||
When you need to protect against spam | <nowiki>When you need to protect against spam | ||
<br> | </nowiki><br> | ||
I think we stlil filtered right to left /left to right markers | <nowiki>I think we stlil filtered right to left /left to right markers | ||
<br> | </nowiki><br> | ||
But I remember my personal driving energy was very much "/. didn't have it, we're doing IPv6" | <nowiki>But I remember my personal driving energy was very much "/. didn't have it, we're doing IPv6" | ||
<br> | </nowiki><br> | ||
@N's Life | <nowiki>@N's Life | ||
<br> | </nowiki><br> | ||
(talking about how Internet history happened) | <nowiki>(talking about how Internet history happened) | ||
<br> | </nowiki><br> | ||
Anyway, the "lead" of the project was someone with the handle of Barbassas? | <nowiki>Anyway, the "lead" of the project was someone with the handle of Barbassas? | ||
<br> | </nowiki><br> | ||
Fucking weird guy, like, he would quote machovili, and absolute control freak | <nowiki>Fucking weird guy, like, he would quote machovili, and absolute control freak | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 958: | Line 949: | ||
'''emotional support mom friend''' (''Today at 1:34 PM'') | '''emotional support mom friend''' (''Today at 1:34 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Ew | <nowiki>Ew | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 966: | Line 957: | ||
'''NCommander''' (''Today at 1:35 PM'') | '''NCommander''' (''Today at 1:35 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Basically threatened to tank the project through mismanagement | <nowiki>Basically threatened to tank the project through mismanagement | ||
<br> | </nowiki><br> | ||
I forced him out | <nowiki>I forced him out | ||
<br> | </nowiki><br> | ||
I felt like a fucking ass, but I did most of the tech work, I had gotten the site running in the cloud | <nowiki>I felt like a fucking ass, but I did most of the tech work, I had gotten the site running in the cloud | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 978: | Line 969: | ||
'''NCommander''' (''Today at 1:35 PM'') | '''NCommander''' (''Today at 1:35 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
We didn't have a name for it then, itwas litterly li69-342 | <nowiki>We didn't have a name for it then, itwas litterly li69-342 | ||
<br> | </nowiki><br> | ||
or something like that | <nowiki>or something like that | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/article.pl?sid=14/04/09/1925245 - oh god, the Slashdot port scanner | <nowiki>https://soylentnews.org/article.pl?sid=14/04/09/1925245 - oh god, the Slashdot port scanner | ||
< | </nowiki><br> | ||
<nowiki>SN had code in the web frontend that it would actually portscan connecting hosts for adding to an internal block list | |||
<br> | </nowiki><br> | ||
< | |||
SN had code in the web frontend that it would actually portscan connecting hosts for adding to an internal block list | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 996: | Line 983: | ||
'''emotional support mom friend''' (''Today at 1:36 PM'') | '''emotional support mom friend''' (''Today at 1:36 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I'm sorry, the what —why | <nowiki>I'm sorry, the what —why | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,004: | Line 991: | ||
'''NCommander''' (''Today at 1:36 PM'') | '''NCommander''' (''Today at 1:36 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
and yes, I did take advantage of the Unicode | <nowiki>and yes, I did take advantage of the Unicode | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,012: | Line 999: | ||
'''emotional support mom friend''' (''Today at 1:36 PM'') | '''emotional support mom friend''' (''Today at 1:36 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Of course you did | <nowiki>Of course you did | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,020: | Line 1,007: | ||
'''NCommander''' (''Today at 1:36 PM'') | '''NCommander''' (''Today at 1:36 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
CmdrTaco actually commented on it, it was an anti-spam measure | <nowiki>CmdrTaco actually commented on it, it was an anti-spam measure | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,028: | Line 1,015: | ||
'''emotional support mom friend''' (''Today at 1:37 PM'') | '''emotional support mom friend''' (''Today at 1:37 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Ah | <nowiki>Ah | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,036: | Line 1,023: | ||
'''NCommander''' (''Today at 1:37 PM'') | '''NCommander''' (''Today at 1:37 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
It made the top of hackernews | <nowiki>It made the top of hackernews | ||
<br> | </nowiki><br> | ||
... like the first time I was on hackernews ... | <nowiki>... like the first time I was on hackernews ... | ||
<br> | </nowiki><br> | ||
... I didn't even register the signifance of that at the time | <nowiki>... I didn't even register the signifance of that at the time | ||
<br> | </nowiki><br> | ||
but this was a codebase | <nowiki>but this was a codebase | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/article.pl?sid=14/03/06/0728230 - I actually wrote up about John's departure | <nowiki>https://soylentnews.org/article.pl?sid=14/03/06/0728230 - I actually wrote up about John's departure | ||
< | </nowiki><br> | ||
<nowiki>Like we were all on IRC at the time | |||
<br> | </nowiki><br> | ||
<nowiki>John had us set up our own IRCd; I would have perferred to stay on Freenode | |||
< | </nowiki><br> | ||
Like we were all on IRC at the time | <nowiki>Slack was a thing at that point, but electron apps were really crummy then | ||
<br> | </nowiki><br> | ||
John had us set up our own IRCd; I would have perferred to stay on Freenode | |||
<br> | |||
Slack was a thing at that point, but electron apps were really crummy then | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 1,062: | Line 1,045: | ||
'''emotional support mom friend''' (''Today at 1:38 PM'') | '''emotional support mom friend''' (''Today at 1:38 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
And it thought that was a download | <nowiki>And it thought that was a download | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,070: | Line 1,053: | ||
'''NCommander''' (''Today at 1:39 PM'') | '''NCommander''' (''Today at 1:39 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Look, some of us predate pretty URLs | <nowiki>Look, some of us predate pretty URLs | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,078: | Line 1,061: | ||
'''emotional support mom friend''' (''Today at 1:39 PM'') | '''emotional support mom friend''' (''Today at 1:39 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Gbargbsfhngdjgcn. | <nowiki>Gbargbsfhngdjgcn. | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,086: | Line 1,069: | ||
'''NCommander''' (''Today at 1:39 PM'') | '''NCommander''' (''Today at 1:39 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I still feel kinda bad about it, but basically, the site hadn't an actual name at that point | <nowiki>I still feel kinda bad about it, but basically, the site hadn't an actual name at that point | ||
<br> | </nowiki><br> | ||
We had promised to do a naming contest, there was no leadership | <nowiki>We had promised to do a naming contest, there was no leadership | ||
<br> | </nowiki><br> | ||
I was paying for it literially out of pocket on Linode | <nowiki>I was paying for it literially out of pocket on Linode | ||
<br> | </nowiki><br> | ||
On my personal account | <nowiki>On my personal account | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,100: | Line 1,083: | ||
'''BlackCoffeeDrinker''' (''Today at 1:40 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:40 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
$$$ much | <nowiki>$$$ much | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,108: | Line 1,091: | ||
'''NCommander''' (''Today at 1:40 PM'') | '''NCommander''' (''Today at 1:40 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I was still at Canonical at the time I think, but I was right at the end | <nowiki>I was still at Canonical at the time I think, but I was right at the end | ||
<br> | </nowiki><br> | ||
Yeah, it was pricy | <nowiki>Yeah, it was pricy | ||
<br> | </nowiki><br> | ||
John had actually blackmailed us | <nowiki>John had actually blackmailed us | ||
<br> | </nowiki><br> | ||
And sold the soylentnews.org domain without giving it to staff | <nowiki>And sold the soylentnews.org domain without giving it to staff | ||
<br> | </nowiki><br> | ||
Matt Angel bought it for 3k | <nowiki>Matt Angel bought it for 3k | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/article.pl?sid=14/03/10/1129232/ | <nowiki>https://soylentnews.org/article.pl?sid=14/03/10/1129232/ | ||
<br> | </nowiki><br> | ||
Right, we forced him out, and then he sold the domain | <nowiki>Right, we forced him out, and then he sold the domain | ||
<br> | </nowiki><br> | ||
Well, I | <nowiki>Well, I | ||
<br> | </nowiki><br> | ||
fucking hell this is a story | <nowiki>fucking hell this is a story | ||
<br> | </nowiki><br> | ||
Anyway, Matt basically was our venture captilist, and I was the CTO | <nowiki>Anyway, Matt basically was our venture captilist, and I was the CTO | ||
<br> | </nowiki><br> | ||
And I basically said "we're going to incorporate this, and we're going to do it right" | <nowiki>And I basically said "we're going to incorporate this, and we're going to do it right" | ||
<br> | </nowiki><br> | ||
and we did | <nowiki>and we did | ||
<br> | </nowiki><br> | ||
Fitting, that we got our incorporation papers back on July 4th | <nowiki>Fitting, that we got our incorporation papers back on July 4th | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/article.pl?sid=14/07/04/2326238 | <nowiki>https://soylentnews.org/article.pl?sid=14/07/04/2326238 | ||
< | </nowiki><br> | ||
<nowiki>Like, it's surprisingly hard to know how to make a corporation that has no physical assets | |||
<br> | </nowiki><br> | ||
<nowiki>Like, its the definition of a .com company | |||
< | </nowiki><br> | ||
Like, it's surprisingly hard to know how to make a corporation that has no physical assets | <nowiki>https://soylentnews.org/article.pl?sid=14/07/16/0253256 - rereading this is a trip | ||
<br> | </nowiki><br> | ||
Like, its the definition of a .com company | <nowiki>Past N did a good job | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/article.pl?sid=14/07/16/0253256 - rereading this is a trip | <nowiki>... wow, I just proved that comments really do help the next person in the future | ||
< | </nowiki><br> | ||
<nowiki>which uh ... was me ... | |||
<br> | </nowiki><br> | ||
<nowiki>I think someone tallied it up? I had written like 100k words in the first two years. It was an absolute meme that the editors would fear whenever NCommander opened the editing console | |||
< | </nowiki><br> | ||
Past N did a good job | <nowiki>and it was fast like, we had a private #chillax channel, and I say that "I'm going to write an article" and 3k words later would appear in 20 minutes | ||
<br> | </nowiki><br> | ||
... wow, I just proved that comments really do help the next person in the future | |||
<br> | |||
which uh ... was me ... | |||
<br> | |||
I think someone tallied it up? I had written like 100k words in the first two years. It was an absolute meme that the editors would fear whenever NCommander opened the editing console | |||
<br> | |||
and it was fast like, we had a private #chillax channel, and I say that "I'm going to write an article" and 3k words later would appear in 20 minutes | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 1,166: | Line 1,141: | ||
'''emotional support mom friend''' (''Today at 1:47 PM'') | '''emotional support mom friend''' (''Today at 1:47 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
And well, that checks out | <nowiki>And well, that checks out | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,174: | Line 1,149: | ||
'''NCommander''' (''Today at 1:47 PM'') | '''NCommander''' (''Today at 1:47 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I should actually see if the quotes database is still up, I'm about 40% of #staff | <nowiki>I should actually see if the quotes database is still up, I'm about 40% of #staff | ||
<br> | </nowiki><br> | ||
But Matt and I got it incorporated; and there was a bunch of us out in the northeast so we had a major meet and greet day with a BBQ | <nowiki>But Matt and I got it incorporated; and there was a bunch of us out in the northeast so we had a major meet and greet day with a BBQ | ||
<br> | </nowiki><br> | ||
and then I brought the party to everyone | <nowiki>and then I brought the party to everyone | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/article.pl?sid=14/06/17/0059210 this was one of the big things, like I had drafted up subscriptions, and then the pushback was really bad | <nowiki>https://soylentnews.org/article.pl?sid=14/06/17/0059210 this was one of the big things, like I had drafted up subscriptions, and then the pushback was really bad | ||
< | </nowiki><br> | ||
<nowiki>Essentially, the original plan was to basically make something akin to SDF | |||
<br> | </nowiki><br> | ||
<nowiki>All the editors had legit shell accounts, there was people.soylentnews.org | |||
< | </nowiki><br> | ||
Essentially, the original plan was to basically make something akin to SDF | <nowiki>that actually wasn't an intentional wordplay | ||
<br> | </nowiki><br> | ||
All the editors had legit shell accounts, there was people.soylentnews.org | <nowiki>Debian has people.debian.org which is used to host personal projects on their namespace; Canonical had people.canonical.com | ||
<br> | </nowiki><br> | ||
that actually wasn't an intentional wordplay | <nowiki>Looks like they revoked my SSH key; which is fine | ||
<br> | </nowiki><br> | ||
Debian has people.debian.org which is used to host personal projects on their namespace; Canonical had people.canonical.com | <nowiki>Haven't been involved a very long time | ||
<br> | </nowiki><br> | ||
Looks like they revoked my SSH key; which is fine | |||
<br> | |||
Haven't been involved a very long time | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 1,204: | Line 1,175: | ||
'''sirocyl''' (''Today at 1:51 PM'') | '''sirocyl''' (''Today at 1:51 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
oh my god | <nowiki>oh my god | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,212: | Line 1,183: | ||
'''NCommander''' (''Today at 1:51 PM'') | '''NCommander''' (''Today at 1:51 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
like I didn't even notice it until jsut now | <nowiki>like I didn't even notice it until jsut now | ||
<br> | </nowiki><br> | ||
... right | <nowiki>... right | ||
<br> | </nowiki><br> | ||
Let ie be known that I can infact do it to myself | <nowiki>Let ie be known that I can infact do it to myself | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/article.pl?sid=14/05/05/0541206 | <nowiki>https://soylentnews.org/article.pl?sid=14/05/05/0541206 | ||
< | </nowiki><br> | ||
<nowiki>Like, if I was going to make a remake of the original Slashdot, I was going to make it a pinnacle to the gods | |||
<br> | </nowiki><br> | ||
<nowiki>The li694-22 Domain | |||
< | </nowiki><br> | ||
Like, if I was going to make a remake of the original Slashdot, I was going to make it a pinnacle to the gods | <nowiki>I've mentioned this on comments, and its on the wiki as well, but we use an internal gTLD for referencing nodes throughout the backend. Every node can access each other at hostname.li694-22. The name itself is a reference to the original private URL which we used for bringing up Slashcode way back before SN was decided as our temporary name. We have full forward and reverse resolution available, and only publish AAAA records for normal services. Oh yeah, about that ... | ||
<br> | </nowiki><br> | ||
The li694-22 Domain | |||
<br> | |||
I've mentioned this on comments, and its on the wiki as well, but we use an internal gTLD for referencing nodes throughout the backend. Every node can access each other at hostname.li694-22. The name itself is a reference to the original private URL which we used for bringing up Slashcode way back before SN was decided as our temporary name. We have full forward and reverse resolution available, and only publish AAAA records for normal services. Oh yeah, about that ... | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 1,236: | Line 1,203: | ||
'''sirocyl''' (''Today at 1:53 PM'') | '''sirocyl''' (''Today at 1:53 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
wait. shelter island? | <nowiki>wait. shelter island? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,244: | Line 1,211: | ||
'''NCommander''' (''Today at 1:53 PM'') | '''NCommander''' (''Today at 1:53 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
? | <nowiki>? | ||
<br> | </nowiki><br> | ||
Linode | <nowiki>Linode | ||
<br> | </nowiki><br> | ||
... wow | <nowiki>... wow | ||
<br> | </nowiki><br> | ||
Is that actually the shelter island area code | <nowiki>Is that actually the shelter island area code | ||
<br> | </nowiki><br> | ||
Anyway, after incorporation, I had fairly large plans for Soylent, but that's when health things started to get worse | <nowiki>Anyway, after incorporation, I had fairly large plans for Soylent, but that's when health things started to get worse | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/article.pl?sid=14/05/12/0335243 | <nowiki>https://soylentnews.org/article.pl?sid=14/05/12/0335243 | ||
< | </nowiki><br> | ||
<nowiki>I had wanted to be able to do actual journalism instead of just a news aggitator | |||
<br> | </nowiki><br> | ||
< | |||
I had wanted to be able to do actual journalism instead of just a news aggitator | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 1,268: | Line 1,231: | ||
'''sirocyl''' (''Today at 1:55 PM'') | '''sirocyl''' (''Today at 1:55 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Image | <nowiki>Image | ||
<br> | </nowiki><br> | ||
wait, 11694 my b | <nowiki>wait, 11694 my b | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,278: | Line 1,241: | ||
'''emotional support mom friend''' (''Today at 1:55 PM'') | '''emotional support mom friend''' (''Today at 1:55 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
headpats | <nowiki>headpats | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,286: | Line 1,249: | ||
'''NCommander''' (''Today at 1:55 PM'') | '''NCommander''' (''Today at 1:55 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Someone needs to remember to run /log when I finish | <nowiki>Someone needs to remember to run /log when I finish | ||
<br> | </nowiki><br> | ||
so the bot grabs it | <nowiki>so the bot grabs it | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,296: | Line 1,259: | ||
'''sirocyl''' (''Today at 1:56 PM'') | '''sirocyl''' (''Today at 1:56 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Image | <nowiki>Image | ||
<br> | </nowiki><br> | ||
Rockaway Park | <nowiki>Rockaway Park | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,306: | Line 1,269: | ||
'''NCommander''' (''Today at 1:56 PM'') | '''NCommander''' (''Today at 1:56 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Anyway, SN didn't quite pan out the way I had hoped | <nowiki>Anyway, SN didn't quite pan out the way I had hoped | ||
<br> | </nowiki><br> | ||
Like, I had to justify to the Internet why we were doing things, there was major concerns about freedom of speech | <nowiki>Like, I had to justify to the Internet why we were doing things, there was major concerns about freedom of speech | ||
<br> | </nowiki><br> | ||
This was in 2014, the Snowden leaks had just happened | <nowiki>This was in 2014, the Snowden leaks had just happened | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,318: | Line 1,281: | ||
'''sirocyl''' (''Today at 1:56 PM'') | '''sirocyl''' (''Today at 1:56 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
mmhm | <nowiki>mmhm | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,326: | Line 1,289: | ||
'''NCommander''' (''Today at 1:57 PM'') | '''NCommander''' (''Today at 1:57 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
https://soylentnews.org/article.pl?sid=14/05/12/0335243 | <nowiki>https://soylentnews.org/article.pl?sid=14/05/12/0335243 | ||
< | </nowiki><br> | ||
<nowiki>Wrong link | |||
<br> | </nowiki><br> | ||
<nowiki>Like we ran our own Tor exit node: https://soylentnews.org/article.pl?sid=15/05/26/062240 | |||
< | </nowiki><br> | ||
Wrong link | <nowiki>It got a surprising amount of use | ||
<br> | </nowiki><br> | ||
Like we ran our own Tor exit node: https://soylentnews.org/article.pl?sid=15/05/26/062240 | <nowiki>https://soylentnews.org/article.pl?sid=15/04/01/0212256 - the eBBQ | ||
< | </nowiki><br> | ||
<nowiki>This was a milestone event. This was our first year up | |||
<br> | </nowiki><br> | ||
<nowiki>Like, this was a celebration | |||
< | </nowiki><br> | ||
It got a surprising amount of use | <nowiki>I hope to play as a 24-hour event, from 0:00 to 23:59 EST, though that might change depending on how I'm feeling. I plan to setup a Skype session so members of the staff can join in and perhaps field a question or two. If anyone wants to live update for me (watch the stream and keep notes on what I've done) or something similar, drop me a Private Message on either the SoylentNews IRC channel or on Freenode (I'll be in #nethack while I'm streaming). | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/article.pl?sid=15/04/01/0212256 - the eBBQ | <nowiki>This was in the early days of Lets plays. Twitch was still pretty small ... I don't think I was at Beam yet | ||
< | </nowiki><br> | ||
<br> | |||
< | |||
This was a milestone event. This was our first year up | |||
<br> | |||
Like, this was a celebration | |||
<br> | |||
I hope to play as a 24-hour event, from 0:00 to 23:59 EST, though that might change depending on how I'm feeling. I plan to setup a Skype session so members of the staff can join in and perhaps field a question or two. If anyone wants to live update for me (watch the stream and keep notes on what I've done) or something similar, drop me a Private Message on either the SoylentNews IRC channel or on Freenode (I'll be in #nethack while I'm streaming). | |||
<br> | |||
This was in the early days of Lets plays. Twitch was still pretty small ... I don't think I was at Beam yet | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 1,362: | Line 1,313: | ||
'''BlackCoffeeDrinker''' (''Today at 1:59 PM'') | '''BlackCoffeeDrinker''' (''Today at 1:59 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
justin.tv you mean | <nowiki>justin.tv you mean | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,370: | Line 1,321: | ||
'''NCommander''' (''Today at 2:00 PM'') | '''NCommander''' (''Today at 2:00 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
No, it was twitch at this point | <nowiki>No, it was twitch at this point | ||
<br> | </nowiki><br> | ||
I say so as much in the post | <nowiki>I say so as much in the post | ||
<br> | </nowiki><br> | ||
This must have been right after I left Canonical, but before I got hired at MCProHosting | <nowiki>This must have been right after I left Canonical, but before I got hired at MCProHosting | ||
<br> | </nowiki><br> | ||
Or before they moved me over | <nowiki>Or before they moved me over | ||
<br> | </nowiki><br> | ||
There was like a 1-2 month period where I did actual sysadmin work | <nowiki>There was like a 1-2 month period where I did actual sysadmin work | ||
<br> | </nowiki><br> | ||
Note to streamers: For those watching via Twitch, there is a 20-30 stream delay, so if I don't immediately respond, assume that's the reason. | <nowiki>Note to streamers: For those watching via Twitch, there is a 20-30 stream delay, so if I don't immediately respond, assume that's the reason. | ||
<br> | </nowiki><br> | ||
wow | <nowiki>wow | ||
<br> | </nowiki><br> | ||
I don't know if that was foreshadowing or not | <nowiki>I don't know if that was foreshadowing or not | ||
<br> | </nowiki><br> | ||
... I might have been at Mixer at that point? | <nowiki>... I might have been at Mixer at that point? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,394: | Line 1,345: | ||
'''BlackCoffeeDrinker''' (''Today at 2:01 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:01 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
20 to 30 !?! | <nowiki>20 to 30 !?! | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,402: | Line 1,353: | ||
'''NCommander''' (''Today at 2:01 PM'') | '''NCommander''' (''Today at 2:01 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Or it was a sure thing | <nowiki>Or it was a sure thing | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,410: | Line 1,361: | ||
'''NCommander''' (''Today at 2:01 PM'') | '''NCommander''' (''Today at 2:01 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
That was the average | <nowiki>That was the average | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,418: | Line 1,369: | ||
'''BlackCoffeeDrinker''' (''Today at 2:01 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:01 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I never realize it was that bad | <nowiki>I never realize it was that bad | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,426: | Line 1,377: | ||
'''NCommander''' (''Today at 2:01 PM'') | '''NCommander''' (''Today at 2:01 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
It could go minutes long unoptimized | <nowiki>It could go minutes long unoptimized | ||
<br> | </nowiki><br> | ||
Packet delay is cummative over the life of the stream | <nowiki>Packet delay is cummative over the life of the stream | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,436: | Line 1,387: | ||
'''BlackCoffeeDrinker''' (''Today at 2:02 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:02 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I rememeber that long stream had A/V desync | <nowiki>I rememeber that long stream had A/V desync | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,444: | Line 1,395: | ||
'''NCommander''' (''Today at 2:02 PM'') | '''NCommander''' (''Today at 2:02 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Yeah I think I was already thinking about latency at this point | <nowiki>Yeah I think I was already thinking about latency at this point | ||
<br> | </nowiki><br> | ||
What got me hired at MCProHosting was a discussion with Matt the CEO | <nowiki>What got me hired at MCProHosting was a discussion with Matt the CEO | ||
<br> | </nowiki><br> | ||
Who was on my hiring call | <nowiki>Who was on my hiring call | ||
<br> | </nowiki><br> | ||
... I should have questioned that at the time ... | <nowiki>... I should have questioned that at the time ... | ||
<br> | </nowiki><br> | ||
and Matt had asked me questions about it; I had listened low latency experience on my resume | <nowiki>and Matt had asked me questions about it; I had listened low latency experience on my resume | ||
<br> | </nowiki><br> | ||
It was in terms of system processing, not networking, but "eh, close enough?" | <nowiki>It was in terms of system processing, not networking, but "eh, close enough?" | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,462: | Line 1,413: | ||
'''BlackCoffeeDrinker''' (''Today at 2:04 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:04 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
HAHAHAHHAHA | <nowiki>HAHAHAHHAHA | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,470: | Line 1,421: | ||
'''NCommander''' (''Today at 2:04 PM'') | '''NCommander''' (''Today at 2:04 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I mean, I didn't know how different they were at the time | <nowiki>I mean, I didn't know how different they were at the time | ||
<br> | </nowiki><br> | ||
I understood things like packet delay due to TCP/IP | <nowiki>I understood things like packet delay due to TCP/IP | ||
<br> | </nowiki><br> | ||
But I never really thought about it beyond that. | <nowiki>But I never really thought about it beyond that. | ||
<br> | </nowiki><br> | ||
I should give some context here | <nowiki>I should give some context here | ||
<br> | </nowiki><br> | ||
In system processing, latency is generally in reference to what is known as realtime processing | <nowiki>In system processing, latency is generally in reference to what is known as realtime processing | ||
<br> | </nowiki><br> | ||
Basically, it means you need to do X amount of work in Y amount of time | <nowiki>Basically, it means you need to do X amount of work in Y amount of time | ||
<br> | </nowiki><br> | ||
Most computing is not realtime, but its fast enough for humans not to notice | <nowiki>Most computing is not realtime, but its fast enough for humans not to notice | ||
<br> | </nowiki><br> | ||
i.e., keyboard entry is not real time | <nowiki>i.e., keyboard entry is not real time | ||
<br> | </nowiki><br> | ||
The big SoB being audio | <nowiki>The big SoB being audio | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,494: | Line 1,445: | ||
'''BlackCoffeeDrinker''' (''Today at 2:06 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:06 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
DMA Audio was a big deal | <nowiki>DMA Audio was a big deal | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,502: | Line 1,453: | ||
'''NCommander''' (''Today at 2:06 PM'') | '''NCommander''' (''Today at 2:06 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Video you can get away with more | <nowiki>Video you can get away with more | ||
<br> | </nowiki><br> | ||
(I think this is worth talking about, even though its off topic) | <nowiki>(I think this is worth talking about, even though its off topic) | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,512: | Line 1,463: | ||
'''BlackCoffeeDrinker''' (''Today at 2:07 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:07 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Video was so unobtanium that a different approach was needed | <nowiki>Video was so unobtanium that a different approach was needed | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,520: | Line 1,471: | ||
'''NCommander''' (''Today at 2:07 PM'') | '''NCommander''' (''Today at 2:07 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Well, by and large, it was geared toward animation, you had Smacker, and then compositing | <nowiki>Well, by and large, it was geared toward animation, you had Smacker, and then compositing | ||
<br> | </nowiki><br> | ||
Kodak used to charge a very pretty penny to make high quality analogue coversions | <nowiki>Kodak used to charge a very pretty penny to make high quality analogue coversions | ||
<br> | </nowiki><br> | ||
fuck, I don't think I ever brought up Castle Infinity | <nowiki>fuck, I don't think I ever brought up Castle Infinity | ||
<br> | </nowiki><br> | ||
I haven't even thought about them in ... has to be decades | <nowiki>I haven't even thought about them in ... has to be decades | ||
<br> | </nowiki><br> | ||
Uh, that was the period of my life when you can literially say I had the job title "Architect of Infinity" | <nowiki>Uh, that was the period of my life when you can literially say I had the job title "Architect of Infinity" | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,536: | Line 1,487: | ||
'''BlackCoffeeDrinker''' (''Today at 2:08 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:08 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
the MMO ? | <nowiki>the MMO ? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,544: | Line 1,495: | ||
'''NCommander''' (''Today at 2:08 PM'') | '''NCommander''' (''Today at 2:08 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Yeah | <nowiki>Yeah | ||
<br> | </nowiki><br> | ||
I didn't play it back in the Starwave days | <nowiki>I didn't play it back in the Starwave days | ||
<br> | </nowiki><br> | ||
But the servers had gotten tossed out | <nowiki>But the servers had gotten tossed out | ||
<br> | </nowiki><br> | ||
Literially tossed out | <nowiki>Literially tossed out | ||
<br> | </nowiki><br> | ||
One of the diehard fans, Kevin Quilt, dumpster dived for them | <nowiki>One of the diehard fans, Kevin Quilt, dumpster dived for them | ||
<br> | </nowiki><br> | ||
and put the game online | <nowiki>and put the game online | ||
<br> | </nowiki><br> | ||
They had full source code, and gotten a legal agreement out of Starwave to run it | <nowiki>They had full source code, and gotten a legal agreement out of Starwave to run it | ||
<br> | </nowiki><br> | ||
(it might have been Go? They got bought by Disney) | <nowiki>(it might have been Go? They got bought by Disney) | ||
<br> | </nowiki><br> | ||
The game was made by Starwave, then owned by GO, and then Disney | <nowiki>The game was made by Starwave, then owned by GO, and then Disney | ||
<br> | </nowiki><br> | ||
It was a 9x era MMOG, and everything that implies | <nowiki>It was a 9x era MMOG, and everything that implies | ||
<br> | </nowiki><br> | ||
The original thing ran on NT 3.51, and the client on 9x, and it abused things like IPC and COM | <nowiki>The original thing ran on NT 3.51, and the client on 9x, and it abused things like IPC and COM | ||
<br> | </nowiki><br> | ||
and it did *cute coding | <nowiki>and it did *cute coding | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,574: | Line 1,525: | ||
'''BlackCoffeeDrinker''' (''Today at 2:10 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:10 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
😭 | <nowiki>😭 | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,582: | Line 1,533: | ||
'''NCommander''' (''Today at 2:11 PM'') | '''NCommander''' (''Today at 2:11 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
case 'ABCD': /* this compiles, because a four byte char can be cast to an int, and VC++6 will not complaint*/ | <nowiki>case 'ABCD': /* this compiles, because a four byte char can be cast to an int, and VC++6 will not complaint*/ | ||
<br> | </nowiki><br> | ||
It had this horrid heap manager from a third party company, it used RAD game tools, and a few other bits | <nowiki>It had this horrid heap manager from a third party company, it used RAD game tools, and a few other bits | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,592: | Line 1,543: | ||
'''BlackCoffeeDrinker''' (''Today at 2:11 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:11 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
HAHAHAHA AHAHAHAHAH AHAHAHHAHA YES !! YES!! | <nowiki>HAHAHAHA AHAHAHAHAH AHAHAHHAHA YES !! YES!! | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,600: | Line 1,551: | ||
'''NCommander''' (''Today at 2:12 PM'') | '''NCommander''' (''Today at 2:12 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
The level editor was a MFC application | <nowiki>The level editor was a MFC application | ||
<br> | </nowiki><br> | ||
oh god, SP4k | <nowiki>oh god, SP4k | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,610: | Line 1,561: | ||
'''BlackCoffeeDrinker''' (''Today at 2:12 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:12 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
God VC++6 was amazingly bad | <nowiki>God VC++6 was amazingly bad | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,618: | Line 1,569: | ||
'''NCommander''' (''Today at 2:12 PM'') | '''NCommander''' (''Today at 2:12 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
that ... that thing was bad, it was a C++ codebase from hell | <nowiki>that ... that thing was bad, it was a C++ codebase from hell | ||
<br> | </nowiki><br> | ||
Because the code started life on VC++4, been poorly migrated to VC++6, and then I kicked it screaming to VC++2005 | <nowiki>Because the code started life on VC++4, been poorly migrated to VC++6, and then I kicked it screaming to VC++2005 | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,628: | Line 1,579: | ||
'''SED''' (''Today at 2:12 PM'') | '''SED''' (''Today at 2:12 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Like Hammer:blep: | <nowiki>Like Hammer:blep: | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,636: | Line 1,587: | ||
'''BlackCoffeeDrinker''' (''Today at 2:12 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:12 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
VC++2005 didn't compile what VC++6 did... | <nowiki>VC++2005 didn't compile what VC++6 did... | ||
<br> | </nowiki><br> | ||
how did they migrate that ? | <nowiki>how did they migrate that ? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,646: | Line 1,597: | ||
'''NCommander''' (''Today at 2:13 PM'') | '''NCommander''' (''Today at 2:13 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
How did I migrate it | <nowiki>How did I migrate it | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,654: | Line 1,605: | ||
'''BlackCoffeeDrinker''' (''Today at 2:13 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:13 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Poorly ? | <nowiki>Poorly ? | ||
<br> | </nowiki><br> | ||
oh | <nowiki>oh | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,664: | Line 1,615: | ||
'''NCommander''' (''Today at 2:13 PM'') | '''NCommander''' (''Today at 2:13 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
well, it still takes case syntax | <nowiki>well, it still takes case syntax | ||
<br> | </nowiki><br> | ||
No, it was still on VC++6 when I got there | <nowiki>No, it was still on VC++6 when I got there | ||
<br> | </nowiki><br> | ||
I was in high school at the time | <nowiki>I was in high school at the time | ||
<br> | </nowiki><br> | ||
Actually, remind me to come back to castle infinity @N's Life, let me finish SoylentNews | <nowiki>Actually, remind me to come back to castle infinity @N's Life, let me finish SoylentNews | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,678: | Line 1,629: | ||
'''BlackCoffeeDrinker''' (''Today at 2:13 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:13 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I did my final school project on VC++6 | <nowiki>I did my final school project on VC++6 | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,686: | Line 1,637: | ||
'''NCommander''' (''Today at 2:14 PM'') | '''NCommander''' (''Today at 2:14 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Because I want to recount my last bit | <nowiki>Because I want to recount my last bit | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,694: | Line 1,645: | ||
'''emotional support mom friend''' (''Today at 2:14 PM'') | '''emotional support mom friend''' (''Today at 2:14 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
So, that first, then infinity | <nowiki>So, that first, then infinity | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,702: | Line 1,653: | ||
'''NCommander''' (''Today at 2:14 PM'') | '''NCommander''' (''Today at 2:14 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
This was the last major coding exercise | <nowiki>This was the last major coding exercise | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/article.pl?sid=15/03/13/044211 | <nowiki>https://soylentnews.org/article.pl?sid=15/03/13/044211 | ||
<br> | </nowiki><br> | ||
<nowiki>We had called our branch fo Slash, slashcode 15.03 | |||
<br> | </nowiki><br> | ||
<nowiki>(you can see the Ubuntu influence) | |||
< | </nowiki><br> | ||
<nowiki>We didn't do timed releases, I just gave them version numbers to tag | |||
<br> | </nowiki><br> | ||
<nowiki>The plan was to do a final Apache 1.3 release | |||
< | </nowiki><br> | ||
We didn't do timed releases, I just gave them version numbers to tag | <nowiki>I had gone into what can be described as a manic mood | ||
<br> | </nowiki><br> | ||
The plan was to do a final Apache 1.3 release | <nowiki>This was about a year after we launched | ||
<br> | </nowiki><br> | ||
I had gone into what can be described as a manic mood | <nowiki>And I was going to get us off Apache 1.3, and onto 2.0 | ||
<br> | </nowiki><br> | ||
This was about a year after we launched | <nowiki>(2.2 didn't have all the CPAN modules we needed) | ||
<br> | </nowiki><br> | ||
And I was going to get us off Apache 1.3, and onto 2.0 | <nowiki>This is not soething you do lightly | ||
<br> | </nowiki><br> | ||
(2.2 didn't have all the CPAN modules we needed) | <nowiki>Like | ||
< | </nowiki><br> | ||
This is not soething you do lightly | <nowiki>this is a fucking effort | ||
<br> | </nowiki><br> | ||
Like | <nowiki>mod_perl was wrapped around rehash's codebase like a cancer | ||
<br> | </nowiki><br> | ||
this is a fucking effort | <nowiki>And it used a global state table and an API that didn't exist in 2.0 | ||
<br> | </nowiki><br> | ||
mod_perl was wrapped around rehash's codebase like a cancer | <nowiki>Most of the codebase was clean, the slashd daemon ran without the mod_perl components, but the entire frontend was dependent on it | ||
<br> | </nowiki><br> | ||
And it used a global state table and an API that didn't exist in 2.0 | <nowiki>I had ripped a lot of the static code generators out; it was 2015, we could afford the processing port | ||
< | </nowiki><br> | ||
Most of the codebase was clean, the slashd daemon ran without the mod_perl components, but the entire frontend was dependent on it | <nowiki>It's a thing of beauty when you delete a lot of dead code | ||
<br> | </nowiki><br> | ||
I had ripped a lot of the static code generators out; it was 2015, we could afford the processing port | <nowiki>Like, I think I purged a good 40k LoC from that beast | ||
<br> | </nowiki><br> | ||
It's a thing of beauty when you delete a lot of dead code | <nowiki>and we had a commitment not to use frontend javascript | ||
<br> | </nowiki><br> | ||
Like, I think I purged a good 40k LoC from that beast | <nowiki>It was a testimonent to the old Internet | ||
<br> | </nowiki><br> | ||
and we had a commitment not to use frontend javascript | <nowiki>unless its changed, privacy badger was still 0 | ||
< | </nowiki><br> | ||
It was a testimonent to the old Internet | <nowiki>Back at that time, I actually considered leaving NCommander as a handle to whomever replaced me | ||
<br> | </nowiki><br> | ||
unless its changed, privacy badger was still 0 | <nowiki>Ala dread pirate roberts from the movie, the Silk Road hadn't happened yet | ||
<br> | </nowiki><br> | ||
Back at that time, I actually considered leaving NCommander as a handle to whomever replaced me | <nowiki>We had a development box, lithium | ||
<br> | </nowiki><br> | ||
Ala dread pirate roberts from the movie, the Silk Road hadn't happened yet | <nowiki>All the machines were named after elements, starting at hydrogen, and going up | ||
<br> | </nowiki><br> | ||
We had a development box, lithium | <nowiki>Canonical actually used the same naming scheme | ||
< | </nowiki><br> | ||
All the machines were named after elements, starting at hydrogen, and going up | <nowiki>The cdimage build master was called antimony, which was appropiate | ||
<br> | </nowiki><br> | ||
Canonical actually used the same naming scheme | <nowiki>To even start porting the monster, I had to sort out the mess of CPAN dependencies | ||
<br> | </nowiki><br> | ||
The cdimage build master was called antimony, which was appropiate | <nowiki>and I still had to have a self-contained Apache build system | ||
<br> | </nowiki><br> | ||
To even start porting the monster, I had to sort out the mess of CPAN dependencies | <nowiki>https://github.com/SoylentNews/rehash/blob/master/Makefile#L341 - I wrote a massive makefile to do it | ||
<br> | </nowiki><br> | ||
and I still had to have a self-contained Apache build system | <nowiki>Including patching a few CPAN bits to work with mod_perl 2 | ||
< | </nowiki><br> | ||
https://github.com/SoylentNews/rehash/blob/master/Makefile#L341 - I wrote a massive makefile to do it | <nowiki>Well, the makefile was already there | ||
<br> | </nowiki><br> | ||
<nowiki>but I really made it there | |||
<br> | </nowiki><br> | ||
<nowiki>This was going to be a reproducible build damn it | |||
<br> | </nowiki><br> | ||
<nowiki>I also think we migrated to MySQL cluster at the same time | |||
<br> | </nowiki><br> | ||
<nowiki>Like | |||
<br> | </nowiki><br> | ||
<nowiki>holy fuck | |||
< | </nowiki><br> | ||
<nowiki>what was I thinking | |||
<br> | </nowiki><br> | ||
<nowiki>A little known feature of the codebase is that its built on a plugin architecture which makes expansion easier and allows for multi-hosting. That is to say, we can have multiple sites out of a single installation; i.e., soylentnews.jp and soylentnews.org can both point to the same installation, but show a different mainpage. While we're still somewhat far off from supporting this kind of user-generated content, this upgrade sets the framework for allowing it to happen. The mainpage of SN will remain as it is, but allow the community to form and discuss any topic they wish, all handled under the same familiar interface you use now. | |||
<br> | </nowiki><br> | ||
<nowiki>Actually, this is a bit important, there were other slashdot forks, there was slashdot.jp, and barrapuento.com, both on the original Slash code, I think there was a few others, but those were the two I remmber trying to reach | |||
< | </nowiki><br> | ||
<nowiki>https://soylentnews.org/article.pl?sid=15/05/19/0740226 - we even discucssed i18n/l10n efforts | |||
</nowiki><br> | |||
<nowiki>https://soylentnews.org/meta/article.pl?sid=15/06/01/0657256 - fucking hell | |||
<br> | </nowiki><br> | ||
<nowiki>I actually did do both at the same time | |||
< | </nowiki><br> | ||
what was I thinking | <nowiki>Rewrote large amounts of the site to migrate to Apache 2, mod_perl 2, and perl 5.20. | ||
<br> | </nowiki><br> | ||
A little known feature of the codebase is that its built on a plugin architecture which makes expansion easier and allows for multi-hosting. That is to say, we can have multiple sites out of a single installation; i.e., soylentnews.jp and soylentnews.org can both point to the same installation, but show a different mainpage. While we're still somewhat far off from supporting this kind of user-generated content, this upgrade sets the framework for allowing it to happen. The mainpage of SN will remain as it is, but allow the community to form and discuss any topic they wish, all handled under the same familiar interface you use now. | <nowiki>This was a massive undertaking. I did a large part of the initial work, but paulej72, and TheMightyBuzzard did lots to help fix a lot of the lingering issues. Major props to Bytram for catching many of the bugs pre-release | ||
<br> | </nowiki><br> | ||
Actually, this is a bit important, there were other slashdot forks, there was slashdot.jp, and barrapuento.com, both on the original Slash code, I think there was a few others, but those were the two I remmber trying to reach | <nowiki>Nexus Support (finally). | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/article.pl?sid=15/05/19/0740226 - we even discucssed i18n/l10n efforts | <nowiki>Currently we have the Meta and Breaking News nexii, with the possibility of adding more in the future, such as a Freshmeat replacement. | ||
<br> | </nowiki><br> | ||
<nowiki>Nexii can be filtered in the user control panel under the Homepage tab. At the moment, this functionality is hosed due to unexpected breakage, but should be functional within the next 24-48 hours | |||
< | </nowiki><br> | ||
<nowiki>IPv6 support - the AAAA record is live as we speak | |||
</nowiki><br> | |||
<nowiki>Themes can be attached to a nexus independent of the "primary theme" setting; user choice overrides this | |||
<br> | </nowiki><br> | ||
<nowiki>Squashed More UTF-8 Bugs | |||
<br> | </nowiki><br> | ||
<nowiki>Migration to MySQL Cluster (more on this below) | |||
<br> | </nowiki><br> | ||
I | <nowiki>Rewrote site search engine to use sphinx search and (in general) be more useful | ||
</nowiki><br> | |||
<nowiki>Long comments properly collaspe now | |||
</nowiki><br> | |||
<nowiki>Support for SSL by default (not live yet) | |||
< | </nowiki><br> | ||
<nowiki>Fault tolerance; the site no longer explodes into confetti if a database or webfrontend goes down unexpectedly; allows for much easier system maintenance as we can offline things without manual migration of services | |||
<br> | </nowiki><br> | ||
<nowiki>Improved editor functionality, including per-article note block | |||
</nowiki><br> | |||
<nowiki>Lots of small fixes everywhere, due to the extended development cycle | |||
<br> | </nowiki><br> | ||
IPv6 support - the AAAA record is live as we speak | <nowiki>Like, I did IPV6, mod_perl 2, and database clustering on a single upgrade cycle | ||
<br> | </nowiki><br> | ||
Themes can be attached to a nexus independent of the "primary theme" setting; user choice overrides this | <nowiki>and I mean | ||
<br> | </nowiki><br> | ||
Squashed More UTF-8 Bugs | <nowiki>it worked | ||
<br> | </nowiki><br> | ||
Migration to MySQL Cluster (more on this below) | <nowiki>@BlackCoffeeDrinker what ... how did I do this? | ||
<br> | </nowiki><br> | ||
Rewrote site search engine to use sphinx search and (in general) be more useful | |||
< | |||
Long comments properly collaspe now | |||
<br> | |||
Support for SSL by default (not live yet) | |||
<br> | |||
Fault tolerance; the site no longer explodes into confetti if a database or webfrontend goes down unexpectedly; allows for much easier system maintenance as we can offline things without manual migration of services | |||
<br> | |||
Improved editor functionality, including per-article note block | |||
<br> | |||
Lots of small fixes everywhere, due to the extended development cycle | |||
<br> | |||
Like, I did IPV6, mod_perl 2, and database clustering on a single upgrade cycle | |||
<br> | |||
and I mean | |||
<br> | |||
it worked | |||
<br> | |||
@BlackCoffeeDrinker what ... how did I do this? | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 1,854: | Line 1,785: | ||
'''emotional support mom friend''' (''Today at 2:26 PM'') | '''emotional support mom friend''' (''Today at 2:26 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Not something you'd recommend but it did work apparently | <nowiki>Not something you'd recommend but it did work apparently | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,862: | Line 1,793: | ||
'''NCommander''' (''Today at 2:26 PM'') | '''NCommander''' (''Today at 2:26 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
you should realize the sheer absurdity of that changelog | <nowiki>you should realize the sheer absurdity of that changelog | ||
<br> | </nowiki><br> | ||
That's the fucking marketing statement, not the actual engineering changelog | <nowiki>That's the fucking marketing statement, not the actual engineering changelog | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,872: | Line 1,803: | ||
'''emotional support mom friend''' (''Today at 2:27 PM'') | '''emotional support mom friend''' (''Today at 2:27 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
O.o | <nowiki>O.o | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,880: | Line 1,811: | ||
'''NCommander''' (''Today at 2:27 PM'') | '''NCommander''' (''Today at 2:27 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
In our year and a half of dealing with slashcode, we had also identified several pain points; for example, if the database went down even for a second, the site would lockup, and httpd would hang to the point that it was necessary to kill -9 the process. Although slashcode has support for the native master-slave replication built into MySQL, it had no support for failover. Furthermore, MySQL's native replication is extremely lacking in the area of reliability. Until very recently, there was no support for dynamically changing the master database in case of failure, and the manual process is exceedingly slow and error prone. While MySQL 5.6 has improved the situation with global transactions IDs (GTID), it still required code support in the application to handle failover, and a specific monitoring daemon to manage the process, in effect creating a new single point of failure. It also continues to lack any functionality heal or otherwise recover from replication failures. In my research, I found that there was simply bad and worse options with vanilla MySQL in handling replication and failover. As such, I started looking seriously into MySQL Cluster, which adds multi-master replication to MySQL at the cost of some backwards compatibility. | <nowiki>In our year and a half of dealing with slashcode, we had also identified several pain points; for example, if the database went down even for a second, the site would lockup, and httpd would hang to the point that it was necessary to kill -9 the process. Although slashcode has support for the native master-slave replication built into MySQL, it had no support for failover. Furthermore, MySQL's native replication is extremely lacking in the area of reliability. Until very recently, there was no support for dynamically changing the master database in case of failure, and the manual process is exceedingly slow and error prone. While MySQL 5.6 has improved the situation with global transactions IDs (GTID), it still required code support in the application to handle failover, and a specific monitoring daemon to manage the process, in effect creating a new single point of failure. It also continues to lack any functionality heal or otherwise recover from replication failures. In my research, I found that there was simply bad and worse options with vanilla MySQL in handling replication and failover. As such, I started looking seriously into MySQL Cluster, which adds multi-master replication to MySQL at the cost of some backwards compatibility. | ||
<br> | </nowiki><br> | ||
OH GOD I FORGOT ABOUT THIS | <nowiki>OH GOD I FORGOT ABOUT THIS | ||
<br> | </nowiki><br> | ||
Right, so because the code was so crankly, if the MySQL daemon ever went down | <nowiki>Right, so because the code was so crankly, if the MySQL daemon ever went down | ||
<br> | </nowiki><br> | ||
Everything else would lock up | <nowiki>Everything else would lock up | ||
<br> | </nowiki><br> | ||
And I mean, we would have to killall -9 httpd | <nowiki>And I mean, we would have to killall -9 httpd | ||
<br> | </nowiki><br> | ||
and this happened fairly often because Linode used to restart boxes regularly for downtime | <nowiki>and this happened fairly often because Linode used to restart boxes regularly for downtime | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,898: | Line 1,829: | ||
'''BlackCoffeeDrinker''' (''Today at 2:28 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:28 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Indeed how | <nowiki>Indeed how | ||
<br> | </nowiki><br> | ||
are you like 5 ppl in one ? | <nowiki>are you like 5 ppl in one ? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,908: | Line 1,839: | ||
'''NCommander''' (''Today at 2:28 PM'') | '''NCommander''' (''Today at 2:28 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
https://soylentnews.org/meta/article.pl?sid=16/08/25/073218 - I'm a fucking overachiever | <nowiki>https://soylentnews.org/meta/article.pl?sid=16/08/25/073218 - I'm a fucking overachiever | ||
< | </nowiki><br> | ||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 1,920: | Line 1,847: | ||
'''BlackCoffeeDrinker''' (''Today at 2:29 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:29 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Those weren't established standards | <nowiki>Those weren't established standards | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,928: | Line 1,855: | ||
'''emotional support mom friend''' (''Today at 2:29 PM'') | '''emotional support mom friend''' (''Today at 2:29 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Did…that got fixed, right? | <nowiki>Did…that got fixed, right? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,936: | Line 1,863: | ||
'''NCommander''' (''Today at 2:29 PM'') | '''NCommander''' (''Today at 2:29 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Well | <nowiki>Well | ||
<br> | </nowiki><br> | ||
I fixed it by making the database not go down | <nowiki>I fixed it by making the database not go down | ||
<br> | </nowiki><br> | ||
ever | <nowiki>ever | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,948: | Line 1,875: | ||
'''emotional support mom friend''' (''Today at 2:29 PM'') | '''emotional support mom friend''' (''Today at 2:29 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
I mean that works | <nowiki>I mean that works | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,956: | Line 1,883: | ||
'''NCommander''' (''Today at 2:29 PM'') | '''NCommander''' (''Today at 2:29 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Like, the fucking site had to have a 4 nines uptime | <nowiki>Like, the fucking site had to have a 4 nines uptime | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,964: | Line 1,891: | ||
'''BlackCoffeeDrinker''' (''Today at 2:29 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:29 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Very nice | <nowiki>Very nice | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,972: | Line 1,899: | ||
'''NCommander''' (''Today at 2:29 PM'') | '''NCommander''' (''Today at 2:29 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
And for a legacy mod_perl site | <nowiki>And for a legacy mod_perl site | ||
<br> | </nowiki><br> | ||
in an era before containers or dockerization | <nowiki>in an era before containers or dockerization | ||
<br> | </nowiki><br> | ||
Kubernetes hadn't been made yet | <nowiki>Kubernetes hadn't been made yet | ||
<br> | </nowiki><br> | ||
Docker still was in its infancy | <nowiki>Docker still was in its infancy | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,986: | Line 1,913: | ||
'''BlackCoffeeDrinker''' (''Today at 2:30 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:30 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
we did have red/blue where we'd ship a server with the next version to replace the server that was in prod | <nowiki>we did have red/blue where we'd ship a server with the next version to replace the server that was in prod | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 1,994: | Line 1,921: | ||
'''NCommander''' (''Today at 2:30 PM'') | '''NCommander''' (''Today at 2:30 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Like, I had to rewrite the etnire site search engine to do that migration | <nowiki>Like, I had to rewrite the etnire site search engine to do that migration | ||
<br> | </nowiki><br> | ||
The original search engine used MySQL FULLTEXT tables | <nowiki>The original search engine used MySQL FULLTEXT tables | ||
<br> | </nowiki><br> | ||
I rewrote it to run sphinx | <nowiki>I rewrote it to run sphinx | ||
<br> | </nowiki><br> | ||
You'd probably use Elastasearch these days, but ES is the cloud sucks | <nowiki>You'd probably use Elastasearch these days, but ES is the cloud sucks | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,008: | Line 1,935: | ||
'''BlackCoffeeDrinker''' (''Today at 2:31 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:31 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Word tables | <nowiki>Word tables | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,016: | Line 1,943: | ||
'''NCommander''' (''Today at 2:31 PM'') | '''NCommander''' (''Today at 2:31 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
The primary cause of the slowdown was due to the fact that rehash did large JOIN operations on text columns in MySQL. This is bad practice in general due to performance reasons, but it causes a drastic slowdown with MySQL cluster, which prevents the query optimizer from doing what's known as a "pushdown", and allowing the query to execute on the NDB nodes. This caused article load to be O(n*m), where n was the number of articles in the database and m was the number of articles with the neverdisplay attribute set. The revised queries now load at O(1). Instead it had to do multiple pulls from the database and assemble the query data on the frontend, a process that took 4-5 seconds per problematic query. The problem was compounded that there are limited number of httpd daemons at any given moment, and any database pull that hit a problematic query (which were in index.pl and article.pl) would cause resource exhaustion. | <nowiki>The primary cause of the slowdown was due to the fact that rehash did large JOIN operations on text columns in MySQL. This is bad practice in general due to performance reasons, but it causes a drastic slowdown with MySQL cluster, which prevents the query optimizer from doing what's known as a "pushdown", and allowing the query to execute on the NDB nodes. This caused article load to be O(n*m), where n was the number of articles in the database and m was the number of articles with the neverdisplay attribute set. The revised queries now load at O(1). Instead it had to do multiple pulls from the database and assemble the query data on the frontend, a process that took 4-5 seconds per problematic query. The problem was compounded that there are limited number of httpd daemons at any given moment, and any database pull that hit a problematic query (which were in index.pl and article.pl) would cause resource exhaustion. | ||
<br> | </nowiki><br> | ||
Like | <nowiki>Like | ||
<br> | </nowiki><br> | ||
THAT WAS A CRANKLY MIGRATION | <nowiki>THAT WAS A CRANKLY MIGRATION | ||
<br> | </nowiki><br> | ||
June 02 2015 | <nowiki>June 02 2015 | ||
<br> | </nowiki><br> | ||
... WTF, I WAS DOING FTL AT THE SAME TIME | <nowiki>... WTF, I WAS DOING FTL AT THE SAME TIME | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,032: | Line 1,959: | ||
'''CEO of Fish Inc.''' (''Today at 2:33 PM'') | '''CEO of Fish Inc.''' (''Today at 2:33 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
HOW | <nowiki>HOW | ||
<br> | </nowiki><br> | ||
how did you have the time | <nowiki>how did you have the time | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,042: | Line 1,969: | ||
'''NCommander''' (''Today at 2:33 PM'') | '''NCommander''' (''Today at 2:33 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
https://github.com/microsoft/ftl-sdk/commit/09fc8aadc86a7fe0d99c9a997b9a7198333bc013 | <nowiki>https://github.com/microsoft/ftl-sdk/commit/09fc8aadc86a7fe0d99c9a997b9a7198333bc013 | ||
< | </nowiki><br> | ||
<nowiki>no, I didn't do it yet | |||
</nowiki><br> | |||
<br> | |||
< | |||
no, I didn't do it yet | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 2,060: | Line 1,979: | ||
'''emotional support mom friend''' (''Today at 2:33 PM'') | '''emotional support mom friend''' (''Today at 2:33 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
What weren't you doing at the time? | <nowiki>What weren't you doing at the time? | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,068: | Line 1,987: | ||
'''NCommander''' (''Today at 2:33 PM'') | '''NCommander''' (''Today at 2:33 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
This was right in the Canonical/FTL gap | <nowiki>This was right in the Canonical/FTL gap | ||
<br> | </nowiki><br> | ||
This was the last passion project, I wanted SN to succeed and to be able to live on this; the job at MCProHosting was the easy paycheck | <nowiki>This was the last passion project, I wanted SN to succeed and to be able to live on this; the job at MCProHosting was the easy paycheck | ||
<br> | </nowiki><br> | ||
Yeah | <nowiki>Yeah | ||
<br> | </nowiki><br> | ||
and it was the thing I promised I do | <nowiki>and it was the thing I promised I do | ||
<br> | </nowiki><br> | ||
The last thing I said to the community that we were going to modernize this codebase | <nowiki>The last thing I said to the community that we were going to modernize this codebase | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,084: | Line 2,003: | ||
'''emotional support mom friend''' (''Today at 2:34 PM'') | '''emotional support mom friend''' (''Today at 2:34 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
And well | <nowiki>And well | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,092: | Line 2,011: | ||
'''NCommander''' (''Today at 2:36 PM'') | '''NCommander''' (''Today at 2:36 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Yeah | <nowiki>Yeah | ||
<br> | </nowiki><br> | ||
I honestly remember being utterly disappointed at the time that it didn't go smoothly | <nowiki>I honestly remember being utterly disappointed at the time that it didn't go smoothly | ||
<br> | </nowiki><br> | ||
The site was migrated over a 2 window period, and then we had about two days of intense debugging | <nowiki>The site was migrated over a 2 window period, and then we had about two days of intense debugging | ||
<br> | </nowiki><br> | ||
and about another month of smacking the gremlins out | <nowiki>and about another month of smacking the gremlins out | ||
<br> | </nowiki><br> | ||
It was like 200k loc when I got it? | <nowiki>It was like 200k loc when I got it? | ||
<br> | </nowiki><br> | ||
I think I cut about 75k loc out of it | <nowiki>I think I cut about 75k loc out of it | ||
<br> | </nowiki><br> | ||
Just a lot of dead code | <nowiki>Just a lot of dead code | ||
<br> | </nowiki><br> | ||
But that was a literial trial by fire | <nowiki>But that was a literial trial by fire | ||
<br> | </nowiki><br> | ||
What I didn't realize at the time was hydrogen's earlier failure had not been resolved as I thought, and it gave truly abysmal performance, with 10+ second page loads. As soon as this was realized, I quickly pressed fluorine, our 'normal' frontend server into service, and site performance went from horrific to bad. A review of the logs showed that some of the internal caches used by rehash were throwing errors; this wasn't an issue we had seen on dev, and such was causing excessive amounts of traffic to go to the database, and causing Apache to hang as the system tries to keep up with the load. Two hours of debugging have yet to reveal the root cause of the failure, so I've taken a break to write this up before digging into it again | <nowiki>What I didn't realize at the time was hydrogen's earlier failure had not been resolved as I thought, and it gave truly abysmal performance, with 10+ second page loads. As soon as this was realized, I quickly pressed fluorine, our 'normal' frontend server into service, and site performance went from horrific to bad. A review of the logs showed that some of the internal caches used by rehash were throwing errors; this wasn't an issue we had seen on dev, and such was causing excessive amounts of traffic to go to the database, and causing Apache to hang as the system tries to keep up with the load. Two hours of debugging have yet to reveal the root cause of the failure, so I've taken a break to write this up before digging into it again | ||
<br> | </nowiki><br> | ||
OH I REMEMEBR NOW | <nowiki>OH I REMEMEBR NOW | ||
<br> | </nowiki><br> | ||
Ok, so the problem was one of the two database nodes was in a failed state | <nowiki>Ok, so the problem was one of the two database nodes was in a failed state | ||
<br> | </nowiki><br> | ||
I thought it had been resolved, so I had ended up restoring the DB back into a flakely node which then failed hard | <nowiki>I thought it had been resolved, so I had ended up restoring the DB back into a flakely node which then failed hard | ||
<br> | </nowiki><br> | ||
So I was trying to get a cluster running with only half its brain | <nowiki>So I was trying to get a cluster running with only half its brain | ||
<br> | </nowiki><br> | ||
sorry, frontend | <nowiki>sorry, frontend | ||
<br> | </nowiki><br> | ||
flourine was the frontend | <nowiki>flourine was the frontend | ||
<br> | </nowiki><br> | ||
hydrogen and flourine | <nowiki>hydrogen and flourine | ||
<br> | </nowiki><br> | ||
We had been in a 1x2 configuration, one web frontend, two database nodes | <nowiki>We had been in a 1x2 configuration, one web frontend, two database nodes | ||
<br> | </nowiki><br> | ||
I had put hydrogen back into the service, but due to very very heavy caching with varnish and memcached, we weren't seeing the lag | <nowiki>I had put hydrogen back into the service, but due to very very heavy caching with varnish and memcached, we weren't seeing the lag | ||
<br> | </nowiki><br> | ||
rehash had modified a lot of the rendering paths so the site would be more dynamic | <nowiki>rehash had modified a lot of the rendering paths so the site would be more dynamic | ||
<br> | </nowiki><br> | ||
the cost of processing a request is cheap if you never hit the disk | <nowiki>the cost of processing a request is cheap if you never hit the disk | ||
<br> | </nowiki><br> | ||
... I think that's what inspired FTL | <nowiki>... I think that's what inspired FTL | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,140: | Line 2,059: | ||
'''BlackCoffeeDrinker''' (''Today at 2:41 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:41 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
^^ | <nowiki>^^ | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,148: | Line 2,067: | ||
'''NCommander''' (''Today at 2:41 PM'') | '''NCommander''' (''Today at 2:41 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
... I actually understood the rules of the game even at that point, I wanted to prove you could do it | <nowiki>... I actually understood the rules of the game even at that point, I wanted to prove you could do it | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,156: | Line 2,075: | ||
'''BlackCoffeeDrinker''' (''Today at 2:41 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:41 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
abuse cache, never the disk | <nowiki>abuse cache, never the disk | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,164: | Line 2,083: | ||
'''NCommander''' (''Today at 2:41 PM'') | '''NCommander''' (''Today at 2:41 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
when you can treat the network as reliable | <nowiki>when you can treat the network as reliable | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,172: | Line 2,091: | ||
'''BlackCoffeeDrinker''' (''Today at 2:41 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:41 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
the Database should be Write only | <nowiki>the Database should be Write only | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,180: | Line 2,099: | ||
'''NCommander''' (''Today at 2:42 PM'') | '''NCommander''' (''Today at 2:42 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Because each request would enter nginx load balancer, get passed back to an application server, and our dataset was small, only a few gigs | <nowiki>Because each request would enter nginx load balancer, get passed back to an application server, and our dataset was small, only a few gigs | ||
<br> | </nowiki><br> | ||
put the whole thing in memory | <nowiki>put the whole thing in memory | ||
<br> | </nowiki><br> | ||
And I mean the entire blasted database | <nowiki>And I mean the entire blasted database | ||
<br> | </nowiki><br> | ||
That's how mysql cluster works | <nowiki>That's how mysql cluster works | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,194: | Line 2,113: | ||
'''BlackCoffeeDrinker''' (''Today at 2:42 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:42 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
one should only read the DB when the server boots and then only write changes to it - never hit the db | <nowiki>one should only read the DB when the server boots and then only write changes to it - never hit the db | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,202: | Line 2,121: | ||
'''NCommander''' (''Today at 2:42 PM'') | '''NCommander''' (''Today at 2:42 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Yeah, that's how memcached worked | <nowiki>Yeah, that's how memcached worked | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,210: | Line 2,129: | ||
'''BlackCoffeeDrinker''' (''Today at 2:42 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:42 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
yup | <nowiki>yup | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,218: | Line 2,137: | ||
'''NCommander''' (''Today at 2:43 PM'') | '''NCommander''' (''Today at 2:43 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
And to prevent a bottleneck, each web frontend could connect to any master, because we had no serialization concerns | <nowiki>And to prevent a bottleneck, each web frontend could connect to any master, because we had no serialization concerns | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,226: | Line 2,145: | ||
'''BlackCoffeeDrinker''' (''Today at 2:43 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:43 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Designed enough system to have that drilled in my head | <nowiki>Designed enough system to have that drilled in my head | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,234: | Line 2,153: | ||
'''NCommander''' (''Today at 2:43 PM'') | '''NCommander''' (''Today at 2:43 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
Well, we needed read isolation, but any database has that | <nowiki>Well, we needed read isolation, but any database has that | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,242: | Line 2,161: | ||
'''BlackCoffeeDrinker''' (''Today at 2:43 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:43 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
mysql didn't always have it | <nowiki>mysql didn't always have it | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,250: | Line 2,169: | ||
'''NCommander''' (''Today at 2:43 PM'') | '''NCommander''' (''Today at 2:43 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
if you understand the rules of the game, you can break them | <nowiki>if you understand the rules of the game, you can break them | ||
<br> | </nowiki><br> | ||
Like, SN gets. apretty good amount of traffic | <nowiki>Like, SN gets. apretty good amount of traffic | ||
<br> | </nowiki><br> | ||
oh fuck, alexa is gone | <nowiki>oh fuck, alexa is gone | ||
<br> | </nowiki><br> | ||
but we were up there | <nowiki>but we were up there | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/hof.pl - like, you can see it | <nowiki>https://soylentnews.org/hof.pl - like, you can see it | ||
<br> | </nowiki><br> | ||
800+ comments, on a article from 2022 https://soylentnews.org/meta/article.pl?sid=22/07/09/0547216 (incidently, addressing one of the main issues of why I essentially faded out) | <nowiki>800+ comments, on a article from 2022 https://soylentnews.org/meta/article.pl?sid=22/07/09/0547216 (incidently, addressing one of the main issues of why I essentially faded out) | ||
< | </nowiki><br> | ||
<nowiki>and it ran on five relatively small Linodes, | |||
<br> | </nowiki><br> | ||
<nowiki>Whole thing used centralized kerberos and hesiod database | |||
< | </nowiki><br> | ||
and it ran on five relatively small Linodes, | <nowiki>We were on LDAP | ||
<br> | </nowiki><br> | ||
Whole thing used centralized kerberos and hesiod database | <nowiki>https://soylentnews.org/meta/article.pl?sid=15/07/13/0255214 | ||
<br> | </nowiki><br> | ||
We were on LDAP | <nowiki>https://wiki.soylentnews.org/wiki/The_Slashcott - oh the wiki has useful info | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/meta/article.pl?sid=15/07/13/0255214 | <nowiki>The Slashcott | ||
< | </nowiki><br> | ||
<nowiki>Here's the original Slashcott | |||
<br> | </nowiki><br> | ||
<nowiki>I mean | |||
< | </nowiki><br> | ||
https://wiki.soylentnews.org/wiki/The_Slashcott - oh the wiki has useful info | <nowiki>People were fucking pissed about the state of slashdot | ||
<br> | </nowiki><br> | ||
The Slashcott | <nowiki>https://arstechnica.com/information-technology/2014/02/slashdots-new-interface-could-kill-what-keeps-slashdot-relevant/ - THANK YOU ARS | ||
<br> | </nowiki><br> | ||
Here's the original Slashcott | <nowiki>THERE IT IS | ||
<br> | </nowiki><br> | ||
I mean | <nowiki>https://cdn.discordapp.com/attachments/1014650516854296697/1039989964831719514/unknown.png | ||
<br> | </nowiki><br> | ||
People were fucking pissed about the state of slashdot | <nowiki>BETA | ||
<br> | </nowiki><br> | ||
https://arstechnica.com/information-technology/2014/02/slashdots-new-interface-could-kill-what-keeps-slashdot-relevant/ - THANK YOU ARS | <nowiki>^- @Wiki Volunteer @N's Life this is what we revoked against on Slashdot. the Beta interface. Make sure this gets saved | ||
< | </nowiki><br> | ||
<br> | |||
< | |||
< | |||
<br> | |||
< | |||
https://cdn.discordapp.com/attachments/1014650516854296697/1039989964831719514/unknown.png | |||
<br> | |||
BETA | |||
<br> | |||
^- @Wiki Volunteer @N's Life this is what we revoked against on Slashdot. the Beta interface. Make sure this gets saved | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 2,312: | Line 2,215: | ||
'''BlackCoffeeDrinker''' (''Today at 2:49 PM'') | '''BlackCoffeeDrinker''' (''Today at 2:49 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
OH GOD I REMEMBER THAT | <nowiki>OH GOD I REMEMBER THAT | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,320: | Line 2,223: | ||
'''NCommander''' (''Today at 2:49 PM'') | '''NCommander''' (''Today at 2:49 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
shit, I almost think we should have made this a seperate channel | <nowiki>shit, I almost think we should have made this a seperate channel | ||
<br> | </nowiki><br> | ||
Damn it | <nowiki>Damn it | ||
<br> | </nowiki><br> | ||
fuck it | <nowiki>fuck it | ||
<br> | </nowiki><br> | ||
We don't get enough discussion here, and we'll pin the start point | <nowiki>We don't get enough discussion here, and we'll pin the start point | ||
<br> | </nowiki><br> | ||
and log it with the bot | <nowiki>and log it with the bot | ||
<br> | </nowiki><br> | ||
https://slashdot.org/submission/3326505 - YES | <nowiki>https://slashdot.org/submission/3326505 - YES | ||
<br> | </nowiki><br> | ||
<nowiki>Trying to figure out time zones is starting to make my brain hurt, but apparently in a bit over 6 hours somewhere on the other side of globe from Greenwich the Week of Slashcott will begin, as Midnight arrives for anyone in that zone, and then it travels west, where I will encounter it in about 23 h... | |||
< | </nowiki><br> | ||
Trying to figure out time zones is starting to make my brain hurt, but apparently in a bit over 6 hours somewhere on the other side of globe from Greenwich the Week of Slashcott will begin, as Midnight arrives for anyone in that zone, and then it travels west, where I will encounter it in about 23 h... | <nowiki>THIS IS WHERE IT ALL STARTED | ||
<br> | </nowiki><br> | ||
THIS IS WHERE IT ALL STARTED | <nowiki>I mean, look at the old UIDs that came out of the woodwork | ||
<br> | </nowiki><br> | ||
I mean, look at the old UIDs that came out of the woodwork | <nowiki>AKDT! | ||
<br> | </nowiki><br> | ||
AKDT! | <nowiki>https://cdn.discordapp.com/attachments/1014650516854296697/1039990736680128572/image.png | ||
<br> | </nowiki><br> | ||
https://cdn.discordapp.com/attachments/1014650516854296697/1039990736680128572/image.png | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 2,350: | Line 2,251: | ||
'''NCommander''' (''Today at 2:55 PM'') | '''NCommander''' (''Today at 2:55 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
https://wiki.soylentnews.org/wiki/NewName - this is how the name came to be | <nowiki>https://wiki.soylentnews.org/wiki/NewName - this is how the name came to be | ||
<br> | </nowiki><br> | ||
<nowiki>and we did a poll by email, automated, with GPG keys to vote on it | |||
< | </nowiki><br> | ||
and we did a poll by email, automated, with GPG keys to vote on it | <nowiki>like | ||
<br> | </nowiki><br> | ||
like | <nowiki>... hotdam | ||
<br> | </nowiki><br> | ||
... hotdam | <nowiki>https://wiki.soylentnews.org/wiki/Confessions_of_an_Ex-Slashdot_Beta_User there were people who were really really fucking pissed about beta | ||
<br> | </nowiki><br> | ||
https://wiki.soylentnews.org/wiki/Confessions_of_an_Ex-Slashdot_Beta_User there were people who were really really fucking pissed about beta | |||
< | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 2,370: | Line 2,267: | ||
'''sirocyl''' (''Today at 2:56 PM'') | '''sirocyl''' (''Today at 2:56 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
wow | <nowiki>wow | ||
<br> | </nowiki><br> | ||
</div> | </div> | ||
</div> | </div> | ||
Line 2,378: | Line 2,275: | ||
'''NCommander''' (''Today at 2:57 PM'') | '''NCommander''' (''Today at 2:57 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
https://wiki.soylentnews.org/wiki/Archive - this was the prelaunch archive | <nowiki>https://wiki.soylentnews.org/wiki/Archive - this was the prelaunch archive | ||
<br> | </nowiki><br> | ||
<nowiki>The wiki was the first thing to actually get online | |||
< | </nowiki><br> | ||
The wiki was the first thing to actually get online | <nowiki>Because no one knew how we were going to replace Slashdot | ||
<br> | </nowiki><br> | ||
Because no one knew how we were going to replace Slashdot | <nowiki>it wasn't clear if running slashcode was even practical; I remember the general sentiment being it wasn't possible | ||
<br> | </nowiki><br> | ||
it wasn't clear if running slashcode was even practical; I remember the general sentiment being it wasn't possible | <nowiki>I wasn't the only one who did it, robinld got it working on RHEL ... I guess it would have been 6? | ||
<br> | </nowiki><br> | ||
I wasn't the only one who did it, robinld got it working on RHEL ... I guess it would have been 6? | <nowiki>I wiped the database once in pre-launch stuff, like it had been up privately for a few days on golive | ||
<br> | </nowiki><br> | ||
I wiped the database once in pre-launch stuff, like it had been up privately for a few days on golive | <nowiki>and there were a lot of notes, I regret that in hindsight | ||
<br> | </nowiki><br> | ||
and there were a lot of notes, I regret that in hindsight | <nowiki>I think I did it because no one really expected a bunch of development notes to be published publicly | ||
<br> | </nowiki><br> | ||
I think I did it because no one really expected a bunch of development notes to be published publicly | <nowiki>I very much set the standard for transparency | ||
<br> | </nowiki><br> | ||
I very much set the standard for transparency | <nowiki>https://soylentnews.org/meta/article.pl?sid=17/04/20/1055218 - not all of them were good decisions | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/meta/article.pl?sid=17/04/20/1055218 - not all of them were good decisions | <nowiki>I think we only migrated two machines | ||
< | </nowiki><br> | ||
<nowiki>Getting moderation to work was hard | |||
<br> | </nowiki><br> | ||
<nowiki>Like really hard https://soylentnews.org/article.pl?sid=14/02/13/0412219 | |||
< | </nowiki><br> | ||
I think we only migrated two machines | <nowiki>It basically assumed there was tens of thousands active users | ||
<br> | </nowiki><br> | ||
Getting moderation to work was hard | <nowiki>@BlackCoffeeDrinker https://soylentnews.org/~NCommander/journal/1096 - this is incredible | ||
<br> | </nowiki><br> | ||
Like really hard https://soylentnews.org/article.pl?sid=14/02/13/0412219 | <nowiki>Like | ||
< | </nowiki><br> | ||
<nowiki>I can feel the black magic | |||
<br> | </nowiki><br> | ||
<nowiki>https://soylentnews.org/~NCommander/journal/1032 | |||
< | </nowiki><br> | ||
It basically assumed there was tens of thousands active users | <nowiki>and just say I'm a certifiable madman. | ||
<br> | </nowiki><br> | ||
@BlackCoffeeDrinker https://soylentnews.org/~NCommander/journal/1096 - this is incredible | <nowiki>.... AHHHHHHHHHHH | ||
<br> | </nowiki><br> | ||
Like | <nowiki>I fucked pwned myself across space and time | ||
<br> | </nowiki><br> | ||
I can feel the black magic | <nowiki>I actually wrote a postmodern https://soylentnews.org/meta/article.pl?sid=15/06/18/0045246 | ||
<br> | </nowiki><br> | ||
https://soylentnews.org/~NCommander/journal/1032 | <nowiki>... ok then ... | ||
<br> | </nowiki><br> | ||
and just say I'm a certifiable madman. | <nowiki>um | ||
<br> | </nowiki><br> | ||
.... AHHHHHHHHHHH | <nowiki>... you know, I'm going to eat something | ||
<br> | </nowiki><br> | ||
I fucked pwned myself across space and time | <nowiki>Folks, ask me questions | ||
<br> | </nowiki><br> | ||
I actually wrote a postmodern https://soylentnews.org/meta/article.pl?sid=15/06/18/0045246 | <nowiki>because uh ... | ||
< | </nowiki><br> | ||
<nowiki>I don't know what I just read, and I wrote it | |||
<br> | </nowiki><br> | ||
<nowiki>Sourdough and spam is amazing, change my mind | |||
< | </nowiki><br> | ||
... ok then ... | <nowiki>Maybe should have had some godha to go w/ | ||
<br> | </nowiki><br> | ||
um | <nowiki>damn now I raelly want crackers with gohda | ||
<br> | </nowiki><br> | ||
... you know, I'm going to eat something | <nowiki>I think SoylentNews, and FTL (which immedately followed) was basically an end result of being so fed up with Canonical that I needed to do something functional | ||
<br> | </nowiki><br> | ||
Folks, ask me questions | <nowiki>to prove that I could | ||
<br> | </nowiki><br> | ||
because uh ... | <nowiki>I mean, there was nothing saying I had to do this, I wasn't paid | ||
<br> | </nowiki><br> | ||
I don't know what I just read, and I wrote it | <nowiki>I mean, we brought in about 5k per year, which for a site that runs no adversiting | ||
<br> | </nowiki><br> | ||
Sourdough and spam is amazing, change my mind | <nowiki>is obscene | ||
<br> | </nowiki><br> | ||
Maybe should have had some godha to go w/ | <nowiki>like its litterally a text aggreator | ||
<br> | </nowiki><br> | ||
damn now I raelly want crackers with gohda | |||
<br> | |||
I think SoylentNews, and FTL (which immedately followed) was basically an end result of being so fed up with Canonical that I needed to do something functional | |||
<br> | |||
to prove that I could | |||
<br> | |||
I mean, there was nothing saying I had to do this, I wasn't paid | |||
<br> | |||
I mean, we brought in about 5k per year, which for a site that runs no adversiting | |||
<br> | |||
is obscene | |||
<br> | |||
like its litterally a text aggreator | |||
<br> | |||
</div> | </div> | ||
</div> | </div> | ||
Line 2,472: | Line 2,355: | ||
'''NCommander''' (''Today at 3:18 PM'') | '''NCommander''' (''Today at 3:18 PM'') | ||
<div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | <div style="margin-left: 2em; line-height: calc(100% * 1.25);"> | ||
https://soylentnews.org/communityreviews/article.pl?sid=18/10/25/0850204 | <nowiki>https://soylentnews.org/communityreviews/article.pl?sid=18/10/25/0850204 | ||
< | </nowiki><br> | ||
<nowiki>The other is what I'm calling tentatively calling Root Zone in a Box, a series of shell scripts, instructions and docker containers to automatically recreate a simulation of the DNS root zone, and other core internet functionality to allow testing of potential changes to DNS, as well as help study and debug various issues related to Internationalized Domain Names.</nowiki><br> | |||
<br> | |||
< | |||
The other is what I'm calling tentatively calling Root Zone in a Box, a series of shell scripts, instructions and docker containers to automatically recreate a simulation of the DNS root zone, and other core internet functionality to allow testing of potential changes to DNS, as well as help study and debug various issues related to Internationalized Domain Names.<br> | |||
</div> | </div> | ||
</div> | </div> |
Latest revision as of 17:21, 28 November 2022
NCommander (Today at 1:02 PM)
@BlackCoffeeDrinker @Wiki Volunteer here, talking about how slashdot and soylentnews broke off, one of the major changes of the guard of the 90s
So, some context, Slashdot was formed in the very early 90s by CmdrTaco, and CowboyNeal, pretty much the first tech news of the early Internet
This was in the days of the dotcom boom, and it got handed over probably a dozen times; it was an Internet landmark, like SourceForge, or Tucows was
(RIP tucows)
(please ask questions, I'm recounting this all from memory, and some of this is a decade old)
Eventually Slashdot got acquired by DICE Enterainment, after a very long period of changing hands
Like all the original editors were gone
BlackCoffeeDrinker (Today at 1:05 PM)
slashdot's logo was /. because you know...
NCommander (Today at 1:05 PM)
http:///..com
emotional support mom friend (Today at 1:05 PM)
That's not confusing at all lol
NCommander (Today at 1:05 PM)
since browsers back in those days you needed to put http://
BlackCoffeeDrinker (Today at 1:05 PM)
I wanna say it was right-leaning? Hated microsoft and loved open-source
NCommander (Today at 1:06 PM)
Well, Gopher was still active, and you'd still frequently find news: and telnet: links
Like, I remember when those were on theopen net
NCommander (Today at 1:06 PM)
Much more liberarian than anything else
sirocyl (Today at 1:06 PM)
I remember when ftp:// was relatively common, too
NCommander (Today at 1:06 PM)
you mean today?
BlackCoffeeDrinker (Today at 1:06 PM)
Yes, news: was common
emotional support mom friend (Today at 1:06 PM)
B zhzhmfskgdzdhkzhldzlhdslhds
NCommander (Today at 1:06 PM)
Anyway
emotional support mom friend (Today at 1:06 PM)
More so than now?
sirocyl (Today at 1:06 PM)
my thoughts exactly
emotional support mom friend (Today at 1:07 PM)
Yranhfsksfumfsldgujzxgn
NCommander (Today at 1:07 PM)
DICE had made a lot of unpopular changes, but the straw that broke the camels back was "Beta"
sirocyl (Today at 1:07 PM)
oh no
BlackCoffeeDrinker (Today at 1:07 PM)
at some point users revolted because they didn't like changes
CEO of Email, Inc. (Today at 1:07 PM)
Never goes well
NCommander (Today at 1:07 PM)
Like it was this horrid whitespace meme; it turned a very information dense site into a wordpress block
no, it was just bad
sirocyl (Today at 1:07 PM)
it introduced gradients and rounded corners, too
NCommander (Today at 1:08 PM)
It was like if every page of the print New York Times was double spaced
sirocyl (Today at 1:08 PM)
it was awful
CEO of Email, Inc. (Today at 1:08 PM)
Did it go back then? I noticed Soylentnews looks the same as Slashdot does now
BlackCoffeeDrinker (Today at 1:08 PM)
yes, everything still loaded fine in netscape 3 before that
NCommander (Today at 1:08 PM)
Someone should look it up on Wayback
To think we need a screenshot of that
BlackCoffeeDrinker (Today at 1:08 PM)
let me check
sirocyl (Today at 1:08 PM)
damn archiveorg slow today
NCommander (Today at 1:09 PM)
Anyway, Slash (the underlying software) had been open source at one point, but had been left to die in a old CVS repo
(might have been git? Either way, it was heading towards death)
emotional support mom friend (Today at 1:09 PM)
I'm picturing the pharmacy here which makes it funnier
sirocyl (Today at 1:09 PM)
... wasn't git, I'm sure. was it?
BlackCoffeeDrinker (Today at 1:09 PM)
CVS i think
or SVN
CEO of Email, Inc. (Today at 1:09 PM)
Oh, so it got abandoned before you picked it up, then?
sirocyl (Today at 1:09 PM)
mercurial maybe?
CEO of Email, Inc. (Today at 1:09 PM)
The software I mean
NCommander (Today at 1:09 PM)
DICE was still using it, there are some trademark tells like the X-Fry/X-Bender headers
brb
NCommander (Today at 1:10 PM)
back
Regardless or not, enough was enough, so a bunch of us basically got together in IRC on Freenode
The channel was #alphaslash or something like that
The idea was to create a replacement. A few others had launched, like pipedot.org, which was basically a reimaginating with a new PHP codebase, and technocrat relaunched briefly
I think there was some efforts to see if kurosh5n could be risen from the dead
There were folks who remembered that Slash had been open source at once point, and the original archives were still up (it might still be there https://slashcode.com/)
CEO of Email, Inc. (Today at 1:13 PM)
Just redirects to sourceforge 😔
emotional support mom friend (Today at 1:13 PM)
:/
NCommander (Today at 1:13 PM)
and oh boy, Slash is a crankly SoB
This was the Perl CMS
CEO of Email, Inc. (Today at 1:13 PM)
Perl I'm guessing?
NCommander (Today at 1:13 PM)
the original
CEO of Email, Inc. (Today at 1:13 PM)
Yepp
Called it
NCommander (Today at 1:13 PM)
it required a Makefile.PL and has a CPAN bundle
CEO of Email, Inc. (Today at 1:13 PM)
🥖
NCommander (Today at 1:14 PM)
and was written in an era when CPAN expected to be installed as system libraries
But the worst part?
It used parts of mod_perl that aren't $r
oh god did it use parts. It basically kept a scorecard in Apache's shared memory space
to do synchrozation across tasks
it has a cron replacement written in Perl
BlackCoffeeDrinker (Today at 1:15 PM)
Someone that's good in perl wrote this
CEO of Fish Inc. (Today at 1:15 PM)
Horrifying
NCommander (Today at 1:15 PM)
and I mean daemon
Well, how it worked was insane
CEO of Email, Inc. (Today at 1:15 PM)
But why
NCommander (Today at 1:15 PM)
because it generated static pages for everything
CEO of Email, Inc. (Today at 1:15 PM)
Huh, I guess that was probably wise when it came out
NCommander (Today at 1:16 PM)
You basically had the #1 site on the early Internet, by being run by hobbyest with 1993 tech
CEO of Email, Inc. (Today at 1:16 PM)
Sounds like quite the feat honestly
emotional support mom friend (Today at 1:16 PM)
honestlu
NCommander (Today at 1:16 PM)
Like, I can't think of anything than Slashdot. It used to be whenever a server landed on Slashdot - BOOM
BlackCoffeeDrinker (Today at 1:16 PM)
Slashdot currently has 16 web servers all of which are running Red Hat 9. Two serve static content: javascript, images, and the front page for non logged-in users. Four serve the front page to logged in users. And the remaining ten handle comment pages. All web servers are Rackable 1U servers with 2 Xeon 2.66Ghz processors, 2GB of RAM, and 2x80GB IDE hard drives. The web servers all NFS mount the NFS server, which is a Rackable 2U with 2 Xeon 2.4Ghz processors, 2GB of RAM, and 4x36GB 15K RPM SCSI drives.
NCommander (Today at 1:17 PM)
Yeah
CEO of Email, Inc. (Today at 1:17 PM)
Well, that's where the "Slashdot effect" comes from
Which became the Reddit hug of death
Idk what the equivalent is now with widespread cdn use etc
NCommander (Today at 1:17 PM)
this was a codebase as written by the early wizards
not for elegance, but for pure functionality
Like, the only webapp that I can think is more hardcore is the original SF2.5 source code
BlackCoffeeDrinker (Today at 1:18 PM)
Besides the 16 web servers, we have 7 databases. They currently are all running CentOS 4. They breakdown as follows: 2 Dual Opteron 270's with 16GB RAM, 4x36GB 15K RPM SCSI Drives These are doing multiple-master replication, with one acting as Slashdot's single write-only DB, and the other acting as a reader.
emotional support mom friend (Today at 1:18 PM)
Wow
CEO of Email, Inc. (Today at 1:18 PM)
It's funny that they ended up in the same hands
(assuming you mean sourceforge?)
NCommander (Today at 1:18 PM)
We didn't have social media like that back then, it was basically articles, and AIM
NCommander (Today at 1:18 PM)
Yeah
BlackCoffeeDrinker (Today at 1:19 PM)
2 Dual Opteron 270's with 8GB RAM, 4x36GB 15K RPM SCSI Drives These are Slashdot's reader DBs. Each derives data from a specific master database (listed above).
Lastly, we have 3 Quad P3 Xeon 700Mhz with 4GB RAM, 8x36GB 10K RPM SCSI Drives which are sort of our miscellaneous 'other' boxes. They are used to host our accesslog writer, an accesslog reader, and Slashdot's search database.
16 + 7 + 2 + 3
NCommander (Today at 1:19 PM)
Remind me to document just how I ended up in Savannah documentation
But, let's get back to it
BlackCoffeeDrinker (Today at 1:20 PM)
Perl that had to manage running on 28 servers
NCommander (Today at 1:20 PM)
There had been a few efforts to try and get the original code running. It was "decently documented" for what was an internal codebase
But it was tied to Apache 1.3, it needed a very specific configuration of mod_perl, and more
And this was 2014(ish?), Apache 1.3 was dead and buried at that point
CEO of Email, Inc. (Today at 1:21 PM)
Were the undocumented parts things your people had to figure out themselves? Or were the original slash people still reachable somehow
NCommander (Today at 1:21 PM)
We had no help from the original founders
Anyway, I decided to take on the challenge
Back in middle school, I loved Slashdot, I even tried to run it ontop of Mac OS, going as far as learning how to compile Perl, and Apache, etc.
I never actually got it running, cause of CPAN problems, but I knew pretty much what it was going to take
CEO of Email, Inc. (Today at 1:23 PM)
Heh, your slash adventures started early, then
NCommander (Today at 1:23 PM)
I ran Linux on my macs before we got Mac OS X
I was in middle school? It was the greatest thing to do
I love understanding systems
CEO of Email, Inc. (Today at 1:23 PM)
I hear you there, it's fun and satisfying to understand
NCommander (Today at 1:23 PM)
Like, push comes to shove? I could probably do a LFS type system without the book
Anyway, getting off topic
CEO of Fish Inc. (Today at 1:24 PM)
This idea of using Perl to manage a website sounds horrifyingly similar to this ticketing application I helped support at work for a little bit
NCommander (Today at 1:24 PM)
I bought a linode instance, install MySQL
and started to climb that cliff
I compiled a freestanding version of Perl
BlackCoffeeDrinker (Today at 1:24 PM)
I know what you're talking about 😛
NCommander (Today at 1:24 PM)
(because only Python is worse about virtual environments)
Has to be a threading one
I compiled Apache 1.3, with some patching, mod_perl 1.3, and then began the grind of fixing the CPAN bundle
A lot of CPAN was already dying to atrophy by that time
CEO of Fish Inc. (Today at 1:25 PM)
So glad to know I’m not alone https://github.com/bestpractical/rt
NCommander (Today at 1:25 PM)
bugzilla is another old guard one
... mod_perl too, oof
BlackCoffeeDrinker (Today at 1:26 PM)
first job was rt + bugzilla + cvs
NCommander (Today at 1:26 PM)
Although not as bad as Slash
CEO of Email, Inc. (Today at 1:26 PM)
Wait, is Soylent still apache 1.x?
NCommander (Today at 1:26 PM)
no
that was the itch I couldn't let stand
Like
I said at the bginning "we're going to do that"
and that was the last major thing I did in that code base
CEO of Email, Inc. (Today at 1:27 PM)
Well, 2014. 1.3 would have been fucking ancient
NCommander (Today at 1:27 PM)
Yeah, I'll get back to that
By and large, we decided the risk was "acceptable" since we ended up putting the web frontends behind an nginx SSL terminator
oh god, I forgot about that
Slashdot used to make SSL a paid feature
BlackCoffeeDrinker (Today at 1:27 PM)
yes!
NCommander (Today at 1:28 PM)
We wanted to go HTTPS by default, the whole thing was a fucking passion project; it was going to be perfect
Let me find the articles
Like
BlackCoffeeDrinker (Today at 1:28 PM)
(before you say WHY... https used to be slow back then)
NCommander (Today at 1:29 PM)
I wrote about this
BlackCoffeeDrinker (Today at 1:29 PM)
(but also, /. didn't need https)
NCommander (Today at 1:29 PM)
It was considered to be high cost for CPU
BlackCoffeeDrinker (Today at 1:29 PM)
I remember we used to host the minimum amount over HTTPS
CEO of Email, Inc. (Today at 1:29 PM)
Understandable in a way, encryption is expensive
This was before knowledge of the NSA dragnets were public, and also, SSL was seen as relatively pointless by and large; you could still get away with a self signed certificate on the public web
It was really the bandwidth more than anything
Let me find these articles
NCommander (Today at 1:31 PM)
https://soylentnews.org/search.pl?op=stories&author=2
Everything I wrote on SN
Oh fucking hell I forgot about a lot of this
NCommander (Today at 1:31 PM)
https://soylentnews.org/article.pl?sid=14/02/16/2220240 - so it was a major meme on Slashdot how the antique the thing was
Like, we were going to one up old Slashdot so hard
BlackCoffeeDrinker (Today at 1:32 PM)
https://cdn.discordapp.com/attachments/1014650516854296697/1039970670257377290/image.png
lol
NCommander (Today at 1:32 PM)
That was actually a Mission Accomplished moment
Cause well
... UTF-8 has a lot of edge cases
When you need to protect against spam
I think we stlil filtered right to left /left to right markers
But I remember my personal driving energy was very much "/. didn't have it, we're doing IPv6"
@N's Life
(talking about how Internet history happened)
Anyway, the "lead" of the project was someone with the handle of Barbassas?
Fucking weird guy, like, he would quote machovili, and absolute control freak
emotional support mom friend (Today at 1:34 PM)
Ew
NCommander (Today at 1:35 PM)
Basically threatened to tank the project through mismanagement
I forced him out
I felt like a fucking ass, but I did most of the tech work, I had gotten the site running in the cloud
NCommander (Today at 1:35 PM)
We didn't have a name for it then, itwas litterly li69-342
or something like that
https://soylentnews.org/article.pl?sid=14/04/09/1925245 - oh god, the Slashdot port scanner
SN had code in the web frontend that it would actually portscan connecting hosts for adding to an internal block list
emotional support mom friend (Today at 1:36 PM)
I'm sorry, the what —why
NCommander (Today at 1:36 PM)
and yes, I did take advantage of the Unicode
emotional support mom friend (Today at 1:36 PM)
Of course you did
NCommander (Today at 1:36 PM)
CmdrTaco actually commented on it, it was an anti-spam measure
emotional support mom friend (Today at 1:37 PM)
Ah
NCommander (Today at 1:37 PM)
It made the top of hackernews
... like the first time I was on hackernews ...
... I didn't even register the signifance of that at the time
but this was a codebase
https://soylentnews.org/article.pl?sid=14/03/06/0728230 - I actually wrote up about John's departure
Like we were all on IRC at the time
John had us set up our own IRCd; I would have perferred to stay on Freenode
Slack was a thing at that point, but electron apps were really crummy then
emotional support mom friend (Today at 1:38 PM)
And it thought that was a download
NCommander (Today at 1:39 PM)
Look, some of us predate pretty URLs
emotional support mom friend (Today at 1:39 PM)
Gbargbsfhngdjgcn.
NCommander (Today at 1:39 PM)
I still feel kinda bad about it, but basically, the site hadn't an actual name at that point
We had promised to do a naming contest, there was no leadership
I was paying for it literially out of pocket on Linode
On my personal account
BlackCoffeeDrinker (Today at 1:40 PM)
$$$ much
NCommander (Today at 1:40 PM)
I was still at Canonical at the time I think, but I was right at the end
Yeah, it was pricy
John had actually blackmailed us
And sold the soylentnews.org domain without giving it to staff
Matt Angel bought it for 3k
https://soylentnews.org/article.pl?sid=14/03/10/1129232/
Right, we forced him out, and then he sold the domain
Well, I
fucking hell this is a story
Anyway, Matt basically was our venture captilist, and I was the CTO
And I basically said "we're going to incorporate this, and we're going to do it right"
and we did
Fitting, that we got our incorporation papers back on July 4th
https://soylentnews.org/article.pl?sid=14/07/04/2326238
Like, it's surprisingly hard to know how to make a corporation that has no physical assets
Like, its the definition of a .com company
https://soylentnews.org/article.pl?sid=14/07/16/0253256 - rereading this is a trip
Past N did a good job
... wow, I just proved that comments really do help the next person in the future
which uh ... was me ...
I think someone tallied it up? I had written like 100k words in the first two years. It was an absolute meme that the editors would fear whenever NCommander opened the editing console
and it was fast like, we had a private #chillax channel, and I say that "I'm going to write an article" and 3k words later would appear in 20 minutes
emotional support mom friend (Today at 1:47 PM)
And well, that checks out
NCommander (Today at 1:47 PM)
I should actually see if the quotes database is still up, I'm about 40% of #staff
But Matt and I got it incorporated; and there was a bunch of us out in the northeast so we had a major meet and greet day with a BBQ
and then I brought the party to everyone
https://soylentnews.org/article.pl?sid=14/06/17/0059210 this was one of the big things, like I had drafted up subscriptions, and then the pushback was really bad
Essentially, the original plan was to basically make something akin to SDF
All the editors had legit shell accounts, there was people.soylentnews.org
that actually wasn't an intentional wordplay
Debian has people.debian.org which is used to host personal projects on their namespace; Canonical had people.canonical.com
Looks like they revoked my SSH key; which is fine
Haven't been involved a very long time
sirocyl (Today at 1:51 PM)
oh my god
NCommander (Today at 1:51 PM)
like I didn't even notice it until jsut now
... right
Let ie be known that I can infact do it to myself
https://soylentnews.org/article.pl?sid=14/05/05/0541206
Like, if I was going to make a remake of the original Slashdot, I was going to make it a pinnacle to the gods
The li694-22 Domain
I've mentioned this on comments, and its on the wiki as well, but we use an internal gTLD for referencing nodes throughout the backend. Every node can access each other at hostname.li694-22. The name itself is a reference to the original private URL which we used for bringing up Slashcode way back before SN was decided as our temporary name. We have full forward and reverse resolution available, and only publish AAAA records for normal services. Oh yeah, about that ...
sirocyl (Today at 1:53 PM)
wait. shelter island?
NCommander (Today at 1:53 PM)
?
Linode
... wow
Is that actually the shelter island area code
Anyway, after incorporation, I had fairly large plans for Soylent, but that's when health things started to get worse
https://soylentnews.org/article.pl?sid=14/05/12/0335243
I had wanted to be able to do actual journalism instead of just a news aggitator
sirocyl (Today at 1:55 PM)
Image
wait, 11694 my b
emotional support mom friend (Today at 1:55 PM)
headpats
NCommander (Today at 1:55 PM)
Someone needs to remember to run /log when I finish
so the bot grabs it
sirocyl (Today at 1:56 PM)
Image
Rockaway Park
NCommander (Today at 1:56 PM)
Anyway, SN didn't quite pan out the way I had hoped
Like, I had to justify to the Internet why we were doing things, there was major concerns about freedom of speech
This was in 2014, the Snowden leaks had just happened
sirocyl (Today at 1:56 PM)
mmhm
NCommander (Today at 1:57 PM)
https://soylentnews.org/article.pl?sid=14/05/12/0335243
Wrong link
Like we ran our own Tor exit node: https://soylentnews.org/article.pl?sid=15/05/26/062240
It got a surprising amount of use
https://soylentnews.org/article.pl?sid=15/04/01/0212256 - the eBBQ
This was a milestone event. This was our first year up
Like, this was a celebration
I hope to play as a 24-hour event, from 0:00 to 23:59 EST, though that might change depending on how I'm feeling. I plan to setup a Skype session so members of the staff can join in and perhaps field a question or two. If anyone wants to live update for me (watch the stream and keep notes on what I've done) or something similar, drop me a Private Message on either the SoylentNews IRC channel or on Freenode (I'll be in #nethack while I'm streaming).
This was in the early days of Lets plays. Twitch was still pretty small ... I don't think I was at Beam yet
BlackCoffeeDrinker (Today at 1:59 PM)
justin.tv you mean
NCommander (Today at 2:00 PM)
No, it was twitch at this point
I say so as much in the post
This must have been right after I left Canonical, but before I got hired at MCProHosting
Or before they moved me over
There was like a 1-2 month period where I did actual sysadmin work
Note to streamers: For those watching via Twitch, there is a 20-30 stream delay, so if I don't immediately respond, assume that's the reason.
wow
I don't know if that was foreshadowing or not
... I might have been at Mixer at that point?
BlackCoffeeDrinker (Today at 2:01 PM)
20 to 30 !?!
NCommander (Today at 2:01 PM)
Or it was a sure thing
NCommander (Today at 2:01 PM)
That was the average
BlackCoffeeDrinker (Today at 2:01 PM)
I never realize it was that bad
NCommander (Today at 2:01 PM)
It could go minutes long unoptimized
Packet delay is cummative over the life of the stream
BlackCoffeeDrinker (Today at 2:02 PM)
I rememeber that long stream had A/V desync
NCommander (Today at 2:02 PM)
Yeah I think I was already thinking about latency at this point
What got me hired at MCProHosting was a discussion with Matt the CEO
Who was on my hiring call
... I should have questioned that at the time ...
and Matt had asked me questions about it; I had listened low latency experience on my resume
It was in terms of system processing, not networking, but "eh, close enough?"
BlackCoffeeDrinker (Today at 2:04 PM)
HAHAHAHHAHA
NCommander (Today at 2:04 PM)
I mean, I didn't know how different they were at the time
I understood things like packet delay due to TCP/IP
But I never really thought about it beyond that.
I should give some context here
In system processing, latency is generally in reference to what is known as realtime processing
Basically, it means you need to do X amount of work in Y amount of time
Most computing is not realtime, but its fast enough for humans not to notice
i.e., keyboard entry is not real time
The big SoB being audio
BlackCoffeeDrinker (Today at 2:06 PM)
DMA Audio was a big deal
NCommander (Today at 2:06 PM)
Video you can get away with more
(I think this is worth talking about, even though its off topic)
BlackCoffeeDrinker (Today at 2:07 PM)
Video was so unobtanium that a different approach was needed
NCommander (Today at 2:07 PM)
Well, by and large, it was geared toward animation, you had Smacker, and then compositing
Kodak used to charge a very pretty penny to make high quality analogue coversions
fuck, I don't think I ever brought up Castle Infinity
I haven't even thought about them in ... has to be decades
Uh, that was the period of my life when you can literially say I had the job title "Architect of Infinity"
BlackCoffeeDrinker (Today at 2:08 PM)
the MMO ?
NCommander (Today at 2:08 PM)
Yeah
I didn't play it back in the Starwave days
But the servers had gotten tossed out
Literially tossed out
One of the diehard fans, Kevin Quilt, dumpster dived for them
and put the game online
They had full source code, and gotten a legal agreement out of Starwave to run it
(it might have been Go? They got bought by Disney)
The game was made by Starwave, then owned by GO, and then Disney
It was a 9x era MMOG, and everything that implies
The original thing ran on NT 3.51, and the client on 9x, and it abused things like IPC and COM
and it did *cute coding
BlackCoffeeDrinker (Today at 2:10 PM)
😭
NCommander (Today at 2:11 PM)
case 'ABCD': /* this compiles, because a four byte char can be cast to an int, and VC++6 will not complaint*/
It had this horrid heap manager from a third party company, it used RAD game tools, and a few other bits
BlackCoffeeDrinker (Today at 2:11 PM)
HAHAHAHA AHAHAHAHAH AHAHAHHAHA YES !! YES!!
NCommander (Today at 2:12 PM)
The level editor was a MFC application
oh god, SP4k
BlackCoffeeDrinker (Today at 2:12 PM)
God VC++6 was amazingly bad
NCommander (Today at 2:12 PM)
that ... that thing was bad, it was a C++ codebase from hell
Because the code started life on VC++4, been poorly migrated to VC++6, and then I kicked it screaming to VC++2005
SED (Today at 2:12 PM)
Like Hammer:blep:
BlackCoffeeDrinker (Today at 2:12 PM)
VC++2005 didn't compile what VC++6 did...
how did they migrate that ?
NCommander (Today at 2:13 PM)
How did I migrate it
BlackCoffeeDrinker (Today at 2:13 PM)
Poorly ?
oh
NCommander (Today at 2:13 PM)
well, it still takes case syntax
No, it was still on VC++6 when I got there
I was in high school at the time
Actually, remind me to come back to castle infinity @N's Life, let me finish SoylentNews
BlackCoffeeDrinker (Today at 2:13 PM)
I did my final school project on VC++6
NCommander (Today at 2:14 PM)
Because I want to recount my last bit
emotional support mom friend (Today at 2:14 PM)
So, that first, then infinity
NCommander (Today at 2:14 PM)
This was the last major coding exercise
https://soylentnews.org/article.pl?sid=15/03/13/044211
We had called our branch fo Slash, slashcode 15.03
(you can see the Ubuntu influence)
We didn't do timed releases, I just gave them version numbers to tag
The plan was to do a final Apache 1.3 release
I had gone into what can be described as a manic mood
This was about a year after we launched
And I was going to get us off Apache 1.3, and onto 2.0
(2.2 didn't have all the CPAN modules we needed)
This is not soething you do lightly
Like
this is a fucking effort
mod_perl was wrapped around rehash's codebase like a cancer
And it used a global state table and an API that didn't exist in 2.0
Most of the codebase was clean, the slashd daemon ran without the mod_perl components, but the entire frontend was dependent on it
I had ripped a lot of the static code generators out; it was 2015, we could afford the processing port
It's a thing of beauty when you delete a lot of dead code
Like, I think I purged a good 40k LoC from that beast
and we had a commitment not to use frontend javascript
It was a testimonent to the old Internet
unless its changed, privacy badger was still 0
Back at that time, I actually considered leaving NCommander as a handle to whomever replaced me
Ala dread pirate roberts from the movie, the Silk Road hadn't happened yet
We had a development box, lithium
All the machines were named after elements, starting at hydrogen, and going up
Canonical actually used the same naming scheme
The cdimage build master was called antimony, which was appropiate
To even start porting the monster, I had to sort out the mess of CPAN dependencies
and I still had to have a self-contained Apache build system
https://github.com/SoylentNews/rehash/blob/master/Makefile#L341 - I wrote a massive makefile to do it
Including patching a few CPAN bits to work with mod_perl 2
Well, the makefile was already there
but I really made it there
This was going to be a reproducible build damn it
I also think we migrated to MySQL cluster at the same time
Like
holy fuck
what was I thinking
A little known feature of the codebase is that its built on a plugin architecture which makes expansion easier and allows for multi-hosting. That is to say, we can have multiple sites out of a single installation; i.e., soylentnews.jp and soylentnews.org can both point to the same installation, but show a different mainpage. While we're still somewhat far off from supporting this kind of user-generated content, this upgrade sets the framework for allowing it to happen. The mainpage of SN will remain as it is, but allow the community to form and discuss any topic they wish, all handled under the same familiar interface you use now.
Actually, this is a bit important, there were other slashdot forks, there was slashdot.jp, and barrapuento.com, both on the original Slash code, I think there was a few others, but those were the two I remmber trying to reach
https://soylentnews.org/article.pl?sid=15/05/19/0740226 - we even discucssed i18n/l10n efforts
https://soylentnews.org/meta/article.pl?sid=15/06/01/0657256 - fucking hell
I actually did do both at the same time
Rewrote large amounts of the site to migrate to Apache 2, mod_perl 2, and perl 5.20.
This was a massive undertaking. I did a large part of the initial work, but paulej72, and TheMightyBuzzard did lots to help fix a lot of the lingering issues. Major props to Bytram for catching many of the bugs pre-release
Nexus Support (finally).
Currently we have the Meta and Breaking News nexii, with the possibility of adding more in the future, such as a Freshmeat replacement.
Nexii can be filtered in the user control panel under the Homepage tab. At the moment, this functionality is hosed due to unexpected breakage, but should be functional within the next 24-48 hours
IPv6 support - the AAAA record is live as we speak
Themes can be attached to a nexus independent of the "primary theme" setting; user choice overrides this
Squashed More UTF-8 Bugs
Migration to MySQL Cluster (more on this below)
Rewrote site search engine to use sphinx search and (in general) be more useful
Long comments properly collaspe now
Support for SSL by default (not live yet)
Fault tolerance; the site no longer explodes into confetti if a database or webfrontend goes down unexpectedly; allows for much easier system maintenance as we can offline things without manual migration of services
Improved editor functionality, including per-article note block
Lots of small fixes everywhere, due to the extended development cycle
Like, I did IPV6, mod_perl 2, and database clustering on a single upgrade cycle
and I mean
it worked
@BlackCoffeeDrinker what ... how did I do this?
emotional support mom friend (Today at 2:26 PM)
Not something you'd recommend but it did work apparently
NCommander (Today at 2:26 PM)
you should realize the sheer absurdity of that changelog
That's the fucking marketing statement, not the actual engineering changelog
emotional support mom friend (Today at 2:27 PM)
O.o
NCommander (Today at 2:27 PM)
In our year and a half of dealing with slashcode, we had also identified several pain points; for example, if the database went down even for a second, the site would lockup, and httpd would hang to the point that it was necessary to kill -9 the process. Although slashcode has support for the native master-slave replication built into MySQL, it had no support for failover. Furthermore, MySQL's native replication is extremely lacking in the area of reliability. Until very recently, there was no support for dynamically changing the master database in case of failure, and the manual process is exceedingly slow and error prone. While MySQL 5.6 has improved the situation with global transactions IDs (GTID), it still required code support in the application to handle failover, and a specific monitoring daemon to manage the process, in effect creating a new single point of failure. It also continues to lack any functionality heal or otherwise recover from replication failures. In my research, I found that there was simply bad and worse options with vanilla MySQL in handling replication and failover. As such, I started looking seriously into MySQL Cluster, which adds multi-master replication to MySQL at the cost of some backwards compatibility.
OH GOD I FORGOT ABOUT THIS
Right, so because the code was so crankly, if the MySQL daemon ever went down
Everything else would lock up
And I mean, we would have to killall -9 httpd
and this happened fairly often because Linode used to restart boxes regularly for downtime
BlackCoffeeDrinker (Today at 2:28 PM)
Indeed how
are you like 5 ppl in one ?
NCommander (Today at 2:28 PM)
https://soylentnews.org/meta/article.pl?sid=16/08/25/073218 - I'm a fucking overachiever
BlackCoffeeDrinker (Today at 2:29 PM)
Those weren't established standards
emotional support mom friend (Today at 2:29 PM)
Did…that got fixed, right?
NCommander (Today at 2:29 PM)
Well
I fixed it by making the database not go down
ever
emotional support mom friend (Today at 2:29 PM)
I mean that works
NCommander (Today at 2:29 PM)
Like, the fucking site had to have a 4 nines uptime
BlackCoffeeDrinker (Today at 2:29 PM)
Very nice
NCommander (Today at 2:29 PM)
And for a legacy mod_perl site
in an era before containers or dockerization
Kubernetes hadn't been made yet
Docker still was in its infancy
BlackCoffeeDrinker (Today at 2:30 PM)
we did have red/blue where we'd ship a server with the next version to replace the server that was in prod
NCommander (Today at 2:30 PM)
Like, I had to rewrite the etnire site search engine to do that migration
The original search engine used MySQL FULLTEXT tables
I rewrote it to run sphinx
You'd probably use Elastasearch these days, but ES is the cloud sucks
BlackCoffeeDrinker (Today at 2:31 PM)
Word tables
NCommander (Today at 2:31 PM)
The primary cause of the slowdown was due to the fact that rehash did large JOIN operations on text columns in MySQL. This is bad practice in general due to performance reasons, but it causes a drastic slowdown with MySQL cluster, which prevents the query optimizer from doing what's known as a "pushdown", and allowing the query to execute on the NDB nodes. This caused article load to be O(n*m), where n was the number of articles in the database and m was the number of articles with the neverdisplay attribute set. The revised queries now load at O(1). Instead it had to do multiple pulls from the database and assemble the query data on the frontend, a process that took 4-5 seconds per problematic query. The problem was compounded that there are limited number of httpd daemons at any given moment, and any database pull that hit a problematic query (which were in index.pl and article.pl) would cause resource exhaustion.
Like
THAT WAS A CRANKLY MIGRATION
June 02 2015
... WTF, I WAS DOING FTL AT THE SAME TIME
CEO of Fish Inc. (Today at 2:33 PM)
HOW
how did you have the time
NCommander (Today at 2:33 PM)
https://github.com/microsoft/ftl-sdk/commit/09fc8aadc86a7fe0d99c9a997b9a7198333bc013
no, I didn't do it yet
emotional support mom friend (Today at 2:33 PM)
What weren't you doing at the time?
NCommander (Today at 2:33 PM)
This was right in the Canonical/FTL gap
This was the last passion project, I wanted SN to succeed and to be able to live on this; the job at MCProHosting was the easy paycheck
Yeah
and it was the thing I promised I do
The last thing I said to the community that we were going to modernize this codebase
emotional support mom friend (Today at 2:34 PM)
And well
NCommander (Today at 2:36 PM)
Yeah
I honestly remember being utterly disappointed at the time that it didn't go smoothly
The site was migrated over a 2 window period, and then we had about two days of intense debugging
and about another month of smacking the gremlins out
It was like 200k loc when I got it?
I think I cut about 75k loc out of it
Just a lot of dead code
But that was a literial trial by fire
What I didn't realize at the time was hydrogen's earlier failure had not been resolved as I thought, and it gave truly abysmal performance, with 10+ second page loads. As soon as this was realized, I quickly pressed fluorine, our 'normal' frontend server into service, and site performance went from horrific to bad. A review of the logs showed that some of the internal caches used by rehash were throwing errors; this wasn't an issue we had seen on dev, and such was causing excessive amounts of traffic to go to the database, and causing Apache to hang as the system tries to keep up with the load. Two hours of debugging have yet to reveal the root cause of the failure, so I've taken a break to write this up before digging into it again
OH I REMEMEBR NOW
Ok, so the problem was one of the two database nodes was in a failed state
I thought it had been resolved, so I had ended up restoring the DB back into a flakely node which then failed hard
So I was trying to get a cluster running with only half its brain
sorry, frontend
flourine was the frontend
hydrogen and flourine
We had been in a 1x2 configuration, one web frontend, two database nodes
I had put hydrogen back into the service, but due to very very heavy caching with varnish and memcached, we weren't seeing the lag
rehash had modified a lot of the rendering paths so the site would be more dynamic
the cost of processing a request is cheap if you never hit the disk
... I think that's what inspired FTL
BlackCoffeeDrinker (Today at 2:41 PM)
^^
NCommander (Today at 2:41 PM)
... I actually understood the rules of the game even at that point, I wanted to prove you could do it
BlackCoffeeDrinker (Today at 2:41 PM)
abuse cache, never the disk
NCommander (Today at 2:41 PM)
when you can treat the network as reliable
BlackCoffeeDrinker (Today at 2:41 PM)
the Database should be Write only
NCommander (Today at 2:42 PM)
Because each request would enter nginx load balancer, get passed back to an application server, and our dataset was small, only a few gigs
put the whole thing in memory
And I mean the entire blasted database
That's how mysql cluster works
BlackCoffeeDrinker (Today at 2:42 PM)
one should only read the DB when the server boots and then only write changes to it - never hit the db
NCommander (Today at 2:42 PM)
Yeah, that's how memcached worked
BlackCoffeeDrinker (Today at 2:42 PM)
yup
NCommander (Today at 2:43 PM)
And to prevent a bottleneck, each web frontend could connect to any master, because we had no serialization concerns
BlackCoffeeDrinker (Today at 2:43 PM)
Designed enough system to have that drilled in my head
NCommander (Today at 2:43 PM)
Well, we needed read isolation, but any database has that
BlackCoffeeDrinker (Today at 2:43 PM)
mysql didn't always have it
NCommander (Today at 2:43 PM)
if you understand the rules of the game, you can break them
Like, SN gets. apretty good amount of traffic
oh fuck, alexa is gone
but we were up there
https://soylentnews.org/hof.pl - like, you can see it
800+ comments, on a article from 2022 https://soylentnews.org/meta/article.pl?sid=22/07/09/0547216 (incidently, addressing one of the main issues of why I essentially faded out)
and it ran on five relatively small Linodes,
Whole thing used centralized kerberos and hesiod database
We were on LDAP
https://soylentnews.org/meta/article.pl?sid=15/07/13/0255214
https://wiki.soylentnews.org/wiki/The_Slashcott - oh the wiki has useful info
The Slashcott
Here's the original Slashcott
I mean
People were fucking pissed about the state of slashdot
https://arstechnica.com/information-technology/2014/02/slashdots-new-interface-could-kill-what-keeps-slashdot-relevant/ - THANK YOU ARS
THERE IT IS
https://cdn.discordapp.com/attachments/1014650516854296697/1039989964831719514/unknown.png
BETA
^- @Wiki Volunteer @N's Life this is what we revoked against on Slashdot. the Beta interface. Make sure this gets saved
BlackCoffeeDrinker (Today at 2:49 PM)
OH GOD I REMEMBER THAT
NCommander (Today at 2:49 PM)
shit, I almost think we should have made this a seperate channel
Damn it
fuck it
We don't get enough discussion here, and we'll pin the start point
and log it with the bot
https://slashdot.org/submission/3326505 - YES
Trying to figure out time zones is starting to make my brain hurt, but apparently in a bit over 6 hours somewhere on the other side of globe from Greenwich the Week of Slashcott will begin, as Midnight arrives for anyone in that zone, and then it travels west, where I will encounter it in about 23 h...
THIS IS WHERE IT ALL STARTED
I mean, look at the old UIDs that came out of the woodwork
AKDT!
https://cdn.discordapp.com/attachments/1014650516854296697/1039990736680128572/image.png
NCommander (Today at 2:55 PM)
https://wiki.soylentnews.org/wiki/NewName - this is how the name came to be
and we did a poll by email, automated, with GPG keys to vote on it
like
... hotdam
https://wiki.soylentnews.org/wiki/Confessions_of_an_Ex-Slashdot_Beta_User there were people who were really really fucking pissed about beta
sirocyl (Today at 2:56 PM)
wow
NCommander (Today at 2:57 PM)
https://wiki.soylentnews.org/wiki/Archive - this was the prelaunch archive
The wiki was the first thing to actually get online
Because no one knew how we were going to replace Slashdot
it wasn't clear if running slashcode was even practical; I remember the general sentiment being it wasn't possible
I wasn't the only one who did it, robinld got it working on RHEL ... I guess it would have been 6?
I wiped the database once in pre-launch stuff, like it had been up privately for a few days on golive
and there were a lot of notes, I regret that in hindsight
I think I did it because no one really expected a bunch of development notes to be published publicly
I very much set the standard for transparency
https://soylentnews.org/meta/article.pl?sid=17/04/20/1055218 - not all of them were good decisions
I think we only migrated two machines
Getting moderation to work was hard
Like really hard https://soylentnews.org/article.pl?sid=14/02/13/0412219
It basically assumed there was tens of thousands active users
@BlackCoffeeDrinker https://soylentnews.org/~NCommander/journal/1096 - this is incredible
Like
I can feel the black magic
https://soylentnews.org/~NCommander/journal/1032
and just say I'm a certifiable madman.
.... AHHHHHHHHHHH
I fucked pwned myself across space and time
I actually wrote a postmodern https://soylentnews.org/meta/article.pl?sid=15/06/18/0045246
... ok then ...
um
... you know, I'm going to eat something
Folks, ask me questions
because uh ...
I don't know what I just read, and I wrote it
Sourdough and spam is amazing, change my mind
Maybe should have had some godha to go w/
damn now I raelly want crackers with gohda
I think SoylentNews, and FTL (which immedately followed) was basically an end result of being so fed up with Canonical that I needed to do something functional
to prove that I could
I mean, there was nothing saying I had to do this, I wasn't paid
I mean, we brought in about 5k per year, which for a site that runs no adversiting
is obscene
like its litterally a text aggreator
NCommander (Today at 3:18 PM)
https://soylentnews.org/communityreviews/article.pl?sid=18/10/25/0850204
The other is what I'm calling tentatively calling Root Zone in a Box, a series of shell scripts, instructions and docker containers to automatically recreate a simulation of the DNS root zone, and other core internet functionality to allow testing of potential changes to DNS, as well as help study and debug various issues related to Internationalized Domain Names.