Sunday, September 03, 2006

It's a Hard Mod life...

I recently replaced my ancient Leadtek 6600gt 128MB with a more current Leadtek 7900GT 256MB with more pipeage, frameage and pwanage! Here's the workhorse:

Leadtek 7900 gt

The 7900GT is basically an under-volted, and hence underclocked, version of the 7900GTX, with a cost delta of about Rs.12,000. The GTX's core/processor is run at the rated voltage of 1.4v, while the GT is run at 1.2v. Even the Samsung memory chips are underclocked here at 1.8V from the default 2.12V in the GTX. Now, if only I can increase the core and memory voltage by 0.2V (or more), I can "stick it to the man" and overclock my relatively cheap GT to GTX speeds (and beyond) for cheap! And thus began my journey into hard mods, which here it's specifically called a "volt-mod". This is not a tutorial for volt-modding your 7900gt, however, since there are quite a lot of that out there.

Anyways, soon after the hard launch of the 7900GTs, many different mods for increasing the core and memory voltages came out. Almost all of them came out on xtremesystems.org. The mods ranged from easy(connect dots with conductive ink pen) to n00b-killer higher-volt volt mods (replace resitors with variable resistors and solder-in connections). I chose the easy mod partly because of not wanting to push my beginner's luck too much, and partly because I don't have a good third party cooler. That conductive ink pen was nowhere to be found around my area. I could've went over to the electronics center of my city, the Ritchie street, coz I heard it through the grapevine that it could be available there, but I was too lazy to plan a trip there.

So I settled to buying soldering equipment locally. Now, I've owned a soldering iron before, about 5 years ago I think, but I don't remember using it more than once, unsuccessfully, before it went kaput and I had to throw it away. With such soldering talent, I thought it would be wise to wisen-up before I burnt my house down. So I took the family's TV remote (at night when everyone was sleeping, of course) and tried soldering test pieces of wires onto the components and then de-soldering them. This was also the first time I had held and learnt to use a DMM, Digital Multi-Meter. After reading a few articles on soldering and DMMs, I can say that I can do some basic solder mods with some confidence.

Tools of the trade: The buying power of Rs.280
soldering kit

Here's the 1.55 volt mod I did. I have a closer-up version but it looks like a -20 myopic's view of the night sky: (yea, I know, try to buy a real camera)
7900gt 1.55 volt vmod


Make no mistake, these "solder pads" are tiny and soldering these things can be very tricky without a soldering rod that is thinner, sharper and more suited to electronics solder. I couldn't buy one so, before modding the video card, I tried modding the soldering rod itself. First, I tried to the brute force method of making the rod thinner, i.e., filing. Having no proper file, it was getting tedious to remove any amount of copper off the rod. So next I just took a stiff bit of bare copper wire and wrapped it around the rod a couple of times, leaving a small piece of copper jutting out. The way I used this copper wire is like this: first I melted some solder on the main copper nose and sort of splattered the tin onto a heavily taped area on my table. Then I looked for a tiny enough globule of tin that can be remelted by the copper strand, and then used the copper wire as soldering rod tip. The reson for splattering hot solder and then using that instead of using the solder directly from the spool is, the copper wire won't have enough heat to melt such a large diameter of solder wire.

This method was quickly becoming slow, painful and messy (to say the least), so I wound up doing all the solders without the copper wire mod. Anyway, here's the glorious copper wire mod simple mod, which can, almost, be seen below :
Soldering rod mod


Personally, I would recommend you to wait and get some silver paint or a conductive pen to perform this mod. If you do choose to solder mod your card instead, get to know the proper usage of the soldering gun and the DMM before you even switch them on. I had many close calls and nearly blew my card. Also, try to buy as many implements as you can that would help you solder better. For example, magnifying glass, tweezers, desoldering braid, gloves, etc. Here's some tutorials to prep you up: SMD soldering[sparkfun.com] & Modding & DMM[madshrimps.be].

Finally, onto the mod itself. Let me put what I know about the mod simply. The new gpu has a set of Voltage ID (VID) lines which carries the code for the voltage to be supplied from a sortof voltage table. The vmod changes the VID by connecting some of the VID lines to one of the ground points (to produce logical '0'). This makes the VID point to another voltage in the voltage table. From what I understand, in older video cards, modding relied on changing the electrical properties of the traces/SMDs themselves to transmit a higher voltage. The current type of mod is a major improvement over those kind of mods. Anyways, below are the two major places on the PCB to mod:
7900gt gpu vmod method 17900gt gpu vmod method 2

The first 'opcion' (spanish, I guess) in the first picture is the easiest to do, followed by 'opcion 2' and then the third mod (the second picture). First, I did the first mod but now I am with the second mod. I'll say the reason for jumping mods a little farther down. The scales involved in the third mod are just a tad tiny for me to solder properly. Not that I didn't try though. But it's too small for even my 'ghetto copper wire mod'. Next time, I am going to buy a magnifying glass and try to clean up the mod.

To over-volt the memory, there's a so-called "pencil mod". A pencil mod is done by shading the top of a resistor element using an ordinary lead pencil. Lead in the pencil is a pretty good conductor and acts as an alternative path, effectively reducing the resistance of the element. The DMM comes in pretty handy here to know if you've shaded enough or if you need to erase a few lines to get to the target resistance.

I didn't even bench the card at stock. I directly went and did the 1.4v mod and the 'pencil mod' for the memory chips, and hit 630 core and 784mem (Stock 450 core, 660 mem). Since I don't have a third party cooling solution for my video card, I didn't know how much excess heat the stock coolers can dissipate once over-volted. The temps were in the vicinity of some high 80s. Then I did the 1.5v mod after making sure the video card's not melted and was able to go upto 680/900.
3mark06 5202 screenshot
The peak temperature now was peeking at 100°C! Most people I know would've suffered some sort of massive attack if it were their card. But I kept this setup for a few days and then resoldered the card back to a bit more cooler 1.35v. But the OC was pathetic.

So I went and got myself 4 80mm fans to better ventilate my cabinet. This is a cheaper alternative to getting a video card cooler. Cost me about Rs.200 and my cabinet now has a total of about 7 fans all strategically placed (cross fingers). My lowly CPU cabinet, which doesn't even deserve to be named (it's a Zebronics Elegance. See?), didn't come with too many fan holes to begin with. But it has two extra holes now thanks to an old screwdriver and a good hammer hand. There was another problem that I failed to see; there's no place to screw-in the fans! That's when i came across double-sided foam. Great stuff this. I bought quite a few rolls of this thing after I saw how good it held. Now I've got four fans stuck-on rather than screwed in. I think the foam also dampens most of the vibration because you won't be able to tell by hearing that about seven 80mm fans are coursing air through my case even when you stand right next to it. I've set them up as 3 intakes and 3 exhausts. The 7th fan blows air across the video card's cooler. The air flow is further controlled by chart paper cutouts which are, you guessed it, strategically placed. I even made a cpu shroud out of chart paper.

Outside view of my cabinet

Notice the two newly fangled holes? The top hole, as you can see is covered by an exhausting fan and the one on the bottom right is used as an intake hole by a fan inside the case. I had an old epson printer paper tray like thing made of plastic. I took it off in this photo to show the fan inside but I kinda stick it on the fan to keep things from falling into it.

Notice the chart paper shroud-like covering on the bottom-left fan? That is to keep the exhaust from "polluting" the two intake fans next to it:
The gory innards of my computer
Feel like throwing up? It doesn't look this bad in person, believe me. The main thing to notice here is the CPU shroud, the video card shroud (below) and the intake fan stuck onto the side of the hard disks.

And here's the ghetto "cpu shroud". This is designed so that the cpu gets completely fresh air directly from the outside via the top side fan. This is so because the cpu cooler is surrounded by exhaust fans (the rear 80mm exhaust fan and the SMPS 120mm exhaust fan).
The ghetto CPU shroud


Right now, my cabinet is a mess. Ok, messier than before. Here's some internal shots:
Video card shroud, ghetto style
A sound cooling, this. Yep, that's two fans stuck on the back side of a Creative Live! sound card. Crazy, but my case is not very roomy. The video card shroud is, again, ghetto style.


Here's a view inside the shroud. Double sided foam tape FTMFW!
Two fans stuck onto a creative sound card


