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