Redhatter (VK4MSL)

Looking around for a practical hilbert transform implementation

I’ve been pondering this idea for a while now. When I’m at home, I like to listen to my music… and sometimes, talk to people using VoIP. One big bug-bear I have, however, is being tethered to a desk by the cord of a headset.

Now… I basically have a few options:

  • Cordless headphones (either infra-red or radio) — but these usually are receive-only. I’d need to rig up some sort of cordless microphone to transmit a signal the other way.
  • Bluetooth headset — but they’re much too expensive, and I have no idea how well Linux works with them.

I’ve heard comments that both of the above options, have somewhat lesser audio quality, than a wired set. Many cordless headphones operating on radio, use stereo wideband FM to transmit a signal with a bandwidth of approximately 15KHz/channel. This is okay for what I want, but if I can do better, I might as well aim for it. 😉

Bluetooth headsets offering the A2DP profile, may do better, but they do it through the use of lossy compression. To be honest though, I’m also concerned with compatibility — I don’t have any Bluetooth interfaces on my computers so I’m up for a dongle. My phone (a Nokia 3310… yes, I’ve had it since 2001) doesn’t support Bluetooth, thus the only device I’d be able to use it with, is my laptop. I don’t have a lot of money to experiment — and headsets of this nature cost around AU$250 or more.

So I’m looking at homebrewing a set. Looking at the ACMA radio frequency class licenses, it would seem these devices are classed under the LIPD class license. I’ll have to double check with the ACMA on this… but looking at the gory details, it would seem there are a few bands that are allocated under this license for this purpose…

  • 88MHz – 108MHz (FM broadcast band) with 180kHz bandwidth and maximum EIRP of 10µW
  • 174MHz – 230MHz (VHF television) with 330kHz bandwidth and maximum EIRP of 3mW
  • 520MHz – 820MHz (UHF television) with 330kHz bandwidth and maximum EIRP of 100mW

Now… out of these… the 520MHz-820MHz band has the most liberal power limit of the three, and is also the least populated of the three bands. The catch is… all three of these have to use FM.

There are three signals to be transmitted in two different directions for this project…

  • Two 25kHz audio channels, transmitted by base station to be received by the headset.
  • A single 25KHz audio channel, transmitted by headset back to the base station.

For the headset microphone->base station path, this is trivial… I’ll just use one frequency to transmit a 25kHz mono signal, modulated on a wideband FM carrier. Easy. The difficult bit, is the other direction.

Stereo FM is normally achieved through the use of a subcarrier technique. The left and right channels are transformed into two signals that I call the mono signal (left + right), and the differential (left – right). They’re both band-limited to 15kHz. The mono signal is sent at baseband, with the differential modulated using a DSBSC subcarrier at 38kHz. The entire modulating signal has a bandwidth of 53kHz, generated by these two 15kHz sources.

My idea… is to use single sideband to conserve the bandwidth a bit. I’m undecided as to how I’ll transmit the left and right channels, whether I transmit them separately, or using the mono+differential technique discussed earlier. However it’s done… the plan is that one signal will be transmitted at baseband, and the other… using upper-sideband at approximately 30kHz. The entire modulating signal will have a bandwidth of approximately 55kHz, generated from two 25kHz sources. By reducing the bandwidth of the modulating signal, I hope to improve the noise immunity of my system so I can rely on minimal transmission power.

I have covered the principles behind single-sideband transmission, including simulating a Hartley modulator using Matlab. But looking around, I can’t see any schematic or notes on a Hilbert transform. It should be noted that a real-world Hilbert transform is an approximation, since the theoretical one is non-causal — this is why Harley modulators have a compensating delay.

There’s notes on how to implement them using discrete signal processing techniques, but I really don’t want the complexity of a DSP in something so trivial. I know it can, and has, been implemented using analogue electronics. If anyone knows of a simple, easy-to-follow schematic or notes on the topic… I’d be greatly interested. 🙂

Looking around I’ve found these documents… but if people know of others, I’m all ears. 😉

Gentoo/MIPS: Notes for upcomming release 2008.0

Well… since 2007.1 got cancelled, officially, it was decided that 2008.0 would be much earlier than usual to compensate.

