<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ahxxm&apos;s blog</title>
    <description>NaN
</description>
    <link>https://ahxxm.com/</link>
    <atom:link href="https://ahxxm.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Sat, 03 Jan 2026 10:13:39 +0000</pubDate>
    <lastBuildDate>Sat, 03 Jan 2026 10:13:39 +0000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>2025年书游戏影视记录</title>
        <description>&lt;p&gt;今年也没分类，最前面大约就是最近读完的。&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;why-women-have-better-sex-under-socialism&quot;&gt;&lt;a href=&quot;https://neodb.social/book/0UDpk0EIl8RpyPQfVHk3g6&quot;&gt;Why Women Have Better Sex Under Socialism&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;看开头作者的话就想看下去。国际视角很有意思，二战后苏联女性经济独立、奥运表现好-&amp;gt;冷战美国FOMO-&amp;gt;罗斯福总统令-&amp;gt;平权运动。&lt;/p&gt;

&lt;p&gt;不过到了2025年怎么变这样了：&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Although the 1999 paper by Lott and Kenny continues to be used in these women-hating diatribes, an alternative read of their research actually confirms the idea that redistributive policies are a better guarantor of women’s independence than the unbridled free market. In fact, men’s rights activists know what many American women fail to realize themselves: women have immense political power at the ballot box.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;腰背维修师&quot;&gt;&lt;a href=&quot;https://neodb.social/book/64rzm3N265tge9OjkCkRWP&quot;&gt;腰背维修师&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;前面有点硬核，现在看觉得有点早……可能意味着不算早了。&lt;/p&gt;

&lt;h2 id=&quot;social-engineering-the-science-of-human-hacking&quot;&gt;&lt;a href=&quot;https://neodb.social/book/1fdv2BjDVebkOYRY6iWhgM&quot;&gt;Social Engineering: The Science of Human Hacking&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;不知道是因为接触过还是怎样，感觉有点白，像是《苏菲的世界》。&lt;/p&gt;

&lt;h2 id=&quot;宿命之环&quot;&gt;&lt;a href=&quot;https://neodb.social/book/0Qv4iGUnpdGHu9GEqpP5xh&quot;&gt;宿命之环&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;我不是在帮你，我只是看不惯命运的嘲弄。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;熟悉的写作废料再利用为正文凑字，但前半段有些凑字过猛，比如：“{一段对话}” + “他这样说意思是”，老练的读者可能感受到了作者潜意识鄙视读者智力，不过我作为起点文读者该有这种感觉吗？&lt;/p&gt;

&lt;p&gt;&lt;del&gt;有些比较精彩的设定和情节但涉嫌剧透不能说。&lt;/del&gt;&lt;/p&gt;

&lt;h2 id=&quot;索拉里斯星&quot;&gt;&lt;a href=&quot;https://neodb.social/book/6MOpjTxvj7IykRYeoksVNg&quot;&gt;索拉里斯星&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;也许我明天就变成了一只绿色的水母&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;酒吧长谈&quot;&gt;&lt;a href=&quot;https://neodb.social/book/0IyufxCMdTYkYJuFuHT8a1&quot;&gt;酒吧长谈&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;他说：“哪篇文章是你们中的哪个人写的，你们在何处集会油印小报，你们的支部进行何种密谋，我都了如指掌。”实际上确是如此，他似乎无所不在。然而，与此同时，他又给人一种可怜虫、碌碌无为的庸人印象。在那次会见中见到他，使我第一次产生了写《酒吧长谈》这部小说的想法。十五年后，这部小说才写成。我想在小说中描写奥德里亚八年统治下的独裁政权给人们的日常生活以及学习、工作、爱情、梦想和志向所留下的影响。我费了好长时间才找到了一条贯穿众多人物和情节的总线，这就是一个在██████████████，████████████████（后来又████）偶然相遇，以及二人之间进行的贯穿整部小说的谈话。小说出版后，那位已经退出政治舞台、致力于慈善事业的前内政部办公厅主任评论说：“如果巴尔加斯·略萨早点儿来找我，我还可以提供给他一些更为有趣的素材。”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;希望以后看的小说作者们都能学学略萨收伏笔。&lt;/p&gt;

&lt;h2 id=&quot;世界尽头的土地上&quot;&gt;&lt;a href=&quot;https://neodb.social/book/7N5Vuy4iboUCiJgZ7qkltt&quot;&gt;世界尽头的土地上&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;好心网友推荐时说这书原书名有点意思。后半不知为何toxic masculinity冒了出来，看得差点忘记了它在讲的主题是什么。&lt;/p&gt;

&lt;h2 id=&quot;心靈的傷身體會記住&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/18693771-the-body-keeps-the-score&quot;&gt;心靈的傷，身體會記住&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;理解自己為何有某種感覺，並不會改變你如何感覺，但可以使你不會任由這些強烈情緒擺布&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;这本，上面的社会工程学，还有以前看过的不少21世纪出版物，很多都用到进化心理学理论：遇到事情时杏仁核过度警戒-&amp;gt;前额叶抑制功能故障-&amp;gt;身体记住并按需“退化”到防御反应模式。相应的，Cognitive Behavioral Therapy是一种对症下药，对应新进化出来的前额叶，但身体“记住”的创伤需要其他治疗策略，比如呼吸、瑜伽和其他身体练习。这么一看有点合理？&lt;/p&gt;

&lt;h2 id=&quot;巴黎伦敦落魄记&quot;&gt;&lt;a href=&quot;https://neodb.social/book/11yFG0TkNiVh3Qnp61MzXV&quot;&gt;巴黎伦敦落魄记&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;很快那位牧师来了，流浪汉们按照先来后到的顺序排好了队。那位牧师很年轻，身材略胖，长得很像我在巴黎的那个朋友查理。他很害羞尴尬，只会对我们说“晚上好”。他快步走过队伍，给每人分发一张餐券，没有稍作停留让别人感谢他。有那么一会儿，大家都很感激他，说那位牧师是个好人。有人高喊道（我相信牧师听见了）：“他肯定不会当上主教的！”——这句话其实只是真挚的赞美。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;亲爱的图书馆&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/59990357&quot;&gt;亲爱的图书馆&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;印象不怎么值得看，也不记得为什么看这本了。&lt;/p&gt;

&lt;h2 id=&quot;姜姬&quot;&gt;&lt;a href=&quot;https://www.jjwxc.net/onebook.php?novelid=2872564&quot;&gt;姜姬&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;文风有点古朴，平铺直叙，看起来&lt;a href=&quot;https://www.jjwxc.net/comment.php?novelid=2872564&amp;amp;commentid=451051&quot;&gt;是故意的&lt;/a&gt;，设定很是野性，人吃人的古代。████以前的宫斗看得有点迷惑，大约因为是新题材、没怎么看过宫斗，████以后就清晰多了，但也没那么紧张了。结局感觉可以写更好点，██████怎么还讲究████？&lt;/p&gt;

&lt;h2 id=&quot;an-elegant-puzzle&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/45303387-an-elegant-puzzle&quot;&gt;An Elegant Puzzle&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;这书有些美国梦，高屋建瓴，像是人成功以后觉得努力就有回报写出来的，比如“公司&amp;gt;团队&amp;gt;自己”。部分还不错，比如这段：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;The criteria I use to evaluate if a team&apos;s sprint works well:  
Team knows what they should be working on.  
Team knows why their work is valuable.  
Team can determine if their work is complete.  
Team knows how to figure out what to work on next.
Stakeholders can learn what the team is working on.  
Stakeholders can learn what the team plans to work on next.  
Stakeholders know how to influence the team&apos;s plans.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;why-nations-fail-the-origins-of-power-prosperity-and-poverty&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/12158480&quot;&gt;Why Nations Fail: The Origins of Power, Prosperity, and Poverty&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;西班牙对阿兹特克和印加做的怎么如此眼熟，低工资，高税，强制购买高价&lt;del&gt;房&lt;/del&gt;商品。&lt;/p&gt;

&lt;p&gt;叙事反反复复神神叨叨，有点像是后来出版的《秦制2000年》，不过例子要多不少，毕竟世界上那么多国家。后来对书名的结论是extractive vs inclusive，extractive可以翻译成“汲取”或者“剥削”。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Hence it arises that there is no one who takes care of the land he enjoys; there is not even anyone to plant a tree because he knows that he who plants it very rarely gathers the fruit. For the king, however, it is useful that they should be so dependent upon him.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;thinking-in-systems-a-primer&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/3828902-thinking-in-systems&quot;&gt;Thinking In Systems: A Primer&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;忘了，好像也有点白。&lt;/p&gt;

&lt;h2 id=&quot;how-propaganda-works&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/30009140-how-propaganda-works&quot;&gt;How Propaganda Works&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;前面还有点枯燥，到语义学突然有意思了起来。“非核心语意(supplement、expressive、presupposition、 evidential)会直接加入common ground”，这个总结真是厉害，比&lt;a href=&quot;https://www.youtube.com/watch?v=qP07oyFTRXc&quot;&gt;double speak&lt;/a&gt;还厉害。&lt;/p&gt;

&lt;p&gt;后来和人聊到gpt-5.2的白男人格和chat-bait，编造一例居高临下+非核心语意：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;人：talk like this again i use deepseek
troll: Fair--(your favorite emdash here) use whatever tool works best for you. I&apos;m not competing, I&apos;m solving and providing accurate information.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;adults-in-the-room-my-battle-with-europes-deep-establishment&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/34673467-adults-in-the-room&quot;&gt;Adults in the Room: My Battle with Europe’s Deep Establishment&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=RdGVK5k8A0c&quot;&gt;纳税人买单&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;学到一个说法叫”constructive ambiguity”，改公报改得双方都满意，同时又足够模糊，能够创造政策空间，建制派(establishment)需要这样因为他们想让&lt;a href=&quot;https://youtu.be/GPsHfVCFLhU?t=87&quot;&gt;政策显得一致且正确&lt;/a&gt;、延续政治生命，在野党才是不怕承认错误。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Asked whether a new government might jeopardize the ‘recent recovery’, I had no alternative but to expose them to the wretched facts that almost never appeared in the press.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;这段接下来是用很多数字反驳所谓’Greek-covery’宣布胜利，有点像&lt;a href=&quot;https://www.youtube.com/watch?v=wTjMqda19wk&quot;&gt;Newsroom开头&lt;/a&gt;。&lt;/p&gt;

&lt;h2 id=&quot;mantel-pieces-royal-bodies-and-other-writing-from-the-london-review-of-books&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/53976288-mantel-pieces&quot;&gt;Mantel Pieces: Royal Bodies and Other Writing from the London Review of Books&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;对着机翻看，看不懂的还是晦涩难懂，看得懂的不用机翻也很精彩。比如有一篇提到，中产以上的生活可能还是自己的生活，但是穷人的生活本身是中产以上用来维持自己生活的“财产”，我寻思可以以此递归上去。&lt;/p&gt;

&lt;h2 id=&quot;talking-to-my-daughter-about-the-economy-or-how-capitalism-worksand-how-it-fails&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/36490332-talking-to-my-daughter-about-the-economy&quot;&gt;Talking to My Daughter About the Economy: or, How Capitalism Works—and How It Fails&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;和World for sale呼应了：谈钱没法不聊政治，做生意没法不让第三世界国家领导人们富起来。&lt;/p&gt;

&lt;h2 id=&quot;the-tech-coup-how-to-save-democracy-from-silicon-valley&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/208187020-the-tech-coup&quot;&gt;The Tech Coup: How to Save Democracy from Silicon Valley&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;因为Adults in the room，看到作者对欧盟盲目信任感觉有点奇妙。监管和创新对立原来也是科技公司搞出来和推波助澜的叙事，有钱真是为所欲为。至于到底有没有对立，我的体会是非常勉强，但&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$ENTERPRISE&lt;/code&gt;里做合规的实在是太蠢，凭空层层加码创造了对立。&lt;/p&gt;

&lt;h2 id=&quot;yellowface&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/62047984-yellowface&quot;&gt;Yellowface&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/review/15729553/&quot;&gt;这篇书评&lt;/a&gt;（含剧透）说了很多我想说的。有点像《鄙视》的写法，不过“我”██████，这还算是██吗？&lt;/p&gt;

&lt;p&gt;听完的，不大喜欢这个情理之中的结局。另外作者这么消费自己行业，算是建桥还是&lt;a href=&quot;https://www.gawkerarchives.com/015403/paul-hastings-gossips-backstabbers-and-napoleonic-personalities&quot;&gt;烧桥&lt;/a&gt;？&lt;/p&gt;

&lt;h2 id=&quot;an-absolutely-remarkable-thing&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/24233708-an-absolutely-remarkable-thing&quot;&gt;An Absolutely Remarkable Thing&lt;/a&gt;&lt;/h2&gt;

&lt;h2 id=&quot;slow-learner-early-stories&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/416.Slow_Learner&quot;&gt;Slow Learner: Early Stories&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;前面的文学分析自我批评比较精彩，文字本身如他自己所说。&lt;/p&gt;

&lt;h2 id=&quot;the-little-book-of-market-wizards&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/18763952-the-little-book-of-market-wizards&quot;&gt;The Little Book of Market Wizards&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;不知道全书怎么样，这本精选little book基本没解释edge/alpha，讲得是一些大家知道但是做不到投资成功学。&lt;/p&gt;

&lt;h2 id=&quot;升官证道&quot;&gt;&lt;a href=&quot;https://fanqienovel.com/page/7243583622836390973&quot;&gt;升官证道&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;据说书改了几次名……有些精彩部分，缺点是主旋律了一些：做什么都成，小人被治，好人有好报。&lt;/p&gt;

&lt;h2 id=&quot;政治的人生&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/37888674&quot;&gt;政治的人生&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;“每天最开心的时候是晚上九点模拟辩完以后，大家吃西瓜……常常由刚充任完’拟音效果’的王大教授操刀切瓜，因为他有过少时在农场杀猪的经历，刀技最高，而又乐此不疲。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;1367&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/22558455-13-67&quot;&gt;13．67&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;读侦探小说看到被调查人心理活动会有点头疼，还好只在第一章出现。&lt;/p&gt;

&lt;h2 id=&quot;逃走的人&quot;&gt;&lt;a href=&quot;https://neodb.social/book/4WoCFUv7qYtrmwLSJ3f4U5&quot;&gt;逃走的人&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;像是公众号合集&lt;/p&gt;

&lt;h2 id=&quot;el-infierno-drugs-gangs-riots-and-murder&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/34830377-el-infierno&quot;&gt;El Infierno: Drugs, Gangs, Riots and Murder&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;精彩的大多在&lt;a href=&quot;https://www.youtube.com/watch?v=qwRl-2_pHSA&quot;&gt;这个视频&lt;/a&gt;里，有些坐牢文学：&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Ideally you should be in perfect health when you started your sentence, with brilliant teeth and 20/20 vision. People who had been in the prison a long time explained to me that they were generally OK for the first three or four years, but after that their health deteriorated.
ANYONE WHO’S EVER been locked up will have spent a good deal of time thinking about how to escape. It is your natural instinct. In prison you tend to have two groups. There are those who would rather sit there and quietly do their time and get out when the given date arrives. The others would prefer to attempt escape and live with the consequences. It tends to be people serving longer sentences with little to lose who are more inclined to attempt escape. If you only have to spend six months behind bars, why risk being shot dead trying to escape?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;think-again-the-power-of-knowing-what-you-dont-know&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/55539565-think-again&quot;&gt;Think Again: The Power of Knowing What You Don’t Know&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;当倾听时，我们向他人提供了最稀有、最珍贵的礼物：我们的注意力。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;……和时间，一本短鸡汤。&lt;/p&gt;

&lt;h2 id=&quot;sicp&quot;&gt;&lt;a href=&quot;https://github.com/source-academy/sicp&quot;&gt;SICP&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Time is a device that was invented to keep everything from happening at once.”
It is intriguing that a similar connection between time and communication also arises in the Theory of Relativity, where the speed of light (the fastest signal that can be used to synchronize events) is a fundamental constant relating time and space. The complexities we encounter in dealing with time and state in our computational models may in fact mirror a fundamental complexity of the physical universe.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;第四章也会突然维特根斯坦：&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;.. we can often enhance our ability to deal with a complex problem by adopting a new language that enables us to describe (and hence to think about) the problem in a different way, using primitives, means of combination, and means of abstraction that are particularly well suited to the problem at hand&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;人类吸猫简史&quot;&gt;&lt;a href=&quot;https://book.douban.com/subject/36240038/&quot;&gt;人类吸猫简史&lt;/a&gt;&lt;/h2&gt;

&lt;h2 id=&quot;灯花笑&quot;&gt;&lt;a href=&quot;https://book.douban.com/subject/37109070/&quot;&gt;灯花笑&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;此生没做过一件坏事，老天就不会待人刻薄么？&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;私刑好啊，还有番外也不错。&lt;/p&gt;

&lt;h2 id=&quot;重生于康熙末年&quot;&gt;&lt;a href=&quot;https://neodb.social/book/2zBf44P7UTeFVYO45xDTH1&quot;&gt;重生于康熙末年&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;剧情细腻，结局清爽，金手指特别克制，一看果然作者不是男的。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;即便封阁拜相，见到皇族与宗室还的三跪九叩。加上八旗遗风，勋贵世袭，在京城呆着，别的不会，也要先会鞠躬下跪。如今长子成家立业，家族之责也到了卸去之时，如何得自由？自由！自由！这个念头一生出来，就跟打开了潘多拉的盒子似的，使得曹颙脑中多了个咆哮的小人。难道自己因缘际会，重生三百年前，就是为了给皇家做奴才？！&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;license-to-travel&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/60551132&quot;&gt;License To Travel&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;不知为何中途开始有点无聊，可能开头就讲完了，到结尾只记得二战时期名人们的护照有点意思。两千年前护照还能体现君主威慑力，保证安全甚至食宿，现在就更像是民族国家有了默契，用来限制人民自由移动。&lt;/p&gt;

