Monday, February 04, 2008

job fair

Last week I was manning the company booth at a job fair in UBC. Here are some FAQs that I developed towards the end of the day:

Q: Is Thomson Financial an insurance company?
A: No.

Q: Is it an investment fund?
A: No.

Q: what is the company like?
A: we like to eat, don't drink a lot and like to work out and/or participate in sports.

Q: Does your company makes DSL Routers?
A: No. And we do not make seatposts, nor stems nor headsets.

Tuesday, December 18, 2007

Stuck

Once in a while a song will get stuck in my head and the music will play inside my head throughout the day. This one has been stuck in there for about a week. The words fit how I feel right now:

Holy darkness, blessed night,
heaven's answer hidden from our sight.
As we await you, O God of silence,
we embrace your holy night.

Sunday, December 02, 2007

good coaches don't yell

My daughter is involved in both soccer and basketball. A few weeks back we were up in SFU playing a Vancouver Whitecaps Club Super Series soccer game. Her team was coached by Steve Kindel. It helped with a quiet environment and a small field. Steve was calm and was always talking to the girls in a speaking tone. Instructions were clear and concise and the points were well taken by the team.

Today my daughter was in a basketball game. I got there just about half time and I realized her opponents were very different from other opponents her team has faced before. Defense was strong, people help each other in double teaming, inbounds play is precise. As I look towards the opponents' bench I saw a familiar face. Again Kevin is calm and collected, not talking much but when he makes a point his team listens.

In contrast, I yell too much. Sometimes the same keywords over and over again to no avail. I will definitely try different strategies to get my point across.

Monday, November 26, 2007

problem of the day

A colleague was trying to write a calculation tool on IIS logs. I recommended him to try the text file driver from Microsoft Jet. He couldn't get it going. The error is:

Cannot Update. Database or object is read-only
Error code is -2147217911 or 0x80040E09

Turns out the file has an extension of ".log". Once I changed it to ".txt" everything works. Can't find an explanation though.

Wednesday, November 21, 2007

gotcha

We got caught in the production system yesterday.

Turns out the problem is that we use System.IO.Path.GetTempFileName() to, well, get a temporary file name to use in a directory. This method, if you read the documentation (which I did not), states that

Creates (emphasis mine) a uniquely named, zero-byte temporary file on disk and returns the full path of that file.

So there is a side-effect by calling this method. But that's not all. In the remarks it said:

The GetTempFileName method will raise an IOException if it is used to create more than 65535 files.

So the production system failed because this method has been called more than 65535 times.

Lessons learned:
(1) RTFM!
(2) the method should be renamed CreateTempFile.

Tuesday, November 13, 2007

indoor trainer

I have always resisted the idea of riding a trainer in the house. It never appeared to be interesting nor effective, until this year.

It started out having a cold winter this January when I have to stop commuting for a few weeks.
In the fall when soccer season starts it is obvious that I will have less time riding in daylight.
Then there was some discount trainer emails flying around.

So being the cheap bastard that I am, instead of buying a new one, I sourced an old noisy trainer for $20 from a friend.

I've started riding on the trainer and it feels different. The 12s or zone 2s seem to be harder on the trainer than on the road. I've tried a small amount of 14s just to see how it feels and it seems harder as well.

On the entertainment front I found some old Japanese animation series that I normally would not watch sitting down. It works and time flys by a bit better than a regular Hollywood movie.

I probably need to set up a fan as I am sweating like a pig.

The lesson learned is that it is not boring when you don't want it to be boring.

Tuesday, October 23, 2007

Another weird problem

This time it is in our development environment. We are integrating with an external report engine and one of my tasks is to look at some performance statistics to see if we need extra hardware to support the report services. The reporting engine is still a 32-bit process so I wrote a bit of code to thunk down from our 64-bit .Net code to 32-bit before calling the reporting service.

After that I hook up our test/performance harness to make the system run 100 reports. That CPU was under siege for well over 10 minutes. After same tuning and monitoring I realized the CPU was not spent in the reporting process (nor our application services for that matter), it was the 64-bit version of rundll32.exe. Out comes the Sysinternals Process viewer. It turns out rundll32 was running:

rundll32.exe ntprint.dll "printer name"

