Sucha's Blog ~ Welcome

22年9月25日 周日 21:33

T450 翻新记

来历及背景

这台 T450 还是在大厂时候的存货,之前的老人有说过,笔记本用了 3 年后就归自己了,所以我就将这台 T450 带回了家,成了家里人炒股的第二屏幕。

先说一下配置吧,i5-5300U、8G LDDR3 1600、256G 固态,家里人其实也不大用,因为大屏 21 寸已经够了,而我不想用的原因是,我毕竟是 Apple 全家桶的开发,再说这台机器的问题是屏幕太烂,颜色泛白看着就不爽。

不过这台笔记本,在前几天中秋居家期间,帮我恰了 2 天工,算是有功,再说有了这个经历,我就很想搞一台笔记本。

优选想过 M1 Air,16G 内存 不到 8000,是 PDD 渠道的教育版本,我是不想花那么多钱,因为上一台 Macbook Pro 13.3 2017,感觉就没怎么用过,然后就坏了。现在台式机的配置是 i7-12700F + 64G 的黑苹果,价格上到 7000 的笔记本我如果只拿来当备用机,太浪费了,但是跟台式机相比,当备用机又不冤,毕竟台式机还有 27 寸的屏幕,不要太爽。

次选考虑了最近挺火的机械革命 Code01 16 寸,R7 6800H,系统是 Win 11,这也还好。这几年 AMD YES,性价比很能打,16G + 512G SSD 5300 左右。但清华同方的渠道牌子,感觉现在质量还没稳定下来。屏幕我是很羡慕的,其他部分看了一些 B 站的视频,觉得还是有欠缺。跟第一条一样,这个价格的配置对我来说有点浪费,我只要能稍微能用的就行了。

再说我也刚了解到,可以花比较小的代价,给 T450 换一块能打的屏幕,所以最后是让家里人将 T450 寄了过来,还被抱怨怎么前两天不自己带过来。

硬件部分

然后 TB 上搜了一下 T450 能用的屏幕,1920 x 1080 100% NTSC 色域,原装的 TN 屏是 40% NTSC 色域,亮度两者也有差别,还有,这块屏幕的价格也很在线, 240 块。

于是马上下单,第二天跟着笔记本一前一后到了。B 站有 T450 换屏的拆装流程,其实挺简单的。屏幕从外到里分为装饰条、屏幕框架、屏幕总成三层,装饰条是双面胶固定的,框架通过 4 个螺丝固定了屏幕总成,屏幕总成通过卡扣排线接收笔记本显示数据。再说 T450 有英文版的操作手册,上面有详细的操作描述。不过我觉得看视频就够了,挺简单的,第一次换屏下来,前后不超过 30 分钟。

不得不说,换高清屏后观感上有质的提升,这块屏换得值呀,早知道我就换了,何必等到现在。

鲁大师看了一下内存,原装是单条 8G LDDR3 1600,JD 100 左右加了一条,开发要同时开的软件比较多,特别是 Chrome 开网页占的内存。还有,原装的 256G SSD 让我纠结了半天,最后还是没忍住,180 块搞了便宜的 512G。这个接口我是拆机后确定的,也给客服看过了,叫 M2 NGFF,机器内很小的一块板子。店家还能帮忙装系统,我就选了 win 10,不过后来想想,如果真的用 win 10,T450 的那些驱动我得重新装,就够我受的了。所以估计硬盘过来后,会被我直接格式化为 NTFS 吧。

最后,在 PDD 上买了笔记本支架,高销售量的几乎都是同一个样式,十几块,买吧。

软件部分

ThinkPad 之前支持快捷键调节屏幕亮度,换屏幕后就不支持了,只能找其他软件代劳,还好找到了一个国产软件,能够绑定快捷键,体验上跟原来差不多,只是启动后那么一段时间,仍然是最高亮度的,这个算是没办法,总要等屏幕调节软件启动后才能接管配置吧。