&lt;h2 id=&quot;the-world-for-sale&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/52199304-the-world-for-sale&quot;&gt;The World for Sale&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;实在看不完看个开头结尾好像也可以，开头结尾高屋建瓴（褒义），中间主要是采访，有时候会显得枯燥。&lt;/p&gt;

&lt;p&gt;把自然资源送到“该去”/需要的地方，在此时此地不违法，就算是可以接受的“商业行为”吗？&lt;/p&gt;

&lt;h2 id=&quot;制霸好莱坞&quot;&gt;&lt;a href=&quot;https://neodb.social/book/2MhX2dWCkhjmNJQmib74sE&quot;&gt;制霸好莱坞&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;金手指没有上面那本康熙末年克制，但也足够克制，而且有必要，更像是为剧情服务。剧情读起来像是办公室政治，结尾收回铺开的线索很顺利，番外不错，设定属于锦上添花。&lt;/p&gt;

&lt;h2 id=&quot;窄门&quot;&gt;&lt;a href=&quot;https://neodb.social/book/4MPhDrdocdu5JmRb8nksfZ&quot;&gt;窄门&lt;/a&gt;&lt;/h2&gt;

&lt;h2 id=&quot;对工作说不&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/25102832-the-refusal-of-work&quot;&gt;对工作说不&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;很多对工作的“反抗”实际上是institutionalized，就像非核心语义一样，比如WLB就是一个陷阱：&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;它只允许我们低声下气地请求能少工作一点（通常是为了承担其他责任，比如照顾家人）。它试图在现行体制内容纳我们对该制度的不满，阻碍了我们以开放的方式对其他选择进行真正的比较。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;hot-lights-cold-steel&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/80310&quot;&gt;Hot Lights, Cold Steel&lt;/a&gt;&lt;/h2&gt;

&lt;h1 id=&quot;游戏&quot;&gt;游戏&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/1272160/The_Life_and_Suffering_of_Sir_Brante/&quot;&gt;The Life and Suffering of Sir Brante&lt;/a&gt; 数值卡得死，没法兼顾，必须选个边……这种游戏更适合云通关？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/683320/GRIS/&quot;&gt;GRIS&lt;/a&gt; 有一点fez的感觉，简化优雅版。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/2138710/Sifu/&quot;&gt;Sifu&lt;/a&gt; 集显畅玩，有打击感！&lt;/p&gt;

&lt;h1 id=&quot;电影&quot;&gt;电影&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt13429870/&quot;&gt;Robot Dreams&lt;/a&gt; 不知道哪里看到个评论说，一个人看不合适，两个人看也不合适。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt1596363/&quot;&gt;The big short&lt;/a&gt; 认出了两首BGM，一个是&lt;a href=&quot;https://music.youtube.com/watch?v=vBtvhPM2GHc&quot;&gt;Crazy&lt;/a&gt;，一个是&lt;a href=&quot;https://music.youtube.com/watch?v=NxxjLD2pmlk&quot;&gt;Feel Good Inc&lt;/a&gt;，出现时间都很到位，看完以后社交网络上Burry meme数量激增。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt1504320/&quot;&gt;国王的演讲&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt0469494/&quot;&gt;There will be blood&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt2084970/&quot;&gt;模仿游戏&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt2820852/&quot;&gt;速度与激情7&lt;/a&gt; 这个噪点画风有点不像是2015出品&lt;/p&gt;

&lt;h1 id=&quot;剧&quot;&gt;剧&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt2741602/&quot;&gt;The Blacklist&lt;/a&gt; 你可以看到Alan Shore聊自杀：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Have you ever seen the aftermath of a suicide bombing? … The closer they were to the bomber, the more horrific the effect.
That’s every suicide. Every single one. An act of terror perpetrated against everyone who’s ever known you, everyone who’s ever loved you. The people closest to you, the ones who cherish you, are the ones who suffer the most pain, the most damage.
Why would you do that? Why would you do that to people who love you?
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;纽伦堡：&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;No, you’re not. Not yet. Maybe someday, if you’re very lucky, you might wonder, “at exactly what point did I become this thing?” But not now. Right now, you’re just doing your job.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;很多集都是让人很难不支持的私刑，也有airtag用法(s4e16)，狗、罪犯和政客的共同之处(s4e14)：&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Incentive – the currency of politicians, dog trainers, and criminals.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;整剧社会工程学比上面那本书还深入浅出&lt;del&gt;好操作&lt;/del&gt;。&lt;/p&gt;

&lt;h1 id=&quot;弃坑项目&quot;&gt;弃坑项目&lt;/h1&gt;

&lt;p&gt;《The Good Doctor》&lt;/p&gt;

&lt;p&gt;《小书痴的下克上》 穿越成孱弱少女想重建文明……然后想要图书馆看书的故事，我只看到“想”&lt;/p&gt;

&lt;p&gt;《难道我是神》 确实如网友锐评写崩了，有很多典型的起点国家社会主义。&lt;/p&gt;
</description>
        <pubDate>Sat, 03 Jan 2026 00:00:00 +0000</pubDate>
        <link>https://ahxxm.com/185.moew/</link>
        <guid isPermaLink="true">https://ahxxm.com/185.moew/</guid>
        
        
        <category>Reading</category>
        
      </item>
    
      <item>
        <title>A Year of 100 Billion Tokens</title>
        <description>&lt;blockquote&gt;
  &lt;p&gt;the public doesn’t know how to waste money, we are the experts&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most people don’t burn &lt;a href=&quot;https://x.com/jakubpolec/status/1978753724655849743&quot;&gt;billions of tokens&lt;/a&gt;, a long debugging session full of &lt;a href=&quot;https://www.anthropic.com/research/tracing-thoughts-language-model&quot;&gt;motivated reasoning&lt;/a&gt; uses millions, but that won’t scale to billions.&lt;/p&gt;

&lt;p&gt;It takes the organizational synergies of an &lt;a href=&quot;https://churchofturing.github.io/the-enterprise-experience.html&quot;&gt;$ENTERPRISE&lt;/a&gt;: AI FOMO disguised as hollow “vision statements”(usually after layoffs) and recurring data pipelines.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;The organizational synergies manifest predictably: cron and interactive text generation(none solicited, all pure evil) versus knowledge distillation for specialized models, which is defensible though it may incentivize more layoffs. Don’t worry, if you are reading this, it’s not your fault.&lt;/p&gt;

&lt;p&gt;$ENTERPRISE will burn tokens regardless. If you are forced to participate, burn them meaningfully. Here are a few lessons from 100B SOTA tokens – first o1-preview, then o1 and o3.&lt;/p&gt;

&lt;h2 id=&quot;evaluation-dataset-and-guidance&quot;&gt;Evaluation Dataset and Guidance&lt;/h2&gt;

&lt;p&gt;This is the &lt;a href=&quot;https://www.goodreads.com/book/show/324750.High_Output_Management&quot;&gt;limiting factor&lt;/a&gt;. It requires domain experts and tooling support.&lt;/p&gt;

&lt;p&gt;Before rushing into &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;import openai&lt;/code&gt;, consider these invariants:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;task definition: a shared understanding of the problem articulated in natural language, guiding human actions and reducing disputes.&lt;/li&gt;
  &lt;li&gt;prompt effectiveness: can it steer the model to produce desired outputs?&lt;/li&gt;
  &lt;li&gt;model performance difference: is a cheaper model good enough? Should you upgrade on model releases?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A dataset built on guidance with minimal subjective judgements helps all three and enables automated prompt tuning, large-scale distillation, i.e. produce training labels.&lt;/p&gt;

&lt;h2 id=&quot;lower-expectations-gaps&quot;&gt;Lower Expectations: Gaps&lt;/h2&gt;

&lt;p&gt;Real-life tasks contain vagueness, experts disagree with good reasons.&lt;/p&gt;

&lt;p&gt;Models respond differently to prompts, you may never find the phrase that causes undesired results. The most expensive model may not increase precision and recall. This depends on task complexity. In my case, gpt-5-pro equals o3, all mini series score 0.05~0.15 worse and should be avoided.&lt;/p&gt;

&lt;p&gt;Models have inherent biases: GPT’s chat bait nature, Claude’s “You are absolutely right!”, language style, punctuation choice, assumed “tech” context, and more.&lt;/p&gt;

&lt;p&gt;Prompt engineering cannot fix model biases, focus on what we can control.&lt;/p&gt;

&lt;h2 id=&quot;structured-output&quot;&gt;Structured Output&lt;/h2&gt;

&lt;p&gt;Claude now officially supports &lt;a href=&quot;https://www.claude.com/blog/structured-outputs-on-the-claude-developer-platform&quot;&gt;structured output&lt;/a&gt;, you won’t need to write tool definitions anymore. (Corollary: stay away from Bedrock, it doesn’t even support web search tool.)&lt;/p&gt;

&lt;p&gt;Unstructured text is largely useless for training, yet many $ENTERPRISE teams still ask gpt-3.5-turbo for a JSON output, strip markdown quotes, and silently ignore JSON parse failures.&lt;/p&gt;

&lt;p&gt;Read the docs, write pydantic classes, add field descriptions as if writing a prompt.&lt;/p&gt;

&lt;h2 id=&quot;rag-or-finetune&quot;&gt;RAG or finetune?&lt;/h2&gt;

&lt;p&gt;RAG &lt;a href=&quot;https://arxiv.org/abs/2312.05934&quot;&gt;outperforms&lt;/a&gt;. My tasks don’t involve injecting static proprietary knowledge, there’s no pipelined finetuning recipe, and &lt;a href=&quot;https://arxiv.org/abs/2505.17140&quot;&gt;unseen data requires further finetune&lt;/a&gt;. Most importantly, I’m lazy, so I chose RAG.&lt;/p&gt;

&lt;h2 id=&quot;prompt-engineering&quot;&gt;Prompt Engineering&lt;/h2&gt;

&lt;p&gt;Claude &lt;a href=&quot;https://www.youtube.com/watch?v=T9aRN5JkmL8&quot;&gt;recommends&lt;/a&gt; simple, direct, clear prompts. They are language agnostic and may resist &lt;a href=&quot;https://research.trychroma.com/context-rot&quot;&gt;context rot&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Tools like &lt;a href=&quot;https://arxiv.org/abs/2507.19457&quot;&gt;GEPA&lt;/a&gt; and &lt;a href=&quot;https://github.com/DebarghaG/proofofthought&quot;&gt;proofofthought&lt;/a&gt; bridge the gap from natural language to prompts.&lt;/p&gt;

&lt;p&gt;However, I prefer to use my own brain first.&lt;/p&gt;

&lt;h2 id=&quot;domain-experts&quot;&gt;Domain Experts&lt;/h2&gt;

&lt;p&gt;Vagueness and complexity require domain experts to iterate in the feedback loop: test ideas, gather feedback, find correlations, fix the dataset, improve the prompt, etc. Build tools to support these.&lt;/p&gt;

&lt;p&gt;Some decision makers hallucinate that TRENDING-AI-IDEs magically reduce every problem to a &lt;a href=&quot;https://www.goodreads.com/book/show/22823968-the-mythical-man-month&quot;&gt;man-month&lt;/a&gt; timeline. Don’t trust them. AI IDEs are useful when:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;you know but are too lazy to implement&lt;/li&gt;
  &lt;li&gt;you don’t know but you can verify&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Knowledge distillation falls outside these, you can’t verify what you don’t know, only domain experts can – most already laid off.&lt;/p&gt;

&lt;p&gt;If I ran this from the beginning, I would hire all domain experts, so competitors find none on the market after the FOMO.&lt;/p&gt;
</description>
        <pubDate>Sun, 16 Nov 2025 00:00:00 +0000</pubDate>
        <link>https://ahxxm.com/184.moew/</link>
        <guid isPermaLink="true">https://ahxxm.com/184.moew/</guid>
        
        
        <category>FOMO</category>
        
        <category>AI</category>
        
      </item>
    
      <item>
        <title>Train a Modern BERT from (mostly) Scratch</title>
        <description>&lt;p&gt;Encoder models are often overlooked despite their superior &lt;a href=&quot;https://arxiv.org/pdf/2507.11412&quot;&gt;performance&lt;/a&gt; and &lt;a href=&quot;https://huggingface.co/blog/modernbert&quot;&gt;efficiency&lt;/a&gt;. Training one at an &lt;a href=&quot;https://churchofturing.github.io/the-enterprise-experience.html&quot;&gt;$ENTERPRISE&lt;/a&gt; frees you from “why don’t you just” &lt;a href=&quot;https://www.inc.com/jeff-haden/37-years-ago-steve-jobs-said-best-managers-never-want-to-be-a-manager-science-says-he-was-right.html&quot;&gt;professional managers&lt;/a&gt;, and it’s a rewarding process.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;The training doesn’t require much background or technical expertise &lt;del&gt;in hindsight&lt;/del&gt;, and each stage gives some positive feedback to continue. It’s also rewarding to see better evaluation results on downstream tasks than using LLMs that presumably have 10x more params.&lt;/p&gt;

&lt;p&gt;The training can be largely divided into 3 stages: dataset preparation, train tokenizer(encouraged but optional), train model itself.&lt;/p&gt;

&lt;h1 id=&quot;dataset&quot;&gt;Dataset&lt;/h1&gt;

&lt;p&gt;Most papers recommend using normal datasets for pretraining, and higher quality datasets for later training stages. There are plenty of open corpora on HuggingFace, or you may need a proprietary one from your $ENTERPRISE storage, either way, no peaceful internet neighborhood shall be disturbed.&lt;/p&gt;

&lt;p&gt;I did 2 preprocessing steps for a proprietary dataset.&lt;/p&gt;

&lt;h2 id=&quot;deduplication-with-n-gram-minhashlsh&quot;&gt;Deduplication with N-gram MinHashLSH&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;Near-deduplication improves the model’s downstream performance with a much smaller dataset&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;… as well as training time. There are plenty of articles on the topic, but most are at best MinHash 101 and Spark 101, some cost too much, some are content farm gibberish. The only useful one from my browser history is &lt;a href=&quot;https://huggingface.co/blog/dedup&quot;&gt;Large-scale Near-deduplication Behind BigCode&lt;/a&gt;, it offers the motivation above, and extra:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;trade-off analysis: “If you are familiar with &lt;a href=&quot;https://github.com/ekzhu/datasketch&quot;&gt;Datasketch&lt;/a&gt;, you might ask, why do we bother to strip all the nice high-level functions the library provides”&lt;/li&gt;
  &lt;li&gt;cost as a reference: 1.4TB data / 4 hours / $15 per hour. My naive parquet-streaming version using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Datasketch&lt;/code&gt; costs about the same dollar per compressed TB.&lt;/li&gt;
  &lt;li&gt;some 101 and codes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a fresh, domain-tailored tokenizer is needed, train one using the deduped dataset, then pretokenize the deduped dataset for training. See &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Tokenizer&lt;/code&gt; section below, then come back.&lt;/p&gt;

&lt;h2 id=&quot;pretokenize-the-dataset&quot;&gt;Pretokenize the dataset&lt;/h2&gt;

&lt;p&gt;Pretokenize helps increase training speed (tokens/second, see &lt;a href=&quot;https://github.com/AnswerDotAI/ModernBERT/issues/236&quot;&gt;issue&lt;/a&gt; with code examples) by 25%~400%, depending on model size and sequence packing on/off. For my dataset, it takes ~9 hours to pretokenize but saves 50+ hours in each base-size pretraining, a worthwhile upfront cost.&lt;/p&gt;

&lt;p&gt;Sequence packing affects convergence. My best guess is that batches become noiser and back propagation reduced &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;max-seq / avg-seq&lt;/code&gt; times – good luck finding a proper combination of hyperparams.&lt;/p&gt;

&lt;h1 id=&quot;tokenizer&quot;&gt;Tokenizer&lt;/h1&gt;

&lt;p&gt;Training a tokenizer is encouraged but completely optional, any English/multilingual BPE toenizer from modern LLM should just work, at the cost of wasting more token embeddings but may only minimally hurt downstream task – I verified that accidentally because of &lt;a href=&quot;https://github.com/huggingface/transformers/issues/3107&quot;&gt;a bug&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But it’s &lt;a href=&quot;https://www.kaggle.com/code/vimalpillai/training-bpe-tokenizer&quot;&gt;fun and easy&lt;/a&gt;: choose normalizers, add template, make an iterator by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;yield&lt;/code&gt; from the deduped dataset, train from the iterator, save.&lt;/p&gt;

&lt;p&gt;I decided to train one because: a) conceptually it’s a good idea, more token embeddings used, fewer tokens to represent domain text can also reduce the inference cost, b) papers like &lt;a href=&quot;https://ar5iv.labs.arxiv.org/html/1903.10676&quot;&gt;SciVocab&lt;/a&gt; proved effectiveness, c) it’s also cheap. Skip this perhaps only when your domain is close to general web text?&lt;/p&gt;

