comments suggest edit

My knee is now to the point that I’m ready to play in a local soccer league. My first game is this Sunday in Van Nuys. Wish me luck and no injuries. I’ve been watching World Cup Highlights so I’m ready to samba the beautiful game.

comments suggest edit

So Twiggy’s a fast learner. She now knows that the proper place to do her thing is outside and not in the house. She even knows to whine if she needs to go so. The vet removed her stitches and she has an appointment to get spayed soon. We’re a little worried about it as we hear it can be a difficult operation, but I’m sure she’ll do fine.

\ Twiggy in her favorite spot

She’s also a friendly dog. She scared this poor chihauha puppy by trying to run up to it and greet it. The only time Twiggy barks is when she can hear a dog nearby and wants to play.

\ Twiggy on alert for terrorists while the shadows approach.

We’re waiting for some sweaters and a parka we ordered for her. She’s all skin and bones and we hope to take her along when we visit my folks in Alaska for Christmas.

\ Giving us the evil eye.

In any case, we’re doing all we can to provide her with a good home and she seems happy for it. She never comes to me when I call her to, but the instant I sit on a couch, she shows us her true speed with a mad dash and a hop by my side.

\ With her mommy.

The next step for Twiggy is to start her off on some elementary topics in OO design and hopefully progress to an understanding of how to build enterprise systems using the .NET platform. The expense is getting to the point that she needs to earn her keep. Besides, I hope this to be a technical blog and she should be providing content. Her first assignment is to provide an overview of generics in .NET 2.0. Good girl! Good girl!

code comments suggest edit

When conducting phone interviews, I like to ask a few technical questions just to make sure that a candidate isn’t trying to blow smoke up my… well we don’t need to be overly illustrative do we?

I absolutely do not intend the questions to be nitpicky. Nor do I feel they are totally representative of an interviewee’s depth of knowledge. I save the probing questions for an in-person interview.

However, if a candidate claims to have one or two years experience working with ASP.NET, there are some basic facts and principles that a mid-level developer should know.

For example, please compare and contrast the result when calling Response.Redirect and Server.Transfer from within a Page class. It boggles my mind that most candidates I talked to couldn’t answer this question. These methods are used quite commonly and the differences are important.

Sure they both present the user with the contents of a new page. But how they do it has ramifications for you web app. With a call to Response.Redirect, the server basically sends an HTTP header back to the client browser with an HTTP status code stating that the object has moved along with the new location to find it.

See the snippet of an example HTTP header below when Response.Redirect("somewhere/newlocation.aspx") is called.

HTTP/1.1 302 Object movedServer: Microsoft-IIS/5.0Location: somewhere/newlocation.aspx

This tells the browser that the requested resource (page) can be found at a new location, namely somewhere/newlocation.aspx. The browser then initiates another request (assuming it supports redirects) to somewhere/newlocation.aspx loading its contents in the browser. This results in two requests by the browser.

One ramification of this is that if the initial request was a form POST, the posted form fields are not available in the second request. Likewise query string parameters are unavailable unless the page that issues the redirect explicitly tacks them on. Also, since the browser initiates the second request, it is possible to redirect to a page on an external site.

In contrast, Server.Transfer transfers execution from the first page to the second page on the server. As far as the browser client is concerned, it made one request and the initial page is the one responding with content (this point often confuses new ASP.NET developers as the browser still shows the URL of the initial page even though the content is generated by the second page. It all makes sense when you understand what is happening.).

The benefit of this approach is one less round trip to the server from the client browser. Also, any posted form variables and query string parameters are available to the second page as well (however these can be cleared by passing in false for the second parameter).

One thing to be aware of is that if the first page wrote something to the Response buffer and you don’t clear it, then any output from the second page will be appended to the output of the first. This is often the cause of a weird behavior where it seems that a page is returning two different pages. Also, since the transfer happens on the server, you cannot transfer a request to an external site.

You’ve been warned. Make sure you wow that next interviewer with your knowledge of ASP.NET.

For extra points, explain how ASP.NET sometimes returns a “View State Is Invalid” error message when you call Server.Transfer(“URL”, true). The explanation is here.

Also, note that the “Response” and “Server” objects I refer to are properties of the System.Web.UI.Page class. The types for these objects are System.Web.HttpRequest and System.Web.HttpServerUtility respectively.

If you like understanding how things work under the hood, I highly recommend Fritz Onion’s book, Essential ASP.NET 2.0. It is personally my favorite book on ASP.NET as it covers only what is essential, but at a deep enough level to really get something out of it.

His 2.0 book is actually a continuation on his 1.0 book, Essential ASP.NET With Examples in C#.

