The future of computing is apparently really boring.

So I read the “NYTimes Future of Computing Science section”: today and was pretty underwhelmed. The presentation of the articles was incredibly dull with almost no visualization. The articles themselves were mostly soporific. The quantum computing article told me nothing. The bioengineering article didn’t inspire. Nothing else did anything for me. I usually like the Science Times section but this was the most boring edition of the year, and I’m not the only one who thinks this way, the non-nerds in the house agree.

It is way more inspiring to play with the latest video games, or to play with the latest devices and apps, or to talk with young entrepreneurs. I’m surprised at how dull the topic seemed in the Times. This edition will not inspire any young people to enter the field.

I just ordered my Lytro camera.

Available February/March next year. The “Lytro”: features a technology they call “light field” — they grab sufficient photon data at capture time to allow refocusing, zooming, etc as a post-capture option. The Lytro is a simple step on the way to a full software-defined lens — I first wondered about such a lens in 2003, should have filed a bunch of patents. Other people are pushing the idea ahead, see for instance “Software Defined Lensing”:

As the writeup points out, you can view a traditional glass lens as a kind of quantum computer with a single fixed purpose, established at manufacture time. The lens captures all the incident photons, does some photonic/quantum computation, and spits an answer out on the CCD. But if we can replace the lens with something that has much more dynamic, programmable behaviour, well very cool things could be done — arbitrary refocusing and zooming being just the simplest example. A much broader set of incident radiation could be captured, spectral analysis of the image could be performed, filtering of the image, incredible levels of zoom, etc.

The Lytro is a very modest step in this direction but exciting.

Recent nonfiction — Lithium, Jetpacks, Space Station, Revolutionary War, Spintronics

“Out of Orbit” and “Unlikely Allies” are the stars of the group.

* “Bottled lightning: Superbatteries, Electric Cars, and the New Lithium Economy”:amazon by Seth Fletcher. Decent nontechnical book about the lithium battery and lithium production. Entertaining intro to the topic. Amazon gives it 4 stars, I’d say 3.5, would have liked a little more technical depth.
* “Where’s My Jetpack”:amazon by Daniel H. Wilson. Short essays on the Jetpack, moving sidewalks, and other promised tech from sci fi. Kind of bland. Amazon says 4 stars but I’d say 2. Maybe if I didn’t already read a lot of scientific literature and science fiction, I’d like this. But I suspect all the readers of this book have a science/science fiction bent.
* “Out of Orbit”:amazon by Chris Jones. Terrific true story about shuttle/international space station astronauts. Really digs into the emotional side of their trips, the highs of space travel, the lows of dealing with isolation and with the loss of colleagues in the shuttle disasters. Very compelling. Amazon says 4 stars, at least that.
* “Unlikely Allies”:amazon by Joel Richard Paul. The story of an American and two Frenchmen during the Revolutionary War, and their involvement in securing the support of France — both diplomatic and material support. Fascinating look at a facet of the war that I knew little about. Amazon says 4.5 stars, I’m good with that.
* “Introduction to Spintronics”:amazon by Supriyo Bandyopadhyay, Marc Cahay. This book is a good introduction if you already have a solid technical foundation in quantum mechanics at the graduate level — be prepared for a lot of math. If you want a nontechnical intro to spintronics, look elsewhere. Amazon says 5 stars but that is based on a single review. It is a very solid book though.

Scientific computing and the cloud

This year I’ve had a chance to experiment with tools for compute intensive applications. In particular, tools that harness the profusion of inexpensive CPU/GPU cycles available — OpenMP for multi-threading on single machines so that multiple cores can be leveraged; MPI to distribute compute load over clusters of machines; OpenCL for handing general purpose computation off to a graphics processor. And then on top of these tools, NumPy and SciPy for scripting and visualization from Python. The amount of excellent computational software which is now available is amazing, these capabilities would have cost immeasurable amounts of money just a decade ago. And the first time I tied together a cluster of machines or yoked up a GPU and did a massive computation, and then displayed the animated results using Python — what a great feeling! The ability to attack really hard, really large problems is better than it is has ever been.

But what a nightmare of housekeeping. Breaking up computation into threads and spreading it across multiple cores with shared memory and file system is tedious and error-prone — hand-offs between threads create opportunities for many errors. The work to break up and manage the computation load across multiple machines is even more mind-numbing and error-prone, and now the lack of shared memory and files are additional complications. Using graphics processors is even more obtuse, with their funky fractured memory spaces and architectures and limited language support. And getting all the software piece parts running in the first place takes a long time to work through all the dependencies, mixing and matching distributions and libraries and tools, and then getting it all right on multiple machines. And then you get to maintain all this as new versions of libs and runtimes are released..

