[{"content":" 封面故事：浴佛节，佛教中最重大的节日之一，象征洗涤尘垢、净化身心，并祈求智慧与平安。同时这也是我人生中第一次参加宗教性质的志愿者活动。\n和上一篇博文一样，这也是一篇读后感，这两本书都是同一位好友所赠。亲密关系是我一直回避又好奇的话题，我带着这种心态看完了这本书。看完之后我并不认为自己的恋爱技巧上有什么长进（大概还是需要通过实践来掌握吧），但也给了我一些反思的机会：是什么让自己很难踏入亲密关系。\n不要试图通过恋爱解决个人问题 在看这本书之前，我就有这样的想法：不要试图通过恋爱解决个人问题，包括不限于，觉得人生很无聊，很孤单寂寞乃至生理需求而去谈一场恋爱。在我看来，谈恋爱只能是因为 彼此喜欢。\n书中提到：\n最能预测你未来亲密关系中幸福程度的到底是什么？是一个人原本的幸福程度，这比另一半身上所有的指标加起来的重要性还高出4倍。\n如果我现在过的不幸福，那么为什么会期待恋爱后就能幸福呢？又或者说，我对我现在的生活满意吗？我一个人过的开心吗？我想我的生活是自洽的，但在幸福感上还有很大的提升空间。我总会对自己说工作很忙，要节省开支（因为出国留学花了很多钱），正因为自己给自己加了层层限制才让自己少了很多生活体验。久而久之，我一直在做自己认为自己应该去做的事，从未做过自己想去做的事，最终忘记了自己想要做什么。\n不要把恋爱看得太沉重 或许恋爱经历少的人总会把来之不易的潜在机会格外珍惜，每一步都走得小心翼翼，甚至在确认关系前就对这段关系赋予一段沉重的意义，来满足自己是一个好男人的幻想人设。说的这么尖锐又真实，是因为我就是这样的人，曾经被我表白的女生也指出了这个问题。\n书中提到：\n少部分关系进入婚姻，大部分关系进入友谊，这才是一个更值得推崇的、健康的恋爱关系结局。\n往往在关系中真正深爱过的人，在结束之后也能放下，反而是那些没有尽全力的人，分开了以后还想挽回，这就是人性使然。\n爱情就是爱情，它原本就是单纯的、原始的、非理性的东西，为爱情而结婚，不是爱情里掺杂了婚姻，而是婚姻里掺杂了爱情。\n这让我突然意识到自己不管做什么事都是太关心结果了，忽略了过程中的体验，再搭配上失败后的习惯性负面总结，很少有可执行的经验沉淀下来，而且这么做是很难让自己开心起来的。不要去关心这个女孩到底喜不喜欢我，而是通过我对她的了解和她的反馈，然后用我认为正确的方式对她好。如果真的努力过还是没能在一起，那不叫失败，那叫不合适。要这么做并不容易，它需要勇气。不光是恋爱，学会享受过程，减少对于结果的执念都是提升幸福感的方法。\n聊天不是信息交换 这是我的一个薄弱环节。除开工作需求，我不习惯与人线上交流，因为线上沟通缺少线下那种及时、丰富的反馈：对方没有回消息，是因为很忙，还是因为我说的话让对方没法接？我知道这是过于在乎对方带来的负担，但就像 道理我都懂，却还是过不好这一生 一样，还是很难不去想。\n我不是没话说，只是不知道说什么最合适。过度思考让我错过了插入话题的时机，最后显得自己一直在沉默。\n其实，语言也是一种容器，它把我们放射的思维、难掩的羞耻和炽热的情感，都抓取出来。\n或许这也是我会写博客的原因：我可以不被打断地、完整地表达自己的想法和情感。我并不是无情，只是不擅长在即时交流里自然地把它们拿出来。成年人的时间很宝贵，在还不熟的情况下，线下见面的机会其实很奢侈（但我坚定认为线下 \u0026gt; 线上）。理想状态下，线上沟通应该成为线下见面的延伸，所以如何透过屏幕表达内心想法，是我需要学习的内容。\n聊天30%是信息，70%是感情。\n这让我想起和一位已婚朋友的聊天：如果老婆面试失败后，应该怎么做。他说他会觉得他的老婆很难过，会想带她出去吃顿好饭。我说我可能会问面试问题是什么。\n这是我以前忽略的部分。我一直认为废话没必要说，包括不限于：\n能直接通过互联网搜索/询问 AI 获得的信息没必要问 不要解决情绪，要解决问题 但其实，能一起想说什么就说什么才是一种理想状态：某个瞬间，我会主动想发个消息给你，消息本身也没什么信息量，我也不急切等待回复。这种聊天模式其实已经存在于我和朋友之间了，我是可以很自然地做到的。\n学会闲聊 情绪能量就像一种场域，在这种状态下，两个人都非常自然愉快，甚至能进入心流。聊天的最高境界，就是拥有随时开启这种场域的能力，让每个和你聊天的人以及你自己，都能获得好的情绪体验。\n只要看到对方，哪怕是在线上看到，都会开心。\n好的情绪能量会让你们的聊天持续有好感\n当然，能够通过聊天让对方进入心流，已经是很高的境界了。进入心流以后，人就不再需要反复思考，想到什么就会自然说出口。我相信一个很会聊天的人，不论线上还是线下，都可以把对话的人带入这种状态。要做到这一点，需要长期积累：能换位思考，能接梗，善于观察，有学识，也对人保持好奇。总而言之，会闲聊真的是一种能力。\n即便如此，还是有些小事可以立刻开始练习：\n没有人会在这个阶段就能确立关系，真的不用给自己加太多戏。这样只会让包袱变重，导致动作变形。（目标应该是潜在的深度关系，不一定要是恋爱关系） 不管什么头像，必须给人带来正面情绪。 使用开放式/深入式问题，聊对方感兴趣的内容。（因为心理学不止一次证实，人最终爱的都是镜子里的自己。） 不要问太费脑和费时间的问题，尤其是在不熟悉的情况下。 培养自己的好奇心，把它当作一个可以持续的练习，融入生活习惯。它本身也能给你带来新的视角和生活乐趣。 在 合适 的时间发消息，观察哪个时段回信频率最高（通常来说是晚上睡觉前），同时也让对方知道你的作息习惯。 约线下见面时，尽可能具体和确定，不要问开放式问题。时间、地点、做什么事情都应该清楚，ta 的偏好则应该在日常开放式提问的过程中收集。 不做评判（judgement）。这个原则对任何人、任何时候，都是适用的。 不要抱怨和责怪对方。这个原则同样对任何人、任何时候都适用。（但可以表达不愉快的感受，这属于非暴力沟通。） 恋爱三元素 恋爱三元素，那就是：亲密、信任和性吸引力。其中，性吸引是必须的，它搭配另外两者任意其一就能构成亲密关系\n其中，“性吸引力”可以和任何一个元素结合，让你们开启恋爱关系。\n虽然你们找到了非常重要的朋友，但如果性吸引力这个开关没有开启，那就只能一直做好朋友了\n在恋爱三元素中，性吸引力是必备的，亲密感是可以培养的，信任是最难的。\n这部分对我来说有点残酷，但也很清晰。过去我很容易把“我是否真诚”“我是否愿意负责”看得太重，好像只要我足够认真，就能让一段关系自然成立。但恋爱不是道德考试，承诺也不应该一开始就压上去。\n性吸引力听起来有点不体面，好像一承认它重要，爱情就变得不纯粹。但它确实是恋爱和友情之间很现实的一道开关。亲密感可以培养，信任需要兑现，可是如果完全没有吸引，关系就很难从“很好的人”变成“想靠近的人”。\n暧昧阶段也不能只靠精神表态推进。关系需要一点火花，也需要一点身体层面的靠近。我以前会把这种事想得太严肃，越想越像在做一道会被扣分的题，最后什么都不敢做。\n所以我现在更愿意把恋爱三元素理解成一种顺序感：先不要急着承诺，也不要急着定义关系，而是观察彼此之间有没有吸引、有没有好奇、有没有继续靠近的愿望。\n如何建立深度关系 双方自爆+共同经历+坦白脆弱+灵魂对话\n人都喜欢和别人聊自己！\n暴露自己的脆弱，就是获得信任最有力量的筹码\n我以前对“深度关系”的理解有点偏，以为只要聊足够深的话题，就能建立深度关系。但深度不是话题本身带来的，而是两个人在对话里一点点把自己交出来。真正让人靠近的，是我对你有好奇，你也愿意让我看见你，而我在听见以后不评判、不打断、不急着给答案。\n这也是我需要练习的部分：对别人保持不越界的好奇心。人确实喜欢聊自己，但前提是对方感觉安全。比起马上分析原因、提出建议，我更应该先听进去，再诚实地说出自己被触动的地方。共同经历也很重要。很多关系不是靠聊天聊出来的，而是靠一起做过一些事慢慢长出来的。\n我也意识到，深度关系不是一次“灵魂对话”就能完成的。我对自己缺乏了解，所以也很难帮助别人了解自己。比如我真正害怕什么，我想要什么样的生活，我对亲密关系的期待是什么，这些都需要提前想清楚。\n自我圆满 当你能够一个人在周五的晚上，开一瓶酒，看一部电影，内心感到宁静而充实，而不是焦虑地刷朋友圈看谁在秀恩爱时，恭喜你，你已经拥有了“随时可以进入高质量恋爱”的资格。\n自我圆满的三根支柱：我能掌控我的人生，我能应对挑战，我与世界有深刻链接\n书里还有一组概念我很喜欢：Loneliness 和 Solitude。前者是一种匮乏的状态，像是心里空了一个洞，急着找个人来填；后者是一种丰盛的状态，哪怕一个人，也能专注于当下的体验。这个区分让我意识到，孤独本身并不可怕，可怕的是把恋爱当成药。\n自我圆满的第一根支柱，应该是“我能掌控我的人生”。这不是说我要控制所有结果，而是把目标放回自己可控的行为上。\n第二根支柱是“我能应对挑战”。亲密关系一定会带来不确定性。以前我会下意识想避免这些风险，所以干脆不开始。但如果把恋爱看成一种体验和成长，那么风险本来就是其中的一部分。\n第三根支柱是“我与世界有深刻链接”。如果一个人的情绪支持只来自恋人，那这段关系很容易变得太重。朋友、家人、兴趣、工作、学习、身体状态，都是支撑一个人的结构。\n写到这里，我反而觉得这本书真正教我的不只是怎么恋爱，而是怎么成为一个更适合进入亲密关系的人。喜欢一个人当然可以成为让我变好的动力，但最后我还是要回到自己身上。\n","date":"2026-05-19T00:00:00+10:00","image":"/p/learn-to-love/cover.webp","permalink":"/zh/p/learn-to-love/","title":"读后感 - 学会去爱"},{"content":" 封面故事：下班后在 Barangaroo 拍的一张照片。\n读完这本书，最大的收获不是学会了五种爱之语的概念——那个上网搜一下就知道了——而是开始认真审视自己：我到底怎么表达爱？我又是怎么感受到爱的？这两个问题，我之前从来没有仔细想过。\n肯定的言词 爱人是获得爱最快速的方法。\n这句话让我有同感。不一定非要别人先喜欢我，我再去喜欢别人。可以先释放好感，甚至体现在行为上。\n但书里也区分了一件事：爱人的意愿和能力是两码事。能力需要通过交往不断练习培养。如果得不到正反馈，收回多余的情感就好，我没有做错什么。这个认知对我来说很重要——以前总觉得付出了就要有回应，其实不是的。\n书里给了几个方向：\n从自己开始 化被动为主动——为了对方的益处做一些事情或说一些话 拟定爱人和表达爱的策略 回答柔和，使怒消退 饶恕：我要怎么做才能弥补对你的伤害？ 对于过去的失败，最佳的处理方式就是让它走进历史。\n不要让对方过去的行为毁掉你今天的生活。\n我自认为还算擅长使用肯定的言词，不过别人肯定我的时候会有些尴尬——除非我自己也这么认为。需要注意自己的说话语气，更多表达对别人的肯定，用柔和的方式表达否定，真诚地为自己的过错道歉，不让别人的过错影响自己的生活。\n接受礼物 礼物不可以被当作酬劳，不是赔罪的工具，是爱的具体象征。\n从心态上，送礼就不要求回报，应该是无条件的。\n每个人都爱谈自己有兴趣的事，只要愿意用心倾听，就能获得许多线索。\n这给了我一个思路：用心倾听就能找到送礼的线索。你和赠与对象是什么关系，对方向你透露了多少偏好，这决定了送什么礼。你只能付出，对方是否接受是对方的事。\n花钱买礼物送人，最终获得益处的仍是自己。\n如果对方的爱之语就是接受礼物，买礼物送给ta就是最佳投资。但重点不在礼物本身，而是背后的心意——不是因为对方持续哀求才送礼，礼物本身也要合适。\n我不擅长使用这个爱之语，几乎已经忘了上次送礼物是什么时候。但上个月还收到过别人的礼物。\n为什么我送不出去？一是不知道送什么，越重要的关系越不知道送什么；二是我在开销上比较保守。一般来说，我收到礼物是开心的，但更多取决于是谁送的（是我希望的那个人吗）和送的是什么（是我喜欢的东西吗）。不过绝大部分时间，我不期待收到礼物。\n服务的行动 施比受更有福。\n主动为对方做力所能及的事情也是爱。比如去某人家之前，先问需不需要帮忙带些东西。\n采取行动前，最好先问。\n避免行动被负面诠释——如果我帮他清洗浴缸，对方可能以为我认为他脏。\n我觉得父亲是用服务的行动诉说爱的，母亲是肯定的言语。但我自己不太能自在地用服务的行动。觉得自己看事做事的能力不够，不能准确提供对方想要的服务，尽管我可能很热心。\n过去三个月，我没有用任何服务的行动帮助父母。倒是和同事聊天谈心，请他吃饭帮他度过难关；最近也听室友诉说她的恋情故事。这些算不算服务的行动？如果有人用行动向我表达爱，我能感受到五到七分。我没法向我关心的人服务，但我可以服务自己——或许吧。\n精心的时刻 精心的时刻不代表眼光要紧盯着对方，或是四目相交。有时是一起从事共同喜欢的活动，活动的内容并不是最重要的，它只是创造亲密感的一种手段。\n精心的时刻更多是专心的陪伴。一起去做某件事情：\n全神贯注倾听 精心的对话——将聊天延续下去，表示对对方的好奇心 精心的活动——做一方或双方喜欢的事情，重要的不是做什么，而是共同体验和经历 书里还讲了如何成为有同理心的倾听者：对方说话时注视对方、不做其他事、倾听对方的感觉、观察肢体语言、不插嘴、提问确认理解、认同对方的感受（对方和你聊天更多不是来找你解决问题，而是解决情绪）、询问能帮什么忙。这些我确实需要练习。\n身体的接触 可能是因为我们不敢让人知道自己喜欢被触摸，担心会让人误会，只好继续孤单下去。\n不愿接近你的身体，就等于在情感上与你划清距离。\n读到这两句话的时候，我愣了一下——好像就是在说我。我的羞耻感过强，导致从未主动和任何异性有肢体接触，唯一一次还是女生邀请的抱抱。\n爱的宗旨是为对方创造幸福，而非满足个人私欲。学习诉说对方的爱之语，才是真正爱ta。\n性爱不需要解放，反而需要被局限在恰如其分且最有效益的范畴里。数十年的研究显示，这个范畴就是一夫一妻、厮守终身的婚姻。\n书里还引用了统计数据：婚前同居的男女离婚比率远超过没有同居的，有些甚至高达 100%；同居男女的关系在品质、稳定性和和谐性上都不及已婚夫妻。应该追求深远的性关系，性爱是私密的，应该和我所深爱的人共享。\n身体接触也有时机：避免愤怒时的接触；取得成就时是接触的好时机；失败导致的心情低落也是好时机。\n测验结果出乎意料 在做测验之前，我认为自己的爱之语是精心的时刻和肯定的言词——但必须我自己也认同。结果出来之后：\n类型 得分 身体接触 9 肯定言辞 7 礼物 5 服务 5 精心时刻 4 身体接触得分最高，这和我预想的完全不一样。仔细想想，也许是因为我太缺少身体接触，所以在测验中对相关描述产生了强烈的共鸣——不是因为我得到了很多，而是因为我渴望得到。\n如何找到自己的爱之语：你如何对待其他人（对待其他人的方式往往就是希望别人对待自己的方式）、留意自己对别人的要求、倾听自己的抱怨、想象理想配偶的模样。\n发现对方的爱之语则可以通过：观察对方的表达方式、怨言和要求，通过提问（比如：我应该如何向你表达感谢？），或者直接实验——用不同的爱之语，看对方的反馈。\n与父母的关系 与父母的关系是特殊的，它会影响你处理人际关系的方式。即使与父母的关系再不好，也有修复的可能——尽管我和父母没有重大裂痕。\n可以留意生命中重要人物的爱之语：姓名、主要爱语、我可以用怎样的方式表达爱。\n两性交往 书里提到交往的纯洁目的：\n认识异性并学习与对方来往 学习将对方视为完整的人，而非物体 让自己更成熟 创造服侍别人的机会——主动性，不是舔，这是爱人的能力 事实上，两人的特质越相近，冲突就越少。但价值观、道德观、生涯规划及生儿育女这类大事，彼此的差异就格外明显。婚前交往让男女双方可以互相认识，也会使彼此的差异格外明显，决定是否合适走入婚姻。\n多想想热恋期过后的感觉。我希望能拥有长期、适合的伴侣和关系。婚姻关系要天长地久，要求的不单是幸福的感觉。\n将拥有幸福的婚姻视为最重要或非常重要的目标。\n婚姻不一定要达成陪伴、性爱、爱情、后代、社会接纳、经济考虑、安全感这些目标。\n婚姻最崇高的目的，就是男人与女人生命的各个领域，达到最深层的结合，进而带来最大的满足。\n我对这句话的理解是：婚姻的结果不重要，过程才重要。相互结合、相互理解、相互帮助、共同生活的体验就是最大的满足。\n书里还讲了几个维度的合一：\n知性合一：你们都在看什么书、视频、媒体，是否能共同就一个话题展开讨论？教育程度如何？简单说，有没有共同成长的土壤。\n社交合一：不一定要有很高的社交共性，你们可以培养共同爱好，但要保持开放性，勇于尝试新东西。社交上的成长应该在婚前就开始，而不是婚后慢慢磨合——婚后大概率不会有太大变化。\n情感上合一：\n被爱：觉得对方真心关心你 被尊重：你觉得未来的另一半看好你（聪明、能力、个性） 被感激：感受到对方看重你在这段关系中的付出 经过精挑细选后才结婚的对象，是拥有恒久幸福婚姻的第一步。\n爱与成功 懂得如何表达爱的人，成功的几率更大。爱人有助于达到事业上的成功。\n原则很简单，就是不要浪费时间思考你究竟爱不爱你的邻舍，去做就是了。做了之后，我们会发现一个大秘密。当你在行为上表现出爱时，你会发现你竟然当下就爱上他了。反之，伤害你讨厌的人，就会越来越讨厌他。对他好，心里嫌恶的感觉就会越来越少。\n爱不是一种感觉，而是一种行动。行动能带出感觉，所以爱的行为能带出爱的感觉。\n读完这本书，我对\u0026quot;如何爱人\u0026quot;有了更具体的认知框架。以前总觉得表达爱是顺其自然的事，现在意识到它更像是一门需要练习的语言。至少下次，我知道该用对方听得懂的语言去表达了。\n","date":"2026-04-22T23:40:00+10:00","image":"/p/the-5-love-languages-singles-edition/cover.webp","permalink":"/zh/p/the-5-love-languages-singles-edition/","title":"读后感 - 爱之语（单身版）"},{"content":" 封面故事：在 Burwood 的一家名为\u0026quot;LEGEND\u0026quot;的自助火锅店，我在那儿好好吃了一顿，庆祝我的 CCL 考试通过了。\n距离上次发文已经有一段时间了，甚至连\u0026quot;Casual Talk\u0026quot;系列的上一篇文章都是在我找到工作之前写的。我很怀念那种自由书写想法的感觉。终于，我完成了职业年课程的课堂部分，所以周六又回来了，可以写点东西记录最近发生的事情。是的，已经发生了很多事情。\n新经理 不幸的是，我的前经理 Minh Cung 决定离开我的团队和公司。我们一起工作的那段时间我很享受，很欣赏他的才能和技能。我们住得很近，所以还是可以经常见面。当然，我也换了一位新经理，虽然和他一起工作的时间不长，但我已经能看出团队管理上的差异，希望我们能合作愉快。\nCCL 考试通过 2 月 4 日，我参加了 CCL 考试，兼职准备了 2 个月，2 月 17 日拿到了成绩。考试只有大约 20 分钟，但花了 800 澳元。我感到非常开心，因为考完后我感觉很悲观，觉得自己犯了太多错误。结果是我不需要再交那笔高额的考试费了，所以我们去吃自助火锅庆祝！（我很欣赏我们的团队文化，即使下班后我们也保持紧密联系）\n升职 就在昨天，新经理告诉我我升职了。由于我刚完成试用期，我认为这算是快速晋升。我感到兴奋和有挑战性，因为成为焦点后肯定要承担更多工作。总体来说，这是个好消息，对我的长期职业发展有帮助。\n为生活引入随机性 如你所见，我的 2026 年有一个好的开始，作为一名 IT 留学生来说很不容易，但我仍然感到不满足。今天，我坦诚直接地和 AI 聊天，试图找出我忽略的生活问题，试图找出关键因素。AI 告诉我，我擅长或偏好结构化、可预测的任务，但不愿意面对非结构化和随机的事件。我管理财务、时间、精力方式从一开始就扼杀了所有随机性的发生。结果，我的生活变成了两点一线。\n现在我有三个担忧：\n澳大利亚永久居留权 留学费用 零恋爱经历 AI 告诉我前两个正在通过我熟悉的方式推进，最终会得到解决。最后一个在我的能力范围之外，很难量化、衡量和跟踪。我需要在生活中引入更多随机性，允许自己做一些我认为没有意义的事情并观察。如果一个被动模式 20 多年都不起作用，那听起来更像是方向错误，而不是进度问题。\n","date":"2026-03-14T20:07:37+11:00","image":"/p/casual-talk-05/cover.webp","permalink":"/zh/p/casual-talk-05/","title":"随想 05"},{"content":" 封面故事：在克洛弗利（Clovelly）附近海滩的日出，参加 Quiet Circles Private 5am Wellness Escape 的清晨活动时拍摄。\n今年你做了哪些以前从未做过的事？ 用 AI 编程 在悉尼生活 在完全使用英语的工作环境中工作 使用 macOS 而不是 Windows 尝试做自己的产品 你坚持了新年决心吗？ 去年年底，我为自己设定了个人 OKR：\n认识 10 位可以和我聊至少一小时的女生（非工作原因） 阅读 5000 页书 完成 Professional Year 并找到一份 IT 工作 PTE 达到 79 \u0026amp; CCL 将体重控制到 85 kg 目前情况如下：\n今年我只认识了 1 位女生，所以未完成。 我读了两本书各约一半，总页数少于 5000 页，所以未完成。 我找到了工作，但 CCL 仍在进行中，所以未完成。 我还没参加 PTE 测试，也没参加 CCL，所以未完成。 我的体重从 90 kg 增加到 102 kg，所以未完成。 总的来说，我没有坚持我的新年决心。\n有谁在你身边生孩子吗？ 有三个人，但并不是很亲近。\nAmy，QUT 的一位同学 Rong Yan，我前公司的 HR Yanqi Feng，从小学到高中的同学 有谁在你身边去世吗？ 没有，幸运的是，没有人在我周围去世。\n你去过哪些城市/州/国家？ 澳洲，新南威尔士州，悉尼：因为工作我搬到了悉尼。 澳洲，昆士兰州，布里斯班：我会在圣诞假期再次访问那里。 澳洲，昆士兰州，黄金海岸：和朋友们去过，为期两天的短途旅行。 明年你希望拥有而今年缺少的是什么？ 我对目前的状态不太满意，确实有很多不足。如果只能选一项，那就是：较强的沟通能力。\n这体现在多个方面：\n良好的英语：尤其是口语和听力 抓住话题重点：快速进入主题，或提出恰当的问题帮助我快速理解 简洁表达：直接且简短地传达关键信息 勇于表达：从小组会议到对暗恋对象，能在平静的状态下表达自己的想法 今年有哪些日期会永远铭刻在你记忆中，为什么？ 7 月 3 日：我收到了工作邀请。 4 月 14 日：收到来自 Sony PlayStation 的第一次面试邀请。 1 月 22 日：为期两天的黄金海岸之行，住在 The Star 酒店。 2 月 26 日：我参加了 Ramen Champion 的快速吃面挑战，这是我第一次参加此类挑战。 今年你最大的成就是什么？ 经过 3 个月、投递 270 份简历、6 家公司的 11 次面试后，我终于拿到了现在的工作，这无疑是我今年最大的成就。\n今年你最大的失败是什么？ 从 OKR 的角度来看，这一年并不算充实。我认为我最大的失败是没有成功减肥。\n在一年内把体重从 90 kg 降到 85 kg 是完全可行的，甚至很容易做到。考虑到随着我接近 30 岁，新陈代谢会下降，我需要尽快行动。\n你还遇到了哪些困难？ 针对 IT 专业的不透明且苛刻的移民政策非常困难；现在竞争极其激烈。我知道自己有很多事情要做，但缺乏精力和动力，工作之余常常无法完成应做的事情。\n你有生病或受伤吗？ 幸运的是，这是健康的一年。没有发生重大疾病或受伤。\n你买的最棒的东西是什么？ 如果只能选一件：MacBook Pro 16（2024）\n这是我的第一台 Mac，帮助我熟悉了 macOS 及其生态系统。我遇到了一些很棒的软件，重建了我的工作流，采用更接近 POSIX 的方式，这确实帮助我更专注于重要的工作。\n谁的行为值得庆祝？ 我的团队经理 Minh。加入公司之前我很少使用 AI 编程工具，看到 AI 带来的效率提升让我震惊。你可以在三个月内从零构建一个可用于生产的 feature-flag 系统，并具备优秀的测试覆盖和工程规范。当然，这很大程度上归功于他的工程能力，但他向我展示了未来的样子。\n谁的行为让你感到震惊或失望？ 说实话，今年相对平静，我没有特别感到震惊或厌恶的事情。如果非要选一件：Ken 回日本了。\nKen 是我在澳洲结识的第一个朋友，因为我们都热爱日本的 ACG 文化，我们关系很好，并在两年的 IT 硕士学习期间几乎一起完成了所有小组作业。我知道他最终会回日本，但来得比我预期的早。无论如何，祝他一切顺利。\n你的钱大多花在哪些地方？ 房租（固定且必要的开销） Professional Year 的学费（固定且必要的开销） 食物（大多在外就餐，我很少自己做饭，平均每月约 $580） 有什么事让你非常非常兴奋？ 有两件让我非常兴奋的事：\n今年某个时刻，我回顾了自己的个人成长，惊讶于自己的进步和付出的努力。我曾因高考失利（383/750）、CET4 失败（250+/710）等而觉得自己是个失败者。现在我在全英语环境中做软件工程师，得到了经理的积极反馈，PTE 得分 83/90，学业中几乎拿到满分（GPA 6.75/7）。我现在对自己更乐观了。 我在澳洲遇到的人都很友好也很聪明。这感觉像是升级：一个个通过挑战，遇到优秀的人可以向他们学习，逐步建立成长型心态（你要么获得成功，要么从失败中获得学习的机会）。 哪首歌会永远让你想起今年？ Alohaii \u0026amp; Rachie 的 Heart of Glass\n与去年此时相比，你是：更快乐还是更难过？更富有还是更贫穷？更健康还是更不健康？ 与去年相比，我感觉更平静，既不更快乐也不更难过。去年此时我正要毕业，我会想念那个时刻。因为现在有了工作和收入，我稍微富有了一些。相比去年，我感觉更不健康，因为今年锻炼不够规律，体重上升。\n你希望自己多做什么？ 更多运动 更多英语学习 更多读书 更多睡眠 / 更规律的作息 你希望自己少做什么？ 少在外面吃，尤其是深夜外卖 减少分心或自我打断 你如何度过假期？ 我独自在家，随意浏览网络内容。\n你今年恋爱了吗？ 和往常一样，没有。\n你现在讨厌谁，而去年此时并不讨厌的人是谁？ 我通常不会长时间讨厌一个人。我的做法通常是切断与我不喜欢的人的所有联系，最终会慢慢忘记他们。\n你最喜欢的节目是什么？ 是一部动漫，Megalo Box Nomad，我大约在今年四月看过。\n这部作品讲述一位曾是拳击冠军的男人，克服重重挑战，再次站上舞台；这与我当时在求职过程中陷入困境的经历产生了共鸣。\n你读过的最好的书是什么？ 我还没读完：《意志力的本能：自我控制如何运作，为什么重要》\n我感觉自己一直在与自制力作斗争，这促使我读这本书。书中讲了许多常见场景，说明你是如何“欺骗”自己做出不理性的决定（例如“我明天开始做，所以今天玩一下”），因此我不再只是抱怨自己，而是尝试分析背后的原因。还没成为我的第二天性，但这是个好的开始。\n今年你最大的音乐发现是什么？ 我不自己演奏音乐，但根据我的歌单，我确认 J-pop 是我的风格。\n你最喜欢的电影是什么？ 今年我没有看新片，我最喜欢的电影仍然是 星际穿越（Interstellar）。我被神秘的星体和黑洞吸引。\n你最喜欢的一餐是什么？ 在 Roast Republic 的那顿饭。我去了两次，食物质量真的很棒，分量巨大 😋。\n你想要并得到了什么？ 一份工作，这是应届毕业生最重要的事。 一台 MacBook；自 2018 年起我就想要一台 Mac。 一处带自己卫生间的住处。 你想要但没得到什么？ 更优秀的英语：PTE + CCL 一部新的 iPhone（iPhone 17，本来打算把它当作英语进步的奖励） 你生日那天做了什么？ 像平常一样，我当时还在为找工作而担心。 我在住处附近闲逛，思考如果找不到工作该怎么办。\n有什么事情会让你的这一年变得更加满足？ 我成功找到了工作，并加入了一个非官僚、自治的团队，与这样的团队共事让我非常愉快。我觉得自己很幸运。\n今年你的个人穿着风格如何？ 这是我明年必须改进的方面。为准备第一天上班，我买了几件新衣服，但并不是出于个人时尚考虑。要量化明年的个人形象，可以从四个方面衡量：发型、面部护理、穿衣风格和体型。\n是什么让你保持理智？ 我并不总是很理智。《负面想象（Negative Visualization）》是我一直在实践的技巧，来自 Stoicism。它帮助我提前做好心理准备，接受可能发生的事情，从而提高我的心理抗压能力。\n你最敬佩的名人/公众人物是谁？ 我还没有找到特别敬佩的人。\n哪个政治议题最让你关注？ 中国与周边国家关系的恶化。\n你想念谁？ 我想念在中国的亲人和朋友。我已经超过三年没有回去了。\n你遇到的最棒的新朋友是谁？ Minh Cung，我的直接经理。他更像是我的导师和朋友。\n今年你学到的最有价值的人生教训是什么？ 更多关注你此刻能做的事，并在可用选项中做出最好的决定。不要美化你未曾走过的道路。\n有一句话能概括你的一年吗？ 至少，我今年找到了工作。\n","date":"2025-12-07T23:19:34+11:00","image":"/p/annual-40-questions-2025/cover.webp","permalink":"/zh/p/annual-40-questions-2025/","title":"年度 40 问 - 2025"},{"content":"自从我开始在一家积极拥抱AI以提高生产力和采用利基技术的公司担任新角色以来，已经过去三周了。我想分享一些最近作为软件工程师在AI支持效率提升方面获得的见解。这篇文章的主要主题是介绍使用AI加速软件开发的三个先决条件。换句话说，你需要满足这些先决条件才能让AI在你的软件开发工作中更好地为你服务。\n对AI友好的代码库 第一个先决条件是对 AI 友好的代码库。这样能确保 AI 基于你的意图开展工作，而不是随意生成点子。\n引入规则与上下文 如果你使用过 Cursor 或类似的代码编辑器，你应该明白我的意思。你需要提供适用于整个项目的全局规则，作为指导或长效提示，要求 AI 在特定框架内思考。\n在这份规则文件中，你至少需要介绍以下内容：\n业务范围：项目是做什么的？它的功能边界是什么？（虽然这可能会改变，你可以随时更新）。 项目上下文：你正在构建什么类型的应用程序（Web、iOS等），以及你的技术选择是什么？ 你的愿景：理想情况下，项目应该是什么样子？ 最佳实践：指定你希望AI遵循的任务（例如，对于每个实现的API，你还必须编写相关的OpenAPI文档）。 代码注释 \u0026gt; 文档 简而言之，有两个原因：\n与纯文本相比，AI能更好地理解代码，因为代码是明确的。 代码总是最新的，而文档可能会过时。 因此，永远不要将代码库中的注释仅仅视为未使用的代码或简单的功能介绍。它们也可以包含关键的业务逻辑。你可以使用注释来解释代码块背后的推理，比如为什么工作流程以某种方式设计，它以前是什么样子，甚至是谁做出了这些改变的决定。Git 会记录变更，而代码内的注释则为 AI 和人类开发者提供明确而有信息量的线索。\n我之所以认为对代码维护者而言文档不再那么重要，还有一个原因：AI。作为新的代码维护者，你可以向 AI 询问任何你需要知道的东西。别误会，我说的是维护者，而不是项目用户或依赖这个项目的其他开发者。你仍然需要为那些受众提供文档，但会更轻量，因为他们不关心实现细节。再次强调，要让这发挥作用，你需要足够的上下文注释。\n整洁且语义清晰的代码/结构 就像人类开发者一样，AI 更喜欢具有高内聚、低耦合的代码，这样它就可以更有把握地添加或编辑代码。没有人喜欢混乱，所以这本质上是一个代码质量问题，无论你是否使用 AI。AI 生成的代码将严重依赖现有代码：垃圾输入，垃圾输出。这应当从项目伊始就被重视，并持续保持。一旦代码库成为 AI 辅助的「屎山」，相信我，没有人会想碰它。\n强健的内置检查 AI 的重试成本很低，尤其是对于并行工作的编码类 AI 工具。人类工程师精力有限，可能会忘记执行那些能发现小问题的繁琐检查。这就是强健的内置检查发挥作用的地方。例如，在 NodeJS 项目中，这些检查应该在项目初始化时由开发者配置。\n代码规范检查（Linting）：检查代码风格并防止不安全的坏实践。 格式化（Formatting）：强制执行一致的代码格式（例如缩进）。 类型检查（Type Checking）：如果使用 TypeScript，确保类型安全。 测试（Testing）：通过自动化测试暴露逻辑或功能问题。 这些检查必须提供包含具体文件名与行号的反馈，以帮助 AI 快速定位问题根因，从而反复重试直到问题解决。你是在帮助 AI 提高其输出的质量门槛。最棒的是，人类工程师不会被打扰，你可以从容规划下一步。看到了吗？效率提升了。\n领域知识 我工作得越多，就越意识到技术技能对软件工程师来说并不是一切，即使你负责对性能指标高度敏感的关键组件。Product Mindset 和 Own Your Product 是经常被提到的两个品质。从项目经理那里获得信任的关键在于确保你的交付符合他们的预期，这要求你们达成一致。这就是为什么领域知识如此受重视。\n共享术语带来共识和效率。 你可以及早发现你和PM之间理解的差距。 这有助于长期思考，特别是当你负责系统设计时。 是的，这些原则在 AI 发明之前就存在了，但在 AI 时代更加耀眼。\n1 产品经理 ----\u0026gt; 人类工程师 ----\u0026gt; AI 人类工程师现在更像是一个解释者：你会将 PM 的需求重新表述，加入你的技术洞见，并通过提示把这些传达给 AI。显然，你对领域知识的理解越好，你的提示就越准确有效。你的领域知识也能帮助你把工作拆解成可执行的行动计划并明确优先级。一旦范围和上下文清晰，就是时候让 AI 在后台并行完成你的任务了。\n技术审查 就像任何其他技能一样，你与 AI 合作得越多，你就越了解如何与它合作。没人会因你让 AI 生成代码而指责你，但底线是你必须始终清楚它在做什么。因此，软件工程师的技术要求依然存在。初级软件工程师现在也不可避免地要审查 AI 生成的代码，这以前往往超出他们的典型职责范围。你的角色正转向把控方向与系统设计，而不是只关注实现。\nAI 就像一个性能缩放器——你性能公式中的一个系数。你的技术知识越多越深，你能驱动的就越多，你的节奏就越快。如果将来听到50倍软件工程师的概念，我不会感到惊讶。Andrew Ng 教授有一个有趣的新发现：硅谷产品经理（PM）与软件开发工程师（SDE）的比例已经从传统的 1:4 转变为最高 1:0.5，在某种程度上印证了我的观点。\n软件工程师完蛋了吗？ 简而言之，不——只要你愿意适应变化。\nAI 正在改变我们的工作方式，但它距离完全自主还很远，这意味着 AI 在软件工程中仍然只是助手。AI 显著提升了交付速度，所以就业市场上的职位可能会减少。另一方面，AI 的出现拉平了人们之间的技术差距，允许任何人创建自己的产品，并可能用新的创业项目填补这些缺失的职位。\n我突然想起了曾嵘（前 SAGI GAMES CEO）说过的话：当你打算用汽车取代马车时，你有问过马的意见吗？\n","date":"2025-08-16T10:39:15+10:00","image":"/p/preconditions-to-accelerate-sd-using-ai/cover.webp","permalink":"/zh/p/preconditions-to-accelerate-sd-using-ai/","title":"使用AI加速软件开发的先决条件"},{"content":" 封面故事：一个名为\u0026quot;纵横四海\u0026quot;的中文播客，它也介绍了莫提默·J·艾德勒的《如何阅读一本书》。这篇文章遵循了该播客的内容框架。\n这篇文章更多是关于我之后应该遵循的阅读书籍的过程/指导，而不是书的摘要，所以文章本身可能与原始内容不完全一致。\n阅读的目的 我想在这样一个多媒体时代培养阅读习惯。我意识到了专注力的重要性，而我的专注力被分散性的短视频、短文章所瓦解。受限于时长（或者是他们故意为之），内容创作者无法解释他们的想法以及是什么导致他们得出结论，所以他们只是简单地将他们的想法填入你的脑海，而不是真正的思考。我不想陷入这样的陷阱，阅读应该是解决方案。一般来说，阅读有四个目的。\n娱乐 有很多娱乐选择，比如游戏、YouTube，所以我认为作为娱乐的阅读在动机方面可能是这四个中最难的。阅读作为娱乐的最大好处是你不太可能感到内疚（比如读完一本书可以给我一些成就感）。\n信息 考虑到这本书的出版日期，我认为这部分现在已经不太正确了，但我仍然在这里列出。当然，书籍有其优势：它们更可靠，因为它们经过编辑/同行的审核，相比于来自未知来源的在线帖子/文章。然而，书籍无法提供最新信息，所以实际问题变成了如何找到另一个集中且可靠的信息来源。我的解决方案是RSSHub + Folo，这是一个支持定制RSS订阅的组合，没有算法推荐的烦恼。\n理解 书籍的内容由作者和编辑精心组织，所以你可以系统地理解领域知识。作者不会吝啬在他们的书中分享知识，尤其是那些经过多次审核的书籍。作为最传统的信息媒介，你可以轻松找到几本涵盖相同主题的书籍，帮助你深入研究，这也被称为主题阅读。\n心智成长 书籍不仅呈现知识，还展示了作者的思考方法，这是书籍最有价值的养分，帮助你像专家一样思考。你有自己的背景，结合专家的思维，你可以为你的生活问题/主题提供自己的解决方案。没有理论支持，人们往往生活在想象中，例如，在亲密关系中，你可能会考虑为什么我的男朋友/女朋友最近几天没有联系我？开始担心关系会有不好的结局，这是不必要的甚至是有害的。这类话题不适合分享或公开讨论，所以你确实需要阅读来把你拉出来，形成一个更稳定的心理核心。\n那么，该怎么做？ 好的，阅读是一个好习惯，那么我应该如何阅读呢？我不想让阅读变得太复杂以至于我可能因为负担而放弃，但我也想最大化阅读的好处（我确实想改变我的生活）。\n阅读前 阅读前最重要的事情是判断这本书是否值得阅读。\n是什么让我读这本书？或者你想通过阅读这本书解决什么问题？ 书名 书的目录（内容如何组织） 书的前言（作者想在阅读前告诉我的话） 我感兴趣部分的第一段 这些信息可以告诉我是否应该继续阅读，而这些步骤不会花费你太长时间（大约10-30分钟，我猜？）\n阅读中 书籍按照作者的偏好组织，但我不需要遵循它。根据《如何阅读一本书》给出的建议，一个合格的读者应该根据作者传达的论点重构书籍内容。\n对于我遇到的每个论点，我应该思考以下问题：\n作者的建议/意见是什么？用我自己的话重述 作者如何证明他/她的想法？ 我同意吗？如果不同意，我的观点是什么？ 我如何将知识应用到我的生活中？ 对于每个主题，我应该做笔记回答上述4个问题。\n阅读后 我需要提醒自己：不要期望将书籍的100%内化并应用到我的生活中。这是不可行的，这也是为什么经典书籍应该被多次阅读的原因。内化来自刻意练习，而不是阅读！所以我阅读后所做的一切都是为了让复习更容易。\n输出思维导图（按论点组织） 量化想法并将其转化为行动/习惯（真正的变化发生在这里） 我需要阅读更多关于这个主题的相关书籍吗？ 可选：写一篇博客文章 ","date":"2025-07-17T11:05:58+10:00","image":"/p/how-to-read-a-book/cover.webp","permalink":"/zh/p/how-to-read-a-book/","title":"读后感 - 如何阅读一本书"},{"content":" 封面故事：我飞往悉尼的航班登机口。\n录取通知 在3个月内投递了约270份工作申请，经历了6家雇主的11次面试后，我终于获得了一家悉尼公司的录用。从Reddit上的帖子中，我了解到在当前澳大利亚IT就业市场获得录用是多么困难，尤其是作为一名经验有限的国际毕业生。我知道许多同龄人仍像我之前一样在求职中挣扎，所以此刻我感到无比幸运。有趣的是，在系统设计面试（最后一轮）之前，我对自己的表现产生了怀疑，甚至考虑放弃——我很庆幸自己没有放弃。\n这段求职旅程中最大的教训之一是，澳大利亚雇主高度重视你的技能和背景与他们业务需求的契合度。这就是资本主义的运作方式——创造价值很重要，这需要即使作为技术专业人员也要掌握领域知识。从能源行业到游戏行业，再到现在的旅游行业，我希望能深入了解这个新领域，成为团队中不可或缺的一员。\n悉尼一瞥 由于公司实行5天办公室工作制，我必须在3周内搬到悉尼。\u0026ldquo;我一定会想念布里斯班，\u0026ldquo;当我决定离开时就知道了。它是我在家乡以外居住超过2年的第一个城市，是我结交外国朋友的第一个城市，是我遇到会真诚微笑向陌生人问候的人们的第一个城市，也是我即使在冬天也能穿T恤的第一个城市。我在那里拥有最美丽和珍贵的回忆，一个温暖的城市。\n经过90分钟的飞行，我到达了悉尼机场。悉尼的交通非常便利，有直达CBD的火车线路和几个公交站点。你可以刷Visa/Master卡乘坐公共交通。\n我乘火车到达住处。与布里斯班类似，我又一次发现自己住在唐人街，但这次感觉更加地道中国化：几乎所有行人都是中国人，很少听到英语；司机如果你开得慢就会按喇叭；许多受欢迎的中国品牌和餐厅营业到深夜。这里的一切都让我想起了中国。\n我的新房东是一位来自上海的善良阿姨。她向我介绍了我将要住的房间和我的室友，一个在悉尼大学学习IT的中国女孩。悉尼的温度比布里斯班冷，通常你会感觉比天气预报显示的更冷。\n第二天，我决定查看我上班的路线。整个行程门到门大约需要40分钟，不需要任何换乘——只需从家步行5分钟到火车站，然后从火车站步行3分钟到办公室。这是一个令人难以置信的便捷通勤路线！\n到达后，我透过巨大的玻璃墙观察办公室：人体工学椅，双旋转显示器（我猜是24英寸），电动升降工作台，以及墙上挂着的大型显示器，显示系统运行状态。我为能在那里工作感到非常自豪！\n当我坐在接待大厅的沙发上时，一位之前面试过我的经理认出了我并出来迎接我。我感到有点紧张，因为我没有通知任何人我要来访。他非常友好，邀请我进去并简短地带我参观了办公室。他还问我是否愿意参加下午的内部产品会议，我欣然接受了。会议涵盖了他们产品的进展和2025年下半年的计划。氛围非常好：一切都以有组织、清晰的方式呈现，观众参与度和互动性很高。不过，我能感受到一些压力，因为我将加入负责实施最关键新功能的新成立团队。\n会议结束后，我决定步行游览一下。办公室位于悉尼市中心，步行不到20分钟就能到达悉尼歌剧院。\n也许是我在布里斯班待得太久了，所以我对拥挤的人群感到有些疲惫。虽然我刚到悉尼，但我立即能感受到两个城市之间的差异，并理解为什么更多的中国人倾向于住在这里（更现代化的城市风格）。\n结束语 一切对我来说都感觉不真实，因为事情变化得如此戏剧性和突然。我仍然清晰地记得决定出国留学，准备PTE考试和签证申请的情景。我确定这样一个重大的决定会改变我的生活吗？不，但我还是冒险了——辞去工作，卖掉房产。毕竟，有意义的收获总是伴随着风险；生活中没有免费的午餐。\n我现在仅仅为了这份工作机会从布里斯班搬到了悉尼，我不确定我是否能成功通过试用期或获得工作签证以便更长时间地留下来。我值得家人给予我的所有支持吗？我能够为他们提供更好的生活吗？虽然我对这些问题没有明确的答案，但我必须相信自己——就像我当初决定来澳大利亚时那样。\n永远相信美好的事情即将发生 —— 小米\n","date":"2025-07-15T22:08:01+10:00","image":"/p/the-next-chapter/cover.webp","permalink":"/zh/p/the-next-chapter/","title":"新的篇章"},{"content":" 封面故事：悉尼歌剧院（我即将搬到悉尼！）\n最近，我有几次面试机会。在澳大利亚的就业市场中，找到候选人和雇主之间的相互契合点尤为重要，而面试主要用于从雇主角度评估资质。向面试官提出深思熟虑的问题不仅有助于你收集更多关于职位和公司的信息，还表明你是一个积极思考且真诚感兴趣的人。\n以下是我喜欢在面试中提出的问题，按不同阶段分类。\nHR电话面试 这一轮面试官的主要目标是获取更多关于候选人的背景信息，例如候选人的工作经验、所在地、期望薪资和相关技能。他们既不了解技术细节，也不了解职位的详细情况。\n介绍公司的主要业务 介绍他/她在这里的工作经验（即使你不是同一个职位） 他/她对这个角色的期望（回答会倾向于文化契合度） 面试的下一步是什么？/ 我什么时候可以得到回复？ 技术面试轮 您对这个角色有什么期望？（回答会倾向于能力方面） 我将负责哪一部分？（提前了解将要合作的团队） 技术栈变更历史（尤其是当面试官在公司工作多年时） 日常工作中使用的技术栈/库/工具 您如何将AI应用到工作流程中，以及在工作中使用AI的政策是什么？ 个人绩效将如何衡量？（KPI） 面试的下一步是什么？/ 我什么时候可以得到回复？ 终轮/系统设计 进度更新和任务分配的流程是怎样的？（了解更多关于协作模式） 您能透露更多关于角色职责的细节吗？（包括产品、向谁汇报） 您有什么建议可以帮助我快速熟悉业务？ 作为团队领导，您会如何给同事提供反馈？时间点和方法 面试的下一步是什么？/ 我什么时候可以得到回复？ ","date":"2025-06-30T18:49:22+10:00","image":"/p/questions-for-interviewers/cover.webp","permalink":"/zh/p/questions-for-interviewers/","title":"面试官提问集"},{"content":"从昆士兰科技大学毕业已经过去几个月了。这段时间我经历了一些挫折，大多与求职相关——事情的发展并没有如我所愿。之前我对自己的进展还挺满意的：最后一学期顺利通过了 PTE 考试，毕业时的 GPA 也还不错。然而，我缺少了一样至关重要的东西——甚至可以说是最重要的——那就是实习或本地工作经验。\n拿到 485 签证之后，我仿佛能清晰地听到时间在倒数的声音：如果两年内没有雇主提供担保，就只能离开。我开始感到紧张与焦虑，即使我学过斯多葛哲学，也难以克服这种情绪。也许是我曾经的两年工作经验让我设定了不切实际的期待，从而遮蔽了现实。比如，澳洲的雇主会怎么看我在中国的工作经历？更何况那家公司连 LinkedIn 页面都没有，根本无法验证其真实性。招聘流程、就业市场、技术偏好之间的差异，再加上信息的缺失和非理性的乐观，最终拖慢了我行动的节奏。\n我是在今年三月开始投递简历的，说不上太晚，但可惜至今没有收到任何面试邀请。我从多个渠道寻求帮助，毫无疑问，我的简历肯定存在问题——或者说，我的经历并不足以打动招聘者。之后，我根据一些资深工程师、大厂 HR 甚至 ATS 系统提供的建议，对简历进行了几轮优化，也逐渐转变了思路。\n总体来说，我的简历或许写得还不错，但针对性不够。现在必须针对每一个岗位量身定制简历。\n真实感是关键。我该如何证明简历上的成果？又该如何证明我已掌握他们所要求的技能？\n目前，我的影响力几乎为零。我想起曾经有一位失业的软件工程师在悉尼街头自我推销，引起了很多路人和 HR 的关注，最终获得了面试机会。\n我也有一些新的想法：\n承认现实，重设心态，以“新人”的姿态出发，有助于我设定更合理的目标。\n保持耐心。每个人在失业期都会痛苦，我并不孤单。\n做一些让人信服的事情。用本地流行的技术开发一些真正能解决问题的项目，部署在 AWS 或 Azure 上，让代码自己说话。\n珍惜当下。这是一段宝贵的自我提升与成长的时光！我是人不是机器，所以成长应该是多维度的。比如，提升英语能力或制定新的阅读计划，听起来都不错！\n我真的很喜欢软件开发——那种通过一行行指令让电脑完成复杂任务的感觉，在 Leetcode 上看到“AC”那一刻的成就感，以及发现用一种更优雅的技术解决问题时的喜悦。所以，我为什么要把这种令人兴奋的热爱，和那些不可控、难预测、不可靠的就业市场绑定在一起呢？如果你真的喜欢它，那就去做吧。你用热情创造的一切，终将影响他人，慢慢地，它会成为你生活和工作的真正一部分。多么美妙，不是吗？\n是的，人生是旷野，不是轨道。\n","date":"2025-04-13T23:28:27+10:00","image":"/p/casual-talk-04/cover.webp","permalink":"/zh/p/casual-talk-04/","title":"随想 04"},{"content":" 封面故事：朋友们在书上的签名，不必担忧的理由，作为我的生日礼物。\n开始 阅读一本由英语专业记者撰写的哲学书籍对我来说既困难又枯燥，这主要是因为我有限的英语词汇量。然而，这是一个很好的时间点，给了我足够的时间和热情持续阅读，跨越了18天。我已经很久没有如此认真地阅读一本书了，我希望我也能从这次经历中培养出阅读习惯。无论如何，我很高兴我信守了承诺，在毕业典礼前完成了这本书的阅读。\n什么是斯多葛主义 斯多葛主义是一种古希腊哲学，强调内心平静、自我控制、有德行的生活以及与自然秩序保持一致。要理解和掌握这些理论，我们需要在日常生活中长期实践和应用它们。显然，我不可能在一篇文章中涵盖所有内容（说实话，我甚至不认为我对它有全面的理解）。我所做的只是粗略了解并记录对我最有益的部分。\n负面想象 负面想象是一种帮助你提前接受可能但不愿意的结果的方法，通过想象你将面对的场景，这是对该情况的心理准备。然而，你一定和我刚读完这本书时有同样的疑问，这不会让你感到沮丧吗？诀窍是只想象场景本身，而不是它的进一步影响和反应，将其视为一个提醒，提醒你不想面对的事情可能会发生。\n控制测试 控制测试是斯多葛主义提供的缓解内心精神摩擦的主要良药。其原则是关注你能控制的事物，让你无法控制的事物从你的思想中消失。你需要想象在你的思想中有一个客观的观察者（实际上，在读这本书之前，我也是这样做的，我称之为导师），问自己，你担心的事情是否完全可控？对于大多数事情，你只能尽力而为，但你无法控制结果。斯多葛主义说我们只能控制三件事：\n你的品格 你的行动 你对外部世界的反应 作为一名毕业生，带着工作的愿望，我当然希望能成功通过所有面试，这超出了我的控制范围，而AI的日益普及带来了更多的同行和激烈的竞争，这也不在我的控制范围内。遵循控制测试的原则，我应该忽略这些主观想法。\n等等，这些怎么会是主观的呢？它们不都是客观事实吗？事实本身是中立的，但由于我们的欲望，我们总是不自觉地给它们贴标签。在这种情况下，我的行动（如何准备面试）和我对外部世界的反应（如何根据反馈磨练我的面试技巧）才是重要的。\n优先无差别 优先无差别意味着接受所有可能的结果。在控制测试之后，内心的观察者已经告诉我们应该关注什么。另一方面，斯多葛主义教导我们更多地关注过程而不是结果（这是不可控的！），所以优先无差别自然而然地出现了。世俗概念中的成功对你来说不再重要，无论贫穷还是富有，无论单身还是恋爱中，无论不出名还是受欢迎，甚至无论生病还是健康，所有这些，最好拥有但最终你应该无差别对待。为了避免因失去某些东西（例如富裕的生活）而过于痛苦，最好从一开始就对它们保持无差别态度。\n斯多葛主义的美德 斯多葛主义鼓励人们通过理性思维和美德实现内心平静和幸福。这四种美德指导信奉斯多葛主义的人们成为一个斯多葛式的人。这些概念可能是空洞和抽象的，你应该遵循的程度取决于你的状态和判断，所以涉及我的经验/想法的解释可能是不全面和主观的。\n勇气 接受任何可能的不确定情况需要勇气，而承认真相并继续前进需要更多。在我看来，这并不被视为无情，因为你需要首先澄清真相，调整你的状态，然后仍然选择行动并承担相应的风险。仍然会有一个挣扎的过程，但勇气最终帮助你做出决定。\n经常评判自己的人，常常从内心声音中得到负面反馈，甚至因此失去相信自己的勇气。一旦逃避成为习惯，\u0026ldquo;不行动不冒险\u0026quot;成为他们的信条，而不是\u0026quot;不付出不收获\u0026rdquo;。虽然这也可能导致短暂的平静生活，但整体生活仍然缺乏经验。没有人能永远待在温暖的房间里，因为世界是动态的，从不按你的愿望变化。\n正义 将自己视为自然的一部分，其他人也是如此。正义的美德指导我们平等对待每个人并承担责任（例如遵守规则/法律，尊重个人尊严）。它引导你对社会的友善态度，超越自私。当你在没有外部推动的情况下为社会做贡献时，你确实会获得幸福和成就感。\n节制 节制更多是关于自我控制。\u0026ldquo;只取你应该/应得的部分\u0026rdquo;，这是我对节制的第一印象。另一方面，节制防止你沉迷于所有成瘾物。适度不应该是极端节制和放纵的混合。回顾减肥的过程，在最初的几周里，我控制得相当好，低热量饮食，频繁锻炼，这是由最初的热情驱动的。然而，热情不能持续那么长时间，而我放纵的那一刻宣告了这一轮的失败。相反，我吃相同数量的食物以避免饥饿，但含有更多的营养和更少的脂肪，使这个过程可持续。我不知道我是否能达到目标，但这次我很乐观。\n智慧 换句话说，做出合理决定的能力。在我看来，这四种美德一起工作：来自节制的没有任何成瘾的体面状态，来自正义的道德感，为你提供做出明智决定的坚实基础，然后你的勇气给你力量去识别真相并相应地采取行动。\n将斯多葛主义应用于问题 FOMO（错失恐惧症）和比较 被忽视或没有被邀请参加活动可能会让你沮丧，因为你只关注它的负面影响。相反，你也获得了自己的时间和空间来忙于其他事情。另一方面，它可能暴露一个潜在的问题：你不能独立地取悦自己。解决方案仍然是相同的：建立自己的情绪基于自己而不是他人或他们的行为，并花时间探索你的兴趣。对自己友善，因为他/她是唯一能永远陪伴你的人。\n毫无疑问，将自己与他人比较是通往不幸的确定道路。零和模式的比较总是导致两种结果：赢或输，当你输时，你失去信心，当你赢时，你获得无意义的成就，这也会造成进一步的压力：如果你的对手赶上了怎么办？与周围的人比较也是不科学的，即使你处于相同的空间和时间，但你有不同的个人发展经历，这意味着变量不受控制。此外，稀缺心态只会限制你和与你的合作，而事情变成了以比较为导向的结果，而不是实际产出。如果你能放弃比较游戏，转而专注于你自己的赛道，那将是很好的。你现在比一年前做得更好吗？你应对得更好吗？你只需要比自己更好或尽你所能做到最好。为你的成长感到高兴，反思缺点。\n享乐适应 我将这个问题归类为成瘾问题类别。一旦你体验了更好的物质生活，你将提高未来的门槛和期望，不愿回到相对艰难的条件。这就是为什么经历过破产但仍然回来的人如此令人钦佩。人们总是在找到一样好东西时想要更好的东西，但忽略了他们的真正需求和他们已经拥有的东西。在无尽欲望的驱使下，这些目标从不感到满足，因为似乎总有更多的事情要做，或者其他人似乎比我们更成功。\n我们可以通过认识到什么是空虚的欲望并采取措施停止追逐它来减缓这种享乐跑步机。不要将现在视为未来的基石，换句话说，活在当下而不是对未来的期望中。请记住，你不能永远保持任何东西，所以你应该感谢你拥有的一切。\n焦虑 首先，你需要认识到焦虑的本质：它是主观想象而非客观存在。第二步是找出你焦虑的原因，但在焦虑之前，斯多葛主义者重视理性思考，根据良好的信息行动，充分思考情况，而不是草率行动或从恐慌和焦虑的地方行动：对你来说，这可能包括坚持只有一两个可信的新闻来源，并限制你查看新闻和社交媒体的时间。你应该始终警惕你接收的信息，特别是在这样一个信息爆炸的时代。\n一旦你确认你的焦虑来自可信的信息来源，反思自己是否高估了结果或有不切实际的期望。记住：停止希望，你就会停止恐惧：希望和恐惧是同一枚硬币的两面。如果你有希望，那么你也有一个恐惧，即希望不会实现，所以不要被你想象的东西所压倒，只做你能做和应该做的事；不要迷失在过去的幻想或对未来的幻想和恐惧中，只处理现在摆在你面前的事情。\n韧性不是天生的；它是一种可以发展的技能，就像肌肉一样。将挫折视为斯多葛式的测试，让我们能够以力量和决心面对挑战。要克服的一个主要障碍是潜意识，它在困难时刻倾向于责备和判断。勇气在建立韧性中起着至关重要的作用，它是帮助我们应对艰难情况并向自己证明我们有能力克服困难的驱动力。\n死亡 没有人能永远陪伴你，斯多葛主义建议你提前想象他们的死亡，这样你就可以怀着感激重新考虑这段关系。不要留下未说的话；不要忽视友谊或家庭关系；好好享受与人相处的时间。当我们有损失时，有一个明确的阶段：否认、愤怒、讨价还价、抑郁，最后是接受。但斯多葛主义会建议你跳过早期阶段，直接进入接受阶段。\n我相信大多数人都害怕自己的死亡，包括我在内，因为我们忘记了真相：一切——甚至我们自己的生命——都是借来的，必须归还。我倾向于这样想象：我每天都是独立的，只是以某种方式扩展我的经验和记忆，我今晚就会死去，但明天的\u0026quot;我\u0026quot;会表现得更好，继续未完成的事情。如果没有更多的\u0026quot;我\u0026quot;，那就这样吧，至少我希望今天是快乐的一天。如果你活在某人的记忆中，你就永远不会真正死去。你的社区、你的朋友、你的家人——他们是对你的活生生的纪念。\n生活中没有什么是有保证的，再次，珍惜你的现在，感谢你所拥有的，降低你的期望。\n最后 我希望我对斯多葛主义的解释和思考是合理的。如果你也对斯多葛主义感到好奇，我建议你阅读原著。我写这篇文章的主要原因是因为斯多葛主义也需要日常实践，如果我某天失去了宝贵的心态，它可以帮助我重新找回。这是一篇相对较长的文章，感谢你耐心地阅读到最后。我感谢在QUT认识的朋友，我真诚地希望我们都能享受我们想要的生活。\n","date":"2024-12-04T19:43:37+10:00","image":"/p/reasons-not-to-worry/cover.webp","permalink":"/zh/p/reasons-not-to-worry/","title":"读后感 - 不必担忧的理由"},{"content":" 封面故事：初音未来 2024 布里斯班站\n她是谁 熟悉我的朋友都知道，我性格偏内向，与女生的相处经验有限。但今年在一次小组作业中，我遇到了一个很特别的女孩。我们能因为「问题驱动」的聊天风格连聊几个小时，从政治到个人经历、从择偶标准到家庭关系。对我来说，这样的聊天体验很新鲜，我也确实很享受。更巧的是，我们有不少相似经历：同一个国家来、都为了留学卖掉了房子、都考过研究生但没上岸。好奇、相似与互补，让我被她吸引。\n表白 因为她很特别，我心里冒出一个大胆的想法：要做点什么，否则会后悔；至少要把心意说出来。我做了决定，等待合适的时机。考完所有科目后，我们一起参加了学期结束的聚会。老样子，散场后又聊了很久。我感觉她已经察觉我的情意，是个无需再隐藏、也许恰到好处的时机。表白后，她很客观地分析了成为恋人的可能性。如果我足够敏感，其实该意识到：她那边缺少那种「冲动」，可能不会有好结果。\n我没有从她口中听到明确的拒绝，而是得知她已经开始了一段新的关系。虽然我事先设想过各种被拒的场景，以降低期待，但最讽刺的是：现实偏偏是我唯一没想到的情况。没有责怪她，也没有自我否定，只有单纯的难过。\n复原 事情发生后，我给了自己三天时间来消化负面情绪：\n第一天：把对她的「暧昧情绪」清空，回到朋友模式，多和朋友聊天； 第二天：生活部分回归正常，但允许自己把整个过程在脑子里回放； 第三天：完全回到常态，不再受此影响。 今天是第四天，我写下这些来平静复盘。说实话，我对自己的表现感到意外与自豪。第二天我们坦诚地聊清楚了彼此的想法。基于这次独特的经历与反思，我得出了几条结论：\n更爱自己，聚焦可控之事。 在亲密关系的开端，刺激（心动/火花）可能比承诺更重要。 小步快跑、快速试错；在确认关系前别投入过深（建议 1 周到 3 个月）。 主动且循序渐进地与更多女生接触，熟悉相处与互动方式（系统脱敏）。 对她们释放的信号更敏感，抓住机会前做好准备（自我优化）。 谢谢你（那位女孩）。真心祝你幸福。 也谢谢你的阅读。\n","date":"2024-11-19T12:13:14+10:00","image":"/p/thoughts-after-confession-failure/cover.webp","permalink":"/zh/p/thoughts-after-confession-failure/","title":"表白失败之后：一切都是最好的安排"},{"content":"距离我的毕业典礼已经不到 100 天了。今天终于有点时间来整理一下最近的内心想法。这些想法很杂乱——难以组织，也很难引起共鸣——这也是我为什么不常说出来，而选择写下来。我会尽量让它们更有条理一些，不过，谁在意呢，哈哈。\nMBTI 最近一位朋友向我介绍了 MBTI 测试，我也很久没做过这种测试了。我并不是性格测试的狂热爱好者，因为我相信每个人都是独特的，不该被标签化。但它确实能提供一些有趣的洞察，帮助我们更好地了解自己。\n这个测试结果引发了我一些反思。正如它所指出的，我倾向于尊重和遵循过去的经验，并将其应用于新的情境中。虽然被验证过的方法通常有效，但它们也会限制新的可能性，让人过度依赖自己的舒适区。尤其是在经验不足的情况下，那些我以为是知识的东西，其实可能只是偏见。就像机器学习一样，如果训练数据集太小，是无法构建出好的模型的。\n第二个建议是重新定义“完美”。在工程领域里，完美主义是有害的，最知名的例子就是 过早优化（premature optimization）。在现实世界里，交付一个 MVP（最小可行产品）远比一个打磨过度却可能早已过时、甚至无意义的产品更有价值。这些不必要或不理性的需求最终会变成对团队和我自己的压力。想成为一名合格的工程师，我需要具备工程师的思维方式：持续优化、保持灵活、快速且可预测地交付成果。\n最后一个建议是，停止自责。我第一年刚入学的时候，有个朋友经常提醒我“别总是抱怨”。今年他没再说了，大概是因为我也的确有所改善了。不过自责的情绪仍然存在。这是种固定的思维模式，不可能一下子扭转。它的负面影响很大，严重时会打击我的信心，让我放弃本可能属于自己的机会。如果我还无法完全停止自责，至少要学会原谅自己。我从未向朋友们表达过这些想法，因为我一直想在他们面前保持一个比较积极的形象。\n我为什么不能坦率表达自己的真实情绪？我到底在怕什么？我也不知道。\n告别 另一个朋友曾经告诉我：“没有人能永远陪伴你，你将花大部分时间和自己相处。”这并不是我第一次听到这句话，但它这次引发了新的思考。我本身并不是一个很主动的人，不太会主动联系朋友，所以很多关系往往都只维系在某个阶段。换句话说，我并不懂得如何维护人际关系，无论是友情还是感情。我总是在告别的时候感到难过，尤其是现在快毕业了。我意识到，我对身边这些朋友产生了很深的依赖——就像我在人生的每个阶段都会对当时的朋友产生依赖一样。尽管我知道自己最终会适应并结交新朋友，但这一刻仍然很难熬。\n这也是为什么学会独处非常重要。当然，我依然需要好朋友，但我不想再在情感上依赖他们。在我看来，这种依赖的最根本原因是，我还没学会如何享受一个人的快乐，特别是在独处时体验到真正的喜悦。这种缺乏“自我愉悦”的能力与我天生内向的性格产生了冲突。为了建立更稳定的情绪基础，我需要：\n在舒适区之外寻找新的兴趣 提前在心理上为离别做准备 我真诚地祝福我的朋友们一切都好，即使我们已经很久没联系了。\n松弛但有节奏的日程安排 我过去常常假装自己很努力，以此来缓解焦虑。于是，在前三个学期里，我大幅减少了娱乐活动的频率。虽然现在有所调整，但焦虑仍然存在。回头看，当初“省下”的那些娱乐时间其实毫无意义，因为它们并没有带来任何有价值的产出。我只是无意识地用娱乐来逃避自责。现在我才意识到，其实是我的大脑在悄悄地抵抗我的“命令”。\n或许我真正需要的，是一个“松弛但有结构”的日程。\n这个日程的目的是帮助我在工作与休息之间找到平衡，确保所有事务（包括截止时间）都能有序推进。“松弛”并不意味着“懒惰”，相反，它代表一种长期的思维方式和灵活的执行力。与其关注投入了多少时间，不如关注实际产出的内容。有了 ChatGPT 和其他 AI 工具的辅助，我可以更好地做出预估与计划，随着经验的积累也能更灵活地调整节奏。\n致谢 我不知道你是谁，但谢谢你读到了这里。如果你对这篇文章、这个网站、或者对我这个人有任何想法，请随意留言。\n","date":"2024-09-07T21:17:07+10:00","image":"/p/casual-talk-03/cover.webp","permalink":"/zh/p/casual-talk-03/","title":"随想 03"},{"content":"引言 在移动设备快速发展与普及、以及用户体验不断被重视的推动下，移动应用开发经历了显著的演进，让用户与开发者的体验都得到提升。本文按阶段回顾移动应用技术沿革，勾勒各阶段的代表性特征，从而呈现出它的演化轨迹。\n早期阶段 移动应用开发的早期受制于孱弱的硬件性能与相对封闭的系统（如 Palm OS、Symbian）。由于缺乏统一标准，不同厂商维护各自的系统，应用通常只能面向特定设备族群开发，跨平台兼容性被牺牲。为了在资源限制下保持可用，开发者不得不进行大量性能优化。那一时期的代表性技术包括 C++ 与 Java ME（Micro Edition）（The History of Mobile Apps and Evolution of Mobile Platforms, n.d.），它们专为资源受限设备定制（Volle, 2023）。此外，应用分发也颇为麻烦，系统内置的更新机制并不顺畅；用户需要具备一定技术知识并承担刷机风险。复杂的分发流程也削弱了有效的用户反馈循环，使许多应用难以持续改进。\n现代范式 iOS 与 Android 的发布标志着现代移动应用开发的开端。凭借开放度与完备性，这两大平台迅速普及并主导市场（Mobile Operating System Market Share Worldwide, n.d.），从而统一了此前割裂的生态。平台方 Google 与 Apple 主动制定了开发标准：移动应用 SDK（Android Developers, 2024）、统一的编程语言（如 Swift、Kotlin）与统一的开发工具（Xcode、Android Studio）。标准化为开发者提供了一致的平台，降低了入门门槛并提升了应用的丰富度。用户也可以通过 App Store 与 Google Play 便捷更新应用，而开发者能更快获取用户反馈、提升开发效率与质量。随着移动应用需求的攀升，跨平台理念兴起。相较原生技术（如 Swift、Kotlin），基于 Web 的应用（如 PWA）与混合应用（如 React Native）能同时覆盖 Android 与 iOS，在维护成本与交付速度上更具优势。\n未来趋势 伴随移动设备硬件性能持续提升，移动应用正朝着「AI 融合」与「去中心化」演进。越来越多设备配备 AI 加速芯片。Apple 与 Google 提供了丰富的工具与框架，支持在端侧开发 AI 应用，如 Android ML Kit、TensorFlow Lite、Core ML（Apple Developer Documentation, n.d.）。尽管仍处早期，但本地运行的 AI 模型将为移动应用带来越来越多的能力。另一方面，顺应 Web3 的趋势，区块链可用于安全交易、身份验证与供应链管理，促进去中心化应用（dApps）的发展（Frankenfield, 2021）。\n结语 总而言之，移动应用开发已从受限的早期阶段，迈向由 AI、去中心化与跨平台兼容性驱动的现代时代。技术演进显著提升了用户体验与开发效率，也为移动应用产业的后续创新奠定了基础。\n参考 The History of Mobile Apps and Evolution of Mobile Platforms. (n.d.). Webandcrafts.com. Volle, A. (2023, July 26). App | History, Types, \u0026amp; Facts | Britannica. Www.britannica.com. Mobile Operating System Market Share Worldwide. (n.d.). StatCounter Global Stats. Android Developers. (2024). SDK Platform release notes. Apple Developer Documentation. (n.d.). Developer.apple.com. Frankenfield, J. (2021, November 16). Decentralized Applications – dApps. Investopedia. ","date":"2024-06-03T13:18:42+10:00","image":"/p/evo-of-app-dev/cover.webp","permalink":"/zh/p/evo-of-app-dev/","title":"应用开发的演进"},{"content":"引言 在对用户体验不懈追求的驱动下，前端技术不断迭代，推动了用户与开发者两端的体验提升。本文将按阶段梳理前端技术的演进路径，突出各时代的代表性技术，以勾勒其历史轨迹。\n早期阶段 万维网诞生之初，网页尚属新鲜事物。主要技术是 HTML 与 CSS：HTML 负责结构与内容，CSS 负责基础样式，交互能力有限。由于缺乏成熟的布局技术，表格布局一度流行（Hoffmann, 2017）。再加上页面内容基本静态，网页能提供的功能十分受限，整体用户体验与期望值都不高。\nWeb 2.0 的开端 动态网页——能从外部数据源加载数据以向用户呈现动态内容——被视为 Web 2.0 的标志之一。随着 1995 年 12 月 JavaScript 的引入，它具备了操作 DOM 的能力，极大丰富了网页交互（Rauschmayer, 2014）。自此，HTML、CSS、JavaScript 组成了前端世界的基础技术栈。不过，当时仍以后端渲染与填充数据为主，JavaScript 主要用于增强交互界面。\njQuery 与 Ajax 传统服务端渲染的问题在于：重复渲染、前后端逻辑耦合紧密，资源利用低效、代码库臃肿。为应对这些问题，前后端分离的范式兴起。以简化 DOM 操作为著称的 jQuery（Duckett, Moore \u0026amp; Ruppert, 2014）成为这一转变的标志。开发者通过 Ajax 调用接口获取数据，再用 jQuery 将其插入页面，从而实现局部刷新，提升用户体验。\n现代前端 随着项目规模增大，手写 DOM 操作变得易错且难维护，随之而来的是一系列工程化问题。为解决这些问题，出现了诸多方案：用于依赖管理与自动化的 npm，用于模块打包的 webpack，用于兼容性的 babel，以及 React、Vue、Angular 等现代框架，提供自动化 DOM 更新与可复用组件能力（Jang, 2017）。借助这些技术，开发者可以把精力聚焦在更小粒度的业务单元（页面/组件）上，整体健壮性得到提升。局部刷新进一步升级为单页应用（SPA），带来无缝体验，自此进入现代前端时代。\n服务端渲染回归 然而，SPA 也有短板：首屏慢、SEO 不友好。以 Next.js 为代表的现代服务端渲染重新受到关注。它在服务端根据预定义骨架完成首屏渲染并尽快返回，缩短首屏时间（Osmani \u0026amp; Miller, 2024）。当浏览器加载完必要的 JavaScript 后，再接管后续渲染，形成「水合」过程，既享受 SSR 的首屏速度，也保留 SPA 的交互体验。\n结语 总的来说，本文回顾了前端技术从早期到现代的五个里程碑。每一次迭代都在修复上一阶段对用户体验的掣肘。\n参考 Hoffmann, J. (2017, May 1). Tables for Layout? Absurd. The History of the Web. Rauschmayer, R. (2014). How JavaScript Was Created. Speaking JavaScript. O\u0026rsquo;Reilly Media. Duckett, J., Moore, J., \u0026amp; Ruppert, G. (2014). JQUERY. JavaScript \u0026amp; jQuery: interactive front-end web development. John Wiley \u0026amp; Sons Inc. Jang, P. (2017, October 18). Modern JavaScript Explained for Dinosaurs. Peterxjang. Osmani, A., \u0026amp; Miller, J. (2024). Rendering on the web. web.dev. ","date":"2024-03-31T22:10:00+10:00","image":"/p/evo-of-frontend/cover.webp","permalink":"/zh/p/evo-of-frontend/","title":"前端技术的演进"},{"content":"引言 昨天我顺利通过了 AWS Solutions Architect – Associate（SAA-C03）。作为一张中级证书，它很有含金量，但对毕业生或云计算新手也颇具挑战。本文分享：\n我对考试的理解 我是如何备考的 一些你需要注意的额外事项 认识考试 考什么 我的理解是：SAA-C03 覆盖面广，考察考生是否能在不同场景下，利用 AWS 各类服务设计安全、高性能、弹性且具性价比的方案。它更重「广度」而非「深度」——你需要了解很多服务及其使用场景，但对底层实现细节要求不高。如果你对 AWS 服务还一无所知，强烈建议先看这段视频入门：AWS in 1 hour。\n题型与时长 共 65 道选择题，单选或多选。每题会明确告诉你有几个正确选项；多选题分值更高且不设「部分得分」，必须全对。因为都是选择题，务必把所有题都答完，即便你不确定。后面我会讲没思路时如何猜。\n考试时间 130 分钟；若英语非母语，预约时可申请额外 30 分钟，总计 160 分钟。SAA-C03 的题干与选项通常带背景叙事，阅读量大；若阅读速度一般，时间可能并不宽裕。作为非母语者，我有时需要反复读几遍才能完全理解，遇到同样情况也别慌。\n我如何备考 以下是我的学习规划，仅供参考，按自己的节奏调整即可。\n明确考纲范围 第一步当然是搞清楚知识点范围。官方考试指南的附录列出了可能考到的服务清单（Exam Guide PDF）。我也参考了两门口碑很高的收费课程的目录——Adrian Cantrill 与 Stephane Maarek。他们的纲要是公开的，这一步不需要花钱。\n如何定重点 简单的原则：\n两门课都覆盖的服务：需要掌握用途、用法与典型场景。 仅被其中一门覆盖的服务：至少知道做什么用。 两门都没提的：先忽略。 我做了个表格方便梳理，欢迎自取：SAA.xlsx（同目录）。\n学习材料 我只用两样：Tutorial Dojo 的模拟题与Cheat Sheet。\n建议直接做题，顺序如下：\n1 Topic Based -\u0026gt; Section Based -\u0026gt; Review Based -\u0026gt; Timed Mode -\u0026gt; Final 一开始你会有大量不会的，但此阶段只需反复查看解析与 Cheat Sheet。完成 Review Based 后，你应已掌握真实考试里约 90% 的概念。别焦虑，慢慢来即可。确保每套都能做到 80 分以上再进入下一阶段。\n考前自检 按上面流程结束后，基本可上考场。稳妥起见，先做一套官方的样题小测。同样能 80+ 就差不多了。\n读不懂选项怎么办 即便准备充分，考试中也难免遇到没思路的题。以下是我的「猜题」经验，仅在完全没思路时作为参考，可能会错：\n题目强调性价比、简单应用、弹性：优先考虑 Lambda。 当目标可用多种方式实现时，人工操作通常不是答案。 Aurora 几乎能做 RDS 所有事情；除非强烈成本敏感，优先 Aurora。 本证书偏架构设计，X-Ray 通常不是重点（但在 DVA-C02 可能是）。 持久化数据不要放在 EBS/EFS。 出现 Windows/SMB/Active Directory 关键字：首选 FSx for Windows。 尽力就好，祝你考到理想分数！\n","date":"2024-02-23T23:14:44+10:00","image":"/p/how-to-pass-saa-quickly/cover.webp","permalink":"/zh/p/how-to-pass-saa-quickly/","title":"如何高效通过 AWS SAA（解决方案架构师助理）"},{"content":"引言 从 2021 年中开始，我把 Notion 作为主力笔记工具：功能丰富、易用、更新活跃，背后的团队也充满野心与创造力。直到今天，每次更新我都仍会被惊喜到。我不会否认 Notion 的优秀，也会继续使用它，但不再承担我的「知识管理」职能——因为我意识到：笔记的本质用途是「复习」，而不是「阅读」。\n为什么是 Anki 过去我在记笔记上投入了太多时间，追求「面面俱到」。我会用数据库去组织一切，让它看起来整整齐齐。\n但这也让我掉进了一个美丽陷阱：更沉迷于「欣赏」笔记，而不是「复习」内容。问题更多在使用习惯而非软件本身——不过，人终究应选择更契合自己习惯的工具，对吧？去年底我开始转用 Anki，体会到以下优势：\n内置「复习」功能：没有复习，知识进不了长期记忆。 离线编辑：有时没有网络，尤其是在澳洲，你懂的。 学习统计：能量化地看到你投入的时间与精力。 强制「原子化」输入：最关键的一点。Anki 让你以「知识点」来管理内容，所以你必须从材料里抽取要点、用自己的语言表达。这正契合「输入-输出」的学习过程，直达高效。 开源且可手动备份：项目在维护时，你无需担心服务中断与后续额外成本（全球这么多 Anki 用户与开发者，停更的概率并不高）。 我会离开 Notion 吗？ 当然不会！Notion 的优势是灵活度高，你可以在上面构建自己的工作流。最近他们发布的 Notion Calendar 与数据库深度整合，我觉得很有潜力成为出色的时间管理工具，拭目以待。\nAll-in-one 是美好愿景，但别把自己捆在「单一工具」上。用对工具，做对事情。\n","date":"2024-02-17T23:05:57+10:00","image":"/p/from-notion-to-anki/cover.webp","permalink":"/zh/p/from-notion-to-anki/","title":"从 Notion 迁移到 Anki"},{"content":" 封面故事：RSA 算法的三位发明者\nCIA 三要素 信息安全的三大核心目标：机密性（Confidentiality）、完整性（Integrity）、可用性（Availability）。出现安全问题，往往是其中一项或多项被破坏。\n机密性（Confidentiality） 信息仅应被「该知道的人」获知。常见威胁：\n嗅探：窃听传输过程；现代通信多加密以防范。 流量模式分析：通过行为特征与统计推断敏感信息。 完整性（Integrity） 信息不应被未授权修改，且需能防抵赖与防重放。\n重放攻击：截获合法数据后重复发送以伪造操作。 否认：通信一方否认曾发送/接收过数据。 可用性（Availability） 用户能在需要时访问服务。典型攻击是 DoS/DDoS，通过耗尽资源使服务不可用；常见对策是过滤恶意请求与弹性扩缩容。\n加密（Encryption） 明文（plaintext）经加密得到密文（ciphertext），解密反之。现代密码学以比特为单位，支持多媒体数据。\n工作模式（Mode of Operation） 定义如何组织与处理加密数据。\n流模式（Stream）：把明文视为比特流，逐位与伪随机密钥流结合（如 XOR）。 分组模式（Block）：按固定大小分组，不足分组填充；每组结合密钥与前一组结果输出。 对称加密（Symmetric） 加解密使用相同密钥，如 AES‑256‑CBC。密钥由共享种子导出，安全同步种子是前提。速度快，适合大数据量。\n非对称加密（Asymmetric） 每方拥有一对密钥：公钥公开、私钥自持。用公钥加密的数据只能由对应私钥解密；还能用于身份校验与密钥协商。但计算开销大，常与对称加密配合使用（混合加密）。\n隐写术（Steganography） 加密能隐藏内容，但「加密流量」本身可能暴露。隐写通过把信息伪装进看似正常的数据载体（如图片像素的低位）来规避特征检测。\n哈希函数（Hash） 把任意输入映射为定长摘要，满足：同输入同输出、难以反推原文、低碰撞概率。用于完整性校验、快速索引等。\n数字签名（Digital Signature） 基于哈希与公私钥，对消息摘要进行私钥签名、用公钥验证，证明身份并确保消息未被篡改与不可否认。\n参考 LearnCantrill ","date":"2023-12-16T21:52:13+10:00","image":"/p/foundations-of-cs-08/cover.webp","permalink":"/zh/p/foundations-of-cs-08/","title":"计科基础 08 - 安全：以数学为基石"},{"content":"汉诺塔是练习递归思维的经典问题。本文尝试用更直白的方式解释递归与汉诺塔，加深自己的理解。\n如何理解递归 递归的本质是：把问题不断缩小，直到落到「基本情况」。递归难理解，是因为人脑没法像计算机一样跟踪深层调用链；一复杂就容易迷失在步骤里、前功尽弃，久而久之丧失信心。最好的办法是：相信你写的递归是能工作的，不要硬在脑内把每一步都「跑」一遍。\n递归的前提 当问题规模较大、直接解不方便时，可以考虑递归。但需满足：\n能拆成若干更小的同类型子问题，且子问题之间相对独立； 具备清晰的「基本情况/终止条件」，否则会无限递归。 如何搭建递归 一个递归函数通常包含 4 个部分：函数定义、基本情况、递归调用、结果返回。设计递归算法，就是明确这 4 件事。\n函数定义 递归函数会调用自身，参数要能支撑两件事：完成本层职责、记录递归进度。以斐波那契为例：\n1 2 3 4 // n 表示第 n 项 function fibonacci(n){ // TBD } 斐波那契的第 n 项由前两项之和决定，n 同时也是进度指示器，无需额外参数。\n基本情况 把问题缩小，终会落到最小规模，即基本情况。斐波那契中，第 1、2 项已知：\n1 2 3 4 5 function fibonacci(n){ if (n === 1) return 0; // 第一项 if (n === 2) return 1; // 第二项 // TBD } 递归调用 设 f(n) 为第 n 项，有递推式 f(n)=f(n-1)+f(n-2)。这把问题拆成两个更小的同类问题：\n1 2 3 4 5 6 function fibonacci(n){ if (n === 1) return 0; if (n === 2) return 1; const ans = fibonacci(n-1) + fibonacci(n-2); // TBD } 再次强调：别在脑中追踪整条递归链。站在当前这一层，只关心本层做了什么，并相信子调用会返回正确结果。\n返回结果 本层的职责是算出第 n 项并把它返回，供上一层使用：\n1 2 3 4 5 function fibonacci(n){ if (n === 1) return 0; if (n === 2) return 1; return fibonacci(n-1) + fibonacci(n-2); } 这也形成了尾递归可优化的形态：当递归调用是函数的最后一步时，很多语言可将其优化为迭代，降低栈开销。\n汉诺塔问题 汉诺塔是递归的经典练习。随圆盘数量增加，步骤迅速增长。\n问题分析 若只有 1 个盘，直接把它从起点挪到终点即可。2 个盘时：先把小盘移到中间，再把大盘移到终点，最后把小盘移到大盘上。3 个以上看起来就复杂了。\n两条关键事实：\n小盘可以放在大盘上，因此「一堆盘叠在最大盘上」与「只剩最大盘」的塔，对上层而言等价，可用于缩小问题规模； 初始时最大盘在最底部，意味着我们可以先忽略它，先处理其上的 n-1 个小盘。 据此，整体可以拆为三步：\n把 n-1 个小盘从起点移到中转塔； 把第 n 个（最大）盘从起点移到终点； 把 n-1 个小盘从中转塔移到终点。 第 1、2 步的目的，是让最大盘到位，从而把规模从 n 缩到 n-1。虽然「一次性搬运 n-1 个盘」在现实中不可行，但在递归的抽象里，我们把它当作「子问题」来解即可。\n代码草图 用三个数组表示三根柱子 src/buf/tar，用参数 i 表示当前要处理的盘数：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 function move(data, src, tar) { const pan = data[src].pop(); data[tar].push(pan); console.log(`move ${pan} from ${src} to ${tar}`); } function dfs(i, data, src, buf, tar) { if (i === 1) { move(data, src, tar); return; } dfs(i - 1, data, src, tar, buf); move(data, src, tar); dfs(i - 1, data, buf, src, tar); } function hanota(data) { dfs(data.src.length, data, \u0026#39;src\u0026#39;, \u0026#39;buf\u0026#39;, \u0026#39;tar\u0026#39;); } let data = { src: [10,9,8,7,6,5,4,3,2,1], buf: [], tar: [] }; hanota(data); 参考 递归中的逆向思维 如何治疗晕递归? 汉诺塔问题 ","date":"2023-12-03T15:31:14+10:00","image":"/p/recursion-and-hanota/cover.webp","permalink":"/zh/p/recursion-and-hanota/","title":"递归与汉诺塔：用归纳法写程序"},{"content":" 封面故事：布里斯班市区一个普通的白天。\n我来澳洲已经快一年了，似乎是个做年度总结的好时机，但这篇文章并不是为总结而写。我还没决定明年的计划，也不知道该如何评估今年，因为我无法直接将今年与过去几年做比较。在这个颇有意义的时间节点，我觉得还是该写点什么。\n真正的努力，是按计划行事 我身边几乎所有人对我都有一个统一的印象：我是个很努力的人。他们总是开玩笑地对我说“别学太多了”。但我自己最了解自己，我认为他们的印象并不准确。坦白说，我确实很看重大学的成绩，也为此花了不少时间。然而，与我所放弃的东西相比，我认为所获得的回报太低了。我意识到自己在时间和精力管理方面有问题，导致效率和实际有效工作时间比我预期的要低得多。\n比如，我经常在图书馆待超过 6 小时，试图完成作业或复习。既然我几乎没有什么娱乐活动，按理说，我应该有足够的时间来准备求职。我导师在十月给我了一些可以提高技术能力的资料，包括 AWS 教育资源、一些知名开源项目的原理等。但遗憾的是，我一页都没看。\n为了验证我的时间到底都去哪了，我决定用番茄工作法把时间分块，并在不做任何额外干预的情况下观察结果。我发现我无法持续集中注意力。也许前两个时间块（每个 50 分钟）效率还不错，但之后我会开始中断自己，去看一些和任务无关的内容，比如 YouTube 视频或电竞比赛。随着时间的推移，自我打断越来越频繁，最终一整天没有任何进展。\n类似的问题在我读高职时就存在，只是当时我没意识到，因为我觉得自己表现不错。因此我意识到，真正的努力是要遵循计划：你首先得有一个计划，然后照着去做。你在任务上花了多少时间，并不能代表你有多努力。我需要重新找回专注的能力，所以我现在减少每天的工作量，强迫自己在限定时间内完成任务，剩下的时间就是我放松的时间。\nzh-CN 正在变差 我有一个大胆的观点：中文（主要指简体中文）正在走向衰败。这听起来可能非常夸张甚至可怕，但我是认真的，因为它已经形成了一个恶性循环，难以逆转。作为母语者和英语学习者，我毫无疑问在中文上的表达更好，但我发现，用英文关键词搜索，总能更精准地找到我想要的内容。这背后的原因有很多，下面我尝试列出几个。\n诈骗信息泛滥 也许中国人更容易被骗，中文诈骗信息的比例惊人，尤其是诈骗电话。我和很多同学都接到过这种电话，虽然听不懂对方具体在说什么，但一听口音就知道是来自中国大陆。没人喜欢被骚扰的感觉，为了避免打扰，我甚至开启了陌生来电拦截。想象一下你每天都收到来自一个你不了解国家的诈骗电话，而且你知道它们的来源却听不懂他们在说什么，你会有什么感受？肯定不会是好印象。更糟的是，因为这种语言里充斥着大量垃圾信息，想获得真正有价值的知识变得更难。正如我在前文中提到过的，“Garbage in, garbage out”——信息输入质量低，输出内容自然也好不到哪去。\n封闭的平台生态 几乎所有的中文媒体平台都是相互隔离的，对 SEO（搜索引擎优化）极其不友好。这种现象我只在中国见过。比如，你只能通过某个 APP 或小程序查看内容，而不是网页。他们会将各种功能整合进一个应用中，试图打造自己的“生态系统”，因为他们都想当规则的制定者。为了获取信息，你必须使用他们内置的搜索功能，而不是百度或 Google 这样的通用搜索引擎。各平台之间互不合作，不关心内容质量，只想垄断市场。没有人能从这种模式中真正获益：用户找不到感兴趣的内容，在各个平台之间跳来跳去浪费时间；平台也无法稳定占据市场份额，因为没有任何一家能提供所有用户所需的服务；平台知道用户走不了，就肆意添加广告、收集信息、压榨体验，只为追求最大收益。\n关键词屏蔽 熟悉中国网络的人都知道，中国有一整套先进的关键词审查和屏蔽系统。如果被识别出敏感词，你的帖子或评论就会被删除。为了表达观点，人们不得不避开这些词，转而使用各种替代词。敏感词库不断更新，而人们也持续创造新词来对抗审查。但搜索引擎是无法及时理解这些新造词的（当然不能，否则早就被屏蔽了），因此不了解这些“黑话”的人根本无法找到有用信息，信息传播被严重限制。\n简体中文充斥着诈骗、封闭的生态和审查机制，让我对它的未来感到悲观。\n出国留学对我是正确选择吗？ 我非常清楚，出国留学为我的家庭带来了很大的经济压力。为了满足我强烈的愿望，我父母主动降低了自己的生活质量，这让我不得不反思，出国留学到底是不是一个正确的选择。也许在二十年前，这确实是一项值得的投资，因为当时学历非常有含金量。而现在，大学毕业甚至研究生都不再稀有，社会对“成功”的评价也更加多元。\n是的，如今人们对学历的价值有些过度高估。如果我留学的最终成果只是一个硕士学位，那确实是个糟糕的决定。经历并不一定与年龄挂钩，真正改变人生的，是认知，而不仅仅是知识。\n出国对我是正确的选择吗？现在还不能下结论，一切都取决于我的表现。哈哈，世上没有轻松得到的好事。\n","date":"2023-11-09T23:02:41+10:00","image":"/p/casual-talk-02/cover.webp","permalink":"/zh/p/casual-talk-02/","title":"随想 02"},{"content":" 封面故事：我的词汇测试结果。我一直对自己的词汇能力有所怀疑，这次测试验证了我的猜想。\n“随想”是一个新的系列文章，记录我最近的一些思考，内容不局限于某一个特定主题。\n基础很重要 就像我之前说的，我在最近一次的 PTE 考试中失败了，并决定放慢脚步。当时我怀疑是英语基础能力不足导致的失败，因此希望能用更长的时间来提升基础，然后再尝试一次。碰巧的是，我刚做的词汇测试也得出了相同的结果。\n仅供参考，在中国，高中生的英语词汇量要求是 3500，大学本科毕业生是 4400，研究生则是 5500。我应该庆幸自己以这么低的词汇量，仍然通过了英语入学要求。换句话说，现在的 PTE 成绩 66 分，也许已经是我目前的极限了，靠的是对 PTE 策略的熟悉和掌握。我明白词汇不是全部，但确实很关键。这类词汇测试其实不需要非常精确，只需要能大致反映出范围或趋势就足够了。如果我想在英语考试和学术上取得更好成绩，词汇就是必须跨越的挑战。\n这让我想起我高中数学老师说过的一句话：“不要被那些看起来花哨的方法吸引，真正的本质是基础和通用的方法。”应试技巧当然有用，但如果过分依赖，会限制我能达到的高度。我并不沮丧，反而高兴自己终于意识到这件应该更早意识到的事情，这样就能避免浪费金钱和时间。尽管如此，我还是为自己感到自豪，因为我用空闲时间去学习，并勇敢尝试了。\n我应该多给自己一些正向反馈。因为我一直习惯压抑自己（甚至现在也还没完全摆脱）。\n舒适区：垃圾进，垃圾出 这学期我选修了一门叫“数据挖掘”的课程，里面提到一个著名原则：Garbage in, garbage out。它的意思是说你必须认真收集和处理数据，因为模型建立在这些数据之上。如果你的数据是垃圾，那模型自然也是垃圾。\n我觉得这个原则不仅适用于数据处理，也适用于生活中的很多方面，比如“舒适区”。\n我们都听说过一句话：“人只有走出舒适区，才会有所提升。”相反，如果一直停留在舒适区，即使你看起来很努力，也很可能只是浪费时间。由此引出另一个概念：“无效努力”，就是指那些看似努力却没效果的行为。这是一种常见但危险的现象，因为包括我在内的很多人通常意识不到自己在做无效努力。最糟糕的是，人们可能会为自己的努力感动，而忽视外界的建议。\n走错方向的努力也是垃圾。作为自己人生的首席规划师，我必须识别什么是有价值的，什么是垃圾。毕竟没人有无限精力，确保把精力放在正确的地方，才能获得最大的收益。你看，我的人生就像一个需要训练的模型，及时修正错误、移除无效投入，就像在做数据预处理！哈哈！\n我真的应该走出舒适区。比如，当我看 YouTube 视频时，如果听不懂讲者在说什么，我就会切换到另一个视频。可能大多数人也会这样做。但作为学习者，如果我总是在看我已经能听懂的内容，那提升从哪里来？我要做的是优化我的量化标准，并试着去喜欢那些我还不熟悉的事物。希望时间会给我答案。\n恐惧导致拖延 对于重要的事情，我总是喜欢拖到最后期限前才去处理。看起来好像我不够重视它们，但其实恰恰相反。我越是在乎一件事，就越想做到完美。如果我对自己的能力没信心，我就会宁愿原地踏步。但每次到截止日期来临时，我往往还是没准备好。其实我本应该有也确实有足够的时间去准备。\n“Quick and dirty”（快而简），是我之前老板荣曾告诉我的一个工作原则。他说，一开始就过度优化其实没有意义，因为一开始你根本不了解需求是什么。“Quick and dirty”的意思是尽快上手任务，快速了解整个任务的全貌，这样更容易找到全局最优解。\n哦，对了，在写这篇文章的时候我还想到另一件事。在“面向对象设计”这门课里，老师告诉我们：永远不要相信你第一次的设计。但即使你不会相信第一次的方案，你后面的第二、第三乃至最终版本，其实都建立在最初那个雏形上。\n总之，尽早开始，才能争取更多反馈，不断优化成果。\n感谢 回顾过去，我几乎很少被身边的人侮辱或讨厌。也许我真的一直遇到的是好人。我的朋友和家人几乎总是支持我大多数合理的决定，他们会先试着理解我的想法，而不是直接否定我。正因如此，我觉得自己是个幸运的人，我真心感谢他们。\n","date":"2023-09-11T18:11:03+10:00","image":"/p/casual-talk-01/cover.webp","permalink":"/zh/p/casual-talk-01/","title":"随想 01"},{"content":"这学期我选了一门数据科学的课，于是开始用上了 Jupyter。此前我对它和数据科学都几乎零接触。了解了 Jupyter Notebook 的形态之后，我觉得把它跑在云端比本地更合适。好在官方已经为不同用途提供了多种 Docker 镜像。本文记录我如何在家里的服务器上部署 Jupyter，并把它安全地暴露到公网。\n本文默认该 Jupyter 服务仅供「单用户/自用」，不做多用户管理。\n在 Docker 中运行 Jupyter 选择镜像 不确定应该选哪一个镜像？看这里的对照表：Selecting an image。\n比如老师说这门课会用到 pandas，那就在页面里搜 pandas，我就找到了 jupyter/scipy-notebook 适合我。\n如果像我一样没什么经验，建议先用最轻量的镜像起步。\n创建工作目录 因为 Jupyter 跑在容器里，需要准备一个宿主机目录供 Jupyter 读写。\n顺带一提，jovyan 是 Jupyter 及其官方镜像的默认用户。\n1 2 3 4 # 创建工作目录 mkdir -p /{your server dir}/jupyter/jovyan/.jupyter # 确保 Jupyter 进程有读写权限 chmod 777 -R /{your server dir}/jupyter/ 启动容器 运行 Jupyter 容器：\n1 2 3 4 5 6 docker run -d \\ --name jupyter-server \\ --mount type=bind,source=/{directory}/jupyter/jovyan,target=/home/jovyan \\ --net=host \\ --restart=unless-stopped \\ jupyter/scipy-notebook:notebook-6.5.4 注意：这里将宿主机目录挂载到容器内的 /home/jovyan（官方镜像默认工作目录）。\nJupyter 配置 此时本机访问已经可用，但远程使用前还需要做一些设置。\n设置密码 默认情况下，Jupyter 通过 token 验证。远程使用每次进容器取 token 很不方便。第一次仍需用 token 登录，然后设置密码：\n1 2 3 4 5 # 查看 token docker exec -it jupyter-server jupyter server list # 用输出链接中的 token 登录网页后，设置你的密码 # 重启 Jupyter docker restart jupyter-server 之后即可用密码登录。\n允许远程访问 设置完密码后，工作目录里会出现 jupyter_server_config.json。\n初始内容大致如下：\n1 2 3 4 5 { \u0026#34;IdentityProvider\u0026#34;: { \u0026#34;hashed_password\u0026#34;: \u0026#34;your encrypted password string\u0026#34; } } 默认不允许远程访问，可加入如下配置开启：\n1 2 3 4 5 6 7 8 { \u0026#34;ServerApp\u0026#34;: { \u0026#34;allow_remote_access\u0026#34;: true }, \u0026#34;IdentityProvider\u0026#34;: { \u0026#34;hashed_password\u0026#34;: \u0026#34;your encrypted password string\u0026#34; } } 重启生效：\n1 docker restart jupyter-server 暴露到公网 Rathole 端口转发 现在 Jupyter 已经可以被转发暴露了。这次仍用上次文章提到的 rathole（不了解可参考 /p/expose-your-jellyfin/#port-forwarding）。\n反向代理 Jupyter 同时用到 HTTP 与 WebSocket，所以反代要同时支持。\n以下是我使用 Nginx 的反代配置示例：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 location / { # 端口取决于你在 rathole 中的映射 proxy_pass http://127.0.0.1:8888; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # WebSocket 相关头 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection \u0026#34;upgrade\u0026#34;; proxy_buffering off; } ","date":"2023-07-25T16:43:00+10:00","image":"/p/expose-your-jupyter/cover.webp","permalink":"/zh/p/expose-your-jupyter/","title":"把你的 Jupyter 安全地暴露到公网"},{"content":"就我个人而言，之前系统学过统计的机会不多，所以决定重新梳理一遍，并多向下挖一点，为后续的 IT 学习打基础。本文介绍数据集的一些基本要素与常见度量。\n表达形式 数据集是一个抽象概念，不能直接观察或分析，需要先转为具体的表达形式。\n列表/表格 最直接的方法是把数据逐项列出来。\nindex value 1 60 2 65 3 67 4 67 条形图 当数据量较大时，条形图能展示各项及其出现频次。\n饼图 饼图可以直观展示各项所占比例。如果关注占比，用饼图更合适。\n数据的“中间” 统计通常从“中心趋势”入手。常见的三个指标是：均值、中位数、众数。\n均值（Mean） 即平均数：\n$$ \\bar{x} = \\frac{x1+x2+\u0026hellip;+xn}{n} $$\n例：数据集 {1,2,3,5,6,6,7} $$ \\bar{x} = \\frac{1+2+3+5+6+6+7}{7} = 4.285\u0026hellip; $$\n中位数（Median） 将数据排序，取正中间值；若数量为偶数，取中间两项的平均。\n数据集 {1,2,3,5,6,6,7} 的中位数是 5。\n数据集 {1,2,3,5,6,7} 的中位数是 (3+5)/2 = 4。\n众数（Mode） 出现次数最多的数。\n数据集 {1,2,3,5,6,6,7} 的众数是 6。\n数据的分布 即使两个数据集的均值/中位数/众数一致，它们也可能差异很大——因为分布不同。下面给出三个常见的分布度量。\n极差（Range） 描述数据取值范围：\n$$ Range = max - min $$\n标准差（Standard Deviation） 衡量数据相对均值的离散程度。标准差越大，离散越大。\n$$ \\sigma = \\frac{1}{n-1} \\sum_{i=1}^{n}(x_i - \\bar{x})^2 $$\n重要：如果两个数据集所描述的对象不同，标准差不能直接比较！\n例：数据集 1 是一天内的气温，标准差为 20；数据集 2 是老师的工资，标准差为 100。直观看 100 大于 20，但常识告诉我们：一天内气温相差 10℃ 已经很大，而工资差 100 并不大。因此，描述对象不同，标准差不可直接对比。\nZ 分数（Z-score） 衡量某个点距离均值有多少个“标准差”：\n$$ z = \\frac{x-\\bar{x}}{\\sigma} $$\n若数据满足正态分布：\n1σ：约 68% 的数据落在均值 ±1σ 范围内。\n2σ：约 95% 的数据落在均值 ±2σ 范围内。\n3σ：约 99.7% 的数据落在均值 ±3σ 范围内，常用来识别“异常值”。\n重要：异常值并不等于“应该被忽略”。事实上并没有严格定义哪些是异常值、如何处理它们。异常值可能蕴藏事实或趋势，因此需要谨慎对待。\n","date":"2023-07-23T18:04:21+10:00","image":"/p/foundation-of-statistics/cover.webp","permalink":"/zh/p/foundation-of-statistics/","title":"统计学基础：数据集的核心要素"},{"content":"我并不对我的成绩或者自己感到生气，就像我已经知道会发生什么。当我离开考场，事实上，我对我的表现很满意。“没有明显的错误”是我当时对这场考试的评价。外加为这场考试所做的准备，我已经做到了最好。如果这样都没有通过这场考试，那就是能力问题。\n在我看来，考试的分数等于个人能力加应试技巧。自上次考试之后，又过了两个月。然而能力并不能在短时间内提升。我其实就是在赌自己能通过提高应试技巧达到全科 65 分。 如你所见，我赌输了，因此提高英语能力便成了唯一的路，这意味着我需要更多的时间去准备。我从最近两次考试学到的就是，我需要放慢自己的脚步。\n我很开心自己没有像往常那样责备自己，或许是我原谅了自己。我认识到自己只是一个普通人，并不是天才，因此这也是我不在对自己抱有过多期待的原因。接受自己的平庸是平凡人的勇敢。至少，我还在前进，虽然还没有达到目标，但是离目标越来越近。\n第一次 PTE 考试: 53 第二次 PTE 考试: 58 第三次 PTE 考试: 63 第四次 PTE 考试: 64 第五次 PTE 考试: 66 成绩正在稳步提升。当我能做到以前做不到的事情，那就是成长，而成长是伴随痛苦的。不管怎么说，这都不是世界末日。英语确实是我计划中很重要的一部分，但也不是全部，所以我还需要在其他领域投入精力。哈哈，当我选择这条路的时候我就知道，它不会简单。\n放慢脚步，稳步前进。\n","date":"2023-07-20T23:43:14+10:00","image":"/p/after-5th-pte-test/cover.webp","permalink":"/zh/p/after-5th-pte-test/","title":"第五次 PTE 考试有感"},{"content":" 封面故事：1969 年，4 个节点组成的 ARPAnet\n网络的种类 网络用于可通信设备之间的通信。无论规模大小，当我们把电脑连上家用路由器时，一个网络就形成了。\n局域网（LAN） 供私有场景使用，如公司/校园/楼宇。每台设备在 LAN 内有唯一标识用于寻址与通信。\n广域网（WAN） 地理范围更大，连接城市、省州、乃至国家。区别 LAN/WAN 的关键不是规模，而是连接的对象：LAN 连接的是主机与主机；WAN 连接的是网络与网络（如路由器之间）。可以理解为：LAN 由设备构成，WAN 由多个 LAN 构成。WAN 有点对点与交换式两类。\n互联网（internet） 两个或多个网络连接在一起就形成了一个「internet」。现实中 LAN 与 WAN 常混合存在。若一家公司在两地各有一套 LAN，并由 WAN 互连，这三者构成一个 internet。\nThe Internet（大写 I） 特指连接全球无数 internets 的那张独一无二的大网。\n分层结构 通常分为三层：骨干网、提供商网络、用户接入。不同骨干网之间通过对等点（peering point）互联。骨干网与提供商网络统称 ISP。\n网络协议 协议将通信流程分层解耦：改动一种传输手段时，仅替换相关层的实现即可。\n基本场景 抽象为三件事：\n产生/获取数据； 加密/解密数据，保障传输安全； 传输数据。 TCP/IP 协议族 互联网采用的分层协议：\n应用层：应用产生/消费数据； 传输层：选择传输方式与细节； 网际层：寻址与路由； 链路层：介质访问与实际传输。 并非所有设备都处理四层所有细节，例如运营商路由器只需关注网际层的转发。\n传输层：TCP 与 UDP、端口 传输层为应用提供端到端的传输抽象，常见有 TCP 与 UDP。应用报文会被切分为若干段，接收端在收齐后再还原交给应用。\nTCP：先建立可靠「通道」，有序、可靠、拥塞控制；通道断开即中断，开销更高。 UDP：无需建连，尽快发送，可能乱序/丢失；首部更轻。 端口：传输层的标识，好比一栋房子的门，程序在「房间」里收发数据。 网际层（Internet Layer） 负责主机间通信，IP 地址在此层工作。常用的连通性测试协议是 ICMP（如 ping）。\n职责：\n封装/解封：为传输层数据加上/去除网际层首部以标明源与目的； 传输：拆分为更小的数据包，尽力而为，不保证可靠与有序； 路由：依据目的地址与网络状态选择下一跳路径。 IP 地址 IPv4：32 位，常以点分十进制表示，如 129.3.3.26。由前缀（网络号）与后缀（主机号）组成，首部 20–60 字节。\nIPv6：128 位，十六进制表示，如 2001:8003:e0ac:c800:49c6:bee7:ef2e:4160，划分为组织、子网与主机部分，提供更大的地址空间。\n链路层（Link Layer） 也称网络接口层，定义具体介质与其上的传输方式。与 IP 不同，MAC 地址由厂商烧录，全球唯一，长度 48 位（如 00:00:0A:BB:28:FC）。在同一 LAN 内，转发主要依据 MAC。\n常见技术：\n以太网（Ethernet）：有线 LAN 主流，速率从 10Mbps 演进到 10Gbps+； Wi‑Fi：无线 LAN，依赖射频覆盖； 蓝牙：近距离、低功耗； 蜂窝网络：将区域切分为小区，由基站覆盖与切换。 数字/模拟转换与传输介质：有线（双绞线、同轴、光纤）与无线（无线电、微波、红外）。\n","date":"2023-07-05T21:52:13+10:00","image":"/p/foundations-of-cs-07/cover.webp","permalink":"/zh/p/foundations-of-cs-07/","title":"计科基础 07 - 计算机网络"},{"content":"作为一名希望在澳洲找 IT 工作的新手，了解当地的劳动力市场很关键。这份统计不全面，也难言绝对客观——毕竟由我一个人、为我自己而做。\n它旨在回答两件事：\n哪些 IT 岗位更吃香； 想拿到这些岗位，我该补哪些技能。 全文分两部分，第二部分是重点。\n高需求岗位 从个人兴趣出发，我目标是软件开发/工程岗位，并且有一定前端页面与后端 API 的经验。这样一来选择并不算多。我在 SEEK 上用相关关键词搜索，职位数量一定程度反映了岗位热度。\n这一阶段的发现：\n后端岗位不像前端那样用「后端开发」的总称集中搜索到，直接搜 backend developer 结果较少。 后端更倾向于以具体技术栈命名岗位，例如 java developer、python developer 等。 流行后端语言主要有 Java、Python、Node.js、C#。 DevOps 是行业增长明显的方向。 但我希望尽快上岸，因此更愿意优先自己熟悉的技术栈，暂时放弃 C#。\n统计方法 如上所述，我将职位分为几组：frontend、java、python、devops。每组在 SEEK 选取 Top 15 职位作为样本，在表格中记录技术与非技术要求，用 Tableau 做汇总分析。\n分析 技术要求 非技术要求 包括但不限于：\n主动性 协作能力 沟通能力 文档产出 需求反馈 多任务处理 问题定位 英语熟练 需求到方案的转化 自驱力 时间管理 独立工作 结论 各岗位的技术要求有较多重叠，具备全栈能力会更受欢迎。 云与相关技能逐渐成为通用必备。 AWS 是最流行的云厂商，对各类岗位都很重要。 很多前端职位会要求具备一定的 UI/UX 能力。 沟通是最重要的非技术因素；对非母语者，英语是关键。 ","date":"2023-06-17T14:46:02+10:00","image":"/p/it-jobs-in-au/cover.webp","permalink":"/zh/p/it-jobs-in-au/","title":"澳大利亚的 IT 职位观察"},{"content":"如果你自建了私有 Jellyfin 服务并想把它开放给朋友访问，那你来对地方了！最近我正好抽空处理了这个需求，这里分享下我的做法。\n背景 我有一台装了 TrueNAS 的 NAS，利用系统自带的 K3S 部署了不少私有服务，Jellyfin 就是其中之一。因为没有公网 IP，需要靠端口转发把服务暴露出去。在暴露 Jellyfin 之前，我已经把 OpenVPN 配好了，并把端口映射到 VPS。后来有朋友想用我的 Jellyfin，但直接把 ovpn 文件给朋友风险太大，于是决定把 Jellyfin 以更安全的方式开放到公网。\n方案原理 整体思路与 OpenVPN 类似，依旧是端口转发；但 Jellyfin 是 HTTP 服务，为优化体验，我叠加了 CDN（谢谢 Cloudflare！）。下图展示了整体架构：\n端口转发 推荐一个用 Rust 写的高性能、轻量端口转发工具： rathole。它的原理类似另一款知名转发工具 frp，但性能更好。我的对比中，两者峰值速度接近，但 rathole 更能长时间稳定在峰值。另外，rathole 支持无需证书的非对称加密。我的 Jellyfin 在内网并未启用 HTTPS，因此一旦穿越公网，链路加密就很有必要。\n下面的步骤，官方文档讲得很清楚：README\n使用 rathole 可执行文件生成一对公私钥 在服务端配置 noise 协议并启动 rathole server 在客户端配置 noise 协议并启动 rathole client 4.（可选）在防火墙上仅放行来自 NAS 的访问 每天跑一次下面的小脚本，可以汇总你近期的网段，辅助做防火墙白名单：\n1 2 3 directory=/path # 输出路径，改成你自己的 curl https://ip.useragentinfo.com/myip -w \u0026#39;\\n\u0026#39; \u0026gt;\u0026gt; $directory/ip.txt sort $directory/ip.txt | awk -F. \u0026#39;{print $1\u0026#34;.\u0026#34;$2\u0026#34;.\u0026#34;$3}\u0026#39; | uniq \u0026gt; $directory/unip.txt 反向代理 Jellyfin 的官方文档相当完善，针对不同 Web 服务器给出了反代配置与优化建议，基本可以复制粘贴直接用。\n如果不打算上 CDN，到这一步就结束了。\nCDN 我使用 Cloudflare（再次感谢）。它的 UI 干净强大，上手很容易。需要注意两点：\n开启 WebSocket。Jellyfin 用到了 WS（看你的 Web 服务器配置就能发现）。 调整缓存策略。媒体系统里你看到的大多是静态资源，包括视频。按默认策略，看视频时 CDN 可能尝试把整段视频拉到边缘节点缓存，以期下次更快。但视频数量多、体积大、私有服务用户少，你也很可能一个月内不会重复看同一部片。首次播放时为缓存而拉全量既耗时又不划算。因此，应配置规则让视频资源不被缓存（或仅缓存元数据/小静态资源）。 写在最后 把私有服务暴露到公网有很多做法，这只是其中一种。如果你有更好的思路，欢迎交流！\n","date":"2023-06-11T20:31:37+10:00","image":"/p/expose-your-jellyfin/cover.webp","permalink":"/zh/p/expose-your-jellyfin/","title":"把你的 Jellyfin 安全地暴露到公网"},{"content":" 封面故事：我第 4 次 PTE 考试的成绩\n这学期的期中假都要结束了，是时候写个小结了。 标题里写的是「PTE」，但我也会聊聊 GPA，因为两者失败的原因很相似。\n失败之后的想法 虽然不想面对，但还是得直面现实。\n我发现自己变了。拿到结果时确实失落，但也就郁闷了几个小时。没有自我否定，只有难过。\n负面情绪难免，关键是不让它影响后续的行动。也许这就是成熟吧。\n永远不要为努力而道歉，那是在侮辱你的决心。—— 迈特·戴（Might Duy）\n时间从不等人 除了在心态上尽量积极，也要找到客观原因。\n上一篇里我说过，自己无效工作太多，需要重排优先级。无论是 GPA 还是 PTE，我都以为凭能力能拿下。自信是好事，但另一方面，我也低估了它们。\n关于 GPA：给 IFN551 的作业只留了一天。如果更早开始，也许能找到更好的解法。 关于 PTE：我把它当成一门「技巧型」考试。确实有技巧，但英语本身更重要。技巧能把分数托到合格，拿高分还是要靠底子。所以要长期建设，而不是短跑冲刺。 时间切块 类似「敏捷开发」，把过程切成小块，某段时间内的工作就可视化了。如果想提升效率，就要把工作切小，同样也要把时间切小。比如番茄钟，它会逼着我把复杂任务拆成步骤。一旦出现意外情况，也能灵活调整。\n我的时间管理可以这么分工：\nNotion：记录尚未确定时间点的任务 Google Calendar：安排具体时间 番茄钟：拆解具体任务（子任务与预估时长） 正确的作息 要明白一点：每次在工作时间摸鱼，都是因为大脑对当前任务不开心。人的本能像小孩，只能安抚，不能威胁。\n一旦强迫自己做事，作息就会乱：睡不准点、早上犯困、晚上清醒。\n没有什么比睡觉更重要。\n这次虽然没过，但我仍然有信心。分数只是某个时间点的能力指标，代表不了全部。我相信自己会变强，也为此感到兴奋。\n最后，如果连自己都不相信，努力还有什么意义？行吧，现在去吃个 KFC 犒劳下！\n幸运的是，复核后我的 GPA 更新了！\n","date":"2023-04-28T17:43:14+10:00","image":"/p/after-4th-pte-test/cover.webp","permalink":"/zh/p/after-4th-pte-test/","title":"第 4 次 PTE 考试之后"},{"content":" 封面故事：Confidence \u0026amp; Competence 曲线图，出自 Code Network 讲座（讲者 Peter Laurie）\n两个故事开始 今天从两个故事说起：一个是国内的热帖，另一个来自 Code Network 的讲座。都对我这周的复盘很有启发。\n学习博主的「漂亮笔记」 小红书上晒学习笔记很火。我不去揣测动机，只看一个典型案例：\n如果你学过勾股定理就知道，其实一句话就讲完了，而这页笔记大部分是无效信息。\n如果是我，会这样记：\n用一句话描述：直角三角形中，直角边为 a、b，斜边为 c；则 a^2 + b^2 = c^2。再画个示意图标注 a/b/c。\n最后，这位博主考试挂了，还挺失落，但她觉得自己很努力。\n我也会记课内笔记。看到这事后我反思：我是不是也在做「看起来很努力」的事？\n信心与能力 在 Code Network 的讲座上，讲者画了这样一张图：\n最让我警醒的是：同一条水平线可能对应三处交点——不同能力水平的人，表现出同样的自信。\n而我过去常凭「对方的自信」来判断「对方的能力」。比如考后问同学感受，别人说很简单，而我觉得不简单，我就以为自己更差。就像吵架音量不代表谁有理一样，用自信来推断能力是很荒谬的，但我却一直用它来打击自己。\nWeek5A 概况 总体表现不如预期，但也在情理之中。\n我常在开头设一个「理论上可达」的目标，随后一段时间很努力地追赶。中途若有插曲打乱节奏，进度开始落后，我就试图「另辟蹊径」追回来，结果进一步扰乱作息，最后生活节奏与进度一起失控。这次也类似，只是我逐渐习惯面对这种「理想与现实」的落差。\n想到这是我第一次留学，许多第一次犯的错，即便可笑，也值得被宽容对待。\n压力管理 我承认自己不擅长管理压力：既不会处理已有的压力，也常凭空制造无谓的压力。尤其当进度落后时更焦虑，甚至牺牲锻炼与睡眠去弥补，那往往既不现实也没意义。\n「GPA 很重要」与「我必须拿 HD」是两码事。周围同学都能感受到我的紧绷，他们也说：去掉压力，你会表现得更好。所以下调预期，才能更享受过程，不要只盯结果。留学本该成为美好记忆，别亲手把它毁了。\n基础越基本，越要守住 追赶进度时，我经常忽视基本规则。比如熬夜写作业，明知很累效率很低还硬撑，第二天又要花一个上午回血，得不偿失。睡眠很重要！\n起初我规律锻炼，但临近作业时就乱了。相比之下，我似乎需要更多时间做作业，可能与英语有关，但暂且不展开。把学习放首位后，我取消了许多对身心有益的活动：运动、做饭等。更糟的是因此自乱阵脚，又拿它当借口干不该干的事，例如狂吃垃圾食品。\n放松与睡眠、效率与作息，这些「基础项」越要守住。\n减少无效工作 把学习放第一了，那做得怎么样？成绩还没出，就凭感受说：不理想。各门作业都卡着 ddl 交，问题出在哪？\n我做了太多「无效投入」。一直在想：我的笔记是否真的有用？答案是：有用，但不值这么多时间。我追求「面面俱到」，结果被「完美」绑架。没有「最好的」笔记，只有「适合我的」笔记。比如为了效率，应该牺牲一些「通用性」，聚焦我不熟的要点。\n更离谱的是：我一边认为 GPA 重要，一边把时间花在笔记这种「间接项」上，而对「直接影响 GPA 的评分标准」却关注不够。这就很荒唐。\n学习方案要因课而异、因人而异、因资源而异。别想一口吃成胖子，抓住关键。\n沟通太少 这五周英语是有进步的，我也能更久地交流，口音识别也好一些了。\nQUT 鼓励我们多建立连接，这对我也很有利。交流本身就是放松，还能练英语；更重要的是能结识行业内的朋友，对求职有帮助。方法很多，多想想框外的可能。比如加入志愿组织，既增加经历也能结识同伴。\n周期复盘与反馈 像现代软件开发一样，把学期拆成更小的时间块，有助于优化计划。写周报可能是个不错的方式。\n总结 想法要落到行动上，才有意义：\n晚上别吃太晚，影响睡眠质量； 不熬夜，按点睡（比如 11 点）； 下调预期，不再给自己定具体 GPA 目标； 笔记聚焦「不懂的点」，少即是多； 多交朋友，多参与活动； 每周复盘，及时调整。 希望 Week5B 更好。\n","date":"2023-03-28T19:03:54+10:00","image":"/p/review-for-week5a-2023/cover.webp","permalink":"/zh/p/review-for-week5a-2023/","title":"2023 Week5A 复盘：第一次犯的错都该被温柔以待"},{"content":" 封面故事：达克效应（Dunning-Kruger effect）\n写下这些时，是 QUT 开学第一周的周四。坦白说，不算理想。于是给自己做个复盘，避免重蹈覆辙。\n先自助，再求助 中国和澳洲大学的一个显著差异，是「自由度」。你可以自行排课，校园活动也很多，但更重要的是：遇到问题，需要主动寻求帮助。\nQUT 提供了很多有用的资源与支持，但在走进去之前，你得先弄清：\n你的问题是什么； 你需要什么样的帮助。 他们更期待你「带着问题来找他们」，而非他们来找你。这也是我写复盘的原因之一。\n认清位置 校园活动很多，也很有价值，但并非对所有人都同样有价值。\n我常常因为别人邀请就去参加，没提前了解细节；等发现不太适合自己，时间已经浪费了。\n比如有个编程活动是给零基础同学的，我也去了；看着讲变量/条件/循环的入门内容——这些我早就会了。\n我以为自己可以随意调整计划，这恰恰说明我没认清自己的位置。任何时候都该清楚：现在该做什么、下一步该做什么。\n当然，仍然谢谢大家的邀请。\n英语 英语问题比我想象的大，尤其是听力。 最近也理解了，为什么从未出国的同学会觉得留学很难： 不少同学有留学背景/英语环境/在英语国家成长的经历，他们几乎无压力地听懂导师在说什么。\n好在我有 IT 背景，当前课程内容对我来说不算陌生，还能跟着课件学。但显然不能一直这样。\n我的问题：\n听不懂时，下意识回「OK」或别的空话，而不是请对方再说一遍； 对印度口音很难识别； 总想「逐词翻译」而非在语境中理解； 英语学习中中文占比太高。 应对办法：\n直接追问没听懂的部分； 多结交印度朋友，多聊； 多看英语 YouTuber，配字幕把内容吃透； 尽量用英语解释英语术语，降低生活中的中文比例。 也许更重要的是：多给自己一些认可。\n","date":"2023-03-02T15:58:27+10:00","image":"/p/review-for-first-week/cover.webp","permalink":"/zh/p/review-for-first-week/","title":"第一周复盘：别为昨天落泪"},{"content":" 封面故事：没有故事，只是一张普通的钢琴图。\n明天是QUT迎新周的开始，睡前还有一点时间，想写点东西。\n迎新周意味着我的课程即将开始。时间过得真快，来到这里快3个月了。我参加了昆士兰科技大学举办的一些活动，其中大部分都是与学习相关的。 印象最深的是关于时间管理，活动接近尾声时，我向讲师提出了一个问题：有没有什么工具可以分析耗时？因为我想优化我的时间表，找到我浪费时间的地方。\n她没有直接回答我的问题，而是告诉我：\n一个好的时间管理方法来自于不断的尝试，如果你知道你浪费了一些时间，不要责怪自己，给错误留下一些空间 我的效率取决于很多因素，包括我的睡眠、我的情绪、我正在做的事情的难度 不要焦虑 我对她的回答感到意外，即使我们之前没有见过面，她也能感觉到我的焦虑，也就是说我把焦虑的情绪写在了脸上。\n在过去的三个月里，我觉得自己的态度发生了一些变化：我开始要求自己做更多的事情，做得更好，虽然这些事情可以帮助我克服即将到来的挑战，但我变得不快乐和不自信。我很珍惜这个机会，觉得这是我人生中唯一的机会和转折点，所以我才这么做，但我忽略了它可能对我的表现有害，而且我会为以后的挑战而疲倦。简而言之，我需要热爱我所做/正在做/将要做的事情。\n不要在乎结果，享受过程，珍惜当下\n如果我全力以赴，结果不会差\n就算失败了，我也不会后悔\n对了，我写的时候是在听 Tomorrow（和这篇文章同名），觉得好听，所以我想把歌词放在这里。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 なくす事が 拾うためなら 别れるのは 出逢うため 「さようなら」のあとにはきっと 「こんにちは」と出逢うんだ 绿色芝生に寝ころんでいたい 动物も一绪にゴロゴロしたい 今日は良い事がたくさんあったから 明日も良い事がたくさんあるように お日様出て 夕日きれいで 星に愿い明日が来る どうして行っちゃうの? 一绪に帰ろう 喧哗をして あの子が泣いて 「こめんなさい」言えなくて 心の中 叫び泣いても 言叶にしなきゃダメだよ ありがとう ありがとう 仆のおともだち 会いたいな 新しい ともだちのみんな キミと手をつなぐ それは翼になる みんなの手 つなぐ 大空も飞べる 笑う 笑う 大きな声で 呼んで 呼んで 大好きな… 虹色かけ桥 渡って「おかえり」 お金がね あってもともだちは买えない なにもなくてもね みんながいるんだ みんな闻いて 仆たちの梦 みんな知って 仆たちを あなたは どうしてる? 仆はね 元気だよ あなたは どうしてる? 仆はね 元気だよ 我希望我能睡个好觉，下周玩得开心。\n","date":"2023-02-19T22:22:25+10:00","image":"/p/tomorrow/cover.webp","permalink":"/zh/p/tomorrow/","title":"明天"},{"content":" 封面故事：图灵参与破译的恩尼格玛机（Enigma）\n逻辑运算 布尔类型 布尔值用于描述真值，只有 True/False 两种状态，1 位即可表示：1 表示真，0 表示假。这里讨论的是编程语境下的数据类型。\n逻辑运算均作用于布尔值（单比特）。\n非（NOT） 取反：真变假、假变真。\n与（AND） 两者同时为真才为真。\n或（OR） 两者同时为假才为假。\n异或（XOR） 相同为假，不同为真。\n移位运算 逻辑移位（Logical shift） 整体向左/向右移动比特串。\n非循环移位：溢出位丢弃，空位补 0。 循环移位：把比特串视为环，移出的一端从另一端补回。 算术移位（Arithmetic shift） 针对带符号数的移位。\n左移：内容左移并补 0，若符号位发生改变说明溢出。 右移：符号位不动，空位由符号位填充（正数补 0，负数补 1）。 算术运算 此处讨论加减。用补码表示时：\n加法：按位相加，最高位进位丢弃。 减法：被减数加上「减数的补码」，转为加法处理。 若发生符号位错误翻转，说明溢出，结果不可信。\n当用「符号 + 绝对值」表示时：\n若是减法，先把第二个数取相反数转为加法； 比较符号：同号则绝对值直接相加，符号不变（注意溢出）； 异号则将较小绝对值取补后与较大绝对值相加，结果符号取绝对值较大的那个；必要时对结果再取补。 ","date":"2023-02-14T15:39:49+10:00","image":"/p/foundations-of-cs-04/cover.webp","permalink":"/zh/p/foundations-of-cs-04/","title":"计科基础 04 - 计算"},{"content":" 封面故事：世界上第一块硬盘\n计算机中的数据类型 今天我们可以在计算机里存下几乎任何数据：数字、文本、音频、图像、视频等。大多数现代计算机以二进制为基础，也就是说只能存储与处理 0 和 1。那么，计算机是如何存这些数据的？\n答案是：所有数据最终都以二进制形式落盘；我们再定义一套「表示方法」把 0/1 映射为人类可理解的内容。\nbit 是什么？ bit（比特）是计算机中最小的信息单位，表示一个 0 或 1。\nbit pattern 是什么？ 比特串（bit pattern/bit stream）是按顺序排列的一串比特。\n针对不同用途，我们为同样的比特串定义不同含义并约定映射规则。理论上，只要长度足够长，比特串可以表示任何东西——甚至整个宇宙。\n定点数存储 定点数通常用来表示整数，小数点固定在数值最右边。\n1 2 存储内容 小数点（固定，但并不存储） 101011010101011 . 为节省空间（让比特串更短），整数常见两种记法：无符号记法、带符号记法。\n无符号记法（Unsigned） 取值范围为 [0, 2^n)，n 为比特长度。\n写入举例：把十进制 7 存到 8 位单元中 1 7 -\u0026gt; 二进制 111 -\u0026gt; 补齐为 00000111 约定俗成地，8 位为一字节（byte）。\n读取：把二进制按权展开即可，如 00000111 -\u0026gt; 7。\n溢出：若数值超出 8 位可表达范围会截断高位，如把 21 存入 4 位：\n1 21 -\u0026gt; 10101 -\u0026gt; 截断为 0101 (即 5) 适用：数量（\u0026gt;=0）、地址、以及表示其它数据类型的底层编码等。\n原码（Signed absolute value） 很少使用，问题见下。范围为 (-2^(n-1), 2^(n-1))。最高位为符号位：0 正、1 负。\n写入示例： | 十进制 | 符号 | 数据 | 结果 | | 7 | 0 | 0000111 | 00000111 | | -12 | 1 | 0001100 | 10001100 |\n读取步骤：看符号位 -\u0026gt; 把其余位当无符号数展开。\n问题：0 有 +0 和 -0 两种表示，造成歧义。\n补码（Two\u0026rsquo;s complement） 为解决「双零」问题而生，现今整数存储的标准。范围为 [-2^(n-1), 2^(n-1))。\n正数与原码相同；负数需转为补码。快速求补码方法：从最低位向左，遇到第一个 1 之前保持不变，左侧各位取反（仅对数据位，符号位保持 1）。\n读取负数：对补码再做一次「求补」即可还原；对同一数做两次补码运算会回到原数。\n仍会发生溢出，例如把 -130 存入 8 位会变成 126。\n浮点数存储 浮点数通过「移动小数点」表示很大或很小的数。一个浮点数包含三部分：\n符号（S）：正负号 指数（E）：小数点位置 尾数（F）：有效数字 通常使用科学计数法：如 0.000000101 = 1.01 × 2^(-7)。\n标准化：二进制非零数最高有效位恒为 1，可省略以节省存储，得到 .01 × 2^(-7)。\n指数偏移：为避免存负指数，引入偏移量，把范围平移为非负。偏移量为 2^(k-1)-1，其中 k 为指数位数。\nIEEE 754: Float32 与 Float64 Float32：1 位符号 + 8 位指数 + 23 位尾数 Float64：1 位符号 + 11 位指数 + 52 位尾数 二者的可表示范围不同，但都存在溢出；当 S=0、E=0、F=0 时表示 +0.0（-0.0 也存在于标准中）。\n文本存储 文本由字符构成，关键在于字符编码规则。\nASCII：7 位，最多 128 个字符，范围有限。 Unicode：现代通用字符集，覆盖几乎所有语言与符号，常以 32 位编码为抽象模型；ASCII 是其子集。 音频存储 音频并非离散定义的对象，通常以「采样 + 量化 + 编码」近似模拟。\n采样率：每秒采样次数，越高还原细节越多。常见约 40kHz。 量化：用数字表示每个采样值，常用整数近似。 位深（bits per sample）：单个采样的位数，越高单点精度越高。 码率 = 采样率 × 位深；文件大小 = 码率 × 时长。 示例：1 分钟、采样率 40000、16 位深 -\u0026gt; 码率 640Kb/s，体积约 3.84MB。\n图像存储 分为位图与矢量图。\n位图（Bitmap） 由像素组成，需要说明像素数量（分辨率）与像素颜色（色深）。\n分辨率：如 1920×1080、2560×1440、3840×2160。 色深：每像素使用的位数，常见 24 位 RGB，可表示 16777216 种颜色。 优点：能表达复杂内容、摄影普遍使用；缺点：放大后失真。 矢量图（Vector） 由绘制指令组成（如圆心、半径、描边/填充颜色）。\n优点：任意缩放不失真、体积小；缺点：需专业软件生成，不适合表现复杂真实场景。 视频存储 视频由一系列图像按帧率快速播放而成。若逐帧无压存储，体积会极其庞大，因此实际视频文件均采用压缩编码。\n","date":"2023-02-13T13:34:45+10:00","image":"/p/foundations-of-cs-03/cover.webp","permalink":"/zh/p/foundations-of-cs-03/","title":"计科基础 03 - 数据存储"},{"content":" 封面故事：人类制造的第一块集成电路\n位置化数字系统 在位置化数字系统中，数字的值由 各个数字符号的值 和 各个数字符号所处的位置 共同决定。\n进制 进制也就是进位计数制，是人为定义的带进位的计数方法，进制是一种位置化数字系统。\n对于任何一种进制，比如 N 进制，就表示每一位上的数运算时都是逢 N 进一位。 十进制 是逢十进一，16 进制是逢 16 进一，二进制 就是逢二进一，以此类推。\n因此 N 进制中每位上能出现的数字符号集为 {0, 1, 2, 3,..., N-1}，我们也称 N 为 底数\nK 位 N 进制的最大值为 N^K - 1\n十进制 十进制是我们日常生活中最常见的进制，十进制中能出现的数字符号包括：0-9，共 10 个\n对于任意十进制数字，如 1938.5 和 -224.2：\n1 2 3 4 5 1938.5 = 1 * 10^3 + 9 * 10^2 + 3 * 10^1 + 8 * 10^0 + 5 * 10^(-1) = 1000 + 900 + 30 + 8 + 0.5 -224.2 = (-2) * 10^2 + (-2) * 10^1 + (-4) * 10^0 + (-2) * 10^(-1) = (-200) + (-20) + (-4) + (-0.2) K 位的十进制数最大能表示的数为 10^K -1\n二进制 二进制是计算机中最常见的进制\n为什么计算机不像人类一样使用十进制呢？\n因为电子器件大多具有两种稳定状态，比如晶体管的导通和截止，电压的高和低，磁性的有和无等。这样可以简化计算机的物理设计并提升稳定性。（因此并不是所有计算机都是二进制 的）\n对于任意的二进制数字，如 1011.1 和 -110.1\n1 2 3 4 5 1011.1 = 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 2 * 2^0 + 1 * 2^(-1) = 1000 + 10 + 1 + 0.1 -110.1 = (-1) * 2^2 + (-1) * 2^1 + 0 * 2^0 + (-1) * 2^(-1) = (-100) + (-10) + (-0.1) K 位的二进制数能表示的最大数为 2^K - 1\n16 进制 如你所见，二进制表示一个比较大的数字时会导致数字过长\n但十进制不像二进制那样能直接显示存储在计算机中，而且也和二进制数字之间没有显然的关系，转换也不算便捷\n8 进制（简称 Oct） 和 16 进制 (简称 Hex) 是用于解决上述问题的，这里先谈更常用的 16 进制。\n为了和表明一个数字是 16 进制，我们会使用 0x 开头，比如：\n1 2 0x123456 0x6AF 其字符集包含：{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}\n在 16 进制 中，字母字符与数字的对应关系如下：\n1 2 3 4 5 6 A ----\u0026gt; 10 B ----\u0026gt; 11 C ----\u0026gt; 12 D ----\u0026gt; 13 E ----\u0026gt; 14 F ----\u0026gt; 15 对于任意 16 进制数，如 0x2D.F:\n1 2 0x2D.F = 2 * 16^1 + D * 16^0 + F * 16^(-1) 注意：尽管 16 进制 可以用于表示小数，但是并不常见 K 位的 16 进制 数能表示的最大数为 16^K - 1\n八进制 为了表明一个数字是 八进制，我们会使用 0 开头，比如：\n1 2 01234 02234 其字符集包含：{0, 1, 2, 3, 4, 5, 6, 7}\n对于任意八进制数，如 023.7:\n1 2 023.7 = 2 * 8^1 + 3 * 8^0 + 7 * 8^(-1) 注意：尽管 16 进制可以用于表示小数，但是并不常见 K 位的八进制数能表示的最大数为 8^K - 1\n进制转换 其他进制转换到十进制 将各位上的数转换为对应的十进制，然后相加即可\n二进制转十进制 比如数字 110.11：\n1 2 3 110.11 = 1 * 2^2 + 1 * 2^1 + 0 * 2^0 + 1 * 2^(-1) + 1 * 2^(-2) = 4 + 2 + 0 + 0.5 + 0.25 = 6.75 16 进制转十进制 比如数字 0x2AF.CB:\n1 2 3 0x2AF.CB = 2 * 16^2 + A * 16^1 + F * 16^0 + C * 16^(-1) + B * 16^(-2) = 2 * 16^2 + 10 * 16 + 15 * 1 + 12 * 0.0628 + 11 * 0.00390625 = 687.79656875 由此可见，使用 16 进制表示小数非常不便\n八进制转十进制 比如数字 0163.5\n1 2 3 0163.5 = 1 * 8^2 + 6 * 8^1 + 3 * 8^0 + 5 * 8^(-1) = 64 + 48 + 3 + 0.625 = 115.625 由此可见，使用八进制表示小数也非常不便\n十进制转换到其他进制 将十进制转换为其他进制的运算分为 整数部分 和 小数部分\n整数部分：使用连除法，除以底数，直到商为0，将所得余数逆序排列即可得到结果 小数部分：使用连乘法，乘以底数，结果的小数部分继续参与运算，直到小数部分全为0，整数部分顺序排列得到结果 十进制转二进制 将数字 17.625 化为二进制\n整数部分：\n1 2 3 4 5 6 7 8 余数 备注 17 / 2 = 8 1 8 / 2 = 4 0 4 / 2 = 2 0 2 / 2 = 1 0 1 / 2 = 0 1 此时商为 0，停止运算 将余数倒序排列（从下到上）可得：10001 小数部分：\n1 2 3 4 5 6 整数部分 备注 0.625 * 2 = 1.25 1 1.25 的小数部分为 0.25 0.25 * 2 = 0.5 0 0.5 的小数部分为 0.5 0.5 * 2 = 1 1 1 的小数部分为 0，停止运算 将整数部分顺序排列（从上到下）可得：101 合计：10001.101\n十进制转 16 进制 将数字 17.625 化为 16 进制\n整数部分：\n1 2 3 4 5 余数 备注 17 / 16 = 1 1 1 / 16 = 0 1 此时商为 0，停止运算 将余数倒序排列（从下到上）可得：11 小数部分：\n1 2 3 4 整数部分 备注 0.625 * 16 = 10 A 10 的小数部分为 0，停止运算 将余数倒序排列（从下到上）可得：A 合计：0x11.A\n十进制转八进制 将数字 17.625 化为 八进制\n整数部分：\n1 2 3 4 5 余数 备注 17 / 8 = 2 1 2 / 16 = 0 2 此时商为 0，停止运算 将余数倒序排列（从下到上）可得：21 小数部分：\n1 2 3 4 整数部分 备注 0.625 * 8 = 5 5 5 的小数部分为 0，停止运算 将余数倒序排列（从下到上）可得：5 合计：021.5\n二进制和 16 进制互转 二进制 转 16 进制 转化过程也分为整数部分和小数部分：\n整数部分：从小数点左侧第一位开始，每 4 位（因为 16 = 2^4）化作一个 16 进制数 小数部分：从小数点右侧第一位开始，每 4 位（因为 16 = 2^4）化作一个 16 进制数 如 二进制数 100001001110.110101\n整数部分：\n1 2 1000 0100 1110 8 4 E 小数部分：\n1 2 1101 0100 D 4 合计：0x84E.D4\n16 进制转二进制 和上面的过程相反，将每一位 16 进制数转换为二进制即可还原\n如 16 进制数 2FA.DE\n1 2 2 F A . D E 0010 1111 1010 . 1101 1110 合计：1011111010.1101111\n转换所需的最小位数 如果一个十进制整数 X 转换为 N 进制，转换后需要最少多少位表示？\n一个长度为 n 的 N 进制整数能表示的最大数为 N^n - 1\n因此如果存在 N^(n-1) - 1 \u0026lt; X \u0026lt;= N^n - 1，则说明 X 转换为 N 进制后最少需要 n 位数字表示\n比如：对于十进制整数 144 转化为二进制, 有 2^7 - 1 \u0026lt; 144 \u0026lt; 2^8 - 1 即 127 \u0026lt; 144 \u0026lt; 255\n所以 144 转化为二进制最少需要 8 位来表示\n","date":"2023-02-07T21:37:43+10:00","image":"/p/foundations-of-cs-02/cover.webp","permalink":"/zh/p/foundations-of-cs-02/","title":"FoCS 02 - 进制"},{"content":" 封面故事：大学英语四级英语考试词汇表中的第一个单词\n这篇博文的内容源于近期观看的一个关于英语学习的 Youtube 视频，看完后我很认同视频中作者的观点，所以将其梳理出来，形成文字版。尽管视频中说的是英语学习，但是我认为这种方法也适用于其他的语言学习。\n值得注意的是，这篇文章并不能为准备语言考试的同学提供帮助。\n不均衡学习法 所有的语言学习都可以分为：听，说，读，写，四个部分，在通常情况下，我们都会认为这四项是相同重要的（至少在语言考试中是这么体现的），但实际上并不是这样。\n语言的初学者就像刚出生的婴儿，对一切一无所知，想想婴儿是如何做到快速学习一门语言的呢？\n我认为答案的关键在于听力，因为这种方法并不强调语言的四项基本能力的均衡发展，所以被称为不均衡学习法\n听力优先 这里细说以下听力优先能带来哪些好处：\n因为听力是被动的，所以会好接受很多 大量的听力可以用于构建词汇量基础（你会知道哪些词是高频词） 只要能听懂，即使表达能力弱（比如掌握的词汇量小）也能够正常交流（用简单词拼凑表达） 语言的核心是听说，而不是读写（文字依托语言产生），用于构建语言的思维链接（学习语言和这种语言的思维习惯） 能更快的开始与人交流，有快速反馈，激励进一步学习 在互联网环境下构建听力环境非常简单（网上到处都是英语听力材料） 听力可以辅助其他三项能力的提升 对说的帮助：吸收别人的表达方式 对读的帮助：脑海中默读，能够对单词形成反射 对写的帮助： 自然拼读法 因此锻炼好听力非常重要。因此可以说，不均衡学习法又可以称作 听力优先学习法。\n使用什么学听力 作为一个好的英语听力学习材料它需要满足\n它需要有场景 需要有足够的长度（能够有在相关场景足够的锻炼时间） 因此最好是有一定场景和专业性的剧集或者 youtuber\n通常当你看下 10 部美剧的时候（每部又有好几季），已经有很优秀的英语听力能力了 当能力有所提升，可以适当加大学习难度，比如：打开倍数，收听广播\n对于听不懂的单词并不要紧，听不懂就听不懂，先构建能听懂的词的理解能力（不要放弃）\n没有时间学怎么办 时间管理不是必要的，因为它违背了人的天性 把学习的过程放到娱乐中（将学习和娱乐关联起来） 如果想锤炼文字，小说 \u0026gt; 电影/美剧 很多人的不快乐其实来自空虚，人需要被成就感驱动 ","date":"2023-02-05T19:08:59+10:00","image":"/p/language-learning-tips/cover.webp","permalink":"/zh/p/language-learning-tips/","title":"语言学习技巧"},{"content":" 封面故事：ENIAC，人类制造的第一台计算机\n闲言碎语 正如描述中所说的那样，这是一本 2015 年买的书，到 2023 年才开始看。 原书名为《计算机科学导论》，一本非常经典的计算机入门书籍，想当年是买来给大学入学做准备的，没想到竟然从一所大学等到了另一所大学。\n言归正传，开个新坑，名为 FoCS （Foundations of Computer Science），在这个系列中，我会把从本书学到的内容用我自己的语言复述一遍，用于将来快速复习。\n图灵模型 众所周知，艾伦·图灵 来自英国的世界闻名的计算机科学家，图灵模型就是他设想的一种计算机理论模型（在那时计算机还只是一个概念）。\n计算机黑盒 为了方便理解，不妨先想象有这么一个黑盒：它能将 你的输入 通过 某种计算 得到 结果并输出\n1 输入数据 ----\u0026gt; 黑盒 ----\u0026gt; 输出数据 或许你看这个东西看得很眼熟，这好像就是 函数\n1 x ----\u0026gt; function ----\u0026gt; f(x) 可编程的计算机黑盒 接下来，黑盒变得稍微高级了一些，它能够替换 内部的执行规则，从而实现更多的功能，那么就会变成这个样子：\n1 2 3 4 5 输入数据1 ----\u0026gt; 黑盒（规则1） ----\u0026gt; 输出数据1 输入数据2 ----\u0026gt; 黑盒（规则1） ----\u0026gt; 输出数据2 输入数据1 ----\u0026gt; 黑盒（规则2） ----\u0026gt; 输出数据3 输入数据2 ----\u0026gt; 黑盒（规则2） ----\u0026gt; 输出数据4 就和函数一样，函数值 会因为 自变量 和 函数体 的变化而变化\n在 自变量 和 函数体 一致的情况下，函数值 应该是唯一且确定的\n1 2 3 4 5 x1 ----\u0026gt; f(x1) x2 ----\u0026gt; f(x2) x1 ----\u0026gt; g(x1) x2 ----\u0026gt; g(x2) 上面黑盒中的 内部的执行规则 我们称之为 程序，它是一组有限的操作指令的集合。\n通用图灵机 通用图灵机便是上面这样的一个可以替换内部执行规则的黑盒，只要我们能够为它提供 输入数据 和 合适的程序，那么它就能进行任何计算\n冯·诺伊曼模型 冯·诺伊曼 是来自美国的世界闻名的计算机科学家，被誉为现代计算机之父\n模型组成 模型由以下四个部分组成\n算术逻辑单元：模型中用于对数据进行处理的部分 输入输出单元：模型中用于对数据输入和输出的部分 存储器：用于存储 输入输出的数据和程序 控制单元：用于对上述所有的单元进行控制 和 图灵模型 的区别 与 图灵模型 相同，冯·诺伊曼模型也是一种通用计算计算机模型，可以从上面的模型组成看出两者的区别\n在图灵模型中没有 控制单元和存储器 在冯·诺伊曼模型中首次提出 程序也可以存储 的概念 现代计算机都有啥 简单说，现代计算机包含：计算机硬件，数据和计算机软件\n计算机硬件 即使过去这么多年，不论计算机如何变化，它们依然都基于 冯·诺伊曼模型\n尽管可以有不同类型的 输入/输出设备和控制单元等，但是它们都仍然属于以上四部分之一\n数据 数据存储 至今为止，所有的计算机都是二进制计算机，计算机只能识别 0 和 1，我们所有的数据都是通过不同的 0 和 1 来表达的\n根据存储介质的不同，0 和 1 的体现方式也有所不同：\n在电路中，通过断开和连接表示 0 和 1 机械硬盘中，通过磁极来表示 0 和 1 组织数据 尽管所有的数据对于计算机来说都是 0 和 1，但在计算机外部却可以表现为不同的形式（就像不同的语言都能表达相同的意思）\n计算机软件 计算机软件又称程序，它又包括以下概念：\n和数据一样，程序也是可以存储的 程序是一组有限的指令集合，会将程序常用的指令提取出来，方便重用 算法：按步骤解决问题的方法就是算法，算法会是程序的一部分 编程语言：用于编写计算机程序的语言 软件工程：将软件的开发工作 规范化，流程化 操作系统：操作系统也是程序，可以看作应用软件和硬件的中间层，为应用软件调用硬件提供支持 计算机发展史 真空管计算机 又称为第一代计算机（1950-1965），使用真空管作为电子开关，体积庞大，功耗和发热量巨大，只有大的机构才负担得起。\n晶体管计算机 又称为第二代计算机（1959-1965），使用晶体管替代真空管，减小了体积和发热，中小企业也能负担得起，与此同时也出现了 FORTRAN 和 COBOL 两种编程语言，能用于操作计算机解决实际问题。\n集成电路计算机 又称为第三代计算机（1965-1975），将晶体管，导线和其他部件做到一块芯片上，进一步降低了成本和大小，许多小型公司也能负担得起，与此同时软件工业也就此诞生。\n微型计算机 又称为第四代计算机（1975-1985），电子工业发展允许将整个计算机子系统做到单块的电路板上，与此同时还出现了计算机网络。\n现代计算机 又称为第五代计算机（1985-至今），掌上计算机和台式计算机开始诞生和兴起，伴随着的还有各种多媒体和虚拟现实技术的诞生。\n","date":"2023-01-25T23:03:43+10:00","image":"/p/foundations-of-cs-01/cover.webp","permalink":"/zh/p/foundations-of-cs-01/","title":"FoCS 01 - 绪论"},{"content":" 封面故事：昆士兰科技大学，植物园校区\n我的 2022 过得怎么样 简单来说，2022 年是我的人生转折点。\n在 2022 年发生了许多事情，让我觉得今年收获满满。而且今年也是不可预料的一年，如果在年初我甚至无法想象我年底回到澳洲来。\n接下来是 2022 年让我印象最深刻的五件事：\n年终总结和公司年会 公司装修 离开 SAGI GAMES 学习英语并通过 PTE 考试 去澳大利亚布里斯班留学 今年我在几个关键的事情上表现得不错，包含：\n成功通过 PTE 考试，并对结果感到满意（63 分） 为出国留学做准备：从计划到安全到达澳洲只花了 4 个月的时间 但是也有一些事情做的并不好：\n云原生学习（几乎没有进度） 减肥（没有规律锻炼） 阅读（只看了一本书） 正如我上面提到，由于今年的不可预料，所以如果用 OKR 来评价今年的表现并不准确，因为努力的方向变了。\n总之，今年还不错，也属于特殊情况。\n我的 2023 会怎样 我带着我的雄心壮志来到这里，我也有我的目标。\n为了达到目标，明年将会成为非常关键的一年，因为时间不会重来。\n这是已知的明年大事件：\n国际生迎新周（看看有啥不一样！） 参加全英语的 IT 课程（俩小时的纯英语听力，希望坐得住） 参加 PTE 考试（英语渣的自我救赎） 找到一个 IT 相关的工作（挣钱生活） 简化目标，这样我才能随时知道我应该做什么。（按优先级排序）\n更好的英语能力：PTE 各部分达到 65 或更高 高 GPA：6.5 或更高 找到工作：需要有薪水且与 IT 相关 健康的身体：减肥到 90 公斤或更低 以下问题需要解决：\n分心（不能长时间将注意力集中在一件事上） 不规律作息 浪费时间（明明有这么多事情要做，却还是在玩别的） 一点建议：\n一旦找到工作，可以花些钱改善生活质量（不论怎样，开心点） 空出时间拿来玩（如果玩得不计划，那就会无计划的玩） 在自己身上投入更多精力，只需要空出固定的时间用于联系家人和朋友（包括回复信息） 需要更尊重自己设定的时间表 对于需要重复做的事情不要从零开始（为重复和复杂的工作准备模板） 期待我能在 2023 年有更好的表现，新年快乐！\nParasomnia\n","date":"2022-12-31T15:47:47+10:00","image":"/p/connections-2023/cover.webp","permalink":"/zh/p/connections-2023/","title":"连接 2023"},{"content":" 封面故事：布里斯班 City 随机拍摄\n就在我写完上篇文章的几天以后，我的签证就下签了。\n尽管现在才刚到澳洲一个礼拜，但是还是有很多事情值得记录。\n赴澳之路 因为我本来并没有期待签证会这么快下来，所以当签证下来的时候，我的行李都还没有准备好。\n冬天来了，我知道可能又会因为新冠而封城，所以我认为我应该尽快订票。然后我就定了 11.25 的机票（我只有 10 天清理行李并和朋友们道别，时间还是很紧，不能再早了）\n事情正如我所料， 在 11.22 晚上，我妈告诉我，有小道消息说我们的小区可能要被封，结合过去的经验，我选择相信这个小道消息，于是便带着行李去其他地方住。在 2 小时以后，小区被封闭，我成功的逃了出来。\n我跑到了亲戚的家里。历史重演了，在 11.24 晚上又传来封锁小区的小道消息，当然我也再一次的选择了相信它。我知道自己不能承担封城的风险，所以我只能再次带着我的行李，直接前往机场。事实证明我是对的，在我离开后不久，小区就封了，我又一次成功逃脱。\n在到达机场以后，后面就一切顺利了。23 小时候，我成功的到达了布里斯班，非常幸运！\n祝你有美好的一天，司机先生 QUT 给学生提供了接机服务, 我在国内就预定好了这个服务. 在我取到自己的行李以后，我看到一个高个男人举着他的手机，手机屏幕上显示着我的名字。当我们视线相交，他向我走来，然后我就上了他的车。\n他的车是一辆黑色的奔驰 SUV，空间很宽敞，他告诉我他为了来接我，特意洗了个车。然后我就开始了和外国人的第一次对话。\n他来自巴基斯坦，所以在一开始，我无法识别他的口音，但是没过一会，我就能大概听懂他在说什么，并且尝试交流，因为我想抓住每一个能练习口语的机会。\n这个对话并不长，但是我们聊到了很多话题，包括：他是如何在机场认出我的，中国和巴基斯坦的关系，布里斯班的标志性建筑是什么，我们路过的景点，我应该在大学怎么做，等等。最后他还给了我一些对将来学习生活的建议：\n保持专注，拒绝一切打扰 搞清楚我到底想要什么并树立目标 保持耐心别放弃 重复以上三点 这是我第一次和外国人聊天，让我印象很深刻。\nCity 之旅 在我抵达的一天以后，我就参观了布里斯班 City，这里有很多东西跟我之前想象的不一样：\n我知道有很多华人住在悉尼和墨尔本，但是没想到在布里斯班也有这么多华人 外国人们都非常友好，不像国内视频说的那样 许多人都聚在广场上，都没有带口罩 简短地说，这是一片平静的土地。\nQUT 我的大学位于布里斯班市中心，这也是我为什么第一时间就来这里。 许多人认为在澳洲只有八大值得去，但是我认为每个大学都有不同的风景。\n我参加了 3 次考试就为了能来 QUT 读书，因为我被它深深吸引并打心底喜欢这所学校。你可以想象当我第一次看到校园的时候，我有多开心。\n校园很小，但是很精致。\n皇后街 在游览完校园以后，我来到了皇后街，这是布里斯班最繁华的街道之一。我在这里发现了一家评价很高的日本拉面馆，我点了一份拉面和一份饺子。\n你可以猜猜他们多少钱（提示：这是在布里斯班市中心的餐馆）\n答案是:\n拉面 17 澳元 饺子 10 澳元 它们都很好吃，就是很贵，而且分量不足.\n发一些我拍的街道:\n一些琐事 同时我也做了一些琐事：\n我办理了我的第一张澳洲公交卡\n还创建了我的澳洲银行账户\n与爷爷奶奶的对话 因为某些原因，在 Springfield，我见了一对老夫妇，他们来自智利。我们大概聊了 40 分钟。他们已经在澳洲居住 32 年了，并且做寄宿家庭也有 20 年的时间，许多来自不同国家，不同年龄段的孩子都在他们家里住过。\n对话内容包含了许多话题：从不同国家孩子的特点到在中国如何生活\n“亚洲孩子都非常有礼貌，在得到帮助以后，总是说谢谢”\n\u0026ldquo;澳洲是一个很好的国家，既安全，又美丽，我非常喜欢这里\u0026rdquo;\n\u0026ldquo;我看到很多中国小孩既能弹奏多种乐器，学习成绩还很优秀，他们是怎么做到的？\u0026rdquo;\n他们的语速很慢，声音很轻柔, 让我内心感到平静。\n他们邀请我在他们家吃饭，并且爷爷还开车把我送到了火车站。\n我对澳洲的感觉 这真的是一个非常宜居的国家，人很友好，空气新鲜，经济强大，环境优美，天气也不错，有充足的日照和很多可爱的小动物。 就像是一片纯净的土地，我也喜欢这里，很开心能待在这里。\n","date":"2022-12-03T17:00:39+10:00","image":"/p/first-week-in-australia/cover.webp","permalink":"/zh/p/first-week-in-australia/","title":"在澳的第一周"},{"content":" 封面故事： deft 赢得 2022 年英雄联盟全球总决赛冠军。\n如上篇文章所说，我最近成功通过了 PTE 考试并且获得了 QUT 信息技术硕士的 Offer。\n这当然是一个令人激动的事情，我为之感到自豪。\n直到现在，一切都按部就班的进行，在我离开之前，我有些话想说给自己听。\n我应当感到幸运 由于高考失利，我并没能去读本科，而是去了职业院校。\n我在高中时期辍学了，尽管参加了高考，但是我考前就知道，成绩一定不会好。我仍然记得我查分的场景：当我看到分数，我整个人直接呆住了，即使我已经为糟糕的成绩做好了准备，但是情况比我预想的还要差。那时我只感觉我的一生已经被毁掉了，脑海里只有一个声音：复读然后重新高考。\n今天，回过头看过去，如果我去复读，我的成绩可能并不会更好，甚至更差。因为我那个时候非常浮躁，我忽略了学习的难度并高估了自己的基础能力，学习技巧和决心。我的家人说我欠缺考虑，几天以后，我冷静下来也放弃了复读的想法。\n尽管我身边的朋友去了各式各样的大学，但是我没有选择，只能去职业学校。\n于是，我便有了一个大学梦，并且做了以下尝试：\n我参加了一个非全日制的本科自考，幸运的是，我成功通过了考试并且拿到了学士学位 我考了一次研，尽管我失败了，但是英语水平相较之前有比较大的提高 在家庭的压力之下，我开始找工作，幸运的是找到了一份 IT 相关的工作，所以我有 IT 的工作经验 最重要的事情是，当我把出国留学的想法告诉家里人，他们也支持我的想法 回头一看，原来我已经走了这么远，无论如何，我都应该感到幸运。\n我不是天才 承认自己的平庸不是一件丢脸的事情。相反，这是一件勇敢的事情。\n有一句老话：人有三次成长，第一次是当你不再觉得你的父母无所不能；第二次是不再觉得自己大有可为；最后一次是不再认为自己的孩子无限可能。\n作为一个普通人，我不能期待自己能在短时间内有巨大的成就。换句话说，失败和悲伤应该才是常态，偶尔成功已经足够。\n让普通人成功的通用方法：\n做一个长期计划，拒绝临时决定，每件事应该都有充分准备 失败的经验比成功经验更有用，降低期待，保持耐心 选择大于努力 你的每个行为都是对你想成为怎样的人的一次投票 在框架里做事情 事实上，这是吴军博士说的。\n大多数人并不是研究人员或者创意工作者，所以他们并不太需要去创造和发掘新的东西，只需要跟着前辈一步一个脚印就能表现得比平均水平更好了。（因为有很多人并不会从历史中吸取经验教训，也包括我）\n每次失败，我都会尝试从头开始，于是我就会在相同的地方再失败一次。因为我跳出了能带领我走向成功的框架，那么什么是框架呢？\n举一个例子，当我们尝试解决一个复杂问题，就像 AI 玩游戏。在最开始，AI 会尝试所有可能，然后收集所有的结果数据。与此同时对数据进行分析，找出获取相对高分的方法。后面的每一步都是基于上一步的最优解，如此循环往复，就会离最优结果越来越近。因此框架是在不断的尝试过程中产生的，每一次错误都会使这个框架变得更加准确。如果总是重头再来，那就不能从过去的失败中吸取经验教训，只能原地踏步。\n那么何时应该从头开始呢？\n当问题或者情况发生改变 已经尝试多次，有足够的经验快速生成一个新的框架 因此，通过其他人的经验和互联网来学习至关重要。有了其他人的经验可以减少我的无用尝试，更快的接近成功，节约时间。\n尽管艰难，但是 这对我来说是人生的转折点，我很清楚，没有比这更好的机会了。\n尽管艰难，但是这是我选择的道路，只要享受这段艰辛且（或许）短暂的新生活就好了。\n结果并不重要，因为这是一段漫长的旅程。\n","date":"2022-11-12T20:29:46+08:00","image":"/p/words-for-next-stage/cover.webp","permalink":"/zh/p/words-for-next-stage/","title":"给下一阶段的话"},{"content":"最近，为了出国留学在考 PTE，直到现在，我已经考了两次了，但是还没有到目标分数。\n老实说，目标分并不高（单科过50，均分过58）\n然后考了这么一个分数：\n这是一个很尴尬的分数，平均分刚刚合格，但是在口语单科上差一分，挺搞心态的。\n除开昂贵的考试报名费用外（接近2000元），更多的是感觉就像命运和我开了一个玩笑。\n在我写这篇文章的时候，我同时也在思考下一步应该怎么办，所以这篇文章会有些混乱。\n我突然意识到：留学是一个漫长的旅途。即使我这次通过了考试，后续还是会遇到很多问题。\n举个例子，如果我想在国外工作，我至少需要 65 分，这比当前的目标分还要高，显然为了达到这个分数，我可能还要尝试更多次。\n不妨来看看第一次的考试分数：\n其实每个部分都比之前要好，也就是说我还是进步了，只是进步得还不够。\n换句话说，我应该为我拿到这样的分数感到高兴，因为它证明了两件事：\n我的努力方向是正确的，别害怕，继续前进，不要怀疑 努力是有用的，汗水不会骗人 在经历这样的内心思考以后，我的心情好多了 （自我调节是个人必备的能力之一）\n所以说，接下来该怎么做呢？\n毫无疑问，再试一次！\n更详细的说，包含以下步骤：\n根据成绩报告，找到弱点 提高练习量，保证能够适应考试中的每个部分 减少准备周期，保持专注（15天最多） 找到一个更好的练习平台用于模考和成绩分析（尤其是口语部分） 竭尽全力，给未来一些信心。\n10.25 号见\n更新于 10.27\n","date":"2022-10-10T22:20:07+08:00","image":"/p/after-second-pte-test/cover.webp","permalink":"/zh/p/after-second-pte-test/","title":"第二次 PTE 考试有感"},{"content":"众所周知， Hugo 是一款流行的静态页面生成器，很多程序员使用它作为自己的静态博客系统\n在此之前， 我一直都是使用的动态博客系统，我为什么会转向 Hugo 呢？\n其实原因很简单， 无非是以下几点：\n相比动态博客有更低的维护成本 节省服务器费用 数据存储于 GitHub，不用担心数据丢失 自带国际化支持 更换博客来记录下一人生阶段的经历，非常合适 之前的博客没有关闭，已经迁移到 https://archive.mashiro.best\n这是我使用 Hugo 发布的第一篇文章，请尽情享受吧。\n","date":"2022-09-28T20:04:05+08:00","image":"/p/hello-hugo/cover.webp","permalink":"/zh/p/hello-hugo/","title":"你好 Hugo"}]