University

Onwards and upwards

Well… three bits of news to share… I can’t be stuffed doing three separate posts however, so I’ll stuff all three into the one, it puts less load on the servers involved.

X.org working on Yeeloong

I managed to get X going on the Yeeloong within Gentoo… I’m currently battling problems with Python 2.6 not building, but at least X runs.  I hope to get the necessary patches into my overlay shortly.

  • latest xorg-server ebuild works… you just need to add the loongson patch for version 1.6.0.  This is already in my overlay, just needs updating.
  • xf86-video-siliconmotion needs a patch to detect the video RAM.  This is due to the driver relying on some magic BIOS trickery which naturally doesn’t work on a BIOS-less RISC machine like the Yeeloong.
  • xorg.conf needs the LCD panel resolution specified … that is: Options “PanelSize” “1024×600” in the options for the siliconmotion driver.

VK4MSL contactable via IRLP

I recently put my homebrew 2m vertical back up … this time, using the mounting brackets from my old 2.4GHz vertical, and mounting the thing up as high on the antenna mast as I can push it. The choke balun on the antenna is level with the TV antenna yagi, so most of the radiated power is well above the TV antenna.

With this, I am now not only kinda able to work previously impossible repeaters such as VK4RBS (Bayside/Alex Hills), but also VK4RSS at Ocean View. What’s so good about VK4RSS? Well, I’m tripping it with 500mW of power (therefore good access when using 5W)… and it happens to be accessible via IRLP as node 6215.

I can also be sporadically reached on EchoLink node 37 37 40.

Graduated at last

I did say there were three items in this bulletin. I finally received my academic transcript, confirming that I have formally completed my studies at QUT, graduating with the following qualifications…

  • Bachelor of Engineering (Electronics)
  • Bachelor of Information Technology (Software Engineering)

This is timely, right at the bottom of the employment market… but I can’t help that.  Now begins the task of finding work in the Brisbane area.  I’m still running to/from Laidley doing some work out there… which may turn into paid employment (I hope so anyway… costs me almost $8 a day with a student discount in transport… That’ll double to about $15 when that card expires).

If anyone’s looking for someone to assist, particularly in the telecommunications field (I have a soft spot for radio and embedded systems)… feel free to get in touch directly.

I’m Baaaaaaack…

It has been a while, but I can safely say I have returned.  Not sure what the next step is… looking for paid employment I guess, but I have passed all subjects this semester, which should mean that I am now qualified in IT and Electrical Engineering as a graduate.

After the last exam, I could not run out of the building fast enough.  6.5 years of studies has certainly taken its toll on my mental state.  Anyway… I wound up traveling northern and central NSW with my father and his girlfriend for the last fortnight — got back home yesterday.  I am currently putting together some photos, and I’ll have a slide show ready for the next BOSQ meeting.  I’ll put a link up to the photos when they’re done processing (the aging PIII 550MHz webserver here takes a while to resize over 500 photos, most 10Mpixel in size).

Where did we go?  We camped at:

  • Dalmorton (abandoned settlement on the old Grafton-Glen Innes road) — overnight
  • Glen Innes — overnight
  • Bingara — overnight
  • Waa Gorge (pronounced “war”, part of Mt. Kaputar National Park… you’re not supposed to camp here, but it was late in the day, and the road in/out passes through private property with many gates) — overnight
  • Mt. Kaputar National Park — 3 nights
  • Coonabarabran — 2 nights
  • Port Macquarie — 3 nights
  • Dorrigo — overnight
  • Grafton — overnight
  • Brooms Head — overnight

In that time:

  • We explored a number of walking tracks at Mt. Kaputar, Dorrigo and Brooms Head.
  • Did some sight seeing at Port Macquarie and Coonabarabran.
  • Checked out the sandstone caves in the Pilliga State Reserve
  • Got bogged on a forestry road in state forest just north of Coffs Harbour (thanks go to the Clarence Valley State Emergency Service for pulling us out of that muddy mess)
  • HanoiCalc got a bit of work done — it works now.
  • I checked into three nets:
    • Ipswich & District 80m Net (3.585MHz LSB) from Waa Gorge
    • AWNOI Net (3.595MHz LSB) from Mt. Kaputar
    • Coffs Harbour & District 2m Net (146.650MHz FM) whilst waiting for the SES to arrive