The process is trying to install a printer. I tried it manually and we don't have the printer driver locally. So I guess this process failed repeatedly but kept trying. I looked up some documentation and found the option to turn off the printing portion of the report and everything works like charm. Just another day in the office...

Wednesday, October 03, 2007

tracing in asp.net

I am trying to use the trace.axd viewer to view page traces. I changed the <trace enabled='true' > tag in web.config and all I get was
--------------------------------------------------------------------------------
Server Error in '/xyz' Application.
--------------------------------------------------------------------------------

Trace Error
Description: Trace.axd is not enabled in the configuration file for this application. Note: Trace is never enabled when

Details: To enable trace.axd, please create a tag within the configuration file located in the root directory of the current web application. This tag should then have its "enabled" attribute set to "true".










--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.832; ASP.NET Version:2.0.50727.832
--------------------------------------------------------------------------------

Turns out I have to restart the worker process in order to get it to work. Turning it off has no such problems though.

Interesting piece of news

I just came across this piece of news from the office pantry. What is interesting to me is that the deal is made on the cycling roads rather than on the golf course. Cycling being the new golf in the corporate world someday?

Thursday, September 27, 2007

I blew it!

I put my lunch on a plate, throw it in the microwave and about a minute later, there was a loud crack. The plate was split into two down the middle. First time in my life I have broken a plate like that... how bizarre.

Tuesday, September 18, 2007

Network problem

Ever since late July I have been involved to diagnose a performance problem. After a few weeks of back and forth, dicing through the numbers and adding instrumentation to our code, it boils down to network delays in our .Net remoting calls. At that point I should have throw my hands up and pass the problem to the Network engineers. Unfortunately that person was on vacation and I need to carry on. After a bunch of trials and errors and flipping around options on the network driver level, the problem seems to be related to SNP/TOE. So next time you see a network slowdown, check if SNP/TOE is turned on.

Thursday, September 06, 2007

it might be obvious for others

This is definitely not obvious for me.

I did some performance tuning for our web app and cached some pages a while back. I did this:

<%@ OutputCache Location="Any" Duration="3600" VaryByParam="none"%>

I was going through the IIS logs as see that the page in question is still being requested a lot. Changing it to

<%@ OutputCache Location="Any" Duration="3600" VaryByParam="None"%>

does the trick. It seems implicit and I have definitely seen other people using the lower case version. But the attribute is CASE-SENSITIVE!!!

Monday, August 27, 2007

Things I did on Sunday

Or things I did not do on Sunday.

The first event of the day was the Team Time Trial. Before I go on vacation I was pretty gung-ho on doing this as it sounds like fun. I was asking around to gather interest and form a team. Unfortunately there was not a lot of interest and after my vacation, I lost a lot of fitness and gave the idea up. I then signed up to help out in the race. A few days before the race a couple of cat 4s were looking for a 4th member. I replied, wanting to ride on condition the race director agrees. Then the race director came back saying he needs me to marshal the race, thus making it impossible to race. I have no qualms about the decision and helped the team find a 4th member. This team won the race. I was happy for them and was happy that I didn't drag the team down as I was not in good form.

After the race, a coach hosted a cycling garage sale at his house not far from the race venue. I was carpooling, the driver wanted to drop by so I went to take a look as well. It was like going to a candy store. Wheels, helmets, sun glasses, jerseys, jackets, bags, you name it. Everything useful for a cyclist is available. I picked up some old team jerseys for cheap and bought two nice shimano wheels off him. I had no intention of buying anything but ended up being one of his biggest customers that day.

I was excited and Sunday night started to assemble up the Pinarello. With the extra wheels the work is easier as I can take my time to tune up the bike while riding on the current bike. No single point of failure makes things easier to transition.

The most important lesson for the day: that front and back skewers have different lengths. Pull a rear skewer to fit a rear wheel - it is longer.

All in all a good day.

Thursday, August 23, 2007

a little bit of history

As the Canucks are getting ready to launch their new logo and jersey, let me share a little story about their previous jersey launch.

