Friday, July 24, 2015

Six Things Learned and One Thing Taught

Today is a special guest post of Today I Learned with Lady Jade Beacham.

Lady Jade 1) Stanford built a RNA design video game called EteRNA that asks people to design RNA strands that fold in particular ways.  The community of players discovered some design guidelines that outperformed the best RNA design algorithm (NUPack).

Sam 1) Beavers eat wood. At least, some parts of wood -- branches and bark, in particular. That's pretty unusual for a mammal. Beavers apparently have some kind of microorganisms in their guts that break down the wood, allowing them to digest around a third of the cellulose in it.

Also, it may be that beavers cut down species of tree they don't like (pine, for example) to make room for the species of tree they do like. I'm skeptical of this -- it could alternatively be that they just cut down lots of trees, and leave the ones they don't like alone.

Lady Jade 2) Caltech has a department that is designed to incubate any startups that are gonna start from Caltech grad students and their research - they help them bridge from academia to industry and deal with intellectual property issues and seed capital, and in return, get a chunk of the company.

Sam 2) Apparently reverse engineering is used as a way to get around patents. The idea is that you can have one team of engineers take apart a competitor's product and design spec sheets based on what they find. Then you give the specs sheets to a separate team of engineers and have them design a new product, from scratch, to fit the specs. If you have a nice clean paper trail documenting the whole-cloth design of your product from a spec sheet, you aren't necessarily liable for breaking patent.

Lady Jade 3) You can't pick a lock by pressing all of the pins all the way up and out of the lock cylinder, because the lock cylinder is too short for that.  Lucky because that would be a very easy way to pick any lock.

Sam 3) For most web apps, and some other applications, database lookups are really really bad for code performance. Often a database has to serve many different servers, which makes them very limited resources for the app. In general, don't put lookups in a loop. Instead, do as much precalculation as you can to figure out all the things you need from the database, then retrieve them all in one big query.

Bonus teaching moment: Today we taught that rocks are not alive. We spoke to a waitress today who, as it turned out, believed that rocks were alive ("they must be, because crystals evolve, right?") We informed her otherwise, and explained a bit about how crystals grow, which she seemed very pleased to learn about. Is this what being a professor feels like?

No comments:

Post a Comment