Sockets with JavaScript

We’ve seen a great push towards using JavaScript in modern websites, using AJAX and JSON for dynamic websites which start to feel more like applications instead of plain boring pages.   One of the problems which more interactive sites face is the constant polling of the web server due to the way HTTP works.  Various web apps these days tend to poll for data with the server keeping the connection alive without sending any data, once data has been sent then a new request is sent asking for more data.

One particular web app which isn’t that great is IRC web chat.  Most IRC servers are keen on users connecting from their real connection, as it’s hard to track abuse when connections are being proxied by a web server.  Using AJAX or JSON with a web server isn’t that ideal either, browsers have to constantly poll and refresh with the server to receive the data, this typically requires a light weight web server as Apache with PHP or Perl is hardly efficient for multiple users.  The most common approaches over the years has been CGI:IRC, but this is just yet another inefficient Perl script which keeps the connection open.  One of the oldest methods is using a hefty Java application, hardly friendly for users.

So, why not use sockets with JavaScript?  Obviously JavaScript can’t do it directly, but with Adobe Flash and something like socketBridge (or this improved version) you could control a socket with mostly JavaScript.  The only problem with Flash and sockets is that it would have to connect to a policy port before being authorised to connect to that particular port, however it would be a much lighter solution for the server compared to all the polling techniques.

I’m tempted to try and create a web IRC client using JavaScript and the Flash socket bridge.  Even if other IRC networks won’t open a port for Flash policy requests, you could do something similar to the other web chat apps – use your server as a proxy.

Mar10

Forwarding all mail with Gmail

If you’ve got multiple Gmail accounts, such as different Google Apps Gmail accounts (for hosted domains) and gmail.com accounts, being able to forward them all to one account saves a lot of time and effort.  Gmail does allow you to forward email under the Forwarding and POP/IMAP section of the control panel, however this only forwards non-spam emails.  As most people know, sometimes the spam filters aren’t quite perfect and suffer from false positives occasionally.

To forward all mail to another account, simply remove your existing forward, create a new filter from * (matches any sender), then forward it to your main email address – making sure you’ve got Never send to spam selected.  You’ll probably want to choose Delete it as well, this means any incoming mail on that specific account will be forwarded and deleted on the original account – but you’ll still have 30 days until it gets removed from trash.

This way you’ll get all mail forwarded from Gmail – including spam.  Now you can see all the spam from any other Gmail accounts incase there are any false positives.

Mar09

Expansions in MMORPGs

After resubscribing to Dark Age of Camelot, there is one thing which has been slightly bothering me whilst reminiscing about the game – the fact that expansions and updates in MMORPGs tend to destroy any use of old areas.

Trials of Atlantis rendered a huge amount of armour and weapons entirely useless from the original version and the first expansion, thanks to their overpowered nature.  Catacombs comes along and it had some of the best areas to level up characters in – until they increased the bonuses for other areas making it entirely pointless.  The more recent Dragon’s Revenge updates makes the older armour less useful, so everyone changes to the latest and greatest.  Certain things tend to remain useful for quite a long time if there isn’t any better alternative, however once something better has been added the players will flock to it.

Why does it bother me?  There is a lot of quality content in the game which people won’t touch and will avoid as much as possible because newer things are better.  Why would I bother doing the very old quests which give virtually no reward?  Instead I can do the latest expansions quests and get 500 gold just for completing one of steps.  Many hours must have been spent on the design, the coding, the graphics, the storyline and everything else involved in an expansions content – yet a few updates a year later will render that content pointless.

I’d like to see more MMORPGs updating their older areas at the same time as working on their expansions.  This is something Mythic has been doing, although it has only been a fairly recent and minor effort.  Update the stats on drops for old items, though not retroactively as to encourage people to go back for the new bits.  Add more quests and content to existing areas instead of putting the entire focus on new areas, maybe more of the old content could be updated to point to new areas within the storyline – instead of just having a portal to switch to new bits.

Players like to reminisce about the old days, take advantage of your old content and update it slightly to make them think they’re still playing the game they once loved.

Jan02

Adverts in RSS feeds

RSS feeds are great for those people who want to follow up on news sites without having to constantly revisit the same site multiple times a day.  Google FeedBurner offers nice statistics to any sites with RSS feeds, allowing them to see how many subscribers they’ve got by hosting the RSS feed.  What I’m finding increasingly annoying is the other service which FeedBurner offers – their advertising programme.

I don’t mind if RSS feeds are either partial feeds to show users the first paragraph to attract users to visit the site, or full feeds to show users the entire article, however putting in adverts is highly annoying.  To me RSS feeds are there to entice me to go and visit the site itself.  RSS feeds are mostly used by fairly technical users – putting in adverts where the people reading them are most likely to ignore them seems a bit pointless.  Adding other little buttons/icons to enhance the feed is annoying as well, I just want the article and nothing more!

I don’t usually bother with advert blocking, but after seeing more feeds with adverts in I’ve finally installed Adblock Plus for Firefox.  Good riddance to pointless adverts!

Dec29

Cables not included

To me this is one of the most annoying things manufacturers decide on when releasing their products – not including all the cables necessary to use the product!

Various USB printers have done this for quite a while, you have to buy the cable separately.  Whilst it’s sometimes understandable with cheap products, it’s still slightly annoying that the product you buy isn’t usable until you go and buy yet another cable.  What I find really annoying is spending £300 on a console such as the PlayStation 3 and they’re too cheap to include an HDMI cable.  This is a console designed for high definition gaming, yet they don’t even bother including a cable for it.

