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

The World of Software Development.

by Jon Erickson

December 2007


December 28, 2007

C++ or VB.NET: You Make the Call


One thing about holidays is that you usually get to see relatives you haven't seen for a while. This year, it was nephew Austin, a college student working towards a Bachelor of Business Administration in Information Systems degree. I'm not sure what it is all about, but suspect it is the kind of degree where I'll be working for him one of these days.

Of course, information systems isn't where we started talking. (Even I wouldn't do that to a kid who just finished finals.) Instead, we were on to more interesting stuff -- World of Warcraft, Call of Duty, and Assassin's Creed.

But return to his Bachelor of Business Administration in Information Systems degree we did, which gave me the opportunity to give some advice. (Okay, I admit to feeling like Walter Brooke giving advice to Dustin Hoffman in the movie "The Graduate": Brooke: I want to say one word to you. Just one word. Hoffman: Yes, sir. Brooke: Are you listening? Hoffman: Yes, I am. Brooke: Plastics.)

Back to my giving advice: From what I could tell, the degree is a standard business degree with special emphasis on how information flows in organizations to facilitate planning and decision making. It's not about computer programming per se, although a knowledge of computer programming is required -- and rightly so. Austin doesn't want to be a software developer, but he knows that programming is at the heart of information systems. Plus he just likes hanging around computers.

