Trying to buy a home

So my wife and I found a nice home up in the Santa Cruz Mountains which we really liked. Since Murphy’s Law is in effect, the owners had to be TCHOFH (The Crazy Home Owners From Hell). Anyways, rather then trying to explain the long and drawn out process, my friend Eric summarized our ordeal in a few lines:

let put this in terms i can understand:

me: how much for this rug?
pakistani rug merchant: for you? $400. I promise there are no stains on this rug!
me: um, how about $300. Why would there be stains? It’s a new rug? Is there something wrong?
PRM: $350. THERE ARE NO STAINS! WHO SAID ANYTHING ABOUT STAINS???!!! no, you may not look for stains
me: $310
PRM: $450!
me: WTF?


Siig quality sucks

I needed some fast disk space for working on my photos and after some research settled on a pair of Western Digital My Book Premium ES 500GB drives and a Siig eSATA ExpressCard/34 card to connect them to my Mac Book Pro. Continue reading


Saw that one coming

So I’m in the market for a small camcorder. After doing some research, I settled on a model (Samsung X210L) and started looking for the best price. Most online retailers I was familiar with were in the $400-$500 range, but one store (GearXSmall.us.com) was $340! Once I noticed the store was based in NY, I started wondering what the catch was.

I know enough to be wary of NY-based electronics merchants. They have a tendency of ripping you off on shipping or delaying your order unless you purchase overpriced accessories you don’t need. Of course not all NY merchants are so shady, B&H is one of my favorite merchants because of their good prices, fair shipping and no haggle return policy.

So I started looking for reviews of GearXSmall. For a company who had been in business for about 2 years it was odd to not find one review. So I decided to see how much they were going to charge me for shipping. I added the item to the shopping cart and was greeted by this message:

GearXSmall Scam

Minimum order is $500? You’ve gotta be kidding me… So yeah, GearXSmall is an obvious scam site. No legit business requires you to spend $500 when many of their items are far less then that. So I clicked on their FAQ and they had this to say:

Why Is There A Minimum Order!?
We cannot process orders with a value less than US $500 because we have too many international orders and it is easier for us to process less orders with higher values. We are sorry for this inconvenience.

That has to be the lamest excuse I’ve ever heard of.


No destructor? WTF?

Ok, I’ll the be first to admit that I’m no OO guru. Most of my OO coding has been done in Perl for heaven’s sake. I’ve also dabbled a little in C++. Now I’m learning Ruby. Ruby has some really cool idioms and features which really make writing code easier and cleaner. Of course, not everything in Ruby has me singing it’s praises. This is another of those rants…

Basically, I’m trying to write a brain dead simple class wrapper around multiple temporary files. One feature of the class was to be that the user doesn’t have to manually delete the temp files…. basically when the class goes out of scope, I’d hook into the destructor to delete the files automagically. I know this sorta thing is doable in Perl, Java and C++. Imagine my surprise when I found out that Ruby has no destructor, just a “finalize” method which is only called during garbage collection- NOT when the object goes out of scope. As a matter of fact, Ruby doesn’t provide any way to do what I want without using closures which severely limits my class since it’s designed to be managed remotely sorta like RPC.

For a language which seems to pride itself on it’s flexibility and ability to override just about any method, not being able to hook into when the object goes out of scope is just plain lame.


Treating users vaguely

So last night I’m playing with iDVD to make well, a DVD. So, long story short, you can choose to format your DVD for 4:3 or 16:9. I wish there was a way to gracefully support both, but that’s another rant. Anyways… so there’s this feature to show you the “safe area”, which is the area of the screen which is most likely to actually be displayed on someone’s TV; apparently iDVD isn’t a WYSIWYG tool.

Now some key things about safe area this:

  • No explaination why an NTSC formatted DVD on an NTSC screen won’t show the whole thing.
  • This is an approximation. iDVD doesn’t apparently actually know what is safe.
  • There is no hint like “after testing we found this appropriate for 90% of TV’s”, so I have no idea how accurate it really is.
  • It reduces the available screen area by like 20% WTF????
  • There’s no documentation telling you how you might go about determining the actual viewable area on a given TV.
  • Even if you figured that out on your own, you can’t adjust the safe area accordingly.

