一些手写 WAT(WebAssembly) 的格式的例子

1 月 21 日
阅读 1 分钟
500
poetry[链接]一门简单的编程语言. runtime 和 stdlib 用 wasm 手写, 内存处理, 数组处理, 字符串处理, 很有学习参考的意义.wat2wasm[链接]几个很简单的 demo. 给出了对应的 WASM 二进制注释的对比raw wasm[链接]jit, raytrace 之类的一些 demo, 偏底层模拟和算法. 略复杂.hand-crafted-wasm[链接]Creative coding and ot...

wgsl 代码的格式化

2023-11-03
阅读 1 分钟
507
结果这个功能直接在对应 VS Code 插件里边已经集成了, 我一直默认没有开启.不过开启以后试了一下, 发现 4 格缩进, 就挺不适合 CoffeeScript 起手的用户的,于是我自己改了一个分支, 就替换了一下缩进, 其他没怎么动..

Node.js 发出请求走 Proxyman 代理调试的 tip

2023-08-01
阅读 1 分钟
999
我使用的是 Proxyman, 端口是 9090, 并且提供的是 HTTP 代理, 两个参数都用 http: 地址.代码用了 import 由于我使用的是 mjs 文件执行.

尝试 WebGPU 过程中掉的一些坑

2023-04-10
阅读 2 分钟
1.3k
需要参考, 建议看 WebGPU Samples:[链接]buffer 编码对齐问题uniform buffer 的编码规则. 数据会按照大小对齐, 但是编码的时候[链接]可以试试自己加上 padding 来 buffer[链接]按照文档说的, 不止对 uniform buffer 是这样...听说可以用工具做一下可视化, 但是我还没有尝试过...[链接]Storage Texture, 在 compute shade...

Nginx querystring 转写的两个例子

2023-01-16
阅读 2 分钟
1.4k
转发请求时需要两个功能, 一个是去掉 querystring 上特定的字段, 一个是替换掉一个字段的值.参考两篇文章得到一个可用的方案,[链接][链接]主要的思路是通过正则, 对 $args 反复进行替换, 得到自己想要的结果, {代码...} 注意 $arg_myData 虽然是从 querystring 解析出来的 field, 但是修改了只会增加, 而不是替换. 直接...

Vue3 JSX 写法笔记

2022-12-26
阅读 2 分钟
2k
Vue3 是可以用 JSX 语法直接写的, 大体可以从 [链接] 的示例看到,其中 <div> 会编译为 h('div'), 具体参考 [链接] .

尝试在 Vue composition API 中返回包含 JSX

2022-12-05
阅读 2 分钟
963
对应 [链接]抽逻辑到一个 composition API: {代码...} 用法非常简短, 状态和 UI 都封装了: {代码...} 渲染动态的 UI, 需要一个组件包装: {代码...} 使用 exposeVue 也支持直接从外部操作 Component 方法, 借助 expose:[链接][链接]

Haskell Monoid(幺半群)的介绍

2022-04-21
阅读 10 分钟
2.4k
为什么程序员应该关心 Monoids?因为 Monoids 是一种在编程中反复出现的常见模式。当模式出现时,我们可以将它们抽象化并利用我们过去所做的工作。这使我们能够在经过验证的稳定代码之上快速开发解决方案。

一些 Rust Tips 记录

2021-12-27
阅读 1 分钟
2.2k
打印 MIR 的命令 {代码...} 打印 enum 各个 variants 体积的命令参考 [链接] {代码...} 或者运行 cargo 的时候从环境变量加上参数: {代码...} 运行测试限制只使用单线程: {代码...} 运行测试过程中能使用 println: {代码...} TODO

Rust 使用 libloading 的入门笔记

2021-08-29
阅读 3 分钟
8.2k
Rust 是静态类型语言, 如果有部分代码想要单独编译再加载, 就需要通过 link 来处理,先把一个模块打包成 dynamic library, 然后运行的时候再来调用.在 Windows 里边是 *.dll 文件, Linux 里是 *.so 文件, macos 是 *.dylib.其他还有更小众的操作系统, 可能还有不同的后缀...我这边对应的系统是 macos.

