The sad case of the imageboard software that could but never will.
Most of this article no longer reflects my feelings. Please read https://medium.com/@infinitechan/hotwheels-a-postmortem-9ea800d9227b#.pffmhxqtn if you wish to understand them. I’m leaving it as it is for historical reasons only.
Part 1: The Complete Story of the Failed Migrations of Infinity Next
I’ve decided to write this in long form for the record, because memories fade and this is too important to forget. It’s difficult for me to write — I really don’t want to, and wish it didn’t have to come to this. But I do and it does. Users deserve to know exactly why I decided Next could not be saved, what I did to save the donor’s money (including ~$2500 of my own) and all relevant that happened during Josh’s stay.
Three days ago, January 23rd 2016, Joshua and I ate pizza and watched King of the Hill. He was talking about how he had gained weight and it was hard to find clothes for people his size here, so I showed him one of my favorite episodes — Husky Bobby, from Season 2. After that, I asked if he wanted to watch more as we were waiting. He said sure so I put on my favorite episode — Lupe’s Revenge. Since we still had more time, I figured since we had just been there ourselves we watched Returning Japanese. We were waiting to go to Katipunan to pick up Modafinil — an alternative to Adderall, which was what he really wanted, and even went so far as to ask Ron in Japan how to acquire. The guy with it texted me, “sorry, I can’t get there until 7PM. Is that OK?” It wasn’t OK for Josh, who was tired, so he left after we rescheduled until Monday.
Contrary to what Josh would have people believe, I did everything I could to make him happy and thereby help Infinity Next succeed.
It’s true that I failed at writing as much code for Infinity Next as he and I would have liked, but any problem he had here in the Philippines I did my very best to solve. He was landing here, I paid for the van home and two months of rent. He thought he had ADHD and wanted medication, I tried my damnedest to find a doctor here who knew anything about that, and eventually found an alternative. His apartment was full of empty two liters of Coke Zero, spilled coffee and other garbage, I offered to get him a professional cleaning service and I even had my personal assistant Mochi clean up after him multiple times when he refused because he didn’t want strange people around. When the donations stopped coming, I handed him a bag of cash, told him it was an anonymous Bitcoin donation but it was really me. When I was going to Japan on a trip planned way in advance, I didn’t want him to feel left out so I asked if he could come along. I helped him arrange two job offers in the small tech sector in a third world country — both of which paid more than I make — and he refused both.
Most importantly, I advertised his effort before 8chan’s users above other efforts I knew of. I vouched for him before it’s owners and got servers for him to test on.
I did everything I could think of to help Infinity Next succeed. I’m still in mourning for it, to be frank.
Of course, he also helped me. In Japan, since Mochi’s visa was too expensive for me, he helped me empty some waste because my wheelchair wouldn’t fit into the Japanese bathroom in our room and he carried me in an airplane when the attendant wanted to do it in a dangerous way. I only mention this because he did — it takes a special kind of person to use their assistance to a disabled person against them in an argument, especially when that assistance was voluntary on a free vacation.
I am by no means perfect in all this — I promised to finish secure tripcodes, and it didn’t happen. I promised to help with static pages, and those also did not happen. I sometimes was cold and distant when I should have been more warm and sympathetic, I suppose.
Enough of the backstory, let’s get to it. I was growing increasingly worried about Josh’s wanton disregard of users. My most trusted friend on 8chan, lowcard, warned me that all IP addresses which had viewed the beta site had leaked on January 15th, along with the pages which they visited. Basically an entire access log was made public. I confronted him about this, and his answer was this. I was not at all happy about this, but Next was so close to done and I naively believed if I just let one more thing go, I would be rewarded. I was deep in the loss aversion fallacy.
All this time, failed migration after failed migration happened. After the first one on December 19, wherein many users of the #8chan-dev IRC channel, Josh and I worked to find the problem, spirits were high. Oh, it’s just a silly Postgres syntax problem because now we have many records. We can fix that right up. Oh, it’s just a problem with this esoteric PHP feature. Oh, it’s just a problem with Laravel’s Postgres query writer. And on and on like this, until it seemed we were running in circles in one of those Hanna Barbera cartoons.
We couldn’t even direct only a portion of the site without Next instantly shitting itself. At this point Josh started blaming the servers, but if you can’t do better than a system that rewrites its index page to an array of hard disks over the NFS protocol, the problem is with you and not with us.
Finally, on January 10th, things came to a head. I got into an argument with Josh in the #8chan-dev channel, and decided to give him an ultimatum. No one could seem to get Infinity Next to more than 100 requests per second. Since 8chan has 8 servers (ba dum tiss), this is the absolute minimum since on average it gets 800 requests per second.
While we went back and forth for weeks working on Next, an idea for how to apply some of Next to vichan+infinity was hatching. You see, in November of 2014 I foresaw a possible I/O problem and worked on a file called “read.php”. However, I was a bit naive at the time — I didn’t foresee the Twig disk cache as being a problem, and we weren’t even using Varnish at the time, so in production the server load went to 900 and I instantly scrapped it. But I realized that I could perhaps make it work, with some doing.
I told Josh that he had two weeks to add Varnish to Next, and during that time I was going to rewrite read.php — now with a more cool-sounding name, vfec.php (Vichan Front End Controller). I never said that if it worked Next was out forever — I just wanted to try something else because 8chan was and is horribly crippled all the while developers are arguing with each other.
The possibility of me working on Vichan led to a somewhat worrying discussion and yet another threat to quit, but I decided to continue on with it because I was starting to see more and more that Next could fail.
Things were mostly quiet during this time. A friend of mine told me about modafinil, and since Josh mentions Adderall almost every other time I see him, I decided it would be a great way for him to experiment with something safe. I told Josh that Adderall is basically just meth pills, and he could get meth for cheaper if he was discrete, but he was convinced he needed this specific medication. I mention modafinil to him and after he doesn’t do much with it, I offer to go on a Facebook page where I saw it for sale and send a message for him and meet up with whoever. This gets him to agree.
In case this makes no sense to you, well, let me say that I love the Philippines in so many ways. The food is cheap and good, the women are beautiful and the weather is gorgeous year round. I can have a 24 hour caretaker for only $200 per month, and my rent is barely any more than that, and could even be cheaper if I looked more and held out for a deal. I have freedom to go wherever I like without having to call a shitty unreliable cripple cab service, and if I work hard on contracts I have money left over to go on vacation more than I ever could in the US.
But Josh wasn’t like this at all. I never really knew him before he came here, but he was very withdrawn. He only seemed to leave the immediate area to get fast food, and his only local friend other than me was another expat from the Kiwi Farms (his forum for people who like chronicling the adventures of mentally ill people). He also noticeably gained weight while here, so I was worried about him. Every time he had go to The Bureau of Immigration or do anything outside of our neighborhood, he’d take me along and Mochi and I would guide the cab driver to the destination, and also find the way home.
I thought it was normal at the time but thinking back I just don’t get why he never seemed to be able to go on his own. A cripple and his aide can’t lend a huge guy much protection…He explained it only that they didn’t understand him immediately when he talked, and he hated trying to talk to people. I guess this is an American thing? It certainly never happened to me, I love language, and speak English, Spanish, Esperanto, and some Japanese and Tagalog (Filipino). But enough about me, back to Next…
On the 23rd we had the KOTH fueled meeting I mentioned above. I tried not to talk about Next so we wouldn’t have a physical confrontation, but I did want to bring up the IP leak and just ask how things were going.
When the 24th rolled around, /a/’s owner, Tenicu, asked me if VFEC was ready. It almost was, it just had some bugs with user flags that didn’t happen on my test site and the media handling was not as simple as I anticipated. To be honest, this is another mistake I made. I should have worked on VFEC harder and faster so I could have rolled it on time. But what happened next threw a wrench in all my plans. I won’t go over it again since everyone already knows.
It was talking to Ron (2ch lead engineer, @CodeMonkeyZ on Twitter) that finally made me make up my mind. Ron was very surprised I was calling him about this, and said that he never canceled Josh’s contract, and he never said that Next was a failure. Instead he offered he and his fellow engineer’s help in case Josh needed it, and took a few day break.
There’s only one thing I want to clarify — I did feel physically ill after Josh left with no good explanation for what happened other than “I believed that I was being fired therefore I was, validate my beliefs shitlord!”, but the modafinil thing was overly dramatic. What I meant was, I can’t believe that Josh won’t even work on this simple thing without drugs. I can’t believe that he would delay this until we get drugs into his system, whenever that is, no matter what they are. It’s not like these are life saving pills or he has a painful condition and needs them to focus on something other than that, he just needs them because they might help him work better, maybe, allegedly, according to some articles online. He never tried them before, so he didn’t even know if it would work.
After it sunk in that he was gone, I realized that 8chan was in the worst situation it had ever been since its Patreon got suspended. Hell, since ever really. 8chan had never been worse off, technically and emotionally for users. And the one guy who took $12,000 to fix it just quit because a voice in his head told him Ron fired him, and his identity as a brogrammer wasn’t being validated by 8chan users, or something.
I couldn’t focus on code with this going on, I couldn’t concentrate at all on setting up a server. I delayed VFEC.
With that, let’s get to part 2…
Part Two: In Which I Attempt To Find A Way Forwards for 8chan
Whenever 8chan is at the worst of times, I do a stream. I find it helps for me to rapidly get on the same page as the user base by just taking any and every question I get.
I heard some things in it that I really couldn’t believe, like Josh abusing his power over the load balancing server to redirect /v/ because they memed on him.
I held a poll, and people voted to fix vichan. I think I can do it, I have OdiliTime, czaks, lancee (55chan admin), and ranix helping, so I know we can do it. If in a month all our vichan fixes fail, we’ll try something else.
Next had gotten last place, but I heard some passionate arguments in defense of it and decided to see if there was anything I could do to save it. I explained the situation to Jim, who said that perhaps in their spare time, some guys at 2ch could work on it.
I told him that our chances might be good, because most of the problems with Next were due to the necessary hacks colliding with Josh’s vision, such as changing it to use Varnish.
But the license would have to change, because Jim is concerned that using AGPL licensed code for our site is dangerous. All of the legal ramifications of AGPL are still not known, since it is a very young license and legally untested. Could the share-alike clause be used to force us to open source parts that “link” to the source, like Softserve and a possible Ronin Pass? We doubt it, but given that the only large AGPL thing used often on the web is MongoDB, which is just a database and no one has sued over it, we have no idea. I pitched Josh relicensing, and that’s what I decided to go for if any last ditch effort would be used.
I was basically told that I could use Next if I preferred, but there’s no way that 2ch would be submitting any code under an AGPL license. Fair enough.
I was in no mood for Josh’s bullshit at this point, and asked him to either acknowledge that I hold the copyright to Infinity Next along with him, and relicense his contributions to Infinity Next to either MIT or GPL so I could use them in a GPL distribution, to be used on 8chan’s servers.
It’s true that this comes with some drawbacks from the FSF crowd. For one, it no longer guarantees that modifications every part of 8chan or future fork will be released to the public. However, licenses are just a promise. While the AGPL is a good license in spirit, and actually one I picked myself when I thought Josh would be less likely to screw with me any way he could think of, in hindsight I see that it’s not perfect. This guarantee doesn’t really guarantee anything. Most changes that users would be concerned about would be invisible on the site. For example, something egregious like storing all IPs forever and ever. The AGPL would not help in this case, because a bad actor could just have two versions of the books, much like a mafia boss. One set of code that is clean, and the real set of code that users cannot tell the difference between just on the surface. Therefore, I find it less necessary than I once did, and with its untested legal framework, I’d prefer a more known license like the GPL.
Of course, like everything with Josh and Next, this did not go well. He flat out refused, and then said I was infringing on his property. Yes, that’s right. Next is his property, even though users paid him $12,000 for it to be used by 8chan. 8chan gets no say in how it is licensed, 8chan gets no say in much of anything in his view.
I decided to bluff and say that because I owned infinitydev.org I owned it, but I know this isn’t true. It’s true that I own the IP, but I can’t relicense his contributions without his permission legally. Really I have no way to force Josh to pay or relicense, and if he wants to hold it hostage, so be it. I had no way to collect money myself due to my Patreon, my PayPal being banned and even my US bank account sending me warning letters and declining me a merchant account. It’s true that I own infinitydev.org the domain, but everything went through Josh.
I can now finally see that Infinity Next sucked all along. Oh sure, its features were great, but Stephen Lynx did all the same shit for free.
Why I even bothered to talk to him again is beyond me. I’m sure he’ll have his own version of events where all the failed migrations are all my fault, him lying to me about what Ron said is all my fault, and him not relicensing so that the only people on Earth who have a chance of helping him can get paid to commit to his code is also my fault because reasons and muh freedom and muh property.
Never hire a lolcow without a lawyer present. They will write code for you, then claim its theirs and not allow you to license future versions however you wish. They will then try to dox anyone else who contributed in the spirit of “agreement”.
Joshua Conner Moon scammed a meme website out of $12,000 so that he could feel superior to a cripple and fuck with people who called him mean names now that he can no longer leak their IPs.
(ﾉ -‿-)ﾉ ~┻━┻ ~ Goodbye Infinity Never. With all this off my chest, I think I can finally focus on what’s Next again.