We learned:

  • Setting up the annex and awning on a hard-floor camper trailer for an overnight stay is a pain in the bum.
  • My camp stretcher doesn’t fit in the camper itself, and only barely fits in the annex.
  • Holden (or Zupps) decided to put a really low tow hitch on the back of my father’s car… meaning we had to either find rocks/blocks of wood/bricks to back the car’s back wheels on to, or dig a hole just near the jockey wheel in order to unhitch from the trailer
  • Just because a road is marked on a GPS or paper based map, does not mean that it is in drivable condition, nor does it necessarily mean the road’s actual route bares any resemblence to the marked route.
  • The NRMA do not assist people who are bogged, they refer you to the SES instead.  (I hope some of the fees we’re paying are helping fund the SES for their troubles!)
  • My HF radio, which is normally very touchy on 10m… works fine on that band up in the higher altitudes — I suspect a temperature-related issue.

What now?  Well… as I say, I’ve got to find some employment somewhere.  I now officially become “unemployed” according to the damn lies^W^Wstatistics.  Potential employers in the Brisbane area, should contact me directly.

This also means I should have some time to dedicate towards Gentoo.  My last attempt at stage builds got sidetracked by a need to study and also hit technical issues (something in glibc’s build kept hard-locking boxes).

Also on the agenda here is a proper port of Gentoo to the Lemote Yeeloong.  The little netbook has been running well under Debian, with Gentoo sitting in a chroot environment… now that I’m no longer using the machine for daily studies, I think the time is ripe to start looking into reloading the machine.  Zhang Le did a great job incorporating Lemote’s patches into a mirror of the Linux/MIPS git tree, which I’ve been using to build my kernels… 2.6.30-rc4 has been quite stable.

I’ve also been looking at the ARRL handbook, with the view of upgrading my license to the Advanced level.  Then I’ll be paying for a 5-year license before the ACMA/WIA decide to up the fees again.

So, much to do, and a mountain of bugs in Bugzilla with my name on them… Ohh joy.

Circuit simulation

At university, I’m currently studying a subject entitled “RF & Applied Electromagnetics”, and at the moment, we’re looking at the issue of electromagnetic compatibility.

One thing that has come up both here, and browsing through the ARRL Amateur Radio handbook (I have the 1975 edition) is that above all, circuit layout has some of the most profound effects on how a circuit behaves.

What I did not realise, is just how low in frequency these issues show up.  The physical construction of many electronic components often means that, far from being a “pure” component, they in fact exhibit both resistive and reactive components.  I understood this occurred a lot in the VHF and UHF… which is a good reason why many homebrew radios stop in the lower HF.  These effects in fact, start to become visible as low as 14MHz.

This got me thinking… the typical circuit design workflow is some variant of this:

  1. Draw up the schematic in a schematic capture frontend
  2. Feed this into the circuit analysis package, inspect the simulation results.
  3. If unsatisfied, tweak schematic then go back to step 2.  Else feed into PCB layout package.
  4. Lay out the PCB
  5. Get PCB manufactured and build circuit.
  6. Do testing, tweaking component values… maybe go back to step 3.

It seems to me… the workflow should be more like the following:

  1. Draw up the schematic
  2. Lay out the PCB
  3. Feed the PCB layout and circuit schematic into the simulator, inspect results.
  4. If results are unsatisfactory, tweak layout and schematic, else get PCB manufactured and build the circut.
  5. Test & tweak

One criticism I have of gEDA, it seems to treat the schematic and the PCB as being two different things.  I find it awkward to move from gschem to PCB and back again when designing a circuit.  I also haven’t figured out simulation as yet.

