按照固定长度分割字符串在很多地方都要用到(例如输出FASTA格式的文件)。去网上搜发现真是令人无语。最后发现python官网的方案最简单:
import textwrap
str = '123456789abcdefg'
print(*textwrap.wrap(str, width=5), sep='\n')
输出结果:
12345
6789a
bcdef
g
按照固定长度分割字符串在很多地方都要用到(例如输出FASTA格式的文件)。去网上搜发现真是令人无语。最后发现python官网的方案最简单:
import textwrap
str = '123456789abcdefg'
print(*textwrap.wrap(str, width=5), sep='\n')
输出结果:
12345
6789a
bcdef
g
这个游戏(PVZ1)在十几年前我上大学时在电脑上玩的初代。
后来出来了第二代(PVZ2),但mobile only,那时我还没有智能手机,只能眼巴巴地看着别人玩。后来有了智能手机,玩了几次,直觉是:好难!另外还有很多奇怪的按钮,一不小心就点到付费。
去年在iPhone上又玩了一次PVZ2,还是好难!于是想去看看PVZ1,然后发现了一个悲剧:PVZ1虽然有个Mac移植版,但由于是32bit only,无法运行于MacOS10.15了。
于是乎最后,用外区Apple ID下载PVZ1成了最接近原生体验且最清爽的方式。至于电脑上么?目测等以后买了M1 Macbook之后在macOS上运行 iOS PVZ1吧。
附两个秘籍:
(1)巧用iOS PVZ1内购bug,可以购入大量金币,也可以内购去广告,基本原理是点击购买后快速退出app(在全面屏iPhone里面操作需要有点技巧)
(2)Endless Mode本次尝试不用大炮的模式试试。(即使是iPhone12PM那种大屏,在屏幕上点炮也太麻烦了),失败,完全不能应付红眼。
不能直接运行(因为开发者没有开放给 macOS),只能通过 playcover 运行。下图是我运行 HD 版。
优点:分辨率高,电脑上鼠标操作玉米大炮点炮方便。
缺点:iOS 版最多只有9个植物卡槽,无尽模式到后期根本没法玩。
我买的 MacBook 硬盘只有256GB,而且平时也没有使用 Windows 的需求,所以需要一个小巧的虚拟机。开始使用的是 UTM,结果发现解压后居然有900MB,而且还没有快照功能。后来使用了一个免费版的 Parallels Desktop,操作系统选择 Tiny11 Arm64 版 (精简版的 Windows 11),镜像约4GB,安装完之后约11 GB,尚可接受。
PVZ1 的资源和辅助工具可以从此处下载。
使用 Parallels Desktop 的融合模式来运行,注意图形的分辨率要设置成“缩放(最适用于旧版应用)”,而不是适用于 Retina 的高分辨率。因为 PVZ1 的分辨率只有 800*600,高了没用。
国内主机由于对Let’s Encrypt官网连接经常出现问题,因此推荐 DNS 法手动续期。特别是默认的 certbot renew
命令很容易由于网络连接问题导致失败,此时千万不要反复尝试,否则失败多次后直接封你一个星期没商量。惨痛教训。 😢
DNS验证是比较安全的方法,具体参考这篇文章。在此备份一下命令:
# certbot --manual --preferred-challenges dns certonly
然后有两个地方需要注意的,文章没提到:
第一:添加DNS时千万要仔细看清楚域名写的是什么,不是简单一个_acme-challenge 就完事了,因为可能有子域名。
第二:成功之后最好重启一下httpd服务。
这种方法每三个月都得手动操作一次,不能自动
snap 的官方全文在此处。其实也没什么特殊的,事实上就是它自动帮你安装了一个list-timers
脚本,无需手动去设置cron。
certbot --apache
该命令会自动帮你设置 conf 文件(SSL 的 conf 以及非 SSL 的重定向)
此时只能使用 webroot 模式。建议用 --webroot
时用 -w
加上具体的目录名字,例如:
certbot certonly --webroot -w /var/www/html
这里的 /var/www/html/
是你的域名对应的根目录。
然后去看一下 /etc/letsencrypt/renewal/yourdomain.com.conf
,最后几行应该是:
[renewalparams]
account = XXXXXXXX
authenticator = webroot
server = https://acme-v02.api.letsencrypt.org/directory
key_type = rsa
webroot_path = /var/www/html,
[[webroot_map]]
这样就对了。
此时可以 certbot renew --dry-run
尝试一下。确定成功才行。
注意:大部分情况下网站开启了 Cloudflare 时是允许源服务器不设置 SSL 的。但是有一种情况必须要设置:想使用 wordpress litespeed cache 爬虫插件时。
今年的目标是用最优惠的价格抢iphone12promax2部,128G版,颜色不限。
很多时候我们希望用手机投屏到电视来看视频或者玩游戏以获得更好的体验效果,但目前问题很大:
(1)直接屏幕镜像?手机必须开着屏幕,不能切换app。而且很可能耗电。
(2)DLNA(应用内投屏)?这种比较理想,因为投屏完之后手机可以切后台或者关闭都没事。但最大的问题在于:不是所有的app都支持,而且投屏的体验和原生app也不一样(例如弹幕什么的肯定没有了、一些收费的视频也不许你这样投屏)
事实上,巧用MacBook的“屏幕镜像”,效果远比手机要好。可能你不信?但真的如此。下面分三种情况来举例:
时间 | 手机 | 网络 | 结局 |
---|---|---|---|
2006.7-2008.2 | 三星 Anycall 某型号 | 🇨🇳联通CDMA | 主动淘汰 |
2008.2-2008.7 | 诺基亚某型号 | 🇨🇳移动GSM 2G | 在南京地铁丢失 |
2008.7-2009.1 | 诺基亚某型号 | 🇨🇳移动GSM 2G | 在南京火车站附近丢失 |
2009.1-2009.9 | 摩托罗拉某型号 | 🇨🇳移动GSM 2G | 在南大落入厕所损坏 |
2009.9-2011.2 | 诺基亚某型号 | 🇨🇳移动GSM 2G | 主动淘汰 |
2011.2-2013.1 | 索爱J108i | 🇨🇳移动GSM 2G | 主动淘汰 |
2013.1-2013.11 | 中兴U960s3 | 🇨🇳移动TD 3G | 主动淘汰(转卖) |
2013.11-2014.2 | 努比亚Z5mini | 🇨🇳电信CDMA 3G | 主动淘汰(转卖) |
2014.2-2015.10 | HTC New One M7 | 🇨🇳电信CDMA 3G | 主动淘汰(转卖) |
2015.10-2020.12 | iPhone 6s | 🇨🇳电信LTE 4G | 主动淘汰(官网回收) |
2020.12-今 | iPhone 12 ProMax | 🇨🇳电信5G 🇭🇰CSL 4G 🇯🇵UQ Mobile 5G |