Site Archive (Complete)
DrDobbs Portal Blog: August 2007 Archives
EDITOR'S EYE

The World of Software Development.

by Jon Erickson

August 2007


August 29, 2007

Second Life Happenings


Do you have a second? Need a second chance? Are bad puns second nature to you now? Okay, I'll stop, but by now you probably guessed that Second Life is today's topic. More specifically, there are two items of interest.

First, Drew Harry and Dietmar Offenhuber -- two MIT graduate students (which implies the "first" student and the "second" student) -- from the Sociable Media Group in the Media Lab have won MIT’s Second Life Design Competition. The challenge was to design and create within Second Life campus living spaces, represented by clusters of "Pods" that would let any student join Second Life and, with little foreknowledge, create and add their own Pod to a cluster.

The pair proposed an extensible cellular building structure, in which each Pod in the system is a flexible space owned by a single person and used for a range of purposes -- an apartment, workshop, gallery, store, classroom, storage closet, or whatever. To start new Pod owners off, cutomizable templates were provided.

Each Pod displays information that describes its contents, and users can browse for Pods that contain specific search terms. Each Pod also features a data collection system that records visits to the Pod so you can see how many people are currently in each space and how many people have recently visited; this data is shown on the Pod itself to make it easy to gauge popularity.

Secondly (you could see that coming), folks around here are gearing up for the second (there you go) Dr. Dobb's Life 2.0 Conference, a four-day event on September 15-21, 2007 on Dr Dobbs Island in Second Life. The program will commence with a two-day, eight-hour weekend bootcamp on Linden Scripting Language (LSL) application building, SL-to-web integration, open-source client (libsecondlife), developer tools, and new SL features.

Don't waste a second! Sign up now (it's free) and we look forward to seeing you -- well, if not you, then your avatar -- on Dr Dobbs Island.


Posted by Jon Erickson at 09:06 AM  Permalink |


August 24, 2007

Mirror, Mirror...


About the only times I think about mirrors are when: (1) I have to readjust the rear-view mirrors on my motorscooter, or (2) when I'm in the barbershop looking at the mirror in front of me that reflects the mirror behind me which reflects the mirror in front of me....

I admit I have a hard time controlling one mirror on my scooter, let along both of them. They just keep moving around. Which leads me to admire what the engineers working on the James Webb Space Telescope have done. They've been able to control the 19 individual mirrors comprising the telescope, enabling the mirrors to function as one. And they'll be doing it from a million miles away.

The James Webb Space Telescope is a large, infrared-optimized space telescope, scheduled for launch in 2013. Its 18 primary mirror segments cover a combined total area of 25 square meters (approximately 30 square yards) and a diameter of 6.5 meters (about 21 feet). and a sunshield the size of a tennis court. Since the mirror and sunshade won't fit onto the rocket fully open, they will fold up and open only once the telescope is in outer space. It will eventually reside in an orbit about 1.5 million km (1 million miles) from the Earth.

The orientations of the telescope’s 18 primary mirror segments and the position of the secondary mirror will be adjusted to bring light from the universe into focus through a process called Wavefront Sensing and Control (WFSC). The software aboard the observatory will compute the optimum position of each of the 19 mirrors, then adjust the positions, if necessary

The WFSC system is put to work when the telescope takes digital pictures of a star. It then processes the images through mathematical algorithms to calculate the mirror adjustments required to bring the stellar image into focus. When the individual mirrors are properly aligned, the Webb Telescope will be able to obtain extraordinarily sharp images and detect the faint glimmer of a distant galaxy.

Recently, a team of engineers from Ball Aerospace & Technologies and NASA successfully tested the WFSC algorithms, proving they are ready to work on the Webb Telescope in space. The algorithms were tested on a detailed scale model of the 6.5 meter space telescope and through computer simulations.

"This major technological accomplishment, which built on the legacy of software algorithms used to fix the Hubble Space Telescope and align the Keck telescope, is a major step forward in the development of JWST. This achievement was the result of great teamwork between Ball Aerospace, NASA Goddard Space Flight Center, and the Jet Propulsion Laboratory," said John Mather, Senior Project Scientist on the Webb telescope at Goddard and the 2006 winner of the Nobel Prize in Physics.

