Wednesday, July 08, 2009

Enforcing a minimum of one check mark

Good evening, ladies and gentlemen. Here's a little code I tossed off recently in the Computer:

So, here's how I made sure that at least one check box remains checked in one of my forms. A quick search didn't turn out any vb.net samples for doing this, so here is my version so that I will have a source of copy-paste the next time I google :P

Private Sub dlgViewImageHistogram_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  chkRed.AutoCheck = False
  chkGreen.AutoCheck = False
  chkBlue.AutoCheck = False
  chkIntensity.AutoCheck = False
  chkIntensity.Checked = True
End Sub

Private Sub checkColor_Clicked(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _
chkRed.Click, chkGreen.Click, chkBlue.Click, chkIntensity.Click
  Dim checkCount As Integer
  For Each chkBox As Control In pnlChannels.Controls
    If Not TypeOf chkBox Is CheckBox Then Continue For
    checkCount = IIf(CType(chkBox, CheckBox).Checked, checkCount + 1, checkCount)
  Next

  If checkCount = 1 And sender.checked = True Then
    Exit Sub
  Else
    sender.checked = Not sender.checked
  End If

End Sub


Basically, you need to set the AutoCheck property of the checkboxes to 'false' to take over control of the setting of the 'Checked' property.
Also, make sure that you have at least one check box checked. I have put all the checkboxes in a Panel control. Maybe there's a better way of grouping the check boxes, but I haven't read up on it.

Monday, June 29, 2009

Bitmap cloning is not Bitmap cloning

Almost 7 years ago, I had a pet project called 'PBrush', a small paint program created in VB 6. It was where I experimented with implementing the Undo/Redo features, image processing (emboss/invert/edge-detection, etc) in addition to the standard tools found in MSPaint.
I lost the project files when my first RAID-0 array broke and I've forgotten about it since then. (Since then I don't keep my project files on a raid-0 array.)

So, here I am today trying to get back in touch with VB.net after quite some time working in the Java/JSP platform and out of nowhere, I am reminded of the old PBrush project of mine. Not surprising really, since I had the most fun working on that project, ya know, trying different things with pixels and coming up with names for them :) Good times.

So anyway, I downloaded VB.net 2008 express edition and began coding about a few days ago in my spare times. I've already got a couple of kernel-based filters for edge-detection (Sobel. Scharr) coded down using basic loops for now. I heard directx methods will be faster for this, so I might try to re-write these functions.

For now, I am using a PictureBox for the main display and pass its Image property to my functions that will do the image processing. I had it all working in a day. But, as these filters are time-consuming, I noticed that the form would go to 'Not Responding' state after about 3 seconds of processing. This turns out to be caused by the form and its child controls staying "invalided" for too long. That is, the controls want to re-paint themselves, but can't because of the current thread is busy executing the image proessing routine.
First I tried the good old Application.doEvents()
Turns out that this method is old alright but certainly not "good". Some call for its timely death, even, and I can see their point. After adding this method call, my functions were taking about ten times more time to complete. Online documentations say that this is expected behaviour(!). Called 're-entrancy', this function halts any method that's been running, processes form messages and, get this, re-enters the function that it interupted.

Well, I said "no thank you. Don't come again" and started looking into putting the functions in separate threads instead.

Now, this is my first (not counting lab projects) project with threading. But it turns out that putting a function call into a separate thread is too easy. I used the BackgroundWorker class for doing this. Now, the functions work quite faster and the UI doesn't stay "invalidated" either. Seems perfect on the surface. But the devil is in the details, yes?

Yes. To better illustrate this point, let me give you a brief overview of the code.
So, I have a Picture box that holds the bitmap that needs processing. This control is also the one that is visible to the user, so it has to stay "validated". When an image filter is chosen by clicking on a menu item, I pass the Image object of the PictureBox to the appropriate function to be processed in the thread's DoWork method. Like so:

Dim bmpSrc as Bitmap
bmpSrc = pbMainDisplay.Image
e.Result = pdc.applyFilter(bmpSrc)


