Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/06209.jsonl.gz/1

今天体验了一下 Alacritty ，以前一直在用 iTerm2 ，但是它的高级功能我都没用到。于是现在用了下 Alacritty ，把 Solarized Dark 配置了，发现 Inconsolata for Powerline 字体显示有点偏差，于是调整了一下： # Font configuration (changes require restart) font: # Normal (roman) font face normal: family: Inconsolata for Powerline # The `style` can be specified to pick a specific face. #style: Regular # Bold font face bold: family: Inconsolata for Powerline # The `style` can be specified to pick a specific face. #style: Bold # Italic font face italic: family: Inconsolata for Powerline # The `style` can be specified to pick a specific face.
用 InfluxDB 收集到 Mountpoint 数据的时候，经常会掺杂一些不关心的，如 TimeMachine ，KSInstallAction 和 AppTranslocation 等等。所以，为了在 Variables 里过滤掉他们，需要用 Regex 进行处理。网上有人提供了方案，就是通过 Negative Lookahead 实现： /^(?!.*TimeMachine)(?!.*KSInstallAction)(?!.*\/private)/ 这样就可以把不想看到的这些 mountpoint 隐藏，节省页面空间了。当然了，这里其实也可以用白名单的方法进行处理，直接写 regex 就可以了。
在 Linker Script 中可以记录下一个地址到一个变量中，大概这样： .text: { PROVIDE(__text_start = .); *(.text .text.* .gnu.linkonce.t*) PROVIDE(__text_end = .); } 这里的 PROVIDE() 是可选的。这样，代码里就可以获取到 .text 段的地址了。在 C 中，直接 extern 一个同名的变量就可以了，但在 Rust 中，需要这样获取： extern "C" { fn __text_start(); fn __text_end(); } // __text_start as usize // __text_end as usize 这样就可以拿到地址了。
2019 年第一篇博文，祝大家新年快乐。最近忙于期末，没怎么搞事情，所以暂时没有关于别的内容的博文。 发现一个很好看的 http web server index 就是不再更新了 h5ai 录制 DOM 变化并且重放 rrweb C++ 中的 Lazy Sequence 实现 lazyCode 来自 Berrysoft 的 Windows UWP 校园网认证解决方案 TsinghuaNetUWP 中科大老运维的笔记 ITTS Go 源码研究电子书 目测还在编写，不过读来挺有收获的 go-under-the-hood 第一次了解到 ELF Aux Vectors auxv 发现了 C99 的参数列表里 static 数组大小语法 static array indicies 发现一个有趣的包装了 socket 的消息库 支持一些消息分发方法 nanomsg 找到一个可视化 YUV 和视频解码的一些内部信息的工具 YUVView 通过动态 QRCode 传输数据 txqr qr-transfer 发现一些很好看的 CSS 动画 10-stunning-css-3d-effect-must-see 其中最神奇也最复杂的是 这个 Android runtime 中动态获取权限的库 Dexter 来自 Berrysoft 的 Stream operators in C++ CppLinq Squirrel (Rime for macOS) 在两年以后终于出了 0.
咕了更长的时间。 Header only JIT assembler https://github.com/herumi/xbyak 想找个时间玩玩 JIT Rust 实现的 Babel 转译 https://github.com/swc-project/swc 又一个瀑布流实现 https://github.com/e-oj/Magic-Grid 马上可以体验 HTTP/3 的库 https://github.com/djc/quinn Logitech Spotlight Presentation 挺好用的 配套软件的安装过程和使用都挺好的 Server side canvas https://github.com/Automattic/node-canvas 边看 youtube tutorial 边写代码 https://yourepl.tumblr.com/post/180936303347/announcing-yourepl 又一个 PostgreSQL 网页版客户端 https://github.com/sosedoff/pgweb 有趣的 CSS Layout 学习方法 http://cssgridgarden.com/#en http://flexboxfroggy.com/ pipenv 也有过 easter egg https://github.com/pypa/pipenv/issues/786 不过影比 antd 这个事情好多了 Web 太强了 啥都能做 https://whatwebcando.today/ 来自娄晨耀的清真 DNS 解决方案 https://github.com/Chenyao2333/freedns-go 快速的 tldr 实现 https://github.com/dbrgn/tealdeer MongoDB Data Source for Grafana 可以用 就是 aggregation 不大容易写对 https://github.
前言 关注清华的同学可能知道，昨天，“清华大学”公众号发了一篇名为《2018，我们共芳华丨@THUers 致相伴一年的你，请查收这份心意》的推送，内容大概就是，有那么100个新年台历礼品要送出去，大家如果想要的话，就扫描小程序。小程序模仿了火车抢票的病毒式营销的模式，要求大家分享到群聊或者朋友圈，让别人给自己加速，加速到 2019 的前 100 名即可填写信息领取奖品。 然后大家就在推送里看到了我。就酱。 开始 这件事情据说策划了有一段时间了，只是因为各种原因一直没有做，最后这个锅就路由到了我的头上。一开始说就是个加速小程序，逻辑很简单，但后来逐渐发现需求越来越多，主要是界面上的，动画上的，还有一些非技术因素的功能，嗯。这其实算是一个不大好的软件工程案例。 过程 线上的问题与解决方案 然后就是上线了。大概是昨天（2018-12-27）中午的时候推送发出去，很快流量就开始来了。很快，在朋友圈看到有同学在转发了，也有人反映说，网络有点卡，加载资源有点多。我去机器上用 iftop 看了下，流量大概是 250Mb/s ，没打到千兆。我一开始看了下，CPU 和内存占用都良好，以为是网络出口限制的问题，就想着没办法了，就这样吧，扛过去再说。不过，忽然有了转机。 TUNA 技术群里，忽然有人在讨论 SOMAXCONN 的问题，我想到，会不会是有些参数没开够大，导致了性能瓶颈，又受到啊荣的点拨，立马调整了这些变量： net.core.somaxconn fs.file-max net.core.netdev_max_backlog net.ipv4.tcp_max_syn_backlog nginx: worker_rlimit_nofile nginx: event.worker_connections 很快带宽从 200Mb/s 左右打到了 400Mb/s 多，在 iftop 中看到的峰值接近 600Mb/s，见下图： 事后回来看，发现配置一套科学的监控系统真的很有用，如 TCP 连接的状态图： 这里最高的黄线代表的是 TIME_WAIT ，意味着很多的 TCP 连接都卡在了等待资源上，而一当我修改参数以后，立刻就降了下来，ESTBALISHED 的连接有了显著的提升。这个问题从另一个图也可以明地看出： 这个图是 TCP Handshake Issues ，可以看到无论是 activeopen 还是 passiveopen ，都很高，意味着这里无论是发还是收都遇到了问题。而修改参数以后，这些问题立马得到了很好的改善。 其实这些本应该在上线前做好的，但我低估了清华大学的影响力，没有做好相应的准备，还是在优秀的运维人员的指点下得到了较好的效果。 用户数据分析 当然了，除了 Grafana+InfluxDB+Telegraf 这一套监控系统，我们也部署了 ElasticSearch+Logstash+Kibana ，只不过我们还是用 Grafana 做了 ElasticSearch 的前端了。通过对 Nginx 日志的分析，我们得到了这些关键的数据（从12-26 12:00到12-27 12:00一天时间）：
因为 DDL ，咕了一小会。 被 Windows 保存为 Unicode 文件坑了 BOM 配上 UTF-16 太难受了 Github 最近添加了很多 Issue 方面的更新，如 Pin 和 Delete Grafana 真的很好看很好用 推荐大家自己配一套监控系统 Microsoft Remote Desktop Beta 新增了 AVC Codec 有意思 不知道啥时候上 HEVC 发现一个很好玩的用 Rust 写的网页游戏 https://sandspiel.club/# Python Pattern Matching https://github.com/santinic/pampy 大新闻：MIPS Open Source 了 https://www.eetimes.com/document.asp?doc_id=1334087 GRPC 调试的 GUI https://github.com/uw-labs/bloomrpc 对标 Postman 酷炫的屏幕保护 for Mac https://github.com/JohnCoates/Aerial WPF 开源了 不知道啥时候支持 *nix https://github.com/dotnet/wpf 分享欢乐 https://github.com/dotnet/wpf 分享欢乐x2 https://lore.kernel.org/patchwork/patch/628142/ 谷歌近日到处上线了 Material Design 2.0 感觉风格不大习惯 veonim/veonim 的 Tag 里有 #meme-driven-development 太好笑了 巨硬开源了自己的 UEFI 和 TianoCore EDK 竞争 https://blogs.
继续，继续。 用代码呈现硬件实现对性能的影响，值得一读 链接 发现了一个蛮少见的编码标准 AVS2 ，才发现是中国主导的 编码器 linux.org 的 DNS 被篡改了，认准 kernel.org 即可 一个处理器的电路的在线可视化 ARM1 visualized WASM 家庭现已加入 Nginx 链接 用 .bat 编写汇编语言 mnnip/BOOTSTRA Gitlab 挺香的，兹瓷 git-lfs ，还可以自己给自己的项目配一个 ci runner LaTeX 的 subfigure 之间如果有空行，就真的换了一行，所以同一行的 subfigure 不要换行 Rocket 4.0 出了，看起来不错，要是作者更新一下 CS140e 就好了 链接 装机必备，查询 Arch Wiki arch-wiki-man LaTeX 里 \newcommand 时，如果文件名有多个 ‘.’ ，要特殊处理 链接 RunAsDate for *nix wolfcw/libfaketime 用数据库做数据分析似乎是个不错的选择 Canvas 配合 globalCompositionOperation 能做到不少东西 才知道有 Time Machine over SMB 这种操作 链接 mDNS repeater 把两个子网的 mDNS 打通 kennylevinsen/mdns-repeater Office 2019 for Mac 的 December 2018 release 添加了 Dark Mode ，并且也支持了 Continuity Camera ，直接从手机拍照导入 Gitlab serverless 发布，期待 链接 用 NAS 作为 Time Machine 备份盘的方法 链接 研究了一下，Time Machine over SMB 在 macOS 里的表现形式是 apfs 里写了一个 sparse bundle ，bundle 里面是 HFS+ 。
最近有了设备，想把设备拿到的数据都导一份存到 influxdb 里，但是目前找到的只有 homebridge-mi-aqara 可以访问并拿到数据，然后它又提供了 mqtt 的数据获取方案，于是自己写了个脚本去读取这些数据。 首先当然是配置一下 homebridge-mi-aqara ，按照网上的教程来，这个不难。然后本地开一个 MQTT Broker （如 mosquitto ），配置为本地监听，然后我编写了脚本 telegraf-mi-aqara.py ，使用前需要 pip install paho-mqtt，并且按照实际路径修改一下内容 。验证能够跑起来后，写一个 telegraf 配置： [[inputs.exec]] commands = ["/usr/bin/python3 /path/to/telegraf-mi-aqara.py"] timeout = "5s" data_format = "influx" 现在就可以读取到各项信息，如温度，湿度，是否开门，开关用电情况等等。 2018-12-16 更新： 研究了一下绿米网关局域网通信协议，得到了第二个版本 telegraf-mi-aqara-v2.py，它与第一版的区别是，第一版是主动向网关读取信息，而这一版则是监听组播包，等待网关发消息。这个脚本负责把读取到的组播信息发送到 MQTT ，再让 telegraf 从 MQTT 里解析 JSON 消息，写入数据库。Telegraf 配置如下： [[inputs.mqtt_consumer]] servers = ["tcp://<ip-pii>:1883"] qos = 0 connection_timeout = "30s" topics = [ "/telegraf-mi-aqara" ] persistent_session = true client_id = "Telegraf" data_format = "json" json_string_fields = ["model", "sid", "status"] tag_keys = ["model", "sid", "short_id"] 由于设备不全，有些字段可能不完整。如果大家自己要用的话，可能需要自行修改一下。
最近这段时间，清华内部正在投票选出今年的年度人物，想到最近刚好在学习使用 Grafana+InfluxDB+Telegraf 全家桶，于是想着能不能写个爬虫把数据都拿下来，然后用 Grafana 画出来，就可以得到一个投票随时间变化的趋势。爬虫很简单，就是登录，获取页面信息，然后按照 InfluxDB 的输入格式进行输出即可。代码放在了 jiegec/student-tsinghua-vote18 下。 接着就是用 Grafana 进行可视化，大概得到了这样一个曲线： 为保护隐私，把名字隐去了。实际上的投票时间是从 12-3 号开始到 12-7号结束，但由于宿舍停电的原因所以采样的点在半夜的时候都没有，所以看起来有点奇怪，但还是能够反应总体的趋势的。比如可以看到前两名很早就一马当先，而后一直遥遥领先，下面的选手则排名变动很大，特别是截止前最后一段时间，大家都在拼命拉票，可见大家都是 DDL 选手啊。如果对上面这个图求个导，看看变化率的话： 这显现出了很有意思的一个趋势，就是每天十二点左右都有一个高峰期，然后在零点前大概熄灯附近的时间也是一个高峰期，另外就是截止前最后的抢票阶段，大家都在疯狂拉票，从中午拉到最后时刻。由于停电的原因，在零点附近的数据都比较的鬼畜，不过影响不大，趋势一目了然。 Grafana 真香！期望可以学到更多高端的查询语法和可视化的骚操作，现在有很多东西不知道该怎么可视化，比较苦恼，不知道大家有没有什么经验可以分享。