The scripts are for Julia 0.7/1.0. Unfortunately a lot of changes since Julia 0.6 are introduced (you are probably using it). Here is an example how you can rewrite the first code to run under Julia 0.6.4:

```
function setup(density)
[x == 1 ? 2 : rand() < density ? 1 : 0 for x in 1:251, y in 1:251]
end
function go(grid)
any(x -> x == 2, grid) || return true
for pos in shuffle!(find(x -> x == 2, grid))
x, y = ind2sub(grid, pos)
for (dx, dy) in ((0, 1), (0, -1), (1, 0), (-1, 0))
nx, ny = x + dx, y + dy
if all((0,0) .< (nx, ny) .≤ size(grid)) && grid[nx, ny] == 1
grid[nx, ny] = 2
end
end
grid[pos] = 3
end
return false
end
function go_repeat(density)
grid = setup(density)
init_green = count(x -> x == 1, grid)
while true
go(grid) && return count(x -> x == 3, grid) / init_green * 100
end
end
@time [go_repeat(0.55) for i in 1:100];
@time [go_repeat(0.75) for i in 1:100];
```

The biggest differences in the code are:

- different approach to
*find* functions
- different approach to matrix indexing