Stereograms – I love them!

I can still remember the first time I managed to see a sterogram properly. I’d bought two posters – one f Bugs Bunny and one of and eagle against a mountainous landscape – or at least thats what they claimed they were. All I could see was a lot of coloured dots – no pictures.
Those posters were hung up on my work office wall and to my total disgust, various work collegues would casually stroll up, look at the picture and take great delight in telling me how amazing it looked. But could I see them – could I heck.
However, after about 3 months I wandered over, and looked at one slightly differently and it just suddenly came into focus and I was totally blown away. They still fascinate me and over time, I’ve written a few variations of them, but a couple of days ago I stumbled across the simplest algorthym to generate them I’ve ever seen (from Sarahs’ blog). I’ve shown the relevant bit of code below (C#) just in case I lose the bookmark or the page goes offline.

void RDS(Bitmap bitmap,int stripWidth)
    Random rnd = new Random();
    int rndDotColour;
    float scaling;
    int width=bitmap.Width;
    int height=bitmap.Height;

    // This makes sure full white (high points are white and
    // have a value of 255) are always 1/5th the width of
    // the image strip.

    //Draw the random strip
    for(int y=0;y

Call it using something like:

Bitmap bitmap = new Bitmap("c:/shark.png"); //

Now thats pretty amazing. I've also started to make it into an iPhone application (why not) and the plan is to be able to draw and create your own. Why? why not I say. Note, its somewhat more complicated on the iPhone as bitmap drawing is pretty much non-existant, but its working.

Slight update - its now working with images as well as dots (Single-Image Stereogram)

Downside - its very slow (36 secs on the iPhone to generate an image). Booo - not the iPhones fault here note - most certainly my lack of Cocoa drawing.

As always, screenshots once the NDA is lifted.

Linux Part 2

Well, Feisty has just been released and after a demo of Beryl from a friend on mine at work (which does look very nice I have to say), I thought I’d give it another go.

Apologies for the long post but this turned into a real-time attempt to document my Linux setup.

Downloaded the ISO (and thumbs up to Pipex who even on the day of release let me download it in around 30 mins) booted up the live DVS, and kicked off the install.

The install is dead easy, only had to select keyboard, language and timezone and rest just happened – OK, now we hit the real-time point as its just installed and just doing the first reboot…….

OK, after restarting and a nasty 20 seconds where nothing seemed to happen, all booted up fine, into desktop and all looks good initially.

Now going to try to get 3D desktop working. Clicking Desktop Effects – Enable causes the screen to go white and thats it, causing me to have to hit CRL-ALT-Backspace to kill the Window Manager (thank god I know that combination!) and the nre-login.

However, that may be because of my ATI Radeon 9800 Pro card, so about to install the restricted driver support and see what happens….
Damn think won’t let me enable the ATI driver! No idea why as the checkbox just doesn’t enable. Arrgh. OK, let em download the Catalyst 7.4 Linux driver and give that a whirl (if of couse I can get it onto the linux box)….

Realise that I am an idiot and haven’t plugged in the network cable (after plugging it into my laptop), plug it in, get the message that we’re connected, try to re-install the restricted driver. Still no joy so decide to reboot.

Reeboot was fairly speedy. but damn thing still won’t let me enable ATI restricted driver!

Have to install manually :(. This required installing vsftpd and configuring that to copy the driver from my main pc to the linux one (nice and easy).

Ati driver installed OK but made sweet FA difference except allowed me to select the restricted driver which installed and required a reboot (just like Windows!). X came up fine but no 3D accelleration! Getting annoyed now.

At this point its 00:30 and I’m getting hassled to go to bed. Will continue tomorrow.

Linux – Don’t get me started!

Well, I read about the new Beta of Ubuntu (Feisty) being released a couple of days ago and decided to have a play and see how it looked. At this point, a little background…

I ‘ve been using Linux on and off (mainly off) for years – pretty much since I bought a (just release) Linux Unleased book which came with Slackware (1.0 I think but can’t remember – I also bought the 2nd edition because it had a newer version and this was when downloading a 600Mb CD was totally unthinkable!), and have tried pretty much most of the major (and some minor) distros including Suse, Mandrake, RedHat, DSL, and many other. Its a great operating system for playing around with. I also use RedHat at work (our website which I support/develop for and maintain – not on my own I hasten to add – runs on it). So I have a reasonable amount of experience.

However, I have only ever got everything in my system working completely once (and that was with Damn Small Linux when I was playing around in preparation to trying to get it running of a USB drive – which failed spectacularly). I have no idea why – its not like I have any weird and wonderful kit (well, OK, way back when I was using modems I could never get my winmodem installed but then they just weren’t supported then).

Anyway, I’d read a number of good things about the new Ubuntu so downloaded the ISO, whizzed it onto a CD and gave it a whirl on an old machine (well, a 2.8Ghz P4 with a ATI Radeon 9800Pro, Onboard sound and a Netgear network card – nothing fancy).

The install went well, I like the timezone selector, keyboard and langauge selections were spot on and then it did its stuff, rebooted and straight into Gnome. Good One I thought. then it popped up a box saying that system updates were needed – fine – go ahead and install them I said – installed no problem, and then said I needed to restart which I did. Bad Move – loaded the kernel and then just hung. Rebooted into safe mode (just like normal but with console messages) and it said something about device hdc (my cdrom) being confused and that device hda had missed an interrupt timer!

WTF does that mean?

After trying a number of things I gave up in a huff and went to bed.

The next day I reinstalled and again it all went smoothly, and again prompted me to update the system, this time I payed a little more attention to what was being updated and then noticed that a kernel upgrade was being applied. Sure enough, after the restart, it hung again, however selecting the previous kernel (its clever enough to take a backup although getting isn’t totally easy as you have about 2 seconds to press escape on booting to take you into the grub menu to select the old kernel) worked a treat and then it booted up fine.

Now I couldn’t face rebuilding the latest kernel at this point so I just updated grub to always load the prior kernel.

I then installed the ATI driver no problems.

Then I decided to have a look at the new Xgl server and compiz (the Linux version of the Vista 3D desktop). This caused me to enter a total world of pain which resulted in a) uninitialsed X sessions starting, b) Gnome refusing to load the composting component, c) having to go through the safe terminal to reset a number of settings by hand, and d) just generally getting frustrated after following numerous instructions on the web – none of which quite worked.

Anyway, after about 4/5 hours I’d had enough removed all my start scripts and then reloaded Gnome only to discover that all my window decerations (the window title bar, the close icons, etc) had vanished. This then took another 1/2 hour to figure out why and required me to remove all my previously downloaded Xgl/compiz packages to fix!

So time spent – 1 1/2 days elapsed.

Oh yeah, my soundcard wasn’t working either but no idea why and couldn’t face looking into that at this point.

Now, compare this with my main PC when I installed Vista (with much newer kit)- it took 25 minutes to install, ALL my hardware was detected and worked straight off the bat (OK, OpenGL didn’t work but that was due to the ATI drivers not supporting OpenGL at that point and they now do), and so far (touch wood) I have had no problems at all.

One final thing, to add, after the above, I came across a page (Here) that shows you how to install Ubunto on a Pendrive and thought I’d have a go and see how it ran on my main PC. That was another Bad Bad move (although I did get it working – mostly – just wouldn’t write anything back to the pendrive which was a totaly sod after updating 160meg worth of packages).

So all these reports I read about Linux finally being ready for the desktop – Is it hell.