Don’t be surprised to hear me say I love OneNote 2007. I was never a big fan of OneNote 2003 because of the fact that ink felt like an afterthought. But I am really digging 2007. Great improvements and it looks and feels a lot more polished.

I never really saw TEO and OneNote as competitors although sometimes the way you see it isn’t the way things really are. You see, people have a finite amount of money they’re willing to spend on their Tablet PC and accessories and they have a finite number of uses for it. Some people may find OneNote to be a suitable organizer for them and some may insist on keeping their stuff in Outlook. In this way, they are competitors.

However, I see it another way. I use TEO and Outlook for things like calendar, tasks, contacts, etc which is what it was designed for. I take basic notes attached to the Outlook item itself because it’s easier to find this way and one less step. I also like more structured notes when I’m logging a phone call or meeting. TEO and Outlook Journal give me that.

But where OneNote really shines is when I use it as a bucket for information scraps that could come from anywhere. I’ve been reading David Allen’s Getting Things Done and he emphasizes getting your obligations out of your head and into a system. OneNote works very well for that and new in 2007, it makes it much easier to go from an unstructured note on a page to a tracked Outlook task. Another utility that is indispensible when using OneNote is SnagIt because both the virtual printer and the Send To OneNote IE plugin produce horrible looking pages, IMHO. But SnagIt is always at the top of just about every software workflow I have.

For longer-term projects, Outlook falls apart. But OneNote lets me keep a section called Jobs for example where I can throw any interesting job opportunities (yeah, more on that later). I have a section called Houses where I am storing information that I come across related to buying a new house, getting a mortgage, property taxes in North Carolina, etc. This would all be very difficult to keep organized in Outlook because it is so unstructured. If I have a specific “to-do“, that gets tracked in Outlook, not OneNote. But OneNote is great for those “maybe somedays“ or brainstorms.

So I definitely see TEO and OneNote as complementary. TEO will never be as full featured for general purpose note-taking as OneNote, but OneNote will never be as structured and organized as Outlook.

Wow what a blatant rip off of TEO’s mapping feature. Even the UI is nearly identical. In a rare misstep though, Microsoft really made this look ugly. That’s not typical of a Microsoft product but this is an ugly rip-off of TEO’s mapping capability. I’m not too thrilled right now. I’d much rather they bought mine. Oh well, guess I just have to raise the bar. (And stop making my betas so accessible… I think I know who may have "borrowed" this idea from me.)

This isn’t the first time one of my great ideas wound up in a Microsoft product without any credit to me. Those of you too new to the Tablet PC platform to remember pre-SP2 that I actually created the first in-place floating TIP icon that worked with the SP1 input panel. A few months later, this feature appeared in the “Lonestar” alpha.

The lesson learned here is always apply for patents.

UPDATE: As my friend, Andre just pointed out, they even stole my acronym! The installer is called LEO_Setup.exe!!! Live Enhancements for Outlook? Location Enhancements for Outlook? I am pissed.

Microsoft's Add-In


My Add-In

Make your own Outlook! That’s what I did. Well not really. But I am working on a new project (not TEO, not even tablet for that matter) that requires extensive Outlook UI customization and creating user interface prototypes in Outlook was becoming a major drag. So much code just to create a button or menu. And when you need to start getting hierarchical, forget it.

So I took some time writing a dummy Outlook client. It doesn’t actually DO anything, but it looks almost identical to Outlook except for a few incorrect icons. But this one is much easier to customize in a WYSIWYG designer and allows me to turn out UI concepts much more quickly. I thought it was cool so I’d post a screen shot.

SNAG-20060423_005155

I’ve heard great things about this add in for quite some time but only now did I get a chance to actually install it. I think this is a must-have for any Tablet PC user but it’s also very useful to anyone that likes to keep an organized PIM.

Basically, what Anagram does is parses text from the clipboard and converts it into a Contact, Task, Appointment, etc. I mostly use it for contacts because many times people will email me with their contact info but it’s not in a VCF. It’s in an email signature or even worse, the body of their email. So you select the text (it doesn’t matter if you get stuff that isn’t a part of the contact) and Anagram will do its best to figure out where fax numbers, home numbers, email addresses, etc. all go.

The best part is, since TEO 2.x and above will override Outlook’s standard UI’s for things like this, it just works by default with TEO! I’m working on a screen capture video much like Rob Bushway did with TEO and ActiveWords to show off how Anagram works with TEO. I have one already but it has someone’s contact info that might not want to be shared.

Get this add in!

Jensen Harris, the author of the excellent and very useful KnockOut utility for Outlook has agreed to let me bundle KnockOut with TEO 3.0 when it is released later this year. This is very cool because it will expose more people to the utility and TEO users will be able to easily include it in the installation to compensate for Outlook shut down issues.

All too frequently do I get an email from a user who doesn’t see the TEO menu after installing because Outlook was invisibly open in the background because of something like ActiveSync or another add-in. And once TEO is installed and working there may be times when Outlook refuses to shut down even when you think that it has. KnockOut allows you to monitor and control these invisible processes with a simple intuitive tray menu.

