跳转至

misc

jiege.ch 停用

jiege.ch 域名不再续费,之后一直继续用 jia.je 这个域名。

教学随想

背景

最近关于课程改革的讨论比较多,我也来谈谈我的看法。

动机

一位高中毕业的同学,选择计算机系的动机是什么?我想了想,可能有下面几种:

  1. 计算机行业就业好,我选了计算机系,毕业以后可以赚到很多钱
  2. 喜欢计算机,希望从事计算机方面的工作
  3. 计算机系分高,大家都说好,那我就选择去这里吧
  4. 我是竞赛保送的,所以来到了这里

学校希望计算机系培养出来的学生:

  1. 有很好的能力
  2. 有很好的毕业去向(保研/工作/留校等等)

学校为希望计算机系:

  1. 有更多重大科研成果
  2. 能够培养多且精的计算机人才

计算机系为了实现上面的目标:

  1. 教学的专业课程要全面,并且能够支撑后续的科研
  2. 吸引更多学生进入实验室科研

同时还要与其他院系(软件学院,交叉信息学院,集成电路学院等)有区分(分工)。

路径

可以看到,上面的这一系列诉求是有矛盾的,可以假想这么几条路径:

  1. 想赚钱->读研毕业薪资更高->读研需要高 GPA->每门课都要 4.0->每个课程的可选部分都要做->工作量太大
  2. 想科研->找好老师->需要高 GPA 和或论文->每门课都要 4.0 同时还要在实验室科研->工作量特别大
  3. 不想科研直接工作->工作不需要高的 GPA->放弃一些课程的可选部分->空余时间学习实用技术->面试轻松过关
  4. 对未来没有想法->从众心理卷 GPA->每个课程都做可选部分->花费很多时间->没有时间做自己喜欢的事情

这对于七字班(2017)或者更早同学来说,这可能是难以理解的。当时,保研不需要很高的 GPA,老师会看重科研潜力,想科研的同学可能选择在实验室科研的同时,放弃一些课程。

但是从八字班(2018)开始,多重因素下,问题就凸显了。一是总人数更多,保研难度本身就更大,竞争激烈;二是保研名额严格按照 GPA 排序,导致保研的同学必须科研学习两手抓;三是 GPA 改革以后,4.0 难度变低,以前会想 A B C 课程比较难,大部分人都拿不到 4.0,我 A 课程 3.7,B 课程 3.3 和你 A 课程 3.3,B 课程 3.7 是一样的,精力有限,只做三个里面最简单的一个,但现在会发现,比 GPA 实际上就是比谁 4.0 更多,虽然 A B C 课程也比较难,但是此时只能把三个都做了,不然就会排名下降明显。

这还会带来其他的问题:为了拿到更多 4.0,但精力有限,按照自己的时间,三个课里只能拿到一个 4.0,比不过拿到三个 4.0 的同学,咋办?抄袭。让老师放水,人人 4.0。

解决

那么,怎么解决这个问题?

从个人的角度出发:尽早想好自己要什么。我要做什么,就在我要做的方向上做好,其他方向可以选择性放弃,不要随大流。

从院系的角度出发:难。

轶事一则