But again the results can be stunning — just look around the web at what people are doing in engineering (“Youtube video”:, life sciences (“Science Mag article”:, or any of a dozen other areas. Harnessing multiple cheap processors to perform complicated modeling or visualization can have huge payoff in financial services, bioinformatics, engineering analysis, climate modeling, actuarial analysis, targeting analysis, and so many other areas.

However, it is just too darn hard to wield all these tools. The space is crying out for a cloud solution. I want someone else to figure out all the dependencies and library requirements and spin up the correctly configured virtual machines with all the necessary componentry. And keep that up to date as new libraries and components are developed. I want someone else to figure out the clustering and let me elastically spin up 1, 10, 100 machines as I need to, and manage all the housekeeping between these machines. I want someone else to buy all the machines and run them, and let me share them with other users, because my use is very episodic, and I don’t want to pay for 100 or 1000 or 10000 machines all the time, when I only need the machines for a week here and there. Maybe I want to run all my code in the cloud, or maybe I want to have all the VMs and clustering info delivered to my data center, but I want someone else to solve the housekeeping and configuration issues, and let me get to work on my problems.

Amazon is doing some great work in AWS with their HPC support (“AWS HPC support”:
Microsoft has made a commitment to provide scientific computing resources in the cloud (“NYT article”: There is a lot of great academic work happening (“ScienceCloud2011”: But the opportunity is out there to do a lot more.

Link cleanup

A bag of stuff I’ve read recently that was compelling:

* “Coffee as economic health indicator”: Yay Seattle! Contrast with…
* “World Class Orchestras”:
* “McKean’s Inversion”: Whatever you publicly espouse to be — you probably aren’t.
* “Wicked Problems”:
* “A one page explanation of the Higgs boson”:
* On the lighter side, “Bacon Ipsum”:

Playing around with GPU programming

Been spending a lot of time playing around with GPU programming for scientific computing the last couple weeks. Fascinating stuff, GPUs are computational beasts. Some observations:

* If you want to get into it, “”: has boatloads of great info — news, tools, definitions, primers, etc etc etc. The place to start.
* There is a good chance you’ll end up using OpenCL as the device- and platform-independent interface to GPUs. “”: has tons of great info and in particular, the “OpenCL Reference Card”: Good stuff.
* The OSX platform has awesome support for OpenCL within Xcode. Very easy to get up and going. Great sample code up at the “Apple Developer web site”:
* Also tons of samples from “Nvidia”:
* However…you may quickly hit a dead end on OSX because only the most expensive Mac Pros come with GPUs which will support double precision, and double precision is kind of necessary for scientific computing. Info on which Nvidia processors support double precision “here”: I could go whack around and build my own double precision math libraries for unsupported GPUs but what a pain that would be.
* So onto a PC, I happen to have one with an ATI HD 57xx which will support double precision. WAY harder to get working OpenCL code working on a Windows PC tho. After much wandering around, the “AMD SDK” seems to be the best way to get working buildable OpenCL sample code. The most freaking obtuse make files ever tho, I am ripping them apart. But if you start with one of the sample code bases and duplicate it for your use, it works. (C++ by the way).
* However now I am currently blocked by limitations in the trig function implementations. Some discussion online that suggests that they are “single precision only”: And even the single precision results seem to have crappy precision. I will definitely have to build my own.

UPDATE: a friend points out that Amazon also offers an “EC2-based instance with GPU capabilities”: Worth a look

Math software sources

Saving for later reference….

* “Netlib”:
* “NIST”:
* “Trilinos”:
* “PETSc”:
* “OpenCL”:
* “Nividia OpenCL”:
* “Apple OpenCL”:
* “NERSC”: ACTS stuff dead?

Interesting — Roundest Object, Sonic Black Hole, Relativistic Arbitrage

* “Roundest Object In The World”: I could so bowl 300 with one of these.
* “Sonic Black Hole”: Bring one of these to your next meeting, watch hilarity ensue.
* “Relativistic Statistical Arbitrage”: This is why I would make a crappy day trader, I always forget to include relativistic effects.

Computational Fluid Dynamics – my winter quarter adventure

This course may kill me as I know nothing of fluid dynamics, but I am hoping the computational focus will play in my favor. I’m not so interested in macro-scale behavior but more focused on nano-scale applications.

Computational Fluid Dynamics (CFD) is a set of methodologies to solve numerically the governing equations of fluid motion. In the past decades, the development and use of CFD has widely grown in both academia and industry to perform fundamental studies and engineering computations of fluid flows, e.g. for the design of airplanes, turbine blades, jet and rocket engines. This course is an introductory course to CFD covering its fundamentals, as well, few advanced topics.

The students completing this course in good standing are expected to learn: 1. the fundamentals and few advanced topics in CFD; 2. to select and implement numerical schemes for solving model equations for fluid dynamics; 3. to write and execute their own CFD codes (in Fortran or C); 4. to postprocess and analyze CFD results; 5. to write technical reports on CFD results.

Year end link clean up

* “Poor Halo play prompts stabbing threat”: Doesn’t seem unreasonable. I’ve heard campers threatened with worse.
* “How Secure Is My Password”: No idea how accurate, but fun. 17 thousand years for my typical password.
* “Rich on photobooks”: I just always use the default in Aperture but perhaps I should branch out.
* “AR.Drone”: Why don’t I have one of these yet.
* “Declining energy quality as recession cause”: An interesting way to look at things. Not sure it actually makes sense tho.
* “Now you can swap useless Amex reward points for useless Zynga crap.”:
* “Snoopy themed Windows tablet”: Take that, Apple.
* “Spiders on Drugs”: We are asking for some serious payback from spider nation some day.
* “Umpteenth article on the death of cable TV”:, yawn. Until I can watch HD live sports without stuttering I am captive to cable/dish. Going to be a while.
* “Charles on breaking up MSFT”: Good as always.
* “Habitable planet found?”:
* “Languages you’ve never heard of”: In the future, we will all have our very own programming language.
* “Topologist suggests new form of matter”: For most of our history we’ve used the forms of matter that nature gave us. It is interesting to observe and think about what we can create as we gain mastery over atomic organization.
* “One man’s indictment of iTunes”: The thing is a giant hairball of software.
* “Exercise and aging”: Crap I need to get after it.
* “Show Me What’s Wrong”: Super useful.
* “User experience of F1 telemetry”: Always impressed with the amount of money spent on racing.
* “MacPaint and MacDraw source code”: Nostalgia.

Feed by Mira Grant

Silk and Timber electronics

“Paper and Lignin-based RFID tags”: “Silk electronic metamaterials”:

Seems like we are not far away from having processing power embedded in damn near everything. Not lots of processing power, but enough to do identification and limited sensing. Interesting times.

Moving off of Matlab for numeric/image processing

Reardon abused me (not really) for still using Matlab and goaded me to look into the ImageJ world. So I am learning. Seems like I need to get smart on

* “ImageJ”: and the “Fiji”: distribution
* Python derivatives like “Jython”: for ImageJ scripting and “NumPy/SciPy”: for numeric/array processing
* There are a ton of other scripting language choices but seems like python covers this well enough. I don’t want the brain damage of “Clojure”:

Other stuff to learn? I’ll have to pick up an editor and source management tool as well. The benefit of all this? Any code I write should be faster, more easily redistributable, and there is a large support community. The disadvantage? I have to assemble all these piece-parts to get something equivalent to MatLab, so more time d&*king around with software which is time taken away from research focus. And the Matlab universe has a pretty good support community too, so not clear I am trading up there. Certainly the ImageJ/Jython/NumPy path is “cooler” along a certain dimension, but do I care?

Cannon roundup — EMP cannon, Shock cannon, Vortex cannon

* “EMP cannon”: Mount one of these babies on your trunk and eliminate that tailgating problem.
* “Shock Cannon”: and here is how to get that solicitor off your porch.
* “Vortex Cannon video”: Probably a bit more powerful than I ever thought about building at Halloween.

Science reading

* “The Year In Materials”:
* “Chromoscope”: Fascinating, there is a lot going on we can’t see.
* “Massive white dwarf may go nova, endangering life on earth”: Maybe the Russians can go fix this after they master “deflecting asteroids”:
* “World’s smallest snowman”:
* “Ancient computer”: — we are not so clever as we think we are.

Grabbag of interesting articles on math, econ, science, design, web

No theme here other than “stuff I happened across recently”

Materials/Science grabbag

No time to blog, fall quarter starting, and travelling too. Dump of stuff that is interesting:

* “Ultimate Productivity Blog”: I think that is clear.
* “Paintable transistors”: Semiconducting polymer stable when applied at room temp, cool.
* “Hydrophobic Nano Grass”: Nano scale fluid handling tech is pretty awesome.
* “Fantastic Solar System Photos”: Humbling and inspiring.
* “Structural Color Printing”: Structural colors are very cool — colors created by the nanostructure of an item, not by dyes. And now you can manipulate the color dynamically.
* “Atoms jump around a lot”:
* “Bionic Eyesight”: You rushed ahead and got Lasik surgery, while those of us late to the party are going to be able to see through walls and have heat vision.

Thinking that intrigues me

* Touchable holography. Uses tracking cameras and directed ultrasound to create interaction and physical sensation. Cool demo.
* Algortihmatic – online library of algorithms and IDE. Cool tho limited.
* The LED’s dark secret. Droop in LED performance to be overcome for broader use.
* Plasmobots — “their previous research has already proved the ability of the mould to have computational abilities”.
* Ford Mike Rowe video. I didn’t realize they automatically tracked every single assembly operations through the tools. Fascinating.
* Brad Feld’s open office hours. An intriguing idea. Commendable.

Quick software/hardware trial notes

* WPTouch plugin for wordpress is awesome. check out from your iphone.
* Messing around with Slingbox finally. Works well tho I had to massively reconfig home network to get rid of routers — configuring to get through one router was reasonable; getting through two was nearly impossible; getting through the three I had in place would have required several PhDs.
* Download Manager Tweak. Probably prefer download statusbar
* Vacuum your firefox db. No idea if this actually did anything. Didn’t seem to make Firefox explode so I guess that is a plus.
* Polymath. Lots of great links to math formatting services for the web.
* Gliffy plugin for wordpress. Seems like it could be useful as well.