What do you get from your ISP in India?

50 days in the slammer if you’re unlucky!

Lakshmana Kailash K. who is described as a 26 year old techie was arrested and held for 50 days. Apparently he was fingered by google and his ISP for posting unflattering pictures of Chhatrapati Shivaji Maharaj, who is apperently a revered figure in India on orkut (google’s social networking site). Google coughed up the IP address, and the ISP traced it back to his account. Unfortunately they got it wrong somewhere, and he was released 50 days later when the caught the real culprits.

The UK apparently still has a way to go to erode freedom of speech to level in India – but I think the politicians are taking leads from various places. 😉

http://www.cnet.com/8301-13739_1-9811569-46.html

Model-View-Controller song lyrics

Model-View-Controller lyrics

I’m reposting them here – the song appears to have a habit of disappearing, and these lyrics are too good to lose:

Model, View, Controller
Lyrics and music by James Dempsey.

Model View, Model View, Model View Controller
MVC's the paradigm for factoring your code,
into functional segments so your brain does not explode.
To achieve reusability you gotta keep those boundaries clean,
Model on the one side, View on the other, the Controller's in between.

Model View � It's got three layers like Oreos do.
Model View creamy Controller

Model objects represent your applications raison d'�tre.
Custom classes that contain data logic and et cetra.
You create custom classes in your app's problem domain,
then you can choose to reuse them with all the views,
but the model objects stay the same.

You can model a throttle in a manifold,
Model level two year old.
Model a bottle of fine Chardonnay.
Model all the twaddle stuff people say.
Model the coddle in a boiling eggs.
Model the waddle in Hexley's legs.

One, two, three, four.
Model View � You can model all the models that pose for GQ.
Model View Controller

View objects tend to be controls that view and edit,
Cocoa's got a lot of those, well written to its credit.
Take an NSTextView, hand it any old Unicode string,
the user interacts with it, it can hold most anything.
But the view don't knows about the Model:
That string could be a phone number or the words of Aristotle.
Keep the coupling loose and so achieve a massive level of reuse.

Model View � All rendered very nicely in Aqua blue
Model View Controller

You're probably wondering now.
You're probably wondering how,
the data flows between Model and View.
The Controller has to mediate,
between each layer's changing state,
to synchronize the data of the two.
It pulls and pushes every changed value.
Yeah.

Model View � mad props to the smalltalk crew!
for Model View Controller

Model View � it's pronouced Oh Oh not Uh Uh
Model View Controller

There's a bit more on this story,
a few more miles upon this road,
well nobody seems to get much glory
writing controller code.
Well the model is mission critical
and gorgeous is the view,
But I'm not being lazy, but sometimes it's just crazy
how much code i write is just glue.
And it wouldn't be so tragic,
but the code ain't doing magic:
it's just moving values through.
And I wish I had a dime
for every single time
I set a TextField's stringValue.

Model View � how we're gonna deep�six all that glue
Model View Controller

Controller's know the Model and View very
uahh � intimately
They often are hardcoding
which is very verboten for reusability.
But now you can connect any value you select
to any view property.
And I think you'll start binding,
then you'll be finding less code in your source tree.
Yeah I know I was astounded,
that's not even a rhyme.

But I think it bares repeating
all the code you won't be needing,
when you hook it up in IB.

Model View � it even handles multiple selections too
Model View Controller

Model View � hope I get my G5 before you
Model View Controller

Yeah, yeah, yeah. Yeah.

Excel 2007, 65,535 displays as 100,000 and testing

From Risks:

