化外之民
Just another WordPress site
http://blog.wencan.org-
重读《黔之驴》
今天计划做点无聊的事。突然想起柳宗元的《黔之驴》。原文如下: 黔無驢,有好事者,船載以入;至則無可用,放之山下。虎見之,龐然大物也,以為神。蔽林間窺之,稍出 近之,憖憖然莫相知。他日,驢一鳴,虎大駭遠遁,以為且噬已也,甚恐!然往來視之,覺無異能者,益習其聲,又近出前后,終不敢搏。稍近益狎,蕩倚衝冒。驢不勝怒,蹄之 。虎因喜曰:「技止此耳!」因跳踉大闞,斷其喉,盡其肉,乃去。 …阅读全文 -
Python实现数据类的方法集合
当前Python最新稳定版为3.6。主流Linux发行版官方仓库提供Python版本的有2.7和3.5,默认依然是坚强的2.7。 1、 dataclass装饰器 。正规军,需要Python 3.7+ ,还在路上 。dataclass装饰器会给类添加__init__、__str__、__repr__等方法。 [代码片段] 2、 collections. …阅读全文 -
在Linux Minecraft中输入中文——进阶:在告示牌输入中文
两年前的一篇文章,我讲到如何 在Linux Minecraft中输入中文 。脚本内容是转的别人的。该方法只能用于聊天,不能用于编辑告示牌。 其实只要把脚本修改下,就可以通用。只会复制粘贴,不会派生定制,做程序员的我真的不好意思。 原脚本内容为: [代码片段] 其中正文第一行为弹出对话框,接收用户输入。第三行输出t键。第五行输出对话框接收的输入。第六行输出回车。很明显 …阅读全文 -
一次网件路由器OpenWrt系统TFTP刷机抢救记录
路由器网件WNDR4300,原固件为OpenWrt15.05,计划升级到OpenWrt15.05.1。下载了wndr4300-squashfs- sysupgrade.tar,通过LuCI升级。确认升级前,检查升级文件摘要匹配。 路由器重启后,不能获得IP地址,能PING通网关。不能访问luCI,SSH连接网关密码始终无效。路由器在开机后,指示灯只亮电源指示灯和有连接的LAN指示灯。 开 …阅读全文 -
长沙寻访古旧书店(一)
首先说明,本次寻访日期为2018年1月9日。本次寻访大区域为芙蓉区,寻访依据以网友提供的线索为主。 第一块区域为湘雅附二医院一带。该区域也靠近湖南图书馆。人 民路北侧,湘雅附二医院以东,有三家旧书店。三家书店都是小门面,提供二手旧书。我淘到一本人民出版社的《国际共产主义运动史》,1978年版。向老板询价,老板示意 书背面。翻过来看,价格在背面用铅笔标注了,13元。 结账时,又向老板打听附近 …阅读全文 -
Debian stretch安装nvidia显卡驱动,并配置双显卡切换
机器是戴尔老爷机,Dell inspiron 14r 7420,显卡为Intel + Nvidia。 之前Debian wheezy上双显卡解决方案见我的 这篇 。建议先阅读该篇。 下面是我解决问题之后的简单总结。实际摸索过程远比这复杂。各人机器环境不同,下面的方案绝非放之四海皆准——仅供参考! 第一步,为默认源添加contrib non-free组件,并更新本地仓 …阅读全文 -
遭遇MongoDB勒索
最近测试环境表现得不正常,MongoDB的数据展现不出来。 查了日志,发现有这么几条: [代码片段] 我的代码中不可能有dropDatabase的操作,也没这么手动操作过。 既然PLEASE_READ_ME,那我去就读。 在数据库中发现了PLEASE_READ_ME库,库下有PLEASE_READ_ME集合,集合中有这么个文档: [代码片段] 日志中还有不少国外的ip …阅读全文 -
实现golang程序热升级
简单定义热升级就是:让运行中的服务改为执行新的程序代码逻辑,且不中断服务。 目前现有的开源热升级程序主要有 endless ,和beego的 grace 组件。 经过测试,grace在热升级时,会掐掉当前处理中的连接,自然无法接受。endless的问题在于每次热升级都是创建子进程后,原进程就退出了,这点显然不 符合守护进程的要求。 于是自己实现个新的。逻 …阅读全文 -
自定义tornado日志格式
第一次玩tornado。版本4.x。为了解决日志格式的问题,google了很多,没一个有效的。 tornado日志格式分两块,一块是logging的格式,一块是tornado请求消息格式。 tornado默认的访问日志输出是这样的: WARNING:tornado.access:404 GET / (127.0.0.1) 167.93ms 其中, WARN …阅读全文 -
docker挂载文件的更新问题
将宿主机配置文件挂载到容器,在宿主机修改配置文件,但容器内挂载的文件并未发生变化,直至docker重启。 记得不是这样的。起初以为是版本的原因。于是在最新版docker上做了测试,问题依旧。 只好Google之。最后从docker issue上找到了答案: docker挂载文件基于inode。vim等编辑工具保存文件时,并非直接保存,而是将一份新的临时文件覆盖了旧文件。对于ino …阅读全文