comments edit

I thought this was a joke until I realized that it was on Yahoo news. Bush and Cheney say we attacked Iraq because Saddam COULD HAVE made weapons of mass destruction. “Could have”. Gee, well North Korea “could have” made WMDs. Should we attack them? How about India who DO have. Heck, with a bit of time, I think I have enough intelligence and skill to make a WMD. Should I expect an airstrike on my apartment sometime soon? I hope not, my wife would not be pleased.

This turnaround is particularly amusing because didn’t Bush and his cronies attempt to educate the country about the concept of “Imminent Threat”. Saddam posed an “Imminent Threat”. I don’t know about you, but “Could Have” does not seem so immiment to me. It’s like locking me up because I could have made a baseball bat and beat you down. Certainly I could, but it will take me time to find the right piece of oak. - President Bush and Vice President Cheney yesterday said the war in Iraq was justified because Saddam Hussein could have made weapons of mass destruction.

[Via Yahoo! News - Top Stories]

comments edit

So I keep blabbing and blabbing about my new RSS Feed. I keep imploring you to get an RSS aggregator and subscribe to my feed. What the hell am I talking about?!

Well to clear things up, I wrote an article about how to get started with RssBandit, a very nice RSS Aggregator created by Dare Obasanjo et all. Please take the time to read it and follow its instructions. Especially you Dad. If I’ve done well, the article will clear thing up and you will have a subscription to my blog.

You can also download it as a word doc

comments edit

My latest tech toy is an HP Scanjet 5530 Photosmart Scanner (wow that’s a mouthful). The defining feature of this scanner is the photo feeder built in. Simply add a pile of photos (around 24 max at a time) into the feeder, press a button, and go watch your Tivo’d episode of 24 while your photos scan (it doesn’t take all that long).

The incessant creaking of my bookshelf as it strains under the load of my accumulated photos spurred me to purchase this scanner. Having shuttled around the planet while growing up, it’s important to me to archive the memories of the havoc I created.

To that end, I also spent a lot of time searching for the perfect photo organizational software. The ideal program would have a clean nice interface and allow me to tag photos, organize photos into albums, search with face and image recognition, and automatically fix bad hair-day pics. I ended up purchasing Adobe Photoshop Album 2.0, which I’m quite happy with, though it doesn’t have image recognition (nobody really does just yet) and won’t fix my bad hair (a lost cause).

However, this new memo from Microsoft Research describes several advances that Microsoft is working on that will make their way into future products. Examples include image recognition, improved ability to fix red-eye and cut people from one photo and paste into another. One neat feature that currently works in Asian versions of Office 2003 can convert a picture of a person into a cartoon character with pretty good resemblance. Currently it only works for asian faces. I have to admit, I’m very excited.

Read about it here to see the examples.

comments edit

This is just too funny! It’s a skit about a white family with an unfortunate last name which sounds just like a terrible racial epiteth, “Niggar”.

Dave Chappelle is a master at getting a laugh out of race issues. He’s testing the boundaries of racial issues and finding laughs.

If you like this video, I suggest you check out Chappelle’s Show - Season 1 on DVD. His most memorable skit is the one in which he plays Clayton Bigsby, a white supremacist who is both blind and black, only he doesn’t know he is black because no one ever told him.

comments edit
  1. Specifications are for the weak and timid!
  2. This machine is a piece of GAGH! I need dual Pentium processors if I am to do battle with this code!
  3. You cannot really appreciate Dilbert unless you’ve read it in the original Klingon.
  4. Indentation?! – I will show you how to indent when I indent your skull!
  5. What is this talk of ‘release’? Klingons do not make software ‘releases’. Our software ‘escapes’ leaving a bloody trail of designers and quality assurance people in its wake.
  6. Klingon function calls do not have ‘parameters’ – they have ‘arguments’ – and they ALWAYS WIN THEM.
  7. Debugging? Klingons do not debug. Our software does not coddle the weak.
  8. I have challenged the entire quality assurance team to a Bat-Leth contest. They will not concern us again.
  9. A TRUE Klingon Warrior does not comment his code!
  10. By filing this SPR you have challenged the honor of my family. Prepare to die!
  11. You question the worthiness of my code? I should kill you where you stand!
  12. Our users will know fear and cower before our software. Ship it! Ship it, and let them flee like the dogs they are!

comments edit

I usually ignore the spam that I get (and I get a bunch), but I read one of them a bit more carefully:

We hereby inform you that your computer was scanned under the IP . The contents of your computer were confiscated as an evidence, and you will be indicated.

Umm… I think that the author was probablyÂlooking forÂâ€inditedâ€.