Notice the tiny loop of red wire on top of the card? That's my old 0.2v volt mod. In my recent mods, I use only a single strand of copper wire when connecting farther solder points (solder doesn't stick to pcb, only to metal). The reason is that, as I found out the heart-stopping way, the copper wire can leverage enough stress onto the solder point on that PCB that it could pry it off along with a strand of the silver trace connected to it! Remember the three mods? Fortunately for me, only the first mod will not work now.

So, I went and did the second mod. Of course, it meant a lot of desoldering and resoldering, which comes with it's own ton of risks, but hey, you learn. So, I guess that's it on my first hard mod. Presently, I am sticking with the 1.5v vmod and the temps are 60°C idle and 83°C load. Bless the approaching winter season, my temperatures presently are 56°C idle and 80°C load. I can only hope the temps will reduce a bit more. Cold climates are always welcome in Chennai. For a more long term cooling, I am currently looking for a very good video card cooler to buy. Like, at least a Zalman VF900cu. But they don't seem to be available in India. There's probably a few available for second hand purchase from an uber geek that's planning for next upgrade since yesterday. And, hopefully, I can get a good deal on it. Perhaps not in India.



Tuesday, June 20, 2006

BASSic fun

My computer desk doesn't really favour anything more than a 2.1 speaker configuration. So when I wanted to dump my sorry sounding Philips Smart Sound LC 2.1 speaker unit, I searched for another 2.1 speaker that was in the right price-to-performance sweet spot. This time, I didn't want to end up with another LC2.1 sound-alike, which turned out to be cheap both in price and quality. But I am over it now and my brand spanking new Altec Lansing ATP3 is monetarily cheaper and aurally dear.

Altec Lansing ATP3 2.1 speaker My pre-shopping research made a strong case for this speaker, and it very much lives up to it's fame. I mean, the bass is always in-your-face with no artifacts at all volumes. Oh yeah, let's talk about the bass. Due to my room's terrain and my desktop's oppulence, the only place to keep my speaker system is on my computer desk. The best place to keep a down-firing sub like mine is against a wall. But placing it on my desk has it's own thrills. Anytime a deep drum sounds, I can feel my desk vibrating as if it were the one that was hit. The effect is spectacular in games and in hiphop music, especially.
AFAIK, subwoofers are pretty much unshielded and so must be kept away from other electronics. But this is the first subwoofer I've had that distorts the monitor's display noticeably with every bass note. The effect is annoying, of course, and I am appraising a suitable location to relocate the sub. The ATP3's specified frequency range is only 45Hz to 18KHz, which was surprising considering the response. So, one day, I set out to find just how the subwoofer does great bass without touching the 18Hz to 43Hz spectrum. I downloaded a few tone generators and quickly liked playing with NCH Tone generator.

Using the tone generator introduced me to an absolutely unexpected and mind-blowing experience with deep bass. It totally changed my appreciation for the speaker as well. After stepping through the numbers, I found the following "sweet spots" in the speaker's response. NB, I didn't test extensively, rather just stepped through at the program' spinbox's granularity.
88.10 Hz
93.34 Hz
117.60 Hz
124.59 Hz

Though not near the infrasonic range, these frequency spots shook the room pretty good. My favourite was the 124ish Hertz. At this frequency, the ATP3 seemingly produces the most bass output. The subwoofer and the mid-range drives started behaving like goddamn leaf-blowers, pumping a continous stream of air. At first I couldn't up the volume above three-fourth at this frequency because there were all sorts of whirring sounds, apparently, coming from all around me. That was the first time I discovered how many loose objects were on my desk and around my room as well. Loose changes and small boxes were the first ones to rain down on my desk from the subwoofer's perch. A stationery holder (full of stationeries) and the subwoofer of my old LC 2.1 system started moving fluently along the desk. The glass windows and a light-weight, free-standing dressing table were the source of the whirring sounds. After securing them down I was able to up the volume still more.
But not completely though as harmonic distorsions become too evident. But even then the effects of the bass was pretty exciting. I brought water filled vessels into my room to observe ripples of varying amplitude with varying frequencies. That was when i noticed something more cool.

I remembered an episode of MythBusters where Adam Savage tested the myth of the Brown Note. The myth says that there is a subsonic frequency between 5 and 10Hz at which any listener supposedly involuntarily loses control of his sphincter. Or, in other words, the hapless audience shat their pants. They found no such note, at least in the three frequencies they tested (IIRC, 5, 7 & 9 Hz). My guess is that an infrasonic laxative note is quite plausible knowing the dangerous effects of the lower hertzes. Different intensities of infrasounds can knock down buildings, liquefy any animal's organs in a second, simulate an earthquake, travel around the world seven times over and can can mess up the mind, all 'without a sound'. I can understand why we can't hear ultra-sonic sounds (our middle-ear is a sort-of low-pass filter), but I always wondered how we can hear 20Hz but not 17 Hz. Maybe, at sub-17Hz, we only "hear" (or, "feel") the individual beats.
Anyways, coming back to the topic, my plan wasn't to inadvertently stain my long johns, however. In the episode, when Adam Savage, surrounded by arrays of subwoofer spitting low hertzes, tried to speak, his voice came out on-and-off, coinciding with the frequency they were working. That was due to the rhythmic compression and rarefaction of his lungs by the massive wall of air being moved by the insane SPL audio drives.

What surprised me was that I was able to do the same thing with my stock ATP3 subwoofer!