Posted by Jon Erickson at 11:41 AM  Permalink |


August 21, 2007

Dr. Dobb's Digital Publishing: (Way) Before Silverlight


As I've previously mentioned elsewhere (and will likely mention again), we've launched a new digital publishing project based on Silverlight, the cross-browser, cross-platform plug-in from Microsoft for developing Rich Internet Applications that utilize text, graphics, audio, and video.

This project revolves around two sites -- Sparkleball, a Silverlight-based game, and Flipbook, a digital magazine with text, graphics, supplemental video and audio files

Putting this new project together led me to recall our first foray into digital publishing when, back in June 1990, we published a special edition of the magazine using HyperWriter, a proprietary format developed by a company called Ntergaid. Scott Johnson, the chief bottle washer of Ntergaid, did most of the heavy lifting with the project. He later sold Ntergaid to Dataware and Ntergard (and HyperWriter) faded away.

Scott wrote an article entitled The DDJ Hypertext Project which described the project. We distributed it via 3.5-inch diskettes and online via CompuServe. If I recall, we produced two versions of the issue. The smaller, bare-bones version was available with the listings disk. The enhanced version was downloaded from the DDJ Forum on CompuServe. The bare-bones version required a monochrome display card and 640K of RAM. The enhanced version required a CGA, EGA, HGA, or VGA system, 640K of memory, and a hard disk. (So when was the last time you even thought about CGA or EGA?)

After a bit of research, I was able to root out one of the versions (that I was even able to probably says more about the state of my office than anything else) and you can download it here. It is a ZIP archive that includes a readme file that gives you instructions. Use at your own risk. And if you have problems, don't bother calling Scott at the phone number in the readme -- he's long since moved elsewhere.

Posted by Jon Erickson at 10:43 AM  Permalink |


August 20, 2007

Spec#: Contracts for C# and Then Some


Spec# (pronounced "Spec Sharp") is a programming system from Microsoft Research that, among other features, adds contracts to C#.

According to its developers, Spec# attempts to streamline the development and maintenance of high-quality software. "Our goal," say Rustan Leino, Mike Barnett, and Wolfram Schulte is to move "normally skilled programmers to a higher-integrity language" by adding specifications to their software. The system consists of the object-oriented Spec# programming language, a Spec# compiler, and the Boogie static program verifier.

"What we’ve tried to do," says Leino, the project lead, "is think about the whole experience of the language. How do you write the programs? What sort of specifications do you include in the programs? What do you do with them?

"The overall goal is to improve the software-engineering process," Leino goes on to say. "Software engineering is very expensive in terms of figuring out and designing what the program should do and then actually writing the programs. There’s a lot of cost in writing the programs up front to develop them initially. But a much larger cost is the maintenance of the program.

"What we’d like to do is make it more cost-effective in various ways. Programmers tend to run tests, so the testing accounts for a large portion of the cost of software engineering. That is, in some sense, what we’re competing with, but we’re not aiming to replace testing. We just want to be able to do it in a smarter way earlier in the software-development cycle, and the way to do that is to use specifications."

To make all this possible, the computer scientists focus on three issues:

  • Type checking
  • Pre- and post-conditions
  • Program verification.

What's unique about Spec#'s approach to type checking is how it checks for non-null types, to make sure that pointers within a program point to the objects for which they are intended. "When the compiler runs, says Leino, "the programmer gets that checking immediately."

In terms of pre- and post-conditions, Spec# resembles the Eiffel object-oriented programming languages. Like Eiffel, Spec# provides runtime checking of preconditions and postconditions. Leino explains: "The programmer, by writing down just one precondition in the entire program -- or two or three or 100 -- gets the benefit of our compiler generating runtime checking.

And when it comes to static program verification, Spec# analyzes the program mathematically to check that these specifications really always hold. That means that you need to have enough specifications in the program that you can convince even a program verifier that the program is correct.

As its "#" suggests, Spec# is a superset of C#, which means that it should be straightforward for C# programmers and Visual Studio users to adopt. While not as fully featured as Visual Studio overall, Spec# does provide additional quality checks thanks to contracts.

