shahine.com/omar/

homepage | Send mail to the author(s) contact

yet another Microsoft blogger

# Sunday, January 09, 2005

Adobe Premiere Elements 1.0

A few days ago I was in CompUSA doing the usual... walking aisle by aisle as my wife did some shopping in Union Square, and was surprised to find that Adobe had created an "Elements" version of Premiere. Finally, a DVD creating, Video Editing, Movie Making piece of software that does not suck. One of the biggest things missing on my PC is a quality all in one Movie Editing and DVD creation package. Sure, Windows Movie Maker 2 is nice, but it can't burn to DVD. Photo Story 3 is a sweet application for creating movies of your pictures (with unparalleled Ken Burns affect and photo re-sampling as well as music creation) but also lacks the ability to take those .wmv files and then add things like DVD Chapters, DVD templates, and the most crucial step, burning to DVD.

Well for you Mac folks, you have a sweet package with iMovie and iDVD. iMovie is no good for it's Ken Burns affect, and neither package will generate music for you like Photo Story 3 does (you can select a classical composer, like Mozart and the tempo/mood for your Photo Story and it will generate audio for you). However, iMovie and iDVD excel at Capture of DV video, Authoring of a DVD and have wonderful integration.

I have tried Sonic, Roxio and Nero products for doing the above and all have fallen short of my expectations... heck I used a Mac for this stuff so I know where the bar is! But I have to say, THANK YOU ADOBE for giving us an affordable, quality, software package that finally puts Windows on par with the Mac for creating DVD's and Editing Videos. And of course, you can just drag and drop your Photo Story 3 movies directly into Premiere Elements making for a pretty seamless experience.

I'm really diggin the Elements suite of products. I own Photoshop CS, but if I didn't I would buy Photoshop Elements 3 now this supports the Adobe RAW Plugin. Now if Adobe would just update Album to support RAW photos from my Nikon D70 I'd be psyched. You can purchase Photoshop Elements 3 and Premier 1 for $139 and save a bundle.

Posted Sunday, January 09, 2005    Permalink    Comments [6]  View blog reactions

 

Skype 1.1 Install Problems

Jeff is having problems installing Skype 1.1. I am having the same problems. This is the first time I've ever used Skype, so this is not leaving a good impression.

Anyway, booting into Safe Mode allowed me to install it. Not sure why.

Posted Sunday, January 09, 2005    Permalink    Comments [1]  View blog reactions

 

# Saturday, January 08, 2005

Microsoft AntiSpyware

Not very often does a piece of software come along that blows me out of the water. A few months ago I got a very real experience dealing with spyware. Even after coaching my sister through fixing her computer, on my visit home over thanksgiving I found that all the spyware she had was still installed. When I looked in Add/Remove I was horrified at the number of strange entries in there. My attepmpts to remove them were difficult as well as the uninstallers for these products did such things as:

"Are you sure you don't want to not uninstall this program as it does x y or z for you"? [Yes] [No]

Basically they tricked you into not uninstalling the software by confusing the heck out of you with double and tripple negatives and the like. Eventually I got rid of all of it, and my sister now runs AdAware every few days, but it appears that she still has SpyWare issues every so often.

With my parents it was a lot easier. They had a 3 year old Compaq PC that was falling apart, and so we got them a new Dell that is super sweet. On this machine I made everyone a Limited User, except for my father's account since I've found that some programs just don't install correctly when you try (even though I try and authenticate during the install by running them with admin permissions). Anyway, on their machine, spyware will find a harder time making it's way there since my Mom can't be tricked into downloading something that is not good for her.

But I was still left uneasy knowing this could happen again. Well a few weeks ago I started beta testing the GIANT AntiSpyware software. I admit, my expectations were low having used some of the other stuff our there. However, I was BLOWN away by how nice a piece of software this is. Not only does it protect you from AntiSypware but it tells me what the heck is going on with my computer. I love knowing when applications are adding themselves to the Startup process, adding Contextual menus, modifying x, y or z. It just leaves me feeling like I'm in control of my PC when installing programs.

It doesn't stop there. My Dad installed the software and called me up telling me how much he loved it! I really hope this gives assurance to all those people out there that have been burned by SpyWare to not be affraid of their computers any more (or screwing them up). I'm really proud and happy that Microsoft is providing good tools to protect our users.

Download it now.

Posted Saturday, January 08, 2005    Permalink    Comments [0]  View blog reactions

 

RSS xhtml:body

A while ago there was some hubub about support for xhtml:body in the RSS item tag. Since all RSS aggregators must support the description tag, which contains all the escaped html content of the post, having another tag in the RSS feed that duplicates all this content into a tag that only some RSS readers understand seems silly. My RSS feed is 162k today, and if I stop including the body tag it goes down to 82k. Given that I'm doing about 400 MB in bandwidth transfer at my hosting provider and a large chunk of that is RSS, I'm thinking if folks want the body tag from dasBlog they can use the Atom feed.