comments suggest edit

Akumi’s mother is visiting us from Tokyo for a couple weeks. I have to say, if she decided she wanted to move in, I would not complain.

The other day she cooked us a fantastic Japanese dinner, with a couple dishes I had never tried before. When I got home yesterday, she had cleaned our back patio and fed the dog.

The only problem is that she doesn’t speak much English (though she understands more than she lets on) and I speak even less Japanese. So we don’t spend a lot of time in conversation, but she seems to enjoy my style of physical comedy (intentional or not).

comments suggest edit

With my brother-in-law in town from Tokyo, it is important that we survey the local club scene. Serious business. The past two Saturdays we went out to see different DJs at Avalon. I’m not sure I want to go back any time soon.

One thing that bothers me is the price of a drink at a club. I expect a mark up, but $10 for a few squirts of alcohol in a plastic cup!? Give me a break! Those prices are insane and it literally sickened me. After my fourth drink.

comments suggest edit

This is a hilarious video from the Conan O’Brien show.

What happens when you need a personal touch to your computer problem and your tech support department is in India? Most people would just call a tech support hotline, but not comedy writer Andy Blitz. He decides to fly to India with his computer and get it fixed in person.

Watch and find out.

comments suggest edit

Ok, I just have to take a moment to rant a bit. We’re currently looking for some mid-level developers as well as a System Administrator. Naturally we posted a job description on Dice.com and craigslist.org. In general I find the best candidates through referral, but occasionaly I’ll get a few good ones through a job site.

If the crop of resumes and cover letters I received is a fair indication of the quality of developer job applicants out there (and I hope and believe this is not the case), then either the U.S. developer population is nearly fully employed (in which case I’m cool), or outsourcing to offshore countries is starting to make a lot of sense.

So let’s start of with an episode of:

Haacked.com’s 4 Tips For Job Seekers

1. Your cover letter and resume should be an example of the best work you can do. \ Initially, I have absolutely nothing to judge you by except your resume and cover letter. So take the time to get it right. If you’re applying to be a system administrator and you spell virus as viurs, I have to wonder if you’ll take the same care with our production servers.

If you are a developer, don’t tell me I spend 5 years working ASP.NET sites. Try to squeeze a preposition in there. I get absolutely giddy with joy when I receive a cover letter that is concise and well written. Compared to the other gruft I get, a well written cover letter is page gripper. I’ll take it to the beach and read it over and over.

2. Learn to use a spell-checker and have someone else proof-read your resume. \ As a developer, I understand that a spell checker chokes on the line where you list your skills as

Expert in C#/C++/C/PERL/J++/WMD/ASP.NET/Stamp Collecting/Java/J2EE/Oracle/Cisco/SQL/Table tennis/Chess/Jai-Alai/Math/

