Pages: pp. 10-13
6 Feb. 2007
"The Million-Dollar Recommendation," by Angela Chang
Netflix, an online movie rental service in the US, has created a contest to help improve its Cinematch movie recommendation engine — and will pay US$1 million to the person or team that improves its results by at least 10 percent.
In its current form, Cinematch offers recommendations based on customers' rental history and the ratings they give on returned DVDs. But customers complain that the suggestions are either for movies they don't like or have already seen.
The contest calls for a 30-day countdown once a team or person reaches the 10-percent-improvement requirement. Other teams can try to beat that score, but after 30 days, the best code gets the prize. To help the ecommerce industry at large, Netflix will grant the winner nonexclusive rights to the software — Netflix can use it, but the winner can still profit from it independently.
To date, the contest has attracted submissions from university researchers and programmers hoping to win the money or simply use it as a research or teaching tool. At press time, the top team was from the University of Toronto, which was using the contest to test their research in machine learning, an area of artificial intelligence that develops algorithms and other strategies to allow computers to "learn." You can track the contest leaders at www.netflixprize.com/leaderboard.
Dr. Dobb's Journal
"Java ME and the Command Pattern," by Darius Katz
Adding command actions in Java Platform Micro Edition (J2ME), the ubiquitous application platform for mobile devices, can be challenging. That's because they're controlled by the commandAction() method in the MIDlet class, a Java program for embedded devices — and the more commands you add, the longer the if-else chain gets. Also, if developers want to use the same command on another screen, they have to copy and paste the code, which is a difficult maneuver.
Katz outlines an economical work-around that uses the essence of the command pattern — which divides the part where the command is located from the part where it's invoked. His method puts the code in a separate object and then calls it up only when needed. A key part of his methodology is the Abstract-Command class, an abstract class that defines the interface and extends the command pattern.
Dr. Dobb's Journal
"Shelling the Pod," by David Summer
As podcasting's popularity continues to grow, it's becoming more difficult for listeners to find content that truly interests them and more challenging for podcasters to get their podcasts noticed.
Summer outlines one possible solution to both problems: a method he developed for creating dynamic podcast Web pages. His process involves using PHP, a server-side, cross-platform scripting language that lets developers create dynamic Web pages describing their podcasts and a separate page describing individual podcast episodes. The pages update automatically when their RSS feeds update.
An example of Summer's podcast display methodology is available at www.dicksummer.net/podcast.
"Ajax Debugging with Firebug," by Joe Hewitt
Accordingly, Firebug ( www.joehewitt.com/software/firebug), a free Firefox browser add-on, combines with any text editor to create an integrated development environment for the entire array of AJAX technologies.
To improve service, Ask.com has created integrated toolsets for its Ask City service that lets consumers use recommendations and reviews to plan whole nights out or trips to places they've never been.
Unlike other toolsets that give users separate maps and reviews of restaurants, movies, and businesses, Ask City integrates the queries into associated panes, weaving together content. It also gives tools for annotating plans and maps, saving them, and sharing them with others.
According to senior product manager Ryan Massie, Ask.com decided to create the integrated new toolsets after seeing that most local products put information like reviews and directions in separate silos.
Software Development Times
1 Feb. 2007
"Ruby In Steel Forges Ahead," by Alex Handy
A new Visual Studio add-on — Ruby In Steel — released in January lets Ruby developers use their code in the Microsoft integrated development environment for the first time.
Huw Collingbourne and Dermot Hogan, founders of SapphireSteel Software, created Ruby In Steel after they began programming in Ruby but discovered they still wanted to use Visual Studio.
Making Ruby In Steel wasn't a simple process — Ruby is a dynamic language and IntelliSense, Visual Studio's form of autocompletion, is designed for more static languages such as C++. "In order to get good, meaningful IntelliSense, we effectively had to build our own Ruby interpreter to analyze the code as it was being entered," Collingbourne said.
One of Ruby In Steel's most useful features is its fast debugger, nicknamed Cylon, which addresses one of developers' biggest complaints about the default Ruby debugger — namely, that it's dreadfully slow.
"Phishing Doubles Up"
A new Gartner Group survey reports that phishing attacks nearly doubled in the US from 2004 to 2006, despite the myriad security measures in place to prevent them.
An estimated 109 million US adults reported receiving phishing emails in 2006, up from 57 million in 2004, and losses associated with those attacks rose to more than US$2.8 billion last year. The average loss per victim rose from US$257 in 2004 to US$1,244 in 2006. And high-income adults earning more than US$100,000 annually received the most attacks, an average of 112 phishing emails in 2006, compared with 74 for consumers across all incomes.
6 Feb. 2007
"Dangerous Downloaders," by Larry Seltzer
The SANS Institute's Internet Storm Center ( http://isc.sans.org) has identified a new downloader that's making its way around the Internet. Although downloaders don't directly harm computers, the programs they download can be problematic. This new downloader collects a variety of malware, including browser helper objects that can affect Internet Explorer's behavior and add menus and buttons, keyloggers, and multiple versions of the same Trojan horse that are all slightly different.
But the most disturbing part of this downloader is that it executes a Perl script on a Web site that the Internet Storm Center believes is set up specifically to return the physical location coordinates for compromised servers' IP addresses, which can be passed to Google Maps. It's unclear what the hackers might do with the location data, but more targeted spam or phishing emails are two possibilities.
22 Jan. 2007
"XQuery Sets Stage," by David Stodder and Ben Dupont
W3C's XQuery 1.0, which brings an SQL-like method to XML data querying, is getting closer to earning the rank of official standard.
Last year, W3C moved XQuery 1.0 to Proposed Recommendation status. And, as often occurs with evolving standards, XQuery support is making its way into mainstream products: IBM's DB2 version 9 includes XQuery as part of its hybrid server, and Oracle is giving database developers the ability to embed XML inside SQL queries or use the XQuery standard. Also, businesses are starting to use XQuery to create XML dynamically for SOAP messages, reports, and database publishing.
Although XQuery is still immature, all these developments point to a potential increase in XML's data value. They also mean that relational vendors can bring XML processing deeper into the database engines. Those database management systems can then create XML indices for optimizers to use, allowing systems to process queries on XML data as efficiently as they do with SQL.
"Sun Makes Java Open Source," by Linda Dailey Paulson
Finally, after years of balking at the idea, Sun Microsystems has started to release its Java technology as open source software. By June 2007, most of Java's source code will have been released under the GNU General Public License version 2 that governs open source software, including the Linux kernel. Sun won't release the Java source code owned by other companies.
The decision to release the code to the open source community marks an about-face for Sun, which has closely guarded the source code for years, citing concerns about incompatible Java variations. In the end, the company feels the benefits of releasing it to the open source community outweigh those concerns. "Sun is confident that by making the platform more valuable and broadening its adoption, there will be more and more opportunities," said Rich Sands, Sun's community marketing manager for the Java Platform Standard Edition.
Open source pioneer Eric Raymond said the move marks one of the largest corporate contributions to open source development since Netscape Communications released its Netscape browser code in 1998, allowing for the creation of Mozilla and the Firefox browser.
IEEE Distributed Systems Online
"A Structure for Unstructured Data Search," by Greg Goth
IBM is at the forefront of efforts to develop a framework that will make searching unstructured data formats, such as email or text files, more efficient.
In 2005, Big Blue made its Unstructured Information Management Architecture (UIMA) open source. In December 2006, the company helped form the UIMA Technical Committee at the Organization for the Advancement of Structured Information Standards (Oasis). Then, when the Oasis committee was formed, the UIMA framework moved to the Apache Foundation's incubator.
The framework eliminates the requirement to create metadata for unstructured data types, a condition that developers often point to as an obstacle to making multimedia search technology more efficient.
Like any application that manages unstructured information, the framework has two parts: it analyzes the information, which could include semantic class detection and tokenization; and it delivers results with a semantic search engine. But UIMA-enabled applications can address a range of precision requirements in their results.
Eric Nyberg, an associate professor of computer science at Carnegie Mellon University's Language Technologies Institute, says the UIMA architecture is "an example of an architecture that is actually gaining traction. It's dramatically more successful than past architectures addressing the same concept."
IEEE Intelligent Systems
"AI Fuels Better Video Search," by Laurianne McLaughlin
Look no further than YouTube to see how video clips represent one of the Internet's fastest-growing sectors. Such a variety of clips is only useful if you can search them accurately, but video searching online remains problematic because metadata tags are often inaccurate. However, some researchers are using artificial intelligence to make video searches online more accurate.
One of these projects, which began at the University of Oxford and uses the television series Buffy the Vampire Slayer, aims to automatically annotate whole video scenes instead of using speech or face-recognition technologies.
The key to the Buffy project is combining information from subtitles, scripts on fan Web sites, and data from the video itself to generate an identity that can be assigned a proper name rather than an anonymous tag. The system uses statistical machine learning to achieve this — specifically, computer vision methods for facial-feature localization and face detection. The biggest challenge is deciding whether two images are the same person, which is made more difficult when lighting and facial expression aren't controlled.