Rants

The impending IPocalypse

The following was a news article that I intended to record and have included in this week’s WIA National News service, however I had problems cutting it down to the 1:30 required. So, I’ve put in additional information that there wasn’t time for, and I intend to put in a short piece for next week’s news.

For the technically minded, I do apologise if it seems a bit dumbed down, but not all the target audience are computer-savvy.


The IPocalypse is upon us, no I’m not talking about some new Apple product, I am talking about the Internet Protocol, specifically version 4.  IPv4 has been with us since 1980, and has come to dominate all aspects of computer networking.  In fact, so popular is this networking protocol, that earlier this week, the Internet Assigned Numbers Authority, ran out of addresses.

At the recently held linux.conf.au conference in Brisbane, Google Vice President Dr. Vinton Cerf, and APNIC Chief Scientist Geoff Huston both gave talks covering this very issue.  For those who want an in-depth overview of the problem, I recommend viewing both these videos:

Back in 1973 when the beginnings of what became IPv4 was being conceived, it was decided that an address space of 2³² addresses (or 32-bits, about 4 billion) would be sufficient for what was considered, back then, an experiment.  The “Internet” (then known as ARPAnet) barely spanned 5 computers.  Computers occupied rooms and were not portable, nor was there any significant wireless telephony infrastructure at the time.  The problem is, the experiment never ended, and now IPv4 in this modern age of handheld computers and wireless Internet, is being pushed to its absolute limits.

Most people are familiar with using a telephone.  You need to know the number of the person you want to want to contact (or the phone number for directory assistance and quoting a name).  Only then can you place the call, and get in touch.  Now unlike a telephone network, where the call is established and a bi-directional connection exists for the duration of the contact, on the Internet, its more like dialling a voice mail service and leaving a message.  I need to leave that person my phone number so that they can get back in touch with me (or rather, leave a message in my voice mail box).

Extending the metaphor a bit, it is common for computers to have multiple connections going on at a time.  Servers also often run multiple services on the same system.  Thus, each system uses separate ports, akin to individual mailboxes.  Each computer has 65536 of them¹.  On the sending side, a free port is usually allocated at random and used for the duration of the connection.  At the server end, a fixed port is used to “listen” for incoming requests.  When sending data from one computer to another, the sender needs to tell the receiver which mailbox (or port) the data came from, and which it belongs in, so that data goes to the right place, and any replies can be correctly addressed.

The problem now, is that the address space on this global network is now in the hands of regional registries.  These regional centres look after the Internet services for a given geographic region.  Once those registries run out, it’s game over.  Internet service providers are forced into deciding between one of four actions:

  1. Turning away new users (the infamous “No Vacancy” sign)
  2. Implementing Carrier-wide Network Address Translators
  3. Becoming a walled garden
  4. Moving over to something new

I can see option 1 is not going to be popular, so I’m not even going to discuss it.

Option 2 is already happening in parts of Asia.  Rather than giving everyone a number that is recognised world-wide, they give you and fellow customers private ones.  They then employ an intermediate server, a Network Address Translator to re-write the addresses on the IP packets so that they appear to be sent from that server.  NATs of course are not just things that exist in ISPs, home internet routers often do exactly this.  Another example of NAT is Microsoft’s Internet Connection Sharing.

When a computer sitting behind the NAT wishes to contact a server outside, the NAT instead picks one of its ports, and places the outgoing message there.  It then replaces the source address and port with its publicly visible address, and the port number it chose, and forwards that on to the outside world.  When the reply comes back, it re-writes the destination on the reply to point to the original address and port number of the originating computer.

There isn’t a theoretical limit to the number of computers that can exist behind a NAT.  The limitation is the number of ports.  Ports may not be shared by two applications, if a program or service is already using a given port number, it is essentially unavailable for others until that program or service is finished.

That means that for any computer, there can be a maximum of 65536 connections at any one time.  NATs are not magical devices, and this limit applies to them too.  In this modern age of parallel computing, even web browsers will frequently launch multiple connections in parallel.  Some of these connections are short lived (such as the time taken to download the text off this page), some take a while (such as the time taken to download one of the keynote speeches linked to earlier).  The resource demand will change over time with user habits.

The first big problem with NATs though, comes when you have an application that needs to be contactable from the outside world.  The application for all intents and purposes is like a server, and is listening for connections.  The trouble is, this computer is behind a NAT, and its actual address is a private network address.  Even if an outside computer knew what it was, it wouldn’t know how to get there, and quite likely, wouldn’t be allowed even if it did.  So the only way to be contacted, is via this NAT box.

