新 tokio 中的变动
架构更新
几个小时前, tokio 0.1.0 正式发布了
如果没有一直关注, 肯定是一脸茫然
tokio-core 呢? reactor::Core
又跑哪去了??
其实这是计划了差不多半年的一个变动
因为之前的 futures 和 tokio 都只是 "能用" 的程度, 在被大量使用后暴露出了很多设计上的问题, 并且还有不少要放弃向后兼容才能修复
所以这次就攒到一起重新设计顺便分了个新的 crate
几个小时前, tokio 0.1.0 正式发布了
如果没有一直关注, 肯定是一脸茫然
tokio-core 呢? reactor::Core
又跑哪去了??
其实这是计划了差不多半年的一个变动
因为之前的 futures 和 tokio 都只是 "能用" 的程度, 在被大量使用后暴露出了很多设计上的问题, 并且还有不少要放弃向后兼容才能修复
所以这次就攒到一起重新设计顺便分了个新的 crate
很多程序, 比如各种监视器, 需要实时绘制统计图来将数据直观的展示给用户
而这个实时, 却又不是那么的 "实时", 一般表示一秒左右
不然一个监视器吃的资源比被监视程序还多, 就十分微妙了
通常为了偷懒, 直接画几条线把型值点连起来, 做成折线图, 然后一秒一秒的刷新就可以
但人是要有追求的! 我们要平滑! 要曲线!
所以便有了本文, 记录追求上帝所有物的流水帐
这篇文章并不在讲什么是生命期, 请先确保有正确的生命期概念
虽然标题是说高阶生命期约束, 不过 RFC 本身是叫高阶 Trait 约束 (Higher Ranked Trait Bounds), 但由于目前只实现了生命期的部分, 所以……
言归正传, 在 serde 里, 会发现 DeserializeOwned
的定义是这样的
pub trait DeserializeOwned: for<'de> Deserialize<'de> { }
今天, Rust 的 Generator 支持终于被合并了!
这代表那拖了很久又很久的 Coroutine 也终于可以在 Nightly(2017-08-29) 里使用了
可喜可贺, 可喜可贺
那以后就可以愉快的在 Rust 里写异步代码啦?
想得美
坑在哪里我下面慢慢说
之前买的 RT-AC56U 一直没放什么东西,空转到现在
今天终于有了需求,拿它来挂 BT
这篇文章作为笔记,记一下遇到的坑,以后备用
挺好玩的 Roguelike 游戏(最近还加了联机模式,然而联机起来各种崩,戒指怕是有生之年了)
可惜没有云存档,在经历了某次事件后,我的存档和我说了再见
重新打?我没那毅力。不过既然是本地的,改起来也容易
流程如下:
抽空把博客生成器换到了 Cobalt
纯 Rust 编写,还支持用 syntect 对代码块高亮(虽然仅限 Linux 平台)
之前用 hugo 的时候说要修改啊贡献啊什么的结果也没做
这次一上来就发了个 PR 把 pulldown 升级了还修了下 test
旧的 pulldown 各种毛病,<script>
标签之内都不能有空行,否则就解析成 Markdown
维护者曾经尝试升级不过高亮测试失败了,而他用 Windows 无法测试高亮,就卡在旧版本了
然后因为我在用 Linux ,顺便跑了一遍 test
结果发现原来的 test 本身就是错的,所以直接把正确结果拿出来覆盖上去 pass 了
嗯……有些时候问题真是简单呢
上边这是华硕官网的介绍图,本以为他们还搞了个 3D 什么的,结果就是一堆图拼起来的,所以这里干脆用滑块代替了
6 天前, Rust 引入了由 LLVM 提供的实验性的 Sanitizer 支持 (仅限 x86_64-unknown-linux-gnu
平台)
而今天 Rust Nightly 默认启用了 Sanitizer, 就是说所有用 Nightly 的小伙伴都可以直接更新体验 Sanitizer 啦 (废话
目前有如下几个 Sanitizer:
Rc
环和 std::mem::forget
)-race
命令)当然这主要还是为 unsafe
准备的,毕竟其他大部分情况都能在编译时检测出来
当我知道有些动画效果是纯靠图片拼起来的时候我是绝望的,虽然的确很省计算资源,但是你们让高分屏往哪哭?
大部分动画效果,直接用相应图形库自带的函数就能解决
有些稍微麻烦一点的,就得手写了(当然还是不推荐,毕竟人家的函数一般都带各种加速)
这时候就体现出了一个 客户端/网页端 的前端稍微懂点数学是多么的重要
不过太高级的数学我也不会,只能讲点简单的,就是实现一个波浪动画