Bill' Notes

  • 首页

  • 关于

  • 标签

  • projects

  • 归档

  • 搜索

语丝

发表于 2019-07-01
本文字数: 338 | 阅读时长 ≈ 1 分钟
  • 日剧《女王的教室》中天海佑希的一段话告诉你人为什么要读书:
    “如果有活到老学到老的想法,那就有无限的可能性。失去好奇心的一瞬间,人就死了。”

  • 更高的教育,给了我们脱离原生家庭的影响建立自己价值观的可能。

  • 龙应台对儿子说过:
    “我要求你读书用功,不是因为我要你跟别人比成绩,而是因为,我希望你将来会拥有选择的权利,选择有意义、有时间的工作,而不是被迫谋生。当你的工作在你心中有意义,你就有成就感。当你的工作给你时间,不剥夺你的生活,你就有尊严。成就感和尊严,给你快乐。”

  • 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧。 -赫尔曼•黑塞

前端框架 Vue 学习笔记之 Reactivity

发表于 2019-06-24 | 更新于 2020-12-23
本文字数: 5.9k | 阅读时长 ≈ 11 分钟

这一篇笔记的重点在于探究 Vue 的响应式特性,并动手实现一个简易的响应系统。

什么是响应式

在前端框架这个语境下是指,状态的改变引起相应的 DOM 随之改变。

我们先从一个最简单的情形说起,假如有 2 个变量 a 和 b,我们要实现的需求是,让变量 b 的值总是变量 a 的 10 倍。

1
2
3
4
5
6
let a = 3;
let b = a * 10;
console.log(b); // 30
a = 4;
b = a * 10;
console.log(b); // 40

上面代码中,每次变量 a 发生变化,必须手动更新变量 b 的值,才能使得两者始终保持 10 倍的关系。如何声明式地表示这种关系呢?

在 Excel 中,我们是通过函数来实现类似效果的:

No.AB
1440(fx = A1 * 10)

在程序语言中,我们想要的是一个类似这样的函数:

1
2
3
onAChanged(() => {
b = a * 10;
});

每当变量 a 的值发生改变,作为回调函数参数的这个更新函数便执行(即上面代码中的箭头函数),这样问题就解决了。那么如何实现这样一个函数?

先将前面问题稍微转化一下,使之更符合 Web 开发的实际情况。

我们现在有一个 <span> 标签 b1,它的值是状态变量 a 的 10 倍:

1
<span class="cell b1" />
1
2
3
onStateChanged(() => {
document.querySelector(".cell.b1").textContent() = state.a * 10;
});

上面的代码实际上声明式地表达了状态与 DOM 之间的关系,不过我们可以更进一步抽象成这样:

1
<span class="cell b1"> {{ state.a * 10 }} </span>
1
2
3
onStateChanged((state) => {
view = render(state);
});

从上面的代码我们隐约看到了一个 UI 库的雏形,最关键的是这行代码:view = render(state),它实际上高度抽象地概括了现代前端框架存在的根本原因:通过一种映射,将应用程序的 UI 与状态同步。这里面涉及到很多虚拟 DOM 和原生 DOM 的细节,所以我们这里先关注外面的回调函数即 onStateChanged 是如何实现的。

它可能是这样实现的:

1
2
3
4
5
6
7
8
9
let update;
const onStateChanged = (_update) => {
update = _update;
};

const setState = (newState) => {
state = newState;
update();
};
阅读全文 »

icon 设计分享

发表于 2019-06-24 | 更新于 2019-06-25
本文字数: 41 | 阅读时长 ≈ 1 分钟

分享 3 个 icon 是如何制作出来的。

eye

eye

heart

location

location

高质量在线网站集合

发表于 2019-06-20
本文字数: 4k | 阅读时长 ≈ 7 分钟

资源聚合导航

NiceTool+

在线实用工具聚合网站。涵盖以下各方面:

  • 生活常用
  • 教育学习
  • 办公辅助
  • 图片视频
  • 网络工具
  • 程序开发

Neets

Neets 是你的追剧管家,你可以把目前追的各种影视、综艺等记录下来,做追剧清单,更新永不落。
Neets 本身不提供观看渠道,只是各种来源的搬运工,并且一般会有几个观看源可以选择。