It was great fun to talk normally but end up sounding like a robot on a vibrating spaceship. Of course, with only 103dB SPL, the ATP3 isn't the 60 inch subwoofer and definetly not qualified for no SPL competitions. Ergo, I have to stay within about a half a meter of the sub woofer to pull this trick. But the bass's bewitchment burns brighter and compels me to buy a bigger custom woofer unit. I wanted to know how low a frequency a sub can produce (not reproduce, as I believe most audio formats don't store them in the first place) and came upon "the buttkicker". The ultimate way to experience bass is, supposedly, up yours. The device attaches to the bottom of a seat or a couch and transmits bass efficiently through the solid medium directly to the "recipient". I only wish someone would buy this for my birthday or something.

So, try the little sinsoidal experiment and see if you can't experience the primal bass response of your subwoofers too. And, of course, here's an obligatory note: Any damage to your equipment or to you or to your neighour's cat from trying out anything I said, is your own fault. The tool suggested here puts your speaker unit to a sustained high power output mode and hence should not be used for more than a few moment at a time, with the definition of "few moment" being left for your common sense to figure.

Here's a snapshot of my desktop showing the location of the ATP3, if you can find it among the junk, that is :)
Image taken on my father's nokia 6255 (I think).
My computer desk and ATP3

Monday, June 19, 2006

Spine Yoga?

I often have dreams that I can remember vividly for a week or two. I started a personal "dream blog" to journal my night time woolgatherings, but I had long since put that idea under wraps. I journaled one of my dreams but mozilla was kind enough to crash before sending the data to blogger and I wasn't going to write everything from scratch. But it was too hard to keep the post reader-friendly too because I had to introduce many familiar and unfamiliar persons to the reader, explain the flow of the dream's (il-)logical flow, explain the dozens of scenarios/scenes, explain the significance and familiarity of a particular person/object/situation or other non-tangible concept in my past and just plain forgetting some link in the dreams's flow. So, I'll try to be very specific, and very generic, where need be.

I remember all of the dream now having reviewed it a couple of times in my head. But the wierd part was when I was in my friend's house (Hey Anand Shankar!) and I saw his family friends and relatives chilling out and doing various stuff. One group of older male relatives were watching something on TV. It looked like a fully interactive and personal yoga training video. I watched the introduction by two long-braided, saffron wearing yoga teachers explaining yoga and it's benefits. Though looking like saints, they talked like the usual suspects at any telemarketing show.

I don't quite remember the speech but their was leading to something called "Spine Yoga". I think they were on about how it's a new form of yoga and how it can cure back problems. The audience became interested now as if anticipating. Then the guys on tv asked the listeners to place the "sensor" on their head. One of the men sitting before the tv (who, incidently, had a half-shaven head, much like a 'brahman') placed a small, black and squat-cylindrical sized device with a wire training behind it and to the tv, on his head in a particular spot. The sensor thing didn't fall off which could be because of adhesive or suction with the man's shaven head (guess my brain just didn't think up of any reason). Anyway, the man on tv seemed to know that the sensor had been placed correctly on someone's head for he proceeded to show how to sit down properly for the yoga.

This is where I was pretty intrigued. The man on tv, in live video, asked the 'user' to do various things like straighten his neck a bit more, straighten his back slightly, etc. I was pretty amazed how one sensor (presumably a gyroscope) was able to detect spinal curvature in addition to the neck's attitude. That's when I noticed that a video camera was also feeding the tv (I am pretty sure the camera wasn't there the first time I saw the tv. My brain must've made it up when I questioned the sensor's ability). I watched a few minutes of the video while they explained the need for the slight curvature of the spine (?). Then, as appropriate to a dream, the video was concluding with the marketers saying encouraging words about Spine Yoga.

My dream didn't end there of course (I remember that I was looking at my friend's new computer, later talking to him as he arrived in his home, leaving the house and stuff). But the Video camera + Gyroscopic sensor utilizing technology I experienced stayed fresh in my mind even after I've woken up. I was pretty sure I couldn't've made the term "Spine Yoga" up that, as soon as I got up, I switched on the monitor and googled for the term! But Spine yoga doesn't seem to be a defined word, as far as i can search at least. As for the interactive video technology, it's probably my brain's extension of the Eye-toy technology, only instead of a sword or a gun shaped sensor, there was a head-mounted sensor. And then there's the video with real live characters instead of a game engine generated ones. Probably many pre-recorded clips for every scenarios possible.

Whatever. That's that.

I don't know if I talk or laugh in my sleep, but sometimes I wake up with the wierd feeling that I did. I remember another dream, (don't worry, I'll keep this one short) where I was listenening to a lecture of sorts (I mean, it was out in the fields. Under a tree. With two or three students? Next to a railway station? go figure!). The lecturing guy was just about finished and he turned to leave with a lingering statement. All was quiet and peaceful and soft. This was where I mulled over the statement and spoke up. I remembered every word I said a few days ago, but now the words escape my mind. But I remember, as I finished my talk, everyone's head in the field(?) turned towards me and looked at me with slight puzzlement in their eyes. I then slowly sank down and woke up brightly.
Again, I had the strange feeling that I had actally vocalised what I said in my dream. I wish I could've written this when I remembered what it was that I said. So, I've decided that when I buy a video camera or a web-camea, I'll record my slumbering self, just to establish whether or not. It won't accomplish much. Or anything, for that matter, except to tell me if I am a somnavocalist (or is that somnaoralist? somnarhetorican? I don't think there's a word for it, but you get the idea), but it just might be the weirdest clip of the day if it ever leaks into the net.

Friday, June 09, 2006

Are these for ever?

It's tough to come up with a interesting-yet-goofy-sounding name when you are going to talk about bling blings. Ask my mom on how I dislike being encumbered with even the tiniest loop of gold or silver. Though I've favoured wearing a couple "interesting" looking stuff like that copper snake ring and that cool LED-flashing ring sold at an exhibition when I was considerably younger, I just am not comfortable wearing something to make a "status statement". I am not quite sure jewels look at home on a man.

The feeling's entirely personal of course. I do appreciate a beautiful and elegant piece enhancing an elegant maid's beauty subtly. So when I was searching for a topic for my brief spell of recreational modeling, I chose diamonds.


Now I have done a few jewellery designs in the past too. But they were pretty botched up things and not quite satifactorily done. Here are a few of them:

Chained heart This one I call "Chained Heart" and was the artifact of my foray into 3D goldsmithing. It was quite interesting to make since it was my first experience with creating a chain with the Spacing tool and rendering highly reflective scene.



Crowned I call this, quite obviously, "Crowned". The model is a Poser 6.0 character imported into 3D studio max to bear the horrible gold and ruby (?) crown. This scene wasn't about the crown. I posed the king(!) in a menacing pose pointing a finger (relax, it's the index) at someone. Unfortunately, I am not very good at clothing and hairdressing in Poser 6, so the scene is a bit, er, bare and I left it, er, hanging, at least for now.


Spiral Ringlet prototype Spiral ringlet prototype. This one gave me quite a bit of headache, probably because I suck at geometry and elctronics. It has 3 sine waves inter-twined in such a way that when given a gradient thickness and bent 180 degrees along the y-axis, the ensemble shouldn't intersect anywhere. Needless to say, mine intersects.




About a week ago, I found reference pictures of a diamond cut called "Simple brilliance" cut. It looked simple enough to model and it was. Finding the right maerial for the diamond model was easy enough as well since there are a lot of tutorials on material making. So, at last, I had me a diamantine in my virtual hands.
Free Image Hosting at www.ImageShack.us


With the stone ready, I could finally make me some simple rings. I did a quick google for simple diamond rings to loosely base my deigns on. I haven't started any complex ring designs yet. So, here are the simple ones:
Simple diamond ring:
Free Image Hosting at www.ImageShack.us

Aqua toe ring:
Free Image Hosting at www.ImageShack.us

Coppermine diamond ring:
Free Image Hosting at www.ImageShack.us

Goldmine diamond ring (Yeah, I suck at naming things). Note the "To my beloved" engraving too:
Free Image Hosting at www.ImageShack.us

Goldmine in a box:
Free Image Hosting at www.ImageShack.us

Goldmine in a box, closeup:
Free Image Hosting at www.ImageShack.us


More later.


[Later..]
Here's two more for now. Both designs were (unwilling) courtesy of boldingold.com

Golden Helix:
Free Image Hosting at www.ImageShack.us

Tension set ring:
Free Image Hosting at www.ImageShack.us


Monday, May 01, 2006

Are you Nina from Carolina?

I never really liked TV serials which is mostly because I don't watch TV. Somehow somewhere along the way, I stopped watching all TV programs Tamil. Maybe it was all the cheap serials and movies that I chanced upon while fascinated by Discovery and Cartoon channels in English.

But all this was when I used to watch TV. But recently, just to while away a few days of boredom, I got all 9 season DVDs (or, dvd-rips) of Southpark. It seemed an inexhaustible source of entertainment. But, it did exhaust and so I started researching for the top rated shows on Tv. Thus I started and obtained all seasons of Smallville (Kill Lana Lang. Please!), Lost, MythBusters, Prison Break, Simpsons and, recently, 24 (Die Kim Bauer, die. And I'm not talking German).

Now that we've gotten all that over with, we can come to the topic. In one of the '24' episodes, Bouer says "niner" when reading out a number. Now, I've heard niner being used before and I assumed that agency guys used it to be as clear in spite of pronunciation differences on the phone(it would be an under statement to say that they use phones too much on the show), but I wanted to see if other cardinals had such different ways of saying them.

It seems that 'niner' belongs to the NATO Phonetic Alphabet, or Radiotelephony Spelling Alphabet. The familiar Alpha, Bravo, Charlie, Delta and other designations are also a subset of this alphabet. Only 3, 5 and 9 have different pronunciations ("tree", "fife", and "niner") but all the numbers have a code word to it too. [link]

Nadazero NAH-DAH-ZAY-ROH
Unaone OO-NAH-WUN
Bissotwo BEES-SOH-TOO
Terrathree TAY-RAH-TREE
Kartefour KAR-TAY-FOWER
Pantafive PAN-TAH-FIVE
Soxisix SOK-SEE-SIX
Setteseven SAY-TAY-SEVEN
Oktoeight OK-TOH-AIT
Novenine NO-VAY-NINER


Finally, I fired up my trusty WordWeb dictionary and typed in a cardinal. It seems that it's not just the agencies that use different words for numbers. Each number has quite a few familiar as well as a few quirky synonyms to it. I've left out the very obvious ones in an attempt to make this at least a bit interesting.

1Ane, Ace
2Deuce
3Deuce-ace, leash, tercet, ternion, terzetto, tierce, trey, trine, troika
4foursome, Little Joe, quatern, quaternity, tetrad
5Cinque, fin, Little Phoebe, Phoebe, Pentad, quint, quintet
6Captain Hicks, Hexad, seset, sextet, sise, sixer
7septet, sevener, heptad
8Eighter from Decataur, Octad, Octonary, Ogdoad
9Nina from Carolina, Niner, Ennead

A casual google didn't reveal much on the origins on some of the interesting sounding words. But some of the synonyms seem to be a homophonic play on the number's pronunciation, like Captain Hicks (hicks->six) and Nina from Carolina (nina->nine). I can see quite a few french derived words too, like Ane (french='un'), trey (french='trois'), Cinque (french='cinq') and sise (french='six' pronounced 'seese'). Since I am not in touch with the english speaking world, some or most of the mentioned words may be in contemporary use and I probably guessed the origins wrongly too. Do comment.

Saturday, April 22, 2006

Trepidating Trepanations

In one of my usual stupors, I was imagining a thriller like plot which went like this:

<plot>
Our main character is a stereotypical middle-aged doctor with amateur interests in subjects likeTrepanation alternative medicine, ancient healing, cults, etc. Today, he is responding to a trauma emergency. Even from afar, the good doctor immediately recognizes the case at hand. His medical friends from various hospitals from all over the city have described this bizzare case to him: In the middle of the day, a man, or rarely, a woman, with a shaven head and a bloody spot on the top of his head will be rushed in. What's more bizzare was that, on the bloody spot , or the "Holey-C" as his friends had nicknamed it, was a 'C' shaped incision on the scalp that's been sutured shut. The doctors had found that there was a circular piece of skull bone "missing", as in "removed", underneath the Holey-C. What's more bizzare was that the victims were consious not only when they arrived at the hospital but also were reportedly kept consicous by the perpetrators as they ground away his skull bone.

The victims describe being jumped on by a gang of seemingly old men in business suit at around noon. The perps, having bound and gaged the victims, had clamped a bench vice onto a desk and clamped their victim's head on it. After shaving the head and applying a local anesthetic, they had scalpelled off a piece of the scalp to make the C-shaped hole and then used what sounded like a dremel to remove the skull bone piece. Then they saw bright lights being used on their skull bones.
All the doctors were well aware of the procedure performed on the victims. The question was 'by whom' and 'what ever the hell for'. It was 'Trepanation', supposedly one of the earliest surgical procedure performed by man. It's still performed on rare occasions, and only as a last resort, on head trauma patients to relieve of cranium pressure on the brain. There are early accounts of trepanation done on normal healthy adults too. It was either done by shamans to dispel evil spirits from the head, or by an eccentric few to open a "third-eye" to gain a sort of everlasting high.

The Good Doctor (GD) knew the latter kind of people only too well. Almost a decade ago, when he had just started work in this hospital, an unconscious young man was admitted by his girl friend. The young lady was apparently trepaning her lover at home which is, surprisingly, a quite common occurance since doctors refuse to trepan anyone not in need of one. The team of doctors were surprised he was still alive considering how close the 'trepan' had come to his brain. The GD was thinking how ironic it was that the brain cannot feel pain, cold or any other sensation even though it is the seat of all sensations. Pain, as is said, is a necessary evil. It sets our priorities right. For example, when you sip on a glass of very hot coffee, it is pain that tells you not to burn your tongue cells in your hurry to drink the coffee. So, in the absence of pain sensing nerves on the brain, there's no way of telling when, for example, a trepan is cutting the brain cells or just the meninges. You will become aware of any damage to the brain only after sufficient damage was done to induce visible changes like unconciousness, stroke or coma. Obviously, nature didn't anticipate that any animal would, in its right mind, find the fun in putting a chink in their brain's armor. The doctors fixed the guy up but, as they say, there's one born every minute.

Our GD later on has the hunch that the "bright light" described by the victims was some ultra compact strong source of a focussed radiation to make sure that the skull bone doesn't fuse/grow with any replacement skull piece the doctors are sure to try to introduce into the "third eye". The hole supposedly helps displace the Cerebrospinal fluid, the brain nourishing fluid, from the brain ventricles and replace it with plain old blood. This is called restoring the "brain blood volume". Protagonists claim that it makes them feel "young at heart" again, cures depression, betters their awareness of their surroundings (hence "third eye"), brings back creativity and all things gay. It is not scientifically proved that trepanation does what it's claimed to do or if it's just a placebo.

The GD's knowledge of trepanation includes knowing that some protagonists of the "third eye" think that the doctors are part of a world wide conspiracy to deny people of their own "third-eye". Following some trails, the GD was able to pick up the fact that all the victims were either child prodigies or not-so-renown artists who have lost their heyday. The hi-tech cult seems hell-bent on proving trepanation's effectivness and proving the medical world wrong. The GD does some more sleuting and exposes the cult. End of story.
</plot>


Feel free to run with the story on your own. Do try to send me a copy if you do :)
Some trepanation links:
Mother of All Holeys (MOAH)[link]
People with Holes in ther Heads [link]
An article on trepanation (Plot character inpired from this one)[link]

Friday, March 24, 2006

Gamin' music

Any serious gamer (defined by one who plays most of the years best games) would have atleast one slot in their playlist dedicated to in-game music. Well, atleast I think so since I have quite a few slots dedicated in my mp3 database.

All games have intro music. But only a few games have that fabulous intro music that makes you want to leave your computer in the game's main menu screen with your speakers amped up. Right now, I can think of three games that did that to me: Hitman (Jesper Kyd's score), Age of Mythology ("A cat named mittens") and Civilization 4 ("Baba Yetu" by Christopher Tin).

