Archive for the ‘Uncategorized’ Category

Designing a “perfect” home router - May 14th, 2009

It’s been on my mind for some time now … possibly due to my work (where I am interacting with “technical” people who even themselves struggle) – there must surely be a “near perfect” home router design, something which anyone who has used the Internet on their home computer can install and configure.

I currently believe that the “perfect” design must be a simple design, and have a simple interface.  It must rely on doing everything it can, itself.  It must not ask any questions that don’t need answering.  It must only include features that the home user would want – no VPN, no VLANs, no PPoE, and so on.

So in my mind the device looks something like a WRT54GL.  It has 1 “Internet” port, and 4 “other” ports.  It has wireless antenna.  And it has a power LED.

When you plug the device in, it offers DHCP on every interface – that’s WiFi, LAN and WAN.  The user opens “the Internet” and trys to browse, perhaps the documentation suggests going to “router.lan”.  Dependent on which interface they’ve connected through, a webpage will be displayed welcoming them to their “network”.  If they’ve plugged themselves into the WAN port – the page will ask them to connect using a different pot, because this is for the “Internet”.  For those using WiFI – a congratulations your Wireless network is working!

Once they’ve “OK’ed” the WiFi welcome or changed to a LAN port, a Wizard will walk them through setting a wireless network name and setting a passphrase.  Then it’ll try and connect to the Internet, using DHCP on the WAN port (the DHCP server is now disabled on that interface).

The router hosts it’s own DNS server – directing “router.lan” to itself.  Until the Wizard is finished, all DNS requests will point to itself, enforcing the user to finish before getting online.  The Wizard will ask for a “computer name”, allowing the user to setup DNS records for each device on their network.  Every computer’s MAC is saved for DHCP – ensuring each device gets the same IP every time.

The network would be in the 10.0.0.x range, possibly using a /16 mask to allow more than 253 devices to ever be connected (remember we assign an IP permenantly to each device).  This plus lifetime IP assignments should make it easier for non-techies to operate their network … “ten dot zero dot zero dot five” I believe is  a lot easier than 192.168.0.5.  And everything keeps the same IP, so little Jimmy’s netbook is always going to be 10.0.0.8.  With the “computer names” (DNS entries – possibly automagical via NetBIOS for the most part) make connecting between devices even easier still, i.e. wii.lan and netbook.lan etc.  We also minimize the likelyhood of conflicting with our modem device.

Finally there are “additional” options – not included in the wizard – allowing “Advert blocking” and “Website logging” etc.

The router should attempt DHCPing the WAN port – and only in the situation that DHCP fails should it provide the option to enter some details manually.  Home users don’t (and shouldn’t) have to care about their LAN DHCP pool or DMZs.  The router should offer some advice, allowing you to select what “kind” of device various clients are – for example “10.0.0.14 (XBOX 360) connected 12m 34s” – allowing the router to offer suggested port forwards (or just doing it with basic consent?), and potentially performing a portmap scan for “servers” to help the user understand what things they might want to allow (like RDP or HTTP).

Finally some access restrictions might be good, giving the option to stop access late at night, and of course some enforced QoS.

So the router is going to make a lot of assumptions – but all in the name of simplicty.

Kamikazi developers anyone?

Garrrr! International speak like a pirate day yarr! - September 19th, 2008

On that note: I be feeling lucky!

Accessing Apple Higher Education store from home - July 11th, 2008

If you’re an Essex University student (i.e. you have a valid Essex login) and you’re tired of having to enter campus for access to the Apple Higher Education store, you’ll probably be pleased to know you can do it from home.

If you’re running Linux/Unix (including OSX), you’ve already got everything you need.  Windows users will need to grab Putty and an X server.

Users of real operating systems will just have to open a terminal and enter:

ssh username@unix4.essex.ac.uk -X
Password: [enter password]
$ firefox

Windows users will still be downloading and installing the needed tools at this point, when they’re eventually ready, they’ll have to run Putty, enter “unix4.essex.ac.uk as the host, enter their username and enable X forwarding. Hopefully, if your X server is running, typing “firefox” at the prompt (after your password) will bring a firefox window to your desktop.

Now this firefox window will be slow, because it’s running on the University’s server. So be patient and use it only for what you need. As it’s running at the University, it’ll have no problem accessing the Apple Higher Education store.

Going beyond Google labs - September 2nd, 2007

Seems Google is indexing yet more information from the net, now you can search for movie times. Woo!