7.31 号周六的时候,发现 Intel Intrinsics Guide(https://software.intel.com/sites/landingpage/IntrinsicsGuide/) 出现错误,加载数据失败,于是在 Intel 的网站上提交了一个 bug。

8.2 号的时候,Intel 发邮件过来,说已经复现了问题,已经汇报给了后端团队。邮件原文:

Thank you for bringing this to our attention. We have verified and
encountered the same issue. Please know that we have escalated this
issue to our backend technical team.

We will get back to you as soon as we have an update. Have a nice day
ahead!

8.4 号的时候,Intel 再次发邮件过来,说后端团队正在处理这个问题,会尽快完成修复,请我耐心等待。这个时候我去网站上看,还是有问题。邮件原文:

Our backend team is still working on this issue. We are trying our level
best to get back to you with an update soon.

Have a nice day ahead!

8.6 号 19:27 的时候,Intel 又发了一次邮件,说后端团队依然在处理这个问题,并且正在进行一个永久性的修复(言下之意是现在提供了一个临时性的修复)。这个时候去网站上看,终于是修好了。邮件原文:

We have received an update from our backend team is that they are
working on this issue and, a more permanent fix is in the works.
Hopefully, it will resolve soon.

We appreciate your patience and understanding on this matter. Have a
nice day!

我回复了一下邮件,告诉 Intel 我这边看到已经是修复好的版本,紧接着又收到了一封邮件,告诉我可以从网站上下载离线版的 Intrinsics Guide:

Thank you for your prompt response. We are glad that your issue has been
resolved and we would like to thank you for your co operation.  Please
be informed that the offline version of the Intrinsic Guide is now
available for download from the site. The offline version of the guide
has the same content as the site, but is viewable offline by the user. A
link to the download is now added in the left column of the site:
https://software.intel.com/sites/landingpage/IntrinsicsGuide/

That said, we are closing this ticket and if you have further issues
please open another ticket and we will be happy to help you.

After case closure, you will receive a survey email. We appreciate it if
you can complete this survey regarding the support you received.  Your
feedback will help us improve our support.

For any concerns related to Intel® Developer Zone account, login or
website, please feel free to open a new ticket:
https://software.intel.com/en-us/support

这次 Intel Support 的反应挺快的,给个好评。就是希望 Intel 能够不挤牙膏,能拿出和 AMD 相当水平的 CPU。

轶事一则

7.17 号周六的时候,一位朋友 @elenacliu 发现深研院网站的一个文档链接,文档中标题写的是 2021,但是网页的标题显示的是 2006 年。于是我发邮件给深研院的招生办,抄送本部的研招办,提交了这个 issue。

7.19 号周一上午的时候,本部的研招办回复了一封邮件,没有理解我想表达的意思,可能以为我是要报考的学生,让我关注明年发布的文档。

7.19 号周一下午的时候,深研院招生办回复了邮件,说“谢谢你的反馈”,不过没有提到是否进行了修复。我晚上再查看页面的时候,发现新的文档链接已经修复了问题。

每周分享第 56 期

咕咕咕

  1. SystemVerilog linter https://github.com/dalance/svlint
  2. 东北方言编程语言 https://github.com/zhanyong-wan/dongbei
  3. JS LaTeX 渲染到 HTML https://github.com/michael-brade/LaTeX.js
  4. 一种对语音助手的攻击 https://surfingattack.github.io/
  5. 在线打铃网站 http://thulpwan.net/timer/
  6. 网络学堂 PC 端 App https://github.com/jiegec/learn_tsinghua_app/releases
  7. Rust 2020 roadmap https://github.com/rust-lang/rfcs/pull/2857/files

每周分享第 55 期

一个月后终于复更

  1. 退出 vim 教程 https://github.com/hakluke/how-to-exit-vim
  2. SHA-1 攻击新进展 https://sha-mbles.github.io/
  3. gmane 近况 https://lars.ingebrigtsen.no/2020/01/06/whatever-happened-to-news-gmane-org/
  4. 浏览器能做的事情 https://github.com/luruke/browser-2020
  5. 一个 ext2 和 FAT 为一体的 fs https://github.com/NieDzejkob/cursedfs
  6. iptables 规则调试工具 https://github.com/x-way/iptables-tracer
  7. Qt 2020 的变化 https://www.qt.io/blog/qt-offering-changes-2020
  8. 后缀自动机可视化 https://yeah.moe/p/a8e74947/

每周分享第 54 期

咕了两周

  1. ES2019 https://javascript.christmas/2019/7
  2. CSS 技巧 https://github.com/chokcoco/iCSS
  3. Rust 编译器加速 https://blog.mozilla.org/nnethercote/2019/12/11/how-to-speed-up-the-rust-compiler-one-last-time-in-2019/
  4. OSXFuse 不开源 https://colatkinson.site/macos/fuse/2019/09/29/osxfuse/
  5. 嵌入式 Rust 的 fmt 优化 https://jamesmunns.com/blog/fmt-unreasonably-expensive/
  6. Docker base image 更新工具 https://github.com/containrrr/watchtower
  7. 运行 Linux 的名片 https://www.thirtythreeforty.net/posts/2019/12/my-business-card-runs-linux/

每周分享第 53 期

  1. GDB Enhanced Features https://github.com/hugsy/gef
  2. Lisp on Lua https://fennel-lang.org/
  3. Django 3.0 https://docs.djangoproject.com/en/3.0/releases/3.0/
  4. Rust Constant Propagation https://blog.rust-lang.org/inside-rust/2019/12/02/const-prop-on-by-default.html
  5. ES2019 features https://javascript.christmas/2019/7

每周分享第 52 期

  1. 传递 Rust 闭包到 C https://readhacker.news/s/4dbWL

  2. SystemVerilog Online http://sv-lang.com/

  3. Java 14 新特性 https://www.javaworld.com/article/3437797/work-begins-on-java-14.html

  4. 在线 or1k 的模拟器 https://readhacker.news/s/4dfqc

  5. 在 macOS 上运行 virt-manager https://github.com/jeffreywildman/homebrew-virt-manager

  6. 关于 SystemVerilog 的博客 http://systemverilog.io/

  7. 结合 VSCode 和 Docker 的开发环境 https://github.com/cdr/sail

每周分享第 51 期

  1. 一个 LaTeX 的 LSP https://github.com/latex-lsp/texlab

  2. Rope 数据结构 https://github.com/cessen/ropey

  3. 一个把 Vivado 工程放 git 中管理的方法 https://github.com/jhallen/vivado_setup

  4. https://github.com/athre0z/color-backtrace

  5. 拿 Arch 当路由器 https://github.com/archwrt

  6. Sourcetrail 开源了 https://www.sourcetrail.com/blog/open_source/

  7. NodeJS 正式支持 ES Module https://medium.com/@nodejs/announcing-core-node-js-support-for-ecmascript-modules-c5d6dc29b663

  8. Rust 的错误处理 https://blog.yoshuawuyts.com/error-handling-survey/

每周分享第 50 期

时间过得真快,忽然就 50 期了。。

  1. CLion 的 C++20 Concept 支持 https://blog.jetbrains.com/clion/2019/11/cpp20-concepts-in-clion/
  2. TypeScript 一些工具 https://github.com/pirix-gh/ts-toolbelt
  3. Rust 编写的 SystemVerilog Parser https://github.com/dalance/sv-parser
  4. MacBookPro 16 英寸 发布
  5. 用 Rust 写 eBPF 程序 https://blog.redsift.com/labs/putting-rust-in-the-kernel-with-ebpf/
  6. 终端里玩蜘蛛纸牌 https://github.com/chrisbouchard/klondike-rs
  7. Rust 的 coverage 工具 https://github.com/mozilla/grcov
  8. 在 Menu Bar 或者 Touch Bar 控制 AirPods Pro 模式 https://github.com/insidegui/NoiseBuddy
  9. Demangle Rust 符号的工具 https://github.com/luser/rustfilt

每周分享第 49 期

  1. libuv wrapper in C++ https://github.com/skypjack/uvw

  2. Visual Studio Online https://visualstudio.microsoft.com/zh-hans/services/visual-studio-online/

  3. OpenSSH 的 U2F 支持 https://readhacker.news/s/4carE

  4. Rust 1.39 Rust 1.39 Released With Async-Await Support, Attributes On Function Parameters

  5. Windows 也在用 Rust https://msrc-blog.microsoft.com/2019/11/07/using-rust-in-windows/

  6. 用 Chrome Dev Tools 调试 Rust https://twitter.com/ChromeDevTools/status/1192803818024710145

  7. C++20 的新 Thread 类型 https://medium.com/@vgasparyan1995/a-new-thread-in-c-20-jthread-ebd121ae8906

每周分享第 48 期

  1. 一个特殊的用于显示数字的字体 https://blog.janestreet.com/commas-in-big-numbers-everywhere/
  2. Intel 的 SPMD 编译器 https://ispc.github.io/
  3. 基于 Scala 的 notebook https://polynote.org/
  4. 解析登机牌信息 https://github.com/georgesmith46/bcbp
  5. 常用的 React Hooks 库 https://github.com/streamich/react-use
  6. jwt 工具 https://github.com/mike-engel/jwt-cli
  7. 用过程宏实现的 delegation in Rust https://github.com/chancancode/rust-delegate

每周分享第 47 期

  1. CLion 完善了 Rust 调试支持 https://blog.jetbrains.com/clion/2019/10/debugging-rust-code-in-clion/
  2. Nginx HTTP3 的 docker 镜像 https://github.com/RanadeepPolavarapu/docker-nginx-http3
  3. 手算 Ed25519 https://dang.fan/zh-Hans/posts/25519
  4. Rust 的 QuickCheck https://github.com/BurntSushi/quickcheck
  5. Rust 另一个类似 QuickCheck 的测试框架 https://github.com/AltSysrq/proptest
  6. Cookie 策略要改了 https://readhacker.news/s/4bvGG

每周分享第 46 期

  1. LibC++ 正式支持 WASI https://releases.llvm.org/9.0.0/projects/libcxx/docs/ReleaseNotes.html
  2. 从文本反推 regex https://github.com/pemistahl/grex
  3. KDE 5.17 发布 https://www.omgubuntu.co.uk/2019/10/kde-plasma-5-17-features
  4. IDA 7.4 发布 支持 Py3 https://www.hex-rays.com/products/ida/7.4/index.shtml
  5. 新的 CPU Bug https://www.phoronix.com/scan.php?page=news_item&px=Chrome-Geminilake-Bug
  6. WAST -> WASM in Rust https://docs.rs/wast/

每周分享第 45 期

  1. Android ARM32/64 环境模拟 https://github.com/zhkl0228/unidbg
  2. Calibre 4.0 https://readhacker.news/s/4aukk
  3. Rust 的 gRPC 实现 https://github.com/hyperium/tonic
  4. JAVA API 历史 https://github.com/marchof/java-almanac
  5. Elm 开发 dev server https://github.com/wking-io/elm-live
  6. 另一个静态网站生成器 https://github.com/getzola/zola
  7. Catalina 发布
  8. Notarization 的相关情况 https://eclecticlight.co/2019/06/07/notarization-in-mojave-and-catalina/ https://eclecticlight.co/2019/05/31/can-you-tell-whether-code-has-been-notarized/
  9. 椭圆曲线加密算法 https://fangpenlin.com/posts/2019/10/07/elliptic-curve-cryptography-explained/
  10. Travis CI 添加 ARM 支持 https://blog.travis-ci.com/2019-10-07-multi-cpu-architecture-support
  11. CD 上的结构 https://readhacker.news/s/4aDHB
  12. 在线 TAC 的虚拟机 https://jia.je/online_tac_vm/
  13. 在线 Decaf 编译和运行 https://jia.je/online_decaf/

每周分享第 44 期

  1. Modern Script Loading https://jasonformat.com/modern-script-loading/

  2. 如何实现 closure http://craftinginterpreters.com/closures.html

  3. 加速 uniform_int_distribution 实现 https://lemire.me/blog/2019/09/28/doubling-the-speed-of-stduniform_int_distribution-in-the-gnu-c-library/

  4. 在 FPGA 上运行 Rocket Chip 教程 https://github.com/cnrv/fpga-rocket-chip

  5. Xilinx Bitstream 逆向 https://prjxray.readthedocs.io/en/latest/

  6. JVM 利用 SIGSEGV 进行 null 检测 https://jcdav.is/2015/10/06/SIGSEGV-as-control-flow/

  7. Async/Await 进入 Rust Beta https://blog.rust-lang.org/2019/09/30/Async-await-hits-beta.html

  8. 在 Rust 里实现 Plugin http://adventures.michaelfbryan.com/posts/plugins-in-rust/

每周分享第 43 期

  1. Async in C https://github.com/naasking/async.h
  2. Mozilla 的 QUIC 实现 https://github.com/mozilla/neqo/
  3. 在 PCI 上做的攻击 https://github.com/ufrisk/pcileech
  4. 对 X 的原理介绍 https://magcius.github.io/xplain/article/index.html
  5. Ethernet 物理层的介绍 https://www.analog.com/media/en/technical-documentation/application-notes/EE-269.pdf
  6. Overleaf 更新了 TeX Live 版本 https://www.overleaf.com/blog/tex-live-upgrade-september-2019
  7. 下一代 proc macro?https://github.com/alexcrichton/proc-macro2
  8. iOS 13 API 变化 https://nshipster.com/ios-13/
  9. iOS 13.1.1 发布
  10. Rust 编译期 HashMap https://github.com/sfackler/rust-phf
  11. V8 加入顶层 Await 支持 https://chromium.googlesource.com/v8/v8.git/+/0ceee9ad28c21bc4971fb237cf87eb742fc787b8%5E%21/
  12. ASCII 码表的一种理解 https://garbagecollected.org/2017/01/31/four-column-ascii/
  13. Cloudflare 启用 HTTP/3 https://blog.cloudflare.com/http3-the-past-present-and-future/
  14. ZFS 发布 0.8.2 https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.8.2

每周分享第 42 期

  1. Dart 2.5 发布
  2. Rust USB device 库 https://github.com/mvirkkunen/usb-device
  3. 同步视频的 timecode https://github.com/cnbeining/autotimecode
  4. xv6 今年换到了 riscv https://github.com/mit-pdos/xv6-riscv-fall19
  5. pdf 文本搜索 https://pdfgrep.org/
  6. iOS 13 正式版发布
  7. exFAT 驱动进入 Linux 5.4 Microsoft exFAT File-System Mailed In For Linux 5.4 Along With Promoted EROFS & Greybus
  8. Bash 详细教程 https://github.com/dylanaraps/pure-bash-bible
  9. Rust 编译到 iOS bitcode https://github.com/getditto/rust-bitcode
  10. JS 运行时间 in V8 https://v8.dev/blog/cost-of-javascript-2019#json
  11. USB3.0 PIPE 接口实现 https://github.com/enjoy-digital/usb3_pipe
  12. LLVM 9.0 发布 https://lists.llvm.org/pipermail/llvm-dev/2019-September/135304.html
  13. Safari 13.0 发布
  14. Rust 模板引擎 https://github.com/botika/yarte
  15. systemd 开始掌握 home 目录 https://www.phoronix.com/scan.php?page=news_item&px=systemd-homed
  16. 命令行的 cheatsheet 工具 https://github.com/denisidoro/navi

每周分享第 41 期

  1. Wget2 1.99.2 beta 发布 https://lists.gnu.org/archive/html/info-gnu/2019-09/msg00001.html
  2. 独立的 printf 实现 https://github.com/mpaland/printf
  3. Unicode 字符串长度统计 https://hsivonen.fi/string-length/
  4. C 类型推断 https://github.com/ltcmelo/psychec#generic-programming
  5. Clang 9.0 支持 Linux 内核编译 The New Features Of LLVM 9.0 & Clang 9.0 - Includes Building The Linux x86_64 Kernel
  6. 可控制的 USB 设备 https://github.com/usb-tools/Facedancer
  7. USB 监听器 https://github.com/openvizsla/ov_ftdi
  8. 修复一个截断的视频 https://github.com/ponchio/untrunc

每周分享第 40 期

  1. TeX Typesetting Game https://texnique.xyz/
  2. Writing Linux Kernel Module in Rust https://github.com/fishinabarrel/linux-kernel-module-rust
  3. Sipeed Longan Nano RISC-V 开发板 https://readhacker.news/s/48EBG
  4. Systemd 加载 BPF 防火墙 https://kailueke.gitlab.io/systemd-bpf-firewall-loader/
  5. 方舟编译器 https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler.git
  6. XLOOKUP 函数 https://techcommunity.microsoft.com/t5/Excel-Blog/Announcing-XLOOKUP/ba-p/811376
  7. SystemVerilog to Verilog 转译 https://github.com/zachjs/sv2v
  8. USB 4.0 发布 http://www.phoronix.com/scan.php?page=news_item&px=USB-4.0-Specification-Published
  9. Android 10 发布 http://www.phoronix.com/scan.php?page=news_item&px=Android-10-Released
  10. iOS 13.1 beta 2 发布
  11. 对 iOS 设备抓包 http://blog.imaou.com/opensource/2014/12/14/pcapd_diagnostic_packet_capture.html
  12. Google 的差分隐私库 https://developers.googleblog.com/2019/09/enabling-developers-and-organizations.html
  13. Apple Music 第三方 App https://github.com/Musish/Musish

每周分享第 39 期

  1. 另一个 Pattern Matching in C++ 库 https://github.com/mpark/patterns
  2. Rust 编写的一个 shell http://www.jonathanturner.org/2019/08/introducing-nushell.html
  3. Vim 的游戏教程 https://readhacker.news/s/48nbJ
  4. 在 throw 的时候同时抓取 SO 信息 https://github.com/shobrook/rebound/
  5. 颜色生成工具 https://github.com/sharkdp/pastel
  6. 转换 Escape Code 到 HTML https://github.com/theZiz/aha
  7. iOS 13.1 beta 发布
  8. 苹果特别活动定于 9.11 日
  9. exFAT 规范发布 http://www.phoronix.com/scan.php?page=news_item&px=Microsoft-exFAT-Specification
  10. 可视化的 5 阶段流水线 RISC-V 模拟器 https://github.com/mortbopet/Ripes

每周分享第 38 期

  1. 针对部分 HTTP/2 实现的新漏洞 https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-002.md
  2. 只读 tmux 加魔改 https://brianmckenna.org/blog/guest_tmux
  3. Rust 编译期断言 https://github.com/nvzqz/static-assertions-rs
  4. Rust 运行时解压版的 include_bytes https://github.com/SOF3/include-flate
  5. 把 Rust 标准库进行 async 化的尝试 https://async.rs/blog/announcing-async-std/#
  6. git 添加 switch/restore 命令 https://github.blog/2019-08-16-highlights-from-git-2-23/
  7. Flash Player in Rust https://github.com/ruffle-rs/ruffle
  8. Matplotlib Cheatsheet https://github.com/rougier/matplotlib-cheatsheet
  9. macOS Catalina 10.15 beta 6 发布
  10. Flash Decompiler https://github.com/jindrapetrik/jpexs-decompiler
  11. Yubikey 发布 5Ci https://readhacker.news/s/489yu
  12. IBM 开放 Power 指令集 https://readhacker.news/s/48aiH
  13. iOS 13 beta 8 发布
  14. GitHub 支持 WebAuthn https://readhacker.news/s/48dXM
  15. 编译器优化带来的安全漏洞 https://readhacker.news/s/48dke
  16. obscure C features https://multun.net/obscure-c-features.html

每周分享第 37 期

  1. Rust netlink 库 https://github.com/jbaublitz/neli
  2. Rust 处理 signal 进行配置的 reload https://vorner.github.io/2019/08/11/runtime-configuration-reloading.html
  3. macOS 添加了 VirtIO 驱动支持 https://passthroughpo.st/mac-os-adds-early-support-for-virtio-qemu/
  4. 一个 GNU readline 替代品 https://github.com/AmokHuginnsson/replxx
  5. Rust 1.37.0 发布 https://blog.rust-lang.org/2019/08/15/Rust-1.37.0.html
  6. iOS 13 DB7 (17A5565b) 发布

每周分享第 36 期

  1. QuickJS + libuv https://github.com/saghul/qjsuv
  2. Rust 实现的 Ruby https://github.com/artichoke/artichoke
  3. 类似 JSON 的数据格式 https://cbor.io/
  4. rls 二代目 https://github.com/rust-analyzer/rust-analyzer
  5. 给 MacBook 添加触屏支持 https://github.com/bijection/sistine
  6. 用于 MBP with T2 的 Linux patch https://github.com/aunali1/linux-mbp-arch
  7. 在 tmux 中使用 Touch ID 认证 sudo https://blog.birkhoff.me/make-sudo-authenticate-with-touch-id-in-a-tmux/
  8. iOS 13 beta 6 发布
  9. Linux Journal 结束了它的使命
  10. ssh 8.0 Add support for ECDSA keys in PKCS#11 tokens