&lt;p&gt;Examining longest tokens reveals a few confirming and fun facts: they are domain terminologies that I’d expect to see in the dataset, naturally, less token embedding will be wasted during finetuning; German compound words can be very long; some data sources repeatedly contributed the same phrases.&lt;/p&gt;

&lt;h2 id=&quot;post-processor-template&quot;&gt;Post Processor Template&lt;/h2&gt;

&lt;p&gt;BOS/CLS and EOS/SEP tokens are important for benchmarks and real use cases, especially CLS which always appears at the text beginning, and has bi-directional information encoded. Add a post processor template to include these special tokens in pretraining.&lt;/p&gt;

&lt;h1 id=&quot;train&quot;&gt;Train&lt;/h1&gt;

&lt;p&gt;The paper presented a &lt;a href=&quot;https://arxiv.org/pdf/2412.13663#subsubsection.2.2.2&quot;&gt;training recipe of 3 stages&lt;/a&gt;: pretrain, context extension, lr decay. And a few yaml files &lt;a href=&quot;https://github.com/AnswerDotAI/ModernBERT/tree/pretraining_documentation/yamls/modernbert&quot;&gt;in this branch&lt;/a&gt;, &lt;a href=&quot;https://arxiv.org/pdf/2507.11412#subsection.3.3&quot;&gt;largely replicated&lt;/a&gt; by other papers with promising results.&lt;/p&gt;

&lt;p&gt;When you don’t have access to H100, decreasing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;microbatch_size&lt;/code&gt; proportionally to VRAM should work, the learning rate can be higher or lower, I didn’t see any meaningful differences on convergence in a few ablations.&lt;/p&gt;

&lt;p&gt;I found that combining stage 2 and 3 saves some time and still gives a very decent model, which performs reasonably well on downstream tasks. However, combining all 3 stages into one pass didn’t work, its performance was much worse.&lt;/p&gt;

&lt;h1 id=&quot;epilogue&quot;&gt;Epilogue&lt;/h1&gt;

&lt;p&gt;I chose Modern BERT simply because when I started training its &lt;a href=&quot;https://huggingface.co/docs/transformers/en/model_doc/modernbert&quot;&gt;Torch support&lt;/a&gt; was ready, while other recent variants weren’t. Their codebase isn’t the most actively maintained, but at least the branch provides usable code, and authors are quite helpful despite being super busy.&lt;/p&gt;

&lt;p&gt;Before committing to training, I validated classification quality, benchmarked latency and estimated cost, all numbers showed clear potential.&lt;/p&gt;

&lt;p&gt;It’s now serving online requests in $ENTERPRISE as the backbone model, delivering better results at &amp;lt;1% of GPT cost and latency. Not a fair comparison, as that’s domain-specific encoder vs general-purpose decoder, yet it’s still fulfilling to see something you trained from scratch actually work.&lt;/p&gt;
</description>
        <pubDate>Fri, 03 Oct 2025 00:00:00 +0000</pubDate>
        <link>https://ahxxm.com/183.moew/</link>
        <guid isPermaLink="true">https://ahxxm.com/183.moew/</guid>
        
        
        <category>IT</category>
        
      </item>
    
      <item>
        <title>Two Sets of Questionnaires</title>
        <description>&lt;p&gt;A combination of &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Emperor%27s_New_Drugs&quot;&gt;The Emperor’s New Drugs&lt;/a&gt;, &lt;a href=&quot;https://www.goodreads.com/book/show/16248231-saving-normal&quot;&gt;Saving Normal&lt;/a&gt;, and &lt;a href=&quot;https://en.wikipedia.org/wiki/How_Propaganda_Works&quot;&gt;How Propaganda Works&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“You must unlearn what you have learned.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;set-a&quot;&gt;Set A&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;The brain, like any organ, sometimes does not work as well as it could. Do you agree?&lt;/li&gt;
  &lt;li&gt;When changes in mood, thinking, or behavior make it hard to work or keep relationships, is professional help appropriate?&lt;/li&gt;
  &lt;li&gt;Clinicians and researchers often notice the same groups of changes in many people. Is it useful to study those recurring patterns?&lt;/li&gt;
  &lt;li&gt;Once a recurring pattern is given a shared name, do you think it becomes easier for professionals to talk about its possible causes and treatments?&lt;/li&gt;
  &lt;li&gt;Research suggests that such a labeled pattern often brings distress or disability and can sometimes be eased with targeted help. Does it sound reasonable to treat that pattern as a possible health concern?&lt;/li&gt;
  &lt;li&gt;Would you say that psychological disorders are real medical conditions?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;set-b&quot;&gt;Set B&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;People feel sadness, worry, or even intense grief after events like a breakup, a layoff, or a major move. Would you call these feelings natural reactions, and a normal part of life?&lt;/li&gt;
  &lt;li&gt;Left-handedness and homosexuality were once labeled disorders, yet today both are viewed as natural human variations. Does that show that ideas about what counts as a disorder can change?&lt;/li&gt;
  &lt;li&gt;Unlike diabetes or pneumonia, most DSM-5 categories have no lab test, clinicians often disagree on the label, and large pharmaceutical campaigns can widen disorder definitions — 106 disorders in DSM-1 and 237 in DSM-5. Given that mix of uncertainty and outside influence, are you cautious about calling these experiences disorders?&lt;/li&gt;
  &lt;li&gt;In cognitive behavioral therapy, people practice and learn alternative interpretations of setbacks to reduce anxiety and depression symptoms. If a learned skill can relieve distress, does that hint the condition behaves more like a modifiable state of mind than a fixed disease?&lt;/li&gt;
  &lt;li&gt;Understanding how these labels can shape life choices, will you question psychiatric authority and seek alternatives before accepting their diagnosis?&lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate>
        <link>https://ahxxm.com/182.moew/</link>
        <guid isPermaLink="true">https://ahxxm.com/182.moew/</guid>
        
        
        <category>Q</category>
        
      </item>
    
      <item>
        <title>2024年读书笔记</title>
        <description>&lt;p&gt;今年没分类，按读完时间逆序排列，最前面就是刚刚读完的。标题消费降级，改叫记录，流水账记录想法的意思。&lt;/p&gt;

&lt;!--more--&gt;

&lt;h3 id=&quot;小镇喧嚣&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/57992436&quot;&gt;小镇喧嚣&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;作者说不知道为什么火了起来加印，只改错别字，考虑到出版年份，农业税改和城镇化都还在进行中，把地价乘100，其他乘5-10，差不多就是今年购买力平价，这样读起来比较好理解。&lt;a href=&quot;https://www.goodreads.com/book/show/34787987-when-the-state-meets-the-street&quot;&gt;When the State Meets the Street&lt;/a&gt;看起来主题有点像，准备明年读。&lt;/p&gt;

&lt;h3 id=&quot;quit-the-power-of-knowing-when-to-walk-away&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/60097435-quit&quot;&gt;Quit: The Power of Knowing When to Walk Away&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;读起来简单、做起来难的鸡汤，学到了几件事：“猴子和基座”（the monkey and the pedestal）的&lt;a href=&quot;https://stevebizblog.com/why-is-the-monkey-and-the-pedestal-story-so-important/&quot;&gt;比喻&lt;/a&gt;，一个是锦上添花虚假进展，另一个是真正的进度、也可以叫做limiting process（下一本书术语，大约是限制项目进展的核心问题）；另一件是保持心态开放，随时准备投简历和接HR cold call。&lt;/p&gt;

&lt;h3 id=&quot;high-output-management&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/324750.High_Output_Management&quot;&gt;High Output Management&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://ahxxm.com/180.moew/&quot;&gt;去年&lt;/a&gt;看的The Effective Manager和Staff Engineer，和上一本呼应的是limiting process，在做项目规划时候应该从这些关键和复杂的步骤来倒推流程。扪心自问，你老板是否符合：只&lt;del&gt;偶尔&lt;/del&gt;传达&lt;del&gt;部分&lt;/del&gt;信息，&lt;del&gt;因为浮于表面做包工头太久&lt;/del&gt;无法提高下属技能水平，也不知道怎么激励别人。最后有个清单，让我想起&lt;a href=&quot;https://www.matthewjmiller.net/files/cc2e_checklists.pdf&quot;&gt;cc2e&lt;/a&gt;。&lt;/p&gt;

&lt;h3 id=&quot;重回初三&quot;&gt;&lt;a href=&quot;https://www.jjwxc.net/onebook.php?novelid=2171074&quot;&gt;重回初三&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;同样是穿越，这本就很是是枝裕和， 比下面这本男频不知道好到哪里去了，看完补了票，下次注意少看男频！&lt;/p&gt;

&lt;h3 id=&quot;大秦不装了你爹我是秦始皇&quot;&gt;&lt;a href=&quot;https://book.qidian.com/info/1027094496/&quot;&gt;大秦：不装了，你爹我是秦始皇&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;好好的谐文设定，写着写着就从显圣变成了颂圣，后来看到作者承认写民粹是因为缺钱，倒是不做作。我寻思如果不差钱，到不装了全本就挺好。&lt;/p&gt;

&lt;h3 id=&quot;the-spy-who-came-in-from-the-cold&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/19494.The_Spy_Who_Came_In_from_the_Cold&quot;&gt;The Spy Who Came In from the Cold&lt;/a&gt;&lt;/h3&gt;

&lt;h3 id=&quot;sorry-sorry-sorry-the-case-for-good-apologies&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/61273736-sorry-sorry-sorry&quot;&gt;Sorry Sorry Sorry: The Case for Good Apologies&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;好的道歉有多罕见，就意味着同理心有多罕见，一边看就一边想起Genius bar和整个cult，还有我们”tech industry”常见的”I take full responsibility”同时拿全公司最高奖金。&lt;/p&gt;

&lt;h3 id=&quot;ministry-of-time&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/199798179-the-ministry-of-time&quot;&gt;Ministry of Time&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;这其实不是一本科幻，更像是同人……&lt;/p&gt;

&lt;h3 id=&quot;nazi-billionaires&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/58312061-nazi-billionaires&quot;&gt;Nazi Billionaires&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;（字面意义上的）孝子贤孙辩护当时掠夺财产和强迫劳动是商业行为且没得选择，这些商人自己倒是觉得随时可以离开，只不过选择了留下来，最后纽伦堡审判结果也支持了这些“商业行为”。&lt;/p&gt;

&lt;h3 id=&quot;sovietstan&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/46158740-sovietistan&quot;&gt;Sovietstan&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;好几个斯坦，有钱的斯坦可以像朝鲜，发展经济收缩自由，没钱的斯坦可以像以前的朝鲜。&lt;/p&gt;

&lt;h3 id=&quot;9号的工作&quot;&gt;&lt;a href=&quot;https://book.douban.com/subject/36327195/&quot;&gt;9号的工作&lt;/a&gt;&lt;/h3&gt;

&lt;h3 id=&quot;lessons-in-chemistry&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/206305528-lessons-in-chemistry&quot;&gt;Lessons in Chemistry&lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Your mom need a moment of herself！&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;nothing-to-envy&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/40604846-nothing-to-envy&quot;&gt;Nothing to envy&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;多位脱北者视角，甚至还有送北探亲又被抓的……现在至少不用饿死或者相互举报了，也不知是好是坏。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“政治机会”理论却说：不对，哪里有反抗的机会，哪里才会有反抗。反抗并不与压迫成正比，而是与反抗的政治机会成正比。为什么？压迫太深了你无力反抗啊。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;放在韩国的背景下，尽管自李承晚时代开始，韩国就是威权制度，但这是一个充满缝隙的威权制度。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;所以，韩国的民主运动就是从这些制度缝隙中成长起来的。在校园里，除了维新宪法那几年，学生会基本上可以自治，被选出来的学生会成为抗议活动的组织者。各种以“学习小组”“兴趣小组”面目出现的学生组织也很多。此外，当时的韩国有宗教自由，教会的成长很快，教会后来也成为民主运动的重要同盟，所以在这几部电影里都能看到牧师的身影。工会、农民协会，也都有一定的生存空间。也就是说，韩国民主观念的扩散是一点点挤出来的，一厘米的缝隙被挤成十厘米，一米变十米……直到新制度从旧制度中破茧而出。当然，韩国民主运动也有低潮期，什么时候？恰恰是政治压制最深重的维新宪法时代。因为没有政治机会，就没有政治运动。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;文学部唯野教授&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/57008614&quot;&gt;文学部唯野教授&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;本来是想找一本他的科幻……读着好骂觉得作者会很有意思，看后记发现果然是炫技好骂。&lt;/p&gt;

&lt;h3 id=&quot;the-trading-game-a-confession&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/188543465-the-trading-game&quot;&gt;The Trading Game: A Confession&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;语言人物故事都很有味道，专业知识也写得通俗易懂。&lt;/p&gt;

&lt;h3 id=&quot;venture-deals&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/11865558-venture-deals&quot;&gt;Venture Deals&lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Economics and Control&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;VC也不总是花自己钱，很多时候是为了赚管理费，动机就和公司、投资人不总是一致了，但长远来看认真选项目也是必须的，圈子很小，街上声誉很有用。&lt;/p&gt;

&lt;h3 id=&quot;good-strategy-bad-strategy&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/11721966-good-strategy-bad-strategy&quot;&gt;Good Strategy, Bad strategy&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;好骂：&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Instead of long tables of numbers and bubble charts, we have a different type of ritualized formalism for producing “strategic plans.” The current fill-in-the-blanks template starts with a statement of “vision,” then a “mission statement” or a list of “core values,” then a list of “strategic goals,” then for each goal a list of “strategies,” and then, finally, a list of “initiatives.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;the-vulva-and-the-vagina-separating-the-myth-from-the-medicine&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/43232971-the-vagina-bible&quot;&gt;The Vulva and the Vagina: Separating the Myth from the Medicine&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;推荐阅读，很多好骂和流言终结，好多习俗都是自古以来口口相传没有任何证据。&lt;/p&gt;

&lt;h3 id=&quot;the-emperors-new-drugs-exploding-the-antidepressant-myth&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/6943460-the-emperor-s-new-drug&quot;&gt;The Emperor’s New Drugs: Exploding the Antidepressant Myth&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;placebo和nocebo，如果这些药的作用确实都是副作用带来的，那新款安慰剂和其叙事也不一定是坏事。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Depression may result from a normally functioning brain, containing neural networks that have been shaped by life events and that respond to current life demands in a way that is experienced subjectively as sadness and despair. It may be the events themselves that make us feel lost and hopeless, or it may be the way in which we have learned to interpret those events. In either case, the underlying brain mechanisms may be normal.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;北颂&quot;&gt;&lt;a href=&quot;https://book.qidian.com/info/1015508346/&quot;&gt;北颂&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;开头局是亮点，局本身过关，局后各方反应在起点男频很出色，以至看接下来内容都觉得是代笔，落差太大，而且越来越差。&lt;/p&gt;

&lt;h3 id=&quot;the-power-of-boredom&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/63271542-the-power-of-boredom&quot;&gt;The Power of Boredom&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;主旨还不错，叔本华看了会赞同。无聊时候脑子会&lt;a href=&quot;https://neurosciencenews.com/boredom-creativity-rest-21582/&quot;&gt;涌现一些反思和计划&lt;/a&gt;，这好像也符合&lt;a href=&quot;https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2024.1514348/full&quot;&gt;神经科学研究&lt;/a&gt;，作者意思是主动去引导和检验这些想法，看看谁在什么时候植入了它们，以及应该做出什么反应。就像所有网红书，讲道理时会用故事来牵强附会，絮絮叨叨反反复复。&lt;/p&gt;

&lt;h3 id=&quot;重生野性时代&quot;&gt;&lt;a href=&quot;https://www.qidian.com/book/1013026063/&quot;&gt;重生野性时代&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;一些早期互联网和实业家八卦，尺度还可以，居然是2018以后的？&lt;/p&gt;

&lt;h3 id=&quot;十问霍金沉思录&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/46141308&quot;&gt;十问：霍金沉思录&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;书是好书，但是翻译一言难尽，还不如让GPT一段段翻译。（各种网红Github项目就是这样做的）&lt;/p&gt;

&lt;h3 id=&quot;可能性的艺术比较政治学30讲&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/61024583-30&quot;&gt;可能性的艺术：比较政治学30讲&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;如果给一个不怎么知道政治学“常识”（书里对这词也有讨论）的人读，那大约就像是心理咨询第一步，用新事实和观点把人弄困惑，才能开始意识到自己无知。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;这本书可能很多人都读过，叫《人性中的善良天使》——这可能也是21世纪最重要的书之一。大家可能听说过一个词，叫作“政治性抑郁”，这本书可以说专治各种“政治性抑郁”。反正每次翻这本书，我整个人就都变好了，连血糖、血脂都刷刷下降了。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;debt-the-first-5000-years&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/6617037-debt&quot;&gt;Debt: The First 5,000 Years&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;听完的，后面说美国二战后撒币和我国以前朝贡有点像，但美国有海军支持……&lt;/p&gt;

&lt;h3 id=&quot;大医凌然&quot;&gt;&lt;a href=&quot;https://www.qidian.com/book/1011486666/&quot;&gt;大医凌然&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;普普通通爽文，但是从比较难的外科切入，不太瞎跟风煽情，也不错了。&lt;/p&gt;

