普通视图

发现新文章,点击刷新页面。
昨天以前xulihang's blog

从杭州到汴州

作者 xulihang
2026年4月1日 16:55

山外青山楼外楼,西湖歌舞几时休?暖风熏得游人醉,直把杭州作汴州。《题临安邸》这首诗虽然是讽刺当政者纵情声色,但也生动反映了两宋时期社会的繁华。

3月26日到3月30日,我随公司从杭州到河南郑州、洛阳和开封(汴州)旅游,这里对这次行程做个记录。

郑州

26日我们乘MU6993航班,于13点到达郑州,前往河南博物院进行参观。博物馆里有十几个展厅,讲述了中原大地从石器时代到清朝的历史。馆藏了从骨笛、铜鼎到陶瓷等各种器皿,我这个现代人都想象不出古人是怎么做出这种东西来的。知识没有得到应用,就会丢失,就像宝丽来的撕拉片,停产后有人买了之前的生产设备,但花了很久才在2010年代达到宝丽来70年代胶片的质量。

晚上我们去了住的大别山酒店不远处叫阿五黄河大鲤鱼的饭店,尝了些没吃过的菜。我看了眼微信的地图就骑车出发,结果搞错方向,我以后不嫌弃人家路痴了。吃好饭和同事一起走回酒店,北方春天的空气,带着点雾霾的味道,和北京的感觉还是比较像的。

回酒店,打开电视,也有不少没看过的频道。乐游频道在放英语纪录片《马背之旅》、动作电影频道在放《女子别动队》。

因为厚衣服带多了,只带了两件短袖,我每天都洗衣服,北方天气干燥的好处就是衣服晾几个小时就干了。

登封、洛阳

第二天出发前往登封的嵩山少林寺。少林武术很有名气,少林山脚有很多文武学校,小时候电视广告有招生宣传视频,这次是第一次实地看到文武学校和里面的学生。

我们参观了塔林和天王殿、大雄宝殿、藏经阁、立雪亭等少林寺的主要建筑。之后去练武堂看表演,但里三层外三层全是人,根本看不到。我只在后面看到了《十八般武艺》表演,然后表演结束,发现前门关了,让观众从出口走,会穿过比较长的商业区。

下午我们前往古都洛阳,参观了龙门石窟。龙门石窟景区是个大公园,中间是伊河水,两边是山,我们乘游览车进去,里面的石窟主要是北魏和唐朝时开凿,历经千年留存至今。

晚上去到洛阳东北较偏的银安美谷酒店。我在酒店周边逛了圈,有个市民健身场地还挺热闹,不少人在跳舞,不过边上的小区非常破旧,商业街看上去跟90年代的一样,路边都是路边摊,油烟味很重。出租车司机跟我说这里以前本来有些国企,后来不行了,人也不是很多了。相比热闹的洛阳市区真是两个世界。

第三天,去了上百公里外的海拔2000多米的老君山,乘云景索道上到中天门,再乘峰林索道,到十里画屏起点,之后一直上到山顶的金殿道观群。十里画屏风景还可以,有云海、奇石。环形步道上全是人,根本走不快,只有一段经过伏牛山主峰的路比较空。碰到两位阿姨说这么宽阔的地方适合放声喊,但她喊得太轻了,我就跟着大声喊了“喂”,想看看有没有回声。结果回声没听到,倒是另一个山头有人回喊。

晚上走高速回洛阳,看到了城市周边农村的样貌。一片片油菜花田包围下,是一幢幢平顶的二层房屋,每家门口都有明亮的白色的大灯。

回到洛阳城区,我们在应天门下车。现在的应天门是近年新建的,仿照隋唐时的应天门,非常壮观。门口和后面的广场,满是古代妆造的人,对着补光灯和镜头拍照。

和应天门隔了两站地铁路,是洛邑古城,里面是明清时期风格的建筑,有很多汉服妆造和拍照的店,穿汉服的人也非常多。印象比较深的是女生穿的襦裙,上身一件较短的直领的衣衫,胸口敞开,下身是一条裙子,通常是齐胸的。梳着发髻,化着妆,还搭配了各种饰品。不过传统服装要是能融入现代日常生活要更自然一点,比起摆拍,我更喜欢看穿着汉服骑电动车的小姐姐。

汉服女子

第四天,我们去了中国第一座佛教寺庙白马寺和边上的牡丹园。白马寺里面除了传统中式的庙宇,还有泰国、缅甸和印度的寺庙,是对外交流的前沿。其中印度寺庙的走廊还有各种佛教相关的艺术品。其中一幅画像列出了人生的四大苦难:生老病死。Amy说佛教就是让我们知道,虽然人生是来受苦的,但我们通过积极修行,可以苦中作乐。佛学还是有很多启发人的地方的。

牡丹是洛阳的市花,洛阳的牡丹品种多,花开得也很大,牡丹还被做成牡丹饼,可以吃。就相当于我们浙江的桂花糕?

开封

离开洛阳,我们前往开封。开封也是八朝古都,地下都是古城遗址。《清明上河图》、《东京梦华录》等著名的作品就是描绘的北宋时开封的场景。

