Friday, December 26, 2008

W3C mobileOK Checker

W3C mobileOK Checker is a new validator from W3C that checks websites for "mobile-friendliness". The complete list of tests is documented in W3C mobileOK Basic Tests 1.0 specification. The mobile version of this site auto-generated by MoFuse actually does pretty well on the test, scoring 94 out of 100. I hope MoFuse will consider improving the score by fixing the remaining issues.

Thursday, December 4, 2008

Return a tree of objects from a JAX-WS service

Here are the steps to return a tree of objects via a JAX-WS service:

Define the Node class with the necessary JAXB annotations:

import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Node {
  ...
  private List<Node> children;
  ...

  @XmlElementRef(type = Node.class)
  public List<Node> getChildren() {
    return children;
  }

  ...
}

Define the JAX-WS service method:

@WebMethod
public Node getTree() {
  ...
}

Deploy the service.

Use your IDE to generate the client proxy from WSDL. The client Node type will have:

public List<Node> getNode()

The accessor name changes as a result of the @XmlElementRef annotation.

Amazon Remembers

Amazon RemembersThis week Amazon released a free iPhone app that provides more native access to the Amazon store experience. It has the expected features like product search, product data, reviews and of course, 1-click purchases. In addition, Amazon has introduced a new experimental feature called Amazon Remembers.

Amazon Remembers allows customers to snap photos of objects of interest and upload them to Amazon. Once uploaded, Amazon uses MTurk to identify the product and within minutes the app notifies customers with a link to the matching product. In my tests, an iPhone snap was identified as the iPod Touch (since Amazon doesn't sell iPhones), a Pepsi can returned a link to Coca Cola (since Pepsi is not sold on Amazon or some MTurker has a wicked sense of humor), a Palm Z22 was not identified, and a book was identified perfectly.

Get the app from the iTunes app store.