Home

Laziness and convenience

September 8, 2018

I’ve long felt that I am basically lazy, and have only learned to do anything in a timely fashion because I’m going to end up doing it anyway, might as well feel virtuous for finishing before the absolute last minute. But I’ve also learned that another way to look at “laziness” is “preferring convenience” — if you want something to happen, make it “convenient”, so that “lazy” people will do it. We’re sometimes reluctant to increase convenience because it looks like “rewarding laziness”, and we all know that laziness is bad, right?

I mention this because failing to realize the importance of convenience is keeping people in cars, and out of mass transit, off their feet, and off of bicycles. This would be no big deal if cars didn’t kill thousands of pedestrians in crashes, cause tens of thousands of early deaths with their particulate pollution, contribute to global warming, and clog city streets with traffic — but they do. And since most of these problems are problems for other people and not so much us when we are driving, we still find cars to be pretty convenient, and thus use them to excess, even to the point where it affects our health and shortens our lives — we’ve made it really easy to be lazy. If we want to change this, either we have to find a way to make cars less convenient (that’ll be really popular, there’s nothing people love more than inconvenience for their own good) or to make everything else more convenient.

Consider transit. One big reason for driving a car is because it keeps the weather off. Standing by the side of the road waiting for a bus does NOT keep the weather off; if we expect people to wait for buses, there should be something to block the wind, rain, and sun. People driving get to sit; there should be a bench. It shouldn’t be optional, and it shouldn’t be regarded as “extra spending”. One problem with buses is that they’re not always reliable because they get stuck in other traffic; that can be fixed (making buses more convenient, from the point-of-view of scheduling) by giving them a reserved lane, and allowing them to trigger green lights so they don’t wait at intersections.

Or consider bicycling. There are many reasons people give for not riding a bicycle, but even someone who really wants to will be put off if it is too inconvenient. Bicycle parking should be convenient — in particular, it should be more convenient than car parking, because it’s cheaper and more compact. That means there should be so much that it almost never runs out. And because it is so compact, whenever possible it should be located close to the ultimate destination, and not in some remote corner. Ideally it’s also covered to keep the weather off, because a wet butt is Not Convenient. Yes, people can carry little seat shower caps with them and put them on every time they park their bike, but adding extra steps for people is less convenient.

It’s also possible to make walking more convenient. For cars, we have traffic sensors to ensure that green lights are triggered when someone needs to cross — nobody expects drivers to push a button for a signal. If we could have signals for pedestrians, we should, it usually happens automatically, and traffic flow is even studied to so that lights can be synchronized. Or, have you ever noticed that every traffic light everywhere always defaults to green for cars traveling in one direction or another? No matter how low the automobile traffic, the default is never for pedestrians. Such a light would be all-ways red, changing to green for cars only after one is detected.

This extends to safety devices. For whatever reason, we’ve somehow made bicycle “safety” in this country inconvenient. You’re probably already thinking, “bicycle safety, that means helmets, surely those aren’t inconvenient?” Yes, they are. Every time I go to ride my bike, I find the helmet, untangle the straps, put it on, make a vague attempt to adjust it. It almost always makes my head a little sweatier than it needs to be. When I get off the bike, I have to store it somewhere; it’s an extra step. And every summer, I sweat enough that I need to wash the helmet pads, because they get nasty otherwise. Have you noticed that car seatbelts don’t even require adjustment, that they automatically tension themselves? That’s because it was too inconvenient for people to adjust their seatbelts properly, and thus they didn’t and it was less safe than otherwise (I learned to drive in a car with aircraft seatbelts, the first time I flew in an airplane it was amusing to me that people needed instruction in how to adjust and fasten their seatbelts, I’d been adjusting seatbelts like that for years). People in cars could wear helmets — despite five-point harnesses and roll cages, race drivers wear helmets, and despite airbags and seatbelts, head injuries are a major cause of car crash death, and car crashes are a major cause of traumatic brain injury in this country — but they don’t. Helmets aren’t convenient. (Note that taking the time to answer questions about why you’re wearing a car helmet is also not convenient).

Or, “always wear hi-viz”. That’s not convenient either — it’s another piece of clothing to keep track of, it doesn’t always fit well, it can get dirty and need washing. It might not be appropriate for where you’re going, you’ll need to put it somewhere.

