comments suggest edit

My neighbor Chris is working for the Army Corps of Engineers on several construction projects in Iraq to help rebuild their infrastructure. While they’ve enjoyed some success, they also have their fair share of setbacks.

Infrastructure also provides the insurgents with an attractive target. Around Basra, they regularly blow the oil pipelines that run to the port of Umm Qasr. If you stand out at the army base for awhile in the evening, you can usually spot a billowing cloud of smoke in the distance marking the most recent hit.

Read the whole post here.

comments suggest edit

I applied a patch to my .Text installation as recommended by Scott Watermasysk in this entry of his blog.

New comments will now have the rel=”nofollow” attribute applied, thus preventing Google (and others) from indexing the link and giving the comment spammers a higher page rank.

I found a slight problem with the patch. It works for URLs within the body of the comment but if the user specifies a URL in the URL field, it doesn’t modify that URL. Thus you can still comment spam me, but only one URL at a time. I posted a comment in Scott’s blog about this.

In any case, I doubt this will stop the comment spam anyways. It may well be good enough for the spammers to continue. Despite the fact that their Google page rankings won’t increase as a result, by spamming enough sites, they’ll get enough exposure on enough blogs (et all) that enough users will click through. It’s the same way with email spam. All it takes is a very small percentage of suckers to bite.

This does take away one of the key motivators to comment spam. I will probably add a CAPTHA tool later after some investigation.

comments suggest edit

Schwimmer makes some good points in his clarification to his decision to ask Bloglines to remove his feed. A few points in particular warrant further discussion.

Creating the free content for advertisements that Bloglines will sell to other trademark law firms. This isn’t baseless conjecture - read this discusssion of Bloglines’ plans for advertising keyed to the content of blogs. At least with Google’s contextual ad program, the blog creator gets some money.

The question I have is how is this different than if say FeedDemon or Newsgator decided to release a free version of their aggregator that included targeted ads. Tyme White claims…

there is a big difference between Bloglines search/preview feature where anyone can view a blogs content and someone adding the feed for private viewing. The argument of desktop readers having ads is completely different - that would be for private viewing only by the user and the ad would NOT be on the feed, it would in the software.

Seems to me it’s only a difference in mechanics. Most aggregators contain search features as well. Wouldn’t be hard for them to include targeted ads. Not only that, it’s still making money off your content. Even a desktop aggregation company could print the following ad…

Find out how our sales team can help you reach you reach new customers with targeted advertisements on ACME Aggregator. Contact for more information.

In my view, there’s a big difference in what Bloglines is doing and some website blatantly ripping your content. I can see the problem if Bloglines was a profit motivated legal website and the main content of the site was taken from legal blogs that provide feeds. With Bloglines, the primary usage is for private users to subscribe to feeds. Yes, your content is available via search, but it’s the same as with Google. Likewise, don’t you want people to find your content, regardless?

Tyme goes on to say…

The bottom line, if money is being made off of a feed it could be deemed commercial use and you should receive permission from the author before redistributing unless the content is considered public domain.

Does that mean Google must ask permission to display your site in search results which might contain ads for your competitors (which was recently ruled completely legal).

Suppose you send copyrighted email to a gmail user? Does it infringe on your copyright that Google can target ads to be displayed alongside your email?

I don’t ask these questions to be contrarian, but to really understand the issue. As I see it, yes martin is right. He does have the right to control his content. But true wisdom is knowing when one should excercise a right. As Scoble points out,