名义上系统是 Win 7 SP1,但是我那些 side project,都还是 Mac/Linux 下面的软件,所以还是得通过虚拟机跑起来,这也是我不大想换 Win 10 的一个点,因为 Win 10 有 WSL1 和 WSL2 吧,都还不是很顺,到时会让我纠结,最后又得花时间选来选去。

感觉 VSCode + 插件跟 Mac 下面没啥差别,反正我只需要那几个插件就够了。

另外,虚拟机跟 HOST 之间的文件共享,我之前使用的是 VMWare Tools,也用过 rsync、scp 和 samba,现在找到了另外一个方案,win-sshfs。

Linux 这边通过 SSHD 暴露安全认证端口,client 端通过 libfuse + ssh 在本地模拟一个文件系统挂载树,而 win-sshfs 则是上述的一个 win 实现,将 server 端 ssh 的一个访问点,挂载到 windows 本地的一个磁盘上,另外还有 SSHFS-WIN Manager 这样一个 GUI 管理器,方便的很。

结语

一通操作下来,感觉除了屏幕小一些,字体小一些,以及对比 noppoo 机械硬盘,ThinkPad 的键盘按键要重一些之外,整个流程还是挺顺利、也还算方便的。

硬件部分,最值得的部分是换屏幕,其他就算是小幅升级,毕竟之前只是用来炒股,现在用做开发机了,同开的软件也多了起来,要求也会高一些,加点硬件提升一下木桶短板吧。

22年9月18日 周日 10:22

Android 开机时长

我就说手头的这台一加 7 Pro,为啥开个微信小程序,都有可能导致微信崩溃,另外就是偶尔有些莫名其妙的小问题,也许是待机时长超过 3 年的 855 有些老迈了吧。

22年9月17日 周六 20:56

中秋返乡黄码风波

在返工的动车上了,有些经历当成日记,记录一下吧。

像我这种返乡没能3天2检导致[团圆月饼]的情况,社区网格管理人员对于扭转成[绿丝带],有决定权。

我9号到家,按照自治区文件,需要做足7天核酸。算上9号,到15号就7天了,但管我的认为,14号刚检查了一次,要隔一天,最后一次16号检查才好。

16号要不是我家人到社区催他,鬼知道什么时候过来核酸。

16号下午不到4点,二医院出结果了,也是阴性,我把结果微信给他,他说马上提交,但一直等到17号早上还是[团圆月饼]。我wx问了一下,他说帮问一下,然后没消息了。我的车票是买了又退。

17号早上我挺着急的了,距离最后一次检查核酸阴性,到现在快一天了未能[绿丝带],让我对整个[团圆月饼]扭转为[绿丝带]的上报链很不信任。

但我也知道,像我这样从外地返乡,又没有按流程报备,到社区cao着普通话跟街道办的人对线,天生理亏,人家2、3句话就把我打发了(不好意思,本地话最大)。

同样17号早上,sz那边问我具体情况,我就说了当前位置,最近几次核酸检测结果,以及桂康码状态。她说把我在sz挂白名单,避免黄码之类的吧。

我也知道我现在粤康码[绿丝带],只是标记了7天未检测核酸。这个状态在sz不正常,但在一些类似的粤西4线城市,谁说一定要在7天内检查一次核酸呢。就想着要不到gd检测一下核酸,到gd地坐车返深算了。

于是回拨sz那边的电话,就这个操作咨询了一下。她跟我解释了gd这边,跟湖南、四川的健康码互认,如果核酸阴性,符合转[绿丝带]条件,一天内就能转了。对于我这种想着在gd核酸转[绿丝带]的情况,没有否认,当然也不保证这样一定行。

我的求生欲望迫切,在sz,上地铁要48h核酸,像我这种不是因为接触风险导致的[团圆月饼],3天2检就给你转[绿丝带]了。

想好后跟家人说了一下,查了一下线路,玉湛高速到廉江人民医院14x公里,我压着120,一个多小时就到了,就算是6个小时出结果,我返回玉林睡一个晚上,第二天周日18号到湛江坐高铁就能返深。当然,如果玉林这边的结果出来更早,那更好。