Posted Saturday, January 08, 2005    Permalink    Comments [1]  View blog reactions

 

# Friday, January 07, 2005

Nullable Types

I'm pretty excited about Nullable Types in Whidbey. The primary reason I care about this is that in my PhotoLibrary (library that exposes EXIF properties of a picture) has lot of value types like int. One neat thing about the class is that using something like a PropertyGrid you can just point it at the Photo object and it will automatically reflect all the meta data and display it (with very little work). Well if a Picture doesn't contain certain properties, the reference types simply don't appear because they are null. Well, unfortunately all the value types appear in the property grid because they are set to 0. I never found an easy to way filter these out, and there are quite a few EXIF properties out there, which leads to a lot of unnecessary data in the property grid.

Anyway, this should fix that :-)

Posted Saturday, January 08, 2005    Permalink    Comments [0]  View blog reactions

 

# Wednesday, January 05, 2005

Dying Thread on Trackbacks, Referrals and Pingbacks

Part 2 of 2

Bug 2: TrackingHandler Thread Dies

Another problem that Scott Hanselman informed me of was that he would frequently stop receiving Trackbacks, Pingbacks and Referrals on his posts. Furthermore, it was intermittent. This was troubling since losing a Trackback means it's lost forever. Well we went hunting in the code, and thanks to some UnitTest of a theory I had found the answer.

Basically the situation is this. Scott gets a lot of traffic. More than I do. There is a thread in dasBlog that sits around waiting for Trackbacks and the like. You use it by calling trackingQueue.Enqueue(tracking) and then trackingQueueEvent.Set(). So basically dasBlog can sit there and queue a bunch of trackings, and when it's ready the thread runs to execute them. The code looks like this:

private void TrackingHandler( )
{
    while ( true )
    {
        Tracking tracking;

        trackingQueueEvent.WaitOne();
        while ( true )
        {
            lock( trackingQueue.SyncRoot )
            {
                tracking = trackingQueue.Dequeue() as Tracking;
            }
            if ( tracking != null )
            {
                try
                {
                    InternalAddTracking( tracking );
                }
                catch (Exception e)
                {
                    ErrorTrace.Trace(TraceLevel.Error,e);
                }
            }

            if ( trackingQueue.Count == 0 )
            {
                break;
            }
        }
    }
}

The objects below are created like so:

trackingQueue = new Queue();
trackingQueueEvent = new AutoResetEvent(false);
trackingHandlerThread = new Thread(new ThreadStart(this.TrackingHandler));
trackingHandlerThread.IsBackground = true;
trackingHandlerThread.Start();

So, can you figure out what is wrong? Well I created a unit test that called this 100 times. What I quickly found out was that even though the code was calling break when the trackingQueue.Count was equal to zero the trackingQueueEvent.WaitOne() call wasn't blocking the while loop from continuing. This caused trackingQueue.Dequeue() to throw an unhanded exception (which should have been in a try catch anyway).

Not knowing a whole lot about this kind of threading I looked at a couple of docs and found the answer. Before calling break I added trackingQueueEvent.Reset(). Problem fixed (I hope).

Posted Thursday, January 06, 2005    Permalink    Comments [1]  View blog reactions

 

DateTime.ToString("yyyy-MM-dd")

Recently I found the answer to two very hard questions about bugs in dasBlog. They were kinda tricky to figure out, but also really interesting (bug 2 will be in a follow up post)

Bug 1: DateTime.ToString()

One of the classes in dasBlog that stores information like Comments, Trackbacks and Pingbacks determines it's filename like so:

public string FileName
{
   get
   {
      return DateUtc.ToString("yyyy-MM-dd") + ".dayextra.xml";
   }
}

Well a few weeks ago Scott Hanselman emailed me with some files with names like 1425-05-05.dayextra. Can you figure out why this is?

Well as I found out, DateTime always assumes Gregorian Calendar, so DateTime.ToString() will output a filename with a Culture.Invariant filename. Well what happened to Scott is that he got comment spammed by some one who's Windows Region was set to a Culture that uses the Hijri Calendar. So, 1425-05-05 is the equivalent of 2004-06-22.

The reason this happened was because this person happened to be the first person to leave a comment, and thus the file was created using the CultureInfo from their machine!

The fix was to do the following:

public string FileName
{
    get
    {
        // Use Invariant Culture, not host culture (or user override), 
        // 
for date formats.
        IFormatProvider mmddFormat = new CultureInfo(String.Empty, false);

        // Ignore local DateFormatInfo (could say CCYY-DD-MM), 
        // always use CCYY-MM-DD.

         return DateUtc.ToString("yyyy-MM-dd", mmddFormat) + ".dayfeedback.xml";
   }
}