As it turns out, his degree does require one of two programming classes -- Visual Basic .NET or C++. And where Austin made his mistake is asking me which one he should take. Which gave me the opportunity to give advice (and, no, I didn't say "Plastics").

Knowing what you do about Austin's degree program (which is about as much as I know), what advice would you give him -- C++ or VB.NET? Drop me a note and I'll pass it on to Austin the next time we chat over World of Warcraft.

-- Jonathan Erickson
jerickson@ddj.com

Posted by Jon Erickson at 10:26 AM  Permalink |


December 26, 2007

Programming Language Release Update


'Tis the season for programming language updates, or so it would seem. Here are a few for starters:

If you've run across any recent language releases that would update this list, drop me a note.

-- Jonathan Erickson
jerickson@ddj.com

Posted by Jon Erickson at 12:00 PM  Permalink |


December 18, 2007

Empirical Modelling, or Color Me Sudoku


When it comes to puzzles like Sudoku, I'm no Will Shortz, or even a Mark Nelson. Nor, for that matter, do I have a leg up on researchers at the University of Warwick’s Computer Science Department who've taken Sudoku puzzles to a new level.

Based on the work of Meurig Beynon and PhD student Antony Harfield, what they've developed is a color-based Sudoku puzzle to demonstrate the potential of "Empirical Modelling":

Empirical Modelling (EM) is about making artefacts to support human thinking. Interacting with such artefacts using computer technology enables us to think with computers, and is quite unlike conventional interaction with programs. The former is personal and cognitive, to do with exploring experience and meaning; the latter is impersonal and circumscribed, to do with achieving functionality and efficiency. EM proceeds by elaborating scripts to create interactive artefacts that are works of the imagination, reflecting experience and current understanding but open to many interpretations.

They go on to say that:

The term 'Empirical Modelling' supplanted the term 'Agent-oriented modelling' in 1992. The epithet 'empirical' was adopted in part because our modelling principles are based on observation and experiment, and in part to avoid confusion with the concept of 'agent-orientation' that became mainstream over the period 1987-92. The term 'modelling' is more appropriate than 'programming', since EM involves the construction of artefacts, and an accompanying identification of primitive patterns of interaction with artefacts, that may or may not lead to the type of functionally determined behaviour that is characteristic of a classical computer program.

Okay, but what does that have to do with Sudoku? Well, Colour Sudoku adds another dimension to solving the puzzle by assigning a color to each digit. Squares containing a digit are colored according to the digit's color. Empty squares are colored according to which digits are possible for that square taking account of all current entries in the square's row, column, and region. The empty square's color is the combination of the colors assigned to each possible digit. This gives players major clues as darker colored empty squares imply fewer number possibilities. Got that? An empty square that has the same color as a completed square must contain the same digit. If a black square is encountered, then a mistake has been made. Players also can gain additional clues by changing the color assigned to the each digit and watching the unfolding changes in the pattern of colors.

If you want to try this out for yourself, go to www.warwick.ac.uk/go/sudoku.

Steve Russ, another member of the Empirical Modelling group adds this explanation:

Traditional computer programs are best-suited for tasks that are so well-understood they can, without much loss, be expressed in a closed, mechanical form in which all interactions or changes are 'pre-planned'. Even in something so simple as a Sudoku puzzle humans use a mixture of perception, expectation, experience and logic that is just incompatible with the way a computer program would typically solve the puzzle. For safety-critical systems (such as railway management) it is literally a matter of life and death that we learn to use computers in ways that integrate smoothly with human perception, communication and action. This is our goal with Empirical Modelling.

The only part I have a problem with is the "something so simple as a Sudoku puzzle." Like I said, I'm no Will Shortz, Mark Nelson, or, for that matter, Steve Russ.

-- Jonathan Erickson
jerickson@ddj.com

Posted by Jon Erickson at 09:07 AM  Permalink |


December 13, 2007

Combinatorial Testing: When Six Variables are Better than Two


Sometimes common sense wins out. At least that's what a team of computer scientists and mathematicians from the National Institute of Standards and Technology, the University of Texas, Arlington, and George Mason University have decided.

According to conventional wisdom, most software failures result from simple -- rather than complex -- events. Based on their research, what Yu Lei, Raghu Kacker, D. Richard Kuhn, Vadim Okun, and James Lawrence concluded was that even with software that has hundreds of different variables, most failures were caused by interactions between just two variables, although even more failures could result from interactions of up to six variables.

With this in mind, the research team went beyond conventional pairwise testing (that is, examining the interactions between only two variables at a time), and devised a technique called IPOG for testing different combinations of settings in up to at least six interacting variables at a time.

This led them to develop an open-source tool that catches programming errors by combinatorial testing. The tool which generates tests for exploring interactions among the settings of multiple variables in a given program will be available to beta testing in January 2008. The team is looking for beta testers. If you're interested in beta testing the software, contact NIST’s Raghu Kacker at Raghu.kacker@nist.gov.

Once beta testing is complete, the tool will be made available in executable format, and then in source code form as open source. The team expects that the tool will be particularly useful for increasing the reliability of e-commerce Web sites, which often contain many interacting variables, as well as industrial process controls.

Posted by Jon Erickson at 11:08 AM  Permalink |


December 11, 2007

Dr. Dobb's DVD Release 4: A Great Gift Idea :-)


One man's sales pitch is another man's public service announcement. As for the following, I leave it up to you to decide which is which.

So thanks to the blood, sweat, and big hard disk -- not to mention whining -- of Exec Editor Kevin Carlson, Dr. Dobb's DVD Release 4 is now available. The DVD includes all articles, source-code listings, and more, from January 1988 to (and including) December 2007. That's 20 years worth of DDJ packed onto a single DVD. Take Kevin's word for it.

As with previous releases, Kevin has included 14+ years of the C/C++ Users Journal, 4 years of The Perl Journal, and 4 years of Dr. Dobb's Sourcebook. He's also thrown in dozens of audio podcasts, and new with this year's release are videos.

The DVD is cross-platform, running on Windows, Linux, and Macintosh.

And the price is right--$49.95 for the time being--unless you're an upgrade person. Then the price is only $29.95. If you've previously purchased a Dr. Dobb's CD or DVD, you qualify.

So don't waste time. As I recently pointed out elsewhere, the holiday season is upon us and if you're like me, you've been wondering what holiday gift you were going to get for your loved ones. Now, like me, you don't have to worry. Happy holidays! Here's that Dr. Dobb's DVD Release 4 you've always wanted.

Posted by Jon Erickson at 09:09 AM  Permalink |


December 07, 2007

Chinese Programming Contest, or What was that I had for dinner?


Three things were memorable about the Welcome Party at CSDN-Dr. Dobb's Software Development 2.0 conference in Beijing China a week or so ago.

For starters, I didn't have to pay for it, even though CSDN editor-in-chief Mike Ming had me primed with credit-card in hand.

Secondly, for the most part I have no idea of what I ate. Those were either quail eggs or eyeballs. I don't know which. But it was all good. Come to think of it, I didn't have a bad meal the whole time in China, although I admit I passed on the green salad with Thousand Island dressing for breakfast.

Thirdly, the winners of CSDN/Microsoft Visual Studio programing contest were announced at the dinner and, thanks to my front row seat, I got to meet some of them. The contest was launched on October 9th and concluded on November 27th, just in time for judging to take place between the 27th and dinner. The goal was pretty straightforward:

...to make developers know more about the new features and productivity of Visual Studio 2008...Microsoft and CSDN hold this contest to build up a stage for all of you to show your cool, creative applications and ideas.

And there were some cool, creative applications and ideas.

  • The big winner was Tony Xia for his "T2Dictionary" software for learning English. The best I can tell, Tony adopted the Merriam-Webster standard US-UK word pronunciations and made MP3 recordings to facilitate vocabulary memorization and learning skills with recording on the part of the student. Clearly I could have used the English -> Chinese version, assuming one existed, at breakfast, lunch, and dinner. In any event, for his efforts Tony won a first prize of 10,000 RMB, which I think is about $4800 US. I'm probably wrong and I'm sure someone will straighten me out, but what do you expect from someone who doesn't know the difference between quail eggs and eyeballs.
  • The next winner was Fu Changyou who built "Excelsior," a distributed system that addresses thread (process) management issues, including log management, access control, and the like. Fu won a Sony camera, compliments of CSDN and Microsoft.
  • Next, Liu Jichao, Wen Peixiong, and Zhu Jim also won a Sony camera for their Agile software that implements code storage, search, browse unified management, and the like. The promise of this tool is to change programming habits so that you can code faster. I don't know which of the three got to take the camera home, but suspect they drew chopsticks to find out.
  • Zhao Yuepan won a copy of Microsoft Expression for his "The Great Battle of Tractor" which is a widely played poker game. Four players participate in the game and Zhao apparently came up with some clever algorithms to handle deductive reasoning.
  • Qiu Wenbin also won a copy of Expression, but for his "Silverlight Fashion Image Design," a Silverlight 1.1 based application that lets you change your hairstyle, eyebrows, shape of your mouth, clothes combination, and the like. Sounds like what I do all the time with my Second Life avatar. But Qiu's application also includes a score function which rates how pretty your avatar is. Well, you can count me out.
  • Finally, Chen Jianbo won the last copy of Expression for his "Fire Hawk," an arcade-style shoot 'em up game developed by C2MATRIX. The 3D game includes different kinds of weapon systems, fighter planes, and the like. All for your "maximum enjoyment."

While you can't tell it from my descriptions, the software these folks created was cool and they deserve a round of applause. As did the chef for the dinner. Anyone who can make me go back for a second helping of quail eggs or eyeballs deserves a pat on the back.

Posted by Jon Erickson at 06:14 PM  Permalink |


December 04, 2007

The Open C Challenge: And the Winners Are....


Congratulations to Sittiphol Phanvilai, Pu Zhihua, TongRen, and Steve DeLaney. Who, you ask? And for what?

Well, the "who" part is that these guys are the winners of the Open C Challenge, which takes us to the "what" part. The Open C Challenge was a contest sponsored by Forum Nokia, along with Orange the Symbian Developer Network, which invited developers to build or port mobile or desktop environments to/for Nokia's S60 platform on Symbian OS, or Native Symbian C++. (For more information on Open C, see Open C: Paving the Way for Porting.)

The $10,000 Grand Prize Winner is Sittiphol Phanvilai, from Bangkok, Thailand, for MobiTubia, a Flash Lite video player and YouTube portal application with real-time decoding for the S60 platform. (For information on Flash Lite, see Flash Lite: Graphics for Mobile Devices.)

MobiTubia lets mobile users access FLV clips using several different methods. Additionally, the application allows users to browse and search for specific content on YouTube. Sittiphol ported 25,000 lines of code to the Open C environment to make the application compatible with S60 on Symbian OS.

The $5000 First Runner-Up prize when to Pu Zhihua of Shanghai, China for his application LiveTraffic traffic assistance software that provides real-time traffic information. Live Traffic uses FCD (Floating Car Data) technology to acquire road traffic information anywhere anytime, and publish mapped traffic information to Nokia phone users via GPRS or EDGE connections. The developers ported 2,500 lines of code via Open C.

The $3000 Second Runner-Up TongRen, also of Shanghai, China, for his MobiClass application which is a virtual multimedia courseware application of about 16,000 lines of code ported using Nokia’s Open C Plug-in.

Finally, the $2500 Third Runner-Up prize went to Steve DeLaney of Carlsbad, CA for his ViewRight, a streaming mobile video application. Verimatrix, a CA/DRM supplier, contracted with Steve's company to develop the ViewRight application, which lets users watch television from their mobile devices. The application includes mobile video wireless download UI, proxy streaming, client, and crypto middleware for Symbian 3G DVB-H H.264 platforms. Steve ported 5000 lines of existing Posix code and implemented new Posix for integrating mobile platform streaming support.

So congratulations to each and everyone. As you can see from the videos, their applications are very cool.

Posted by Jon Erickson at 05:29 PM  Permalink |


December 03, 2007

Traveling Salesman to the Max


Talk about "eXtreme Traveling Salesman" problem...Engineers at the University of Missouri have implemented an algorithm that determines the most efficient path for a spacecraft's journey from point A to point B--no matter how far away.

In validating the algorithm, Craig Kluever, a professor of mechanical and aerospace engineering in the College of Engineering, and former MU student Aaron D. Olds, tackled the 1997 Cassini Mission -- one of the most complicated explorations ever undertaken.

The trajectory generated by Kluever and Olds, described in their paper Interplanetary Mission Design Using Differential Evolution (published in the Journal of Spacecraft and Rockets), matched that created at the Jet Propulsion Laboratory (JPL), which developed Cassini's 7-year route. Their mission-design software, which relies on optimization methods patterned from genetic evolution, makes sending a rover to Mars look relatively easy, Kluever said.

"You don't need complicated mission software for Mars missions," he said. "If you look at the trajectory, it doesn't require a lot of twists, turns and gravity assists. It's a straight shot. You need complicated mission software for ambitious missions to a comet, asteroid, moon of Saturn or beyond. We're talking about missions where an unmanned spacecraft would fly by Venus to do a gravity assist and then fly by Jupiter to do a gravity assist. Before that, it may have to coast a year and half to come back to Venus for another gravity assist. These very high-energy targets require orbital tricks. Timing all of these maneuvers to find the optimal solution is complicated."

Kluever said complex missions are launched roughly every three years with the goal of learning more about the origins of the universe. He said the mathematical principles behind the mission software developed at MU have been embraced primarily by the European Space Agency but thinks it could attract NASA's attention. He said when NASA begins planning future robotic missions "it will need software like this to solve those types of problems. But a lot of it depends on what NASA's going to do with human space travel over the next 10 to 15 years."

Posted by Jon Erickson at 07:54 PM  Permalink |



January 2008
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 31    


BLOGROLL
 

♦ sponsored
INFO-LINK


Related Sites: DotNetJunkies, SD Expo, SqlJunkies