肇鑫的日常博客

肇鑫 / Owen Zhao

独立开发者,主要开发 iOS、watchOS、macOS 应用。

目前在维护 SleepTapRooster Time,以及 Markdown Writer 相关工具。

最新文章

不建议购买混合多口的PD快充

技术

由于之前的事情,iPad Pro 9.7无法充电之后发生的事,这段时间我使用过多款混合多口(1A1C,2A1C)PD快充充电器。最终,我把混合多口的充电器都退货了,选择了单口的充电器。

充电器的选择,多口VS单口

选择多口的充电器,不仅可以在插排上节约多个接口,并且旅行时,也可以少带几个充电器,减轻重量,这也是为什么大家都喜欢选择多口的充电器。

我以前也买过多口的充电器,比如紫米的18W双A口充电器,就很好用。因此,在选择C口PD快充充电器的时候,我最初也是选择了多口的。结果2A1C的63W绿巨能充电器和1A1C的30W omthing充电器,都让我失望了。

我们先来了解一个概念——打嗝。

打嗝是支持多协议的充电器,在与设备连接,匹配最佳协议时,不能第一时间获得最佳协议的而产生的多次匹配充电协议的状态。其表现是充电设备显示瞬间断电并再次充电。

比如,一款充电器,支持5V1A,5V2A,Apple 2.4A,PD快充18W,那么它在与苹果的iPhone连接时,可能一开始并没有直接匹配到PD快充18W,而是使用了5V2A连接上了。之后,它又检测到设备实际上支持PD快充的,最终采用PD快充18W进行充电。

这个过程,表现在iPhone上,就是一开始发出充电的嘟的一声,然后很短的时间内,又发出嘟的一声。

小结

打嗝本来是一种设计缺陷。但是由于它过于普遍,居然被网友们认为是正常的,更有甚者,认为只有打嗝了,出了两声嘟,才是真正的PD快充,只有一声就是快充不成功。

这种错误观点甚至造成了在技术进步之后,有些充电器,直接一次就连上PD快充了,还要在产品的购买的页面额外注明,一声还是两声嘟不能作为PD快充是否成功的证据,唯一的证明是在0%充电,30分钟能够充50%就是PD快充。

混合多口

以前的多口,都是多个A口,所以是属于单一多口。但是现在随着PD快充的普及,目前的多口充电器,多口多是混合多口。即又有A口,又有C口。

但是A口和C口不是简单的外观不同。实际上,混合多口充电器,在技术的复杂性上,要高于单一多口。而每个接口本身又是支持多协议的,厂家为了成本,多口之间肯定是有共享的电路,而不是设计两套单独的电路。这也就造成了,混合多口之间,是互相干扰的,最明显的就是,单口输出的时候,充电器的上限高于多口同时输出。比如63W的绿巨能充电器,多口同时使用,最高输出只有45W。而30W的omthing充电器,多口同时使用,最高也只有25W。

这种干扰还体现在当一个口在充电时,如果你再使用另一个口充电,前面充电的会瞬间断流,并重新匹配协议。

这些问题,在我之前使用的单一双A口充电器的时候,都没有出现过。

更严重的断流问题

特别的,我在使用iPhone 6s Plus通过A口充电的时候,我还发现。这些混合多口的充电器,在单独通过A口充电的时候,会随机出现断流的情况,特别的,在小电流的时候尤其明显。比如这两款充电器,在手机充电99%以上的时候,都不同程度地出现了瞬间断流的问题。特别的,如果C口同时还有设备在充电,这种瞬间断流会更加频繁。

结论

基于上面的理由,我建议大家在购买PD快充的时候,尽量选择单口的充电器。单口的充电器不仅可以达到标称的上限,并且由于设计更为精简,出现打嗝的几率更小,更不会有混合多口充电器互相干扰的问题。

此外,如果还是要选多口的产品,建议你直接购买单一多口的充电器,即多个C的PD快充,而不要购买混合多口的。

因为即便是不支持PD快充的iPhone,也可以通过C转L的充电线,使用支持Apple 2.4A协议的充电器进行快速充电。