It feels like the modern equivalent of “batteries not included”, certainly not something which should happen if you spend large amounts of money on a new device.

Dec25

Poor Windows Vista support in games

As much as people might dislike Vista, it’s the operating system bundled with new machines and it’s here to stay.  It’s been around 2 years since Vista was launched, whilst I can understand certain software developers might not offer support from the immediate release – it should be one of their high priorities.  MMORPG developers seem to be among the worst for poor Vista compatability, along with other game developers.

Certain games decide that they need to run as Administrator from the moment the patcher starts up, even though the patcher might not need to download any file at all – therefore not needing to write any files to the Program Files directory.  So the entire game runs under admin privileges, just incase the patcher might need to update files – Mythic Entertainment are guilty of this with Dark Age of Camelot.

Other games are still living in the old days where they still write any configuration files to the game directory for all players, instead of the relevant application data directory for the user.  This is just extremely lazy and makes things awkward for users, instead of a clean split between game data and user data – everything is just lumped together in one directory.  If I wanted to make a backup of my computer, it would be far easier to just backup my user profile which would contain any important data – however keeping this data along with the game itself makes it difficult.  If I wanted to restore my machine from a backup, I’d lose any settings from the game.

There are other games which are complete failures, getting players to go with workarounds such as changing the permissions on the installation directory.  After installing Lord of the Rings Online I didn’t even get a shortcut to the game from my start menu.

If game developers could just put a bit of extra effort into game installation it would make things so much easier.  I know the aim of these developers is probably just to get the game running on these platforms, but a fully functional game which works properly would save users so many headaches.

Nov19

Server Name Indication being held back

Ever since we’ve had websites available over HTTPS (HTTP over SSL), there has always been the problem that the host always requires an IP per site as each site needs a new certificate.  With SSL the server couldn’t just switch certificate according to the site, as SSL is negotiated before any HTTP request is sent.

Server Name Indication is a TLS extension which sends the hostname during the TLS negotiation, which means the server can switch to the appropriate certificate – allowing a web host to potentially have as many HTTPS sites as they want on a single IP address.  It’s a great solution, however the only problem is that any chance of it’s currently being held back.

Firefox 2.0, Opera 8.0 and even Google Chrome supports SNI, however Safari on OS X currently doesn’t support it and Internet Explorer 7 only supports it on Windows Vista and not Windows XP.  So SNI is being held back due to a lack of support from IE and Safari, these are two fairly significant browsers which many people use – admins can’t ignore either of them.

SNI is only just becoming available in Linux distributions with Apache 2.2.8 and the latest versions of OpenSSL, so it isn’t available to everyone just yet.  However being unable to use it for many years due to the fact that any Internet Explorer user on Windows XP won’t be able to view any SNI sites is going to be a huge hinderance towards adopting it.

Oct17

3ware 8006-2LP RAID with CentOS 5

The Hetzner DS-8000 servers feature a 3ware RAID card (8006-2LP) for hardware RAID 1, a nice feature – although the default CentOS setup is slightly broken with SELinux.  After several hours of wondering why smartd wouldn’t work, /var/log/audit/audit.log reveals the following:

type=AVC msg=audit(1223922183.059:22): avc:  denied  { getattr } for  pid=2654 comm="smartd" path="/dev/twe0" dev=tmpfs ino=8940 scontext=user_u:system_r:fsdaemon_t:s0 tcontext=user_u:
object_r:device_t:s0 tclass=chr_file

A good administrator will probably want to add some custom SELinux policies, but the lazy admin might just want to disable SELinux.  I went with the disabling of SELinux as the easier option!  It’s not a recommended solution though.

Eventually I got smartd working again, so I’ve now got decent monitoring of the disks on the machine.

Oct14

Using Linux but never giving back

One great thing we see with Linux is that it’s used for servers quite frequently, it’s probably one of the strongest points about it. A strong and stable server platform which many companies rely on to run many parts of their infrastructure for an organisation.

A common situation we’ll see are MMORPGs, games with thousands of players mostly with Windows clients connecting to servers powered by Linux.  Occasionally you’ll see people trying to run their game client under WINE, but it isn’t quite the same as running a native game.  These companies use Linux to run their gaming servers, web servers and possibly many other parts of their infrastructure, but when it comes to building a Linux client for their game they’ll rarely consider it or even dismiss it without even considering the feasibility of it.

I don’t think anyone expects companies who use Linux to start contributing hundreds of lines of source code back to various projects, but it would be nice if they considered a Linux client of their product where it’s viable as a way of saying thank you. They’re getting the benefits of many hours of effort being placed into a freely available operating system, but they’re not helping this operating system by refusing to release their product for it.

In an ideal world we’d see multi platform clients, maybe we’ll see more if it one day.

Sep30

How not to launch an MMORPG

The past few weeks I’ve been enjoying one of the latest MMORPG games – Warhammer Online.  The main annoying thing about the European WAR experience is the fact that GOA are running the servers for all players over here.  As expected they managed to make several mistakes which many players knew were bad decisions, yet GOA still went full steam ahead.  Tim Jenks has listed some of them in his How not to launch a beta for a WoW-Killer MMO, I’m going to a list a few of the things which have annoyed me about the entire launch.

Read the rest of this entry »

Sep29

Pages

Categories