Git Product home page Git Product logo

cafeaulife's People

Contributors

raganwald avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

chrismealy

cafeaulife's Issues

get rid of “what” comments

Some of these comments really seem unnecessary. for example:

# Export `Cell`
_.defaults exports, {Cell}

I think that is obvious enough that the code is "exporting" 'Cell'. I couldn't tell you why though.

My second criticism is that it seems comments are all too often of the "what" variety. Simply translating the code to english. That's not really very helpful. Once someone has some grasp of the programming language being used, the "what" is right there in the programming language. No need to restate it in another language.

--http://news.ycombinator.com/item?id=3577379

Write code to generate size four seeds

Is precomputing 65,536 seeds really a win? Maybe the time to compute the square is insignificant next to the time to allocate the objects and stuff them in the hash table. If we go this way, need to precompute the hashes as well. Which means that the seeds break if the hash function changes.

Or maybe they have their own hash function, a special case number from 0..65535. Which implies that hash codes should be independant of bucket sizes, which allows us to increase the size of the bucket list to create a cuckoo hash.

Allow life-like games based on Morgolus neighbourhoods

Need to carefully think whether we can use Gosper’s quadtrees. Consider 4x4:

1122
1122
4433

In generation 1, we can change 1, 2, 3, and 4. In generation 2, we do:

....
.55.
.55.
....

Thus, a 4x4 square has a velocity of 2. Need to ponder whether larger squares can decompose to 4x4.

Garbage collection!!!

Need to be able to compute “rabbits” without going over 900,000 squares in the cache. Some options:

  1. Roll your own weak references. They act like squares, but don’t remember results
  2. Cache results but not squares, you can GC a bunch of results, which would discard a bunch of squares not currently ‘pinned’ by the current computation.
  3. Figure out a ‘pinned’ vs. ‘unpinned’ flag for the cache, such that the current square is always pinned, and so are the initial rules, but other squares can be discarded. Critical to be able to force that any pinned square also pins its components, but nothing else is pinned. This allows for temporary results to be subject to GC.

mark-sweep garbage collector

perhaps a mirror bucket list? Crawl the tree hashing everything found that hasn’t already been added to the tree.

Reorganize indivisibles

The distinction between alive and dead only matters to the engine for hashing purposes. The rest of the potential logic should be reserved for the code that generates the level two seeds.

Variable results

Move forward fewer than 2^(L-1) generations when generating a result.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.