不过有一点要注意。即便你的充电器支持Apple 2.4A的协议,也需要C转L线同时支持也才可以。我以前以为不需要线的配合,后来我遇到了有不支持的线,导致虽然充电器支持,也还是无法使用Apple 2.4A快充的情况。

其它

iPad Pro 9.7无法充电之后发生的事

绿巨能1C2A 63w充电器退货历险记,淘宝客服的套路与解法

上文iPad Pro维修篇中提到,11月22日,我参加充电头的团购,买了绿巨能1C2A的63w充电器。这个充电器我是26号收到的。一开始我对于它是很满意的。它的3个口都支持Apple 2.4A协议,因此都能给我的苹果设备快速充电。

不过,但是没有测试几个口同时充电,都是单独充的。即便这样,我还是发现,它的A口在充电快满的时候,会有断流的现象。表现为,iPhone屏幕突然亮了,然后发出嘟的声响,就好像你重新将电源线连上一样。不过,当时的断流不频繁,大概几十分钟一次,并且当iPhone完全充电之后,就没有这个问题。

所以,我还是确认了付款,然后在评论里将其注明,并询问其它人是否有同样的问题。

昨天,12月1号,我用C口给iPad Pro充电的同时,用A口iPhone 6s Plus充电。结果iPhone出现断流的现象。并且,这次十分频繁,大概几分钟就一次。于是我通过旺旺联系客服,当时是晚上7点刚过,客服说负责售后的下班了。让我第二天10点半左右在重新联络。

今天上午十点半,我和客服联络,让转售后。我找售后的主要原因是,淘宝的售后页面只有退款(无需退货),和退货+退款两个选项,没有换货的选项。因为当时我原本还是要换货的,毕竟团购的价格便宜,3个口也很有用。

但是售后客服提供的方案很不让我满意。她让我自己把充电器给快递过去,然后她收到货之后给我换。这我当然不能接受,我说必须走淘宝。因为淘宝没有记录的话,容易说不清楚。她说,你的淘宝不是没有换货的选项吗?我说,是没有选项,但是你可以添加一个啊。她说她没有权限设置。我说,那我就只能选退货了。

结果她和我说,我已经超过退货时间了。我怒了!我26号才收到的货啊。欺负我不懂,按照下订单的时间算日期吗?我下了订单4天之后才收到的货!结果她又故意拖时间不回复,我只好祭出了淘宝小二大法。小二一出,诸邪退散!

忽悠客户,说过了退货时间

刚刚还是说不能换货。这次她主动提出来,我可以一边退货,然后一边下一个新订单。两个流程一起走。可是这里有一个问题,我的第一订单,是团购买的,价格比较低,而新订单价格要高不少,需要客服修改价格为第一单的价格。这样,她退我钱,我买新的,相当于换货。

结果客服又来幺蛾子了。说她改不了订单的金额,需要订单完成之后,私下里退给我差价。我说这不行啊。我别处买东西,客服都能改价格,你怎么就不行呢?

新旧订单差价问题

这时客服又给我出了个馊主意。她说,要不然你现在不要退货,你等新订单的到货之后,发现没问题了,再申请新订单的退货,然后把旧的这个退回来。这样直接退你新的订单的钱,就没有差额了。

馊主意

我说,那可不行。如果你到时候举报我以旧换新怎么办?再说了,如果新的寄过来,也还是有问题,到时候我两个都要退,结果有一个过期了,不能退,要怎么半?

最后,客服和我说,那你就只退货吧。

最终退货

总结

以下是我遇到的套路。

截屏2019-12-02下午11.23.30

对策总结起来就是:不要相信私下的任何承诺,无论看起来你是占了便宜还是吃了亏,只相信淘宝的流程和证据。该拒绝就拒绝,不要不好意思。

最后,要感谢一下淘宝的退货的流程。现在淘宝退货可以选择官方退货,菜鸟裹裹的人2小时之内上门,你不需要填写任何快递单,也不需要给快递员任何钱。直接让他检查一下商品就可以了。很方便。而且这个卖家送了运费险。刚好12元。我也不用支付任何费用,直接就显示运费险自动扣除了。

这个是我这次交易最满意的部分。

相关

iPad Pro维修篇

iOS/iPadOS设备充电全面总结

iOS/iPadOS设备充电全面总结

技术