Moving past the main menu screen, some games' in-game music that's supposed to reinforce the game's environment can do such a good job sometimes that you will want to take the experience to your desktop either by buying the sound track (costly AND redundant = Extravagant) or by ripping the sound track off of the game's sound files (resourceful :p). I have quite a collection of ripped game music with me. Here are some of the "most listened to" ones:

Civilization 4
Here are the top five higly rated tracks i listen to from this game:
  • "Baba yetu"
  • "Ancient soundtrack 2"
  • "El grillo"
  • "Ay Santa maria"
  • "The people are the heroes"

The first track, "Baba yetu", is like THE perfect song and made quite an impression the first time I heard it. It's an awesome intro song for an awesome game. The song itself is in Swahili (an African tongue) and features bold drums, a great voice and a soothing chorus. You wouldn't understand a word of it of course, but if you care to know, the song's supposed to be a famous christian prayer called "The Lord's Prayer" (weird that, in Tamil, 'Yesu' means 'Jesus'). For the lyrics, check this CivFanatics.com forum post. Don't let the religious nature of this song be a factor in keeping you from enjoy this song. I myself don't give a damn about the wordings or meaning of a song as long as the melody, rhythm and timbre are in harmony (say what?). I mean, I listen to hindi songs, german rap, romanian hits, french pop, etc in addition to those classical musical scores. And my german is not as great as my hindi or my romanian, which I am not familiar with. For that matter even english rap/hiphop isn't exactly legible to me sometimes. To me, there are no bad artists or bad genre or bad anything else, only bad songs.
Most of the other vocal numbers are by John Adams from 'Nixon in China'. There's quite a collection of classical music by Mozart, Bach, Beethoven, Brahms, Dvorak and the like. There are rather interesting songs/chants/opera as well. For music samples, check out this gamespy.com page for civ 4. Or, if you have the game or are planing to buy it, check the directory "<drive:>\Firaxis Games\Sid Meier's Civilization 4\Assets\Sounds/Soundtrack"
The sound tracks are in mp3 format for immediate listening without much ripping pleasure.


Age of Mythology
Here's my top five from this game:
  • "A cat named mittens" (Opening theme)
  • "Never mind the slacks and bashers"
  • "Adult swim"
  • "n. d. nile"
  • "Suture self"

This game has the most amazing original score among the other games that I've played. The music ranges from the intense intro music "A Cat Named Mittens" to the soothing "The Ballad of Ace Lebaron", and every shade tweeen. As you've noticed, all the tracks are named with creativity and light-heartedness. For example, "Suture self" when read would mean "Suit yourself". "n. d. nile" could mean "In the nile".
The sound track is, obviously, not meant as a stand alone album but as a background for the game's environment. This means that the tracks are not lengthy, average 2 minutes per track, and the album as a whole don't work together well.


Grand Theft Auto
The GTA series is all about in-game, or, more correctly, in-car radio stations. All of the songs are existing movie or hit songs, masterfully mixed and presented in the form of great radio stations along with great RJ voice acting. There's also one or two talk show stations per game with humourous content. There's been three GTA games out and my preference goes in this order:
-GTA III
-GTA Vice City
-GTA San Andreas