虫部落

资源搜索网站。

仿知网

仿知网是一个完全可以代替知网的精品网站;是一个非常强大的论文搜索网站。首先这个网站的论文检索结果和知网的搜索结果基本一样,而且这个网站每个账号前期免费提供论文下载,当你的下载次数没了,你完全可以用其它邮箱再注册其它账号使用;当然,如果你不想再注册账号,这个网站提供一块钱随意下载论文一天,
也是非常值得尝试。总体而已,如果需要下载论文,这个网站是一个非常好的选择。

全球电视直播

全国电视直播是一个功能非常强大的电视直播网站,真的是十分良心;电脑推荐使用 edge 浏览器打开或者使用其它浏览器打开,然后右键复制视频地址,potplayer 打开链接也可以播放;注意:电脑直接用浏览器打开可能播放不了,手机可以正常播放。它支持几百个电视直播的网站,几乎拥有一般电视直播网站拥有的所有频道,它还支持港澳台卫视,国外电视等等。它还有的特点就是电视直播播放速度和加载速度非常之快,画质也是十分高清;最后,网站界面简洁,没有任何广告;总体体验非常不错的一个网站。

医学微视

医学微视是一个以视频的方式分享各种医学知识的良心网站,强烈推荐。它是中国医学科学院健康科普研究中心监制的一个网站,并且不提供销售任何产品,它以短视频的形式帮助你了解各种疾病,通俗易懂,让你轻松了解各种医学知识;当我们遇到不懂的医学知识或者健康问题,直接利用这个网站,找到对应的疾病,就可以轻松找到对应的视频。

Bookset

是一个质量很高的精品电子书籍网站。首先,它提供了丰富的书籍,并且网站的电子书籍的更新频率非常快,网站的电子书籍你也都可以直接下载。它还提供强大的电子书籍搜索功能,让你轻松可以找到你需要的电子书籍。
它的书单功能和排名功能可以让你发现很多高质量的电子书籍,它的书单功能提供了豆瓣 2018 年度读书榜单,香港大学推荐的 50 本经典书籍,亚马逊推荐 100 本必读书,它的排名功能也把电子书籍按照豆瓣评分精心排列。最后,网站的标签分类功能让你可以按照电子书籍的种类查找电子书籍,网站的书籍合集列表会让你发现更多高质量的书籍合集。

阅读全文 »

智能手环如何监测睡眠

发表于 2019-06-06
本文字数: 947 | 阅读时长 ≈ 2 分钟

最近看到小米手环 3 的一些介绍,宣传可以监测睡眠情况,同时可以统计深度睡眠和浅度睡眠的时长。

在网上查询一番之后,基本可以得出如下结论:

小米手环 3 用来监测睡眠的唯一传感器是三轴加速度传感器,通过该传感器采集睡眠过程中特殊频率的移动,经过一些算法,得出睡眠质量结果。使用这种方式,对于睡眠没有大问题的健康成年人来说,判断觉醒和睡眠这两个状态是没有太大偏差的,所以睡眠的时间段信息(比如晚上10:50到早上7:29)是基本可信的结果。

但是,对于睡眠质量结果中的浅度睡眠和深度睡眠,可以认为这个数据是不可靠的。当今睡眠监测的金标准,是 PSG(多导睡眠描记法),多导睡眠描记法主要记录三种活动:脑电波活动 EEG,眼前后电位差 EOG,肌电图 EMG。此外,PSG需要贴很多电极,绑设备,连续监测7天以上,成本非常高昂,通常用于临床上诊断睡眠障碍(睡眠呼吸暂停,发作性睡病,睡眠腿动征等)。可以看到,PSG 这种方式测量的都是神经层面的活动,并非加速器能测量的运动。

所以,各类智能手环/智能手表/利用手机加速度传感器的睡眠监测APP,这些设备或软件并不能准确地区分睡眠阶段,因为睡眠阶段需要依靠监测脑活动来区分,而它们只是通过加速度传感器来监测特定频率的运动。大多数的验证实验对采用加速度传感器监测人体活动产生的加速度来辨别睡眠/觉醒的准确性是持肯定态度的,而在深度睡眠和浅度睡眠的时长这些结果上与 PSG 的一致性低。