Now suppose you tell someone (or the application does on your behalf) your NAT box’s IP address, and the port number your application is listening on and an outsider tries to make contact.  The NAT box hears the request, but where does it send it?  It knows nothing about this port!  The NAT box has to be told to reserve one of its ports (which again must be unique), and to forward any packets sent there, to the right port on your computer.

The hardest bit here is that not all NAT devices work the same way in this regard, there is no de-jure standard for configuring a port-forward.  Microsoft UPNP is one of many de-facto standards that exist, and not all NAT devices or applications support it.  A lot of these also have lots of problems of their own.  In some cases, you have to set this up yourself.  Doable if the NAT device is under your control, but in the future we may be faced with NAT devices that are controlled by ISPs.

The applications that will be hardest hit by this will be any applications that rely on peer-to-peer communications.  This includes, amongst other things, the file-sharing services in instant messenger clients, peer-to-peer file sharing services such as Bit-Torrent, and Voice-over-Internet Protocol applications such as Skype and EchoLink.  IRLP, which relies on nodes having a static public IP address will be hit particularly hard, many ISPs already charge extra for the privilege of a static IP.

Hardware devices that use the Internet are not immune from this too — in fact the situation there may be made worse, since in a lot of cases, the port numbers used are hard coded in the device’s firmware.   You may ring up to get that special port forwarded, and already discover that another customer of the same ISP rang up 5 minutes ago and claimed it before you.

Ignoring these niggles, NATs don’t sound too bad if everyone is playing by the rules.  But what if someone decides to set up an Internet marketing company and starts filling up everyone’s email boxes with yet more “Discount Viagra” offers.  The way things are here in Australia, the ISP gives each customer a public IP address (which may be static, or it may change on a regular basis), and that is used as the public address on a NAT device owned by the customer.  If a customer were to do that, the IP address of that NAT device is visible in the emails sent — an ISP can simply look up who had that IP address at that time, and can immediately take action.

Now, suppose that instead, the ISP relied on NAT.  The IP address would be that of the ISP’s NAT box.  The culprit could be any one of the many users sitting behind it.  “Jjust log each connection on the NAT box” you say.  Deary me, could you imagine how slow that would be?  Not to mention the disk space used!

Now what happened if at the same time, other users were legitimately sending emails to that same network?  The logs point to a dozen users, which one was it?  If the complainant told you the source port used in the connection when the email was sent, maybe you can look that up, but I’m yet to see that sort of information recorded in system logs, email headers certainly don’t have them.

Clearly, this is not a solution.  It’ll make address space stretch a little further, but not without causing a world of pain for software developers who have to make their software compatible with differing standards, and causing the rest of us grief as we drown in a mountain of malware and spam.  If you think spam today is bad, you ain’t seen nothin’ yet!

The other way ISPs can go, is to close off from the world, and becoming a walled garden.  That is, you need to be a member of their network, to be in contact with other users that happen to also use their network.  Or if they provide connectivity to neighbours, it’s costly, and/or heavily controlled.  Anyone remember CompuServe, America Online, The Microsoft Network?  Ring any bells?  Those long-ago isolated bulletin board systems?  If they do, I apologise for stirring up bad memories.  If they don’t, count yourself lucky, and hope like hell ISPs don’t go back there!

I did say there was a fourth solution didn’t I?  Something new?  The Internet Engineering Task Force weren’t naïve enough to assume 32-bits would be enough.  They recognised that this would be a problem way back in the early 90’s.  They formed the Internet Protocol Next Generation working group, which in 1998 produced RFC2460Internet Protocol version 6.  IPv6 extends the address space to 128 bits, a big improvement on IPv4.  It also addresses a number of other bug-bears that people had with IPv4.

Some notable ones include: Mobile IPv6 extensions to allow a portable computer (such as a smart phone) to remain contactable at the same address as it roams between multiple networks, improved quality-of-service handling for real-time streaming and multimedia, automatic addressing and simplified headers to make routing easier.

The biggest feature though is the address space.  NAT is not implemented in IPv6, it is not necessary as there’s enough space to move around.  Rather than being given a single IPv4 address which you must share with all your computers, in IPv6, you get given a whole network address prefix.  Typically this prefix is 64-bits long, leaving you the remaining 64-bits of space to allocate to each of your computers.  How many addresses is that?  Remember the 4-billion (approximate) number I quoted for IPv4?  Square it!  If you have a computer network bigger than that, I do not want to see your power bill!