I joined a small software company in 1997, replacing a guy who went to a big game development studio. It was all in good terms and this developer was in touch with the few of us. A few days before the jersey launch one of my colleagues received a email from this guy with the Canucks whale logo in an attachment. This ex-colleague was not on the hockey team but somehow got hold of the logo. We were admiring the logo and another colleague came by, saw the picture, called his girlfriend and forwarded the email over to her. This person worked for CKVU and it was a matter of minutes when Don grabbed hold of the picture and ran a story at their six o'clock news.

So this little company played a pivotal role in leaking on the logo last time.

Thursday, August 16, 2007

A race

I was finishing my morning ride and spinning to the office when I met Gord on Macdonald and Cornwall. Gord is a strong rider and the president of the cycling club. We exchanged pleasantries and he took off. I continue spinning away but there was always an urge to go after Gord's wheel. I lost sight of him after the uphill section and was surprised to see him in front, slowed by the lights. I almost caught him at Burrard but the light turn green before I could reach him. Gord took off again. This time it is a struggle because of 2 weeks' vacation I lost a lot of fitness. The climb up the Burrard bridge is a challenge when you want to push but your HRM disagrees with you. At the end I decide to go with my HR zone and let him go.

Little did I know that he was caught up in traffic lights again and I caught him around Smithe. This time I have the legs to ride away from him and did not see him again. He looked at me from his Subaru in disgust as I smiled and waved bye bye.

Sunday, August 05, 2007

caught

I know it is inevitable, but the moment of truth is still surprising. My son has been growing up and he has reached the first milestone: we now officially have the same shoe size. I now can test fit shoes for my son!

Tuesday, July 24, 2007

there are racers and there are racers

Last Saturday on the club ride we had time to chat because of a good number of flats along the way. One topic of discussion was wheel weight and how one guy bought a used wheel with a Powertap. The rear wheel weighs 1700 grams alone and he rebuilt the Powertap with a lighter rim and it saved him 200 grams.

Then yesterday during the weekly criterium race I can't help but notice one guy on a bike that squeals. After the race I was asking him whether he notices the noise from his bike. He said he ignores the noise. Another guy rolled by and pointed out that he spokes are loose and rubbing.

It just surprises me how extreme people are: either they care about every gram they carry or they are totally insensitive about savings to make their bike go faster. Go figure.

Thursday, July 05, 2007

How odd

We were playing a card game at home - a variation of slap jack where we call the cards from Ace to King and slap when the card matches the call. I have played this game lots of times and for the first time in my life, the whole deck was dealt and non of the cards matched! So what is the probability of a set of cards that does not match their ordinal position at all? I have to think about calculating that...

Tuesday, June 12, 2007

surprise at home

As I was riding home last night, I heard some unfamiliar sound as I was rolling into the driveway: it was the sound of drums and cymbals. From the direction of the sound, my neighbours over on that side have no young kids, and the drum sound was from a beginner.

So as I opened the door, the drum side was coming from within! My 12 year old son and his two buddies was having a jam session! Their school has a talent show in about 2 weeks and they were getting together to practice. Being first timers the singer brought the lyrics, about 2 bars of music for one hand and the drummer brought his (rental) drum set. My son was struggling to play the few notes the singer brought along. So my music and superhero instincts kick in, sort them out. Reverse engineer the song for the basic chords, give my son a basic pattern to play, settle them in a practice tempo, and about 2 hours later they got the basic pattern going. They will be going into an audition today so let's see what happens.

Several interesting observations:
- figuring out what chords to use is way easier than it was when I was in highschool. An mp3 and the slider in the computer makes life soooo easy.
- the band is a bunch of piano players venturing out to different instruments. Just like when I was in my band.
- 12 year old kids these days know what they want to do. I would say they are way smarter than when I was 12.

I had fun and saw them had fun too.

Monday, June 04, 2007

Road Race

I have taken a full Cycling BC race license this year. So I thought it might be a good idea to do some races that require a full license. This being the closest to home and the timing is favourable so I signed up and went for it yesterday.

Here are the positives:
I had fun.
I finished the race.
I contributed - I was telling people how to ride paceline to go faster.

I need to work on these...
Climb faster.
Turns
Positioning myself in the pack.

I was extremely tired after the race but felt much better towards the end of the day. I was going through flickr trying to find photos of myself but couldn't find anything...

Anyways more training. Onwards and Upwards.
 
Listed on BlogShares