A few days ago I had my O2 busy compiling big endian stages — these were based on the cancelled 2007.1 snapshot,  and I compiled them to ensure that we, as an architecture team, didn’t slip too far behind. Those who are doing fresh installs onto MIPS4-based SGI hardware, may wish to look here.  Note that while they are labelled as “2007.1”, they are not official release media for that release.

At present, I’m building seed stages for the 2008.0 release for both big and little endian, and should start on proper stages shortly after a 2008.0 profile is added to the tree.

Due to a lack of manpower, the MIPS port of Gentoo is moving back to being an experimental architecture.  This means, starting with 2008.0, profiles will accept ~mips keywords.  There won’t be any keywords dropped on mass, the plan is we’ll just gradually let the stable keywords disappear over time (the ones that are there, stay, we won’t add any new ones).   Present users may wish to consider setting ACCEPT_KEYWORDS=”~mips” in their make.conf files if they have not done so already.  As always, any breakage, please report it.

The Loongson LiveUSB image that I mentioned earlier — is still in the pipeline.  It too, is marked 2007.1 as it was built with those stages.  It consists of a 870MB SquashFS image, which gets loaded from a netboot kernel.  The first netboot image for Loongson is now available, you’ll find it, and a rough guide on how to boot it on my devspace.  I haven’t put the LiveUSB image itself on my site yet, as it’s a whopper, and I suspect the Infrastructure team will rightfully frown on me distributing it from there.  It’s presently sitting in the staging area waiting to be pushed out to mirrors.  I’ll let you all know when this happens.

Getting out of a hole

Well, so far, people may have noticed I’ve been rather quiet on the Mt. Glorious VHF repeater, much to my frustration. Google Maps in the Terrain view, shows why…

Terrain blocking my path to VK4RBN

In red, are the mountain ranges in my way. In blue, the attempted path of transmission. The green arrow shows my transmission location.
(Map Source: Google. Map data ©2008 MapData Sciences Pty Ltd, PSMA)

I can get into VK4RBC without any difficulty whatsoever. It’s a UHF repeater, and as it turns out, the rubber ducky antenna on my handheld, is just 10mm shy of 1/4 wavelength at the required transmit frequency (433.525MHz, the wavelength is approximately 692mm). So 0.5W gets in without any trouble. But… the antenna is not efficient at VHF — it’s a lot shorter than the 500mm required for efficiency, and I’m also far too low for my already weak signal to make it.

Now… if I take a bus over the hill to Keperra, I can get into VK4RBN with only 0.5W of power. No problem. However, here in The Gap, the only way I’ve been able to do so, is using my transceiver at full power (5W; 2W higher than permitted under a Foundation license) and I have to practically sit on the roof to get my signal over the range.

