Forgot your password?
typodupeerror
GUI Hardware IT

Ask Slashdot: Best Management Interface On an IT Appliance? 114

Posted by timothy
from the one-you-never-need dept.
tippen writes "The management user interface on most networking and storage appliances are, shall we say, not up to the snuff compared to modern websites or consumer products. What are the best examples of good UX design on an IT appliance that you've managed? What was it that made you love it? What should companies (or designers) developing new products look to as best-in-class that they should be striving for?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Best Management Interface On an IT Appliance?

Comments Filter:
  • by Anonymous Coward on Saturday March 15, 2014 @06:15AM (#46490939)

    Not enough Javascript. Not enough external dependencies. Yeah, this totally needs to be more like modern websites.

    • by Anonymous Coward

      It's a great point actually. The old Nokia IPSO routers used to have a web interface that was so simple it worked fine using elinks (and if you don't think that's useful; think you could SSH into the box, so if someone screwed the routing you could get in and use the GUI locally!).

      There was this magic time in the middle when the interface worked both with links and had a bunch of "easy2uze" javascript.

      Then later some marketing manager decided that they needed whizz-bang shit and messed the whole thing up b

      • by mwvdlee (775178)

        The two don't need to exclude each other.

        Create a user interface that can do everything without javascript and without any flashy graphics, then add some CSS stylesheet to make it look nicer and flashier and add javascript to add more convenient ways of doing what you could already do without.

        For example, take a classic list ordering GUI with up/down buttons. Works fine without javascript. Add javascript to make it also do drag&drop. It works better with javascript, but still works just fine without.

        Web

        • by Anonymous Coward

          Web interfaces can gracefully degrade down to a very low level.

          They usually don't, though. I'm waiting for the first router GUI which loads jQuery from the Google servers...

        • by Chris Newton (1711450) on Saturday March 15, 2014 @08:26AM (#46491571)

          For example, take a classic list ordering GUI with up/down buttons. Works fine without javascript. Add javascript to make it also do drag&drop. It works better with javascript, but still works just fine without.

          Web interfaces can gracefully degrade down to a very low level.

          Yes they can, but not for free.

          This sort of idea makes us geeks feel warm and fuzzy inside, but the reality is that you're talking about implementing two completely different versions of that UI feature. Doing so takes time and money, and you’d be spending that time and money purely to support a use case that probably represents a negligible number of users (people who want to run these UIs but have JS disabled).

          Of course portability and compatibility are important for user interfaces, but this is a cost/benefit question. There is a line beyond which the results do not justify the effort, and any resources you’re spending past that line aren’t being spent on implementing other features or improving the usability elsewhere in your UI.

          • by vux984 (928602)

            This sort of idea makes us geeks feel warm and fuzzy inside, but the reality is that you're talking about implementing two completely different versions of that UI feature. Doing so takes time and money,

            This 100%.

            and youâ(TM)d be spending that time and money purely to support a use case that probably represents a negligible number of users (people who want to run these UIs but have JS disabled).

            And also "people in the future".

            We have some old network gear at work, the web management interface is some

        • I'm afraid that this usually means two entirely different interfaces, with overlapping features and writing to the same configurations. That is more than twice the development cost, since they involve distinct styles and expertise to develop or manage and the _negotiation_ between the two styles is an added cost. And it makes debugging more than twice as expensive, since tests have to involve both sets of interfaces and switching between them.

          This is prohibitively expensive: the result is usually that the "

    • Actually I really like the way the freeware router firmware Tomato is designed. It uses AJAX, which is primarily javascript driven, but it works quite well. The UI alone makes Tomato a great firmware, but it's also more powerful feature wise than the competition (e.g. DD-WRT.)

  • a command line.
    • by msauve (701917)
      That's like saying "a GUI." The OP was asking for a specific interface. My vote's with Junos, and its support for piping, commit confirmed, hierarchical structure, etc.
    • by Anonymous Coward on Saturday March 15, 2014 @06:27AM (#46490995)

      I would agree. The best appliances have good CLIs and REST interfaces. Otherwise they are just a mess of crap. Have you ever seen a SAN interface? Or Vmware? Or Microsoft System Center? (if anyone can figure out what the hell is going on in that interface I would love to know.)

      The best of the crappy interfaces is probably something like Qnap, they have great IOS interfaces, and the regular web interface is decent.

      • by mysidia (191772) on Saturday March 15, 2014 @06:54AM (#46491059)

        I would agree. The best appliances have good CLIs and REST interfaces. Otherwise they are just a mess of crap. Have you ever seen a SAN interface? Or Vmware?

        Yes.... NetApp DataOnTap's SSH shell + OnCommand and VMware ESXi SSH console and .NET vCenter client are some examples of Companies designing management interfaces properly.

        If you think THOSE or bad............. then I got a ton of devices with crappy CLIs and GUIs to show you.

        *Now VMware is moving in the crappiness direction with their whole deprecation of the .Net client, and shiny new crappy Web1.5 Flash-enabled webUI developed using Adobe flex, but newer vSphere not in production, so don't count the horrible unusable web "UI" against them just yet.

        • by DeSigna (522207)

          I'd have to agree. VMware VI Client (the .NET one) is very well designed and thought out, but I'd add the HP 3PAR Management Console into the list of well-done management tools.

          It's been a while since I used NetApp though. NetApp and 3PAR's management toolkits crap all over HP MSA/EVA or the various IBM SAN consoles for usability.

          • As an older programmer, I'm fond of some very good quality, older tools such as "webmin". Not all the modules added to it are excellent, but its very clean and very flexible for many core system utilities such as BIND based DNS. It's also much more robust than any configuration tool that relies on a separate, manually configured back end database.

          • by mysidia (191772)

            It's been a while since I used NetApp though. NetApp and 3PAR's management toolkits crap all over HP MSA/EVA or the various IBM SAN consoles for usability.

            Yeah... welll.... I believe even Cisco's CLI, Dell Equallogic's management console, and even Nexenta craps on what HP provides with MSA/EVA.

            I also hate the UIs of small business storage vendors, and I am thinking of a storage vendor targeting mid-sized companies in particular, where the management UI has pretty limited functionality, you don't g

  • by BestNicksRTaken (582194) on Saturday March 15, 2014 @06:25AM (#46490977)

    better than ios, easily parsed by scripts, regex support etc.

    • I agree with you about Junos. It is a very good CLI. However, for GUI interfaces, not much can beat ScreenOS....

      • by entrigant (233266)

        Which is interesting considering ScreenOS has among the most annoying CLIs I've ever used. However, the web interface is so freaking good that I don't care.

        I'm going to miss it when Juniper finally kills it..

  • by MacTO (1161105) on Saturday March 15, 2014 @06:27AM (#46490991)

    For usability, you need to look at your target market. This means that you should be asking the people who will buy your product, rather than the people on Slashdot. (If we are your target market, at least let us know what you are developing so that we can provide meaningful input.)

  • by Anonymous Coward

    The best full featured modern UI on an appliance I have ever seen. I like it because it is easy to use. http://www.synology.com/en-global/dsm/index/overview

    • Re: (Score:3, Informative)

      by PsyMan (2702529)
      I would have to agree with you, Synology for their NAS range is very intuitive for non techy people, shame the hardware underneath is a bit underpowered for what it could be. For SOHO though you could pretty much run one as the main server. Great GUI for a linux backend. XPEnology is pretty good too though, best of both worlds when installed on to a mid end PC (thinking i5 / low end Xeon ?) not entirely legal though I suspect. I guess the usibility is why their NAS's hold their price second hand as it can
      • by PsyMan (2702529)
        Must get a spellchecker :P
  • UI's suck... pretty much all of them. In order to look pretty they do away with functionality. Give me telnet access, command line, don't make your commands stupid and we're good to go.

  • General goodness (Score:5, Informative)

    by bertok (226922) on Saturday March 15, 2014 @06:51AM (#46491049)

    Specific examples are hard to come by, but I've noticed the general trend that differentiates the "good" from the "barely usable"..

    * Scalability. For example, a good interface will pop up a "search" box for finding a security group in Active Directory. A bad one will let me chose security groups from a list or a drop-down. Both look equally good when the developer is working in a test environment. The latter will crash when used in a million-object directory. Similarly, check out the DNS management dialog box in Windows, or some Oracle tools. Both will show you "all" objects up to some limit (e.g.: 5000), but then provide a filter option to allow you to narrow down the "search" to prevent the GUI from melting if you look at a database with 500K tables. Yes. It happens. A lot. More than you think. Really.
    * Annotations. It's 2014 for Christ's sake! There is absolutely no reason not to include a general "note" or at least a "description" field with every. Single. Thing. Seriously. All of them. I'm not kidding. Look at VMware's vSphere interface as an example of this done reasonably well but not perfectly. They at least allow custom columns so you can tag things systematically. Better yet, newer versions of Microsoft's Group Policy allow annotations on every single setting.
    * Versioning. For example, Citrix NetScaler keeps the last 'n' versions of its configuration automatically (5 by default I think). Why the fuck Cisco can't do the same with their 1KB but omfg-they're-ultra-critical-to-the-whole-goddamned-enterprise config files I just don't understand. Maybe they're trying to save precious bytes...
    * Policy. Good examples are Cisco UCS Blades and, of course, Active Directory Group Policy. Settings should trickle down through hierarchies. I should never have to set the exact same setting five hundred times. Settings should set-and-unset themselves automatically based on the scenario, e.g.: replacing a blade should not involve having to reconfigure its BIOS settings by hand. A typical bad example is 99% of Linux, where every setting has to be either manually set or set via a script. A script is still manual, just faster. No! Smack yourself in the face! A script is NOT a replacement for a policy engine. Don't breathe in, ready to go on a rant about how great Linux is, and how easy it is to manage, because it's really not. Scripts are a "write only" management tool that result in impossible-to-reverse-engineer solutions that can only be replaced wholesale years down the track.
    * Help. I'm not really a storage engineer, I just... dabble. However, I've set up labs with IBM and EMC kit, no problem. The one time I got asked to create a simple logical volume on a Hitachi array, I walked away backwards and refused to touch the stupid thing. It seriously had 10 pages of settings along the lines of "L3 Mode: 5/7?" I mean... wat? So sure, I press F1 for help like a naive fool. It helpfully informed me that the setting configures L3 Mode to either mode 5 or mode 7. I can press "OK" to accept the mode setting, or "Cancel" otherwise. I was enlightened. Meanwhile, the same dialog box on the EMC array basically asks for where, what size, and what RAID level.
    * Behind the Scenes. Some GUIs have 1:1 mappings with some sort of underlying command-line or protocol. Consoles based on PowerShell such as most Microsoft and Citrix products come to mind, most Linux/Unix GUIs, and Database admin tools. The better ones will have a "tab" or a pop-up somewhere which shows the "script equivalent" of whatever you're doing in the GUI. This is very useful, particularly for beginners, and we're all beginners with every product at least once.

    Really, GUI design is -- or should be -- a science, and not a trivial one! It integrates serious engineering constraints, business restrictions, project management priorities along with the fuzzy complexities of both individual psychology and the complex dynamics of interacting groups of people. It's done woefully wrong even by the largest c

    • Thank you for the insightful post. I create user interfaces professionally, I share many of your frustrations with the generally poor standards in the industry, and I find it reassuring that at least some people who use the kind of tools I build do actually value good usability!

      The one big thing I would add to your points is that whatever kind of user interface you’re building — CLI, GUI, API, whatever — it’s always going to be limited by how well thought-out the underlying configura

    • I press F1 for help like a naive fool. It helpfully informed me that the setting configures L3 Mode to either mode 5 or mode 7.

      This reminds me of the "help" feature in every system BIOS I've ever worked with.

    • by skids (119237)

      Why the fuck Cisco can't do the same with their 1KB but omfg-they're-ultra-critical-to-the-whole-goddamned-enterprise config files I just don't understand. Maybe they're trying to save precious bytes...

      They've started to in IOS 15.x. They even have started (gasp) to take mac address formats other than xxxx.xxxx.xxxx on some of their show commands.
      (This day and age all network ready equipment should take pretty much any mac address format from IETF to colon delimited to even less seen stuff like xxxxxx-xxxxxx, but yet still does not, it's pathetic)

      Having worked with a bunch of cisco-like devices I have to say cisco still has the best CLI I've seen so far among the major vendors. Being able
      to pipe command

  • Anything that doesnt require java, flash, silverlight, or god knows what else.

    Anything that works in all browsers.

    • Anything that doesnt require java, flash, silverlight, or god knows what else.

      Anything that works in all browsers.

      This. Seriously. Any management GUI which requires Java deserves to die in a fire. Because when you need to use it - which for some management GUI like a storage box which is configured once and then left alone until something needs to be changed might happen once every couple months - you can be ABSOLUTELY SURE that the computer you are sitting at either has no Java runtime environment at all or one which is the wrong version. At work, I have special VMs sitting around which I can fire up in case I need to

  • bash ; GNU tools ; ssh

  • Snapgear had a really nice GUI front end to iptables on their firewall/routers. Considering how iptables could lend itself to end up like a mess of spaghetti if handled badly that's quite a feat.
  • Windows XP
    Debian + LXDE

    Both on my IT appliance (the PC).
    Both simple, fast and designed for functionality and not some new buzzword called "user experience".

  • * A simple web frontend for manual things, that simply works in modern browsers
    * A complete and easy (no SOAP please, yes I'm looking at you BIG-IP/F5) API and/or cli that can be driven from automation tools, and that provides easily for idempotency.

  • A power switch

    If you need UI beyond that, then there is something wrong with the default settings for your device.

    For a networking or storage appliance, it should get on the network using stateless autoconfiguration.

    If a system on your network wants to use it, it should find the services the device offers via service discovery.

    If you need access controls, the device itself should find your directory service on your network via service discovery.

    The only thing you should possibly have to deal with explicitly

    • For a networking or storage appliance, it should get on the network using stateless autoconfiguration.

      Hey, man, you've given yourself away as being from the future.

      pfSense is a good example of how to do an interface well for network configuration. I'm not sure that defining a network topology in a directory server would be easier or better.

    • You've got to set an IP address somehow. Typing a MAC address into your DHCP server isn't a cool way to do it, and you need an address that you know from the outside, not just an address the device can use to talk to servers it already knows about.

      The equipment I've been using recently added a front-panel LCD/pushbutton mechanism that lets you set the IP address; previous versions of the hardware required you to either log in with an RS232 console that got a shell prompt or else use a VGA monitor and keybo

      • by skids (119237)

        Sometimes with these troublesome devices you'll find that it's on a server with a LOM board with fully functional emulated VGA, so it's technically possible to get them off the ground with nothing but an additional (trusted) ethernet connection. It's usually only worth figuring out how to do that if you have a lot of them, though, due to the large variety of LOM systems and their various nuances,

        But yes, it always sickens me when a Linux-based device ships with nothing but local GUI config tools.

      • by tlambert (566799)

        You've got to set an IP address somehow. Typing a MAC address into your DHCP server isn't a cool way to do it, and you need an address that you know from the outside, not just an address the device can use to talk to servers it already knows about.

        No you don't. If you run everything virtual private, and use IPv6, you really don't give a damn that you are giving third parties with physical access access to a routable IP address. DHCP is only for configuring things you can already configure automatically. For services (like DNS, proxy gateway, etc.), you can use service discovery.

        The address from the outside is done using DNS update, which is done via cryptographic key. If you have a pre-shared key, then you can set your machines name in some remot

    • by skids (119237)

      You obviously only administer small LAN systems in low security environments.

      Stateless autoconf, uPNP, zeroconf, prolific service discovery stacks, and non-local authentication databases are the very first things we turn off on any system that requires security-in-depth and rock-solid stability. These are all end-user/domain features that have no place in WAN, metro-lan, and border network infrastructure.

      • by tlambert (566799)

        You obviously only administer small LAN systems in low security environments.

        Stateless autoconf, uPNP, zeroconf, prolific service discovery stacks, and non-local authentication databases are the very first things we turn off on any system that requires security-in-depth and rock-solid stability. These are all end-user/domain features that have no place in WAN, metro-lan, and border network infrastructure.

        Google recently went to the model where all connections to the Google internal network are VPN connections, even if you are in a Google cubicle in a Google building on a Google supplied computer plugged into a Google network port located in a secured area.

        The idea that you need to secure network connectivity is bogus, and an artifact of scarcity of bandwidth. Without an artificial scarcity, there's no reason to not allow anyone who wants it connectivity, so long as gethostbyaddr() returns their actual affi

  • by Anonymous Coward

    For all the folks writing up the HTML code that goes into these things: use relative URLS!

    Do not put the hostname (or IP address) of the device in any of the HTML. Us IT folks sometimes need to go through proxies (and SSH tunnels) to get to these devices (which are often on isolated "management" VLANs/networks). Simply put "/network/settings" instead of "http://mydevice/network/settings" in any [a href] links (or [img] or CSS references).

    If the link in the HTML has "10.10.20.45" or "netdev01.mgt.example.com

    • by tippen (704534)

      For all the folks writing up the HTML code that goes into these things: use relative URLS!

      Do not put the hostname (or IP address) of the device in any of the HTML. Us IT folks sometimes need to go through proxies (and SSH tunnels) to get to these devices (which are often on isolated "management" VLANs/networks). Simply put "/network/settings" instead of "http://mydevice/network/settings" in any [a href] links (or [img] or CSS references).

      If the link in the HTML has "10.10.20.45" or "netdev01.mgt.example.com" in it, but my browser is actually connecting to "localhost" (because I have to do a SSH double-hop with forwarding), I'm going to think really evil thoughts about whomever wrote the HTML generator. I do not have to want to start editing my /etc/hosts or adding aliases to lo0 loopback interface.

      Great point and something easy to miss during the mayhem of implementation of a new product.

  • As a network administrator who configures routers, switches, and firewalls on a regular basis, I don't give a flying flip about what's commonly thought of as "good UX design" on IT appliances. The best UX for me is the one that's the fastest. Which means SSH, CLI, and text editors over anything graphical. As examples:
    A router's web interface requires clicking through multiple pages to find the right box to check or fill in to add a new subnet to a BGP session (if it's even possible at all). Via CLI, I can d

    • by skids (119237)

      One advantage that CLI has over GUI that few people seem to realize is this:

      Documentation for a CLI takes about 1/5th the resource to create, maintain, and display, is easily text searchable both inside the document and on the web, and rarely requires anything more than basic HTML to render. Just try to find "the button labeled 'address' under the 'resources' content pane tab reached by drilling down five levels in the menu tree each of which has an equally generic name. Oh yeah and the whole mess was ope

  • I personally hate the trend of browser GUIs. They are always sluggish and frustrating. If I can't have an installed application I'd rather have a CLI. An added bonus to the CLI is that it keeps out the TechTards and we all make more money!
    • by skids (119237)

      The "sluggish and frustrating" school of coders have managed to work their vile magic on some CLIs I've seen in recent products, too. Their suck knowns no limits.

  • The best WebUI I ever saw on a networking appliance is the one that comes with ZeroShell. High information density with very clear and concise controls http://www.zeroshell.org/ss/pr... [zeroshell.org]
  • They have a good functional, easy to use web interface that is just as powerful, if not more so, than the CLI. Both the web interface and CLI are easy to use and just make sense.
    • by tippen (704534)
      Is security policy management effective from the CLI on PAN firewalls?

      For the relatively simple network settings (port config, user admin, etc.), CLI is fast and easy. Hard to imagine trying to deal with complex policy configuration from the CLI. Do you end up switching to the GUI for that?

    • by Dakiraun (1633747)

      Agreed. In the last 14 years that I've been exposed to WebGUIs or free-standing GUI shells for appliances, The Palo Alto one is one of the cleanest, most intuitive and best thought out. Is is perfect? No... there are still a lot of short comings, but it's well ahead of a lot of others not only in its own category, but just appliance GUIs in general. It works well on any OS, in nearly any browser and even without any lessons or tutorials, a person can get the feel for what they're doing in it relatively

  • by horza (87255) on Saturday March 15, 2014 @09:40AM (#46492001) Homepage

    If you don't mind home appliances, then the Synology one is the best I have experienced. Easy to use, stable, one click installs for everything, intuitive. It does the desktop metaphor but unlike all the JS libraries I've come across this one doesn't appear to lag. Well suited to its application.

    In terms of server management, er probably none of them. Including the web based ones like cPanel, webmin and Plesk. OpenPanel has pretty screen shots, though you don't want to read phrases like "Please note that OpenApp always expects a clean install! Installing OpenApp packages on a non-clean system is likely to lead to data-loss or a non-functional system" so I wouldn't actually install it. All the ISPs present bottom-up approach to management, making it piecemeal. I'd rather have a top-down approach.

    Phillip.

  • I really do like the LuCi interface on the openwrt project. Though it's even more fun to turn it off, leaving only ssh access, and get calls from the clueless IT guy that is trying to twiddle something he shouldn't be.
  • by the eric conspiracy (20178) on Saturday March 15, 2014 @12:11PM (#46493103)

    NOT Sonicwall!!! Gawd it SUX.

    The less your UI has in common with that clusterfuck the better.

  • by cybaz (538103)
    I don't want any more GUI's, just RESTful API's that have complete functionality, not just a few commands for common tasks. Fancy UI's are fine for demo's so salespeople have something for customers to ooh and ahh over, or for small customers with limited IT staff. Most work these days is going into automation involving multiple tasks.
  • by attemptedgoalie (634133) on Saturday March 15, 2014 @01:03PM (#46493505)

    NetApp

    - Command Line in cDOT is pretty useful, I script a ton of things due to this.
    - OnCommand System Manager has problems, it even lost functionality in the move from the non clustered OnTap to clustered OnTap. (easy to fix on their end, just a lack of attention to detail) But when you have 30+ filers across a dozen sites, it's all well organized. I'd like to see better performance, but it does 90% of what I need.
    - The old FilerView worked for a small shop, but having all filers in the same interface is mandatory when you have as many as we do.

    Isilon
    - The web interface is pretty in OneFS7, but working with fileshares is kind of icky. When you have something that scales to 20-40PB, you'll have a few fileshares. And every time I have to work with one, it's not a great experience.

    Violin
    - My old 3000 series had an excellent interface, but it's limited since it's straight SAN, no CIFS/NFS. But fully HTML5, fully rearrangeable.
    - The 6000 series interface is supposed to be a tremendous upgrade. I have one in a box waiting for me to get to our DR site to light it up, so hopefully soon I'll know more. But this has been my favorite interface so far.

    Nimble
    - I don't use this one weekly, a different admin works on it, but it seems pretty straight forward.

    DataDomain
    - Same as above. It works. Nothing to write home about.

    FusionIO
    - Big whoop. We're actually going to put Pernix in front of our FusionIO cards and stop using their interface as Pernix has so much better functionality and integration with vCenter.

    PureStorage
    - I don't own this, we are about to do a POC. But it seems pretty nice from the sales pitch/demos.

    If you want to see a decent layout, NetApp's onCommand System Manager does a good job.

    If you want to see excellent non-Adobe flash functionality, Violin.

    Hope that's useful.

  • by RobertLTux (260313) <robert@lauren c e m a rtin.org> on Saturday March 15, 2014 @01:13PM (#46493605)

    1 have a Quick Setup page with the most common settings all in one shot
    2 Don't have "mystery magic" type settings (hint have a WIFI ON button not spread the ON function across 3 different settings that seem unrelated)
    3 have a CLI "rail" so that CLI monkeys can bash the keys when they want to (but have something in the manual where it says
    " to enable the SpeedConfig (TM) rail input %^73gH and the products serial number as your first command [this will be a permanent setting]")
    4 put how to get to the admin console on a sticker on the item
    5 do not assume that the person is using a laptop with 1024X768 res (hint there are things called netbooks running about and you also have smartphones)

  • by mbeckman (645148)
    PRTG (paessler.com). This network management tool is not, strictly speaking, an IT appliance. But it might as well be, since it's trivial to install on a dedicated physical or virtual host, at which point it walks and quacks like any other IT widget. PRTG's interface makes extensive use of Ajax, real time charting, and sports an extremely logical organization that is both intuitive and powerful. It works equally well on desktop and mobile browsers, a rare treat for IT gear.
  • NetBSD (or Linux if that is your faith) on a soerkis [soekris.com] box. UI is a Unix Shell. What else?
  • Dell Compellent's storage array has a very intuitive web management console. It is by far the easiest storage platform I have ever used.

  • I find the little things often neglected such as:

    Ctrl-A to select all
    Triple Click
    The ability to select text from e.g. labels to copy at all..
    Proper ordering of widgets for tab
    Click radio button/check box label

    Etc.

    If applications could just get the basics right it'd go a long way.

  • by charnov (183495) on Monday March 17, 2014 @12:01PM (#46507555) Homepage Journal

    Barracuda's interface isn't too bad on most of their products considering how complex they are. Ubiquiti's AirOS on their wireless bridges and devices is wonderfully put together.

    Also, m0n0wall and Tomato are favorites of mine.

For every bloke who makes his mark, there's half a dozen waiting to rub it out. -- Andy Capp

Working...