迄今为止,苹果的iOS/iPadOS设备,共支持4种有线充电方式,2种无线充电方式。

  • 早于iPhone 6的iPhone,仅支持5w充电。
  • iPhone 6开始,iPhone都支持12w充电。
  • iPhone 8开始,iPhone支持PD快充18w,无线充电5w/7.5w。
  • iPad支持10w充电和12w充电。iPad Pro 10.5开始支持PD快充。

只要支持Apple 2.4A协议,充电器就可以支持苹果的快充功能,无论原本的接口是USB-C,还是USB-A。这一点,在网上没有明确的说法,但是充电头的评测有检测到有支持Apple 2.4A协议的USB-C接口的充电器,而在我实际使用的时候,也发现,USB-C转Lightning接口的确也可以为iPad Pro 9.7快速充电。

关于不在充电

当iOS设备在充电,但是充电速率过低时(远小于5w),设备会提示不在充电。但是此时设备还是在以极慢的速度充电。这个“不在充电”其实是在提示你,充电遇到了速度过低的问题,但是同时连接是成功的。

5W充电

一些不兼容苹果协议的充电设备,比如一些10w甚至更高的PD充电器,连接到最高支持Apple 2.4A协议的苹果设备时,只能以5w的速度充电。因此,如果你有PD快充的设备,没有支持Apple 2.4A的协议时,可以买一些比较便宜的PD快充充电器。但如果你同时还有其它的旧设备,选购的时候就得买支持Apple 2.4A协议的。遗憾的是,这个协议经常不被厂家标注,比较简单的办法是查询充电头网站,对于该充电器的评测。如果有支持该协议,充电头的评测都会单独说明。

相关

iPad Pro维修篇

绿巨能1C2A 63w充电器退货历险记,淘宝客服的套路与解法

以前的固话是家里停电也能用的

随笔

看老片《刑警队长》。因为剧集换过地址,字幕很少。有段剧情是,刑警队长家里停电了,他老婆用固话给他打电话问电本放哪里了。结果看到一条弹幕,说这剧情也太假了,家里没电了还能打电话。

我还想,这位是没用过固话吧。固话的电是电话线里的,和家里的电不是同一个线路啊。

结果这时又飘过来一个弹幕,说其实固话里是有电池的。后面又来一个,说以前的电话是停电也可以打的。

我产生了两个想法:

  1. 后面说的那两种固话我都没用过。现在的固话没电了就不能用,那防灾的效果是不是会差很多?
  2. 年轻人经常觉得父辈在有些事情上不如自己,从而产生一些评价负面的想法。但是其实,只是因为他们累计了好多经验,现在已经过时了。这些经验虽然并非完全无用,但是也成为了新学习的阻碍。年轻人觉得自己懂得多,无非是自己见识少,学习阻碍小罢了。

《刑警队长》说是老片,但是其实也不是特别老。因为这个片是2018年的飞天奖的现实题材优秀电视剧大奖之一。但剧集审批号是2015年的。而讲述的内容从1995年开始。

水星路由D268G评测

评测

家里的网件R8000(固件版本:1.0.4.46)最近遇到了两个问题:

  1. 荣耀手机可以连无线,但是无法上网。
  2. 小米扫地机对应的米家应用提示上传速度过低地图无法刷新。之后升级固件就总是失败。

最终是通过连接第二个路由开启2.4G解决的。但是两个路由总觉得累赘。刚好赶上双十一,就打算换个路由。

R8000是wave1的路由,不支持MU-MIMO,于是特意选了支持MU-MIMO,并且有4根天线的水星D268G。

信号和网速

D268G的设置很简单,默认是2.4G与5G频段合二为一,IPV6关闭。连我的iMac 5K信号要比R8000好。

D268G 正常

对比一下R8000。

R8000 日常

从面板数据上,两者的差距还挺大的。不过局域网复制文件的时候,二者的峰值差不多,都是70MB/s。D268G的均值更高(差不多高20MB/s),也更稳定。我本来是要将其留下的。

稳定性

但是D268G实在太不稳定了。用一段时间,5G就会连不上,使用Mac的工具查看,噪音居然和路由发出的信号一样大。重启路由会恢复正常,但是几个小时之后又会这样。