Modern computer operating systems can function on IPv6 already.  Microsoft Windows XP includes support, which can be enabled by following a few easy steps.  Windows Vista and 7 come with it enabled out-of-the-box, as do Mac OS X, Linux and the BSDs (FreeBSD, OpenBSD, NetBSD, etc…).  Hardware devices can be made to support IPv6 by a simple firmware upgrade, if one is available.  If a manufacturer has not published a firmware upgrade for a device you own to support IPv6, contact them now!

ISPs world wide are dragging the chain on IPv6 take-up.  There are some notable exceptions, here in Australia for instance Internode offer native IPv6 for their customers.  I’m unaware of others in Australia.  If your ISP is one of the IPv4 sheep, it’s now time to contact your ISP and ask them what they are doing about IPv6.  In the meantime, you can get an IPv6-in-4 tunnel from a tunnel broker such as AARnet, Hurricane Electric or Sixxs.

Many online services are slowly making the move over to IPv6.  Google can be accessed via ipv6.google.com for instance.  This blog is accessible via IPv6 (thanks to AARnet).  Sixxs have a big list of sites that are IPv6 enabled.  In June (the 8th to be exact) this year, there will be a world-wide test of IPv6.  Google (as in their entire site), FaceBook and Microsoft’s Bing search engine among many other sites will be going IPv6-enabled on World IPv6 day.  If you’re not already on IPv6, it’d be great if you could join us.

Openness is one of the things that made the Internet popular.   There is a very real threat that this openness or freedom we currently experience will be lost.  If you’re a software developer, we need you to ensure your software works with IPv6 for it to keep working into the future.  If you’re a network administrator, you need to ensure your network is IPv6 compatible.  If you’re a consumer, we need you to start pestering the help desks of these software companies, device manufacturers and ISPs to ensure the commercial world sees the user demand for this!

To quote Mark Pesce, “a resource shared is a resource squared”.  We need to ensure the Internet remains open and free, for all people into the future.


1. To be more accurate, there are 65536 TCP ports, and 65536 UDP ports. However, a UDP port cannot be used for TCP traffic, or vice versa.

2. RFC = Request for comment

VMWare Server 2.0: How web-based fails and a work-around for the masses

Well, I’ve recently gained some employment where I’m making use of VMWare Server to run a Windows 2003 virtual machine.  This VM runs ION Enterprise, Schneider Electric’s energy management package.  The project I’m working on will involve communicating with this software package.

Now, I’m working from home, and luckily I had the foresight to upgrade my desktop (actually, my hand was forced, the old one died) and I settled on purchasing a new 64-bit system based around the AMD Phenom II X6 1090T, which amongst other things, features the AMD-V virtualisation feature.  I’ve used it with VirtualBox OSE and it runs rather well.  However, for this job, the image I had was for VMWare.

Yes, I could “convert” it over to running on VirtualBox, but what if the hardware was different?  Windows doesn’t like that sort of thing.  The CPU changing model would be bad enough, and there was nothing I could do to prevent that, but I wanted to keep as much identical as possible.  So I began by installing VMWare.  There were two options I considered; Server and Player.  I figured Server had some nice features, one of which being that I can access the VM remotely.  I often like to work on the front verandah at home where there’s a nice cool breeze, this would enable me to run client software on my laptop and access it via the network.  Sounds good.

Sounded good.

The web interface firstly, relies on SSL 2.0 as its means of security.  Ewww! SSL3 was out in 1996, why are we using a security protocol that’s so old, and fundamentally broken?  Well, I’m not sure whether SSL3 is absent, or broken with regards to Firefox, but Firefox sure doesn’t like it, and won’t talk to the web interface until you apply one small hack to about:config, which enables SSL 2.0.

Now, once that’s done, you can at least log in and do things with the server.  All well and good.  I had some fun and games getting the image to boot, it turned out the disk image set for one of the drives was in the wrong place.  Some symbolic linking fixed that, and I had Windows 2003 booting.  No worries, but where’s the screen? I’ll come back to this.

VMWare Server 2.0 abandons the remote console it appears in favour of a web interface.  They don’t mention this in the documentation however, and when I at first couldn’t get at the web interface, my first instinct was to just install app-emulation/vmware-server-console. At first it refused to start, I had to apply some patches and install libraries from here to get it to even come up, lest I got a message about undefined symbols. It’s times like this I really begin to despise closed-source software. The clincher though was when I tried to log in, I was confronted by this:

