https://chux0519.github.io Zola en Wed, 01 May 2024 23:43:25 +0000 LML - linear regression Wed, 01 May 2024 23:43:25 +0000 Unknown https://chux0519.github.io/blog/lml-linear/ https://chux0519.github.io/blog/lml-linear/ <p>LML 是 Learn Machine Learning 的缩写,我会用文字和代码,从一个程序员的角度,记录下自己这段时间学习机器学习的过程。</p> <p>这是第一篇:线性回归(与 softmax 回归)</p> liburing - cat Mon, 11 Oct 2021 11:15:15 +0800 Unknown https://chux0519.github.io/blog/io-uring-02/ https://chux0519.github.io/blog/io-uring-02/ <p>结合<a href="/blog/io-uring-01/">上回</a>,大部分代码是样板代码,liburing 是为了简化我们手工调用 io_uring 实现的一个包装库</p> <p>接下来用 liburing 实现 cat</p> io_uring 接口 Sun, 10 Oct 2021 14:30:15 +0800 Unknown https://chux0519.github.io/blog/io-uring-01/ https://chux0519.github.io/blog/io-uring-01/ <p>接<a href="/blog/io-uring-00/">上回</a></p> <p>目前来讲,用户应该使用 liburing,不太需要去直接调用底层的 io_uring API,但是去了解 io_uring 本身提供哪些接口是非常有必要的。</p> <p>接下来会通过一个类似 cat 的程序,来讲解 io_uring 的一些操作。</p> io_uring 简介 Sun, 10 Oct 2021 13:30:15 +0800 Unknown https://chux0519.github.io/blog/io-uring-00/ https://chux0519.github.io/blog/io-uring-00/ <h2 id="shen-me-shi-io-uring">什么是 io_uring</h2> <p>它是 Linux 下的,新的异步 IO 的 API,由 Facebook 工程师 Jens Axboe created 出来。</p> <h3 id="yi-you-jie-jue-fang-an-de-ju-xian">已有解决方案的局限</h3> <p>aio 是 Linux 中已有的异步 IO 系统调用,支持文件和 socket,但是有一些局限</p> <ol> <li>只支持 O_DIRECT 模式的读写,这是最大的局限性,而现实世界中,几乎没有应用有这种常规性质需求</li> <li>即使在 O_DIRECT 下,aio 也可能因为 metadata 缺失导致 block</li> <li>某些存储设备有固定的请求队列大小( slots for request,个人理解类似 socket 的 backlog),队列满时,aio 的提交也会 block</li> <li>提交和完成过程,会有 104 字节的额外拷贝开销,提交和完成也会产生两个不同的系统调用</li> </ol> 密码管理器 Sun, 03 Oct 2021 11:25:15 +0800 Unknown https://chux0519.github.io/blog/pass/ https://chux0519.github.io/blog/pass/ <p>随着使用的软件、服务越来越多,我们需要记忆的密码也越变越多,为了安全性,应该避免使用弱密码或重复的密码,于是我之前选择了 1password 这个服务,前两个月我的订阅刚刚过期,但我又不再想续订了,我认为这个产品我没有花得很值,于是调研了一些替代品,我的需求是,可以同步、可以方便的在多端使用。</p> <p>最终看到了 https://www.passwordstore.org/ 这个项目,我认为完美的契合我的需求,额外的,它足够轻量,在 PC 端也是命令行优先,功能也足够用,第三方适配的 app 也十分简洁,这里做一次记录和推荐。</p> 近况(20210916) Thu, 16 Sep 2021 22:46:15 +0800 Unknown https://chux0519.github.io/blog/recent-20210916/ https://chux0519.github.io/blog/recent-20210916/ <p>很久没有更新过博文,今天听到一期播客,提到留到点什么,于是又打开了编辑器,记录一下自己的近况。</p> <h2 id="guan-yu-nian-du-mu-biao">关于年度目标</h2> <p>先说今年初定下的目标吧,今年有学习 iOS 开发的目标,自己其实也边学边做了一款 <a href="https://apps.apple.com/cn/app/%E5%83%8F%E7%B4%A0%E7%94%BB%E5%AE%B6/id1546046976#?platform=iphone">APP</a>。但做完之后,觉得索然无味。</p> <p>心底有些打鼓,也有些疑问,也许是苹果的各种负面新闻,也许是自己内心并不喜欢苹果的开发流程。</p> <p>某些功能需要付费的开发者帐号,某些组件很难找到详细文档,甚至项目写完后,一段时间没动,Xcode 升级,项目编译不过了,这些让我觉得很糟心,作为开发者,我甚至都认为我也是苹果的一件商品,它可以随时抛弃我。</p> 写在2021 Tue, 19 Jan 2021 15:08:15 +0800 Unknown https://chux0519.github.io/blog/2021/ https://chux0519.github.io/blog/2021/ <p>2021 年已经过了 19 天了,前一段时间常在网络上看到各种总结和展望。</p> <p>由于自己太懒,不想刻意去回想过去一年里做了些什么,或者回想对我而言,已经变得费力了。</p> <p>今天心血来潮,写一写脑子里残留的,和脑子里新产生的这些想法。</p> CS144 Lab2 学习笔记 Fri, 04 Sep 2020 17:58:15 +0800 Unknown https://chux0519.github.io/blog/cs144-lab2/ https://chux0519.github.io/blog/cs144-lab2/ <p>CS144 是一门关于计算机网络的斯坦福大学的公开课。课程的实验是动手写一个用户态的 TCP 协议,本文是第三篇。</p> <ul> <li> <p>课程链接: https://cs144.github.io/</p> </li> <li> <p>本文讲义: https://cs144.github.io/assignments/lab2.pdf</p> </li> <li> <p>本文相关代码: https://github.com/hexyoungs/tcplab/tree/lab2</p> </li> </ul> <h2 id="update-20200928">update 20200928</h2> <p>2020 年秋季的课程也开始了,网络上之前的 pdf 已经找不到了,故休息一段时间,等课程同步到相关进度后,再继续这个系列。</p> CS144 Lab1 学习笔记 Fri, 28 Aug 2020 21:16:15 +0800 Unknown https://chux0519.github.io/blog/cs144-lab1/ https://chux0519.github.io/blog/cs144-lab1/ <p>CS144 是一门关于计算机网络的斯坦福大学的公开课。课程的实验是动手写一个用户态的 TCP 协议,本文是第二篇。</p> <ul> <li> <p>课程链接: https://cs144.github.io/</p> </li> <li> <p>本文讲义: https://cs144.github.io/assignments/lab1.pdf</p> </li> <li> <p>本文相关代码: https://github.com/hexyoungs/tcplab/tree/lab1</p> </li> </ul> CS144 Lab0 学习笔记 Sun, 23 Aug 2020 13:27:15 +0800 Unknown https://chux0519.github.io/blog/cs144-lab0/ https://chux0519.github.io/blog/cs144-lab0/ <p>CS144 是一门关于计算机网络的斯坦福大学的公开课。课程的实验是动手写一个用户态的 TCP 协议,非常吸引我,于是就入坑了。我会用一个系列来记录自己的学习笔记。</p> <ul> <li> <p>课程链接: https://cs144.github.io/</p> </li> <li> <p>本文讲义: https://cs144.github.io/assignments/lab0.pdf</p> </li> <li> <p>本文相关代码: https://github.com/hexyoungs/tcplab/tree/lab0</p> </li> </ul> 爬山算法拟合图片 Wed, 19 Aug 2020 13:27:15 +0800 Unknown https://chux0519.github.io/blog/purr/ https://chux0519.github.io/blog/purr/ <p>上次参加 Rusty Days Hackathon 时,用 rust 实现了一下爬山算法。可以做到下面的效果。</p> <img style="display: inline;" src="https://raw.githubusercontent.com/chux0519/purr/master/purrmitive/assets/purr.0.png" width=200 alignment="left"/> <img style="display: inline;" src="https://raw.githubusercontent.com/chux0519/purr/master/purrmitive/assets/purr.1.png" width=200 alignment="left"/> <img style="display: inline;" src="https://raw.githubusercontent.com/chux0519/purr/master/purrmitive/assets/purr.2.png" width=200 alignment="left"/> <img style="display: inline;" src="https://raw.githubusercontent.com/chux0519/purr/master/purrmitive/assets/purr.3.png" width=200 alignment="left"/> <img style="display: inline;" src="https://raw.githubusercontent.com/chux0519/purr/master/purrmitive/assets/input.png" width=200 alignment="left"/> <img style="display: inline;" src="https://raw.githubusercontent.com/chux0519/purr/master/purrmitive/assets/purr.4.png" width=200 alignment="left"/> <img style="display: inline;" src="https://raw.githubusercontent.com/chux0519/purr/master/purrmitive/assets/purr.5.png" width=200 alignment="left"/> <img style="display: inline;" src="https://raw.githubusercontent.com/chux0519/purr/master/purrmitive/assets/purr.7.png" width=200 alignment="left"/> <img style="display: inline;" src="https://raw.githubusercontent.com/chux0519/purr/master/purrmitive/assets/purr.8.png" width=200 alignment="left"/> <p>项目地址: https://github.com/chux0519/purr</p> Non Blocking Tornado Tue, 09 Jun 2020 17:31:15 +0800 Unknown https://chux0519.github.io/blog/non-blocking-tornado/ https://chux0519.github.io/blog/non-blocking-tornado/ <p>tornado 是一个 python 的高性能 web 框架。最近在工作中遇到一个基于它的项目,在接口处该项目使用了大量的同步 io (数据库操作是同步的),意味着,某一时刻,在数据库 io 操作的时候,主线程是被阻塞的。这时新进来的请求得不到及时处理,会影响吞吐量。用户请求排队的时间也会变长。这里记录两种修改方式,提高吞吐量,使得这些操作不阻塞主线程。</p>