D268G 故障

我尝试修改配置解决这个问题,修改过的配置包括:

  1. 开启与关闭IPV6
  2. 分离与融合2.4G和5G的热点
  3. 延长DHCP保持时间
  4. 设为静态IP
  5. 修改热点频段,从自动改为手动
  6. 打开与关闭MU-MIMO
  7. 改变天线方向
  8. 请求水星客服在线帮助
  9. 联系京东更换路由

以上方法都试过,还是没能解决这个问题。所以最终只好退货。

我的猜想

关于5G的稳定性,我猜想有三种可能:

  1. 当前固件存在故障,长时间运行会不稳定。
  2. MTK方案与苹果设备存在兼容问题。在拆解评测里,作者有提到为削减成本,水星采用的是单独定制的精简之后的5G芯片。
  3. 5G芯片过热导致的。同样是上面的拆解评测,有提到只有2.4G芯片有散热片,5G的没有。而这两颗芯片其实是相同型号的。

结尾

最终我退掉了这款路由,不过它的信号和网速还是很不错的。可以看到wave2的路由对于上一代wave1,存在巨大的优势。当然,也可能是它的天线比R8000的更长的缘故。

目前我降级了R8000的固件到旧版,解决了上面提到的问题。不过降级固件不是长久之计,我还在寻觅更合适的路由。

为MWeb添加推特卡片的支持

技术

当我们分享链接到推特时,如果链接对应的网站支持推特卡片。推特就会生成相应的卡片,效果如下图,这比单纯的文字加链接的效果要好很多。

twitter_card_summary_larget_image

特别提示:本文是对于MWeb的深度定制,建议你看完全文之后,再决定是否动手。

新建一个网站

强烈建议你新建一个网站用来练手。右键MWeb的库,选择新建分类,然后选择做为站点,选择一个主题(我们以octopress主题为例),然后点右侧的编辑,选择“复制当前主题到新主题”。这样做的好处是,你对于主题的修改,都是在复制后的主题进行的,一旦出现问题,删掉这个主题就可以了,不会影响到已有的主题。

copy_theme_to_modify

自定义扩展

双击进入主题的文件夹,你会看到一个叫extensions的文件夹。双击进入这个文件夹。里面一般会有一个或者两个文件,分别叫site.jsondocument.json。这两个文件对应了MWeb设置中的站点扩展和文档扩展。

extension_preferences

虽然也可以在MWeb中直接添加站点扩展和分享扩展。但是那个添加的方式MWeb应该是做错了。添加的内容成了全局的,一旦添加,所有的站点就都有了,而不是指定的站点才有。
直接编辑这两个文件,生成的扩展,是只针对当前主题对应的站点的,不会引起混乱。

站点扩展

用文本编辑器打开site.json。复制下面的内容,插入到文件的第二行。

{
    "title":"twitter:site",
    "variableName":"twitter:site",
    "inputFieldHeight":22,
    "exampleText":"@owenzhao"
},
{
    "title":"twitter:creator",
    "variableName":"twitter:creator",
    "inputFieldHeight":22,
    "exampleText":"@owenzhao"
},
{
    "title":"og:image",
    "variableName":"og:image",
    "inputFieldHeight":50,
    "exampleText":"图片路径或地址"
},

文档扩展

打开document.json文件。(如果不存在,可以复制一份site.json,然后改名为document.json,删除掉第一行左中括号和最后一行又中括行中间的内容。)复制下面的内容,插入到文件的第二行。

{
    "title":"og:description",
    "variableName":"og:description",
    "inputFieldHeight":240,
    "exampleText":"文章摘要"
}

如果原本document.json中就有内容,上面代码最后的}之后需要加一个英文的逗号。

为了方便 ,我将og:image属性放在了站点扩展,这样只需指定一张图片,就可以一直使用了。
如果你想要每个文章都单独指定一张图片,可以将og:image那一段大括号的内容,从站点扩展,移动到文档扩展。
一旦og:image放在了文档扩展,你就必须每个文件都单独指定一张图片。不然,生成网站的时候就会遇到错误。

填写内容

打开MWeb,添加必要的属性。

站点扩展