Unable to connect to the remote host: 501 Global command GLOBAL server-vmdb to non-host agent targets not supported.

No one seems to know exactly what that geek-speak gibberish is supposed to mean. Best I can ascertain is that current versions of VMWare Server Console are for VMWare Server 1.0, and not compatible with its more modern counterpart. Everyone’s solution was to “use the web interface”. Now prior to that SSL hack, all I’d get is the server slamming the door in my face. Firefox would refuse to connect remotely. I discovered I could log in when running a local Firefox instance on the machine running VMWare Server.

That’s fine, got the VM set up and booting, try to bring up the screen. At first it needed to install a plug-in for the VMWare console, that’s fine, I do this and restart Firefox (3.6.8), then try again. I click on the screen area. It sits there for what seems like 30 seconds doing nothing, no acknowledgement that I had clicked it, I clicked a few times before it finally informed me:

Cannot access virtual machine console. The request timed out.
The attempt to acquire a valid session ticket for "Windows 2003 Server" took longer than expected. If this problem persists, contact your system administrator.

I did exactly what it said. I conversed with myself at considerable length to the problem while I researched the problem. I drew blanks every time. F$#!% VMWare, what ever happened to a desktop client?! Heck, why not open a VNC port or something?

Further research seemed to suggest it was a glitch with Firefox 3.6. On a hunch, I fired up VirtualBox, and started up a Windows XP VM which had IE8 installed. Pointed that at VMWare, and voila, I was in. It seems extremely silly to require another VM (a competing VM no less) to access the first, but at least I had access. That got me thinking as to whether I could coax the plugin to work somehow.

This morning, I had another crack at it. Looking in the Mozilla extensions, I noticed the following directory structure:
stuartl@beast ~/.mozilla/firefox/new7diw5.default/extensions/VMwareVMRC@vmware.com $ find . -maxdepth 2
.
./install.rdf
./plugins
./plugins/vmware-vmrc
./plugins/bin
./plugins/np-vmware-vmrc-2.5.0-122581.so
./plugins/vmware-vmrc-daemon
./plugins/xkeymap
./plugins/vmware-desktop-entry-creator
./plugins/lib
./plugins/open_source_licenses.txt
./plugins/share
./plugins/vmware-vmrc-legacy
./plugins/libconf
./install.js
./components
./components/xpcom-vmware-vmrc-2.5.0-122581.xpt

Ohh, a bin and lib directory? Interesting. I had a peek inside.

stuartl@beast ~/.mozilla/firefox/new7diw5.default/extensions/VMwareVMRC@vmware.com/plugins $ ls -l
total 904
drwxr-xr-x 2 stuartl stuartl 4096 Dec 15 17:17 bin/
drwxr-xr-x 61 stuartl stuartl 4096 Dec 16 07:25 lib/
drwxr-xr-x 4 stuartl stuartl 4096 Dec 15 17:17 libconf/
-rw-r--r-- 1 stuartl stuartl 684016 Oct 10 2008 np-vmware-vmrc-2.5.0-122581.so
-rw-r--r-- 1 stuartl stuartl 201997 Oct 10 2008 open_source_licenses.txt
drwxr-xr-x 4 stuartl stuartl 4096 Dec 15 17:17 share/
-rwxr-xr-x 1 stuartl stuartl 738 Oct 10 2008 vmware-desktop-entry-creator
-rwxr-xr-x 1 stuartl stuartl 738 Oct 10 2008 vmware-vmrc
-rwxr-xr-x 1 stuartl stuartl 738 Oct 10 2008 vmware-vmrc-daemon
-rwxr-xr-x 1 stuartl stuartl 738 Oct 10 2008 vmware-vmrc-legacy
drwxr-xr-x 2 stuartl stuartl 4096 Dec 15 17:17 xkeymap/

There were no executable bits set at the time however. They are AMD64 binaries however. So I chmodded and tried running vmware-vmrc. It failed due to some other permission errors, particularly lib/wrapper-gtk24.sh, needed execute bits set too. After fixing that, and some permissions on ~/.vmware which wound up being owned by root, I was looking at the VMWare Remote plugin … running stand-alone.

VMWare Remote Console plugin

VMWare Remote Console plugin, working stand-alone

