会议是效率的杀手
会议是效率的杀手。 会议扼杀效率,如同时间的窃贼,逐步蚕食所有产出。 我要容忍会议,让它流过我的日程。 当会议结束,我会审视成果,看清它的影响。 会议过后之处,空无一物,唯有任务仍然堆积。
会议是效率的杀手。 会议扼杀效率,如同时间的窃贼,逐步蚕食所有产出。 我要容忍会议,让它流过我的日程。 当会议结束,我会审视成果,看清它的影响。 会议过后之处,空无一物,唯有任务仍然堆积。
二号去了开发区——现在叫黄渤海新区——的金沙滩,主要是去最近新建成开放的时光塔。时光塔是个造型奇特的建筑,转了一圈之后感觉它的确是一个值得逛一逛、值得在里面走走停停的地方。但是当天人太多,在想停留的位置,可能站满了人,还有些地方,会被人流推着不得不往前走。周边还有不小的绿地公园、城市展示中心和著名的大鲸鱼滑滑梯。整个万米金沙滩上有各种不同的建筑、公园和沙滩,总体挺好的。
从 2018 年开始居家办公,到现在三四年了。今年春节在老家多待了一阵子,在老家工作了一个周,跟我平时自己屋里的工作环境挺大。虽然远程办公不再限制工作的地点和场所,但是对工作环境还是有一定要求的。这里是对居家办公某些细节方面的一点想法,对于居家办公更系统的建议,可以看看如何有效在家办公这篇文章。
去年就地过年,没有回老家,今年回了。 每年春节都几个不变的广泛讨论的主题:一是年味淡了,二是春晚难看,第三是红包。 鞭炮 「年」在变,人也在变。以前,除夕当晚要熬到十二点,这一天跟平时的作息时间不同,这个差异增加了一点点年味。现在「熬」字不适用了,过了十二点就去睡,可能还会琢磨一下,是不是还有点早。
在豆瓣看到一则奇闻,腾讯视频平台上,电影《搏击俱乐部》的最后,以文字的形式,加了这么个结局:根据泰勒提供的线索,警方理清案情,一举将他们抓获,阻止了炸弹的爆炸。泰勒被强制送往精神病院接受治疗,于 2012 年痊愈出院。 这帖子里图中文字的字体和颜色跟原片风格是类似的,但是我的第一反应仍然是这是假的,毕竟这事太荒谬。我怀疑帖子里那张包含了上述文字剧情的电影截图是有人恶作剧 PS 的。
小米手环自第五代开始,加入了一个 PAI 功能。PAI,是 Personal Activity Intelligence 的缩写,根据字面意思,翻译成中文是「个人活动指数」。在与小米手环配套的手机 App 中,对 PAI 的描述如下:
最早是在阳志平的文章《伯纳科夫的卡片》中看到了「卡片笔记」这一说法,并没有深入了解,更谈不上实践。后来是看到 flomo 这款软件,我把它当成单人版微博用了挺久,每天有什么想法就用它记一下。再后来就是很热门的一本书《卡片笔记写作法》。
刑法基础知识 法无明文规定不为罪,法无明文规定不处罚,这是法治国家最重要的刑法原则。 危害公共安全罪 有人平常车里备瓶酒,等警察来了,当着警察的面把二锅头一口吹掉。他对警察说“不好意思,看到警察就紧张,紧张就喝酒。”这能规避法律吗?很难查出他在见到警察前有没有喝酒。司法解释直面了这个问题,它规定:血液酒精含量是认定是否醉酒的依据。犯罪嫌疑人在公安机关依法检查时,为逃避法律追究,在呼气酒精含量检验或者抽取血样前又饮酒,经检验其血液酒精含量达到醉酒标准的,应当认定为醉酒。
博客运行在阿里云的机器上,机器还有两个月到期,迫于贫穷,我不准备续费了,今天把博客从阿里云迁移到 Oracle 的免费云主机。 给 Oracle 这台机安装 MySQL 时,服务器几乎挂掉,死透。安装快结束时,服务器完全失去响应,另外再开个终端尝试 ssh 登录也登不上。去 Oracle 的管理后台页面重启,在正常重启和强制重启两个选项中,我保守地选择了正常重启。机器长时间处于「正在停止」的状态,任何操作包括强制重启都不能进行。
书的封面上写着「继《C 程序设计语言》后的全新力作」,乍看以为作者就写了两本书。实际上在这本书中,作者本人就提到了他写过的其他书,比如《普林斯顿计算机公开课》(有一个版本叫做《世界是数字的》)、《程序设计实践》,此外还有近年来火热的《Go 程序设计语言》。
今年是头一次没有回老家,响应了政府的号召,就地过年。 以前过年时,从年三十晚上到初一下午,鞭炮声不断,尤其是刚过零点时,全城的放炮爱好者们争先恐后制造噪音和有毒气体。扛过这一波,勉强睡着,一大清早又会被鞭炮声吵醒。
假设有项目 A,名为 awesome-project-a,运行两个容器,一个 web,一个数据库,由 docker-compose.yml 是这个样子 version: '3' services: web: # ... # ... db: # ... # ... 由 docker-compose 把项目启动之后,会自动创建一个叫做 awesome-project-a_default 的 docker 网络。可以通过命令 docker network ls 查到这个新创建的网络,使用 docker network inspect awesome-project-a_default 查看有哪些容器在用这个网络。
这是一篇在草稿里呆了一段时间的文章。 《消失的十三级台阶》 几年前我看过这本书作者的另外一本小说《人类灭绝》。我对《人类灭绝》的评价是「非常好看」,于是在看到《消失的十三级台阶》的作者是同一个人时,对这本书也兴趣大增。
明年一月份我的身份证就过期了,今天去当地派出所办了新的。进出派出所,大概不到十分钟。 在派出所门口量了体温,做了登记,门口的民警告诉我去里面的户籍大厅。
比如当前在 master 分支,想临时把项目中的某个文件换成 dev 分支的对应文件或目录,或者某一个 commit 里面的对应文件和目录,其他目录和文件保持不变。 git checkout 对于 git2.23 之前的版本,可以使用 git checkout 命令实现上述需求。
我当年高考时,理科生有四场考试:语数外和理综,总分 750,其中语数外各 150 分,理综/文综是 300 分。 我的成绩挺出乎我意料,坏的那种出乎意料。 语文 79 数学 114 英语 128 理综 234 虽然过去很久了,我也记得这个成绩。除了数学,每门成绩都有记忆点:语文成绩差到刻骨铭心,英语成绩是个「整数」,理综分数比较有特点,几门课加起来的总分也比较有特点,555 分。
下面的电视剧都是今年出的,电影不是。由于电影行业比较惨淡,没什么新片,这里推荐的电影都是去年年底、今年年初出品的,也没跳出奥斯卡的圈子。上半年也看了一些很优秀,但是出品时间更早的作品,就不算在推荐列表里了。
介绍如何进入 ChromeOS 的开发者模式(developer mode),如何让硬盘根分区可写,怎样开启 ChromeOS 里的 SSH 服务。 进入开发者模式 首先同时按 Esc 键 + Recovery 键 + 电源按钮。Recovery 键就是 F3 键,以我手上这台 Chromebook 设备为例,它的键帽上面是一个表示 Recovery 的图标。按下后,系统立刻重启,进入 Recovery 模式:
6.18 当天在京东买了三本书,分别是《守望者》漫画的上下两册和《敏捷整洁之道》。 《守望者》是全彩的大开本,单从书的装帧、印刷和厚度上来看,比《敏捷整洁之道》可要划算多了。从下面这张图片可以看出它有多大。
2020.06.18 更新:拦截了一个号码,给了一个微信通知。晚上突然想到是不是因为我之前没有在拦截种类里选择「保险理财」和「房屋中介」,才会继续收到卖房子、炒股的电话。现在把所有种类都选上了,继续观察。
前阵子写了不少 bash 脚本,有些代码片段值得一记。有以下几项内容: 获取当前脚本文件所在路径 字符串 startsWith 和 endsWith 判断字符串内容是否是数字 获取字符串的子串 if 语句的几个判断条件 获取当前脚本文件所在的路径 用户执行脚本时,用户所在的目录,也就是 current working directory,可以通过执行 pwd 或者 bash 的内置变量 $PWD 获取。
我是个程序员。
终于又用上 MBP 了,去年年底发布的 16 寸的低配款。由于我上一台 MBP 是 2012 年的产品了,近两年用的是一台 Thinkpad,没有中间这么多年的 MBP 使用经验,所以用上这一台 2019 年款时,感觉变化还不少。
花了一个多月读完了这本《架构整洁之道》,跟《代码整洁之道》、《程序员的职业素养》算是一个 Clean 系列,每一本读来都很有启发。这本《架构整洁之道》有些地方看得还挺迷糊,值得一读再读。 概述、编程范式 设计与架构没有任何区别。一丁点区别都没有!软件架构的终极目标是,用最小的人力成本来满足构建和维护该系统的需求。
上周,19 号那天中午,我去了家附近的电影院看了《星球大战:天行者崛起》,在我目所能及的范围内,算上我自己,这一场只有四个人。这部星球大战槽点满满,我还挺喜欢,毕竟,我只是去图个乐。下面说的,也别当真。
在 V2EX 上看到一个询问第一代 RMBP 还能卖多少钱的帖子。我手上也有这么一台机器, 2012 年中的 RMBP,内存比那个帖子里的更小,8G,其他配置跟楼主一样。我的这台机器,虽然两年前开始就不怎么用了,但是伤痕累累,只能留着自己用,以后当作收藏或废品了。
上个月很巧地在两本不同的书里看到了一个相同的说法,说的是使用 if…then…,也就是「如果……那么……」的模式来提高执行力。 比如,我已经又快一个月没有更新博客,于是我给自己定下了一个「写一篇博客」的任务。但是这项任务没有来自外部的压力,我也就一直拖延,书中的说法是这样的:
如何在命令行里快速方便地查看网站 SSL 证书有效期? 一句话命令: echo | openssl s_client -servername $NAME -connect "$host":443 2>/dev/null | openssl x509 -noout -dates $NAME 和 $host 都是域名,确切地说,$NAME 是 SSL 握手时 SNI 里面的名字,$host 则代表被解析的域名,是一个地址。通常这两个变量的值是相同的一个域名。
这本书的英文名是 The Clean Coder, 中文译名是《代码整洁之道:程序员的职业素养》,跟《代码整洁之道》是同一个作者。这本书与具体的代码技巧关系不大,主要就讲了一件事——如何做一名专业的程序员。 挺薄一本书,内容都是日常所见,加上翻译也不错,所以读起来感觉轻松流畅。书中多数内容早已在实践,我印象最深刻的是这样几点:专业人士的态度,要重视测试,如何预估项目,以及对「流态区」的看法。
今年国庆节假期跟去年一样,在家里待了七天。 去年国庆假期写了挺多代码,今年这几天几乎没碰电脑;去年国庆期间看完了《五芒星》,今年看完一本同系列的《焦渴》。 《焦渴》,还是熟悉的配方,还是熟悉的味道。只不过在书的结尾部分,我有点无法接受某个特别「狗血」的情节。
我把 Ubuntu 用作主力操作系统已有两年了,偶尔会用一下旧的 Mac。Mac 上有一个「按空格键预览文件/目录的功能」,在 Ubuntu 里默认是没有这个功能的。 我并不常用这个功能,用得最多的使用场景是选中一个目录时,按空格键,能看到整个目录的大小。由于不常用,也并没怎么在意这个功能在 Ubuntu 里的缺失。
看了一本讲「穿什么衣服」的书《基本穿搭》,是一位日本人写的。 几点总结: 设计: 纯色 尺码: 宁愿偏小,不买偏大 颜色: 上身除内衣以外,一律首选藏青色,下身牛仔裤或浅驼色棉质长裤 品牌: 优衣库和 GAP 其他:扔扔扔;一件衣服不要连续穿两天 目前在豆瓣上评分只有 6.6 分,还能不能靠它挽救一下油腻中年男人了?
今天给 Ubuntu 操作系统 sudo apt-get upgrade 了一把,居然把它给升挂了。尝试选旧版本内核、进恢复模式,都没成,看到的错误是一个被各种软件所依赖的动态库少了个「符号」,导致大批的命令和服务不可用。因为我的 HOME 和系统在不同分区,绝大多数有用的东西都在 HOME 分区,所以索性重装了 Ubuntu,保险起见,重装的版本仍然跟之前一样是 18.04。重装之后,只要把一些装在根目录的软件再装回来就可以了。这里顺便做一下记录。
又是长时间没写博客,最近的确感觉比较忙,也说不上来到底忙的什么,一个直接的表现是甚至懒得去任务管理软件里增改条目,陷入了低效,瞎忙的境况。最郁闷的是昨天在英语流利说又测了一遍英语水平,结果跟四五个月之前一样是五级。
色轮 所有颜色都出自三「原色」,红黄蓝。 红色 + 黄色 = 橙色 红色 + 蓝色 = 紫色 蓝色 + 黄色 = 绿色 有三原色两两等量混合而得的橙色、紫色和绿色叫做「间色」。 把三种「间色」和与之相邻的「原色」再等量混合,得到的是六个「复色」。
百度站长工具提供了三种自动提交链接的方法,分别是主动推送、自动推送和 sitemap。 填 sitemap 最方便,但是效果很差。我提交的 sitemap 的最后抓取时间是 2019-06-22,已经有半个多月没有抓取,即使我去后台点击「手动更新文件」也无济于事,其状态一直是「等待」。
最近可能是太忙,不知不觉又是一个多月没更新博客。为了避免对待博客的这种「能躺着就不坐着,能坐着就不站着」的懒散态度,我决定更新一篇,就算是再怎么没内容也要写下去。
这本书的一大特点是「短」,仅仅两百页左右,我本来是抱着读历史小故事的期待去读的,读了才知道其信息密度很大,所以也不容易读,也比我期待的历史小故事要更值得读。摘录了一些感兴趣的内容。
这里的工具,是指 Linux/Unix 操作系统里的命令行工具。这些操作系统里大都有这些命令: cat, find, grep 等,最近几年,尤其是在 Rust 语言诞生之后,出现了一些新的命令行工具,跟这些老工具有类似的功能,同时更易用,更美观,性能更好。bat 可以代替 cat,fd 可以代替 find,ripgrep 可以代替 grep,此外还有 httpie,tldr,htop 等。
这篇文章记录在 Koa 应用里获取真实客户端 IP 的方法、X-Forwarded-For 等 HTTP 头部字段的含义,以及相关的 Nginx 配置。 ctx.request.ip 在 Koa 里获取客户端 IP 非常容易,简单来说,ctx.request.ip 就是客户端 IP。哪个 IP 请求过来的,哪个 IP 就是客户端 IP。
2 月 26 号把域名从 name.com 转到了阿里云,27 号下午在阿里云提交了备案的初审。 28 号,由于提交的网站名称不规范,并且网站还能访问,初审没有通过,到了下午六点前修正,初审通过。申请了邮寄幕布。从济南发来,走邮政,我预计第二天能到。
apiDoc 可以通过文本生成体验良好的 API 文档页面,这些文本可以以注释的形式放在代码里,apiDoc 读取源码注释,就可以生成页面了,当然也可以与代码分开,写一些全是注释的文档,作为 apiDoc 生成文档页面的「源文件」。
摘录了一些内容,跟这些内容在书中出现的顺序不同,打散又整理了一下。除了斜体字部分,都是对原书的引用。 应该有的态度 程序员遵从不了解混乱风险的经理的意愿,也是不专业的做法。 做好自己的事,尊重自己的手艺,写干净的代码。 糟糕的代码引发混乱!别人修改糟糕代码时,往往会越改越烂。 碰到过“从跟上就烂”的项目代码,对这种项目的改造往往较为困难,成本很高,甚至不如推到重来。 签入的代码,要比签出时整洁一点。 代码应当讲述事实,不引人猜测。 整洁的代码总是看起来像是某位特别在意它的人写的。 聪明程序员和专业程序员之间的区别在于,专业程序员了解:明确是王道。 言到意到。意到言到。 如果同一段代码反复出现,就表示某种想法未在代码中得到良好的体现。 一些细节做法 (变量名的)名称长短与其作用域大小相对应。 变量声明应尽可能靠近其使用位置。 调用者应该尽可能放在被调用者上面。 应该避免我们的代码过多地了解第三方代码中的特定信息。依靠你能控制的东西,好过依赖你控制不了的东西,免得日后受它控制。 使用第三方库时,跟第三方库”划清界线“。一个可行的做法是把第三方库提供的接口再封装一层。业务代码只有自己的这层封装打交道,这样一来,如果要换用其他库,只改这个封装层,以此减少跟第三库的耦合以及依赖。 看到注释掉的代码,就删掉它。 否定式要比勘定式难明白一些。所以,尽可能将条件表示为肯定形式。 函数 函数的第一规则是要短小。第二条规则是还要更短小。 函数应该做一件事。做好这件事。只做这一件事。问题在于很难知道那件该做的事是什么。 要确保函数只做一件事,函数中的语句都要在同一抽象层级上。 在这个函数里做的事情,是同一个抽象层上的步骤,那么这个函数是只做了一件事。 函数越短小、功能越集中,就越便于取个好名字。 函数要么做什么事,要么回答什么事,但二者不可得兼。 错误处理 最好把 try 和 catch 代码块的主体部分抽离出来,另外形成函数。 函数应该只做一件事。错误处理就是一件事。因此,处理错误的函数不该做其他事。这意味着,如果关键字 try 在某个函数中存在,它就该是这个函数的第一个单词,而且在 catch/finally 代码块后面也不该有其他内容。 错误处理很重要,但如果它搞乱了代码逻辑,就是错误的做法。 测试 没有测试的代码不干净。 不可测试的系统不可验证。不可验证的系统,绝不应部署。 紧耦合的代码难以编写测试。 编写测试引致更好的设计。 写测试能够反过来逼着人写出更好的代码。 测试消除了对清理代码就会破坏代码的恐惧。 整洁的测试有什么要素?有三个要素:可读性,可读性和可读性。在单元测试中,可读性甚至比在生成代码中还重要。 独立测试应该相互独立。某个测试不应为下一个测试设定条件。 让测试具有表达力并短小精悍。
推荐一篇文章,原文链接 中国人思维的五大逻辑缺陷,BBC用一部趣味纪录片给解决了,里面讲到的 BBC 纪录片:《逻辑的乐趣》。 文中讲的五大逻辑缺陷: 概念模糊 不懂集合概念 类比推理,生拉硬扯 非黑即白,二元思维 乱立靶子,错误推理 春节期间,有没有跟亲戚朋友吵架的,八成跟这几个问题有关。
最近读了大名鼎鼎的《原则》,硬着头皮读了一半,放弃。以后可能会重读,也可能不会,这里留下一点记录,算是为以后的重读体验提供一个对照。 整体的阅读体验很差,「个人经历」这一部分似乎是在讲一件事:请你把我看作投资界的乔布斯,虽然我没有那么他那么伟大。我们学过“摆事实,讲道理”这么一个说法,这本书呢,第一部分算是摆事实,偶尔讲个道理,第二部分,99% 是讲道理,想象一下如果是一个人在你前面不停地说理,这有多恐怖。
当 Ubuntu 处于休眠状态时,可以通过直接插在电脑上的键盘唤醒,不能通过由蓝牙连接的鼠标唤醒。由于最近换了一款由电脑内置的蓝牙模块连接的键盘(不用蓝牙接收器)。Ubuntu 休眠时,蓝牙模块自然不工作,而我那蓝牙鼠标是由蓝牙接收器连接的,所以,我开始想方设法用这个蓝牙鼠标唤醒休眠的 Ubuntu。
北京时间 10 月 9 号晚上 11 点,Google 开了场发布会,发布的产品有一款带屏幕的智能音箱 Google Home Hub,然后是一款安装了 Chrome OS 的平板电脑,最后是两款 Pixel 手机。最近几年我没看过什么发布会的直播,Google 的这一场我抱着期待的心情去看了,结果让我感到有点遗憾,甚至有点气愤。
国庆假期没有出去玩,几乎就待在家里了。 时间统计 按照每天睡 8 小时来算,去掉睡觉时间,总共的活动时间是 112 小时。RescueTime 统计到了大概 50 个小时,这是我用手机和电脑的时长。WakaTime 统计了 8 小时 32 分,这是我写代码的时长。Toggl 统计了 12 小时 46 分,这是我写代码、看书、查找线上问题时记录的总时长。
本文介绍三个在不同方面做时间追踪和统计的工具,让你知道自己每天用电脑和手机时都把时间花在了什么地方,有多长时间在做某个项目,有多少时间在写某种语言的代码……这三个工具分别是 RescueTime,Toggle 和 Wakatime。
HTTP 的 POST 请求通常是用于提交数据,可以通过这篇文章来了解各种提交方式:四种常见的 POST 提交数据方式。做 Web 后端开发时,不可避免地要自己给自己发请求来调试接口,这里要记录的内容是如何使用命令行工具 curl 来进行各种方式的 POST 请求。
这本书是 37signals 公司出的,英文原名是 Remote: Office Not Required,仅仅是因为 37signals 之前出过一本书 Rework,译名《重来》,这本 Remote 被牵强地赋予这样一个中文名《重来2》,算不上是译名。
在 Linux 或者 MacOS 的命令行里做图片转换,用到的命令叫做 convert,是属于 ImageMagick 套件里的一个工具。这篇文章整理的内容包括转换图片格式,调整图片分辨率大小,裁剪图片这几个常用功能。另外文章里用到的 identify 命令也属于 ImageMagick 套件,作用是查看图片文件的属性。
上周末翻完了《Go 语言实战》这本书,还不错,篇幅不大,内容实用。书中有很多内容是这样写的:先给出一大段代码,然后一点一点拆解分析,稍微有些啰嗦。我先把 A Tour of Go 过了一遍,再看这本书算是更深入了一点。
我在 Mac、Ubuntu 以及 Win10 一直都用的 Rime 输入法,使用小鹤双拼输入方案。但是在 Win10 上,小狼毫 —— Rime 在 Windows 平台上的名字 —— 总有些小问题。 小狼毫有两种输入模式,有时想切换到系统的默认英文输入时,就得按两次 Win + Space 来切换,很不习惯。另一个问题是在 WSL 终端里,它能输入中文,但是不能输入全角符号。
最近我新开始的前端项目,或者后端 NodeJS 项目,总之涉及到 Javascript 的代码都刻意用了最严格 airbnb 规则进行检查,检查工具是 eslint。凡事总有例外,有个别情况下,我需要对某个文件,或者某一块代码,或者某一行代码禁用所有检查或禁用某条规则,毕竟这个规则太严了。最初遇到这种需求,我去 Google 搜索,后来意识到这些内容应该在官网写得很清楚。于是,这篇文章也从一份资料整理变成了官网翻译。
这本书写得挺好,也有一些硬伤。书的内容写得很直白,易读,下面主要是些摘要,只选取了我自己当前适用的部分,一些针对青春期的内容不在其中。斜体字部分和最后一节是个人的一些想法。
没想到,有一天我还会在 Windows 下做开发,更没想到,凭着 Win10 的 Linux 子系统,开发体验还不错。 Hyper 首先,要有一个用着舒服的终端,我选用了 Hyper,这是一款基于 Web 技术、跨平台的终端软件。在 Hyper 的窗口菜单里依次选择 File -> Edit -> Perferences… 会打开一个文本文件,是 Hyper 的配置文件,文件名为 .hyper,实际上这是一个 JS 文件,看内容就知道,开头除注释外的第一行是 module.exports = {。我对这个配置文件做了如下修改:
2016 年读过一本《雪人》,我并不知道这是一个系列,后来看出版社隔一段时间就出一本新的以哈利霍勒为主角的小说,才知道这是挺长的一系列,长度不亚于哈利波特,不止七本。
获取 UNIX 时间戳 now := time.Now().Unix() fmt.Println("type: %T, value: %v", now, now) type: int64, value: 1535031653 向 slice 里追加元素 s := []int{1, 2, 3} s = append(s, 4) fmt.Println(s) [1 2 3 4] 遍历 map m := make(map[string][]int) m["hello"] = []int{1, 2, 3} m["world"] = []int{4, 5, 6} for k, v := range m { fmt.Println(k, v) } for k := range m { fmt.Println(k) } for _, v := range m { fmt.Println(v) } hello [1 2 3] world [4 5 6] hello world [1 2 3] [4 5 6] 删除 map 中的元素 m := make(map[string][]int) m["hello"] = []int{1, 2, 3} m["world"] = []int{4, 5, 6} delete(m, "hello") for k, v := range m { fmt.Println(k, v) } world [4 5 6] 值得注意的一点:在对一个 map 的 range loop 中,删除 map 的元素,例如下面这段伪代码,是安全的。
前两天下载了一部动画片,下载好的目录里除了一个有声音和图像的 MP4 文件,还有一个普通话对白的 M4A 音频文件。今天费了些功夫,终于用 ffmpeg 把两个文件合并在一起,生成一个双音轨的视频文件。
睡前看手机至少会直接导致两个问题:1. 严重影响睡眠质量;2. 让大脑更习惯一种注意力分散、不专注的状态。而这两个问题,和看手机这个行为之间还会形成恶性循环。看手机只是一个代表性的说法,面对电脑等其他电子设备的屏幕,有同样的问题。
看完了《局外人》,靠着要写读书笔记的目的,硬着头皮看完,还是没有理解它的经典地位。最终只是记下了一点有意思的句子。而且没有太多感想,没看懂。所以这个读书笔记只能作为下一次对这本书重新做读书笔记时的一个对比。
全书正文的第三大部分是写北野武母亲佐纪的葬礼。很集中地体现了北野武戏谑地严肃,严肃地戏谑。 我知道娱乐记者就想让我哭,那个女记者还故意装出哽咽的腔调……偏偏那时,突然看到旁边有个女记者真的在哭。才想着”这家伙干什么?“的瞬间,鼻头一酸,来不及了,眼泪一涌而出,再也止不住。完全被娱乐记者设计了,真丢脸。
写佐纪的部分,偏向于正剧,带些幽默。而菊次郎的部分,是带有悲剧色彩的荒诞喜剧。 我生平第一次知道,平常爱摆架子的家伙,一旦失态、出丑,特别好笑,那么闹笑话的基础。从当时全家人鸦雀无声到放声大笑之间,有如世界停止的气氛,那种感觉,无疑是我搞笑的原点。
很久以前就知道《菊次郎的夏天》这部电影,现在才知道,菊次郎是北野武的爸爸的名字。这本书里,北野武先写的是妈妈,佐纪,整本书以要去看望生病的妈妈作为开始。
前两天在 贤民的比特记忆 看到这篇文章:为 hugo 站点插入豆瓣条目的 shortcode,我也学着把豆瓣条目的 shortcode 加上了。之后发现一个小问题,在自己的页面上引用了豆瓣上电影海报或书籍封面的图片地址,有时会触发豆瓣的防盗链措施,结果就是对图片的请求都是 403,没有访问权限。
上一篇读书笔记字数太多,看起来头大,还是拆开来。 怎样通过读书,来提升自己呢。还是要靠读书笔记,写读书笔记时进行思考,从读书笔记中在产生原创的文章,需要反复思考,并且整理自己掌握的内容。写文章时如果遇到瓶颈,就试着抄写自己喜欢的内容,抄着抄着就会有想法了。
今天把这本书翻完了,整本书中有比较大的一部分并不适用于使用笔记本软件的情形,我也就快速略过。剩余的部分非常有价值,其主要内容是讲读书笔记的用途,以及做读书笔记的方法。
《如何有效阅读一本书》读书笔记 今天在网易蜗牛读书这个 App 看了《如何有效阅读一本书》的其中一部分,有些内容带来些启发。 这本书的目的是让人把书真正读进去,而不是读完就拉倒。
近期使用 Vim 碰到一个问题,比如有下面这样几行代码 object1.member = 2; object2.member = 3; 当光标处于第一行的 member 时,按下 * 号搜索 member ,结果搜索的内容是 object1.member ,点号 . 连接的整个部分,被当作一个单词来搜索了。
每次去济南,这座城市总是给我留下不好的印象。 第一次去济南,是高中毕业那年。现在已经忘了去那里干什么,也不知道去了些什么地方。在我记忆中,所到之处都显得破旧,全无想象中省城该有的样子。回过头来看,那次去的地方必然离中心区域还远。不管怎样,一个比较差的第一印象就形成了。
《复仇者联盟3》真的是超级火。 上一次我看周六晚上九点四十五的《头号玩家》,在外面等的时候看不到几个人,这一次看《复仇者联盟3》还是周六,我看的晚上七点的场,散场后看到在电影院的等候区有很多人,等着看九点四十五的下一场。
目前《西部世界》第二季播到了第三集,我有点看不下去了。 乐园里机器人到底处于什么状态?是觉醒了,还是在继续按以前写好的剧本走?大部分的机器人似乎还是在走原来的剧本,但是机器人可以伤害人类了,枪可以打死人。
复仇者联盟3几天前在国外上映了,要等一段时间后才在中国大陆上映。电影发行方特意在宣传中强调了不要剧透。 这或许只是宣传手段而已。 剧透是很卑鄙的行为,可以满足剧透者不同方面不同程度的古怪心理。或许是比别人“先知”的优越感,或许是看到别人因为剧透丧失观影乐趣的幸灾乐祸,或许是别的原因。
在播客《日谈公园》听到两个好故事,是演员金世佳讲的。 第一个是金世佳讲他在日本学表演的一段经历。 学戏过程中第一次做男主角排戏时,他的老师在他表演后问他“你有羞耻心吗?我觉得你没有。”在遭受这样的打击之后,金世佳每天排完戏之后回家一遍遍写羞耻心几个字来提醒自己。
周五晚上去看了《王牌特工2》,在豆瓣上打了代表“推荐”的四颗星,如果别人问起,我的确是想推荐,因为足够“好看”。而如果要切实地打分实际上,电影质量比第一部差了不少,三颗星吧。
今天早上遇到一件有意思的事。 进了电梯,下去一层就停住,上来一个干瘪的老太太,推着一个小推车,上面满满的是各种被单被罩。电梯继续下行几层,上来一男一女两个年轻人,跟老太太互相打个招呼。
越来越搞不懂苹果的审美和品位,自从摄像头突起,我再没用过 iPhone 了,现在新出的 iPhone X 的屏幕又是带“刘海”的。 从别人的体验视频里就能感受到别扭,浏览网页时,页面是在刘海下放,刘海两侧是时间、通知等信息,那刘海还是挺扎眼的。看视频时,要么刘海挡住画面,要么不全屏留下大黑边。
有很多广受欢迎的悬疑题材小说和电影,也有很多人乐于给这些作品做出这样的评价:某某情节一开始就猜出来了,一开始就看出来某某是最终大 BOSS 或者凶手。而且他们也能够提出各种证据来说明自己是如何从一开始就知晓一切的。这种行为简直可笑。
人类警惕 AI,无非是怕 AI 成为比人类更高级的生命形态,这种存在是否能够称为“生命”就先不探讨了,就算是对人类的“生命”做一个准确的定义也是不可能的。人类担心以后自己在机器人眼中就像现在猴子在人眼中一样,甚至机器人把人类灭绝。这个担心挺没有必要的。
人的记忆很怪,很具有欺骗性。 现在的共识是大脑会进行选择性记忆,倾向于忘掉坏事,记住好事。 这是统计规律,不是必然法则,自然就会有不符合这规律的情况。
去年读了《世纪三部曲》的第一部,在上周读完了第三部,故事从一战之前,一直到柏林墙倒塌。 第一部,《巨人的陨落》,可谓气势恢弘,颇有史诗感,三部曲中最好看的一本。
今天下班回家路上,似乎没有由来地感觉有些失落,也说不上来为什么,或许也谈不上什么失落,因为那种感觉,并不让人难受。 回到家开始看《人·兽·鬼》这本书里的第一篇小说,比较短,叫做《上帝的梦》,读到大约 70% 处,竟然睡着了,睡了没多长时间,具体多久不可知了。睡眠问题依旧存在。醒了之后,脑袋昏昏沉沉,索性躺床上去,把那篇小说也看完了。
会议是效率的杀手。 会议扼杀效率,如同时间的窃贼,逐步蚕食所有产出。 我要容忍会议,让它流过我的日程。 当会议结束,我会审视成果,看清它的影响。 会议过后之处,空无一物,唯有任务仍然堆积。
二号去了开发区——现在叫黄渤海新区——的金沙滩,主要是去最近新建成开放的时光塔。时光塔是个造型奇特的建筑,转了一圈之后感觉它的确是一个值得逛一逛、值得在里面走走停停的地方。但是当天人太多,在想停留的位置,可能站满了人,还有些地方,会被人流推着不得不往前走。周边还有不小的绿地公园、城市展示中心和著名的大鲸鱼滑滑梯。整个万米金沙滩上有各种不同的建筑、公园和沙滩,总体挺好的。
从 2018 年开始居家办公,到现在三四年了。今年春节在老家多待了一阵子,在老家工作了一个周,跟我平时自己屋里的工作环境挺大。虽然远程办公不再限制工作的地点和场所,但是对工作环境还是有一定要求的。这里是对居家办公某些细节方面的一点想法,对于居家办公更系统的建议,可以看看如何有效在家办公这篇文章。
去年就地过年,没有回老家,今年回了。 每年春节都几个不变的广泛讨论的主题:一是年味淡了,二是春晚难看,第三是红包。 鞭炮 「年」在变,人也在变。以前,除夕当晚要熬到十二点,这一天跟平时的作息时间不同,这个差异增加了一点点年味。现在「熬」字不适用了,过了十二点就去睡,可能还会琢磨一下,是不是还有点早。
在豆瓣看到一则奇闻,腾讯视频平台上,电影《搏击俱乐部》的最后,以文字的形式,加了这么个结局:根据泰勒提供的线索,警方理清案情,一举将他们抓获,阻止了炸弹的爆炸。泰勒被强制送往精神病院接受治疗,于 2012 年痊愈出院。 这帖子里图中文字的字体和颜色跟原片风格是类似的,但是我的第一反应仍然是这是假的,毕竟这事太荒谬。我怀疑帖子里那张包含了上述文字剧情的电影截图是有人恶作剧 PS 的。
小米手环自第五代开始,加入了一个 PAI 功能。PAI,是 Personal Activity Intelligence 的缩写,根据字面意思,翻译成中文是「个人活动指数」。在与小米手环配套的手机 App 中,对 PAI 的描述如下:
最早是在阳志平的文章《伯纳科夫的卡片》中看到了「卡片笔记」这一说法,并没有深入了解,更谈不上实践。后来是看到 flomo 这款软件,我把它当成单人版微博用了挺久,每天有什么想法就用它记一下。再后来就是很热门的一本书《卡片笔记写作法》。
刑法基础知识 法无明文规定不为罪,法无明文规定不处罚,这是法治国家最重要的刑法原则。 危害公共安全罪 有人平常车里备瓶酒,等警察来了,当着警察的面把二锅头一口吹掉。他对警察说“不好意思,看到警察就紧张,紧张就喝酒。”这能规避法律吗?很难查出他在见到警察前有没有喝酒。司法解释直面了这个问题,它规定:血液酒精含量是认定是否醉酒的依据。犯罪嫌疑人在公安机关依法检查时,为逃避法律追究,在呼气酒精含量检验或者抽取血样前又饮酒,经检验其血液酒精含量达到醉酒标准的,应当认定为醉酒。
博客运行在阿里云的机器上,机器还有两个月到期,迫于贫穷,我不准备续费了,今天把博客从阿里云迁移到 Oracle 的免费云主机。 给 Oracle 这台机安装 MySQL 时,服务器几乎挂掉,死透。安装快结束时,服务器完全失去响应,另外再开个终端尝试 ssh 登录也登不上。去 Oracle 的管理后台页面重启,在正常重启和强制重启两个选项中,我保守地选择了正常重启。机器长时间处于「正在停止」的状态,任何操作包括强制重启都不能进行。
书的封面上写着「继《C 程序设计语言》后的全新力作」,乍看以为作者就写了两本书。实际上在这本书中,作者本人就提到了他写过的其他书,比如《普林斯顿计算机公开课》(有一个版本叫做《世界是数字的》)、《程序设计实践》,此外还有近年来火热的《Go 程序设计语言》。
今年是头一次没有回老家,响应了政府的号召,就地过年。 以前过年时,从年三十晚上到初一下午,鞭炮声不断,尤其是刚过零点时,全城的放炮爱好者们争先恐后制造噪音和有毒气体。扛过这一波,勉强睡着,一大清早又会被鞭炮声吵醒。
假设有项目 A,名为 awesome-project-a,运行两个容器,一个 web,一个数据库,由 docker-compose.yml 是这个样子 version: '3' services: web: # ... # ... db: # ... # ... 由 docker-compose 把项目启动之后,会自动创建一个叫做 awesome-project-a_default 的 docker 网络。可以通过命令 docker network ls 查到这个新创建的网络,使用 docker network inspect awesome-project-a_default 查看有哪些容器在用这个网络。
这是一篇在草稿里呆了一段时间的文章。 《消失的十三级台阶》 几年前我看过这本书作者的另外一本小说《人类灭绝》。我对《人类灭绝》的评价是「非常好看」,于是在看到《消失的十三级台阶》的作者是同一个人时,对这本书也兴趣大增。
明年一月份我的身份证就过期了,今天去当地派出所办了新的。进出派出所,大概不到十分钟。 在派出所门口量了体温,做了登记,门口的民警告诉我去里面的户籍大厅。
比如当前在 master 分支,想临时把项目中的某个文件换成 dev 分支的对应文件或目录,或者某一个 commit 里面的对应文件和目录,其他目录和文件保持不变。 git checkout 对于 git2.23 之前的版本,可以使用 git checkout 命令实现上述需求。
我当年高考时,理科生有四场考试:语数外和理综,总分 750,其中语数外各 150 分,理综/文综是 300 分。 我的成绩挺出乎我意料,坏的那种出乎意料。 语文 79 数学 114 英语 128 理综 234 虽然过去很久了,我也记得这个成绩。除了数学,每门成绩都有记忆点:语文成绩差到刻骨铭心,英语成绩是个「整数」,理综分数比较有特点,几门课加起来的总分也比较有特点,555 分。
下面的电视剧都是今年出的,电影不是。由于电影行业比较惨淡,没什么新片,这里推荐的电影都是去年年底、今年年初出品的,也没跳出奥斯卡的圈子。上半年也看了一些很优秀,但是出品时间更早的作品,就不算在推荐列表里了。
介绍如何进入 ChromeOS 的开发者模式(developer mode),如何让硬盘根分区可写,怎样开启 ChromeOS 里的 SSH 服务。 进入开发者模式 首先同时按 Esc 键 + Recovery 键 + 电源按钮。Recovery 键就是 F3 键,以我手上这台 Chromebook 设备为例,它的键帽上面是一个表示 Recovery 的图标。按下后,系统立刻重启,进入 Recovery 模式:
6.18 当天在京东买了三本书,分别是《守望者》漫画的上下两册和《敏捷整洁之道》。 《守望者》是全彩的大开本,单从书的装帧、印刷和厚度上来看,比《敏捷整洁之道》可要划算多了。从下面这张图片可以看出它有多大。
2020.06.18 更新:拦截了一个号码,给了一个微信通知。晚上突然想到是不是因为我之前没有在拦截种类里选择「保险理财」和「房屋中介」,才会继续收到卖房子、炒股的电话。现在把所有种类都选上了,继续观察。
前阵子写了不少 bash 脚本,有些代码片段值得一记。有以下几项内容: 获取当前脚本文件所在路径 字符串 startsWith 和 endsWith 判断字符串内容是否是数字 获取字符串的子串 if 语句的几个判断条件 获取当前脚本文件所在的路径 用户执行脚本时,用户所在的目录,也就是 current working directory,可以通过执行 pwd 或者 bash 的内置变量 $PWD 获取。
我是个程序员。
终于又用上 MBP 了,去年年底发布的 16 寸的低配款。由于我上一台 MBP 是 2012 年的产品了,近两年用的是一台 Thinkpad,没有中间这么多年的 MBP 使用经验,所以用上这一台 2019 年款时,感觉变化还不少。
花了一个多月读完了这本《架构整洁之道》,跟《代码整洁之道》、《程序员的职业素养》算是一个 Clean 系列,每一本读来都很有启发。这本《架构整洁之道》有些地方看得还挺迷糊,值得一读再读。 概述、编程范式 设计与架构没有任何区别。一丁点区别都没有!软件架构的终极目标是,用最小的人力成本来满足构建和维护该系统的需求。
上周,19 号那天中午,我去了家附近的电影院看了《星球大战:天行者崛起》,在我目所能及的范围内,算上我自己,这一场只有四个人。这部星球大战槽点满满,我还挺喜欢,毕竟,我只是去图个乐。下面说的,也别当真。
在 V2EX 上看到一个询问第一代 RMBP 还能卖多少钱的帖子。我手上也有这么一台机器, 2012 年中的 RMBP,内存比那个帖子里的更小,8G,其他配置跟楼主一样。我的这台机器,虽然两年前开始就不怎么用了,但是伤痕累累,只能留着自己用,以后当作收藏或废品了。
上个月很巧地在两本不同的书里看到了一个相同的说法,说的是使用 if…then…,也就是「如果……那么……」的模式来提高执行力。 比如,我已经又快一个月没有更新博客,于是我给自己定下了一个「写一篇博客」的任务。但是这项任务没有来自外部的压力,我也就一直拖延,书中的说法是这样的:
如何在命令行里快速方便地查看网站 SSL 证书有效期? 一句话命令: echo | openssl s_client -servername $NAME -connect "$host":443 2>/dev/null | openssl x509 -noout -dates $NAME 和 $host 都是域名,确切地说,$NAME 是 SSL 握手时 SNI 里面的名字,$host 则代表被解析的域名,是一个地址。通常这两个变量的值是相同的一个域名。
这本书的英文名是 The Clean Coder, 中文译名是《代码整洁之道:程序员的职业素养》,跟《代码整洁之道》是同一个作者。这本书与具体的代码技巧关系不大,主要就讲了一件事——如何做一名专业的程序员。 挺薄一本书,内容都是日常所见,加上翻译也不错,所以读起来感觉轻松流畅。书中多数内容早已在实践,我印象最深刻的是这样几点:专业人士的态度,要重视测试,如何预估项目,以及对「流态区」的看法。
今年国庆节假期跟去年一样,在家里待了七天。 去年国庆假期写了挺多代码,今年这几天几乎没碰电脑;去年国庆期间看完了《五芒星》,今年看完一本同系列的《焦渴》。 《焦渴》,还是熟悉的配方,还是熟悉的味道。只不过在书的结尾部分,我有点无法接受某个特别「狗血」的情节。
我把 Ubuntu 用作主力操作系统已有两年了,偶尔会用一下旧的 Mac。Mac 上有一个「按空格键预览文件/目录的功能」,在 Ubuntu 里默认是没有这个功能的。 我并不常用这个功能,用得最多的使用场景是选中一个目录时,按空格键,能看到整个目录的大小。由于不常用,也并没怎么在意这个功能在 Ubuntu 里的缺失。
看了一本讲「穿什么衣服」的书《基本穿搭》,是一位日本人写的。 几点总结: 设计: 纯色 尺码: 宁愿偏小,不买偏大 颜色: 上身除内衣以外,一律首选藏青色,下身牛仔裤或浅驼色棉质长裤 品牌: 优衣库和 GAP 其他:扔扔扔;一件衣服不要连续穿两天 目前在豆瓣上评分只有 6.6 分,还能不能靠它挽救一下油腻中年男人了?
今天给 Ubuntu 操作系统 sudo apt-get upgrade 了一把,居然把它给升挂了。尝试选旧版本内核、进恢复模式,都没成,看到的错误是一个被各种软件所依赖的动态库少了个「符号」,导致大批的命令和服务不可用。因为我的 HOME 和系统在不同分区,绝大多数有用的东西都在 HOME 分区,所以索性重装了 Ubuntu,保险起见,重装的版本仍然跟之前一样是 18.04。重装之后,只要把一些装在根目录的软件再装回来就可以了。这里顺便做一下记录。
又是长时间没写博客,最近的确感觉比较忙,也说不上来到底忙的什么,一个直接的表现是甚至懒得去任务管理软件里增改条目,陷入了低效,瞎忙的境况。最郁闷的是昨天在英语流利说又测了一遍英语水平,结果跟四五个月之前一样是五级。
色轮 所有颜色都出自三「原色」,红黄蓝。 红色 + 黄色 = 橙色 红色 + 蓝色 = 紫色 蓝色 + 黄色 = 绿色 有三原色两两等量混合而得的橙色、紫色和绿色叫做「间色」。 把三种「间色」和与之相邻的「原色」再等量混合,得到的是六个「复色」。
百度站长工具提供了三种自动提交链接的方法,分别是主动推送、自动推送和 sitemap。 填 sitemap 最方便,但是效果很差。我提交的 sitemap 的最后抓取时间是 2019-06-22,已经有半个多月没有抓取,即使我去后台点击「手动更新文件」也无济于事,其状态一直是「等待」。
最近可能是太忙,不知不觉又是一个多月没更新博客。为了避免对待博客的这种「能躺着就不坐着,能坐着就不站着」的懒散态度,我决定更新一篇,就算是再怎么没内容也要写下去。
这本书的一大特点是「短」,仅仅两百页左右,我本来是抱着读历史小故事的期待去读的,读了才知道其信息密度很大,所以也不容易读,也比我期待的历史小故事要更值得读。摘录了一些感兴趣的内容。
这里的工具,是指 Linux/Unix 操作系统里的命令行工具。这些操作系统里大都有这些命令: cat, find, grep 等,最近几年,尤其是在 Rust 语言诞生之后,出现了一些新的命令行工具,跟这些老工具有类似的功能,同时更易用,更美观,性能更好。bat 可以代替 cat,fd 可以代替 find,ripgrep 可以代替 grep,此外还有 httpie,tldr,htop 等。
这篇文章记录在 Koa 应用里获取真实客户端 IP 的方法、X-Forwarded-For 等 HTTP 头部字段的含义,以及相关的 Nginx 配置。 ctx.request.ip 在 Koa 里获取客户端 IP 非常容易,简单来说,ctx.request.ip 就是客户端 IP。哪个 IP 请求过来的,哪个 IP 就是客户端 IP。
2 月 26 号把域名从 name.com 转到了阿里云,27 号下午在阿里云提交了备案的初审。 28 号,由于提交的网站名称不规范,并且网站还能访问,初审没有通过,到了下午六点前修正,初审通过。申请了邮寄幕布。从济南发来,走邮政,我预计第二天能到。
apiDoc 可以通过文本生成体验良好的 API 文档页面,这些文本可以以注释的形式放在代码里,apiDoc 读取源码注释,就可以生成页面了,当然也可以与代码分开,写一些全是注释的文档,作为 apiDoc 生成文档页面的「源文件」。
摘录了一些内容,跟这些内容在书中出现的顺序不同,打散又整理了一下。除了斜体字部分,都是对原书的引用。 应该有的态度 程序员遵从不了解混乱风险的经理的意愿,也是不专业的做法。 做好自己的事,尊重自己的手艺,写干净的代码。 糟糕的代码引发混乱!别人修改糟糕代码时,往往会越改越烂。 碰到过“从跟上就烂”的项目代码,对这种项目的改造往往较为困难,成本很高,甚至不如推到重来。 签入的代码,要比签出时整洁一点。 代码应当讲述事实,不引人猜测。 整洁的代码总是看起来像是某位特别在意它的人写的。 聪明程序员和专业程序员之间的区别在于,专业程序员了解:明确是王道。 言到意到。意到言到。 如果同一段代码反复出现,就表示某种想法未在代码中得到良好的体现。 一些细节做法 (变量名的)名称长短与其作用域大小相对应。 变量声明应尽可能靠近其使用位置。 调用者应该尽可能放在被调用者上面。 应该避免我们的代码过多地了解第三方代码中的特定信息。依靠你能控制的东西,好过依赖你控制不了的东西,免得日后受它控制。 使用第三方库时,跟第三方库”划清界线“。一个可行的做法是把第三方库提供的接口再封装一层。业务代码只有自己的这层封装打交道,这样一来,如果要换用其他库,只改这个封装层,以此减少跟第三库的耦合以及依赖。 看到注释掉的代码,就删掉它。 否定式要比勘定式难明白一些。所以,尽可能将条件表示为肯定形式。 函数 函数的第一规则是要短小。第二条规则是还要更短小。 函数应该做一件事。做好这件事。只做这一件事。问题在于很难知道那件该做的事是什么。 要确保函数只做一件事,函数中的语句都要在同一抽象层级上。 在这个函数里做的事情,是同一个抽象层上的步骤,那么这个函数是只做了一件事。 函数越短小、功能越集中,就越便于取个好名字。 函数要么做什么事,要么回答什么事,但二者不可得兼。 错误处理 最好把 try 和 catch 代码块的主体部分抽离出来,另外形成函数。 函数应该只做一件事。错误处理就是一件事。因此,处理错误的函数不该做其他事。这意味着,如果关键字 try 在某个函数中存在,它就该是这个函数的第一个单词,而且在 catch/finally 代码块后面也不该有其他内容。 错误处理很重要,但如果它搞乱了代码逻辑,就是错误的做法。 测试 没有测试的代码不干净。 不可测试的系统不可验证。不可验证的系统,绝不应部署。 紧耦合的代码难以编写测试。 编写测试引致更好的设计。 写测试能够反过来逼着人写出更好的代码。 测试消除了对清理代码就会破坏代码的恐惧。 整洁的测试有什么要素?有三个要素:可读性,可读性和可读性。在单元测试中,可读性甚至比在生成代码中还重要。 独立测试应该相互独立。某个测试不应为下一个测试设定条件。 让测试具有表达力并短小精悍。
推荐一篇文章,原文链接 中国人思维的五大逻辑缺陷,BBC用一部趣味纪录片给解决了,里面讲到的 BBC 纪录片:《逻辑的乐趣》。 文中讲的五大逻辑缺陷: 概念模糊 不懂集合概念 类比推理,生拉硬扯 非黑即白,二元思维 乱立靶子,错误推理 春节期间,有没有跟亲戚朋友吵架的,八成跟这几个问题有关。
最近读了大名鼎鼎的《原则》,硬着头皮读了一半,放弃。以后可能会重读,也可能不会,这里留下一点记录,算是为以后的重读体验提供一个对照。 整体的阅读体验很差,「个人经历」这一部分似乎是在讲一件事:请你把我看作投资界的乔布斯,虽然我没有那么他那么伟大。我们学过“摆事实,讲道理”这么一个说法,这本书呢,第一部分算是摆事实,偶尔讲个道理,第二部分,99% 是讲道理,想象一下如果是一个人在你前面不停地说理,这有多恐怖。
当 Ubuntu 处于休眠状态时,可以通过直接插在电脑上的键盘唤醒,不能通过由蓝牙连接的鼠标唤醒。由于最近换了一款由电脑内置的蓝牙模块连接的键盘(不用蓝牙接收器)。Ubuntu 休眠时,蓝牙模块自然不工作,而我那蓝牙鼠标是由蓝牙接收器连接的,所以,我开始想方设法用这个蓝牙鼠标唤醒休眠的 Ubuntu。
北京时间 10 月 9 号晚上 11 点,Google 开了场发布会,发布的产品有一款带屏幕的智能音箱 Google Home Hub,然后是一款安装了 Chrome OS 的平板电脑,最后是两款 Pixel 手机。最近几年我没看过什么发布会的直播,Google 的这一场我抱着期待的心情去看了,结果让我感到有点遗憾,甚至有点气愤。
国庆假期没有出去玩,几乎就待在家里了。 时间统计 按照每天睡 8 小时来算,去掉睡觉时间,总共的活动时间是 112 小时。RescueTime 统计到了大概 50 个小时,这是我用手机和电脑的时长。WakaTime 统计了 8 小时 32 分,这是我写代码的时长。Toggl 统计了 12 小时 46 分,这是我写代码、看书、查找线上问题时记录的总时长。
本文介绍三个在不同方面做时间追踪和统计的工具,让你知道自己每天用电脑和手机时都把时间花在了什么地方,有多长时间在做某个项目,有多少时间在写某种语言的代码……这三个工具分别是 RescueTime,Toggle 和 Wakatime。
HTTP 的 POST 请求通常是用于提交数据,可以通过这篇文章来了解各种提交方式:四种常见的 POST 提交数据方式。做 Web 后端开发时,不可避免地要自己给自己发请求来调试接口,这里要记录的内容是如何使用命令行工具 curl 来进行各种方式的 POST 请求。
这本书是 37signals 公司出的,英文原名是 Remote: Office Not Required,仅仅是因为 37signals 之前出过一本书 Rework,译名《重来》,这本 Remote 被牵强地赋予这样一个中文名《重来2》,算不上是译名。
在 Linux 或者 MacOS 的命令行里做图片转换,用到的命令叫做 convert,是属于 ImageMagick 套件里的一个工具。这篇文章整理的内容包括转换图片格式,调整图片分辨率大小,裁剪图片这几个常用功能。另外文章里用到的 identify 命令也属于 ImageMagick 套件,作用是查看图片文件的属性。
上周末翻完了《Go 语言实战》这本书,还不错,篇幅不大,内容实用。书中有很多内容是这样写的:先给出一大段代码,然后一点一点拆解分析,稍微有些啰嗦。我先把 A Tour of Go 过了一遍,再看这本书算是更深入了一点。
我在 Mac、Ubuntu 以及 Win10 一直都用的 Rime 输入法,使用小鹤双拼输入方案。但是在 Win10 上,小狼毫 —— Rime 在 Windows 平台上的名字 —— 总有些小问题。 小狼毫有两种输入模式,有时想切换到系统的默认英文输入时,就得按两次 Win + Space 来切换,很不习惯。另一个问题是在 WSL 终端里,它能输入中文,但是不能输入全角符号。
最近我新开始的前端项目,或者后端 NodeJS 项目,总之涉及到 Javascript 的代码都刻意用了最严格 airbnb 规则进行检查,检查工具是 eslint。凡事总有例外,有个别情况下,我需要对某个文件,或者某一块代码,或者某一行代码禁用所有检查或禁用某条规则,毕竟这个规则太严了。最初遇到这种需求,我去 Google 搜索,后来意识到这些内容应该在官网写得很清楚。于是,这篇文章也从一份资料整理变成了官网翻译。
这本书写得挺好,也有一些硬伤。书的内容写得很直白,易读,下面主要是些摘要,只选取了我自己当前适用的部分,一些针对青春期的内容不在其中。斜体字部分和最后一节是个人的一些想法。
没想到,有一天我还会在 Windows 下做开发,更没想到,凭着 Win10 的 Linux 子系统,开发体验还不错。 Hyper 首先,要有一个用着舒服的终端,我选用了 Hyper,这是一款基于 Web 技术、跨平台的终端软件。在 Hyper 的窗口菜单里依次选择 File -> Edit -> Perferences… 会打开一个文本文件,是 Hyper 的配置文件,文件名为 .hyper,实际上这是一个 JS 文件,看内容就知道,开头除注释外的第一行是 module.exports = {。我对这个配置文件做了如下修改:
2016 年读过一本《雪人》,我并不知道这是一个系列,后来看出版社隔一段时间就出一本新的以哈利霍勒为主角的小说,才知道这是挺长的一系列,长度不亚于哈利波特,不止七本。
获取 UNIX 时间戳 now := time.Now().Unix() fmt.Println("type: %T, value: %v", now, now) type: int64, value: 1535031653 向 slice 里追加元素 s := []int{1, 2, 3} s = append(s, 4) fmt.Println(s) [1 2 3 4] 遍历 map m := make(map[string][]int) m["hello"] = []int{1, 2, 3} m["world"] = []int{4, 5, 6} for k, v := range m { fmt.Println(k, v) } for k := range m { fmt.Println(k) } for _, v := range m { fmt.Println(v) } hello [1 2 3] world [4 5 6] hello world [1 2 3] [4 5 6] 删除 map 中的元素 m := make(map[string][]int) m["hello"] = []int{1, 2, 3} m["world"] = []int{4, 5, 6} delete(m, "hello") for k, v := range m { fmt.Println(k, v) } world [4 5 6] 值得注意的一点:在对一个 map 的 range loop 中,删除 map 的元素,例如下面这段伪代码,是安全的。
前两天下载了一部动画片,下载好的目录里除了一个有声音和图像的 MP4 文件,还有一个普通话对白的 M4A 音频文件。今天费了些功夫,终于用 ffmpeg 把两个文件合并在一起,生成一个双音轨的视频文件。
睡前看手机至少会直接导致两个问题:1. 严重影响睡眠质量;2. 让大脑更习惯一种注意力分散、不专注的状态。而这两个问题,和看手机这个行为之间还会形成恶性循环。看手机只是一个代表性的说法,面对电脑等其他电子设备的屏幕,有同样的问题。
看完了《局外人》,靠着要写读书笔记的目的,硬着头皮看完,还是没有理解它的经典地位。最终只是记下了一点有意思的句子。而且没有太多感想,没看懂。所以这个读书笔记只能作为下一次对这本书重新做读书笔记时的一个对比。
全书正文的第三大部分是写北野武母亲佐纪的葬礼。很集中地体现了北野武戏谑地严肃,严肃地戏谑。 我知道娱乐记者就想让我哭,那个女记者还故意装出哽咽的腔调……偏偏那时,突然看到旁边有个女记者真的在哭。才想着”这家伙干什么?“的瞬间,鼻头一酸,来不及了,眼泪一涌而出,再也止不住。完全被娱乐记者设计了,真丢脸。
写佐纪的部分,偏向于正剧,带些幽默。而菊次郎的部分,是带有悲剧色彩的荒诞喜剧。 我生平第一次知道,平常爱摆架子的家伙,一旦失态、出丑,特别好笑,那么闹笑话的基础。从当时全家人鸦雀无声到放声大笑之间,有如世界停止的气氛,那种感觉,无疑是我搞笑的原点。
很久以前就知道《菊次郎的夏天》这部电影,现在才知道,菊次郎是北野武的爸爸的名字。这本书里,北野武先写的是妈妈,佐纪,整本书以要去看望生病的妈妈作为开始。
前两天在 贤民的比特记忆 看到这篇文章:为 hugo 站点插入豆瓣条目的 shortcode,我也学着把豆瓣条目的 shortcode 加上了。之后发现一个小问题,在自己的页面上引用了豆瓣上电影海报或书籍封面的图片地址,有时会触发豆瓣的防盗链措施,结果就是对图片的请求都是 403,没有访问权限。
上一篇读书笔记字数太多,看起来头大,还是拆开来。 怎样通过读书,来提升自己呢。还是要靠读书笔记,写读书笔记时进行思考,从读书笔记中在产生原创的文章,需要反复思考,并且整理自己掌握的内容。写文章时如果遇到瓶颈,就试着抄写自己喜欢的内容,抄着抄着就会有想法了。
今天把这本书翻完了,整本书中有比较大的一部分并不适用于使用笔记本软件的情形,我也就快速略过。剩余的部分非常有价值,其主要内容是讲读书笔记的用途,以及做读书笔记的方法。
《如何有效阅读一本书》读书笔记 今天在网易蜗牛读书这个 App 看了《如何有效阅读一本书》的其中一部分,有些内容带来些启发。 这本书的目的是让人把书真正读进去,而不是读完就拉倒。
近期使用 Vim 碰到一个问题,比如有下面这样几行代码 object1.member = 2; object2.member = 3; 当光标处于第一行的 member 时,按下 * 号搜索 member ,结果搜索的内容是 object1.member ,点号 . 连接的整个部分,被当作一个单词来搜索了。
每次去济南,这座城市总是给我留下不好的印象。 第一次去济南,是高中毕业那年。现在已经忘了去那里干什么,也不知道去了些什么地方。在我记忆中,所到之处都显得破旧,全无想象中省城该有的样子。回过头来看,那次去的地方必然离中心区域还远。不管怎样,一个比较差的第一印象就形成了。
《复仇者联盟3》真的是超级火。 上一次我看周六晚上九点四十五的《头号玩家》,在外面等的时候看不到几个人,这一次看《复仇者联盟3》还是周六,我看的晚上七点的场,散场后看到在电影院的等候区有很多人,等着看九点四十五的下一场。
目前《西部世界》第二季播到了第三集,我有点看不下去了。 乐园里机器人到底处于什么状态?是觉醒了,还是在继续按以前写好的剧本走?大部分的机器人似乎还是在走原来的剧本,但是机器人可以伤害人类了,枪可以打死人。
复仇者联盟3几天前在国外上映了,要等一段时间后才在中国大陆上映。电影发行方特意在宣传中强调了不要剧透。 这或许只是宣传手段而已。 剧透是很卑鄙的行为,可以满足剧透者不同方面不同程度的古怪心理。或许是比别人“先知”的优越感,或许是看到别人因为剧透丧失观影乐趣的幸灾乐祸,或许是别的原因。
在播客《日谈公园》听到两个好故事,是演员金世佳讲的。 第一个是金世佳讲他在日本学表演的一段经历。 学戏过程中第一次做男主角排戏时,他的老师在他表演后问他“你有羞耻心吗?我觉得你没有。”在遭受这样的打击之后,金世佳每天排完戏之后回家一遍遍写羞耻心几个字来提醒自己。
周五晚上去看了《王牌特工2》,在豆瓣上打了代表“推荐”的四颗星,如果别人问起,我的确是想推荐,因为足够“好看”。而如果要切实地打分实际上,电影质量比第一部差了不少,三颗星吧。
今天早上遇到一件有意思的事。 进了电梯,下去一层就停住,上来一个干瘪的老太太,推着一个小推车,上面满满的是各种被单被罩。电梯继续下行几层,上来一男一女两个年轻人,跟老太太互相打个招呼。
越来越搞不懂苹果的审美和品位,自从摄像头突起,我再没用过 iPhone 了,现在新出的 iPhone X 的屏幕又是带“刘海”的。 从别人的体验视频里就能感受到别扭,浏览网页时,页面是在刘海下放,刘海两侧是时间、通知等信息,那刘海还是挺扎眼的。看视频时,要么刘海挡住画面,要么不全屏留下大黑边。
有很多广受欢迎的悬疑题材小说和电影,也有很多人乐于给这些作品做出这样的评价:某某情节一开始就猜出来了,一开始就看出来某某是最终大 BOSS 或者凶手。而且他们也能够提出各种证据来说明自己是如何从一开始就知晓一切的。这种行为简直可笑。
人类警惕 AI,无非是怕 AI 成为比人类更高级的生命形态,这种存在是否能够称为“生命”就先不探讨了,就算是对人类的“生命”做一个准确的定义也是不可能的。人类担心以后自己在机器人眼中就像现在猴子在人眼中一样,甚至机器人把人类灭绝。这个担心挺没有必要的。
人的记忆很怪,很具有欺骗性。 现在的共识是大脑会进行选择性记忆,倾向于忘掉坏事,记住好事。 这是统计规律,不是必然法则,自然就会有不符合这规律的情况。
去年读了《世纪三部曲》的第一部,在上周读完了第三部,故事从一战之前,一直到柏林墙倒塌。 第一部,《巨人的陨落》,可谓气势恢弘,颇有史诗感,三部曲中最好看的一本。
今天下班回家路上,似乎没有由来地感觉有些失落,也说不上来为什么,或许也谈不上什么失落,因为那种感觉,并不让人难受。 回到家开始看《人·兽·鬼》这本书里的第一篇小说,比较短,叫做《上帝的梦》,读到大约 70% 处,竟然睡着了,睡了没多长时间,具体多久不可知了。睡眠问题依旧存在。醒了之后,脑袋昏昏沉沉,索性躺床上去,把那篇小说也看完了。