I noticed that "sometimes", when the BackgroundWorker is executing an image processing routine in the background, the Picture box will show a big red 'X' on it instead of the bitmap and an exception will be thrown stating "Bitmap region is already locked." on the line where I try to do a GetPixel().

I thought that it was simply a matter of adding a clone() method call on the Image property as this would create a new Image object instead of passing the reference to the Image. When this didn't work, I searched for every usage of the bitmap on the code and added the Clone() method call to it. Finally, when all the Image properties were adorned with the Clone() method, I ran the project again.... and met with the same problem, unchanged.

I looked up this issue online and found a similarly frustrated developer's blog entry on this. I gladly gave his method a try, like this:

Dim bmpSrc as Bitmap
bmpSrc = New Bitmap(pbMainDisplay.Image)
e.Result = pdc.applyFilter(taMain).Clone()


Unfortunately, this approach didn't work for me either.
Frustrated, I tried to either set the visibility of the Picture Box to false whenever the picture is being worked on by the background thread. But this would make the picture not visible to the user, which is ultimately not very "smooth".
So, for now, I have opted to intercept the paint events of the picture box and disallowing it whenever the background thread is busy, like so:


Private Sub pbMainDisplay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pbMainDisplay.Invalidated
If bwMain.IsBusy() Then
Exit Sub
End If
End Sub

It might be a workaround, but it's the only thing I've tried that works.


Update: 8th July, 2009

I have since moved the code that sets the Bitmap variable from the background worker's DoWork event to the method that calls the background worker instance's RunWorkerAsync() method, et voila, no stinkin workarounds required now.
It had been a matter of inter-thread chatter, I suppose, between the main application thread and the background worker.

Sunday, February 01, 2009

A bad case of upgraditis with a touch of Nehalem

The chronic (and costly) disease of upgradeitis has reared its ugly head again. And this time, it's the worst yet. The symptoms were all over the place, I just didn't realize it.

The Symptoms
It all started when my mouse finally decided to die on me. The shop-keeper said that my mouse is out of warranty period and there's no way of resurrecting my high-dpi pet. It had pined-for (and reached) the fjords. Fine, I said. It is time for a mouse upgrade anyway, I said. In the meanwhile, I am back to using my faltering old mouse.

I was researching (choices, choices) my next mouse when another peripheral, my Razer Barracuda HP-1 5.1 channel gaming headphones decided to act up and its front-left channel went silent, permanently. I was disgruntled at this and asked Razer web store for a refund instead of a replacement. I got my refund, but now I was without a high-end headphone pair. Fine, I said. It is time for a mouse upgrade and a high-end headphone pair upgrade, I said. In the meanwhile, I am back to using my old and so-so philips shp805 cans.

While all this was happening, I had noticed that my rig, especially after my new Dell 24" upgrade, was being brought to its knees by recent gaming titles. Playing at less than native resolutions and/or with decreased eye-candy might be an option for most, but not for me (of course, Crysis would be the one exception to this. For now.). This, of course, would entail upgrading the core system components, i.e., processor and video card.

My initial findings indicated that an upgrade to a quad core 45nm Penryn was the best upgrade path for now. But my current motherboard, the legendary Asus P5N32-E SLI, has iffy support for 45nm CPU s, and this of course calls for a motherboard upgrade, and possibly a memory upgrade, depending on the motherboard chipset or other factors as you will find out below.

Power Situation
Now there's another reason that enticed me to consider a motherboard upgrade, and that is the power consumption and, in-turn, the heat situation. The 680i chipset of nvidia that is in my motherboard is a sucker for watts and produces so much heat that I am still amazed that the solder hasn't melted and run off the motherboard. High power draw also decreases the UPS's on-battery time, which is made all the more important now because of the recent scheduled power-cuts happening all over Tamil Nadu. Another smaller issue is of the electricity bill. To give you a clue of why this may be a concern, take a look at the current system power draw as I type this blog post:
Free Image Hosting at www.ImageShack.us

