The Tree of Life Is Back

For those of you who grew up with a typology for biology as neat as the periodic table was for chemistry, you know the frustration that the various permutations the tree of life has undergone, including breaking into various zones — and we won’t mention that the periodic table has had its own reasons to be made more flexible. *Frustrate no more!* It looks like there’s an emergent synthesis that might make holding a visualization of the varieties of life in your head possible once more. (You are, however, going to need a slightly bigger head.)

Details are available at [PNAS](http://www.pnas.org/content/early/2015/09/16/1423041112.full.pdf). (Link is to PDF.)

Everything Is Moving

I saw this on [Reddit][], and I wanted a copy of it for myself. It’s an archived answer from a user no longer on the site that another user dug up. It reminds of something a physicist said on a recent [In Our Time][] podcast: “Everything wants to be iron.”[^1] (Ah, the role of desire in our imaginations.)

The answer below came in response to the question: “We all know light travels 186,282 miles per second. But HOW does it travel. What provides its thrust to that speed? And why does it travel instead of just sitting there at its source?”

> Everything, by nature of simply existing, is “moving” at the speed of light (which really has nothing to do with light: more on that later). Yes, that does include you.
Our understanding of the universe is that the way that we perceive space and time as separate things is, to be frank, wrong. They aren’t separate: the universe is made of “spacetime,” all one word. A year and a lightyear describe different things in our day to day lives, but from a physicist’s point of view, they’re actually the exact same thing (depending on what kind of physics you’re doing).
>
> In our day to day lives, we define motion as a distance traveled over some amount of time. However, if distances and intervals of time are the exact same thing, that suddenly becomes completely meaningless. “I traveled one foot for every foot that I traveled” is an absolutely absurd statement!
>
> The way it works is that everything in the universe travels through spacetime at some speed which I’ll call “c” for the sake of brevity. Remember, motion in spacetime is meaningless, so it makes sense that nothing could be “faster” or “slower” through spacetime than anything else. Everybody and everything travels at one foot per foot, that’s just… how it works.
>
> Obviously, though, things do seem to have different speeds. The reason that happens is that time and space are orthogonal, which is sort of a fancy term for “at right angles to each other.” North and east, for example, are orthogonal: you can travel as far as you want directly to the north, but it’s not going to affect where you are in terms of east/west at all.
>
> Just like how you can travel north without traveling east, you can travel through time without it affecting where you are in space. Conversely, you can travel through space without it affecting where you are in time.
>
> You’re (presumably) sitting in your chair right now, which means you’re not traveling through space at all. Since you have to travel through spacetime at c (speed of light), though, that means all of your motion is through time.
>
> By the way, this is why time dilation happens: something that’s moving very fast relative to you is moving through space, but since they can only travel through spacetime at c, they have to be moving more slowly through time to compensate (from your point of view).
>
> Light, on the other hand, doesn’t travel through time at all. The reason it doesn’t is somewhat complicated, but it has to do with the fact that it has no mass.
>
> Something that isn’t moving that has mass can have energy: that’s what E = mc2 means. Light has no mass, but it does have energy. If we plug the mass of light into E=mc2, we get 0, which makes no sense because light has energy. Hence, light can never be stationary.
>
> Not only that, but light can never be stationary from anybody’s perspective. Since, like everything else, it travels at c through spacetime, that means all of its “spacetime speed” must be through space, and none of it is through time.
>
> So, light travels at c. Not at all by coincidence, you’ll often hear c referred to as the “speed of light in a vacuum.” Really, though, it’s the speed that everything travels at, and it happens to be the speed that light travels through space at because it has no mass. edit: By the way, this also covers the common ELI5 question of why nothing can ever travel faster than light, and why things with mass cannot travel at the speed of light. Since everything moves through spacetime at c, nothing can ever exceed it (and no, traveling backwards in time would not fix that). Also, things with mass can always be “stationary” from someone’s perspective (like their own), so they always have to move through time at least a little bit, meaning they can never travel through space as fast as light does. They’d have to travel through spacetime faster than c to do that, which, again, is not possible.

[^1]: I believe the episode on “The Sun” is where I heard this. It has to do with how big an atom ordinary solar fusion can build: right up to iron, but no further. All heavier elements are the products of novas and supernovas. Gold, for example, is the product of supernovas that has been splattered, quite literally, across the galaxy.

[Reddit]: https://www.reddit.com/r/explainlikeimfive/comments/3l39o6/eli5_we_all_know_light_travels_186282_miles_per/
[In Our Time]: http://www.bbc.co.uk/programmes/b006qykl

Arduino Notes

It’s time to start building a master list of Arduino materials.

* [Ars Technica has a report][] on Acer’s educational dev kit aimed, it looks like at some segment of kids.

[Ars Technica has a report]: http://arstechnica.com/gadgets/2015/09/acers-arduino-based-cloud-professor-wants-to-get-kids-into-the-iot/

Converting iPython Notebooks

Not only do Jupyter notebooks, nee iPython Notebooks, make it easy to do exploratory work and to keep notes about it, they also make it easy to convert those notebooks into a variety of useful forms: HTML, LaTeX, PDF, etc. The command is simple:

ipython nbconvert –to FORMAT mynotebook.ipynb

(I have no idea how this command, or the file extension, will change now that these are Jupyter notebooks.) Where `FORMAT` appears above, you have the follow options:

`html –template full` (which is actually the default) or `–template basic`

`latex –template article` (again, the default) or `report` or `basic`

`pdf`

`slides` — there are a couple of options here.

`markdown`

`rst`: good for Python documentation as well as for use with `pandoc` if you have yet other file out put needs.

Poole

I went looking for the most minimal static website generator I could find. My requirements were:

1. That it really was simple not only to run but also in terms of directory structure. (Some generators get a little prolix with files and folders.)
2. That it allows me to create and maintain pages in [Markdown][]. [ReST][] was an option, and I even tried using **[sphinx][]** but I had some problems getting `sphinx-quickstart` to run. (I made a promise to myself to try it again when I have a bit more time to tinker.)
3. I would rather it be written in Python so I could potentially tinker with it.

I’ve long watched [Pelican][], but Pelican has become more focused on blogging support. I looked at [Mynt][], and even [Wok][]. In the end, I found myself deciding to go with [Poole][]. At least for now. [Poole][] is stupidly simple.

I cloned the Python 3 branch of the Bitbucket repo, and then added Poole to my PATH environment:

export PATH=$PATH:/some/where/poole

Creating websites looks like this:

% mkdir /path/to/site/project
% cd /path/to/site/project
% poole.py –init –theme minimal
% poole.py –build
% poole.py –serve

(Poole serves to port 8080.)

The directory structure looks like this:

|-project
|-/input
|-/output
|-page.html`

That’s it. `page.html` is the template for the site, with the `css` tucked into the header. There are more elaborate themes possible, and I’ll explore those more in a moment.

[Markdown]: https://en.wikipedia.org/wiki/Markdown
[ReST]: https://en.wikipedia.org/wiki/ReStructuredText
[sphinx]: http://sphinx-doc.org/
[Pelican]: http://docs.getpelican.com/en/3.6.3/#
[Mynt]: http://mynt.uhnomoli.com
[Wok]: http://wok.mythmon.com
[Poole]: https://bitbucket.org/obensonne/poole

What Is Code?

Paul Ford’s [“What Is Code?”][bb] at/on _Bloomberg Business_ is a magnum opus of a treatment. My little word count app that I created as a service on my Mac logs the things at 30,000 words.

[bb]: http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/

Office Pool Statistics

I just finished watching an O’Reilly webcast on statistics for NFL office pools. I don’t care much about football, unless it’s the other kind of football, but I was interested to see what pieces of Python the presenter, [Tanya Schlusser][], was going to use: [pandas][] and [scikit-learn][]. Her presentation was pretty tense, but, luckily she made the code, including a Jupyter notebook, available on [GitHub][]. *Thank you, Tanya!*

A couple of other things came up in the group chat that accompanied the presentation or in the presentation itself:

* [seaborn][] is statistical data visualization library for Python.
* [statsmodels][] “provides classes and functions for the estimation of many different statistical models, as well as for conducting statistical tests, and statistical data exploration.”
* You can store models in `scikit-learn` in [pickles][].
* I shouldn’t forget about [OpenRefine][].

## Addendum ##

As regular readers of these notes know, installation of `scikit-learn` is as easy as:

% sudo port install py34-scikit-learn

What I didn’t know is that the installation of `seaborn` in MacPorts includes `statsmodels`:

% sudo port install py34-seaborn
—> Computing dependencies for py34-seaborn
—> Dependencies to be installed: py34-patsy py34-statsmodels

I didn’t know about `patsy`, here’s what its readme at GitHub says:

> Patsy is a Python library for describing statistical models (especially linear models, or models that have a linear component) and building design matrices. Patsy brings the convenience of R “formulas” to Python.

[Tanya Schlusser]: http://twitter.com/tanyaschlusser
[pandas]: http://pandas.pydata.org/
[scikit-learn]: http://scikit-learn.org/stable/
[GitHub]]: https://github.com/tanyaschlusser/office-nfl-pool#office-nfl-pool
[seaborn]: http://stanford.edu/~mwaskom/software/seaborn/
[statsmodels]: http://www.statsmodels.org/stable/index.html
[pickles]: https://docs.python.org/3.4/library/pickle.html
[OpenRefine]: http://openrefine.org/