The updates - August 13th, 2007

So I promised some updates… well here goes. I’ve been spending the last couple of weeks working through a rather (and increasingly) large list of “to-dos” down the church, everything from replacing maintained light strips to cleaning the windows, and not forgetting producing hard backups of all the server filesystems. It’s good fun to do, (well I’m doing it voluntarily so duh!), satisfying to say the least, but those no-brainer moments really do hurt the head.

I’ve also got a side project on at the moment; dad pointed out a few weeks back that the church’s new website has no hit counter. Now personally I thought hit counters were a bit 1990-ish, but then I am just one. I gave it some lengthy thought and decided that a hit counter is a nice idea, if rather than just being abstractly placed at the footer of each page (and while doing so displaying absolutely nothing useful*) we could have a “stats” page which shows some pretty graphs of how much “load” the website has been under during the past 24 hours. Enter RRDTool!

So far I’ve not had too much success, mostly because I’ve only been working on it for a few minutes at a time and partly because I have absolutely no interest in reading the manuals (I am a bloke after all). This week I’ll have to sit down and have a good read into it, and then try to knock up some scripts to feed it some data, rather than the other way around.

The thought process continued, and I started thinking about other “interesting” statistics that I could display. Some of them that came to mind in particular were:

  • Bandwidth usage
  • System temperature
  • CPU utilization
  • Mail server load
  • Heating graph (remember hedwig controls the church heating)
  • MySQL load

Well the list could go on and on, but I’ll cut it short there. Hypothetically these shouldn’t be too hard to implement, MRTG already does a good job of several, and some hacky perl scripts to filter out the number of hits in Apache, Squid and Courier’s log files should do three others. MySQL and the heating program will need a bit more thinking about however.

Once again I’ve gone off onto some geeky ramble, so I’ll leave you with some totally non-techy stuff to smile over. We’ve pretty much finished the conservatory off at home, Michael, Janice, Miriam and Daniel set off toward Brazil once more this morning (I’ve been up since 3.20am…), Suzanne’s Micra is so getting go-faster-stripes and the flat I’m (DV) moving into this upcoming academic year has just gotten a new bath, fridge and oven; with a ceramic top! (the oven that is). Seems like I might be getting the same luxury apartment as before ;-)

Covie Camp - July 27th, 2007

Been an interesting one this year… I’ll blog more later ;-)

Lets just say 60+mph winds are not fun when camping.

Updates - July 16th, 2007

For anyone following this blog (is there anyone? lol), the moving of the Debian install worked without hitches (other than those covered in the blog), I did have to turn off DMA access to the replacement HD however, but I think that was purely because it was a really old school drive.

The Squid proxy is up and running, it took me long enough, mostly due to my complete hate of having to read documents (I really cannot read…), you can visit for the time being at http://www.plfc.org.uk:81/, once I’m convinced Apache redirects etc work properly (behind) it, then I’ll move it to the standard port 80. Watch that space. At the bottom of all pages the time is printed, just in case you’re interested to see when the cache was made.

And finally, my computer is back and running after a near death experience. Phew. It’d been randomly shutting off for sometime now, particularly on hot days. Naturally I assumed it was the CPU’s temperature, but 68 degrees C didn’t seem that high to me (considering many people claim to be running at 80-90). I did however remove the heat sink, give it a thorough clean (amazing how much fluff builds up in there!) and got some good ol’ (unbranded) heat paste / grease from Steve (Computer Scene over in Mildenhall. Go and say hi from me.) To give you some idea, the machine was (kind of ) powering off at 68 degrees C and idling at 64. I’m now at 50 degrees idle and no more than 54 when letting Nexus bots blow each other up. Problem solved I think ;-)

Update: came in this morning, much much cooler as I apparently left a window open by mistake… the temperature’s been near idling (with a GL screensaver) at 42 degrees C. Mmm mm!

Linux and large hard drives - June 30th, 2007

I just finished rebuilding the backup server, and I discovered something new about Linux which I didn’t know (although I did assume it was possible).

I’d tried googling for the answer to this question without avail, so I’ve blogged it here to hopefully answer the question for someone else in my same situation.

The problem is you have a large hard disk, let’s say 80GB. The computer’s BIOS is old and can’t detect it properly. The question is, can Linux access / mount / detect a hard disk larger than the BIOS supports and can detect?

Well the answer it would seem is proved to be yes, in at least some circumstances.