Expression Problem 和 Calcit 相关引用笔记

2021-08-10
阅读 2 分钟
1.8k
Wiki [链接]知乎引用 [链接]中文简介 [链接]The Expression Problem and its solutionsMore thoughts on the Expression Problem in Haskell3 ways to solve the expression problemThe Expression Problem in RustSolving the Expression Problem with Clojure(Protocol)Calcit 示例代码 {代码...} 运行示例: {代码...}

PureScript 的 equality

2021-07-28
阅读 3 分钟
2k
从 PureScript 的角度反过来看, JavaScript 的好多概念还是比较模糊的.前几天群里看到讨论 js 的 equality 的事情, 我就觉得 js 设计挺不清晰的.js 里用 === 的话, 遇到

一种 Monad 的偏门的理解方式

2021-03-16
阅读 4 分钟
3.6k
我对数学概念属性符号掌握得不好, 所以理解比较慢,这篇文章是从概念性的内容去理解 Monad, 不精确, 可能具体到数学概念也不准确.但是希望提供一个比较直观的方式去了解, Monad 是怎么来的?

[译] 函数式 Arrow 实用案例

2021-03-15
阅读 4 分钟
1.9k
Arrow 提了一种表示"计算"的手段. 甚至有些 Monad 用法里边看不到的复杂操作, 通过 Arrow 提供的一些有意思的组合式的组合方法, 也可以构造出来.

笔记: 关于 SKI 组合子及其实现

2021-03-02
阅读 3 分钟
3.5k
比如 \f -> \a -> \b -> f b a 定义的函数, 没有自由变量, 就是组合子.参考这样的例子, Haskell 当中按照类型签名定义的函数都是这样写的.大概 Haskell 里边基本上都是用着组合子在编程的, 而不是主流语言习惯意义的"函数".

交替使用 TypeScript 和 Nim 的一些感想

2021-02-21
阅读 4 分钟
3.6k
我之前的背景主要是 js 和 ClojureScript, 对类型了解很有限,到 Nim 算是才开始长时间使用静态类型语言吧. TypeScript 那只当 type checker.

关于双平衡三进制的表示和计算

2020-12-15
阅读 4 分钟
3.9k
双平衡三进制是我大学时候发现的一个比较有意思的平面表示方式,中学数学, 我们用笛卡尔坐标系来表示平面的, 而且图形界面也常用这个方法,但是笛卡尔坐标系表示平面用的是两个数字, 就没有那么直观了.基于一维的线段上十进制表达点位置的方式, 我推想怎样表示平面更直观...

关于 ternary-tree 不可变数据结构复用方案的一些解释

2020-12-12
阅读 6 分钟
3.1k
前面一篇讲 ternary-tree 模块的文章是丢给 Clojure 论坛用的, 写比较死板.关于 ternary-tree 开发本身的过程还有其中的一些考虑, 单独记录一下.中间涉及到的一些例子不再详细跑代码录了, 看之前那篇文章应该差不多了.

笔记: 关于使用 calcit-runner 的 GitHub Actions 配置

2020-12-11
阅读 2 分钟
3k
需求, calcit-runner 目前提供了一个 cr_once 命令用来跑 CI 脚本.原始的 cr 命令存在对 SDL2 和 fswatch 的依赖, 这个场景并不方便.所以 cr_once 这个命令是专门编译提供的, 托管在 [链接] .

Ternary-tree: 不可变数据结构复用的一个尝试

2020-12-05
阅读 9 分钟
2.3k
这里说的不可变数据结构主要是指 Clojure 的 Persistent Data Structure.有个系列文章介绍得比较详细了: Understanding Clojure's Persistent Vectors, pt. 1Clojure 具体实现考虑到了很多的事情, 源码可以看到一些细节:[链接]

关于动态类型/静态类型语言对于数据的理解的一些差别的随想

2020-12-01
阅读 4 分钟
3.8k
不是严谨的思考, 只是梳理一下感受, 最近在动态类型静态类型之间切换有点多, 对照思考.我的经验基本上是 js, ts 和 ClojureScript 上边, 再有点 Nim 的使用经验.然后 Go 跟 Haskell 都只是简单尝试过, 没有深入进去.这些个语言都是自动内存管理的, 所以内存往下深入的我也不讨论了.