fill_site_extensions

  • twitter:site,是你站点对应的推特,如果没有,就填成你自己的。
  • twitter:creator,是作者,也就是你自己的推特。
  • og:image,是卡片的题图。需要把它放在主题的asset/img/下。建议图片大小不要小于1600x900。
    • 如果你的是在文档中指定的,那就是是media/开头的地址。

注意:站点扩展,每个站点都需要单独设置。

文档扩展

打开你要修改的文章,点开最右侧的ℹ️标志,粘贴一段文字,或者编写文档摘要到og:description文本框即可。

修改模版

之后就是修改模板了。一个MWeb生成的模版,大致可以分成headbodyfooter三部分。

  • head对应,主题中的header.html文件。
  • body,根据性质的不同,分别对应主题中的post.htmlpage.htmlcategory.htmlarchives.html文件。
  • footer就对应footer.html

根据推特的要求,它的信息,必须写在html文件的head的meta中,这个是在模版的header.html中。这里,我们遇到了一个较大的困难。我们的一部分内容,是只有在post.html才可以得到。header.html无法取到相应的数据。

我的解决方案是修改header.html文件,将/head及之后的内容移动到对应body的部分,即需要移动内容到post.htmlpage.htmlcategory.htmlarchives.html文件中。

注意:如果你使用的是其他的主题,可能对应body的不是我写的这几个文件,有可能是别的文件,或者甚至更多。但修改的原理是相同的。

删减head.html

用文本编辑器打开head.html。剪切</header>以及以后的内容,我这里对应的是第42行开始。

修改其他模版文件

将剪切的内容粘贴到post.htmlpage.htmlcategory.htmlarchives.html文件的顶部。

插入推特信息

将下面的代码,插入到post.htmlpage.html的顶部。另外两个文件不必插入。

<!--Twitter Meta-->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="{{ext_twitter:site}}" />
<meta name="twitter:creator" content="{{ext_twitter:creator}}" />
<meta name="twitter:title" content="{{post.title}}" />
<meta property="og:url" content="{{siteURL}}{{post.url}}" />
<meta property="og:title" content="{{pageTitle}}" />
<meta property="og:description" content="{{post.ext_og:description}}" />
<meta property="og:image" content="{{siteURL}}{{ext_og:image}}" />

完成

保存所有文件,在MWeb中的站点,选择清空并重新生成网站,然后同步网站到你的服务器就可以了。

以后,你只要分享任意该网站的文章链接到推特,就可以同步生成推特卡片了。

参考资料

网件R8000路由刷第三方固件,从入门到放弃

技术Openwrt

使用这个路由已经4年多了,期间多次尝试过第三方固件。前几次都是因为刷完固件之后,无线网掉速严重,最后又刷回了官方的。

网件R8000这个路由还是很不错的。当年,还在小伙伴们信誓旦旦地说房子装修一定要埋百兆有线,因为无线路由的文件复制速度只有几MB/s的时候。我已经用上了苹果的时光胶囊,我的时光胶囊是802.11n版本的,内网复制文件速度大概20MB/s左右。从时光胶囊换成网件R8000,速度变成了50-60MB/s。

上个月下旬,网件发布了R8000的新固件。令人意外的是,除了常规的错误修正外,网件还移除了R8000原本自带的多项功能。

netgear_r8000_firmware_1.0.4.46

去功能这件事,让我对于网件的好感大减。不过好在我也可以不升级啊。

也许是多事之秋吧。几天之后我就遇到了印象中从来没有过的无法登录路由管理界面的问题,我最终不得不关掉了电源重开机。

这使得我不得不重新面对这个更新。“错误修正:修正了重负载下的稳定性问题。”也许我需要的就是这个。从心的我安装了新的更新。

不过,此时我的内心已经再次对于第三方固件蠢蠢欲动了。

为什么要使用第三方固件?

对于我有两大理由:SS和去广告。虽然我已经在每个设备都安装了SS,但是如果每次创建一个虚拟机,都需要装一次SS也是挺麻烦的事情。至于去广告,因为最新版macOS的Safari已经没法通过浏览器完美去广告了。我现在使用的收费的AdGuard。因此,我对于新的去广告的方式总是保持开放态度。

选择哪个第三方固件?

