[{"data":1,"prerenderedAt":763},["ShallowReactive",2],{"content-pages-path=\u002Fprofile":3,"content-pages-surroundings-path=\u002Fprofile":439,"content-pages-navigation":448,"content-projects-list-top-limit=6":554},{"id":4,"title":5,"body":6,"description":409,"display":410,"extension":415,"meta":416,"navigation":417,"ogImage":419,"path":424,"robots":425,"schemaOrg":426,"seo":432,"sitemap":433,"ssr":436,"stem":437,"__hash__":438},"pages\u002F002.profile.md","宋子桓",{"type":7,"value":8,"toc":383},"minimark",[9,13,17,20,157,159,162,165,168,170,173,176,179,182,185,197,200,205,208,214,221,224,227,230,233,246,249,252,255,258,261,264,267,278,281,288,291,294,297,300,303,306,311,314,317,338,341,362,365],[10,11,12],"h2",{"id":12},"简介",[14,15,16],"p",{},"我是宋子桓，热衷底层：从编译器、系统工具到操作系统内核设计。也熟悉后端、Linux 运维和云基础设施。",[14,18,19],{},"我非常重视代码的可预测性、可理解性、可维护性和可欣赏性。技术对我而言，不是堆砌功能，而是寻找简洁、一致、可生长的表达。",[21,22,23,35,43,50,57,64,70,76,82,88,101],"profile",{},[24,25,27],"template",{"v-slot:avatar":26},"",[28,29,32],"profile-avatar",{"english-name":30,"image":31,"name":5},"Zihuan Song","\u002Fcontent\u002Fimg\u002Favatar\u002Fsongzihuan-v1.png",[14,33,34],{},"宋子桓（Zihuan Song）的头像",[36,37,40],"profile-data",{"label":38,"label-english":39},"姓氏","Family Name",[14,41,42],{},"宋 \u002F Song",[36,44,47],{"label":45,"label-english":46},"名字","Given Name",[14,48,49],{},"子桓 \u002F Zihuan",[36,51,54],{"label":52,"label-english":53},"偏好称呼","Preferred Name",[14,55,56],{},"桓枢 \u002F Huxom",[36,58,61],{"label":59,"label-english":60},"昵称","（社交媒体）",[14,62,63],{},"写代码的小桓Huan",[36,65,67],{"label":66},"生日",[14,68,69],{},"2004年6月",[36,71,73],{"label":72},"地区",[14,74,75],{},"广东广州",[36,77,79],{"label":78},"偏好时区",[14,80,81],{},"Asia\u002FShanghai",[36,83,85],{"label":84},"主要职业",[14,86,87],{},"软件工程师",[36,89,91],{"label":90},"技术信念",[92,93,94,98],"ul",{},[95,96,97],"li",{},"优雅胜于优化",[95,99,100],{},"开源共享",[36,102,104],{"label":103},"关联网站",[92,105,106,115,122,129,136,143,150],{},[95,107,108],{},[109,110,114],"a",{"href":111,"rel":112},"https:\u002F\u002Fsong-zh.com",[113],"nofollow","宋子桓个人官网",[95,116,117],{},[109,118,121],{"href":119,"rel":120},"https:\u002F\u002Fgithub.com\u002Fsongzihuan",[113],"Github",[95,123,124],{},[109,125,128],{"href":126,"rel":127},"https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002Fe2RNDW7T9WFdIohrQlTYow",[113],"微信公众号",[95,130,131],{},[109,132,135],{"href":133,"rel":134},"https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fsuper-huan0630",[113],"知乎",[95,137,138],{},[109,139,142],{"href":140,"rel":141},"https:\u002F\u002Fjuejin.cn\u002Fuser\u002F3881729747066912",[113],"掘金",[95,144,145],{},[109,146,149],{"href":147,"rel":148},"https:\u002F\u002Fv.douyin.com\u002FQodkwEPBgHo",[113],"抖音",[95,151,152],{},[109,153,156],{"href":154,"rel":155},"https:\u002F\u002Fspace.bilibili.com\u002F3691013029759036",[113],"B站",[10,158,90],{"id":90},[160,161,97],"h3",{"id":97},[14,163,164],{},"我从不反对性能优化，但认为过早地优化是万恶之源。\n代码应该是逻辑的精确表达，透过源代码可预测程序的表现。\n无论遇到性能问题、还是安全漏洞，清晰的结构能让我知道如何调整和修复它们，避免为了解决一个问题而带来更多意想不到的问题。",[14,166,167],{},"我始终认为源代码本身是软件程序作品的最重要组成部分，编制优雅的代码不仅能让我获得愉悦，更是对未来维护的负责。\n当我们发现为了解决某个问题，而需要引入各种不自然、不优雅的坏味道代码时，往往意味着哪里犯了错，例如选错了框架、选错了平台。",[160,169,100],{"id":100},[14,171,172],{},"我不反对商业开发和技术专利，尊重与版权人或委托者之间的约定是我职业道德的底线。",[14,174,175],{},"我热衷于开放源代码，这意味着将软件中最重要组成部分分享出去。\n坚持开源共享的理念，目的是让知识能如水一般流动，代码能自由的被学习与改进。\n实际上，并非最好的代码才值得开源，将学习与实践道路上的知识积累和经验，化为其他人进步道路上的路砖才是开源的核心价值所在。",[10,177,178],{"id":178},"技术栈和领域",[14,180,181],{},"我适合开发一个 MVP 或清晰可维护的后端系统。但高并发、高性能等场景不是我的主场。",[160,183,184],{"id":184},"深入方向",[186,187,188,191,194],"ol",{},[95,189,190],{},"系统底层：操作系统内核、程序编译器、运行时工具包。",[95,192,193],{},"后端开发：Python \u002F Golang、RESTful \u002F RPC API、数据库设计。",[95,195,196],{},"云基础设施：云服务部署和对接。",[160,198,199],{"id":199},"可胜任方向",[186,201,202],{},[95,203,204],{},"前端开发：Vue \u002F Nuxt、原生网页开发（HTML+CSS+JS）。",[10,206,207],{"id":207},"精选作品",[209,210],"project-list-top",{"as":211,"className":212,"header":160},"div",[213],"site:lg:grid-cols-2",[14,215,216,217],{},"了解更多作品，可访问：",[109,218,220],{"href":219},"\u002Fprojects","主要作品",[10,222,223],{"id":223},"个人经历",[160,225,226],{"id":226},"入行",[14,228,229],{},"在我12岁以前，我感到自己对设计和逻辑有种特殊的感觉，直到我认识了我目前最重要的三位老师之一，他告诉我什么是 Arduino 和 C，我找到了我真正喜欢的东西。尽管我比赛的成绩并不是很好，但老师却未放弃启发我。",[14,231,232],{},"我那会不明白传值和引用是什么，不理解编译器到底是如何工作的，也不理解为什么要函数封装。",[14,234,235,236,240,241,245],{},"记得一次家里出去吃饭，我在一边读着一本 ",[237,238,239],"em",{},"《Arduino 入门》","，蓝绿色的封面印着著名的 ",[242,243,244],"strong",{},"∞","，或许现在开起来不厚，但当时拿在手上确实很有厚重感。书里面的一个章节讲到数学函数中的 sin 和 cos，当时的我不理解这是什么，就去问了我舅舅。我们说了半天，也没让我明白这是什么。",[14,247,248],{},"我那时候有许多这样的疑惑，尽管现在看来那些事情似乎并非那么难以理解，但在以前却总给我有种没搞懂的焦虑感。",[160,250,251],{"id":251},"初中",[14,253,254],{},"来到初中后，我慢慢地离开了 Arduino 领域，走上通用计算机程序开发之旅。我先接触的是 Python。与众多人一样，学着用 Flask 开发网站、Pygame 写游戏、Tkinter 写界面。",[14,256,257],{},"我那时不懂什么是协作、鲁棒性、安全实践，反正都是自己用的程序，自己能用就行。",[14,259,260],{},"我写过最复杂的程序是一个垃圾分类程序，是为了去参加比赛而设计的。我用 Python Tkinter 写界面，阿里云的图像接口负责识别，MySQ L数据库负责记录用户信息，用 Flask 写了一个网页小程序。它可以让用户查询手中的是什么垃圾，记录投递情况获取积分，并有一个排行榜。\n我还做了一个管理员后台，它可以操作用户、查看信息等等，不再需要手改数据库。如果你看过这个后台，就会发现他的 GUI 和用户终端完全不同。这是因为后台的界面实在太多，我终于理解了代码封装和复用究竟是为了什么，我重新设计了后台其中一个页面，并作为函数让全部页面都能套用。",[160,262,263],{"id":263},"高中",[14,265,266],{},"走进高中，Pygame 成了我一个很好的伙伴。在学习时，许多书上的图片模型让我感到不是很直观。随着模型各种叠加，我越来越想看看他们动起来的样子，我尝试用 Pygame 帮我画出来。",[14,268,269,270,273,274,277],{},"但是当模型复杂起来的时候，我的代码简直乱七八糟。因为我始终用全局状态去组织代码，大量的全局函数和变量让我很头疼。直到后来，我了解了面向对象，阅读 ",[237,271,272],{},"《Python3 面向对象编程》"," 才解决了我遇到的问题。没错，我入门 Python 所阅读的书其实并非这本，而是是另一本黑色的封面的书，叫 ",[237,275,276],{},"《Python 基础教程》","。",[14,279,280],{},"有意思的是，我程序用的方法是把时间切成一段一段的，去计算每个对象的位置，可是这招在有些时候就失灵了，产生很大的误差。可惜那会儿大语言模型还未流行，我不知道向谁去请教这是什么原因导致的。",[14,282,283,284,287],{},"了解云原生之后，我可以很低成本地使用一台服务器，开始了我Linux的运维学习之旅。我一开始接触的是 Ubuntu，我至今非常喜欢这个发行版。直到我买了 ",[237,285,286],{},"《鸟哥的Linux私房菜》","，他用的是 CentOS，我也因此开始尝试它。",[14,289,290],{},"到后来我尝试使用桌面版的 Ubuntu、Fedora、CentOS 和 Deepin 等这些发行版。我还加入了一些QQ交流群，里面的大佬提到了 Arch 和 Manjaro，于是我就去试了一下。一开始用的是 Manjaro，感觉还是挺新奇的，特别是他那个小狗吉祥物被我投在屏幕上，用一张A4纸描了下来当成了艺术课作业。后面尝试 Arch，从安装的时候我就知道这事不简单。可能作为学生还是不太能离开 Windows 的生态，尽管我最终主力机还是用 Windows 系统，但 Arch 的 Wiki 成为我进一步理解 Linux 的资料。",[14,292,293],{},"我一直都很喜欢开发编程语言，我写的第一个语言叫 GWARF，这名字是随便起的。一开始，我用 Lex 和 Yacc，但是他们的全局变量问题一直困扰着我，所以我另起炉灶。最终，这个语言因为内存泄漏的问题，被我搁置。我重新开发了一个 VirtualMath 语言，不过其实和数学没啥关系。因为我特别喜欢重构，直到一次重构后我依然觉得不尽人意，所以我停止了它的维护。",[160,295,296],{"id":296},"现状与成长",[14,298,299],{},"目前，我主要从事独立的代码开发工作、写博客、研究编译器和云原生。偶尔接一些理念相投的项目。我的完整作品和联系方式在首页。",[14,301,302],{},"我主要用 Golang 开发，前端则喜欢 Nuxt，数据库则最常用 MySQL 和 Redis。我喜欢用云平台的服务来满足运维需求，例如无状态计算、队列通知、云数据库等等。",[14,304,305],{},"我不再狂热的追求某种技术栈，而是学习更多、按需取用。我的关注点也更多指向我开发的是不是我想要的、如何让我的代码变得更好更优雅、整个作品的鲁棒性和安全性如何、它是否更符合技术规范和语义化等等。优雅地创作与共享是我践行代码人生的开源信条。",[14,307,308],{},[242,309,310],{},"我想继续为自己写代码。",[10,312,313],{"id":313},"社交账号",[160,315,316],{"id":316},"自媒体平台",[92,318,319,325,331],{},[95,320,321,322],{},"微信订阅号：",[109,323,63],{"href":126,"rel":324},[113],[95,326,327,328],{},"抖音：",[109,329,63],{"href":147,"rel":330},[113],[95,332,333,334],{},"B站：",[109,335,63],{"href":336,"rel":337},"https:\u002F\u002Fspace.bilibili.com\u002F369101302975903",[113],[160,339,340],{"id":340},"技术社区",[92,342,343,350,356],{},[95,344,345,346],{},"Github：",[109,347,5],{"href":348,"rel":349},"https:\u002F\u002Fgithub.com\u002FSongZihuan",[113],[95,351,352,353],{},"知乎：",[109,354,63],{"href":133,"rel":355},[113],[95,357,358,359],{},"稀土掘金：",[109,360,63],{"href":140,"rel":361},[113],[160,363,364],{"id":364},"联系方式",[92,366,367,376],{},[95,368,369,370],{},"邮件联系：",[109,371,375],{"href":372,"className":373},"mailto:work@song-zh.com",[374],"site:break-all","work@song-zh.com",[95,377,378,379],{},"更多联系方式：",[109,380,382],{"href":381},"\u002Fcontact","点击查看",{"title":26,"searchDepth":384,"depth":384,"links":385},4,[386,388,393,397,398,404],{"id":12,"depth":387,"text":12},2,{"id":90,"depth":387,"text":90,"children":389},[390,392],{"id":97,"depth":391,"text":97},3,{"id":100,"depth":391,"text":100},{"id":178,"depth":387,"text":178,"children":394},[395,396],{"id":184,"depth":391,"text":184},{"id":199,"depth":391,"text":199},{"id":207,"depth":387,"text":207},{"id":223,"depth":387,"text":223,"children":399},[400,401,402,403],{"id":226,"depth":391,"text":226},{"id":251,"depth":391,"text":251},{"id":263,"depth":391,"text":263},{"id":296,"depth":391,"text":296},{"id":313,"depth":387,"text":313,"children":405},[406,407,408],{"id":316,"depth":391,"text":316},{"id":340,"depth":391,"text":340},{"id":364,"depth":391,"text":364},"宋子桓的个人介绍，包括简介、技术信念、技术栈等多方面。",{"style":411,"layout":413,"ui":414},[412],"site:[&>*]:text-justify","default",{},"md",{},{"type":418},"page",{"type":420,"component":421,"width":422,"height":423},"Component","WebsiteLogo",1200,600,"\u002Fprofile",true,[427],{"@type":428,"headline":429,"author":430},"ProfilePage","宋子桓 - 软件工程师",{"@id":431},"#identity",{"title":5,"description":409},{"loc":424,"changefreq":434,"priority":435},"monthly",0.8,{},"002.profile","c2dYglY2ojkbcYAdP-jDcILDPUTVfCe9_h-ZZb1i0W8",[440,445],{"title":441,"path":442,"stem":443,"description":444,"type":418,"children":-1},"首页","\u002F","001.index","宋子桓的个人介绍，包括个人情况、技术信念、技术栈和领域、精选作品和联系方式等。",{"title":220,"path":219,"stem":446,"description":447,"type":418,"children":-1},"003.projects","宋子桓的主要作品合集，包含作品介绍、分类、地址等信息。",[449,451,453,455,459,465,474,514,542,548],{"title":441,"path":442,"stem":443,"description":444,"navigation":450,"type":418},{"type":418},{"title":5,"path":424,"stem":437,"description":409,"navigation":452,"type":418},{"type":418},{"title":220,"path":219,"stem":446,"description":447,"navigation":454,"type":418},{"type":418},{"title":364,"path":381,"stem":456,"description":457,"navigation":458,"type":418},"004.contact","欢迎通过邮件或社交网络与我们联系。",{"type":418},{"title":460,"path":461,"stem":462,"description":463,"navigation":464,"type":418},"最新动态","\u002Fnews","005.news","关于宋子桓的最新动态。",{"type":418},{"title":466,"path":467,"stem":468,"children":469,"description":26,"navigation":473,"type":418},"博客","\u002Fblogs","100.blogs\u002F001.index",[470],{"title":466,"path":467,"stem":468,"description":471,"navigation":472,"type":418},"宋子桓的技术沉淀和博文。",{"type":418},{"type":418},{"title":475,"path":476,"stem":477,"children":478,"description":26,"navigation":513,"type":418},"开源","\u002Fopensource","500.opensource\u002F001.index",[479,483,489,495,501,507],{"title":480,"path":476,"stem":477,"description":481,"navigation":482,"type":418},"开源策略","这里记录了我们开源理念与协作边界，也为你提供了包含开源许可证在内的关键文档及其介绍的入口。",{"type":418},{"title":484,"path":485,"stem":486,"description":487,"navigation":488,"type":418},"MIT 许可证","\u002Fopensource\u002Fmit-license","500.opensource\u002F002.mit-license","本许可证以最简洁的文字，赋予代码最广阔的边界——允许复用、修改、甚至商业化，唯一的约定是保留署名的尊重。",{"type":418},{"title":490,"path":491,"stem":492,"description":493,"navigation":494,"type":418},"安全策略","\u002Fopensource\u002Fsecurity-policy","500.opensource\u002F003.security-policy","这份策略明确了安全漏洞的举报流程、响应机制与披露原则，以最严谨的态度守护项目的稳定性。",{"type":418},{"title":496,"path":497,"stem":498,"description":499,"navigation":500,"type":418},"行为准则","\u002Fopensource\u002Fcode-of-conduct","500.opensource\u002F004.code-of-conduct","这份准则是我们对“开放与尊重”的共同承诺——它定义了友善的边界，也守护着社区的包容性。",{"type":418},{"title":502,"path":503,"stem":504,"description":505,"navigation":506,"type":418},"常见问题","\u002Fopensource\u002Ffaq","500.opensource\u002F005.faq","本列表记录了关于开源策略的常见问题和解答。",{"type":418},{"title":508,"path":509,"stem":510,"description":511,"navigation":512,"type":418},"赞赏我们","\u002Fopensource\u002Fdonate","500.opensource\u002F006.donate","若我们的代码曾为你解决难题，这份支持会成为我们继续探索边界的动力。",{"type":418},{"type":418},{"title":515,"path":516,"stem":517,"children":518,"description":26,"navigation":541,"type":418},"域名","\u002Fdomain","900.domain\u002F001.index",[519,523,529,535],{"title":520,"path":516,"stem":517,"description":521,"navigation":522,"type":418},"我的域名","宋子桓持有的域名的 RDAP 信息，包含：注册商、创建时间、过期时间、域名状态、名称服务器（NS）记录。",{"type":418},{"title":524,"path":525,"stem":526,"description":527,"navigation":528,"type":418},"SONG-ZH.COM","\u002Fdomain\u002Fsong-zh-com","900.domain\u002F002.song-zh-com","查询 SONG-ZH.COM 的注册信息，包含：注册商、创建时间、过期时间、域名状态、名称服务器（NS）记录。",{"type":418},{"title":530,"path":531,"stem":532,"description":533,"navigation":534,"type":418},"SONGZIHUAN.COM","\u002Fdomain\u002Fsongzihuan-com","900.domain\u002F003.songzihuan-com","查询 SONGZIHUAN.COM 的注册信息，包含：注册商、创建时间、过期时间、域名状态、名称服务器（NS）记录。",{"type":418},{"title":536,"path":537,"stem":538,"description":539,"navigation":540,"type":418},"SONGZIHUAN.CN","\u002Fdomain\u002Fsongzihuan-cn","900.domain\u002F004.songzihuan-cn","查询 SONGZIHUAN.CN 的注册信息，但暂时还无法提供 RDAP 的查询结果。",{"type":418},{"type":418},{"title":543,"path":544,"stem":545,"description":546,"navigation":547,"type":418},"关于本站","\u002Fabout","950.about","本站的元信息档案：包含网站名称、域名所有权、作者、联系方式、网站备案号等信息，还有技术人关心的版本号等数据。",{"type":418},{"title":549,"path":550,"stem":551,"description":552,"navigation":553,"type":418},"全站导航","\u002Fsitemap","990.sitemap","本站专栏导航：包含「博客」「最新动态」「开源」等专栏。点击任意专栏，一键直达专栏首页。",{"type":418},[555,592,627,665,700,732],{"id":556,"title":557,"approachable":425,"body":558,"date":586,"description":562,"extension":415,"meta":587,"navigation":425,"path":588,"seo":589,"stem":590,"top":425,"type":574,"__hash__":591},"projects\u002Fprojects\u002Fcotan.md","CoTan - 智能科学计算笔记系统",{"type":7,"value":559,"toc":584},[560,563],[14,561,562],{},"CoTan 是基于 Python 3x 的一款用于数据科学等多方面的数理化系统，可以用于数据处理、数学运算、物理分析等场景。",[92,564,565,576],{},[95,566,567,568],{},"类型：",[569,570,571],"span",{},[572,573],"ui-badge",{"label":574,"variant":575},"应用工具","soft",[95,577,578,579],{},"项目：",[109,580,582],{"className":581,"href":582,"rel":583},[374],"https:\u002F\u002Fgithub.com\u002FSongZihuan\u002FCoTan",[113],{"title":26,"searchDepth":384,"depth":384,"links":585},[],"2020-04-08",{},"\u002Fprojects\u002Fcotan",{"title":557,"description":562},"projects\u002Fcotan","ZWFs1TWUaLFiq6KsVLptlpfa9BaaAGg8dx45utZ-foE",{"id":593,"title":594,"approachable":425,"body":595,"date":621,"description":599,"extension":415,"meta":622,"navigation":425,"path":623,"seo":624,"stem":625,"top":425,"type":611,"__hash__":626},"projects\u002Fprojects\u002Fssh-watcher.md","SSH监控",{"type":7,"value":596,"toc":619},[597,600,603],[14,598,599],{},"这是一个监控SSH请求的服务器工具（支持由 HAPROXY 转发的请求），并设置放行规则（可根据 IP 定位、 IP 地址、 IP 地址段设置多个规则）。",[14,601,602],{},"支持 SMTP 和 Webhook （企业微信）推送警告。",[92,604,605,612],{},[95,606,567,607],{},[569,608,609],{},[572,610],{"label":611,"variant":575},"底层工具",[95,613,578,614],{},[109,615,617],{"className":616,"href":617,"rel":618},[374],"https:\u002F\u002Fgithub.com\u002FSongZihuan\u002Fssh-watcher",[113],{"title":26,"searchDepth":384,"depth":384,"links":620},[],"2025-02-03",{},"\u002Fprojects\u002Fssh-watcher",{"title":594,"description":599},"projects\u002Fssh-watcher","mf7gk3b68fy6yKls27PjP4XW8rUsP3DbHiDq61ck5c8",{"id":628,"title":629,"approachable":425,"body":630,"date":659,"description":634,"extension":415,"meta":660,"navigation":425,"path":661,"seo":662,"stem":663,"top":425,"type":649,"__hash__":664},"projects\u002Fprojects\u002Fchuangxinyi.md","创信易 - 用户认证中心",{"type":7,"value":631,"toc":657},[632,635,638,641],[14,633,634],{},"这是一个用户认证中心系统，用户在该系统登录后授权登录其他平台。包括：通过手机号、邮箱、身份证、企业营业执照等方式认证登录。",[14,636,637],{},"同时还支持：付款、退款、工单，接入了微信和支付宝支付。",[14,639,640],{},"例如：A平台接入用户认证中心。在用户使用A平台时，会跳转到用户认证中心进行登录或注册，创信易会为其分配一个 OpenID 等信息，通过回调的方式返回给A平台。",[92,642,643,650],{},[95,644,567,645],{},[569,646,647],{},[572,648],{"label":649,"variant":575},"网站系统",[95,651,578,652],{},[109,653,655],{"className":654,"href":655,"rel":656},[374],"https:\u002F\u002Fgithub.com\u002FSongZihuan\u002FChuagXinYi",[113],{"title":26,"searchDepth":384,"depth":384,"links":658},[],"2025-01-06",{},"\u002Fprojects\u002Fchuangxinyi",{"title":629,"description":634},"projects\u002Fchuangxinyi","87VcDg68oSiAONWCodeSGP175p7RiGoxmir6N1Kymu4",{"id":666,"title":667,"approachable":668,"body":669,"date":694,"description":673,"extension":415,"meta":695,"navigation":425,"path":696,"seo":697,"stem":698,"top":425,"type":611,"__hash__":699},"projects\u002Fprojects\u002Fcfep.md","CMakeFindExternalProject",false,{"type":7,"value":670,"toc":692},[671,674,677],[14,672,673],{},"这是一个用于 CMake 构建系统的依赖管理工具。其实现借助 CMake 内置的 ExternalProject 模块，允许 CMake 在配置期（而非构建期）安装第三方依赖库。",[14,675,676],{},"同时，它还提供了第三方依赖安装，Windows 运行时库安装等工具。",[92,678,679,685],{},[95,680,567,681],{},[569,682,683],{},[572,684],{"label":611,"variant":575},[95,686,578,687],{},[109,688,690],{"className":689,"href":690,"rel":691},[374],"https:\u002F\u002Fgithub.com\u002FSongZihuan\u002FCFEP",[113],{"title":26,"searchDepth":384,"depth":384,"links":693},[],"2021-09-17",{},"\u002Fprojects\u002Fcfep",{"title":667,"description":673},"projects\u002Fcfep","cqAXEtrbQkkcwV9_sqgAcl56oiaGQuSA7IAlX6jnkog",{"id":701,"title":702,"approachable":668,"body":703,"date":726,"description":707,"extension":415,"meta":727,"navigation":425,"path":728,"seo":729,"stem":730,"top":425,"type":716,"__hash__":731},"projects\u002Fprojects\u002Fbrainfuckpro.md","BrainFuck Pro",{"type":7,"value":704,"toc":724},[705,708],[14,706,707],{},"这是一个使用 C 语言开发的 BrainFuck 解释器，并扩展了部分语法。",[92,709,710,717],{},[95,711,567,712],{},[569,713,714],{},[572,715],{"label":716,"variant":575},"解释器",[95,718,578,719],{},[109,720,722],{"className":721,"href":722,"rel":723},[374],"https:\u002F\u002Fgithub.com\u002FSongZihuan\u002FBrainFuckPro",[113],{"title":26,"searchDepth":384,"depth":384,"links":725},[],"2021-07-10",{},"\u002Fprojects\u002Fbrainfuckpro",{"title":702,"description":707},"projects\u002Fbrainfuckpro","WGyRdovyTElWW8P6uYkxSYlyObuoxs3eKHvR_jjyKEc",{"id":733,"title":734,"approachable":668,"body":735,"date":757,"description":739,"extension":415,"meta":758,"navigation":425,"path":759,"seo":760,"stem":761,"top":425,"type":716,"__hash__":762},"projects\u002Fprojects\u002Fgwarf.md","GWARF - 编程语言",{"type":7,"value":736,"toc":755},[737,740],[14,738,739],{},"这是一个使用 C 语言开发的新解释型语言，使用动态类型。",[92,741,742,748],{},[95,743,567,744],{},[569,745,746],{},[572,747],{"label":716,"variant":575},[95,749,578,750],{},[109,751,753],{"className":752,"href":753,"rel":754},[374],"https:\u002F\u002Fgithub.com\u002FSongZihuan\u002FGWARF",[113],{"title":26,"searchDepth":384,"depth":384,"links":756},[],"2020-04-07",{},"\u002Fprojects\u002Fgwarf",{"title":734,"description":739},"projects\u002Fgwarf","hWMartIxJYi8iH3sgeurIJLR9QAU2ztE5QPlTea6W5k",1785785845027]