I’d say the behaviour of the circuit has more to do with the way the board is layed out, than with just the components alone, and as such, I feel a modern EDA system should reflect this.  Qucs does seem to be approaching what is going on, in that you can simulate a stripline or similar PCB object in your circut.  I think it has possibly the greatest promise, but alas, it can’t yet do PCB layouts itself.  Time will tell I guess.

The commercial suites… well, I’ve used Electronics Workbench for years… I really must say I find the simulation in that much more intuitive than working with SPICE or Qucs… there is perhaps something worth looking into with its interface.  Multisim is more like traditional SPICE… but still retains some of the old feel of EWB.  However, all of them seem to simulate the schematic… which is fine… but you do miss out on a lot of what goes on in the circuit.

I’ve been getting used to Qucs… and so far, I quite like it.  Once again though, we’re looking at a simulation of an ideal circuit, under ideal conditions.  That is… pass a 100MHz sinusoid through a circuit: the resistors remain resistive, the capacitors store charge as they should and the inductors continue to add inertia.  In the real world, many resistors and capacitors become inductive in nature, and inductors look more like capacitors, depending on the physical construction of the component.  Mutual inductance, and capacitive coupling are also problems in the real world.

With today’s modern hardware, I figure the computing overheads to model how a physical circuit would behave based on the layout, is certainly a lot more feasible than it was when SPICE was first conceived.  SPICE was good for its time… but with the modern world requiring a higher level of engineering for its electronics, I think it has had its day now.

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.

What I’ve been up to lately

Well people will have noticed that I’ve been quiet on IRC, forums, email… and also on most of my usual haunts around the amateur bands (especially HF).

I’ve been out at Laidley for the past few weeks, doing some industrial experience with a small outfit known as Eze Corporation, who trade under their trademark of SmartWheel (warning: Flash-laiden site, not recommended on slow hardware or low-bandwidth links). They’re based about 2km outside the centre of Laidley and specialise in electric vehicles.

At the present time, it’s all research and development.  Rather than having a single engine and transmission system, these vehicles operate similar to the large mining trucks — four individual motors on each wheel, turning independantly.

My role has been primarily the programming of a small driver control console, the Tritium TRI63.  This little beast sports a Texas Instruments MSP430F135 16-bit microcontroller, with a Microchip MCP2515 CAN controller.  A rotary encoder hooks up to the steering column to measure rotation of the steering wheel, while a potentiometer measures the accelerator pedal position.  The role of this controller, is to take these inputs, then figure out the speed and direction for each wheel — and send it out on the CAN bus to the other controllers.

It’s been a fun project thus far.  The development environment I’m using consists of my laptop running Linux (at the moment I’ve moved back to my old PII 300MHz laptop, since my newer one’s screen shat itself last week) which does all the compiling (mspgcc for the win), and a Windows XP desktop that runs IAR Embedded Workbench — which I use for flashing and debugging.  This has been handy experience — since my final year project at uni involves use of CANs on the Atmel AT91SAM7X256 MCU.

Earlier this month I was commuting two and from Laidley… getting up at 4:00AM to catch the 5:10AM bus from The Gap, arriving at Laidley 7:30AM… then catching the 4:38PM bus from Laidley home, arriving back at The Gap around 7:30PM.  This last week however, I’ve spent a few nights out here… makes it a lot easier and it means I can pack the hours in before uni resumes next week.

I’m quite enjoying the lifestyle out at Laidley too … peak hour barely rivals Brisbane’s traffic on a Sunday morning, and it’s all flat, perfect bicycle country.  The only downside is that it’s unpaid work — but hey, I’ve got my foot firmly in the door.  If I could get paid work here at the end of the year, I’d be out of Brisbane like a ball out of a cannon.  Maybe there’s scope for that in the future.  Time will tell. 😉

Lecture Slides… and how to NOT present them

Well, presently I’m reading through the semester’s lecture slides to familiarise myself with the content I’m going to be examined on shortly.

