Siebe 的个人资料Siebe Tolsma日志列表留言簿 工具 帮助

TV series

Meh. I've run out of TV series, again. Right now I watch the following series (in no particular order):
 
Family Guy (won't be aired again until March 11)
The Dead Zone (won't be aired again until Summer 2007)
The 4400 (won't be aired again until Summer 2007)
Scrubs
Supernatural (won't be aired again until March 15)
Lost
 
So this week only a new episode of Lost and Scrubs will be aired. Also, I've got House queued. I've seen one episode of House once, and it seemed quite entertaining, I hope it won't turn out to be too boring. Any other TV series I should watch? :-)

Definitive: New internship at Microsoft

Well, I just received an e-mail with my finalized offer for another internship at Microsoft, starting 25th of June. I'm very excited of course, and I've already signed and submitted it. The team I will be joining is the same as last year, Messenger & Storage Services, which is basically the team which takes care of the Windows Live Messenger servers and ABCH (which is the place where your address book is being kept).
 
I will most likely continue the work I did there last summer. Last year I was mainly working on my project from a users point of view, while next summer will most likely be aimed towards other developers (not that developers aren't consumers, but you get the idea I hope).
 
Unfortunatly I don't think I am in a position right now where I can disclose what I will be working on (or have been working on, for that matter). Just trust me when I say, it's going to be awesome. :-)
 
Now I just need to dig up all my pay stubs, W2 forms, my passport and visa papers, scan them and turn them over to recruiting so they can start their background check (sounds kinda... spooky, doesn't it?). After that it's off to Amsterdam to get a new visa, and after that I'll have to decide on some relocation options. Ahh, paperwork.. fun!

Holy BSOD Batman!

I just had my very first BSOD on Vista. Yay!

The error code in question is PAGE_FAULT_IN_NONPAGED_AREA, and probably has something to do with drivers. I wonder if it has anything to do with the drivers I recently installed for my special keyboard functions. Hmm.

Sweet: Hooked on LINQ

Go check out Hooked on LINQ, a Wiki dedicated to LINQ (Language Integrated Query).

Is there a try/catch in Perl?

Yes, there is. I figured this out a few years ago when I stated using Perl for BOT2K3. Someone asked me the same question again a week or so ago, and I was suprised how little websites mentioned the following construct as a good substitute for try/catch (a concept which can be found in many languages, including C#, Java, and even Javascript).
 
eval
{
    # try
};
if($@)
{
    # catch
}
 
Unfortunately there is no such thing as "finally" in Perl. In the example above, $@ is a special variable which will contain the error that was thrown. You can "throw" your own exceptions by using the die() function. Any script which not catches it will crash, if they wrap your code in something like your code above, however, they will catch the exception and can process it.
 
Also, for those who will wonder, "isn't eval a function I can use to execute arbitrary Perl code?!" -- No, not necessarily. In scalar context it is, however when using it in block context, nothing dark will happen, and no arbitrary code inside strings etc., will be run.
 
Of course, Perl being Perl, I'm sure there is a way for code inside eval{} to still make your program die() by using a ton of black magic.. But that's not the point, is it? :-)
 
Edit: Thanks to Randal for spotting the missing semi-colon. Also see my reply to his comments.

Back to Classic

So I've had Vista for a while now. The glass (aero) theme is pretty cool, but it is also pretty intensive on my graphics card (and memory, too). My laptop is pretty beefy (1.6Ghz Duo Core 2, 1GB RAM), too. So I figured I'd try to switch to the classic theme (I always had classic on XP, as well)... and, well, wow. Vista runs so much faster for me when not using the whole aero theme. Memory usage has dropped as well. The UI also seems more responsive.
 
From now on it's back to classic. Besides, the whole theme thing is getting boring after a week or two anyway.

Saint's Row: Earn money (relatively) quick

Go to Nob Hill and finish all eight levels of the Mayhem activity there. After that, keep playing level 8. Around Nob Hill there is a lot of stuff to destroy, such as fences, sports cars, lamp posts, benches, etc. Using the RPG (if you don't get the RPG, simply use down-down to exit the activity and restart it) shoot at them in quick succession. You'll get a high combo in no time, and the $800K is very easy to reach. Every time you finish level 8 you get $5000. Easy money (oh and, remember to not blow yourself up!)

Doing It Right: How would you do Address Book support?

So (as I'm pretty sure I've mentioned here before) I'm working on a generic library for Windows Live Messenger, that can be used to design clients or bots. Although the library probably won't be released (there are too many legal issues), it will be part of BOT2K3 (actually, BOT2K3 will depend upon the library for the whole communication with the Messenger servers and ABCH).
 
At the moment I am working on finalizing address book support. After that comes conversations (Mixer, Yahoo! and Pager), P2P, old-school filter transfers, random features like sending invitations, and of course support for sending OIMs. I've already done the whole login procedure, challenges, pings, updating presence and settings, etc.
 
One of the tricky things however is that (unlike some libraries *cough*Steve*cough*) mine also has ABCH support built in. This basically means that the library abstracts everything away (think methods like UnblockContact, AddContact, BlockContact, DeleteContact) and does all the work of adding/deleting contacts/members from the address book using ABCH SOAP. At the moment these methods don't do Pending List and Reverse List magic.. and that's where the question How would you do it? kicks in.
 
I could add support for PL/RL in the beforementioned methods. If the contact is on a Pending List, the library can delete the contact from the PL and add them to the RL. However, if the contact is on neither (PL, RL), it shouldn't add the contact to the RL automatically, because apparently the contact doesn't have us added to their FL.
 
However, in this scheme, how would BOTs delete contacts from the PL and add them to the RL to tell ABCH that they've acknowledged the contacts but don't want to do anything with them (ie. don't allow the contact) -- Remember the PL has a limit of only 40 contacts! I could add methods like DeletePendingContact or MarkContact, but those are a bit too.. specific, plus it kills the abstract setup of the library (i.e. the user of the library shouldn't have to know MSNP inside out).
 
Yeah, I know there will probably no replies to this post. It's just a shout out, to see if there is anyone with some good ideas about this.

Observations about Vista

So I have installed Vista on my parents PC, and figured it was time to do the same on my laptop (I simply couldn't refuse the sticker on my laptop that said "Vista ready"). It works really well, better than I thought it would have, and as a bonus I still haven't switched back to the classic theme (most likely because the Start menu on Vista classic is butt ugly).
 
The first thing I noticed is that when not running Total Commander, my favorite "explorer" tool, in administrator mode it does not function properly (because it allows you to delete files from all over the place, including "protected" areas). I have set it to run in elevated privileges mode now, but I dislike how I cannot tell Vista to just trust the application (and thus I have to click "Continue" every time I start the application). Other than this I don't find the new UAC very disturbing.
 
The second thing is the search box in the start menu. It's awesome. I cannot believe I lived without such a feature for so long. Now, whenever I need to find something in the start menu I simply start typing away and hit enter (most of the times what I want is result #1). This definitely saves a lot of time searching those darn menus.
 
The minimize/restore/close buttons are still ugly when the window is maximized. They just don't cut it. Apparently it should look "neat", or something, but the borders don't look pretty, as if done with some cheap tool like Paint. Also, the should have given the titlebar a bit more space, it's too small at the moment (same goes for the menu bars where "File" etc. reside).
 
Also, it does not show how long it's going to take until the PC goes into hibernation mode anymore. It's just a black screen. This is a definitive customer experience killer. I want to know how long I need to wait (heck, I don't even need to see the time, just how far along it is) before I can put my laptop in my bag.
 
I love virtual folders. I have reassigned my Downloads folder right away to my regular folder on a different partition, so now I won't have to think about browsing to that particular folder anymore (because almost all applications default to the Downloads folder for downloads). This is also handy for my parents, where I put their documents on another partition (a recently recovered, empty, 80GB hard disk, versus a 20GB HDD with Vista on it ...)... and I like how they dropped the "My" prefixes. Make much more sense.
 
Oh, and, awesome - Chess!

There you have it

I am an arms dealer
Fitting you with weapons in the form of words
And don't really care which side wins
As long as the room keeps singing
That's just the business I'm in