我们去了万岁山大宋武侠城。这是一个主题公园,里面有水浒区、仙侠区、江湖艺术区,每天都会上演不同的节目,还有NPC能和游客一起玩游戏。比较出名的有王婆说媒、十字坡断头舞、二娘等等,还有三打祝家庄、打铁花这两个需要预约的节目。可能古时候的勾栏瓦舍就是这样?集商业、餐饮与文艺娱乐于一体的综合性娱乐中心。不过对于我这样的i人不是很友好,而且有点乱,走到哪看到哪。

第五天上午,我们去了开封府,也是复建的。开封府即是当年首都东京的首府衙门,包拯办案的地方。9点钟有开门表演,9点半有铡美案表演。演员都是有点年纪的,应该是4050再就业群体,然后围观的游客年纪也不小,还问我是不是河南大学的学生。

离开开封,我们就回到郑州新郑机场,乘飞机回杭州了。

感谢公司组织旅行,让我再次看到了我们大名同学不一样的一面,也从旅行和大名同学身上学习了很多。

年前最后一天班

作者 xulihang
2026年2月21日 16:55

2025农历最后一周是连着的6个工作日,不少人最后几天班都请假了。因为可以请假,大家不是一起上完年前最后一天班。

像我们软件公司工作相对不是很辛苦,工作环境是写字楼,明亮宽敞的室内,最后一天也不会有很多活,还会发坚守岗位红包。但我觉得已经无心工作了,最后一天的便宜不占也罢,直接请假了。

但其他的工作岗位,是满足人们日常所需的,或许我会坚持,甚至春节也上班。

我对工作意义的追求还是如此强烈。

过年

作者 xulihang
2026年2月21日 16:08

2026年的春节,因为闰6月而比较晚。今天是初五,年也过得差不多了,稍微记录下过年的感受。

每年都要过年,走同一遍流程,但其实还是挺有意思的,就像好久没看的电视剧,时不时重温一下。

小时候的过年比较有意思点,那时候还没有汽车,爸爸骑着雅马哈摩托车载着我和妈妈从海宁市中心到湖塘乡下过年,与爷爷奶奶、叔叔婶婶和堂妹吃年夜饭,晚上住在80年代建的农村的二层房子里,一起看看春晚,到0点,各家会放开门炮仗。年初一起来,吃上一碗年糕粥,和妹妹们玩耍。年初二回外婆家,之后几天也会走亲戚和吃年酒,去到不同的村子。年前还会有请土地和拜太太(去世的长辈)这些仪式,准备草鱼、咸肉、酒盅,倒三次酒、拜上三次。再到正月十五,海宁硖石会有元宵灯会,这年也算彻底过完了。

长大后到现在,其实我过年都是在重温这种感觉。不过随着年纪渐长,时过境迁。老家农村的房子拆了,都搬到了商品房或者自建的统一规划的联排的屋子了。我上班了,妈妈也退休了。小时候的感觉就没有那么容易重温了。

这次我去舅爷爷家吃年酒。他们村的房屋建于2000年代,倒还有老底子的感觉。房屋前是一块大的晒场,中央一扇门,里面摆着一张八仙桌,楼梯位于两边,楼梯下方有厕所和杂物间。房屋延申出来一间平房,用作厨房,里面有灶台,可以点柴火烧饭,灶台上有烟囱。房屋边上有一口井,井边有一个台子,可以洗菜、洗衣服。房子边上就是广袤的农田,种着各种蔬菜、小麦或者桑树等植物。

不过没有看到有养牲口:鸡鸭、兔子、猪、羊。嘉兴其实一直都是养猪的,但后来因为污染禁养了。

过年,不同代的人团聚在一起,的确会存在各种冲突,但好在基本能做到和睦相处。也能感受到长辈的不容易。以后都是年轻人当家,怕是没有传统的这种年味了,要创造不一样的年味。

我用过的电脑

作者 xulihang
2026年1月18日 20:47

最近突然很想买几台电脑,比如新的龙架构的龙芯电脑装Linux、Intel Haswell的电脑跑Windows 7、AMD 8745hs的电脑体验其强大的核显。但仔细一想,买来其实没什么实际用途。

我这里就对曾经用过的电脑做个整理吧。

联想天鹤640P

我们家买的第一台电脑,1999年左右花了1万多块钱。主机、显示器、打印机、键鼠、音箱、手写板,附带各种光盘和随机软件:幸福之家、牛津百科、铁甲风暴……

奔3处理器,128MB内存,20GB硬盘,Windows 98系统。当时我还小,主要是玩各种电脑附带的软件,使用下浏览器。游戏只玩了帝国时代2、铁甲风暴。外婆家也买了这台电脑,我表哥表姐玩得就6多了,QQ、星际争霸、暗黑2、石器时代、大富翁、街机模拟器、三国志曹操传。

当时还是拨号上网,一上网电话就打不通。

Dell Optiplex 320

天鹤640P坏了后,我爸又找人配了台组装机,不过也没用多久,换了戴尔的Optiplex 320,也是显示器、音箱、键鼠和主机一套的。鼠标从滚轮的换成激光了。显示器是Dell E198WFP,1440x900的分辨率,也算是用上宽屏了。

这台电脑搭载的是奔腾4单核3.2GHz的CPU,1GB内存,80GB的硬盘,在2006年左右也还算可以了,一直用到我2013年高中毕业。一开始运行的XP,我后来给它换了Windows 7,还是刷BIOS用的OEM激活。

