街拍 – 老街的老店

街拍 - 老街的老店

摄于2019年4月11日,约 19:20。

下班回家的路上,忽然下起了雨。

我没有带雨伞,在路边躲了一阵之后,趁着雨势变小,决定“冒险”从老墟穿过,想尽快回到家里。

说“冒险”,并不是因为这一片的巷子曲折、狭窄、昏暗,而是许多户人家的墙面上,都被标注了“危房”字样。或许,其中真的有部分房子已经年久失修,而有一些,可能只是因为已被征收,等着被拆除。

二三十年前,这个巷口的前面的墟肚街,后面的农贸市场,是老龙岗最旺的地方;即便到了现在,来这两家店买特产,也经常要排队。

看到巷口的第一家店的橱子里还剩两个糍粑,而第二家店,则剩的还有些多,我正在想着老板什么时候可以把这些存货卖完早点收档休息,便来了三四个人,应该也是下班了刚回到附近,顺路买些东西回家,转眼便把剩下的的东西都买完了。

就在老板忙着招呼客人的时候,我掏出手机拍下了这张照片。

版权黑洞

作为一个从初中开始就受 GPL 熏陶的人,博主有一段时间对版权是比较排斥的。

但后来,在学习和工作中,对版权/知识产权对各行业、企业还有个人的意义有了较为深刻的认识,又积极鼓励各企业、个人利用版权/知识产权保护自身的合法权益,这个观点至今没有改变。

另外,这是一个悖论:“Copyleft”实际上不也是一种“Copyright”么?

我积极鼓励大家在自己的原创内容上注明采用何种版权协议保护自身的合法权益,我们在使用这些内容时,也要遵守相关的协议。

例如:除有特别声明之外,本博客所有原创内容均采用“署名 4.0 国际 (CC BY 4.0) 许可协议”进行许可,所有人均可在保留适当的署名形式的条件下共享和演绎本博客的内容(不限商业用途)。

但博主反感的,是“碰瓷式”的维权行为。

版权声明应放在适当、显眼的位置,尽量在使用前告知使用者。例如:

  • 随内容提供一份版权协议或声明的文本;
  • 在图片上标注水印。

而不是在别人使用之后,先发律师函,再发合作协议,进行“碰瓷式”维权。

没有适当的版权保护,企业和个人便没有动力进行技术、产品研发和内容创作,但不适当的版权“保护”,何尝不是在阻碍着正常的技术、产品研发和内容创作,也妨碍着正常的商业活动的开展。

声援996.ICU

近日,“996”这个话题被炒得沸沸扬扬,博主也忍不住想声援一下“996.ICU”。

什么是“996.ICU”?

工作 996,生病 ICU。

劳动法的规定

第三十六条

国家实行劳动者每日工作时间不超过八小时、平均每周工作时间不超过四十四小时的工时制度。

第四十一条

用人单位由于生产经营需要,经与工会和劳动者协商后可以延长工作时间,一般每日不得超过一小时;因特殊原因需要延长工作时间的,在保障劳动者身体健康的条件下延长工作时间每日不得超过三小时,但是每月不得超过三十六小时。

可见,“996”不仅在每日及平均每周工作时间上超过了《劳动法》第三十六条的规定,在延迟工作时间方面,也远远超过了《劳动法》第四十一条的规定,属于违法行为。

观点

对于“996”,博主是持反对意见的。

合法性

毫无疑问,推行“996”属于违法行为。

然而,如此明目张胆的违法行为,我至今没有看到传说中的“工会”和劳动行政部门有介入的报道!

《劳动法》第八十九条规定:

用人单位制定的劳动规章制度违反法律、法规规定的,由劳动行政部门给予警告,责令改正;对劳动者造成损害的,应当承担赔偿责任。

《劳动法》第九十条规定:

用人单位违反本法规定,延长劳动者工作时间的,由劳动行政部门给予警告,责令改正,并可以处以罚款。

《劳动法》第九十一条规定:

用人单位有下列侵害劳动者合法权益情形之一的,由劳动行政部门责令支付劳动者的工资报酬、经济补偿,并可以责令支付赔偿金:
(一)克扣或者无故拖欠劳动者工资的
(二)拒不支付劳动者延长工作时间工资报酬的;
(三)低于当地最低工资标准支付劳动者工资的
(四)解除劳动合同后,未依照本法规定给予劳动者经济补偿的。

