为 Hexo 博客添加页面访问计数器

一般来说,写博客的都喜欢在页面上加上一个访问计数器,来满足虚荣心显示某篇文章或者整个站点的访问量。这种需求在 WordPress 等动态博客上都是比较容易满足的,安装个插件即可(辣鸡 Ghost 除外),但是对于小部分静态博客来说就比较头疼了。

目前来看,互联网上的静态博客访问计数器解决方案大致有这么几种:

  • 使用「不蒜子」访问计数服务;
  • 利用 LeanCloud 平台搭建统计服务。

其中「不蒜子」是个自称「永久免费使用」的极简网页计数器,仅需两行代码即可为静态博客添加访问计数功能,这种简单的解决方案也受到很多静态博客作者的喜爱。但正如我之前在这篇文章(为 Ghost 博客添加页面访问计数器)中所述,不蒜子虽然提供了 site_pvsite_uvpage_pv 等多种统计,但是其并不提供这些服务的开放 API。而我的需求是在「首页」或者其他文章列表页中的每篇文章都要显示各自的访问量,并且需要一个「最受欢迎的文章」功能(按访问量倒序排序)。很可惜不蒜子无法满足我的需求,只好将其 PASS。

至于使用 LeanCloud 的方法(详情参见这篇博文),其实是利用了这个平台所提供的「数据存储」后端功能,大部分逻辑都在前端完成,而 LeanCloud 只负责存储数据。但是,这个现成的访问计数程序也不支持输出「最受欢迎的文章」功能,只能自己实现。而且,既然我已经有了 VPS,那我为啥还要去弄个 LeanCloud 呢?

综上,我决定自己写一个网页访问量计数服务。

阅读全文→

Twitter 账号被锁定是种怎样的体验

两天前(2017-06-17),我的 Twitter 账号莫名其妙被锁定了,原因是有「自动行为」。

locked

WTF? 你特么在逗我?黑人问号

我思前想后,估计那一天关于 Twitter 我干的最值得怀疑的就是「多设备异地登录」了。具体流程如下(都是发生在 6.17 那一天,其实看我那一天被封前的推文也行):

阅读全文→

博客已迁移至 Hexo

是的,我又双叒叕换博客程序了。

话是这样说,其实也没有很频繁啦,上一次从 WordPress 迁移至 Ghost 已经是一年多前的事了。这次是从 Ghost 迁移至 Hexo,一个静态博客生成器。总体来看,我对博客程序的选择是越来越轻(zhuang)(bi)化了。

目前,本博客已经完全迁移至 Hexo,包括所有的文章和主题。不过话说回来现在回头去看两年多前写的文章,真的挺尬的,行文风格完全不一样,超尬 (つд⊂) 目前我在用的这个主题(Seventeen)已经陪了我快三年了,之前我把它从 WordPress 移植到 Ghost,现在到了 Hexo 我又把它给移植过来了,我也是爱得深沉啊(笑)

既然现在迁移完成了,我打算列举一下我迁移的理由,算是个记录。

一、动态博客的优点

动态博客肯定是有一些静态博客所无法实现的优点的,不然我之前也不会一直使用动态博客,而没有考虑过使用静态博客了。

  • 动态博客功能强大,插件众多,甚至能当 CMS 用;
  • 数据存储基于数据库,灵活性强;
  • 有管理后台,发布、更新文章等操作方便;
  • 自带的附件、站内搜索、评论系统等功能。

那我为毛要选择迁移至静态博客呢?

阅读全文→

Hexo 获取特定分类或标签下的文章

今天在将博客主题移植至 Hexo 时,想要获取某个分类(Category)或者标签(Tag)下的所有文章(准确来说是想获得文章总数),在使用中文关键词搜索时,没有获得任何有用的信息(或许是我搜索姿势不对)。换用英文关键词「hexo category all posts」后搜索到了所需的信息,遂决定写一篇文章记录一下,希望能帮到后来人。

获取特定分类下的文章

let result = site.categories.findOne({name: 'example'})

同样的,你可以这样获取特定标签下的文章:

site.tags.findOne({name: 'example'})

其中 name 指定要查找分类的名称,返回值是一个 Warehouse(Hexo 作者开发的一个轻量级数据库) Document 对象。你可以直接使用 result.length 来获得该分类 / 标签下的文章总数。你也可以用 forEach 来遍历每篇文章:

阅读全文→

让 Lumen 的 dd() 与 dump() 函数输出更漂亮

做开发的,免不了要和调试打交道。单说 PHP,有的人直接 echo,有的人用 print_r(),有的人用 var_dump(),还有的人直接上 Xdebug,用啥的都有。

如果你用过 Laravel,那你应该知道 Laravel 内置了几个很方便的帮助函数(Helper)—— dd()dump()。这两个函数都能够输出变量的值,不同的是 dd() 在输出变量值后会停止脚本的执行,而 dump() 不会。它们的使用方法可参照官方文档:Helpers - Laravel Documentation

