Drawing on protocol

June 21st, 2009

drawing-on-protocol

Drawing on protocol is a drawing constructed indirectly by its viewers, from the following rules:

  1. The IP address of each visitor to this page is recorded in the site logs
  2. The latitude and longitude of each visitor shall be estimated using a public IP look up service
  3. The route from one visitor to the next in sequence shall be found using a public mapping service
  4. If the route cannot be calculated from visitor i to visitor i+1, the route shall be attempted to visitor i+2, i+3, … i+n until one can be found
  5. When a route has been found, it will be drawn freehand on the paper, the page representing a coordinate space of 360°x180°, with 0,0 at the centre
  6. The hits will be recorded from the date of the first upload of this page, 20th June 2009
  7. Repeat hits from the same IP address will be ignored
  8. The drawing will be judged complete on whim, and no more lines shall be added

UPDATE 25th August: more lines added, and deemed complete. Most new entries were repeatedly in the same places – Seattle, California, or different network hubs in the UK and Europe.

UPDATE 2: best to do this sort of thing automatically, rather than with pencil and paper.

A long line of Parisian revolutions and mathematicians

June 14th, 2009

sho_p_timeline

Timeline of mathematicians and the history of Paris

Simulating the Poisson process

May 30th, 2009

Simulating poisson

A simulation of the Poisson process, built using Processing.

The  process models random events occuring in continuous time given that:

  1. Events occur on their own
  2. The average rate of events happening remains constant
  3. Future events have nothing to do with ones which have happened

A process has average rate such as \lambda = \frac{1}{4} per minute. Number of events in t minutes is the discrete random variable X, where X \sim Poisson(\lambda t). The time you have to wait between events follows an exponential distribution T \sim M(lambda).

The simulation works by obtaining a waiting time between each event, through making independent observations on the random variable T \sim M(\lambda). We can do this by solving:

F(t) = u

where u is a random observation on the uniform distribution U(0,1). With the exponention distribution this means solving

1-e^{-\lambda t}=u

which ends up with

t=-\frac{1}{\lambda} log(1-u)

Each time an event is fired, t is recalculated.

Lost in translation

March 7th, 2009

Western brands converted to Arabic in Abu Dhabi

logostrip4

logostrip1

logostrip2

logostrip3