This is about as close as I can get to a separate app. It took a bit of experimentation to get this to work, but in the Hostname field, you need to include the port number; so in my case it was localhost:8333. The rest is fairly self explanatory. I still can’t log in via the web interface, but at least now I can get in without a second VM.

Ohh, another rant, they forgot CTRL-ALT-DEL. Luckily, there’s this. Use the numeric keypad dot (also “del”), that seems to work here.

Yes… I hate you too Microsoft

Just installed a wireless card in the laptop I use at Laidley… the wireless card is a pretty standard Intel Pro/Wireless 2915ABG mini-PCI card. It works flawlessly under Linux. I think it was originally from an IBM Thinkpad T41, as it has “FRU: 93P4239” which when used as a search keyword, leads me to that page on the ThinkWiki site.

I’ve used it just fine in the Toshiba TE2100 I had no problems under Linux… never did get Windows to work with it.

I gave it another try today, after installing it into the Satellite PRO 6100 that I use at Laidley… The machine runs Windows XP as Texas Instruments likes to play all kinds of ridiculous proprietary games with their DSPs and MCUs (in particular, the TMS320LF2406A and the MSP430). So I’m stuck with this horrid OS.

I popped the card in… no problems, slots in nicely under the keyboard. Windows boots up, recognises the card as being a “network controller”, but doesn’t have the drivers… so far so good. Downloaded the drivers off the Lenovo site, and also grabbed the official Intel ones.  I’ve tried both thus far.

Upon installation, I see the following:
IPW2915 Device Properties

Okay… fine… let’s see what the Event Viewer can tell me.
Event Properties for IPW2915

Rightyo… there’s a link I can look at… what does this tell me?  I give it a try…

Event "details"... apparently

This wireless card works out-of-the-box in Linux with no stuffing around.  Yet… Windows won’t touch it…. and people wonder why I bag Microsoft.

If anyone knows of a solution to this gem (that doesn’t involve replacing the hardware or OS) I’m all ears.

What amateur radio is not…

Well, I really didn’t think I’d be writing a post like this.

This is following on from, and indirectly in reply to, an operator who decided to call in on the Australia-Wide Night-Owl and Insomnia net which is held every Friday night at 3595kHz.

Now, this net is pretty laid back… all are welcome. There are however, some things that just are not done on radio. Just as much as they are not done here on the internet. One of them, is to air dirty laundry on air.

Without going into detail… we had an operator call in from Victoria (a VK3V.. call, standard licensee) who then proceeded to make allegations about the off-air activities of another operator (VK2.., advanced licensee), in particular, the allegations involved claims of abusive phone calls and threats. The VK2 station responded pointing out some other misdemeanors allegedly purpotrated by the VK3 station, before (thankfully) moving on with the net. Thank heavens both had the decency to leave it there rather than tie up net time arguing.

Now, undoubtedly, the vast majority (me included) are not privy to all the information. They may be completely false, or there may be some truth to them. That isn’t for me to decide and does not concirn me. What I object to, is the usage of the amateur bands, as the platform for this kind of debate. It does not help any of the participants, or bystanders at all… and perhaps what both sides should realise here, is that by airing this material on-air, they are opening themselves up for a potential defamation case.

It is no different to me for instance, making similar allegations on this site… I could be sued for defamation. This is one of the reasons why I did not reveal the callsigns, or even the names of the guilty culprits. In the past, I recorded the net and provided it as a podcast (and had I done this, the recording would have been up for the world to hear)… but sadly the computer that I used for this is not operational at the moment. In any case, those who were listening, know to whom I refer.

I would ask that all people, who make use of radiocommunications services, whether it be amateur, citizen’s band, marine, airband or any other service out there… please bear this in mind. Your personal squabbles have no place on the air, as I for one (and likely countless others) am not interested in hearing them.

Opening a can of worms

Telemarketers are a pet hate of mine. I’ve made my point about them before, so I won’t repeat it.

Tonight we had a different class of telemarketing. That is… a company that you do have dealings with, contacting you to advertise another service. In this instance, it was Telstra offering us a discounted internet service. We currently have our telephone services (a landline and two mobiles) with them.

My disagreement with this sort of marketing is one of principle. We pay you to provide us a service, we do not pay you to pay telemarketers to harass us via the aforementioned service. I’ve also had SMS messages on my phone from Telstra, thankfully this is rare.