I’m not saying this will work for everyone, because I’m not a Linux expert. But it did work for me, and I’ll give my educated guess at why.

When Linux boots (well actually just before it boots) the computer moves from 16bit to 32bit mode (“protected mode”, a 386 feature which stuck and exists even in the latest x86 AMD and Intel processors). When this happens, the BIOS is rendered fairly uesless (as I recall, it was a long time ago I was interested in writing my own 32bit OS!) and so the Operating System starts accessing hardware through “IO” ports, special registers (again, as I recall) in the processor. Through these, it can access all the hardware without going near the BIOS, so even if your HD is not supported by the BIOS, it may well be accessible by Linux, or any other 32bit Operating System.

Autopsy - June 29th, 2007

I just had the enjoyment of performing an autopsy on our backup server, arguably the most important machine on the network, responsible for the retreival and archiving of the filesystems from all the other servers.

As I opened the case it was immediately obvious what had happened, an intruder had broken in and hacked the machine physically. No, not a burgular, nor a government agent but a mouse.

It would appear that most of the hardware has been rendered usless, one harddrive is in a very bad state, the motherboard has urine and other such waste all over it (and in several places capacitors look like they’ve been shorted), the PCI slots are blocked up and the network card appears fried. Fortunately the CPU untouched, as does the RAM, PSU and other two HDs.

The reason I’m blogging this not for the comedy’s sake (at present I find this quite far from halarious, but that may change in the future) but to act as a warning to all those who’re reading this and are administrators to their own networks. Make sure, please, that your computers don’t have PCI slots without blanking plates in them, that no CD drive bays are empty and open and that the case remains securly on at all times. I can only assume that this mouse got in through one of the two open PCI/ISA slots in the case, as there was no other holes large enough. Don’t under estimate the common mouse.

Window Manager for Tablet users - May 31st, 2007

Having since bought my shiney new Wacom 2 tablet (which incidently works perfectly under XOrg, Ubuntu has it configured out of the box) I’ve started to wonder if there’s more use for it than just graphics editing.

If you’ve never used a graphics tablet before, I encourage you to do so at some point. Once you get used to them, they’re really quite intuitive. My particular one has pressure sensitivity, more expensive ones even detect the angle you’re holding the pen at. My only issue is, while the tablet is superb for working in the GIMP and Inkscape, it becomes completely useless elsewhere. Obviously it’s useable in other applications (such as OpenOffice) but with a normal desktop enviroment it’s more hassle than benefit.

So I’ve been thinking, partly triggered by trying to think of a good 3rd year project for my degree, partly because I’m a geek and I’m forever thinking up hacks and such to muck around with in my spare time, and I’ve come up with what I believe will prove an interesting adventure: a X window manager designed for graphic tablet users.

Some of the issues I see with existing window managers and graphics tablets are:

  • Total reliance on double clicking and right-clicking, both of which is quite an effort on a (at least it is mine) graphic tablet.
  • Small and hard to select menu items, window borders and mostly visual components in general
  • Interaction occurs pretty much anywhere on the screen, with little (if any) logical flow

So for my window manager we will see some big differences:

  • No double/right clicking (atleast not in the window manager itself). Keyboard combinations will replace this (i.e. Ctrl+Alt+C for double left click, Ctrl+Alt+X for right click)
  • Larger menu items. Prehaps some kind of funky “zoom” mode, so as the pen moves over the items they enlarge and shrink, making selecting one significantly easier.
  • Less buttons to click. No more double clicking the title bar to maximize the window, rather an easy to remember, left handed key combo (i.e. Ctrl+Alt+W). Same for quitting windows (Ctrl+Alt+Q prehaps), minimizing and of course switching.
  • Window borders will be bigger. Prehaps just the bottom right and top left corners will be significantly thicker, allowing easy grabbing with a pen. Alt+drag will be implemented early on, a superb X feature that works well with graphics tablets.
  • Alternative scroll wheel method, some super key (prehaps Ctrl+Alt will bring up a temporary menu under the pen or something) which when held while dragging the pen will scroll up and down respectively.
  • Menus and toolbars will move to the edges, much alike in OSX. For graphics tablets this is a lot easier to navigate to, you know the top of the graphics tablet will jump you toward menus, the right hand side toward toolbars etc.

So the next step is to finish Saturday’s exam, and then I’m free to produce some layout designs etc, and start looking over some WM’s source to find out how bigger-a-task I’m taking on :P