Field Report: An Event Apart Day Two
This is a summary of day two of the “An Event Apart” conference in Chicago.
To see day one go here.
Be Pure. Be Vigilant. Behave. Session
Jeremy Keith gave this session and he was the
first person at the conference to actually show any code (and he showed client side
javascript). He raised a point that I have made in the past when I have talked
about the use of AJAX on a web site: Your site should still work even if the
client does not use javascript. The easiest way to accomplish this is to build
the site first as a Web 1.0 style site (with postbacks), then you should add the AJAX
functionality. There is a real balance to this, because the presence or absence
of AJAX would normally effect your design.
Best Practices For Form Design Session
Luke Wroblewski is a principle at Yahoo! and
he showed a very visual presentation on design patterns for web forms. Sounds
really boring, but may have been one of the most useful presentation of the conference.
He gave some great ”rules of thumb” for laying out your web forms. Because
the presentation was so visually oriented, it is tough to summarize this session.
Luke will have a book out next year, or you can read some of his blog entries about
forms here.
Accessibility: Lost In Translation Session
Derek Featherstone gave us a wonderful
insight into accessibility on web sites. I have always thought that
I had a good grasp of accessibility on web sites, but some of the issues that Derek
showed during his presentation really humbled me. AJAX and other cleaver DOM
scripting techniques have really thrown a wrench into the accessibility of web sites
to a level that I was not even aware of.
The State of CSS In an IE7 World Session
Eric Meyer gave this presentation on
IE7. As a guy who works for Microsoft I was “braced” for the worst, because
if you search for Internet
Explorer CSS Issues you get close to 1/4 of a million search results and
most are not flattering (Internet Explorer 6 has a very checkered past).
Eric gave a fair and balanced view of IE7, and was complimentary of the work that
the IE Team has done to fix the problems
of the past and to comply to standards.
Eric made one point that was interesting: He was very critical of sites that
claim to know how what the percentages of people are using which browser
(like 25% of all people are using Internet Explorer 7). His point was that
these sites aggregate data and the only thing they are telling you is what the aggregation
is. He said you should focus on what browsers you are seeing visiting your web
site by looking at your logs (he used a funny example of http://netscape4plugins.com
probably does not probably see a lot of traffic from IE). He has a great point
for existing web sites, but for new web sites I still think there is value in looking
at aggregations.
Field Report: The PhizzPop Design Problem
Challenge Packet
A few short minutes ago Chris Bernard gave
the PhizzPop Design Challenge teams
their problem to tackle over the next ~58 hours. Here is the challenge that
they have to create a solution for:
Your Challenge is to come up with recommendations for how digital technology can help
[An Airline] create unique experience on the Web and within the aircraft and take
into account how we can connect with the world and devices that we use to do it.
Your solution should demonstrate innovations in planning or preparation activities
or the personal activities that occur during travel. Your general concepts should
be inclusive and demonstrate ‘thinking’ if not functionality about both experiences.
Your solution may use any combination of web (ASP.NET, Silverlight) or application
(WPF) components.
There is a lot more information in the 9 page packet, including a list of 3 personas
that you are creating the solution for.
To go from the loosely defined problem to a concept to design to implementation in
that short amount of time is going to be the toughest part of the challenge. Kevin
Marshall the team captain from Clarity Consulting is
rumored to have brought in sleeping bags for his team. It will be interesting
to see the different trade-offs that the teams will be making over the next couple
of days.
A story about a (mini) design challenge
This past April I got to attend an ASP.NET AJAX class
put on by Fritz Onion of Pluralsight.
The class was about 2/3 designers and about 1/3 developers and all the stereotypes
applied, I think everyone could easily pick out who was the designer and who was the
developer (but everyone got along just famously). A quick note: I am using the
terms developer and designer as a broad stereotypes, there were lots of flavors of
people in the room (architects, web designers, creative directors, etc.). One
of the neatest things in the class was a free form hands-on lab / contest. Fritz
gave everyone a starter application (which was a Netflix style web site) and told
everyone to “go to town” on adding AJAX to the site. At the end of the 2 hour
lab anyone who wanted to submit their creation to the contest could. In true
American Idol style, Fritz and Dr. Joe narrowed it down to a few contestants and then
the class voted on the winners. 2 solutions rose to the top: One by a developer
and one by a designer.
The developer’s solution was the best technical implementation of AJAX that was possible
in 2 hours. Every page of the site was AJAXed up and he used several different
techniques (Panels, Web Services, Control Extensions). He spent his time focused
on making the site really flow, but really did not touch any elements of the User
Interface. The designer spent his time improving the look and feel of the site,
updating the CSS and adding DHTML animation effects (using the features of the AJAX
Control Toolkit). After 2 hours it did look very appealing. There
was only 1 problem: There was no AJAX on the site. When it came right down to
it the site itself was still using postbacks, there was no client side web service
calls and other than using the stock components of the toolkit, no control extension.
The designer won the contest “hands down”. Only a few people raised their hands
for the best technical implementation. This example shows the need for the PhizzPop
teams to strike a balance between creating a pleasing experience and a technically
accurate one and if you have to focus on just one on them, the pleasing experience
should be where you invest your time.
Jeff Atwood just posted a blog article
yesterday titled Presentation:
Be Vain that talks about the need to focus on the presentation of the software.
Jeff’s blog post focused on the shipping software, but I think it also applies to
the design challenge as well:
Avoid creating software that’s beautiful on the inside but ugly on the outside. Be
vain. Make something that looks as good as it works. If you pay attention to the
presentation of your software, you just may find the rest of the world is a lot more
willing to pay attention, too.
Chris Bernard summed this up in this advice to the design teams:
“Things that are beautiful and that work are what seals the deal”
JSON
Many message formats have been defined for exchanging structured data: ASN, DCE RPC, ONC RPC, IIOP, DCOM IDL, , … Many alphabets have been defined, on which new languages (message definitions or RPC contracts) were built!
Although XML had its roots in the document centric world (as a successor for SGML), XML gained an immense popularity in the world of structured data. XML was considered a good standard for self-describing messages: no mixed content but tree-structured messages with data only at the leafs of the tree. First DTD’s and next XML schema’s provided mechanisms to describe the XML messages.
Pushed by HP’s eSpeak and XML-RPC, the SOAP protocol triggered the creation of the WS-* stack. But with the rise of AJAX and other Web 2.0 technologies, new alphabets emerge and gain popularity. JSON is one of those new kids on the block.
Rich Internet clients are not limited to HTML but use all sorts of message structures on top of HTTP. With the use of Javascript in the browser, a Javascript friendly protocol eases life. That’s what JSON is all about. Apart from JSON, many other protocols such as Adobe AMF pop up (performance comparison, thanks Stephan for the link).
Now, what is the impact for the integration world. Of course, JSON and others will be used for a few A2A and B2B scenario’s (although I haven’t seen any yet). But many tools will need to extend their XML support not only to REST, but to many other protocols. Organizations will keep one main entry point for all their HTTP traffic. Next to HTML and XML, JSON and others will be added. Therefore, infrastructure will be impacted first, e.g. XML gateways will need to add JSON support change their name from XML gateway
Standard ways of using JSON are already popping up, e.g. JAX-RS (JSR-311) adopted Jettison for JSON support and includes JSON-XML converter which follows the Badgerfish approach for JSON-XML conversion.
JSON-XML deserves our attention: a widely accepted XML representation for JSON (don’t use the word “standard”) will allow re-use of transformation logic. But I have some doubts around this Badgerfish JSON-XML conversion. It takes XML as a starting point, e.g. it puts XML namespaces inside JSON which doesn’t look nice.
Note: while attending SpringOne, I was caught by surprise when encountering the first use of JSON for a configuration file (for the new Spring container if I remember well)