三星R20

2007年我爸又买了台笔记本电脑,7000多元的三星R20,还配了华为的无线上网卡使用。

这是我第一次用笔记本电脑。它是酷睿双核T2250 CPU,主频1.73GHz,512MB DDR2内存,14寸CCFL背光的TN屏,80GB硬盘,有各种外设接口。

不过买了后我爸也基本不怎么用,主要我来用了。笔记本主要是移动方便,我放在床边用来看视频比较方便,睡前播放新世纪福音战士。

HP 1000-1306TX

上大学,我叔叔要给我买电脑,我们去宏图三胞,3000元买了台HP 1000-1306TX笔记本。我其实对电脑配置不太懂,选了台便宜有光驱的。

这台电脑搭载了i3-2348M CPU,比较少有的7系主版配2代酷睿,2GB DDR3内存,512GB日立的硬盘,AMD 7450M独立显卡。2013年其实都是Haswell的四代酷睿CPU了,我这款是二代SandyBridge的,但的确是13年一季度才出的。

这台14寸的笔记本有2.2千克重,当时放在书包里从海宁背到无锡,还是比较麻烦的。然后发热比较严重,我还额外买了台抽风机。

这台电脑预装的是Ubuntu系统,我后来在它上面安装了XP、Windows 7、Windows 8.1、Windows 10、Debian、Mac OS X 10.8 - 10.14的黑苹果系统。当时喜欢折腾操作系统,不过最后主要还是用的Windows 10。

我后来加了条4GB的内存,更换了影驰的MLC颗粒的240GB固态硬盘,运行速度还是不错的。2017年毕业后放在家里,后来发现屏幕坏了,也不怎么用了。

龙芯龙梦逸珑8089D

大一时看到学长提到,龙芯俱乐部卖的龙芯笔记本,只要279元,我也跟着买了一台。

它是8.9寸的屏幕,搭载1GHz的龙芯2F CPU和1GB内存。我当时折腾安装了些系统,并在龙芯吧发了些教程贴,但的确性能太差了,生态也不行,不能用于日常工作。我买了个小米随身WIFI,插上后把它当作软路由使用。系统则使用Debian 7。

富士通ST4121

大三暑假时了解了全反射屏,这种屏幕看起来比较舒服,类似墨水屏,反射率差、对比度低,但能显示彩色、刷新率也不错。

我400元淘宝了台富士通的ST4121平板电脑,这台电脑搭载了移动版的奔3处理器,10.4寸的反射屏还配上WACOM的触控模块,内存是256MB SDRAM,比DDR还老的版本。实际运行速度倒还可以,装了XP的系统,我用它通关了星际争霸1。不过才过三个月就坏了。

把屏幕单独拿出来做成了显示器。

DIY

2016年大三暑假,我自己DIY了台台式机。H61主板配了3代IvyBridge的i3。本来以为HD4000核显装黑苹果没问题,后来发现主板没有HDMI接口,我还专门买了张HD6450的亮机卡。1000多元的配置,运行还是很流畅的。

我主要在它上面通关了星际争霸2。

2024年已经开不了机了。

ThinkPad x61/x62

ST4121坏了后,我还是想有台反射屏的笔记本,于是400多买了台同样是CCFL背光,支持改造反射屏的ThinkPad X61电脑。这台电脑的用料非常好,都是铝镁合金的,键盘和小红点用着很不错。

改造反射屏、安装了黑苹果雪豹系统,但没过几周就坏了。的确太老了,性能也差,不好用,我又买了51nb的x62主版进行改造。

使用的是第4批的主板,用的Intel第五代Broadwell的i5 es版CPU,相当于i5 5200u。我给它配了8GB的内存,256GB的msata固态硬盘,算是我当时手上性能最好的电脑了。一直当主力机用到2023年。

Mac Mini M2 2023

工作需要写iOS程序,一直用公司电脑装macOS的虚拟机,然后新的arm架构的设备出来后,有很多用户要求出苹果CPU版本的,我就买了台丐版的mac mini,百亿补贴价格是2800元。

苹果的性能的确很好,不过存储是真的不够用。

HP ZBook Studio G3

有很多用户要英伟达的显卡,用CUDA加速PyTorch推理,但我手上没有n卡的设备,新的有独立显卡的设备都比较贵,我就2000元买了台2018年惠普的专业本HP ZBook Studio G3。它搭载6代i7 6820HQ CPU,4核8线程,2.7GHz-3.6GHz,双通道DDR4-2133 16GB内存,NVIDIA Quadro M1000M 4GB Maxwell架构的专业显卡,512MB NVME SSD,15.6寸1080P触摸屏,仅重2KG,已经是我用过的最好的笔记本了。

不过显卡还是差了点,和现在主流的设备不能比,Computer Capability是5,跑最新的深度学习很多都已经不支持了。Stable Difussion是512x512才0.2t/s,Whisper语音识别也很慢。

不过跑个OCR、Lama Inpaint或者超分辨率还是不错的。

目前是主力使用,主要跑B4X编程序。

Mac Mini M4 2024

2024款mac mini,16GB + 256GB,加国补只要3599元,我也第一时间购买了,用途主要是放在家里,为ImageTrans的在线版 提供服务,毕竟它的功耗低,性能还好,跑各种深度学习操作都很快。7B的大模型,MLX版有20 token/s。

