Would you like to be rich, famous, and popular? Do you have mad computer vision skillz, and/or a Level 29 Jedi Ninja rating in embedded devices? You do? Excellent: drop what you’re doing and figure out
- how to laminate a bunch of CCD sensors onto the panels of a regulation soccer ball,
- how to transmit their images in near-real time to a nearby base station, and
- how to interpolate those images to create a reasonable picture.
What you’ll have when you’re done is a ball’s-eye view of a soccer game. A view of the striker’s incoming boot—meh. But the look on the keeper’s face as he makes the save? Or misses it?
It feels like it ought to be possible—if not this year, then next, or soon, anyway. Cheap flat cameras, low-power transmitters, and bug-eye image reconstruction are all available right now; the hardest part would be wiring up the ball in a way that doesn’t noticeably disturb its dynamics, but that’s just difficult, not impossible. And you could do it for American rules “football” too, if you wanted to lower yourself. It’d be fun, wouldn’t it? You know it would be. So what are you waiting for?
Great post from Joey deVilla about the hundreds of millions of dollars that flow each year from high tech companies to the ugliest warlords in the world. Don’t you just wish people at the G8/G20 in Toronto (the suits and the scufflers) had been talking about this? And don’t you just hope someone will bring it up the next time Steve or Steve gets up on stage?
Zuzel Vera Pacheco is studying how developers visualize SQL queries for her Master’s thesis project. She ran her last subject a few days ago, and yesterday did the draw for the gift card she was using as an incentive. There’s still a lot to be done—coding and analyzing all that data is going to take a month or more—but I’m really pleased that she is making such rapid progress.
The Google Summer of Code student I’m working with, Chas Leichner, has a working prototype of a two-pane folding editor for IDLE (the Tkinter-based IDE that ships with Python). This will let him edit control annotations for code side-by-side with the code itself, so that we can start experimenting with the kinds of control we ought to support. Neat!
From “Proving and Improving Teaching Programming Languages“:
SIGPLAN Education Board has produced a report “Why undergraduates should learn the principles of programming languages” which was presented at the ACM Education Council meeting. It makes four claims for why students should study programming languages:
- Students learn widely-applicable design and implementation techniques.
- Many students will need to create new domain specific languages or virtual machines, so it’s useful for them to study what’s known about languages.
- By learning programming languages, students learn new computational models and speed learning of new languages. ”The best preparation for quickly learning and effectively using new languages is understanding the fundamentals underlying all programming languages and to have some prior experience with a variety of computational models.”
- Students learn how to choose the right programming language for a task.
The problem is that we have empirical support for none of these claims. People are amazingly bad at transferring knowledge. People tend to learn about a specific situation and not recognize when the same idea applies in a new situation—or worse, they transfer negatively, mistaking the similarity and using older knowledge in an incorrect way.
From Marian Petre’s recent paper “Mental imagery and software visualization in high-performance software development teams“:
…even in debugging and comprehension, the experts relied more on their own systematic practices than on visualizations—and their use of available visualizations related to how directly the visualizations supported their practices. Tools which simply re-presented available information, which failed to provide forms of abstraction or selection, or which embodied assumptions at odds with the experts’ practices were discarded.
Take-up was extremely low in the context of design and generation. The exception was for general tools such as MATLAB, which allowed software developers to realize their own visualizations—in effect for visualization-builders rather than visualizations per se…(Please note that ‘Not invented here’ was never offered as a reason not to use a tool.)
The Jolt Awards for best software (and book) are back: this page on the Doctor Dobb’s Journal site has the schedule and categories. It’s a shame that neither of the collections I’m helping edit right now (one on evidence-based software engineering, the other on the architecture of open source applications) will be in print in time to qualify this year, but there’s always 2011
Announcements, Architecture of Open Source Applications, Making Software
In 2009-2010, almost 90 students from over a dozen universities across the country earned a course credit by working in teams on a variety of open source projects. Thanks to our friends at Google, O’Reilly, and CACS, the program is going to run again this fall and winter — see this announcement for details, and the new web site for more information.
So, if you are:
- an open source project looking for some talented help,
- a professor in a Canadian computer science department who’d like to help students learn how to work on real software in distributed teams, or
- going to be enrolled in CS at a Canadian university this fall, in your senior year (or grad school), with strong grades and a sense of adventure,
then please give the organizers a shout at email@example.com.
I’m partway through Bill Karwin’s new book SQL Antipatterns  and all I can say is, “Damn, this is good.” Important material, crisp writing, well-chosen examples—it’s exactly what a technical book should be, and I hope a lot of people read it.
 Fair disclosure: I’ve done two books with Pragmatic, and am working on a third.