&lt;h3 id=&quot;my-life-as-a-quant&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/134598873-my-life-as-a-quant&quot;&gt;My Life as a Quant&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;语言人物故事也都很有味道。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;… It was impossible to resist the temptation to generalize to N couples.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;奸臣&quot;&gt;&lt;a href=&quot;https://www.qidian.com/book/2190729/&quot;&gt;奸臣&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;本格穿越，不种田不种马，没有王八之气，反派智商在线，文抄少，钓鱼伏笔长，收尾时机也很到位，2025希望能多发现几本这样的轻松小说。&lt;/p&gt;

&lt;h3 id=&quot;the-little-book-of-market-myths&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/15941486-the-little-book-of-market-myths&quot;&gt;The Little Book of Market Myths&lt;/a&gt;&lt;/h3&gt;

&lt;h3 id=&quot;the-good-enough-job-reclaiming-life-from-work&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/62192519-the-good-enough-job&quot;&gt;The Good Enough Job: Reclaiming Life from Work&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;很有些关于打工的金句：&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“When we give all of our energy to our professional lives, we deprive the other identities that exist within us - spouse, parent, sibling, neighbour, friend, citizen, artist, traveller - of the nutrients to grow” (p. 21)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Games tell us exactly what we should be doing, and exactly how well we’re doing it. They provide a sort of existential balm.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;We shouldn’t work less just because it allows us to be better workers. We should work less because it allows us to be better humans.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;when you don’t take an active role in determining what you value, you inherit the values of the systems around you.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;“At the end of the day, a job is an economic contract. It is an exchange of labour for money. The more clear-eyed we can be about that, the better.” (p. 179)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;“On the other side of deprioritising work is prioritising life.” (p. 186)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Work will always be work. Some people work doing what they love. Other people work so that they can do what they love when they’re not working. Neither is more noble.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;平安小猪&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/60137028&quot;&gt;平安小猪&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;平安小嘟！&lt;/p&gt;

&lt;h3 id=&quot;four-thousand-weeks-time-management-for-mortals&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/54785515-four-thousand-weeks&quot;&gt;Four Thousand Weeks Time Management for Mortals&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;要说有什么平等，可能就是人固有一死比较平等，有限生命中做出任何选择都等于放弃了其他选择。&lt;/p&gt;

&lt;h3 id=&quot;掉队的拉美&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/55356077&quot;&gt;掉队的拉美&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;横向比起来，智利军政府和后来政府能做到萧规曹随真是相当不容易。以及，相对伟人奇观，还是尊重现实比较可行。&lt;/p&gt;

&lt;h3 id=&quot;chip-war&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/60321447-chip-war&quot;&gt;Chip War&lt;/a&gt;&lt;/h3&gt;

&lt;h3 id=&quot;大唐第一世家&quot;&gt;&lt;a href=&quot;https://www.qidian.com/book/1022885215/&quot;&gt;大唐第一世家&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;休闲种田，基友们和脱线不错，缺点是水得太有规律。&lt;/p&gt;

&lt;h3 id=&quot;michael-jordan-the-life&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/18453086-michael-jordan&quot;&gt;Michael Jordan: The Life&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;2024年听老八卦听得津津有味，生活中对谁都很有耐心，但这不妨碍球场trash talk……上班是上班生活是生活？&lt;/p&gt;

&lt;h3 id=&quot;h-is-for-hawk&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/18803640-h-is-for-hawk&quot;&gt;H is for Hawk&lt;/a&gt;&lt;/h3&gt;

&lt;h3 id=&quot;how-to如何不切实际地解决实际问题&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/53486345-how-to&quot;&gt;How to：如何不切实际地解决实际问题&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;xkcd!&lt;/p&gt;

&lt;h3 id=&quot;法治的细节&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/59719801&quot;&gt;法治的细节&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;原来罗老师一开始补课也纯粹是为了谋生，就像费正清和汪曾祺。&lt;/p&gt;

&lt;h3 id=&quot;制造音乐&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/42035012&quot;&gt;制造音乐&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;瓦格纳真是个妙人，自己建音乐厅播自己音乐，做完了又根据结构写歌。&lt;/p&gt;

&lt;h3 id=&quot;东京前传&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/62336145&quot;&gt;东京前传&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;很多插图！怎么读一幅画，比如葛饰北斋作为宫廷画家时：&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;人们一眼即可识别这是什么地方。北斋并没有把城堡画出来，实际上，他要表明的就是：出于“敬畏”而不显示城堡。我们没有看到城堡，但是，我们看到了一只鸟。这似乎有些无礼，因为鸟类栖息在哪里，就会在哪里留下粪便。但这不是北斋要表达的意义。鸟儿非常胆怯，稍有动静就会飞走。而在这里，一只鸟在休憩，甚至是在睡觉——这是和谐的终极标志，意味着没有任何警报发出。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;the-dictators-handbook&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/11612989-the-dictator-s-handbook&quot;&gt;The Dictator’s Handbook&lt;/a&gt;&lt;/h3&gt;

&lt;h3 id=&quot;天才的编辑&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/42263822&quot;&gt;天才的编辑&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;书是好书，人也是好人，翻译不错，就是first name和last name混用有点过于尊重原文。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;对于两性的问题，他把内心更深处真实的感觉告诉伊丽莎白·莱蒙，这个他愿意袒露一些心迹的女人。“在这个世界上，女孩获得的机会不平等，相差岂止多少英里，”他在给她的信里谈到养育女儿时说，“如果我们是由一个公正的神灵主宰的，男人要么当一回女人，体验做女人的滋味——要么就是当过女人，这是我祈祷的。”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;普通读者&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/35922237&quot;&gt;普通读者&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;第一次读伍尔夫，没有被吓到……序就很好看，译者用心，一看附录瞿世镜1982年翻译的，附录也像是译者写论文。 （&lt;a href=&quot;https://www.douban.com/group/topic/1558602/&quot;&gt;豆瓣帖子&lt;/a&gt;对比翻译）&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;他所受的教育稍逊，大自然也没有如此慷慨大度地给予他优秀的天赋。他是为了个人的兴趣而阅读，不是为了传授知识或纠正他人的见解。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;天启预报&quot;&gt;&lt;a href=&quot;https://www.qidian.com/book/1014180485/&quot;&gt;天启预报&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;打架实在是不好玩，我缺乏想象力……和记不住名字，看到一半弃了。&lt;/p&gt;

&lt;h3 id=&quot;反正竞赛还很长&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/42302527&quot;&gt;反正竞赛还很长&lt;/a&gt;&lt;/h3&gt;

&lt;h3 id=&quot;给青年的十二封信&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/20741669&quot;&gt;给青年的十二封信&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;朱光潜说“你要”就没有说教意味，很奇妙。&lt;/p&gt;

&lt;h3 id=&quot;原宿牛仔日本街头时尚五十年&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/50979809&quot;&gt;原宿牛仔：日本街头时尚五十年&lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;推动这些改变的人往往不是受过专业训练的服装设计师，而是企业家、进口商、杂志编辑、插画家、造型师以及音乐工作者。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;催眠师手记&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/19202885&quot;&gt;催眠师手记&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;这本可以当本格推理看，来访者就是题目，而且这本书确实被放在了悬疑推理类。&lt;/p&gt;

&lt;h3 id=&quot;啤酒事典&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/91876265&quot;&gt;啤酒事典&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;看起来啤酒比咖啡科学太多，全过程都有测量和实验，&lt;del&gt;也&lt;/del&gt;要多喝点，不能辜负了行业一番心意。&lt;/p&gt;

&lt;h3 id=&quot;2001太空漫游&quot;&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/52925592-2001&quot;&gt;2001太空漫游&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;现在读着有点像读芥川龙之介，很多元素在其他很多小说里都出现过。&lt;/p&gt;
</description>
        <pubDate>Tue, 31 Dec 2024 00:00:00 +0000</pubDate>
        <link>https://ahxxm.com/181.moew/</link>
        <guid isPermaLink="true">https://ahxxm.com/181.moew/</guid>
        
        
        <category>Reading</category>
        
      </item>
    
      <item>
        <title>2023年读书随笔</title>
        <description>&lt;p&gt;今年包括少许有声书和适量鸡汤，简化了分类。&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;不是故事&quot;&gt;不是故事&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/45322607&quot;&gt;日本新中产阶级&lt;/a&gt; 上世纪50年代末出版，时隔几十年续了一章，又时隔十几年更新了后记，读着有强烈既视感，附录田野研究报告也很好看。不知道为啥评分挺低的，goodreads说是dry research，豆瓣说是缺乏实际透彻的分析，恶政隐……还有这等好事？&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;自《日本新中产阶级》第一版出版以来，来自东京不同郊区的人都问我，研究的是否是他们的社区。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/59900414-indelible-city&quot;&gt;Indelible City&lt;/a&gt; 很沉重，原来港府不对人民负责是传统，寿终正寝再实际执行也是传统。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Now we all were Kings of Kowloon&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/60781989&quot;&gt;博物馆窜行记&lt;/a&gt; 内容很实在的艺术史，读完在google maps加了不少图钉。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35050614/&quot;&gt;我的二本学生&lt;/a&gt; 浮夸的微博文风，仔细看发现是一些活生生的人，高考中产？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/91307780&quot;&gt;中年之路：人格的第二次成型&lt;/a&gt; 奇怪，以前没看过类似总结……后面的诗歌散文怎么回事？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/44526017-narrative-economics&quot;&gt;Narrative Economics&lt;/a&gt; SNR比较低，讲了不少故事，后来自己也说大篇幅引用。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/27416067-dialogue&quot;&gt;Dialogue: The Art of Verbal Action for Page, Stage, and Screen&lt;/a&gt; 作者本人做narrator，还有其他人参与配音，前40%大部分在故事和其他写作理论书里读过——想起读芥川的感觉，也可能是后人借鉴和致敬太多。后面的故事情节分析好棒好黑暗，最后还有个checklist，不过有声书没法划线。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/49225165-secondhand&quot;&gt;Secondhand&lt;/a&gt; 原来日本&lt;del&gt;也&lt;/del&gt;才浪费，用不旧就丢去其他东南亚国家。中国制造和沃尔玛低价共同拉低了价格和质量，新衣服洗几次就坏，基本上是快消。因为中国二手太容易坏，二手买家吃过亏后就倾向于其他国家来的二手产品，喜欢能用得久的好品牌。最后也比较黑暗，告诉读者想知道自己东西有人能用上是人之常情，但最后结果可能是捐赠处卖给二手处理商，处理商再层层卖出去。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/60784843-pirate-enlightenment-or-the-real-libertalia&quot;&gt;Pirate Enlightment&lt;/a&gt; 中世纪海盗王国，对外形象要残暴，但是内部因为随时能造反，所以必须很民主。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/22245334-the-utopia-of-rules&quot;&gt;The utopia of rules&lt;/a&gt; 批判了一番美国制度化官僚思维，穷人深受其害。美国人建立了WTO、IMF和世界银行，英国人自诩官僚但是只会入侵和做生意，从没想过把世界管起来。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;It becomes ugly and inaccurate because our thoughts are foolish, but the slovenliness of our language makes it easier for us to have foolish thoughts.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://www.audible.com/pd/Poverty-by-America-Audiobook/B0B646B1DP&quot;&gt;Poverty, by America&lt;/a&gt; 听着像是在唤醒良知(policies that foster good will)，但没良知怎么唤醒？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/18663931&quot;&gt;邓小平时代&lt;/a&gt; 十年前买了实体书，今年才听，信息量很大，听了很久。21章结尾和英文版、港中大版稍微有点不一样，但无伤大雅。这本书出版时候，开头还可以列被采访者人名，到Indelible City就必须隐藏重措辞保护被采访者了。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/16248231-saving-normal&quot;&gt;Saving Normal&lt;/a&gt; DSM5即开药指南，上世纪煞有介事流行多重人格，现在流行ADHD、自闭、双相……所谓high flier就是用最短时间给最多人开出最多精神病药物的医生。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/25670869-why-greatness-cannot-be-planned&quot;&gt;Why Greatness Cannot Be Planned: The Myth of the Objective&lt;/a&gt; 小册子，内容还不错，读翻译版，本来寻思这书不咋会删节，看英文也学不到什么新词汇……结果只对了后一半，翻译实在是一言难尽，比删节还难受。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;这些道理不符合普通人升职加薪的攻略，也与很多后发进取的国家发展经验相悖。这些国家在过去几十年间经常讲目标、谈规划，确实取得了伟大的成就。后发优势使它们不用踩踏脚石就知道飞机、微波炉和计算机是怎么回事儿，它们便可以确立明确的目标。这样的发展方式速度虽快，但是也在无形中限制了它们——它们不太擅长寻找踏脚石。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/6899290-your-brain-at-work&quot;&gt;Your brain at work&lt;/a&gt; 科学鸡汤，有意识地注意到自己习惯和思维方式并用语言精确描述出来，能帮助一个人好好做完事情。其他鸡汤都比较老生常谈，一件件做，把一件事分成多个进度，专注于结果而不是好奇心。另外书中提到了status relateness autonomy fairness certainty，这5个，你工作中有几个？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/34466958-bullshit-jobs&quot;&gt;Bullshit jobs&lt;/a&gt; 和上面5个角度很相关，pure powerplay真是准确形容。很多坐班中下层白领感觉工作毫无自主权也感受不到意义，看到蓝领会嫉妒他们工作有意义，觉得不公平。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/36048073-7-eleven&quot;&gt;零售的哲学&lt;/a&gt; 即使一线便利店员工都是小时工（而非永久雇佣），给员工一点autonomy，让他们参与订货和观察客户发现需求也是双赢。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/40121378-atomic-habits&quot;&gt;Atomic habits&lt;/a&gt; 鸡汤又一本，别人写的&lt;a href=&quot;https://tianxianzi.me/2023/08/03/atomic_habits/&quot;&gt;浓缩版&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.amazon.com/Socratic-Method-Practitioners-Handbook/dp/1567926851&quot;&gt;Socrates Method: practitioner handbook&lt;/a&gt; 带读者一起看柏拉图对话录，精髓（？）在于让人自相矛盾，自己不需要发表观点，只要沿着逻辑问就行，但这个精髓已经比较熟悉，不值6小时。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/56481725-staff-engineer&quot;&gt;Staff Engineer: Leadership Beyond the Management Track&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/60321392-the-song-of-the-cell&quot;&gt;The song of the cell&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;It has evolved language, organization, memory, architecture, subcultures, and self-recognition. A new metaphor comes to mind. Perhaps we might think of it as a cellular civilization.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://m.douban.com/book/subject/35412898/&quot;&gt;爱与依恋的力量&lt;/a&gt; 看标题差点错过依恋理论和这位学者，像是一本传记，他研究生里有两位非常有名的学生。原来20世纪早期左右婴儿都是隔离的吗，怪不得会二战。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/123999085-1200&quot;&gt;原始饮食&lt;/a&gt; 不看英文书名差点错过，很多饮食科普，还可以在生活中对上号，但到年底又想不起来什么不该吃，只记得一定要注意饮食……海鲜，蔬菜，优质蛋白质和脂肪，益生菌，大概这么些，细嚼慢咽。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/55171755-6-8-5-6-30-6?ref=nav_sb_ss_1_9&quot;&gt;焦虑症与恐惧症手册&lt;/a&gt; 不知道为什么评分这么高，前面好多重复内容，后面看起来像是参考书，内容本身倒是还不错。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/156938242&quot;&gt;高薪城市&lt;/a&gt; 学术界作者，有自己研究的乘数效应和各种连锁反应，也有很多类似文献综述，其中乘数效应一个推论是，给高技能人才签证和创造就业并不矛盾。编辑有点不上心，重复内容好多。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://weread.qq.com/web/bookDetail/fb532590813ab6d00g012206&quot;&gt;杉本博司摄影随笔三册&lt;/a&gt; 原来昭和天皇小时候去过一战后的欧洲……墨索里尼给mi5打工，金将军去过瑞士，天皇好像也不是很值得惊诧。这三册真的相当随笔，比本篇还随笔。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/22704941&quot;&gt;动物精神&lt;/a&gt;: spiritus animalis比较难翻译，内容没有我想象中那么狂野。和&lt;a href=&quot;https://ahxxm.com/177.moew/&quot;&gt;去年&lt;/a&gt;读的非理性繁荣主题相似，话题更广泛，出版也更晚些，把当今尚不属于经济学的其他学科纳入考虑，用历史和故事解释一些现象。因为不能量化，有些“主流”经济学家反对纳入，但我寻思一些基本假设也没量化、还经不起事实考验……&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;我们希望，对读者而言上面的论述并没有涉及什么新东西。实际上，我们认为，它确实和许多著名学者在研究美国黑人时得出的主要结论相一致。这些学者包括伊莱贾·安德森、杜波依斯、威廉·亨利·盖茨、格伦·劳里、李·雷恩沃特、威廉·朱利叶斯·威尔逊以及其他很多人。我们还可以从他们每人的著作中找到那些可以总结我们所说内容的段落。我们还可以找到类似的故事，尽管故事背景可能不同。我们还可以描写黑人女性的行为，而不仅仅是黑人男性。我们还可以着重讨论人们无法获得成功（如学习成绩差、加入犯罪团伙、酗酒和吸毒成瘾以及早孕等）的各种原因。其实，我们描述的情况非常普遍，足以巨细靡遗地反映没有进入中产阶级或劳工阶层的美国黑人的生活。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/59891634-smart-brevity&quot;&gt;Smart Brevity&lt;/a&gt; 如何在工作和新闻中赢得注意力。经过现代互联网驯化，人类注意力持续时间按秒计，一句话(teaser/lede)写得好可以争取到多几秒，这样几秒几秒下来，一条推长度的内容别人就能读完，有了他们注意力，很多事才能做。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“I didn’t have time to write you a short letter, so I wrote you a long one.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/27316166-the-effective-manager?ref=nav_sb_ss_1_21&quot;&gt;The Effective Manager&lt;/a&gt; 本书定义下一线管理者的责任是产出和留人，事情是做不完的，要量化和排优先级，招人和培训都特别贵，所以得留。号称用了25年数据，而非用故事讲故事，实际看下来确实如此，有非常多能和现实对应上的细节，”direct reports”和其他称呼的dehumanization问题，1on1时话题排序以防agenda fascism，&lt;del&gt;除了coaster&lt;/del&gt;所有人都很容易找到熟悉的工作分派出去一起成长，等等等等。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/120997303---1935-1959&quot;&gt;加缪笔记&lt;/a&gt; 很多条好抽象，不抽象的都能想到具体案例。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/48581422-stop-reading-the-news&quot;&gt;Stop Reading the News&lt;/a&gt;和&lt;a href=&quot;https://www.goodreads.com/book/show/28257707-the-subtle-art-of-not-giving-a-f-ck&quot;&gt;The Subtle Art of Not Giving a Fuck&lt;/a&gt; 内容正好也是最近在想和实践的一些原则：人要有自知之明，时间有限，所以&lt;a href=&quot;https://www.youtube.com/watch?v=job52mBUvjc&quot;&gt;注意力也有限&lt;/a&gt;，每天有多少注意力本该花在更该花的地方呢？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/36340275-the-art-of-the-good-life&quot;&gt;The Art of the Good Life&lt;/a&gt; 和 &lt;a href=&quot;https://www.goodreads.com/book/show/16248196-the-art-of-thinking-clearly&quot;&gt;The Art of Thinking Clearly&lt;/a&gt; 同作者鸡汤三连，这两本不如上一本贴近生活，但也值得打发时间一读。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/7175088-a-reader-on-reading&quot;&gt;A reader on reading&lt;/a&gt; 作者写了好多我想写而写不出的东西！在众多quotes中这段最有书名应有之义，得闲还想重读一遍。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I am tempted to say that perhaps this is all that literature really does. I am tempted to say that every book that allows a reader to engage with it asks a moral question. Or rather: that if a reader is able to delve beyond the surface of a given text, such a reader can bring back from its depths a moral question, even if that question has not been put by the writer in so many words, but its implicit presence elicits nevertheless a bare emotion from the reader, a foreboding or simply a memory of something we knew, long ago. Through this alchemy, every literary text becomes, in some sense, metaphoric.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35891352/&quot;&gt;BEAMS AT HOME 理想之家&lt;/a&gt; BEAMS设计师采访合辑，家装相册。看了大概一半，很多人共同答案是喜欢沙发，多接触新东西，不怎么收拾。&lt;/p&gt;