DateTime stuff is very tricky and dasBlog has 4 different kinds of DateTime so it can get confusing.

  1. DateTime for Server (timezone the server is in)
  2. DateTime for Author (timezone the author is creating the post)
  3. UTC, which is how all data is saved
  4. Browser DateTime (where the reader is reading the post)

In all these cases dasBlog must know how to convert back and forth between all these formats and preserving the window of time that equals a single Day (24 hours of time, in the server, author, or UTC timezone).

Posted Thursday, January 06, 2005    Permalink    Comments [1]  View blog reactions

 

# Monday, January 03, 2005

Donate

Well, I haven't said anything about the recent disaster, but since I have already given (including any Google Adsense money I was due) and had that matched by Microsoft (thanks!) I thought I would try and make it easy for my readers to give as well. If your company does not do matching donations, there are probably dozens of places you can donate. Click below to do so through Amazon. If your company does do matching donations, you should take advantage of that.

Amazon Honor System

Click Here to PayLearn More

Posted Monday, January 03, 2005    Permalink    Comments [0]  View blog reactions

 

# Sunday, January 02, 2005

Enclosure support in dasBlog

Well, thanks to some encouragement from Jeff Sandquist, I just recently added Enclosure support to dasBlog. It was a bit tricky because RSS 2.0 only allows for a single enclosure per item. I didn't want to get burned by the spec changing at some point, so dasBlog actually support any number of attachments, but only one enclosure. Right now there is no UI for adding anything except for one. Eventually I'll add things like Photos, or whatever.

The nice thing about this is that when you add an attachment they are automatically added in your content/binaries/[entryId]/ folder. So now, when you delete an entry, the folder goes away as well and you don't have any straglers lying around.

If this worked, you should be able to download registry keys that will prevent office documents from opening in IE. Click the enclosure icon below (if you are reading this in an RSS reader it may not display the enclosure link).

Just one of many things coming to a dasBlog near you. Seriosly, Scott just finished setting up our SourceFourge site, and once we give a beta out to a few folks to make sure nuthin is broken, we'll have a public beta release. The Runtime has changed a lot, so we want to be carefull. However, I think Scott fixed a ton of threading bugs in the process (dasBlog wasn't very threadsafe, and this caused lots of wierd stuff).

 

# Friday, December 31, 2004

Do Not Deliver Before

My buddy Reeves just pointed me to a sweet Outlook feature that I never knew about called Do not deliver before. In a recent post I commented on how I'm trying to get in the habit of not doing work email on weekends, vacations etc. Well one problem with this is I could be on a plane or a train and I want to hammer out some mails from my inbox (but don't want to send them, because that sets a bad example). Additionally, if people are on vacation, I know that my email will just sit in their inbox and drift down to the bottom and possibly get lost. Worse, if they check their email over their vacation, I don't want to create work for them and stress them out.

Here is a good example. It's 1 am, and I just thought of something I want to tell my manager and our admin. Well they are both on vacation till Monday. So what is the point of sending this to them now? It could get lost, or read and left in the inbox. Instead I have scheduled to have it delivered Monday afternoon.

So, using "Do not deliver before", you can just tell Outlook not to send the message before a specific date and time. To do this simply:

  1. In a new mail message select Options from the Toolbar (if you are using Word Mail)
  2. Click the Do not deliver before checkbox and enter a date and time.
  3. Hit send

Viola!

Update: Thanks to Chris Graham for letting me know that if you have an Outlook Deferred Deliver Rule this will override the per message option and deliver the mail according to those settings.

Posted Friday, December 31, 2004    Permalink    Comments [1]  View blog reactions

 

# Wednesday, December 29, 2004

Windows XP File Association Fixes

The other day I was unable to open a .cab file on my PC. I had no idea how the file association got messed up. At the same time my .zip file associates were bad. I stumbled onto this great site that has some registry entries you can download to fix some of these common problems.

Posted Wednesday, December 29, 2004    Permalink    Comments [0]  View blog reactions

 

# Tuesday, December 28, 2004

USB Devices

I have always wondered why Windows treats a USB device plugged into one port as a brand new usb device when plugged into another port. My Mac never did this, or at least it was never apparent. However, the fact of the matter is, Windows makes it very obvious to you when you've added new hardware, even if that is a USB KeyChain drive or something. I'm not sure if that is a good thing or a bad thing.

At least I know that this is because the device does not have a serial number (Thanks Raymond for the explanation):

"In other words: Things suck because (1) things were already in bad shape—this would not have been a problem if the device had a proper serial number—and (2) once you're in this bad state, the alternative sucks more. The USB stack is just trying to make the best of a bad situation without making it any worse."