According to a *NY Times* blog (Pogue’s Posts), Excel 2007 for Windows doesn’t cope properly when multiplying two numbers that should yield 65535 (http://pogue.blogs.nytimes.com/2007/09/27/a-big-excel-boo-boo/).
Instead, it gets 100,000.

For a very nice explanation and discussion of its relevance, see Joel Spolsky, Joel on Software blog http://joelonsoftware.com/items/2007/09/26b.html

Have a look at Joel’s blog, and pay especial attention to the talk about testing – the fact that the bug appears to be in the presentation layer, and the testing is probably going to take results from before the presentation layer kicks in.

One more thing occurs to me. If there is this sort of bug that happens on 12 out of 18446744073709551616 possible cases, and it has only just been found, how many more are out there?

Chocolate!

Wow! Morrisons Petrol station in Aber is selling Lindt Excellence 85%. I went in there for 4 pints of milk, and spotted this on the impulse buy rack, and just had to have some – it’s been too long since I had some real chocolate.
I must say it will not be to everyone’s taste, and you can only eat a very little at a sitting – one square (quite large) is enough for me, but it’s *real* chocolate, with an interesting flavour texture.
Oh, and it cost a few pence more than 4 pints of milk.

Stop telling me about bum_tnoo7@hotmail.com

Please people, stop telling me that bum_tnoo7@hotmail.com (or bu_tnoo7) is a hacker and I shouldn’t add him to my facebook account.

It’s already wasted far too much bandwidth, the message itself that is forwarded is technically rubbish, and you yourself are being used by the “virus” as the propagation mechanism.

Oh, and before I get a load of comments on “how do you know”, “what makes you an expert” – I teach a course on hacking to the Masters courses, and if you don’t believe me, then do some research yourself – http://www.sophos.com/security/hoaxes/facebook_hacker.html

Important

If you receive this or a similar message, please do not forward it to your friends and colleagues. Forwarding unsolicited chain letters wastes time and bandwidth.

Grr grr grrr

Hmm, where does this start…

My fileserver used to run Ubuntu Dapper Drake Server.

I was trying out icecast to send a music stream to all the Xboxes and other machines in the house… so I installed a few packages to try and do that, and found that I really ought to be updating the system. Lets upgrade to Feisty Fawn thought I, and having done an dist-upgrade in the past without a problem thought that it’d be straightforward. How wrong could I be?

Alter sources.list, apt-get update, deep breath – apt-get dist-upgrade…

Something breaks – it’s complaining about /usr/X11R6/bin not being a symlink – please fix and try again… odd

Ok I try changing it into a symbolic link, and try again, fails again, differently, now complaining that rdesktop has a clash with something else…

After fighting with it for a couple of hours, I give up – the installation process has completely borked the underlying installation, and the system won’t even boot now.

Booting off a live CD at least allows me to back up /etc onto one of the other spindles – at least I won’t lose all my configuration even if it all goes titsup.

Now I look around and find that I’ve got a Feisty install CD, so I pop that in, and it seems to go ok – I install over the top of the old installation – yes it moans that something might get broken, but I’m willling to take the chance before re-formatting the disk. It appears to go ok, but when I come to boot – nada, well, not quite it reports “Cannot write to disk”. Is my hard disk dead? After about half an hour of chasing false leads about dual boot systems, it appears that there is a problem in the Grub menu. The last line has “savedefault” on it. Now my guess is that it’s trying to save to the hard disk, but as that was mounted read-only, it failed to write anything and stopped booting. Comment out that line and things progress normally again.

Of course, I had to change out the hard disk first as I thought that the drive might be on the way out (it was a 10 year old 4.3G drive)

Once I had done a clean install, at least the system booted, and I’ve got my /home disk mounted in the right place, but now my RAID card doesn’t want to start:

dmesg relevant lines:
pata_sil680 0000:00:09.0: version 0.4.6
PCI: Unable to reserve I/O region #1:8@de00 for device 0000:00:09.0
pata_sil680: probe of 0000:00:09.0 failed with error -16


lspci relevant lines:
00:09.0 RAID bus controller: Silicon Image, Inc. PCI0680 Ultra ATA-133 Host Controller (rev 02)
Subsystem: Silicon Image, Inc. Winic W-680 (Silicon Image 680 based)
Flags: bus master, medium devsel, latency 32, IRQ 11
I/O ports at de00 [size=8]
I/O ports at dc00 [size=4]
I/O ports at da00 [size=8]
I/O ports at d800 [size=4]
I/O ports at d600 [size=16]
Memory at efffff00 (32-bit, non-prefetchable) [size=256]
Expansion ROM at eff00000 [disabled] [size=512K]
Capabilities:


lsmod reports:
pata_sil680 10884 0

I tried all the standard things of turning off acpi and PnP stuff at boot and in the bios, and still no joy – I finally gave up at gone midnight.

So currently I’m stuck with the file server not able to access four of it’s drives (over a Terabyte of storage) until I work out why I can’t access the raid card.
Of course it’s probably going to come down to reflashing the BIOS on the motherboard, so I’ll probably look into that tonight.

Grr grr grrr