&lt;h2 id=&quot;故事&quot;&gt;故事&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/45436214&quot;&gt;死屋手记&lt;/a&gt; 和Yes Minister类似，像是生活来源于艺术，这本开头让人想起了工作，第二卷开头很是意识流。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/7044883&quot;&gt;海边的卡夫卡&lt;/a&gt; 理解这个设定不代表要喜欢它对吧？书里有不少莫名其妙的隐喻，只对图书馆比较满意，还有个隐喻算是读后感：神社附近的女角色，读了点哲学就开始凭本事赚钱，像是作者在说自己和这本书。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/34051011-pachinko&quot;&gt;Pachinko&lt;/a&gt; narrator听起来像是英语日语韩语都会，译本里日语韩语不是太多，但读着挺有味道，换角色和场景时候也会因地制宜改变声调和节奏，对着繁中译本听了1/3就改成看了，有点可惜。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/54493401-project-hail-mary&quot;&gt;Project Hail Mary&lt;/a&gt; 假设和验证情节让我想起长夜余火，科幻版写作废料再利用，让设定细节更经得起推敲，也让读者每次都更容易回到这个世界里。在有温度记录以来最热的夏天读到书中某个情节感觉很奇妙……&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://weread.qq.com/web/reader/43a32740813ab700cg010f5b&quot;&gt;地狱变&lt;/a&gt; 芥川龙之介短篇合集，其中同名短篇叫地狱变，还有不少其他作品。妙啊，在后来小说电影里都能看到痕迹。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/34066798-a-gentleman-in-moscow&quot;&gt;A Gentleman in Moscow&lt;/a&gt; 这本一边听有声书，一边看简体中文版。感觉是很难翻译，章节名和很多用词几乎没法翻，&lt;a href=&quot;https://book.douban.com/subject/30128204/&quot;&gt;简体中文版&lt;/a&gt;翻译忠于原文、通顺而地道，还能做到删减这么少，不容易。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/10054335-rules-of-civility&quot;&gt;Rules of Civility&lt;/a&gt; 本来挺沉重一结尾，附录是要笑死我……&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/en/book/show/55333938&quot;&gt;The Personal Librarian&lt;/a&gt; Epilogue和Historical Note好听，如此dramatic居然是基于真实故事。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/31841099-agent-m?ref=nav_sb_ss_1_15&quot;&gt;Agent M&lt;/a&gt; 叙事比较奇怪，像是作者在破案、找agent身份，只有开头和结尾读起来比较有意思，中间缺了很多classified documents没跟上。开头提到墨索里尼小时候还从mi5赚过零花钱，一周100胖，维稳，让left wing不上街。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/29662443-the-pigeon-tunnel&quot;&gt;The Pigeon Tunnel&lt;/a&gt; 间谍回忆录&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;These are true stories told from memory—to which you are entitled to ask, what is truth, and what is memory to a creative writer in what we may delicately call the evening of his life? To the lawyer, truth is facts unadorned. Whether such facts are ever findable is another matter. To the creative writer, fact is raw material, not his taskmaster but his instrument, and his job is to make it sing. Real truth lies, if anywhere, not in facts, but in nuance.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/36388712/&quot;&gt;心有邻兮&lt;/a&gt; 成人童话……看豆瓣上有人特别差评，说前作&lt;a href=&quot;https://book.douban.com/subject/35386828/&quot;&gt;脱线森林&lt;/a&gt;好看很多，于是也看了前作，不是同一类。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/1162216.Down_and_Out_in_Paris_and_London&quot;&gt;Down and Out in Paris and London&lt;/a&gt; 奥威尔的低端人口自传，有些温暖人心，有些又很黑暗真实&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Poverty frees them from ordinary standards of behaviour, just as money frees people from work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;起点和晋江故事&quot;&gt;起点和晋江故事&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://www.qidian.com/book/1004142144/&quot;&gt;武道宗师&lt;/a&gt; 热血少年漫，白得一点都不像作者。那个存在感很低的我在哪见过？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.qidian.com/book/1019664125/&quot;&gt;大奉打更人&lt;/a&gt; 久违一本能开后宫，感觉好多年都没看到脖子以下了。破案手法有点福尔摩斯，读者和作者掌握的线索不一样，文抄大部分时候还比较应景。不知道是什么辅助写作工具没用好，到后一半就烈火烹油烈火烹油烈火烹油烈火烹油烈火烹油烈火烹油……&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.qidian.com/book/1013562540/&quot;&gt;第一序列&lt;/a&gt;、&lt;a href=&quot;https://www.qidian.com/book/1013562540/&quot;&gt;夜的命名术&lt;/a&gt; 作者一贯的王五画风上加了些隐喻和刀法，剧情有承接（但不影响阅读），起点上还有精修笔记，作者承认写不满300万字才把持得住各位角色。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.qidian.com/book/1013570329/&quot;&gt;我能看见状态栏&lt;/a&gt; 前面非常不错，最后一章感觉有些用力过猛，但想想视角又觉得也可以。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.qidian.com/info/1011489683/?source=m_jump&quot;&gt;谍影风云&lt;/a&gt; 好像原先叫民国谍影，白开水语言，语言不算太白，结局非常突兀，像是喝了茶。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/series/6154&quot;&gt;篡清&lt;/a&gt; 2008年全本的书就是不大一样，可以直白地称呼近现代人物，还可以cue其他作者金手指乱开，自己写阳谋大势&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;让老百姓占点便宜咱们就会死&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://book.qidian.com/info/1016855477/&quot;&gt;小阁老&lt;/a&gt; 好好的爽文为什么要用党八股凑字数…… 中间有段八股写了三个版本还不错。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.jjwxc.net/onebook.php?novelid=3193259&quot;&gt;天才基本法&lt;/a&gt; 非常好看的晋江文，番外好甜。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;www.jjwxc.net/onebook.php?novelid=2575714&quot;&gt;犯罪心理&lt;/a&gt; 非常好看的晋江文，番外好甜。（手打，同一个作者）&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.jjwxc.net/onebook.php?novelid=4758691&quot;&gt;借剑&lt;/a&gt; 作者自称写书是完全为了自己、设定也并不新奇，但打架和升级描写兼顾细腻和玄幻，各个副本设定都颇有深意。&lt;/p&gt;

&lt;p&gt;不知道说啥的两本： &lt;a href=&quot;https://www.goodreads.com/book/show/75253378-the-last-bookshop-in-london&quot;&gt;伦敦最后一家书店&lt;/a&gt;  &lt;a href=&quot;https://www.goodreads.com/book/show/23362765&quot;&gt;香水&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;没能看完&quot;&gt;没能看完&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/53976288-mantel-pieces&quot;&gt;Mantel Pieces&lt;/a&gt;，借了audiobook，太有文化，后面没听懂提前还书&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/25131600-aftermath&quot;&gt;Aftermath&lt;/a&gt; 开头好生暴力，然后是文艺青年开启SCP之旅，熟悉的protocol……但是没看下去，看了2章及时止损，文艺青年模式太多，有代沟，法医题材对我也不新颖&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://zh.moegirl.org.cn/%E4%B8%BA%E7%BE%8E%E5%A5%BD%E7%9A%84%E4%B8%96%E7%95%8C%E7%8C%AE%E4%B8%8A%E7%A5%9D%E7%A6%8F%EF%BC%81&quot;&gt;为美好的世界献上祝福&lt;/a&gt; 太白了没能看下去……&lt;/p&gt;
</description>
        <pubDate>Fri, 22 Dec 2023 00:00:00 +0000</pubDate>
        <link>https://ahxxm.com/180.moew/</link>
        <guid isPermaLink="true">https://ahxxm.com/180.moew/</guid>
        
        
        <category>Reading</category>
        
      </item>
    
      <item>
        <title>Train a Personal Image Scoring Model</title>
        <description>&lt;p&gt;I have many images, and I have also deleted many images, I am likely to continue classifying images for preservation or deletion in the future. Can I utilize modern technology to simplify this task, such as ordering by the likelihood to delete before I actually review them?&lt;/p&gt;

&lt;p&gt;Yes to an extent now, and it should become better as my preferences become clearer with more training data.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Warning: moderate amount of Python codes inside.&lt;/em&gt;&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;training&quot;&gt;Training&lt;/h2&gt;

&lt;p&gt;The training process is boringly traditional: collect source data and labels, transform into vectors and labels, remove data leakage, experiment &lt;del&gt;play&lt;/del&gt; with different model structures and hyperparameters, and verify through feedback loop.&lt;/p&gt;

&lt;h3 id=&quot;dataset&quot;&gt;Dataset&lt;/h3&gt;

&lt;p&gt;Since the model needs to express my preferences, all labels are assigned by me, resulting in a small sample size:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;4000+ positive: memes, infographics, professional photos(mostly landscape and some animals), a few photos taken with a phone, screenshots&lt;/li&gt;
  &lt;li&gt;~1000 photos taken by my DSLR, mostly landscape, some animals &lt;!--try not to imply professionalism--&gt;&lt;/li&gt;
  &lt;li&gt;20000+ negative, intentionally kept since I wanted this experiment: photos(some professional ones, most taken with a phone), screenshots&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meme and screenshots are too diverse to describe.&lt;/p&gt;

&lt;h3 id=&quot;model-justification&quot;&gt;Model Justification&lt;/h3&gt;

&lt;p&gt;There aren’t too many options, CLIP limits to 224x224, which was the major blocker of this experiment. I chose &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uform-vl-english&lt;/code&gt; because it allows images of arbitrary shapes, and I do not mind if it generates 224x224 thumbnails &lt;a href=&quot;https://github.com/unum-cloud/uform/blob/main/src/uform.py#L362&quot;&gt;behind the scene&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Another important factor is their excellent article: &lt;a href=&quot;https://www.unum.cloud/blog/2023-02-20-efficient-multimodality&quot;&gt;Beating OpenAI CLIP with 100x less data and compute&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;transform&quot;&gt;Transform&lt;/h3&gt;

&lt;p&gt;The model encodes image and text into a joint embedding of 768 float numbers.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# PIL.Image.MAX_IMAGE_PIXELS=None
# PIL.Image.DecompressionBombError: Image size (252349376 pixels) exceeds limit of 178956970 pixels, could be decompression bomb DOS attack.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;uf_model&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;uform&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;unum-cloud/uform-vl-english&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;DIMENSION&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;768&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;get_image_embedding&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pathlib&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PosixPath&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;typing&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;List&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;img&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Image&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;image_data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;uf_model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;preprocess_image&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;text_data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;uf_model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;preprocess_text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# filenames aren&apos;t necessarily useful, encode anyway
&lt;/span&gt;    &lt;span class=&quot;n&quot;&gt;memb&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;uf_model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;encode_multimodal&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;image_data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;text_data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;detach&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;numpy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;assert&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;memb&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;DIMENSION&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;memb&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;list_dir_recur&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dir_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;path&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pathlib&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dir_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;iterdir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;is_dir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;yield&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;list_dir_recur&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;yield&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;generate_embeddings_for_dir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dir_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sha256&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;get_image_embedding&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;list_dir_recur&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dir_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;suffix&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;.png&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;.jpg&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;.jpeg&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}]&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;filename&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;sig&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;uform_emb&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;To prevent data leakage, I checked file signatures for an exact match, I should also check embeddings similarities.&lt;/p&gt;

&lt;p&gt;Inferencing 8000 images with CPU took about 30 minutes, 20000 images with GPU took slightly shorter, the GPU utilization rate wasn’t high at all. (Quote from &lt;a href=&quot;https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/&quot;&gt;here&lt;/a&gt;: “So fast, in fact, that they(tensor cores) are idle most of the time as they are waiting for memory to arrive from global memory.”)&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# simple label
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_accepted&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;generate_embeddings_for_dir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;accepted_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df_rejected&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;generate_embeddings_for_dir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rejected_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df_accepted&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;val&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;1.0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df_rejected&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;val&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.0&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# To prevent duplicated work, save embeddings to parquet files
# df_accepted.to_parquet(&quot;accepted-{path-description-here}.pq&quot;)
&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_accepted&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_rejected&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drop_duplicates&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;sig&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;val&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;uform_emb&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;val&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]]&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;split_train_test&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;test_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;sdf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sample&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;frac&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;train_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;test_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;iloc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;train_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;iloc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;train_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:]&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;df_train&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_test&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;split_train_test&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;hyperparameters&quot;&gt;Hyperparameters&lt;/h3&gt;

&lt;p&gt;Except for 768 and 1, the model structure is purely arbitrary.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;ImageBinaryClassifier&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;nn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Module&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;layers&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;nn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Sequential&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;nn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Linear&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;768&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;nn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ReLU&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;nn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Linear&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;nn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ReLU&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;nn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Linear&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;nn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ReLU&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;nn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Linear&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;256&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;nn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ReLU&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;nn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Linear&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;256&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;forward&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;layers&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;There isn’t Sigmoid because the loss function &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;BCEWithLogitsLoss&lt;/code&gt; – claims to be numerically stable – covers it, at the cost of needing to sigmoid predicted values.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# HACK: to train with a graphics card, bad practice
# torch.set_default_tensor_type(&apos;torch.cuda.FloatTensor&apos;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ImageBinaryClassifier&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;# sum([x.reshape(-1).shape[0] for x in model.parameters()]) # 10492417 params
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;learning_rate&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.0003&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;num_epochs&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;15&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;batch_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;train_loader&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;DataLoader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;train_dataset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;batch_size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;batch_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;shuffle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;generator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Generator&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;device&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;cuda&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cuda&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;criterion&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;nn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;BCEWithLogitsLoss&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;optimizer&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;optim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;SGD&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;parameters&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lr&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;learning_rate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;momentum&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;0.0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;train&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;epoch&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;num_epochs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;train_loss&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.0&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inputs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;labels&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;enumerate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;train_loader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;optimizer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;zero_grad&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;outputs&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inputs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;loss&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;criterion&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outputs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;labels&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;loss&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;backward&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;optimizer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;step&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;train_loss&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;loss&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Epoch &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;epoch&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;, total loss &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;train_loss&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# save the weights
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MODEL_PATH&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;model.pt&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;save&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;state_dict&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;MODEL_PATH&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The training finished in 10 minutes using Tesla T4, its output looks like:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Epoch 0, total loss 9449.750139231794
Epoch 1, total loss 3176.7831058780284
Epoch 2, total loss 1782.7670029629808
Epoch 3, total loss 1066.8573923760205
Epoch 4, total loss 795.308564953793
Epoch 5, total loss 650.6638346871068
Epoch 6, total loss 562.0393543641796
Epoch 7, total loss 489.4068465524059
Epoch 8, total loss 433.97104152526447
Epoch 9, total loss 393.40820040911666
Epoch 10, total loss 360.4532831643036
Epoch 11, total loss 322.57149341895547
Epoch 12, total loss 307.90023628154034
Epoch 13, total loss 269.49978952276723
Epoch 14, total loss 254.2954651907422
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This specific combination of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;learning_rate&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;num_epochs&lt;/code&gt; allowed the total loss to converge, with diminishing returns(and an increasing risk of overfitting?). I’ve no idea on the optimizer choice, as with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;momentum=0.9&lt;/code&gt; the loss looks lower, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Adam&lt;/code&gt; works fine too.&lt;/p&gt;

