shahine.com/omar/

homepage | Send mail to the author(s) contact

yet another Microsoft blogger

 Wednesday, September 29, 2004

Bless Starbucks

So here I am sitting in a Starbucks in Madrid, Spain. I'm here for a few days on business and am staying at The Palace Hotel (Westin) which is quite a swanky hotel. However, it is lacking broadband in all the rooms, and as luck would have it, they are fully booked, and I got a room lacking broadband. This is enough to place the hotel on my black list. Even worse is that I tried dialup yesterday, got carried away (was online for about 3-4 hours) and saw that I racked up 80 euros in local phone charges. This was all to avoid going to the lobby and forking over 30 euros a day for wifi.

On a hunch, I came down to the starbucks today with my laptop and found WiFi. I can't even tell you the last time I used dial-up. It's torture.

Anyway, Madrid is a cool place. The weather is beautiful right now. I'll be doing some sight seeing this afternoon, probably at the Prado.

Posted Wednesday, September 29, 2004    Permalink    Comments [4]  View blog reactions

 

 Sunday, September 19, 2004

.NET Compact Framework Essentials

One very frustrating thing about programming with the .NET Compact Framework is that it's quite limited in how much integration capabilities you have with the device. It's very good if you build a little application that doesn't need to hook into the device, or hook into Outlook, but as soon as you want to do something like that you have to use p/invoke which involves hunting down the signatures, and testing code that I don't really understand. Luckily p/invoke.net has many of them already.

However, there are two really good options that I recently discovered.

OpenNETCF.org

This set of .NET assemblies helps you overcome a plethora of shortcomings of the compact framework. The folks who developed this did an amazing job providing excellent functionality to .NET developers. Some of my favorites namespaces are OpenNETCF.Win32 which wraps most of the p/invoke functions you'll need as well as OpenNETCF.Windows.Forms which provides some very nice Controls that .NET doesn't provide like Groupbox, NotifyIcon, Battery indicators and so on.

PocketOutlook In The Hand 

This is a superb managed Outlook Object model. Today, it's impossible to talk to Outlook on a Pocket PC using p/invoke because the framework does not allow you to call COM objects. The object model is mostly identical to the OM of it's big brother, Outlook XP/2003.

I hear that 2.0 of the framework allows you to call COM objects, but until then, avoid writing C code and head on over to InTheHand to get Pocket Outlook. It's not free, but there is a trial you can play with, and it's priced modestly. One caveat though. You need to be very careful and make sure to dispose all your objects. I didn't do this and ended up with a very sad Pocket PC after running my app for a few hours.

 

Posted Sunday, September 19, 2004    Permalink    Comments [0]  View blog reactions

 

 Saturday, September 18, 2004

KlipFolio

I've been playing around with a program called KlipFolio for a few weeks now. Not to long ago they released a new version, 2.6, and added a Hotmail Klip! This is a really cool way to keep on top of your Hotmail, w/o having to run a mail client. It allows you to view a preview of the message body, as well as delete messages. At work I keep KlipFolio running on my second monitor, along with a few other small utility windows (more about those later).

I also like to use the Stock, Weather, C|Net and FeedViewer (for RSS feeds). The product is free to download.

Posted Sunday, September 19, 2004    Permalink    Comments [1]  View blog reactions

 

RAW Windows Shell Integration

A few months ago I posted about a little piece of software that let you view Digital RAW thumbnails in the Windows XP Explorer Shell. Well, I found something even better. DPMagic has some really well integrated software that lets you:

  • View Thumbnails in the Shell
  • View a full size image preview in the Shell Picture Viewer
  • View a slideshow of the images
  • View Properties of the image, including the Histogram

You can see screenshots of all the features here.

There is a free version of the product, as well as a pay version that has all the features mentioned above.

Posted Saturday, September 18, 2004    Permalink    Comments [1]  View blog reactions

 

 Sunday, September 12, 2004

Audiovox 4100 PocketPC Phone

Well, it's been a year now since I've purchased a new phone, and well, I've been getting gear anxiety. A few co-workers in the office have the new iPaq h6315 and the Samsung SPH-i700 device. However, they are both to large for my tastes. AT&T has been selling the Audiovox 4100 for a while, and I've been holding out for the Motorola MPX which was delayed yet again. When the MPX does come out, if it's not outrageously expensive I'll buy it and sell my Audiovox.

