Thursday, February 27, 2014

Sometimes I'm afraid that we forget what it was like to not organize things into classes, subclasses, types, and objects and that we got along fine like that. We need to be able to make use of these informal schemata which make use of other kinds of relationships between data. Although things might be reducible to labeled, directed graphs, we should definitely not restrict creation to that level.

We need a means of expression for the otherwise inexpressible. Those things which are only the immediate, fleeting concordance of sensory information and gestaltic, nameless unity; those things I want to give presence and meaning. These are things which we give names and construe in our own lives, but they are not the things themselves. The feelings of eyes all around looking on in distrust, hate, or condescension cannot be understood by the word "racism". A need to be a man while living in a woman's body is not translatable into any language that we can all speak. The well-fed business man does not comprehend the poor man's escape in heroin addiction.

Concepts like these matter. To understand them is to know the motivations for action and to walk in the other person's shoes. Compassion through shared experience is as old as story-telling, but the forces which enact it are too sparse and inconstant. Failure to understand the other man weakens us. It turns us to hate, confusion, secrecy, fear. Men learned to conquer parts of this in prehistory so that we could live in villages and not kill one another over minor faults. I think we need to learn again how to live with humanity on a global scale.


Thursday, February 20, 2014

A Kiwi artist, Henry Christian Slane. I like his figure work.

Wednesday, February 19, 2014

disarming malware

The problem with bad software isn't that it gets made. It will get made, and no matter how easy we make the tools for specification and testing of software, there will be people who use unsafe production methods to make unreliable and exploitable software. However, I would hope that a secure system can exist. In the same vein as modern cryptography, I acknowledge that perfect security in the general case is unlikely, but suggest that strong security-- in some specific, provable sense-- can exist in the software systems that humans subject themselves to.

My main goals:

  1. make the economic benefits of releasing exploitable software less than the costs of producing good software.
  2. minimize the effects of unavoidable exploits, eliminate avoidable exploits, provide tools for realizing these goals in software production systems.
  3. make more accessible tools which can formally exclude the possibility of certain classes of exploits existing.
  4. spread more knowledge about safe software practices to those who make software


Treating software as biology

Not techinical at all, but I was just thinking about how sometimes software does things that don't make sense to us and which have no easy solution from a first guess at what's going on. It would be useful to have a integrative view of piece of running software. What I mean is, we want to be able to see what the features are of a system over time, how they change, but we want to see all of these things at the same time. That, I really hope, isn't too hard. From there I would like to see how we can take the state of the program and relate it to the activity of the system it works in.

This idea isn't entirely my own. There was a paper I read a while back about treating a peice of malware as a virus which has certain system call profile. For a single architecture and operating system, this should be statistically stable across machines and serve as a sort of marker. That idea comes, very loosely I'm afraid, from the immune system, which can identify antigens by interacting with them.


Wednesday, February 5, 2014

A video of Michael Rabin discussing second-price auctions:

Concerns collusion resistance and zero-knowledge. The bidders want to hide their bids from everyone auctioneer (evaluator-prover), but they also want to know that their bids were calculated correctly. There is danger of collusion so that bidders can get a lower price (to the detriment of the auctioneer).

More from Micali (collaborated with Rabin on this topic):


Tuesday, February 4, 2014

Something that would be useful: a running list of abbreviations and definitions on the side of a document reader. The listing depends on which abbreviations had been used up to that point in the paper -- so they appear and disappear as you go down and up the document. The definitions can be attached to the document as metadata, and that data can be modified by the user through the reader to include their own definitions.

A companion to this is a tool which will give abbreviations, synonyms, and definitions for certain terms on mouse-over.