阅读全文 »

2018 年中国居民人均可支配收入

发表于 2019-06-04 | 更新于 2020-12-23
本文字数: 2.1k | 阅读时长 ≈ 4 分钟

居民收入情况

2018 年,全国居民人均可支配收入 28228 元,比上年名义增长 8.7%,扣除价格因素,实际增长 6.5%。其中,城镇居民人均可支配收入 39251 元,增长(以下如无特别说明,均为同比名义增长)7.8%,扣除价格因素,实际增长 5.6%;农村居民人均可支配收入 14617 元,增长 8.8%,扣除价格因素,实际增长 6.6%。

全年全国居民人均可支配收入中位数 24336 元,比上年增长 8.6%,中位数是平均数的 86.2%。其中,城镇居民人均可支配收入中位数 36413 元,增长 7.6%,是平均数的 92.8%;农村居民人均可支配收入中位数 13066 元,增长 9.2%,是平均数的 89.4%。

平均数与中位数

这里以居民收入为例来说明,平均数,所有居民收入总和除以居民的数量;中位数,将居民收入按照升序排列,取最中间的一个居民收入值(居民总数为奇数的情况)或者两个居民收入值的平均值(居民总数为偶数的情况)。

在最理想的情况下,居民收入应该呈正态分布,即处于中等收入水平的人数最多,而高收入和低收入的人数朝两极方向递减。此外,正态分布下,居民收入的平均数和中位数是相等的。2018 年居民人均可支配收入的中位数是平均数的 86.2%,即中位数小于平均数,这说明右侧数据(高收入)存在多个异常的偏大数据。这些异常的高收入个体拉高了居民人均可支配收入,所以在这样的情况下,中位数比平均数更适合描述大多数居民的收入情况。简而言之,平均数适合描述趋于正态分布的数据,中位数适合描述存在极大或极小值的数据。

统计指标解释

(一)居民可支配收入

居民可支配收入指居民可用于最终消费支出和储蓄的总和,即居民可用于自由支配的收入。既包括现金收入,也包括实物收入。按照收入的来源,可支配收入包含四项,分别为:工资性收入、经营净收入、财产净收入和转移净收入。

工资性收入

指就业人员通过各种途径得到的全部劳动报酬和各种福利,包括受雇于单位或个人、从事各种自由职业、兼职和零星劳动得到的全部劳动报酬和福利。

经营净收入

指住户或住户成员从事生产经营活动所获得的净收入,是全部经营收入中扣除经营费用、生产性固定资产折旧和生产税之后得到的净收入。计算公式为:

经营净收入=经营收入-经营费用-生产性固定资产折旧-生产税

财产净收入

指住户或住户成员将其所拥有的金融资产、住房等非金融资产和自然资源交由其他机构单位、住户或个人支配而获得的回报并扣除相关的费用之后得到的净收入。财产净收入包括利息净收入、红利收入、储蓄性保险净收益、转让承包土地经营权租金净收入、出租房屋净收入、出租其他资产净收入和自有住房折算净租金等。财产净收入不包括转让资产所有权的溢价所得。

转移净收入

计算公式为:转移净收入=转移性收入-转移性支出

转移性收入

指国家、单位、社会团体对住户的各种经常性转移支付和住户之间的经常性收入转移。包括养老金或退休金、社会救济和补助、政策性生产补贴、政策性生活补贴、救灾款、经常性捐赠和赔偿、报销医疗费、住户之间的赡养收入,本住户非常住成员寄回带回的收入等。转移性收入不包括住户之间的实物馈赠。

转移性支出

指调查户对国家、单位、住户或个人的经常性或义务性转移支付。包括缴纳的税款、各项社会保障支出、赡养支出、经常性捐赠和赔偿支出以及其他经常转移支出等。

阅读全文 »
123…10
Bill Wen

Bill Wen

less is more
57 日志
70 标签
GitHub
Creative Commons
0%
© 2018 – 2020 Bill Wen | 195k | 5:55
由 Hexo 强力驱动
|
主题 – NexT.Pisces