And I’m noticing there are some bad habits that lecturers seem to be keen on repeating… again, and again.  Here’s some of my pet hates, as a student.  These relate to the presentation of the material we’re given, the actual format they’re provided in is another matter.

Many of these were provided in PDF, which is good.  My first niggle however, is when they do their “print to PDF”… in black-and-white… but don’t adapt their slides to suit this monochrome medium.Pick a shade, any shade!

The above image is from a real presentation.  Those studying “Professional Studies II” (EEB781) at QUT might recognise it.  It was shown to us in colour during the lecture… but now when we review our notes, we only have it in shades of grey.  Thankfully we’re not being examined on that chart!  Then there’s this little gem…

This is a small section of a slide… Must I say, that black looks great on dark grey.  Mind you, the same criticism could be levelled at consumer electronics designers, who think it’s great to microprint 2mm high light-grey text on a dark grey panel!  But I digress…  Colour doesn’t necessarily improve things either… as shown by this example:

If it isn’t masking much needed information by discarding the colour information… the other trap they fall into, is scaling bitmap images up in size, and/or deforming their aspect ratios.  I’ve got loads of examples of this, dating back over 5 years of studies… Here’s a brilliant example of the former.

Uh huh… you honestly are going to tell me you can read every word of that?  Well yes, if you look closely, you can make things out… but why should we?  That slide is so blurred and pixellated, it’s hard to see what is being said.

Here’s the lesson… Vector graphics are your friend.  You can scale a vector to any size you like, and it won’t pixellate.  SVG is great for this… EPS isn’t too bad too.  Or WMF.  They all allow for graphics that can be scaled to any size.

Some things of course, are inherently bitmaps, such as photographs and scanned images.  If you must use a bitmap… make sure it’s a decent resolution to begin with. Making a bitmap smaller (by resampling) is fine… but don’t try to make it bigger… it’ll look like utter shite.

And of course, if you do try to resize a bitmap (or any graphic really, vector or bitmap)… at least preserve the aspect ratio.  Nothing looks worse than a stretched and distorted photo…

If you look closely, you can see the top-left photo has been stretched (made bigger!) horizontally slightly (not too bad, but still).  The worst is the bottom-right photo, which has been compressed vertically.  It’d be okay had the image been compressed horizontally in proportion… but instead, it looks squashed.

Just about every presentation package I have used, provides the means to scale images while preserving their aspect ratio.  Some do it by default… some require you to hold down Shift or Control whilst dragging it out.  In either case… it’s trivial to do.  If something doesn’t fit the hole in your slide… consider cropping the bits that aren’t needed so that it matches the aspect ratio of the hole.  But don’t squash it!

Anyway… that’s enough ranting from me… about time I got back to my studies.

Life at the present moment

… is not a pretty tale at this point.

At the moment, I’m a bit pissed off. Some inconsiderate bastards in my neighbourhood are playing crap music at top volume (Yes… I’m talking about YOU, at the Settlement Road/Kaloma Road intersection!) — so loud in fact, that wearing earmuffs with a 80dB attenuation rating, does not stop the noise. However, this isn’t what I’m really annoyed about.

I’ve switched all the radios off, and the mobile phone… in this state of mind it’s better I don’t go talking on air, as I’m likely to say something I’ll probably regret. Likewise the phone. I’ve just tweaked my blog’s config, so now this won’t appear on planet.gentoo.org or anywhere else stupid enough to syndicate the entire blog.

Worth noting, that save a few isolated examples, my presence doesn’t seem to be wanted at all. A couple of the senior devs (and former devs) in the Gentoo/MIPS team for instance — regard me as an incompetent idiot (I have IRC logs and email archives of this), I’m only tollerated because they need the numbers.

My big beef at this present time, is where my future is headded. I’m almost through my education. I’ve been at it now, non-stop, since 1991… 7 years of primary school, 5 years of high school, a year of straight IT at Griffith, and now, 5 years of IT/EE at QUT. Well almost… it will be 5 years at the end of the year.