Laravel dd() 输出示例

什么?哦,上帝!真是见鬼!怎么会有人在 Laravel 中还在用 echo + die()?好家伙,我敢打赌,他一定没有好好看文档,我向圣母玛利亚保证。如果让我看到这群愚蠢的土拨鼠,看在上帝的份上,我会用靴子狠狠地踢他们的屁股,我发誓我绝对会。

阅读全文→

给 ATH-ES55 耳机更换线材

大概是几年前(总之是我的 AM800 掉在火车上之后),我从某位 dalao 手里低价收来了 ATH-IM50 和 ATH-ES55 两副耳机。当时写的记录文章在 这里,两年前的文章,现在看起来挺尬的,行文风格差了真不是一点半点。

而且好几年过去了,这俩耳机也或多或少都出了些问题。其中 IM50 原配的线已经发硬且接触不良,官方升级线又买不起(说实话也不值),于是就去某宝买了个 DIY 升级线,用着也还算不错。

某宝订单

至于 ES55,收来的时候耳机插头就是坏的,虽然当初随便买了个插头随便焊上去了事,不过后来又重新焊了一次(当时写的博文在 这里)。然而因为 ES55 不好在学校里用(太显眼,漏音也严重),放着吃灰了几个月,前几天高考结束拿出来的时候发现它的线材都已经变得黏糊糊的了。

阅读全文→

在中国大陆购买 Google Play 内容的几种方法

剁tm的!

虽然 Google Play 在中国大陆无法正常使用,但作为 Android 官方的应用市场,我们正版软件受害者经常需要在 Play 商店上购买正版应用或者通过 Google Play 内购支持开发者等等。

但是作为一个不存在的公司,我们在国内用惯了的支付宝、微信支付等国内支付平台自然是无法用于购买 Google Play 内容的,所以想要在 Google Play 上花钱并不是一件容易的事。

那么身在中国大陆,我们到底要怎样才能在 Google Play 上愉快地买买买呢?本文列举了一些行之有效的方法(截至本文发布时),权当记录,希望对后来人有帮助。

阅读全文→

反驳为“六四”屠杀辩护的几种论调

自从我建这个博客以来,每逢六月四日我都要发一篇纪念“六四”的文章。本来我也想写一篇长文讲讲几年来中国社会某些魔幻之处的,提纲草稿都已列好,奈何高考将近,虽惜其不成,却也只得暂且放下。

今天是“六四”事件的第 28 周年纪念日。

近年来,从 709 维权律师大抓捕,到抗日爱国青年的 U 型锁,到 clowwindy 的被喝茶,到雷洋案的涉案民警不起诉,到「向西方司法独立等错误思潮亮剑」的荒谬言论,到少年雷文峰之死,到打破了不知多少经济学常识的房地产大泡沫,到逼人犯罪的辱母杀人案,到愈发严格的言论管制信息审查,到打碎一地玻璃心的马里兰大学毕业演讲,到反普世价值与对基本人权的剥夺,再到郭文贵爆料所揭示腐败盛行的中共高层……

我亲眼见着在【伟大光荣正确】的中国共产党领导下的盛世中国正上演着一部愈演愈烈的大型社会主义魔幻剧。

满纸荒唐言,一把辛酸泪。

盛世中国梦,谁解其中味?

阅读全文→

纪念 ATH-C770 君

ATH-C770 者,铁三角家之低端入门耳塞也。

自 2016.11.11 起,C770 君半岁为吾枕边塞,夙兴夜寐,靡有朝矣。三频无短板,听感亦舒适,中能女毒,下能动次,虽难阻耳外嘈杂喧嚣,却也能保吾行(自行)车之安全,实为 ¥200 以下超值之选。

C770 遗照

……不知道上面抽了什么风用蹩脚的文言做了博文开头,看起来逼格还蛮高。然而我并没有学过文言写作,顶多也就是应试教育中知晓了些许文言知识,拿点词句瞎耍耍,诸君见笑了 XD

阅读全文→

使用 ffmpeg 拼接 bilibili 客户端所下载的分段 flv 视频

唉,我现在用的这破手机播 1080P 视频要掉帧,只好在电脑上看,说不出话。

缘起

前些天我关注的某 气人主播 在 bilibili 上传了《盗贼之海》(Sea of Thieves)Alpha 测试的直播录像,却因吃了文化亏不慎违反了保密协定,不久视频就被不存在了。不过好在有热心猛男把缓存好了的睾清视频发了出来,像我这样没赶上趟的人才能爽到 :P

感谢这位pong友

然而这位pong友上传的是 bilibili 客户端的下载(缓存)格式,虽然放在手机的 /Android/data/tv.danmaku.bili/download 目录下就可以被客户端直接识别,但是想要在电脑上直接播放就没那么容易了。

阅读全文→