Eric'o'theque

Eric Richards' place of techno (as in technology) happiness, rants, and corporate love.

Browsing Posts published in February, 2006

Attention!

No comments

I wasn’t the quickest bunny to figure out all the yammering over RSS until I installed Radio and saw all these wonderful feeds coming onto my screen.

Now the buzz is over Attention and OPML. I’m back to being a bit of a dumb bunny trying to figure out why certain folks are so worked up about it. For a screencast about attention-engines, go to: Alex Barnett – attention engine screencast

From Alex’s blog, I found the article The Attention Economy and the Net by Michael H. Goldhaber. Exactly the kind of read I was working for while sweating away on the elliptical. It’s interesting and you can see some of this coming to be in the Blogosphere and how services are emerging to try to find the few rare gems in the blogs that are worth reading. Within a glut of information, what’s relevant to you? And once people start paying attention to you, that’s golden.

But I’m still a bit of a bunny scratching between the ears as I ramp up on the extremem passion over attention.xml and the OPML file. Usually, stuff like this seems so natural and organic (like HTML) that everyone says, “Of course!” and starts using it and benefitting from it. I’m not there yet.

But I’m paying attention.

Below is a comment I submitted for Bill Trippe’s post:Gilbane Report Blog: Whither InfoPath?


Hey Bill,

Eric Richards from the InfoPath dev team here to give you my own personal perspective. I respect the points you make.

Now then, Microsoft Office is not retreating from InfoPath at all – if you read the Sinofsky keynote from PDC06 PDC05 you get an idea of how integrated InfoPath technology is within the upcoming Office release. My team in particular has been responsible for the hard work of making the InfoPath editor hostable in Word, Excel, and PowerPoint, along with being a hostable ActiveX control. Plus we’ve made the designer hostable inside of Visual Studio, and have integrated VSTA into the design experience for those who want to write managed biz logic but don’t have Visual Studio.

Also, consider the investment we’ve made in the new forms server that renders InfoPath forms within IE or Firefox (hot!). Read more on Tudor Toma’s blog entry on the server features.

As for the quiet… I don’t have any excuse. Just note that we’re busting our collective butt to write these features and now, especially, stabilize them and ensure all the gears mesh together beautifully.

I personally have some bandwidth to start blogging again, including about InfoPath, and I imagine once the public beta comes out other team members will step up their desire to share all the cool features they have designed, implemented, and stabilized.

So, I can only try to spin this as the quiet before the storm of InfoPath goodness, and I personally look forward to sharing more as we ship the public Beta and the final release. If there are particular aspects of InfoPath you’d like to hear us talk about more, please post about it.

Take care,

== EricRi

Updated: link text said PDC06 when I meant PDC05. That check writing algorithm to transform all 2005 references to 2006 must have kicked in…

Updated: trying a ping.

InfoPath Super-PM Ned Friend has a post up regarding the upcoming InfoPath integration with Visual Studio Tools for Applications (VSTA):Visual Studio Tools for Applications : Microsoft Office InfoPath 2007 Beta integration with VSTA

What does this mean for the advanced InfoPath form designer? Well, if you’re ready to write your business logic in C# or VB.Net, VSTA gives you an environment to do so without needing Visual Studio. Imagine the environment you’ve had in the past for writing JavaScript and VB.Script now ready, willing, and more than able to take on writing .NET business logic against InfoPath’s new swanky managed OM.

The integration here includes passing on whether you’re designing a rich client form or a form for the rich and the reach (web) environment, meaning that we ensure Intellisense only shows you the OM that you should be using (some client OM doesn’t make sense when you’re writing managed business logic for the server).

And if you’re really interested in writing business logic for the reach forms (those rendered in IE and Firefox), you’ll be writing against the new managed OM (sorry, no script business logic on the server).

Craig Pringle has gone through the hard effort to create a screencast video of InfoPath’s inking feature: Blog:: Craig Pringle – Ink in Infopath Screencast. Thanks, Craig!

I was fortunate to have this work on my InfoPath dev team as one of the many features we added to InfoPath 2003 SP1. As Craig showed, you can just start inking ontop of your InfoPath form and InfoPath will convert your ink into text.

Based on where you start inking we determine what control the ink should go into. Also, note you don’t have to limit your inking just to the region of the control! :-)

If you pause your inking, we’ll just kick in and convert it. If you’d like a quicker convert, you can customize this pause time under Tools->Options->Ink.

For InfoPath 2003 SP1, we do some basic from field data type detection regarding if this form’s design has a field as a number or a date or such and pass that on to the ink conversion code as a hint for better recognition.