The safety devices I like, that I always and happily use because they are convenient, are built in to the bicycle. When I started commuting regularly, I knew myself well enough (and batteries then were needy enough) that I knew that I wouldn’t keep battery-powered lights charged, and besides, what a pain to attach your lights before every ride and then remove them at every stop, either because of theft worries, or because they needed charging. So instead I went for sidewall generators, and eventually generator hubs. If the bike rolls, the light is on, it’s a safety device that always works despite my laziness. The relatively fat tires on my bicycle are another no-effort always-present safety device. In this country we bizarrely associate skinny tires with “serious” cycling, but fat tires are better in several ways. They don’t require frequent reinflation, which is a delight to a lazy person. They don’t rely on my constant vigilance to protect the bicycle rims from potholes; within reason, they can handle whatever our town (a Boston suburb locally famous for its terrible road conditions) can dish out. Lazy people like me are not constantly vigilant. Fat enough tires don’t even fit in sewer grates or cracks in the road; again, with constant vigilance, I can be sure to hit those at an angle so they don’t grab my skinny tires, or I can just use fat tires and lazily dispense with the mandatory vigilance. (Fat tires also have lower rolling resistance, if their tread is designed for that, and since I am so lazy, that’s what I use).

My bicycle is designed for laziness convenience in other ways, too. I don’t usually use pants clips; instead I have a chain guard. Pants clips are inconvenient. Besides the lights, I tend to excess on the reflectors, because I’d rather not carry around a special piece of clothing just to be more visible. I used to use special shoes that clipped in to special pedals, but no more, it’s much more convenient to just ride in regular shoes, instead of either changing shoes at my destination, or walking around in unfashionable shoes that go click-click on hard surfaces and aren’t really that comfortable to wear all day anyhow.

I do in fact own two pairs of the funny pants, both because I raced when I was a kid, and because every year or so I ride dozens of miles in some sort of recreational event and for that distance they’re nicer than cotton underwear and pants. But I practically never wear them otherwise, because changing clothes just to ride a bicycle is not convenient.

Perhaps you think I’m crazy to be so picky about convenience, why would anyone worry about that, let along spend money on it? After all, you don’t see car manufacturers dressing up automobiles with silly gee-gaws like automatic chokes, automatic transmission, power brakes, power windows, power locks, power mirrors, power antenna, keyless entry, keyless start, remote start, air conditioning, cruise control, seat warmers, and backup cameras, do you? What sort of lazy person would want all that?

Bike-related articles

January 12, 2018

An internet bikey friend is a new-ish assistant professor of transportation, has a pile-o-books to read. I figured, why not skim off the best/most-interesting of everything I collected in Evernote over the last few years, and make a dump of it, perhaps some will be useful, perhaps it won’t.

An amazing summary of stuff

Cycling, Health and Safety (OECD)

Health

English bike commuter health/mortality study (striking results, I think there is some selection effect)

Danish mortality study

Cycling for Freezing Gait in Parkinson’s Disease (video)

Physical activity, self-report vs reality (picture of poster)

Road capacity

THE FUNDAMENTAL LAW OF ROAD CONGESTION:
EVIDENCE FROM US CITIES (NBER)

45 bikes in 23 seconds (video)

27 bikes in 18 seconds (video)

25 bikes in 25 seconds (video)

24 bikes in 16 seconds (video)

22 (?) bikes in 9 seconds (video)

Videos illustrating road capacity different ways (article and videos)

Estimating Capacity of Bicycle Path on Urban Roads in Hangzhou, China

Operational Analysis of Uninterrupted Bicycle Facilities (Level of Service for bike paths?)

Safety

Bicycling injury hospitalisation rates in Canadian jurisdictions (Teschke et al, helmet laws)

Vancouver drivers at fault in 93% of collisions with bicycles: city report (news article)

Bicycle Use and Cyclist Safety Following Boston’s Bicycle Infrastructure Expansion, 2009–2012

Cyclist’s video of annoying crash, shows how a driver can “not see” what is right in front of them. (video)

Cycling safer than driving for young people, new study suggests

Study blames drivers for bike crashes (study not perfect…)

30x higher hospitalization rate for helmeted Dutch cyclists (blog, great illustration of selection effect)

Risk compensation and bicycle helmets

Florida bike crashes: 7 things that may shock you (news study)

Wearing a Bicycle Helmet Can Increase Risk Taking and Sensation Seeking in Adults

The influence of a bicycle commuter’s appearance on drivers’ overtaking proximities

Drivers overtaking bicyclists: Objective data on the effects of riding position, helmet use, vehicle type and apparent gender.

Florida bike distance passing study, somewhat replicates Ian Walker’s study

Cambridge, MA bike crash data

Comparison of bike+earbud and car+windows/stereo hearing

Rail

How many people use commuter rail? (in Boston — blog, generally interesting)

Social/general

Crash injury/mortality rates by mode of travel (US).

Crash injury/mortality rates by mode of travel (England).