The broomstick special… dodgy dipole for 2m bandUsing a 1/4 wavelength dipole, strapped to an old broomstick (pictured right), I was able to get in to VK4RBN. But only just … the signal was weak, and apparently, very crackly. Aiken (regular in #hamradio on Freenode) confirmed this — we could make contact, but only just. Thus it was necessary to construct a better matched antenna, and mount it up high, preferably on the TV antenna mast.

Whilst talking with Grant on VK4RBC yesterday, he mentioned an antenna design commonly called, the “Slim Jim” which can be constructed from a strip of 300? flat antenna cable, often used to connect TV antennas. They are fed with 50? coaxial cable — very convenient for my set — and can be rolled up for storage. So for a portable antenna, they’re ideal.

Asking around in #hamradio, Magne pointed to this site, which explains the theory behind the “Slim Jim”. Apparently it’s one of many forms of J-Pole antenna, which is itself, related to the Zeppelin antenna (used with the aircraft of the same name). They perform pretty much identical to the end-fed folded dipole antenna — in theory.

The Slim Jim 2m antennaThis afternoon, I wandered into the electronics store, and bought a soldered BNC socket, and 5m of outdoor-type 300? twin-lead cable (Dick Smith Electronics are selling it for about 80c/m, other places may have it cheaper).  About 10 mins of work, and I soon had my antenna constructed.   I soldered it to the BNC plug I had purchased.  The constructed antenna is shown to the left (click for larger image).

For the feedline… we used to run a Ethernet local area network on coax cable, and still had literally oodles of this BNC-terminated RG-58 cable lying around doing nothing.  A small SMA->BNC adaptor on the top of my handheld, and I was soon reaching VK4RBN on the 2m band.

Performance was significantly better than the rubber ducky I had been using.  I still had to use 5W of power, but it got through!  I had some interference trouble at points, the cause is unknown at this stage, certainly my questionable antenna building skills can’t be ruled out, but despite this, I had a around a one hour QSO with Ken on the VK4RBN repeater (a regular on this repeater).  This means I should finally be able to join in with the BARC net on Wednesday nights, instead of just siting back as a spectator.

My one observation —  I had planned to tape the antenna up to a fiberglass rod (originally from a tent — the rods themselves have some cracks in them, thus need replacing) and use that as a mast — however I soon discovered that this particular antenna did not like this kind of treatment.  Doing so yielded very poor signal strength, and seemed to cause the receive frequency to shift — picking up some foreign radio station (not amateur).

Whether the two metal cylinders that link the segments of the rod together are upsetting the EM fields, not sure.  I’ll have to experiment further, but if I let the antenna dangle in the open air, with the matching end up the top — it works fine.

Certainly in future, I’ll have to look at something more substantial, but this at least gets me to the local repeater. 😉

Australia Day Long Weekend Basecamp: Basket Swamp

Note: This story has been unwittingly picked up by John Edwards’ Election Blog. Please note the individual I speak of in this post is another chap entirely, and just happens to have the same name, as the US election candidate.

Well, this last few days, I’ve been camping once again. This time, at Basket Swamp National Park, which is about 20km northeast of Tenterfield, NSW. We left Brisbane early in the afternoon. On route to our destination, we happened to stop at a service station outside Warwick — whilst getting some ice for our water cooler, I happened to look around, and see this vehicle:

My father said “Go on, take a photo, you won’t see that vehicle again for a long time.” Not being quite the geek I’m made out to be, I said “No, you like it so much… you go take it.” and handed him the camera. He shot the photos you see above (click to enlarge). Well, it wasn’t the last time we saw it… we saw it parked right beside us when we stopped for dinner in Stanthorpe, parked in the campsite the following morning, and again parked in a carpark at the start of the walk to Wellington Rock. Apparently Linus has seen it, and was quite impressed at the time.
We had some fun finding the actual entrance to the national park… the GPS unit in our car had no idea about the roads inside the national park (funnily enough, it did know the roads at Gibraltar… ahh well), thus it directed us to go travel cross-country through the scrub. Some distance down the road, we found the true entrance, which had suffered some erosion during the recent storms in the area. We set up camp around 9:00PM that evening (Queensland time… we don’t pay attention to that DST nonsense).

Day One saw us walking down to the Basket Swamp Falls, which were flowing rather spectacularly after the recent rain. On route, we saw some trees with an odd foreign growth on the top — the photos below show what I mean:

As for the falls… well… the photos speak for themselves… the creek was flowing well…

On Day two much of the group climbed up to Wellington Rock. John & Di Edwards were doing some exploration elsewhere, but we had amateur radio contact. In fact, my first ever successful amateur radio contact, was with John this weekend — apparently his set would only transmit at 0.5W, but despite this, I received a very strong clear signal (S8~9/5) about 1~2km through the scrub. Some of the adventurous ones in the group actually climbed on top of Wellington Rock, which apparently offered some stunning views. I stayed put, capturing some shots of the group that stayed behind:

Kym Schluter happened to notice that Little Wellington Rock was nearby on the map… and in his words, “had to be walked to.” So after some bush bashing, we arrived at the aforementioned rock. I managed to get an almost 180-degree panorama — which I’ll put up once I’ve constructed it. In the meantime, the pieces are here:

My father managed to get a bit further along the rock, and caught these snapshots:

Later that afternoon, we drove up to Timbarra Lookout. Sadly the ladder up to the top of the actual lookout was locked, thus we couldn’t see any of the really stunning views from the top. However, I did manage to get this panorama… which again is in pieces for now.

Last trip I went on, we complained about leeches… well… it seems trip leader, Brian Reid, scored the ultimate prize in leech collection… taking off his gators, he watched this whopper roll out onto the ground. Beside is a 1920 six-pence coin as a size reference… the leech is so fat it can’t move, it just squirms on the spot.

The weather had been pretty good so far. I had the “dodgy dipole” 40m-band antenna (made from 15m of speaker wire — a knot tied at 10m and the pairs split out) and figured I’d go and see what I could hear on the shortwave bands. Well, in the distance we saw the thunderstorms roll in. It at first got windy… then it started to spit… then it poured… then… hale!

Some of the tent sites got a little damp after that… being mostly decomposed granite (similar to Gibraltar) much of the water drained away, however there were still some significant puddles left in certain spots around the camp.

Day three most of us packed up. The weather was glorious as we pulled down our tents, which was great — on the Gibraltar camp, it poured with rain on the last day, thus we had to spend a good week drying out the tent. A few of the group planned to stay until tomorrow, but for the rest of us, the trip out was uneventful.

Gentoo/MIPS for Loongson — LiveUSB image comming soon

Well… there have been rumours about Gentoo dying… it certainly is alive and well from where I sit.

The last few days have been spent polishing off what will become the first LiveUSB image for the Lemote Fulong computer based on the Loongson2E processor.  The image consists of a netboot image (which can be used on its own to perform a rescue or installation), and a 870MB SquashFS image, which contains the full live OS.  I’ve set it up to be a demonstration of Gentoo on the Fulong, as well as being a useful installation environment.

Software Included:

  • Complete KDE 3.5.8 desktop environment
  • Mozilla Firefox 2.0.0.11 (Bon Echo)
  • KOffice productivity suite
  • Konversation IRC client
  • Amarok music player
  • Video playback software (mplayer with Mozilla plugin, Kaffeine Player, kmplayer)
  • Quake II qmax (bring your own game files, yes … it’s quite playable on these systems, even without 3D accel.)

The desktop is available in two languages, English and Chinese (Simplified) — you select the language at the login prompt by logging in as the appropriate user (gentoo-en or gentoo-zh) — both are password-less logins.

I’ll leave putting up screenshots until I actually release it… there’s still some kernel tweaking to do… and of course being a first ever release, the distribution should be considered alpha-grade.  I’d like to release it with at least a 2.6.23 kernel, probably 2.6.24-rcX, which should allow OpenGL capability (nice framerates in Quake II, the present kernel lasts about 5 seconds before crashing with hardware OpenGL) .  The entire build has been constructed by hand at this stage, since I’m yet to learn how to produce proper LiveCDs in catalyst

But in short, I hope to have this up before the month’s end.  It’s based on the 2007.1 stages I built at the end of last year.

VK4FSJL: On Air

Well… I’ve done it. I can now add “amateur radio operator” (or HAM radio operator) to my skillset. I’ve kept pretty quiet about this thus far, but needless to say, I’ve been curious about radio for a very long time. Longer than I’ve been into computers.

It’s only recently that I’ve bothered to do anything about it. Having learned about the various modulation techniques (SSB, FM, PM, VSB, DSB) work, I’ve been keen to put some of these theories to practice and actually get a real-world understanding of them. Well, I’m now an amateur operator on a foundation license — this doesn’t give me the ability to build my own transmitters, but the plan is I’ll stick with this for a year, then I’ll upgrade to an advanced license (ditching the rather awkward F in my callsign) after some study. I figured I’d start with the basics that I knew I could achieve, while for the advanced license, there are some gaps in my knowledge that I’d like to fill in first.

Scratching the itch…

If you’ve got the itch too, like I did… this is what you do to go scratch it. This applies to those in Australia only.

1. Get the Foundation License Manual

The Wireless Institute of Australia sell a softcover book entitled “Your Entry Into Amateur Radio — The Foundation License Manual”. Get it, and have a good read. It covers all the basic principles of radio transmission sufficient to pass the Foundation license exam. Much of what’s covered will be familiar to those who have done 2nd year Electrical Engineering at university.

Once you’ve read through it, and made sure you’re clear on the regulations, and how to connect transceiver, SWR meter, ATU and antenna together, and the procedure for tuning the assembly, you should be set for the next step.

2. Do the exam

This may be organised via the local radio club — the exams are set by the Wireless Institute of Australia. To sit the exam, you must first book in advance — if you’re not affiliated with any radio club, you can usually contact one of the group leaders and they can often refer you onto someone who organises the bookings.

You’ll need the following organised for the exam:

  1. Government issued photo ID: Either a driver’s license, passport, or 18+ proof-of-age card*
  2. A passport photo (dimensions: 35mm×45mm) to be sent with the license application
  3. About $100 for the examination, and to cover the cost of licensing (payment made in cash, cheque, credit card…etc)

(* For minors without a passport, guardians can certify a child’s identity, but must bring their own photo ID)

The exam for the foundation license consists of two parts:

  • a practical examination, where you’re asked to identify basic electronic schematic symbols, types of cable/connector, how to hook the station up, and basics such as Q-codes and how to give signal reports.
  • a 25-question multiple-choice written examination, where you’re asked about basic theory and regulations (the latter, mostly common sense!). Pass mark is 18/25.

Note you won’t need to know about morse code, but you’re welcome to learn about it if you wish. It’s no longer a requirement.

The exam paper will be marked shortly after the exam, and you’ll know that day if you passed or not.

3. Application and Payment

If you’re unlucky enough to fail, there’s no charge, just go back to step 2 and try again. Otherwise, you’ll be able to fill in the forms to actually apply for a license and callsign, the licensing and exam cost is about $100 (a little less, so bring about $10 in change to cover if you’re paying in cash).

The photo you provide will need to be signed in permanent ink across an area of the photo that doesn’t obscure your mugshot. And make sure it’s the right dimensions (35mm×45mm) — I made the mistake of signing a larger one, and had to rush a correct-sized version to the post office to be sent via express post to the WIA in Victoria.

4. The wait

This will be sent to WIA’s exam service in Victoria for processing. This takes a few weeks (limited resources). The WIA will notify you via post when they forward your details onto the ACMA to assign you a callsign.

In my case, my exam happened on the 16th of December last year. On the 14th of this month (Monday) they forwarded my details onto the ACMA, with this notification arriving in the post today. The ACMA were particularly fast in my situation, looking up my surname in their Register of Radiocommunications Licenses revealed that my license had been approved, that my callsign had been assigned, and was valid from now until the 15th January, 2009.

The ACMA apparently send you a license in the mail, about a week after it appears on the site.

Catching me on-air

If you’re up for a QSO, there are a few repeaters in my area (two of them IRLP nodes) that I should be able to access. Sadly, I can only participate on the 2m and 70cm bands, as I lack transmission equipment for HF (the Kenwood TH-F7E I use can receive, but can’t transmit on HF… and I’m not sure where I can string 20m of cable up in the air in our yard). The repeaters I listen to:

  • Mt. Glorious Repeater — 147.000MHz FM: This one is geographically closest to me, and I should definitely be around Wednesday evenings when the Brisbane Amateur Radio Club have their weekly net.
  • VK4RBA UHF Repeater — 438.950MHz FM: This is the club repeater operated by the Brisbane Amateur Radio Club. Not sure whether this is accessible from my home location, but I may be able to pick it up when I’m mobile.
  • VK4XH IRLP Node 6139 — 146.450MHz FM: This one is located on the South side of Brisbane, thus I may be able to pick it up when mobile.
  • VK4ACN IRLP Node 6406 — 146.575MHz FM: This is one is geographically close to where I live in Brisbane.

I’m not sure what other repeaters are in my area… I dare say I’ll learn of their existence over time. I’m rather new to all of this, having just recently joined the community… but as I say, I’m happy to meet up with people on the amateur bands, now that I’ve got my license. 🙂

New Year’s Trip: Gibraltar Ranges National Park

Well, as I said in my last post, I went camping for a few days. 5 days, with no mobile phone reception (it stayed quiet until we got into South Grafton), no internet connection, and complete peace & quiet. It was great.

This map shows our approximate route. We actually made a detour into Ipswich to pick up a friend of mine, Jason Dawes who joined my father and myself on this trip, and on the way out, we took the Lions Road through Cougal, up through the middle of Border Ranges National Park, and into Queensland on Running Creek Road. I tried to convince Google Maps of this, but it wouldn’t believe me — it seems Google hasn’t quite finished mapping out these roads.

I’ll have to assemble some of the panorama shots I took and process the videos (they’re uploaded, but I’ll have to convert them to Theora and MPEG4 for public viewing). The weather was rather intermittent, fine one minute, pouring rain the next. The only time it poured solidly, was when we were packing up to leave for home!

Below are some interesting shots taken on the trip. Click on the thumbnail to bring the image up full-size. The full gallery can be viewed here.

2008: Hopefully better than 2007

Well, 2007 is slowly drawing to a close. As I write this, I’m lying on my bed, winding down for the evening, I can’t help but think back over this year.

For me, 2007 was great academically. I hit some quite high scores at uni, and even this semester, managed to score a 7 in an engineering subject. 7s for me are very rare, and usually only occur with IT subjects — the subject this time around was on communications between embedded systems — specifically, it centred around an Allen Bradley SLC5/03 PLC, and a Rabbit Semiconductor RCM4000-series 8-bit microcontroller.

Amongst other things at uni, this year really drained me. Gentoo took a major back seat, along with many projects I’ve been working on, and my entire focus was on getting through the semester. My stress levels this year got to dangerously high levels, to the point I was at the brink of suicide. The only thing that stopped me, is that for better or worse, I’m needed, and there are things I need to do before I disappear off the scene.

Now that the university year is over for now (except for the mugs doing a summer semester), I’m able to relax somewhat. I was away from home for the last 5 days, sporadically jumping online via a dialup link to check on things. I worked on stuff that pleased me for once.

I did some testing for Gentoo whilst I was at it. My laptop wouldn’t dial out to the internet for some reason, but I soon discovered, the Lemote Fulong I took with me, worked fine. By disabling the getty on ttyS0 (I normally have it for when I use the box headless) and plugging a 56Kbps PSTN modem in, and using KPPP via X-over-SSH (xorg-server 1.4 segfaults, there’s some patches I need to forward-port), I had an internet link up first go. Hence, net-dialup/ppp got a bump. Sadly I had to USE-mask atm, because that needed net-dialup/linux-atm, which isn’t yet stable. If I find a way to test this, I’ll do so, and mark it stable too.

Looking around though, I see I’m not the only one feeling the pressure. Gentoo 2007.1 has been delayed this year quite significantly, with most of the people involved having other issues to contend with. In the developer community as a whole, everyone seems to be on edge. In fact, everyone seems to be on edge. No idea what the cause is, it’s just something I’ve noticed.

Now… 2007 as I say is almost over. Presently, boxing day will be over for me in less than 2 hours. My hopes for 2008…

  • I hope linux.conf.au goes well for all involved. Mark Kowarsky has done a lot of work to organise Gentoo’s presence at this event. Sadly, I won’t be involved (lack of funds and time prevent me from attending) but I’ll try to help out from a distance.
  • I hope that over this new year period, people get a chance to unwind and relax a bit. Some de-stressing is badly needed IMHO, and should help ensure everyone is ready for the new year.
  • I hope that university for me, will now start to taper off a bit as I enter my final year. This year sees a reduction from 48 credit points a semester, to 36, which should leave me more time to dedicate to each subject, and therefore less stress & anxiety.

For the next few days, I’ll be uncontactable, as I’ll be out of mobile range camping at Gibraltar Ranges National Park (northern NSW, half way between Glen Innes and Grafton on the Gwydir Highway). It’s a nice spot, away from technology. See, as much as I like computers, I also like to run away from them for a little while. 😉

Those who are travelling long distances, I wish you all a safe journey. Take it easy on the roads, there’s no point in rushing to a funeral. Here in Queensland, our christmas/new year road toll is already one death higher than it ought to be, and while I really do hope it doesn’t increase, my gut feeling is that it probably will. Take it easy though, and the chances of you becomming another statistic are greatly reduced.

I may not get a chance before the new year to make another post. So whatever you’re doing…

I wish you all, a happy 2008.

Holidays

Well, it’s that time of the year again, and I for one will be going bush like I normally do between Christmas day and the new year.

As far as Gentoo/MIPS is concerned, I’ve still got to get around to rebuilding my Qube2… I’ve tested my MIPS1 builds and everything seems to work, but I’ve been slack on my MIPS4 builds.  That said… the delays in this release seem to be Gentoo-wide, as everyone seems to have been caught on-the-hop.

From this Friday morning (before 10:00AM UTC+10) until Boxing day, I’ll be away from home, sporadically online via PSTN dialup to check for emails.

I’ll have my Qube2 and one of the Lemote boxes with me, so I’ll be able to do some package testing at least, as well as work on a LiveUSB image for the Lemote systems.

After boxing day, I’ll be in Gibraltar Ranges National Park, on the Gwyder Highway, halfway between Glen Innes and Grafton.  No mobile phone reception or phone services of any kind there… so if you need me for something please get in touch before then, or it’ll have to wait until I get back in the new year.  And no, I won’t be bringing any desktop or laptop computers with me. 😉

This year has been very trying on my patience.  The stress levels have been quite high, and I’ve been quite apathetic in regards to Gentoo’s issues as a result.  I’m hoping 2008 will be a better year — for all of us. 🙂

Shoddy file system driver makers

Well, once again I’ve got a bee in my bonnet … and once again, it’s Microsoft that I’m whining about. This time, it’s not the office suite that “Works” by name (but not by nature), but rather, their pathetic excuse for file system management.

I’m sure most people have heard of the FAT and NTFS file systems. I’m sure that NTFS has some nice features. I’m also quite sure there’s a reason why FAT is so popular on flash drives, when better alternatives exist for this role (such as JFFS2). But one thing I hate about BOTH file systems, particularly on their reference platform, is their ability to fragment files.

As some of you may already know, I do a lot of network administration work for Asperger Services Australia who run a network of 5 Windows XP-based workstations hanging off a Gentoo Linux server. Sadly, Windows XP is a necessity on this network, as they require Microsoft Office to communicate with government departments (who haven’t yet seen the light that is ISO26300, but that’s a rant for another day), and they also use MYOB for their accounts (in the absence of decent open-source accounting software configured for Australia’s rather complicated tax laws, I’m happy for this to continue).

The maintenance is generally not to bad. However, over the last few days, I’ve been doing some much needed work just before I get whisked away to work in some distant location. Part of this, is file system defragmentation.

Now, feel free to correct me if I’m wrong, but I don’t seem to recall too many issues regarding fragmentation on any legacy Unix systems. Either the problem was ignored, or it didn’t exist to any significant degree — otherwise I’m quite certain that there’d be tools alongside fsck to defragment a file system. I don’t see any for EXT2/3, ReiserFS, XFS, JFS, HFS/HFS+, FFS or UFS (in its various forms). Some filesystems, like HPFS, I even seem to recall in the OS/2 Warp 4 install, it mentioning how HPFS doesn’t need to be defragmented, since space gets automatically allocated before writing begins on a file. Which is ironic that NTFS should be suffering from fragmentation so bad, because Windows NT did, back in v3.x days, use HPFS as its native filesystem. Therefore I ask this question:

Why are Microsoft operating systems so lousy at managing file systems?!

C’mon guys, you’re supposed to be the market leaders. Where’s the bloody leadership? Why can’t you develop a file system driver for your operating systems that prevents, as much as possible, any fragmentation of the disk? I can understand if the disk is just about full, needing to fragment a file, but even then I notice other file systems manage fine… but why does this need to happen on a practically empty disk?!

I spose I should show you the horrors that greeted me yesterday and today. Below, are the fragmentation reports generated from one of the boxes I look after. Admittedly, I don’t think I’ve ever ran defrag on them in the year or so this particular one has been in service — I didn’t think it’d be a problem with a mostly-empty disk. I was wrong (the full reports can be viewed here, and here):

Volume OS (C:)
    Volume size                                = 29.28 GB
    Cluster size                               = 16 KB
    Used space                                 = 9.34 GB
    Free space                                 = 19.94 GB
    Percent free space                         = 68 %

Volume fragmentation
    Total fragmentation                        = 13 %
    File fragmentation                         = 26 %
    Free space fragmentation                   = 0 %
Volume APPS (D:)
    Volume size                                = 45.23 GB
    Cluster size                               = 4 KB
    Used space                                 = 912 MB
    Free space                                 = 44.34 GB
    Percent free space                         = 98 %

Volume fragmentation
    Total fragmentation                        = 21 %
    File fragmentation                         = 42 %
    Free space fragmentation                   = 0 %

21% fragmentation on a disk that’s 2% full?! WTF is going on? Microsoft’s OS is so lazy, it fragments files in a partition that’s so empty, it could duplicate the files another 49 times over. If they’re concerned about performance when appending to files, then why not leave a 1MB growing space or something? There’s plenty of space — use it wisely.

I’m not sure what the strategy is in various file systems out there, but I’m sure it wouldn’t be hard for Microsoft to take a look at how it’s done, and implement it in their own systems. It can’t be too difficult, because almost everyone else seems to handle the situation fine.

I guess it’s just another example how the Redmond-based slap-dash software company continue to rip us off and hobble the IT industry.