GTA 3's top of the spot for me would be Flashback FM featuring songs from the movie Scarface. I fell for the songs and then watched the movie Scarface (Al Pachino was great) which has become one of my all time favourites.
I forgot what my preferred radio station in GTA VC was, although I guess it was one of the talk shows. Truth is, I liked atmost a couple of songs in any given station.
GTA SA. AAh, GTA:SA. How can I ever forget K-Rose radio with RJ Mary-Beth Maybell. It was the in game radio that kick-started my passion for country and western music. Now I have quite a collection of country with me.


Need For Speed
Like GTA, Need for Speed also has in-car music, albeit not in a radio station format. And like GTA, NFS too is a series of games. Each NFS has a relatively small collection of both original and licensed hard hitting songs. I especially like the ones from NFS: underground, NFS: Underground 2, NFS: Hot pursuit 2 and NFS: Most Wanted. Here's the top 5 from each game:

NFS Underground
  • BT - Kimosabe
  • Eastside Boyz - Get Low
  • Nate Dogg - Keep it Coming
  • The Crystal Method - Born Too Slow
  • Fuel - Quarter

NFS Underground 2
  • Paul Van Dyk - Nothing But You (Cirrus Remix)
  • Chingy - I Do
  • Snoop Dogg feat. The Doors - Riders on the Storm (Fredwreck Remix)
  • Capone - I Need Speed
  • Rise Against - Give it All

NFS Hot Pursuit
  • Hot Action Cop - Fever for the Flava
  • The Buzzhorn - Ordinary
  • Uncle Kracker - Keep it Coming
  • Hot Action Cop - Going Down on It
  • Bush - The People that We Love

NFS Most Wanted
  • Styles of Beyond - Nine Thou (Superstars Remix)
  • Hush - Fired Up
  • Juvenile - Sets Go Up
  • Suni Clay - In A Hood Near You
  • The Perceptionists - Let's Move


Hitman
That leaves me with Hitman. The words "Hitman" and "music" would immediately spark the name Jesper Kyd in the minds of fans of this great game. JK has done many great scores for many other games as well. Check out his site, www.jesperkyd.com/, for some mind-bending samples. All of his music are totally cool and totally eligible for an intro music for totally any game.

Wednesday, March 15, 2006

Internet Boob Tubes

TV, Watch 300+ LIVE world TV stations for FREE
Besides visiting a country, one can learn a lot about the country's people via their TV programs as you get to see them, their habitat and also get to know their expectations via the programs produced to allure them. Back when 64kbps was broadband (I had 128kbps), someone from a forum directed me to a nice little program called TV.exe. The site, tv.exe.com, promised 100s of free online TV channels from around the world.

The app itself is a small, stand-alone exe, about 1 MB in size, that runs with no registry or documents or folder traces. But I was leery of downloading the program because, A, it was an exe, and B, it was from a cheesy looking site with flash and Ads (though my Adblock hid them). I don't have any active anti-spyware or an anti-virus as those goes against my active policy of increasing performance (which, by the way, is always won by Windows and ends up in me having to reformat/reinstall) and a whole slew of incomaptiblity problems among anti-whatevers and other applications. Besides, they are superfluous once you pay attention to what gets into your machine. Nonetheless, I get my monthly fix of anti-virus online at trendmicro and an occasional anti-spyware fix from AD-Aware. But since it had been "peer reviewed" by a forumer (and by softpedia.com, as pointed out by the homepage), I went on and downloaded it. The link with the most google PR has the freeware version. There's also a one-time paid version of the program that offers radio channels and, conspicously, webcam feeds. But with 128kbps advertised speed and 110kbps actual speed, most of the interesting sounding channels looked like a powerpoint presentation with audio. Though the range of stations available was nonetheless staggering, I preferred to use my puny bandwidth to download downloadable videos than to let it get insulted by trying to stream videos.

Now, though not much can be said about the Indian broadband situation, the bandwidth has doubled to 256kbps for the same cost. There's even this "double bandwidth at night" scheme where I get 512 kbps (actual speed 416 kbps. Pathetic.) from 10:50 PM to 8:10 AM (untimely timings eh?). In this setting, a few days back I stumbled upon this tv.exe in my software backup partition (aptly named "Store" [66GB]. The other partitions are OS [15GB], Runnables [134GB], Media [80GB] and Linux[the rest]. Yeah, you don't care).

The list of channels is retrieved from the tvexe.com server everytime the program is started so that new channels are found and at the same time dead channels are pruned. The prog doesn't have the best UI ever and features a fixed size media player window. Though the you can list stations by country, language or theme, all that the app does though, is contact the tvexe.com and list the tv stations already available on the net. You can google for Internet broadcast TV or something similar and reach all the channels directly via a browser. Though it's a bit tedious at first to google-find the channels, if you bookmark the ones you want then subsequent access will be one-click access. You may even write your own program to either periodically google and parse out movie file links for you, or a more simpler program which maintains a manually entered list of channels and a embedded player. This will take out unscrutinized third party exes from your life.

Anyways, so far I've been able only to watch some of the channels and only at night when its 512kbps on th pipe. I haven't seen all the channels from around the countries yet, and I don't intend to. Almost 90% of them are religious propaganda bullshit. There are only a handfull of great learning channels and music video channels, almost no smut or soap channels AFAIK, and quite a few home shopping channels, news channels, traffic cam feeds, senatorial meeting videos, etc. And most of channels are from the US. The following english channels (from the US) are in my favourites playlist: NASA TV, Strawberry TV, Research Channel and UW TV (University of Washington TV). Here's a small review of my experience in these channels:

  • In NASA TV, I got to see a never-before-seen (by me) footage of a launch and of the last moon-walk.There was also an in-depth program on auroras, which was as much interesting as it was useless to me.
  • On Strawberry TV (I know), I had an arm-chair-travel to Natchitoches, Louisiana with a native tour-guide giving commentries on the various building and landmarks as we cruised the streets of the state. Another place was Natchez, Mississippi, though it wasn't as interesting as the Louisiana one. I've never quite gotten round to read who the so-called Confederates were all about, so it was nice when there was a short interview with American civil war researchers was on.
  • On Research channel, I saw a meeting of podcast gurus talking about, well, podcasts. There was also a face-to-face with a wearable computer manufacturer (I believe). But most of the time there was only biology related talk.
  • UWTV is my favourite so far. There were quite a few professional presentations on various tech topics. One was User Interface for the future Information Worker by a Microsoft research lady, and another was on Security framework in Applications (IIRC) by Microsoft's Cheif Security Strategist.

As you can see, I was excited with what I saw on the channels. It was a welcome change considering I had stopped watching TV since the stupid cable situation started and I lost all the quality channels. Sure I watch the TV programs I miss, movies and other videos via BT, but that's another story :)

If my rants have lured you into downloading the exe, I would recommend you search for other programs. I found one other program that was waay better than tv.exe. It's called Online TV Player and it's supposed to have 850+ channels and 1000+ radio channels by default, although I suspect they count the high and low bandwidth stream of the same channel as two channels. Well atleast this program HAS the high and low bandwidth options of the same channel unlike the tv.exe thing, so I guess it works out OK. And, BTW, if you are wondering about the title, Boob Tube = Goggle Box = TV ;)

Thursday, March 09, 2006

How hard could it be?

Imagine that you have a 18px wide by 1px high tileable gradient png/gif. You also have a horizontally centered div holding your content. You want to tile the 1px high image along the vertical length on both sides of your div. I found myself in exactly such a situation only a few days ago. I could've used a large tile, say like a 6000 px by 1 px image and tiled it in the body's background, like how gamespot.com did it. But, my gradient is double-edged. Meaning, the 18px gradient goes from completely non-transparent around middle to 100% transparent in the left and the right ends. This is done so that I can overlap one part of the gradient over the content while the other part hangs outside the content. The final effect is shown farther below. Come back up after you've seen it.

For those who didn't get the few words above, here's a thousand words of the same:
The 'double-edged' gradient, enlarged.

The image is scaled 1000 times proportionally. So if you want to use them, just scale them down and use it. The center is around 10px. This is the left-side shadow. For the right side one, just flip it horizontally. You then need to find a way to tile the image vertically along and over both sides of your content. For this, I used floated divs. It had to be a div as I had swore to keep tables out of my XHTML life. So, I added two floated divs with IDs "shadow-left" and "shadow-right". Here are the HTML structure and the css:


<body>
<div id="main">
<div id="shadow-left"></div>
<div id="header1"></div>
<div id="menu"></div>
<div id="content">
<hr id="footer" />
<div id="shadow-right"></div>
<hr class="clear" />
</div>
</body>
The HTML structure



