城墙上的哀歌(6)|Brook Is Drying, When Tear Is Flowing

最近网络很慢,各种不流畅。 为了优化性能,经过一番挣扎,将wordpress的编辑器换回到“古登堡”,去掉了从前的markdown插件。经过另一番挣扎,下定决心不再使用官方的巨型插件JetPack,今后用Matomo来统计数据,用blog2Social来同步社交媒体(测试帖,不行继续换)。 平时所用的vpn——相当小众的Brook ——最近似乎有抖动的现象,几乎所有的服务器都断掉了。本来以为是软件升级的问题,但看起来事情并不那么简单,因为按照我的测试,只要更换端口就可以继续用24小时,然后阻断,需要再更换新的端口。 这种现象就和网上流传聪明的病毒总是将死亡率精确地控制在小数点后3位上一样,表明哪里有点不太对劲。但根据大家在微信群里的只言片语,似乎墙又加高了一层。 但又有什么关系呢。我们早已在体会耶利米哀歌里被围的情景。今天出门,小区已经封闭要测体温了,若没有出门条,出去之后也难得再进入。这不过是最近两周以来一点一点加强的围困而已。耶路撒冷被巴比伦围了两年才破,大概有足够的时间来写诗。 买了一个耳机,下载了一堆古典音乐,预备心灵的持久战。 带着孩子们看一个漫长的动画片——Avatar: The Last Airbender. 这个片子乃是Nickelodeon名下最有名,拍得最好的动画片之一,对于孩子们的道德教育很有意义。我们每周看两集,然后Debrief,我来为两个年幼的孩子讲解情节,并向David提出各种道德上的问题,让他们思考。 这周我们看完了第2季的大结局和第3季的开始,一个大型的反转场景。我们从Prince Zoku的角度来看待这两集: Zoku被流放,必须抓住Avatar才能回国,恢复王子的地位,这成为他的巨大心病。到了第2季最后的大决战时,Zoku的善念被自私压制,善恶之间选择帮助反派的姐姐Azula击杀了Avatar Aang,攻陷了全地唯一坚持抵抗Fire Nation超过100年的不落之城Ba Sing Se。 果然,回到Fire Nation之后,Azula将所有的功劳都归给Zoku,甚至明言是Zoku杀死了Avatar,免除了他必须抓住Avatar才能回国的难题,完全恢复了Zoku王子的地位和身份。 唯一的问题是,Avatar尽管伤重必死,但Katara从北极带来的灵泉却有起死回生的功效,终于将Aang救活过来。这瓶灵泉本来已经要用来医治Zoku脸上的疤痕,因此Zoku知道Katara大概有办法救活Aang。但Zoku舍不得到手的利益,无法坦白承认Aang或许未死,可以聪明的Azula早已猜到,于是才将Zoku杀死Avatar Aang的事情坐实,希望有一天揭穿此事,让Zoku彻底身败名裂。 我给孩子们的教训是,无论需要付出多大的代价,绝不要说谎,不要做假见证——这是十诫里明确规定的。可以预见,Zuko王子最终必然因为没有勇气揭穿Azula的谎言(因为这牵涉到他自己巨大的利益),在下一集里就丢掉如今拥有的一切美名。但是Avatar一方也犯了轻信之罪,当Azula伪装成Kyoshi武士潜入Ba Sing Se时,他们急于要离开,没有验证信息的真伪就为Azula担保,最终造成了Earth Kingdom的陷落。 一个恶名昭著的基督徒死去,不必一定要说他死前悔改了;一个好人不幸去世,也不必捕风捉影地说他是基督徒,后来又改口为慕道友,最后勉强承认参加过“查经班”。其实这样的事情很好验证,询问一下他的妻子就清楚了。

February 8, 2020 · 1 min · eddy

WordPress RSS修复

WordPress新近升级为5.0,最主要的变化是增加了所谓古登堡编辑器。这是基于html5的多媒体编辑器,直接嵌入在wp的内核之中。我一向不用最新版本,所以还是使用传统编辑器,等待进一步的发展。 不出所料,我的朋友water使用了古登堡,于是我网站上链接他的rss出现了编码问题: > This XML document is invalid, likely due to invalid characters. XML error… 解决的方法倒也简单,直接访问xml官方校验网站,输入需要校验的网站 https://flywow.net,找到错误的地方,然后修改即可。 但是,这个错误出现在一篇使用古登堡编辑的正文中,显然是新开发的编辑器有着某种微妙的bug。 我直接进入数据库,将错误的行删掉,原封不动重新录入了一遍,over。随笔记录,以备以后遇到同样的问题。

December 18, 2018 · 1 min · eddy

我的wordpress优化

