Shi Hai's Blog

随遇而安

新脑血管疾病介绍和紧急预防

同窗十几年的同学突然离世,平时身体健康,毫无预兆,挺让人震惊的。 和同学亲友沟通过程中,一个细节让我十分诧异:公司同事在等120到来的12分钟时间内没有进行任何紧急抢救措施。120也没有提供任何线上的救助指导。离世原因无法考证,但通过同学亲戚的描述应该是心源性猝死/心肌梗死。 一、新脑血管疾病 1.1 心源性猝死 猝死:指外表看似健康的人,因内在疾病而发生的迅速死亡,是一种临床表现。 导...

java 学习总结

最近开始要重新使用Java,已经有若干年没使用了,另外完全不懂Java编程语言背后的设计意图。 借机好好回炉重新学习学习,学习材料从谷歌扒拉过来的。 一、static关键字 static修饰的变量存放在静态区。 二、final关键字 final修饰的变量无法被修改。final+static修饰的变量表示一个常量。 三、java接口 对于不同的程序员群体来说,同意一份阐明他们的软件如何交互...

groovy学习

主要想通过Groovy来管理架构的DSL,实际用DSL的逻辑组织会强于json、xml这类文件存储格式,当然带来的成本还是需要熟悉一下groovy的语法。主要还是对官网给的一些示例代码熟悉一下,主要重点想看一下怎么定义DSL和存储格式(ToString、yaml、json、xml等)的输出。 groovy吸收了很多Java和Python的语言特性,代码本身应该用vim编辑是比较高效的,不过...

AWS最佳架构实践随笔

对AWS最佳架构实践的上下文及演进驱动力做个单纯的考古活动,内容主要从各个网站介绍上拷贝过来,如要看完整文档建议看参考文献相关索引链接。 一、亚马逊最佳架构实践 1.1 目标 它提供了一种方法,使您能够根据最佳实践持续衡量架构,并确定需要改进的方面。审查架构的流程是关于架构决策的建设性对话,不是一种审核机制。 1.2 框架的六大支柱(Pillar) 1.2.1 卓越运营(Operatio...

记一个python默认参数引用泄露问题

一、问题背景 如下这段代码后,执行compute()函数前后,引用计数居然多了3,也就意味泄露了3个引用。 cache={}会让cache引用变量的引用计数加2,另外还有1个引用计数的增加以及怎么产生引用泄露的呢? import sys class A: pass def compute(cache={}): cache[0] = dict() x = A()...

python urllib内存泄露问题分析

一、问题背景 在python2/3中调用urllib模块会有循环引用没被释放,触发代码如下所示: import gc import sys if sys.version_info.major == 3: from urllib import request urlopen = request.urlopen else: import urllib2 url...

领域特定语言(DSL)学习和总结

一、DSL介绍 DSL的核心价值在于提供了一种可以清晰地就系统某部分的意图进行沟通的手段。它提供了一种用于思考问题的抽象,更容易用一种可理解的方式指定系统行为。DSL领域模型可以降低阅读复杂度,可以提升开发团队与客户以及软件用户之间的沟通。DSL提供了一种清晰而准确的语言,可以有效地改善这种沟通。 1.1 外部DSL 通常采用自定义语法,不过选择其他语言的语法也很常见,如:XML。外部DS...

Python调用Golang

记一个工作中遇到的问题,由于要给C、Java、Go、Python提供客户端,客户端的核心逻辑实现语言是Go,所以Python客户端最快的实现方式是直接封装Go语言逻辑,而且因为业务需要,还要提供Python3/2两个版本,先有Python3版本,后有Python2版本,因此还需要考虑在Python2上执行Python3代码的兼容性问题。 主要的解决思路是Go语言和Python语言都对底层C...

代码索引工具调研

一、相关协议 1. 语言服务器协议(LSP) 语言服务器协议定义了编辑器或IDE与语言服务器之间使用的协议,该语言服务器提供自动完成、转到定义、查找所有引用等语言功能。 2. 语言服务器索引协议(LSIF) 为了在开发工具或 Web UI 中支持丰富的代码导航,而无需源代码的本地副本。 3. LSP vs Kythe Schema LSP/LSIF的核心目标是让IDE与工具之间,Web和代...

COVID-19注意事项

一、中国医学科学院阜外医院-冯雪教授交流 新冠对肺的影响:肺的修复能力很强,被新冠攻击后会马上恢复(以月为单位),上、下呼吸道没有严格区分; 新冠对心理改变:心理门诊暴涨40%,抑郁发生率34.9%、焦虑发生率35.1%、失眠发生率29.7%、认知障碍发生率22%; 对新冠的认知:只掌握了10%,还有90%是未知的; 基因的两种长寿:复制(保障细胞的持续生长)和逆境(饥饿、跑步、感冒、新冠...