[Via Eric Gunnerson’s C# Compendium]

comments edit

Quick, what’s the hex code for question mark? How about the ampersand? Since, like me, you probably don’t waste valuable space in your brain with that type of information, I have a little trick for you to quickly look up the hex encoding (or URLEncoding) for a character that doesn’t require you building an ASP or ASP.NET page and calling Server.UrlEncode().

Go to Google and type the character in the search box and then click “Google Search”. Now look in your address bar at the very end. Everything after the “q=” is the encoding of your character. For example, if I search on “?” I get:

Thus the hex encoding for ? is %3F.

comments edit

So this kid has a dorky moment alone at school in a little studio where he films himself. Next thing you know, his friends upload the tape to Kazaa and this kid is everywhere! People all over the net are remixing the video. Here is the Original and a remix:

Matrix Agents Remix

A lot of the remixes don’t work.

security networking comments edit

Port knocking is a method of establishing extra security between a networked computer and the outside world. It seems like a great idea. For hosts that are running private services that need to be connected to the net, require clients to make a specific series of connection attempts to various ports. After the correct sequence is made, the firewall opens up the port for the client. This would be very difficult to uncover via a port scan.

comments edit

My coworkers have been sending me some funny videos to get me caught up with pop-internet culture. Click on the “Humor” category to the left to see the latest funny videos. The Dave Chappelle one is especially worth watching.

comments edit

Can somebody out there point me to a reference that explicitly says whether or not we can count on the underlying order of a DataTable rows to be the same order that is returned by a SQL statement or a Stored Procedure?

I read a posting somewhere where the author states that though it appears to be the case that the DataTable rows are ordered in the same order as retrieved from the database, that this ordering is not guaranteed by ADO.NET and should not be relied upon. For those familiar with hash tables, you know that a hashtable gives no guarantees about how elements are sorted.

Now I know all about the DataView class and how that can be used to have a sorted view of items in a DataTable. But my concern is this. Suppose the DataTable does respect ordering (for now) and thus my underlying data is already sorted. If the DataView uses traditional Quicksort to sort the data, that is the pathological worst case. Now there are new variants of quicksort that handle already sorted data just fine. I have yet to run benchmarks to find out how the DataView performs.

comments edit

It’s amazing the fallout over the Janet Jackson breast incident.

My god people! It’s a breast!

It was on for three seconds!

We’ve all suckled on one when we were children (some even later) so I don’t buy the concern “think about the children!” Children see a breast on tv they think, “Hee Hee, a booby.” They don’t think, “Oh! I saw a breast. My innocence has been stolen, I think I’ll go out and engage in promiscuous unprotected sex.” Show a kid the closeup they’ll probably think, “Oh! That’s gotta hurt!”

In any case, I think Chris Sells makes a good point here:

Severe Beating Shown, CBS Shocked/FCC Investigates

Or rather, that’s the headline I wish I could post. However, instead of CBS and the FCC getting freaked out about the insane amount of severe violence on TV, available to our children any time of the day or night, they’re worried about 3 seconds of breast.


code comments edit

I’m working with a third party component (I will not name the guilty party) that has a method with the following signature and implementation (with no overrides):

public void doSomething(DataTable table)\ {\    for(int i = 0; i < table.Rows.Count; i++)    \    {       \       DataRow row = table.Rows[i];       \       //Do Something with row…    \    } \ }

What is the problem with this method?

In my opinion, it is an example of poor class design. Suppose the user of this class wanted to have the component process the rows of the DataTable in a particular order. How would one accomplish that?

If you take a look at the DataTable class members, you won’t find a Sort() method. The reason is that a DataTable cannot be sorted. The correct way to sort a table is through a DataView. The DataView is simply a view (appropriately enough) of the underlying data within a DataTable. You can have multiple views on a single DataTable and sort and filter all you want on the views, but the underlying data does not change. For example, a naive approach (and one that I took) was to apply a sort on the DefaultView of the DataTable. I tried this before I knew the method’s internal implementation. This approach failed due to the fact that the method completely ignores the view of the DataTable.

I would suggest that the method be changed to iterate over the DataTable’s default view. That’s what it is there for. However, the author may have decided to iterate over the DataTable for performance reasons. If so, a better design would have allowed for an override method that takes in a DataView and uses the view to iterate. Like so:

public void doSomething(DataView tableView) \ {    \    for(int i = 0; i < tableView.Count; i++)    \    {       \       DataRowView row = tableView[i];       \       //Now Do Something with row…    \    } \ }

This results in improved flexibilty for the user of the class. Thankfully, the author promised to include this in the next version of his component and send me a preview copy.