wordpress据说特别慢,但是用惯了,也懒得修改了。本文介绍我对wordpress访问速度的优化。 配置 独立服务器,16G内存,4核 Intel(R) Xeon(R) CPU。 centos 7, nginx, php-fpm, mysql. 插件 (按字母顺序) Add From Server:迁移网站以后,用来导入图片。不必安装。 Akismet Anti-Spam:垃圾邮件屏蔽。 Async JavaScript:js优化工具。可以根据gtmetrix报告自动化调正参数。 Autoptimize: 页面缓存插件。和Async JavaScript配合使用,代替wp super cache和w3c。 Classic Editor:系统插件。不喜欢Gutenberg。我喜欢简洁风格。 Cloudflare: cdn Jetpack by WordPress.com:为了手机显示,不得不装。也有图片cdn的功能可以利用。 Math Captcha:防止程序自动暴力登录破解管理员账户。 Post Views Counter:用于显摆。 Redis Object Cache:mysql查询缓存。 Smush:自动图片压缩。 UpdraftPlus – Backup/Restore:自动备份插件。直接备份到google drive。 Wordfence Security:病毒防火墙。 WP 404 Auto Redirect to Similar Post:方便用户查找文章。404自动跳转相似关键字。 WP Editor.md:markdown编辑器。 WP Word Count: 统计字数。 WP-Optimize:数据库优化。 Yoast SEO:搜索引擎优化。 基本上这些插件都是我必须的,无法缩减。我不是那种为了速度,要将所有插件删掉的geek。 主题 Chronus:轻量级的杂志主题。很简单,不是太占资源。 缓存机制 使用三重缓存机制: 1. redis:数据库级别...

November 25, 2018 · 2 min · eddy

电子前线基金会

The Electronic Frontier Foundation(电子前线基金会)在互联网流行之初的1990年就成立了,今年已经快30岁了。这三十年之中,eff帮助个人和小公司打了若干官司对抗大公司和政府,保护个人的隐私。其中的各种案例,网站上都有,我就不罗嗦什么叫privacy, 什么叫free speech了。 我用eff的项目,主要是certbot,一个免费的ssl/tsl认证机器人。这个机器人是eff一个更大的项目,叫做“加密整个互联网” 的一部分,可以自动为网站配置“Let’s Encrypt”加密证书。 说到加密,10年前我曾经为公众集团开发福利彩票自动开奖系统。那时没有区块链技术,要设计一个不可修改不可抵赖不可计算不可预测的开奖协议,好像难度要大一点。不管怎么说,我们把一堆技术加邮电机箱加音乐和动画放在一起,搞了这个高科技产品,通过了专家认证,结论是“全国首创,国际先进”。实际上,也在重庆时时彩运行了多年,5分钟一期开奖,没有出任何大的问题。 后来,国家密码委选择专家组成员,重庆密码委就把我给推荐上去了。至于最后进了委员会没有,我就完全不知道了,或许是因为他们保密工作做得太好了。 花了一点时间,把网站从webhosting托管迁移到了独立服务器上。租了一台服务器,配置比较旧,内存ddr2,但是好歹有四个intel Xeon 5150 cpu, 16G内存,跑我这样几乎没有流量的小网站还是绰绰有余。 这个机器的价格和我在ipages上的托管费用已经相差不大,所以我还是老老实实自己做站长算了。 自己管理的好处在于,不是共享主机,就可以用certbot配置https://eddyemma.com了。传输用户名密码之类,以后就不是明文传输了。作为一个有二进制洁癖的程序狗,至少心情要愉快一点。为此,我把电话费卡掉了1/4,先这样对付着。Emma也自愿削减1/4电话费一个月,看看用不用得惯。 本来这种小网站,一个月多的时候也就几百次访问,装个apache就足够了。可是朝飞用国内主机用惯了,对性能有洁癖,一定要求用nginx。所以不得不硬着头皮搞了半天,算是基本把网站迁移到LEMP上。发一篇小文纪念一下。 从ipages迁移出来,想着sitelock的保护和cdn加速丢掉可惜,于是顺便查了一下sitelock的评论,似乎风评很不好。特别有意思的是,发现我之前用的几个托管网站,bluehost, ipages都是一个叫做EIG的集团公司下属的品牌。这个EIG公司一共有83多个网络托管公司品牌,有4百多万个网站客户。 但是,大多数托管服务在站长们的打分中,都不高。bluehost-3.2,ipages-1.7,等等。 不由得想起Priceline.com下面的priceline,booking.com,kayak等购票网站,其实也是一家。不过是创造一种竞争的样子而已,骨子里总是想着垄断的。 仔细看了一下,也就释然了。在wordpress上装了一个wordfence插件,以后自己负责安全问题了。 顺便就把域名迁移到google的domains.google上去了,因为某位大大说,不要把托管网站和域名注册放在一起,白送一年也不要接受,而应该找专门的域名注册公司注册域名。好吧,我就直接把域名迁移到google去,他家的服务是免费隐私保护,加上100个网站邮箱自动转发到gmail上。从前注册余下的时间google也继续算,只是收取另买1年域名的费用。 等到下周域名迁移好了,把各种dns配好之后,网站就可以正常运行一段时间了。水哥的网站也迁过来当邻居,免得他继续在超卖的共享vps上受折磨。 上一篇”wire“下面有人留言,说wire也被封锁了,问怎么办。没办法,只有两种姿势可以解决——肉翻和网翻。当然,用微信,不翻也是一策。 顺便说一下,既然用了https,给我留言也就安全了。所有的留言都是需要审查才能放出来的,所以留言的时候加上标签“#私聊”,我就不会审核通过了。这样大概什么都可以谈。