上述三条规定,连同第四十一条中“用人单位由于生产经营需要,经与工会和劳动者协商后可以延长工作时间”的规定,竟都成了空文。

合理性

《劳动法》第四十四条规定:

有下列情形之一的,用人单位应当按照下列标准支付高于劳动者正常工作时间工资的工资报酬:
(一)安排劳动者延长工作时间的,支付不低于工资的百分之一百五十的工资报酬;
(二)休息日安排劳动者工作又不能安排补休的,支付不低于工资的百分之二百的工资报酬;
(三)法定休假日安排劳动者工作的,支付不低于工资的百分之三百的工资报酬。

提倡“996”的企业,未见有提到按上述标准计发工资报酬的。“996”无非就是大佬们利用劳动者相对弱势的地位、劳动行政部门睁一只眼闭一只眼的态度,变相延长工作时间,降低人工成本的一个方案。

想废掉一个人很容易,让他/她沦为“穷忙”即可!“996”下,必然有许多人疲于奔命,没有时间复盘,也没有时间学习、进修,难以得到提升,甚至必要的休息时间和社交活动都要受到影响。

在博主看来,“996”既不合法,也不合理。

关于自愿

虽然“996”既不合法,也不合理,但如果劳动者认为“996”可以使其成功,自愿实行,我认为也并无不可,只是用人单位不宜公开支持。

以前很反感的一个情形是:有人过度敬业以致猝死在工作岗位上,单位领导出来表示沉痛哀悼的同时,还要号召大家像亡者学习。实在是令人无语!

鼓励人家牺牲,鼓励人家去死,这样的观念有多可怕,大家都体会不到么?

我还是希望,看到有人过长时间连续工作,在对他们的工作热情表示肯定之前,最好能先建议他们要保证适当休息。

关于“996”福报论

原本对马云还是挺尊敬的,看到他的“996”福报论,就像吞了只苍蝇。

虽然他老人家一看风向不对,赶紧又跑出来补充几句,观点也从为“996”站台转变成了不提倡,然而,却令我更为厌恶。

不管怎样,这是他的观点,爱怎么说随他,同理,爱怎么评论,也只是我的事情。

钢笔 – Pilot Capless

相比“入门三金”,Pilot Capless 无论做工还是设计都更胜一筹,堪称“千元内实用王者”。

Pilot Capless

对于我来说,Capless 略粗、稍重,但感觉还可以接受,唯一比较难适应的,应该就是笔夹的位置,许多人买了 Capless 又出掉,就是适应不了笔夹的位置。

优点:

  • 笔尖软弹顺滑,写感远胜 14K 的金笔;
  • 做工扎实,手感很好;
  • 按动式设计,使用方便。

缺点:

  • 结构复杂,笔尖和总成很小,只能用小型的上墨器和墨囊,续航能力不足;
  • 极易摔断笔尖;
  • 笔夹的位置很难适应。

之前使用过 EF 尖的贵妃,对百乐的 EF 尖还是比较有信心的,Capless 是打算买来作为日常用笔的,所以就选择了 EF 尖。实际上,Capless 的 EF 金尖没有令我失望,远胜贵妃的 EF 钢尖!(废话,两支笔之间存在着 20 倍的差价!)

Capless 的败笔,主要体现在上墨器上,看着这么粗的一支笔,上墨器只能用 CON40,实际上墨量很少。

如果能够接受 EF 尖稍有些刮纸,EF 尖的 Capless 倒是勉强可以满足日常使用的需要。然而,当我试用了 M 尖的 Capless 之后,让我再选一次的话,我估计会毫不犹豫地选择 M 尖,这时,Capless 用于签字、练字应是不错的选择,日常使用我又得嫌弃它的上墨器容量太小了。​

CentOS 7启用BBR后内核升级步骤

CentOS 7 默认的内核版本为 3.10,而 BBR 需要新版内核的支持,故经常在系统升级并重启之后,内核被替换回官方源中的 3.10 版,我们需要按以下步骤升级内核:

# 升级内核
yum --enablerepo=elrepo-kernel install kernel-ml -y

# 确定新内核的启动项,一般默认是第 1 项
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'

# 设置以新内核启动
grub2-set-default 0

# 重启
reboot

重启后可以运行:

# 查看是否使用新版内核启动
uname -r