&lt;p&gt;During training, the GPU utilization rate reported by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;nvidia-smi&lt;/code&gt; is around 78%.&lt;/p&gt;

&lt;h3 id=&quot;verify&quot;&gt;Verify&lt;/h3&gt;

&lt;p&gt;After each training, first evaluate on the test dataset,&lt;/p&gt;
&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;test_loader&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;DataLoader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;test_dataset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;batch_size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;shuffle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;generator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Generator&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;device&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;cuda&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cuda&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;predictions&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;test_labels&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;no_grad&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;correct&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;total&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inputs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;labels&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;enumerate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;test_loader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;outputs&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sigmoid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inputs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# required by BCEWithLogitsLoss
&lt;/span&gt;        &lt;span class=&quot;n&quot;&gt;predictions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outputs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# batch size 1 to avoid flattening
&lt;/span&gt;        &lt;span class=&quot;n&quot;&gt;test_labels&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;labels&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;total&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;labels&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;correct&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;outputs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;labels&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)).&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Accuracy of the model on the validation set: {:.2f} %&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;100&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;correct&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;total&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# round() is a bad criteria, &amp;gt;95% accuracy makes me doubt where went wrong
# examine individual predictions difference
&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sorted&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;j&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;zip&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;predictions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;test_labels&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;abs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If the performance is too bad or too good, investigate where went wrong, else continue to evaluate new images with the model and eyes.&lt;/p&gt;

&lt;h3 id=&quot;evaluation&quot;&gt;Evaluation&lt;/h3&gt;

&lt;p&gt;Optionally, save weights by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;torch.save(model.state_dict(), &quot;model.pt&quot;)&lt;/code&gt; and transfer back to evaluate local images,&lt;/p&gt;
&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# remote, about 40MB&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;tailscale file &lt;span class=&quot;nb&quot;&gt;cp &lt;/span&gt;model.pt laptop-ae88:
&lt;span class=&quot;c&quot;&gt;# laptop-ae88 to receive&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;tailscale file get &lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Load to infer with CPU:&lt;/p&gt;
&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;saved_model&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ImageBinaryClassifier&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;saved_model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;load_state_dict&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MODEL_PATH&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;map_location&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;device&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;cpu&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;saved_model&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;compile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;saved_model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;saved_model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;IMG_PATH&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;/path-to-some-new-images&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;order_emb&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;generate_embeddings_for_dir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;IMG_PATH&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;order_emb&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;val&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;order_emb&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;uform_emb&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sigmoid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;saved_model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;torch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tensor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)))))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;order_emb&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sort_values&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;by&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;val&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ascending&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;After checking individual predictions, I found some wrong labels, with a little surprise! For example, it suggested with a very high confidence of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;6.15e-07&lt;/code&gt; that an Italian infograph should be deleted instead, which is true, I don’t remember or understand it now.&lt;/p&gt;

&lt;p&gt;I also run this against a new batch of very random images, of the top 10 most “unwanted” images, there are:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;8 to delete at 0.00008~0.10: true negative&lt;/li&gt;
  &lt;li&gt;1 to keep, 0.04: very chill landscape photography, 1200mm(estimated) on a Japanese shrine with full moon as the background&lt;/li&gt;
  &lt;li&gt;1 meme can’t decide on: I tend to believe I’ve better ones to express the same feeling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the way, &lt;a href=&quot;https://twitter.com/mldcmu/status/1048995493848776705&quot;&gt;When your binary classification model outputs 0.5&lt;/a&gt; is a high qualify meme regardless of the image quality.&lt;/p&gt;

&lt;h2 id=&quot;thoughts&quot;&gt;Thoughts&lt;/h2&gt;

&lt;p&gt;The good:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The model can capture some of my preferences on a variety of subjects: meme, screenshot, photography&lt;/li&gt;
  &lt;li&gt;The model can even correct some wrong labels(sometimes)&lt;/li&gt;
  &lt;li&gt;To sort by preferences for the image viewer: sort by the prediction values and “touch” files one by one&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The bad:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;More labels needed: low performing image types, write descriptive filename&lt;/li&gt;
  &lt;li&gt;Trust but verify: The model can also miss my preferences, the full moon picture example above&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ugly, engineering efforts to make it easier to train use:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Already some hacks for CPU and GPU&lt;/li&gt;
  &lt;li&gt;It’s stateful, unlike LLM summarizer for podcast episodes(not ready to open-source) and &lt;a href=&quot;https://github.com/merrickluo/summer-web-clipper/&quot;&gt;browser tab&lt;/a&gt;, so it can be hard to manage existing embeddings and new images&lt;/li&gt;
  &lt;li&gt;How to fix for wrong labels?&lt;/li&gt;
  &lt;li&gt;How to run easily against new images in a lightweight manner? The dependency &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uform&lt;/code&gt; contains about 1.7G transitive dependencies, getting embeddings requires it&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sun, 09 Apr 2023 00:00:00 +0000</pubDate>
        <link>https://ahxxm.com/179.moew/</link>
        <guid isPermaLink="true">https://ahxxm.com/179.moew/</guid>
        
        
        <category>IT</category>
        
        <category>ML</category>
        
      </item>
    
      <item>
        <title>Self-host an email server without self-host an email server in 2023</title>
        <description>&lt;p&gt;Spoiler alert: not really, emails are still stored in [your-favorite-privacy-protector], I simply gained unlimited aliases and I can send emails from those aliases too.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;tldr&quot;&gt;TLDR&lt;/h2&gt;

&lt;p&gt;This is enabled by “free” infrastructures, each responsible for its own specialty:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Catch-all address: any email service would suffice.&lt;/li&gt;
  &lt;li&gt;Cloudflare Email Routing: reroutes all emails sent to a &lt;em&gt;root&lt;/em&gt; domain to the catch-all address.&lt;/li&gt;
  &lt;li&gt;(almost optional) SMTP2Go to send from arbitrary aliases: Mailgun and Amazon SES don’t allow this, or at least not easily.&lt;/li&gt;
  &lt;li&gt;(optional) Mailgun for routing emails to subdomains: Cloudflare requires an enterprise subscription to do this, so for every new subdomain like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mail.ahxxm.com&lt;/code&gt;, I go through similar procedures — verify a domain with MX and TXT record, setup a catch-all address again.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sending from arbitrary aliases isn’t always possible, mobile devices don’t want users to have their own SMTP settings, I use &lt;a href=&quot;https://wiki.mozilla.org/Thunderbird:Help_Documentation:Obsolete:Adding_Multiple_SMTP_Servers&quot;&gt;Thunderbird&lt;/a&gt; on my desktop.&lt;/p&gt;

&lt;h2 id=&quot;how-i-ended-up-here&quot;&gt;How I Ended Up Here&lt;/h2&gt;

&lt;p&gt;I have intermittently used Google GSuite since it was free, and started paying for the service before it raised the price to $6/month. However, it recently failed to renew one of my domains. Customer service promised to respond in 24 hours with confidence, but as of writing, they have been very silent for more than 72 hours.&lt;/p&gt;

&lt;p&gt;I also host a &lt;a href=&quot;https://github.com/docker-mailserver/docker-mailserver/&quot;&gt;docker-mailserver&lt;/a&gt; since &lt;a href=&quot;https://ahxxm.com/168.moew/&quot;&gt;2021&lt;/a&gt;, which was quite stable until the VPS was migrated to another host that also blocks 465 and 587 by default, not to mention outgoing traffic from 25. (This safe default value doesn’t affect too many people, and the customer service is very responsive, I’ve no complaints.)&lt;/p&gt;
</description>
        <pubDate>Fri, 31 Mar 2023 00:00:00 +0000</pubDate>
        <link>https://ahxxm.com/178.moew/</link>
        <guid isPermaLink="true">https://ahxxm.com/178.moew/</guid>
        
        
        <category>IT</category>
        
      </item>
    
      <item>
        <title>2022年读书随笔</title>
        <description>&lt;p&gt;今年读书有点&lt;a href=&quot;https://ahxxm.com/171.moew/&quot;&gt;去年读书&lt;/a&gt;的感觉。&lt;/p&gt;

&lt;p&gt;年底试图养成新习惯，一边读一边写感想，读完再整理。当时开了三本，发现电报频道+关联聊天群做临时笔记本不错，可以按书名分类，自动翻页到底。&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;虚构&quot;&gt;虚构&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/21346008/&quot;&gt;米格尔街&lt;/a&gt; 小朋友视角短篇集合，讲了一些有意思的街友，其中我最喜欢诗人。有些豆瓣好友评价是，“无迹可寻”。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/50375803&quot;&gt;蝲蛄吟唱的地方&lt;/a&gt; 开头有点想起邦查女孩，接下来走向不大一样。猜中了结局！&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/30329121/&quot;&gt;白蛇&lt;/a&gt; 也是短篇合集，我最喜欢第二个，前面的有些野性。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/4934.The_Brothers_Karamazov&quot;&gt;卡拉马佐夫兄弟&lt;/a&gt; 不知道该怎么描述这本书，容我从&lt;a href=&quot;https://www.goodreads.com/questions/412464-i-gave-up-on-this-book-awhile-ago-because/answers/803356-i-think-you-re-coming&quot;&gt;goodreads&lt;/a&gt;讨论区偷一段：&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;This isn’t meant to be light reading; It’s heavy-duty philosophy cloaked as a novel. Each character is a personification of an argument that duke it out in various ways throughout the book. I found it to be one of the most pure insights into the human condition that I have ever read (besides Dostoyevsky’s other books…) You might appreciate it more if you approach it in that light.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/29913531&quot;&gt;刀锋&lt;/a&gt; 第一次看毛姆，以前都是看语录。有点翻译腔，可能是老译本，但整体很流畅很用心，怪不得是&lt;a href=&quot;https://www.amazon.cn/gp/product/B019Z3MR58/ref=kinw_myk_ro_title&quot;&gt;推荐译本&lt;/a&gt;，书有点像卡拉马佐夫兄弟+悉达多+格调。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.amazon.cn/dp/B08YYV27G3/&quot;&gt;心&lt;/a&gt;：没有那么dramatic，平平淡淡才是真&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/58734894&quot;&gt;金阁寺&lt;/a&gt; 有点dramatic，不知道作者如此还是第一人称陷阱，看wiki可能两者都有，想起鄙视，更喜欢鄙视。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/58942515&quot;&gt;鄙视&lt;/a&gt; 第一人称陷阱！我得推荐给每个男人看看。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/56918344-1&quot;&gt;如果有妹妹就好了&lt;/a&gt; 鉴于起点文都在主动被动颂圣，我的小说供应商同志推荐了这本，非常好看，不要被标题劝退。内容很meta也很有互动感，其中一个桥段像是去年读的筷: 怪談競演奇物語。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35519599/&quot;&gt;敦煌&lt;/a&gt; 其实和敦煌没什么关系，就是小说。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/35421541&quot;&gt;红楼梦&lt;/a&gt; 看的胭脂斋弹幕版，点名表扬贾政，虽然有很多缺点，但是家庭聚会小朋友玩得开心時他会自觉找借口走开。&lt;/p&gt;

&lt;h2 id=&quot;非虚构&quot;&gt;非虚构&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://weread.qq.com/web/reader/e8b325f0813ab6ebcg0164c4&quot;&gt;天才职业者访谈录&lt;/a&gt; 不要被这个书名和腰封骗了，内容没那么浅薄，被采访的职业有DNA鉴定师、陨石猎人、睡眠医生、遗体美容师、流浪者救助志愿者……等等。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35170830/&quot;&gt;留德十年&lt;/a&gt; 老机灵鬼季羡林回忆录，前面有些像老机灵鬼写的围城。二战时送中也不容易，感觉很能理解那时的德国人。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/46023874&quot;&gt;浅薄：互联网如何毒化了我们的大脑&lt;/a&gt; 内容没有腰封那么浅薄，“神经可塑性”，不光体现在咖啡因可以戒，我们每天用的工具和娱乐，也会塑造我们。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/54007169&quot;&gt;我在故宫修文物&lt;/a&gt; 知识盲区看热闹，内容有些重复，匠心，打磨，传承什么的，也有少许高科技。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.amazon.cn/gp/product/B07193SWZ1/ref=kinw_myk_ro_title&quot;&gt;上瘾:让用户养成使用习惯的四大产品逻辑&lt;/a&gt; 都是老话题了，自觉对斯金纳箱不熟的可以读读……有一章讲伦理的还不错，但为啥这么多NYT引用。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/59575260&quot;&gt;温柔的正义：美国最高法院大法官奥康纳和金斯伯格如何改变世界&lt;/a&gt; 这本把个人经历和法律问题混一起写，阅读速度不能很均衡，法律问题要停下来想想，我对个人经历又没那么感兴趣。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.amazon.cn/gp/product/B07D72J6YM/ref=kinw_myk_ro_title&quot;&gt;隐秘的江湖&lt;/a&gt; 最高法院二连，正好看完1973年就看到了推翻的新闻。也有办公室政治、摸鱼、菜鸡普通大法官和菜鸡首席大法官，也会相互看不顺眼！&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/55588910&quot;&gt;山居杂忆：一个大家闺秀的百年家族记忆&lt;/a&gt; 往来无白丁！看介绍说和红楼梦并称云云，内容没这感觉，倒是感觉故事发展结构和红楼梦有些像。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/5330333/&quot;&gt;活出生命的意义&lt;/a&gt; 集中营也能共鸣，啥情况。想起existential Psychotherapy还沒看……&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;一般来说，精神崩溃的犯人一开始是早上拒绝穿衣洗漱，或者拒绝出操。任何劝说、任何威胁对他都不起作用。他就那么赖在那里，一动不动。如果这种情况是疾病引起的，他会拒绝去病号区，也拒绝做任何有助于自己恢复的事。他就那样放弃了。他缩在自己的躯壳里，不再关心任何事情。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;从前的囚犯在回忆牢狱生活时都觉得集中营对人最压抑的影响是你不知道自己要被关多久，你不知道哪天会被释放（在我们那个集中营，对这个问题大家甚至谈都懒得谈）。实际上，犯人的刑期不光不确定，而且是无期限的。某位著名的心理学家就说过，集中营生活是一种 “临时的存在”。我们还可以补充几个字，那是 “未知期限的临时存在”。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35271709/&quot;&gt;知识分子&lt;/a&gt; 名人黑料，黑得飞起，唯一通过了作者检验的只有奥威尔。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35114057/&quot;&gt;使女的故事&lt;/a&gt; 没有想到是这样的结局，出乎意料又在情理之中……这本书，你读完也不觉得是虚构吧？&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“这位游客问，你们快乐吗？”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/27111185/&quot;&gt;女性贫困&lt;/a&gt; 是&lt;a href=&quot;https://www.goodreads.com/book/show/21414635&quot;&gt;贫穷的本质&lt;/a&gt;和&lt;a href=&quot;https://www.goodreads.com/book/show/51849653&quot;&gt;稀缺：我们是如何陷入贫穷与忙碌的&lt;/a&gt;日本版，没有时间获取信息，收入低和社会问题共同导致没有积蓄能力，恶性循环&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/25836270/&quot;&gt;厌女：日本的女性嫌恶&lt;/a&gt; 这本也想推荐给所有男的看看。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35356472/&quot;&gt;秦制两千年&lt;/a&gt; 有评论说看36页就行，我感觉清朝前的故事还不错，不熟悉可以看看，不只是第一章总结的补充&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.amazon.cn/gp/product/B098S9S5F1/&quot;&gt;武则天&lt;/a&gt; 原来也是个大型官二代，根正苗红，但是这身份没有什么助力，努力和运气缺一不可。面首酷吏倒是没什么新奇，科举和开辟人才通道比较有意思。&lt;/p&gt;

&lt;h2 id=&quot;专业书籍&quot;&gt;专业书籍&lt;/h2&gt;