But you’re supposed to be a problem solver. Figure it out. If your resume has obvious spelling and grammar errors, it reflects poorly on yourself (see tip #1).

3. Provide working and professional contact info\ I kid you not, I received a resume with the email address WatchYoBack@[Domain Witheld].com.

Trust me, I’ll do exactly that by not calling you. In this particular situation I didn’t notice the email address and tried to call the applicant. Both his cell number and land line were disconnected. Apparently you didn’t watch yo phone bills.

I can’t imagine what would compel you to send me a resume with phone numbers that don’t work.

And why use such an email address when you can create one for free. It doesn’t have to be your name. It can be something obtuse or abstract. But I’d recommend against threatening people to watch their back in your email.

Another applicant had an email address where the domain name is slang for sexual intercourse. Something to do with uglies. That one I found funny, but would not recommend it as not everyone shares my sense of humor.

4. Lastly, do provide an updated resume \ I was speaking to one candidate and he started talking about recent employers that I could not find on his resume. His last job listed ended in 2003. When I asked about this discrepancy, he apologized and said that he hasn’t updated his resume in a while. That’s odd I thought, I downloaded this resume off his website like he asked me to. There were two links, one for a resume as a Word document and one for a resume as a PDF.

Apparently neither of those resumes were updated. I was supposed to click on a tab of his website with the word experience and look at his HTML formatted resume. Are you trying NOT to find a job? Do us all a favor, send a nicely formatted resume when you apply for the job, or don’t apply at all.


That’s it. Only four. I don’t have time to tell you how to look for a job. Besides, I think Joel Spolsky did a fine job in this article. You might be quite qualified, but you’ve disqualified yourself by using poor English, bad spelling, and general inability to communicate well. Undoubtedly I’m preaching to the choir. But if you know people looking for a job, remind them of these four tips.

And with that, I end my rant. Have a nice weekend everybody.

personal comments suggest edit

My buddy Ed posted some pics from Burning Man this year. This pedal powered Ferris wheel particularly caught my eye. How cool is that!

Ferris Wheel \ When you can’t afford a hamster.

I wish I could have been there to try it. Visit Ed’s blog to see some more great pics.

NOTE: He’s got one of them stupid Xanga blogs so I can’t link directly to the entry. You might have to hit the “Next 5” link a few times if you see this much later. The pics were taken on September 29.

comments suggest edit

Think back to the last week or month of IM conversations you’ve had. Perhaps you have archiving on and can actually read them. Now, I want you to take a megaphone and broadcast those conversations while at the same time emailing them to everyone in your address book. Don’t forget to print a copy for your coworkers and boss. Quick poll of hands, who’s willing to do this?

Except for you exhibitionists out there, there’s probably not too many hands in the air (you can put them down now). What not many people realize (and for you techies, tell your non-tech friends) is that using an IM tool is equivalent to broadcasting your conversations. Now, not every company is listening to those conversations, but all it takes is a widely available network sniffer and an inclination.

IM clients send messages in clear text over the network. So if big brother feels like listening in, no problem. Some companies employ tools for archiving IM conversations by their employees and analyzing them to see if corporate secrets are being leaked.

If you’re going to talk about sensitive topics, I’d recommend using an IM client that encrypts communications. The Jabber protocol provides encrypted communications. The client I’m using is Pandion (haacked@pandion.be).

You’re employer does NOT need to know about that suspicious rash you acquired after your business trip to Asia.

comments suggest edit

You gotta love the Japanese for making such interesting products. The company that makes this disembodied arm pillow has sold 1000 units since last December. It’s actually genius if you think about it.

Disembodied Arm \ Aiko’s pillow attempts to cop a feel

My arm always falls painfully asleep when my wife lays on it like in the picture. I could get one of these and reclaim my arm. Just as long as the pillow doesn’t try to make any untoward moves.

comments suggest edit

Twiggy is our new Italian Greyhound (not to be confused with a normal greyhound). She’s around two years old (we don’t know for sure) and she has a major case of Attention Deficit Disorder. Fully grown, she’s only ten pounds.

Twiggy Hello, my name is Twiggy

We’re working around the clock to get her house trained. Apparently her previous owners didn’t know how to take good care of her. She pretty much won’t do her thing outdoors, prefering the comfort of the indoor accomodations. Also, if you look closely, you’ll see she has stitches above one eye. She used to live in a yard with a terrier and a Rotweiler. Rotweilers are playful.

Overbite\ I have a major overbite so my tongue hangs out a bit.

Despite the accident with the Rotweiler, she still is very friendly to other dogs and people, and has an insatiable curiosity.

Adoption Day\ This is my mom Akumi on the day I was adopted

We have an excercise pen for her as IGs are not supposed to be left unattended in the house. They are superb climbers, and even better at falling and breaking a leg. When I take her for a walk, she tries to get into everything.

\ I like to sniff everything.

Well thanks for saying hi to the newest member of our family.

tech comments suggest edit

Yesterday was a crazy day. Our production site runs on an older Dell disk array with three logical volumes each set up in a RAID 1+0 configuration. For you non geeks out there, RAID stands for Redundant Array of Independent Disks (though some claim the I stands for Inexpensive, I take no stand on this issue).

Data Center \ The matrix has you.

The point of a RAID 1+0 array is to provide high performance fault tolerance. Unfortunately, it seems that when one disk goes down in our array, others follow in its wake. Yesterday we had three physical disks report failures and one reported that it would probably fail in the near future. I appreciate the one disk giving us a heads up.

“Umm yeah, those other guys failed you. I think I’ll hum along a bit and fail…say…sixish?”

Luckily for us, one of the failures was a misreport and we were able to immediately bring it online. The other two failures were on separate volumes, thus we could rebuild each of the drives. My coworker and I headed over to the data center to meet with a network engineer from our former parent company to take care of the situation.

Data Center Networking \ Networking cables galore.

The entrance to the data center has one of them double lock chambers. Swiping a card provides access into the vertical glass tube. At this point you half expect all the air to be sucked out like a physics experiment gone awry. Once the door closes behind you, you swipe the card again in order to exit the tube on the opposite side. It was reminiscent of every episode of ALIAS where Sydney has to infiltrate a data center, only there were no paramilitary guards with machine guns.

The inside was volumnious, with several cages here and there humming with the sound of murmuring server racks. It sort of reminded me of the Core in the Matrix series. Posted prominently in the entrance was a sign forbidding the use of photographic equipment, so we had to place our cameras back in the car. However, my coworker had a phone cam with him and took a couple of pics of our servers. Don’t tell anyone.

comments suggest edit

A little while ago I said we’ve decided to adopt a doggy. Well we did it. On Saturday we got a call that an Italian Greyhound was in need of a home immediately. So we drove out to Visalia (about three hours north of L.A. a little past Bakersfield) and picked her up.

Her name is Twiggy (after the 60s fashion icon) and I’ll post some photos later. Needless to say, we’re very tired as she is not yet house trained and seems to have lost her natural instinct NOT to soil her den.

comments suggest edit

I’m conducting some phone interviews today for a C++ contractor/employee. Man it’s been a long time since I’ve conducted interviews. I wish I kept a list of my favorite questions to ask.

Maybe I’ll start off with:

  • What is your age?
  • What is your sexual orientation?
  • What is your race?
  • Who are you going to vote for?
  • Are you married or pregnant?
  • What’s your religion?
  • How fat are you?
  • Would you be willing to line my pocket for this job?

Oh wait. Those are the questions that are ILLEGAL to ask. Doh!

Perhaps I should just re-read The Guerilla Guide to Interviewing.

comments suggest edit

My wife is in the fashion industry and as much as I love her dearly, I’ll never understand the industry. At least she’s a pattern maker and not a designer, so she has no responsibility for this garbage.

Check out what all the fellas will be wearing at the next PDC.

fashion

Or is that a woman?

comments suggest edit

RSS Bandit Developer Torsten points out a very long and arduous process for enabling IPv6 in your .NET application. Here is the extremely tedious set of instructions.

A while ago one user complains about RSS Bandit was not running with installed/configured IPv6 on a windows machine. Today I got the answer (by mail from Frank Fischer, Microsoft Germany - thanks again!): open machine.config located at C:\Windows\Microsoft.NET\Framework\v1.1.xxxx\CONFIG and change the XML tag:

<!-- <ipv6 enabled="false" /> -->

to:

<ipv6 enabled="true" />

This change allows the framework to parse and resolve IPv6 addresses. So any .NET application will be IPv6 enabled, not only RSS Bandit (but also ;-)

[Via torsten’s .NET blog]

Gee, that seems like a lot of work to me. I’m going to reward myself with a beer. Thanks Torsten!

comments suggest edit

My office is 17 floors up with a nice view towards the Pacific. The ocean is a few miles away, so all I see is a sliver of blue on a clear day.

This is not one of those days.

It looks like the sky just puked a fuzzy brownish gray blanket over the ocean. I’m holding my breath when I go outside today.

comments suggest edit

I doubt these guys went out of business, but they’re site has been unavailable since last evening. Perhaps someone bumped into the power switch?

UPDATE: Niels reports it is back up and indeed it is. Justin Pitts mentioned it was up for him which indicates it was a routing issue. I performed a Tracert and found that it died when it reached Alter.net. I was just making sure it wasn’t a bigger outage over here.

comments suggest edit

MCSD Logo

I obtained this certification several years ago and pretty much forgot about it. It really hasn’t done me any good. The only benefit at the time was that it helped my former employer obtain Gold status as a Microsoft Solution Provider. However, I’m still waiting to see the real benefits of that status for them.

The benefit of any certification is fully dependent on the external perception of the certification and how well it represents skill and expertise. A PhD for example is generally highly regarded.

As it currently stands, the MCSD certification does not carry such respect. It seems this is due to Microsoft doing little to promote it. The status of a certification goes hand in hand with the people who carry the certification. When you see a lot of very talented smart people carrying a certification they are proud of, you strive for that certification.

Take a moment to think of the who’s who of .NET development. How many have MCSDs? My guess is not many. I can’t be sure, but I doubt that Don Box, Jeffrey Richter, Ian Griffiths, Chris Sells, etc… have this or even care for this certification. Otherwise they’d display it proudly just as Mr. Sells displays his IEEE member in good standing logo on his blog.

In any case, I’ll display it anyways just in case it bears weight in the future. At the very least, I like the color scheme.

comments suggest edit

A while ago I wrote up a post on Asynchronous Sockets. Ian was kind enough to send me an email correcting a few niggles with it and in an email exchange, cleared up a few other misconceptions about how sockets (and other IO operations for that matter) really work.

Well now he posts a great article that points out that a program doesn’t always use a thread to perform some work.

There seems to be a popular notion that in order for a program to perform an operation, it must have a thread with which to do it. This is not always the case. Often, the only points at which you need a thread are at the start and end of the operation….

This is recommended reading.

Read the rest here