Mibbit down

Sorry folks, my hosting co has decided to be unreliable.
I’m looking for a new host. If you know of any, please post a comment.
Apologies for the inconvenience :(

Aparently someone is replacing a switch and my host wasn’t aware of it :/ Not impressed.
Once again, sorry… They *say* it’ll be up in 20mins.

Security, and other stuff

Firstly, a note about security. Early on with Mibbit, I allowed passing in a nick, and a pass, and having them filled in in the connect form. This was a bad idea on my part.

See if you have those in the URL in plaintext, firstly anyone looking over your shoulder can see them, but worse than that, if you click on some links in the chat, the URL is sent as the referer field in the request.

Anyway, bottom line, do NOT pass in a password into the url. It won’t work anymore also – I’ve disabled that :) Register on www.mibbit.com, and then use autoconnects to manage your login details instead.

Please rest assured that security is #1 concern and this was just one of those “quick and dirty hacks” that I had forgotten worked, and didn’t realize people still used.

OK that over with :)

* https works fully now – certificate installed. Just go to https://www.mibbit.com
* The embedded client now recognises url parameters the same as /dset does. Anything in dset you can customize for your embed. See the link to embed for an example I did quickly.
* The embedded client now defaults to hide the server tab, show server things in the channel tab, and have no close button on the channel tab.
* Owner modes are now parsed and dealt with. There is no icon on the userlist yet, but that doesn’t require a backend restart.
* The ircd was updated to unrealircd+anope services. The old ircd (dancer) had a limit of 200 clients – pretty useless. The new one has a limit of 4096 for now. Very sorry, but this does mean that you have to register with nickserv, and register channels with chanserv. The old ircd didn’t do well with it’s db. This should not happen again.
* There is now a /dreset command. Use it to reset your prefs to the defaults (Doesn’t affect autoconnects).

I’m sorry about all the restarts lately, but there has been a bit of a surge in growth, and with that comes unexpected limits. One of which was memory usage. I fixed that by reducing some buffers, but that agitated something else which exposed a bug (Dropped packets, userlists not showing etc). Then I fixed that one.

I *think* things are pretty stable now :) It’s really appreciated that you are not put off by the restarts. Once things settle down a little, they will only be done once a week on the quietest day…. promise :D

There are a ton of features in the works, ignore, logging, the option for ops to set their channel as public logged – searchable from mibbit, and much more. So stay tuned :)

Embeddable widget Alpha

You can now embed Mibbit into your own website!

http://wiki.mibbit.com/index.php/Widget

There is an example html file to get you started :)

Please note that because of one of the gazillion bugs present in IE7, your website must have the DTD with it set to strict at the top. Otherwise bad things happen.

More documentation will be on the way soon, but feel free to try it out on your website.
This is tied to irc.mibbit.com so please create a channel there. Details of how to create a channel can be found on the wiki.

This is an early alpha version, and there will be more options in terms of customization etc, but it’s a very usable version all the same :D

New records, new features

Well, firstly last week was the best for Mibbit so far, with a record of around 480 users online and using Mibbit at the same time.

The main feature this week has been channel search. You can now search all know channels (Currently over 100,000). Just put in some keywords. Be aware that any words less than 3 characters will currently be ignored. I may change this to 2…
You’ll then get a results tab for each search you do. Click on one of the results, and you’ll join there, connect to the server if needed.
Also, if you have the server listed in “My Channels”, it’ll use your login details from there.

This is the first step to making it even easier to use.

HTTPS is enabled now, and should not give any problems. The certificate is still only a test certificate though, so you may have to click a couple of screens to say ok. The certificate is on its way and should be in place sometime this week.

New networks include lunarnet.org and blitzed.org.

Hopefuly this week we’ll get past 500 users online at the same time, maybe even 600 who knows :)

A little downtime, and some updates

Firstly apologies for the half hour or so downtime last night, this was due to an issue in the recent https, which caused a log file to fill up the disk ;)

I have disabled https for now, a fix is in place, but needs to be pushed out. I may wait until we have a certificate to do that. Also I’ll be bounding logfiles so this doesn’t happen again.

I did a heap of updates to the rendering of the chat window. This includes tidyups, adding back in the “number of users in channel” bit.

Also the “wii version” link is gone. If you need a send button, login and go to [prefs] and set that. It’ll automatically update any existing connections and a send button will appear/disappear as needed :)

There’s also a [whois] option in user menus now, and the user menus close when you select something in them :)