论前端框架组件状态抽象方案, 基于 ClojureScript 的 Respo 为例

2020-11-20
阅读 5 分钟
5.9k
Respo 是本文作者基于 ClojureScript 封装的 virtual DOM 微型 MVC 方案.本文使用的工具链基于 Clojure 的, 会有一些阅读方面的不便.

用 Lilac Parser 代替正则来抓取文本的例子

2020-07-31
阅读 5 分钟
1.5k
lilac-parser 是我用 ClojureScript 实现的一个库, 可以做一些正则的功能.看名字, 这个库设计的时候更多是一个 parser 的思路,从使用来说, 当做一个正则也是比较顺的. 虽然不如正则简短明了.正则的缺点主要是基于字符串形态编写, 需要转义, 规则长了就不好维护了.而 lilac-parser 的方式, 就挺容易进行组合的, 我这边举...

ClojureScript core.async 丰富的语义和示例

2020-07-21
阅读 9 分钟
2.7k
这篇笔记主要是基于文档展开一下 core.async 在 ClojureScript 当中的基本用法.具体的内容可以看原文章, 已经比较详细了, 很多在 API 文档的 demo 当中.关于基础知识跟 cljs 跟 clj 的区别, 这篇文章就不涉及了.

关于 HCL 颜色的一些笔记(更新: 建议切 HSLuv)

2020-06-30
阅读 2 分钟
7k
根据 SO 上的评论, HCL 是一类算法, 包含多个变种,[链接]为方便代码使用, 建议选取 HSLuv 方案,[链接]细节对比参见 [链接]HSLuv preserves the lightness and hue components of CIELUV LCh and stretches its chroma so that every color has the same range, defined as a percentage.

对于简聊 React 的一些回忆和反思(初稿)

2020-04-06
阅读 8 分钟
3.1k
看到钉钉的功能越来越多了, 前段时间突然想起来以前简聊的事情来.当前公司跟钉钉的一些风声, 具体也不清楚, 到很多年后才听到了收购的事情.Slack 具体的玩法我并不清楚, 但是钉钉当前延伸出来的功能给我一些感触,当年简聊在功能的扩展来说缺了太多围绕聊天的扩展创新, 玩法也不温不火,当然如果当时有条件一步一步有条理...

Respo Hooks 写法的起因和示例

2020-03-23
阅读 3 分钟
1.9k
近期对 Respo 的状态管理方案进行了一次更新,具体的代码可以看 [链接] 起因 Respo 的 States 方案为了方便热替换时保存状态, 做了一些限制, 组件挂载的时候以及渲染过程当中不能 dispatch 事件, states 以树形的方式存储, 需要手动调用 cursor-> 在组件之间传递分支, 修改状态使用的路径, 也就是 cursor, 跟组件对应,...

关于 React Hooks 的一些使用经验和换角度反思

2020-03-22
阅读 6 分钟
4.2k
算算时间都要一年半了, React 在 2018 年推出 Hooks, 引发了热议.印象里就是在群里面, 我就很纠结里边的黑魔法太奇怪了.. 看得小心翼翼的.然后看着别人研究代码, 提出类似的实现之类的, 或者各种解释.慢慢地很多不同的声音也发出来, 特别是迷之闭包, 很多人都中招了出来吐槽.再后来, React Hooks 蔓延开来, 连 Vue 社区...

Clojars 用 depstar 和 deps-deploy 发包的记录

2020-02-10
阅读 3 分钟
4.5k
I would expect this to be possible since lein, boot, and CLI/deps.edn all have ways to build an uberjar and publish it to Clojars. (for the latter, see [链接] 3 – I use [链接] 2 and [链接] 4 for build/deploy)

九章编程: 文言文编程的 Cirru 实现的一种试验

2020-01-12
阅读 4 分钟
3.2k
当然了, 九章编程方案只是取巧地把 Lisp 的写法翻译成中文而已, 少了很多.首先这东西挺好玩的. 再就是自己仔细看下来也有不少自己的想法.