Welcome to AspAdvice Sign in | Join | Help

First and foremost, Outlook is a tool for accessing information from Exchange. Correct?  That's been the old standby definition whenever someone complains of their piss poor IMAP support. Reasonable definition, IMHO. We all know they need to make money.

Now, however, I run into the old problem of "You already have a Microsoft Exchange account set up. Outlook supports only one Exchange account at a time." Seriously folks. You want to sell Exchange Server licenses right? Why not open up Outlook to subscribe to multiple Exchange Server accounts. Then the whole world could use Exchange Server.

I know, there would be dozens of really nasty complexities and all that. This isn't a first generation product we're talking about here, though.

Yes, for some time now, my live.com homepage has been picking up the favicon from other sites I've recently visited. This one just seemed extra humorous:

 

 

If anyone knows why this happens, I'd really love to know.

Urgh, sit down this afternoon to play some audio via my home server and get no love. Every attempt I made ended up with the RDP audio driver being used on the server.

Now, I always launch a connection via something like this:

> mstsc -v:server -console

That'll connect me to the console session on the server. When combined with a standard setting to "leave [audio] at remote computer", this lets me control Zune or whatnot remotely and have the audio played from the speakers connected to the server.

After quite a few attempts, and a server reboot, I go ahead and hook up a monitor and keyboard to the machine to see what's happening. Everything is fine on that end.

Go back to try the RDP connection again... wait a minute, connected, desktop comes up, but I haven't been logged out of my console session.

Then it strikes me that the UI for MSTSC seems a tad different. They must have changed it in SP1 RC, which I installed last night.

Turns out they changed more than the UI, they also changed the "console" flag to "admin".

Who's bright idea was this? At the very least, you could still support the old name without displaying it in the help.

Now I'm going to have to remember different flags for different machines. Lovely.

That'd be the SQL Server team.

Seriously. Windows Fax & Scan, try to "Move to Folder" on a scan.

Yup, that's right. Vista SP1 breaks .NET 3.5 B2. How, you ask? By replacing a 3.0 dll with a newer version which doesn't contain an API that 3.5 b2 expects.

It was a long, convoluted road to track this down so I'll spare you all the gory details.

Symptom: WCF service returning JSON returns nothing.

Cause: Someone had the bright idea that, even in debug mode, that when a WCF data contract serializer fails, the connection is just dropped. At least in the case of the JSON serializer.

Symptom: JSON serializer fails with a method not found exception.

Cause: Vista SP1 beta replaces the System.Runtime.Serialization dll which is part of the v3 framework with a new version. Turns out the new version drops a vital property on the XmlObjectSerializerContext class called IncrementItemCountMethod. Well, vital to the v3.5 B2 DataContractJsonSerializer classes, specifically the JsonFormatWriterGenerator.CriticalHelper class.

So, anyone working with v3.5 B2, watch out with Vista SP1.

Take a look at this fairly standard IE dialog:

(Shown in its initial state)

K, what's wrong with that dialog? How would you accept that dialog with the keyboard?

Try hitting Alt+Y. Alt+E? Alt+S? Nope, there are no access keys defined.

How about hitting left and enter? Nope, left here does nothing. If you want to switch from the "No" button to the "Yes" button with the keyboard, you need to hit the right arrow key. Yeah, the right arrow key. To drive home that whoever wrote the dialog didn't know their enumerations, once you do hit right to get to the "Yes" button, you need to hit left to get back to the "No" button.

Thankfully, tabbing works.

 

I know I shouldn't complain too much given the overall quality of IE, but its the little things like this that just get on my nerves every day.

Alright, let me preface by saying that I love all of the RedGate products. They are great products. If I wasn't such a cheap *** I'd purchase them all.

However, their uninstallation process could use some work. Specifically, I installed the SQL Toolkit a couple weeks back to test out the SQL Compare and SQL Data Compare applications. Process was nice and simple, download the installer, run it, choose which applications I want, hit go.

Skip forward a couple weeks and I'm cleaning up my installed programs. I open up "Programs & Features" and browse through, uninstalling stuff I don't use anymore as I go down the list. Then I get to the Red Gate SQL Toolkit pieces, there are 7 separate applications listed for the SQL Toolkit. Huh? I installed these with one installer, why would I need 7 uninstallers?

I hoped that perhaps they all led to the same uninstaller, where I could just ask it to get rid of everything. Nope. 7 uninstalls it is.

Argh.

This has frustrated me to no end. Why does Mozilla not fire my onkey* event handlers on a div? IE does it, Mozilla ignores me.

Searched and searched, no hits. Finally I came up with this link:

http://www.xulplanet.com/references/elemref/ref_EventHandlers.html

Right, XUL... should have guessed. This doc now adds a bit of insight:

onkeydown

The keydown event is sent to an element that has the focus and a key is pressed but not released.

Note the bolded word there: focus. This is, apparently, crucial.

That found, the next step was to figure out how to set focus to the element. The first thing I tried was calling the focus method on the element, but as usual I was being stupidly naive. Why would the focus method set focus to an element? Surely, if the method is defined, it should do something. That's just logical. Logical, and wrong.

So, back to the searching. Quick search on XulPlanet.com for focus turned up:

http://www.xulplanet.com/tutorials/xultu/focus.html

