<Moderator> Hello everyone, and thanks for coming to today's LiveEvent! This LiveEvent has been brought to you by the Undernet User Committee's Promotions/LiveEvents project. Our topic today will be "GNUWorld", and we are glad to announce that our guest list includes Isomer and |MrBean|, two GNUWorld (project) developers.
<Moderator> GNUWorld is an IRC Service created in 1997 by Orlando Bassotto (also known as nextie) with the purpose of assisting IRC Operators and Admins with performing tasks that they might require (actually, GNUWorld was developed to make the job of IRC Operators somewhat easier). It is also the base that modules such as mod.cservice (X) and mod.ccontrol (euworld) use.
<Moderator> The LiveEvent will be divided into three sections.
<Moderator> In the first section, the GNUWorld developers will answer some questions that we have pre-collected before the event.
<Moderator> In the second section, Isomer and |MrBean| will talk about their personal experiences with GNUWorld.
<Moderator> In the third section, you will have the opportunity to ask your question(s). When we are ready for your questions, we will let you know how to send them to us. Afterwards, we will sort through the questions and pick out the best ones for our guests to answer.
<Moderator> |MrBean| first became involved with GNUWorld in 2001. How it happened is a bit mysterious: while trying to install GNUWorld, he noticed that the oper service (mod.ccontrol) was not complete, so he asked if he could work on it himself. The head developers said sure and made him a member of the GNUWorld project. He has been the mod.ccontrol developer ever since.
<Moderator> Isomer -- well, we hopefully all know him... ;)
<Moderator> We hope that you will enjoy the event. Please do not /msg the ops as this will only interfere with their jobs. And now, the first section of today's event
<Questions> Q: When was GNUWorld started and by whom?
<Questions> A: GNUWorld was started in 1997 by nextie (Orlando Bassotto).
<Questions> Q: Currently, who are developers of GNUWorld and why were they chosen?
<Questions> A: The developers are spread across the world: ripper_ (looks after the GNUWorld core), Isomer (fixes bugs at 2am when GNUWorld dies), Gte (looks after the CService [X] module), |MrBean| (looks after the CControl [euworld] module), and nighty (looks after the CService website). Why were they chosen? They were dumb enough to not run the other way. :)
<Questions> Q: What programming language is it coded in and why was that particular language chosen?
<Questions> A: GNUWorld is coded in C++, mainly because of its OOP (Object-Oriented Programming) capabilities and its modularity.
<Questions> Q: Why does GNUWorld only use PostgreSQL and not other databases such as MySQL?
<Questions> A: GNUWorld uses PostgreSQL because currently it provided much more functionality than MySQL. There has been an attempt to add MySQL support, but unfortunately, it required too many changes to the modules, so it was postponed.
<Questions> Q: What are the advantages of the modularity of GNUWorld?
<Questions> A: The advantage is that it is very quick and easy to write a new service for GNUWorld, as you don't have to worry about all the IRC server side of things. Writing a new service is kind of like scripting an IRC client.
<Questions> Q: What modules are available for GNUWorld and who develops them?
<Questions> A: The official modules are: mod.cservice (X) - developed by Gte, mod.ccontrol (euworld) - developed by |MrBean|, and mod.nickserv and mod.dronescan - both are developed by Jeekay.
<Questions> Q: Does GNUWorld work with other IRCds besides IRCu? If no, why doesn't it support other IRC daemons?
<Questions> A: At the moment, GNUWorld only supports IRCu, mainly because it was developed for IRCu, however, in the future we may add support for other IRC daemons.
<Questions> Q: If a person was going to code a IRC service for IRCu, would you recommend GNUWorld to the person? Yes/no, and why.
<Questions> A: YES! :) With GNUWorld the coder doesn't need to implement the server<->server protocol, which gives him much more time to work on the service functionality. For example, it takes about 5 minutes to create a simple service that connects to IRCu and responds to private messages.
<Questions> Q: Why is GNUWorld open source and under the General Public License (GPL) and not closed source like the old X was?
<Questions> A: So that other networks can use the GNUWorld service, find bugs, and add features without us having to do all the work. There is a lot of support for using GNUWorld on individual network(s) available. It also means that people can use IRCu easily on their network, which also increases the amount of use IRCu receives.
<Questions> Q: What advantages/disadvantages did this bring to the Undernet?
<Questions> A: More people to test, more potential developers.
<Questions> Q: Why is GNUWorld so bulky causing it to take forever to compile?
<Questions> A: Blame ripper :) -- In order to add modularity, every command/class is compiled individually into its own library, so that it is possible to load/unload individual commands dynamically. In addition, by default GNUWorld is compiled with debug symbols enabled which adds a lot of disk usage overhead.
<Questions> Q: Why is GNUWorld superior to other services for IRCu?
<Questions> A: Coz it's Undernet's! When GNUWorld was written, there were no services for Undernet's P10 protocol. That was the primary reason it was used.
<Questions> Q: What did Undernet use before GNUWorld was created?
<Questions> A: Before GNUWorld, Undernet used closed source services such as X/W, which was coded by seks, and uworld, which was coded by Wildthang. These were for the older P9 version of IRCu's server<->server protocol.
<Questions> Q: What are the main differences/improvements between the current X software and the past X/W?
<Questions> A: Heh, lots. In the old X, you had to login once per channel. In the new X, you only have to login once. The old X had hostmasks (and thus CSC spent most of it's time changing 500's hostmasks for them); the new X just has a password.
<Questions> A: The old X did everything in one program (including the webserver for the website), the new X uses an SQL database and several different programs to do the bot, the website, the channel judge, etc. This makes it more difficult to DDoS X.
<Questions> Q: Programmers are busy people and this is a voluntary job. Why are you doing this and how do you manage to equilibrate your real life stuff with this?
<Questions> A: For fun! Equilibrate? There's an equilibrium? I do what needs to be done, and I do stuff that's fun. Other times I take a rest. It just depends on what's happening. It's very easy to take a break, just don't load an IRC client. :)
<Questions> Q: How are changes in the server/services code decided? Who decides what changes to do and how?
<Questions> A: Basically, there are three types of changes: changes to meet with Undernet requests (for example, changes to mod.cservice are decided by the CService administration along with Gte/Isomer), changes to comply with Undernet IRCu's server<->server protocol, and of course, changes that are done to increase efficiency/add functionality to the server code which usually are decided by the coders.
<Questions> A: Normally, we just talk about changes, and if everyone agrees, they are added.
<Questions> Q: What are the technical requirements to run GNUWorld? Is there any special hardware or specific operating systems required?
<Questions> A: In order to run GNUWorld, you need to have a Linux/Unix flavored OS and a lot of free disk space.
<Questions> Q: How much bandwidth does Undernet's X bot use on average?
<Questions> A: ~ 1.4mbit/s on average on Undernet
<Questions> Q: What are the differences between the old Uworld and GNUWorld's mod.ccontrol (euworld)?
<Questions> A: Other than the obvious fact that mod.ccontrol is open source and the old uworld isn't, the main difference is that euworld also uses ACLs (access control lists), meaning you can define the commands that each oper is allowed to use.
<Questions> A: For example, it's possible to add an oper who can only use the mode command, but can't use any other command (like gline,whois, ...). In addition, euworld has some new clones monitoring options, like virtual clones checking and exceptions.
<Questions> Q: What new features can we expect from GNUWorld in the near future?
<Questions> A: At this time there are no major changes planned.
<Questions> Q: How do IRCu and GNUWorld modules (like X) interact between each other in real-time?
<Questions> A: As far as IRCu concerns X, the relationship is just like any other user who is connected to a server (GNUWorld). The only real difference is that X has a special usermode (+k), which mark it as a service, and brings about the infamous "Cannot kill, kick or deop a network service" message.
<Questions> A: When X wants to op itself in a channel, it simply fakes a message by its server (GNUWorld) that says to IRCu that GNUWorld opped X on that channel. The exact same process is done when an oper asks euworld to op himself/herself/someone else in a channel.
<Questions> Q: How do new improvements/changes in one affect the other?
<Questions> A: Since the modules rely heavily on the server core, some of the changes that are done to the server code affect the actual modules. That is why before making any changes to the server, one must consider the modules that may use this option, and what effect this will have on them.
<Questions> Q: Do IRC Operators (IRCops) have special privileges in X? If so, what are the specific commands and what steps have been taken to stop the command(s) from being abused?
<Questions> A: They can see who is logged into a channel, and that's it I think. There's very little abuse because of this feature (except perhaps stalking which opers can do anyway via euworld).
<Questions> Q: Will GNUWorld ever incorporate IPv6 support? How will this affect the network?
<Questions> A: Yeah, we will at some stage. IRCu needs IPv6 support first, and that's a big task, given that IRC is so based around hostmasks and IPs.
<Questions> Q: Have there been any serious bugs found in GNUWorld? If so, how do you feel when somebody discovers a serious bug that could crash GNUWorld?
<Questions> A: Since GNUWorld is still under development, naturally there are bugs from time to time, when someone notifies us about the bug we simply fix it, thank him, and g-line him. :)
<Questions> A: One of the funniest bugs was when X crashed because it suspended itself for mass deoping a channel. That was very early on (before it was run on the "real" Undernet).
<Questions> Q: We were told (when the new X was put into use) that there would be more bots like X (Z, Y, etc.) hosted at different locations. What is the progress on this endeavor?
<Questions> A: It's possible with the current X, but it just requires a lot of effort, several bugs fixed, and requires people to host it. In general, the way X works at the moment seems fine for what we're doing.
<Questions> Q: Will normal users ever be permitted to use the fantastic notes system that X has? If yes, when? If no, why not?
<Questions> A: No, X on Undernet is to look after channels, not provide notes. Way back in the dawn of time, people invented a feature called "E-mail" which works a lot better than X's notes system. :)
<Moderator> And now, we will move on to the second section of today's event.
<Moderator> Ladies and gentlemen, please welcome Isomer and |MrBean|!
<Isomer> Good evening everyone, and thanks for coming to listen to us :)
<Isomer> I've been involved with GNUworld since about the time ripper_ took over it's support from nextie
<Isomer> At the time nextie was rather busy, and ripper_ was keen on turning what was then "euworld" into a generic services framework
<Isomer> Since then GNUworld has had lots of changes for one reason or another, including the adding (by MrBean) an oper service called uworld
<Isomer> which brings us back full circle.
<Isomer> I haven't had as much to do with GNUworld as some people, however I'm usually the one that gets the SMS at 4am in the morning saying "X is split and won't come back", so I've had to learn rather quickly to deal with GNUworld's, uh, idiosyncracies.
<Isomer> In particular, I have had a lot to do with X, which is one of the few channel service bots available for the IRC daemon that undernet runs.
<Isomer> X was originally written to update the aging P9 service that were running on the network
<Isomer> after we were a few months into the rewrite, the old X go DDoS'd into oblivion
<Isomer> so we were left with the choice of trying to fix the old X to avoid being DDoS'able, or forging ahead with the new X
<Isomer> So, for a rather busy couple of months, we spent getting the "new X" (using GNUworld) working.
<Isomer> we had great fun with all kinds of bugs (including X suspending itself for mass deoping as we mentioned earlier)
<Isomer> before we released it onto the unsuspecting Undernet citizens
<Isomer> The first night we had it up (before we'd officially announced it), we had thousands of users signing up per hour
<Isomer> and we very quickly learnt how to keep X's postgres SQL backend from melting, a job which we still have to keep a very careful eye on today
<Isomer> Since then we've added several new features, and, in my mind, the most interesting is host hiding via X
<Isomer> I believe that we were the first of the "big 5" IRC networks to add host hiding, and the first network to have host hiding that didn't reveal your ISP at all
<Isomer> Going forward with X, we're likely to extend apon the host hiding stuff, letting users have their host hidden before they finish connecting to IRC
<Isomer> but in general, X is fairly static, and we really don't like to change it
<Isomer> every time we make changes to poor X, we have to teach over a 100,000 users how to use the new features.
<Isomer> (Which fortunately, is CServices job, not mine :)
<Isomer> So most of my time is kept busy with dealing with any bugs that might crop up in X, and dealing with abusers
<Isomer> (you know who you are :P)
<Isomer> X is fun to play with, it's a large, complicated service that needs to be running 24 hours a day 7 days a week, 365 days a year.
<Isomer> even restarting X to add new features/fix bugs is something you have to think about carefully before hand, coz every time X disappears, you have thousands of users wanting to use it
<Isomer> If you're a good C++ coder, and you're keen on tinkering with X, it's source is available from Sourceforge for anyone to look at
<Isomer> and we're always keen on looking for more people to code on X or other GNUworld modules
<Isomer> X is a bit of a beast to get working, but it needs to be that way to deal with the kinds of load and attacks it gets on Undernet
<Isomer> Anyway, I find playing with GNUworld (and X) fun, and a challenge, as (I hope!) bean does for the euworld oper module. :)
<Isomer> So I guess I should stop yabbering on, and let MrBean have a word or two :)
<|MrBean|> hi all :)
<|MrBean|> as you already know, i joined the gnuworld project on 2001
<|MrBean|> back then mod.ccontrol was a very simple operator service, which didnt include any access contorl
<|MrBean|> after talking to isomer, and ripper, i decided to take over the module, i must say that back then, i never thought that it'll be used on undernet
<|MrBean|> back then, undernet used the good old uworld (made by wildthang) and euworld which was coded by nextie
<|MrBean|> six month after i started working on mod.ccontrol, isomer told me that i have 6 days to make it suitable to be linked to unet
<Isomer> (Gotta give them an incentive :)
<|MrBean|> i guess that when he said 6 days, he ment 6 months :)
<|MrBean|> mod.ccontrol was first linked as "protocol" and after a few month undernet admins approved a perm link, and it replaced the good old euworld
<|MrBean|> unlike isomer, i dont get sms at 4 am in the morning (probably because no one knows my cell phone) :)
<|MrBean|> as isomer said, working on euworld has been fun, and i must confess, that it thought me alot, when i first started working on it, i didnt know c++, and i picked it up while working :)
<|MrBean|> and i'd like to take this opertunity and thank all the wonderfull users who reported bugs, and helped to bring mod.ccontrol, and GNUWorld to what it is today
<Moderator> *clap clap*
<Moderator> And last, but not least, the third section of today's event.
<Moderator> You will now have the opportunity to ask your question(s).
<Moderator> After waiting to receive a large number of questions, we will sort through them and pick out the ones we wish our guests to answer.
<Moderator> At this time, if you wish to submit a question, please /msg #LE_Questions <your question here>.
<Moderator> Feel free to submit multiple questions. :)
<Questions> <Jonny> Will undernet have a nickserv (where undernetís users can register and own a nickname), if so, when?
<Isomer> No :)
<Isomer> I'd say it's almost certain that we'll never have a nickserv
<Moderator> <ColdAsIce> i was always courious, is Isomer a girl or a boy ?
<|MrBean|> except maybe on april fool
<Isomer> MbGone: well yes :)
<Isomer> The amount of effort of giving 100,000 users nicks, without people ending up fighting is nearly impossible :)
<Questions> <Asmo> does isomer carry his mobile around when going out at night? and if not, who does?
<Isomer> I'm male ColdAsIce :)
<Isomer> Asmo: Yeah, I do. However when I'm out, I'm not always within reach of a computer
<Questions> <Frank> will the +A and +U modes ever be implemented on undernet?
<Isomer> yeah, they're in the next major version of ircu (2.10.12)
<Questions2> <Cyber|VIP> do you guys have an girl friends and if yes hove do you spend time with here ???
<Isomer> however it's buggy still
<Isomer> so we've got some time before we get it working :)
<Isomer> Not at the moment, so if any ladies are looking for a boyfriend... :)
<Questions2> <zac-> Why the 2 week limit on bans? I think 2 weeks is a good max, but a permenent option would be much nicer as well.
<Isomer> zac-: I dunno, you'd have to ask CService about that
<Questions2> <mxxl> Can you tell us the exact link where we can get X's source ?
<Isomer> Having a 2 week limit means that X's DB doesn't fill up with silly bans tho :)
<Questions> <Th3B|ackM> i know very well C++ from were can i get the sources of X?
<|MrBean|> to get gnuworld, goto http://www.gnuworld.org
<Moderator> <outch> how many person are currently working on the GNUWorld project ?
<Isomer> MrBean and I are the two major developers at the moment
<Isomer> but there are at least 8 or so other people that contribute to GNUworld
<Questions> <_Diaboliq> Ok, been trying to remember the questions for a while: What is the current size of the undernet psql database? And the second one : is it true that undernet runs a differente gnuworld specially coded ( "fixed" ) to suit their needs? ( modded from the main cvs tree )
<Questions> <Hedge> Does GNUworld support G-line exceptions to prevent Operators from getting accidentally banned like in the old uworld p9?
<|MrBean|> no, all the changes get commited to the cvs
<Cyndi> opers getting banned is fun, can't take that away :)
<Moderator> <outch> will there be other portage of gnuworld on other OS platform ?
<Isomer> I dunno how big X's db is. It's not that large I don't think, 50mb or so
<|MrBean|> yea, mod.ccontorl supports exceptions
<Isomer> outch: GNUworld (I believe) runs on all the unix-alike OS's. It will probably never run on Windows (if thats what you mean)
<Questions2> <ColdAsIce> will there be accepted the Ghost command for mod.cservice ? i saw it on some small networks and i found it pretty usefull... including securekill
<Isomer> You'd have to talk to CService about adding new commands.
<Questions2> <Twist-> What things are you working on right now? , what would you like to see done ?
<Isomer> Twist-: host hiding on connect is big on my list of things to do, making X more stable would also be good ;)
<Moderator> <FunX> What was the most difficult part to realize in the new version of gnuworld?
<Isomer> From memory, none of it was particularly hard, other than there was a lot to do
<Questions> <TheRogue> 1.do u do your work from home or there is an office of some kind? 2.how many hour do u actualy spend working and...is the pay worth it?
<Moderator> <evi|one> what actions can opers perform via the module ccontrol?
<Isomer> TheRogue: We work from home in our spare time
<Isomer> TheRogue: Undernet doesn't pay us anything
<|MrBean|> usually i work from home, the amount of time depands on the work that needed to be done, and its not a pay'd job
<Isomer> TheRogue: How much we spend usually depends on how busy we are, and how urgently something is needed
<Cyndi> and who offers the best food to them
<Questions2> <mave> it has been reported about GNUWorld on FreeBSD5.2 or higher that the way file descriptor changes on FreeBSD, GNUWorld cannot perform correctly, is someone have a closer look on that?
<|MrBean|> <evi|one> quite alot of things, best way to find out, is to simply go and check the sourcecode
<Questions> what about merging GNUworld(X mod) into IRCu? what advantages/disadvantages could this bring to the Undernet ?
<Isomer> mave: I dunno, noones told me that it doesn't work under FreeBSD, if indeed it doesn't work, then it'll almost certainly get fixed one way or another
<Isomer> carlillos: we are slowly merging parts of it into ircu, the first major step was having ircu keep track of who people are logged in as.
<Isomer> carlillos: however it's not an easy task
<Cyndi> I would like to thank Isomer and MrBean for taking time out of the busy schedule to help with this event
<Cyndi> I would also like to thank User Committee's live event team that helped out
<Cyndi> that would be Simba, Carlillos and reed
<Cyndi> and I would like to thank you all for coming to learn more :)
<Cyndi> thanks everyone :)
Click here to return to the top