Rob Eberhardt

cleverness ensues

skip navigation

 Friday, December 30, 2005

This is just awesome:

...Okay, so it's a slightly ugly picture, why is it awesome? Read about it here: http://me.eae.net/archive/2005/12/29/canvas-in-ie/.  Basically, Emil Eklund of WebFX extended IE to support Canvas elements, the currently most-buzzed new technology in web browsers.

Awesome-er (to me) is that he accomplished in a couple days with IE's DHTML Behaviors, just like my xDOM Suite, or Dean Edwards' Star-Light do.  Just like them, it uses DHTML Behaviors to basically improve (fix, enhance, or extend) IE's rendering engine.  Developers can apply this extension by copying two files and adding a single line of code to pages which use Canvas.

Easy development, 3rd-party browser extensions, easy deployment ....All good examples of why DHTML Behaviors are totally awesome, and great reasons why other browsers should adopt them... 

(via Ajaxian, screenshot borrowed from same.)

12/30/2005 6:03 PM Eastern Standard Time  #    Disclaimer  |  Comments [0]  | 

 Friday, December 23, 2005

Nope, I still haven't seen it, but I can't wait.

And now I think I gotta go see it in style, though...

SNL - The Chronic of Narnia Rap

(Dunno what's with the You Tube videos that keep coming my way, but it's cool that they encourage hotlinking.)

12/23/2005 2:11 AM Eastern Standard Time  #    Disclaimer  |  Comments [0]  | 
I just found this list I sent to some friends, over a year ago now.  Still quite interesting...


IQ/Personality:
The Classic IQ Test - Apparently I'm an "Insightful Linguist ...natural fluency of a writer and the visual talents of an artist. ...a creative and expressive mind" (there's flattery for ya).
What Different IQ Scores Mean (down, cached copy here)  - Checking my above IQ here calls me "highly gifted" (aka "sub-genius"?).
What kind of thinker are you? - Says I'm a "Musical Thinker" (like Jimi Hendrix, except sooo white).
 
Oh, he's talking about me!
Real coders, real code - scary & sad but true
 
Interesting:
 
Fun:
12/23/2005 1:15 AM Eastern Standard Time  #    Disclaimer  |  Comments [0]  | 

 Thursday, December 22, 2005

(yes color, not music)

I've been clicking on the wrong programs all day, so consider this my request to the world's icon designers to try something other than yellow, orange or red.

I hear purple and green are the new black.

12/22/2005 3:52 PM Eastern Standard Time  #    Disclaimer  |  Comments [0]  | 

Big fan that I am of Google Maps, here's a great ad for it:

12/22/2005 12:12 PM Eastern Standard Time  #    Disclaimer  |  Comments [0]  | 

 Wednesday, December 21, 2005

I recently deployed the ASP.net 2.0 Framework to my server, and since have been fighting with problems it's caused. For instance, when I switched one app to use it, it broke all the other v1.1 web apps I was running (including this blog). Fortunately for me, someone else has been having the same problem and found a solution: move the 2.0 apps into their own application pool. Hooray I don't have to uninstall (which I was close to doing).

Hey Microsoft, how about mentioning this anywhere? ...say during the install, on the IIS site's ASP.net tab, or in the error?

I have another related woe, though: If I set a 1.1 app to run under the 2.0 Framework (which should work, and imparts better performance and security), I get the ASP.net Yellow Screen of Death:

Apparently "global" now a reserved keyword under 2.0 (despite its 1.1 compatibility). Fortunately, I found my own easy fix: just rename the class. So line 11 in my global.asax.vb is now Public Class Global2. Of course I made the same change in its global.asax too: <%@ Application src="Global.asax.vb" Inherits="Global2" %>

Happy to find a solution, and I hope mine helps someone.

12/21/2005 12:23 PM Eastern Standard Time  #    Disclaimer  |  Comments [2]  | 

 Friday, November 18, 2005

So there's a bug/limitation/pile-o-crap in CDO (the programmatic interface to use MAPI (the programmatic interface to get at & use Outlook or Exchange stuff)).  A key bit from the MSDN CDO reference:

Calendar folders are not supported in the public folders store provided with Microsoft® Exchange, and AppointmentItem objects are stored as Message objects. An attempt to read IsRecurring in this case returns CdoE_NO_SUPPORT.