Although I take every precaution that I can to prevent Outlook shut down problems, the reality is that Outlook with Add Ins and external apps like ActiveSync will sometimes just not shut down on its own. Now TEO users will be able to fight back against processes that refuse to die!

Oh and by the way, KnockOut is a free download. You don’t have to wait for TEO 3 to get it. You can download it now.

I get so frustrated every time I read a MSDN article that warns developers not to deploy the Office 2003 PIAs. I am frustrated because the PIA problem in Office is a major pain in the ass and so far, nothing has been done to rectify it. Just to recap what myself and others have bitched about, here are the problems:

  • Microsoft wants you to compile a version of your app for Office XP and a version for Office 2003 if you intend to support both
  • Microsoft doesn’t want you to redistribute Office 2003 PIAs to any version of Office… ever.
  • There is no way, short of telling the user to go find their system administrator and modify the office installation, that I know of to get the 2003 PIAs on a user’s machine if they were not installed the first time (which they are not by default).
  • Microsoft doesn’t want you to use the freely redistributable Office XP PIA’s on Office 2003

These are big problems and make developing Office 2003 add ins very unattractive. It’s very rare that developing for Microsoft technologies gets more difficult with newer versions but that is what has happened.

Developers have found that they can solve many of these problems by ignoring Microsoft’s advice. Careless developers (like me when I wrote TEO 1.x) will cause additional problems by ignoring this advice, but they get around all of the above by either 1) deploying Office 2003 PIA’s or 2) using Office XP PIA’s with both versions.

Anyway if you’re going to do this, you should have the common courtesy to other developers to create an unmanaged shim and host your add-in in its own AppDomain. Then you won’t fuck with other add-ins that may be installed on your customer’s systems.

Omar’s got a great blog that deals frequently with Office add-ins.

Since the release of TEO 2.0, customers have been telling me about a problem that occurs when TEO (and many other managed add ins) are installed. The problem has to do with the notes system. When a new note is created, Outlook will spit up a couple of error messages (that really don’t affect anything) on shut down or display change events.

Well Omar, from Microsoft (the author of the Outlook to One Note Power Toy) has an explanation of the problem and proposes a way to avoid it. Thanks, Omar! My customers will thank you.

I will try to implement this in TEO soon.

http://www.shahine.com/omar/PermaLink,guid,e8ef8ba0-be2d-4599-ab77-db2a1f5cf15c.aspx

In my previous post I talked about the nightmare I was having trying to get TEO 2.0 to load on a customer’s machine. This happened to more than one person and I couldn’t figure out why or even fix it until I stumbled across the fact that installing it on another user account and choosing the Help -> Detect and Repair could fix it.

But I still didn’t know why it happened. Apparently there is this barely documented “feature” of Outlook that disables AddIns during load if Outlook detects that the AddIn was not loaded successfully. Why that happened is another issue altogether that I have to try and solve.

AddIn’s currently have a LoadBehavior registry value that is typically “3” for enable at startup and “2” if the AddIn is disabled. The TEO installer always resets this to “3”. This registry key can be found at HKLM\Software\Microsoft\Office\Outlook\AddIns\(YourAddIn’sConnectProgID).

There is also a HKCU flavor of this key so your AddIn can be in either one. If you are in the HKLM section, your AddIn will *not* show up in the COM AddIns dialog within Outlook. For this reason, I am considering making TEO 2.0 use the HKCU even though it would require that each user reinstall TEO.

But you would think that Outlook would simply set this LoadBehavior to 2 when the AddIn crashes just like it does when it can’t find the AddIn. But that is not the case! If the AddIn experiences a problem during initialization, Outlook will prompt the user that the AddIn caused a problem and would you like to disable it. The user will of course always choose “yes” and this is where the problem starts.

Outlook creates a new item in HKCU\Software\Microsoft\Office\11.0\Outlook\Resiliency\DisabledItems that contains some cryptic hashed value of your AddIn. If your AddIn is listed here, forget about it! Outlook will not load it again. You can remove and reinstall the application as much as you like but that key never gets overwritten so the AddIn never gets loaded.

What I don’t understand then is that even when the AddIn is registered in HKCU, and you can see it in the COM AddIns, you can’t simply check it to re-enable the AddIn. The LoadBehavior can still be “3” but Outlook won’t load the AddIn.

How do you fix it? Well before I realized this Disabled Items button in Help -> About was different than setting the LoadBehavior to “2”, we fixed it by having the user log on as another user. Notice that the DisabledItems key is stored in HKCU so the new user can load the AddIn once again. Also doing a Detect and Repair with the “Reset my settings” check box checked will clear this DisabledItems key.

So by clicking Help -> About and then “Disabled Items” button, you should see the disabled AddIn listed there and you can enable it once again.

I’m glad I finally got this figured out because it’s going in my knowledge base.