| 电脑 |
浏览器分屏/拆分窗口:右键点链接选“在右侧视图中打开链接”。
实时字幕+翻译: 设置 -> 无障碍(chrome://settings/accessibility)。
管道文本行匹配: echo $HOME | grep "e" 在 Windows 则 echo $HOME | Select-String "e"
压缩/解压缩: tar -c x.tar 等同 --create; tar -x -f x.tar 等同 --extract, --get
zip -r x.zip dir/; unzip x.zip; 只在 macOS 有内置,故首选 tar。
播放器:树莓派用 ffplay x.mp3;macOS 用 afplay *.mp3。
购买:编程用键盘要带翻页键 Page Up、Page Down。
Chrome 登陆 Google 账号后,才能对密码框自动填充。
QQ 邮箱弹框不允许复制链接,可鼠标拖拽至其他浏览器即可。
Windows 系统重装: 系统 -> 恢复 -> 重置此电脑 -> 删除所有内容(不会动系统盘外数据)-> 本地重新安装 -> 确定
默认行为即“仅删除 Windows 驱动器中的文件”。 |
提升日常效率 |
| 3C |
手机:手机充电线不能拖地,避免插头内藏污纳垢。 |
|
| 网络 |
代理:日常用 Xray,类库客户端(GCP 等) 用 HTTP CONNECT Proxy;非 HTTP 协议(SSH 等)方走 SOCKS5。
服务:
短链接 - 首选 https://picsee.io 避坑 reurl.cc(曾失效)。
家宽:DHCPv6-PD(Prefix Delegation)能尽量保持“IPv6”地址固定。
OpenWRT 将接口中“IPv6-PD”的分配值记下来,写死到 option reqprefix '2001:db8:12:34::1/60'
同时勾上「Do not send a Release when restarting」
延迟:
网络测试 - 重点看大陆国际出口节点之后的时延,延迟检测尽量避开晚20点至24点高峰期;最好也测下回程路由。
物理时延 - 北京至广州 ≈ 30ms;中日海底光缆 ≈ 30ms;中国至美西 ≈ 150ms;海缆上岸后的延迟也得加上。
测速中间节点延迟高可能是为了优先转发而刻意晚回,以最后一跳延迟为准;每一跳时延均是从测试网卡出发的。
亲测 - 河南联通家宽至美西费利蒙 ≈ 210ms,阿里云去程 ≈ 170ms;
至东京俩机房均 ≈ 70ms,阿里云去程 ≈ 160ms;东京至美西 ≈ 100ms;
至 GCP 美西俄勒冈 ≈ 235ms(高峰达330ms),阿里云去程 ≈ 205ms。
别人甲骨文云东京服务器 mtr --report 888201.xyz -4 |
|
| 编程 |
概念分类
命名约定
- 路径首选全小写加横杠分隔(利于终端智能感知/文档则用首字母大写 Capitalize):my-project。
- 项目描述放 README.md 或 build.gradle.kts,至少写下 API 主调方(Caller)和被调方(Callee)。
- 术语 - 通配符(Wildcard Character)不能叫“统配符”;0.0.0.0、:: 均叫通配 IP 或全零地址。
OOP 面向对象
- 海量对象的轻量化、连续化:
- Java 对象头紧凑化 -XX:+UseCompactObjectHeaders
- Java 用 JEP 401 的 value class,需特供版 JDK 23+ 并启用 --enable-preview;C# 用 readonly struct。
- CDI - @Singleton 单例比自己实现(volatile + 双重检查锁 + synchronized)省个 getInstance();
@ApplicationScoped 可懒加载; @Observes 事件、@RequestScoped+@Inject。
IDE
编程语言
基本功 - OOP。
杀手锏 - 编程语言专有特性和能力。
可观察:
Java - 注意:必须指定主机名且不能通配 ❌ -Djava.rmi.server.hostname=0.0.0.0
动态启停(jcmd 无参列出 PID):
jcmd 1 ManagementAgent.start jmxremote.port=12345 jmxremote.rmi.port=12345 jmxremote.authenticate=false jmxremote.ssl=false
未支持的需程序加参 -Djava.rmi.server.hostname=example.com
或程序加参:
-Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.rmi.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=example.com"
开启后,可用 Swing 工具 jconsole 连上查看 MBean:
example.com:12345;注册 MBean:ManagementFactory.getPlatformMBeanServer().registerMBean(myMBean, new ObjectName("test:type=User"));
jcmd 1 ManagementAgent.status 用完就关(防止外人操作) jcmd 1 ManagementAgent.stop 其他 ManagementAgent.start_local
缓存/CDN:
Java - Caffeine、落盘用 Ehcache,自建 CDN 用 httpclient5-cache。
GC 省内存:
Java - 加参 -XX:+UseSerialGC 能用 STW 停顿换取少占内存。
C# - <ServerGarbageCollection>false</ServerGarbageCollection>
安全:
Java 27+ 将“TLS 1.3 协商密钥”默认算法改为了“后量子混合密钥交换(X25519MLKEM768)”,
.NET 则 OS 决定,应对: 先收集,后解密(HNDL/Harvest Now, Decrypt Later)。
注意 - X25519MLKEM768 不直接作用于待加密内容,而是先基于对外公开的公钥来生成一个 AES 密钥和一个“Encapsulated Key”,
然后用该密钥对内容进行加密,最终将“Encapsulated Key”和加密数据交给对应的 X25519MLKEM768 私钥来解密。
.NET 10+ - 算法类 MLKEM.GenerateKey(MLKEMAlgorithm.MLKEM768);
Java 24+ - 算法类 KEM.getInstance("ML-KEM");
字段级延迟初始化:
Java 27+ - static final LazyConstant<Obj> obj = LazyConstant.of(Obj::new);
C# - private static readonly Lazy<string> _config = new Lazy<string>(() => Method());
软件工程
|
节省内存 |
| AI |
轻量用(Gemini 问答归属 Gen AI 而非总目 Agent Platform[原名 Vertex AI]) - https://gemini.google.com
深度用 - 离线大模型+Tool Calling |
|
| 服务器 |
注意 - 国内 IPv6 按量计费,应经常检查免费额度,且尽量走 IPv4 传出数据。
可观察性(Observability/O11y)- 自写、Netdata;数据存储首选 VictoriaMetrics(比 Prometheus 省内存)。
耗时多也应告警,曾在 Web 服务器上 ping 数据库半数丢包,导致页面请求耗时达20秒;页面(详情页等)进入后计时,响应前判定。
防火墙控制 IPv4 和 IPv6 的规则是分开的,前者填 0.0.0.0/0,而后者则填 ::/0。
curl -4 ifconfig.me
对象存储客户端 - Cyberduck(Java/S3-like/more搜ap-tokyo-1)、或 WinSCP。
亲测“Path style”可用,Virtual-hosted 方式无法列出桶内项。
OCI Object Storage Endpoint - https://[真实值].compat.objectstorage.ap-tokyo-1.oci.customer-oci.com
Identity & Security -> Customer Secret Keys: s3-like(显示用/非key名)。
云服务适用 - 云函数(JVM 非 AOT)跑图片、音视频转码。
云实例自建 - AOT 网站,跑 FFmpeg。
VPN - 丢包率(Packet Loss)比延迟(Latency)更重要;将已知 VPS 服务器 IP 都添加为直连。
VPS - 海外带宽 1Gbps(除8=125MB/s) 起步。
网络 - 网络若延迟,要么中转反代、要么上 BBR 或 Hysteria 2(Brutal能提速但需客户端)。
测线路 - Linux 装 mtr-tiny 执行 mtr --report g.cn,Windows 装 WinMTR。
重点看 Avg 列,两跳之间若差值过大,说明后者就是元凶。
阿里云服务器 mtr 至东京 Oracle 云服务器,竟然188ms,联通家宽过去则只需110ms。
开启 BBR + fq 队列:
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
[生效否] sysctl net.ipv4.tcp_congestion_control
文件格式 - 图片首选无损优于 *.avif 的 *.jxl;音频首选 *.opus(继任者*.oac/aomedia.org);视频首选 *.webm(存在 fWebM 切片版)。
音频达到 16bit 44kHz 就已覆盖人耳极限了,后期剪辑才可能用到 24bit。
播放列表用 *.xspf(无时长) 或 *.m3u8、*.mpd,前俩都支持无容器音频。
将切片喂给 MSE 相关库 - dash.js 库和可定制 UI 的 Shaka Player 库,MSE 用 *.webm 容器而非 *.ogg、*.mp3。
SEO - robots.txt 之外还应自链接下全站页面至“孤岛页(Orphan Page)”。
每个页面最多存在一个 <h1>h1</h1> 标签,至少一个引荐链接及 sitemap.xml。
为了使动态网站静态化时,不从无斜杠路径跳转,故统一用斜杠结尾;API 路径则不带。 |
|
| 经验 |
长连接 - SSE open 事件触发后,提问 API 不负责解除执行按钮的置灰状态,而应在 SSE onmessage 中根据 "isFinish":true 决定, 最后一次响应累计 1 分钟也解除置灰。 |
|
| 外语 |
Developer 缩写为 Dev;Infrastructure 缩写 Infra;Request/Response 缩写 ReqResp。 Object storage - 区别于文件存储。 |
|