Slashdot Comment

Posted on November 26th, 2006 in General by TheMysteriousX

Link to TFA

And I come to the stark realisation that I probably should have used the coraleCDN. Oh well, near the end of the month so more bandwidth soon :)

so lets see.

If he uses 3 shapes, and 5 colours, that’s 13 possibilities per “dot”. For example, Circle, Square, Triangle, Red, Blue, Green, Black, White. All he has to do, s find another 3 permutations, and he has 16 options per pixel. For those of you out there that didn’t notice, white can’t have a shape, as the paper is white.

If the data to be stored were to be translated into hexidecimal, you can store 1 hexidecimal digit per “dot”.

1 Hex digit is equivalent to a nibble, so for every 2 dots you have encoded one byte.

256 gigabytes is 274877906944 bytes. Now, most printers can easily do 1200 dpi. This is linear DPI though, so they can actually do 1440000 dots per square inch. Now, if we assume that we would need at least 9 dots to do all three shapes:

. .
. .

 .
. .

 .
. .
 .

As shown above, that reduces the shape density to 360000 shapes per square inch, or 180000 bits per square inch.

A4 paper which is almost foolscap has an area of 96.6763 square inches, so we can store, using my methods, 17401734 bytes, so 16 megabytes, much higher than people here so far have been claiming, and using very, very conservative colour choices and resolutions.

While this is an order of magnitude away from the stated values, this could easily be much higher.

I have assumed a very low resolution (laser printers can easily get up to 2000 DPI these days), no compression, and a very restricted subset of values. I should think it would be easily possible to use 8 bit colour, with no risk of data loss.

Add to this 8 to 14 conversion, or parity values, to ensure data integrity, and I think that what this guy is claiming is within the realms of possibility.

FYI, using 8 bit colour which yields 256 possibilities

3×256-3 = 765
765 is almost 3 bytes per dot
using 2000 DPI,
2000×2000 is 4000000 divided by 9 is 444444 shapes per square inch.

444444×3 makes 1333332 bytes per square inch.
so, 128901604 bytes per sheet of A4
which is 128 megabytes per sheet of A4.

So as you can see, it’s not a case of “is it possible to fit that much data”, it’s just a case of howdetailed it has to be; add another shape, and the desity per dot goes up massively,

. .
 .
. .

maybe?

Is it possible to fit 256 gigs of data on a sheet of A4 with ink?: Yes.
Is it possible to retrieve it?: Possibly, depends how small you go.

If you want precendent, think how small the pits are on a Blu Ray disk are; if we can retrieve a single bit from something that small, can we can surely retrieve something a bit bigger and a bit more detailed.

My maths isn’t to strong, so if I’ve made a mistake, feel free to correct me.

Posted on November 25th, 2006 in General by TheMysteriousX

http://www.timesonline.co.uk/article/0,,591-2461748,00.html

A note to any headmasters reading this.

If any luddites come and slap a petition down on your desk, asking for the removal of a wireless network.

Agree. Then, a week later, ban all mobile phones from the school. Not just no using them, must be on silent, ban, as in no phones withint 50 feet of the school. After all, mobile phones use microwaves too, and emit much more strongly than wireless networking equipment, and so must be harming children even more, mustn’t they?

See how quickly the petition disappears after you throw that at them.

Caturday

Posted on November 18th, 2006 in Caturday by TheMysteriousX

Posted on November 17th, 2006 in General by TheMysteriousX

I hate quantum physics

Posted on November 16th, 2006 in General by TheMysteriousX

http://science.slashdot.org/article.pl?sid=06/11/16/0337230

Apply the possible results of this experiment to a quantum computer, and you could be looking at a computer capable of telling you the solution to your problem before you’ve asked it.

I really hate quantum physics.

Zero indexed MacBooks handed in silently.

Posted on November 15th, 2006 in General by TheMysteriousX

Coursework was completed, and handed in early. Wonders shall never cease. Wasn’t a rush job either, I shall be very disappointed if I get any less than 95%.

One great thing about computer science is, if you know how, the solution to most problems can be validated very easily. In the context of this coursework, it was just a series of queries to the database. Constructing a sample database took longer than working out what I thought the answer should be, but once it was created all I had to do was input the query, and make sure that it found the values that it was supposed to.

Another piece of work is going not quite so smoothly.

In the world of programming, one defining quality of a language, is how it numbers it’s lists (or, to use tech speak, how it indexes it’s arrays).
Normally, arrays (a list) is zero indexed, meaning that the first item is zero, the second item is one, the third item is 2, and so on.
There are a couple of languages that are one-indexed (visual basic.NET) but by and large, because we want to avoid wasting memory where possible, most languages are zero indexed.

In order to use arrays, they first have to be intiialised. For various reasons, you need to tell the computer how long the list is going to be before you can start using it.

Now, you would think, that arrays would be initialised in the same way that they are indexed, i.e. a zero indexed language would ask for a list that has 10 entries by requesting an array of length 9, and a 1 indexed language would ask for an array of length 10.

Enter C#.

Being a language created by our friend Bill, and his associates at Microsoft, they decided to do something different to everyone else. They decided that they would us zero indexed arrays, but request them in the same way that a 1 indexed language would (i.e. ask for a list of length 10, and reference it as 0-9).

Arf.

Bugs with arrays are brilliant. They can sit there unnoticed for hours and hours. You can even repeat the same bug in, say, 8 different places, and the program will still work.

Array bugs only show up, when you get to the last entry of the array, and try to look for the next one.

Thanks to Microsofts innovations, I now have to find everywhere that the array is used, and correct it’s use of it. Which wouldn’t be so bad if the project wasn’t about 2 and a half thousand lines long.

Still, it could be worse. At least I’m the only one writing the code, so I know roughly where the errors might be.

In other news, several new wireless networks seem to have appeared over the past week, and seem to be causing large amounts of interference. I try to keep the transmitter power on my router low as possible to save power, but it looks like I’ll have to increase it’s power to drown out the noise.

If anyone reading this has a MacBook, and experiences the CPU whine issue, try this: http://www.macupdate.com/info.php/id/22091
It prevents the processor entering C4 mode, which is the one that causes the whine, and actually works.