"Radical Man" on Freedom and Technology


I’m currently reading Charles Hampden-Turner’s Radical Man (c. 1971), which I bought because some random Amazon review said it was amazing and that they wished they had read it at a mcuh younger age. It is very much worth reading, both because of the surprisingly timeless philosophy of human psycho-social development, as well as for some of the unfortunatley untimely, incorrect predictions. The following passage from the epicly-titled chapter, “Crypto-conservatism of Technological Thinking”:

Futurologists make great play with the notions of “freedom” and “technology creating opportunities” for us all and presenting us with a greater number of alternatives. Yet the meaning of freedom in the contexts which they use it is essentially a choice of a large number of games, or the choice in playing a particular game to reach a predetermined objective by interchangeable routes. Thus George A. Miller, a Harvard psychologist, and a prominent contributor to Toward the Year 2000 envisages numerous children in communication with a central computer.

Within the broad limits set by what materials have been prepared by the computer, the student is free to study those things that are of most interest to him.

Leaving aside for a moment the question of whether the computer as opposed to the programmer can be said to have prepared anything, let us consider this use of the term “freedom”. It is the freedom of a rat to run a maze by turning left or right on any of a hundred separate occasions. It is the freedom of a guided missile to reach a predetermined target by an infinite number of paths or the freedom of a quarterback to gain fifty yards by kicking, running, or passing in a myriad of ways. I can think of few marine commanders who would not endorse the kind of “initiative” by which recruits dropped in the wilderness find their way back to base by any means they wish, provided they cover three hundred miles in thirty six hours.

Freedom, of course, means more than the ability to explore a vast technological prison with new wings added yearly and play alternative technical games therein. Unless the paths chosen by the individual contain a human logic and meaning, then it makes little sense to consider the human being as investing himself freely, intensely, or authentically. Given a run-away technology, wherein “can” is repeatedly translated as “ought” as technical means become ends in themselves, the survival of human freedom and meaning and the confirmation of this meaning by others, becomes harder and harder to achieve.

Somewhat surprisingly, many of these patterns can be represented as linear translations. For example, the result of a vector calculation vec(“Madrid”) - vec(“Spain”) - vec(“France”) is closer to vec(“Paris”) than to any other word vector.

This talk shows some common optimizations for improving webapp performance. Smaller files, less connections, more hosts to parallelize past browser limits. It also shows that Data URIs are noticeably slower than CSS sprites, especially when served from cache.

less-sprites looks like a great npm package for LESS that makes this quite easy. We’ll definitely be switch from Data URIs to Sprites for streamhub-sdk for our default ContentVIew templates.

More of the data in this talk can be found on his blog.

Graph from the blog post

Scalable Service Tradeoffs: Search vs Retrieve

This is a well-articulated core principle of Twitter’s architecture via HighScalability.com

Search And Pull Are Inverses

  • Search and pull look remarkably similar but they have a property that is inverted from each other.
  • On the home timeline:
    • Write. when a tweet  comes in there’s an O(n) process to write to Redis clusters, where n is the number of people following you. Painful for Lady Gaga and Barack Obama where they are doing 10s of millions of inserts across the cluster. All the Redis clusters are backing disk, the Flock cluster stores the user timeline to disk, but usually timelines are found in RAM in the Redis cluster.
    • Read. Via API or the web it’s 0(1) to find the right Redis machine. Twitter is optimized to be highly available on the read path on the home timeline. Read path is in the 10s of milliseconds. Twitter is primarily a consumption mechanism, not a production mechanism. 300K requests per second for reading and 6000 RPS for writing.
  • On the search timeline:
    • Write. when a tweet comes in and hits the Ingester only one Early Bird machine is hit. Write time path is O(1). A single tweet is ingested in under 5 seconds between the queuing and processing to find the one Early Bird to write it to.
    • Read. When a read comes in it must do an 0(n) read across the cluster. Most people don’t use search so they can be efficient on how to store tweets for search. But they pay for it in time. Reading is on the order of 100 msecs. Search never hits disk. The entire Lucene index is in RAM so scatter-gather reading is efficient as they never hit disk.

– View on Path.

at American Airlines Arena – View on Path.

AMAZING Cuban food here in Miami. Heat vs Pacers live later tonight! #vacay at Versailles Restaurant – View on Path.

nbd my code is on Oprah – View on Path.

(Reblogged from julio-ody)

Started gambling with $10, ended $590 hashtag fucking #Vegas with Brandon at Cosmopolitan – View on Path.