All these reasons create a case against the current generation (65nm fabrication) mother board/CPU combination and the move toward a more recent (45nm) componentary. So, I had almost decided on the Intel Q9450 CPU on a P45/780i chipset, with the possibility of moving to a power-efficient DDR3 memory modules. And hence I went about trawling the inter-wibble for reviews on the various brands of the chipsetery. I had selected the CPU, but the choice of motherboard and memory was a lot tough to make. Inter-wibbling after a day of work, I took about a month's time looking around for the perfect deals or looking up on some fault or the other that someone in a forum would report regarding one of my components.
Many a times I had filled up the online shopping carts with a motherboard or a RAM module and come close to clicking on the checkout button. I have also asked most of the shops in Ritchie street for the best deals on the components. I heard that Intel was slashing the price of the CPUs. So I waited for that.

In the interim period of this waiting game did I hear of the arrival of Nehalem (pronounced NAH-HAY-LEM. Bet you didn't pronounce it that way till now. I wasn't either!) CPUs "next month". So I decided to wait some more. In the PC Hardware universe, or heck the entire electronics universe, those who wait will get better products at a better price, but at the price of owning an aged hardware that has also depreciated in resale value. And to live in India is to live a year in the past, as most electronic gadgetery is not deemed suitable for Indian consumption (unless at a heavy premium) until it's novelty has been well worn off in the rest of the World. But to heck with resale value, I decided to wait.

Fast-forward a couple of months, now I have committed to a Core i7 (920) CPU (previously codenamed Nehalem), a X58 chipset motherboard (MSI Eclipse) and 6GB of DDR3 low volt memory modules (G.skill 3x2GB 1600MHz 8-8-8-21 @1.6-1.65V PI-Black series). And about the ageing vide0 card that is my Geforce 8800GTX; it's predecessor will be a pre-SLI ed monster called GTX 295. Yep, after loathing SLI, mainly for its chance of not working in non-SLI-supported games and too much hot-air (literally) for non-linear performance gain (2 cards for around 150% perf increase), I am finally (and tentatively) getting on the SLI-bandwagon. Bring on the kool-aid.


Now, sharp readers might've noticed that the choice of a 130Watt TDP Core i7 processor and a bleeding-edge SLI graphics card are in direct opposition to the points I mentioned under Power Situation. But, the truth is that, because these are bleeding edge componentry, they have good power saving features that make them the very power efficient (i7 , especially, consumes lesser power than any contemporary quad-core processors out there) in IDLE state. Since my computer spends most of its time idly downloading torrents, this is the state in which it will spend most of its time. The LOAD power consumption, is, of course, is among the most power hungry of all. But I really don't care about this as the time spent in fully loaded condition is very small. You get the idea.


That leaves me with the Mouse and Headphones in my shopping list:

After my bad experience with headphones that only vibrate your noggin in the name of "bass", I am forever apprehensive of headphones with so-called "sub-woofers". I am currently researching on the subject of Headphones. Maybe, I could go for a "virtual surround" or Dolby Headphones. Still a lot to research on this subject so I will provide an update when I know more about the choices.

I am almost done with the mouse selection though. It could be the much revered game mouse, the Logitech MX518, or it could be the new champion Logitech G9. Or perhaps it could be the new-kid-on-the-block Microsoft Sidewinder mouse. Razer's DA, CH, Lachesis, etc are dead reptiles to me. While I ponder the choices, I also catch a glimpse of some great keyboards (mmm... MS Reclusa... Oooh, Razer Lycosa...). Come to think of it, I am kinda about the non-illuminated keys on my Microsoft Multimedia keyboard...

Monday, March 03, 2008

What is 24 inches, and grows on me?

...If you guessed that it is my new Dell 2407WFP-HC LCD monitor, you were spot-on. Otherwise, well, I am flattered ;)

It's been so long since I last blogged, so let me show you a few thousand words.
Here are some shots taken from my Motorola ROKR E6

Free Image Hosting at allyoucanupload.com Free Image Hosting at allyoucanupload.com