This can pretty much some up most of technology. Compatibility is king.

Posted Tuesday, December 28, 2004    Permalink    Comments [2]  View blog reactions

 

# Monday, December 27, 2004

Misha

Misha

It’s been a while since I posed pics of Misha. He’s almost 2 years old! Can’t believe I have a cat, since I grew up a dog person and didn’t like cats much. What a convert I’ve become. I still love dogs, but have a special place in my heart for felines.

Also, I finally completed getting allergy shots every week for the past year. They really work. My asthma is practically non-existent, and Misha doesn’t bother me any more. Plus I’m off almost all my allergy medication, which rocks. Less medicine = good. I’ve been taking allergy pills for most of my life!

Posted Tuesday, December 28, 2004    Permalink    Comments [0]  View blog reactions

 

# Friday, December 24, 2004

RSS in Outlook and Newsgator

I've been using Newsgator Outlook Edition for over a year now and generally think it's a rock solid piece of software. However, today I installed it from all my computers. I've come to the conclusion that RSS in Outlook is not what *I* want. Dare Obasajo and Dan Crevier both discuss this recently. I've had some real problems dealing with the volume of RSS that I get in Outlook, and to be honest, I don't have the time to quickly and effectively deal with it. Furthermore, the presence of all these unread post items just plain stresses me out.

Here are some of the issues with RSS in Outlook

  1. High Volume feeds, like blogs.msdn.com, or engadget are cumbersome to quickly read.
  2. High Volume feeds keep building up and there is no way for things to "fall off", they just stay around in Outlook till I do something with them.
  3. Search Folders do not help. All they do is make it take longer for me to get through RSS items.
  4. Outlook and it's mail centric view are not well suited for reading stuff that came from the web.
    1. Outlook doesn't download images till you click on the item. For engadget, I can read the web page a million times faster then the RSS items.
    2. I can scan an RSS web page with dozens of items a million times faster. I'm careful to say RSS Webpage because scanning just the web site with the custom colors, fonts, ads, images etc breaks up the flow of a consistent XSLT applied to an RSS feed.

The bottom line is this. I got really stressed out by having all these unread items in my Work Environment. RSS was no longer fun, and it was yet another thing I had to do before feeling like I could get closure on the day. This just isn't cool at all. Getting RSS out of Outlook makes it so I can focus on my work, and Outlook is my primary work tool.

Dare really hits the nail on the head:

"The major problem is that the Outlook mail reading paradigm has a fundamental assumption which turns out to be flawed. It assumes you want to read every item you get in your inbox. This flawed assumption leads to the kind of information overload that hampers the productivity of lots of people I know at work."

Like Dan mentions, I also don't read every item in my inbox, but I do need to triage every item in my inbox. Since I get anywhere from 50-200 items in my inbox (not including all the stuff filtered away), I don't have the time to triage 400 or so RSS items the same way that I triage my mail, and it turns out that the web based view of RSS allows me to do this much quicker, with less stress, and it's more fun. Plus it lets me focus on doing this on my own time, and not get distracted at work.

Additionally, I got tired of zillions of folders, and even more whenever folks decided to change the title of their blog (For Scoble, this happens monthly). Also, my Exchange quota, at 200 MB is not big enough for all the RSS I want to keep around.

So, what am I using for my RSS reading now? NewsGator Online. I happen to Love the UI for reading an managing RSS there. I get roaming, clips, folders, a feed list I can have on my blog, mobile support, and some nice Keyword feeds for my Ego (I can find any mention of my name in an RSS feed, and it works not like the Feedster feeds which flake out frequently). I'm also playing with Feeddemon 1.5 beta which support synchronization with NewsGator Online so I can have a rich offline RSS experience that also supports the web like way for viewing RSS.

So, the combination of NewsGator Online and optionally an RSS aggregator that synchronizes, and doesn't use Outlook plus has newspaper like views on RSS is my new RSS ticket.

Posted Friday, December 24, 2004    Permalink    Comments [2]  View blog reactions

 

# Thursday, December 23, 2004

Outlook Folder List Weirdness

Sometimes software just baffles me. A few days ago, my Outlook 2003 decided to quit remembering the collapsed state of my mail folders in the folder list. Just like that. Sometime last week. Basically, no matter how I change the folder expand/collapse state, whenever I quit and launch Outlook they are exactly where they were when I launched the previous time.

Now, this problem does not happen on 2 of my computers, just my laptop. I spent some time pulling my hair out and did what any good geek does when they can't fix something. I pave'd my machine using Remote Installation Services at work, installed a fresh copy of Tablet SP2, and then installed Office. Guess what? Problem still happens. I can't believe it. This problem really has me stumped. Has anyone else had this problem? What did you do about it?

Posted Friday, December 24, 2004    Permalink    Comments [4]  View blog reactions