Windows Imaging Component and C#

Someone wrote me and asked a question about using the Windows Imaging Component in C#, trying to access the various IPTC, EXIF, and XMP metadata stored within a JPG. I pointed him at an older sample project with source code using the BitmapMetadata class. Using that component, you can get access to all of the metadata stored within a JPG. It doesn’t however, make it easy to necessarily understand the data — but it does give you access.

An amazing (incredible!) Javascript achievement

From 280slides.com… another web-ized PowerPoint wannabe.

image

Definitely an impressive Javascript only application — broadband definitely recommended:

image

They’re using Amazon S3 for PowerPoint conversion (it’s funny that they have this feature, but they need it as users may not always have access to a reliable web connection when doing a presentation):

image

The developers have written a layer which abstracts browser rendering into a unified language, Objective J. For former Apple employees, it’s providing an Objective C like layer for Javascript (source here). The abstraction layer is useful — but at what cost for a new language layer on top of Javascript? There’s a lot more detail here in an interview/podcast.

Objective-J is the language that takes JavaScript and makes it Objective (as Obj-C did to C). Lots of square brackets. When the browser gets served .j files, it preprocesses them on the fly. This means that you can do things like, use standard JavaScript in places.

Cappuccino is the port of the Cocoa framework.

The market is becoming saturated with these products. Are you willing to pay? What if there are ads? Will you use it? For me – they’re fun to use — but if I’ve got PowerPoint installed, I’m going with that option. I might consider a service if they provide a reliable import.

(via Download squad)

Tech Ed 2008 Developer Wrap-Up

I was hoping to experiment with the promised Silverlight 2.0 Beta 2 bits tonight and on the plane ride home tomorrow, but nothing has been published yet.IMG_0571 News of the update to the various tools for Visual Studio was made available here.

(Update: It was released after I had hit bed on the east coast).

A few neat things this week:

Velocity (Dare describes it in some detail here).

SideShow for Windows Mobile SDK (1.0) — a practical use of the Vista SideShow on a device that many own already, a Bluetooth compatible Windows Mobile 5+ phone.IMG_0560

A new CTP of the Parallel Extensions for .NET discussed here. (I talked about my earlier experiences with the previous CTP here). Still, I don’t see a practical (or maybe typical is a better) use in web applications for these extensions.

The developer sessions were generally very good. Some were absolutely better than others, a few really needed my tips for doing a better presentation. A new one — just because you can use zoom — don’t use it as a crutch. If you’re planning some demos, create them using big fonts to begin with. I saw a decent presentation today about advanced Reflection, yet it was marred by a demo tool that was designed to be read at a distance of 2 foot. The audience had to trust the presenter that what he said was true. It was unfortunately.

Did you attend Tech Ed? What did you like (or dislike)?

Technical Interview Question #8

Technical Interview Series

Create a structure which is used to hold the coordinates of a rectangle within an two dimensional coordinate system.

Now, add the code necessary to support the following:

  1. An arbitrary number of rectangles (think “windows”)
  2. Rectangles that are layered and overlap (and of course various sizes)
  3. Determine the window/rectangle in which a point is contained (factor in layering)

Are there any optimizations?

How would you handle non-rectangular windows efficiently?

SmugMug and Amazon’s EC2

Don’s write-up of how they use Amazon’s compute cluster service EC2 is an interesting read if you’re into those types of things. :) Using EC2, they’re able to change the server resources they’re using on the fly to match with the current demand on the system, without having to over-buy extra hardware for peak times.