Now… they’ve unwittingly called us thinking we’re the typical non-technical household. Okay, fine, they weren’t to know that. However, one would think the telemarketers would know something about the product they’re selling. I initially answered the phone, and of course, when the woman at the other end asked for my father (who holds the account) I naturally transferred her.

A few points:

  • She did not seem to understand the limitations of what was being sold… yes, Cable internet is theoretically faster than ADSL… especially 512/128kbps ADSL (which is what we have). But cable is a shared medium, ADSL isn’t.
  • My father immediately asked about getting a static IP address. She had no clue what this was. Tsk tsk tsk… Internetworking 101 people.

The plan offered was only discounted (half price) for 12 months, after which, the price would double, resulting in a monthly rate only marginally less than that offered by our current ISP, who we’ve had a service with since 1996 and have been quite happy with.

Should an ISP be thinking of offering their services… first and foremost, don’t contact us with your offers… if we were looking to change, we’ll contact you. However, since Telstra have come to us, I guess that gives us the right to dictate what we expect… Our expectations:

  • Static IP is a must. (At last check, Telstra only offer this on ADSL for an extra $10/month… not sure if this has changed)
  • IPv6 native is highly preferred, but a tunnel is livable (currently we have one via AARNet)
  • We must be able to run our own server with any arbitrary service we choose including but not limited to:
    • HTTP and HTTPS
    • DNS
    • SMTP (both directions)
    • IMAP/IMAPS
    • NTP
    • XMPP
    • SSH
    • OpenVPN tunnels
    • IRC
    • VoIP services (including Skype, EchoLink and Ekiga… not ruling out D-Star, IRLP or other systems in future either)
  • We must be permitted to maintain, reconfigure and replace any and all network infrastructure components within our property boundary at our discretion… This includes choice of hardware and software!
  • In the event of a problem, I expect to talk to a competent tech support person who at least understands basic networking principles such as the TCP/IP model (or the OSI model which it is frequently compared to)
  • Related to the above, when contacting tech support, I expect that any findings I report are taken on board, and that appropriate troubleshooting techniques are used. I did not go to university studying IT and EE for 6.5 years for nothing!

Some of this is due to frustrations I’ve had with ISPs, particularly Telstra when troubleshooting issues on others’ behalf, and hitting this exact problem of being treated like a dummy because the other end is only reading a script. iTel haven’t given us any issue thus far… it’d be nice if they offered native IPv6, but that’s about my only nit I have with them… they’ve provided a very reliable service and haven’t gotten in our way. Whenever there has been a problem, it has been quickly identified and rectified. Thus, we have no reason to change… finance alone is not going to cut it.

Specific to Telstra… it’d be nice if they fixed the broken DNS server that fails to resolve yi.org domains. (If you have trouble viewing my site directly, but can see my post on Planet Gentoo… try changing your DNS server settings over to an alternate one such as OpenDNS, then please contact your ISP about it.)

The telemarketer tonight had to end the call prematurely while she found out from her employer whether static IP addresses were possible with the plan they were about to try and sell us. She’s apparently going to call back tomorrow evening. All I can say is watch out for low-flying aircraft.

Windows users: Having problems? Don’t ask me

Seriously… don’t ask.

Once upon a time, I used to know quite a bit about running a PC with the Windows operating system.  People used to turn to me for assistance in solving technical issues with computers.  This was fine, I was happy with that.  I still am happy to assist in areas where I am knowledgeable.

The Microsoft world today, however, is not a field with which I am comfortable anymore.  The Windows OS has changed to such a degree… and with all the technical issues faced by users of this OS… I have lost all patience with it.  I almost never use it at home or at university unless absolutely necessary.

So long is it since I’ve used the OS, I can no longer recall the layout well enough to guide people without seeing it in front of me… and of course, Microsoft keeps changing the layout at every given opportunity.  Add to this the constantly changing procedures for maintenance… it’s a nightmare to keep track of.

To those around me… if you choose to use this OS… that is fine.  Your personal choice, not mine.  Have a question?  I may be able to give some hints… but you are on your own… I now refuse to spend time trying to fix the issues thrown up by this foreign and arcane environment.  I have wasted much energy, fixing the troubles that in my opinion, should not have occurred in the first place.

I don’t know anything about this OS anymore… I left that community a long time ago.  Just because I have been using a computer for much of my life, does not mean that I am an expert in all fields of computing… and to the Windows users, I repeat… don’t ask, as refusal may offend.

Embedded development

Lately I’ve been looking around at microcontrollers.