Crash injury/mortality rates by mode of travel (Canada).

The cost-effectiveness of bike lanes in New York City.

How driving a car into Manhattan costs $160

CYCLISTS FURIOUS AS COUNCIL PAINT EVERYTHING ELSE LUMINOUS GREEN (joke)

94% of bike riders wait at red lights

Why people jaywalk (looooong video)

People assume biker breaks law despute contrary video evidence

Comparison of cyclist and driving ability to hear

Understanding congested travel in urban areas

Transport transitions in Copenhagen: Comparing the cost of cars and bicycles (paywalled)

What is the optimal speed limit on freeways? (paywalled)

Auto air pollution

MIT air pollution deaths study

Air Pollution and Criminal Activity: Evidence from Chicago Microdata

The list of diseases linked to air pollution is growing

Auto safety

International road safety comparisons

Pounds that kill (Anderson & Auffhammer SUV unsafety article)

Car helmets

Car headband

SUVs’ risk to others admitted by industry

CDC: TBI Death causes

CDC: TBI Hospitalization causes

Literature Review on Vehicle Travel Speeds and Pedestrian Injuries

Effects of Speed on Pedestrian Fatalities

The fatal injuries of car drivers (head injuries sole cause 23%, co-cause 18%)

Stuff I wrote

These tend to include links to spreadsheets and source documents, should anyone care to check my work.

Hypothesized mechanisms for US safety-in-numbers.

Bike share does not need helmets. Per-trip, it’s a lot safer than driving. There are caveats and quid-pro-quos — but the Cs and QPQs have larger effect than helmets.

We subsidize driving, yes we do.

Videos of not-quite right hooks, in case anyone wants to know what they look like.

A graph, by zipcodes, of the cumulative US population density.

Distributions for trip distances, for commutes and trips and general, and also a cumulative graph of the distance traveled. TLDR=”Lots of trips are short, but long trips matter because they are long. Commutes are 26% of trips but 35% of miles.”

Various ways of looking at road damage. It’s not presented as well as I would like unless you’re comfortable with log scales.

E bikes in China (back in 2011 the boom was well under way)

Videos I made

Tortoise and hare. Biking is that much faster, zooming ahead is useless and unsafe (video)

Why run reds (video)

Ticketing bikes and reducing safety (video) (catch the ped pass at 1:27, oh well)

A 10 minute chunk of my morning commute, with various events and commentary

Bell Curves

January 12, 2018

No, not the racist bullshit artist’s book.

One thing I realized a few years ago is that for human attributes, bell curves are everywhere. The standard examples are things like height and weight, but why not, say, strength, or patience, or organizational skills, or empathy? Some people have more, some people have less, and there’s no particular reason to treat them as much different from (say) physical strength; something that we possess in different quantities, and something that we can improve within bounds, but that improvement itself takes work, and the bounds are real.

“Work” generalizes similarly. We can get tired of walking, of lifting, of thinking, of maintaining a pleasant attitude, and so on.

More twitter tomfoolery

December 16, 2017

I wrote a Go program to install blocks from a file of Twitter IDs. It’s not on github yet because my development sandbox looks more like a development catbox, and I can’t clean it up too much because the program’s running right now and Twitter’s rate limited so it’ll be a while (at 5 blocks per second, about 10 days). Recall that my goal is to completely remove fascists and griefers from my Twitter feed, and from any conversation that I happen to be in — they shouldn’t even notice the opportunity to respond, never mind wasting anyone’s time with their crap.

At least as important as the program is the list of IDs to block.
It’s 4 million lines long, sorted from most-to-least-desirable-to-block order, so this is the only way to share it. I did some by-hand sampling, and the first 10% really are notably more obnoxious than the last 10%, so I may not run this all the way to completion.

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/url"
	"os"
	"regexp"
	"strconv"
	"strings"
	"time"

	"github.com/BurntSushi/toml"
	"github.com/ChimeraCoder/anaconda"
)

var digits = regexp.MustCompile("[0-9]+")
var runtime = time.Now().Format(time.RFC3339)

type ConsumerAndAppKeysAndSecrets struct {
	ConKey, ConSecret, AppToken, AppSecret string
}

var caksFile = ".twitter/ids"

/* The .twitter/ids file contains four lines with string values
   obtained from the twitter developer api.

ConKey = "..."
ConSecret = "..."
AppToken = "..."
AppSecret = "..."

   For an App token and secret, you need to create an app here: https://apps.twitter.com/app/new
   This will then give you the option to create a consumer key and secret.
   (This useful information cribbed from
   https://stackoverflow.com/questions/1808855/getting-new-twitter-api-consumer-and-secret-keys )

*/