#shadow-left {
margin: 0 auto 0 -9px;
position:absolute;
min-height:100%;
height:100%;
left:5%;
top:0px;
width:18px;
background:url(shadow-left.png) repeat-y;
}


#shadow-right {
margin: 0 -9px 0 auto;
position:absolute;
height:100%;
min-height:100%;
right:5%;
top:0px;
width:18px;
background:url(shadow-right.png) repeat-y;
}

/* \*/

* html #shadow-left {
display: none;
}

* html #shadow-right {
display: none;
}

/* */

My sloppy CSS



You might've noticed from the last few lines that I had decided to hide the neat transparent gradient thing from Internet Explorer. This is because among the web image formats, only in png can a pixel have a 24bit color value as well as an 8bit alpha value. Gif do support alpha value, but in gif a pixel is either 100% transparent or not. This is not the only place I had to account for IE's ignorance. IE has to be constantly kept from it's own ignorance, missing features, incomplete standards conformance, buggy implementation and other asprin-sellers. If ever I get hold of the neck of the person responsible for CSS implementation in IE 5 (or 5.5, 6.0, 5.5 for mac), I won't hesitate to close my hand. CSS is a very easy and neat language to learn and code. But IE takes all the fun and intuitiveness out of it. How hard could it be to read the CSS specification and implement it? That's such a monky job, or a no-brainer. Suddenly, though I never liked them, all those 'Promote Firefox' and 'Promote Opera' campaigns seem to make sense from a developer perspective. Of course, all browser implementations have bugs. Richinstyle.com lists all bugs. But I don't care as long as I don't notice them.

Switching to the thousand words mode, here's a lame website with no gradients attached:
A lame page with no gradients

...and here's the same lame page with glitzy gradients attached:
The lame page with extra fancy gradients

So, the above CSS + XHTML combination will work as promised and you get a gradient the height of the page. Or do you? What you get is a gradient that extends only to the height of the viewport/browser window. Meaning, if your page has a vertical scrollbar, then scrolling down will reveal that the newly uncovered portion was not covered by the gradient. What trick is this? Actually, it seems that it is the specification.

