作者: c君不在

  • 基因

    最近基因治疗、基因编辑好像收到不少的关注,自己本身并没有去关注,只是想起了以前看过的一本小说,里面有相关的事件。

    观点有很多,如果通过基因技术,能够治愈某些绝症,那么是否可以用它来拯救生命呢?

    另一方面,医疗至少很长一段时间内不能做到人人接近免费享受,所以和所有的市场行为一样,越有钱的人越能享受到更好的服务。在基因相关技术开放的情况下,富人能做更多的基因优化,而底层的人可能负担不起任何一个基因治疗,最后可能就是“消灭一部分人来达到共同富裕”了。

    进步、健康、伦理、公平,这些关注点在生命的奥秘命题上可能会有非常多的辩论与纠结。

  • 101

    经常看到 Math 101ReactJS 101Java 101 等,虽然能大概明白是什么意思,但一直没考究过,今天决定查看一下。

    xx 101 这种用法来自美国大学的课程,一般用字母+数字的组合来作为课程代称,如 CS101 这种一般用来指代计算机导论这类课程。其中字母 CS 代表计算机类别,(从左边开始),第一个数字表示课程级别,简单来说就是大几,中间的数字表示课程子类,最后的数字表示第几学期。

    后来 101 则进一步延伸为某一领域的入门知识。

    参考

  • 电影开屏广告

    我进电影院的次数屈指可数,上一次进电影院还是几年前,印象中那时进去就是直接看电影。没想到最近去电影院,还没到点,于是看了好一会广告,这是常见经营模式了吗?

  • Git 永久移除文件

    Git 基于内容寻址的文件系统及数据对象1等设计,默认情况下,文件每次变更都生成一个副本。如果需要移除已经 push 到远程仓库中的文件,那么仅当前 commit 删除 ignore 并不能完全地移除掉对应的文件,还需要把其从所有的历史记录中移除才行。

    这个需求可以通过 git filter-branch 来完成,但这个命令偏底层,具体到删除文件这个场景上,可以使用 bfg-repo-cleaner 这个工具。这个工具功能挺多的,具体参考官网文档或使用时的提示。

    下面是一个删除指定目录的流程

    git clone --mirror xxRepo   # 需要在 mirror 模式下操作
    cd xxRepo
    java -jar path/to/bfg.jar --delete-folders "{build, dist}" --no-blob-protection
    git reflog expire --expire=now --all && git gc --prune=now --aggressive
    git push
    

    参考

  • 《最简单的图形与最复杂的信息》笔记

    《最简单的图形与最复杂的信息(The Wall Street Journal Guide to Information Graphics)》

    最简单的图形与最复杂的信息

    折线图用于连续数据,条形图用于离散数据。但当两个数据列都是条形图时(双 Y 轴的场景),可考虑把其中一个变为折线。

    折线图 Lines

    • 折线高度约占图标区域 2/3。
    • 折线应比网格线粗,但不能过粗而导致掩盖了折点变化;如果有零基线,零基线应比网格线稍粗。
    • Y 轴增量常用 1、2、5、10、15、20、25 等。
    • 线条应在四条以下;使用实线,通过粗细、颜色比形状区分更好(使用颜色时需要考虑色盲的情况);如果数据系列比较多,可考虑由一个个的单折线图组成图表组。
    • 空间紧凑且交叉点多时,可使用图例,且顺序尽量和重点顺序一致。否则可直接在折线上标注,标注应简短。
    • 双 Y 轴应用于表示两组数据有关联的场景。
      (更多…)
  • React 行内条件渲染

    React 的行内条件渲染(inline conditional rendering)能够在无 else 分支的情况下简化条件渲染,这是由子元素定义及渲染决定的。

    const ele = (
      <div>
        <p>{true}</p>
        <p>{true && 1}</p>
    
        <p>{false}</p>
        <p>{false && 2}</p>
      </div>
    );
    

    对应的 JavaScript 代码是

    const ele = React.createElement(
      "div",
      null,
      React.createElement("p", null, true),
      React.createElement("p", null, true && 1),
      React.createElement("p", null, false),
      React.createElement("p", null, false && 2)
    );
    

    true && 1 等的表达式结果作为子元素去渲染时,使用  ChildReconciler#createChild ,其中仅当子元素类型(typeof)是 stringnumberobject 且不为 null 时才渲染,所以 true / false 则不会渲染。

    (更多…)

  • 《牛津通识读本:数学》读书笔记

    《牛津通识读本:数学》

    牛津通识读本:数学

    序言

    他的一个基本的观点:对于数学,不要问它是什么,而只要问它能做什么。

    这一抽象化的思考方法,将重点放在数学内部体系的相容性,强调新的数学概念、方法与内容和已有的数学体系应自然地融为一体,强调要将有关的数学内容脱离其物理上的实在、变为符合一些特定规则的记号,就会更利于应用,更利于正确地理解高等的数学。

    (更多…)

  • JavaScript 核心笔记

    JavaScript 对象的原型,在用户层面的代码看到的是 __proto__ 属性,在语言内部是 [[prototype]] 属性。aConstructorFn.prototype 是指原型链。

    (更多…)

  • 也谈 LOL

    看了 LOL 一段时间了,最近英雄越来越平衡,功能也越来越平衡,天赋、物品以及游戏机制也越来越平衡,作为一款游戏,一个人 carry 的可能性越来越小,团队协作越来越重要了。

    特别是职业赛事,选手间的差距有,但一般不会非常大,特别是顶尖队伍间。强调团队协作,要求尽量不要把筹码压在一名成员身上,必须在某一路受到重点关注和压制的时候,别的路能站出来缓解队伍压力乃至反压制。不然,依赖的一路被压制的时候可能容易一蹦千里无力回天。

    而有效团队协作的前提是沟通,不断的流畅沟通,并对队友有信心,对自己也要有信心。

    这款游戏到底不是一个人的游戏,SKT 的问题必定不是 faker 一个人的问题,也不是上路或打野一个人的问题,是整个团队的问题。

    但目前看来,打野位是很重要的一个位置。因为,大多数情况下,别的三路都在明面对线,只有打野大多数时候隐藏在暗中,和对方进行斗智斗勇。而这个过程,则需要整个团队根据对线情况以及合作提供的视野来一起协作完成。

    虽然最近几个版本角色比较特殊,但还是得平衡考虑坦克、控制、物理输出和法系输出。不过,对选手的英雄池还是提出了更高的要求,对 BP 战术以及游戏内的战术也提出了更高的要求。

  • 《高性能网站建设进阶指南》读书笔记

    《高性能网站建设进阶指南》

    无阻塞加载脚本

    无阻塞加载外链脚本的方法有:

    • XHR Eval,xhr 加载后 eval。
    • XHR 注入,xhr 加载后,创建 script 元素 scriptEle,然后把加载到的内容写进 scriptEle 的 text 属性来运行。
    • Script in Iframe,通过 frames/contentWindow 以及 parent/top 等来在父子窗口间相互调用。
    • Script DOM Element,动态创建 script 元素,然后设置 src 属性来加载外部脚本。
    • Script Defer,延迟执行,但执行顺序和声明 defer 的顺序一致,阻塞 DOMContentLoaded 事件。
    • document.write Script Tag,多个脚本并行下载,但依然阻塞其它类型资源,document.write("<script src='a.js'><\/script>")

    (更多…)