我也有用它用Whipser识别视频语音,速度很快,2个小时的视频,半个小时就都识别出来了。

但因为我需要用Windows应用,所以主力还是HP的笔记本。

小众UI库JavaFX对输入法的支持

作者 xulihang
2026年1月18日 20:22

我的计算机辅助翻译软件使用JavaFX开发,从2018年开始就遇到不少问题。

2018年时,Java 8在较早的Windows 10系统上存在中文输入法不跟随的问题,需要安装搜狗智慧版。后来Windows 10升级后,才没有了这个问题。

然后毕竟是翻译软件,要处理各种语言的支持,后来又有用户提出对藏语的输入不好。

在新的JavaFX 23中,我又发现阿拉伯语只有按住SHIFT时才能通过方向键左右移动光标,而在JavaFX 8中,可以直接用方向键移动光标。

macOS在2018年时则存在输入中文标点都变成半角的问题,导致我必须给软件加个功能,在输入时自动替换字符。所幸在新的版本中得到修复。

再提到Linux,它的支持就更糟了。虽然Fcitx在一般的Linux 应用中没有什么问题,但Java应用就有很多问题。比如JetBeans的IntelliJ IDE,就存在不跟随光标的问题,有人通过给JBR打补丁的方式解决这一问题,但似乎没有什么人用JavaFX的应用,这个问题一直没有解决。

JavaFX应用在Linux甚至默认无法使用输入法,必须在运行时通过-Djdk.gtk.version=2指定GTK版本为2,而新版本的JavaFX已经移除了GTK2的支持。而输入法不跟随光标的问题也同样存在。

使用系统原生或者Web技术开发桌面应用一般不会碰到这些问题,但要开发一个跨平台的应用,我还是喜欢用JavaFX,好在主流系统在输入上的支持还算可以,我的用户基本没有抱怨输入法的问题。

基于QEMU测试Loongarch龙架构

作者 xulihang
2026年1月9日 16:16

最近有个公司客户说要在3A6000上运行我们的产品。大一的时候279元买了台龙芯2F的逸珑8089d笔记本,那时还是mips架构的,现在龙芯已经使用新的Loongarch龙架构了。

我看了下网上没有很便宜的整机可以买到,于是就考虑用QEMU来模拟测试环境。

QEMU有两种模式,一种是system,可以模拟整个硬件环境,一种是user,可以直接在自己的环境中执行另一个架构的程序。

System模式

我们可以直接下载龙芯官方的Loongnix系统的qemu磁盘镜像来启动一个Loongarch的系统。

镜像链接:https://pkg.loongnix.cn/loongnix/20/isos/Loongnix-20.7.rc1/Loongnix-20.7.rc1.cartoon.gui.loongarch64.en.qcow2

EFI固件:https://github.com/loongson/Firmware/blob/main/LoongArchVirtMachine/QEMU_EFI.fd

然后用以下命令启动:

qemu-system-loongarch64 -m 4G -cpu la464-loongarch-cpu -machine virt -smp 4 -bios QEMU_EFI.fd -serial stdio -device virtio-gpu-pci -net nic -net user -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 -hda Loongnix-20.7.rc1.cartoon.gui.loongarch64.en.qcow2

密码是Loongson20。

User模式

我们需要有一个基本的rootfs,可以用debootstrap构建或者解压现成打包好的版本(CLFS-for-LoongArch)。

下面是使用debootstrap的方法,测试环境是Debian 14 Testing:

sudo apt install debootstrap qemu-user-binfmt binfmt-support debian-ports-archive-keyring
mkdir loongson
sudo debootstrap --arch=loong64 --foreign sid loongson http://mirrors.ustc.edu.cn/debian
sudo cp /usr/bin/qemu-loongarch64 loongson/usr/bin/
sudo mount -t proc proc loongson/proc
sudo mount -t sysfs sys loongson/sys
sudo mount -t devpts devpts loongson/dev/pts
sudo chroot loongson /debootstrap/debootstrap --second-stage

新旧世界

LoongArch有两套不兼容的软件体系,叫做旧世界和新世界,官方叫ABI 1.0和ABI 2.0。

主要是早期官方维护了一套自己的工具链,接近MIPS的风格,后面接受社区的反馈,融入了开源社区。

一个比较明显的区别是新世界的程序解释器路径是 /lib64/ld-linux-loongarch-lp64d.so.1,而旧世界的程序解释器路径是 /lib64/ld.so.1。

一般比较老的Linux 4.x内核的,麒麟、UOS、Loongnix 20这些是旧世界的系统,社区的Debian、Arch和Loongnix 25是新世界系统。

新世界系统可以通过liblol兼容旧世界系统的软件。不过旧世界兼容新世界就没有那么容易了。

要编译支持某个世界系统的程序,最好是在目标系统编译,或者使用对应的交叉编译工具链。

相关链接

人的改变

作者 xulihang
2025年11月22日 21:11

网上有句话叫不要试图改变一个人,要尊重他人命运。但也有一句话叫,士别三日,当刮目相看。一个说明了改变人的困难,一个说明了人改变的迅速。不过前者强调一个人改变另一个人,后者是自我改变。

这种改变,主要是认知、习惯、学识等各个方面。