第三方的固件有很多,最大的是DD-WRT、OpenWRT和Merlin。我的选择的OpenWRT。

安装OpenWRT

上贼船总是比下贼船要容易的。按照这里的提示就能按照OpenWRT了。简述步骤如下:

备份旧版并恢复到出厂

  1. 现在来到这个界面,备份当前固件的设置。
  2. 然后选择恢复到出厂。

netgear_r8000_backup_and_restore_factory

安装OpenWRT固件

重新进入路由后,选择左侧升级路由,上传你下好的OpenWRT固件,等待刷完之后。输入192.168.1.1。

设定一个管理员密码之后,就可以使用新固件了。

如果你看到这里还不知道我在说什么。那么我强烈建议你使用原厂固件。不要折腾了。

失败的尝试

用了两天的时间,我尝试了我曾经想用的SS和去广告功能。结果都不令人满意。在路由上开启SS的最大问题就是不够灵活,每次要修改都需要通过路由的设置界面。而去广告就更别提了,开了去广告之后,我的YouTube的首页几乎处于无法打开的状态。也许是路由的性能不够强吧。

但是以上两点并不是我放弃第三方固件的根本原因。因为,就算这两个功能都不够好用,也顶多没有额外的加分。实际上,第三方的路由还是有好处的。比如我使用原厂固件的时候,如果iOS开小火箭,访问微博的时候,图片和视频加载就会很慢。但是使用第三方固件没有这个问题。

导致我不得不返回原厂的原因是,无线的覆盖出现了问题。使用原厂路由的时候,我家里的任何角落都是有信号的。但是换成了第三方的固件之后,我躺在床上的时候,iPad Pro的网就不稳定了,经常断流。我必须刷回原厂了。

艰难的返回原厂之路

tftp刷机大法

OpenWRT的网站似乎不是很鼓励刷回原厂,它的WiKi上没提如何刷回原厂。论坛中帖子提到刷原厂,也只是提到网件官方的一个使用tftp刷机的办法,针对的是变砖的机器。如果你是Mac用户,还需要同时参考这篇

简述一下这个方法:

  1. 通过有线连接路由,手动指定静态ip。
  2. 移除与路由相连的其它设备的网线,只留刷机的这台机器的。
  3. 关路由,等10秒,重开路由。观察路由上的电源灯,当灯变成黄色时(也称琥珀色,可能是常亮也可能是闪烁,根据型号的不同),开始刷机。

我反复尝试了很多次这个方法,都没成功。路由始终能ping通,但是就是无法传数据上去。

迂回之路,使用DD-WRT

OpenWRT的管理程序,不能够刷机网件原厂的固件,提示格式不对。但是DD-WRT的固件可以。而OpenWRT的固件,可以通过DD-WRT的升级固件,转成DD-WRT。于是我有了一个大胆的想法。

  1. 重置OpenWRT固件。(重置之前先备份,万一你没成功只能回来呢?)
  2. 升级固件,选择下好的DD-WRT升级固件
  3. 多等待一些时间。保守估计5分钟,怕不保险可以等10分钟。清空浏览器的缓存,输入192.168.1.1。

注意:这里必须清空浏览器的缓存。不然无法看到DD-WRT的管理界面。只能看到OpenWRT的管理界面说连不上。

进入管理界面,重置设置。然后刷新网件原厂的固件,再重置,再恢复一开始的备份,就一切恢复原状了。

关于刷机的一些额外说明

每次刷机的步骤是:

  1. 备份旧固件设置。
  2. 重置旧固件到出厂。
  3. 刷新新固件。
  4. 重置新固件到出厂。
  5. 开始使用。

每次都额外的重置固件,原因是怕有残余的设置干扰。

此外,如果你忘记了固件的密码,无法登录路由。可以找一个牙签,捅住路由电源按钮旁边的复位开关,一般15秒就可以了。

R8000的5G热点1的性能问题

如果你单独使用R8000每个热点的话,你会发现5G的热点1,即对应数字40左右的那个,性能会比149左右的性能要差。5G热点1有时最高只能开到40Mhz的带宽,而不能想5G热点2那样开到80Mhz的带宽。

解决的办法很简单,将频段的国家从中国或者其它的设置,改成美国,然后点击应用就可以了。

参考资料