Hello World https://blog.jinwei.me Freedom is my birth right and I shall have it. The One Device: Experience of Pixel 2 — Hello World The One Device: Experience of Pixel 2¶ Publish Date:2017-12-12 ol{margin:0;padding:0}table td,table th{padding:0}.c0{color:#404040;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:12pt;font-family:"Times New Roman";font-style:normal}.c9{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:11pt;font-family:"Arial";font-style:normal}.c5{-webkit-text-decoration-skip:none;color:#333333;font-weight:400;text-decoration:underline;text-decoration-skip-ink:none;font-size:12pt;font-family:"Times New Roman"}.c1{padding-top:0pt;padding-bottom:0pt;line-height:1.15;orphans:2;widows:2;text-align:center}.c3{padding-top:0pt;padding-bottom:0pt;line-height:1.15;orphans:2;widows:2;text-align:left}.c12{padding-top:0pt;padding-bottom:11pt;line-height:1.15;orphans:2;widows:2;text-align:left}.c7{font-size:12pt;font-family:"Times New Roman";color:#404040;font-weight:400}.c6{font-size:12pt;font-family:"Times New Roman";color:#ff0000;font-weight:700}.c10{text-decoration:none;vertical-align:baseline;font-style:italic}.c11{max-width:451.4pt;padding:72pt 72pt 72pt 72pt}.c8{color:inherit;text-decoration:inherit}.c4{height:11pt}.c2{background-color:#ffffff}.title{padding-top:0pt;color:#000000;font-size:26pt;padding-bottom:3pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.subtitle{padding-top:0pt;color:#666666;font-size:15pt;padding-bottom:16pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}li{color:#000000;font-size:11pt;font-family:"Arial"}p{margin:0;color:#000000;font-size:11pt;font-family:"Arial"}h1{padding-top:20pt;color:#000000;font-size:20pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h2{padding-top:18pt;color:#000000;font-size:16pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h3{padding-top:16pt;color:#434343;font-size:14pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h4{padding-top:14pt;color:#666666;font-size:12pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h5{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h6{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;font-style:italic;orphans:2;widows:2;text-align:left}标题模仿自 The One Device: The Secret History of the iPhoneGoogle Pixel 2, 2017年我买过最贵的电子产品,自从我使用智能手机以来第一次用上所谓的「亲儿子」。目前使用Pixel 2已经超过了一周,感觉良好。这篇文章不会是Pixel 2的开箱文/评测文,同类型的文章网络上太多了。我将结合这些年来使用Android的感受顺便结合Pixel 2来聊聊自己的一些看法。自从2011年购买第一款Android智能手机(中兴X876)到现在,已经6年过去了。Android版本号也已从当时的Android 2.1来到了Android 8.1。6年来用过许多款Android手机,绝大多数都是中低端国产机,预装的操作系统都是OEM厂商「魔改」之后的Android系统。从Android 2.1到Android 8.1,几乎每一个大版本的Android系统都用过挺长的时间。我的感受是,这些年来Android阵营至少在操作系统本身是逐渐变好、向着正确的方向发展的。(这里我指的原生的Android系统)。在这6年之间断断续续接触过一些iOS设备。然而对于iOS这些年的发展我却持谨慎保守的态度来评价。纯个人观点,不是非常喜欢iOS最近一些版本的发展方向/交互设计。为什么买Pixel 2呢?在这之前用的是OnePlus 5,再往前是Moto X 2014。OnePlus还算是国产手机中比较喜欢的品牌。唯一的原因是自带的氢/氧OS还算是比较接近原生的Android系统,在不刷机的情况下就能得到不错的体验。Moto X 2014是2015年5月入手的,今年6月纠结了很久是买Pixel一代还是OnePlus 5的时候选择了后者,带有一种过渡的心态。在使用OnePlus 5三个月后,Pixel 2发布了。在十月底的时候,下单购买了Pixel 2。购买Pixel 2的过程还挺曲折的。一开始是10月16号下单了Pixel 2 XL 64GB的版本。但是当时无货,要等到10月27号发货。于是中间我就有了10多天的等待期。刚好在这期间,世界各地第一批购买Pixel 2 XL的用户纷纷拿到了自己的手机,然后在使用过程中爆出了各种品控的问题(主要集中在屏幕)。于是我在10月24日取消了订单,重新购买了Pixel 2 128GB的版本(当时64GB无货)。经过了漫长的等待,在12月3日终于到手。期间还被海关收取了不小的关税。Google Home Mini也没了。一周用下来,我对Pixel 2满意吗?我认为90%是满意的。和之前使用的OnePlus 5相比,Pixel 2只有2700mAh的电池。以我工作日非常轻度的使用来看,早上9:30左右100%的电量出门,到下午19:00的时候基本只有50%的电量剩余。之前OnePlus 5基本能剩余70%。(工作日的白天一般情况下我很少用手机)。不过基本上这也不算什么问题,不出意外的情况下,每天肯定是能在手机没电之前到家的。关于正面设计。2017年以来,自从Samsung S8系列,小米Mix 2,iPhone X等手机大力推销「全面屏」的概念以来,现在出一款新手机如果屏占比太低似乎都拿不出手。但是市场上也有一些例外。比如最近推出的Razer Phone,其正面也是和Pixel 2一样有着「巨大」的「额头」与「下巴」。Google在推出Pixel 2的同时推出了Pixel 2 XL。当Pixel 2和Pixel 2 XL以正面同时摆在一起的时候,纯粹从外观上看,毫无疑问我相信绝大部分用户会选择Pixel 2 XL,毕竟我自己一开始也选择了Pixel 2 XL。在一周的使用过程中,我认为其实在99%的情况下,是不会刻意注意到的Pixel 2的巨大边框的。正如部分iPhone X用户所说,在绝大部分使用情况下不会很刻意地注意到「刘海」。所以对于Pixel 2的正面设计也还算是可以接受的。没有双卡。我觉得这倒是有些一厢情愿了。我倒是觉得「双卡双待」是国产手机厂商会经常拿来销售的一个卖点。而Google/Apple们表示,「We don’t care」。说到对于Pixel 2特别满意的地方,我觉得排在第一位的绝对是摄像头。但并不是因为Pixel 2的摄像头获得了DxOMark目前授予智能手机的98分最高得分(当然Pixel 2的摄像头的成像效果确实很棒),而是因为,单摄像头的设计,相比目前市面上所有的双摄像头设计,实在是太好看了!可以这么说,目前市面上所有的双摄像头的智能手机的背面设计,都非常丑。没有之一。还有一些细节。刚拿到手机的时候,提示有系统更新。但是在手机上使用了各种科学上网姿势都不能把OTA包下载到手机上。查看log发现是有个域名连接不上。虽然我90%肯定应该是我的网络问题,但是没办法,最终使用手工刷OTA包的方式更新了系统。至于外设,一直非常喜欢dbrand的skins。于是这次购买了一套。效果如下(实物还在路上),算是满足了只有Pixel 2 XL有黑白配色,Pixel 2没有的缺憾。另外原本还想购买dbrand Grip的保护壳,但是要2018年3月份才发货,于是换了rhinoshield。因为我实在担心哪一天不小心,这么贵的手机就被摔坏了。不过当Pixel 2套上rhinoshield的保护壳之后,手感顿时大了好大一圈。(还有几点琐碎的东西。比如微信支付居然不支持指纹(。估计支付宝也是不行的吧。另外在4G的支持方面,在上海之内移动4G没啥问题。至于Pixel 2自带的一些花哨的功能,比如Active Edge (挤压边缘呼出Google Assistant)、Now Playing (音乐识别)等功能,其实平时我都是关闭的。当环境中有音乐的时候,打开Google Assistant,默认就会提示"What's this song?"。识别率的话,只能说比较玄学。有时候有些非常冷门的都能准确识别,有时候很热门的却不行。另一方面大概也和环境音的噪音情况有关吧。至于指纹传感器在背部的设计,也挺容易适应的。总结来说,我对于Pixel 2还是满意的。至于是否推荐购买就见仁见智了。毕竟这价格也不便宜。但是如果你追求原生Android的体验又不想太折腾,我觉得还是一个不错的选择。 Powered by Powered by CloudflareCloudflare Hosted on Hosted on GitHubGitHub Made w/Made w/❤❤ 2017-12-12 https://blog.jinwei.me/_posts/2017/12/pixel.html https://blog.jinwei.me/_posts/2017/12/pixel.html 2017观影记录 — Hello World 2017观影记录¶ Publish Date:2017-12-30 2017年马上就结束了。掐指一算,2017年看了好多电影。包括线上和线下电影院的。 线下电影院观影记录(按时间顺序,以中国大陆上映时的片名为准): 星球大战外传:侠盗一号 (Rogue One: A Star Wars Story) 太空旅客 (Passengers) 降临 (Arrival) 极限特工:终极回归 (xXx: The Return of Xander Cage) 生化危机6:终章 (Resident Evil: The Final Chapter) 金刚狼3:殊死一战 (Logan) 攻壳机动队 (Ghost in the Shell) 速度与激情8 (The Fate of the Furious) 拆弹专家 大护法 战狼2 星际特工:千星之城 (Valérian et la Cité des mille planètes) 看不见的客人 (Contratiempo) 英伦对决 (The Foreigner) 天才枪手 (ฉลาดเกมส์โกง) 王牌特工2:黄金圈 (Kingsman: The Golden Circle) 全球风暴 (Geostorm) 东方快车谋杀案 (Murder on the Orient Express) 雷神3:诸神黄昏 (Thor: Ragnarok) 追捕 至暗时刻 (Darkest Hour) 寻梦环游记 (Coco) 至爱梵高·星空之谜 (Loving Vincent) 芳华 线上观影记录(包括BT下载以及Netflix,包括电影/纪录片/部分美剧,不完全): Blade Runner (1982) Blade Runner 2049 Love Actually World War Z Dunkirk Everst 霸王别姬 Titanic 隧道 (터널) London Has Fallen 出租车司机 (택시운전사) Ocean’s Eleven Ocean’s Twelve Shooter Knight Day 2001: A Space Odyssey Minority Report Deep Impact Area 51 San Andreas I, Origin Particle Fever City 40 Stranger Things House Of Cards, Season 1 现在回忆一下,很多电影的质量其实很一般,属于看完之后走出电影院差不多就能忘记剧情的那种。这种电影很多都是所谓的「商业大片」,追求特效和画面,完全不考虑剧情的质量和观众的观影感受。 简单分析了一下,线下观影的统计 6月居然一部都没看,是因为工作太饱和了还是因为没有好看的电影呢? Powered by Powered by CloudflareCloudflare Hosted on Hosted on GitHubGitHub Made w/Made w/❤❤ 2017-12-30 https://blog.jinwei.me/_posts/2017/12/movies.html https://blog.jinwei.me/_posts/2017/12/movies.html 又一个新的博客 — Hello World 又一个新的博客¶ Publish Date:2018-01-15 前段时间有朋友和我抱怨博客加载速度太慢了(。之前的博客架在Blogger上,为了让排版稍微美观一些,找了一个第三方的主题,加载了许多外部的 资源,导致网页载入速度非常慢。虽然我自己对于网站在国内的加载速度毫不在意,但是既然还有读者(少的可怜)在看,以及在这极少的读者中有用 户提出了这个问题,那就得解决。前段时间无意中看到一个博客( git-pull ),觉得主题简洁而又美观,于是开始 着手改造自己的博客。 这次用了「大名鼎鼎」的 Sphinx ,一个软件开发过程中的文档生成工具来作为博客的静态网页生成引擎。 上手Sphinx非常简单,sphinx-quickstart这个工具和一般的博客生成器一样,集成了很多功能,把Makefile都写好了,可以说是完全开箱即用了。 Sphinx的默认主题是 Alabaster ,现在你看到的这个主题就是在Alabaster上修改而来的。 Sphinx的文档书写采用的是*.rst格式的文本,即 reStructuredText ,而不是Markdown。相比 之前,rst比Markdown的语法更加丰富/复杂,同时也提供了更加丰富的功能和可扩展性(虽然我估计我只能用到其中的20%甚至更少啦)。不清楚rst和 Emacs社区的 Org Mode 相比哪一个的语法更加复杂呢。( 建设博客离不开几件事情。首先当然就是部署运维啦。Sphinx通过Makefile可以生成静态html网页,托管静态html最方便的地方当然是GitHub Pages啦。 最简单粗暴的方法是在本地的环境中写完rst文本,然后本地 make html 通过之后,将html推送到GitHub Pages中。但是这种方式的移植性不高,想写 博客的话必须坐在自己的电脑前,同时依然存在一些手动的工作。所以当然选择Docker啦。但是这次用Docker的姿势和以往不同。平时我们用Docker的时候 最终都是想要得到docker build的产物docker image,然后由image来进行部署。但是我们这次的目标是GitHub Pages,没法部署容器。所以我在 Dockerfile中生成静态html网页,然后在构建的过程中将静态网页push到repo的gh-pages分支中。当然其实不用Docker也能做到这一点。写一个脚本, 然后在CI平台上执行脚本也行,就不做优劣对比了。 值得一提的是,Docker在17.05-ce版本之后引入了multi stage build的功能,可以在Dockerfile中FROM多个基础镜像,在下一个stage可以直接使用 之前stage构建出的产物。以我的博客这个项目为例。假如我是想通过image来部署,那么我最终的产物是静态html文件,那么我可能需要一个nginx的基础 镜像。nginx:alpine 这个基础镜像很小,不到10MB,在Dockerfile里面将html文件COPY进去之后,最终得到的image也只有10MB左右的大小。但是 之前我们为了得到静态html文件,可能得选用一个python的基础镜像,然后再apt/apk安装一些必要的编译工具,最终只是为了几百kb的html文件,但是 构建的镜像已经上百MB了。有了multi stage build之后,这个问题便非常好地被解决了。看了下面的Dockerfile之后,整体思路就非常清晰了。目前我 在本地写完rst文本,然后git push之后,CircleCI会自动进行Dockerfile的构建,然后将编译生成的静态html推送到gh-pages分支。 另外一个问题是博客的RSS。由于Sphinx最初的设计是作为一个文档生成工具,目前市面上有的和Sphinx结合的RSS生成工具大致有: Sphinx-contrib模块中的 feed 在sphinxcontrib.feed基础上开发的 sphinxfeed 以及更新一点的 sphinxcontrib-newsfeed 其中sphinxcontrib.feed和sphinxfeed的功能性更新都停止在2011年,不兼容Python 3,GitHub上有几个fork,但是也基本没有太多的改进。至于 sphinxcontrib-newsfeed,并不能生成符合RSS规范的输出。。。所以只好自己简单粗暴造一个轮子了!(至少生成的xml能被RSS阅读器认识。。。 RSS 订阅地址是 https://blog.jinwei.me/rss 至于评论嘛。虽然博客流量小,2017年下来一年也没有10条评论,但是作为一个博客,这个功能还是必须得有!考察了目前市面上的评论方案,Disqus现在 差不多可以算是一家独大了。但是十分不喜欢Disqus。一个页面要加载的无关的数据太多了。然后看到了 Isso , 第一印象还不错,但是需要自己单独部 署。为了一年10条评论不到的数量级单独部署似乎成本略高。之前还见到了 Staticman , 但是这个方案和GitHub的issue绑定,一个博客实例对应 GitHub的一个repo,然后每篇文章的评论对应这个repo中的issue。但是我不太能接受,毕竟不能强制每个评论的用户都有GitHub帐号。 今天无意中看到了 just-comments , 也是一个SaaS解决方案,但是非常地极简,决定先用着试试效果。( 下一步,打算在博客中加入 漢字標準格式 这套排版框架。毕竟现在的页面排版看起来怪怪的,以及并不美观。( Powered by Powered by CloudflareCloudflare Hosted on Hosted on GitHubGitHub Made w/Made w/❤❤ 2018-01-15 https://blog.jinwei.me/_posts/2018/01/new-blog.html https://blog.jinwei.me/_posts/2018/01/new-blog.html