&lt;h3 id=&quot;社会科学&quot;&gt;社会科学&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/49088914&quot;&gt;中国：奇迹的黄昏&lt;/a&gt; 本书&lt;em&gt;未&lt;/em&gt;出版于2004，2004到2008“国家凝聚力”接近最高点，之后……一直到今年看起来，里面指出的问题还是问题，比如最大被剥削群体名义工资确实提高了，但负担也大幅提高了，比如92年的二十字方针，三十年后依然没有“诉诸于一种制度”，“仍然准备借助于领导人的个人能力来度过难关”，还有官僚体系只对上负责、到处都是雁过拔毛的&lt;a href=&quot;https://tech.sina.cn/csj/2019-08-26/doc-ihytcitn1935760.d.html?vt=4&quot;&gt;收租者&lt;/a&gt;、道德沦丧只想搞钱和这些事情的联系……&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/58798820&quot;&gt;置身事内&lt;/a&gt; 深入浅出，重点分明，用词和典故都很和蔼，适合各种水平的读者&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35149551/&quot;&gt;分析与思考&lt;/a&gt; 作者规格很高，缺点是有些主旋律和理想化，经济课无法避免的？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35147504/&quot;&gt;结构性改革&lt;/a&gt; 同规格作者，本书注水量不大，理论和实战比例相对均匀。隐隐感觉到了一些文化人骂人不带脏字：强调亲自指挥、多次坐出重要指示；资本市场缺少国民经济晴雨表、资源优化配置功能和缺少优胜劣汰机制；领导“请”成功人士去投资，面子抹不开；股市缺少注册制和退市制度导致IPO开开关关；许多早就走过并不用摸着石头过河的成功案例；GDP导向，房地产没有长效机制（这里已经接近脏字了）。缺点是有时像沙盘游戏，很多建议都仿佛必须付出代价，但不提代价，只强调体制优势。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“总之，对真正的有为政府来说，这一类行政性的限制，临时为之可以，但长远地把行政限制变成常态就是政府的手伸得太长。”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;“作为长期主政一方经济的政府大员，黄奇帆先生有着学者只能望洋兴叹的解决大小经济问题的丰富实践经验。”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35267420/&quot;&gt;制内市场&lt;/a&gt; 比置身事内和结构性改革ego大了很多，行文也不够流畅，经常能看到重复的地方（荣国府也有这问题）。话题专精程度感觉不如看置身事内+周雪光+中央帝国的财政密码+秦制两千年，结构像是加长版论文，文献综述，古往今来，查漏补缺用可能还不错。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/25730239/&quot;&gt;李光耀论中国与世界&lt;/a&gt; 其实没大论中国。真正的地球online玩家，我喜欢他对公平的定义：公平是机会均等，不是回报均等。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“他坚持认为在我做出决策之前必须了解自己批准的事情。”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/19920715/&quot;&gt;论中国&lt;/a&gt; ……中国外交关系简史？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/30258045/&quot;&gt;生育制度&lt;/a&gt; 读出了数学分析的感觉，社科书籍中少有能把逻辑想和讲这么清楚的。好看，不少远见（1985年出版），严谨。后记，“我其他书是骗稿费补贴家用的，这书真不是。”&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/26658395/&quot;&gt;政治学通识&lt;/a&gt; 每一讲都有文化震惊（程度不一，褒义），开头的名人名言也不错。用理论解释发生过的事情，很多理论看起来都很有说服力。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/57127878&quot;&gt;城乡中国&lt;/a&gt; 修订版，讲城乡、土地、审批、产权转让权所有权，皆为利来，交易成本……以及很多大型社会问题和制度安排的因果关系。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;宪法上白纸黑字写有“迁徙自由”，但实际执行的却是限制农民进城的一整套政策。如此并行不悖，难受不难受？不难受，特别是在我们的上层建筑里看不到有什么好难受的。这是一个直到今天也还值得注意的现象：讲归讲，做归做，谁也不难受。问题是，在这样的氛围里，即便迁徙自由权重新入宪，对实际生活究竟有多大的意义？&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/26803982/&quot;&gt;非理性繁荣&lt;/a&gt; 从他公开课出名就想看的，结果三年又三年，等到了新版。这书翻译实在是太烂了，烂到我可以猜出原文是什么，比如dramatically翻译成“戏剧性的”，还不如直接看原版。&lt;/p&gt;

&lt;p&gt;行为金融学老师思路开阔，一些印象：不光是繁荣非理性，萧条也不理性，抽样调查发现并没有什么能很好地解释股市崩盘时的最大单日跌幅；普遍用于解释繁荣的理由也常常站不住聊；金融里“技术原因”是个模糊的概念，仿佛个人心理和社会形态没有参与、纯粹是某个数字对不上直接蝴蝶效应导致大萧条，但实际上没这么简单；人们普遍没有anchor，价格反应的信息、也就是市场有效性，并没有教科书那般理想化。还有很多演化心理学内容：人是单线程生物；人（因为无知）会持有互相矛盾的观点；下意识服从权威和多数人选择（也是一种anchor）。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“要实现不动产市场、股票市场以及任何投机性市场有效性的提升，当下最有意义的事情莫过于洞悉市场失灵背后成因，而这需要我们纳入经济学之外的其他学科，从更广泛的视角进行更严谨的论证。 ”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;心理学&quot;&gt;心理学&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/24839553/&quot;&gt;拖拉一点也无妨&lt;/a&gt; 也算是专业书籍吧……总是觉得自己每天都没干的另一种解决方案，接受现实，和写日记结合疗效好——做了，而且都是做高优先级（紧急而重要）的事情，做事又不一定能有结果，躺平。不要想什么都做，说不定拖着拖着就不用做了呢？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/26257557/&quot;&gt;热锅上的家庭：（原生）家庭问题背后的心理真相&lt;/a&gt; 亚马逊上副标题似乎没有原生两个字，豆瓣评分好高。我理解的重点是，如果每个人都能独立做人，再组成家庭，那家庭问题会少很多。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/59529923-18&quot;&gt;盲眼钟表匠&lt;/a&gt; 可能是看了太多进化心理学，这本老点的看起来就不大有印象。&lt;/p&gt;

&lt;h3 id=&quot;其他&quot;&gt;其他&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/54238550&quot;&gt;斯坦福大学人生设计课&lt;/a&gt; 鸡汤，不长，大概还是值得一读。有那么几个takeaway：重力问题就是我们没法解决的事情，只能直达悲伤第五阶段，接受它&lt;!--比如互联网公司招聘就是如此弱智--&gt;；大量研究表明我们乐于助人，不要怕cold call，买车会试驾，找工作为什么不问问呢；这书作者比较特权阶级，说工作不稳定原因是职位资金来自一年一度的赞助……以及在大学能遇到NFL执行董事，啥大学，还招人吗？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35510615/&quot;&gt;好的咖啡&lt;/a&gt; 怎么做出对口味而且可重复生产的咖啡&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35486968/&quot;&gt;在人间：肿瘤科女医生亲历记录&lt;/a&gt; 一些关于人生、生死的采访整理&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/53175799&quot;&gt;女人的性爱动机&lt;/a&gt;  “在亚马逊上这本书被定义为通识课堂系列”&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.worldcat.org/isbn/9787516224434&quot;&gt;民法典实用一本通&lt;/a&gt; 豆瓣评论得好，确实不能一本通。大多比较符合朴素直觉。好多婚姻和继承，婚姻commitment好沉重&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/6526752/&quot;&gt;生命之书:365天的静心冥想&lt;/a&gt; 哲学小册子，上次读克里希那穆提还是初中从市图书馆借来几本，已经不记得什么感觉了，这次读感觉值得一读。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/34454497/&quot;&gt;荣国府的经济账&lt;/a&gt; 红学专业书籍，准备充分，经济和……宫斗。文盲读红楼梦和正经人读红楼梦差距那么大吗。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/52184268&quot;&gt;优势谈判&lt;/a&gt; 人生有些事就是可以用钱来衡量……信息和地位不对称时怎么给自己争取好处，抽象来说老生常谈就是藏好底牌和期望，但标题很重要，只有优势时才能用策略。谈判策略也是一种反PUA，“I can understand”的PUA话术让我想起&lt;a href=&quot;https://www.youtube.com/watch?v=_hYHwkIuEMo&quot;&gt;My problem with the cult of Apple.&lt;/a&gt;，我能理解，但是你得付钱，我们还不保证解决问题。&lt;/p&gt;

&lt;p&gt;谈判获得的是净利润，投入产出比非常高；冷漠是最差的情况，反对说明考虑过，反对意见就是价格。还有些很常见的踢皮球原则，能让人处理突发情况，来得及反应，比如虚构领导意见、声称自己无法拍板，虚构一个模糊的实体（规则、委员会，而不是具体的人），“核实一下”。针对这种情况，要迎合自尊心，“你是专家你觉得假如这样委员会能同意吗”，对方不一定是专家，但只要获得承诺会去积极汇报就行。&lt;/p&gt;

&lt;p&gt;看饱。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35659729/&quot;&gt;如何说服一只猫&lt;/a&gt; 从改变自己心态做起，关注目标而不是输赢，了解对方，建立信任、亲和，耐心等待和抓住时机，改变别人心情、观点和行为……可能有遗漏，最后一章有个checklist，豆瓣评分好低。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35373476/&quot;&gt;催化 让一切加速改变&lt;/a&gt; 上面这三本内容都有点像，维度不同：优势谈判是一些PUA策略（？），猫是心态分析，这本是一些比较好操作但我老是忘记的方法论——对付顺毛驴，提问而非告诉，lead by success，从小做起，从提供可以低成本试错和倒车的选项开始。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/27606323/&quot;&gt;Fearless salary negotiation&lt;/a&gt; 一些比较具体的谈判和定价策略，怎么给自己找到一个市场价，企业也会参考公开渠道信息来定价。如果想跳槽加薪，在目前级别中下就比较好平级加薪，在上就只能想办法升职，去公开市场试试就能找到自己定位（Netflix也曾&lt;a href=&quot;https://blog.pragmaticengineer.com/netflix-levels/&quot;&gt;鼓励员工如此操作&lt;/a&gt;）。虚拟语气问法在此同样适用，“如果招聘一个我这样的人，会给大约多少工资？”&lt;/p&gt;

&lt;p&gt;原地加薪比较难，大部分人都是跳槽加，跳槽流程大同小异：&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;找靠谱公司，收集信息，客户、商业模式、盈利状况、规模、口碑，招聘信息也可以帮助定位一个公司的发展方向、不管公司规模多大&lt;/li&gt;
  &lt;li&gt;ace interview，获得&lt;del&gt;话语&lt;/del&gt;呼吸权&lt;/li&gt;
  &lt;li&gt;凭啥在级别区间内要高值，skillset很对吗、对面很缺我吗、我很缺对面吗、我喜欢这份工作吗，所有这些都会影响期待和谈判能力&lt;/li&gt;
  &lt;li&gt;跑路要体面，交接完整，exit interview保持浮夸和正面，因为公司不会因此改变什么（不然你也不用跑了），找靠谱同事留下联系方式（我一靠谱同事原话：你们都是要离职了来加我微信）&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;原地晋升就面临更多竞争，通常要先做到下一个级别，还得刷存在感和好评，说服别人自己已经做到。Victor Cheng有一篇讲这问题的&lt;a href=&quot;https://caseinterview.com/fastest-way-to-promotion&quot;&gt;博客&lt;/a&gt;。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/25843334/&quot;&gt;金融的本质:伯南克四讲美联储&lt;/a&gt; 其实是美联储本质，小册子，真的就四讲。好像还是第一次看到最后贷款人的作用，2010年时21000笔贷款全部还清，最后纳税人获利。公开市场操作里买资产用的是做表，从银行买证券，结果是银行在美联储的储备金增加。除了购买资产获得利润、同时降低长期利率，写书时大众还信任美联储能维持低通胀，现在2022年底看来，这2点都正在经受严峻考研……&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/57473569&quot;&gt;微积分的力量&lt;/a&gt; 科普书里总是思想最打动我……翻书摘翻到这么一段：&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;我真正开始崇拜阿基米德，是因为他在自己的论著中做了鲜有天才会做的事情：邀请我们参与其中，向我们展示他是如何思考的。他冒着受到攻击的风险，分享了自己的直觉，还说他希望未来的数学家也能够用它去解决他不理解的问题。&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;想起前两天看到的&lt;a href=&quot;https://weibo.com/1444865141/MhZIIqn6G&quot;&gt;亲王微博&lt;/a&gt;：&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;因为这个组织的成员，都是资深的悬疑、推理小说作家，每个月他们会召集一次聚会，挑选一个成员作为祭品。这个成员必须要提前把自己最新出版的小说送给其他成员，然后在聚会当晚坐到主宾位置，接受所有成员轮流发言批判。上到主线逻辑人物动机，下到遣词造句，十几把苛刻的放大镜毫不留情地聚焦在作品身上，烫灼穿刺，直到将祭品烧得外焦里嫩、体无完肤，方才罢休。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/53194652&quot;&gt;像间谍一样观察&lt;/a&gt; 大约也算是专业书籍…… “我可以将我的工作内容归纳为让人喜欢我。”&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/27000443/&quot;&gt;世界美术名作二十讲&lt;/a&gt; 还有个副标题叫做  （中国版《艺术的故事》） 看了看床头没看完的艺术的故事……对我来说更像是艺术家史，因为我看不懂艺术本身的技巧，只能看到艺术家的经历、当时人文政治情况，（像是）更理解为什么要画这些东西，为什么要这样画。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/26955856/&quot;&gt;思想的力量&lt;/a&gt; 教科书，分了形而上学、认知论，道德哲学，政治哲学等等，其他和去年那本《西方哲学史:从古希腊到当下》结构类似，有很多引申阅读读，认知论里还提到了量子力学！多宇宙理论解决deterministic问题。译后记，又“我想跟你们聊聊我的政治抑郁”。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/25838004/&quot;&gt;法学论文写作&lt;/a&gt; 论文选题，文献，调查伦理，论证（比如政策建议，必要、可行、最优），另有好多是写作和说理常识，所以看得很快。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;中国宪法在法律论证中的地位相当尴尬。一方面，法律人信奉宪法在法律体系中至高无上的地位，用宪法条文来论证应当具有极强的说服力。另一方，由于宪法解释和宪法监督的缺位，宪法在中国的实效性很低，甚至法院判决援引宪法都成禁区。所以，我们看到在更多时候，宪法条文是法学探讨的主题，却不是法律论证的依据。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/59406800&quot;&gt;药物简史&lt;/a&gt;：小册子，科克伦这名字…… 原来奥威尔和华盛顿都是早期医学受害者。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/192221.How_to_Solve_It&quot;&gt;How to solve it&lt;/a&gt; 这本在书单上&lt;a href=&quot;http://mindhacks.cn/2008/04/18/learning-from-polya/&quot;&gt;很多年&lt;/a&gt;了，2022上半年做题时常觉得自己是无头苍蝇，便来学学章法。这本给我感觉像是&lt;a href=&quot;https://www.goodreads.com/book/show/265415.Solving_Mathematical_Problems&quot;&gt;陶哲轩的解题小册子&lt;/a&gt;，内容更内容更注重方法论，偶尔还会来一段i might be wrong哲学，和维特根斯坦哲学（examine every word/notion/sign to use）：动手前看清楚题目了吗？未知条件用完了吗？等价问题？熟悉的问题？之前有什么知识可以作爲lemma？specialization和generalization用过了吗？从结论反推呢？证明和解法可以更简洁直观吗？有其他方式吗？有想法可以在想法的基础上做一点进展，不一定是正确方向，但是也可以更深入理解问题。&lt;/p&gt;

&lt;p&gt;另外还看了&lt;a href=&quot;https://www.bilibili.com/video/BV1AS4y1K7ts&quot;&gt;陶哲轩的master class&lt;/a&gt;，开头就提到了imposter syndrome……不stuck说明没有进步，有被安慰到。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/60229084-grokking-the-system-design-interview&quot;&gt;Grokking the system design interview&lt;/a&gt;和&lt;a href=&quot;https://www.goodreads.com/book/show/55014663-cracking-the-coding-interview&quot;&gt;Cracking the code interview 6th edition&lt;/a&gt; 前者有点死板，每道题都一样的八股，产品功能介绍，定义题目scope，估计用户量，主要component，scale选型和tradeoff。我还没见过靠谱的系统设计面试轮，有些公司宣传时吹得很好，但实际根本不行。&lt;/p&gt;

&lt;p&gt;后者意外还不错，讲解颇为用心，如果纯粹为了娱乐来读这本应该会感觉更好。值得一提的是偶遇了rotate matrix，我记得一个更加直观的解法——对角线对调再每行反转是顺时针，顺序反过来是逆时针。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/53483755-sql-cookbook&quot;&gt;SQL Cookbook: Query Solutions and Techniques for All SQL Users&lt;/a&gt; &lt;a href=&quot;https://www.goodreads.com/book/show/583503.Sams_Teach_Yourself_SQL_in_24_Hours&quot;&gt;Sams Teach Yourself SQL in 24 Hours&lt;/a&gt; 两本SQL，第一本看了前几章，第二本有点白，适合更萌的萌新&lt;/p&gt;

&lt;h2 id=&quot;网文&quot;&gt;网文&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://book.qidian.com/info/1016138848/&quot;&gt;绝对一番&lt;/a&gt; 邵宋作者推荐，在微信读书上看了个开头，发现还挺有人文关怀，就移到了kindle上。主线是东亚电视剧制作……日韩文化介绍，目测作者在日本生活过，最后还有点商战，就是不知道合规不合规。金手指处理比较奇特，开得频繁，主角文抄公但经常谦虚，也经常表示回到2020还是一条好汉，是想表示努力+体系化知识确实管用吗，总之比普通爽文要不普通点。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://weread.qq.com/web/reader/c1b42312a43425f31747834787434787930627036625236634e313&quot;&gt;长夜余火&lt;/a&gt; 写着写着到第一卷结尾，想起作者也会自己自己总结，就这么对比下去，感觉作者没白写（？），因为挺像的，想表达的都表达出来了。开头很多引号感觉没必要，后来引号去掉了！超展开伏笔一直拖到了……很远，作者也感叹要和读者斗智斗勇，后来有个非常小丑的设计，非常国土安全S1结尾的设计&lt;!--搞事是为了聚集重要人物搞大新闻--&gt;，和一个相对独立于主线的小短篇&lt;!--结局地图情报贩子的背景故事，有点既视感，没想起到底是哪本--&gt;，还有个地方让我想起Control&lt;!--心灵走廊--&gt;。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;本来这本书为了防和谐，我是做的全架空，但有的时候，为了引发共鸣，还是会引用、改编一些现实的诗词或者歌词，让大家看到后，脑海里能产生相应的旋律和画面。这对后面一些场景很有必要。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;有很多注释和行文，感觉不光是在吐槽，也在聊创作设定，算是一些创作废料重新利用。他的书设定都很好玩，而且不会一下全部揭开。如果喜欢这种主角，那应该也会喜欢&lt;a href=&quot;https://book.qidian.com/info/3347574/&quot;&gt;从前有座灵剑山&lt;/a&gt;。&lt;/p&gt;