有了保底的方案,加上我家人也觉得街道那边转[绿丝带]的流程太磨叽了,他们就过去吵,问到底什么时候能转[绿丝带]。街道的人就推系统问题,上报不了自治区,再给一个半小时吧。我家人又吵,你们说是系统问题,那出一个纸质的说明吧。你们转不了[绿丝带],gd可以转。

也没提具体方案,街道办的人就慌了。为什么这么说呢,因为我家离街道办走路不到5分钟,回家坐下来还没开始吃午饭,我的桂康码就转[绿丝带]了,神奇不神奇。

谁预计得到,网络突然就顺畅了,资料突然就能推上自治区的系统了。敢情是管我的一直不放在心上,拖着不提交吧。

可是,人家管我的街道网格员就有这样的权力。



感觉高风险区、中风险区导致的[新鲜好柿][团圆月饼]管理,以及区域行政命令导致的[团圆月饼]管理,不是一回事,后者是交给街道办处管理的,街道办对于[团圆月饼]转[绿丝带]的管理,有决定权。

我是千不该万不该回家没报备,然后又没3天2检导致激活了自治区的[团圆月饼]大礼。

如果支线剧情结果是[团圆月饼][绿丝带]共存,一半冰水一半火焰,我甚至有想过春节咋办,算不算彻底得罪了街道办管我这种异省返乡的。到时候,我是早早哈哈报备呢,还是掐着表不到3天就溜。

纪念一下2022的[团圆月饼]节,想想 mission impossible、亡命天涯就觉得有那味儿,可惜没能激活支线剧情。

太长写了至少 3 个站[裂开]

22年9月8日 周四 21:42

SSK 2.5 寸硬盘盒

最近连续买的第二个 SSK 2.5 寸硬盘盒了,在 15 年前的笔记本硬盘上,还能有顺序写 70M/s 的速度,真的太可以了。

买的第一个,用来给黑苹果做急救盘了,也蛮简单的,白条进度显示之前,CMD+R 进入恢复模式,抹盘,并安装苹果系统到 SSD 就行, 如果之前有安装过 GRUB,需要先在 Mac 系统用 diskutil 做 EFI 分区的清理。

话说在买这个 SSK 硬盘盒之前,买了另外一个联想的硬盘盒,当时做活动不到 20 块,就买了,工业设计要比 SSK 的好,感觉外壳的用料质量是可以的, 但是最重要的,联想的硬盘盒,主控不行,我手头一个笔记本硬盘,一个 120G 的 SSD,都跑不起来,我也不知道为啥。

然后想着会不会是主控不行,买了 SSK,这款在淘宝上的销量其实挺大的,没想到,真的是联想的硬盘盒主控不行,至少到现在为止是这样,有时候不能贪便宜。

最后提一下,其实 SSK 的 USB 3.0 硬盘盒也不贵,才 23 块,😑

22年9月02日 周四 22:23

使用 HTML5、增加 Discussions

站点虽小,建站时间却很长了,当时还没有 HTML5 标准,用的是 XHTML 的标准。

现在 HTML5 就是事实上的标准,大行其道,没必要坚守原来的 XHTML 标准了。实际上,就改了文件头的声明而已,其他一点都不用动。

另外在 site 侧边栏,以及每条 blog 的底部,增加了 discussion 的入口,链接到的是 github 免费 discussions 功能。

本站就建立在 github pages 上,不用白不用。

白嫖的事情,谁不喜欢呢~

22年9月01日 周四 23:59

更新部分 CSS

更新了首页、blog、以及 site 其他 categories 的 CSS,改成居中显示,限制最大宽度,其实就是更迎合手机的浏览。

因为之前的 flex 布局,在手机上面显示其实还好,但如果显示器宽度太宽的话,就铺开得有点难受。

CSS 文件应该有超过 10 年没有更新了,改的也不多,我也不大懂怎么改,反正改完 Chrome 上看着就还好。

先这样用着吧。

22年8月23日 周二 22:57

支持 HTTPS 域名

本站域名服务商是 Name.com,托管在 GitHub Pages,使用很久了(没错,大于 9 年!)。

