Monthly Archives: March 2008

Meet the New Flaw

I was pretty excited when I heard that Microsoft was getting into scientific computing. As the world’s biggest desktop software company, I figured they might understand that scientific computing and high-performance computing are not automatically the same thing, and that reliability and reproducibility are more important than peak performance. Turns out I was wrong: the workshop I attended last September was dominated by discussion of topics like GPU programming and computational grids that are still bleeding-edge computer science, rather than the nuts and bolts that would actually help most scientists be productive day-to-day, Microsoft’s new HPC++ Computational Finance lab‘s site has a lot on speed but nothing on correctness, et cetera.

So where should they be spending their time? If I ran the world, they’d start by reading Buckheit and Donoho on reproducible research, double back to Jon Claerbout’s notes on the same, check out the Madagascar project, and then try to figure out how to scale up those ideas to hundreds of thousands of scientists and publications in as diverse a range of fields as possible. It won’t give the senator something to stand beside on opening day, but it’ll do science a lot more good.

Old Dogs Are Suspicious of New Tricks

There was a brief flurry of email on the DrProject list this week about using JSON instead of XML for communication between clients (in our case, browsers and the occasional client-side script) and servers.  The younger members of the team were excited about the advantages: less typing, easier to read, faster to convert to/from data structures, and shiny newness.  I said “no” because of the disadvantages: every implementation works slightly differently (XML may be broken, but at least it’s broken the same way everywhere), and it introduces a serious security risk [1] — I might not be able to think of a way to exploit it if all connections are HTTPS, but I’m just one guy, and I’d rather not require DrP’s users to bet that I’m smarter than all the villains in the world.

The whole discussion was an interesting reminder of how my priorities have shifted over the last ten years. I would have been on the juniors’ side in the mid-1990s; hell, back then, I still toyed with the idea of teaching people Scheme as a first language.  I guess part of growing old as a technologist is caring more about not stepping on traps than about missed opportunities…

[1] There are two ways to process JSON: use eval(), or parse it. If you’re using eval(), you are taking the risk that someone has embedded function calls in the “data” they’re sending you, in which case you just handed them the keys.  If you’re parsing, then what’s the advantage over XML, for which there are many well-tested out-of-the-box parsers?

An Unexpected Result

This term, the students in my third-year software engineering course have been working in teams to build a shared to-do list plugin for Facebook.  Each of the six teams has worked independently (well, as independently as students ever work) for the first three exercises.  For the fourth, each team conducted a review of every other team’s code to decide which one they would continue with for the final exercise.  They had to switch: teams were not allowed to continue with their own code.

Dave Wortman has been doing this “review and buy” exercise for a couple of decades. This time, the result is almost a perfect permutation:

  • Cereal and Pancakes have bought Waffles.
  • Eggs has bought Fruitbar.
  • Fruitbar has bought Cereal.
  • Porridge has bought Eggs.
  • Waffles has bought Pancakes.

I was surprised, as I’d been expecting there to be a clear winner.  I’ll be reviewing (and grading) the reviews over the next few days; it’ll be interesting to see whether groups got different answers because they’re using different criteria, or because… um… hm, I don’t have another hypothesis just yet.

Rising Stars of Research

UBC, UVic, and SFU are hosting this year’s “Rising Stars of Research” showcase on August 21-23.  Its poster competition is a chance for undergraduates to show off their research in Health Sciences, Biochemistry & Cellular Biology, Natural Resources & the Environment, Life Sciences & Psychology, Computational Sciences & Technology, and Physical & Earth Sciences.  I’d love to check it out, and I’ll actually be in BC around then for a wedding, but since it’s mine, I’m going to have to pass…