bits 0x55 - CW 9 - 18, 2025 (WIP)
It has been a long time. But I finally got my sanity back (spelt: thesis handed in). Anyways…
§§§ AI create more X-Y problems
So I see people talk on social media :
“I want to remove all blank lines form a text document, AI tools {A,B} don’t work, C works, wow amazing, here is how.”
Honestly if you spare one minute searching the internet:
Search for
“delete empty lines vim”
See? Instead of these you decide to paste your whole document to a chatbot and let it do it for you. How do you know it only removes the black lines?
So I say it again: AI creates more X-Y problems.
● You have a solid problem
● instead of solving the problem
● you go after “how to prompt the AI to do it for me”.
§§§ shitphone experience
I’m traveling. However my phone has a failing battery and I have no intention to pick a new one as my main phone—the old one can be revived with a new battery. I need some safety for my travel … so I bought a cheap cheap backup phone for 65 euros brand new. To be specific it is a Redmi A3.
I have literally zero expectation from that thing. As long as it connects to the internet I’m happy. But setting it up is absofuckinglutely painful.
It asks you a bunch of questions, as for a google login, as you to agree to tons of stuffs. Fine, I won’t give you sensitive information anyways.
Then it proceeds to “set up your phone”, which is, installing more than 20 of APPs, including shit games, shit social media, shit streaming service. None I’ve ever asked for, or given the option to opt-in/out. And this process takes like an HOUR. Not including me removing those spyware.
I guess installing those sponsored APPs is how they make this phone cheap.
§§§ Good Reads
An Attempt to Catch Up with JIT Compilers—The False Lead of Optimizing Inline Caches. (Poirier et. al.)
https://arxiv.org/pdf/2502.20547
Contemp Culture - aurynn shaw
Systemd as tragedy
Does X cause Y? An in-depth evidence review
Modern-Day Oracles or Bullshit Machines?
hmmm. perhaps a good one(s) for the non-techies to de-mystify the AI superstition. However it reads way too subjective and I definitely hate the format: it’s like an apple product page. Can’t you just give me a text wall?
§§§ num num num
I have accumulated quite a few to-reads at @bookmarks. I see interesting stuffs floating around that I don’t have the time to read. Now that I have some time I’ll spend some time chewing some of them.
● I have some bookmarks on “system tracing”, especially in the linux eco-system. I’m making a standalone for this
§§§ (what is this) git practice
I’m thinking about adapting a new git workflow. Namely bare-repo + worktree
for a non-ad-hoc work (e.g.
1. have a local clone into a bare repo (under
2. for a master/feature/bugfix, check out the branch into its own worktree (eng. under
3. delete the worktree once the branch is commited
§§§ Learns
§§§ Fun
§§§ MISC
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
It has been a long time. But I finally got my sanity back (spelt: thesis handed in). Anyways…
§§§ AI create more X-Y problems
So I see people talk on social media :
“I want to remove all blank lines form a text document, AI tools {A,B} don’t work, C works, wow amazing, here is how.”
Honestly if you spare one minute searching the internet:
Search for
how to remove blank lines with [editor X], and you will immediately get a straight-forward solution. (mind you, these are literally the first entry from google search.“delete empty lines vim”
:g/^$/d“delete empty lines vscode”
Ctrl-H -> use regular expressions -> ^$\n -> replace all“delete empty lines emacs”M-x flush-lines RET ^$ RET“delete empty lines notepad++”
edit -> line operations -> remove empty lines…
See? Instead of these you decide to paste your whole document to a chatbot and let it do it for you. How do you know it only removes the black lines?
So I say it again: AI creates more X-Y problems.
● You have a solid problem
● instead of solving the problem
● you go after “how to prompt the AI to do it for me”.
§§§ shitphone experience
I’m traveling. However my phone has a failing battery and I have no intention to pick a new one as my main phone—the old one can be revived with a new battery. I need some safety for my travel … so I bought a cheap cheap backup phone for 65 euros brand new. To be specific it is a Redmi A3.
I have literally zero expectation from that thing. As long as it connects to the internet I’m happy. But setting it up is absofuckinglutely painful.
It asks you a bunch of questions, as for a google login, as you to agree to tons of stuffs. Fine, I won’t give you sensitive information anyways.
Then it proceeds to “set up your phone”, which is, installing more than 20 of APPs, including shit games, shit social media, shit streaming service. None I’ve ever asked for, or given the option to opt-in/out. And this process takes like an HOUR. Not including me removing those spyware.
I guess installing those sponsored APPs is how they make this phone cheap.
§§§ Good Reads
An Attempt to Catch Up with JIT Compilers—The False Lead of Optimizing Inline Caches. (Poirier et. al.)
https://arxiv.org/pdf/2502.20547
Contemp Culture - aurynn shaw
Systemd as tragedy
Does X cause Y? An in-depth evidence review
Modern-Day Oracles or Bullshit Machines?
hmmm. perhaps a good one(s) for the non-techies to de-mystify the AI superstition. However it reads way too subjective and I definitely hate the format: it’s like an apple product page. Can’t you just give me a text wall?
§§§ num num num
I have accumulated quite a few to-reads at @bookmarks. I see interesting stuffs floating around that I don’t have the time to read. Now that I have some time I’ll spend some time chewing some of them.
● I have some bookmarks on “system tracing”, especially in the linux eco-system. I’m making a standalone for this
§§§ (what is this) git practice
I’m thinking about adapting a new git workflow. Namely bare-repo + worktree
for a non-ad-hoc work (e.g.
nya)1. have a local clone into a bare repo (under
~/repos/nya)2. for a master/feature/bugfix, check out the branch into its own worktree (eng. under
~/projs/nya/{dev,feat1,fix_xyz})3. delete the worktree once the branch is commited
~/repos/ ~/proj/
|_ repo1 ------+--> |_ repo1_bugfix
| +--> |_ repo1_feature2
| |
|_ repo2 (stale) |
| |
|_ repo3 ---------> |_ repo3_dev
§§§ Learns
§§§ Fun
§§§ MISC
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
python package management and virtual env
I’m always scared away by python dependecy management. I’m always pissed off when I’m trying to install a pip package only to conflict with the system managed ones. Now I fainally take the chance to take a look at venv.
§ How does python (pip) manage packages?
AW: they fuck you.
§ How does linux distro manage python packages?
AW: they fuck you.
§ the venv (python 3.3+)
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
I’m always scared away by python dependecy management. I’m always pissed off when I’m trying to install a pip package only to conflict with the system managed ones. Now I fainally take the chance to take a look at venv.
§ How does python (pip) manage packages?
AW: they fuck you.
§ How does linux distro manage python packages?
AW: they fuck you.
§ the venv (python 3.3+)
# create
$ python -m venv <name> # python 3.3
$ virtualenv <name> # python 3
# activate
$ source envname/bin/activate
# deactive
$ deactivate # (while in virtenv)
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
glossary
BACK TO INDEX
polymeraseAny of various enzymes that catalyze the formation of polymers of DNA or RNA using an existing strand of RNA or DNA respectively as a template.
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
BACK TO INDEX
polymeraseAny of various enzymes that catalyze the formation of polymers of DNA or RNA using an existing strand of RNA or DNA respectively as a template.
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
bioshocks (pun intended!)
https://www.genome.gov/about-genomics/fact-sheets/DNA-Sequencing-Fact-Sheet
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
https://www.genome.gov/about-genomics/fact-sheets/DNA-Sequencing-Fact-Sheet
One new sequencing technology involves watching DNA polymerase molecules as they copy DNA - the same molecules that make new copies of DNA in our cells - with a very fast movie camera and microscope […]Wait ….. what…. movie camera????
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
read
volatile page for stuffs I read. With some takeaways and comments.
DNA sequencing fact sheet
this is not helping at all.
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
volatile page for stuffs I read. With some takeaways and comments.
DNA sequencing fact sheet
this is not helping at all.
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
the DWARF Debugging Information Format (V5)
This post is a hash of the fucking manual: https://dwarfstd.org/doc/DWARF5.pdf
----------------------
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
This post is a hash of the fucking manual: https://dwarfstd.org/doc/DWARF5.pdf
----------------------
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
pleroma maintainece notes
§ step 0:
● always check the release pages for breaking changes.
● make sure you have proper backups
● use e.g. tmux so that your session is not interrupted by internet conditions
Important docs
● archwiki: upgrading postgresql
● pleroma doc: updating your instance
● pleroma doc: Backup/Restore/Move/Remove your instance
● pleroma doc: database maintenance tasks
§ backups
[+] click to expand a sample pleroma backup script
assuming pleroma is installed from source
§ upgrade postgresql (+migration)
You need to manually migrate the postgresql database when updating the postgres by major version, e.g. from 14.x to 15.y; You don’t have to do this when updating from e.g. 14.x to 14.y
Supposing upgrading from 14.x to 15.y, you need to make sure the 14.x postgresql binary is still available when doing the migration.
archlinux provides the postgresql-old-upgrade package which provides the postgresql binary 1 version behind the main repo postgresql.
My notes on upgrading pg
Here are some quick notes, but make sure you know what you are doing.
● make sure you have a proper backup
● stop postgresql service:
● update the postgresql binary and make sure you keep the old binary (see above)
● run the following:
for archlinux
optionally, to avoid suprises, do not update postgresql packages.
warning: postgresql: ignoring package upgrade (16.3-4 => 17.4-1) │ warning: postgresql-libs: ignoring package upgrade (16.3-4 => 17.4-1) │ warning: postgresql-old-upgrade: ignoring package upgrade (15.7-3 => 16.6-2)
§ install (update) pleroma from source
https://docs-develop.pleroma.social/backend/administration/updating/
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
§ step 0:
● always check the release pages for breaking changes.
● make sure you have proper backups
● use e.g. tmux so that your session is not interrupted by internet conditions
Important docs
● archwiki: upgrading postgresql
● pleroma doc: updating your instance
● pleroma doc: Backup/Restore/Move/Remove your instance
● pleroma doc: database maintenance tasks
§ backups
[+] click to expand a sample pleroma backup script
assuming pleroma is installed from source
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
!!! do not run scripts from internet without knowing what it does !!!
# CHANGE THIS TO YOUR OWN CONFIG
PLEROMA_DB=pleroma # name of the database
BACKUP_DIR=/backups # path to backup storage
PLEROMA_INSTALL=/opt/pleroma # path to pleroma installation
PLEROMA_UPLOADS=/srv/pleroma # optionally you can backup pleroma statics (FEs, emojis, uploads etc.)
POSTGRES_USER=postgres # system user for postgresql,
# by default it would be "postgres"
# you may want a timestamp for automated backups
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
# use a temporary dir to collect all the data to create the final archive.
DUMP_DIR=/tmp/pleroma_dump/$TIMESTAMP
mkdir -p $DUMP_DIR
# dump the database(s)
sudo pg_dump --username=$POSTGRES_USER -d $PLEROMA_DB --format=custom -f $DUMP_DIR/postgres.dump
# you may want to check the return code for the previous command.
# backup important pleroma configs (optionally you could backup the whole
# pleroma production installation (e.g. /opt/pleroma)
cp $PLEROMA_INSTALL/config/prod.secret.exs $DUMP_DIR/prod.secret.exs
cp $PLEROMA_INSTALL/config/setup_db.psql $DUMP_DIR/setup_db.psql
# create an archive
tar -czvf $BACKUP_DIR/$TIMESTAMP.tar.gz -C $DUMP_DIR . -C $PLEROMA_UPLOADS . >> /dev/null
# check results and remove the temporary dir
if [ $? -eq 0 ]; then
echo [$TIMESTAMP] archive created
rm -rf $DUMP_DIR
fi
§ upgrade postgresql (+migration)
You need to manually migrate the postgresql database when updating the postgres by major version, e.g. from 14.x to 15.y; You don’t have to do this when updating from e.g. 14.x to 14.y
Supposing upgrading from 14.x to 15.y, you need to make sure the 14.x postgresql binary is still available when doing the migration.
archlinux provides the postgresql-old-upgrade package which provides the postgresql binary 1 version behind the main repo postgresql.
My notes on upgrading pg
Here are some quick notes, but make sure you know what you are doing.
● make sure you have a proper backup
● stop postgresql service:
systemctl stop postgresql● update the postgresql binary and make sure you keep the old binary (see above)
● run the following:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# prepare dirs for live data migration
mv /var/lib/postgres/data /var/lib/postgres/olddata
mkdir /var/lib/postgres/data /var/lib/postgres/tmp
chown postgres:postgres /var/lib/postgres/data /var/lib/postgres/tmp
# switch to postgres user
sudo -iu postgres
# go to tmp dir and perform migration
cd /var/lib/postgres/tmp
# initialize the "new" DB. You'll need the parameters that you used to
# intialize the postgresql db for the first time. (if you follow pleroma
# installation guide this should be empty.)
initdb -D /var/lib/postgres/data --PARAMETERS_USED_TO_INIT_DB
# perform migration:
pg_upgrade -b /opt/pgsql-PG_VERSION/bin -B /usr/bin -d /var/lib/postgres/olddata -D /var/lib/postgres/data
# restart postgresql
for archlinux
optionally, to avoid suprises, do not update postgresql packages.
warning: postgresql: ignoring package upgrade (16.3-4 => 17.4-1) │ warning: postgresql-libs: ignoring package upgrade (16.3-4 => 17.4-1) │ warning: postgresql-old-upgrade: ignoring package upgrade (15.7-3 => 16.6-2)
§ install (update) pleroma from source
https://docs-develop.pleroma.social/backend/administration/updating/
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
frequenctly used
Debian Package Tracker
https://tracker.debian.org/
git notes
https://sys.shrik3.com/tooling/git/git.html
gpg notes
https://sys.shrik3.com/tooling/gpg/commands.html
Debian wiki: Using OpenPGP subkeys in Debian development
https://wiki.debian.org/Subkeys
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
Debian Package Tracker
https://tracker.debian.org/
git notes
https://sys.shrik3.com/tooling/git/git.html
gpg notes
https://sys.shrik3.com/tooling/gpg/commands.html
Debian wiki: Using OpenPGP subkeys in Debian development
https://wiki.debian.org/Subkeys
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
mikrokernel - intro
return to index
motivation of microkernel (vs. monolith)
● isolation of system (kernel) components, reduce complicity, security and resilience
● small TCB
● user-level system components: flexibility and extensibility
§ acronyms and things
● L4RE: L4 Runtime Environment
● UTCB : user-level control block
● recursive address spaces, flexpage
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
return to index
motivation of microkernel (vs. monolith)
● isolation of system (kernel) components, reduce complicity, security and resilience
● small TCB
● user-level system components: flexibility and extensibility
§ acronyms and things
● L4RE: L4 Runtime Environment
● UTCB : user-level control block
● recursive address spaces, flexpage
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
ECC memory and bitflip handling
MCE (Machine Check Exception)
Hardware Specs
● Intel SDM Volume 3, Chapter 15 Machine-Check Architecture
APEI
EINJ
kernel
Misc
● Rowhammer, https://en.wikipedia.org/wiki/Row_hammer
----------------------
Glossary
● MCE : Machine Check Exception
● CMCI : Corrected Machine-Check Interrupt
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
MCE (Machine Check Exception)
Hardware Specs
● Intel SDM Volume 3, Chapter 15 Machine-Check Architecture
APEI
EINJ
kernel
Misc
● Rowhammer, https://en.wikipedia.org/wiki/Row_hammer
----------------------
Glossary
● MCE : Machine Check Exception
● CMCI : Corrected Machine-Check Interrupt
via home - SHRIK3 on SHRIK3 (author: i@shrik3.com (SHRIK3))
苹果为傲慢付出了代价 - 肘子的 Swift 周报 #82
几天前,Epic Games 与 Apple 案迎来了一项重要裁决。法官认定 Apple 故意违反了法院于 2021 年发布的反垄断永久禁令。法院不仅批准了 Epic 提交的执行禁令动议,还罕见地将 Apple 的行为移交给美国司法部加州北区检察官,以调查其是否构成刑事藐视法庭。
Subscribe English RSS
阅读全文
via 肘子的 Swift 记事本 | Fatbobman's Blog
几天前,Epic Games 与 Apple 案迎来了一项重要裁决。法官认定 Apple 故意违反了法院于 2021 年发布的反垄断永久禁令。法院不仅批准了 Epic 提交的执行禁令动议,还罕见地将 Apple 的行为移交给美国司法部加州北区检察官,以调查其是否构成刑事藐视法庭。
Subscribe English RSS
阅读全文
via 肘子的 Swift 记事本 | Fatbobman's Blog
Toots 2025 Apr.27 - May.3
Apr.27
● 梦。抽了根烟,没灭好,把大理古城烧了
● 快鱼服饰,又没听过,上次有这个感觉是三福
● 安全与流转
● 编程这个杠杆,会越来越重要
● 图形化界面真的是一段弯路吧
● 所以手起皮是因为干燥啊……
● 我应该往“经纪人”的方向研究研究
Apr.28
● 生活策展/提案,目测四川和上海提及较多
● 信息不对称啊,太严重了吧,都出去走走吧,世界根本不是算法推荐出来的那个样子
● 灰太阳也太好听了
● AI Agentic Browser for Deep Search & Automation | Fellou
● 第一次知道养石头
● 当妈的怎么都那么辛苦
● 边防委办公室=边办
Apr.29
● 分布式能源部署确实难,到底什么时候能普及全球高压电网啊
Apr.30
● hacker.txt - Wayback Machine
● hacker ● (1) Play with something. ● (2) Read the documentation on it. ● (3) Play with it some more. ● (4) Read documentation again. ● (5) Play with it some more. ● (6) Read documentation again. ● (7) Play with it some more. ● (8) Read documentation again. ● (9) Get the idea?
● “There is a problem with this strategy: remotivating yourself in the morning. If the project is one of your choice, that’s usually not a problem. If it’s something you have to do but don’t enjoy, you have to balance the remotivation problem versus the very low productivity of working without sleep.”
● 家里快被被杜毛女的馍占领了,快乐发胖
● 文本大模型后的时代,尤其是deep research开始流行后,经常想起一本书的名字:文字即垃圾
● 是哦,确实是95后朋友结婚的时间……但好像没有几位有临近结婚的样子……
● 或许近两年从饭局上消失的,过两年就结婚了也不说定
● 我还是很厌恶“老婆”这个词,以及习惯使用这个词的人
● 看到份材料,眼熟,一查是稚晖君的公司
● 协和医院骨科有个仉建国,我能不能去攀攀关系
● Digital Experience of St. Peter’s Basilica 3D的好帅
● 错过今年的春游音乐节还挺遗憾的
● 三个广东妹子聊天,说自己粤语说得不好,在北京才敢说2333
● 一致认为湖北女同事说话狠,脏话多hh
● 竟然是去潘家园买手串!好神奇…
● 肌肉男用筋膜刀,nina是会挑的hhhhhh
● 法国姐妹第一次来阳朔瑟瑟发抖! 真好玩,这次是正版了hh
● 北纬47度的真空玉米品牌是飞鹤的
● 啥?孤独摇滚上映?我十分想见山田凉
May.1
● 月季开了
● Bill Withers有点厉害
● 还是片面了,不是为了成功啊,显要啊,而是为了自我实现,贡献社会价值,为小世界的建设出力
● 欸,阳师不就是做知识产权的么,找他聊聊经纪和代理权
● 大公司的逻辑是,我成功骗了一次,就能再骗一次(大数博弈,所以规模、垄断这些制胜秘诀都是基于大人口基数的,一旦人口整体回落,一切都会变样)。小农的逻辑是,骗人不会有活路(民间智慧)
● 各项服务的覆盖均已完成,从无到有已结束,长期考研耐用、质量,存量资产的更新与维护增多,人口增长减速,也逼迫调整模式和政策,公民整体思潮和文化的下一步演变,都必需尽快调整,精细化、积累长期信任,最重要的是解决问题,兑现价值
● 《董小姐掀开了天宫一角》这文章名字起得妙啊,那萦绕不去的西游记的暗线
● “成都的五大先进制造业(电子信息、装备制造、医药健康、新型材料、绿色食品)是产业体系的核心,其中电子信息产业(特别是计算机、通信和其他电子设备制造业,2024年增长8.6%)和医药健康产业(2024年增长3.1%)表现突出。”
● (Gemini)“集体性的苦难经历,可能会沉淀在语言中,形成特定的词汇、表达方式、隐喻和叙事模式,用以铭记、反思或(有时)避讳这些经历。这确实会增加语言表达特定历史文化经验的深度和复杂度。”
May.2
● 把玩文化
● 10块钱的古鲨鱼牙,有点想做成个吊坠
● 十里河天娇文化城,接地气,好玩!
● 东四真的开了一家快鱼,北京奏是大县城
● 六年前在央美毕业展上加的毕业生在上海搬画展了,好棒啊
May.3
● 草,无法直视农药了
● “研究发现:传统酿造的葡萄酒中总计可检出18种农药成分” 对比一下书中提及的“法国是欧洲最大的农药使用国,也是世界第四大使用国,仅次于美国、巴西和日本。” 列举的数字:欧洲一年(2008年)使用22万吨农药,法国就用了8万吨。
● 读our daily poison,不能直视农药(现在普遍以农业科技避嫌)了,对“抛开剂量谈毒性都是耍流氓”这种愚蠢言论也不能直视了,法国(2008年数据)是世界第四大农药使用国,瞬间对葡萄酒也祛魅了,还找了一本讲食品添加剂的书,以及发现还没读寂静的春天
● 爸妈对于反复清洗蔬菜的执念,忽然懂了一些
● (Gemini)“当女性在寻求自身主体性、反思和摆脱传统性别束缚的过程中,确实可能将男性或由男性主导的某些文化规范视为需要解构和超越的他者。这并不一定意味着所有男性都被视为敌人,但确实意味着男性的行为、观念和权力结构成为了女性自我定义和争取权益时的一个重要参照系和批判对象。”
● “我特地打电话问了这家公益组织的负责人,问他觉得这些孩子在这里的经历收获了什么,他和我讲了三件事。第一,常年在野外大自然,觉得人生渺小,会豁达一些。第二,常年在基层工作,不停和人打交道,知道再高大上的目标,实现起来也是非常复杂的,保护环境、动物、物种多样性,核心都是和人打交道。你们将来的工作也是如此,都是和人打交道,比你想象的复杂得多。我从学术界到产业界,最大的感受是:办件事怎么就这么难?推进一件事太不容易了!写论文反而相对可控。第三,公益组织办事,十件事可能八件办不成,常年如此,所以学会了“没有失败”的心态,都是过程。而且在这里学习失败,成本比较低。”(兰小欢)
● “人天生不是天天上班的,天天上班反人性,人类大脑最习惯的是打猎和种地,时忙时闲这种节奏。现代生活的快节奏,大脑压力是很大的。如果你还给自己加压,就很难过了。这种难过可能无法避免,但大家可以给自己建立一个缓冲区。这类型缓冲区里,最重要的可能是社交关系。”(兰小欢)
● “你的做事方式、与人相处的模式,最终会让你活成你本来的样子,不会因某个选择而突变。”(兰小欢)
● 太庙也被发掘成打卡点了啊,天安门那片真是不敢去了
● 吃咸了
● 又看到了本命企鹅的镜头,尸体暖了不少
● 接近真实,可以用任何形式,哪怕只有一次无法复现的触达,抵达过就够了
● 逛了潘家园,除了一些bling bling的和寓意明确的手串外,就没有什么感兴趣的东西了……冲着夜市去,但没有任何发现,不如花鸟鱼虫
● 假心动 vs 真心动
----------------------
CHANGLOG
● 20250505 Arlmy 创建、整理
● 20250505 Arlmy 发布
via 素生
Apr.27
● 梦。抽了根烟,没灭好,把大理古城烧了
● 快鱼服饰,又没听过,上次有这个感觉是三福
● 安全与流转
● 编程这个杠杆,会越来越重要
● 图形化界面真的是一段弯路吧
● 所以手起皮是因为干燥啊……
● 我应该往“经纪人”的方向研究研究
Apr.28
● 生活策展/提案,目测四川和上海提及较多
● 信息不对称啊,太严重了吧,都出去走走吧,世界根本不是算法推荐出来的那个样子
● 灰太阳也太好听了
● AI Agentic Browser for Deep Search & Automation | Fellou
● 第一次知道养石头
● 当妈的怎么都那么辛苦
● 边防委办公室=边办
Apr.29
● 分布式能源部署确实难,到底什么时候能普及全球高压电网啊
Apr.30
● hacker.txt - Wayback Machine
● hacker ● (1) Play with something. ● (2) Read the documentation on it. ● (3) Play with it some more. ● (4) Read documentation again. ● (5) Play with it some more. ● (6) Read documentation again. ● (7) Play with it some more. ● (8) Read documentation again. ● (9) Get the idea?
● “There is a problem with this strategy: remotivating yourself in the morning. If the project is one of your choice, that’s usually not a problem. If it’s something you have to do but don’t enjoy, you have to balance the remotivation problem versus the very low productivity of working without sleep.”
● 家里快被被杜毛女的馍占领了,快乐发胖
● 文本大模型后的时代,尤其是deep research开始流行后,经常想起一本书的名字:文字即垃圾
● 是哦,确实是95后朋友结婚的时间……但好像没有几位有临近结婚的样子……
● 或许近两年从饭局上消失的,过两年就结婚了也不说定
● 我还是很厌恶“老婆”这个词,以及习惯使用这个词的人
● 看到份材料,眼熟,一查是稚晖君的公司
● 协和医院骨科有个仉建国,我能不能去攀攀关系
● Digital Experience of St. Peter’s Basilica 3D的好帅
● 错过今年的春游音乐节还挺遗憾的
● 三个广东妹子聊天,说自己粤语说得不好,在北京才敢说2333
● 一致认为湖北女同事说话狠,脏话多hh
● 竟然是去潘家园买手串!好神奇…
● 肌肉男用筋膜刀,nina是会挑的hhhhhh
● 法国姐妹第一次来阳朔瑟瑟发抖! 真好玩,这次是正版了hh
● 北纬47度的真空玉米品牌是飞鹤的
● 啥?孤独摇滚上映?我十分想见山田凉
May.1
● 月季开了
● Bill Withers有点厉害
● 还是片面了,不是为了成功啊,显要啊,而是为了自我实现,贡献社会价值,为小世界的建设出力
● 欸,阳师不就是做知识产权的么,找他聊聊经纪和代理权
● 大公司的逻辑是,我成功骗了一次,就能再骗一次(大数博弈,所以规模、垄断这些制胜秘诀都是基于大人口基数的,一旦人口整体回落,一切都会变样)。小农的逻辑是,骗人不会有活路(民间智慧)
● 各项服务的覆盖均已完成,从无到有已结束,长期考研耐用、质量,存量资产的更新与维护增多,人口增长减速,也逼迫调整模式和政策,公民整体思潮和文化的下一步演变,都必需尽快调整,精细化、积累长期信任,最重要的是解决问题,兑现价值
● 《董小姐掀开了天宫一角》这文章名字起得妙啊,那萦绕不去的西游记的暗线
● “成都的五大先进制造业(电子信息、装备制造、医药健康、新型材料、绿色食品)是产业体系的核心,其中电子信息产业(特别是计算机、通信和其他电子设备制造业,2024年增长8.6%)和医药健康产业(2024年增长3.1%)表现突出。”
● (Gemini)“集体性的苦难经历,可能会沉淀在语言中,形成特定的词汇、表达方式、隐喻和叙事模式,用以铭记、反思或(有时)避讳这些经历。这确实会增加语言表达特定历史文化经验的深度和复杂度。”
May.2
● 把玩文化
● 10块钱的古鲨鱼牙,有点想做成个吊坠
● 十里河天娇文化城,接地气,好玩!
● 东四真的开了一家快鱼,北京奏是大县城
● 六年前在央美毕业展上加的毕业生在上海搬画展了,好棒啊
May.3
● 草,无法直视农药了
● “研究发现:传统酿造的葡萄酒中总计可检出18种农药成分” 对比一下书中提及的“法国是欧洲最大的农药使用国,也是世界第四大使用国,仅次于美国、巴西和日本。” 列举的数字:欧洲一年(2008年)使用22万吨农药,法国就用了8万吨。
● 读our daily poison,不能直视农药(现在普遍以农业科技避嫌)了,对“抛开剂量谈毒性都是耍流氓”这种愚蠢言论也不能直视了,法国(2008年数据)是世界第四大农药使用国,瞬间对葡萄酒也祛魅了,还找了一本讲食品添加剂的书,以及发现还没读寂静的春天
● 爸妈对于反复清洗蔬菜的执念,忽然懂了一些
● (Gemini)“当女性在寻求自身主体性、反思和摆脱传统性别束缚的过程中,确实可能将男性或由男性主导的某些文化规范视为需要解构和超越的他者。这并不一定意味着所有男性都被视为敌人,但确实意味着男性的行为、观念和权力结构成为了女性自我定义和争取权益时的一个重要参照系和批判对象。”
● “我特地打电话问了这家公益组织的负责人,问他觉得这些孩子在这里的经历收获了什么,他和我讲了三件事。第一,常年在野外大自然,觉得人生渺小,会豁达一些。第二,常年在基层工作,不停和人打交道,知道再高大上的目标,实现起来也是非常复杂的,保护环境、动物、物种多样性,核心都是和人打交道。你们将来的工作也是如此,都是和人打交道,比你想象的复杂得多。我从学术界到产业界,最大的感受是:办件事怎么就这么难?推进一件事太不容易了!写论文反而相对可控。第三,公益组织办事,十件事可能八件办不成,常年如此,所以学会了“没有失败”的心态,都是过程。而且在这里学习失败,成本比较低。”(兰小欢)
● “人天生不是天天上班的,天天上班反人性,人类大脑最习惯的是打猎和种地,时忙时闲这种节奏。现代生活的快节奏,大脑压力是很大的。如果你还给自己加压,就很难过了。这种难过可能无法避免,但大家可以给自己建立一个缓冲区。这类型缓冲区里,最重要的可能是社交关系。”(兰小欢)
● “你的做事方式、与人相处的模式,最终会让你活成你本来的样子,不会因某个选择而突变。”(兰小欢)
● 太庙也被发掘成打卡点了啊,天安门那片真是不敢去了
● 吃咸了
● 又看到了本命企鹅的镜头,尸体暖了不少
● 接近真实,可以用任何形式,哪怕只有一次无法复现的触达,抵达过就够了
● 逛了潘家园,除了一些bling bling的和寓意明确的手串外,就没有什么感兴趣的东西了……冲着夜市去,但没有任何发现,不如花鸟鱼虫
● 假心动 vs 真心动
----------------------
CHANGLOG
● 20250505 Arlmy 创建、整理
● 20250505 Arlmy 发布
via 素生
20250505
假期即将结束,今天是不用上班的周一,这周又要飞北京了。周四的音乐会去不了,第一次上闲鱼卖票,没过多久有人来询价。我点进他主页,确定了是个黄牛,他问我 880 卖不,我说不卖。过一会儿问我 700 咋样,我说不卖,简直脑子有坑啊。算了卖不出去继续赠送给朋友。
下午夏叔叔召唤打麻将,我还在上海呢,没想到他没组成局。
下午回到公司,开始啃那些硬骨头,各种积攒的 paper work。现在是晚上十一点半,顺利搞完。Alen 还在公司写她的 side project,她要在假期结束前做完。这几天事多起来了,不过是好事。下单了书架,期待。
via 61’s life
假期即将结束,今天是不用上班的周一,这周又要飞北京了。周四的音乐会去不了,第一次上闲鱼卖票,没过多久有人来询价。我点进他主页,确定了是个黄牛,他问我 880 卖不,我说不卖。过一会儿问我 700 咋样,我说不卖,简直脑子有坑啊。算了卖不出去继续赠送给朋友。
下午夏叔叔召唤打麻将,我还在上海呢,没想到他没组成局。
下午回到公司,开始啃那些硬骨头,各种积攒的 paper work。现在是晚上十一点半,顺利搞完。Alen 还在公司写她的 side project,她要在假期结束前做完。这几天事多起来了,不过是好事。下单了书架,期待。
via 61’s life
免费开源,高颜值的监控工具
酷监控是一个高颜值的监控工具箱,支持网站监控/接口监控/HTTPS证书监控等多种监控类型,帮助开发者及运维人员实时掌握网站/接口运行状态。本项目支持Docker一键快速部署,拥有美观现代的界面设计。
via 第七星尘的独立博客
酷监控是一个高颜值的监控工具箱,支持网站监控/接口监控/HTTPS证书监控等多种监控类型,帮助开发者及运维人员实时掌握网站/接口运行状态。本项目支持Docker一键快速部署,拥有美观现代的界面设计。
via 第七星尘的独立博客
MySQL sql_mode 参数配置详解
----------------------
一、
● 语法校验:控制 SQL 语句的语法规则(如是否允许省略
● 数据校验:严格检查数据的合法性(如日期格式、除零操作)。
● 兼容性:调整 MySQL 行为以兼容其他数据库(如 Oracle 或 SQL Server)。
● 安全性与性能:通过严格模式避免脏数据写入,提升数据质量。
----------------------
二、常见的
----------------------
三、查看与配置
1. 查看当前
示例输出:
2. 临时修改(会话级)
3. 永久修改(全局级)
1.编辑 MySQL 配置文件(如
2.重启 MySQL 服务:
----------------------
四、常见配置场景
场景 1:严格模式(推荐生产环境)
● 作用:阻止非法数据写入,确保数据合法性。
场景 2:兼容传统应用
● 作用:禁用所有严格模式,允许宽松的数据处理(需谨慎使用)。
场景 3:兼容 ANSI SQL
● 作用:启用 ANSI 标准兼容模式,适用于跨数据库迁移场景。
----------------------
五、注意事项
1. 版本差异:
2. 严格模式的影响:
3. 配置回滚:
4. 动态修改限制:
----------------------
六、常见问题解决
问题 1:
● 报错信息:
● 原因:启用了
● 解决:
问题 2:日期
● 报错信息:
● 原因:启用了
● 解决:
问题 3:除零操作返回
● 原因:未启用
● 解决:
via CHEGVA (author: anzhihe)
sql_mode 是 MySQL 中一个关键的系统变量,用于控制 SQL 语法解析、数据校验和存储行为的严格程度。合理配置 sql_mode 可以确保数据一致性、兼容性和安全性。以下是详细的配置说明及操作指南:----------------------
一、
sql_mode 的核心作用● 语法校验:控制 SQL 语句的语法规则(如是否允许省略
GROUP BY 中的非聚合字段)。● 数据校验:严格检查数据的合法性(如日期格式、除零操作)。
● 兼容性:调整 MySQL 行为以兼容其他数据库(如 Oracle 或 SQL Server)。
● 安全性与性能:通过严格模式避免脏数据写入,提升数据质量。
----------------------
二、常见的
sql_mode 模式----------------------
三、查看与配置
sql_mode1. 查看当前
sql_modeSHOW VARIABLES LIKE 'sql_mode';
示例输出:
sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
2. 临时修改(会话级)
-- 设置当前会话的 sql_mode
SET SESSION sql_mode = '模式1,模式2,...';
-- 示例:启用严格模式和 ONLY_FULL_GROUP_BY
SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY';
3. 永久修改(全局级)
1.编辑 MySQL 配置文件(如
my.cnf 或 my.ini):[mysqld]
sql_mode = "STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
2.重启 MySQL 服务:
systemctl restart mysql # Linux
# 或通过服务管理器重启 Windows 上的 MySQL 服务
----------------------
四、常见配置场景
场景 1:严格模式(推荐生产环境)
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
● 作用:阻止非法数据写入,确保数据合法性。
场景 2:兼容传统应用
sql_mode = ""
● 作用:禁用所有严格模式,允许宽松的数据处理(需谨慎使用)。
场景 3:兼容 ANSI SQL
sql_mode = "ANSI"
● 作用:启用 ANSI 标准兼容模式,适用于跨数据库迁移场景。
----------------------
五、注意事项
1. 版本差异:
2. 严格模式的影响:
3. 配置回滚:
4. 动态修改限制:
----------------------
六、常见问题解决
问题 1:
GROUP BY 查询报错● 报错信息:
Expression #1 of SELECT list is not in GROUP BY clause● 原因:启用了
ONLY_FULL_GROUP_BY 模式。● 解决:
问题 2:日期
0000-00-00 插入失败● 报错信息:
Incorrect date value: '0000-00-00'● 原因:启用了
NO_ZERO_DATE 模式。● 解决:
问题 3:除零操作返回
NULL 而非报错● 原因:未启用
ERROR_FOR_DIVISION_BY_ZERO 或严格模式。● 解决:
SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO';
via CHEGVA (author: anzhihe)
Go服务端性能的一般解决思路
最近遇到一个性能问题,客户反馈,在他们的 IPC 设备后台有两个 Go 语言编写的服务进程占用内存一直在上涨,最大时候达到了总内存的 40% 。其中一个进程就是我们日志采集 Agent。
我首先怀疑是内存泄漏,因为过去发生过 goroutine 阻塞造成的内存泄漏(我在Go 内存泄漏常见模式中讨论过),所以我先针对所有创建和释放 goroutine 的地方进行排查。
在上一次教训之后,我们对代码单元测试层面做了 goruntine 内存泄漏的检测——使用
它就会在测试结束后自动检查是否有残留的 goroutine 协程。对于一些延迟执行的后台 goroutine 可以在单元测试里用 wait 或者 sleep 等待后台释放再结束测试用例。
经过第一轮排查可以排除代码本身 goroutine 造成的问题。于是我把注意力转向了另一个地方:定时任务。
根据客户反馈,在无任何前台操作的情况下,内存也会缓慢上升。
在我们代码里,使用了
这种结构定义一个定时任务。它的实现也基于 goroutine,所以我把 go 自带的 pprof 加入到 main.go 的依赖中,重新编译了项目二进制文件并部署到测试环境上(使用跟用户相同的硬件配置)。这样启动项目后就可以在特定端口获取内存信息。(关于 pprof,你可以参考 Profiling Go Programs)
我使用 pprof 的接口获取了不同时间间隔的 heap 数据
然后使用
比较两次结果的差异,在 Web UI 上选择 In Use Space 选项,可以查看到哪些内存没有释放。
虽然经过第二轮排查,依然没有发现内存泄漏。但这一次我注意到服务中的一个定时任务会每隔 10 秒执行一次,执行过程中 CPU 占用率明显上升。在这个任务的代码里,它使用了
我查看它的源码后发现,这个库查询进程 ID 的方式,是把系统中所有的进程信息加载到内存中,然后匹配 ID 或者名称。因此,如果用户设备上的进程过多,就会每次查询时占用大量内存。
在一个 10 秒执行一次的定时任务中调用这个库,显然是非常低效的。
经过与客户进一步沟通,我们发现出现内存过高的两个进程中,另一个进程也有 CPU 占用过高的现象。于是我们让客户把
客户使用的 IPC 设备是性能比较低的版本,虽然内存较大,但 CPU 性能捉急。如果有多个进程同时执行后台任务,CPU 就会周期性打满,造成任务阻塞。而我们使用的第三方库基于 goroutine 来实现定时任务。在上一个任务被阻塞时,下一个任务依然会继续创建新的后台 goroutine,导致内存中的 goroutine 协程堆积地越来越多。
这是一个定时任务的 CPU 占用过高,间隔过短,造成的 goroutine 阻塞问题。
知道了原因,剩下的工作就是优化代码逻辑、更新版本、跟客户解释原因……
以上就是这次排查 Go 服务性能问题的过程,如果你也遇到类似情况,希望对你有所帮助。
via Steve Sun
最近遇到一个性能问题,客户反馈,在他们的 IPC 设备后台有两个 Go 语言编写的服务进程占用内存一直在上涨,最大时候达到了总内存的 40% 。其中一个进程就是我们日志采集 Agent。
我首先怀疑是内存泄漏,因为过去发生过 goroutine 阻塞造成的内存泄漏(我在Go 内存泄漏常见模式中讨论过),所以我先针对所有创建和释放 goroutine 的地方进行排查。
在上一次教训之后,我们对代码单元测试层面做了 goruntine 内存泄漏的检测——使用
go.uber.org/goleak。只需要在单元测试开头加上一句:func TestXXX(t *testing.T) {
defer goleak.VerifyNone(t)
// ...
}
它就会在测试结束后自动检查是否有残留的 goroutine 协程。对于一些延迟执行的后台 goroutine 可以在单元测试里用 wait 或者 sleep 等待后台释放再结束测试用例。
经过第一轮排查可以排除代码本身 goroutine 造成的问题。于是我把注意力转向了另一个地方:定时任务。
根据客户反馈,在无任何前台操作的情况下,内存也会缓慢上升。
在我们代码里,使用了
github.com/robfig/cron/v3这个第三方包,它的作用是编排定时任务。用法是c = cron.New()
c.AddFunc("@every 10s", callbackFunc)
这种结构定义一个定时任务。它的实现也基于 goroutine,所以我把 go 自带的 pprof 加入到 main.go 的依赖中,重新编译了项目二进制文件并部署到测试环境上(使用跟用户相同的硬件配置)。这样启动项目后就可以在特定端口获取内存信息。(关于 pprof,你可以参考 Profiling Go Programs)
我使用 pprof 的接口获取了不同时间间隔的 heap 数据
curl -o heap.1.out http://127.0.0.1:6060/debug/pprof/heap
然后使用
go tool pprof -http=:8099 -base heap.1.out heap.2.out
比较两次结果的差异,在 Web UI 上选择 In Use Space 选项,可以查看到哪些内存没有释放。
虽然经过第二轮排查,依然没有发现内存泄漏。但这一次我注意到服务中的一个定时任务会每隔 10 秒执行一次,执行过程中 CPU 占用率明显上升。在这个任务的代码里,它使用了
github.com/shirou/gopsutil/process这个第三方库来查询系统进程 ID 和进程名等信息。我查看它的源码后发现,这个库查询进程 ID 的方式,是把系统中所有的进程信息加载到内存中,然后匹配 ID 或者名称。因此,如果用户设备上的进程过多,就会每次查询时占用大量内存。
在一个 10 秒执行一次的定时任务中调用这个库,显然是非常低效的。
经过与客户进一步沟通,我们发现出现内存过高的两个进程中,另一个进程也有 CPU 占用过高的现象。于是我们让客户把
top 命令的截图发给我们。在看到截图的一瞬间,问题的真相就浮出水面了:客户使用的 IPC 设备是性能比较低的版本,虽然内存较大,但 CPU 性能捉急。如果有多个进程同时执行后台任务,CPU 就会周期性打满,造成任务阻塞。而我们使用的第三方库基于 goroutine 来实现定时任务。在上一个任务被阻塞时,下一个任务依然会继续创建新的后台 goroutine,导致内存中的 goroutine 协程堆积地越来越多。
这是一个定时任务的 CPU 占用过高,间隔过短,造成的 goroutine 阻塞问题。
知道了原因,剩下的工作就是优化代码逻辑、更新版本、跟客户解释原因……
以上就是这次排查 Go 服务性能问题的过程,如果你也遇到类似情况,希望对你有所帮助。
via Steve Sun
AI 驱动的知识导航:通过平台工程提升开发者生产力
## **1\. AI 时代下开发者生产力的挑战与机遇**
via Blog | Phodal - A Growth Engineer (author: Phodal Huang)
## **1\. AI 时代下开发者生产力的挑战与机遇**
via Blog | Phodal - A Growth Engineer (author: Phodal Huang)