这周把留了 2 年多的头发剪了,一开始留倒也没有什么特别的理由,当时 gap 在家懒得搭理头发剪了寸头,后来也一直懒得去理发。
中间好像看到一个人去理发店剪头发的视频,也是一个男的,头发很长,说是留着去捐发的。
后来想想也未尝不可,就一直留着了。
但是当真的去捐的时候,发现很多捐发组织都需要抢名额才能捐,其实压根不缺我这点头发,加上头发长(大约 35 cm)不好搭理,于是给自己定了今年作为最后的 deadline,捐不出去就剪了,不再执念。
留长发也没啥难的,忍得住就行。
确实也会有些麻烦,例如头发长吃饭的时候糊嘴,总是需要撩头发,或者用发箍;
很长的时候也容易被认成女生,上厕所的时候都有点压力= =;
还有就是洗完头发需要吹很久才能干,久而久之就是三天才洗一次,有时头发会痒。
12 月最后一次捐发名额没抢上,就决定去剪了,剪之前还尝试了一下一些女生发型,看着自己的模样笑了半天。
剪发找到了一家还不错的理发店,女朋友帮忙出谋划策,和理发师沟通,最终的短发我还挺满意的。
剪完头发后洗头,突然有一种好像头秃了的感觉,头发很少,不过慢慢就会习惯吧。
短发也很清爽舒服,大概以后也不太会留长发了吧。
对了,这周末会出去玩,大概率没啥时间整理周刊内容,如果有关注的读者,不用等啦~
我觉得阅读周刊的最好方式是订阅 RSS,发布了有空看就看看。
以前我也关注了一些周刊,总以为会在某个时间点更新,就经常去翻,当他没有及时更新我就会有点失望,久而久之我也懒得去翻了。
这个周刊我目前还不太能保持固定时间点完成更新,所以也请不要抱有太多期待,偶尔翻到了就看看吧~
祝好~
News | Article
How to Grow Professional Relationships
TJS(The Journey to Synergy) 是作者用于衡量职业关系的标准和立场。
- 一切都是竞争(Everything is a competition)
- 在这种初始状态下,互动的特点是把关和零和心态:认为一方要吃饭,另一方就必须挨饿。人们不愿意分享信息、资源或机会。这里通常存在歧视和排斥行为,如种族主义、性别歧视、仇外心理等。
- 共存(Coexist)
- 双方承认对方的存在,但保持极少的互动,概括起来就是 "我知道他们,但我们不怎么说话"。这种情况的特点通常是相互尊重,但由于各种原因而普遍疏远。
- 交流(Communicate)
- 进行基本的信息交流,任何一方都会用 "我们曾经谈论过某事 "来描述对方,但由于上述类似原因,双方的关系并没有取得更大的进展。
- 合作(Cooperate)
- 双方共同参与一项中立任务,为同一目标做出贡献。双方的利害关系通常不大,主要还是交易关系。
- 协调(Coordinate)
- 在这一阶段,一方或双方有意采取措施协调行动,以实现属于其中一方的目标。这个目标通常会被另一方 “采纳”。
- 合作(Collaborate)
- 当两个或两个以上的人反复成功地开展协调工作时,美好的事情就会发生:他们共同认识到高质量的协同作用;他们在一起的力量大于各部分的总和,他们可以不断分享工作中的快乐。协作不是指人们协调努力,分别建设互补的事物,而是指他们共同建设同一事物。
- 我们是一样的(We are the same)
- 最终的状态代表着共同的认同和纠缠,这并不是一种积极的状态。按照 “好事做多了也是坏事” 的古训,这是一种各方共同依赖、相互缠绕的状态,一个或多个成员不健康地依赖于另一个成员。个性消解,身份和界限丧失:这是一种有毒的状态。在这种状态下,我们会发现并体验到职业倦怠。
大量证据表明,当我们采取排斥和零和的态度时,我们的表现最差。反之亦然:当我们与他人合作愉快时,我们的状态最好。
…
合作的益处在于,参与者能够共同取得比个人能力更高的成就,为更多的人提供服务,并在个人和组织层面实现成长。
…
由此我们可以看出,合作不仅仅是一种美好的愿望,而是一种必需。这不仅仅是为了与他人相处,而是为了共同创造更伟大的事业。
作者推动关系的一些经验:
- 培养一种富足的心态
- 这并不是一种美德信号,而是我经常把金钱和时间赠送给人们。人们不时对此提出质疑,最终,我给出的答案是,我们有太多的东西可以分享。世界是丰富的,不是零和的。我故意让别人占我的便宜,因为我知道我会以另一种方式找回我需要的东西。如果你把整个水桶都倒给别人,水桶可能会变空,但永远不会一直空着:自古以来,这个星球上的富人和穷人都下过雨,而且雨还会一直下下去。雨水会再次填满你的水桶。
- 放弃失去的事业?
- …这个世界是一个丰富多彩的世界,充满了形形色色的人:有些人避开我们,有些人爱我们。当有人表示没有恋爱的空间时,他们就帮了我们一个大忙,让我们可以去追求其他愿意与我们交往的人。我发现,迅速对数据表示感谢并继续前进是非常成功的。
- 爱邻如己
- 我真的很爱自己。我给自己吃好的,给自己做有益的运动,我赚钱投资自己。我看到了将同样的爱延伸到他人身上的巨大价值和快乐,而不仅仅是自己的邻居。如果我在照顾自己的同时,还期望从自己身上得到回报,那就太奇怪了。当我以我希望被对待的方式对待他人–适当地尊重他们,不求回报地付出时,通常会有相当美妙的回报,从而促成高质量的合作。显然,这并不是每次都能成功,但少数几次的成功抵得上所有的失败。这确实会让你受到虐待和被人利用,但对我来说,少数几次有效的情况远远多于无效的情况。
- 注意细节
- 对我来说,每一次关系的进展都是在我非常重视的时候。…当一方接受另一方的目标并主动支持它时,协调 (coordinate) 就发生了。在细节上下功夫、做工作,甚至不惜付出代价,是从合作 (cooperate) 走向协调 (coordinate) 的好方法。当协调工作屡屡取得成功时,双方的关系自然会发展到合作 (collaboration)。
CSS Wrapped 2024
2024 年的 Chrome 和 CSS 之旅,穿越森林,翻山越岭,漂洋过海……
挺多细节的网站。可以通读一遍了解一些 2024 年的 CSS 特性。
6 lessons I learned working at an art gallery
把平庸的工作变成伟大的工作是可能的
也就是说,你不会说:“这是我的工作,而那件事不在我的职责范围之内” – 不,如果你想要推广的价值要求你超越自己的角色,学习新的技能,并通过政治手段获得授权:那么这就是你的工作。
如果你关心美,你也应该关心经济增长
如果我们想让世界变得更美好,就不能只考虑那些高大上的东西:我们必须亲自动手,确保经济引擎正常运转。
在激励机制中,有些地方的激励措施与你的价值观是一致的,你的任务就是找到它们
如果你肯花时间与现实对撞,想一想如何为某件事情提供资金,你就会发现,在激励机制(实际上是其他人的欲望和需求)中,有一些地方与你不可言喻的价值观是一致的。
如果你想把你所拥有的一切尽可能多地奉献给这个世界,那么我们的工作就是找出激励机制中的最佳位置。
You Have One Voice
我们只有一个声音,你可以选择攻击,贬低他人,也可以选择鼓励,提升他人,如果周围的人都是相互鼓励的,我想心情肯定会好得多,合作也会更积极。
技术不是真空,也不是非政治化的;无论我们想如何客观地分析技术,制造技术、使用技术和思考技术的人依然存在。
这些人将在他们使用的技术中找到他们身份的一部分,这是人类的特征,而不是缺陷。
…
但这也意味着,当我们贬低和攻击技术时,我们不可避免地会攻击那些选择与技术相关联的身份群体。
作为一个社会,当我们宣布某种事物的合法性时,我们往往是以牺牲另一种事物为代价的。
同样,当我们作为一个社会宣布某种事物的非法性时,我们这样做往往是为了贬低、排斥或以其他方式伤害与之相关的特定群体。
无论有意还是无意,这都是一个深刻而不可避免的结果。
不一定 “非得” 这样;肯定有办法在不批评另一种技术选择的情况下说 “这种技术是合法的”,但实事求是地说,你见过几次这样的情况?
…
所以,作为一个受人尊敬的科技工作者,我有一个选择:我可以用我的精力去贬低别人,也可以用我的精力去提升别人。
很久以前我就决定,我将永远选择用我的精力去提升别人,而不是拆毁他们。
时至今日,这仍然是我最核心的观点之一,我一直在努力坚持。
即使我想发泄,或想咆哮,或对某项技术产品、语言或社区感到非常沮丧,以至于想谈论它,我也会竭尽全力以建设性的方式谈论事情,而不是以固有的消极和无益的方式。
说到底,你只有一个声音。
人类是单线程的;无论我们有多少盘子在空中旋转,你的声音一次只能发出一个词。
你每次只能打一件事,你生命中的每一刻也只能做一件事。
每当你把时间花在一件事情上时,你也不会把时间花在其他事情上。
我们现在已经认识到,消极情绪比积极情绪更能影响人的记忆,这就使消极情绪变得更加严重。
因此,你有一个选择:你将因你所产生的影响和你为产生这种影响所花费的时间而被人们记住。
你是想让别人记住你是一个打倒别人的人呢?还是提升他人的形象?你想成为对世界产生负面影响的人吗?还是积极的影响?
你们只有一个声音。一个生命。一瞬间的时间。你打算如何利用它?
至于我,我早就做出了选择:在我说的每一句话、拥有的每一刻,我都将尽最大努力提升我的社区。
因为我们同舟共济,我们可以共同创造的世界是如此美丽,令人叹为观止,你为什么不想参与建设呢?
登顶 AppStore 付费排行榜 Top1 的「小猫补光灯」:一边被程序员质疑,一边遭「百亿市值」的公司致敬抄袭!
作者通过 AI 完成了一款补光灯应用,并且在小红书推广,成为了爆款。
作者分享 cursor 使用的时候,女朋友告诉他可以做一个补光的色卡产品,他搜索了小红书,发现确实存在大量需求,就实现了这样的一个应用。
产品完成后依然在小红书运营,获得反馈进行迭代。
能发现需求,然后快速完成原型(AI 的力量!),完成了运营推广,真是一个成功的产品开发案例。
代码多不多,难不难真的一点都不重要,没有任何一个用户关心你这点。
她唯一想知道的就是你的产品能帮她做什么,能解决她的哪些需求!这是唯一重要的事。
其实我当时在做包含自拍的「小猫补光灯Pro」时就尝试了很大的困惑,这么简单容易提升女生拍照效果的方式,怎么会没有任何一个美颜公司去做呢?你们产品到底在干啥呢?
现在我知道了!作为行业的绝对头部公司,有很强的规模效应,你们确实不需要去做什么需求洞察,搞什么创新的。
多追踪一下小红书、抖音,多看看AppStore排行榜确实是更简单的创新路径,很好,速度真的很快。
How I algorithmically donated $5000+ to Open Source via GitHub Sponsors and PyPI data
作者写了个程序,找到一些用的人比较多的开源项目,捐赠了近 5000 美元,涵括 866 个 GitHub 用户。
很多重要的基础开源软件都没有人赞助,全靠作者无偿开发,但是用爱发电往往是不能持续的,作者倡议给这些作者一些赞助,让他们能够更好地维护开源软件。
忘了在哪里看到的,有人说可以考虑每个月支出 10 美元左右,去捐赠那些对你有帮助的人,后来我也在 GitHub 上也捐赠了几个对我帮助挺大的开发者,虽然金额并不多。
有的作者开发的软件真的对我帮助很大,让我在开发过程中感到了快乐,所以也很想感谢这些作者。
我们都间接依赖开源软件–一种价值约 9 万亿美元的公共产品,主要由无偿志愿者开发。
但是,如果不加以维护,它就会变得功能失调,甚至有害,而这张图片就很好地概括了现代基础设施的脆弱性。
![]()
因此,我认为必须以系统的方式为开放源码软件维护者提供资金,以有效降低我们这个世界所依赖的软件供应链中的风险。
my second year without a job
作者辞职了两年,这是对第二年的一个回顾, 感觉作者过得很开心的。
…和别人一起住也省不了多少钱。但合作是创新的种子,所以我决定试一试。
这些天,我们一起做了很多事情,这对我的心理健康产生了积极的影响。
每周一次,我们一起玩棋盘游戏、做饭,或者一起工作。
与他人一起生活并不总是那么容易,但却很有趣。
起初,我以为我只会写我的项目,这是任何一个奋斗中的创业者都应该做的。
但这一年,我写的远不止项目。如果没有音乐、体育和朋友,我就无法坚持工作,尤其是没有报酬的工作。
无论从哪个角度看,这都是美好的一年–充实,充满爱与关怀。
展望未来,令人兴奋。我总是对接下来会发生什么感到好奇。
过去几年,我的原则一直很简单:保留好的东西,减少坏的东西,获取更多好的东西。
但今年……我并没有什么坏事。也许有一些小麻烦打嗝。
但没有什么是我想放弃的。
Good Software Development Habits
作者的一些认为还不错的开发习惯,Hacker News 上大家比较不同意的是关于复制的建议,也就是 DRY (Don't Repeat Yourself)。
有时复制和重复并不是什么坏事,过早地抽象,使得抽象里需要处理非常多的场景,反而不好维护,例如这篇文章说的的例子: Goodbye, Clean Code。
- 保持少量提交,以至于你会怀疑自己是否把 “保持少量提交” 这件事做得太过火了。 你永远不知道什么时候需要恢复某个特定的改动,知道自己在六天前引入了一个 Bug,并且只恢复了那个提交而没有经历合并冲突的痛苦,你会有一种幸福感。
- 践行肯特-贝克的至理名言:“对于每一个期望的改动,先让改动变得简单(警告:这可能很难),然后再做出简单的改动”。 目标是所有提交中至少有一半是重构。持续重构是指在 10 分钟内想出可以改进的改动。 每当有更大的需求出现时,你就会发现自己只做了很小的改动就能满足它,而这都是因为这些小改动带来的。 大的重构是个坏主意。
- 所有代码都是负债。未部署的代码是责任中的死神。
- 如果某个特定的功能在任何地方都不合适,那就为它创建一个新的模块(或类或组件),然后再为它找一个归宿。 最好是创建一个新的独立结构,而不是把它塞进一个现有的模块中,因为你深知这样做毫无意义。 最坏的情况是,它作为一个独立模块存在,这也不算太坏。
- 如果你不知道应用程序接口应该是什么样的,那就先编写测试,因为这将迫使你为用户着想,在这种情况下,用户就是你。 如果你先编写代码,然后再进行测试,你总会发现一些你想不到的情况。
- 设计会过时。你可以通过重构来延缓设计过时的速度,但最终你还是需要改变设计的工作方式。… 大多数时候,编写软件就是修改软件。接受它,继续前进。没有完美的设计,而改变是软件开发的核心。你有多擅长改变,你就有多擅长软件开发。
- 技术债务可分为三大类:1) 阻碍你现在工作的事情;2) 会阻碍你以后工作的事情;3) 可能会阻碍你以后工作的事情。 其他每种分类都是这三种分类的子集。 尽量减少第 1 项中的大量事情,并将注意力集中在第 2 项上。忽略 #3。
- 可测试性与良好的设计息息相关。有些东西不容易测试,这说明设计需要改变。有时,这种设计就是您的测试设计。… 当测试很困难时,测试就不会被写入,而不是因为你不想测试。
Tutorial
Product Design Process
产品设计流程。
- 研究:调研是产品设计流程的基础。这一阶段包括收集定性和定量数据,以了解目标用户、他们的需求、行为和痛点。
- 合成:这一阶段的重点是对研究过程中收集到的数据进行整理和分析,以发现模式和见解。综合阶段有助于将原始数据转化为下一阶段可操作的见解。
- 构思: 构思是产生想法并将其提炼为潜在解决方案的创意阶段。它包括将研究见解转化为可操作的想法,并筛选出最有前途的概念。
- 原型设计:原型设计包括创建你的想法的表现形式,以便与真实用户进行测试。这一步骤对于在投资全面开发之前验证概念和收集反馈至关重要。
- 共同创造:共同创造是指让用户参与到设计过程中来,帮助建立一个满足他们需求的解决方案。这种合作方式可确保产品与用户的期望紧密结合。
- 迭代规划/设计:这一阶段包括整合反馈意见,为进一步开发或更广泛的测试做好设计准备。迭代可确保不断改进并符合用户需求。
全网最系统 | UI 中的配色逻辑解析
UI 中的配色逻辑解析,如何选择品牌色,中性色,功能色。
如果还仔细研究过成功的独立产品配色,那么就会发现一个规律,主色基本都处于饱和度明度面板的右上方。
这种设置的依据,都是为了让主色能更鲜艳、明亮。
一方面是在屏幕上更能吸引用户注意和灌输品牌认知,另一部分鲜艳的色彩在屏幕中展示起来也更舒适、和谐,客观决定了不应该使用一些 “有气无力” 的颜色作为产品主色。
Cool Bit
pilet
Pilet(c/n:Consolo)是一款开源便携式微型计算机,由 pi5 供电,电池续航时间为 7 小时。
小巧,外观设计也挺好看的微型电脑,但是这么小的键盘,输入应该很费劲,不适合拿来做频繁需要输入的工作吧。
IMG0001
2009 年至 2012 年间,iPhone 的照片应用内置了 “发送到 YouTube” 按钮。许多上传的照片都保留了默认的 IMGXXXX 文件名,从而为随机生活中未经编辑的原始瞬间创造了一个时间胶囊。
受 Ben Wallace 的启发,我制作了一个机器人,在 YouTube 上抓取并找到了 500 万个这样的视频!请在下面观看,顺序随机。
Tool | Library
Linkify
在纯文本中查找可能的链接,然后转换成 <a>
标签包裹的链接。
Space Time
一个轻量级的处理时区的库。
the world is pretty big.
but this library is vevy small.
Todoctor
扫描 repo,查找里面的 TODO 关键字,形成一个可视化的报告。
uifonts
一个辅助选择字体的网站。
可以查看不同字体在不同的页面内容中的表现,从而选择合适的字体。
kinesis
Kinesis.js is a set of components that helps you easily create dynamic interactive animations.
做出来的交互动效挺好的。
Tailwind Colors
一个颜色面板,方便查看 Tailwind CSS 中的颜色是什么。
All the Tailwind CSS colors in a handy cheatsheet with hex, hsl and rgb values.
You can bookmark this page so you'll never forget any Tailwind color again!
手绘箭头
一些手绘箭头的图片,不过在什么地方能用上呢?
一些话
The 70% problem: Hard truths about AI-assisted coding
这是我发现的最反直觉的事情:人工智能工具对经验丰富的开发人员的帮助比对初学者的帮助更大。
…
现实情况是,人工智能就像你的团队里有一个非常热心的初级开发人员。
他们可以快速编写代码,但需要不断监督和纠正。你了解得越多,就越能更好地指导他们。
人工智能并没有让我们的软件变得更好,因为软件质量(或许)从来都不是主要受限于编码速度。
软件开发的难点–理解需求、设计可维护的系统、处理边缘情况、确保安全和性能–仍然需要人类的判断。
人工智能能让我们更快地进行迭代和实验,通过更快速的探索,有可能找到更好的解决方案。
但前提是我们必须保持工程纪律,并将人工智能作为一种工具,而不是良好软件实践的替代品。
请记住我们的目标不是更快地编写更多代码。而是要构建更好的软件。
Engineering Sleep
睡眠占人类生命的三分之一。就像水一样,睡眠不是欲望,而是必需品。
睡眠几乎主宰着每一个重要系统:大脑、心脏、情绪和免疫力。大自然的条件很苛刻。
睡眠八小时,否则将面临精神和身体的衰退。
Blogging through the decades
…写博客的好处在于你不需要有规律,也不需要有主题:你只有在有话要说的时候才可以写–你想说什么就说什么。
我写过一些技术性很强的文章,也讨论过一些炙手可热的话题;我走过历史的坟场,思考过软件的质量,也反思过软件的经济性。
二十年的写作经历,尤其是那些能引起持久共鸣的文章,其贯穿的主题是:它们反映了我们工作中的人性。
有句老话说 “说心里话,而不是书本上的东西” ;回首往事,我对自己的写作在多大程度上做到了这一点感到有些惊讶。
虽然我对辛西娅的问题没有简洁的答案,但这确实给我留下了对未来博客作者的简单建议:
发自内心地写作,即使你认为没有人会读它;如果不出意外,你未来的自己会因此感谢你!
Emacs
EmacsConf 2024
EmacsConf 2024 在 12 月 6 日开始,举行了两天。
翻了翻以前的 talks,也能翻到一些干货,扩展自己的视野。
Music
完美的日子 Perfect Days by Wim Wenders
上周看了《完美的日子》,主角平山的生活感觉也挺好的,认真地工作,拥有不少的个人时间,认真地生活。
每天看起来都差不多,早上一杯咖啡,选一盒磁带,开车上班,到公园吃午饭,给公园的树拍一张照片,去常光临的店里吃晚饭,看书,浇花,偶尔去常去的小酒馆待一待。
但每天也都有点不一样,看到的人,听的歌,遇到的事。
偶尔还能在打扫的时候发现一张井字棋游戏,每天抱着一点点小的期待。
平山的生活不一定是世俗意义的 “成功”,但至少过得挺快乐自在的。