《寻秦记》里,赵盘当了大王,一开始还是像个公子哥,但后来落难民间,便开始成为真正的秦始皇。

能发现自己的不足,并做出改变真的是很难得的一件事情,是需要随着漫长的经历,逐渐改变的,所谓十年树木,百年树人,便是这么一个过程。

人从出生开始,就会受到环境的影响。比如性别意识,如果社会群体里都是大男子主义的人,那他不可避免也会有这种想法。在后面要意识到自己这方面的不足并改变就比较困难。不过,只要意识到这些问题,我想都是能够改变的人。

关于要不要去改变一个人,我想的确不能强求,只能引导。但如果是违法、不道德的事情,需要用权力对其进行强制的制约。

虚假需求

作者 xulihang
2025年11月22日 20:51

有客户用AMD CPU的电脑,我想想我还从来没有用过AMD CPU的电脑,想买一台迷你主机来玩玩。看到有很多基于锐龙R7 7840H或者8845H的主机,780m RNDA 3架构核显,32GB DDR5 5600MHz双通道内存,1TB的SSD,要3000元左右。虽然我有挺多存款,但3000元也是笔不小的支出,我已经拥有m4版mac mini和HP ZBook Studio G15,没有特别的需求再买台电脑。 看到有人说780m的核显,可以跑大模型、Stable Diffusion、玩各种3A游戏,但我其实没有这方面的需求,都是虚假需求。

所以,我最后并没有再买一台AMD的迷你主机。当然,如果我钱很多,买台来玩玩其实不用考虑那么多。

《金婚》

作者 xulihang
2025年10月7日 12:16

国庆期间大致看了遍电视剧《金婚》。《金婚》总共50集,每集讲一年的故事,涵盖了婚姻中的各种要素,涉及夫妻关系、婆媳关系、亲子关系等等,反映了人在各种事件下的真实反应。我这里讲些印象深刻的点。

  1. 人会被社会观念影响。文丽作为老师,也算有知识的人,还是有重男轻女的思想。
  2. 人会偏心。婆婆向着儿子,奶奶向着喜欢的孙女,大女儿向着爸爸。
  3. 对得不到的执念。佟志喜欢李天骄,但只有精神出轨,没有实质关系,结果成了他的朱砂痣。另一个没追到李天骄的小梁,因爱生恨,反过来诋毁李天骄。梅梅则一根筋,和大庄不能在一起,自己也一辈子不嫁人。
  4. 对婚姻的谨慎。多多和大宝见过父母的各种问题后,都没有以结婚为目的的正经关系。
  5. 对被照顾的习惯。文丽后来逐渐变成了保姆的角色,丈夫回家就是吃饭睡觉,家像个旅馆。但文丽也习惯了照顾佟志,佟志也习惯了被照顾,他对文丽没有什么感激。
  6. 夫妻难成知己。佟志邀请文丽去看新年音乐会,但文丽已经不感兴趣了。佟志有期望,但落空了,会失望。不如一开始就不要期待太高。

希望想走进婚姻的人,能清醒地认识婚姻的各种问题,再决定要不要迎难而上。

创作的目的性

作者 xulihang
2025年9月11日 20:17

我最近在思考,我写的博客、发的视频是不是目的性太差了。

比如别人的小红书、B站账号,只专注于一个方面的内容,期望有良好的互动、浏览量,并能通过接广告、卖东西等方式赚钱。而我则是想写点啥就写点啥。

写作更多的对我日常思考的一种记录,一种精神寄托,能达到什么营利性的目的并不是我的主要目的。

就像卡夫卡一样,他写了很多小说,但不以发表小说成为名作家为目的。

虚假宣传

作者 xulihang
2025年9月11日 20:08

这两年接触了些开源项目,我觉得很多项目都涉及虚假宣传。

比如叫做React Native Vision Camera的相机插件,号称使用了C++模块,用了OpenGL等绘制技术,相机性能很好。实际使用则各种bug,性能也不佳。

比如叫做jscanify的浏览器端文档边界检测库,声称某个版本极大地改善了各种背景下文档的检测。我以为用了什么黑科技,看了下代码,其实只是用了Canny边缘检测,这个改动效果不一定比之前的二值化方法好。

但他们也不一定是故意的,比如文档检测,可能作者的确觉得效果好,因为他本身对这些算法也不太懂,只是调用OpenCV的接口而已。

转岗

作者 xulihang
2025年9月9日 20:00

今年3月,领导联系我觉得另一个产品的岗位缺人,觉得我是最适合的人选。

我考虑再三,还是同意转岗了。在市场部工作的4年,也遇到瓶颈了,做产品尝试下不一样的工作内容。

在公司内部转岗,和到新的公司从事新的岗位,过渡相对容易点。

转岗后,我还是需要处理之前的一些工作内容,或者说保留之前的工作职责,比如写博客。之前部门的会议也还是可以先参加,等以后不需要了就不参加了。

因为我们是小公司,常常需要自己去寻找任务和定义问题,一人承担多项任务,所以我有相对自由和广泛的职责。在转岗初期,我也是花了很久时间确定自己的职责,怎么更好地融入团队,接手前人的工作。

从事产品工作,会更多一些协调沟通与决策的工作,比较适合我这样希望从宏观角度把握产品的人。同时,也有很多文字工作,比如写文档,适合我发挥之前所学的技能。

