每周分享第 33 期

一个讲 Rust 比较硬核的博客 http://system.joekain.com/ 利用 fzf 实现 shell 的 REPL https://github.com/pawelduda/fzf-live-repl 类似 Vue 的前端 Go 框架 https://www.vugu.org/doc/start iOS 13 beta 4 发布 14A5534f 针对 T2 NVMe 的 patch http://www.phoronix.com/scan.php?page=news_item&px=NVMe-Patches-LKML-Apple-Mac 一个前端非对称加密的问卷网站 https://blog.fugoes.xyz/crypto-q/

Read More

前端解析上传的 CSV

之前做过一个在前端解析上传的 CSV 的功能,但是只能支持部分的 encoding,遇到 gbk 就傻眼了。一番研究以后,找到了比较科学的方案: import * as Chardet from 'chardet'; import * as Iconv from 'iconv-lite'; const reader = new FileReader(); reader.onload = (e) => { const data = e.target.result; const view = Buffer.from(data); // detect encoding and convert const encoding = Chardet.detect(view); const result = Iconv.decode(view, encoding); const csvData = Papa.parse(result).data; // do anything with it }; reader.readAsArrayBuffer(blob_here); 依赖了两个库:chardet 和 iconv-lite ,测试了一下,解析 UTF-8 GBK UTF-16BE 都没问题。

Read More

每周分享第 32 期

Rpi4 的 Type-C 设计有问题 https://readhacker.news/s/45WYc Debian buster released USB Type-C Serial adapter with WCH/FTDI https://github.com/z4yx/USB-C-Serial Linux 5.2 Kernel released http://www.phoronix.com/scan.php?page=news_item&px=Linux-5.2-Released iOS/iPadOS PB2 发布,与 DB3 差了一个小版本号 Pacman in 512 bytes of x86 boot sector machine code https://readhacker.news/s/466Zm clang 的 use after move checker 使用 https://awesomekling.github.io/Catching-use-after-move-bugs-with-Clang-consumed-annotations/

Read More

每周分享第 31 期

一个 Docker 的 TUI https://github.com/jesseduffield/lazydocker 在线 Git cheatsheet http://ndpsoftware.com/git-cheatsheet.html 带历史合并两个 Git 仓库 https://stackoverflow.com/a/10548919 iOS 13 Dev Beta 3 https://mp.weixin.qq.com/s/6cxLXOYgeP6QkDpa9kdoug iOS 13 FaceTime Attention Correction https://readhacker.news/s/45QX2

Read More

每周分享第 30 期

一个可参考的防止 side channel attack 的方法 https://www.undeadly.org/cgi?action=article;sid=20190621081455 物理上镜像百兆的方法 实测可用 https://greatscottgadgets.com/throwingstar/ 微软员工写的 malloc https://github.com/microsoft/mimalloc 超标量乱序执行的 x86 软核 https://tspace.library.utoronto.ca/bitstream/1807/80713/1/Wong_Henry_T_201711_PhD_thesis.pdf Rust 的 wireshark 替代 https://github.com/kpcyrd/sniffglue Rpi 4 发布 https://readhacker.news/s/45nK9 iOS/macOS Catalina PB1 发布(= DB2) dbg! 移植到了 C++ https://github.com/sharkdp/dbg-macro 类似于 Elm 的 Rust 前端框架 https://github.com/David-OConnor/seed 访问 VMware 虚拟机串口的方法 https://thewayeye.net/2009/december/4/connecting-virtual-machines-serial-console-os-x-and-vmware-fusion/

Read More

IP 前缀转换上意外遇到的 Undefined Behavior

最近发现了两个很神奇的 Undefined Behavior ,出现在 Prefix Len 和 Netmask 的转换的问题下。一个简单思路可能是: #define PREFIX_BIN2DEC(bin) (32 - __builtin_ctz((bin))) #define PREFIX_DEC2BIN(hex) (((~0) >> (32 - (hex))) << (32 - (hex)) 乍一看,似乎没有什么问题。但是,在一些平台下,可能会出现这样的结果: PREFIX_BIN2DEC(0x00000000) = 33 PREFIX_DEC2BIN(0) = 0xFFFFFFFF 而且只能在一些平台上不确定地复现,最后发现其实是 Undefined Behavior,在 C 的标准中: In any case, the behavior is undefined if rhs is negative or is greater or equal the number of bits in the promoted lhs. 意味着, 0xFFFFFFFF >> 32 是一个 UB ,所以出现了上面的问题。

Read More

每周分享第 29 期

ZFS on Linux 发布 0.8.1 https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.8.1 slim: Dockerfile to VM image https://github.com/ottomatica/slim Rust 重写的 du 替代物 确实很快 https://github.com/Byron/dua-cli iOS 13/macOS Catalina beta 2 出了 并且可以 OTA 相关信息 https://9to5mac.com/2019/06/17/ios-13-beta-2-features/ https://developer.apple.com/documentation/macos_release_notes/macos_catalina_10_15_beta_2_release_notes https://mp.weixin.qq.com/s/Ae1SIcK9ho4Mh0g_UsbAyA Steam 已经解决了 Catalina 上 32 位程序不能运行的问题 https://www.reddit.com/r/MacOS/comments/c17lh8/steam_and_macos_catalina 在一些老的 Mac 上 Sidecar 是默认关闭的,但是可以开启 https://github.com/pookjw/SidecarPatcher/blob/master/README.md 虽然效果不会很好

Read More

每周分享第 28 期

Rust Sec https://github.com/RustSec/advisory-db opendrop 开源的 AirDrop 实现 https://github.com/seemoo-lab/opendrop 代码内嵌图片 https://javl.github.io/image2cpp/ RAMBleed 攻击 https://readhacker.news/s/44MHD WSL2 可以体验了 https://devblogs.microsoft.com/commandline/wsl-2-is-now-available-in-windows-insiders/ Rust 2019 生态报告 https://www.jetbrains.com/lp/devecosystem-2019/rust/

Read More

每周分享第 27 期

高考加油! Fallout 漏洞 https://arxiv.org/abs/1905.12701 PageRank 专利到期 https://patents.google.com/patent/US6285999B1/en 终端电量可视化 https://github.com/svartalf/rust-battop 查找 DB 的 DB https://dbdb.io 在 Rust 里写 GPU 程序 https://github.com/calebwin/emu WWDC 2019 挺不错的 Alfred 4 发布 https://www.alfredapp.com/blog/announcements/alfred-4-is-here/ Mac Pro AR https://www.apple.com/105/media/us/mac-pro/2019/36178e80-30fd-441c-9a5b-349c6365bb36/quick-look/case-on.usdz VSCode 稳定版也可以 Remote 了 https://code.visualstudio.com/docs/remote/ssh 2019 高考语文作文 https://mp.weixin.qq.com/s/2NwkbbMlAUJpOKKuln1T4g

Read More