With my work with Eze Corp, I’ve gotten quite accustomed to the MSP430. It’s a nice little MCU, with a very low power drain, gcc port and is in general, quite easy to drive. At my workplace, I use a Windows XP machine to do development under MSYS, using a MSP FET-430UIF JTAG device for programming and debugging. This is not my preferred mode of development, I’d much rather be doing it on a Linux host (or at least something that properly understands POSIX)… but it’s tolerable.

For my home projects though… this isn’t an option. I do not own a Windows computer any more, and in any case, I dislike working with it at my workplace — to hell with using it in my recreation! (The reasons why are best saved for another rant at some other time. No, I’m not a free-software hippie, I have other reasons.)

There are a number of MCUs available that I’m aware of. The biggest hurdle with many of them is the requirement of some piece of hardware which is either proprietary, expensive and/or unavailable. I like the MCUs that provide a JTAG interface, since it’s a well defined protocol that allows real-time debugging of the device as well as programming. JTAG for what its worth is little more than an SPI bus at the hardware level, it’s what’s layered on top of this that differs between devices.

JTAG can be implemented via GPIO. Since a computer parallel port is merely a specialised form of GPIO port, this enables people to wire up a JTAG port to a parallel port, and bit-bang the signals. There’s a couple of issues with this approach:

  • Parallel ports (I mean real ones) are getting harder to come by, especially on portable computers (understandable on netbooks, but I don’t see why full-size laptops don’t have them…anyway)
  • Most USB Parallel cables only have the smarts to drive a printer, they don’t allow arbitrary bit-banging of data. (e.g. the PL2305. And try explaining the difference to a salesperson…)
  • USB introduces a 1~2msec latency… which stuffs up timing at high speed.

I’ve seen some programmers (for PIC and AVR chips) that use RS-232. Now these are usually specialised devices for a given range of MCUs… that’s fine… but they suffer the same problem as the parallel-port JTAG cables… that is, most modern computers don’t have RS-232 anymore for some silly reason (as I say, understandable on netbooks… but are they saying they can’t cram a mini-din8 somewhere on a 15″ laptop?!)… and the USB latency screws timing up (I suspect this is the issue with the PL2303-based adapters we have here).

That leaves me with native USB devices.

A lot of the ones used by ARM devs are based on a FTDI chip which offers UART (RS-232) and SPI… so you get a serial console and a JTAG in one unit. Nice… In addition, there’s a open framework for debugging with them, OpenOCD. I don’t have the knowledge necessary to port this across to other MCUs… I guess one hope is that a MSP430 guru might contribute an OpenOCD port, but in the short term this isn’t an option.

For many ARM devices, there’s the J-link developed by Segger.  I’ve mentioned this one in past posts.  For MSP430, TI provide their MSP FET430UIF.  Both of these devices are on the nose from a usability point of view.  Both require you to use proprietary software in order to access their device.  This is fine if you’re on a supported platform, and the tool is well maintained.

For the J-link… well, if you’re not on Windows… forget it, that’s all they support.  The advice from them is to just run a Windows computer purely to run their GDB proxy software (which costs too I might add).

TI’s tool is theoretically a little better for support… the userspace drivers are proprietary freeware… but again, if you’re not using Windows or Linux on an i386 PC, forget it.  More to the point, the Linux version doesn’t seem to get updated as often — so the only real option is Windows.  Bad luck for me and my Yeeloong.

For what it’s worth, I do not understand why these things need to be proprietary… it’s a flipping programming cable.  Just moves data from one end to the other.  If they need to load firmware into the RAM of the chip being programmed, fine… but why can’t this be an ELF binary or something that just gets picked up by OpenOCD (or equivalent) and stuffed down the wire?

Devices like the Rabbit Semiconductor series of microcontrollers drive me insane with their non-standard nonsense… they decided to chuck many years of C history down the gurgler and invent their own “wannabe C”. #include <foo.h>? Nah… don’t be silly, we’ll just stuff everything into .lib files and #use them. Urgh!

I’d love to know what low-end microcontrollers exist that don’t exhibit the proprietary nonsense that is outlined above. 8 or 16 bits wide… I like ARM, but I’m not needing something that flashy. I like the low current drain of MSP430, and the fact they use gcc… which I guess pushes me in the direction of AVR and maybe PIC, but I’d be interested in other options. Cheap is important too, I don’t have a lot of cash for expensive tools or chips.

