liigo
文章平均质量分 78
Liigo
当我沉默着的时候,我觉得充实;我将开口,同时感到空虚……
相对于篮球,我更喜欢足球;相对于象棋,我更喜欢围棋;相对于C,我更喜欢Rust;……
庄晓立(Liigo),男,80后,山东省梁山县人,2002年毕业于山东理工大学,十多年来长期从事软件技术研究和基础产品研发。
电子邮件: liigo@@qq..com;新浪微博: Liigo;G+: +Liigo Zhuang。欢迎来人来函以及来而不往非礼也之洽谈。
展开
-
看通义千问Qwen1.5 72b的胡说八道
无原创 2024-06-26 19:41:24 · 724 阅读 · 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 · 1115 阅读 · 2 评论 -
你要顺着毛撸Rust——简评LogLogGames放弃Rust游戏开发
我倒是希望大家都顺着毛撸Rust。——庄晓立(LIIGO)。其实不只是Rust,扩展到所有编程语言,所有工具,所有人,都应该顺着毛撸。顺着它设计时思路,顺着它预定的应用场景,顺着其社区最佳实践模式,更充分高效的使用它;但不强求,不强迫做它不情愿做的事,或者说不勉强做它不擅长做的事。1 + 1 > 2;1 - 1 = 0。顺着毛撸,宾主两欢;逆着鳞撸,诸事不顺。这也是我多年来总结的人生经验,大家说有没有道理呢?原创 2024-05-11 19:58:51 · 572 阅读 · 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 · 1158 阅读 · 0 评论 -
正向代理和反向代理释义
对客户端而言,代理是服务端;对服务端而言,代理是客户端。无论是正向代理还是反向代理,代理总是在逻辑上位于客户端和服务端之间,充当二者通讯的媒介。代理是叫正向代理还是叫反向代理,取决于它站那一边。站客户端一边的叫正向代理,站服务端一边的叫反向代理。原创 2024-02-22 18:30:21 · 667 阅读 · 1 评论 -
Windows下执行`tar -xvf file.tar.bz2`解压bzip2文件
目标,在Rust程序里解压.tar.bz2压缩包。折腾了大半天,走了很多弯路。一是经验不足,没有及时想到合适的Shell,二是我的应用场景是在Windows系统下调用Linux命令行,难度较大。最终通过调用git-bash.exe解决了问题,并总结了经验教训。原创 2024-01-31 17:40:40 · 870 阅读 · 1 评论 -
看看通义天问AI的水平怎么样?
我跟通义千问的一次对话,请大家伙看看它的水平怎么样?原创 2024-01-17 18:41:06 · 825 阅读 · 1 评论 -
Rust更换Cargo国内源,镜像了寂寞(更新:不再寂寞)
换了Cargo国内源,构建时该卡还会卡。因为它所谓的换源,只是更换crates.io“索引”的源,而不是package“内容”的源。更新:点赞推荐USTC源,换皮又换身。原创 2023-09-11 18:42:27 · 7713 阅读 · 2 评论 -
由编译rsync想到的,MSYS2 VS CYWIN
本文介绍了rsync的Windows版本的编译和使用方法,辨析了Msys2/Cygwin/Mingw64之间的异同。原创 2023-09-03 22:21:54 · 766 阅读 · 1 评论 -
即将发布的C库STC v4.3已支持块定义风格的协程
STC新版将支持Block-style风格的协程定义。相比旧版,新版写法浑然天成,风格上更贴近C语言,摒弃了原来人为刻意构造的 cco_begin/cco_end,把返回值也从cco_end参数里拿出来,用纯粹的C语法return表达协程返回值,而且还额外支持在协程结束之前执行任意代码,这也是相对旧版的重要改进。原创 2023-06-20 19:49:46 · 704 阅读 · 0 评论 -
简评ChatGPT
LIIGO评价:ChatGPT这玩意,完全是说瞎话不带打草稿的,极度自信的说完全不着调的话。其本性有问题,态度不端正,可信度就为零。它头上挂AI的名号简直是对AI最大羞辱,它本质上是反AI。原创 2023-02-22 18:48:39 · 1222 阅读 · 3 评论 -
情人节感慨:Rust API 文档边栏 Tooltips 显示功能被删除
今天看到Rust源码仓库里这个PR在三天前被合并了,其内容是删除了Rust API文档边栏里的Tooltips显示功能,其理由是有别的地方没有Tooltips因而显得不协调(为何不再别处补上Tooltip)。我感觉删掉可惜了。原创 2023-02-14 20:13:26 · 389 阅读 · 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 · 1708 阅读 · 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 · 13548 阅读 · 7 评论 -
QCon2016演讲《Rust语言的核心竞争力》总结和补充
应 QCon北京2016|全球软件开发大会 主编臧秀涛邀请,我(Liigo)于2016年4月23日在大会上做主题演讲《Rust编程语言的核心优势和核心竞争力》(PDF演讲稿)。由于是初次登台,现场表现不佳,个人不是很满意。故做本文对此次演讲进行总结和补充。核心三要素:系统编程,零运行时,内存安全我把Rust编程语言的核心优势和核心竞争力概括为三个要素:系统编程,零运行时,内存安全。在强调底层控制的系原创 2016-04-27 00:15:29 · 15557 阅读 · 5 评论 -
我为什么放弃Go语言
我为什么放弃Go语言?有好几次,当我想起来的时候,总是会问自己:这个决定是正确的吗?是明智和理性的吗?其实我一直在认真思考这个问题。开门见山地说,我当初放弃Go语言,就是因为两个“不爽”:第一,对Go语言本身不爽;第二,对Go语言社区里的某些人不爽。毫无疑问,这是非常主观的结论,但是我有足够详实的客观的论据。原创 2014-04-14 19:24:19 · 530637 阅读 · 738 评论 -
为什么我说Rust是靠谱的编程语言
序言:本文试图帮您解答“我要不要(投入大量时间和精力)学习Rust语言?”这个问题。作者尽量较少的谈及Rust语言本身,反而尝试从Rust语言周边入手,长时间、大范围、多角度地考察,研判Rust语言是否靠谱,并给出尽可能客观的理由。为写成本文,作者Liigo不惜“卧底”Rust“老巢”长达一年多,收集整理总结了大量信息。如果嫌长,可以只看小标题,粗略浏览一番。2016年2月22日修订和增补此文。原创 2015-05-16 02:59:21 · 130706 阅读 · 109 评论 -
Rust运行时指南(官方文档翻译)
Rust运行时指南,译自Rust官方文档。Rust编程语言的标准发行版包含两个运行时库(libgreen和libnative),提供I/O等基础设施的统一接口。翻译 2014-02-15 19:34:38 · 15903 阅读 · 12 评论 -
InfoQ中文站特供稿件:Rust编程语言的核心部件
本文为InfoQ中文站特供稿件,如需转载,请与InfoQ中文站联系。原文发表于2015年12月22日,现根据之前约定将其全文转发到我(Liigo)个人博客里。Rust是一门强调安全、并发、高效的系统编程语言。无GC实现内存安全机制、无数据竞争的并发机制、无运行时开销的抽象机制,是Rust独特的优越特性。原创 2015-12-26 19:08:29 · 5090 阅读 · 0 评论 -
安装配置PHP 5.6 + Nginx 1.8
安装配置 PHP 5.6 + Nginx 1.8原创 2015-09-12 11:24:59 · 11510 阅读 · 0 评论 -
Laravel 5.1 源码阅读笔记
Laravel 5.1 源码阅读笔记,主要涉及入口文件、Kernel、Application、Pipeline、Middleware、Router、Request、Response、Bootstrap等等。原创 2015-11-05 18:04:42 · 11160 阅读 · 2 评论 -
ThinkPHP 3.2 + PostgreSQL 9.4 的错误及解决办法
现象在ThinkPHP Controller里一个简单的M('user')调用就会出错。排除了数据库配置方面的原因。有多个网友详细的描述了这个错误现象,我遇到的错误跟他们是一样的。原创 2015-09-12 18:08:57 · 6594 阅读 · 3 评论 -
在 Zend Studio 12.5 里下断点调试运行 PHP 源代码
本文解决如下问题:在Zend Studio里面下断点然后调试运行(Debug As PHP Web Application),却发现网站正常跑起来了,断点根本就没生效。断点不生效,主要原因是调试器没有配置好。其实Zend Studio已经自带了ZendDebugger调试器,并且已经跟内置的PHP CLI环境集成好了。但是要调试我们自己安装的Web server + PHP程序,还得做额外的配置工作原创 2015-09-17 16:04:07 · 18244 阅读 · 2 评论 -
CSDN首页刊发对我的专访:我为什么要选择Rust?
今年(2015年)6月30日,CSDN网站首页刊发了美女编辑夏梦竹对我(Liigo)的专访文章,题目是《专访资深程序员庄晓立:我为什么要选择Rust?》。CSDN首页转发我的博客文章曾有许多次,但大多都是纯文字链接,这次在首页版面最突出位置悬挂题图和摘要,无疑是最隆重的一次。在这篇专访中,我简明扼要的介绍了Rust编程语言的核心特性和独特优势,并分享了我选择Rust这门语言的主要原因。转载 2015-10-04 20:41:00 · 7283 阅读 · 4 评论 -
再议易语言静态编译重定位数目过多
有关易语言“静态编译的EXE重定位项不能多于65535个”问题,提供详细的分析和应对办法。原创 2018-06-22 18:17:40 · 3236 阅读 · 3 评论 -
关于Servo项目中Rust代码行数的数据来源
在我两个月之前的一篇博客《为什么我说Rust是靠谱的编程语言》(以下简称原文),在其中“6. 两个半大型成功案例”一节,我曾经写道:Servo: 下一代浏览器渲染引擎(类Webkit/Blink),超过40万行Rust代码;rustc+std: Rust编译器和标准库,超过35万行Rust代码。提供了两大项目的源代码行数,却没有明确提供数据来源。本文做补充说明。原创 2015-07-28 12:33:37 · 5218 阅读 · 2 评论 -
Rust 1.0发布一周年,发展回顾与总结
本文为InfoQ中文站特供稿件。原文发表于2016年6月17日,40日后根据之前约定将其全文转发到我(Liigo)个人博客里。此文创作于今年5月份(5月初至6月初),过程颇为周折,没赶上Rust 1.0纪念日,可谓姗姗来迟也。笔者尝试从多个方面总结过去一年来Rust领域的重要动作、进度和成就。原创 2016-07-27 22:51:23 · 8985 阅读 · 1 评论 -
放弃有道词典和有道云笔记
放弃有道词典(移动版)和有道云笔记原创 2016-11-11 17:33:26 · 12314 阅读 · 2 评论 -
用C语言实现SGF格式围棋棋谱解析器
这是本人(liigo)独立实现的SGF格式围棋棋谱文件解析器,本文介绍其实现细节。网络上肯定可以找到完善的开源的SGF解析器,这是毋庸置疑的,我不直接使用它们,也不参考它们的实现代码,而是自己独立编码实现,是有原因的,因为我想自己重复发明轮子,并且认为这样更有助于提高我的编码能力。(关于我的“一定要学会重复发明轮子”的不成熟的论调,今后我将会专门撰文表述。) 我(liigo)开发的这个SGF原创 2009-09-06 23:56:00 · 12505 阅读 · 3 评论 -
无锁环形缓冲区队列 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 · 4277 阅读 · 0 评论 -
Asciidoc 的嵌入式链接写法
多年以前,有一段时间我对 Asciidoc 很感兴趣,尝试用它起草写了一篇博客文章(为什么我说Rust是靠谱的编程语言),偏偏那是一篇很长的文章(大概有一万字),偏偏里面有大量的超级链接,大量的链接夹杂在文字中间,写的我都快吐了。当时也曾专门去找,想知道Asciidoc有没有类似Markdown的嵌入式链接写法([title][name] [name]: url),然而很遗憾,没找到(我觉得官方文...原创 2019-08-20 16:55:42 · 1830 阅读 · 1 评论 -
2019年的“Rust 2018”才是我的菜
去年底,2018年12月7日,Rust编程语言发布了 Edition 2018 版本(习惯上也称为Rust 2018)。当时我原本计划要写点什么,因为一些事情耽误了,现在补上。我(Liigo)跟Rust语言还是很有缘分的。我第一次接触Rust那一年,与我和老婆结婚是同一年。Rust 2018发布那一天,与我小女儿诞生是同一天。五年来,我持续关注着Rust,不曾离开。说回Rust 2018,它赶...原创 2019-01-18 10:39:37 · 4646 阅读 · 0 评论 -
日常随手记,记录一些琐碎的技术细节
本文用作日常随手记,平时遇到一些琐碎的技术细节就随便扔进来备查。必要时也可整理成独立博文发表。通过 _CrtSetBreakAlloc 定位内存泄漏点现象:Visual Studio 调试运行程序结束后在输出栏提示有内存泄漏,内容如下Detected memory leaks!Dumping objects ->{5481} normal block at 0x01371820,...原创 2018-11-29 11:11:36 · 1414 阅读 · 0 评论 -
创建局域网Git服务器
本文提供的方法适用于小型团队在局域网内通过git协同编码,基本配置简便易行,还额外提供基于SSH免密码提交代码的扩展方案。基本原理可参见文末总结。原创 2018-11-06 17:09:27 · 10636 阅读 · 3 评论 -
客户端POST提交JSON给PHP的问题
注:这是我去年写在知乎里的文章。后来要查阅,来CSDN博客里翻了底朝天都没找到,甚至一度怀疑CSDN丢文章。特此转发已备后用。另外发现在知乎的原文好像已经不能编辑了,而我又需要编辑它,这是转发至此的又一个理由。原文我前两天(当时时间是2017年1月)用易语言写一个(原以为很简单的)客户端软件,将JSON文本POST给PHP,Content-Type是application/json...原创 2018-08-07 17:27:33 · 7456 阅读 · 5 评论 -
Rust编程语言2018年路线图
Rust编程语言2018年路线图3月12日,Rust官方博客正式发布了Rust’s 2018 roadmap。 该路线图是在广泛征求社区主流意见的基础上制定的,其内容充实且务实。它的发布令社区大多数人感到振奋。据我个人总结,该路线图主要包含以下三点:将发布一个具有里程碑意义的重要版本(Edition 2018)语言、标准库、编译器、文档等将有重要改进致力于在网络、嵌入式、Web...原创 2018-03-19 21:18:16 · 4672 阅读 · 0 评论 -
借助动态代码生成技术在基于Webkit引擎的HTML5网页JS内调用易语言函数
前两天我协助朋友解决了一个技术问题,在此稍作记录和总结。具体来说,就是在使用基于Webkit引擎的封装组件wke的过程中,需要把一个易语言函数注册给JavaScript引擎,让它可以在网页里被调用(就像在网页里调用普通JavaScript函数一样)。如果能做到这一点,就基本实现了从JavaScript传递参数到易语言、易语言返回值给JavaScript的双向沟通机制,以后有广泛的应用空间。最终,我借助动态生成代码技术,纯手工书写了几行X86机器指令,人肉编译形成一个fastcall调用约定的回调函数,传递给原创 2015-03-03 23:25:19 · 15338 阅读 · 14 评论 -
我持续推动Rust语言支持Windows XP系统
前言Rust好像长期以来不支持Windows XP系统。有不少用户发帖提议官方支持XP,基本上都被Rust官方开发者明确的拒绝了。他们的对话大致上是以这样的形式开始和结束的(其中乙方代表官方及其拥趸)……原创 2015-07-02 19:46:16 · 9993 阅读 · 10 评论 -
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 · 8145 阅读 · 3 评论 -
锈永不磨灭,让末日来得更酷!
本文翻译自ReadWrite.com上刊登的Matt Asay的一篇文章,Rust Never Sleeps: How Mozilla Could Become Cool Again,副标题是“Mozilla has almost faded from memory, but Rust could make it hip again”。翻译 2015-07-14 19:15:38 · 5074 阅读 · 3 评论