Mr. Lee的部落格

Mr. Lee的部落格

Thoughts, stories and ideas.

运气!

例子1 搭建Ghost博客,邮件配置一直报错,提示127.0.0.1:587连不上。看着配置文件,百思不得其解。。 没办法,只能从源码开始一行一行调试,试了各种办法,打了一堆断点。发现是配置文件里的单词写错了。应该是options,写成了option。浪费了半天时间…… 例子2 还是Ghost博客,i18n中文一直不能正常工作,没办法,读了下它的代码,还挺复杂的,有Theme,有React的JS渲染的组件。 最后确实是定位到JS渲染组件读i18n文件不工作,但是看上去一切都没什么问题…… 只能是在*.min.js找到字符串常量后,在找对应的简化代码,在代码里加debugger,使用Edge的源文件替换能力,最后发现我用的版本(官方docker版)里面没有中文…… 而我看代码的master最新分支里是有中文的…… 就尼玛差几个版本,浪费了2天时间……还熬了夜……
1 min read

(Untitled)

我在MSYS2下做了测试。Emoji字符📁需要2个wchar_t,需要4个char。Emoji字符✏️则需要2个wchar_t,需要6个char。 Emoji Platform wchar_t char Display mbrtowc pwccheck 📁 MSYS2 2 4 ❌ 3→1 ❌ ✏️ MSYS2 2 6 ✔️ 3→1 ✔️ ❌ MSYS2 1 3 ✔️ 3→1 ✔️ 📁 CentOS 1 4 ✔️ 4→1 ✔️ ✏️ CentOS 2 6 ✔️ 3→1 ✔️ ❌ CentOS 1 3 ✔️ 3→1 ✔️ 我们将这个表格归纳一下,由于转换过程是从小到大逐步尝试的,于是我们会遇到这个情况:
3 min read

msys2 mosh不能展示emoji

在全面转战MSYS2今天又发现了一个问题,MSYS2下的mosh不能正常展示emoji。如GitHub上的issue所言:https://github.com/msys2/MSYS2-packages/issues/3034 ,坑真是多呀。 手动编译 网上讲了一大堆问题,说是libc版本不对,不能识别最新版本的emoji等等。但看了一堆讨论,发现应该都不太靠谱。自己动手查一下吧。 不得不说MSYS2真是强大,我曾经花了20个小时的时间在研究如何在Windows下编译mosh,手动打了一堆patch不说,打出来的产物缺胳膊少退,最终还不能正常工作,让我吐一口老血。 而在MSYS2下,简直不要太简单……下载mosh的PKGBUILD文件:https://github.com/msys2/MSYS2-packages/blob/master/mosh/PKGBUILD,执行makepkg即可编译……makepkg -i即可安装。 问题 算是通读了一遍mosh的代码,发现它使用wcwidth将字符串放到一个个的Cell中。而MSYS2中wcwidth函数和wstri
1 min read
全面切换到MSYS2

全面切换到MSYS2