For the next version of Office, we’ve exposed to the form designer the standard input-scopes for use in recognition (e.g., IS_EMAIL_SMTPADDRESS) along with allowing you to drop into a custom recognition input scope, based on phrase list or regular expression. Better reco is better.

Also adding in InfoPath 2003 SP1 around ink that you can use everyday right now:

  • The ink picture now supports a static background picture. One scenario might be if you had to mark-up damage to a generic car as part of an insurance report.
  • You can now insert ink-sections into rich-text fields. Maybe this is just a drawing or a sketch to keep in your rich text. Maybe you just want to ink some notes here and convert it later. Your choice. To try it out: while your focus is in a rich text field, go to Insert->Ink Drawing and Writing. (Note that some rich text fields can be dialed down in the form design not to support complex graphical features.)

But as Craig shows, just plain inking ontop of the form is one of the more rewarding features we were able to ship.

Bonus tip: one of the gestures we support is scratch-out! So, if you want to clear content, just scratch out right on top of it!

Something I saw on Engadget a while back: SanDisk Products MP3 Players SanDisk Sansa e200 Series MP3 Players.

I am so looking forward to trying this out. I’ve been wanting a non-hard-disk MP3 player with FM tuning so that I can work out at the Pro-Club or such without worrying about the bouncing around damaging it.

I currently have a Creative Zen Micro. It has two big problems that prevent me from using it more:

(1) Awful touch-senstive controls. I’m constantly being “off-by-one” when selecting something and having to back up and try again, oops, overshot, back-up, try again.

(2) Creative Zen specific software required to sync to it. Dumb. I use lots of computers. I might download a podcast at work and want to listen to it on the way home. Well, I could lay down the Creative Zen software on ever laptop and computer I use, but I don’t want to do that. I just want to plug it in and drop files onto it.

I used an ipod nano in the Apple store shortly after it came out. It just worked. I figured out the controls naturally and was able to bounce around and easily do whatever I wanted with it.

But all my music is WMA and it’s staying that way. So no ipod for me. I can only hope that the Sansa e200 is similar enough that I can be happy with using it.

No comments

Test post from Diarist on my PocketPC

Alright, here’s a quick test post using the Diarist application on my Dell Axim 51v, connected via BlueTooth to my t-mobile account, typed using a BlueTooth foldable keyboard.

I’m mainly concerned about how natural this post will look, given that it looks like this is plain text only vs. rich text formmating, and usually that means BR tags instead of P tags.

If this does work out, then this makes it a lot easier to post ad-hoc entries while out and about.

Mmmmmobile bloggin!

(Files to download noted at the end of this post.)

A while back, I was once again extolling to my team the virtues of blogs as a place to keep track of emerging technical and business trends. Oh, all the useful stuff that shows up on http://blogs.msdn.com/ ! Oh, the analysts giving their competitive insights into what Microsoft is and is not doing.