# 检验 BBR 是否已经启用
sysctl net.ipv4.tcp_available_congestion_control

使用fail2ban加固系统

一般情况下,我会对 CentOS 进行以下安全设置:

  • 创建普通用户并添加到 wheel 组,日常维护使用普通用户登录操作,需要管理员权限时使用 sudo 提权;
  • 禁止 root 用户登录;
  • 使用证书验证的方式;
  • 修改 sshd 端口;
  • 使用 SSH v2 协议。

上月末,我在登录 VPS 进行系统维护的时候,发现仍有大量失败的登录尝试,查阅了一下日志,果然不断有人在不断尝试登录我的系统。

failed login attempts

于是趁着清明假期有时间折腾,安装并配置 fail2ban 加固系统,以防系统被暴力攻破或防止短时间内接受大量的请求,导致服务器负载过重从而影响正常的访问。

安装

系统默认的源并没有提供 fail2ban,可以添加 epel 源后,安装 epel 源中的 fail2ban。

添加 epel 源

yum install epel-release -y

安装 fail2ban

yum install fail2ban -y

配置

创建访问日志

touch /usr/local/nginx/logs/access.log

不创建的话,启用 fail2ban 时会报错。

配置规则

/etc/fail2ban/filter.d/ 目录下内置了大量的规则可供调用,我们还可以自定义规则:

nginx-cc
vi /etc/fail2ban/filter.d/nginx-cc.conf

nginx-cc.conf 中添加以下内容:

[Definition]
failregex =  -.*- .*HTTP/1.* .* .*$
ignoreregex =
wordpress
vi /etc/fail2ban/filter.d/wordpress.conf

wordpress.conf 中添加以下内容:

[Definition]
failregex = ^ -.* /wp-login.php.* HTTP/1\.."
ignoreregex =

修改 jail.local

vi /etc/fail2ban/jail.local

将以下内容添加至 jail.local 中,这样 fail2ban 启动之后,便可以根据配置,调用相关的规则,对系统实施防护,下面配置文件的策略是:10 分钟内 5 次登录失败,便将该 IP 封停 24 小时,不允许再尝试登录。

[DEFAULT]
ignoreip = 127.0.0.1/8
bantime  = 86400
findtime = 600
maxretry = 5
banaction = firewallcmd-ipset
action = %(action_mwl)s

[sshd]
enabled = true
filter  = sshd
port    = 10086
action = %(action_mwl)s
logpath = /var/log/secure

[nginx-cc]
enabled = true
port = http,https
filter = nginx-cc
action = %(action_mwl)s
maxretry = 20
findtime = 60
bantime = 3600
logpath = /usr/local/nginx/logs/access.log

[wordpress]
enabled = true
port = http,https
filter = wordpress
action = %(action_mwl)s
maxretry = 20
findtime = 60
bantime = 3600
logpath = /usr/local/nginx/logs/access.log

启动 fail2ban

启动

systemctl start fail2ban

如果 fail2ban 没有报错,则表明配置成功,可以设置为开机启动。

设置开机启动

systemctl enable fail2ban

这样就可以开启一个 PuTTY,对系统进行登录测试,如果连续 5 次登录失败后,继续登录时被系统阻止,则表明 fail2ban 配置已经生效。

常用操作

# 重启 fail2ban
systemctl restart fail2ban

# 停止 fail2ban
systemctl stop fail2ban

# 查看被 ban 的 IP,其中 sshd 为名称
fail2ban-client status sshd

# 删除被 ban 的 IP
fail2ban-client set sshd delignoreip 218.92.0.193

# 查看日志
tail /var/log/fail2ban.log

世界,您好!

这又是一个新的开始。

趁着清明假期,搭建了这个博客。

VPS

主机使用的是 Vultr 的 VPS,位于纽约机房,国内访问速度一般,但总体还是非常稳定,加上花费不高,且 Vultr 之前活动时赠送了一个 50G 的数据盘,暂且先用着吧。

域名

域名是注册了好几年的 cn 域名,一次性交了10年的费用,也还有好几年的使用期,暂且也先用着吧。

博客程序

博客程序还是选择了 WordPress,虽然它臃肿,但是有丰富的插件和主题,使用方便。

CDN

CDN 选择的是七牛,因为已经使用了几年了,且已经充值开通了 https 支持。