sbw Blog
  • 来源: sbw Blog | 浏览: 14 | 评论: 0 | 时间: 2023-02-11
    编译器后端中指令的编码是一项非常繁杂、易错的工作。需要查找大量的手册资料才能拼接出二进制序列,并且测试成本也比较高。于是研究了下,使用LLVM的模块完成指令的编码,自己的编译器这端只需要输出到符号化的汇编指令即可,大大减少了查文档拼二进制这项令人头秃的工作。
  • 来源: sbw Blog | 浏览: 41 | 评论: 0 | 时间: 2022-10-07
    我的博客使用了Rust中最常用的serde处理数据序列化。由于需要在数据库中读取一些时间字段,并且处理后再传递给js使用,而serde默认是没有对DataTime等时间类型做处理的,此时就需要使用serde提供的扩展宏来使用自定义类型的序列化。这里以NaiveDateTime作为示例记录如何进行自定义类型的序列化。
  • 来源: sbw Blog | 浏览: 26 | 评论: 0 | 时间: 2022-08-29
    我的博客是用Rust的actix-web框架写成的,为了方便部署,整个应用是放在Docker上运行的。最近更新了博客的代码,从actix-web 3.x升级到了4.x,其它的依赖包也尽可能的更新到了最新版本。在部署的时候发现,上一次更新博客程序已经是2年前了,都已经有点儿忘记之前是怎么部署的了,所以这次捣鼓完赶快写个文档记录一下。
  • 来源: sbw Blog | 浏览: 596 | 评论: 2 | 时间: 2021-10-11
    前几天,一个朋友问我能不能帮忙把一个自己写的小程序编译到一个Sparc平台的小型路由器上运行。当时我一听这个需求,感觉应该是没什么难度的,只需要对好目标平台环境,然后交叉编译即可。但在和他合作过程中发现,由于目标平台是经过魔改的,就导致各种编译不过。
  • 来源: sbw Blog | 浏览: 1057 | 评论: 2 | 时间: 2021-02-17
    以前在乔老师的博客里看到过通过获取Windows下的蓝牙配对信息,修改Linux下的配置文件,达到共享蓝牙设备的途径。现在真的有这个需求了,跟着他的教程却发现由于我的鼠标可能因为支持的蓝牙版本问题,没有走低功耗协议,导致配置上和之前不太一样。不过这种的配置项更容易修改,完美解决了每次换系统都要重新配对蓝牙设备的问题。
  • 来源: sbw Blog | 浏览: 1415 | 评论: 2 | 时间: 2020-08-30
    最新给网站添加了一些新功能,所以又重新编译部署了一下。由于我本地使用的是Archlinux,而跑网站的服务器使用的是Debian,编译出来的二进制在运行时出现libc版本不匹配的问题。直接在服务器上编译需要太多编译依赖,服务器上的内存和磁盘资源也不太够用,于是就决定使用docker。
  • 来源: sbw Blog | 浏览: 9286 | 评论: 0 | 时间: 2020-06-01
    在使用git协议拉取远程代码时,是需要进行用户身份认证的。虽然使用github的开源库+HTTPS协议可以避免认证,但有些不方便公开的私有库就没办法使用了。在使用一些自动化脚本或构建系统时,无法人工手动的输入密码,这就需要使用git所提供的credentials功能来完成用户认证了。
  • 来源: sbw Blog | 浏览: 2407 | 评论: 1 | 时间: 2020-03-21
    最近进军了ARM平台编译后端的工作,平时都是用公司的PLC硬件进行测试,无奈成品上除了必需的几个工具之外,像GDB这像的调试软件都没法部署。由于之前搞路由器的时候配过MIPS系统的虚拟机,于是就想着也配台ARM虚拟机来做测试用。
  • 来源: sbw Blog | 浏览: 6884 | 评论: 2 | 时间: 2020-02-27
    最近在MIPS上搞点事情,为了方便测试,就想着配一台MIPS虚拟机来用。由于QEMU对各种架构的虚拟化都支持的很好,所以当然选择用QEMU来运行虚拟机。另外,还需要一个具有官方MIPS支持的Linux发行版,我选择的是Debian的最新版ISO。安装过程倒也顺利,只是由于没有BIOS固件,在安装完成后需要一些特殊操作来辅助启动。
  • 来源: sbw Blog | 浏览: 2442 | 评论: 0 | 时间: 2020-02-23
    做了道蓝桥杯算法题:赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。 假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。atm想计算一下有多少种不同的可能的垒骰子方式。两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。 由于方案数可能过多,请输出模 10^9 + 7 的结果。
  • 来源: sbw Blog | 浏览: 6127 | 评论: 6 | 时间: 2020-02-02
    为了高可用,以及平衡多个Shadowsocks服务器流量,可以借助HAProxy代理+多个Shadowsocks服务端来配置一个Shadowsocks服务群。利用HAProxy的4层代理作流量分发,使用外部检查工具实时监控Shadowsocks服务器的状态,以完成服务群的配置。
  • 来源: sbw Blog | 浏览: 13952 | 评论: 3 | 时间: 2019-12-08
    由于我机器用的滚动更新的Archlinux,不知不觉Php已经升级到7.4了,没想到这次更新带来了极大的麻烦。首先是Php-fpm的新选项ProtectHome会导致经典的File not found错误,再是Php解释器会对null类型的下标访问直接报错Trying to access array offset on value of type null。
  • 来源: sbw Blog | 浏览: 2936 | 评论: 0 | 时间: 2019-10-06
    fzf是一个很强大的命令行下的模糊搜索工具,它可以很快速的根据关键词进行文件查找。在使用vim开发一些大型项目时,由于源代码树非常庞大,像NERDTree、netrw这样的文件浏览工具已经不能方便的在繁杂的目录树中快速定位到一个文件了。或者是在zsh中想要查找一个历史命令,靠zsh自己的ctrl+r或是按上箭头进行查找也很不方便,此时就可以借助fzf利器进行快速查找了。