HTTPS and user menus

Mibbit now does HTTPS :) We do not have a certificate yet (On the way), so you may have to click through a couple of popups on your browser saying it can’t verify the certificate.
However, once that’s done, you get complete encryption and peace of mind someone isn’t snooping on what you’re saying.

Also, when you click on a user in the userlist you now get a menu for them. At the moment there’s only one item (PM), but soon there will be whois, maybe a mini profile, and if you’re an op you’ll also see kick/ban/etc type options there.

Being an op just got easier

Mibbit now understands the following commands,

/op /deop /unop
/voice /devoice /unvoice
/halfop /dehalfop /unhalfop
/admin /deadmin /unadmin
/owner /deowner /unowner
/ban /deban /unban

“de” and “un” are the same, but I thought it made sense to have both. You cannot specify a channel to these commands at the moment, the current channel is assumed.

Also, userLists now show device icons. A little phone for iPhone users, an iPod, and a joystick for wii users. This makes it a bit easier, as you’ll know you may have to wait a little longer for a reply :)

The preferences tab has been changed to “My Channels”, which is just for your favourite servers/channels, and ones you’d like to auto-connect to. That tab looks a little prettier and works a whole lot better now.

There will most likely be separate “Preferences” tab, and “Profile” tab a little later.

It looks like Mibbit plays nicely with the Nokia N800 Internet tablet which is nice (See pic) :)

A few backend bugs have been sorted, and a few more irc networks came on board :)

There’s also a new “Prefs” tab which you can start to control your preferences, which messages you want to see, if you want graphical smilies etc.

Turns out sort() is slow in javascript.

First there were reports of high CPU usage on IE6 – ok, nothing special, IE6 is not a nice browser.
But then there were reports of the iPhone and low CPU power machines not being able to cope when entering a large channel such as #ubuntu (1000+ users).

So I started profiling. It was scary. My method was to add all the nicks, then sort. Fair enough, especially for an unoptimised version.

However… For a sort of 1,000 nicks, the compare function was being called some 130,000 times. That’s not a good sort routine javascript has.

So, I now insert each nick into the list using a binary chop search. This results in *massive* performance gains, especially when there are a lot of users, or where a lot of users are coming and going.

The second stage of this optimization will be to sort the userlist on the backend and send it over as sorted.

There’s also been quite a few backend updates, (which may have introduced typos/bugs – I was tired when I was doing some of it – haven’t seen any yet though)

Also you can now see how many people are using mibbit, “Connected to mibbit, 100 users online”.

The other thing is that now nick collisions and erroneous nicknames are handled. You are simply prompted to choose a new one.

There’s another ton of tidy ups on the backend preparing for more things, but that’s about it for now :)

Also if you try and connect to a server you’re already on, instead of erroring, it’ll just try and join the channels you specified. eg if you’re on irc.mibbit.com and you click on live help, instead of alerting that you’re already connected, it’ll just /join #help.

Things coming soon: /ignore, logging.

Friday updates

* Tabs now work on IE6. They may be black the first time you use it still, but it’ll cache them so it should be fine from there on. Let me know if not.
* Scrollbar fix on IE7. Now chat isn’t put behind the scrollbar.
* RDNS lookups on the backed get their own thread (For you, this means less chance of lag/stalling).
* DNS lookups are better. Previously DNS responses were cached (Not by me, by underlying systems). This meant everyone going to irc.server.net went to the same server, instead of round robin, as they should. Now an IP is chosen randomly each time you connect. So less chance of server limits etc. If you can’t get connected, try again and you may be sent to a different server and be able to connect.

Please be aware, I usually restart the backend at around 11am GMT. Not every day, just when there are useful features to push out. This will slow down soon, and stablise. I hate kicking you all off IRC :(

When the server backend does restart, please be patient and give it a minute. It’s likely it has a few hundred dns lookups to do for a start, and these currently run sequentially.

Some fun reviews/links:

http://www.apple.com/webapps/socialnetworking/mibbitircclient.html
http://www.iphoneworld.ca/news/2008/02/07/mibbit-iphone-irc-web-client/
http://www.appsafari.com/chat/2739/mibbit-irc-client/

Nice to know people are picking up on the iPhone support :)

Wii + iPhone


Some optimizations for the iPhone. Before, the page was really too big, and you had to scroll around loads all the time. Now it looks much better (Right picture) :)

And now Mibbit works on the wii :D Just click on ‘wii version’ at the bottom. It’ll auto-detect later.