除了自己,没有人能保护你的隐私
让我们再一次翻出“隐私”这个亘古不变的话题。 不久前,国内某大厂的 App 在微博上被曝光偷偷后台读取隐私信息,也有可能在不为人知的情况下将其上传。因此,我写了一条长微博,主要内容是宣传「在互联网时代,只有自己在意隐私,自己保护隐私,隐私才能得到保护」,指出了某 App 的问题非常可能仅仅是冰山一角。微博一出,我收到了大量完全是出于误读的回复,包括但不限于诸如 「Android 真惨,我用 iOS 就不怕了」 / 「普通用户没有能力保护自己的隐私,只有政府监管才行」 等等。更有甚者认为我是在为监管的缺失开脱,甚至以为我是在给出事的某大厂 App “洗地”,以反讽的态度在评论我的微博。我实在缺乏更多与这些根本没有读懂我在说什么的人争论的动力,因此部分这样的微博用户被我暂时屏蔽 —— 没有别的意思,仅仅是感到疲倦而已,如果被我屏蔽的用户正在看这篇文章的话,我在此道歉,但是我已经停用微博,所以屏蔽与否已经没有意义;但是我仍然感觉到有必要单独写一篇更详细的文章和大家聊一聊这个话题。微博这类社交平台不是一个适合放大于 140 字的文章的地方,因此我决定写这篇博客。 首先,我还是想谈谈某些...
Read post
重新开始博客: 使用 StandardNotes
距离上一篇博文已经过去 10 个月了,而本博客连一篇文章都没有更新,可能已经开始给人一种几乎要荒废的感觉了。而事实是,确实是这样,这个博客已经在荒废的边缘。 这几乎一年间,因为自身情绪上的一些问题,我很少有想要写一些东西的心情,与以前过个几天就想提~~笔~~键盘的状况完全不同。而在那非常少的有“想写一些东西的心情”的时候,我每次都会因为害怕麻烦而打消念头。“麻烦”的缘由则很大程度上是我自己埋下的 —— 我在多年以前抛弃了 WordPress 和 Ghost 这样的博客平台,自制了一个简易的博客程序 Typeblog,而这个程序是没有实现编辑器 UI 的。它直接依托于配置文件、插件和文章源文件,而这些文件则需要存储在 Git Repository 中。因此,我以前的做法是使用单独的 Markdown 编辑器,比如 Typora,编辑后提交到 GitHub 并通过 WebHook 来实现自动同步到服务器。这一个过程确实没有几个步骤,在以前我也就很自然地做完了。然而,也许是不良情绪放大了很多事情的复杂性,这确实就是过去这段时间里我不想动博客的主要原因。 关于那些“情绪问题”,我近期可...
Read post
systemd-nspawn 踩坑记
已经有半年没更新博客了,一方面是这段时间确实情绪之类的方方面面不太稳定导致一直没心情更新,另一方面是觉得没啥好更新的,无非是一些琐碎,所以就一直拖着拖着,直到今天才发现,已经半年了。 而正好最近把自己的网络服务都迁移到了一台新的服务器,尝试了全新的部署方式(systemd-nspawn),正好踩中了一些坑,所以随便写写记录一下,也算是重新开始做起博客这件事情了吧。 What & Why 以前我使用的是一台在 online.net 捡来的特价独服,因为只有一个人使用,所以我直接在主机上开了很多个 KVM 虚拟机,使用(几乎是)一个服务一个虚拟机的方式来部署自己的服务。这在一个人使用的时候确实没有什么太大的问题,唯一的问题可能就是因为自己懒,而虚拟机的数量太多,所以经常忘记更新 / 维护那些虚拟机。 而这次则是捡特价弄了一台特别划算的 E5-2680v2 的独服(购买的时候下单的是 E5-2660v1,但是不知道是商家特别有钱还是那天机房小哥心情好,给弄了一台 E5-2680v2),几个人合用一台。因为是合用,所以大家各自开了一个 KVM 虚拟机,各自隔离。这时候,我就...
Read post
GPD Pocket 上手 & ArchLinux
之前在 archlinux-cn-offtopic 群组里偶然看见 farseerfc 教授在晒图,是一台看起来非常非常小的电脑,但是却赫然写着 x86_64 并运行着 ArchLinux。我当时就起了兴趣,因为我一直苦于整天搬着一台 1.7kg 重的 XPS15,想要一台比较迷你而且便携的 x86 设备。我想要 x86 设备的理由是在我眼里只有 x86 才能算是完整的 PC 体验:有些 ARM 平台确实性能很好,可是连主线 Linux 都跑不了,又能算什么 PC 呢…… 在 YouTube 上逛了一圈以后,感觉负面评价不是很多,加上双十一又有一定程度的打折活动,自己又真的非常想要,就在本周早些入手了一台。入手价格是 3000 人民币。 于是,这里是一个简单的评测和对我装 ArchLinux 过程中遇到的坑的记录。 (本文有补充编辑的内容,可能下面提及的部分问题已经被我解决,如果想看请直接翻到最后。) 配置 首先看一下它的配置。 CPU: Intel Atom x7-Z8750 (1.6GHz) 存储: 128 GB _eMMC _(不是 SSD) RAM: 8 GB...
Read post
你们要的 Inline ASM 疑难解答
背景 我校 (西交利物浦) 的 信息与计算科学 专业的大二的课程中,有一门 (CSE101,计算机系统) 涉及到一个使用 MSVC Inline ASM 完成的作业。由于大部分人此前没有接触过 ASM 甚至没有接触过编程,而课程本身因为 一些原因 难以理解 (I_cant_hear_you.jpg),所以最近几天我一直收到关于这个作业的各种各样的问题,其中很多都是重复的类似的问题。当然,这也怪我本人在群里 “假装自己很会 ASM”(手写 x86 ASM 真的是第一次)。不管怎么说,因为大家都会遇到类似的问题,所以我想着我要不还是干脆写篇博客一起回答一下,以减轻我的多线程工作负担(x)。 当然,写这篇文章的直接原因是应某同学的要求 —— 她发给我一篇来自其他同学的教程,让我修改一下其中可能存在的没有讲清楚的点。于是我决定还是自己从头写一份好了…… 作业要求 使用 MSVC Inline ASM 编写一个满足如下要求的程序 让用户输入一个在 [2, 5] 之间的整数 n 循环 n 次,每次问用户索取一个新的正整数(如果不是,退出循环,跳到 3) 当循环退出的时候,打印退出消...
Read post
从 root 手机说起
昨天在知乎上回答了一个问题 如何评价魅族Flyme系统即将关闭root功能? 问题的内容大致是,魅族计划以「安全」为理由去除系统中的 root 功能,请问大家如何看待。我在回答中主要提及了「用户对自己购买的手机的控制权」这一问题。当然,在知乎上发表这类言论,必然的引来了评论区的一场“大战”。由于知乎实在不是一个保存和展示文字内容的好地方,所以我选择把更详细的内容放在这篇文章里阐述。 写在前面 在讨论评论中一些人的问题之前,我想我有必要重新摆明我在这种事情上的立场。 第一,我认为自己购买的设备应当是完全属于自己,也就是说「购买」这个行为是针对所有权而不应该是使用权。当我购买手机的时候,我不是在购买手机这个设备的使用权,而是完整的所有权。我应该能够在这个设备上运行任何我希望且能够运行的软件而不受厂商的控制。当然,在今天,这个要求其实是很高的 —— 比如越狱就是一个合法性一直饱受争议的行为 [1],尽管从我的角度来看,「越狱违法」是很不可理喻的。同时,也有很多人提及,购买手机时立下的用户协议中,可能就是仅仅授予了使用权,而其他一切都与最终用户无关 —— 这正是我想要反对的东西。...
Read post
在西浦的一年
刚刚期末考完,想到 2017 年高考也已经结束,突然意识到自己已经在西交利物浦呆了一个学年。去年的这个时候,我也是刚刚高考结束,还在想着自己那个成绩可以报什么大学,还在思考如何处理我高中所谓的“初恋”(不,是暗恋),想着要不要送生日礼物什么的。转眼已经这个时候,到了下一届的小朋友们要开始考虑这些问题的时候了。看看我的博客,也已经一整个学期都没有更新了。于是,我想以此再水一篇博客,就当回顾一下这一年来在这个学校的体验,(也许)能给这一届同学们一些参考。 为什么来这里 本来,去年这时候,我希望报的大学是隔壁的苏州大学。在高中的时候,曾经有同学跟我提起过要不要参加西交利物浦的自招,我当时根本没有把它放在考虑的列表里 —— 因为很多人报名的目的实际上是看中两年后可以出国到利物浦以及它的双文凭,而我当时并没有这些想法,再加上对学费望而生畏,所以我完全没有上这个大学的想法。 但是后来高考出成绩,我一下子就慌了。去年江苏的数学特别简单然而我砸了,这就意味着我的分数一下子比预期低了十多分(江苏的分数密集性我想不用多解释……)。这样的分数上苏大是不可能的。而由于我行动不便,希望找一个本地的...
Read post
自由的消逝
我第一次听说「驴得水」这部电影,是在 中西文化比较 课上。当时那一节课,是关于中西方人对性和爱情的态度的,于是在课前放了「驴得水」的宣传曲「我要你」。当时我就被这首歌曲打动了,大概是旋律非常优美,而我又正好处在这样一个渴望爱情的年龄。后来老师也向我们推荐了这一部电影。然而,在这之后我只是找到了这首歌的两个版本和吉他伴奏谱,当成一首好听的情歌循环并练习了好久。 直到昨天,我终于想起来应当把这部电影看一遍。在这之前,我所听说的对这部电影的定性都是「喜剧」。可是,在进度条走到一半之后,我却再也笑不出来了。 这绝对不是一部关于性观念和爱情的电影,更绝对不是一部喜剧。这是一部彻头彻尾的人性的悲剧。 张一曼 所有的事情,都要从这个人物说起。 在写这篇博客之前,我看过许多关于这部电影的影评。其中,关于张一曼的评价,有两个极端:一个是视其为女权的「英雄」,认为她具有一种超前的性观念; 另一种是视其为「渣女」,「荡妇」,认为这样的生活态度绝对不能作为女权的代表。 从这部电影的背景来看,它设定的年代是上个世纪,新中国成立之前。这是一个比较久远的年代。而张一曼对于性的态度简直有当代女权主...
Read post
致12岁
12岁,一个稍微有那么一点遥远的年龄,一段仿佛又刚刚过去仍有余味的时光。 在知乎看到了两个问题 假设现在的你看到 12 岁的你,你想对他说什么? 假设 12 岁的你看到现在的你,ta最震惊的事会是什么? 实际上是同一个问题。 看了几位答主的回答,感慨万千。看似调侃的文字后面都隐藏着各位对那时生活的回忆和各种各样一言难尽的遗憾。确实,在一段时间以后,回首过去的那些事情,会有一番不一样的体验。即便是黑历史,也仿佛变得可爱和值得怀念了。 我12岁的那一年则是在六年之前。相比一些20-30岁的答主来说,那段时光离我还不算太远。然而,短短的六年之间,我似乎已经变了。我可能已经不会认识那时的自己,而那时的自己恐怕也不太会承认现在这样一个我了。 不太喜欢知乎的编辑体验和排版。所以,我把我想写给12岁的我的那些话,作为一篇博客,放在这里。当然,我也不太喜欢调侃这些事情,所以可能稍显沉重(?),希望不要介意。 1 上课打 Minecraft 吗? 你之后会经常在上一些无聊的课之前邀请周边的几个朋友「不务正业」。 一是那时候在初中,有些课程,的确就是反反复复反反复复,为了...
Read post
再多一点点时间
我呢,今天去看了「你的名字。」。是的,和你们想象的一样,我和喜欢的人一起去看了「你的名字。」。 于是产生了一种非常讽刺性的感觉。 当电影中的三叶和泷在夕阳中短暂见面,没来得及写完名字,然后被隔离在不同的时空,因为忘记对方的名字而痛苦不堪的时候,我喜欢的人,那个重要的人,就坐在我身边,看着同样的片段。 可是我呢。泷在三叶的手上写下了「すきだ」(「喜欢你」),而我连说出这三个字的勇气都没有啊。 而且我的这一切并不是一场梦,我们活在同一个时代,同一个城市,曾经是同班同学,我打电话的话,也不会出现「不在服务区」。 这部电影就是这样,在看完以后,独自回味的时候,就不禁热泪盈眶,比在电影院里产生的情感还要强烈。因为它把几乎每个人都会经历的故事加上了奇幻的色彩,再配上精良的画面和音乐,这种「可回味」的程度,这种可以引起共鸣的力量,就突显出来了。 这个故事平凡化的版本,确实是几乎人人都会经历的。它就是一个讲述着无法传达的爱意的故事 —— 曾经互相喜欢过,但没有互相表示过; 后来随着时间的流逝,可能去了不同的学校,不同的公司,不同的城市,甚至不同的国家,于是渐渐忘了对方,忘了TA的模样,...
Read post
近期随想
距离上次更新博客,已经有好几个月的时间了。我已经好久没有写博客的心情了。这几天得流感在家休息,打开自己的博客,看见很久没有维护过的首页,再看看自己高中时写博客的豪情壮志,不禁感慨万千。这么久没有更新博客,想说的话积累了太多,无奈表达和组织语言能力太差……终于决定写这么一篇没什么主题的文章,权当灌水和发泄了。 1 其实不如这么说,进入大学以后,我似乎就再也没有更新过博客了。 我不敢说我自己很忙,毕竟我仔细算了一下,每周上课不过20+小时,双休,没有晚自习,周三下午没有课程。和在其他学校的高中同学比一比,这生活简直在度假。 然后我仔细回忆了一下这几个月我做了什么在大学课程之外的事情。 答案是基本上没有做什么。除了写了几行没什么用的,没有成为完整项目的代码以外,确实基本上什么也没做。干的最多的事情也许就是开着代码编辑器发呆,然后就这么度过几个小时。 看了看自己的 GitHub 贡献数量,发现我贡献最多的时候就是高二的那一年。然而高中是绝对不可能有这么多闲暇时间的。 也许这就叫做「犯贱」吧。没有时间的时候拼命挤出时间要做自己的所谓爱好,等到有时间了,反而觉得这「爱好」没那...
Read post
在 ArchLinux 上配置 shadowsocks + iptables + ipset 实现自动分流
本来我是决定不再写这样的文章了的。但是呢,最近连续配置了两次 ArchLinux,在配置这种东西的时候连续撞到了同样的坑,加上今天 Issac 亲问我关于 Linux 下的 shadowsocks 的问题,所以我想了想还是写一篇记录一下吧,也免得自己以后再忘记了。 2017-01-25 更新: 我编写了一个脚本来自动化原文所述过程,源码和使用方法在 https://github.com/PeterCxy/shadowsocks-auto-redir.sh 比本文中介绍的方法要方便很多。 以下是原文。 本篇的目标是使用 ipset 载入 chnroute 的 IP 列表并使用 iptables 实现带自动分流国内外流量的全局代理。为什么不用 PAC 呢?因为 PAC 这种东西只对浏览器有用。难道你在浏览器之外就不需要科学上网了吗?反正我是不信的…… 前置条件 一个能使用的 shadowsocks 服务端,假设它的 IP 是 192.168.1.100, 端口是 6666, 加密方式是 chacha20, 密码是 1234 一个安装了 shadowsocks-...
Read post
结束的最后
我之前写过一篇题为 结束的开端 的文章。那是在高三的最后一个学期到来之前写下的。当时的我,对于如今的生活,是怀着一种恐惧和期待交加的心情。而现在,高考已经过去了一个多月,我的录取结果也已经知晓。不知不觉之间我自己早已身处当时我所憧憬的那个「结束」。 有开端则必有结束。身处高考之后一个多月的我,大概已经有足够的理智来重新审视刚刚过去的这三年的时光。最近看见 Touko 聚聚也更新了博客 关于高考, 我才终于决定写下这么一篇文章,以完成过去的我所留下的所谓「伏笔」。权当这是我的自我反省吧。当然,如果能传授一点人生经验,那就是坠吼的了。 抓住机会 所谓抓住机会,换一句话说,便是「不要怂」。这里咱可以拿自己作反面教材。 三月到四月的时候,西交利物浦大学有面向高中生的自主招生活动。那时候有同学邀请我一起参加这自招。那时的我的目标还是「至少上个苏大」,因为 考个苏大,还不容易? 我就抱着这样的想法错过了这次自招活动。 然而现在的情况是,我的分数和苏大差了十万八千里,倒是以压线的成绩进了西交利物浦。这也真是惊险的一幕。那时的我如果尝试了自招,如果万一就那么让我通过了,这情况就会...
Read post
再见,Ghost
旧爱 我切换到 Ghost 这个博客引擎,其实也没有很久的时间。当时切换到 Ghost,主要原因是 Jekyll 这样的博客引擎没有一个好用的网页编辑器或者客户端,而当时的我还是高中生,经常需要在手机上编辑并发布博客。而 Ghost 恰好有一个好用的网页前端,所以我当时就决定把博客迁移到 Ghost 平台上。 但是 Ghost 也存在相当多的问题 插件系统较为鸡肋,难以扩展 服务端不能执行代码高亮,代码高亮需要在客户端执行 不能自定义主题的参数,导致不修改主题文件难以实现自定义 编辑器不自带 Markdown 语法高亮 再加上我现在已经可以使用电脑写作,使用手机的时间大大减少,这就是换一个博客系统的好时机了。 新欢? 我曾经是 Jekyll 的用户,当时使用中比较蛋疼的一个问题就是自动更新与缓存刷新 —— 因为那是纯静态博客,所以必须再单独实现一个服务来监听更新并同步。虽然说博客这种东西本身静态和动态就没什么大的差别,但是我还是更倾向于「半动态」的博客,这样也更便于实现插件系统。 而我又恰好正在为「手生」烦恼 —— 整个高三没写几句代码,突然放暑假,想要填上自己的...
Read post
我给你买辣条,我们在一起好吗?
1 在微博上看见了一个(据说)真实的有趣的故事。 小学生在街头闹分手。女孩歇斯底里地问男孩,为什么「男友」就这么成了「前男友」,并发怒道 你把我当什么? 然后继续数落 你吃的辣条是我买的,你喝的酸奶也是我买的! 仿佛一个凄凉的爱情故事。 2 我有这么一个同学。 下午在玩「真心话大冒险」,被问及他喜欢过多少个女孩子,他掰了半天手指头以后回答 十几个吧。 一片哗然。 又有一个问题,问的是「男女间有纯洁的友谊吗」。此问一出,争端四起。有人坚持「没有」,并表示有时候「好感度」就是通过所谓「友情」提升的;而有坚持「有」者则说道: 这种「喜欢」和那种「喜欢」是不一样的。 然而,不管怎么说,那十几个女孩子,恐怕,没有一个是他喜欢的。 连朋友都做不成。 3 还有一个哥们儿。 之前一直在霓虹国四处浪。回来以后谈他对霓虹国的印象 妹子漂亮!随便拉出来一个就秒杀国内! 几杯酒下肚以后就开始胡说八道 我以后一定要去霓虹国找妹子! 是的,他是个名副其实的「土豪」。可是他并没有妹子,甚至没有「曾经」有过妹子。 和他同为「土豪」的另一...
Read post
我理想中的现充生活
我并不是一位现充1,但我羡慕现充的生活很久了。我有成为现充的理想,只是一直没有实现罢了。于是,这是 理想的爱,应当是一种平等。而所谓平等,可能就体现于有争执的问题上了。 见过很多人吵架,往往是这么一个模式: 你说说看,这个A2是怎么回事? 那是因为我B2啊! 那你B有什么理由吗? 那是因为我C2! C你个***!还不老实告诉我? 嘿!我说了B啊!B这事有错吗? 我不管!你给我******** 跟你说了B就是B! 那你A又是怎么回事? 于是便无限循环下去。我父母的吵架就是个典型的例子。在吵架的时候,他们可以把两三句话重复千百次,一两个小时都听他们不断重复一两句话,最后双方都没力气了才停下来。 这种呢,很多人觉得是吵架,其实可能连吵架都算不上,充其量是个无理取闹。在这种争执中,双方都试图凌驾于另一方之上,试图把自己的观点强加给对方。 我理想中的现充生活,是不能存在这样的争执的。当然,我并不是在说没有争执,而是认为争执的解决不应该以这样一种除了能够表现自己的嗓子能吼多大音以外没有任何作用的方式。 我所期待的是,晚上能够就今天白天未解决的问题查找资料,为第...
Read post
那朵花
昨天一位小学同学在微博上找到了我。我们已经失联多年了,因为我从去年这时候开始就抛弃了QQ。按理说,多年未见,应当有很多话说才是——可是聊了几句以后却发现我们仿佛已经身处不同的世界,即使想要找话说,也有一种莫名的语塞之感。或者说,可能从某个时刻起,我们的人生轨迹就再也不会相交了。 这让我猛地想起「那朵花」中的情节。一群儿时的玩伴,因为升学等种种原因,不得不互相分离。虽然住所并不远,却各自有着自己的生活而不再相聚,不再像儿时那样共同玩耍。所谓的「超平和Busters」也名存实亡。剧中的「面码」这一灵魂的角色,则百般尝试,希望让这些朋友们找回儿时的那种感觉,重新组成那个失散多年的「超平和Busters」,找回那些属于自己的回忆。 「那朵花」中,面码是成功的。这也是为什么这部番成为了「神作」之一,使无数宅男热泪盈眶——每个人的心中都有那么一群儿时的玩伴,他们不远也不近,可你却永远也无法将他们唤回,他们仿佛只活在记忆中。我曾经想过,「那朵花」的「花」到底在比喻些什么?吾辈以为,这就是这部番的主题——那些失落的人和失落的友谊。 可是我们更多面对的情况,与二次元世界中的情况是截然相反的。当...
Read post
儿童节之思
昨天在知乎上看了一个问题的回答 如何避免孩子早恋? 昨天我看了这个回答以后,差点一晚上都没睡好觉。尤其是答主的这一段话 为什么在我漫长而苦闷的青春期里,一提到这件事,我父母就说,因为我早恋,让他俩在所有的亲戚朋友面前没办法做人,抬不起头来。(可是明明是他们主动把这件事告诉大家的啊,他们如果不说,别人怎么可能知道?!这个情况,我是真的很想知道答案,为什么他们自己把我早恋的事到处说,把细节和情书的内容一遍遍讲,然后又责备我让他们抬不起头来?) 这样的父母,也是极品了。可是我想来想去,却觉得这样的影子,在每个父母/老师身上,甚至是每个同龄人的身上,都有那么一点。 初三的时候,我有两个同学,一男一女,两个人『早恋』。说是早恋,其实可能更多的只是被贴上的标签。他们两个,可能只是互相之间有那么一点点微妙的好感,可能根本就没有到恋爱的程度。可是当时呢,当时我们全班,甚至全年级的人,都『公认』了『他们俩是一对』这个事实。当他们俩走在路上,即便没有肩并肩手拉手,也会惹来围观者的『嗤嗤』声。老师经常找他们俩谈话,虽然他们俩一直不当回事。后来他们俩几乎是班级里的反面典型。老师当众暗示过我们...
Read post
使用 LetsEncrypt.sh + Nginx 实现SSL证书自动签发/续签
随着运营商劫持、政府网络监控行为的加强,HTTPS 在今年已经几乎成为了网站的标配。吾辈之前使用的一直是 COMODO PositiveSSL Wildcard, 但是这证书的价格,已经到了我今年很可能续不起命的地步。本来想着高考完以后把它换成单域名的 PositiveSSL 算了,但是我这个人呢,喜欢瞎折腾,经常弄出一大堆子域名,而且我又开启了全部子域名的 HSTS,因而使用这种证书的话成本可不太低。我之前尝试过使用 LetsEncrypt 的证书,但是无奈他家的官方客户端对于 Nginx 的支持……实在是太简陋而无法使用。作为忠实 Nginx 信徒,要我去使用 Apache, 是不太可能的。当然,之前我也使用过 Caddy 的自动签发证书功能,但是 Caddy 相比 Nginx,功能还是太简陋,我总不至于在 Caddy 后面再套一层 Nginx 吧?! 不过今天我找到了 LetsEncrypt 的另一个客户端 letsencrypt.sh 这是用 Bash 写的客户端,符合核心价值观,~~很清真~~,而且可定制性非常高。我初步看一了一下文档以后,发现这非常尊重我的决定权,...
Read post
我们不需要同情
上个星期,我去某酒店吃饭。饭前去了趟洗手间,出门的时候遇到两个小男孩,看见我坐着轮椅,于是问 你腿坏掉了吗? 我回答了 是。 于是他们俩笑着跑开了。 这种情况我已经习以为常了,不过这次有一点不一样,就是这两个小男孩的家长不在身边。按照惯例,如果这时候家长在身边的话,多半会有以下两种反应之一。一是赶紧拉走小孩子,鬼鬼祟祟地像是看贼一般斜眼看着我;二是当面教育小孩子要同情残疾人,不能怎么怎么样blahblahblah…… 有时候我倒觉得,家长这种做法,反而会让我感觉更难受。你们可能觉得是在同情人,你们可能觉得这种同情是必须的,可是也许我们并不需要所谓同情。 星期五在阅览室看杂志,看到一篇文章,讲的是香港的学校是如何教育小朋友不要歧视残疾人的。文章里谈到,香港有些学校并没有专门对学生讲人人平等,讲拒绝歧视,而是在每个班级里设置一定量的残疾学生,让他们融入到这个集体中去,所谓『习以为常』。这样时间一久,自然也就不会再对街上的 与自己不一样的人 投去异样的目光了。文章里就提到了一个例子,说一个小孩谈论他的同学的义眼掉出来就好像在谈论稀松平常的事情一样,没有一点点惊讶的语...
Read post
我为什么写博客
这两天临近高中毕业,一直忙着写各种毕业留言。尤其是前两天某女生请我写毕业留言,我认认真真地写满了两页纸。于是某同学在『噫』了一番以后就开始问我 你为啥能写这么多呢 当时我的回答是 因为我能水,不然,我怎么写博客写到今天呢? 好吧这是真的,我确实很能水,一句话我能当三句话说,就像这样。然而我见过许多人,开始写博客,没几天就变成了有生之年系列;或者写来写去都是些碎碎念,最终也是荒废在那里无人问津。而我想我这个博客,typeblog.net, 算是在当时建立的那一批博客里面活得比较久的一个了,经历了 WordPress -> Jekyll -> Ghost, 没有沦为广告基地,也没有沦为SEO的奴隶。它活到今天,恐怕也不只是因为我能水而已。 最初决定开始写博客,完全是跟风而已。当时我初二,自己设立了一个卖虚拟主机的网站,买了另一家主机商的代理,加价卖出。后来『客户』开始多起来,我就想着学其他的主机商一样设立一个『官方博客』一样的东西,来做做所谓的『营销』什么的。于是这个博客就这么出现了。但是当时的我毕竟只有初二,说是想要『营销』,其实自己根本就不会,也只能天...
Read post
对不起,我们是圣母
预警:这是一篇口水文。另外,请无视短链里的翻译,我实在想不出来要怎么用英文传达『圣母』的意思。 Disclaimer: 下文中所有提及的有关『圣母』『政治正确』『反圣母』,其前提全部是自愿、自发,受强制(e.g. 政府强制)而产生的并不是本文讨论的对象;同时,国家和政府层面上的类似圣母现象也不在本文的范围之中。 『圣母』这个鬼词,不知道是什么时候开始出现的,我也不知道是什么时候开始被赋予了一种奇怪的意思,搞得我都不知道要怎么翻译。不知道从什么时候起,我在知乎之类的地方只要回答『XXX(某类人或动物)也有生存的权利』,几乎立刻、马上、瞬间就会出现一大帮『站队』一般的评论 -- 圣母婊、圣母婊、圣母婊。我一开始看了以后还很生气,还尝试过反驳,可是后来发现这种回答纯粹就是贴标签,无论如何反驳他们也只会再用『圣母』这个词来反驳你,根本就是对牛弹琴,毫无作用。 这我就觉得很奇怪了,追求平等的生存权,什么时候就变成了『政治不正确』一般的东西了呢? 我不知道有些人是不是看多了所谓『政治正确』,然后开始反感这种政治正确,凡是与它有类似观点的,他们都要当作异己排斥。然而有句话说 『政治正...
Read post
使用UML合租VPS
我是从 微林 那里发现阿里云的新加坡节点的。那个时候我在用 Conoha,因为它到国内的线路越来越玄学,从以前的70ms延迟飙升到300ms,丢包率极高,所以我到微林那里去寻求一个中转服务。我本来只想用那个阿里云香港节点,但是正好看见不知何时他们加上了一个阿里云新加坡节点。因为香港的流量费实在太可怕,我就抱着试试看的心态开了一个新加坡的中转。谁知道这个中转的效果非常好,因为这个新加坡节点到中国电信有双向的CN2线路连接。然而微林的流量费还是太高:阿里云的官方流量价格只有0.53元/GiB,而最低配置的主机价格也就90元的样子。使用微林中转,我仍然需要一个国外VPS来搭建网站,倒不如直接使用阿里云提供的服务…… 合租 然而,对于我这个学生党来说,94元/月的配置费仍然是高了一些。所以我想到了合租,几个人可以稍微分担一下配置费用。然而要合租的话,就需要想办法分割各自的用户空间。我首先想到的是用 LXC 或者 systemd-nspawn, 但是使用这些的话,各个用户都必须共享同一个内核。而阿里云这东西比较奇葩的是不允许自定义内核,这样总让我觉得有些不舒服。 在虚拟机里再跑全虚拟化的虚...
Read post
被出卖的安全
前两天支付宝又闹出了个 隐私门 事件,说是支付宝Android版在不该用到照相权限时就申请了这个权限。根据XPrivacy拦截到的API调用过程,支付宝有偷偷上传用户隐私的嫌疑。不久以后,支付宝官方『辟谣』,几句话把这些事情从自己身上撇得一干二净,撤掉了服务器上的热补丁,然后有阿里员工开始『悬赏』请『大牛』给出流量分析。 由于吾辈日常冻结支付宝,所以我无从得知,支付宝究竟有没有做什么见不得人的事情。但是,支付宝在这事之后的反应,实在令人细思恐极。无论如何,支付宝在不应该用到摄像头的时候就提前申请了权限(Android 6.0),这是不争的事实。然而面对这样的质疑,支付宝不但不对它作出合理的解释,反而处处回避这一问题,反应激烈到无法理解。问题的核心不是在于支付宝有没有泄漏隐私,而是支付宝为什么要提前获取这个权限,提前拿这个权限去做了些什么,可是支付宝官方却一直对此避而不谈,只知道一遍又一遍地说『窝是清白的』,这就仿佛孔乙己睁大眼睛在说『你怎么凭空污人清白』。私以为,这实在不是一个 重视用户利益 的 大厂 应该有的态度。 再之前,苹果和FBI就『是否应该放置后门以便解锁手机』的争端,也...
Read post
结束的开端
2016年2月19日,距离这个寒假结束还有一天不到。这是我高中生涯中的最后一次寒假,也意味着这一切将在不到四个月的时间里结束。 是啊,不到四个月了呢。我在中考完的那个暑假,曾经有这样一种感觉,就是高考什么的,还有三年,远着呢。远着呢,远着呢,这句话还如此清晰,我却已经站在这个结束的开端。 假期往往是我的痛,因为无论在假期前许下什么样的『要好好学习』的誓言,在假期中都会被丢到九霄云外。不管怎么样,我总会想到那些在开学期间被丢到一旁的项目,想到那些我自己都未必看得懂的自己写的代码,和那一堆难以逐一清理的用户反馈和崩溃报告。而每个假期,总是在这样的纠结之中度过的。每次我意识到这种纠结,往往已经处于假期的终结。也许正是因为这样,我始终害怕开学,害怕将要遭遇的那一切。就在这样一次又一次的纠结之中,我已经面临着高中的最后一个学期,最后的这点时间。 我这人对于像高考这样,因为一点点的不同的念头就可能改变以后的一生的事件,一直有莫名的恐惧感,虽然我明明知道即使没有这么大的事件,人生也可能在一念之间完全不同,所谓『蝴蝶效应』。现在想想,也许使我真正感到恐惧的,不是这种事件本身,也不是可能改变一切的...
Read post
没有翅膀的人
事情是这样的,今天微博时间流里出现了一个名叫『崇才科技』的自称『第一00后团队』的公司。光是看这条消息,吾辈就被吓了一大跳。于是我随便下载了个他们 网站 上贴出来的『得意之作』 唔,吓尿了。当然,BeetMan 同学已经在 这里 抢先于我吐槽过了,我呢,只是想再说两句。 说实话,我想要笑话他们,但笑话他们会让我觉得在笑话自己。谁在这个年龄不会想要做一些这样的事情呢?不过是想要证明自己,想要向世界宣告自己也有大人一般的实力罢了。我当年玩『易语言』的时候,也干过不少类似这样的事情。我曾经 Copy-Paste 别人的代码,改一下UI,就说是自己的作品,也无非就是为了所谓的成就感。对成就感的追求是无可厚非的,即使被称为中二病,至少这可以告诉人们有这样一个人曾经活过。 『美丽新世界』中就不存在『中二病』。这本书里面描述的人们,从小就受到睡眠教育,将所有有关改变、有关创造的事情都排除在『快乐』之外,以此保证社会的『稳定』。代价是,整个人类的科技水平都被自己锁死在一个固定的水平,因为新的发现不利于稳定;人类的文化与艺术毁灭殆尽,因为如果人们不再需要成就,不再有进取的意识,那么任何知识、...
Read post
盛世除夕
大年三十高高兴兴刷微博,却被一条评论弄得兴致全无 其实这PO只是吐槽了一下今年春晚上出现的几个问题,还没有其他人喷的厉害,却招来了这样一批人。当然,我随便戳开了他们的微博看看,发现都是某男子三人组合的粉丝,那么这也就不奇怪了。 但他的这一番话,却无法不让人细思恐极。 正能量 评论里有这么一句话 生活在这个祖国的人民还是需要正能量的。 于是我随便查了一下正能量 正能量是什么?Google说,是乐观,是积极,是一种心态。 互联网不仅是化解民怨的减压阀,更应该成为国民心态的压舱石,发掘草根中的真善美,重新提振诚信,传递正能量。 Wikipedia 上引用人民网的话如是说。这句话显然有很直接的政治目的,但这些我不管。我只看见了三个字: 真、善、美 我不知道从什么时候开始,这样的事情在某些人眼里变成了真善美。这样在全世界的华人面前弄虚作假,这样侮辱作为『祖国的希望』的孩子们的智商,这样拙劣的编排,如此做作的煽情,什么时候变成了真善美?满眼我也只能看见三个字: 假、大、空 当正能量变成假大空的同义词的时候,我们的未来也许就会变成春晚的那个样子。即使弄虚作假...
Read post
给Ghost博客系统添加中文字数统计
我在前几篇文章中已经提及,最近我将我的博客系统切换到了 Ghost。我已经夸过它的不少优点,如轻量等,但现在的 Ghost 有个非常致命的问题,就是不支持统计中文字符数量。无论你在一篇文章里写了多少汉字,它自带的字数统计总是按照空格数量进行,也就是英语习惯。而中文的字词之间没有天然的分隔,所以这种统计自然就会不准确。不仅仅是中文,对于中日韩语言来说, Ghost 的这种统计方式都存在很大的问题。 方案 首先我在 Ghost 的repo里找到了 Issue #2656 和 Issue #3801。在这两个议题中,他们提到的解决方案是首先判定语言,然后使用对应语言的分词技术来统计单词数量。起初,我也认为这个方案是可行的,于是在 Ghost 源码里一番折腾。我找到了 core/client/app/helpers/gh-count-words.js,这里有这么一段代码 let markdown = params[0] || ''; if (/^\s*$/.test(markdown)) { return '0 words'; } let count = counter(mar...
Read post
这就是爱
近日寒假,闲坐在家,无心作业,钉宫病发,补番心切。想到我从前已经补完钉宫四萌中的『灼眼的夏娜』和『龙与虎』,欣然决定继续补四萌,鼓足干劲,力争上游,多快好省早日达成患上钉宫病晚期的宏伟目标。于是我选择了『零之使魔』,因为它虽然有四季,每季却只有12集。 本以为只是个日常番,打算边写代码边慢慢补,结果我却发现完全不是这样。我竟然以一天一季的速度补完了这部番……因为,它让我想到了很多。 战争与人性 我想这大概是 零之使魔 贯穿全集的主题之一了。 从第二季开始,这个番就开始渲染一个观点,就是 反战。作者演绎了两种对立的观点,一种是为了名誉而不惜生命参与战争甚至发动战争,另一种是尽力避免战争的出现,尽力避免伤亡。 贵族们所秉持的正是前一种观点。也正是因为这样,当学校被用作战争的训练基地时,格鲁贝尔老师的情绪才会如此激烈; 当露易丝决定面对战争时,才人和她的姐姐们才会如此反对。戏剧性的是,作为一个害死了全村人的魔法师的格鲁贝尔老师,他的态度竟然发生了如此大的转变,从战争的狂热分子变成一个积极的反战分子,这是为什么呢? 记得不久前,中日的钓鱼岛争端再次恶化时,我也曾在微博上发表过这...
Read post
关于故乡
今天早上,大水群里有人分享了这么一个知乎话题 移居海外的华人怎么防止自己的子女变成外黄内白香蕉人? 其实我早就在博客的 草稿 里面存了一个标题为 故乡 的文章,然而健忘的我却忘了自己当初要写些什么。看到这个话题,我算是想起来了,我要写的不是其他的,就是故乡,就是 故乡 这个词或者说这个事物本身。 我的故乡 从我的故乡开始说起吧。 小时候,我也是很喜欢故乡的。喜欢故乡的原因,自然是故乡有很多亲戚。我想这也是很多人喜欢故乡的原因。当回到故乡的时候,总是会有很多亲戚在我的身边。因为亲戚多,自然也就有许多与我同龄的小孩子,自然也就有很多共同的话题。故乡还有什么?在当时的我看来,还有的就是乡下的各种好玩的事物 —— 至少对我来说,是从来没有见过的新奇事物。 我记得有一次国庆节长假,按照惯例,我们一家要回到故乡去住那么几天。临走的时候,我故意把某些东西忘在那里。其实是无意识地 故意 忘在那里,因为我并未清晰地意识到。我们走到半路又返回,一共这么折腾了三四趟。实际上,我就是不想离开那里而已,我对那里总是有一种依恋的感觉,即使当时的我从未说过,即使我自己从未感觉到,这种依恋是真实存在的。正...
Read post
博客Docker化并迁移到CaaS
起因 我用自己的VPS搭建博客,算起来也有很久了。我选择用VPS,是因为和当年比较流行的虚拟主机比起来,VPS更自由。比如说,我可以自己决定使用什么 HTTP 服务软件,可以自己选择各种程序的版本,等等。这些都是从前的虚拟主机所做不到的。 然而,距离那个时代已经有不少年了。我开始用VPS的时候,虚拟主机还大行其道;现在,我已经看不见多少人使用过时的虚拟主机了。而各种所谓 云服务 渐渐兴起,比如说基于容器的 Container-as-a-Service (CaaS) 服务。当然,VPS在很多服务商眼里也算作他们的一员,但我向来是拒绝承认VPS属于 云服务 的。 VPS用了这么久,我也是有点累了。毕竟VPS是个完整的服务器环境,一旦我想迁移,就意味着我需要从头开始重新配置整个环境。而我又是这样一个折腾党,这令人很难过。另外,虽然VPS不是个新东西,但是优质的VPS价格并不会随时间推移而降低多少,这对身为学生狗的我来说也是个不小的压力。比如说,我之前所使用的 ConoHa,不算个非常好的服务,但也要60元一个月,这不算一个非常小的数目。 什么?你叫我去用 搬瓦工chāo shòu k...
Read post
Links
在互联网上,我不是孤单一个人。 友情链接 排名不分先后 Junde Yhi ~~小以以~~ ~~余忆留声机~~ 夢だった 艾雨寒 漩涡老师 Megumi_Fox ~~自称新人但是很快融入群体的谜之惠老师~~ 比尔盖子的博客 烧饼的小窝 Leaf's Life Touko's Diary Fr0zenW0rld REPO.MIND.CTH 451 ~~リア充の~~Naïve Blog Drakeet's Kaede's Studio XiNGRZ's Blog @ Lawrence 小白喵の幻想空间 jm33_m0 Farseerfc的小窝 ~~吃人的~~萌狼 ~~萌萌的~~BroncoTc ~~千千酱~~WWY'S BLOG ~~五皇叔~~FiveYellowMice 明学的白板 恋符~~by K司机~~ RockyLuo 虚空夏娜酱 感谢 Nginx Node.js Typeblog ArchLinux Minio (Some) Post photos from Unsplash ...
Read post
Hello, Ghost!
Bye, Jekyll 在发布这篇文章之前,我一直在使用 Jekyll 作为我的博客工具。以前我看中 Jekyll, 是因为它是一个静态的博客工具,生成静态的页面。相比臃肿的 WordPress,静态的 Jekyll 更方便部署,随便在哪里丢上那几个生成的页面就可以部署一个能用的博客。由于省去了动态页面的执行时间,它的访问速度也有一定的提升。但是,当我用了一段时间以后,我发现 Jekyll 存在如下的问题,这些问题导致我不得不放弃 Jekyll 这一博客工具 更新、同步麻烦,需要自己写一个 GitHub Webhook 来同步自己发布到 Git Repo 内的文章 功能缺失,甚至图片尺寸调节这类非常基本的功能也要通过插件实现 博客撰写体验 不好kēng diē,特别是在移动平台上,很难找到像样的Markdown编辑器 启动速度慢导致生成时间较长 博客标签系统不灵活,难以实现多标签以及标签云等功能 第三点尤为致命,因为我经常在手机上编写博客,如果不能找到一个像样的编辑器,我就没法找到写博客的热情,而博客的更新也进入了有生之年系列。 Hello, Ghost 正巧前两天我更换...
Read post
About
诶,这家伙是谁? 我是 PeterCxy,曾用网名 颠倒的阿卡林型次元 和 喝雪碧的虾。 好吧,你是干啥的? 本人纯属折腾党一枚。小学的时候舅舅带我入了 计算机 这个 大坑,从此无法爬出。一开始是2-3天重装一次系统,后来在四/五年级的时候 ~~入了易语言这个坑, 并在坑里面折腾好久~~。初中的时候不再搞编程,而是自从初二买了一个Android手机以后开始折腾ROM移植。初三的时候知道 Android竟然是开源的,于是又学了几天 Java 入坑ROM开发。高中以后,因为编译ROM太耗时,所以又入了 Android App开发 这个坑……当然,包括开发 Xposed模块。在这时加入了 纸飞机开发团队,大概这坑我是再也填不上了…… 哦对了,关于 做过主机商 的黑历史 ~~我就不说了~~ 另外,现在我还是一个 FOSS(Free & Open Source Software) 追随者. 关于这个博客有什么梗么? 这个域名最初是我在 ResellerClub 瞎搜索域名的时候搜索到的,当时想找个好域名,想到 type 是 输入 的意思,于是就口胡了这个域名出来。很可惜,t...
Read post
さようなら、2015
年年岁岁花相似,岁岁年年人不同。 又到了这样的一个时候,这样一个辞旧迎新的时候。说实话,这个时刻和以前任何一个时刻并没有什么区别,不过是一个普通的时间点,过了这个时刻,什么也不会发生。只是因为蓝星人们把它作为 年龄增长的标志, 这一刻才有了意义。 昨天睡觉的时候,突然想到自己应该写一篇博客把过去的这一年记下来。我从来没有写这种年终总结文章的习惯,但是这一次我却觉得必须写。或许是我做作,但是2015的确是值得记录的一年。 2015年的这个时候,我正在准备 小高考, 和我在当时刚刚结识几个月的新同学们一起。在高一的时候,我身处一个有些死气沉沉的班级。也许是因为学霸太多,也许是因为我自己的情绪,或者是因为班主任,高一的时候我觉得那个班级充满了压抑。下课,除了闷头写作业的,便是在睡觉的;甚至连说话的声音都没有,若不是窗外有其他班级的声音,根本不可能区分上课下课。那时候班主任是个语文老师,在语文课上只有一个要求,就是记笔记,凡是他在屏幕上打出来的东西,都要如实记录,于是语文课在大部分情况下就是抄写课,沉闷得可怕。那时候我一度萌生做个 倒计时 装置的想法。而在高二(高二文理分科重新分了班)的...
Read post
Hello, Marshmallow!
和我的Moto X 2014一起吃的那些棉花糖。 Android 6.0 也即 Marshmallow 出来也一个多月了,而我一直没能用上。好在 Moto X 2014 还算是个旗舰机,这等待的过程并未持续很久。 CyanogenMod 13 首先给 Moto X 2014 带来棉花糖的是非官方的CM13。这个非官方的CM13是由 xda-developers 上的一位开发者自行适配的: http://forum.xda-developers.com/moto-x-2014/development/rom-cyanogenmod-13-t3243768 作为折腾党,我肯定第一时间就更新了CM13。但是最初的一个版本有严重的问题,比如说锁屏密码无法设置。这个bug后来修复了,可是 Smart Lock 的人脸解锁仍不正常。而且根据作者近两天所说 Once again, im here to sadly say that I was robbed and the robbers took my cell phone, AGAIN, and at the moment I c...
Read post
如此素质
几天前,我的一个老师说了这样一段让我细思恐极的话 你们这里的家长素质不行,有点事就投诉学校。像衡水中学那样的地方,从来都不会发生这样的事情。 这就比较有趣了。确实,有过类似好事者无理取闹的情况,但是不能排除学校确实存在问题的时候。可是 没有人投诉 这种情况,真的是所谓 素质高 的体现吗? 不能否认的是,如果从高考第一的角度来看,的确没有问题。学校这种东西,总是要追求各种率的:一本率,二本率……而这本身也是学生至少是家长所要的东西。所以某些高考机器学校的各种压榨时间的行为,就变得十分合理了,也没有什么好 叽叽歪歪 的。这大概就是这位同时身为校领导的老师所认为的。 可是不能忘了,不是所有学校都有这样的能力,也不是所有地方的家长都是这种心态。特别是 素质高 一些的家长,或者比较开放的地区,他们不会觉得高考是唯一的任务。而学校也是,你既要允许开设社团、学生会,又要学生和家长对学校言听计从,怎么可能?你既没有出100多个清北学生的能力,又想占用那么多时间,怎么可能?你给予了学生 非高考 带一些时间,他们自然就有时间去思考,自然就会对把现在的一切投入高考是否能改变是否有意义提出疑问;有...
Read post
在Android上运行Linux发行版
定制可以在 Android 手机/平板上运行的Linux发行版镜像,使用 chroot 在很久以前,我曾发现过一个App,叫 LinuxOnAndroid, 也在以前的米1上面玩过,那时候这个东西的确能够运行很多Linux发行版。可惜,后来这个项目停止维护了,里面的镜像都已经太老旧以至于更新一下都可能失败。后来换了米2,更新了 Android 5.0, 由于它要求 ARM PIE 而 LinuxOnAndroid 的镜像里面并没有开启这个,所以我认为它会失败而很久没有折腾。直到前天,在 ##Orz 大水群里面,有人告诉我在 chroot 环境里面是不会被这个限制影响的,因为这个限制是在Android的 linker 里面而不是内核里面,一旦切换根目录就会被替换掉。 正好,我也长期苦于在手机上没有好办法使用 git, 以及难以调试 nodejs Python 之类的东西,所以趁着中秋假期借鉴LinuxOnAndroid的经验自己跑起来一个Linux。 准备 由于我不可能把所有发行版都装一次,也不可能在各种手机上都测试一遍,所以我只能以如下的环境为例 armv7h 设备 (如M...
Read post
无尽的八月
写在暑假的最后,高三到来之际。 现在是2015年8月28日,距离我高三年级的开学日期只有两天。实际上,这是我暑假中能够自由支配的最后一天。很早就想写这么一篇文章,谁知道,一直拖到这一天,也真是拖延症发作…… 这个暑假,号称最短的暑假——对于我们准高三学生而言,更是如此。只有50天的 可用 假期,再去掉被作业和补课(尽管我没参加)占用的部分,真正的假期并没有几天的时间。在放暑假前,我曾有无数的计划,比如说刷 算法导论 以备战最后一次 NOIP,或者学习新的编程语言,然而这些计划,一个也没有实现。我在暑假里做的最大的事情就是准备并参与了在 Connext 的演讲。要说还做了什么,就是学会使用 node.js 之类的事情吧。当然,去内蒙古的一趟旅游也是永远无法忘记的经历。 有点浪费时间的样子呢。在暑假的最后几天,我头脑一热,决定补完麻枝准大魔王自三部曲以来的所有动画作品,即 Clannad Air Kanon Angel Beats! 和未完结的 Charlotte。基本上都是从早上起床补到晚上睡觉。似乎更加浪费时间的样子呢。 但,这个八月,我永远无法忘记。 在麻枝准的三部曲中,我...
Read post
一路向北
北京、Connext以及更多。 在7月18日,我们全家动身向北出发。一是因为我们有一个在这个暑假去内蒙古的旅游计划,二是因为19日在北京航空航天大学将举办一场奇怪的 ~~面基~~ Connext大会。当天早上5点左右出发,计划是在下午4点左右到达北京,然而因为在北京市外堵车和办理所谓 进京证 的问题,我们实际上6点多才到达预订的酒店。不管怎么说,Connext 毕竟还是赶上了…… Connext Connext 2015 在19日早上如期举行了。我也在大会开始前一个半小时就到了会场,因为担心自己会找不到——确实找不到……奇怪的报告厅在一个下沉式的广场里面,然而到了北航的我根本就没有发现这个地方,在地面上转了好几圈以后才被 @七只小鸡 带到会场。遇到这种问题的并不是我一个人,我的一个同学也在北航迷路了……后来 @七只小鸡 用 画图 做了一张所谓的 手绘地图,似乎起到了一点作用…… 我在 Connext 的演讲主要是想安利一下 BlackLight 和讲讲黑历史……去这里的真实目的其实就和上面我划掉的那个词一样,是为了 面基。在会场,我见到了很多大神,比如说 @比尔盖子 小白 (A...
Read post
关于我的 Moto X 2014 (victara)
这并不是一篇评测。 逝去的米2 上个星期,所谓 MIUI7 正式对外发布。作为一贯的MIUI黑,我居然在那天想到把我的米2更新成 MIUI7 试试看。当天上MIUI论坛,看到了一个置顶帖子,是在收集情况,这个情况就是在升级了最近的MIUI版本以后,很多人的米2出现的无限重启的情况。当时我没有在意这种问题,直接略过下载了 MIUI7,想也没想就刷上了。 刷完以后,用了有三个小时吧,觉得烫手,而且仍然不甚喜欢MIUI的风格,于是又把 MIUI7 清除掉,刷了 FlyMe。但是,这个 FlyMe,开机动画每次进行到20s左右,就立刻黑屏重启。当时我认为是ROM的问题,就把原来的 CM12.1 的备份恢复了,继续使用。 然而到了晚上以后,问题出现了。在某些时候,如果关掉手机重新开机,每次进行到快要进入系统的时刻就立即黑屏重启,而进入 Recovery 做什么都没有关系。只有插上电源才可以成功开机。再后来,即使有满的电量,也完全不能离开电源。 更换了电池,并没有任何作用。看起来是某处IC烧掉了。目测和刷机或者当天试用的过程中出现的大量发热有密切的关系。 于是我的米2就这么变成了个电子...
Read post
今天,你混淆了吗
使用 obfs4proxy 混淆 shadowsocks 流量 BOOOM 最近,在 shadowsocks 的 GitHub 上出现了这样一个 Issue: Link 内容是说,最近有很多服务器因使用 shadowsocks 而受到干扰或者暂时性的封锁。当然,其真实性和是否与GFW有关,我都无从得知。但是后来又听说某些地区的 中国移动 开始尝试干扰 shadowsocks, 另外,这两天我的 shadowsocks 的确会出现在某些时刻突然完全无法访问的现象,与GFW是否有关?仍然无从得知。 但是 shadowsocks 的确有一些缺陷,比如说 iv 固定等等。这都导致了其封禁的可能性。 在这么多 疑似 的事情之后,对流量做一定的混淆还是有必要的,虽然我也有备用的方案。 工具 大名鼎鼎的 Tor Project 之所以能够一直在国内活到今天,非常依赖于它所开发的各种 Pluggable Transport,就是各种传输层面的插件。这些插件中很多都是用来混淆加密流量,使其看起来没有特征或类似于另一种正常协议的特征。 其中比较有名的就是 obfsproxy。当然,其版本 ...
Read post
监控服务器网络状态
通过 rrdtool 和 crontab 我很早就想在服务器上跑一个软件来监测服务器当前的状态,特别是流量/带宽信息。但是,我之前使用的一直是国外的VPS,它们的流量不是无限,就是 1T 以上,以中国的国际带宽,基本上不可能在一个月之内用完这么多流量。然而,在不久以前,由于电信的国际带宽陷入炸裂状态,我使用 阿里云 的青岛节点做了一个中转,选择的是按流量计费的方式。由于国内的流量费再也不是白菜价,所以我急需一个流量统计的方式,顺便还应该可以监控一下从 阿里云 到我的国外VPS的延迟和丢包。 寻找 crontab 是肯定要用到的。我在 阿里云 上使用的是 CentOS 7,官方源里面有一个 cronie,这就是我所使用的 crontab 实现了。 然而关于绘图工具,我一直在纠结。本来想自己写一个脚本来绘图,但是我实在是懒,而且数据的保存还是一个大问题。后来在微博上看见别人做的统计图很好,是使用 rrdtool 绘制的。而事实上, rrd 还是一种统计数据归档的手段。 rrdtool 呃,据说还是个标准来着…… 不管怎么样,就是它了。 创建数据源 这里我需要统计的是服务端某...
Read post
饕餮肉宴
s/肉/人肉 这种题目一看就像是多少年前某笔名鲁迅的先生最喜欢吐槽的东西,然而我作为一个小透明,从来都不希望在这种程度上复制以前的所谓成功人物。但是,贵国从来都是喜欢打破人的底线的,在三观这一点上尤其如此。最近由于一些原因,经常接触到这类令人颠覆三观的事情,想着一个人总该把他想的都说出来,而不是整天为了所谓的名誉颜面而遮遮掩掩,故提键盘写下这篇吐槽博客。 我们一直讲,什么过去的社会是吃人的。但是,很不幸的是,也许人,或者至少在这个神奇的地方,无论在什么年代,都是靠吃人维持的。 最美 事实上这个词现在是被玩坏的词。在所谓 拐来的最美乡村教师 事件被炒起来之前,我也曾觉得各种 最美 是正能量,至少说是一种善良的标志。但是,这件事以后,我不得不对这个词的意义进行反思。 不可否认的是,这一系列 最美 头衔背后的初衷必然是好的,是希望引人向善的。可是问题就出在,这个 最美 的标准是什么。拿什么来衡量是不是 最美 呢?是过去的三从四德一样的旧道德,还是所谓的核心价值观,或者是两者混杂的奇怪的东西?从最近这件事来看,似乎都不是,而是硬生生地将一些本来阴暗的事件向好的方向扯。向 官方 所认为...
Read post
给Jekyll静态博客扩展动态评论系统
其实是因为 Disqus 被我玩坏了 (大雾)。 起因 各位都知道,Jekyll 是一个静态的博客系统。它的文章以文本形式存储,当文章更新时,通过解析模板重新生成的方式来更新页面。这样的博客对服务器的压力非常小,但同时最大的弱点也在于 静态,也就是无法原生实现一个评论系统。 然而评论是一个博客非常重要的功能。所以,大部分人在使用 Jekyll 的同时,都会配合 Disqus 来实现评论系统。但是我在开头说了, Disqus 这玩意被我玩坏了,所有的头像都处于叉烧包状态……而且毕竟使用第三方的评论系统不利于博客的自主管理。 所以,在昨天(2015年8月14日)下午,我决定,给自己的博客扩展一个动态评论系统。这不是 Yet Another, 这不是 Yet Another. 后端: 构想 这个暑假我在学写 CoffeeScript,并且已经使用 CoffeeScript 编写了一个 Telegram 机器人,写了一个叫做 korubaku 的用于避免回调地狱的 nodejs 模块。所以,我的第一想法就是使用 nodejs + CoffeeScript 来做一个后端。 至于数据...
Read post
谁才是流氓
a.k.a 开源系统 -> 流氓软件多? 不止一次,当Android上出现流氓软件的时候,我都会看见有人把流氓软件的事怪到 开源 这两个字上来,似乎对于这些人来说,闭源 才是真理,而 开源 只会导致别人什么权限都能获取,只会导致流氓软件遍地走。而能够查看源代码,似乎更让他们觉得自己的隐私完全没有保证,似乎看了源代码就能掌握 核心技术 秘密武器,就能马上看见他们晚上做的什么事情,似乎开放源代码是只有犯傻才会干的一种事…… 所以这篇文章只是一篇口水文,仅因为140字不足以表达本人的驳斥。各位看官请慎重点击 more 起因 既然要喷人,请待我将这件事情慢慢道来,我不喜欢一开篇就喷到底。 今早起床,按常规打开微博,看到了这么一条消息(由别人转发,转发者已自动去除) 照理说这种微博很常见,不过这家伙过了一会又发了个这样的 这句话出现在我的时间流里让我感觉很不舒服,莫非您老看见 不穿底裤 的人就去做一些什么奇怪的事情也不犯法?呜呼,真是可怕。于是我就回他说,Windows 不开源咋也有这么多流氓软件的?于是—— 哦,原来是要拿 Windows Phone 和 ...
Read post
Telegram Bot API 折腾记
从 2015年6月24日 以后,Telegram 正式开始提供开放的 机器人平台。实际上在这之前,Telegram 上已经有大量的 Bots 存在,只不过它们多数是使用 telegram-cli 实现的。但是这些机器人不能够与 Telegram 客户端的UI交互,不能够弹出可选项之类,而且也不能设置是否允许加入群组、是否能够查看所有消息等。而机器人平台具有一些特殊的API接口,比如说能够自定义用户可见的选项、可以在Telegram客户端中添加一个命令菜单等等。更重要的是,机器人API采用的是简单的 http(s) 协议,而不需要像以前那样自己实现一套 MTProto. 我自己也早就想要做一个玩具,正好碰上Telegram开放机器人平台,欣然决定开坑写一个Telegram机器人。这篇文章也许又是一个备忘吧…… 机器人之父 Telegram 上有一个叫做 @BotFather 的用户,是用来管理机器人的一个机器人账户。通过它的 /newbot 命令,可以创建新的机器人,创建成功后它会发送一个 API Token 过来,需要妥善保管。它的其他命令主要用于设置机器人有关信息,比如关于...
Read post
Google 出手尝试解决 Android WebView 的碎片化
最近可能不少人都在 Google Play Store 上发现了一个新的App: Android System WebView 根据解释,这个是 Android 内置的 WebView 的独立版本。很多人都下载安装了这个App,评论里也有各种奇(xia)葩(bai)评论,说是这个组件非常有效果。Google甚至还建立了一个社群用于发布最新的测试版 WebView。作为一个折腾党,我肯定不能而且没有错过这个App。倒是只有一个问题:WebView 这种组件如何能够独立出来? What WebView 是 Android 系统内置的供第三方App调用的浏览器组件。更严格地说,它仅仅是内置的渲染引擎的一个封装。在 Android 4.4 以前, WebView 的后端是经过轻微修改的 WebKit,其源码位于 Android 源代码的 external/webkit 下,基本上就是原 WebKit 的一个拷贝。从 Android 4.4 开始,这个 WebKit 后端被替换成了谷歌自己做的 Chromium,就是那个版本号狂魔。并且,在替换为 Chromium 的同时,WebView...
Read post
无聊迁移到Btrfs杂记
前天,我 小高考 (江苏学测) 完了。放假两天。回到家里感觉无聊没事做,欣然决定将我的整个磁盘迁移到 btrfs 上。也是打算用这两天时间来……算是在 语数外 三门轮番轰炸前的最后一次折腾吧。 关于 btrfs 我想大家都应该了解一些。我主要看中的是 btrfs 的 snapshot 和 subvolume 功能,因为我使用的是滚动更新的 gentoo,有 滚挂 的风险,如果有了 snapshot ,一旦滚挂,只需恢复即可。 对于手抽党而言,btrfs 更有可能拯救你手抽破坏的各种东西…… 而 btrfs 的转换过程才是最最痛苦的,这个我等下再吐槽了…… 准备内核 由于我使用的是 Gentoo Linux, 所以要手工编译内核,只需要开启 File Systems 下的 Btrfs 一项再重新编译即可。 转换分区 虽然 Google 上有很多 Live convert 教程,但是我真的觉得那会很危险…… 我是使用的 SystemRescueCD 引导转换的,因为它自带 btrfs-progs 这个包,只消运行 btrfs-convert /dev/sdaX 即可转...
Read post
向V2EX说再见
嗯,这是一个很不幸的消息。如果你现在打开 http://v2ex.com ,你只会收到一个 Connection Reset。这样就完了?不不不,如果你打开 http://just-type-anything-here.com/v2ex.com ,你仍然会收到一个 Connection Reset 。 看出来了吗?v2ex 现在已经荣幸地成为关键字之一了。对于非加密流量,检测到 v2ex,就将发出 TCP REST 消息。然而我想,加密流量的屏蔽也不远了。不要忘了 DNS污染 大法。 我结识 V2EX ,是在以前用 iPod Touch 的时候,使用了 V2EX DNS 来加速到应用商店的访问。虽然一直不太活跃,但是也一直……拿着连续登录奖励…… 对于这种事情,我想我们不能只是惋惜。其实我只是想陈述一下这件事的前因后果。 很久很久以前 Long long ago, 在一个叫 v2ex 的地方,有一位叫做 clowwindy 的用户。他为了避免 网络流量分类技术 和 ssh tunnel 的低效,自己写了一个用于加密流量的协议,并 自用了一年多. 后来,由于这个协议非常高...
Read post
迁移到GPT+UEFI
我这台电脑的主板(H77)默认是打开 UEFI 的。但是两年前,装机的时候,因为当时我还是一个彻头彻尾的Linux小白,只会跟着 Ubuntu Installer 安装,而当时的 Ubuntu Installer 又恰好在UEFI模式下工作不正常,所以我就关了UEFI。后来我折腾 ArchLinux 和 Gentoo Linux 的时候,遭遇了各种由 bootloader 导致的问题,比如说 GRUB 跟我闹别扭死活不引导的奇葩问题。而 UEFI 模式可以不需要 GRUB 之流的引导程序,再加上我好奇~~不折腾会死~~的心理,我决定迁移到 GPT + UEFI 阿卡林现在使用的是 Gentoo Linux x86_64 和 systemd (拒绝圣战),也就是寒假伊始我作死折腾的那个。但是,由于 Gentoo Wiki 实在是不够完整,所以我参考了很多 Arch Wiki 的内容。 转换分区 这一步我是在系统里直接操作的。根据 Arch Wiki 上的内容,我们可以使用 gdisk 工具来转换MBR分区表到GPT分区表。 emerge gptfdisk gdisk /dev/...
Read post
在OpenWRT上配置HE IPv6隧道的正确姿势
自从前两天把我的破极路由刷成 OpenWRT (Barrier Breaker) 以后,就各种折腾,先是挂上 Shadowsocks ,然后是多拨,但是没成功。昨天突然想起来以前申请过一个 Tunnelbroker 即 HE 的ipv6隧道,于是决定在OpenWRT上折腾一下。 首先必须说明,目前我在网上看见的所谓配置 OpenWRT 通过IPv6上网的方法基本有效,但在对动态IP即PPPoE拨号上网的支持上几乎全军覆没,包括OpenWRT自带的自动更新隧道IP的接口也不起作用,我猜测是 Tunnelbroker 的API有变动导致的。 因此,这篇文章算是对那些教程的一个补充。 准备 前往 http://tunnelbroker.net 创建一个IPv6隧道,服务器推荐选择亚洲区域的 在OpenWRT上通过opkg或刷机的方式安装IPv6支持及 6in4 软件包 安装 Radvd 及其LuCI界面 更换支持IPv6的DNS服务器,例如 8.8.8.8 配置 方便起见,我推荐大家直接使用 LuCI 控制面板操作。 进入 Network -> Interfac...
Read post
有效降低DigitalOcean VPS高峰期丢包率
上次GitHub送免费的礼包,其中包含DigitalOcean的100美刀额度。除了用它建立网站以外,我还用它搭建了一个shadowsocks服务器用于 科学上网 但是DigitalOcean的三帆寺和纽约节点有个问题,在晚高峰期(特别是对于中国电信),那丢包率简直酸爽,开个Google会 NO RESPONSE 好几次才能打开。即使配置了 tcp_hybla 模块,丢包率仍然惊人。 shadowsocks有关讨论中无非就是调整sysctl参数,开启 hybla, 或者使用 锐速 之类。可惜,锐速 这玩意儿死活就是说不支持我的VPS,即使换成他支持列表里面的系统也不行,似乎哪怕内核名不一样也不让运行。不过我在找锐速的时候,看见了Google Code上的一个老项目: https://code.google.com/p/net-speeder/ 这是一个简单的网络加速器。根据作者的描述,这些国外VPS高丢包率的一个原因是延迟过高,路由跳数多,一旦一个环节出现丢包,就会被判断为拥塞,影响速度(http://www.snooda.com/read/324) 而net-spee...
Read post
解决StartCom的SSL证书在Android上不被信任的问题
由于上次域名被盗的教训,我计划在shandian.us和typeblog.net启用 https 加密链接以防被坑。 但是学生党没那么多钱去买什么上千一年的证书,所以我采用了 https://startssl.com 的屌丝版SSL证书。一切配置完成后,发现在Android上访问时,无论如何都出现 证书不被信任 的提示。当时一下心里就凉了半截,难道屌丝的东西就是这么屌丝? 后来在Google上搜索Nginx的SSL配置方法,在某篇文章里发现了这一段 有些浏览器不接受那些众所周知的证书认证机构签署的证书,而另外一些浏览器却接受它们。这是由于证书签发使用了一些中间认证机构,这些中间机构被众所周知的证书认证机构授权代为签发证书,但是它们自己却不被广泛认知,所以有些客户端不予识别。针对这种情况,证书认证机构提供一个证书链的包裹,用来声明众所周知的认证机构和自己的关系,需要将这个证书链包裹与服务器证书合并成一个文件。 也许 StartCom 的 Class 1 就是个中间签发机构,而Android并不认识它们。那么按照文章里提供的方法,只需要将 StartCom 的 CA证书链 ...
Read post
切换到LXQt桌面环境
在 ArchLinux 上用 Gnome 和 Cinnamon 都有一段时间了,用的过程中也发现了它们的不足,比如说不能更换窗口管理器,界面风格千篇一律等等。 昨天在 ArchLinux Wiki 上闲逛发现有介绍 LXQt, 正好激发了我一直想换掉桌面环境的心。 关于LXQt LXQt 是 LXDE 的QT移植版,同样是一个轻量级的Linux桌面环境。根据官方介绍,这将是未来 LXDE 的继承者。 安装 在 ArchLinux 上的安装过程十分简单,从AUR上获取PKGBUILD然后直接编译安装即可。ArchLinux Wiki 上的介绍也十分详细。在其他Linux上也应当有相应的安装方法。我写这篇文章主要是介绍一下我的配置经验,也算留作记录。 登录管理器 图形化的登录管理器我还是推荐 MintDM, 也就是 Linux Mint 所用的图形化登录管理器。安装好 LXQt 以后,会话列表中会自动出现 LXQt Desktop. 窗口管理器 我更换桌面环境的一个重要原因就是希望使用自定义的窗口管理器,而不是被强制使用某一个窗口管理器。 LXQt 的默认窗口管理器...
Read post
关于国产操作系统之我见
自从M$ Windows被政府机关禁用以来,关于“国产操作系统”也闹得沸沸扬扬。既有支持的声音,也有反对的声音。 在这里我不想在操作系统本身完成以前对其作出任何评价,我只想基于以前的国产操作系统发展情况以及我自身的经历来发表一下我对此的观点。各位看官如果认为这是一篇口水文,完全可以略过。 定义 在讨论这个问题之前我们必须搞清楚什么是国产操作系统。基于之前见过的种种国产操作系统,我们对它进行如下定义: 它至少包含有“中国自主知识产权”的部分 它具有一个完整的操作系统功能 它具有一个正常的应用软件生态系统 以上三点我认为都是对国产操作系统不可或缺的。第三点可能有人会有疑问,但是这一点是一个操作系统之所以成为操作系统的一个非常重要的条件。如果没有一个正常的软件生态系统,其下场很可能就是无人问津或者沦为类似于国内的 安卓系统 一样。哦对了请区分 安卓 和 Android。 可行性 有了定义,我们可以讨论一下国产操作系统的可行性了。 针对第一点,我想以中国码农、工程师和设计师们的能力,完全不是什么问题。难道国内码农、工程师和设计师还不能做出具有自主知识产权的东西?吾不信也...
Read post
修复Android App中出现的重复菜单项及Fragment重叠
我的 BlackLight 项目,从一开始,就存在一个非常严重的问题:在屏幕旋转/程序崩溃/低剩余内存等导致Activity重启的情况下,MenuItem 们会重复显示,Fragment 也会不断重复,更严重的是重复的 Fragment 是像堆栈一样堆在底下,导致界面无限卡顿和重叠。 曾经尝试过使用 menu.clear(), 完全无效。对于 Fragment 的问题,我也无数次尝试过每次启动都销毁所有 Fragment,但是也无济于事。 所以,这个奇葩的问题就从第一个alpha版本一直延续到上一个测试版,都没有解决。 而我昨天在调试 夜间模式, 由于需要即时切换到 夜间模式,所以需要用 Activity.recreate() 方法重启界面。但是这一重启彻底暴露了这个问题的严重性,因为重启也会导致重叠和重复问题。所以,我今天终于下定决心解决这个问题。 其实很多事情就是巧合,我以前自己折腾+GitHub+Google+Baidu都一直没有解决的问题,今天居然在 GitHub 上的一个 Issue 里面看见了: https://github.com/JakeWharton/A...
Read post
破解电信Modem F460的超级用户权限并设置自动拨号
这两天,我的TP-Link坏了,网速各种奇葩。 本想直接使用电信送的猫(型号是F460)的无线路由功能,但是这玩意儿默认是桥接模式,连上以后还要通过 PPPOE 拨号才能上网。对于默认不支持拨号的Android手机来说,这东西完全没法用。我需要一个能自动拨号的无线路由器。 因为懒得买路由器,我就去网上查各种资料然后瞎折腾起来。 首先,以前传闻的 nE7jA%5m 这个密码是不能使用的。准确地说,这个密码只在Modem启用前有效。一旦被安装,这个密码就会被修改。不过还好,这个型号猫的root密码都是root(这个是我网上查到的),所以可以通过 telnet 来搞定。 本教程仅保证适用于 F460 型号,其他的猫可以参考但不保证有效。 准备 我使用的电脑系统是 ArchLinux,当然,你不一定要用 Linux,因为 telnet 这个工具命令在很多系统上都有。Windows Mac ,甚至 Android(包含 BusyBox),都可以使用这个命令。 先连接到猫的无线网,然后打开一个终端(命令行),输入 telnet 192.168.1.1 注意此处假设你的网关地址是...
Read post
Makefile构建Android App
好吧,各位已经看到,我最近折腾了各种构建Android App的方法。 但是最后,我还是决定选择 Makefile 这个工具。 准确地说,它是 GNU Makefile, 也是 类Unix 系统下常用的一个构建工具。我选择它的原因非常简单,就是因为它有已经交叉编译好的 ARM 平台版本。这意味着,我开学以后可以用手机来方便地编译App了。 之前使用的 shell 脚本有很多缺陷,比如说遇到错误的时候不能自动终止编译过程。虽然理论上可以终止,但是那一大坨trap写起来就蛋疼。而且 shell 脚本中有些编译中需要使用的功能虽然可以自己实现,但是实现起来很麻烦。而 Makefile 中往往直接提供这些功能,直接调用,规则写起来非常简洁,可读性很好。 准备 在这个文章中,我使用到了 Makefile 的几个特性。 函数 wildcard, 它可以遍历目录下符合一定规则的文件。 函数 foreach, 它类似于shell中的 for ... in ... 这种写法,同样是遍历功能。 函数 addprefix/addsuffix, 它可以给一个变量中的每一个成员添加前缀/后缀 ...
Read post
再次回到ArchLinux
暑假开始的时候我切换到Gentoo Linux,原本打算就这样一直用下去的。但是一个月下来,我最终还是再次回归ArchLinux。 原因嘛,很简单,多半是为了开学以后我为数不多的碰电脑机会着想。众所周知,Gentoo为了实现自己的 USE FLAG,几乎每个使用 emerge 安装的软件都需要下载源码自行编译。刚安装的时候软件不多,编译速度还不错。但是,当我用了一段时间以后,问题就出现了。由于我是个折腾党,软件包装了一大堆,使用 emerge 安装的时候总是出 USE 缺失、软件包被 mask 、 依赖问题这些我都不说了,就连什么都没动想要升级一下已有软件包都要编译半天甚至还要出错( chromium 这种东西我就不说了,编译一下一小时妥妥的)。假如我想升级一下系统,那么起码得用掉一下午的时间。在暑假里,这算不上什么。但是开学以后呢?我一个星期只有星期天能碰一下电脑…… 这也是我回ArchLinux最重要的原因了,至少它的软件包不需要编译,而且可定制性其实完全不逊于Gentoo。ArchLinux的 K.I.S.S 理念其实也不逊于Gentoo。 pacman 的管理能力有时候甚至...
Read post
在Gentoo的Chromium浏览器上运行Flash
之前转战Gentoo坑,然后自编译了一个 chromium 来用,但是它不自带Flash插件,这非常蛋疼。 曾经尝试过安装 Adobe Flash Player,但是无论如何就是不认。后来在Google上查到,Chromium已经不支持npapi插件。 而现在的 Chrome 自带的插件叫做 Pepper Flash,这个插件完美兼容Adobe的Flash格式。 在Gentoo的 portage 上面没有 Pepper Flash 这个包,但是我发现在 www-plugins/chrome-binary-plugins 这个包里面包含了 Pepper Flash 插件。所以我们只需要用 emerge 命令安装这个包(安装的时候会提示修改 package.license 和 package.keywords ,按照提示修改就是了) 安装完了以后,用超级用户编辑 /etc/chromium/default ,把如下内容加在最后一行: alias chromium="/usr/bin/chromium --embed-flash-fullscreen --ppapi-flash-...
Read post
FUCK THE THIEF!
是的,我第一次在博客文章里用这么脏的标题。 为什么呢?因为某些人已经让我找不到任何文明的词语来形容了。 事情是这样的,昨天晚上,有人跟我说,我的typeblog.net和shandian.us如果加上前缀访问(e.g. www.typeblog.net),就会自动跳转到一个枪支弹药网站。我本来以为是他的本地DNS被劫持了,但是我自己访问一试也是这样子。 果然,我登陆dnspod提示密码错误,这时候我心里就各种卧槽了。当我找回密码登陆进去以后,却发现我的域名全不见了——被人转移到其他账户了。更缺德的是,他把我的所有域名都泛解析到一个枪支弹药的钓鱼IP(199.188.73.24),却留下我自己设定的解析——这就是为什么我一直没有发现问题。 通过whois认证找回了shandian.us,却发现typeblog.net因为我开启了whois隐私保护而无法认证。坑!解除隐私保护以后过了几个小时才生效,此后我终于找回了typeblog.net。 也算是幸运了,因为发现得早,还没有到被墙的地步。要是被墙了,那就真的不好玩了。 但是我仍然要说FUCK THE THIEF,因为这种人...
Read post
Typeblog改版啦!
我这个人,怎么说呢,每次一个东西用老了就感觉很不爽,要换掉。而博客模板也是这样。 不过,最主要的原因,不是模板老了,而是在手机上访问博客实在蛋疼。之前那个模板,设计并不out,但是在手机上几乎处于不能用的状态。所以,我这个半吊子“程序猿”也只好亲手做了一个博客模板。 这次的模板使用bootstrap-flat制作,所以给我省了不少时间,还自带响应式支持,这样的话,手机上的访问毫无压力。而bootstrap-flat延续了之前的扁平化现代风格,所以博客现在看起来仍然是那么有feel。 当然,这个模板借鉴了原来那个yoUED模板的设计风格,还是要感谢一下上个模板的原作者的!谢谢! 好了,博客模板改了,可是名字没改,依然要好好的Typeblog。对了,新模板仍然开放在github上,大家可以点击导航中的github链接去fork me! ...
Read post
OpenJDK7编译Android4.4小记
自从上次Oracle状告Google以后,Android官网上推荐的JDK就改成OpenJDK7了,但目前只有AOSP的master分支和l-preview分支及以后的版本才支持用OpenJDK7编译。本着“为未来做准备”的态度,我尝试用OpenJDK7编译了一次Android 4.4(KitKat),当然遇到了很多问题。 libcore/libdvm & libcore/libart 报错位置: 对应目录下的 src/main/java/java/lang/Enum.java 解决方法: 感谢 秋叶随风 public final int compareTo(E o) { - return ordinal - o.ordinal; + return ordinal - o.ordinal (); } frameworks/opt/telephony 报错位置: src/java/com/android/internal/telephony/gsm/GSMPhone.java 解决方法: 感谢 秋叶随风 删...
Read post
Hello New World!
又是一个全新的开始。 受够了GitHub的龟速和对jekyll的限制,我决定使用VPS来搭建jekyll站点。此时,微博上的 @比尔盖子V 赞助我了一个VPS上的子帐号。 Jekyll是基于ruby的,所以用子帐号搭建毫无压力。 {% highlight sh %} gem install jekyll {% endhighlight %} 这样jekyll就可用了。 之后,用git clone把GitHub上的网站都clone下来,在每一个目录里都执行jekyll build,用符号链接把所有的网站的_site目录,也就是jekyll build生成的目录,链接到用户根目录下。 然后就简单了,编辑nginx配置文件,将域名一一指向这些目录即可。 为了与GitHub保持同步,我写了一个简单的脚本。 {% highlight sh %} !/bin/bash while true ; do cd path-to-your-website git pull # 获取最新更新 jekyll build # 生成站点 sleep 600 #...
Read post
使用git push命令提交到gerrit
Gerrit是一款被Android开源项目广泛采用的code review(代码审核)系统。以前一直以为必须用repo上传,今天因为偷懒,想用git直接推上去,没想到居然成功了。。 先尝试直接用git push http://review.xxx.xxx/xxx/xxx master:master ,发现返回rejected,查看通知发现是不支持直接推送到主分支。 那么怎么办呢?当时没仔细看清楚通知,试了好多分支名称都不能推送,最后发现,通知告诉我要推送到refs/for下面的分支。 这样就容易了: git push 远程地址 本地分支:refs/for/远程分支 轻松搞定。 ...
Read post
CyanogenMod再见
众所周知,CyanogenMod可能曾经是Android第三方定制版中最优秀最出名的ROM。曾几何时,我们适配新版本Android总是以CM为基础,因为它有无数开发者的贡献,使得它可以成功地运行在老设备上。 不久以前,一条噩耗传来——CM成立了Cyanogen公司,将逐步实现商业化。为何说是噩耗呢?理由很简单。从前,CyanogenMod是一个开源项目,它的目的就是以开源为乐趣,贡献于Android,所有代码都是开源并且分享的。而一旦进行商业化融资(听说他们搞了700万刀子),它的目的就变成了用户量,变成了盈利,而不是开源。 也就是说,CyanogenMod将会私有化一些代码,包括以前由无数贡献者贡献的代码,如果原作者不同意,就只能被移出CM源码——Focal就是一个很好的例子。CM将不再致力于开源和分享,而是用户。为了用户它也许可以不要一切,因为用户就是盈利。 也许我说的太严重了,但各位看好了,如果CM继续这样商业化下去,总有一天会变成这样。CyanogenMod之所以能有如今这么出名,不是因为它的作者是多么伟大,而是因为有数以千计的开发者在背后默默地为CM做贡献。如今CM...
Read post
心在哪里
有人说,当今这世道,人心已不知在何处。 来看看,微博上,几乎天天都有各种恶心事件——女童被全身扎针、男童眼睛被挖、孩子被自己的亲人点火烧伤……这种事件与其说是恶心,不如说是丧心病狂、惨绝人寰。 作为一个人,没错,作为一个人,我甚至无法想象他们做出这种事情的原因是什么。固然有的人对其他人比较冷淡,这是性格导致的,但是如何能够对孩子,甚至是自己的亲人下手?无法想象这种人将会有什么样的性格。 看过很多美国电影,其中有很多都是讲述一些特工,或者是冷血杀手,他们杀人无数,可是最终他们还是会不顾一切地保护一个孩子,或者亲人。杀手尚可如此,那些人又是什么心态? 也许是因为世道不公,也许是因为生活受挫,或许是因为年幼时被虐待,可是这些都是自己的事情,己所不欲,勿施于人,自己完全可以通过其他方式解决,为何要把气撒到别人身上?哪怕就是有仇,也和孩子没关系啊。 有人会说这是一篇吐槽文章,没错,这就是在吐槽,吐槽一些人,心已经不知到哪里去了。 一直说,做事都要留一颗心,这心不是用来提防别人,而是用来审视自己,就像是上帝在看着你一样。做任何事情,问心无愧便好。 可是这些人,做事的时候一点都没有...
Read post
给博客添加手机浏览支持
我博客用的这个模板本来不是响应式的,在手机上浏览的时候会有很多错位和越界的问题,非常难受。因为马上要开学了,不能让自己都看着难受(你懂的),所以,必须做个响应式支持了。 各位都知道我的前端功底很烂……不过不要紧,不就是一个响应式模板么,能用就行。 度娘半天,找到关于响应式的一些资料,其实是很简单…… 各位都知道,HTML中,引用css的方法是使用 link 标签,而该标签支持一个属性 media ,该属性的作用就是判断当前浏览器的条件是否符合,如果符合才调用该CSS。 所以,只须这样: <link rel="stylesheet" media="all and (min-width: 1024px)" type="text/css" href="style.css" /> <link rel="stylesheet" media="all and (max-width: 1024px)" type="text/css" href="style-mobile.css" /> 就可以让网页引用正确的模板啦。 然后,把你网站原本的css拷贝一份,改名style-m...
Read post
获取Android网速的另一种方法
之前,在LOSP4.2上使用的是Android自带的接口来实现获取网速并显示在通知栏,可是到了4.3以后发现这个接口无论如何,返回值都是-1,无奈之下只得另寻办法 功夫不负有心人,我还是找到了一个方法。在Linux中, /proc/net/dev 这个路径,保存了当前网络的所有状态,我们把它用cat命令读取出来,格式是这样的: Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dummy0:...
Read post
在GITHUB上写博客
GITHUB是一个免费的代码托管平台,提供给程序员一个代码共享、托管的空间,我的LOSP项目和国外的著名的CyanogenMod等项目就是托管于GITHUB。 很多程序员都有这样一个需求,那就是为他们的项目建立一个主页。因此GITHUB就推出了这样一项服务,只要你是GITHUB的用户,就可以在GITHUB上建立自己的主页。 这个功能的唯一缺点是仅支持静态页面,不过应对方法很快应运而生,那就是jekyll。这是一个用Ruby脚本语言编写的静态页面生成器,可以用来在GITHUB上生成博客等页面,而GITHUB也官方支持了这个项目,只要你上传jekyll结构的项目目录,GITHUB就会自动将其生成网站并发布。虽然它必须通过Markdown标记语言来写作,但是这对使用GITHUB的程序员们来说,并非什么难事。 当然,我并不建议你只把GITHUB用来建站,因为做人要有点节操,GITHUB PAGES是给托管在其上的项目提供的免费网页服务,并非免费空间,所以…… 要在GITHUB上建立博客,你首先需要在GITHUB上拥有一个账户。 在GITHUB上建立一个名称形如 用户名.github...
Read post
小记触摸版CWM Recovery的制作
众所周知,坑爹的CWM Touch木有开放源代码…… 但是我不甘心,我要给米1做触摸Recovery。 于是在Github上寻找,一直没有找到开源的。 无意间在深度OS的GITHUB上找到了一部分的触摸源代码。 看这个commit:https://github.com/ShenduOS/android_bootable_recovery/commit/19866163c49297d1e6e6348d2db2aa38cac7ce55 cherry-pick过来,编译,发现只能支持触摸按键操作,而且还不能触摸。 经过一番调试,把触摸消息事件号改为50,终于可以正常触摸了。可是感觉很不爽,只能用触摸按键操作。 但是既然触摸按键可以了,为什么全屏触摸不可以呢? 首先,要做一个全触摸的recovery,需要增大菜单项距离。 于是添加了一个EXT_HEIGHT常量,定义为3倍字符高度。 编译,发现顶部空白巨大。 我认为这只是菜单需要一个偏移量。 于是新增常量: #define MENU_OFFSET -2 然后在drawscreenlocked函数中修改,在绘制菜单项的代码行中,所有坐标都...
Read post
米1/1s Recovery截图教程
首先你要找到一个ffmpeg,Windows下可以找到ffmpeg.exe,放到C:\Windows\system32,Linux下直接apt-get install ffmpeg. 然后你得有adb,不会就百度。 启动到recovery,切换到你要截图的页面 执行命令行: Windows下:cd C:\ Linux下:cd ~/桌面 然后: adb pull /dev/graphics/fb0 ffmpeg -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb565 -s 480x854 -i fb0 -f image2 -vcodec png image.png ...
Read post
小米1自编译ROM系统二启动和data挂载解决方案
前段时间开始研究小米的自编译ROM,遇到一个很大的问题,就是系统二刷入以后卡白米。秋叶随风说修复了这个问题,但依然不能用。 经过研究发现,ramdisk里面,init.mione.syspart_system1.rc的第一行是on emmc-fs,而在cm10.1中并未定义emmc,导致系统二启动时不能正确触发启动事件。 删除emmc,测试,发现系统二启动正常,但系统不能自动调用mountext4.sh,导致澳网CWM的双挂载data功能无效。 于是继续折腾: 首先屏蔽掉init.mione.rc里面挂载/data和/cache的语句,然后在init.mione.syspartsystem.rc和init.mione.syspart_system1.rc中,加入如下语句: exec /system/bin/sh /system/bin/mount_ext4.sh /dev/block/platform/msm_sdcc.1/by-name/userdata /data exec /system/bin/sh /system/bin/mount_ext4.sh /dev/blo...
Read post
小米1原生4.1更换内核后usb调试问题的解决
米1的原生4.1很久没有更新过了,很多原生党会喜欢。但是bug太多,很多人通过替换v5内核的方法解决,但是带来了新的问题,就是usb调试不能用(不能连接电脑) 这个问题归根结底是v5的奇葩adbd导致的。因此可以通过解包内核替换adbd解决,但因为最近内核更新频繁,这个方法会非常繁琐,因此我有一个新方法。 首先,解包ROM,解包原生4.1内核,提取其中sbin文件夹内的adbd放到/system/sbin里面(这个目录是需要建立的),然后,编辑/system/etc/init.qcom.post_boot.sh,在代码正文前一行(注意必须在那一坨注释之后)加入代码 sh /system/etc/init.adbd.sh 然后,在etc下建立init.adbd.sh,键入以下代码 #!/system/bin/sh su mount -o remount rw / cd /sbin rm adbd busybox cp /system/sbin/adbd adbd busybox cp /system/sbin/adbd replaced busybox chmod 0777 ...
Read post