爱大客 - 2022年11月
type: channel
link: https://www.idarc.cn/index.php/2022/11/
description: Every piece of all creatures in this freezing world, are racing for freedom.
items: 水能载舟
items: 硬件产品在不同阶段应做的测试
items: 光与健康科学文献汇集
items: 家用伤口消毒剂的使用方法
items: 后知后觉，原来jsdelivr去年就ban了
items: 如何在代码中禁用Gcc告警
items: javascript文字转语音引擎 speechSynthesis
items: python 文字转语音引擎 pyttsx3
items: 在服务器上开了一段时间的TCP服务器收到的恶意攻击
items: bash, make, cmake, ninja等等之间的区别

水能载舟
type: item
date: 2022-11-30T13:47:46+08:00
description: 水能载舟,亦能覆舟. 鲧堙洪水水复患, 禹开导河灾始平.

硬件产品在不同阶段应做的测试
type: item
date: 2022-11-29T11:08:41+08:00
description: 硬件产品(除了PCB以外)有些问题是最让人担心的, 一旦发生, 就可能导致产品部分或者推翻重来: 干涉. 不同部件空间上相互插入. 强度/力度不够. 表面处理无法达到目标效果干涉 干涉的问题并不总在设计阶段能发现. 导致干涉难以发现的原因包括: 如果产品并非方方正正的造型, 那么在3D图上可能不能找到一个特定的角度观察到干涉. 产品带有转动机构, 在3D图上未能发现在一个特定的角度干涉 产品的部分组件不是结构工程师完全设计, 导致这部分组件在结构设计时不能完全呈现, 以至于发现不了干涉. 这其中尤其是PCB. 上面设计的LED灯/触摸弹簧/电容都可能与结构设计发生干涉. PCB与产品结构干涉包括: LED指示灯干涉. LED指示灯一般要通过结构透光出来, 结构上为了透光会做一定的设计, 如套筒等, 这要求LED的位置与结构套筒位置精确匹配, 包括焊点在内不能与LED灯产生干涉. 此时, 最好由结构设计师明确圈出LED灯的摆放位置 触摸弹簧干涉. 触摸弹簧有一定的高度, 并且在结构中需要被略微压缩, 并保证压缩后不偏位, 因此触摸弹簧同样需要结构有套筒套住. 结构设计师也需要明确指出套筒摆放位置 结构投影PCB干涉. 在结构工程师指出LED和触摸弹簧位置时, 可能由于结构件出模方向与PCB板不垂直, 导致结构设计师指出的LED和触摸弹簧位置是垂直投影位置而不是出模方向的投影位置, 进而导致干涉. 应设计为出模方向的投影位置. 电容等有高度的器件干涉. 在PCB设计完成前, 结构工程师不知道电容的高度和布局, 导致实物干涉. 现在电容多采用贴片电容, 最高高度有10.5mm之多, 结构设计师设计时经常把PCB简化成一张薄板, 导致设计出的成品与PCB干涉. 由于PCB与结构设计同步开发, 这一步可能在开模后才能发现, 导致巨大损失. 结构工程师应为大功率器件区域预留相当高度(至少10mm空间), 并且功率越高的预留应越高空间. 提前与电子工程师沟通电容/电感/线圈等大个头器件布线位置和需要预留的高度, 在结构设计中用立方体占位. 干涉还可以在组装环节发现, 包括结构样机组装和T0开模样机的组装. 结构样机组装可以发现大部分干涉问题, 但由于结构样机的不精确, PCB设计未完善, 包材未完成设计打样不能做跌落测试等问题不能发现干涉. T0样机组装. 这一步应完成包材设计, 并做跌落实验. 跌落实验后检查损伤, 可以及发现强度/力度不够和干涉的问题. 强度/力度不够 产品较重或者有配重/旋转机构的时候, 需要注意: 产品正常跌落和运输跌落的时候, 产品的结构能不能保护产品 产品的旋转结构所用的阻尼件(转轴/螺丝/扭簧等)能不能在关节位置有效撑起产品. 不能有效撑起时需要对结构甚至外观做重大修改, 导致延期和模具损失 表面处理CMF 表面处理是在某一指定材质上, 展现指定颜色/图案/光洁度的工作. 所指定的颜色/图案/光洁度都受到材质本身和工艺的影响. 错误的设计导致指定效果完全不能达到或者成本极高, 导致产品失败. 设计师要明白, 在特定材质上能实现的颜色/图案/光洁度都是有限的, 并非什么颜色都能做, 什么图案都能印, 什么光洁度都能实现.

光与健康科学文献汇集
type: item
date: 2022-11-28T11:37:00+08:00
description: 《PNAS》开灯睡觉会导致糖尿病和肥胖吗？-神经生物学 2022-03-17 患癌风险增加55%！开灯睡觉的危害，远不止这些…- 廉文瑞 科普中国 2021-06-11 07:23