…(by the way, how come you guys aren’t yelling about Google’s caching? Did you see that all your pages are cached over on Google? That breaks with traditional copyright law too, but so far we’ve been cool with that too. Why? It helps everyone.

My advice to Martin is that yeah, you’re right. You have a copyright over your content, but think about the big picture. You’ve definitely got yourself noticed. Now let Bloglines use your content for fun and profit, become a blogging hero, and watch your own clientele list and profit grow as a result. Everyone can win in this situation. Don’t try to force a new technology to fit within the confines of an outdated copyright system that’s winded and unable to keep up.

Probably the best thing to come out of all this is a discussion of copyright as it pertains to an entirely new medium. Let’s hope the right decisions are made that reflect the cooperative nature of RSS.

comments suggest edit

I never fill out these silly surveys and usually make fun of those who do. But I succumbed to peer pressure this time. Apparently I’m a Nerd King God, I don’t know whether to be proud or insulted.

I am nerdier than 97% of all people. Are you nerdier? Click here to

All bow down!

comments suggest edit

Saw this on Scoble’s link blog.  |  Comments

THE ACCIDENTAL BLOGGER is what I’m going to call what happens when a blogger writes a post that accidentally becomes far more important to their site than ever intended. I certainly never intended that racing frogs and the death test would be among my more popular threads, but there you …

[Via Scoble]

A while back I blogged about a hilarious Dave Chappelle skit called (and if you tend to read aloud, I recommend reading the next words silently) “The Niggar Family” (and please note that the derogatory N-word is spelled differently lest you flame me miserably).

Unfortunately, the search word that brings the most visitors to my site via Google is “Niggar”. Egads! A mispelling of a most offensive epithet is NOT what I want to be associated with. I can only hope that these users are indeed searching for the skit video and aren’t a bunch of bad spelling ignorant racists.

As you might guess, the search phrase that brings the most visitors is “Niggar Family”. That post has seen 7881 web views according to .Text’s reporting. In second place is the phrase “German Car Video” (25,981 web views). You’ll just have to watch it to see why.

My most popular post of all time is “Nerds Protest The RNC” (41,635 web views). It’s the photo of the sign with the html tag “</bush>.

So like Molly, I’ve had my share of being an Accidental Blogger. The day I write a technical post (the intent of my blog) that matches those numbers is the day I say to myself that has done good (thus exposing my poor grammar skills).

comments suggest edit

I love me some electronic gadgets.

Take today for example, I was in the middle of a fantastic pick-up soccer game under clear blue skies when I received a page on the company Treo (I had it by the goal). A socket server service was down and needed to be restarted (long story, it will get replaced by something yours truly wrote).

A few years ago that probably would have required me muttering a litany of swear words under my breath while driving in to restart the malcontent service. But not this time baby! We live in the digitial wireless mini-this and mini-that age.

I took over as goalie for a bit, busted out the Treo, navigated to our secure administration tool on the web, and restarted that sucker (all while blocking a few deadly shots on goal). Life is good.

comments suggest edit

I’ve just removed Martin Schwimmerfrom my subscription list. Why? Because he doesn’t want his posts reprinted in Bloglines (and, I assume, in sites like my link site).

The real trick here is: if you don’t want your full posts reprinted somewhere else, don’t put them into RSS. That’s one reason most commercial sites don’t include full content in their feeds.

I don’t mind that Bloglines reprints my content and I don’t mind that anyone using an RSS News Aggregator looks at my content without seeing my design or my navigation links or my email address or cell phone number.

If I did care, I’d switch my RSS feeds to only shove out partial content, or I’d delete my RSS feed altogether.

[Via Scobleizer: Microsoft Geek Blogger]

After reading Martin’s post and his reasoning for contacting Bloglines, it sounds like much ado over nothing. In my humble opinion, he’s making a myopic mistake in action and reasoning.

First of all, if he’s going to provide an RSS feed for his blog, his argument against Bloglines is disingenous. His RSS feed is stripped of his contact info and branding as well.

I have a simple solution for him, simply put your contact info at the head or tail of every blog post. Problem solved! You can now take a step forward instead of a step back. If you’re trying to get your promotional information out there, why make it harder for others to receive and consume. Especially given the popularity of bloglines. It just seems so short sighted to me. Then again, never underestimate the power of controversy to get you noticed.

Here’s an example of how to do a tagline:

This post was brought to you by Haacked, please send money. <— Sample of a promotional tag line.

comments suggest edit

We have perfect timining. We arrived in Los Angeles this morning to beautiful blue skies. Rumor has it that it’s been raining for the past four days or so, but I don’t believe it.

It’s nice to be home after a wonderful vacation. We picked up Twiggy from the doggy day care and are now fighting the effects of jet lag. I am also struggling with my new addiction, NeverWinter Nights Platinum edition. As if I don’t have enough on my plate with RSS Bandit Dev, Contracts, Book Proposal Reviewing, and general reading. Oh yeah, and my day job.

comments suggest edit

Due to my love for sake, my father-in-law gave this bottle to me as a parting gift.

Castle Sake \ top exposed \ *hic* I’m ready to shtorm the castle shir *hic*

He also gave me two bottles of “Negori” Sake (not pictured). This is a milky looking sake that contains the live cultures used in the sake making process. I absolutely love it, but I learned that it’s more of a commoners drink and not served in many of the fine restaurants.

Now I just need some people to share it with when I get back to LA.

personal comments suggest edit

Do you remember that episode of the Simpsons (number 24 to be exact) where Homer takes his family to a Japanese restaurant and orders the blowfish? Yeah, me too.

My father-in-law took us out to a very traditional Japanese dinner as a celebration of TY’s (Akumi’s brother) impending wedding. Here’s a picture of our room and Akumi listening attentively as our server tells her the menu (or something like that. I couldn’t understand as it sounded like a bunch of jibberish to me. I think they call it “Nihongo” or “Japanese” to you and me).

Japanese Dinner \ And for the main course, I will feed you poison.

The food was outstanding and very delicately prepared. At least for the two microseconds before I clumsily destroyed my dishes with my two chopsticks of death.

\ Thar’s gold in them there soup.

Much to our surprise, we were served Fugu. It’s not a typical part of this meal and isn’t listed on the menu, but apparently Akumi’s dad is such a regular he received a bit of special treatment.

Now back to that Simpsons episode. Homer discovers that he’s eaten poison and is going to die. He makes a list Homer’s List of Dumb Things I Gotta Do Today Before Dying (the first item on the list is “Make List”) and hilarity ensues.

Fugu is an ugly fish that is capable of inflating itself and exposing protective spikes (think Finding Nemo). Those spikes contain tetrodotoxin, a poison that is 1200 times more lethal than cyanide. It only takes a small amount to kill a person and each blowfish contains enough to kill 30 people. It is the one delicacy that is not allowed to be fed to the emperor (and no wonder). Approximately 100 people die from it in Japan yearly, though mostly in outlying areas where fugu is prepared by those who are not trained to prepare it. This is probably less than the number of people who choke and die on mochi rice each year.

Blowfish (fugu) \ Meet the maker of your doom.

But I happily dug in. In the picture above, the plate is covered in Fugu sashimi, the main meat of the fish. At the top left, the white stuff is the skin of the fish (the best part in my opinion) and at the right is something explained to me as the “stuff between the skin and the meat”.

Apparently the word “delicacy” in Japanese means “Food that has very little taste. What little taste it has, is too subtle for your western tastebuds”. The fugu meat had a very subtle taste and a very slight chewy consistency. We dipped it in a sauce to give it more taste. Later we were served fried fugu (not pictured) and that was very delicous. Cooking it brings out more flavor.

One of my favorite parts of this meal was the expensive bottle of sake we consumed. For only 10,000 yen (around $100), we enjoyed this very smooth and clean concoction with a slight fruity aroma and taste.

Sake \ Mmmmm Sake

I’ve become quite a connoiseur of sake, so much so everyone wonders if I’m secretly Japanese myself.

Technorati Tags: japan,tokyo

comments suggest edit

Burning Man First level:\ 10,000 tickets at $175\ Limit 2 tickets per person\ Internet sales\

Second level:\ 5,000 tickets at $200\ Limit 2 tickets per person\ Internet sales\

Third level:\ 5,000 tickets at $225\ Limit 4 tickets per person\ Mail order and internet sales\

Unlimited ticket at $250\ Mail order and internet sales\

Buy now to get the best deal.

Go here:

personal comments suggest edit

Yesterday, along with Akumi’s uncle Tadashi, we visited her grandmother at a rest home. She’s a spunky 90 year old woman and gives me great insight into where Akumi gets her rebellious nature from. We took her for a walk and I jumped onto a thin railing. Her reflex wasn’t to wave me down for my safety, it was to reach out as if to push me off and cause me to crack my skull. We made sure to push her wheelchair to the edge of the river as if to push her in. We all had a good laugh afterwards.

Akumi's Grandma

Katana\ Afterwards we walked over to the uncle’s house. Akumi refers to him as the “Harley Davidson” uncle as he rides a Harley and is in love with the Harley brand. He was wearing Harley jeans and a Harley cap. When we arrived at his place, he showed us his 200 year old Katana.

Katana \ The Katana in its case. Tadashi made the stand himself.

It’s a beautiful piece of craftsmanship. Every two weeks he cares for it with a strict regimen to ward off rust and keep its beauty. Should he require a sharpening (which probably won’t be required) it costs $100 per centimeter to sharpen properly. It’s a collector’s item worth over $8000 made by some guy named Hattori Hanzo (ok, the Hattori part isn’t true).

Collector's Item \ Tadashi shows us the engraving on the hilt and a matching monograph in a collector’s book.

Tadashi explained to us that Samurais went to great lengths to take care of their swords and a good way to get yourself killed back in the day was to carelessly handle or knock down a Samurai’s sword. That would invite a fight to the death. Only then did Tadashi let me handle the Katana and I took great care to show it the respect it deserved.

Me with Katana \ Displaying the ferocity and skill that would have made me a great samurai. Or samurai fodder.

Seppuku\ Tadashi has a sense of humor similar to my dad’s. He told us that when he’s unable to care for himself, he’d prefer to commit seppuku than waste away in a rest home. My dad always tells us that when he can’t wipe himself, drive him out the backwoods of Alaska and let him loose for the bears to find him.

When a samurai was dishonored, he would commit Seppuku in order to regain his honor. Today, dishonoring oneself is a sport displayed on reality television.

Sometimes this is referred to as Hara Kiri, though Tadashi tells us that Seppuku is the correct term. Hara Kiri and Seppuku are the same characters in Japanese, but they have two different ways to pronounce them.

The act of seppuku required the samurai to essentially dissect himself with a katana while another Samurai chopped his head off to finish the deed. The sword the other samurai used was specially made for this purpose as just any sword will not do. To test the sword (see, “test first” is not a new thing) they piled dead decapitated bodies one on top of the other, in what must’ve been a pleasant ritual, and then attempted to cut through as many as they could with one strike of the katana. Afterwards, the katana was carefully engraved to document the number of bodies it cut through. Thus a “three body” sword meant it cut through three bodies.

Tadashi showed us a picture of a sword with an etching of “Three Body Sword” on one side. On the other side it said “After re-engineering, Four Body Sword”. I want to know where they got all these bodies for testing. I’d hate to be the QA department for a seppuku katana.

In the next two pictures, Tadashi demonstrates Seppuku.

Seppuku demonstration step 1 \ Step 1, insert the blade here. Be sure to disinfect first.

\ Step 2, slash across here. Be sure to cut into the major organs. Doesn’t that feel nice?

For women who had been shamed, they would often kneel down to commit seppuku and were permitted to lean into the blade, bracing the hilt on the ground if they did not have the strength to cut themselves.

Technorati Tags: japan,tokyo

comments suggest edit

I can’t access Google, Gmail, or BlogSpot. (which used to redirect to my Gmail account) now takes me to However I can get to etc…

comments suggest edit

map of Japan No, I haven’t become a paranoid privacy freak ready to purchase a cabin in Montana. This is just something that struck me as I opened my browser today. My default home page is Thus when I open my browser, the following information is sent to a Yahoo! server via HTTP (HyperText Transfer Protocol. The rules for sending and receiving data between a browser and website) (note: some data omitted for brevity).

GET / HTTP/1.1\ Accept: */*\ Accept-Language: en-us\ Accept-Encoding: gzip, deflate \ User-Agent: Mozilla/4.0 … \ Host: \ Connection: Keep-Alive \ Cookie: B=1note6p0p3843&b=2;…

Notice that the last line is labelled Cookie and there’s a bunch of data that comes after it (which I omitted). That data is the infamous cookie data you no doubt have heard about. It probably contains some sort of identifier which Yahoo!’s servers use to look up my personalized information in a database, thus rendering a page just for me using my settings (hence the name and not

So far so good, it’s really quite benign. But what you don’t see in the HTTP request is the TCP/IP data. Simply put, TCP/IP is the underlying protocol used to send and receive HTTP messages across the web. As you know, every computer connected to the internet has an IP address (the IP of TCP/IP) which uniquely identifies that computer. When joining a network, your computer will often have an IP address dynamically assigned to it. Right now, my IP address is

Without getting into the nitty gritty, it’s enough to know that blocks of IP addresses are assigned to ISPs in huge blocks. Different blocks also tend to be allocated to various geographic regions. Thus Yahoo! can lookup my IP address in some database and figure out that I’m in Japan. In fact, that’s exactly what they did as when I opened my browser, I noticed that the ads were in Japanese.

When I saw those ads, it occurred to me that any website I visited via my laptop using cookies could corroborate the fact that I’m in Japan. Of course, it might be easier to discover that fact by just reading my blog.

As far as I know, this isn’t a perfect means to obtain your whereabouts. There are anonymizer services out there that can hide your true IP, though the anonymizer service itself will know your IP.

comments suggest edit

Chris Sells humorously relates his experience dealing with his traffic violations.

The one where I describe my recent run-ins with the Oregon traffic police and my availability as the “Bad Boy” in your boy band.

[Via Marquee de Sells: Chris’s insight outlet]

If you think the Oregon police sound strict, try dealing with the Military Police. I once was ticketed by an MP on an Air Force base while riding a 10 speed! He claimed I entered the intersection too fast, but from my view, I had waited till all the cars had passed and then entered the intersection.

When I saw the tell-tale red and blue lights behind me, I considered gunning it for a moment, but my legs were tired and I wasn’t ready for a Dukes of Hazard moment.

I don’t remember a monetary fine, but my dad did have to go talk to his first officer as a result. He tells me it was rather non-eventful, but I like to think it went something like this:

1st officer: So Sgt Haack, I see your son got himself in a bit of trouble.\ Dad: Yes sir, a minor traffic violation.\ 1st officer: I didn’t realize he was old enough to drive.\ Dad: Well sir, he isn’t.\ 1st officer: ah, so driving without a license too. Sounds like a bad start.\ Dad: Possibly, though he was riding a bicycle. But you know kids these days. It starts with riding a bicycle too fast and the next thing you know, he’s smoking crack.\ 1st officer: Ummm. I see. Well tell your son to keep it in a lower gear. Dismissed.

comments suggest edit

Unicef We finally have a moment to sit down and make a donation to the relief efforts under way in South Asia. With the death toll at 141,000 and rising, it’s impossible to grasp the amount of devastation caused by this disaster.

Although it’s easy to just not think about it, I hope you consider taking a small moment and making a small (or big) donation. We chose to contribute to the UNICEF relief effort. You can also contribute to the American Red Cross via which is convenient if you’re an Amazon user.

comments suggest edit

I read with interest Dare’s post on the quandary social software finds itself in today. In a nutshell, the current crop of social software tools are not very sociable once you step outside of the particular tool. It’s really like one big world wide cliquish high-school. Your orkuts won’t talk to the friendsters who won’t talk to the Amazons and so on…

As Dare points out, there’s really no business incentive for these companies to allow users to export their social networks. They probably contain teams of marketers who drool at the personal information they are gathering and the opportunities of marketing. Why share?

I’ve tried to flesh out some ideas before on how I see social software evolving, but it occurred to me that there’s two possible solutions. The first is to create a profit motive for sharing. Once you give Google an incentive to allow users networks to be exposed outside of Orkut, they’ll do it.

Ok, that’s obvious. The question is how? Well first, users have to demand more control over their own data. Unfortunately, users don’t have that much leverage right now. They can threaten to leave Orkut, but only to move to Friendster? That only trades one closed network for another. My answer is to not leave social software soley in the hands of profit driven businesses. I think as tools like DasBlog and .TEXT evolv, it’s possible to create a social network that is completely based on open standards.

Take a look at RSS Bandit. As an open source RSS aggregator, it has no incentive (nor capability) to keep its data private. Thus it supports exporting feeds as OPML as well as many other standards. Another example is the Jabber protocol. Although it’s not widely adopted, the jabber protocol for instant messaging is another step in the right direction as its communication format is an open standard. Anyone can make a client to the protocol. Contrast this to the IM wars seen between Trillian, MSN, AIM, and Yahoo.

If these tools can gain traction and users start to demand control over their data and leave the closed systems for these open systems, we may see a move by these companies to open their systems in order to maintain a piece of the action. Hopefully these companies will focus on providing the best tools for navigating the various open networks as their point of distinction, rather than holding users data hostage.

comments suggest edit

Code Complete 2 Back in the day when I was a wet behind the ears developer a coworker gave me some sage advice. He told me that if I wanted to become a good developer, I need to read the bible. He was of course referring to Code Complete, the bible of software construction. When I was promoted to manager, I made it required reading for developers. Several years later, I’m reading through the second edition savoring every page like a fine glass of sake.

This time around, I have a lot more experience to provide context to what I’m reading. Around page 270 (Chapter 11 end of section 2) I came across McConnel’s recommendations about the use of constants and it got me thinking about how appropriate that advice is in the world of .NET.

McConnel discusses good and bad names for constants. An example of a poor name for a constant is FIVE. If you needed to change it to another value, it wouldn’t make any sense (const int FIVE = 6;). Instead choose a name that represents the abstract entity the constant represents. For example, CYCLES_NEEDED.

Another bad example he presents is BAKERS_DOZEN which he states would be better named as DONUTS_MAX.

Although I agree with him in principle, his advice might need to be modified in light of how constants are handled in .NET. For example, CYCLES_NEEDED probably shouldn’t be a constant if you think you might change the value later. Secondly, BAKERS_DOZEN might be a fine constant since it’s a value that will never change.

This boils down to a semantic issue. What exactly is a constant? Is it simply a variable with a value set at compile time often used to consolidate a setting in one place? Or is it a variable that holds a value that never changes, not even from build to build?

Well the answer of course is “it depends”. When you look at .NET however, it seems to favor the latter behavior. Suppose you’re building a class library that contains a public constant like so:

public class Library
    public const int CYCLES_NEEDED = 5;

And you build an application that references this assembly and makes use of the constant like so.

class MyApp
    /// The main entry point for the application.
    static void Main(string[] args)
        for(int i = 0; i < Library.CYCLES_NEEDED; i++)
            //Do meaningful work...

If you compile and run this simple program, the console will output the numbers 0 through 4 as you would expect. Yes, this is a complicated program. The result of many years of experience.

Now suppose it’s several weeks later and your boss storms into your office. The company is bleeding cash and he wants you to up the cycles to 6 to increase profit. “Why that’s simple” you say to yourself.

“I’ll just change the value of CYCLES_NEEDED, recompile my library assembly, and deploy the dll without touching the exe so that the downtime is minimized. I’m such a genius!”

So what happens when you do that? You get the same output as before.


When one assembly references a constant in another assembly, the compiler will embed the value of that constant into the assembly. For example, using Reflector to decompile the sophisticated console app presented above, the Main method is compiled as:

private static void Main(string[] args)
    for (int num1 = 0; num1 < 5; num1++)

So as you can see, in order to change the value of the constant, both the library and the consumer of the library have to be recompiled to reflect the change with the constant. If we anticipate that CYCLES_NEEDED might ever change, it would be better to make this a public static read only variable as such:

public class Library
    public static readonly int CYCLES_NEEDED = 5;

Now should you deploy a change to the value of CYCLES_NEEDED, the console application will pick up the change without needing to recompile it. This is especially important in cases where it’s much easier to deploy a dll rather than the entire application.

The only drawback to this approach is that the value needs to be obtained at run-time instead of having the value compiled into the app which is a slight performance hint. Well if you’re worried about this, I’d suggest that you’re suffering from a case of premature optimization and you need to go read Rico’s blog where he’ll tell you to measure measure measure. As McConnel states repeatedly in Code Complete, the greatest impediment to performance is most likely to be the overall architecture of your system and not minor code issues.

Of course, if you have full control over your libraries and clients of the libraries, this may not be as big an issue to you. However, if you have several production systems deployed, it’s nice to apply patches via deploying the least amount of code as possible.