This has majorly stunk for me, since I'm doing a project which needs to dump out some Exchange Public Calendars' AppointmentItems, and to use their StartDate and EndDate properties.  Common refrains to this song and dance:

  • Public member 'StartDate' on type 'Message' not found. and Public member 'EndDate' on type 'Message' not found.
  • Ok, I'll follow the guru's advice, and explicitly force it to an AppointmentItem: ctype(oMsg, MAPI.AppointmentItem)... Nope, I still hear: Specified cast is not valid.
  • But wait, what's the oMsg.Type?? IPM.Appointment is my answer. Well... (dead end).

Fortunately there's this: MAPI Property Tags.  I can get at those two properties via CdoPR_START_DATE and CdoPR_End_DATE.

Solution:

DIM dtStartDate as Date = oMsg.Fields(MAPI.CdoPropTags.CdoPR_START_DATE).Value
DIM dtEndDate as Date = oMsg.Fields(MAPI.CdoPropTags.CdoPR_End_DATE).Value
Not really properties, but something to work with at least. 

UPDATE: I hit the same problem with getting the users who originally posted and last modified an item, except worse -- they seem to be documented nowhere.  I reverse-engineered the fields collection (dumped the data, looked for what I wanted, found the matching ID, converted to a hexadecimal property tag), and found them:

CONST CDoPR_RE_PostedBy = &H3FF8001F
CONST CDoPR_RE_ModifiedBy = &H3FFA001F
DIM strPostedBy as String = oMsg.Fields(CDoPR_RE_PostedBy).Value
DIM strModifiedBy as String = oMsg.Fields(CDoPR_RE_ModifiedBy).Value
I don't see these tags in the CDO Property Tag list, and google searches for them come back empty.  (That said, consider my discovery subject to change with future versions.)

Too bad there also seems to be no way to use these property tags with a MessageFilter, or to get RecurrencePattern.


Unfortunately, this is part of a bigger problem.  I'm not sure, but I suspect CDO was simply never finished.  Get this: If you want to open a user-created folder, there's no way to do so directly by name.  The normal method, getFolder(), only accepts a 76-digit FolderID!  There is a solution, but ain't pretty.

Here's another bonus from that same link:

If your application is running as a Microsoft® Windows NT® service, you cannot access the Microsoft Exchange Public Folders through the normal hierarchy because of a notification conflict. You must use the InfoStore objects Fields property to obtain the Microsoft Exchange property PR_IPM_PUBLIC_FOLDERS_ENTRYID, property tag &H66310102. This represents the top-level public folder and allows you to access all other public folders through its Folders property.
...And yes, that seems to apply to ASP.net applications.

Another gem (this seems so ludicrous that I want to doubt it): CDO MAPI in ASP.net needs to run with impersonation, even if the authenticated user has a matching Exchange account.  It did fix my problem, though, so there's some more anecdotal evidence.  (Perhaps it's actually the old Windows domain double-hop bug?)

In general, I've noticed CDO seems to require a whole lot of Hex flags to do simples operation like open a message object.  ...Well, a whole lot for what should is supposed to be object-oriented code.  I've been wrapping up most of these basic operations with a class, but the vast amount of CDO hacks contained are too ugly to be seen here anytime soon. 

SO, Lemsons and the rest of the Exchange Team, have you touched CDO in the last 5 years???  It sure seems to be a stunted and abandoned technology.


good resource:
CDO Live (almost as outdated as CDO itself, though)

11/18/2005 11:26 PM Eastern Standard Time  #    Disclaimer  |  Comments [2]  | 

 Thursday, November 17, 2005

You scored as Batman, the Dark Knight. As the Dark Knight of Gotham, Batman is a vigilante who deals out his own brand of justice to the criminals and corrupt of the city. He follows his own code and is often misunderstood. He has few friends or allies, but finds comfort in his cause.

Batman, the Dark Knight

79%

Lara Croft

75%

Neo, the "One"

67%

The Terminator

63%

Maximus

63%

William Wallace

50%

El Zorro

46%

Indiana Jones

42%

The Amazing Spider-Man

42%

Captain Jack Sparrow

38%

James Bond, Agent 007

38%
Which Action Hero Would You Be? v. 2.0


"You're nocturnal; you enjoy working at night" -- yeah, I guess that's me. The technology angle seems pretty obvious too.

11/17/2005 1:00 AM Eastern Standard Time  #    Disclaimer  |  Comments [2]  |