"Those can be put in a C# program as just comments," Leino explains. "That means that when the C# compiler looks at the program, it ignores the comments. But when the Spec# compiler runs on the same program, it looks into the comments and treats them as if they weren’t written in comments. C# programmers can download our system and choose to turn on contracts. If they do that, they can write contracts in the comments. Then, when they compile it in Visual Studio, they can first run the C# compiler, then immediately afterward run the Spec# compiler. Then they get all the whiz-bang features of C# and the benefits of our compiler."

Spec# also offers runtime checking for object invariants. An object invariant is a condition that describes the steady state of a program’s data structures, something difficult to verify statically. Spec# addresses this concern by utilizing modular checking, in which the program is analyzed bit by bit, one piece at a time. By taking a look at each piece of a program, the whole can be verified.

"Smoothing out the experience of using the system is a thing that we’re working on,” Leino says. "Trying to improve error messages or give more detail, and expanding the methodology to be able to handle more common programming idioms. Increasing the power of the specification language in certain ways. Improving the theorem-proving technology to make things faster and more effective."

For more information, see The Spec# Programming System: An Overview.

Posted by Jon Erickson at 09:39 AM  Permalink |


August 16, 2007

Knock, Knock...


Just what I need. A bot with attitude. Hey, if I wanted smart aleck responses, all I have to do is drop by the office from time to time. Or call up the boss.

But that's not good enough for Julia Taylor and Larry Mazlack who have unveiled a bot that recognizes jokes. Taylor, a doctoral student at the University of Cincinnati, is studying data mining , while Mazlack is the coordinator of the Applied Artificial Intelligence Laboratory and coordinator of the Data and Knowledge Management research group. Taylor focuses on humor in robots.

"This work has a relationship to 'Sociable Computing,'" says Mazlack. "Currently, computers are often difficult to communicate with, to use and to apply to solving problems that are informally stated." Taylor adds that "The idea is to be able to recognize jokes that are based on phonological similarity of words."

The program can in fact recognize jokes, but only when the necessary background and world knowledge are provided, she goes on to say. "The ontology that provides this knowledge is a work-in-progress at this stage. So, the software is far from being finished, but does produce some results.”

Taylor has been training the bot using knock-knock jokes that generally turn on people’s names. Knee-slappers like:

Knock, Knock
Who is there?
Wendy
Wendy who?
Wendy last time you took a bath?

"Part of the difficulty lies with the formality that computers and people need to use to interact with each other," says Mazlack. "A critical aspect in achieving sociable computing is being able to informally communicate in a human language with computers. Computationally handling humor is critical to being able to conduct an informal dialogue with a computer; Julia Taylor is making good progress in advancing knowledge in this area -- other people in my lab are working on different aspects of less formal ways of using computers."

