thinking about how hacking on ircd as a kid was a cope for being unable to be a trans kid (i grew up in oklahoma, in the 90s, the *vocabulary* did not exist, much less any feasible form of support)
-
and from there we come to how I started hacking on ircd.
we wanted to improve the software on our IRC network in order to make it more suitable for our needs.
first, we ran unrealircd and epona as most naive IRC network operators did at the time. it was great: you could run both on Windows, despite this being a horrid idea for reliability and scalability.
epona quit being maintained and got forked into anope.
meanwhile, OPN added a feature to dancer-ircd called +q (quiet lists). you could use these to mute people who were being annoying.
so i thought "how hard could it be to add this?", despite not knowing a fucking thing about writing code or anything.
but i toiled and toiled and eventually i hacked this feature into unrealircd.
but i did it in a really stupid way: unrealircd uses +q for "channel owner" mode, but i wanted it to be like OPN's +q instead. so i renamed unrealircd's +q to +y.
needless to say that ircd was buggy as hell because i didn't know what the fuck i was doing.
@ariadne when did +y become +b ~q: (now +b ~quiet:)? -
System shared this topic
-
and from there we come to how I started hacking on ircd.
we wanted to improve the software on our IRC network in order to make it more suitable for our needs.
first, we ran unrealircd and epona as most naive IRC network operators did at the time. it was great: you could run both on Windows, despite this being a horrid idea for reliability and scalability.
epona quit being maintained and got forked into anope.
meanwhile, OPN added a feature to dancer-ircd called +q (quiet lists). you could use these to mute people who were being annoying.
so i thought "how hard could it be to add this?", despite not knowing a fucking thing about writing code or anything.
but i toiled and toiled and eventually i hacked this feature into unrealircd.
but i did it in a really stupid way: unrealircd uses +q for "channel owner" mode, but i wanted it to be like OPN's +q instead. so i renamed unrealircd's +q to +y.
needless to say that ircd was buggy as hell because i didn't know what the fuck i was doing.
so, anywho, the first irc network i started blew up and split into two forks due to my lack of skills to keep it running.
at the time, it was a body blow, but in retrospect, it makes sense that people were upset that i was shoving unproven ircd patches out there and hoping for the best.
they just wanted to a place to chill.
-
so, anywho, the first irc network i started blew up and split into two forks due to my lack of skills to keep it running.
at the time, it was a body blow, but in retrospect, it makes sense that people were upset that i was shoving unproven ircd patches out there and hoping for the best.
they just wanted to a place to chill.
another sidebar: one of the forks went on to create another ircd, from scratch, written in C# called openircd. it used a thread for every connected socket. it was also very unstable and the instability was comical, because it would spam exception logs to all of the connected IRCops.
-
another sidebar: one of the forks went on to create another ircd, from scratch, written in C# called openircd. it used a thread for every connected socket. it was also very unstable and the instability was comical, because it would spam exception logs to all of the connected IRCops.
@ariadne the era before async was hilarious
I mean that line of thinking predates epoll/kqueue which were still very new and very difficult to reason about, and select/poll sucked ass.
The thing was that was “the thing to do” back then: use a thread per connection because “concurrency.” Because it was better than forking per connection, and people wanted answers besides select/poll, and I don’t think people got accustomed to async thinking. Especially Windows devs. It doesn’t scale of course.