I’ve managed to organise some work experience with a mob out at Laidley. This is great news — it means I might have some chance of graduating this year. However, it’s a long commute from Brisbane to Laidley… and I’ve just been given a direct order by my father that I’m to be home by 7:00PM! Wonderful… it was going to be a struggle accumulating the hours up as it is.

The work experience issue is a big problem on my mind. Where as most students I’d imagine, at this stage of education, would be filling in job applications for graduate positions… this isn’t an option for me. Without the industrial experience, I don’t graduate!

This is a point I can’t seem to get through to people. If I were to apply to a graduate position, they’ll expect someone who has done the 60 days experience as required by the Institution of Engineers. Someone who already has this experience will instantly get preference over someone like myself who hasn’t been successful obtaining this experience.

Now… 60 days in this case, is 60 8-hour days. So with the above kerfew in place, that pushes that well past 80 days. And I’ll be studying during this period too, so I won’t be able to travel out to Laidley every working day to get the experience.

Why did I go to an outfit that’s so far from home? Well, I had little choice. Outside of Campbell Scientific, and Powerlink, nobody else has been willing to talk to me. I’ve sent off numerous job applications, if they contact me at all, it’s an impersonal letter saying your offer was declined. No explaination why. And the job sites are pretty much barren with respect to job ads.

I realise the vast majority of job vacancies aren’t advertised… but what’s 70% of nothing? By my maths… nothing. It seems you have to know people… and in there lies a problem.

I feel like someone’s smashed both my legs, then told me to go take a hike. Yeah, very funny! If I was suicidal 6 months ago… you can imagine what my mental state is at the present time. Here’s hoping this is temporary turbulance, and things will settle. There is the possibility of getting paid work with this company in the future (presently it’s unpaid)… in which case, it’s “See ya later Brisbane… I’m moving out!”… yeah, I’m sick of this rat race and I want some peace and quiet!

I’ll be glad when this year’s over… then I can see where I’m at. Hopefully I’ll be done with uni… and it’ll be off to find work. Exactly where I do not know — my ideas of what to do have shifted quite a bit since I started. The engineering studies have been a valuable — I’ll see how it is after I’ve done some industrial experience. At the very least, I can say, I have tried.

All else fails… I might talk to the TAFE or something, see if I can fast track an electrical tradesmanship… as that’s most closely aligned to what I know, and there seems to be a lot of demand in that field at this time.

Time will tell… but for now, I just had to get the above behemoth off my chest.

Open-Source development on the Atmel AT91SAM7X256

Hi all…

Lately I’ve been busy with university stuff. In particular, my final year project, which is investigating Controller Area Networks, in the context of the Atmel AT91SAM7X256 MCU.  These microcontrollers are a low-cost system-on-chip based around the ARM7TMDI core.  This particular one includes 64KB RAM, 256KB flash, RS-232, device-side USB 2.0, 10/100Mbps ethernet, and of course, a CAN interface.

When I first started looking into this project, I was thinking about using Linux and SocketCAN… well, needless to say the moment I saw the specs on the exact board I was using (the AT91SAM7X-EK), I soon realised Linux was simply out of the question.  That doesn’t mean however, that one is stuck to using proprietary kernels and toolchains.  The following, are some notes on how to code for these things… and where I’m at.

Kernel

You don’t have to use a kernel of course, you can code bare-iron, but I decided to go with a multitasking kernel to make my life easier — I can code each thread to do something basic, and let the kernel manage the IPC and task switching for me, hooking them together.  There are a few options out there, but so far the option I’m liking the most, is the FreeRTOS kernel.  This kernel is free software under the GNU GPL, and supports many platforms, including ARM7.

Toolchain

There are a few compiler toolchains you can use for this board.  The DVD that comes with the board, includes a version of IAR Embedded Workbench, which isn’t too bad, but unless you pay for a license, your code size is limited to 32KB.  The GNU toolchain however, is very mature for the ARM7 platform… and getting a toolchain up and running isn’t too difficult.