Which gave me the idea of adding a tabindex attribute to my div. Bingo! Works like a charm.

Now, why did this simple fact escape me for so long? Here's a link to the Mozilla Developer Center's page about OnKeyDown:

http://developer.mozilla.org/en/docs/DOM:element.onkeydown

Note that there is no mention of the need for the element to have focus, nor any mention that to obtain focus, the element must have a tabindex.

I hate to attack "beta" documentation but this browser is coming up on it's third major version. For a product this well aged, this documentation is just lame.

 

So, for anyone else fighting with Mozilla on these simple little things, take note: When looking for info on how Mozilla will treat HTML, the right place to look is at third party XUL documentation, not at Mozilla's own documentation.

0 Comments
Filed under: ,

Ok, what's up with this? I have my task bar on the right side. WMP, when docked to the task bar does this:

WindowClipping

Why is it vertical? Is it because it might not fit horizontally?

WindowClipping (2)

Nope. Seriously, did someone test this feature? At least the buttons are all oriented correctly.

As stated here:

Numeric Values Stored as Single-Precision Values

Silverlight stores all numeric values internally as single-precision values. This means that if a property value is set to a higher precision value, such as a double, the property value that is later retrieved may not be the same, due to truncation or rounding.

In most cases this is probably fine. For dimensions though, this is a pain point.

Why? I ran into this problem when I created a scrolling container with a long content div:

<div style="overflow: scroll; height: 400px;">
    <div style="height: 40000px;">
        ...
    </div>
</div>

Seems pretty simple right?

What I did was naively handle the scroll event on the outer div and position an element at the top of the visible portion of the inner div. This works fine for ScrollTop values of 0 through 32K. Where it falls over is when the ScrollTop overflows the Single at 32K + 1, at which point, the value returned by Silverlight becomes -32K.

Took me a few days to track down the documentation noted above, so at first I assumed this was a bug. Apparently not, we'll just have to use a workaround.

The simple workaround is to have JS copy the value to an attribute and read that from the Silverlight control:

onscroll="this.setAttribute('scrollTop', this.scrollTop)"

Note: Looks like the above code to set the scrollTop attribute isn't necessary. Apparently Silverlight will give you the string representation of the scrollTop property when you request the scrollTop attribute.

then instead of:

int scrollTop = scroller.GetProperty<int>("scrollTop");

we use:

int scrollTop = Convert.ToInt32(scroller.GetAttribute("scrollTop"));

Pretty clean and shouldn't be too much overhead.

I also tried exposing the property as [Scriptable] and registering the control for scripting:

WebApplication.Current.RegisterScriptableObject("myControl", this);

Which allows the event handler to instead look like:

onscroll="document.getElementById('SilverlightControl').Content.myControl.ScrollTop = this.scrollTop;"

Unfortunately, this suffers the same limitations as accessing the DOM property the other way.

Rant: One of the reasons this really pisses me off is that, as you can see above, the call to GetProperty<> must take an int type parameter. Why, internally, is the value being cast to an Int32 if it is limited to Int16? I realize this is only Alpha stuff here but come on.

0 Comments
Filed under: ,

While I'm at it: Toggling key strokes for windows. For example, I routinely fat finger the F4 key, which of course brings forward the properties window. I've yet to figure out a way to get rid of it without moving my hand over to the mouse. Why can't I just hit F4 again?

K, on all docked windows, when they are in the auto hide mode, please put a button on there to hide immediately. It is one of the most frustrating things ever when you pull it open, do something with it, go back to your doc and then stare at it, willing it to hide but it simply refuses to hide. Usually end up toggling the auto hide.

How hard would this be to add through an extension?

I often make the mistake of typing without really paying attention. Simple things like attaching to Cassini:

  1. ALT
  2. D
  3. P
  4. W
  5. ENTER

I don't even think about it anymore. Then, when I need to make a change I hit Shift + F5 to stop the debugger. For Cassini this effectively detaches from the process. Not so for other process it would appear.

Turns out, when I went through this cycle rapidly a few minutes ago, Cassini wasn't running. First "W" in the list at the time happened to be winlogin process. Yeah, you got it. When I then stopped the debugger using Shift + F5, it killed the winlogin process, which of course is integral to windows and thus took windows down as well.

As good a time to head home as any ;)

Alright, I realize that nobody will read this but I'm quite annoyed and need to spout again.

In my ever evolving quest for information, I've subscribed to a lot of RSS/Atom feeds. I have about 50 feeds that get pulled every couple minutes (Outlook does a lovely job of this, btw). Most of these are centered around .Net development, including the full feed from MSDN and ASP.Net. These are usually quite good, but every now and then, something like the Silverlight announcement comes out. I'll have to do a tally in a few days when things calm down again, but so far I've seen at least 20 posts on the topic, most of which are regurgitating the same thing that Somasegar posted yesterday (he usually reserves the first post for himself it seems ;).

Seriously folks, why do I need to see the same thing so many times? Do we really believe that our readerships are so segregated that someone would miss an announcement like this if you didn't post it?

At this point I chuckle when I see yet another post that Expression is available on MSDN. First posted on April 3rd. Still news? Still unknown by anyone in the universe? I doubt it.

Anyway, back to work.

More Posts Next page »