Some useful links from this week …

It’s been a light week for posts as I was on vacation with my wife in New Mexico. I think she smirked when I posted from our hotel room. Hope to get some photos up on SmugMug this weekend.

Photography related:

24+1 Photography Podcasts That Will Inspire You

(I can’t vouch for every podcast — some aren’t dedicated to photography)

Believing is Seeing: Being Taken by Pictures

WPF

Using Vista Preview Handlers in a WPF Application

Margins and Padding in WPF (An annoyance)

String Format in SP1 (finally I don’t have to write this anymore!)

Silverlight

50 New Silverlight screencasts – short and snappy

Not a WPF Annoyance — IsOpen on Menus, etc.

I saw this post earlier:

For all you people Googling frantically wondering why there’s no .Show() method or a direct replacement on ContextMenus in WPF, it’s because someone had too much to drink and replaced it with simply setting the .IsOpen property.

It’s intentional and makes sense if you understand WPF, although some might find it annoying (I don’t). The IsOpen property is a Dependency Property which you can use with triggers (for animations, etc.). There’s no reason to add a method that sets the property (and the corresponding Hide). It may not be entirely consistent with other frameworks you’ve encountered, but it’s a reasonably consistent and important pattern in the world of WPF.

MSDN Reference.

Comboboxes are similar, having a IsDropDownOpen property.

The slight inconsistency comes from the Window class Show method. That one is a bit trickier as it’s a synchronous call, whereas setting Visibility to Visibility.Visible is an asynchronous set (meaning that it returns immediately, even though the Window may not be visible yet and any events that may be attached to the window may not have fired).

More Presentation Tips

I’ve been to a few conferences recently where the speakers were diligently following the guidelines I set forth early this year: How to give the worst possible presentation.

Scott has a few serious tips here:

Tips for presentations

Of all of the tips — the one that consistently frustrates me is: FONT SIZE. “Can you see this?” Arrgh. JUST MAKE THE FONT BIG TO BEGIN WITH. Even though many in your audience CAN read your 9 pt font just fine, MOST would rather not if they had a choice.

What have you seen recently that has driven you nuts at a presentation?

I’ve seen far too many “readers” and too many that spend 2 or 3 minutes on walking through the agenda for a 1 hour presentation.

I’d like to propose that in conference scenarios the presentation agenda and session title are put up on the screen prior to the session starting. Then, just jump right into the content when the session starts. 

Flash 10 — should make Flex (and AIR) even better …

The battle for the RIA platform continues with Adobe’s pre-release of the next version of Flash 10, code named Astro (details here).

If you’re familiar with WPF — the Flash player is starting to have a near feature parity with WPF. Oh, I know, I know, I’m sure there are lots of things WPF may be able to do that Flash can’t … but I’m more interested in the practical, get your job done things here, so I’ll suggest that the parity is more of a practical/useful feature set match than a specific side-by-side comparison.

For example:

3D Effects – Easily transform and animate any display object through 3D space while retaining full interactivity.  Fast, lightweight, and native 3D effects make motion that was previously reserved for expert users available to everyone.  Complex effects are simple with APIs that extend what you already know.

It looks like it’s easier to do 3D in Flash 10 than it is in WPF by an order of magnitude. Again, practical 3D … not necessarily your 3D for doing a live rendering of a heart — but interactive 3D that could be useful in many applications (as shown in one of the videos).

Visual Performance Improvements – Applications and videos will run smoother and faster with expanded use of hardware acceleration.  By moving several visual processing tasks to the video card, the CPU is free to do more.

Hmm… remind you of the “big” feature of WPF — offloading its work to the GPU? It’s coming in Flash.

GPU Compositing — Combining images, filters, and video in your SWF just got faster.  Your video card can be used to do compositing on all raster content.  Utilizing the hardware processing power of the graphics card, GPU compositing accelerates compositing calculations of bitmaps, filters, blend modes, and video overlays faster than would be performed in software on the CPU.  GPU compositing is applied when specified in the HTML parameters provided appropriate graphics hardware is available.

And, the little things…

Context Menu — Developers now have more control over what can be displayed in the context menu through the use of ActionScript APIs for common text field context menu items, supporting plain and rich text. The clipboard menu provides access to the clipboard in a safe and controlled way, and you can write handlers to paste text.

You can watch a bunch of demos here (you only need Flash 9 installed to watch the videos).

Easy 3D:

 image

Filters and effects (live with Video support):

image

Improved Text Rendering… (ligatures are used in the video).

image

Microsoft: what’s in the box for Silverlight 3.0? I think the Silverlight feature set can be found here. Flex and AIR is only going to become more compelling as a platform.