之前是不支持 HTTPS 域名的,原因是 github pages 需要域名服务商提供某些东西才支持,所以我其实是简单使用了 CNAME 文件 标明了域名而已。所以这个 https 的支持,是 github 单方面的感觉,要么就是 name.com 给提供上了。

看了一下证书信任链,是 R3 (Let's Encrypt) 签发的,反正证书签发我是不用管的。

记得最早的时候,一个账号只能有一个 github pages 站点,现在应该是每个 repo 都支持了吧。

之所以有这个感慨,其实是看了 github 上某位开发者的个人站点,用的自然是自己买的域名,但是却不舍得搞正式的 HTTPS 证书(完整的信任链),那位大佬的 star 数量,在3k 左右,数量不算多,原因是开源的都是 Swift 的代码,用的人相对少一些吧。

不打算透露这位大佬的更多信息了,感慨一下罢了。

22年8月2日 周二 22:23

买了个 4K 显示器

前一阵子买了一个 4K 显示器,之前的 1080P 是用了快 10 年 DELL。

国产的友达屏幕,27 寸,1300 尼特,支持 HDR400,价格嘛,某东活动,不到 1.3K,香得很。黑苹果上面可以配置为高动态范围, 显示器这边把 HDR 打开,然后用 DP1.2 的线,能支持到 10bit 的色深。

话说 4K 的显示效果要比 1080 好太多了,之前在黑苹果上面字体模糊的,现在字体显示很锐利,还有之前保存了不少 1080 视频的, 在新屏幕上面看,效果打折了哈哈。

另外对比了 V 站的电影(1080 SDR 吧,大部分是这个),以及 B 站的 1080 高码率,B 站的好太多了,反正没有那种动作稍微快一点就 果冻的感觉,另外 B 站在 Chrome 上面能够打开 4K,效果也能感觉比 1080 高码率还要好。

在 Mac 的 Safari 上面,B 站的视频可以支持到 8K,不过 8K 的源太少了,我是没有感觉出来跟 4K 的差异,对比之下,4K 和 1080 差异还挺大的,当然 1080 高码率会好一些。

我尝试下载一些 4K 的视频,太大了,一部电影十几 G 收不住。如果是 1080 高码率的话,大概几个 G 吧,2、3 个小时的也就 5、6 G,对于我是能够接受的,然后分辨率在这个屏幕上面,感觉也很好。

另外也能看出苹果原生的播放器,跟 VLC 的差异,哈哈哈,就是这么神奇。

就像一位同学说的,只怪自己上 4K 显示屏太晚了,4K 太香了。

22年7月17日 周日 11:44

修改 SeedDMS 镜像上传文档大小限制

这里主要涉及到修改容器内部文件,以及将其保存为一个本地的修改镜像。另外,baidu 可以知道,SeedDMS 对于上传文档的限制,需要修改 php.ini。

我们先去容器看下文件具体在哪里:

$ docker exec -it seeddms /bin/bash
root@c31cfcd7168f:/# cd /
root@c31cfcd7168f:/# find . -name "php.ini"
./usr/local/etc/php/php.ini
root@c31cfcd7168f:/# exit
$ docker cp seeddms:/usr/local/etc/php/php.ini  php.ini

然后还是 baidu,看下需要修改 php.ini 的哪些配置:

对于手头的这个镜像,只需要修改后面 3 个就好了

然后将其拷贝回容器,并保存这个修改后的容器为镜像

$ docker cp php.ini seeddms:/usr/local/etc/php/php.ini
$ docker commit seeddms my_seeddms

停止之前的容器,使用新的镜像运行

$ docker stop seeddms
$ docker rm seeddms
$ docker run --name seeddms \
-d \
--restart=always \
-v /HOST/data:/var/www/seeddms/data \
-v /HOST/conf:/var/www/seeddms/conf \
-v /HOST/ext:/var/www/seeddms/www/ext \
-p 80:80 my_seeddms

这样就行了。

22年7月16日 周六 16:31

配置 SeedDMS

先说一个悲伤的故事,之前在百度网盘上面存了不少书籍,包括技术书籍以及小说等等,然后是用 QQ 账号登陆的,后来不记得是登陆后要绑定手机号还是干嘛,绑定完了之后,好多书都不见了!

也许我之前的手机号注册过了吧,然后导致账号合并了之类的,真的搞不懂。当时我是非常后悔没有做备份,因为之前网盘有做活动,永久 2T,怪不得 2T 永远用不完!

就想着搞一个文档管理系统,比如这篇文章介绍的

因为是个人使用,运行在类似 NAS 一样的小机器上,可以的话,就不需要跑起来类似 MySQL 或者 PostgreSQL 这样的 DB 了。实话说,是真的用不上牛刀。

于是试了一下 SeedDMS,PHP 搭建的,可以只用 SQLite。

后来才发现,我这一个前端开发,搞不懂 PHP 的安装,apache/nginx/openresty 难不倒我,但是 php 的安装难倒我了,你说有个 index.php 可是先要运行起来才能安装,但网站可不是那么简单就能运行的,先搞懂 pear 目录,简写意思是 PHP Extension Application Repository,然后呢,请使用 Composer,谢谢~

我这的魔怔了,无比怀念 go build 可以指定导出不同平台的 binary,然后配置问题不就是 YAML 或者 JSON 搞定,再说,我如果没有提供配置文件,就不能使用 default config running 吗,笑了。

于是就回到了其他的路子上,不再考虑自己源码安装了。试了几个 github 上别人提供的 docker 镜像,最后选了eraelpeha/docker-seeddms

$ docker pull eraelpeha/seeddms
$ docker run --name seeddms -p 8080:80 eraelpeha/seeddms

浏览器访问一下服务端的 8080 端口,应该可以看到提示了,然后就可以通过 8080/install 安装了。

因为后续网站配置,文档啥的还是要保存在 docker 容器之外的目录,所以先 docker cp 容器里面的配置文件出来,待会再挂载本地 volume 上去:

$ docker cp seeddms:/var/www/seeddms/data /HOST/data
$ docker cp seeddms:/var/www/seeddms/conf /HOST/conf
$ docker cp seeddms:/var/www/seeddms/www/ext /HOST/ext
$ chmod -R 777 /HOST/data /HOST/conf /HOST/ext

上面也将 data 目录配置到外面了。

使用 docker ps -a 查看运行的 image,stop 后,rm 掉,再运行一下看看,这里配置为启动 background 加载了,然后设置为 80 端口

$ docker run --name seeddms \
-d \
--restart=always \
-v /HOST/data:/var/www/seeddms/data \
-v /HOST/conf:/var/www/seeddms/conf \
-v /HOST/ext:/var/www/seeddms/www/ext \
-p 80:80 eraelpeha/seeddms

最后,设置 docker 开机启动吧

$ systemctl start docker

重启后,发现文档服务起来了,之前的设置也都还有效,这样就配置完了。

搞了一个下午,就感觉 php 太坑了,跟 go 的起步差了十万八千里。

22年6月26日 周日 15:02

MoocHelper 更新到 0.2.16

昨天说到 LuaHelper 已经更新到了 0.2.16,今天我也同步将 MoocHelper 更新上去了,主要的改动有

例子是

local foo = {}

function foo:test()
    local foo = {}
    self:bar()
end

function foo:bar()
end

之前当 hover 到 test() 函数中的 self:bar() 时,self 其实指向的是函数内的 local variable foo,而实际 Lua 语义是指向运行当前 function 的 table,毕竟 self 是作为当前 function 第一个参数传递进来的。

moocscript 的处理还特别一点,因为其 class/struct 是通过拼凑 AssignStat 来实现的,这种 : 函数在 class/struct 里面其实是实例函数,语法跟 Lua 不一样,没有 table name 前缀,得特别处理一下。

这里的特别处理是,需要在当前 AST 的位置,一直寻找 parent scope 到最近的 class scope,如果存在,拿到外层 local variable map 的同名变量定义(如上面例子的 foo),将变量定义的 Loc 作为 self 的 varStruct 描述,后面这个 Loc 的逻辑跟 Lua 侧是一样的。

大概这样吧。