February 14, 2018 · 1 min · eddy

水哥上线了!

以前我们共享一个托管服务器,在bluehost.com。那时互联网江湖没有这么险恶,我们的网站运行了好几年都没有出什么问题。 终于有一天bluehost上的站点不能访问了。查了一下,原来是用了google的服务。所以我去掉google的服务,继续使用。又有一天,站点有不能访问了。这次是IP段被封了,我们不幸中招。所以我们买了独立IP,继续顽强地上线。然后我就被代码注入了,自己写个脚本清理一遍,以后也没有什么问题了。 在此期间,水哥专攻各种主题和插件,已经把他的网站打扮成花枝招展的模样。他的内容渐渐增多,我也没有继续花费太多时间维护。 后来Sean也入伙了,我们两个程序员拖着水哥一个重庆建筑企业会计中最会写程序的,又运行了一年。到了年底升级的时候,大家投票,2.5:0.5,同意整体迁移到inmotion上去。这是我们噩梦的开始。 inmotion似乎太过专业了,速度快,但是对维护人员的要求相当高。才不到一个月,我们就收到罚单,网站被隔离,因为有安全漏洞被入侵了。出问题的站点是水哥了。 我不知道如何修改,直接由自己恢复了运行。过了几天,又被隔离了。那时我正在亚特兰大上课,没有时间处理。再过几天,inmotion就停止为我们服务了。估计我是中招了,没有仔细读用户协议,说不定inmotion就是用这种方式来挣钱了。两年的托管费算是白交了。 于是我另找了ipages上线。迁移的时候有各种各样的麻烦,大概还是我技术落伍的缘故,好歹上线了,但是jatpack工作不太正常,permalinks也不能工作,以前的posts,凡是带有中文名字的,最终都不能正确显示,而且图片也生成了几倍的冗余,暂时不想清理。 所以我给Sean和水哥各自买了一个vps。但是水哥的网站还是需要我来上线: 先安装apache2, php, mysql。debian有一个专门的包叫做wordpress,安装一下就什么都有了(mysql和phpmyadmin例外)。 然后,将所有文件拷到网站目录下。 建立数据库。把备份的sql脚本恢复回去。脚本中间有几个表编码不对,把utf8_52_ci改为utf8_ci,重新恢复。 然后修改wp-config.php里的各种参数。启动后跳到install.php页面了,原来表头参数没有修改一致。 修改后再来一遍,进入了wp-admin。升级各种插件不成功,要求输入ftp账户信息。看来是目录缺少写权限。 用ps aux |egrep ‘apache’找到用户名,把所有目录的权限转交给apache用户。于是一切成功了。 不过,permalimks还是有问题,无法处理中文。不过考虑到这是一个实际上线的站点,就不用水哥的网站做实验了。 给水哥发消息,发送管理员密码,就等着回家他请我吃饭了。

October 23, 2017 · 1 min · eddy

NextGen

神说了一次、两次,我都听见:就是能力都属乎 神。 ×××××××××××× 开始试用nextGen以及相关的插件。但是网络还是慢,不能传大的照片。 于是想了一招,将已经上传的照片迁移一下。结果是将所有thumb和小分辨率的图片全部手工删除了。 Shane 说,无图无真相,翻墙也一样。 抱歉。 ×××××××××××××××× 主日到了,加油!

November 14, 2010 · 1 min · eddy

增加HitCount

每天进步一点。慢慢装修网站。 采用最简单的simplecount. 不用太复杂的单页计数器。 突然想起,1999年我自己还写过类似的计数器的。现在沦落到用别人写的东东了。 呵呵!

November 9, 2010 · 1 min · eddy