phpStudy 访问探针页面出现 502 Bad Gateway 的解决方法

不要问我为什么要用 phpStudy,我也不想。

TL;DR 太长不看

Windows 环境下的 PHP 7.2.1 / 7.1.13 这两个版本有问题,在执行 getenv() 函数且第二个参数为 false 时,会造成 PHP FastCGI 进程 ( php-cgi.exe ) 崩溃。这是一个已知的 BUG,并且已经在 2018-02-01 发布的 PHP 7.2.2PHP 7.1.14被修复 了。

然而遗憾的是,你现在(截至发稿日 2018-10-21)能在 phpStudy 官网下载到的最新的集成环境,其中的 PHP 版本依然停留在 7.2.1 与 7.1.13。惊不惊喜,意不意外?

phpstudy-fake-version-7210

最绝的是,phpStudy 明明自带的是 7.2.1 版本的 PHP,却在界面上显示成了 7.2.10,是我瞎了还是你瞎了?补零也不是你这么补的啊兄弟……

修复方法也很简单,升级 PHP 版本即可

下面开始讲废话。

阅读全文→

今天开始请叫我 PRIN / 布丁 🍮

没想到吧!那个摸鱼博主竟然会连续两天更新博客!


这不是我第一次这么想:

我的常用 ID printempw 太难读了。

有多难读呢?难读到连我自己都不知道这玩意该怎么读。

这个 ID 的词源是法语的 printemps(春天,春季),将这个单词尾部的 s 替换为 w 后……才怪嘞!我又不会法语,怎么可能是这么高大上的理由嘛(笑)。虽然词源确实是法语,但这个单词是我看了《LoveLive!》后才知道的 —— Printemps 同时也是企划中 高坂穗乃果、南ことり、小泉花阳 组成的 μ’s 三个小分队之一。当时正好沉迷 LL,取 ID 时顺手就用了这个,因为 printemps 已经被占用了就稍微修改了一下变成现在的 printempw ……

嗯,真的是个怎样都好的理由。XD


关于读音,法语单词 printemps 的读音是 [prɛ̃tɑ̃],LL 中 printemps 的读音是 [プランタン](到这里就改得没原型了……日本人的外来语发音一如既往地奇妙),按照英语的发音习惯 printemps 大概可以读成 [prɪnˈtemps],而将单词尾部的 s 修改为 w 后应该读作……

meme-duck-question-mark

因此,这几年我一直致力于给自己起一个简单易懂、中日英三语都易于发音、和 printempw 这个常用 ID 有关联、最好能够可爱一些的昵称,但是苦于一直找不到合适的。

然而就在前几天的高数课上(?),我灵光一闪:

printempw -> PRIN -> プリン -> 🍮 -> 布丁!

唉,我都被自己的天才想法惊到了(不)。


情况呢就是这么个情况,以后这就是我的新昵称了:

  • 书写:PRIN 或者 布丁(中文语境下)
  • 读音:[プリン] 或者 [prɪn]

以后博客标题可能也会作出改动,请多关照。🍮

使用 VS Code 搭建适用于 ACM 练习的 C/C++ 开发环境

大学入学也快一个月了,总的来说,我过得很开心,不枉我花费一年的时间 高考复读。具体哪里令人开心呢?我觉得最主要的是,比起初高中,大学的时间分配更为自由。

中学时代,学生的时间基本都被学校安排得死死的:早上什么时间必须到校,然后开始早读、上午五节课下午三节课、晚读、晚自习,最后在规定的时间离校(住宿生还要在规定的时间就寝),可以自由分配的时间少得可怜,在某些管理严格的学校甚至连人身自由都要被限制。虽然学生们苦中作乐的摸鱼技巧也不容小觑,但考虑到升学的压力,如果在兴趣上分配的时间过多,很有可能就会像我去年一样落得个无法升学的尴尬境地。

而大学相对来说就没有那么多破规矩:有课就上,没课的话时间就随你安排,回寝室睡觉也好出门嗨皮也罢,突出一个爱干嘛干嘛。在这些闲暇时间里,有人选择加入社团以及各种各样的学生组织,有人寻欢作乐讴歌青春,有人一头扎进自己的兴趣爱好中,也有人选择当个快乐摸鱼侠无事一身轻。

而我就比较硬核了,我选择参加可能让我基本告别头发的 ACM 程序设计竞赛(不)。

cs-no-hair

好啦言归正传,今天我们的主题是在 VS Code 编辑器中搭建适用于 ACM 练习的 C/C++ 开发环境。

阅读全文→

WSL 配置指北:打造 Windows 最强命令行

在两年前的八月,Microsoft 正式发布了 Windows 10 Anniversary Update 周年更新(它还有着 RS1,Version 1607,Build 14393 等一大堆别名)。其中最让包括我在内的众多开发者感到兴奋的特性之一,就是 WSL(Windows Subsystem for Linux,当时还叫 Bash on Ubuntu on Windows)的正式加入。