As a way to jump start people, I wanted to share my blog list. The easiest way to do that is to create an OPML file and send it out. I happen to have moved from NewsGator to Bloglines (thanks to OPML) and I decided I would export my current Bloglines subscriptions and send that file out so that people could import it into their newsreader of choice (even http://live.com/ !) and see all the great stuff I scan during the day.

But… I really didn’t want to share the fact that I subscribe to Cute Overload. It provides the occasional “aw!” moment during the day that puts a smile on my face, but it’s not something the old bearded manager geek should necessarily broadcast in their OPML attachment. So I wanted to edit my file before sending it out. I loaded the OPML XML up in notepad. Oh, no, it’s all one big compressed stream of angelized XML. Damn, I thought. Now I have to go and find an XML pretty printer so that I can be sure I can read the whole thing and make sure that Cute Overload and Luann and Rose is Rose are all properly removed.

But wait. I need to edit XML. Hey… I happen to be on a team that makes an XML editor. How about if I try using my own product to whip up a quick form to edit my OPML?

So, here’s what I did to quickly edit my OPML file with InfoPath. It was quick for me since I know the product reasonably well. If you have InfoPath installed and readily available, get used to it so that when you find yourself having to deal with XML just dying to be edited you can quickly whip up your own InfoPath form template and start jamming with it.

Create the InfoPath form: I started up InfoPath, told it I was designing a new form and that I was using my downloaded OPML file as an example of the XML. Look over at the data-source: that’s the schema structure that InfoPath has inferred. Oh, how InfoPath eats XML for breakfast!

Create the layout: well, here’s what you might be tempted to do: drag the opml root of the tree over and release and choose section with controls. Hey, that looks good! Well, not column lined up kind of good, but there are nicely named labels and text boxes for all of the controls. But, there’s a problem if you just leave it with this: you don’t get the recursive nature of the outline node.

In the data source task pane, expand the outline node. Notice that outline includes outline. We need to make sure that InfoPath generates the correct structure here and right now, it’s only good for the first level of the schema (which, when you’re designing something meant to be an outliner, doesn’t get you too far). So, do the following:

  • Click into the designer surface within the first set of outline controls.
  • Open the outline section and right click on the outline within the first outline.
  • Notice one of the options is “Repeating Recursive Section” – choose that. Ba-da-bing!

Now, at this point, you are at a very basic, functional, OPML editor. It’s not pretty. Things are not all lined up. But, you can now edit that OPML so that people don’t know you like looking at little bunnies and ferrets and puppies.

Publish the form: in order to use the form template, you actually have to get it out of the designer and into a file that anyone can open. Choose File -> Publish and the publish wizard pops up. We’re just going to publish this to c:\infopath\edit-opml.xsn, so choose the first option to publish to your computer, enter c:\infopath\edit-opml.xsn as the destination (of course, creating c:\infopath\ if you have to), and hit Next. Unless you’re sharing this with people, just Next through the next screen and hit Finish. Now you have a checkbox to check before you press Close: open this form from its current location. Now press Close.

Alright. You’ve got a new blank OPML form. That’s fine and all. Save this XML to something like blank.xml. We need to do one last thing before we can edit your OPML in InfoPath.

Make it an InfoPath form: Open blank.xml up in Notepad. Notice those processing-instructions up on top, the ones that start with <? and end with ?> ? We need the two that have mso in the name. They look something like:

<?mso-infoPathSolution solutionVersion=”1.0.0.2″ productVersion=”11.0.6357″ PIVersion=”1.0.0.0″ href=”file:///C:\InfoPath\edit-opml.xsn” name=”urn:schemas-microsoft-com:office:infopath:Edit-my-OPML-:” ?>
<?mso-application progid=”InfoPath.Document”?>

Yeah, I know. Lovely. Well that’s the secret sauce for making an XML file (a) an InfoPath file and (b) identify which InfoPath form is best suited for opening the XML up. Paste this into your OPML file after the XML declaration and save your OPML file – be sure it has an .xml extension.

Wait for it: double click on that file you just saved. It opens up in InfoPath ready to edit! Now you’re cookin’ with gas! Edit, add, use InfoPath edit-UI to your heart’s content. Goodbye Cute Overload. My coworkers will have to find you themselves. Save and share.

After-thoughts:

XSD: Ideally, you would have designed off of a real XSD for OPML. Looking at the OPML spec site, I see there’s a reference to a DTD but I don’t see any XSD. I think, like RSS, OPML has been a bit flexible in what it allows. So even if you find an XSD, you might end up having it not like whatever OPML you try to validate against it.

So thank goodness that InfoPath can infer an XSD. Just be sure you have the biggest, meanest XML instance to start designing against.

Design: if I was going to share this or use this solution over and over again, I would go back and spend 15 minutes in the designer making it look better. I like labels and controls to line up, so I would go under the auto-generated control and insert a two-column layout table, dragging the label into the first column and the control into the second, making sure the control was as wide as possible. See below for my 15 minute clean-up results.

Publish to share: if you want to share this with more people, publish it to a public area. A SharePoint site. Maybe a network share. Or a web server. Just realize that that the processing-instruction secret sauce is based on where you published it.

Additional views: if I was editing a bunch of OPML and then wanted to paste them into a blog-roll like web page part, I’d create a second view of non-editable output and use that to paste. But really the best answer here is just an XSLT you can apply to the final OPML.


Files you can download:


Updated: see if I can manage to get Technorati tags to actually work…

This is a really good read:

Philo’s WebLog : Creating a web service for an InfoPath form in 25 easy steps

Philo shows how to start with InfoPath to design your schema for your form and then create a web service for consuming that exact schema. On the server end, you can do whatever you want to get it saved / act on it / etc etc.

Here’s the important realization: do not design your schema in a vacuum. Start with designing your schema for the technology and the enivronment that it needs to work within.

XSD is… well, awful. It did not grow organically out of smart people solving a problem. It is the worse that committee design has to offer. As such, you can design some pretty broken constructs in XSD. Sure, sure, it’s valid and legal.

But just try to get modern tools to accept it.

You need to work backwards according to what your tools and environment can effectively deal with. InfoPath is pretty powerful when it comes to schema, but it doesn’t support everything. xsd.exe doesn’t support everything. Look at the tools and find the relevant intersection and go from there.

And put in the occasional prayer that something better than XSD will one day ascend out of this noise…