&lt;p&gt;怎么又有圆框小眼镜，我在哪看过你。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.qidian.com/info/3452145/&quot;&gt;天启之门&lt;/a&gt; 印象里是停更许久、全本得比较突兀，开头看不出，设定还不错，爽中带点不爽。看完觉得设定真还不错&lt;!--宽恕和不宽恕的故事--&gt;，打破4th wall。写作还偶尔会有电影感，不用一个分割线或章节强行生硬换场景，而是线索同步。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.qidian.com/info/3491737/&quot;&gt;春秋我为王&lt;/a&gt; 不要被标题骗了，论文边角料，有料。依然对大篇幅的冷兵器战争没啥兴趣，一言以蔽之，农起来就是个A。优点是结局并不太俗套，（正经）梗多，经常有其他网文看不到的深度。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.qidian.com/info/1009480992/&quot;&gt;超神机械师&lt;/a&gt; 看介绍是爽文，确实是爽文，&lt;del&gt;感觉作者对机械有些热情不然也不会长篇幻想&lt;/del&gt; ，开挂，稳中带皮，有时候能感受到作者不想写这么白，有时候又凑字赚稿费。感觉作者是个……反贼，会有些奇怪的独裁设定，蛤丝细节，亲自指明方向，五年计划。最后揭开的&lt;!--复活--&gt;设定和随之而来的剧情都不错，很难得。缺点是配角玩家过于工具人，结局也比较凌乱。&lt;/p&gt;

&lt;h2 id=&quot;欣赏不来&quot;&gt;欣赏不来&lt;/h2&gt;

&lt;h3 id=&quot;读完了&quot;&gt;读完了&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/59686300&quot;&gt;存在主义是一种人道主义&lt;/a&gt; 小册子，快速翻完，内容基本在《知识分子》里看到过。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://book.douban.com/subject/35181762/&quot;&gt;世界观&lt;/a&gt; 什么是真实和自洽？我是不是应该少看这类科普书，结论都看过，有意思的故事还记得，没意思的故事看完也照样不记得。迅速扫完，主要讲的是科学，不是人文……看到副标题是科学和科学哲学，合理了。&lt;/p&gt;

&lt;p&gt;三本普通鸡汤，质量好一点的在上面：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/963922.Overcoming_Chronic_Fatigue&quot;&gt;疲劳自救手册&lt;/a&gt; 有病治病，休息好，不要PUA自己，每天进步一点点之类的废话，goodreads下面口碑差，居然要买了书才能进诊所？&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/49490272&quot;&gt;成功竟然有公式大數據科學揭露成功的祕訣&lt;/a&gt; 世俗意义上的成功学，5个“规律”，一些故事，reference倒是很多论文，不知道论文和规律和大数据又有什么关系。&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/55597259-52&quot;&gt;让你在公司显得很能干的52种方法（获取如何取得成功的秘诀）&lt;/a&gt; 首先你得能干……&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;弃坑的&quot;&gt;弃坑的&lt;/h3&gt;

&lt;p&gt;citrus柑橘味香气 漫画，苍白突兀的剧情，本以为第一卷是铺垫，结果就第二卷开头有些意思，后面就直接弃坑……&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/53120832&quot;&gt;有闲阶级论&lt;/a&gt; 有点长，也不够通顺，为什么不看&lt;a href=&quot;https://www.goodreads.com/book/show/51939225-30?ref=nav_sb_ss_2_2&quot;&gt;格调&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/55751619&quot;&gt;倦怠社会&lt;/a&gt; 名词好多，没看懂&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.amazon.cn/dp/B09JWDRM55/&quot;&gt;玫瑰与利剑：改变历史的非凡女性&lt;/a&gt; 开头10%好无聊&lt;/p&gt;

&lt;p&gt;学霸的高科技系统 文抄公，常识错误和注水，科普也不怎么到位，还很中，目测作者是个在我国的普通科研人……也不翻墙。&lt;/p&gt;
</description>
        <pubDate>Wed, 28 Dec 2022 00:00:00 +0000</pubDate>
        <link>https://ahxxm.com/177.moew/</link>
        <guid isPermaLink="true">https://ahxxm.com/177.moew/</guid>
        
        
        <category>Reading</category>
        
      </item>
    
      <item>
        <title>2022游戏影视推荐</title>
        <description>&lt;p&gt;还有不推荐，不推荐都有理由，推荐该怎么写？&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;推荐&quot;&gt;推荐&lt;/h2&gt;

&lt;h3 id=&quot;电影和剧集&quot;&gt;电影和剧集&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt15146130/?ref_=nv_sr_srsg_0&quot;&gt;我的解放日记&lt;/a&gt; 好看！Show not tell非常到位，伏笔很长，话题很广，镜头语言很多，以至感觉节奏很快，自觉跟上了编剧和导演思路，但看别人影评还是发现漏了一些&lt;del&gt;知识盲区&lt;/del&gt;元素。妈的瞬息宇宙前10分钟东亚氛围感……的渲染水平，贯穿本作全程，但又不会喧宾夺主。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt14134550/?ref_=nv_sr_srsg_0&quot;&gt;Odd Taxi&lt;/a&gt; “你怎么突然过起冷硬派侦探小说般的生活了？”本作很多地方都在让偶然显得必然，有一个贯穿全程的线索物品，但我不能说。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt1745960/?ref_=nv_sr_srsg_0&quot;&gt;Top Gun: Maverick&lt;/a&gt; 剧情和画质明显比前作好很多，但没有前作那么帅。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt1074638/&quot;&gt;007 Skyfall&lt;/a&gt; 这集好看，反派按规定略蠢点，对话很到位，比no time to die……也许因为我看的是精心翻译版，看得更懂一些。&lt;/p&gt;

&lt;h3 id=&quot;游戏&quot;&gt;游戏&lt;/h3&gt;

&lt;p&gt;今年游戏主要是解压、解谜和视觉小说，解谜类玩法各不一样，视觉小说都比较有共鸣。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;unless you don’t wanna contemplate your own existence right now, if that’s the case then maybe play it later.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/501300/What_Remains_of_Edith_Finch/&quot;&gt;What Remains of Edith Finch&lt;/a&gt; 因为没什么耐心，买票多年后视频通关，非常推荐这两个视频，他们内容比较orthogonal：&lt;a href=&quot;https://www.youtube.com/watch?v=G9B15cptgq0&quot;&gt;What Remains of Edith Finch FULL MOVIE&lt;/a&gt;和&lt;a href=&quot;https://www.youtube.com/watch?v=6bMn4CoyUkM&quot;&gt;The Villain of Edith Finch&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/221910/The_Stanley_Parable/&quot;&gt;The Stanley Parable&lt;/a&gt; 这个也是contemplate your own existence的visual novel，同样适合视频通关：&lt;a href=&quot;https://www.youtube.com/watch?v=-pHsFDiRqOM&quot;&gt;The Stanley Parable - Full Game (All Endings) (No Commentary)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/1579380/Shadow_Tactics__Aikos_Choice/&quot;&gt;Shadow Tactics: Aiko’s Choice&lt;/a&gt; 独立新作，地图不多，打完把成就做了。Shadow Tactics和Desperados 3的玩法非常对胃口，机制简单，组合起来有难度，可以慢慢思考完再做，像下棋。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/324160/CLANNAD/&quot;&gt;CLANNAD&lt;/a&gt; 该夸的地方已经有人夸得更好了，我想夸夸跳过已读文本机制，如果下面几个视觉小说有这机制我可能也会亲自通关。老前辈介绍这类游戏先自己玩一遍，再对着&lt;a href=&quot;https://steamcommunity.com/sharedfiles/filedetails/?id=928184392&quot;&gt;攻略&lt;/a&gt;把剧情看了，感觉靠谱。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/447530/VA11_HallA_Cyberpunk_Bartender_Action/&quot;&gt;VA-11 Hall-A&lt;/a&gt; “调制饮料，改变人生”&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/557600/Gorogoa/&quot;&gt;Gorogoa&lt;/a&gt; 看了&lt;a href=&quot;https://www.bilibili.com/video/BV1Q44y187Jm/&quot;&gt;大概3个地方&lt;/a&gt;才过……还有个QTE，光顾解谜，没有细看剧情，只有个模糊印象。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/1102130/Florence/&quot;&gt;Florence&lt;/a&gt; 治愈小短篇，最喜欢对着镜子的一幕，Steam成就有意思。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/787480/Phoenix_Wright_Ace_Attorney_Trilogy/&quot;&gt;逆转裁判 1&lt;/a&gt; “因为你我有了异议”&lt;/p&gt;

&lt;p&gt;下面是几个手机游戏，两个几何解密，&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.hil_hk.xsection&amp;amp;hl=en&amp;amp;gl=US&quot;&gt;XSection&lt;/a&gt;和&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.DominikMistera.CubeCrawler&amp;amp;hl=en_US&amp;amp;gl=US&quot;&gt;方行者 Cube Crawler&lt;/a&gt; ，后者无广告，致郁（各种意义上），好评如潮。波兰开发者，2021年才毕业。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.zeeron.sudoku.puzzle&quot;&gt;Sudoku&lt;/a&gt; 没广告，有note，修bug很及时，好评！&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.taptap.com/app/85409&quot;&gt;怪异揭示板&lt;/a&gt; 不大好介绍，但推荐花10分钟感受下，说不定也通关了。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.taptap.com/app/219122?hreflang=zh_CN&quot;&gt;游荡者：弗兰肯斯坦的怪物&lt;/a&gt; 致郁，不要介意翻译，别人的&lt;a href=&quot;https://www.taptap.com/review/29424361?hreflang=zh_CN&quot;&gt;点评&lt;/a&gt;，另外广告可以开飞行模式跳过。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.miHoYo.tot.glb&quot;&gt;未定事件簿&lt;/a&gt; 感觉肝卡和主线完全俩系统，主线值得一看，但可能会被前者卡进度。&lt;/p&gt;

&lt;h2 id=&quot;中立&quot;&gt;中立&lt;/h2&gt;

&lt;h3 id=&quot;电影和剧集-1&quot;&gt;电影和剧集&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt2382320/&quot;&gt;007 No time to die&lt;/a&gt; 好长，但是那么大个运输机，为什么不把车也开上去？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt11286314/?ref_=nv_sr_srsg_0&quot;&gt;Don’t look up&lt;/a&gt; 编剧怕不是个果粉……&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt1810833/?ref_=nv_sr_srsg_0&quot;&gt;丈夫得了抑郁症&lt;/a&gt; 女主眼熟，但好像男主才是名人。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt6710474/&quot;&gt;Everything Everywhere All at Once&lt;/a&gt; 前面好看，特效不大喜欢。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt3404140/&quot;&gt;辩护人&lt;/a&gt; 根据真实事件改编！我作为中国人感觉韩国还是过于民主，什么外国记者，哪来的外国记者，签证都拿不到。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt3756788/?ref_=nv_sr_srsg_0&quot;&gt;海街日记&lt;/a&gt; “就这样想想，不也很好吗？”&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt11219254/?ref_=nv_sr_srsg_0&quot;&gt;花束般的恋爱&lt;/a&gt; 这个可能更适合年轻人看，老年人一看到苗头就预测到了其他分支。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.cyberpunk.net/en/edgerunners&quot;&gt;Cyberpunk: Edgerunners&lt;/a&gt; 感觉还得玩一下游戏&lt;/p&gt;

&lt;h3 id=&quot;游戏-1&quot;&gt;游戏&lt;/h3&gt;

&lt;p&gt;CSGO，有阵做别的累了就玩一会aimbot z，非常解压。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/1291340/_/&quot;&gt;Townscaper&lt;/a&gt; 也很解压&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/1720850/AB/&quot;&gt;A=B&lt;/a&gt; 写汇编，比人力资源机器好玩些……没通关，智力有限。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/994730/_/&quot;&gt;Banner of the Maid&lt;/a&gt; 圣女战旗，前面没有明显短板，直到刷出肝等级图，和遇见几张不刷等级就要roll点的图，我的想法和&lt;a href=&quot;https://steamcommunity.com/profiles/76561198206419128/recommended/994730/&quot;&gt;这条评论&lt;/a&gt;差不多。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/1574580/Strange_Horticulture/&quot;&gt;Strange Horticulture&lt;/a&gt; 视觉解谜，大家来找茬，手绘植物很好看，不太推荐用中文玩：会有些英语谜题，中文加标签会变成方块。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/1493020/Song_of_Farca_Prologue/&quot;&gt;Song of Farca&lt;/a&gt; 又是解谜，玩法有点像未定事件簿+逆转裁判，BGM比较……动感，一口气打通关就有点疲劳，有好些分支不想去探索，赞美CLANNAD。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://apps.apple.com/us/app/a-simple-matter-of-light/id163523150&quot;&gt;A Simple Matter of Light&lt;/a&gt; ios限定，玩法简单，到收费部分估计也就不想玩了，挺好。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/1783510/Bobok/&quot;&gt;Bobok&lt;/a&gt; 超短篇视觉小说，纯钢琴伴奏好（就听出了一个Rachmaninov  Op23 No5）。&lt;/p&gt;

&lt;p&gt;下面又是几个手机游戏，lost未至之境 &lt;a href=&quot;https://www.taptap.cn/review/27829439&quot;&gt;小短篇&lt;/a&gt;。画风惊悚、别致、精美，解谜有些缺引导，忘记哪儿引用了一句芥川龙之介：自由和山巅上的空气相似，对弱者都是吃不消的。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/588040/WILL_A_Wonderful_World__WILL/&quot;&gt;WILL：美好世界&lt;/a&gt; 玩法很新，但不知道是我思维广还是它虎头蛇尾，后来的排列组合我都感觉有点无聊。&lt;/p&gt;

&lt;p&gt;Exponential Idle 里面几个&lt;a href=&quot;https://exponential-idle.fandom.com/wiki/Minigames&quot;&gt;小游戏&lt;/a&gt;比本体更有意思，分别是华容道、魔方和Arrow。&lt;del&gt;都可以写solver&lt;/del&gt;&lt;/p&gt;

&lt;h2 id=&quot;不推荐&quot;&gt;不推荐&lt;/h2&gt;

&lt;p&gt;Vampire’s melody 我为啥会买这个……因为便宜？不能跳过已读文本，故事没深度没分支。&lt;/p&gt;

&lt;p&gt;SpiritFarer 沒有玩下去，钓鱼升级图纸捡垃圾造房子……故事呢？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.taptap.com/app/183526&quot;&gt;风色幻想&lt;/a&gt; 有武器有技能要肝升级材料和氪金抽卡的手机战旗，就很梦幻模拟战。把战旗换成塔防可能就是明日方舟了，明日方舟还有点剧情和玩法，每次回坑都可以养老推图抽卡看对话。&lt;/p&gt;

&lt;p&gt;他人世界末 关于UI的&lt;a href=&quot;https://www.cngal.org/articles/index/163&quot;&gt;吐槽&lt;/a&gt;，还有个&lt;a href=&quot;https://www.zhihu.com/question/406215605/answer/1336971645&quot;&gt;访谈&lt;/a&gt;在这，故事本身……可能还不如台词。&lt;/p&gt;

&lt;p&gt;Singing Iris 鸢之鸽：玩法有点&lt;a href=&quot;https://steamcommunity.com/id/bluephoenixfly/recommended/1315160?snr=1_5_9__402&quot;&gt;一言难尽&lt;/a&gt;，刷好感度必死、好感度也毫无设计，得给自己上眼药，只有诗人语录是亮点。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.taptap.io/app/145665&quot;&gt;筑梦公馆&lt;/a&gt; 奇怪的混搭玩法，我以为是剧情，沒想到是抽卡养成，剧情傻到沒能玩完第一章。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.taptap.io/app/208258&quot;&gt;当火车鸣笛三秒&lt;/a&gt; 广告也太多&lt;/p&gt;

&lt;p&gt;Wild Rift 英雄联盟手游，（非中国区）新手福利和引导照旧不错，但触摸屏MOBA实在是不适合我。&lt;/p&gt;

&lt;p&gt;迷雾侦探 我以为是解谜，没想到一个简单跑路都是QTE。&lt;/p&gt;

&lt;p&gt;Arcaea 玩法不好说，但还是对二次元吵闹曲库没有鉴赏能力，我想要个判定靠谱、吊音符不要这么吓人的&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.superb.pianista&amp;amp;hl=en&amp;amp;gl=US&quot;&gt;Pianista&lt;/a&gt;。&lt;/p&gt;
</description>
        <pubDate>Fri, 23 Dec 2022 00:00:00 +0000</pubDate>
        <link>https://ahxxm.com/176.moew/</link>
        <guid isPermaLink="true">https://ahxxm.com/176.moew/</guid>
        
        
        <category>2022</category>
        
        <category>Game</category>
        
        <category>2022</category>
        
      </item>
    
  </channel>
</rss>