I was, and still am to an extent, averse to upgrading to an LCD especially mostly because there is not one LCD monitor that can boast of the color reproduction, viewing angle, contrast or response time of a CRT monitor. Maybe, with the future SED (technically not an LCD), OLED or Laser monitors, this can change. But, at present, CRT monitors own LCDs.

In addition, my 2407WFP-HC monitor has inverse-ghosting issues. With a bit of tweaking the color controls of the monitor, I have minimized, but not eradicated this problem. I'll probably give a call to a dell rep sometime about this issue and try my luck with a replacement monitor. I am just post-poning that bit of hassle when I get really annoyed by that effect. So far, only Counter-Strike: Source suffers most from this ailment.

But, LCDs do have their own aces up their sleeve. The things that sold me were low power consumption and widescreen aspect ratio.


If you had asked me on Jan 1st 2008 what my resolution for this year will be, I would've probably said 1920x1200 :)
If you know your definitions and resolutions, 'Full High Definition' or 'Full HD' is 1920x1080 and the 2407 can go up to 1920x1200; Gaming in greater than HD resolutions is something else.

Here we go again with the pictures:
First, some night shots of my Ye Olde Samsung 997MB 19"(r.i.p) desktop for screen real-estate comparison.
Free Image Hosting at allyoucanupload.com Free Image Hosting at allyoucanupload.com Free Image Hosting at allyoucanupload.com


And now, say hello to my new best friend:
Free Image Hosting at allyoucanupload.com Free Image Hosting at allyoucanupload.com Free Image Hosting at allyoucanupload.com Free Image Hosting at allyoucanupload.com

Note the size of the iTunes player in the CRT and in the new screen. That's the difference and that's exactly what I wanted.

Here's something else I wanted too: Widescreen HD gaming. While lotsa real-estate can make any gamer giddy as a school girl, LCDs come with built-in "motion-blur" and in some cases, like mine, a bit of (inverse)ghosting. While free motion-blur may sound like a good thing, the effect gets real annoying real soon. But, once you get over these minor gripes, the extra viewport area really gets to you, in a good way.

Free Image Hosting at allyoucanupload.com Free Image Hosting at allyoucanupload.com Free Image Hosting at allyoucanupload.com Free Image Hosting at allyoucanupload.com


Ofcourse, widescreen HD movies never looked this good in my old CRT. But, here are a few snaps from the really unworthy camera on my ROKR E6:

Free Image Hosting at allyoucanupload.com Free Image Hosting at allyoucanupload.com Free Image Hosting at allyoucanupload.com Free Image Hosting at allyoucanupload.com Free Image Hosting at allyoucanupload.com


Where do I go from here? Unless I upgrade my video card (or go SLI, tri-SLI or quad-SLI), I guess I am stuck with 24" and lower screens. All the recent video cards released after the 8800GTX (which I have) make for a pathetic upgrade.
No, the only option left for me is to volt-mod this card and OC the hell out of it. I've made up my mind on this and I've already got all of the parts, at quite some cost as they had to be bought from an US store. It's just a matter of time, lots of it.

Monday, November 26, 2007

My weird associatives

It's been so long since I last posted. So here's a short come-back post:

I don't know how most people's mind works, so I cannot pretend (but I said it anyway :) ) and say that most of us have trouble with remembering some simple concept but can cope with some relatively complex concept. Try as you might, you may not be able to remember, say, stalagmite and stalagtite. You think you've got it after a few tries but, after a few days, you are scratching your head again.

I heard of one anecdote involving a sea captain who had such an, let's say, "affliction". It goes like this: This venerable old captain who is much feared and respected by his mates had a wierd habit of taking a walk on the, er, poop-deck every morn with a shoebox in his hand. He would not let anyone see what's inside his shoebox and would even deny the existence of it. But every morn he would take a walk and would look inside the shoebox as he walked. It seemed that whatever was in the shoebox was the most priced possession in his life.
But, one day, the cap'n dies and his mateys all storm his cabin to finally solve the mystery of what's in the shoebox. But to their great disappointment, they only find a piece of parchment that said in the captain's own handwriting:
Starboard = Right
Port = Left


