城下之盟(写在十一周年纪念日)

2020-03-01

与老婆签订的不平等条约,应她要求公开 😭


武汉新型冠状病毒

2020-01-29

具体的情况,网上不要太多,我说说我的经历和想法。


如何占用文件以及遇到 Text file busy 之后怎么处理

2019-12-25

:) 本文正在编辑中,暂时不提供浏览...


GNU/Linux 上如何快速创建一个大文件?「from StackOverflow」

2019-12-25

StackOverflow 上看到好些种快速创建文件的命令,逐个测试,在 Ubuntu 下可用的方法有以下几种:

time dd if=/dev/zero of=test.img bs=10M iflag=fullblock,count_bytes count=10G
# 0.00s user 0.45s system 1% cpu 39.144 total

# 在 xfsprogs 包中:
# -n 表示不写入数据
time xfs_mkfile -n 10g test.img
# 0.01s user 0.01s system 2% cpu 0.669 total

# 在 VBox 挂载的虚拟磁盘上执行时遇到 “不支持的操作” 错误
# 在 EXT4 磁盘上没有遇到问题,速度很快
time fallocate -l 10G test.img

time truncate -s 10G test.img
# 0.00s user 0.00s system 46% cpu 0.005 total

time dd if=/dev/zero of=test.img bs=1 count=0 seek=10G
# 0.00s user 0.00s system 77% cpu 0.002 total

最后看到的 dd seek 方案深得征信深得朕心。

根据这个思路,Python 创建 10G 的文件应该这么写(也是我一直以来的写法):

GB = 1 << 30
with open('test.img', 'w') as _file:
    _file.seek(10 * GB - 1)
    _file.write(chr(0))

五险一金(武汉)以及个人所得税

2019-12-14

我不知道具体是怎么规定的,或者别的公司是怎么实施的,这里只是以我司(SendCloud)作为参考。
主要是我根据资料和自己的理解,结合实际数据,自己臆断的,不一定是真的,哈。


读史书:兔死狗烹

2019-11-26

范蠡遂去,自齐遗大夫种书曰:“蜚鸟尽,良弓藏;狡兔死,走狗烹。越王为人长颈鸟喙,可与共患难,不可与共乐。子何不去?”种见书,称病不朝。人或谗种且作乱,越王乃赐种剑曰:“子教寡人伐吴七术,寡人用其三而败吴,其四在子,子为我从先王试之。”种遂自杀。
《史记 越王勾践世家》

上令武士缚信,载后车。信曰:“果若人言,‘狡兔死,良狗亨;高鸟尽,良弓藏;敌国破,谋臣亡。’天下已定,我固当亨!”上曰:“人告公反。”遂械系信。至雒阳,赦信罪,以为淮阴侯。
《史记 淮阴侯列传》

中国哲学书电子化计划

转载:2020年普及的乙醇汽油,价格会不会更便宜?

2019-11-25

看到关于乙醇汽油使用推广的消息,就查了以下相关资料,这是看到的一篇老资讯了。


MySQL 字段类型 varchartext 的差异

2019-11-25

一次数据库表结构调整,引起了我对 MySQL 字段类型 TEXTVARCHAR 的思考。


容错、高可用、灾备

2019-11-19

阮一峰的博文(容错,高可用和灾备)中说:

  • 容错:发生故障时,如何让系统继续运行。
    飞机的四个引擎坏了一个还能继续飞行,汽车的四个轮子坏了一个也能将就驾驶。
  • 高可用:系统中断时,如何尽快恢复。
    汽车的备胎,用于快速恢复正常驾驶(允许短暂的业务中断)。
  • 灾备:系统毁灭时,如何抢救数据。
    飞机的弹射装置,保证最核心的“资产” —— 驾驶员能够存活。

尝试 K8S(Kubernetes)

2019-10-15

Tornado Remote IP

2019-09-20

由于 Tornado 部署在 Nginx 后面,通过 self.request.remote_ip 总是只能拿到 Nginx 地址。


Django 3.0 发布,开始支持异步功能

2019-09-16

Django 项目组试图在保持向后兼容的基础之上,对阻塞部分进行改造,使之支持异步(通过装饰器的方式)。
包括 Session、Auth、ORM 与 Handlers 等。

ASGI 模式将 Django 作为原生异步应用程序运行,原有的 WSGI 模式将围绕每个 Django 调用运行单个事件循环,以使异步处理层与同步服务器兼容。

在这个改造的过程中,每个特性都会经历以下三个实现阶段:

  • Sync-only,只支持同步,也就是当前的情况
  • Sync-native,原生同步,同时带有异步封装器
  • Async-native,原生异步,同时带同步封装器

Django 3.0 开始提供运行 ASGI 应用支持,让 Django 逐渐具备异步功能。做了这一改动后,Django 现在会感知到异步事件循环,并将阻止从异步上下文调用标记为“异步不安全”的代码(例如 ORM 操作),如果开发者之前使用的是异步代码,则可能会触发。如果看到 SynchronousOnlyOperation 错误,可以仔细检查代码并将数据库操作移到同步子线程中。

其它方面,Django 现在支持 MariaDB 10.1 及更高版本;新的 ExclusionConstraint 类可以在 PostgreSQL 上添加排除约束;输出 BooleanField 的表达式现在可以直接在 QuerySet 过滤器中使用,而无需先注解然后对注解进行过滤;自定义枚举类型 TextChoices、IntegerChoices 和 Choices 现在可用作定义 Field.choices 的方法。

需要特别注意的是:自从 2.2 之后,Django 将不再支持 Python 3.5。

更新说明:https://docs.djangoproject.com/en/dev/releases/3.0


PowerShell 在 Ubuntu 下的安装和试用

2019-08-22

PowerShell 的最近的一次更新修复了其作为 SSH 的登录 Shell 的一些问题。
Win 10 对 NFS,SSH 的支持推进也是有目共睹。
随着 MS 对 Windows 的策略调整,估计以后 Windows 服务器也会变多。

# Download the Microsoft repository GPG keys
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb

# Register the Microsoft repository GPG keys
sudo dpkg -i packages-microsoft-prod.deb

# Update the list of products
sudo apt-get update

# Enable the "universe" repositories
sudo add-apt-repository universe

# Install PowerShell
sudo apt-get install -y powershell

# Start PowerShell
pwsh

Facebook 数字货币项目 Libra 的国会听证会

2019-07-16

背景:美国国会叫停 Facebook 数字货币项目

今天的听证会上,小扎声明:

  1. 在获批之前,不会继续推动项目;
  2. 上线之后一定会配合监管,确保不被用于洗钱和恐怖主义融资。

有意思的是,他特意提到中国,表示如果一再受阻,中国央行会抢在他们前面有所动作(可能是说推出数字货币)。

值得注意的是,Libra 项目的几个重要合作者,包括 eBay、PayPal、Stripe、Visa、MasterCard,已经退出了。


Gitlab 从 12.1 版本开始将不再支持 MySQL

2019-07-03

看到新闻,Gitlab 从 12.1 版本开始将不再支持 MySQL,理由是:

Gitlab 支持的另一个数据库是 PostgreSQL,意思是 PostgreSQL 不存在上面的问题。
这也可以看作是二者的部分区别吧!

值得研究研究。