While searching around, I found that if you set the heights of all the parent elements (here, they are #main, #body, #html), then your gradient will have a hight equal to the height of the entire page. It didn't work for me and worse, making #main's "height:100%" messed up the already messed up display in IE still more. So I went into hack mode and used javascript to do a little trick. Here's the simple javascript I conjured up:


<script type="text/javascript">
<!--
function doOnScroll()
{
document.getElementById('shadow-right').style.top = window.scrollY + "px";
document.getElementById('shadow-left').style.top = window.scrollY + "px";
}

window.onscroll = doOnScroll;
//-->
</script>
The javascript hack



Javascript allows you to hook onto the onscroll event. This is the event that happens everytime you scroll down/up/left/right. So I just shift the gradient div's 'top' value to the scrolled value of the window. This trick, of course, requires your visitor to have javascript enabled and have Mozilla Firefox. There will be a very small and, hopefully, unobstrusive flicker near the divs as the divs gets realigned. I myself want to use some other trick for my site as, as google analytics points out, more than 78% of the visitors browse my site on IE. I remeber those <table> times when webpages had the "Viewed best in IE" in their footers. With the <div> times, the tables (pardon the pun) might've been turned.

[Edit]
Here's a spot of trouble I ran into. Though I was smart enough to hide the translucent gradient flanges from IE, I forgot to turn off the javascript that moved the gradients as the user scrolled the webpage. It is necessary to hide the javascript too from Internet Explorer as otherwise a script error occurs for every tick the scroll bar scrolls, which is pretty lame. So here's the same javascript hack as above, but only nicely wrapped inside a IE proofed if block:


<script type="text/javascript">
<!--
if (navigator.userAgent.toLowerCase().indexOf('msie') == -1)
{
function doOnScroll()
{
document.getElementById('shadow-right').style.top = window.scrollY + "px";
document.getElementById('shadow-left').style.top = window.scrollY + "px";
}

window.onscroll = doOnScroll;
}
//-->
</script>
The javascript hack



What I had done is pretty simple. Every browser has a userAgent property that contains everything that the browser has to say for itself, including it's version, name, operating system and maybe a few other stuff. I just check for the occurence of the string 'msie' in the userAgent property of the browser being rendered on, and if there be no such vile term in the user agent name, we get on with the trick show.
[/Edit]

Friday, February 10, 2006

How cool am I?

Thirty six sea plus sixteen eff plus eleven hech plus fourteen pee plus fifteen yae, the whole divided by four point four. That's precisely how cool I am, it seems.

This is not exactly news (and this blog isn't about news), but a few experts at the London Institute of Psychiatry is of the collective opinion that your popularity can be estimated numerically by knowing how your peers rate a few of your traits. I am a big fan of "The Naked scientists", the humor filled science podcast from BBC, to which I highly recommend you subscribe to. In one of the episodes, they mentioned this formula in a telephonic quiz.


(32C + 16F + 11H + 14P + 15A)
-----------------------------
4.4


where,
C is Contact with friends,
F is Facilitating entertainment (the F factor?),
H is Humour,
P is Personality and
A is Attractiveness

Each of the factors are to be rated on a scale of 0 to 5, with 0 being 'Aaarrgh!' and 5 being 'ooohhh!'. Substitute the values in the formula to get your popularity rating on a scale from 0 to 100. No cheating.

Here's a tiny calculator that I coded for you to easily calculate your popularity once you have the values for the individual factors from your friends:



C =

F =

H =

P =

A =




The formula must've been derived off the inference from some statistical study data. As can be deduced from the formula, the highest weightage is given to 'Contact with friends' while Humour is given the least. Also, Attractiveness is given more weightage than Humour and Personality.

So, according to the formula, that handsome and funny guy with a friend list spreading across juniors to seniors, throwing a party at any excuse of an occasion he could find is the most popular, while that geek with his small band of geek friends, sharing jargon jokes that no non-geek would find funny, would rather have another frag session than go to a party, with the groovy einstein hair-style and a hyperactive sebacious gland, is the least popular guy. So the formula does hold water.

Ignoring the extremes, we can also infer from the formula that that guy who has all the lame jokes to tell a large involuntary friends base is more popular than that guy who is genuinely funny but with a lesser friend base.


It would be interesting to see the popularity rating of a population over the last few years. With the proliferation of mobile phones, email, IM, smart phones, blogging and skype-like networks the C factor would've shot up the roof.

The result may also depend on the age group of the friend circle we are talking of. Some thoughts on age as a factor:
*Do the youth have more time for actually keeping in touch with the huge friend base, or do the old and the retired do?
*Who is more funny does depend on age, but it doesn't have enough weightage in the formula.
*Personality? I do believe that older people tend to rate each other highly in this category.
*Facilitating entertainment is more of young people thing, I would expect.
*Attractiveness? Surely it is inversely proportional with age (after middle age).

So, send an email/IM asking a few of your friends to rate you on the above mentioned factors, come to this page, calculate your rating for each friend and finally average the ratings to get your final Popularity rating. Send them your rating of them as well so that you can compare it with your friends' ratings. If his is lower, you can use it poke fun of his being more of a geek.

I asked around a few of my friends and came up with a rating of 78. If you would like to have a better score than your friends, then you know what to do: rate him lower :)

Monday, January 16, 2006

Pop goes the cell

Not being a biology student, I've always only wondered what 'death' was, among other biologyie things. When I was younger, some films show some kind of white plasma flying towards the sky, leaving the lifeless body to symbolize death. The Max Excel fellow also believes in some gas called "praana-vaayu" (which he denied was oxygen) that keeps a man alive and is lost when he is dead. How this gas decides when the cells are appropriately damaged to depart, I never gotten round to ask. I must've also asked how they explained away organ-death, or, more fundamentally, cell-death. These deaths don't require the individual as a whole to die. Or, more interestingly, how do they fit in organ-transplantation which works because an organ doesn't die, while the individual dies. They probably would've come up with a multi-celled soul perhaps. But AFAIK, almost all religious people believe some kind of soul/plasma as the 'essence' of life. And that's the religious description of death, while what I am interested is in the scientific one.

So, when is a person dead?
Death, atleast biologically speaking, is a process rather than an event. But it's this irreversiblity (point-of-no-return) which is commonly referred to when one speaks of death. This point keeps getting closer to total death as technology progresses and our biological knowledge grows. This has led to many trials as to when a person is dead, legally. Of course, when you see someone with their entrails and grey matter spilling out onto the pavement, or decapitaed, or incinerated, they are properly dead. What we are interested, rather, is in determining this rubicon. Like someone said,
"Death is certain, since it is inevitable, but also uncertain, since its diagnosis is sometimes fallible"
(Note that I am not interested in the religious or legal death of a person, but the medical death.)

Is he dead when his lungs stop breathing? No. Mouth-to-mouth resuscitation can sometimes start the process. And iron-lungs can replace its work. Infact, a person may stop breathing for a few seconds several times during sleep. The extreme case, called sleep apnea, can be fatal.
Is he dead when his heart stops beating? No, not always. Remember "stand clear!" when someone uses the defibrillator and CPR in med-fictions? IOW, heart can be rebooted and even kept running afterwards with a pacemaker. Artificial hearts can also completely replace the heart.
Is he dead when both his lungs AND heart decide to stop? No, since the brain may be living and the body can be kept living in a life-support system for as long as anyone pays for it. Of course, if the episode was caused by brain death, then this argument is moot.
Is he dead when his cerebral cortex is dead? Not necessarily, but the individual as we know him is dead, because the cerebral cortex is the seat of thinking, personality, memory and the like. But we still have a living human being. Even sleep and coma can make this part of the brain appear dormant, though it's not the same as being dead and can be distinguished using an EEG.
Is he dead when his brain stem is dead? Yes (finally!). When this part is dead, the whole of the brain is dead. Note that, his other cells may still be alive. But even here, the cessation of brain activity must be for a period of time for it to be certain. When this death is not used as the ultimate indicator of death, you see people who decide to "rise from the grave" or "doing a jesus". Infact, beheaded chickens and other fowls may sometimes cluck around forever (if fed properly intravenously) as if nothing has happenned, because their brain stems are located a bit below the head. But of course, they lose their chickenness and survive on reflex alone. This suggests that there are two degrees of "alivedness" to a "brained" organism: one of the memory, and the other of the fundamental control functions.


Since B-grade movies has taught us that people can be killed in more than one way, I think it would be safe to assume that animal death can fundamentally be defined to be the death of whole of its brain. The cascade of cell deaths that preceded brain death and the cascade of cell death that follows brain death are not counted as death. The actual sequence of events that makes a person dead (of natural causes, of course) is a bit too biochemical for me to follow.

Then there's another debated topic of "natural death". What exactly causes "natural expiration"? I read what telomerase is and how it's repeated shortenening when cloning/cell-division can put a limit to the count of an individual's life. But apparently it's not the only answer. But I am sticking to the life-support functions (heart, lungs, etc) stopping to enrich the brain with food.

While going bored over searching for natural death, I came across a type of Cell Death called 'Apoptosis', from which the topic for this post is derived (Apoptosis. Get it?).

Cell death:
From what I gather, there are two ways a cell may die: Necrosis, where the cell may die of starvation, physical damage, chemical poisoning, etc, and PCD, where the cell suicides if it feels 'unwanted" (cell depression?). Apoptosis is one of the main type of PCD.

A cell becomes "unwanted" when new cells are ready to take it's place, or if it becomes damaged beyond repair by toxins or pathogens, or if it's apoptosis code in it's DNA is triggered by damage, virii, xrays, etc. And, as the name implies, each cell is embedded with the suicide sequence which can be initiated by one of the contributing factors mentioned above.

Contrary to what I thought, apoptosis occurs normally quite abundantly in a normal human adult. Homeostasis, a greek for the balance between old cells and newly produced cells, is an active balance that needs apoptosis to work. Infact, over 50 to 70 billion cells are produced each day and the same amount of cell has to die each day to compensate. If not, a cancerous tumour results. OTOH, if more cells die, I don't have a greek word for it, but it is obviously something bad. Infact, one of the ways in which HIV succeeds is by apoptosis of immuno cells. With so many cells getting replaced, the human body rotates an equivalent of it's own body weight in one year, it seems. Apart from homeostasis, the other important function of apoptosis is in differentiation of individual fingers in a developing foetus. Apoptosis is your friend. [link]


Whence such a morbid topic? I was going through the straightdope archives and found an article on being scared to death. Quite a few persons have been scared to death or willed to death. This got me scrambling for the basics on death. But the article itself provides most of the answers, which I noted only a bit later in my this research. Searching a bit late, I found this very interesting biology class discussion on death. Reading it makes me wish I had put more effort in securing an MS admission in an US university. Oh well, I have but little chance now.

Thursday, January 05, 2006

XCIDR 2

This is basically a revision of XCIDR which I elaborated in my previous post. To reiterate, XCIDR is my uncertain brainstorm which aims to increase the IPv4 address space without resorting to IPv6 or it's required 'flag day' shifting of current IPv4 devices/applications.

To quickly recap, XCIDR relied on my observation of the first two bits of the subnet mask being unused. These two bits are encoded with IP address information to increment the address space by two or four depending on whether one of the bits is to be used as a subnet mask bit for the other one.

There's one more thing about the IP v4 subnet mask field: unlike the BCD encoding as in the address part, the subnet mask bits are pure binary (or whatever it is called). That is, to represent a number, say 13, in BCD you write it as '1101', while in pure binary it is writen as '1111111111111', or thirteen ones.

How did this come about, and why is it still being used? For this, we need to remember that the subnet mask is only the number of contiguous 1s to be ANDed with IP address for finding the longest-prefix-match. Sometimes ago when CIDR was just on the brains of it's creator, non-contiguous bit-masks were used as subnet masks. This scheme can split the network at more than one place. This requires a bit-mask instead of the BCD encoding.

But why non-contiguous subnet masks were introduced, nobody knew. But it was causing a lot of 'splitting'-headaches among the network admins. So it was advised against, but not made illegal, since it is perfectly compliant with the subnetting scheme. Which, in-turn meant that the 32 bit bitmask format stays. Later on, it was so hard, and hence unpopular, to have a non-contiguous subnetted network that routers stopped supporting it. Now, with CIDR and it's slash-notation, non-contiguous subnet masks are just plain illegal [link].

Which, as you might surmise, draws a case against the 32 bit subnet bitmask in present machines, and toward a 5-bit BCD encoded subnet mask. IPv6 makes this the standard. But IPv4 doesn't, as it would break all the current routers. True, but following the spirit of XCIDR, we might change the router and end-node logic without changing the IP, IGP/BGP/etc packet structure to acheive an increase in the size of IPv4 address space. I call this version of XCIDR as XCIDR2. It aims to increase the IPv4 address space from 232 to 258 !

Here's how:
A subnet mask has 32 bits. Only the count of the number of 1s is needed off the subnet bitmask. The maximum number of 1s that can be in a 32bit field is 32. Representing it in BCD will require log232, or 5 bits. Now we are free to do anything with the remaining 32-5 = 27 bits.

If we are to allot some of the 27 bits to the IP address bits, then we need to allot extra subnet bits to the subnet mask to act as subnet mask bits for the new address bits. How to split the subnet mask bits now? With 5 bits the subnet mask can be used with a 32bit address field. Increasing the bit count by one will make the subnet mask 6 bits long. A 6 bit subnet mask in BCD can represent 26=64 contiguous 1s (ones). This is more than enough, for when you add the remaining bits (27-1=26 bits) to the IP address, you get 32+26 = 58 bits.

So, finally what we have is an Ipv4 scheme with a 58 bit IP address, which can support about 288,230,376,151,711,744 hosts (288 quintillion). It's not much compared to an IPv6 address space, but can take care of any address space shortage before the IPv6 flag day, which by the way is not expected before the year 2025.

[Just for the 'ooh' factor: Ipv6, with its 128 bits, has been described thusly: If the earth were made entirely out of 1 cubic millimeter grains of sand, then you could give a unique address to each grain in 300 million planets the size of the earth.]

As in XCIDR, the IP address field and subnet mask field remains the same. This means that packet structures and routing tables need not be modified. Only the packet handling logic needs to be changed, both in the router and the end-nodes. The exact changes to the logic will be as in my XCIDR blog post. The only place it deviates from the plan is at the router.

As in XCIDR, we have an issue which can have many solutions. Then, it was the choice of XX and XY implementation. Now, it is the issue of choosing the division of the 26 extra address bits. The problem is obvious and straightforward: 8 is not a divisor of 26. This means that the highest octet in the address will not have 8 bits in them when you split it into 8 bit portions. 2 bits remain (26/8 = 3.25). In other words, the address will look something like this:
11.1111 1111.1111 1111. 1111 1111.1111 1111.1111 1111.1111 1111....

This question arises only because we are accustomed to such addreses which was introduced in a classful addressing system. With CIDR and VLSM, it makes no sense. Right? But we still 've got the human factor: Dealing with arithmetic involving upto 255 (28) is better than dealing with arithmetic involving numbers upto 67,108,864 (226). So, I am gonna go with a partitioned space rather than an unpartitioned 26 bits. But how many bit partition will be the optimal? '13/13', or '2/8/8/8', or maybe a '10/16' scheme? I'll leave that discussion for later. For now, '2/8/8/8' bit scheme seems good and standard to me.

A router, will have to store an address of the form 4.255.255.255.255.255.255.255 in order to address an XCIDR2 network. This can be accomplished by storing the bolded part, as explained, in the subnet mask bits. When the router encounters an IP packet addressed to such a host, it simply concatenates the 26bits from the subnet mask and the 32 bit IP address in memory and runs the longest-prefix algorithm of CIDR just like always.

To address the issue of carrying the extra 26 bits in a standard IPv4 packet, I'll stick to the trick used in XCIDR of using the Options field in the IP packet. The reserved option mode ('11') can be used for this purpose. The only precaution a end-node/router will have to take is to ensure that the router it is sending the packet needs to be XCIDR compliant.

For all it's promise, XCIDR and XCIDR2 are far from realization because of the same problems plaguing IPv6: Less demand and cost of migration. And of course, the fact that this is a 'hack' at best is enough to turn heads...in the opposite direction :) But I am still keeping my fingers crossed for a chance at an RFC.

Monday, January 02, 2006

XCIDR

The acronym 'XCIDR' is what I called one of my pet projects that I was toying with when I was at college. Though it has not a lot to do with CIDR, I called it "eXtending the CIDR" to catch the spirit of CIDR's effect on the IPv4 address space. XCIDR aims at irrupting the address space of IPv4. XCIDR aims to increase the IPv4 address space atleast by a factor of 2, and at the most by a factor of 4. It tries to accomplish this feat while not requiring as wide a change in the IP network as a migration into IPv6 would require.

Let me explain. An aspirant, aspiring to increase the IPv4 address space, can do so by following one/all of the following strategies:

->find a better encoding for the address bits to pack-in more information,
->create a better allocation model or a better hierarchy of nodes in a network to increase the mileage of the address bits,
->increase the number of bits allocated to the address field.

I have no idea on how to optimize the existing power-of-two binary encoding scheme to employ the first option. The second option is explored by CIDR. The last option is the easiest one, and is explored by IPv6, and by me in XCIDR.

Simply increasing the number of bits in address field would work, but, you may ask, "isn't there IPv6 already here for it?". And you'd be right (and wrong too. Wait for a future post on truths about IPv6). But I don't intend to replace IPv6. What I want to do with XCIDR is to give the ailing IPv4 address space a couple of life breaths before it eventually reaches the end of the line. The trick is to keep the existing network/connected peers working with little or no change to them. Most important of all, the IP packet structure and the routing table structure shouldn't change. But there will be a change in the logic of IP packet handling and router logic. The DNS fields needs to be changed too to accomodate another field.


The idea:

The ideas behind my idea can be summarized in the following points:

->The Subnet masks don’t follow a power of two notation like the IP address. Rather they are made of contiguous ones (or for the pessimistic, zeroes). In other words, you won't find an subnet mask like 192.255.255.255. Non-contiguous subnet mask bits are extinct (which is why IPv6's subnet mask storage is different).
->CIDR says that you can use /30 to /0 aggregation. However, the only "useful" highest aggregation I've seen is /4 (multicast addresses).
->For example, a /3 address represents addresses from 31/3 to 224/3
It is difficult in the least to find a router that connects to such a large and paricular portion of the IP address space. This is because the address space is split into blocks and is owned by a variety of organizations. But such aggregation is not impractical at all. An admin working for a very major ISP may find himself in some circumstance to require this.
->But with /2, the networks get so big and fragmented that it is inconceivable (for me) that those two bits ever get touched. And a /1 aggregation, in fact, represents more than half the Internet.