func main() {
	caks := &ConsumerAndAppKeysAndSecrets{}
	blob, err := ioutil.ReadFile(caksFile)
	if err != nil {
		fmt.Printf("There was an error opening or reading file %s: %v\n", caksFile, err)
		os.Exit(1)
		return
	}

	err = toml.Unmarshal(blob, caks)
	if err != nil {
		fmt.Printf("There was an error unmarshalling contents of %s: %v\n", caksFile, err)
		os.Exit(1)
		return
	}

	anaconda.SetConsumerKey(caks.ConKey)
	anaconda.SetConsumerSecret(caks.ConSecret)
	api := anaconda.NewTwitterApi(caks.AppToken, caks.AppSecret)
	fmt.Println("Credentials = ", *api.Credentials)

	a := os.Args
	if len(a)  0 && i%1000 == 0 {
			flush(users, i)
			users = users[:0]
		}
		user, err := api.BlockUserId(int64(u), url.Values{})
		if err != nil {
			errst := err.Error()
			if !strings.Contains(errst, "User not found.") {
				fmt.Printf("i=%d, u=%d, err=%v\n", i, u, err)
				flush(users, i)
				os.Exit(1)
			}
			fmt.Print("X")
		} else {
			fmt.Print(".")
		}
		users = append(users, user)
	}

	flush(users, len(wlids))

}

type tomlWantsStruct struct {
	users []anaconda.User
}

func flush(users []anaconda.User, ending int) {
	buf := new(bytes.Buffer)
	if err := json.NewEncoder(buf).Encode(users); err != nil {
		fmt.Printf("There was an error encoding users: %v\n", err)
		os.Exit(1)
	}
	fname := fmt.Sprintf("Blocked-%s-%08d", runtime, ending)
	err := ioutil.WriteFile(fname, buf.Bytes(), 0666)
	if err != nil {
		fmt.Printf("There was an error writing %v: %v\n", fname, err)
		os.Exit(1)
	}
}

func readFileAsUint64s(filename string) (uids []uint64, err error) {
	var b []byte
	b, err = ioutil.ReadFile(filename)
	if err != nil {
		return
	}
	bids := bytes.Split(b, []byte("\n"))
	uids = make([]uint64, 0)
	for i, bid := range bids {
		s := digits.FindString(string(bid))
		if s == "" {
			continue
		}
		var uid uint64
		uid, err = strconv.ParseUint(s, 10, 64)
		if err != nil {
			fmt.Printf("Failure to parse line %d of %s\n", i, filename)
			return
		}
		uids = append(uids, uid)
	}
	return
}

Back in 1997 the New England Lily Society (then, the New England Regional Lily Group) hosted the annual meeting and show of the North American Lily Society in Burlington, Massachusetts. Among other things, “we” (not me, but other then-members) designed and built a huge number of stem holders, which we have used for years ever since in our own shows. We’re hosting the show again in 2019, and may need more stem holders. I have a few (because otherwise they would have been thrown out as excess), and I thought I shold record and publish their dimensions. It turns out that for some of the larger trumpet-oriental crosses a larger base is needed, and the largest stems also inhale so much water (for respiration and/or bud opening) that a larger reservoir is necessary. But for most lilies these work great.

The stem holder has a wooden base and a removable stoppered PVC insert. The PVC is thin-walled (2mm), outer diameter appears to be 1-and-5/16 inches, length 11-and-5/8 inches. The base is stepped, with a 5-and-half inch square by 1-and-half-inch high bottom part (clearly cut from US “2-by-6”) and a 3-and-a-half by three-quarters top part (clearly cut from US “1-by-4”). The base has a central hole for the PVC to wedge into (pretty tightly, too) that is 1-and-a-half inches deep by 1-and-5/16 inches diameter.

New England Lily Society stem holder.

New Twitter Algorithms

November 5, 2017

My Twitter block list got unmanageably large, and blocktogether.org was not even able to remove blocks at any sort of a reasonable rate to help me fix it. So, I used my employer’s mighty-fine search engine to look for any Go packages for the Twitter API, and found Anaconda.
Read the rest of this entry »

I guess people think I am tedious on this subject (people on Facebook think I am tedious on this subject), but bike share is very safe. By design, it can count the number of trips. We’re pretty good at counting deaths, too. In over 100 million trips there have been two deaths. (Death #1)

On “normal” bicycles, we’d expect to see 20 deaths in that many trips. In cars, we’d expect to see 9 deaths in that many trips. Instead, two. (As a sanity check on those rates, Canadian statistics are similar.)

Read the rest of this entry »