FreeRTOS can be built using IAR, and indeed to get me started, that’s what I did.  Once I was comfortable with the system though, I turned my attention to getting a GNU toolchain running on my laptop.  The toolchain needs to be built, targetting the arm-elf platform, using the newlib C library.  Thumb mode, multilib, and interworking support need to be included in this toolchain to build FreeRTOS.  There are numerous prebuilt toolchains, and guides on how to do them from source… but I wound up going my own way…

In my devspace, you’ll find a compressed Makefile.  Download this into an empty directory, decompress it, then rename it to Makefile.  Gentoo users, may find it helpful to symlink their distfiles directory (/usr/portage/distfiles for most people) to ‘src’ — the Makefile uses the same toolchain sources as Gentoo.  Edit Makefile to point to your local Gentoo mirror (I use these mirrors because they’ve got all the sources in one place), then run make.  With luck, it’ll build everything and install it for you.  It runs as a user, then uses sudo to copy the files to /usr/local where they are to be installed.

At the end, you’ll be left with a full arm-elf toolchain, based on GCC 4.2.3, binutils 2.18 and newlib 1.15.0.

Building the FreeRTOS kernel

FreeRTOS comes with numerous demos which can be used as starting points for your own projects.  The best one for the AT91SAM7X using GCC, is the lwIP_Rowley_ARM7 demo.  This demo does three things:

  1. Runs a webserver displaying some task statistics
  2. Flashes the onboard LEDs to indicate it’s working
  3. Emulates a CDC-ACM device, writing characters to it at 115200 baud 8N1.

To start, go into the Demos/lwIP_Rowley_ARM7 directory, and rename ‘makefile’ to ‘Makefile’.  To set the IP configuration, edit EMAC/SAM7_EMAC.h and change the IP address settings as appropriate (line 69 onwards).  Save this, then type make.  It should go ahead and build an rtosdemo.bin file, which is your executable to be flashed.

Flashing the project

This is where my usage of free software came unstuck.  There are a few projects that theoretically allow you to flash these devices.  The kit comes with a SAM-ICE J-Tag, which is equivalent to the J-Link device developed by Segger.  These, to my knowledge, do not work using J-Tag tools available under Linux.  You could use one of the Wiggler-style J-Tag cables, but I don’t have one of those at my disposal.

The AT91SAM7X has a trick up its sleeve though.  If you power the board up for a few seconds with the ERASE jumper enabled, power it down, then power it back up with the ERASE jumper removed, it’ll revert back to using SAM-BA firmware.  SAM-BA allows for the board to be flashed either via the DBGU serial port, or, via a CDC-ACM USB device.  Tools such as Sam_I_Am, then connect to the /dev/ttyACM0 device created.  For this to work, a small patch needs to be applied to the cdc-acm driver in the Linux kernel (This same patch also adds support for the FreeRTOS CDC device created by the above demo).

For me, this has been the most promising, but hasn’t quite gotten things going… I’m able to flash the device, but for some reason, it sees it as an AT91SAM7S256… and the thing won’t boot.  If anyone has some pointers as to what could be going wrong, I’m all ears.

At the moment, I’m using the SAM-BA flashing utility available from Atmel’s website free of charge.  This is a Windows NT utility requiring administrator privileges, which is suboptimal, but so be it, it works, I just boot my desktop PC into Windows 2000, and access the output binary via SMB.  This works, and isn’t too painful.  It may also work in a VM, I haven’t tried yet.

I’ll keep tinkering with the Linux utilities, because I feel it’s almost there… I’ve thrown this post up so that others who may be looking for this information, have somewhere to work from.  Apart from the little issues I’ve had, I’ve found this board quite enjoyable to work with.  I can use mostly my own tools to work with the files, and the C compiler is both stable (unlike the GNU toolchain for Altera Nios II) and fully ANSI C compliant (unlike the Z-World compiler used on Rabbit Semiconductor devices) — a nice change indeed. 😉