Okay, try the bot out on this one (which, to the best of my knowledge, is a Dr. Dobb's Original):

Knock, Knock
Who is there?
Dr. Who

Get it? And you wonder why they don't want me to hang around the office.


Posted by Jon Erickson at 03:34 PM  Permalink |


August 14, 2007

Minature Wind, Big Results


As anyone who has driven by the wind tunnels at Moffett Field or the wind turbines in the Altamont Pass to the east can tell you, you have to think BIG when you think wind. Real big. Well, usually anyway

Which makes it even more amazing at what researchers have developed with a tiny "ionic wind engine". How small it it? Small enough to to be built on top of a computer chip. Millimeter size, in other words. Moreover, says Suresh Garimella, a professor of mechanical engineering at Purdue University who along with Timothy Fisher developed the tiny engine, the next step will be to reduce the size from millimeters to microns, or millionths of a meter.

So what can you do with such a tiny puff of wind? For one thing, it can used to cool computers and consumer electronics, letting them operate at lower voltages and to cool small hot spots. Experimental results have shown that the technology increased the "heat-transfer coefficient," which describes the cooling rate, by as much as 250 percent. When used in combination with a conventional fan, the wind device enhanced the fan's effectiveness by increasing airflow to the surface of a mock computer chip. The technology also could help engineers design thinner laptop computers that run cooler than today's machines.

"Other experimental cooling-enhancement approaches might give you a 40 percent or a 50 percent improvement," says Garimella. "A 250 percent improvement is quite unusual." He added that the new cooling technology could be introduced in computers within three years if researchers are able to miniaturize it and make the system rugged enough. Such cooling devices could be integrated into portable consumer electronics products such as cell phones.

Here's how it works: The device generates ions using electrodes placed near one another. The anode is positioned about 10 millimeters above the cathodes. When voltage was passed through the device, the negatively charged electrodes discharged electrons toward the positively charged anode. Along the way, the electrons collided with air molecules, producing positively charged ions, which were then attracted back toward the negatively charged electrodes, creating an "ionic wind." This breeze increased the airflow on the surface of the experimental chip. Researchers quantified the cooling effect with infrared imaging, which showed the technology reduced heating from about 60 degrees Celsius -- or 140 degrees Fahrenheit -- to about 35 degrees C, or 95 F.

Posted by Jon Erickson at 09:21 AM  Permalink |


August 11, 2007

One Man's Fluid Dynamics Is Another Man's NASCAR Race


I admit it. I don't get NASCAR. A lot of people do, of course, but not me. For that matter, I don't get golf either. Curling -- the type you play on ice, not in a hair salon -- I get. Fluid dynamics I get. But cars going in circles?

Luckily, enough people do get NASCAR enough to make it worthwhile for researchers to learn more about it. Which is what Zoran Popovic, an associate professor in the University of Washington's Computer Science department, has done. Along with Adrien Treuille and Andrew Lewis, Popovic has developed software that lets television viewers see how air flows around speeding cars. Applying what most Dr. Dobb's readers know as "real-time fluid dynamics simulations," Popovic's application calculates air flow over the cars, then displays it as colors trailing behind the car. Green, blue, yellow, and red correspond to different speeds and directions for air flow when two or more cars approach one another at speeds of 200 miles per hour.

The problem Popovic took on was to figure out how to simulate and display complex systems in real-time very quickly, and on standard (not high performance) computers. To make the simulation work in real time and be interactive, "you kind of need to rethink the math problem," Popovic says. "The method that ended up being used is drastically different from what people have done before."

The new algorithm first simulates all the ways that NASCAR cars behave. Then it runs the simulation for a reduced number of physically possible parameters. This lets the model run a million times faster than before. (For details, see their paper Model Reduction for Real-time Fluids.)

"What's interesting is how the flow from the car in front is affecting the cars behind," says Popovic. "When there are two cars behind, then the interaction becomes very complex."

An company called Sportvision, which creates technology to enhance sports coverage, has signed a nonexclusive, open-source license to the technology. Okay, I might tune in a NASCAR race just to see real-time fluid dynamics in action. But what I'm really waiting for is to see how it works in curling.


Posted by Jon Erickson at 03:46 PM  Permalink |


August 09, 2007

Seeing Your Smoke and Breathing It Too


If you like the idea of hanging around smoke-filled bars, but not the reality of it, then you can thank Wojciech Jarosz for coming up with a way to see your smoke and breath it too.

In truth, animators have been able to generate images of smoke, fog, and smog for a long time. But what they couldn't do is generate those images efficiently. What Wojciech Jarosz, who is a PhD candidate at the University of California, San Diego, has done is develop techniques for creating these visual effects much faster and with much less computational overhead.

With current-generation computer graphics techniques, the computer has to compute the lighting at every point along the smoky line of sight between your eyes and, say, someone on the other side of a smoky room. The approach Jarosz, Craig Donner, Matthias Zwicker and Henrik Wann Jensen came up with -- and describe in their paper Radiance Caching for Participating Media -- uses a computational short cut called "radiance caching" to create realistic images of smoky bars and other images where some material hanging in the air interacts with the light.

With Jarosz's approach, when smoke, clouds, fog and the like vary smoothly across a scene, you can compute the lighting accurately at a small set of locations and then use that information to interpolate the lighting at nearby points. This approach, which is an extension of "irradiance caching," cuts the number of computations along the line of sight that need to be done to render an image. In addition, the radiance caching system can identify and use previously computed lighting values.

"If you want to compute all the lighting along a ray, our method saves time and computational energy by considering all the precomputed values that happen to intersect with the ray," says Jarosz. He goes on to say that "our approach can be used for rendering both still images and animations. For still images, our technique gains efficiency by re-using lighting computations across smooth regions of an image. For animations where only the camera moves, we can also re-use the cached values across time, thereby gaining even more speedup."

Posted by Jon Erickson at 01:25 PM  Permalink |


August 07, 2007

Still Sounds Like Homework to Me


There's been a lot of concern -- and rightly so -- about the state of kids and science, particularly in the U.S. And that concern is based on the assumption -- one that is surely true -- that kids in the U.S. are falling behind in science, math, and other technical disciplines. In fact, according to one recent survey, the U.S. ranked 24th among 29 countries in terms how elementary-level students perform in math and science.

That's not good enough. Luckily, some organizations -- and you might be surprised who they are -- are doing something about it.


One organization is CMP Technology's Electronics Group. CMP Technology is, of course, the company that also publishes Dr. Dobb's Journal. For its part, the Electronics Group publishes EE Times, among others. What the Electronics Group has gone and done is launch a new community called the Innovation Generation -- a community for kids to explore their curiosity for math, science, and technology and experience the effect of innovation and create new ideas. To what end? Well, according to CMP's Paul Miller, there are two goals:

  • To help reverse the trend of U.S. children falling behind in science and math.
  • To create the next generation of engineers, scientists, and mathematicians.
  • And to have fun doing so.

Okay, that's three goals. Hmmm, maybe this is the kind of math impairment that the Innovation Generation is designed to tackle. Take a look at it and let the folks know what you think. Better yet, let your kids take a look at the site.

But CMP Technology isn't the only organization looking for ways in which technology can spur education. Microsoft and Tutor.com, for instance, have announced a strategic alliance that will provide on-demand tutoring to students who own Microsoft Student with Encarta Premium 2008, the recently launched software designed to help students complete assignments in subjects such as math, science, and foreign languages.

To jumpstart the project, kids who Microsoft Student with Encarta Premium 2008 will receive 75 minutes of free live online, one-to-one tutoring from Tutor.com. Students who use Tutor.com services can get on-demand help from a network of more than 1300 professional tutors located across the U.S. and Canada, as well as bilingual tutors from Latin America. According to Microsoft, access to a live professional tutor “right now” is a powerful tool when combined with the rich multimedia content of Encarta Premium and the homework tools, templates and tutorials found in Microsoft Student 2008.

Posted by Jon Erickson at 12:55 PM  Permalink |


August 06, 2007

Armchair Space Travel; Well, Almost


If the idea of space travel appeals to you as much as it does to me, you'll like the recent collaboration between NASA and Microsoft because it lets us view 3-D images of the space shuttle Endeavour before it launches into space. To make it possible, Microsoft Live Labs and NASA turned to a photo-imaging technology called Photosynth that uses hundreds of standard digital camera images to construct 3-D views of environments that can be navigated and explored in a highly intuitive manner.

Among other things, we can access the images to examine 3-D images of shuttle boosters, interior and exterior of the Vehicle Assembly Building, and the launchpad. By clicking and dragging a mouse, you can explore parts of the shuttle launch, zooming in to see the smallest decorative detail or zooming out and panning 360 degrees to place the shuttle in a wider context.

"This collaboration with Microsoft gives the public a new way to explore and participate in America’s space program," said William Gerstenmaier, NASA associate administrator for Space Operations. "We are looking into ways of using this new technology to support future missions."

"With Photosynth, we take pictures of an environment and knit them together into an experience that people can move through like a 3-D video game," said Blaise Aguera y Arcas, architect at Microsoft Live Labs. "NASA provided us with some outstanding images and the result is an experience that will wow anyone wanting to get a closer look at the Endeavour and its travels."

The specific collections created for this shuttle launch include:

  • The interior and surrounding area of the Vehicle Assembly Building (the largest one-story building in the world), used for housing external fuel tanks and flight hardware, and the location of orbiter mating (stacking) with the solid rocket boosters and external fuel tank to prepare the space shuttle for launch.
  • Endeavour on the launchpad, including amazing detail shots taken from a helicopter
  • The previous flight STS-117 shuttle Atlantis returning from Edwards Air Force Base in California to Kennedy’s Shuttle Landing Facility

Photosynth was created in collaboration between Microsoft and the University of Washington based on the research of Noah Snavely (UW), Steve Seitz (UW) and Richard Szeliski (Microsoft Research). It combines hundreds or thousands of regular digital photos of a scene to present a detailed 3-D model of a subject, giving viewers the sensation of smoothly gliding around the scene from every angle. The scene can be constructed regardless of whether the photos are from a single or multiple sources. It’s like a hybrid of a slide show and a gaming experience that lets the viewer zoom in to see greater detail or zoom out for a more expansive view. Viewing the photos in a 3-D context gives viewers a better sense for the place where the images were captured.

Posted by Jon Erickson at 02:43 PM  Permalink |


August 05, 2007

Upcoming Events Reminder


The dust has settled over Dr. Dobb's Architecture & Design World in Chicago, and speakers like Dr. Dobb's blogger Arnon Rotem-Gal-Oz and Dr. Dobb's columnist Scott Ambler have made it safely home. Well, that is if you don't count the summer cold that Scott is recovering from.

Which means, of course, what's next up on our plate is the SD Best Practices in Boston on September 18-21.

A lot of the speakers should be familiar to Dr. Dobb's Journal readers because they've also written articles. -- and a lot more who ought to be. Let's see, there's: John Graham-Cumming, David Intersimone, Kirk Krauss, Joe Marasco, Tracy Ragan, and Robert Seacord, among others.

The conference is organized around 8 tracks: Build and Deploy; C++; Design and Architecture; People, Projects and Teams; Process and Methods; Requirements and Analysis; Testing and Quality; Web Services/SOA; plus Secure Design mini-track.

Finally, it's worth mentioning that a couple of other events will be co-located at the same place, same time: RFID World and the Embedded Systems Conference.

I'd also like to share a pointer to another extraordinary upcoming conference -- Extraordinary C++. This event will be held September 23-26 in Astoria, Oregon at the Hotel Elliott, and will include a lot of folks who know a lot about C++: Scott Meyers, Eric Niebler, Andrei Alexandrescu, Walter Bright, and Dave Abrahams.

Sessions include an Overview of TR1; C++ Callbacks for C APIs; Choose your Poison: Exceptions or Error Codes? Memory Allocation: Either Love It or Hate It. (Or Just Think It's OK.); C++ Metaprogramming Concepts and Frameworks; Domain-Specific Embedded Language Design with Boost.Proto; Building Fast Lexers and Parsers; and Performance Tuning Your Application.

Posted by Jon Erickson at 07:54 AM  Permalink |


August 01, 2007

Face Recognition: An Impossible Mission?


The problem I've always had with biometric security is that I have a hard time separate fact from fiction. That's what happens when you watch too many "Mission Impossible" episodes. Guys peeling off rubber masks to reveal their real identity. Fake fingerprints. Voice matching.

While Tom Cruise has been working on the fiction part of the equation, Ioannis Kakadiaris and his crew at the University of Houston's Computational Biomedicine Lab (CBL) have been working on the fact. That's why they developed what they call URxD face recognition software that uses a three-dimensional snapshot of a person’s face to create a unique identifier. Just like Tom Cruise.

And, according to the results of the Face Recognition Vendor Test (FRVT 2006),a performance benchmark for 3-D face recognition technology, URxD does a pretty darn good job in 3D face recognition solutions based on the face’s shape,

"Accuracy is the name of the game in 3-D face recognition," says Kakadiaris. "What makes our system so accurate is the strength of the variables that we use to describe a person’s face."

Kakadiaris goes on to say that "remembering dozens of personal identification numbers and passwords is not the solution to identity theft. PINs and passwords are not only inconvenient to memorize, but also are impractical to safeguard. In essence, they merely tie two pieces of information together; once the secret is compromised, the rest follows. The solution is to be able to tie your private information to your person in a way that cannot be compromised."

That's true, but it sounds like Professor Kakadiaris hasn't seen Mission Impossible III.


Posted by Jon Erickson at 08:45 AM  Permalink |



November 2007
Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  


BLOGROLL
 
INFO-LINK


Related Sites: DotNetJunkies, SD Expo, SqlJunkies