作者: c君不在

  • 斟酌字句

    优秀的文人会仔细地斟酌字句,认真推敲,期望用语准确并符合语境和用意。

    现在的软件/应用中,使用人群很大,对应场景各种各样,有的时候会暴露出没考虑到的场景,给人一种不喜的感受。比如 Facebook、twitter 的『like』以及微博的『赞』,在悲伤的事件中就显得格格不入甚至冒犯了。

  • 紫罗兰永恒花园

    有好些年没看到这种情感无法控制地外溢的作品了,平淡的叙述,温柔的背景,却带出无法压抑的悲伤。

  • 在吃这件事上,不只是中国人特有的的,更不是广东人特有的,而是人类共通的,为了果腹,为了解决威胁,人类会吃。

  • 浏览器端 async/await 还是有点代价的

    对于下面这段 js

    function async3() {
      createPromise()
        .then((res) => {
            console.log(res);
        })
        .catch((err) => {
            console.log(err);
        })
        .finally(() => {
            console.log('finally');
        });
    }
    

    其对应 async/await 版本是

    async function async2() {
        try {
          const ret = await createPromise();
          console.log(ret);
        } catch (e) {
          console.error(e);
        } finally {
          console.log('finally');
        }
    }
    

    经 babel 转为 ES5 后,除了必要的 babel-polypill,会生成以下代码,其中 _asyncToGenerator 不会多次生成。

    var async2 = function () {
      var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
        var ret;
        return regeneratorRuntime.wrap(function _callee$(_context) {
          while (1) {
            switch (_context.prev = _context.next) {
              case 0:
                _context.prev = 0;
                _context.next = 3;
                return createPromise();
    
              case 3:
                ret = _context.sent;
    
                console.log(ret);
                _context.next = 10;
                break;
    
              case 7:
                _context.prev = 7;
                _context.t0 = _context['catch'](0);
    
                console.error(_context.t0);
    
              case 10:
                _context.prev = 10;
    
                console.log('finally');
                return _context.finish(10);
    
              case 13:
              case 'end':
                return _context.stop();
            }
          }
        }, _callee, this, [[0, 7, 10, 13]]);
      }));
    
      return function async2() {
        return _ref.apply(this, arguments);
      };
    }();
    
    function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
    

    写法上直观了的,但在浏览器端,还是有些代价,生成的代码会多出不少。

  • 不喜欢 fixed 的 header

    我不是很喜欢 fixed 的涉及,比如 header 这类,因为容易占据了宝贵的垂直空间,特别是笔记本的小屏幕场景。

    如果同时使用了 fixed header 和 footer,那就更讨厌了。

  • 机会留给有准备的人

    到超市选好了商品准备购买,但售货员扫了下条形码发现没价格信息,拿着商品回到货柜去找,结果都没有这款商品的价格信息。回仓库重新去找,依然没找到。最后猜测了下「大概是xx元」。

    由于这个不确定的价格,放弃了购买该商品,出到超市外,打开手机网上购买了。

  • 自动化

    工业自动化很久了,从以前的流水线批量生产到基本人力只用来做辅助调整工作,大量的人力被解放了出来,但同时也意味着大量的工作岗位走进了历史。

    现在,信息社会进一步,不仅在工业领域,在民生领域,像银行、售票乃至餐馆等都逐步用机器取代了人工,一方面机器的效率会比人力更高也更稳定准确。

    在银行,大部分日常工作已被 ATM 或别的机种以及线上服务来覆盖,柜员感觉更多的是大额度或别的业务。

    在火车站等售票点,由于线上购票的普及,线下售票窗已大量地关闭,连售票站也引导到官方或微信等线上售票渠道。这样,售票窗的岗位也被解放了。

    餐馆,线上订餐,线下取餐的形式也开始慢慢展开,结合排号的形式,甚至可能负责发放餐的职位也被取代了一部分。相关的职位也会被释放一部分出来。

    可重复的可被预测的工作都在继续地被机器取代,人只能往更有创造力的岗位上去发展。没有一点知识,依然拼出半边天的励志传说,将越来越少。

    当然,信息时代的一个强依赖是:电。

  • fetch

    实现中的 fetch 是希望能比 XMLHttpRequest 更好地做网络请求。

    fetch('/')
        .then(res => { 
           if(res.ok) {
             return res.text();
           } else {
             throw new TypeError(res.statusText);
           }
        })
        .then(text => console.log(text.length))
        .catch(err => console.error(err.message));
    

    Reference

    注意点:

    1. fetch 仅在网络因素下 reject,业务的错误,如 502 或 404 等会 resolve,需要判断 response 是否 ok
    2. 默认不携带 cookie,需要明确指定
    3. 跨域时会受 CSP 控制影响,需要配置
  • 看看台湾

    好多年没看电视了,最近突然兴起找了一些台湾的新闻来看,了解一下社会了解一下外界。

    老实说,看的那几个新闻节目,虽然感觉有点「幼稚」,有点坐井观天的感觉。但能在公开电视节目上对政府机关和领导人的行为发表意见,这的确是一件好事。

    民主挡不住世界黑暗面,比如美国大选的各种闹剧。民主也会给政策的实行带来时机延误和执行力度的问题。但一言堂的问题是比较严重的,因为直接会导致缺乏反馈,欺上瞒下,自以为是。

    或许应该这样,开放言论,接受反馈,最终拍板。

  • 效率与公平

    绝对的公平不存在,因为天资有别,再加上父辈的差异累计,最终会导致起点不同、天赋不同。

    有天赋的人自然认为凭借自己的本事,只要没明文禁止,那么一切都是自己的努力,自己应得的结果。

    在无明文规定的情况下,的确也很难从道德和规则上去说什么。

    随着时代来到信息时代,随着互联网和移动互联网的兴起,技术人员作为时代精英的一个代表越发地突出。

    技术人员凭借自己的技术能力突破常规限制来获取竞争优势,看起来天经地道。但如果竞争方不是同是技术人员而是广大的非技术人员时,这是否过度效率优先呢?

    作为个体,本能地追求效率有效;但作为管理团队,又该如何处理呢?

    美国大选结果会如何还很难说,但英国退欧可以看作是大众对精英的效率优先的一种抗议,也有民众表示网络购票和网络打车的流行对稍微晚一辈的人造成了不公平的竞争。

    时代在发展,新老时代交替过程中,技术或知识造成的竞争差异会越发巨大,这过程中如何应对呢?

    初中时地政治课本里说,需要效率优先,兼顾公平。这是一个思想,具体要如何做呢?