READ cycle

I currently find myself entrenched in the middle of a read cycle. Typically, I go in some form of loop between HACK WRITE-READ; in which HACK sees me writing a lot of code, WRITE has me productive in describing what I've been working on, and READ has me learning new things. Obviously, there will be much of these going on simulataneously, but the focus is usually one of these three.

The reading lately is heavily AI-centric; I've been dumping a lot of stuff into my brain and thinking heavily about artificial intelligence and digital life forms. In this post, I'll brain dump some of the major features of life right now.

First, some background is in order. I moved into the new place at the beginning of last month, and still have little Internet. In many ways, I rather enjoy the hotspot Internet as it keeps me focused and whether I'll upgrade to a cable connection is still up in the air. One result of this is that my movie and TV-show watching is almost non-existent. I end up watching many of the videos I've previously downloaded (which are all talks). Particularly oft-watched is Richard Hamming's "You and Your Research", which has inspired me to cut a lot of the trivium out. Against this backdrop, here are the things on my mind lately:

Lattice

Lattice is my idea for a Lisp datastore. In the current thinking, it is designed to store Lisp data, and is inspired by a quote from Dr. Erik Naggum. So far, it appears the best approach is a CLOS-based data store. For example, classes could be used to describe data, instances to exchange data, and methods to act on data. Inheritance serves the role of foreign keys, while a combination of classes and methods serves as a schema.

Digital Lifeforms

While artificial intelligence is a lofty and fascinating goal, it might be more productive to consider "lower" classes of life. If digital lifeforms can be devised to act as computational pack animals, some interesting scenarios arise. One thing I am thinking of is using a VM approach here: building a VM with a Lisp OS where each instance represents a distinct life form; a hypervisor can conduct training (wherein these DLFs query the hypervisor for a challenge and attempt to solve it) and facilitate solving actual problems (after training, DLFs get actual problems to solve, albeit with delayed feedback). There are possibilities here for DLFs to group themselves, such as to fill unsupervised learning roles for analysis, supervised learning roles for actually solving the problems, and harnessing DLFs that failed to complete training as a sort of computational drone.

Virtual Machines

I've been learning a lot about the design and implementation of virtual machines. The first came about as the result of a comment in an optional video in the Algorithms class; this led to a calculator implemented as a virtual machine, where "programs" are computations represented similar to

(* (+ 2 3) (- 6 2))

that are compiled to byte code and executed in a VM. I have a more complex register-based virtual machine built, but it lacks an assembler or compiler of any sort. I've been thinking about how to apply this to DLFs, such that each DLF is an instance of a virtual machine. This will involve writing a Lisp operating system in the assembly language or byte code of the target VM. This is interesting to me on many levels: it satisfies my interest in low level systems programming (operating system design, garbage collection, etc...) and high-level (actually writing DLF images).

Books

I've been reading a lot of books. I'm partially through

  • Lisp in Small Pieces
  • Paradigms of Artificial Intelligence
  • Cities & Complexity

Cities & Complexity is fascinating because it is an actual problem that is is presented as modelable through mathematical methods.

Miscellaneous

I've been playing around with a couple of other ideas as well: implementing non-Turing (such as neural-network-based) architectures using FPGAs, Smalltalk, and probabilistic models of cognition.

It feels like I'm dumping tons of information into my brain; some days it feels like I'm getting nowhere, and other days are one "mind-blown" after another.


Tags: ,