产品是给整个团队确定方向的,让大家知道什么是正确的方向,自己可以做什么,可以说也是一种帮助人的工作,和我助人的性格也相匹配。但确定该做什么,的确是比较熬人的任务,需要有一定的洞察力。不过我们毕竟是团队,不必给自己太大压力。

小爱音箱

作者 xulihang
2025年9月9日 19:50

小爱音箱是小米推出的智能音箱,参考了国外亚马逊的Echo研发。它是一个智能语音助手,跟它说话,就能查询各种信息、收听各种音频。它也可以作为智能家居网关使用。

我一开始是想买它,主要是需要它作为智能家居的网关,用来串联空气净化器、触摸开关触发器以根据空气的PM2.5浓度自动打开厨房的吸油烟机。后来我发现不用那么麻烦,直接装上止逆阀,厨房就不跑油烟了。

不过小爱音箱的确很有用,直接跟它说话就行,不用看手机屏幕,码字,是很自然的一种交互模式。

最近每天早上都用它来收听广播。

情感中的博弈

作者 xulihang
2025年9月7日 20:23

最近看《哈利波特》,在《混血王子》中,有个情节是罗恩和另一个女生在一起后,赫敏为了气罗恩,选择另一个喜欢自己的男生作为自己的约会对象。后来罗恩中毒了,在昏迷时说了赫敏的名字,两人的关系也修复了。

人的感情真的很奇妙,明明互相喜欢,非要整点事情,希望在关系中自己是更被在意的。这就形成了情感中的博弈。

男人喜欢女人,常常希望自己是主动的一方,对方被动接受。如果女人反过来主动,男人会觉得没有面子。有的女人假装被动,引导男人主动,这样实际上是女人在关系中占据主导,但男人也不会觉得没有意思。这样博弈的味道就没有那么明显。

情感中的博弈,是伴随相识到关系结束这一整个过程的。两个人的这种矛盾,成为了两人间故事的推动剂。不过我更喜欢两个人一起解决外部矛盾来深化关系。

吃酒

作者 xulihang
2025年8月31日 19:50

上周看吴启华演的叫《美味情缘》的港剧,提到了中国人一生会吃那几顿饭。我这里写下老家浙江海宁的一些习俗。

参与酒席,我们这一般叫吃酒。会有很多的酒可以吃,贯穿人的一生:满月酒、周岁酒、过年酒、状元酒、结婚酒、上梁酒、豆腐饭。

其中豆腐饭会比较特别,是人死后摆的酒,会分几周摆。而其它酒一般都是一次连着摆好。

抓大放小

作者 xulihang
2025年8月31日 19:32

《News Radio》第二季中有这么一段一个同事问另一个同事要不要结婚的对话:

Jimmy : Melanie, I’m single, you’re single, what do you say we get married?

Melanie Sanders : Well, I’m glad you finally decided on the direct approach.

Jimmy : Well, I’m a businessman at heart.

Melanie Sanders : As am I. What’s your offer?

Jimmy : Single rich male seeks matrimony.

Melanie Sanders : Primary residence?

Jimmy : Westchester County.

Melanie Sanders : Would you be open to considering a secondary residence in Manhattan?

Jimmy : Central Park West?

Melanie Sanders : South.

Jimmy : Done. Time spent together?

Melanie Sanders : 8 hours, 5 days a week.

Jimmy : 7 hours, 12 hours weekends.

Melanie Sanders : 55 hours aggregate, specifics to be determined later.

Jimmy : I’m amenable to that.

Jimmy : Children?

Melanie Sanders : One.

Jimmy : Three.

Melanie Sanders : Two.

Jimmy : Done. But, one of them has to be a male.

Melanie Sanders : I’ll see what I can do. Vacation?

Jimmy : December, Hawaii.

Melanie Sanders : June, the Vineyard.

Jimmy : June, fine, but Hawaii.

Melanie Sanders : Nope, the Vineyard.

Jimmy : Is that a deal breaker for you?

Melanie Sanders : I’m afraid so.

Jimmy : Me too. Well, we gave it a shot.

Melanie Sanders : I’m sure you’ll find a better match.

Jimmy : Thanks for the time.

两个人讨论了居住地、相处时间、生几个孩子等问题,问到在哪里度假时发现没有谈拢,就直接不再继续对话了。

或许相亲就是这样,需要抓大放小,直接沟通,看看我们关注的主要问题是不是没有问题,而一些小的可以改正的细节,就不用太过关注。

我们做其他事情也是这样,如果主要的目标能实现了,一些聊胜于无的细节可以不那么上心。

i人的自我修养

作者 xulihang
2025年8月30日 16:24

模仿《演员的自我修养》这一书名,我打算写篇博客,讲下i人日常工作生活可能遇到的问题,以更好地应对这些问题。

做为一个内向的人,我们更倾向于独处,沉浸于自己的世界,回避与人有过多的接触。这种性格并没有不好,只是社会更认可一个外向的人,我们在学校还是工作单位,都被迫适应这样一个大环境,这一过程便会遇到不少问题。下面我会对这些问题做一个罗列。

保持自我

回想小学的时候,中午午休,大多数同学都和别的班的人打闹去了,而我则选择在教室里安静地看书。因为老师赞同读课外书,所以我可以很安然地做自己。

