参考文档
speechSynthesis是浏览器自带的功能,甚至都不需要单独去安装。当然也有可能有的浏览器不支持。
最简单的三行代码:

var msg = new SpeechSynthesisUtterance();
msg.text = "你好,世界!";  //直接支持中文
window.speechSynthesis.speak(msg);

pip install pyttsx3

我在MacOSX上安装的,是python2, 有很多语音,需要找到对应的语音。

engine = pyttsx3.init()
voices = engine.getProperty('voices')
for voice in voices:
  if voice.languages == [u'zh_CN']:
    engine.setProperty('voice', voice.id)
    break

engine.say(u'The quick brown fox jumped over the lazy dog.中华人民共和
国。')
engine.say(u'我爱北京天安门,天安门上太阳升。')
engine.runAndWait()

用js的netcat库写的, 很简单, 只是记录一下收到的消息, 用了一个很不常见的socket. 开了半年多, 发现几乎每天都能收到一点攻击.如下:

windows上我用bat做编译,烧录, 复制文件等等操作. 所以好奇make和bash(Linux上更强大的bat)究竟有什么区别?
参考这篇文章, 高赞回答似乎是说make主要是能节省完全重编译的时间, 方法是通过检测编译所需要文件的更新日期, 并且只编译其中较新的文件.这在有成千上万个文件需要重新编译的时候会很节省时间.
所以大体上来说, makefile文件和bash脚本文件功能差不多, 只是makefile多了上面的能力.
当然, 据说makefile的语法非常令人讨厌,不如bash语法那么爽。

make与cmake的区别
参考这篇文字, cmake是与make配合使用的,它其实是生成makefile的工具,不止如此,还能visual studio工程或其他工程, 简单来说就是跨平台的工程文件生成工具。所以,make是编译系统(build system),而cmake是编译系统的构建器(build system generator).

ninja与make的区别
ninja是一个make的替代产品, 主要是解决make启动缓慢和功能复杂(过于强大)的问题

三十年河东三十年河西。兔国初代目追求平等社会三十年,搞钱实在不太行。次代目让有条件的兔子先搞钱,政策至今也四十多年了,基尼系数大得不行。如今大概新的三十年又要开始了,基尼这玩意儿得要降,理想是最好没有。这个怎么搞?是不是学习初代目?兔子们很平等,一样有钱也一样没钱。当然初代目手里没多少底牌,当代目手里底牌要多一些,是不是可以实现?比如按需分钱?太有钱的还不服管的兔子,是不是坚决干掉?如何让普通兔子都同样有钱?

早上忽然想到的,金融本质上是提供和扩大流动性的工具。而金融的本性是将流动性无限扩大。而金融的监管是对金融本性的监管,其防止流动性可能导致灾难的无限扩大。
这里流动指的是物权的变化,即物主改变。流动性就是物权变化的速度。流动性大就是物权变化的速度快。物权有所有权和使用权。金融也会对这两种不同的权利进行流动。
比如,金融的诞生就是货币的诞生。货币的诞生为物物交换提供了非常大的流动性。在要交换的物物中间,以货币为媒介,就好像为这种交换抹了润滑油一样,使交换速度大大加快。
以金融的这个属性来说,不仅银行、保险和证券公司是金融体系,广义来讲讲产品销售体系也是金融体系的一种,因为产品销售体系加快了产品向消费端流动,以及资金反向向生产者的流动。

人生过半,才慢慢发现一些从小种在我心中、就像真理一样从不怀疑的信念,其实是鸡汤式的谎言。日常总结一下。

  1. 努力就有回报。类似的话包括: 付出就有收获, 一分耕耘一分收获。在这个题目下从小到大被灌输的字句和文章多到无法计数。各种文艺作品包括小说、电影电视剧、动画漫画……甚至都在不断诉说这个主题。而实际上这是一个鸡汤谎言。事实是:回报需要努力,但努力不一定有回报。努力只是一个必要条件,前提还要有正确的方向。问题是正确的方向并不是容易判断的,常常还需要运气。但中国人尤其喜欢这种不管不顾的努力,于是就有了加班文化、奋斗文化、996/007……某种意义上,努力就有回报是老师、上级、领导等统治者给我们灌输的鸡汤谎言,为了实现统治者们自己所定义的方向。这个方向对吗?有时候对,有时候不对。但是这种把命运交给别人,自己只管努力就好了确实能很省心地获得一种满足感,直到发现方向不对的那一天。
  2. 追求"老婆孩子热炕头"是贪图安逸的想法。"老婆孩子热炕头"现在好像比较少提了,以前在一些正规的媒体渠道,包括报纸、电影、电视上,会唾弃这种追求“老婆孩子热炕头”的思想。这个应该属于上一条努力就有回报的延伸,既然要努力,就应该不计一切代价的努力,然后会塑造出一批努力到废寝忘食抛妻弃子的伟光正形象,算是比上一条毒鸡汤更毒的鸡汤谎言。且不说真实世界中每一位在各自方向上成功的人,是否都要努力到抛妻弃子,就说“老婆孩子热炕头”本身,也不失是一种合适且并不容易的努力目标。妻子代表组建家庭,仅此一项,就实现了马斯洛需求理论中的生理、安全、爱河归属的需求,良好的婚姻关系甚至还能帮助实现尊重和自我实现需求。孩子还实现了对人类种族最重要的繁衍需求。热炕头排在最后代表了对家庭和后代的付出以后,自己还能满足的其他生理和安全需要。所以,对普通打工人的这一思想唾而弃之的,大概还是上级阶层出于实现他们的目标的需要,担心我们为他们奋斗地不够努力吧。

形成前

一颗超新星爆炸的尘埃->聚合形成太阳->太阳形成时候的爆炸和引力->重元素粉尘靠近太阳, 轻元素远离太阳->粉尘聚集形成陨石再形成行星->靠近太阳为固态金属核或重元素核的行星,远离的为轻元素核的行星->金属核心的地球形成

冥古宙

这一时期主要是各种陨石轰击地球与地球结合, 但有两个重大事件:

  1. 熔融态金属内核流动形成电流乃至形成磁场, 屏蔽太阳风和宇宙射线, 为生命形成打造防护罩.
  2. (争议假说)一颗与火星大小相仿, 与地球几乎同轨道的行星Theia(提亚/忒伊亚)与地球相撞, 最初形成地球环, 之后聚集成月球, 月球形成后仍受到大量陨石轰击, 称之为后期重轰炸期.
    分为隐生代/原生代/酒神代/雨海代. 这儿认为在原生代出现了最早的细菌生物

    太古宙

    分为 初/古/中/新四个太古代
    这一时期细菌和蓝菌等原核生物, 并制造了微量的氧气.

    元古宙

    分为 古/中/新三个元古代

    显生宙

    分为 古生代/中生代/新生代
    古生代分为寒武纪/奥陶纪/志留纪/泥盆纪/石炭纪/二叠纪
    中生代分为三叠纪/侏罗纪/白垩纪
    新生代分为第二纪(古近纪)/第三纪(新近纪)/第四纪

为将基于不同MCU/不同编译环境/不同产品功能的嵌入式项目能统合在一起编译, 提出这个分层模型.

层级 层名 解释 硬件相关性 产品型号相关性
8 编译层 为方便项目快速编译而开发的批处理文件(如.bat), 可进行dev/build/release等操作,不同产品通过f5y_config.bat配置文件修改 (多数)有
7 配置层 用于配置产品型号,版本,功能等信息,C语言统一为proj_conf.h
6 功能层 提供各种产品的各种功能,与硬件解耦, 分功能子层func.c/h和驱动测试子层driver_tester.c/h -
5 驱动层 上驱动层driver.c/h对功能层提供标准驱动接口, 下驱动层修改必要的SDK示例内容以实现不同产品功能的兼容
4 项目层 为编译使用的项目文件, uv5.proj文件或.mk文件等 (多数)有
3 SDK层 为原生SDK, 可能在硬盘的其他位置 (多数)无
2 编译器层 为编译器文件, 如uv4.exe, gcc.exe等, 在硬盘其他位置安装
1 硬件层 为基于不同MCU的实际硬件, 如C51的某型号产品PCB, ESP8266某型号PCB等

项目生成的固件一般放置在firmware目录中
4~8层在一个集合目录中, 3层SDK看实际情况放置

U430 touch前几年启动巨慢无比,得半小时到一两个小时, 还得看运气. 后来发现是用作缓存的16G建兴SSD坏掉了, 我估计是超出了写入寿命. 于是闲鱼上买了个威刚的240G二手SATA 2242 SSD. 注意这个型号, 2242不是通用的, 而是联想和hp等笔记本厂家的专属型号, 市面上很难买到,新品只有金胜维, 价格过于便宜, 不太敢买. 闲鱼有大量威刚240G的HP拆机条, 似乎要保险一些.
买回来刚装上发现读取速度还可以但写入速度极慢(10M/S上下), 4K随机读取只有2M/S左右, 解决方式似乎是: 设备管理器->磁盘驱动器->属性->策略,勾选启动设备上的写入缓存. 并且所有盘都要勾上.
另外发现设备管理器->磁盘驱动器的SSD名称还是旧的LITEON 16G, 需要删掉重新发现才变正常.
Intel有一个Intel RST快速存储技术, 另外联想官方还能下载一个ExpressCache软件, 似乎和intel RST作用类似.
已经安装的ExpressCache有问题无法运行且很难删除, 主要是服务不能删除. 我在安全模式下禁用了Intel RST服务和ExpressCache服务, 再回到正常模式下才删除. 然后重新安装, 其中重启了好几次. 安装ExpressCache前, 需要在SSD盘上预留一些未分配空间, 我留了40多G, 安装完重启后, ExpressCache自己取了其中的32G来用.
ExpressCache安装后再次要是命令行操作. 管理员打开命令行输入eccmd -info可以看到当前缓存信息.
值得注意的是, 刚刚安装好ExpressCache, 管理员身份似乎不能马上运行, 如services.msc等需要管理员身份的程序一开始运行会报错, 要过一会儿才行, 似乎是在等待缓存到SSD?

参考: https://mp.weixin.qq.com/s/aNC6cgLSrK3dzrlwbaDzOA
日本人长寿, 男性人均81, 女性87, 现在养老负担及其重, 占到GDP的大头. 日本政府不堪重负, 用尽各种招数:

  • 延长退休年龄, 从最初的55延长至65, 现在又鼓励延长至70
  • 削减养老金, 降低退休工资
  • 扩大养老保险参保范围, 将以前交不起/不符合条件的人也纳入来缴纳养老金, 并口头承诺提高退休后收益
  • 海外养老计划, 让房地产公司在低成本国家建设日本养老村, 出国养老, 又被人诟病为弃母山计划
  • 社会5.0计划, 通过高科技远程医疗, 智能管家辅助, 让老人可以自主居家养老, 但似乎也是单纯的幻想
    然而现状是:
  • 日本老人退休金养不起自己, 人均每月缺口2000多元, 靠自己的积蓄生活
  • 积蓄花完, 有些老人自杀, 有些老人偷盗入狱, 去监狱享受免费养老
  • 日本65岁以上老人自杀率和犯罪率都逐年升高, 有的监狱40多个犯人平均年龄达到了70多岁
  • 同时, 日本生育率又很低, 劳动力人口短缺, 生育欲望萎靡
    从目前来看, 中国已有端倪. 去年人口统计仅增长几十万, 预计今年将迈入负增长. 虽然放开了三胎,但并没有形成预期的生育潮. 退休金总额不足也已经被讨论过. 同时国家不断吹风要延迟退休年龄. 劳动力不足加上老龄化社会到来, 最糟的情况可能比日本还糟, 未到达富裕就先衰退了.
    挑战与机遇并存. 老年人作为人要满足基本的生存需求. 在我国如果退休金很少甚至没有的老年人, 国家应该有低保户之类的兜底政策, 出现自杀或者偷盗犯罪的可能性要低于日本. 另外强制提高上班族的养老保险可能也是不得不做的政策, 并且政策推行不会像日本社会那么有阻力. 在其他国家或者省份建立养老村这样的措施,可能因地而异. 有些地方的老人可能不愿意离开故土, 而有些地方则比较开放, 或者是逼到一定程度则不得不离开. 海南那么多东北人的聚居小区也说明了这个政策一定程度是可行的, 尤其房地产现在增长乏力, 必然会想这样的方式结合国家政策推出异地养老房.
    老人有几个方面的需求, 一个是生存, 吃喝拉撒衣食住行, 这个每天都需要钱; 二是医疗, 老年人基础病更多, 虽然不一定每天需要费用, 但是一旦有需要就是很大的费用. 三是交流, 老人往往孤独, 这个不见得需要钱, 但需要让一群老人们可以每天很方便的见面.
    需求由问题引发. 关于钱, 前几年还有租房养老或者卖房养老的问题和报道, 说明很多老年人退休就已经没有足够积蓄和养老金维持生活了. 这些年不报道了并不能说明问题已经消失了. 而关于孤独, 报道则比较少, 现在国内似乎认为孤独是很个体的事情, 并不需要什么常态化机制去解决; 这应该是群体认识和人文关怀还比较初期, 未来应该是会重视起来.
    我想, 总的趋势是国家养老负担越来越重, 平均到每个老人手里的钱也越来越少, 即便能保底, 也不能保证很好的生活质量. 因此对于日用品来说, 需要便宜耐用, 且非常安全, 减少疾病的可能, 这样的产品和品牌应该会更受欢迎. 对于医疗救助需要及时便捷, 可以自助, 减少对他人的依赖, 这样的产品和措施应该也会很受欢迎.
    对于日常沟通交流来说, 一是需要有一个便捷的遮风挡雨的容纳空间的, 农村中倒是容易, 而在拥挤的城市中真是个问题. 二是需要有空闲, 城市里老人似乎都是忙着带小孩, 小孩上学又要忙着准备饭菜, 抽不出空隙来. 三是要有共同语言, 需要固定的一些老人们在一起做做同样的事情, 才能建立起交流来.

看了Linus的一些新闻, 吐槽C++, 决定引入Rust也不用C++, 引起的我的好奇, 并在知乎上找了一些文章, 看大家怎么评价的:
https://www.zhihu.com/question/25535134
https://www.zhihu.com/question/266995763
https://www.zhihu.com/question/30292024
C和C++一直都是并列写作C/C++的, 包括很多教材也都这么写, 不知道何时开始这么不共戴天了? 我2000年前后开始学C/C++, 后来进华为开发, 虽然用的还是C但是IDE是微软的Visual C++ 6.0, 这俩看起来跟好的不能再好的哥们一样的编程语言竟然暗地里结了这么深的梁子?
现在来看, C++诞生于1983年, 在1998年才第一次被标准化. 这和Windows的诞生几乎是同时代的. Windows1.0发布与1985年, 到1995年之后的Win95/98风靡世界, GUI开发成为最重要的开发目标. 所以C++语言有两个野心, 一个是替代C, 另一个是成为GUI的开发标准. 从前面的各个吐槽来看,这么多年以来, 在底层开发领域C的地位也没有被C++取代,反而在上层应用领域有了很多的替代, 包括服务器端和安卓端的Java, IOS端的OC, H5的Javascript, 游戏脚本Lua, 万能语言Python, 多线程Go. 还有Linus青睐的Rust.
以前以为Qt只能用C++开发, 现在发现居然有一个QtScript, 是ECMAScript的实现. 在Qt的官网发现, 现在QtScript似乎已经被替换成了额QML(像是XML/HTML的变形),也支持Python了. Qt可以在LGPL下开发,也可以通过商业许可证购买.