Tuesday, June 23, 2009
Code refactoring
Images from here and here.
Monday, June 22, 2009
iPhoto 2009: Faces
What probably started in the late 1990s (I'm just guessing), has gone a long way. Face detection has been in virtually all modern cameras for awhile now. Since January 2009, its also in photo management applications.
What I find most fascinating about Faces (as they affectionately call it) in iPhoto is their execution of what is essentially a semi-supervised learning process. For those unfamiliar, Faces basically works like this:
- iPhoto scans all your photos for possible faces. This is done once for every (new) photo.
- As you view your photos, you may name these faces, whenever convenient. iPhoto remembers these names.
- Even with only 1 labeled photo, you can open up the Faces category, and iPhoto will give you suggestions on what other faces may also be the named person.
- You click once to confirm. Click again to reject.
So the point in this semi-supervised process is:
- How can we make the process fun? Clicking on peoples faces is pretty fun.
- How can we make it convenient? Only one click is needed to confirm.
- How can we motivate the end-user? Integration with Facebook, a nice UI to display all faces and the corressponding photos.
What other affordances do we need to manage our photos? How else can we make use of our photos? What about other forms of media?
Photo obtained from iPhoto website. Copyright Apple Inc.
Sunday, June 21, 2009
ForeCiteNote
- A new note type for research that links to a paper (allowing access to the PDF, bibliography, online reading, annotations, keyword extraction, etc)
- Ingestion of PDFs, BIBs, ZIPs of papers
- Online sync support
- Metadata auto completion for the papers in your research notes
- Reading list to manage your papers
- Publish your notes as public or keep them private.
Saturday, June 20, 2009
Spectral Clustering
Here are some great papers on the matter:
- Ulrike von Luxburg (2007). A tutorial on spectral clustering. Statistics and Computing, 17(4), pages 395-416, December 2007. [Springer]
- Andrew Y. Ng, Michael I. Jordan, Yair Weiss (2002). On spectral clustering: Analysis and an algorithm. In Proceedings of Advances in Neural Information Processing Systems 14, Vancouver, Canada, December 2001. [CiteSeerX]
- Yair Weiss (1999). Segmentation using eigenvectors: A unifying view. In International Conference on Computer Vision, 1999. [PDF]
Guest blogger for ACL-IJCNLP
Here is an excerpt:
As a modern society, we interact with many things in our lives: from household appliances and mobile devices to pencil sharpeners and door handles. We take these everyday things for granted and interact with them seamlessly, but the truth is, there was a thorough design process for each and every one of them. Don Norman talks about this very problem in his book, the Design of Everyday Things [1] If everything was designed perfectly, everyone is happy. Sometimes however, the way we think an object should be used, differs from how the designers envisioned it. There is no sign on a door; should we pull the door or should we push it?
Since Norman’s book was first published in 1990, people’s notion of everyday things have grown to include more than just tangible objects. Every day, people interact with their operating systems, email clients, web browsers, search engines, web applications, games, etc. For these systems to function efficiently, users need to understand how to use them. Unfortunately, sometimes the same cognitive gap between user and designer becomes an obstacle. Consider searching for records in a digital library as an example. A 1998 survey indicated that a major usability problem with digital libraries is in finding the appropriate keywords for search [2]. In other words, users are having difficulty interacting with the search engine. Here and beyond digital libraries, the cognitive gap is often about translating user needs and/or tasks into keywords.
How can we close this cognitive gap? Perhaps we invite users to naturally express their needs and tasks in writing. Can we use NLP to understand them? (continued...)