在 Windows 上原生运行 Linux 可执行文件,牛逼疯了!

然而 Bug10 也不是浪得虚名,原本只提供给 Insider 的 WSL 在正式发布后依然问题多多(不仅 zsh、tmux 等工具无法使用,网络相关的操作更是一概欠奉,还有各种各样 奇妙的 BUG),基本没有可用性,我在尝鲜了一段时间后也不得不重回 Cygwin 的怀抱。不过好消息是,在之后的更新中,这些 BUG 都已被逐一消灭

经过了两年的发展,WSL 已经足够成熟,我也是时候完成这篇一咕再咕的博文了。

(开学在即,仓促成文,如有谬误,还请指正。)

get-wsl

阅读全文→

添加 Notepad++ 至右键菜单的几种方法

作为一名即将开学的计算机系 准大学生,笔记本电脑总归是要有一台的。于是上星期我入手了 小米游戏本顶配版(i7-8750H + 16G + GTX 1066),最近正在重新折腾开发环境,这篇文章要解决的问题也是在此过程中出现的。

至于为什么要买小米的本子,主要是因为它的「游戏本性能 + 商务本外观」这一点正戳中我好球区。不过这几天使用下来,只能说缺点确实不少,有购买意愿的朋友需谨慎。在 Twitter 上搜索 小米游戏本 from:printempw 就能看到我发的吐槽简评,如果之后有时间的话也打算专门写篇评测(咕咕咕)。

回到正题。因为以前家里的电脑是全家共用的所以没什么,不过最近有了自己的电脑,我的软件洁癖就上来了:绿色版(便携软件,Portable Application)的绝不用安装版,国产软件一律扔沙盒运行。

看起来有点偏执,不过我就属于那种想把自己设备中的一切纳入可控范围内的人。Windows 在这点上就很讨厌,尤其是注册表的设计,比类 Unix 系统难管理了不是一点半点。在手机上也是一样,不能解锁 bootloader 的 Android 机器我绝对不会购买,AppOps、Magisk、存储重定向 等工具更是必备。虽然我也没偏执到「每条指令运行都需要我的许可」那种程度,不过至少,我的设备必须听我的话,我说什么不能做那就是不能做,你他娘的不能给我自作主张(比如 Windows 广受诟病的自动更新机制、某些臭名昭著的国产软件扫描用户硬盘等)。为什么?因为是我在用电脑,不是电脑用我。

好了言归正传(没错,本博客就是有在进入正题之前瞎扯一通的习惯)。

Notepad++ 是一款我很喜欢的文本编辑器,除了写代码和写文章外的一般文本编辑工作我都是使用它完成的,配置新电脑时自然不能少了它。我下载的是 Portable 便携版,不过也正因如此,原本在 Installer 中通过选项可以添加的 Edit with Notepad++ 右键菜单项也没有了(此操作需要写注册表)。

因为这个右键菜单还蛮好用的,所以我打算把它找回来。

npp-context-menu-demo

阅读全文→

博客迁移至 GitHub Pages

就在刚才,我把博客完全迁移到了 GitHub Pages 上。

为啥呢?简单来说,就是我懒得维护服务器了。

去年十月份,我为博客添加了 Travis CI 自动构建流程,发布新博文只需要把 Markdown 源码 push 至 GitHub 上的仓库,CI 会帮我自动完成后续的所有步骤,很适合我这种懒人。

在我的 CI 脚本中,博客构建完毕后会把构建结果 同时推送 至 GitHub Pages 和我自己的服务器。由于我之前一直是在自有服务器上部署的动态博客程序(WordPress、Ghost),一直用下来也没什么不妥,所以当时我也只是把 GitHub Pages 当成一个备胎,博客域名依然是解析到自有服务器上的。

但是最近我想了想,把博客部署在自己的服务器上,有几点不好:

首先是服务可用率。我是个穷屌,只有一台 DigitalOcean $5 的机器,既没有负载均衡,也没有冗余服务器。如果这台机器宕掉了,那博客就只能跟着下线,谁也访问不了。而且事实上我的服务器就有好几次莫名其妙出现过 Kernel Panic,收到监控报警后只能灰溜溜地去登录控制台重启服务器。

另外就是,我想在这个世界上留下点什么东西。如果博客放在我自己的服务器上的话,假如我出了啥三长两短、服务器久了没人管理,那我的博客很有可能就烟消云散了,多难过啊。

不过当然啦,要是那么在意这个的话,我就去用 Medium 这类写作平台,而不是自建独立博客了。我觉得 GitHub Pages 这类托管服务算是一个不错的平衡点,既保留了独立博客的风格,又不用特别去担心服务器的问题,自己只用操心内容就够了,挺不错的。

