Before anyone jumps in with "Why do all that coding just to do what I can do with my hand and chest?"...this is a cool hack that shows practical code for breaking down a video file and measuring changes. The same concept could be used to, for example, count number of unique faces that pass through a room/hallway. Or, for a C-SPAN clip, gauge when who speaks when (depending on whose face is center-frame during a debate). And other less pedantic ideas.
Plus computers actually remember things. I think anyone here can see that a computerized method of gathering data isn't interesting for the method per se but the ease of keeping and analyzing said data over a period of time.
http://hackerne.ws/item?id=4062216 " Eulerian Video Magnification for Revealing Subtle Changes in the World (mit.edu) 555 points by clockwork_189 57 days ago | comments
"
Interesting read. I think that the combination of Ruby (for data aggregation and preparation) and R (for calculation and visualization) is great. For instance, in the related-but-not-exactly category:
It seems like folks who use R tend to be from a scientific community where Python has greater respectability and acceptance. But I see some similar "Lispiness" in R and Ruby that make them somewhat natural to use in conjunction.
I second this. I'm a scientist who also happens to program (as more of us are finding we need to do). The two languages I use the most are R and Python. Most of the time, I don't even give Ruby a second thought because it seems to be primarily geared towards web development. In general, I shy away from web development, but I know that Python is more than capable if I wanted to try it out. There really doesn't seem to be any incentive for us to learn Ruby.
Ruby also has the reputation of being much slower than Python, and speed is crucial in the scientific community when it comes to handling data-sets in the range of terabytes.
Edit: Also, when it comes to computer-technology the scientific community outside of CS generally lags far behind what CS is coming up with - for example, blastn, the most commonly used algorithm in biology for nucleotide-comparison, still doesn't have a proper 100% multithreaded solution.
There is also no adaption of NoSQL or any other of the "modern" data-storage solutions.
> Ruby also has the reputation of being much slower than Python, and speed is crucial in the scientific community when it comes to handling data-sets in the range of terabytes.
If we are talking computation speed, the difference between Ruby and Python is a floating point error.
> There is also no adaption of NoSQL or any other of the "modern" data-storage solutions.
NoSQL solutions are "modern", but that doesn't equate to being better. I am more than familiar with almost all major NoSQL players(redis, mongo, couchdb, cassandra etc), and for 99% of the cases, RDBMS is better solution. There is no adoption in scientific community(or most communities) because there isn't a clear benefit. I neither try to use RDBMS as a key-value store, nor do I twist my relational models to fit into a NoSQL offering(mongo makes the translation easier, but lacks things I need).
I have to agree that this is a stellar combination. Another huge win with Python, for me at least, is RPy. It's a great way to clean up a bunch of R scripts into one centralized python file. Makes it much easier to create command line tools than doing it in pure R.
I enjoy using Ruby also, but I really think it's weak in image processing. Correct me if I'm wrong, but rmagick is pretty much the only thing out there and it has had its fair share of problems, along with being a pain to get running on Windows.
I've been reading your book for a week now Sau Sheong Chang, I can't stop! It's a fascinating read! I'll let you know when I'm done, thanks for writing this!