r/matrix

    @@ -18,8 +18,8 @@ // // purhaps parent code c.f. // http://timelessname.com/sandbox/matrix.html -// https://news.ycombinator.com/item?id=5388444 // https://www.reddit.com/r/programming/comments/1ag0c3/someone_posted_an_htmljavascript_implementation/ +// https://news.ycombinator.com/item?id=5388444 (() => { 'use strict'; @@ -48,7 +48,10 @@ texts = texts.map((val, idx) => { const rand = Math.random(); - // XXX too much Magic Numbers + // XXX too much Magic Numbers; hints c.f. + // https://news.ycombinator.com/item?id=5388575 + // https://jsfiddle.net/tburette/w6npr/5/ + // https://jsfiddle.net/muV99/1/ ctx.fillText(String.fromCharCode(Math.floor(2720 + rand * 33)), idx * 10, val); val += 10; return val > 768 + rand * 1e4 ? 0 : val; @@ -58,17 +61,33 @@ // # License/Fork Tree // -// unknown origin, below? -// http://timelessname.com/sandbox/matrix.html +// unknown origin +// +// ## timelessname.com +// Unknown (as-is) +// http://timelessname.com/sandbox/matrix.html +// +// first code? Last-Modified: Sun, 17 Mar 2013 05:59:49 GMT +// Sun Mar 17 05:59:49 2013 UTC +// +// ## on Hacker News +// Unknown (as-is) +// https://news.ycombinator.com/item?id=5388444 +// +// post: 1414 days ago (no timestamp) +// Sun Mar 17 07:37:02 2013 UTC // // ## on /r/programming // https://www.reddit.com/r/programming/comments/1ag0c3/someone_posted_an_htmljavascript_implementation/ // -// ## posted by /u/jargonjustin +// ### posted by /u/jargonjustin // Unknown (as-is) // https://www.reddit.com/r/programming/comments/1ag0c3/someone_posted_an_htmljavascript_implementation/c8x2fjx/ // -// ## merged by /u/NonNonHeinous +// datetime: +// Sun Mar 17 03:29:36 2013 UTC +// +// ### merged by /u/NonNonHeinous // Unknown (as-is) // /u/jargonjustin, /u/OptionalField, /u/echeese, and /u/maschnitz (and/or more redditors?) // https://www.reddit.com/r/programming/comments/1ag0c3/someone_posted_an_htmljavascript_implementation/c8x3vov/ @@ -78,11 +97,11 @@ // https://github.com/MinhasKamal/CreepyCodeCollection/blob/master/README.md // https://github.com/MinhasKamal/CreepyCodeCollection/blob/master/matrix_effect.html // -// ## pure js port and mod by yuta25 +// ### pure js port and mod by yuta25 // MIT License https://opensource.org/licenses/MIT // http://let.hatelabo.jp/yuta25/let/hJmeu-js5vps // -// ## re-mod by noromanba the Genin translator +// ### re-mod by noromanba the Genin translator // WTFPL (Do What the Fuck You Want to Public License) // http://www.wtfpl.net/about/ // http://www.wtfpl.net/txt/copying/
  • /*
     * @title /r/matrix
     * @description Neo's-eyes simulator
     * @include http://*
     * @include https://*
     * @contributor http://timelessname.com/sandbox/matrix.html
     * @contributor jargonjustin  https://www.reddit.com/r/programming/comments/1ag0c3/
     * @contributor NonNonHeinous, OptionalField, echeese and maschnitz
     * @contributor yuta25        http://let.hatelabo.jp/yuta25/let/hJmeu-js5vps (Fork of)
     * @license TBD (as-is); see the bottom
     * @javascript_url
     */
    
    // remember '00s web
    // Matrix digital rain c.f.
    // https://www.google.com/search?q=matrix+rain+javascript
    // https://en.wikipedia.org/wiki/Matrix_digital_rain
    //
    // purhaps parent code c.f.
    // http://timelessname.com/sandbox/matrix.html
    //  https://www.reddit.com/r/programming/comments/1ag0c3/someone_posted_an_htmljavascript_implementation/
    //  https://news.ycombinator.com/item?id=5388444
    (() => {
      'use strict';
    
      const canvas = document.createElement('canvas');
      canvas.width = window.screen.width;
      canvas.height = document.body.scrollHeight;
    
      //canvas.style.height = `${document.body.scrollHeight}px`;
      canvas.style.position = 'absolute';
      canvas.style.top = canvas.style.left = '0';
      canvas.style.zIndex = Number.MAX_SAFE_INTEGER || Number.MAX_VALUE;
    
      document.body.appendChild(canvas);
    
      const ctx = canvas.getContext('2d');
      let degree = 0;
      let texts = Array(256).fill(1);
      setInterval(() => {
        ctx.fillStyle = 'rgba(0, 0, 0, 0.05)';
        ctx.fillRect(0, 0, canvas.width, canvas.height);
        ctx.fillStyle = 'rgba(0, 255, 0, 1)';
        // opacity range: 0-1
        // Unit Circle and Radian based cyclic algorithm, like a ^^^^^^^^
        canvas.style.opacity = Math.abs(Math.cos(degree * Math.PI / 180));
        degree = (degree % 360) + 10;
    
        texts = texts.map((val, idx) => {
          const rand = Math.random();
          // XXX too much Magic Numbers; hints c.f.
          // https://news.ycombinator.com/item?id=5388575
          //  https://jsfiddle.net/tburette/w6npr/5/
          //  https://jsfiddle.net/muV99/1/
          ctx.fillText(String.fromCharCode(Math.floor(2720 + rand * 33)), idx * 10, val);
          val += 10;
          return val > 768 + rand * 1e4 ? 0 : val;
        });
      }, 33);
    })();
    
    // # License/Fork Tree
    //
    // unknown origin
    //
    // ## timelessname.com
    // Unknown (as-is)
    //  http://timelessname.com/sandbox/matrix.html
    //
    // first code? Last-Modified: Sun, 17 Mar 2013 05:59:49 GMT
    //  Sun Mar 17 05:59:49 2013 UTC
    //
    // ## on Hacker News
    // Unknown (as-is)
    //  https://news.ycombinator.com/item?id=5388444
    //
    // post: 1414 days ago (no timestamp)
    //  Sun Mar 17 07:37:02 2013 UTC
    //
    // ## on /r/programming
    //  https://www.reddit.com/r/programming/comments/1ag0c3/someone_posted_an_htmljavascript_implementation/
    //
    // ### posted by /u/jargonjustin
    // Unknown (as-is)
    //  https://www.reddit.com/r/programming/comments/1ag0c3/someone_posted_an_htmljavascript_implementation/c8x2fjx/
    //
    // datetime:
    //  Sun Mar 17 03:29:36 2013 UTC
    //
    // ### merged by /u/NonNonHeinous
    // Unknown (as-is)
    // /u/jargonjustin, /u/OptionalField, /u/echeese, and /u/maschnitz (and/or more redditors?)
    //  https://www.reddit.com/r/programming/comments/1ag0c3/someone_posted_an_htmljavascript_implementation/c8x3vov/
    //
    // ## just a collect by MinhasKamal from merged code
    // Unknown (as-is)
    //  https://github.com/MinhasKamal/CreepyCodeCollection/blob/master/README.md
    //    https://github.com/MinhasKamal/CreepyCodeCollection/blob/master/matrix_effect.html
    //
    // ### pure js port and mod by yuta25
    // MIT License  https://opensource.org/licenses/MIT
    //  http://let.hatelabo.jp/yuta25/let/hJmeu-js5vps
    //
    // ### re-mod by noromanba the Genin translator
    // WTFPL (Do What the Fuck You Want to Public License)
    //  http://www.wtfpl.net/about/
    //  http://www.wtfpl.net/txt/copying/
    // http://let.hatelabo.jp/noromanba/let/hJmevPLog7ty
    
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2017/01/31 07:21:20 - 2017-01-31
  2. 2017/01/31 07:17:17 - 2017-01-31
  3. 2017/01/31 06:57:09 - 2017-01-31
  4. 2017/01/30 02:50:32 - 2017-01-30
  5. 2017/01/29 17:04:21 - 2017-01-29
  6. 2017/01/29 16:09:47 - 2017-01-29
  7. 2017/01/29 07:30:08 - 2017-01-29
  8. 2017/01/29 07:24:01 - 2017-01-29
  9. 2017/01/29 07:23:23 - 2017-01-29