家用伤口消毒剂的使用方法
type: item
date: 2022-11-28T11:04:00+08:00
description: 看到央视转发腾讯医典的文章,确实这些年都用错了. 当然也可能是医学不断有新知, 跟计算机一样,旧的知识过期很快. 参考: https://mp.weixin.qq.com/s/ynM7asQa445TbMG9vgnEIg 现在开放伤口消毒的唯一推荐就是碘伏. 伤口冲洗推荐是清水. 类型 成分 用途 禁忌 医用酒精 乙醇+水 皮肤消毒 不可用于开放性伤口消毒 碘伏 碘络合物+水 伤口消毒 碘过敏和甲亢禁用 碘酒 碘/碘化钾/乙醇 皮肤消毒 碘过敏和甲亢禁用 双氧水 过氧化氢 伤口冲洗 对组织高毒性,结痂期禁用 红霉素软膏 1%红霉素/液蜡/凡士林 治疗和预防皮肤感染 超过1周使用会耐药 另外,百多邦喷雾中主要有效成分是苯扎氯铵, 杀菌效果很好,但长期大量使用(如消毒巾中使用)会导致哮喘等过敏性疾病, 孕妇使用导致胎儿畸形 参考文档 已禁用的消毒剂: 红药水: 汞溴红, 含汞, 会引起汞中毒, 并且没什么消毒作用, 不知道这玩意儿怎么用了这么多年 紫药水: 甲紫/龙胆紫, 有一点点消毒作用, 可以使皮肤提前结痂, 但安全性同样有问题, 吸收后可致癌 另外, 酒精已经是一类致癌物了, 甚至还是癌症的主要原因.

后知后觉，原来jsdelivr去年就ban了
type: item
date: 2022-11-26T10:15:50+08:00
description: 如题。 参考文献： https://blog.csdn.net/u013014254/article/details/122045331 https://blog.csdn.net/qq_29654777/article/details/122903558 国内替代如下，以vuetify资源搜索为例： bootcdn, 问题是不知道怎么找历史版本 字节cdn，虽然界面简陋了点但是很好用，速度快且支持历史版本 基于七牛的staticfile，搜索比较慢，也找不到历史版本 ban了以后才知道jsdelivr有GitHub加速功能。

如何在代码中禁用Gcc告警
type: item
date: 2022-11-24T14:02:56+08:00
description: 参考: https://stackoverflow.com/questions/3378560/how-to-disable-gcc-warnings-for-a-few-lines-of-code http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html 示例如下: #pragma GCC diagnostic error "-Wuninitialized" foo(a); /* error is given for this one */ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wuninitialized" foo(b); /* no diagnostic for this one */ #pragma GCC diagnostic pop foo(c); /* error is given for this one */ #pragma GCC diagnostic pop foo(d); /* depends on command line options */

javascript文字转语音引擎 speechSynthesis
type: item
date: 2022-11-20T17:57:25+08:00
description: 参考文档 speechSynthesis是浏览器自带的功能，甚至都不需要单独去安装。当然也有可能有的浏览器不支持。 最简单的三行代码： var msg = new SpeechSynthesisUtterance(); msg.text = "你好，世界！"; //直接支持中文 window.speechSynthesis.speak(msg);

python 文字转语音引擎 pyttsx3
type: item
date: 2022-11-20T17:27:13+08:00
description: 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()

在服务器上开了一段时间的TCP服务器收到的恶意攻击
type: item
date: 2022-11-10T17:30:00+08:00
description: 用js的netcat库写的, 很简单, 只是记录一下收到的消息, 用了一个很不常见的socket. 开了半年多, 发现几乎每天都能收到一点攻击.如下: 攻击thinkphp的: Cookie: mstshash=Administr针对thinkphp的远程代码执行漏洞进行的攻击 似乎是要爬取数据的: User-Agent: iPhoto/9.1.1 扫描nmap漏洞的: GET /nice%20ports%2C/Tri%6Eity.txt%2ebak HTTP/1.0 Malicious request intercepted by spring 扫描SIP漏洞的: OPTIONS sip:nm SIP/2.0 Via: SIP/2.0/TCP nm;branch=foo Just a Reminder, SIP is a Popular Scanning Target 还有很多其他找不到是什么攻击的. 能看得出来是有攻击软件在定时扫描, 定时周期为5秒或者10秒. 所以互联网上只要开着服务端口就必然会有攻击找上门来.

bash, make, cmake, ninja等等之间的区别
type: item
date: 2022-11-07T18:06:00+08:00
description: 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启动缓慢和功能复杂(过于强大)的问题