1. The Coming War on General Computation
    a talk by Cory Doctorow at the Chaos Computer Congress

    The last 20 years of Internet policy have been dominated by the copyright war, but the war turns out only to have been a skirmish. The coming century will be dominated by war against the general purpose computer, and the stakes are the freedom, fortune and privacy of the entire human race.

    The problem is twofold: first, there is no known general-purpose computer that can execute all the programs we can think of except the naughty ones; second, general-purpose computers have replaced every other device in our world. There are no airplanes, only computers that fly. There are no cars, only computers we sit in. There are no hearing aids, only computers we put in our ears. There are no 3D printers, only computers that drive peripherals. There are no radios, only computers with fast ADCs and DACs and phased-array antennas. Consequently anything you do to “secure” anything with a computer in it ends up undermining the capabilities and security of every other corner of modern human society.

  2. Coding Guidelines: Finding the Art in the Science  →

    CONSIDER A PROGRAM AS A “TABLE”

    “In a recent ACM Queue article Poul-Henning Kamp2 makes the fascinating point that much of the style of programming languages stems from the ASCII character set and typewriter-based terminals. Programming languages make no use of the graphical properties and options of modern devices. While code must be written with the clarity of good English grammar, it is not English text. Instead it is more like math and tables.

    This is a far-reaching principle. First, it speaks directly to the use of fonts. Do not use a variable-width (proportional) font for program code, as code is not text. Fixed-width fonts (e.g., Courier and Data Gothic) look appealing and allow easy alignment of code. Proportional (variable-width) fonts prevent proper alignment, and even more importantly, do not “look like” code.

    While one should continue to think of a program as a sequence of actions or as an algorithm at a high level, each section of code should also be thought of as a presentation of a chart, table, or menu. In figures 1, 2, and 3 notice the use of vertical alignment to show symmetry. This is a powerful method of communication.”

  3. Quasicrystals as sums of waves in the plane (visualizing quasicrystals in Haskell)

    Quasicrystals as sums of waves in the plane (visualizing quasicrystals in Haskell)

  4. The surface of a microchip in a 3D reconstruction at 500x magnification.(via fewdull, tiffanihillin)

    The surface of a microchip in a 3D reconstruction at 500x magnification.
    (via fewdull, tiffanihillin)

  5. Why Philosophers Should Care About Computational Complexity  →

    One might think that, once we know something is computable, how efficiently it can be computed is a practical question with little further philosophical importance. In this essay, I offer a detailed case that one would be wrong. In particular, I argue that computational complexity theory—-the field that studies the resources (such as time, space, and randomness) needed to solve computational problems—-leads to new perspectives on the nature of mathematical knowledge, the strong AI debate, computationalism, the problem of logical omniscience, Hume’s problem of induction and Goodman’s grue riddle, the foundations of quantum mechanics, economic rationality, closed timelike curves, and several other topics of philosophical interest. I end by discussing aspects of complexity theory itself that could benefit from philosophical analysis.

    - Scott Aaronson 

  6. Mysticism in John Boyd's OODA Loop →

    “Despite appearances, OODA is more Sun Tzu than feedback control block diagram. More Musashi than computer science flowchart. In fact, interpreted through those narrowly technical lenses, it can appear to be a clunky and impoverished model of human decision-making.

    To get to the essence of OODA you have to take the apparently mystical element seriously.

    You have to try to make sense of the cryptic utterances in OODA culture, such as “you must get inside the tempo of your adversary” or “fight the enemy, not the terrain.” There are layers of meaning to peel back there. As my martial artist friend Ho-Sheng Hsiao would say, the OODA loop is more a kata than a recipe.

    Most recently, I was pleasantly surprised to discover, during a conversation with a chemist friend of mine at UCLA, that he’d been sort of rediscovering certain ideas I’d classify as “Boydian” through his study of how certain virus RNA molecules fold onto themselves. That conversation helped me connect some crucial dots that I’ll talk about another day. Hint about the connection: the word unfolding occurs a few times in the OODA diagram; there is a certain sense in which OODA “unfolding” is related to protein folding.

    With that cryptic teaser, I’ll leave you to go ponder the OODA Mandala on your own.

    - Venkatesh Rao

  7. Replication, atomicity and order in distributed systems →

    Distributed systems are an increasingly important topic in Computer Science. The difficulty and immediate applicability of this topic is what makes distributed systems rewarding to study and build.

    The goal of this post (and future posts on this topic) is to help the reader develop a basic toolkit they could use to reason about distributed systems. The toolkit should help the reader see the well known patterns in the specific problems they’re solving, to identify the cases where others have already solved the problems they’re facing and to understand the cases where solving hundred percent of the problem may not be worth the effort.

  8. Evolution of Collective Foraging: Robots in a Swiss Lab Have Evolved to Help Each Other →

    Robots in a Swiss laboratory have evolved to help each other, just as predicted by a classic analysis of how self-sacrifice might emerge in the biological world.

    “Over hundreds of generations … we show that Hamilton’s rule always accurately predicts the minimum relatedness necessary for altruism to evolve,” wrote researchers led by evolutionary biologist Laurent Keller of Switzerland’s University of Lausanne in Public Library of Science Biology. The findings were published May 3.

    Hamilton’s rule is named after biologist W.D. Hamilton who in 1964 attempted to explain how ostensibly selfish organisms could evolve to share their time and resources, even sacrificing themselves for the good of others. His rule codified the dynamics — degrees of genetic relatedness between organisms, costs and benefits of sharing — by which altruism made evolutionary sense. According to Hamilton, relatedness was key: Altruism’s cost to an individual would be outweighed by its benefit to a shared set of genes.

  9. Essentials of Metaheuristics →

    Metaheuristics are applied to “I know it when I see it” problems. They’re algorithms used to find answers to problems when you have very little to help you: you don’t know what the optimal solution looks like, you don’t know how to go about finding it in a principled way, you have very little heuristic information to go on, and brute-force search is out of the question because the space is too large. But if you’re given a candidate solution to your problem, you can test it and assess how good it is. That is, you know a good one when you see it.

  10. The Julian Assange Conspiracy - Networks, power and activism →

    In this short interview, Peter Ludlow, Professor at the Dept. of Philosophy at Northwestern University, uses network theory to explain how conspiracies arise naturally during the emergence of certain kinds of social networks, and Assange’s work to identify, expose, and dismantle these conspiracies.

    “The object of Wikileaks is to dismantle the conspiracies that, according to its founder, rule the world. But what is a conspiracy and are you part of one? According to Assange, it’s possible to be a member of conspiracy without even knowing that you are. This week, we look at Julian Assange’s political philosophy and his view of the world as a network of conspiracies.”