
liigo
文章平均质量分 80
Liigo
当我沉默着的时候,我觉得充实;我将开口,同时感到空虚……
相对于篮球,我更喜欢足球;相对于象棋,我更喜欢围棋;相对于C,我更喜欢Rust;……
庄晓立(Liigo),男,80后,山东省梁山县人,2002年毕业于山东理工大学,十多年来长期从事软件技术研究和基础产品研发。
电子邮件: liigo@@qq..com;新浪微博: Liigo;G+: +Liigo Zhuang。欢迎来人来函以及来而不往非礼也之洽谈。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2025远离Deno和Fresh
2023年底至2025年初这一年多时间里,Fresh没有实质开发进展。开发人员先是去做JSR,晾了Fresh几个月;回来后挖了个大坑(发起Fresh2),不久又去做Deno2,又晾了Fresh几个月;JSR和Deno2都完事后,依然没有回归开发Fresh2的任何迹象;几个月后才知道人家又被调去开发Deno Deploy新版啦,无语!原创 2025-06-06 18:16:09 · 926 阅读 · 0 评论 -
LIIGO ❤️ RUST: 12 YEARS
今天是RUST语言1.0发布十周年纪念日。十年前的今天,2015年的今天,[Rust 1.0](https://blog.rust-lang.org/2015/05/15/Rust-1.0/) 正式发行。这是值得全球Rust支持者隆重纪念的日子。我(LIIGO)是Rust早期开发者之一,与Rust语言最初结缘于2013年,至今已经12年了。原创 2025-05-16 18:35:54 · 581 阅读 · 0 评论 -
C# 13 编译器还真是个大聪明
文章《C# 13 编译器还真是个大聪明》探讨了C# 13编译器在处理类成员赋值和异步函数调用时的行为。作者指出,编译器在类成员通过构造函数间接赋值时,仍会发出CS8618警告,尽管赋值确实发生。此外,编译器在处理Action和Func<Task>类型时存在混淆,允许将异步闭包传递给期望同步闭包的函数,导致潜在的运行时错误。作者建议通过改进函数命名和重载来避免此类问题,并强调编译器应更严格地检查类型匹配,以防止代码缺陷。以上摘要由AI生成。原创 2025-05-09 17:57:09 · 1049 阅读 · 0 评论 -
LIIGO: Why say NO to tauri
以下文字是从《A 2025 Survey of Rust GUI Libraries》一文中摘抄出来的,作者是Melody Horn。对于他评价Tauri的观点,我深度的感同身受。一句话概述,Tauri严重的人为的割裂了桌面APP内部的前端和后端。我此前的博文《初次体验Tauri和Sycamore(1)Tauri 2.0》也曾经隐晦地表达过类似的不满(后续同系列博文也体现出我逐步倾向于Dioxus)。在一个桌面APP内部,Rust前端和Rust后端,在Tauri架构下居然有强烈的割裂感,双方要依靠进程间通讯转载 2025-04-23 12:50:20 · 112 阅读 · 0 评论 -
探究 Arm Compiler for Embedded 6 的 Clang 版本
最终起关键作用的是`-std=c++17`和`-std=c17`。clang从5.0开始支持前者,从6.0开始支持后者。而armclang仅支持前者还不支持后者,证明armclang对应的clang版本一定是5.0。Clang 5.0发布于2017年9月,到2024年9月已经升级版本到19.1.0。今年是2025年,armclang还停留在clang 5.0,有七年之久没有任何跟进升级,可以说是非常陈旧的版本。不要再对AC6升级内核报任何希望,它即将寿终正寝(参见上文)。原创 2025-03-26 17:51:57 · 1411 阅读 · 1 评论 -
初次体验Tauri和Sycamore(3)通道实现
本文源自系列文章第1篇《初次体验Tauri和Sycamore (1)》,从中抽取出来独立成文(但并无更新和修订),专注于探究Tauri通道的底层实现(实际上也没有足够底层)。理由:1.原文已经很长,需要精简;2.原文主体是初级技术内容,仅这一节相对深入,显得格格不入。(如无意外,这将是本系列文章的终结。)原创 2025-03-10 17:32:59 · 943 阅读 · 0 评论 -
简讯:Rust 2024 edition and v1.85.0 已发布
https://blog.rust-lang.org/2025/02/20/Rust-1.85.0.html原创 2025-02-21 08:40:56 · 532 阅读 · 0 评论 -
Dioxus v0.6.3 released
This release fixes a number of bugs and cleans up the internal implementations of a few APIs. Notably:- Fixes in `dx` html -> rsx translation- Fixes for bundling .exe on windows- Proper handling of gitignored manganis assets- Support for android device转载 2025-02-12 16:17:07 · 105 阅读 · 0 评论 -
这不是你的一亩三分地——简评Rust for Linux项目被内核维护者刁难
Rust是Linux高层决策引入内核的鲶鱼,并非外行眼中所谓的外部入侵者。Linux想革新想与时俱进,但面临来自基层模块维护者的阻力。增加维护负担是必然的,但是具体增加多少需要量化,需要评估费效比,以便进一步决策是否值得去做。这不应是单个模块的内部决策,而应是Linux整体的统一决策,这是目前所欠缺的。总之希望双方斗而不僵吧,不希望两败俱伤。原创 2025-02-10 23:01:59 · 844 阅读 · 0 评论 -
C语言第三方标准库STC 5.0新版发布
STC 5.0正式发布。STC是一个全面的、现代的、类型安全的、高性能的、模板化的、通用的、基于C99的容器和算法库。它的目标是让C编程更有趣、更便捷、更安全。原创 2025-01-13 22:51:49 · 1030 阅读 · 0 评论 -
对豆包MarsCode AI很无语
这篇文章主要描述了用户在使用 MarsCode AI 时的一段经历。用户在编辑代码时,需要找到 getStringFromWasm0 函数的定义,通过搜索和查看代码,用户在当前文件的第 93 行找到了该函数的定义。然而,MarsCode AI 在之前的回答中一直重复说该函数的具体实现可能在当前文件之外的其他地方定义,这让用户感到困惑和无语。原创 2024-12-16 18:18:09 · 1343 阅读 · 0 评论 -
初次体验Tauri和Sycamore(1)Tauri 2.0
Tauri 2.0发布于2024年10月2日,发布于2024年11月1日。二者在近期双双发布重大版本升级,是我(LIIGO)本次想体验他们的主要动机。Tauri自2022年发布v1.0之后就早已火出天际,而Sycamore自2022发布v0.8之后沉寂了两年之久,如今各自凤凰涅槃,他们的组合体会擦出怎样的火花?本文是系列文章的第一篇,重点是Tauri。原创 2024-11-10 21:13:55 · 2127 阅读 · 0 评论 -
SHELF99,我曾经用于排查网络问题的临时小工具(附Rust源码)
客户端主机硬件平台:iMX6UL;客户端主机软件平台:嵌入式Linux。Shelf99是运行在其中的一个小软件,以虚拟精简客户端的身份与系统服务器通讯。正式客户端软件是合作方开发的QT程序,在排查之前并不能排除或确认是否有BUG。事后证明应用层没有BUG,BUG在系统层。原创 2024-10-15 18:27:36 · 319 阅读 · 0 评论 -
看通义千问Qwen1.5 72b的胡说八道
无原创 2024-06-26 19:41:24 · 926 阅读 · 0 评论 -
你不要乱写sleep(6)——简评华为昇腾演示代码翻车
调用栈显示,main.py调用了ret.write(),ret.write()调用了time.sleep(6)。也就是说,**`time.sleep(6)`代码是写在`ret.write()`函数内部的**。这一点我感觉很反常。正常来说,流程应该是这样的:query, sleep, write。不知道处于何种考虑,演示者似乎不想让我们看到sleep,故意把sleep隐藏到write内部。事实上如果演示过程一切正常,我们根本不知道有sleep(6)的存在;只不过因为一个意外回车才导致sleep暴露在我原创 2024-05-20 19:04:17 · 1541 阅读 · 2 评论 -
你要顺着毛撸Rust——简评LogLogGames放弃Rust游戏开发
我倒是希望大家都顺着毛撸Rust。——庄晓立(LIIGO)。其实不只是Rust,扩展到所有编程语言,所有工具,所有人,都应该顺着毛撸。顺着它设计时思路,顺着它预定的应用场景,顺着其社区最佳实践模式,更充分高效的使用它;但不强求,不强迫做它不情愿做的事,或者说不勉强做它不擅长做的事。1 + 1 > 2;1 - 1 = 0。顺着毛撸,宾主两欢;逆着鳞撸,诸事不顺。这也是我多年来总结的人生经验,大家说有没有道理呢?原创 2024-05-11 19:58:51 · 794 阅读 · 0 评论 -
RUST编程语言入门基础2024
Rust编程语言赋能所有人开发高可靠且高性能的软件。方式1:内联模块/// 文档 mod mod1 {// 代码 }方式2:文件模块mod mod2;//!文档 // 代码以上定义的mod1和mod2均为当前模块的子模块。// x: i32// mut变量y = 123;// 仅mut变量可以被赋值或被改变n: i32,Counter {n: 0,self.n#[test]assert_eq!assert_eq!assert_eq!Counter {原创 2024-05-09 18:42:52 · 1315 阅读 · 0 评论 -
正向代理和反向代理释义
对客户端而言,代理是服务端;对服务端而言,代理是客户端。无论是正向代理还是反向代理,代理总是在逻辑上位于客户端和服务端之间,充当二者通讯的媒介。代理是叫正向代理还是叫反向代理,取决于它站那一边。站客户端一边的叫正向代理,站服务端一边的叫反向代理。原创 2024-02-22 18:30:21 · 738 阅读 · 1 评论 -
Windows下执行`tar -xvf file.tar.bz2`解压bzip2文件
目标,在Rust程序里解压.tar.bz2压缩包。折腾了大半天,走了很多弯路。一是经验不足,没有及时想到合适的Shell,二是我的应用场景是在Windows系统下调用Linux命令行,难度较大。最终通过调用git-bash.exe解决了问题,并总结了经验教训。原创 2024-01-31 17:40:40 · 1452 阅读 · 1 评论 -
看看通义天问AI的水平怎么样?
我跟通义千问的一次对话,请大家伙看看它的水平怎么样?原创 2024-01-17 18:41:06 · 1183 阅读 · 1 评论 -
Rust更换Cargo国内源,镜像了寂寞(更新:不再寂寞)
换了Cargo国内源,构建时该卡还会卡。因为它所谓的换源,只是更换crates.io“索引”的源,而不是package“内容”的源。更新:点赞推荐USTC源,换皮又换身。原创 2023-09-11 18:42:27 · 12793 阅读 · 2 评论 -
由编译rsync想到的,MSYS2 VS CYGWIN
本文介绍了rsync的Windows版本的编译和使用方法,辨析了Msys2/Cygwin/Mingw64之间的异同。原创 2023-09-03 22:21:54 · 1226 阅读 · 1 评论 -
即将发布的C库STC v4.3已支持块定义风格的协程
STC新版将支持Block-style风格的协程定义。相比旧版,新版写法浑然天成,风格上更贴近C语言,摒弃了原来人为刻意构造的 cco_begin/cco_end,把返回值也从cco_end参数里拿出来,用纯粹的C语法return表达协程返回值,而且还额外支持在协程结束之前执行任意代码,这也是相对旧版的重要改进。原创 2023-06-20 19:49:46 · 833 阅读 · 0 评论 -
简评ChatGPT
LIIGO评价:ChatGPT这玩意,完全是说瞎话不带打草稿的,极度自信的说完全不着调的话。其本性有问题,态度不端正,可信度就为零。它头上挂AI的名号简直是对AI最大羞辱,它本质上是反AI。原创 2023-02-22 18:48:39 · 1354 阅读 · 3 评论 -
情人节感慨:Rust API 文档边栏 Tooltips 显示功能被删除
今天看到Rust源码仓库里这个PR在三天前被合并了,其内容是删除了Rust API文档边栏里的Tooltips显示功能,其理由是有别的地方没有Tooltips因而显得不协调(为何不再别处补上Tooltip)。我感觉删掉可惜了。原创 2023-02-14 20:13:26 · 459 阅读 · 1 评论 -
使用gdb远程调试开发板内程序
使用gdb远程调试开发板内程序背景,开发主机是x86-64平台的Linux系统,开发板是ARM平台的Linux系统。1. 安装gdb-multiarch作为gdb客户端apt install gdb-multiarch2. 编译可在开发板内运行的gdbserver作为gdb服务端下载gdbserver v7.12源代码,并使用交叉编译工具链编译:cd gdb-7.12/gdb/gdbserver./configure --host=arm-linux --target=arm-linuxma原创 2021-10-15 18:30:57 · 2038 阅读 · 2 评论 -
关于 Golang 2.0 的泛型
今天看到HN的一篇关于 Go2 Generics 的讨论。有网友说到:Ken Thompson and Rob Pike are mostly out not at all involved with Go anymore. They are 2/3 of the original creators. It’s different people making the decisions now...原创 2020-02-19 18:53:21 · 13655 阅读 · 7 评论 -
UCRT: VC 2015 Universal CRT, by Microsoft
经Liigo本人测试,在XP SP3系统内,VC2015编译的EXE/DLL除了依赖以上目录内的(几乎)所有dll以外,还额外依赖`vcruntime140.dll`。前面提到的这些dll,共计42个,统统放到EXE/DLL所在目录,可确保所有依赖项都不欠缺。原创 2016-11-14 17:18:57 · 8273 阅读 · 3 评论 -
放弃有道词典和有道云笔记
放弃有道词典(移动版)和有道云笔记原创 2016-11-11 17:33:26 · 12625 阅读 · 2 评论 -
Rust 1.0发布一周年,发展回顾与总结
本文为InfoQ中文站特供稿件。原文发表于2016年6月17日,40日后根据之前约定将其全文转发到我(Liigo)个人博客里。此文创作于今年5月份(5月初至6月初),过程颇为周折,没赶上Rust 1.0纪念日,可谓姗姗来迟也。笔者尝试从多个方面总结过去一年来Rust领域的重要动作、进度和成就。原创 2016-07-27 22:51:23 · 9195 阅读 · 1 评论 -
QCon2016演讲《Rust语言的核心竞争力》总结和补充
应 QCon北京2016|全球软件开发大会 主编臧秀涛邀请,我(Liigo)于2016年4月23日在大会上做主题演讲《Rust编程语言的核心优势和核心竞争力》(PDF演讲稿)。由于是初次登台,现场表现不佳,个人不是很满意。故做本文对此次演讲进行总结和补充。核心三要素:系统编程,零运行时,内存安全我把Rust编程语言的核心优势和核心竞争力概括为三个要素:系统编程,零运行时,内存安全。在强调底层控制的系原创 2016-04-27 00:15:29 · 15663 阅读 · 5 评论 -
我为什么放弃Go语言
我为什么放弃Go语言?有好几次,当我想起来的时候,总是会问自己:这个决定是正确的吗?是明智和理性的吗?其实我一直在认真思考这个问题。开门见山地说,我当初放弃Go语言,就是因为两个“不爽”:第一,对Go语言本身不爽;第二,对Go语言社区里的某些人不爽。毫无疑问,这是非常主观的结论,但是我有足够详实的客观的论据。原创 2014-04-14 19:24:19 · 533473 阅读 · 741 评论 -
为什么我说Rust是靠谱的编程语言
序言:本文试图帮您解答“我要不要(投入大量时间和精力)学习Rust语言?”这个问题。作者尽量较少的谈及Rust语言本身,反而尝试从Rust语言周边入手,长时间、大范围、多角度地考察,研判Rust语言是否靠谱,并给出尽可能客观的理由。为写成本文,作者Liigo不惜“卧底”Rust“老巢”长达一年多,收集整理总结了大量信息。如果嫌长,可以只看小标题,粗略浏览一番。2016年2月22日修订和增补此文。原创 2015-05-16 02:59:21 · 131658 阅读 · 109 评论 -
Rust运行时指南(官方文档翻译)
Rust运行时指南,译自Rust官方文档。Rust编程语言的标准发行版包含两个运行时库(libgreen和libnative),提供I/O等基础设施的统一接口。翻译 2014-02-15 19:34:38 · 16187 阅读 · 12 评论 -
InfoQ中文站特供稿件:Rust编程语言的核心部件
本文为InfoQ中文站特供稿件,如需转载,请与InfoQ中文站联系。原文发表于2015年12月22日,现根据之前约定将其全文转发到我(Liigo)个人博客里。Rust是一门强调安全、并发、高效的系统编程语言。无GC实现内存安全机制、无数据竞争的并发机制、无运行时开销的抽象机制,是Rust独特的优越特性。原创 2015-12-26 19:08:29 · 5177 阅读 · 0 评论 -
基本的HTML文本解析器的设计和实现(C/C++源码),图文并茂
作者:庄晓立 (liigo)日期:2011-1-19原创链接:http://blog.youkuaiyun.com/liigo/archive/2011/01/19/6153829.aspx转载请保持本文完整性,并注明出处:http://blog.youkuaiyun.com/liigo关键字:HTML,解析器(Parser),节点(Node),标签(Tag) 这是进入2011年以来,本人(lii原创 2011-01-19 23:28:00 · 37455 阅读 · 69 评论 -
我持续推动Rust语言支持Windows XP系统
前言Rust好像长期以来不支持Windows XP系统。有不少用户发帖提议官方支持XP,基本上都被Rust官方开发者明确的拒绝了。他们的对话大致上是以这样的形式开始和结束的(其中乙方代表官方及其拥趸)……原创 2015-07-02 19:46:16 · 10417 阅读 · 10 评论 -
借助动态代码生成技术在基于Webkit引擎的HTML5网页JS内调用易语言函数
前两天我协助朋友解决了一个技术问题,在此稍作记录和总结。具体来说,就是在使用基于Webkit引擎的封装组件wke的过程中,需要把一个易语言函数注册给JavaScript引擎,让它可以在网页里被调用(就像在网页里调用普通JavaScript函数一样)。如果能做到这一点,就基本实现了从JavaScript传递参数到易语言、易语言返回值给JavaScript的双向沟通机制,以后有广泛的应用空间。最终,我借助动态生成代码技术,纯手工书写了几行X86机器指令,人肉编译形成一个fastcall调用约定的回调函数,传递给原创 2015-03-03 23:25:19 · 15449 阅读 · 14 评论 -
无锁环形缓冲区队列 kfifo
kfifo的移植两个月前,我花了两天时间,查找Linux内核里kfifo的相关资料,将其从内核层移植到应用层,并成功应用于多线程CAN总线采集程序(一个线程接收/一个线程输出)。kfifo.c是从Linux 5.3 stable内核代码里复制出来的,路径是lib/kfifo,对应的kfifo.h路径是include/linux/kfifo.h。由于kfifo是内核里的代码,应用层无法直接使用,我...原创 2019-09-18 18:56:46 · 5010 阅读 · 0 评论 -
Asciidoc 的嵌入式链接写法
多年以前,有一段时间我对 Asciidoc 很感兴趣,尝试用它起草写了一篇博客文章(为什么我说Rust是靠谱的编程语言),偏偏那是一篇很长的文章(大概有一万字),偏偏里面有大量的超级链接,大量的链接夹杂在文字中间,写的我都快吐了。当时也曾专门去找,想知道Asciidoc有没有类似Markdown的嵌入式链接写法([title][name] [name]: url),然而很遗憾,没找到(我觉得官方文...原创 2019-08-20 16:55:42 · 1985 阅读 · 1 评论