I do not know if that little anecdote really happened, but I have my own "shoebox" of trivial things that I keep forgetting. For most of the things, I probably look up in a dictioinary. For a select few, I have a small associative-thing going on in my mind. Here are some of the words and the associated feeling/word I use to remember the word:

Apogee(farthest point in an orbit)----> loneliness->horror (Apogee was the company behind the "Duke Nukem" series - a space horror FPS)
Perigee(nearest point in an orbit)----> none (the opposite of apogee, probably. Which means that I have to remember apogee to know the meaning of Perigee!)

Accent Aigu( the french ´) ----> 'Aigu' sounds like "Eagle", and hence the symbol itself can be looked at as an eagle taking-off toward the sky (land to sky).
Accent grave( the french `)---> Basically, it's the eagle from "aigu" doing a plunge of death, and 'grave' means "deathly"(in english atleast). So you can see where this is going.

Roman numerals "VI, VII,VIII, XI, etc" ----> These are all 5+1, 5+2, 5+3, 10+1, etc. Basically, a large number (V, X) followed by a small number gets added.
Other numerals "IV, IX" -----> none (opposites of the above rule)


Ofcourse, there are quite a few more, I am sure. But I can't seem to remember them....

Saturday, February 10, 2007

More stuffing, please.

I've been sitting with my head tilted at a weird angle and holding that pose unnaturally still for quite sometime as I listened to some soothing music from my headphones. Some internal connection in one of the ear pads' probably gone loose, as had the connections in the volume control potentiometer along the headphone wire. Any disturbance in my head's attitude would mean erratic connection and re-"tuning" my head to make the right connection again. I also know that the headphone's circumaural (around-the-ear) "cusion"'s surface has started peeling off and would've left specks of black cushion material in my hair and on my pinnae.

So, here I was with the third clone of Rs.100 Intex headphone that' exhibiting the same symptoms of aging as it's previous selves.

That's when I thought of stepping up my "interest-level" (and budget) in my headphones to the same level as, say, buying a processor.
(That's also when it dawned on me that the philosophy behind those "I got it 4 cheap" t-shirts is not of getting cheap goods for the task but of getting better goods for cheap.)


That meant a lot of pre-purchase research. It's amazing how much one could be expected to spend on a pair of "cans" (which is the "in" parlance for these). I mean, I have a pair of earphones that cost me a whole Rs.15 (~30 cents?) that I bought off of a peddler. It could leave one to wonder what possible improvement could've warranted any headphone to cost a 100 fold, and beyond. It could've left anyone to wonder what possible trait of the earphone was scaled a 100 times over -the quality (metric?) or the frequency range or the amplitude?
But then again, cost need not scale linearly. After my experience with the purchase of my ATP3, it would've been stupid of me to ask those questions. Yet, the doubt remained throughout my purchase as I've never worn any 'can' that's worth more than Rs.200 before. Sure, I've read praises and firtst-hand accounts of the revelation in musical clarity experienced by first-time buyers of quality cans, but it'll help you only so much when you are a skeptic at heart.

Anyways, without further rabble, here's my newest pair of dandruff-catchers(now do u wanna share my earphone?) cum earmuffs(feels good during winter) cum earplugs(as in, cuts off outside noise somewhat) cum head massagers (good bass response). And they double as headphones too, woohoo!
Philips SHP805

If you are on a budget of around Rs.1000, these are the best of the bunch.

Mod:
Of late, I don't seem to be content enough with stock anymore. I get this uncontrollable urge to apply a mod, however small, to make my possession more mine. Perhaps it's an underlying urge to differentiate myself among the sea of stocks, or perhaps, stocks just don't cut it.
I am not going to elaborate the mod I did here. You can find it here. It's a simple mod involving padding up the inner-back wall of the cans for improved sound-stage (perceived width of the sound source) and stuffing foam in the ear-muff part of the cans. The sound-stage increase may be chalked up to placebo, but the extra stuffings of foam definetly enhanced the comfort-level. Now that is a very simple mod that has a great practical impact. I don't know why the manufacturers skimped on the foam. So this is to Philips: "More stuffing, please".

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