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.
Showing posts with label work. Show all posts
Showing posts with label work. Show all posts
Monday, February 04, 2008
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.
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, 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...
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...
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!!!
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!!!
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.
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.
Tuesday, May 15, 2007
weird side effect
Tuesday, January 30, 2007
one thing lead to another to a third
About 10 years I was assigned to go on my first business trip in Canada. It was to install, customize and train our new client in Aurora Ontario (yes - the what's-her-name MP was the CEO then).
So the first morning me and my partner were having breakfast and we were reading the paper. This was the first time I read the Globe and Mail and I spent the most time on the obituaries section. I never read these columns but somehow the Globe got my attention. From then on whenever I get to flip open the Globe I read that section first.
With all the talks about making JP2 a saint here is a guy that is probably more deserved to be one. Not only is he action oriented, talks against injustice, he is also very honest about himself and his mistakes - something not even the beloved JP2 was able to do...
Too bad the article is pay only - here is another one about this priest that is free.
So the first morning me and my partner were having breakfast and we were reading the paper. This was the first time I read the Globe and Mail and I spent the most time on the obituaries section. I never read these columns but somehow the Globe got my attention. From then on whenever I get to flip open the Globe I read that section first.
With all the talks about making JP2 a saint here is a guy that is probably more deserved to be one. Not only is he action oriented, talks against injustice, he is also very honest about himself and his mistakes - something not even the beloved JP2 was able to do...
Too bad the article is pay only - here is another one about this priest that is free.
Subscribe to:
Posts (Atom)