而离开学校,要赚钱,我们需要和各种人打交道,以前这种模式就不一定可以维持了。这个时候,我们不能妄自菲薄。在工作的时候可以适当改变自己,但仍然维持原来的本心,可以说是一种进化。

我们要意识到我们本质是内向的,不要完全学习外向者的行为。但也不是像个鸵鸟,把头埋起来躲在自己的世界里。

找到自己的生态位

如果不喜欢当面沟通,可以使用书面表达。

在团队中,寻找适合自己的位置。内向者往往善于把握细节,可以做写作、翻译和程序员这样的工作。

如果需要做决定,有一定的领导任务,也不要怕,做好准备一般都可以完成任务。就是决策过程可能免不了与人争论,这个时候要专注于问题本质,而不是与人拉扯。

找到适合自己的人

感情也是i人要面对的一个问题。虽然i人喜欢独处,但仍然会渴望关注。看到别人的亲密联系也会感到羡慕。

我这里还是鼓励多和喜欢的人交流。我们能逐渐了解自己适合什么样的人。

在亲密关系中,有人对自己太好,我们可能会想逃离。有人对自己冷淡,我们会比他还要冷。但如果有人正确地自然地通过找我们帮忙这样的事情来建立联系,还是可以建立较好的关系的,就是这对双方都有一定的要求。

我个人就是喜欢别人找自己帮忙,如果做错事了,对方能直白地骂我一顿,非常舒坦,不会有内耗。

但也不能整天期待他人提要求,会过度关注对方,这样我们提的第一点保持自我就不能做到了。

代表人物

卢娜·洛夫古德,《哈利波特》中的虚构人物。

如何编写软件的技术文档

作者 xulihang
2025年8月8日 10:28

软件的技术文档会详细记录软件的使用方式,为我们使用软件提供指导。

根据用法,软件可以分成很多类:

  • 命令行软件
  • 图形界面软件
  • 软件类库/SDK

不同软件的文档的内容基本都是接近的,主要是各种指南,介绍如何操作软件,只是图形界面的软件截图会多一点。然后,软件类库或者SDK,会提供API文档。

下面我们会介绍下如何编写软件的技术文档。

工具选择

传统的文档形式有CHM、PDF、Word文档等等,使用FrameMaker、Microsoft Office等软件制作。

现在一般都是在线网页,有一系列的站点生成器,比如Sphinx、mkDocs、Docusaurus、Jekyll、GitBook等等,使用markdown、restructuredText等标记语言编写。这些工具通常还支持生成DITA、LaTex等文件。

针对API文档,也有专门的工具,可以直接根据程序源码生成文档,比如Sphinx、JSDoc、JavaDoc、Swagger等。

更多工具介绍可以见这篇文章:技术传播领域的工具

内容安排

文档站点主要由目录树和内容页面构成。内容可以根据软件特点进行分类,比如软件介绍、使用指南、API文档、常见问题、变更记录等等。

API文档的内容安排上,除了单独的接口页面,还要有能显示所有接口列表的页面,方便浏览。

格式规范

技术文档通常需要遵循一定的规范。这里以JavaScript语言的API文档举例。

首先,API可以进行一个分类,比如按命名空间、类、接口、定义、事件、枚举进行划分。

然后不同类别的内容,也会有编写的规范。

命名空间主要列出它包含哪些静态方法、对象、类。

类主要包含它的属性、方法和继承关系。TypeScript中的接口(interface)和类相近。

事件主要描述它包含哪些参数,要怎么绑定事件。

示例文档

命名空间

## Namespace XLH.OCR

### Methods

* getOCREngines()
* on()

### Properties

* error
* version

### Members

* Enum_OutputFormat
* Enum_SegmentationMode

### Classes

* BaseOCR
* OCRSpaceOCR
* GoogleOCR

## Class GoogleOCR

Extends `BaseOCR`

## Constructor

Creates a new Google OCR object.

Syntax:

\```ts
new GoogleOCR()
\```


## Methods

### detect()

Detect text in a image.

Syntax:

\```ts
detect(source:HTMLCanvasElement|HTMLImageElement):OCRResult
\```

Parameters:

source: the image to detect. It can be a canvas element or an image element.

## Properties

### apiKey

The API key for Google Cloud OCR API.

接口

## OCRResult

Syntax:

\```ts
interface OCRResult{
  textLines:TextLineResult[];
}
\```

事件

## OCRProgressEvent

Triggered when the OCR progress info is updated.

Syntax:

\```ts
XLH.OCR.on("OCRProgress",function(event:OCRProgressEvent) {
  console.log("progress: "+event.progress);
})
\```

Instance properties:

progress: progress of the OCR action. The value is between 0 and 1.

我折腾过的手机

作者 xulihang
2025年8月3日 17:55

生命不息,折腾不止。我打算开篇文章记录下我折腾过的手机。主要以时间顺序进行记录。

多普达818pro

我爸2007年炒股赚钱后,买了台多普达PPC,让我第一次接触到了智能手机。

接触了各种论坛,学会安装软件、刷机、制作ROM,折腾各种GPS软件。

经由Pocket DOS,我又开始折腾给电脑安装各种系统,封装启动光盘镜像、接触了AU3编程。

三星J708

我爸给我妈买的三星翻盖功能机。1700元,有拍照、FM、百宝箱等功能。

支持各种安装Java软件,不过屏幕分辨率只有128x160,而且性能有限,可以适配的软件不多。

我还跟着教程学习了J2ME开发,写了一个乘法软件。

HTC G1

安卓出来后,2010年上高中前,我让我爸给我买了台二手HTC G1,1100元。

当时安卓的热度很高,安卓网、机锋网的版块可能都有上万的新帖。我学习了安卓软件安装、刷机,了解了recovery、app2ext、root等等概念。

G1是全键盘手机,当时装了GBA模拟器玩光明之魂玩得挺爽。

12年家里买了汽车,我还在G1上安装了凯立德来做导航。

中兴U956

13年高考结束,我考虑买台自己的手机。当时江南大学给我发了移动的卡,我就打算买台支持移动网络的手机。

一开始我是想买HTC的,但看了下几款手机都比较贵。然后无意中刷到了中兴U956,搭载联发科MT6589四核CPU、1GB内存、5英寸OGS全贴合屏幕,还只要1000元,于是喜欢性价比的我直接就买了。

买了U956后不久,小米推出了红米,类似的配置,只要799。

当时5寸的屏幕已经是非常大了,拿出去别人都觉得有点夸张。

那个时候第三方ROM还是很多的,我自学ROM移植,移植了乐蛙OS、MIUI等系统。最后停留在乐蛙OS 5。

iPhone 5c

偶然逛论坛,了解了iPhone有锁机。这种iPhone价格很低,没用过iPhone的我也心动了,找了家TOMPDA的卖家,花1500元买了台16GB蓝色的iPhone 5c。

一开始用卡贴适配移动卡,但这种破解方式不完美,后来超雪出了适合电信的较完美的卡贴,我又买了张电信卡来用。

升级系统到iOS 8后,我直接越狱装Cydia,安装第三方输入法、各种插件、本地Python用来跑搜狗校园网代理等等。

为了体验iOS开发,我还在电脑上装了MacOS X Mountain Lion黑苹果系统。

iPhone 5c是我大学时候的主力机,从大二用到研一。

HTC 8X

Windows Phone作为当时三大手机操作系统之一,我也一直想体验一下。于是300多买了台二手的Verizon HTC 8X。

2015年,我跟着视频较系统地学习了Windows Phone开发,还上架了江南听雨BBS的客户端。

摩托罗拉G2

因为要去美国,有锁的iPhone不能用当地网络,我就又花700多元买了台国行的Moto G2 (XT1079),移动联通双卡4G,8GB存储,1GB内存。

我给它刷了基于安卓6的CM系统,还有绿色守护,在当时使用起来还是比较流畅的。

这台机器的一个特点是使用了JDI的5寸 LCD屏幕,看起来有斜纹,但显示效果还是不错的。

Yota Phone 2

俄罗斯的手机品牌,推出了双屏手机,前面是OLED屏,后面是墨水屏,而且刷新率很高。

我花600多元买了台二手的来体验。看书效果还是很好的,我用它看完了哈利波特的前两部。

Yota的FM功能支持的频率范围比较广,还能收听FM85校园广播。

可惜,研一的寒假,被汽车碾碎了。

海信A2 Pro

Yota Phone坏了后,我还是想买台双屏手机。于是2018年花2500元买了台海信的A2 Pro,是我买的最贵的手机。

它也是前面OLED,后面墨水屏的设计。不过OLED屏的频闪比较明显,需要我把亮度开到最高,然后用护目镜调节屏幕颜色来调暗屏幕。当时安卓7上护目镜效果还比较不错。

夏普Aquos S2

2020疫情期间,A2 Pro的关机键失灵,我便又考虑换机了。

当时主要想买台轻便的LCD手机,于是看中了屏幕质量很好的夏普Aquos S2,正好有家店,700多能买到全新版本。这台5.5寸的全面屏手机,重量只有140克,搭载了骁龙630的CPU,比625性能还好一点。

不过这款2017年推出的手机,在2020年用,性能上还是略显捉襟见肘。

买S2前,我还尝试了小米CC9,但它的OLED屏看一会就眼睛疼,最后还是重新选择用LCD手机。我给我妈挑的两款手机,小米5x和华为nova 7 SE也都是LCD屏幕。

OPPO A72

2022年,夏普S2频繁重启,我就又打算换台轻便的LCD的手机。

因为已经流行OLED手机了,可选择的机器不多,我最后选择了重量175克的OPPO A72。它有1080P的全面屏,天玑720处理器,4040毫安时的电池,虽然是千元机,还是非常够用的。

其它二手手机

我还买了些便宜的二手手机,用来体验和收藏的:

PPC:HTC D810、P860、Diamond、CHT9000、818,当年几千元的PPC手机,只要几十元,我把有名的几个型号都买了。最近又49元买了台2013年出的Opticon H-21带激光扫码的PDA。

Windows Mobile 10:Windows 10出来后,我买了台诺基亚的Lumia 822来体验,学了点UWP编程。这台手机搭载了OLED屏幕,和Windows手机的黑色背景搭配还是很合适的。

安卓:小米1S青春版,它搭载了半反半透屏幕,我本来以为它有护眼效果,实际体验发现反射率很低,而且屏幕反光还比较严重。

❌
❌