Open Standards

People who know me, will know I’m quite a keen supporter of open source projects. I’m not nearly as fanatical about it as others, such as Richard Stallman, but I try to support open source as much as I can.

However, I suppose I’m a much bigger supporter, of open standards, than open source. I don’t mind if a project implementing a standard is proprietary commercial software — if the underlying standards it is built on, are open, that makes it possible for an open source implementation to be created. This gives users a choice — they may choose for various reasons to go for a commercial solution, or they may choose open source, it’s entirely up to them.

Now I realise that many of you will be reading this on planet.gentoo.org, and thus I’m likely preaching to the converted. I’m mainly aiming this at organisations that are completely blind to the issues faced. I’m hoping some of those might see this post.

Some might ask, what’s wrong with closed standards? There are a number of issues regarding closed standards.

  • Vendor lock-in: it locks people in to buying from particular vendors, for better or worse.
  • Inflexibility: If you don’t know how it works, how can you modify it to make it do what you want?
  • Control: Who controls what you do with the application? Or the data produced?

If you’re using some closed system, and you run into technical difficulties, the only people who can help, are the makers of that product. You can’t easily switch to another product, and you’re completely at that vendor’s mercy. Some charge extortionate rates to fix even trivial problems, if they help at all. Now granted, there are some good players out there, and if you strike one, great… but if things change for the worse, you’re stuffed.

The ability to understand how a system works is particularly important. Not just with troubleshooting… but also with experiments. Users of a system may have ideas that you as a company have not even considered. Now if it’s open, they can either modify themselves, or hire someone to modify, the system to suit their needs.

Experimentation in one’s spare time is a great way to learn too — university can’t teach you everything. But if the system is closed, how can they experiment? The ability to learn about a system is greatly stifled, when you can’t play with the deep internals at the protocol level.

Control over what you can do with the data produced by a system is a hassle. Remember that you, as the vendor, do not own the data produced by someone using your product. As far as the user is concerned, it’s their data. If I put an audio or video clip of my own work up on my site (which I have done on occasions), it’s not companies like Fraunhofer, or Microsoft, or Apple that own the content, it’s me. And I want the right to be able to share that clip under my terms.

The only reason why the Internet is popular today, is because of open standards. You would likely not be reading this, had it not been due to open protocols such as IEEE802.11b, OpenVPN, Ethernet, TCP/IP and HTTP, and open formats such as HTML. Look at what happened to Compuserve… The Microsoft Network… AOL… Ring a bell? They were all closed networks, that died out because the open wild of the Internet was more appealing to their users.

It isn’t just an issue in the information technology realm. Allow me to look at the problem in another context. Amateur radio, would not exist today as a hobby, if it were not for open communications standards.

If you look past the obvious social and competitive aspects of amateur radio, you see there’s another aspect, the experimentation side. As defined by the ACMA LCD (I’m sure it’s similar in other countries) …

6. Use of an amateur station

The licensee:

  1. must use an amateur station solely for the purpose of:
    1. self training in radiocommunications; or
    2. intercommunications; or
    3. technical investigations into radiocommunications; or
    4. transmitting news and information services related to the operation of amateur stations, as a means of facilitating intercommunication

The two points I’ve highlighted in bold above, are rather important. Put in layman’s terms… if you’re not in the hobby to talk to people, it’s mainly there for experimenting with the technology.

There’s another restriction here too … we’re not allowed to use cryptography, or any kind of secret code, it must be public domain. (e.g. I could, for instance, theoretically use UTF-8 on CW, encoding ones as a dash, zeros as a dot, and using RS-232-like encapsulation. Morse users would get confused however.)