So, I went down to AT&T and got a Audiovox 4100. I have to say, this device rocks. Sure it doesn't have Wifi or bluetooth, but with my all you can eat GPRS data plan it's not such a big deal. I've owned 2 Pocket PC devices in the past and I'm glad to be back in the Pocket PC camp, and out of the Smartphone camp. There are a number of reasons that I think the PPC device is a better fit for me. Among them are:

  • I can use a stylus to read/reply to mail (I'd rather have a thumb keyboard like the Treo 600, but no ppc phone devices have this yet).
  • Ditto for SMS.
  • T9 Input sucks. I'd rather use my fingers and a soft keyboard.
  • Higher resolution than Smartphone
  • Pocket PC Phone Edition 2003 which is 100% better than Smartphone 2002
  • Can run AvantGo and Vindigo which are killer apps IMHO. I've missed Vindigo for so long.
  • GPS integration via Microsoft Streets and Trips 2005.

Personally, I loved my Smartphone, but realistically it was a read only device. Also, the Tasks feature was fairly useless. The Audiovox device is small, and as a result fits fine in my pocket (I will not purchase any PDA/Smartphone device that will not fit in my jeans).

Finally, having just discovered Microsoft Voice Command, I can't imagine not living with it. Voice Command is like your own personal assistant. This is hands on one of the best Microsoft products out there. I installed it this morning, and activated voice and it has recognized 100% of my commands such as:

  • Call < Contact >
  • Dial < Number >
  • What are my appointments today?

This is truly an innovative, compelling product that really showcases the power of the platform. Check out the flash demo.

Posted Sunday, September 12, 2004    Permalink    Comments [2]  View blog reactions

 

 Sunday, September 05, 2004

dasBlog Security Update

If you are running dasBlog, make sure you install the security fix available for all released versions of dasBlog.

http://www.dasblog.net/documentation/PermaLink.aspx?guid=92ad6eb7-ee40-4c89-9f1e-a07c83859e63

Posted Sunday, September 05, 2004    Permalink    Comments [0]  View blog reactions

 

JimmyG on the cover of a Magazine

Well, it's not the Sports Illustrated Swimsuit Issue, but heck, I just saw this via Dennis!

http://www.itp.com/magazines/current.php?magid=7

Posted Sunday, September 05, 2004    Permalink    Comments [0]  View blog reactions

 

 Friday, September 03, 2004

On being a Resident

I'm sure not everyone knows this, but my wife is a Resident in Obstetrics and Gynecology at UCSF. We were both pre-med in college, and well, one of us went to medical school and the other did not. For me it was a decision that was made for me, I did not get in. However, this was the best thing that ever happened to me as I would be an absolutely shitty doctor. I was in it for the wrong reasons, and instead I have a job that I cherish. I consider myself very fortunate that I love to go to work.

Now about Residency. I cannot begin to understand how difficult this is. My wife often tries to explain to me some of the emotions she experiences, and the work she does but she knows I don't really have a way of understanding. I do have an enormous amount of respect for her, and her passion for taking care of people. Let’s face it; no one goes into Medicine for the money any more.

A lot of people are shocked by how the Residency system works in this country and a lot of people just don’t know. I personally believe that there is something very wrong about it. What I do tell people is that the reason we have the best healthcare system in the world is because countless people have worked long hours with very little pay and cared tirelessly for the homeless, the uninsured, the wealthy, citizen or non citizen, whomever. They never ask who you are or where you are from, and how you are paying. They do one thing really, and that’s to understand your problems and try and help you within the confines of the system. My wife never complains about the crap pay, or the hours, or the fact that we have one weekend a month to hang out. I find this humbling, and realize that I could not ever do this.

One day I visited her in the hospital after she had just delivered twins for a couple. We ran in to the Mom in the hallway and she was gushing with happiness toward my wife. I was so amazingly touched, and realized that this is probably something I'll never experience at a software company. This kind of experience is an amazing gift to give to some one.

Why am I writing this? Well Joe Beda just posted a link to a new book called “On Call: A Doctor's Days and Nights in Residency" by Emily Transue. Lora has often talked of writing a book about her experiences, and I hope that she does. I think it’s a great way to explain what life is like learning one of our most difficult and important arts.

Posted Saturday, September 04, 2004    Permalink    Comments [1]  View blog reactions

 

iPod and MSN Music

One of the more surprising things I found when checking out MSN Music is this statement.

How can I get MSN Music downloads to play on my iPod? 

Unfortunately Apple refuses to support the popular Windows Media format on the iPod, choosing to only support their own proprietary DRM format. If you are an iPod owner and are unhappy about this, please send feedback to Apple and ask them to change their policy and interoperate with other music services.

There are more than 70 portable audio devices that support MSN Music today, and we hope that someday Apple decides to join with the industry and support consumer choice.

Who ever decided that this was a good idea has a lot of balls. I can't even begin to imagine how many LCAs were involved and how high up the food chain this had to go. Why? Well in MacBU we never ever said anything bad about Apple. Why? Cause once we did and we lost. Apple has a phenomenal PR relationship with the media and turned the story pretty much back in our face and it was ugly. Everyone felt like crap.

I'm interested in seeing how this one turns out. Personally I don't care. I don't purchase music on line cause I'm a snob about audio quality. If I am going to pay almost the same price as a CD I may as well buy a CD and rip it how I want without DRM. Lets face it, DRM is a pain in the ass. I don't mind it for subscription services and streaming like with Napster because I really don't own the content. I am subscribing to it. So, I rip to WMA and AAC and have plenty of hard drive space to spare. My iPod and my Portable Media Center are both very happy campers ;-).

Posted Saturday, September 04, 2004    Permalink    Comments [7]  View blog reactions

 

 Wednesday, September 01, 2004

System.Drawing.Imaging performance fix in .NET 1.1 SP1

A few months ago I encountered a significant performance problem with System.Drawing.Imaging.

I found that by using the new Method performance was 93x faster (on average) for loading jpegs.

You can download the update here:

http://www.microsoft.com/downloads/details.aspx?FamilyID=a8f5654f-088e-40b2-bbdb-a83353618b38&DisplayLang=en

Specifically, this update adds a new method to System.Drawing.Imaging:

System.Drawing.Image.FromStream(Stream stream, bool useICM, bool validateImageData)

This is essentially a new signature for an existing method:

System.Drawing.Image.FromStream(Stream stream, bool useICM)

As you can see, validateImageData is a new parameter. Setting it to true is the default behavior that we have today (essentially the same as calling FromStream(Stream stream, bool useICM)).

So I made a change to my application. Before my code looked like this:

using (Image photo = Image.FromFile(this.fileInfo.FullName, true))
{
    //do stuff
}

So I changed it to:

using (FileStream fs = new FileStream(this.fileInfo.FullName, FileMode.Open, FileAccess.ReadWrite))
{
    using (Image photo = Image.FromStream(fs, true, false))
    {
        // do stuff
    }
}

Posted Wednesday, September 01, 2004    Permalink    Comments [1]  View blog reactions