Monthly Archives: September 2005

Trip report – PDC05 (day two)

As I was waiting for day two to begin, I got to thinking about the vast amount of content available to anyone concerning PDC05 whether or not you are an attendee. With slides, photos, blogs, news, audio, etc. what remains? Is it just the live experience? Is it the face-to-face networking? Is it hearing the word not said or seeing the non-verbal disposition of the speak and/or the audience? I happend to answer “Yes” to all of my questions, but others may not. In their case, how do they justify physical attendance? Note: although a few PDC05 speakers have made their slides generally available, most slide decks are only available via CommNet, which requires a valid Passport that has PDC05 registration associated with it.

Wednesday 9/14/2005

Keynote #3 – Tools for Innovation – Eric Rudder (video)(transcript)

  • Six demos in 60 minutes.
  • “An architect is someone who is over 40 and over-confident.” -Don Box (clip from channel 9 video)
  • Announcements – Windows Workflow Foundation (WWF, same engine used by Office “12,” aka “WinOE”?, provider architecture, DVD #1 (Beta 1 state), Microsoft Expression product family – Acrylic (graphics), Sparkle (interactivity) and Quartz (web) – designers for designers!, and Visual Studio Tools for Applications (VSTA) as “”
  • Emphasis on workflow – human and system, Visual Studio integration (designers and debugging support – C# & VB.NET)
  • (e.g. a set of readily available “activities”)
  • XAML is the bridge (i.e. persistent, high fidelity medium) between designers and developers (e.g. no need for developer to (mis)interpret a design)
  • Expression demos were compelling by unfortunately lost some “pop” due to developer makeup of audience (not designers)
  • Adobe + Macromedia vs. Microsoft (Expression)
  • Sparkle and Visual Studio integration – same project artifacts (i.e. one model and role-appropriate views – intuitive and familiar – high productivity), same MSBuild subsystem and XAML as common file format (i.e. all represent a great example of modularity, contextual UI and composition/re-combination
  • Windows Presentation Foundation (WPF) controls expose templates, which are recognized by Sparkle
  • Deal with 3D models (e.g. from StudioMax)
  • Enable roles to work more closely and productively (i.e. capture and harness true synergy)
  • VSTA demo – AutoCAD based
  • “XAML Integration for PLM/CAD” by UGS – data sharing focused among knowledge workers; collaborative process enablement – involved more people in the process when it matters most without taxing participants with a ton of software; allow each actor in a business process to leverage the tool of choice; all that is required is a WinFX-enabled desktop => Microsoft must make this runtime pervasive!
  • Structure applications today for WWF
  • Tools will be provided so that WWF designers can be embedded in own applications

Keynote #4 – Office “12” – Steven Sinofsky (video)(transcript)

  • This keynote featured a strong emphasis on ECM (i.e. the technology more than the business scenarios, “ECM framework in Office ’12’,” “Office ’12’ ECM platform,” etc.).
  • This was a first for Office–to be really talked about at a PDC let alone be at the center of a keynote.
  • Steven Sinofsky gave the entire hour-long keynote including all of its demos. Not bad for a Senior VP.
  • Central to his message was SharePoint and he spoke about investment and commitment of this core and its surrounding technologies.
  • SharePoint has a nice development story around ASP.NET 2.0 Web Parts.
  • Metadata-driven solutions were highlighted.
  • The notion of a “Content Type” in SharePoint “3” was announced (i.e. an object-oriented definition of content that supports hiearchical relationships). EMC | Documentum has had this for more than 15 years now.
  • New “property sheet” function/UI/user experience (can be InfoPath form) – XML data binding
  • RSS feed for a document library (i.e. for any list!)
  • Retention
  • Workflow – task integration and form integration
  • FrontPage “12” as a “SharePoint designer” – interesting positioning (i.e. delegating Dreamweaver competition to…”Sparkle” et al?)
  • Implication: Forms Server requirement enables browser-based access of InfoPath forms without requiring InfoPath on the client machine.
  • Forms as a great tool for data collection and info gathering
  • “Best Bets” on a site when searching (i.e. promoted resources by site members or admins)
  • Search – Documents, People, Customers (i.e. all of the above)
  • The fundamental SharePoint concept/abstraction/entity is a List (SQL table via SharePoint web services API (SOAP)). A List represents a significant developer opportunity to tap corporate assets.
  • SharePoint “3” will make certain application functions pervasive (e.g. project management via built-in Gantt view on a list; forms; etc.).
  • “Ease of use + nice UI” (in SharePoint) was the value-add statement offered to external systems in exchange for integration with their master data (e.g. CRM).
  • Re-upped commitment to Access “12” – the “landing pad for data”

PRS317 WPF: Beautiful Code, Beautiful Design – Robert Ingebretsen

  • I attended this session because I’m attracted to good design and strive to produce it both in terms of infrastructure and user experiences.
  • “Avalon lets you build the applications you always dreamed of.”
  • Powerful, clean, great tools
  • Current developer/designer workflow issues (e.g. designer is unable to directly impact to the product, design is turned off and subject to interpretation (e.g. loss of fidelity, missing pieces left to developer, etc.))
  • Designer as independent UI creator – no more “translation” errors, parallel workflow, realtime iteration and feedback
  • Understand the (Visual Studio/Expression) project structure and its separation of concerns (e.g. contains, created by, design experience; relationship (contract) among artifacts; etc.).
  • XAML is XML; XML is for machines, not human => visual tools required/expected to be reasonable medium.
  • Sparkle + Cider (sparkling cider…Martinelli’s :-)) – “Cider” refers to forthcoming Visual Studio designer extensions; Brian Pepin offers a good explanation of both designers.
  • Styling = resources, styles, templates, triggers, storyboards
  • This speaker’s slide style reminds me of Hillel Cooperman‘s presentation at PDC 2003–never did see his slides released (and his blog appears to be no more, too).
  • Controls are what they do and how they look (e.g. the “buttonness” of a button)
  • WPF, XAML, etc. requires one to rethink controls (e.g. leverage new separation between structure and appearance).
  • Design facilities/promotes/encourages (or the reverse) connections (e.g. connections with software)
  • “Good design means that beauty and usability are in balance.” -Donald Norman

TLN306 The .NET Language Integrated Query Framework: An Overview – Anders Hejlsberg

  • I attended this session because LINQ represents an emerging language trend and its creator is speaking.
  • Slides are in red to reflect the future (no ship date, yet) of the subject matter
  • The LINQ Project is about solving the following problem: Data != Objects
  • Programming exercise vs. plumbing exercise
  • LINQ is very important where CM, ECM, ILM is concerned.
  • “Dlinq” is the codename for a future version of ADO.NET
  • “Xlinq” … System.Xml (expressive power of Xpath/Xquery but in C#)
  • “foreach” as a code emitting pattern; so too for SQL (i.e. LINQ translates queries into method invocations)
  • Queries as projections (of data (sub)sets)
  • There is a strong type system behind what appears to be regular script (i.e. “var” is simply shorthand for knowledge the compiler already has).
  • Extensibility model is open and generally available (i.e. queries are now as ephemeral as for and if statements; applies to anything (e.g. Reflection metadata))
  • Is this just about queries (i.e. Select statements) or does LINQ also support Update, Insert, Delete?
  • Unified programming model
  • Xlinq strives to have symmetry between elements and attributes
  • LINQ is targetting C# 3.0 and VB 9.0. Although not necessarily the opinion of the speaker, some here have said that VB.NET has the best LINQ support due to its flexibility compared to C# (e.g. select … from vs. C#’s from … select).
  • Paging is supported
  • Debugging and profiling is supported (e.g. Visual Studio supports mid-line breakpoints (not well known) and this feature applies here, too)

Barry Gervin posted an useful list of LINQ resources.

TLN307 C#: Future Directions in Language Innovation – Anders Hejlsberg

I attended this session because C# is one of my primary languages and its creator is speaking.

The design goals (value system) for this language revision were presented as follows:

  • Integrate objects, relational and XML.
  • Generics, nullable types, etc. in 2.0 pave the way for 3.0.
  • Run on the .NET 2.0 CLR (LINQ runs on top of 2.0 bits).
  • Don’t tie language to specific APIs; “Languages live longer than technologies.” -Anders
  • Remain 100% backwards compatible; CTP may not satisfy this goal, yet, but it will be satisfied.

PRS312 ASP.NET: Future Directions for Developing Rich Web Applications with Atlas (Part 1) – Shanku Niyogi

  • I attended this session to better understand Microsoft’s entry in the AJAX field.
  • Web applications are known for their reach and ease of deployment. However, with Atlas (i.e. AJAX) you don’t necessarily have to sacrifice user experience in the process.
  • This is about taking better advantage of the browser (i.e. application container; local processing power, resources, etc.).
  • Big questions for Atlas: IIS required? ASP.NET 2.0 required? IE required?
  • Even if framework is biased/limited to ASP.NET, understand its patterns
  • Script core brings type safety to JavaScript (i.e. a set of patterns to guide)
  • This session would have had far greater impact if it had focused on visual/graphical expression rather than the declarative focus it tools (i.e. XML hand-coding).
  • Perhaps the necessary tooling is not ready, yet.


Trip report – PDC05 (day one)

Earlier this month, I was fortunate enough to attend this year’s PDC in Los Angeles. As it turns out, PDC ran during the same time as EMC | Documentum’s own developer conference. I was able to provide significant content for multiple sessions at the latter event and both were quite successful in my view and from what I’ve heard.

PDC05 reminded me of “PDC Y2K” in that much of what was discussed was nearly baked and ready for release. In fact, I heard more than one Microsoft employee talk about “assuming” the existence of such things as SQL Server 2005 (aka “Yukon”), Visual Studio 2005 (aka “Whidbey”), etc. This was actually refreshing for me. In recent years it’s been more of a challenge to engage with executive sponsors on Microsoft related endeavor due to Microsoft’s poor track record of on-time delivery. Beginning with the aforementioned products and throughout 2006, this should change (i.e. Microsoft’s substantial delivery pipeline is well-oiled).

I’ve already made a couple of posts on PDC05 (ref. [1], [2], [3]); so I won’t rehash what I’ve already stated. This trip report intends to accomplish at least two objectives: (1) provide information from the event and (2) offer what I believe the information means. For perhaps obvious reasons, my blog will not publicly declare a call to action for my employer–this I will do via internal, private means, and it is perhaps the most important content to digest. (So, my co-workers, stay tuned! :-))

So, without further adieu…

Tuesday 9/13/2005 (continued)

The “Big Room” space was excellent. I took the following panorama of it before attendees took it over for the rest of the conference. It’s layout did result in increased collaboration by placing the collaborative space up front and center and causing everyone to walk by that space on their way to anything else (e.g. meals, expo hall, hands-on labs, internet alley, book store, etc.).

After the day’s keynotes (ref. [1]video/transcript, [2]transcript) I attended the following breakout sessions: COM202, FUN302 and OFF304.

Before I detail my session experiences, I recall my impression of JavaOne earlier this year. Already I’ve heard Microsoft employees talk about importance of and value Microsoft places upon feedback. IMHO, it’s more challenging to guide and direct an open community than it is to drive a controlled ecosystem. Feedback is only one facet of participation. Giving feedback is different than making the decision or the change itself.

COM202 A Lap around the Windows Communications Foundation – Omri Gazitt

  • I attended this session because I believe that service orientation (SO) is establishing itself as a major architectural trend.
  • Microsoft is ahead of Sun on developer support for web services and Connected Systems.” Note: Be careful not to relax due to platform bias. There are two dominant platforms and their healthy competition make rapid change and advancement inevitable.
  • There was standing room only and many attendees stood. As all attendees would later learn, if not leverage, Microsoft had a reasonable overflow room plan in place for the event. This allowed attendees to attend what they wanted to attend rather than be forced to even second choice sessions for lack of room.
  • .NET Remoting – a “near” programming model (i.e. invocation calls appear to be local calls)
  • Service orientation was first begun in Microsoft back in 2000 (as stated during Bill Gates’ keynote–why PDC 2000 was so important and perhaps the most important PDC to date). There would be more of this timeline presentation throughout PDC05, which gave me the impression that a “mature technology” message is important to Microsoft. Time after release will only tell the truth about effective maturity, though.
  • The core abstraction in WCF is message passing.
  • Similar concepts in WCF to the original Berkeley sockets work
  • The ABC’s of endpoints…Easy as ABC
  • ClientChannel and ServiceHost make connections real.
  • The planned demo was skipped due to time constraints (i.e. the previous session ran long).
  • Decorated CLR interfaces (i.e. special attribution)
  • You can host services just about anywhere.
  • Leverage config XML to declare
  • “Indster” is a simple file-sharing app that Omri wrote in a few days. The speaker made his source available via the CommNet.
  • Contracts are probably the most obvious implementation of SO (service orientation) in WCF.

FUN302 Programming with Concurrency (Part 1): Concepts, Patterns, and Best Practices – Jan Gray

  • I attended this session because I believe that concurrency is under-appreciated in software development, generally speaking, and the way to continue to achieve substantial peformance gains moving forward on modern hardware will be to leverage concurrency.
  • Jan works in the Office of the CTO as an architect focused on models for concurrent programming.
  • Parallelism and scalability…toward a responsive application–not just its UI
  • Show internal states and partial results.
  • Exploit pre- and post-processing.
  • Define async states and behaviors so that each is a feature, not a bug.
  • Apply same ideas to responsive libraries (e.g. document thread safe sync usage).
  • To maintain the current perf rate, you must understand and exploit concurrent software (ref. “Concurrency for Performance” slide).
  • About a 100 W per chip is about all that can be cooled (i.e. physical driver for multi-core chip designs).
  • Parallelism isn’t a panacea and sometimes it’s inappropriate.
  • Jan gave a CLR perf talk at PDC 2003; so, it would be insightful to compare those slides with his PDC05 slides.
  • Deadlocks are easier to debug than race conditions.


Wine bottles

Take these two wine bottles as example of different lifestyle projections. What do they tell you?

Wine bottles

Now think about software, especially a type or class of software that has more than one product representation. Does it come across like the wonderful Shafer Merlot–looking just like perhaps the publishing family’s drawing room might–or does it convey a sense of whimsy and fun like the highly drinkable Frog’s Leap Chardonnay? (Yes, the latter’s cork says “Ribbit!”)

I retain these bottles not only because I very much enjoy drinking their contents–the Shafer is expensive enough that it comes out only for more special occasions–but also because they remind me that the same starting place (i.e. the basic bottle) can result in very different projections (i.e. the label, the brand, the image, the emotion).

Sleeping to stay awake

Seeing the following verbiage in an email from my wife this morning, made me smile :-) :

Your mom called with an update on the overnight with Josh and it was interesting. They seemed to think it was humorous but she acknowledged if they had to do that every night it would be exhausting. He got up at 10:30 looking for me but they got him back to bed. Then again at 12:30 cuz he bonked his head on the wall but went back to sleep. Then he went into their room at 3:30 and climbed into bed with them and fell right to sleep before she could even figure out what was going on. They were so cramped in the queen bed and after he kicked her in the head, she went and slept in his bed. Your dad said that he moved around so much that he eventually was sleeping on top of the covers with his head at the foot of the bed. He sat straight up and then rolled around so he was sleeping backwards.

Please pardon my mess

You may have noticed that my front page is a bit bent out of shape with respect to its two-column layout. Apparently I now have too much content in my sidebar for my current style to support. So, I’m in search of a plug-in or other technique to trim down the amount of information found there today (e.g. use of something like expand and collapse for each section of links shown). If you know of anything for WP 1.5.2 in this regard, please let me know. Thanks in advance…

9/15/2005 update: Kudos to my Dad for suggesting a lurking markup error as the root cause. Dead on right. Argh! Guess I need to activate a spell checker and a markup checker soon. Sigh… On the other hand, the experience has caused me to rethink the way I present meta information in the sidebar, and I’m still committed to using or building something a bit more sophisticated in the sidebar to trim down the amount of information there on first glance.