How do automobiles work? What are the core principles of automobiles? Why haven't I owned one until recently? Why do I own one? The answer to these questions and probably more may appear in this blog post.
Let's start with a bicycle, my preferred mechanism of transportation. Despite slander that occurs against it, bicycling is one of the most efficient forms of transportation that exists. I'll get to why below. Why would anyone need anything else? Well, bicycles are terrible modes of transportation for long distances. I live far enough away from work to make cycling a bad commute. I can do it, but not 5 days a week, not even 3 days a week. Bicycles are light and provide significant advantage over walking, running, swimming, kayaking, driving, and bussing, but in a very short range. Anyone who says they bicycle to and from work everyday lives a short distance from work or can cycle for a significant amount of time. How far is the furthest I've heard someone commute by bicycle? 17 or so miles up hill both ways is about the furthest and the cyclist was in terrific shape. The furthest I've cycled daily is 5 miles each way. It was so difficult that I could only ride 4 times per week, leaving me at home 1 day per week.
Efficient? If you are limited to only cycling 50 miles per week, your carbon footprint is almost non-existent. Remember that your footprint is eating and then breathing, something that all drivers must also do. If you eat more than a driver (which is silly to consider), it won't be much. Then where does all that energy (kinetic: ½mv² and potential: mgh) come from? Well, it's pretty clear that it's the pedaling you do. But everyone should exercise. Cyclists just do it on their way to work instead of at a gym or running in a circle. Have you ever exercised before? So let's compare a car and driver to a cyclist.
Random carbon footprint calculator says a car emits 1.03 metric tons of CO2 driving 2500 miles.
Another random carbon footprint says that the average American emits 20 metric tons of CO2 in a year.
But these are not good comparisons because the average American drives to work. The average person in the Netherlands rides a bicycle to work and emits 10 metrics tons of CO2 in a year. So the amount of carbon emission between a cyclist and a driver can vary by 10 metric tons per year. A car driving just 5 miles each way only emits 1.03 metric tons, so we're talking about an order of magnitude difference in carbon footprint. Alas, this doesn't solve the problem of whether bicycles are more efficient than cars, but it does provide us with some scale.
A quick piece of code for you and a bit of computer synthesized drums for you.
Read more »
import itertools a = list(itertools.product('^ox', repeat=8)) print(''.join([''.join(x) for x in a[:1000]]))
Mar 21, 2017
This blog is a continuation of this blog post which is a pretty good mix of technical and creative projects that this blog was originally written for. If you look at some of the way-way-back posts you'll see some of the things I've thought about and tried to work on from this perspective.Read more »
This blog post is a quick video with some backup data for my Small Wide World project.
Welcome to a quick update for Small Wide World. Progress on this project is moving rapidly so I just like to let you know what's going on and how awesome it is. The first improvement you've probably noticed on the website is better looking graphs all over it. That's a good sign that things are improving but that's just showing you the interesting improvements that can be made with a little bit of code. Today I wrote this code I'm going to show you. Here you see a two-node graph with a and b. It's the simplest you can get. You can see that we've added a new node onto a here. So now we have a three node network. And then you see it's the same network c-a-b and we've connected that via a to d. You can see that even though it looks different, we still have c-a-b and d and we've just connected e to a. This is a self-organizing network. It's actually very fast, it uses very few operations so it's going to become the default algorithm for the web, Python, C, and all versions. They will use this algorithm to make the initial pattern. It doesn't work perfectly for all types of graphs, but it works especially well for these types of graphs: graphs which aren't cyclic and are using lots of branches. See that we add g to b. See the angle between g-b-a, g-b-f, and a-b-f are all the same and the length of all the bonds are the same. This is a very easy technique that shows a graph effectively. This makes it so that you can understand the graph more quickly — or at least that is the idea. We've added h, we've added i, we've added j, and k. Then you see we've added l to d, so in order to make a-d-i, i-d-l, and l-d-a equal angles we turned d-i-k sideways. This is just another one rotated because we've added m to a here. You can see n added, we're getting close to where nodes start to overlap with each other. That's one limitation of this algorithm, but I can pretty confidently say that solving that is a job for a more expensive algorithm, for example global optimization. Once this algorithm has finished you can run a global optimization algorithm on it and it will have better success than just a random graph. You can see that k, h, and c are a little crowded, so an optimization algorithm would push these away from each other because k and h are too close to one another. We're almost to the point where it's going to fail. And here we see that it fails with c-h overlapping p-q and c-s overlapping i-k. In order to fix that, an optimization algorithm would only have to move p and q down and i and k up. How much computation does that require? Local minimization algorithms would probably be able to do this in a few million operations (less than a second but far more than this algorithm takes), but if they couldn't properly solve the collision, you'd have to use a global optimization algorithm like basin-hopping or Monte-Carlo Metropolis to finish the job. This could take seconds or even minutes. Small Wide World currently implements basin-hopping using SciPy which I will be testing thoroughly against graphs like these.Read more »