最近折腾了下在Windows下编译mosh,发现MSYS2真是个不错的东东,连mosh的native包都有……。慎重考虑下,打算全面切换到MSYS2,不再使用Git for Windows提供的Git Bash了。 1、Kerberos配置 $KerberosInstalled = (Test-Path -Path "C:\ProgramData\MIT\Kerberos5" -PathType Container) $MSYS2Installed = (Test-Path -Path "C:\Software\msys64\etc\krb5" -PathType Container) if ($KerberosInstalled) { New-Item -Path "C:\ProgramData\MIT\Kerberos5\krb5.ini" -ItemType SymbolicLink -Value "$env:UserProfile\OneDrive\Windows\WSL\krb5.ini"
2 min read

ALT+BACKSPACE在mosh下不工作

ALT+BACKSPACE在bash里面的作用是删除前一个单词。最近用了mosh后发现其不能正常工作,ssh下这个快捷键是正常的。 stty控制了bash下的一些快捷键。对比了下mosh和ssh的,没啥区别。 $ stty -a speed 38400 baud; rows 56; columns 271; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0; -parenb
1 min read
官方PHP Docker镜像的坑

官方PHP Docker镜像的坑

最近搭了个PHP的网站,用到了官方的PHP Docker镜像php,php-fpm:8-fpm-alpine。计划在php-fpm与openresty之间通过unix domain socket来通讯。于是改了下php-fpm.d/www.conf文件。 listen = 127.0.0.1:9000 listen = /var/run/php-fpm/.sock 改天半天都没生效,各种debug未果……而且我看着127.0.0.1:9000也不太合理,理论上不可能跨容器通讯呐😢 经过了各种grep,后来发现这个镜像里面偷偷地塞了一个zz-docker.conf文件进去……然后里面有一行,这…… listen = 9000 于是很多事情就都明白了😂
1 min read
令人崩溃的ChatGPT做题经历

令人崩溃的ChatGPT做题经历

背景是想让ChatGPT出公务员考试的题目,大概类型如下: 考虑到ChatGPT暂时还无法画图,这里采用一个折中的办法,让ChatGPT去写代码,然后通过代码把图画出来。 于是先写了一段prompt让ChatGPT试试身手。 请写一个程序实现下面的功能: 有一个正六面体,将它的各个面展开到一个相互连接的由6个正方形组成的平面上。在6个正方形内随机地画几条直线并在直线的一侧涂成阴影。将6个正方形重新组装成正六面体。请画出三个该正六面体的投影图。 得到结果如下: 这道题需要一些图形学的知识,而且涉及到比较复杂的画图,因此难度较高。以下给出一种实现方式,但仍需读者有一定的计算机图形学基础。 1. 定义正六面体的顶点、边和面,并进行三维坐标系到二维坐标系的投影。 2. 根据题意,在平面上的每个正方形内随机画出几条直线并涂成阴影(具体的随机方式可以自定)。 3. 将六个带阴影的正方形重新组装成正六面体,并根据需要旋转和调整视角。 4. 使用透视投影,将正六面体投影到三个不同的平面上,得到三个投影图。 具体实现中需要用到计算机图形学的相关库和算法,如OpenGL、GL
20 min read
艰难的选择:Nginx

艰难的选择:Nginx

最近搭了几个站,网关的搭设变成了一道必须要迈的砍。 背景介绍,简单总结下有几个诉求要解决: 1. 支持h2/h3协议,这些新协议对访问海外VPS的帮助很大。 2. openresty提供的定制能力。因为一些站需要用户登录授权后才能使用,我又没有精力去给这些站挨个定制开发,打算采用openresty在网关侧统一处理了。 3. 支持nginx的proxy_connect_module模块且用到了标准端口。 4. 只使用标准端口,80端口重定向到443,不提供http服务,只提供https的服务。 结果发现,有下面几个坑: 1. h3协议Nginx只发了个预览版,还未正式支持,更别提openresty了😢。 2. ngx_proxy_connect_module模块需要对Nginx源码打patch才能正常编译使用😢。 3. cloudflare提供了quiche,可以给Nginx源码打patch的方式,使Nginx支持quic,但只能给Nginx 1.16版本打patch……😢 4. openresty升级Nginx core的时候恰好跳过了1.16,1.15和
2 min read
在Windows系统下使用mosh

在Windows系统下使用mosh

最近购买了一个海外的VPS,操作的时候发现ssh卡出了翔,完全无法使用。无奈之下转用mosh试试运气。由于我平时只用Windows系统,而mosh官方并没有原生的客户端,要么是Chrome插件,要么是基于Cygwin的版本且有兼容性问题。还有一个选择是在WSL里面使用mosh…😣 Chrome插件无法安装,不知是Edge问题还是Google的问题。 无奈寻找了一番,发现一款开源的Terminal模拟器FluentTerminal提供了在Windows下使用mosh的能力。本人平时用Windows Terminal,于是乎研究了下它的实现原理,发现它居然内置了一款编译好的mosh-client.exe。虽然是4年前的版本,但总归是聊胜于无。 有了mosh-client.exe,但是启动mosh的过程缺异常繁琐😢:要先ssh到远端的机器上将mosh-server启动起来,拿到端口和MOSH_KEY,再回到本机将mosh-client启动起来,启动的时候还不能使用ssh_config里配置的别名,只能用IP或域名🤮。有需要写一段程序将这个过程自动化起来😀。 #!/usr/bi
3 min read
VPS随谈

VPS随谈

* 本来想照顾下自家公司的生意,结果一看价格,是竞品的4倍有余。虽然不差钱,但是还是要遵从理性,选择了友商的服务……2核4G5M一年169元。 * 海外的VPS真的是便宜,已经便宜到了让人乍舌的地步了。相比于国内的几大云厂商,简直可以说是白送了……无图无真相,看图吧👇 * 选了一个日本的节点,家里ping是不到200ms,腾讯云机房ping大约70ms。下载浏览网站还OK,但是操作ssh、使用vscode远程开发简直是不能忍受,太卡了,经常断线。ssh回显大概要10s……难以想象几百的ping值能卡出这个效果来,无奈之下改用mosh+vim了……
1 min read