With those realizations (or, assumptions), I plan to build a case for the uselessness of the first two bits in the subnet mask. In XCIDR, I plan to encode the extra IP address information into those two bits (Check "Workings" for why). Now I can do two things with these two "redundant" bits in the subnet field. One is to use both of them as extra IP address bits thereby tripling the IPv4 address space. I call this the XX implementation. Or, use one bit in the address field and the other bit bit as a subnet mask bit for the other bit. Though this option makes the increase in IP address space only twice as it is now, it may allow admins later to address the current CIDR network and the XCIDR networks seperately. I call this the XY implementation. (The 'X' represents an address bit and the 'Y' represents a subnet mask bit.)

I myself am in favour of the XX one, but more thought is required to establish one of them as the right model, as, obviously, only one of them can be implemented.


Workings:

Let us split the discussion of the working into two parts: Router-level and End-to-End.

Router-level:
How do peer-to-router and router-to-router communication work in XCIDR? A router's routing table looks something like this:


An Example Routing table
- Destination IP - - Destination subnet -- Interface -
10.16.0.0255.254.0.0 1
192.168.1.0 255.255.255.0 2


The above example table is partial, in that Metric, gateway, status and other fields are omitted, but is complete enough in essentials for basic routing decision-making. A router, upon receiving a packet, extracts the IP address from the packet (the encoding is dealt in the "End-toEnd" heading) and checks in the "Destination IP" for a full match. If no match is found, the "Destination subnet" and "Destination IP" field are ANDed to see if the resulting network address encompasses the extracted IP. If so, the packet is routed over the corresponding interface. This much happens with non-xcidr routers.

With XCIDR, the extracted IP address would be of the form "XX.10.16.1.1" or "X.10.16.1.1" depending on whether XX or XY scheme was selected. To match such an IP address, the router will have to look at the first two bits of the subnet mask as well. The first two bits are internally considered as part of the IP address (in case of XY, only the first bit is considered part of the address, while the next bit is considered part of the subnet mask for the first bit). So now, even though the address and subnet fields of the routing table remain the same size, the computed destination address is of the form "X.10.16.1.1", which can be compared bit-by-bit with the one in the IP packet.


End-to-End:
So how does the end node send the extra two bits without modifying the IP v4 packet's address field? IP packets have a field called "Options". It has a 2 bit ID which allows for a total of 4 unique options to be set, of which 3 are already reserved. Option "11", the last one, is free as far as I can research (google). Each Option field allows for a custom sized payload. The extra address bit(s) can be sent via this. Routers can check this field along with the IPv4 address field to get the full XCIDR address.
But currently, the Options field is not "respected" by most devices and some routers as well. This is one thing that will have to be mandated with XCIDR.

But how will the end system know of the extra IP address field in the address of a server, say google.com? DNS. DNSes supply end nodes with the IP address of 'well-known' servers on the Internet given their domain name. But changing the returned address' width may break the existing devices and applications that rely on the 32bit DNS. How do you solve this? The only way I can think of is to return an additional field for the two (or one) extra address bit(s). I haven't studied the DNS packet structure closely enough, as of now, to conclude on a method.

If you have followed through the above points, then you would've noticed that hosts/routers/devices that are oblivious to the ways of XCIDR will not be able to address the "extra address space inhabitants". There has to be a mechanism for an end node or a router to know whether the destination end-node/router is XCIDR-capable. That mechanism may be as developed seperately. For example, an end node/router may check a router's XCIDR capablity by checking whether the router can recognize the Option field '11'. In the same manner, a DNS server may check an end node's XCIDR capablity by observing whether it recognizes and responds affirmatively to a DNS record with the extra address field.

In the end, what I've presented is just a short glimpse of a very long heart-throb of mine. It sometimes feels completely idiotic to even type this idea out, but sometimes it feels like I deserve an RFC for this :) I wanted to present a paper at the very least on my this idea, so many times. And every time I would scrap it. But now I am happy to have finally put it all down into words.