为wsl2安装中文输入法
安装中文语言包和fcitx输入法管理器,其中fcitx-sunpinyin是新安装的输入法
1 | sudo apt install language-pack-zh-hans |
编辑/etc/locale.gen文件,找到 # zh_CN.UTF-8 这一行,取消注释
1 | zh_CN.UTF-8 |
编辑~/.profile文件,在文件末尾加上:
1 | export GTK_IM_MODULE=fcitx |
以上代码分别:设置了GTK(GIMP Toolkit)和QT程序的输入法模块为fcitx。GTK和QT是Linux系统中用于创建图形用户界面的工具包;设置了X Window System的修饰符(modifiers),以确保fcitx能够正确地拦截键盘事件;设置了默认的输入法模块为fcitx;设置了fcitx的自动启动,并将启动时的输出重定向到/dev/null,这样就不会在终端中显示启动过程的输出信息
刷新~/.profile在shell中的引用
1 | source ~/.profile |
刷新字体缓存
1 | fc-cache -f -v |
重启 wsl2
1 | poweroff |
重启fcitx
1 | fcitx-autostart |
打开fcitx的设置页面
1 | fcitx-config-gtk3 |
在输入法中, 选择keyboard_en_us作为首位输入法,之前安装的fcitx-sunpinyin为第二位。
默认的输入法切换键位是ctrl+space,可以在fcitx的设置页面中更改。
这一套完成后,亲测无需将系统语言切换至中文,也可在gedit使用中文输入法。当然如果想在特定编译器中使用中文输入法,或许需要更复杂的配置了。设置IDEA可以参考:monkeywie的博客:wsl2官方gui安装IDEA踩坑记录
在wsl2安装ros2遇到的一些坑
依赖问题
由于安装的老版本(humble)ros2, 很多必需包直接安装会报依赖小版本号不一致错误,使用apt install解决是很麻烦的, 于是要用一个比较新的依赖处理工具
1 | sudo apt install aptitude |
在[package]填出问题的依赖,aptitude会弹出建议的一些解决方案,按,
和.
切换到一个降版本的解决方案,yes即可
swap空间不足
已经到了编译这一步了,但是编到最后总是报错
1 | C++: fatal error: Killed signal terminated program cc1plus |
很搞心态,开新terminal用htop
命令一查,cpu内存swap全拉满
这个时候就需要给wsl2扩swap空间, 在 c:\Users\用户名 下找一个叫.wslconfig
的文件,找不到就创建一个,填:
1 | [wsl2] |
填完wsl --shutdown
重启一下wsl2, 在wsl的终端free -h
可以查看swap分区的大小,当然直接htop
自然是可以的
如果rosdep已经初始化过了,还要删掉初始化文件重新初始化一下。执行这个sudo rosdep init
会有提示
这个时候再colcon build --symlink-install
就万事大吉了
微信小程序项目
试着做一个微信小程序的项目,还不知道会遇到多少坑……
4/26
网页后端体系架构(自下而上):
数据库:存储字段(列)组成的实体集(表)
通过MyBatisPlus将数据库实体集与Java对象建立联系,其中实体集中的字段与Java类中的属性一一对应。
DAO层/Mapper层:提供CRUD的Java方法,处理/提供data object
DO即数据库实体集对应的Java对象。
Service层:统一业务逻辑处理,为不同服务提供可复用的调用接口;为CRUD方法赋予实际业务意义;处理param数据,提供VO对象
将从controller层拿到的param数据转化成DO对象,传至DAO层;将DAO层提供的DO对象转化成VO对象,提供给controller层。
Controller层:分配URL,接受来自页面的请求,向下处理后,拿到返回数据返回页面。
从页面拿到param数据提供给service层,接受service层传递的VO对象给页面展示。
更多关于数据结构层的介绍:https://blog.csdn.net/qq_27022241/article/details/112002345
MVVM框架项目
实现一个简单的MVVM框架
6/30
纯javascript实现双向数据绑定:https://www.codeproject.com/Articles/5264704/Two-Way-Data-Binding-in-Pure-JavaScript
javascript MVVM框架介绍:https://www.codeproject.com/Articles/5265632/Introducing-MVVM-Architecture-in-JavaScript-TypeSc
谢谢你,Volodymyr Kopytin大神!
计算机网络相关
在b站看斯坦福CS144作为教程,打算后期跟着《计算机网络 自顶向下方法》(Kurose&Ross版)再过一过。
突然发现看了英文教程再看中文版书有点不理解一些概念用语😂,想看纯英文版的书又怕自己看不懂,纠结了。
3/17
(摘自Kurose&Ross的《计算机网络 自顶向下方法》)
什么是套接字(socket):
套接字说同一台主机内应用层与传输层之间的接口,由于该套接字是在网络上建立网络应用程序的可编程接口,因此也将套接字称为应用程序和网络之间的应用程序编程接口(Application Programming Interface,API)。
什么是传输层的多路复用(multiplexing)和解复用(demultiplexing,多路分解):
多路复用和多路分解是因特网中的基本传输层服务。
从源主机的不同套接字中收集数据块,并为每个数据块封装上首部信息(这将在多路分解时使用)从而生成报文段,然后将报文段传递到网络层的工作称为多路复用。
将运输层报文段中的数据交付到正确的套接字的工作称为多路分解。
4/22
一个连异或怎么算都记不住的人今天看到了一个神解释:异或=不进位二进制加法
绝了!
杂记
一些感慨
最近学了好多好多东西,有gdb debug, 有rust, 也刷了些题。正在看很有意思的操作系统网课,还有项目组要求看的书…感觉这些事情都忙不过来了,更别说整理成博客。我这个博客网站的archive也一直没好好利用。
不知道我是不是在杞人忧天,但是我意识到最近精神状态欠佳后,自测了双相精神测试,怎么写都是阳性…本来就听说过,症状转移什么的,但是会是我吗?已经,要碎了,但是还在努力把自己收集起来。但也不知道是不是讳疾忌医的心理在作用,医保卡过期了没更新,没拿到新卡不想去看医生…
完全提不起兴致玩游戏,心理上好累又睡不着。大概是最近游戏不好玩吧,大概是没有朋友和我一起玩?大概是游戏打多了忙一忙就觉得游戏好玩了…好多年前我就只有听着Owl City的歌才能睡着了,但那个时候只觉得是自己压力太大。三两年前觉着是实验室事情太多,是画图太累,后来安慰自己年轻人熬熬夜怎么了。
很多年前还小的时候我就总觉着,如果社交上出现一些问题,那个念头就会总在脑子里转动消不去,到了有点影响生活的地步了。我总被这样的思绪叨扰,我没办法解释这种事情,只好跟家长说我头疼。我以为是我性格太执拗,是我太内向,是我表达的方式不对…哦,我该改改总是自我检讨的毛病,所作所为,留予世人评好了
(↑但是这句话也是在自我检讨…哪来的世人啊我嘞个超绝圈子小的缩头乌龟麦子老师哎)
好歹还能感受到朋友的关心,好歹还有兴致吃点什么,好歹今天中午睡得不错。