Now suppose FM, for example, were a closed standard — that is, you had to pay some company royalty fees to use them. (Yes, I know that almost did happen way back in the 1930s, but anyway.) How well do you think that’d sit with radio amateurs, who typically like to build homebrew equipment? I don’t think it’d be liked much at all. In fact, if it were secret, it may very well be illegal in some countries. Thankfully this isn’t the case, and even emerging standards like D-Star, are fully open.

Now… back to the IT situation. We can see that a system where the protocols and standards used are fully open, can work. I have to ask why IT thinks it’s special, and insists on closed standards?

Looking at the educational environment … it’s here more than any other place, where we need open standards. How can students be expected to learn about something, if they can’t conduct their own experiments? Experimenting in one’s own time is a good way to gain a better understanding of the topic of study. It’s people graduating from these universities, that will be carrying the industry forward, and I really do think the present industry, should assist by being as open as possible.

Why is it, that universities like inflicting this poor choice of closed systems on its students? Yes, I’m looking at you, Queensland University of Technology, with your extensive use of Microsoft Office, Windows Media codecs (for recorded lectures), Cisco VPNs, Microsoft .NET framework, and numerous proprietary apps/standards.

QUT have a number of labs for each faculty, but also central labs. The central labs have OpenOffice installed, however the labs for Faculty of Engineering, and Faculty of IT, do not. So sure, I can work on some assignment on my personal laptop (running Gentoo Linux of course) — but if I have to email it to the lecturer, I have to either convert it to a PDF (my preferred method), or some have the gaull to ask for it in Microsoft Office formats.

If I comment that I don’t have the money to purchase Microsoft Office, the comment usually is something along the lines of, “Ohh, well you’ll just have to use the computers here.” Yeah well… how about I email my stuff in OpenDocument (ISO26300) format, and see how YOU like walking out of your cozy little office, into the library, and using a computer other than your own to view some file you’re expected to read. Exactly, you don’t like it … why should we be expected to put up with it?!

If that isn’t bad enough, they’ve now dropped using Java apparently for a teaching language. They instead use Scheme for the first years, then go throw them in the deep end with .NET. Way to go for consistency! Probably worth noting that they know nothing about Mono, and expect everyone to use VisualStudio.NET.

I really do think this is highly hypocritical of the university, and it’s an attitude that really disgusts me. Sadly I know they’re not the only ones doing this — some are even worse in this regard. (Then again, some are really open source friendly.) I have good reasons for using the software I do. I at least give you, the choice of using anything that opens OpenDocument formats — which is quite a lot — just sad that your office suite of choice isn’t among them by default. That’s not my fault, and you shouldn’t blame me for that.

I’ve complained directly to them about this before … so I’m now taking this complaint onto the world stage. Don’t like it? Tough.

I try to practice what I preach. One site I maintain, the Asperger Services Australia site, does make use of open standards. Sure Microsoft Office is used internally to write the documents that get uploaded (I’m working on that, give me time), they are converted to PDF. PDF of course is another open standard, ISO32000.

Any multimedia on the site, uses the XIPH foundation codecs Theora and Vorbis. Sure, I get the odd question from a Windows or Mac user about how to play the files, but thanks to the Cortado player applet, and ITheora, I’m able to make the video play for 99% of users out-of-the-box, and cater for the other 1% by allowing them to download the file and play it any number of players that support Theora and Vorbis.

This is handled automatically in most cases, the user isn’t even aware of the underlying architecture. However, if curious, the underlying architecture is open and present for them to look at.

I think it somewhat ridiculous, when looking at science fiction shows such as Star Trek, depicting (fictional) alien craft, produced by completely different lifeforms, are somehow 100% compatible at every layer of the OSI stack. We haven’t even got this today, and every computer on this planet was built by the same species!

I really do think this closed-standards war is hurting more than it’s helping. It’s about time we cut the nonsense, and actually started working together. Protocols and formats, used by systems really should be open for anyone to implement. I don’t mind closed implementations of those standards, that’s fine, but the standards themselves should be open.

Anyway… that’s enough of my ranting… glad to get that out of my system. 🙂

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.