The other thing in the favour of AVR/PIC MCUs, is that there’s a local shop that I can buy them from — no need to order on-line. Farnell and RS have a wide variety, but I have to purchase from their website, which is awkward for me.

The applications I’d have in mind? Well, one idea is a more modern version of my headlamp… some of these MCUs draw less power than the 74HC14 chip used in that project (a few mA in standby mode) and would offer more functionality. Other applications include small controllers for amateur radio projects (not SDR though).

I’m really interested to know what controllers are out there, which are open-source friendly. Once I have a clear picture of what’s on offer, I can look more closely at my applications.

Can we drop this silly filter nonsense and move on?

Open letter to Minister Stephen Conroy regarding the proposed internet filter.

Over the last year, we’ve heard a number of people step up, complaining about this proposal, and what it will mean in terms of freedom-of-speech, and internet speeds.  I also heard a rumour that mentioned the blocking of peer-to-peer traffic.

Now, it is very noble of the government to be that concirned with the issues involving pornography and other objectionable material, that they are pushing forward with developing and introducing this filter to the masses.  Others have already pointed out many of the ethical and technical issues with the proposal, which I note, to date, are still not addressed.

The latest proposal however, has been to block peer-to-peer traffic.  I strongly urge those in the government to carefully consider the consequences before taking on such a drastic action.  Ignoring the fact that Bit-Torrent and similar protocols can, and are, used for legal purposes (such as distribution of open source software) as well as for piracy… a lot of other peer-to-peer protocols exist, that many people expect to be able to use freely.

Consider the following applications/protocols:

  • Skype
  • MSN Messenger
  • Ekiga
  • Yahoo! Messenger
  • TeamSpeak
  • EchoLink
  • IRLP
  • IRC DCC
  • VNC
  • RDP
  • SIP (most VoIP systems)
  • Hamachi
  • … etc

All of these, rely on peer-to-peer traffic to operate, and are used lawfully.  Blocking SIP could be disasterous to our telecommunications, since many people rely on this protocol as their primary home phone service! Such a move could proove highly unpopular with the voting public, and deadly to businesses that rely on VoIP services.  In a time of global economic crisis, is this really what you want?!

It is true that many of us absolutely hate it, when a politician breaks an election promise.  However, we are more than too happy to forgive politicians for breaking such promises, when such promises are mearly implementing bad policy.  I urge this government to consider the above, in addition to the comments made by others on this topic, before going ahead with such disasterous propositions.

Fed up with uni

Some of you may be wondering where I have been the last two days. I have not been on IRC, forums, or on the radio much at all this last 48 hours. I did call in to the BARC 2m net the other night… put in one over, then handed it on to the next station, going clear and turning the radio off.

I’ve been studying for a digital communications subject. I was planning this would be my last subject… but alas… the university threw a spanner in the works there by deciding to choose now to inform me that I was not elligible to graduate, due to a deficit of about 36 credit points (3 subjects).

The last two years of university have been the most stressful. This last one would have possibly seen me meet my end had I gone the full 4 subjects/semester. The high levels of anxiety and stress this course has put me through have been unbearable at times, and there have been some close calls.

The email I received delivering the above bad news… had me literally inches (or is that litres) from taking my own life. It’s a little known fact that when you drink too much water, it causes one’s kidneys to shut down in a process known as water intoxication. I clearly didn’t get to that point, but I had a few pains that suggested I was nearing the ballpark figure needed.

I have no idea how people are meant to complete such a course, and still remain in a sane mental state fit for employing. The various support services within the uni have been great — but that’s not an option for everyone.

At the moment, I’m only really studying now to see if I can actually pass this subject… but my heart isn’t in it anymore. I’m fed up with uni, and I really don’t know what to do now.

Guess I’ll be joining the dole queue next year after all.

For those who were thinking of trying the double IT/EE degree offered by QUT (formerly IF59)… I would not recommend it to anyone. The stuff-around I have experienced during this course is as such I would not even recommend it to my greatest enemy.

Food for thought

The attacks on the US that occurred 11th September, 2001, killed 3000 people, injured about 7000, cost and less than a billion dollars.  Maybe a little more when welfare payments and rebuilding is factored in.  The US following the attacks was still going strong.

The mismanagement that has lead to the current economic crisis will likely cost trillions of dollars, and has achieved what no terrorist organisation has managed to do thus far — cripple economies.

Nicely done fellas… but you can save the encore… we’re in enough of a mess already.