Now I suppose that if you’re using iDVD you’re not a DVD authoring or TV display area expert, hence I would appear to be iDVD’s target market. But I think this is a good case of treating your customers like idiots. I can understand hiding some advanced features by default (actually I think many applications like Word, Excel, Photoshop need an option to “Hide/Show Advanced Options”) so that non-power users aren’t overwhelmed by the vast number of options, but don’t dumb thing’s down so much that you’re only making things more confusing by your vagueness.

Of course what is most frustrating is that Apple knows what the resolution of an NTSC TV screen is… there shouldn’t be this issue in the first place. Sure, some cheaper TV’s may cut off a little at the edges, but not 20%!


Why methods shouldn’t replace a language

There’s been a big push for OO scripting languages like Python and Ruby over older procedural languages like Perl. While I used to be quite the Perl bigot, lately I’ve learn to appreciate other languages like Ruby. But while OO techniques can make some things much much easier, strict adherence to the OO concepts can be more trouble then it’s worth.

Take for example this common case of a for loop:
for ($i = 0; $i < = 10; $i++) { &lt;do something with $i&gt; }
In Ruby you’d use:
1.upto(10) { |x| &lt;do something with x&gt; }

I’ll give the win to Ruby here for being more concise, even though those people coming from most procedural languages will be taken back by the syntax. Now lets make a simple change and increment by 2 instead of 1:

If you read the first Perl example, this should be obvious:
for ($i = 0; $i < = 10; $i += 2) { .... }
Ruby, however isn’t quite so obvious:
1.step(10, 2) { |x| ... }

Wtf? It’s a different method? For the record, I had to ask 3 people who write Ruby code how to do that because the first two didn’t know the magical method name. Sure it’s a small thing, but it’s really fustrating when the “obvious” solution isn’t correct and doesn’t lead you to the answer.


Not even I thought the number was 14,000

According to this AP article on Yahoo, 14,000 is the number of people being held without access to a lawyer or being charged with a crime that are being held against their will in U.S. run overseas prisons. 13,000 of them in Iraq.

One such example is of Bilal Hussein, an Iraqi citizen and AP photographer.

[Update: Here’s another great example of the “enemy combatants” who are so dangerous they must be held in Gitmo.]

Already, over 18,000 people have been released because they were deemed innocent. But one wonders after being held in a prision for months and even years, how this endears us to them after they are set free. More then likely, those that already hated us, hate us even more and those that were on the fence now see us as their tormentors. While “radical islamists” are telling the world we are evil, we go out of our way and prove it. In effect, our own actions only serve to create more of the enemy.

Bush tells us this is to protect us from those evil-doers who wish us harm. But you can’t fight evil by becoming it. The “war on terror” shouldn’t be fought by instilling terror in the hearts of innocent people. We as Americans need to stand up for what is right before the world can’t tell which side are the real terrorists.


Flying in the post-liquid bomb world

So I had the missfortune of picking last thursday to fly on vacation. For those of you living under a rock, last thursday was when the news broke out that some terrorists were plotting to blow up planes using explosives in the form of liquids and/or gels.

The solution was obviously to stop anyone from flying in their carry-on any liquid, gel or simular substance such as chapstick. Apparently now, you can’t even have gel inserts in your shoes.

As someone in the security world, these planned attacks and our response are somewhat interesting to me. Anyways, a few observations:

  • Some people traveling really are living under a rock. One woman who was trying to go to Disneyland was shocked that she needed some form of a government issued ID to fly.
  • TSA is obviously incapable of determining who is a terrorist and who is not a terrorist, hence everyone is now treated as a possible terrorist.
  • The terrorists are constantly coming up with new ways to blow stuff up.
  • The TSA responds by constantly banning perfectly harmless things which resemble dangerous things in an attempt to prevent terrorists from blowing things up because it is unable to efficently distinquish things like drinking water from nitroglycerin.
  • The impact on perfectly honest citizens who aren’t terrorists seems much larger then the impact on the terrorists (not just the people traveling, but the owners of duty-free stores, wineries who’s customers don’t buy as much wine, causing the price of oil to skyrocket, etc)
  • If the terrorists goal is to just strike fear into the average traveller, cause havoc with our economy, etc then the terrorists are meeting their goals. My guess is that actually blowing up a plane would be bonus points. It also explains why we call them terrorists not “random murderers of many people who take themselves out in the process”.
  • How long before the terrorists figure out how to embed exploisives into clothes and the TSA requires everyone to fly naked?