命令行界面 (CLI)、终端 (Terminal)、Shell、TTY,傻傻分不清楚?

诸君,好久不见。

为什么突然想写这样一篇文章呢?其实是因为在最近计划发布的一篇关于 WSL (Windows Subsystem for Linux) 的博文中,我打算对终端模拟器、Shell 的选择与配置进行一些说明。不过对于刚接触 Linux 或者刚接触命令行界面的同学,可能会有些难以理解它们之间的区别(事实上我当初也是这样)。

虽然这个话题已是老生常谈,搜索一下应该也能找到大把的相关文章。不过难得提到了这方面,就趁此机会把我的理解写下来,一来看看我是不是真正理解了,二来看看我能不能把它们之间的区别讲得更加简明易懂。

0. 太长不看 TL;DR

  • 命令行界面 (CLI) = 使用文本命令进行交互的用户界面
  • 终端 (Terminal) = TTY = 文本输入/输出环境
  • 控制台 (Console) = 一种特殊的终端
  • Shell = 命令行解释器,执行用户输入的命令并返回结果

1. 什么是命令行界面?

命令行界面,通俗来讲,就是你看过的那种满屏幕都是字符的界面。

阅读全文→

近况报告:我的高复生活

好久不见。

当你正在阅读这篇文章时,你应该很难想象,一位半年多没有写过博客的老鸽是以怎样复杂的心情打出这些文字的。由于我实在是太久没有正经写过文章了,对文字的感觉也未免生疏,所以这篇近况报告可能会写得像流水账一样又臭又长。你就把本文想象成是一位老年人博主重拾博客更新前的康复训练,以温暖的目光看下去吧。

我为什么这么久没写博客了?

为什么?因为忙啊,不然还能是为什么。(笑)

不过不得不承认,我这一年更新博客的频率确实是低到史无前例:2018 年到现在,我只发布过 2 篇博文,这个数据是 2017 年的十分之一。为什么呢?有看过我前几篇博文的朋友应该都知道,我在去年的高考中没有取得理想的成绩,在一番权衡后,我选择了高考复读这一条道路。

高考复读,也就是再读一年高三,再经历一次高考。

阅读全文→

如何将现有 git 仓库中的子目录分离为独立仓库并保留其提交历史

这几天想要把一个 git 仓库中已经存在的一个子文件夹独立成一个新的 git 仓库,并且保留之前关于此文件夹的所有提交历史。不过我对 git 并没有这么精通,只好上网搜索之。可能是因为我关键词抓得不准,搜了好一会儿才找到可行的方案,所以写篇博文记录一下,希望能帮到后来人。

另外,在 git 里这种掌控历史的感觉真棒(笑)

0x01 需求分析

我为什么会有如本文标题所述这样的需求呢?这是因为我之前把所有为 Blessing Skin 这个程序编写的插件源码都放在一个 git repo 中了,每个子文件夹中都是一个独立的插件(因为嫌麻烦所以一股脑给塞进一个仓库里了),并且对每个子文件夹中的代码的修改最后都是在这个统一仓库中提交的。该仓库差不多长这样:

$ tree
├── .git
├── avatar-api
├── config-generator
├── register-email-validation
│   ├── bootstrap.php
│   ├── package.json
│   └── src
├── report-texture
└── yggdrasil-api  <---【我想把这个独立为一个新 repo】
    ├── bootstrap.php
    ├── package.json
    ├── routes.php
    └── src

而我现在后悔了,想把其中的某个子目录抽离出来,把它变成一个新的 git 仓库,并且保留我之前所有在「原仓库」中关于这个子目录的「所有提交历史」。

其实这种需求还是挺常见的,举个栗子:

阅读全文→

Windows Update 出现错误 0x800703ed 可能的解决方法

HAIDOMO,这里是年终总结拖了两个月还没写完,上一篇博文发布于去年十月份的某鸽系博主 621sama DE-SU。其实 2018 年的第一篇博文原定应该是 2017 年的年度总结的,但是由于各种各样的原因,那篇文章到现在还没写完咕咕咕。

最近几天正好遇到了如标题所述的「Windows Update 自动更新时出现错误 0x800703ed」的状况,在网上搜索许久,最后历经千辛万苦才终于定位到了问题的根源。特此记录,希望能帮到后来人。

0x01 问题描述

虽然我现在已经没多少追 Windows Insider Perview 的热情了,不过最近巨硬推出的那个 Fluent Design 看起来还是挺赞的,就打算在 Windows Update 中升级到最新的 Insider Preview。虽然速度屌慢,但是还是成功地检查到了 Build 17093 的更新并且进入了「正在准备更新」这一阶段。谁曾想等进度跑到 100% 却出现了如下错误:

error 0x800703ed screenshot

这可太他妈的操蛋了。 阅读全文→