News & Views

Dr. Dobb's Journal March 2003

Tiny Executable Contest Concludes

When the folks at ProperKernel.com (http://properkernel.com/tiny/) organized their Tiny Programming Challenge last fall, they graciously allowed contestants the leeway of up to 2500 bytes for outputted binary. The winners—Jason Slagle and Cody Pritchard—didn't use anything near all that amount of space. For his FreeBSD entry, Slagle weighed in at 140 bytes; while, for his Linux entry, Pritchard came in at only 102 bytes.

The rules specified that entries had to be valid ELF images capable of outputting the string, "The deep gray mouse runs after the holy yellow cheese," followed by a carriage return, then returning control to the operating system without causing any segmentation violations.

"When I began, my original goal was to break 100 bytes," says Pritchard. "Unfortunately, I came within 3 bytes with my submission, and within 2 bytes with my later revision. I would still love to see that barrier broken...Hopefully, with the techniques I have presented here, you may be able to achieve that which I have not."

DeCSS, DMCA Prosecutions Fail

A closely watched court case in Norway, in which teenage programmer Jon Johansen faced criminal charges for writing the DeCSS utility to remove copy protection on DVDs, ended in a decisive victory for Johansen. The jury found no evidence that Johansen had used his program for any illegal purpose, and held that he also could not be punished for publishing his code online. In short, Johansen was acquitted on all charges.

In a related decision, the U.S. Supreme Court has upheld a ruling preventing Hollywood studios from using California courts to sue a resident of Texas who posted a copy of the DeCSS code on the Internet. The case is part of a larger suit filed by the DVD Copy Control Association against hundreds of groups and individuals; all but one of the defendants are located outside of California.

And yet another digital copyright case ended in acquittal last December, when ElcomSoft and Dmitry Sklyarov were declared innocent of violating the DMCA. Sklyarov, a Russian programmer, had written a utility capable of removing copy protection features from Adobe eBooks; and ElcomSoft, the company for which Sklyarov works, sold the program over the Internet. Sklyarov was arrested while traveling to the U.S. to attend a conference; the case subsequently drew broad scrutiny as the first criminal prosecution conducted under the DMCA.

While ElcomSoft's lawyers hoped to challenge the constitutionality of the DMCA, the judge refused to consider attacks on the legislation itself. Instead, the trial centered around ElcomSoft's intent to break the law. Jurors determined that the Russian executives had not fully understood the DMCA, and had not "willfully" acted to break the law.

Studying for the Turing Test

Gimpy, a program that changes ordinary text into wavy, colored characters designed to be easily read by humans but difficult for computers to recognize and created at Carnegie Mellon University, is now used by Internet service providers such as Yahoo to prevent bots from signing up for accounts. But it's not always so easy to tell man from machine—researchers at the University of California at Berkeley have created a program that can pass Yahoo's tests about 83 percent of the time.

Computer-science professor Jitendra Malik and graduate student Greg Mori created their Gimpy circumvention program in five days (http://www.cs.berkeley.edu/~mori/gimpy/gimpy.html). It works by selecting "candidate" groups of three to five possible matches for each of Gimpy's distorted letters. The program then attempts to make English words using one letter from each group, and ranks the resulting words according to how closely each letter matches the Gimpy image. The best match is returned as the result.

Embedded Linux Specification Released

The Embedded Linux Consortium (http://www.embedded-linux.org/) has released the first Embedded Linux Consortium Platform Specification (ELCPS). Intended primarily as an API spec, the ELCPS focuses on source-level portability so that applications can be recompiled for a broad range of embedded Linux targets. ELCPS borrows heavily from the Linux Standards Base, Standard UNIX Specification Version 3, and POSIX standards. One difference between the ELCPS and other standards, however, is that ELCPS macro naming conventions require an "ELC" prefix. Other differences involve multiple address space distinctions. The ELCPS does not address real-time issues. The specification is available at http://www.linuxdevices.com/files/misc/ ELCPS_v1.pdf.