Weekly#19

这周把留了 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)。

The “simple” 38 step journey to getting an RFC

作者描述了向 Internet Engineering Task Force (IETF) 发起 Request For Comments (RFC) 的流程。

流程大概是先提出一个草案,然后在邮件列表中进行广泛的讨论,如果同意的人比较多,草案就会成为工作组的关注对象,继续在工作组中进行讨论,如果再次通过,RFC 就会被发布出来。

但是过程一般很漫长,像文章中作者的 RFC,经历了 3.5 年才发布。

在这个过程中没有 “拒绝” 选项,取而代之的是 “讨论”,通常与真正有用的反馈捆绑在一起。

Internet Engineering Steering Group(IESG) 成员的其他选项是 “是”(表示支持,我认为这是竖起两个大拇指的文字版)、“不反对”(仍然是积极的)和 “收回”(由于某种原因不适合参与时)。

虽然 IETF 并非完美无瑕,但它实际上是一个相当令人印象深刻的有效系统,只是需要每个参与其中的人投入更多的时间。

人们愿意投入时间这一事实证明了互联网是多么迷人,以及在不同系统之间保持标准是多么重要。

CSS Wrapped 2024

2024 年的 Chrome 和 CSS 之旅,穿越森林,翻山越岭,漂洋过海……

挺多细节的网站。

可以通读一遍了解一些 2024 年的 CSS 特性。

例如 Cross-Document View Transitions,我也加到了博客中,现在切换页面会有一个过渡的效果。

Development Advent Calendars for 2024

每到 12 月,就会出现 Advent calendar,一种 25 个格子的倒数日历,每天开一个,里面会有一些小物件,开完 25 个就到圣诞节了。

编程方面也有,最有名的是 Advent Of Code,今年看到还有关于 CSS, HTML, TS 的。

NETSCAPE AND SUN ANNOUNCE JAVASCRIPT, THE OPEN, CROSS-PLATFORM OBJECT SCRIPTING LANGUAGE FOR ENTERPRISE NETWORKS AND THE INTERNET

1995 年 12 月 4 日,JavaScript 这门语言诞生了,至今已过去 29 年啦,奔三的语言了。

JavaScript 的商标目前是 Oracle 公司拥有,但 Oracle 一直以来没有以 "JavaScript" 这一名称提供重要的产品或服务,最近社区在要求 Oracle 放弃 JavaScript 的商标

A complex bug with a ⸢simple⸣ fix

bug 修起来也许很简单,但是定位 bug 的产生原因,复现 bug,可能需要花费大量时间。

6 lessons I learned working at an art gallery

  • 把平庸的工作变成伟大的工作是可能的

    也就是说,你不会说:“这是我的工作,而那件事不在我的职责范围之内” – 不,如果你想要推广的价值要求你超越自己的角色,学习新的技能,并通过政治手段获得授权:那么这就是你的工作。

  • 如果你关心美,你也应该关心经济增长

    如果我们想让世界变得更美好,就不能只考虑那些高大上的东西:我们必须亲自动手,确保经济引擎正常运转。

  • 在激励机制中,有些地方的激励措施与你的价值观是一致的,你的任务就是找到它们

    如果你肯花时间与现实对撞,想一想如何为某件事情提供资金,你就会发现,在激励机制(实际上是其他人的欲望和需求)中,有一些地方与你不可言喻的价值观是一致的。

    如果你想把你所拥有的一切尽可能多地奉献给这个世界,那么我们的工作就是找出激励机制中的最佳位置。

You Have One Voice

我们只有一个声音,你可以选择攻击,贬低他人,也可以选择鼓励,提升他人,如果周围的人都是相互鼓励的,我想心情肯定会好得多,合作也会更积极。

技术不是真空,也不是非政治化的;无论我们想如何客观地分析技术,制造技术、使用技术和思考技术的人依然存在。

这些人将在他们使用的技术中找到他们身份的一部分,这是人类的特征,而不是缺陷。

但这也意味着,当我们贬低和攻击技术时,我们不可避免地会攻击那些选择与技术相关联的身份群体。

Source

作为一个社会,当我们宣布某种事物的合法性时,我们往往是以牺牲另一种事物为代价的。

同样,当我们作为一个社会宣布某种事物的非法性时,我们这样做往往是为了贬低、排斥或以其他方式伤害与之相关的特定群体。

无论有意还是无意,这都是一个深刻而不可避免的结果。

不一定 “非得” 这样;肯定有办法在不批评另一种技术选择的情况下说 “这种技术是合法的”,但实事求是地说,你见过几次这样的情况?

所以,作为一个受人尊敬的科技工作者,我有一个选择:我可以用我的精力去贬低别人,也可以用我的精力去提升别人。

Source

很久以前我就决定,我将永远选择用我的精力去提升别人,而不是拆毁他们。

时至今日,这仍然是我最核心的观点之一,我一直在努力坚持。

即使我想发泄,或想咆哮,或对某项技术产品、语言或社区感到非常沮丧,以至于想谈论它,我也会竭尽全力以建设性的方式谈论事情,而不是以固有的消极和无益的方式。

Source

说到底,你只有一个声音。

人类是单线程的;无论我们有多少盘子在空中旋转,你的声音一次只能发出一个词。

你每次只能打一件事,你生命中的每一刻也只能做一件事。

每当你把时间花在一件事情上时,你也不会把时间花在其他事情上。

我们现在已经认识到,消极情绪比积极情绪更能影响人的记忆,这就使消极情绪变得更加严重。

因此,你有一个选择:你将因你所产生的影响和你为产生这种影响所花费的时间而被人们记住。

你是想让别人记住你是一个打倒别人的人呢?还是提升他人的形象?你想成为对世界产生负面影响的人吗?还是积极的影响?

你们只有一个声音。一个生命。一瞬间的时间。你打算如何利用它?

至于我,我早就做出了选择:在我说的每一句话、拥有的每一刻,我都将尽最大努力提升我的社区。

因为我们同舟共济,我们可以共同创造的世界是如此美丽,令人叹为观止,你为什么不想参与建设呢?

Source

亚马逊居然也悄悄改 logo 了!

amazon logo 的变化,新的 logo 虽然看起来改变不大,但相比之下确实好看一些。

登顶 AppStore 付费排行榜 Top1 的「小猫补光灯」:一边被程序员质疑,一边遭「百亿市值」的公司致敬抄袭!

作者通过 AI 完成了一款补光灯应用,并且在小红书推广,成为了爆款。

作者分享 cursor 使用的时候,女朋友告诉他可以做一个补光的色卡产品,他搜索了小红书,发现确实存在大量需求,就实现了这样的一个应用。

产品完成后依然在小红书运营,获得反馈进行迭代。

能发现需求,然后快速完成原型(AI 的力量!),完成了运营推广,真是一个成功的产品开发案例。

代码多不多,难不难真的一点都不重要,没有任何一个用户关心你这点。

她唯一想知道的就是你的产品能帮她做什么,能解决她的哪些需求!这是唯一重要的事。

Source

其实我当时在做包含自拍的「小猫补光灯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

作者辞职了两年,这是对第二年的一个回顾, 感觉作者过得很开心的。

…和别人一起住也省不了多少钱。但合作是创新的种子,所以我决定试一试。

这些天,我们一起做了很多事情,这对我的心理健康产生了积极的影响。

每周一次,我们一起玩棋盘游戏、做饭,或者一起工作。

与他人一起生活并不总是那么容易,但却很有趣。

Source

起初,我以为我只会写我的项目,这是任何一个奋斗中的创业者都应该做的。

但这一年,我写的远不止项目。如果没有音乐、体育和朋友,我就无法坚持工作,尤其是没有报酬的工作。

无论从哪个角度看,这都是美好的一年–充实,充满爱与关怀。

展望未来,令人兴奋。我总是对接下来会发生什么感到好奇。

过去几年,我的原则一直很简单:保留好的东西,减少坏的东西,获取更多好的东西。

但今年……我并没有什么坏事。也许有一些小麻烦打嗝。

但没有什么是我想放弃的。

Source

Architecture Modernization Execution: When did estimates turn into deadlines?

工时不能完全当作 deadline,因为工时评估完之后,实际开发可能会碰到一些不可预见的问题,也可能发现更多的复杂性,原来以为只要改一个地方,实际牵涉得更广。

当出现和预估工时不符的时候,需要及时沟通反馈,进行调整。

如果你处于一个健康的软件开发环境中,当你提出这些问题时,就会问到正确的问题。

这个问题有多复杂?有哪些不同的解决方法?有哪些折衷方案?是否有变通方法或替代解决方案?

假设问题开始指向你如何没有看到这种复杂性,你如何错过了这一点,为什么要花这么长时间,而你却受制于最初的预计日期?

愿上帝与你和你的团队同在,给你力量去完成这项工作。希望您的现代化之旅短暂而成功。

The only computer science book worth reading twice?

文章作者极力推荐了一本书:《Structure and Interpretation of Computer Programs (SICP)》(《计算机程序的结构与解释》),之前在逛一些论坛也有看到这本书的身影,有空花时间看看。

Good Software Development Habits

作者的一些认为还不错的开发习惯,Hacker News 上大家比较不同意的是关于复制的建议,也就是 DRY (Don't Repeat Yourself)。

有时复制和重复并不是什么坏事,过早地抽象,使得抽象里需要处理非常多的场景,反而不好维护,例如这篇文章说的的例子: Goodbye, Clean Code

  • 保持少量提交,以至于你会怀疑自己是否把 “保持少量提交” 这件事做得太过火了。 你永远不知道什么时候需要恢复某个特定的改动,知道自己在六天前引入了一个 Bug,并且只恢复了那个提交而没有经历合并冲突的痛苦,你会有一种幸福感。
  • 践行肯特-贝克的至理名言:“对于每一个期望的改动,先让改动变得简单(警告:这可能很难),然后再做出简单的改动”。 目标是所有提交中至少有一半是重构。持续重构是指在 10 分钟内想出可以改进的改动。 每当有更大的需求出现时,你就会发现自己只做了很小的改动就能满足它,而这都是因为这些小改动带来的。 大的重构是个坏主意。
  • 所有代码都是负债。未部署的代码是责任中的死神。
  • 如果某个特定的功能在任何地方都不合适,那就为它创建一个新的模块(或类或组件),然后再为它找一个归宿。 最好是创建一个新的独立结构,而不是把它塞进一个现有的模块中,因为你深知这样做毫无意义。 最坏的情况是,它作为一个独立模块存在,这也不算太坏。
  • 如果你不知道应用程序接口应该是什么样的,那就先编写测试,因为这将迫使你为用户着想,在这种情况下,用户就是你。 如果你先编写代码,然后再进行测试,你总会发现一些你想不到的情况。
  • 设计会过时。你可以通过重构来延缓设计过时的速度,但最终你还是需要改变设计的工作方式。… 大多数时候,编写软件就是修改软件。接受它,继续前进。没有完美的设计,而改变是软件开发的核心。你有多擅长改变,你就有多擅长软件开发。
  • 技术债务可分为三大类:1) 阻碍你现在工作的事情;2) 会阻碍你以后工作的事情;3) 可能会阻碍你以后工作的事情。 其他每种分类都是这三种分类的子集。 尽量减少第 1 项中的大量事情,并将注意力集中在第 2 项上。忽略 #3。
  • 可测试性与良好的设计息息相关。有些东西不容易测试,这说明设计需要改变。有时,这种设计就是您的测试设计。… 当测试很困难时,测试就不会被写入,而不是因为你不想测试。

No.14 10月 || 从遗愿清单到断舍离,我们拥有「重启生活」的能力

文章整理了很多人的投稿,能看到不同人的生活。

年轻的时候会有诸多困扰,但长大后愈发理解 人生除了生老病死,其它都是小事。

年纪渐长,最近一年身体状况也不是很好,对这句话深有同感。

Tutorial

Starting off right: Where autofocus shines

在单一目的,单一表格等页面,autofocus 可以自动聚焦到用户的常用的输入框,而不用用户先点击一次输入框,有时能提供更好的用户体验。

例如我博客中的搜索页,页面只有一个搜索框,用户就是想输入内容搜索,为什么我不直接 focus 在输入框上呢?所以我加上了∩ __∩ y

Existential React questions and a perfect Modal Dialog

作者以实现一个 Modal Dialog 为例子,介绍他关于实现一个功能的具体步骤。

简单来说是:

  1. 收集需求: 从最简单实现开始,先实现出来,有助于探索潜在的解决方案和收集进一步的需求。
  2. 使其正常运行:了解到底要解决什么问题以及为谁解决。从技术上讲,我们应该在编码之前就明白这一点,所以通常这一步应该是第一步。进一步完善功能。
  3. 使其性能良好
  4. 使其完整:处理边缘情况和无障碍
  5. 使其完美:动画,交互等细节

Typst as a Language

Typst 的语法介绍。

王慧文清华产品课笔记

了解产品设计的资料。

Product Design Process

产品设计流程。

  1. 研究:调研是产品设计流程的基础。这一阶段包括收集定性和定量数据,以了解目标用户、他们的需求、行为和痛点。
  2. 合成:这一阶段的重点是对研究过程中收集到的数据进行整理和分析,以发现模式和见解。综合阶段有助于将原始数据转化为下一阶段可操作的见解。
  3. 构思: 构思是产生想法并将其提炼为潜在解决方案的创意阶段。它包括将研究见解转化为可操作的想法,并筛选出最有前途的概念。
  4. 原型设计:原型设计包括创建你的想法的表现形式,以便与真实用户进行测试。这一步骤对于在投资全面开发之前验证概念和收集反馈至关重要。
  5. 共同创造:共同创造是指让用户参与到设计过程中来,帮助建立一个满足他们需求的解决方案。这种合作方式可确保产品与用户的期望紧密结合。
  6. 迭代规划/设计:这一阶段包括整合反馈意见,为进一步开发或更广泛的测试做好设计准备。迭代可确保不断改进并符合用户需求。

The Data Engineering Handbook

This is a repo with links to everything you'd ever want to learn about data engineering

全网最系统 | UI 中的配色逻辑解析

UI 中的配色逻辑解析,如何选择品牌色,中性色,功能色。

如果还仔细研究过成功的独立产品配色,那么就会发现一个规律,主色基本都处于饱和度明度面板的右上方。

这种设置的依据,都是为了让主色能更鲜艳、明亮。

一方面是在屏幕上更能吸引用户注意和灌输品牌认知,另一部分鲜艳的色彩在屏幕中展示起来也更舒适、和谐,客观决定了不应该使用一些 “有气无力” 的颜色作为产品主色。

Code

Native dual-range input

作者通过两个 <input type="range"> 实现一个双范围选择组件。

原理就是将两个 <input type="range"> 相邻放在一起,交界的值,对应左侧 input 的 max 值,以及右侧 input 的 min 值。

当 input 变化的时候,更新 2 个 input 的宽度,调整交界出的位置。

min                  max,min                 max
|-------input----------||---------input--------|

Working with JavaScript's Scheduler API

Scheduler 的使用介绍,比 setTimeout 更精细地控制定时任务,但是目前浏览器的适配一般。

Cool Bit

Species In Pieces

用 CSS 绘制的 30 种物种的图案,还有动画,看起来像是七巧板一样。

pilet

Pilet(c/n:Consolo)是一款开源便携式微型计算机,由 pi5 供电,电池续航时间为 7 小时。

小巧,外观设计也挺好看的微型电脑,但是这么小的键盘,输入应该很费劲,不适合拿来做频繁需要输入的工作吧。

IMG_0001

2009 年至 2012 年间,iPhone 的照片应用内置了 “发送到 YouTube” 按钮。许多上传的照片都保留了默认的 IMG_XXXX 文件名,从而为随机生活中未经编辑的原始瞬间创造了一个时间胶囊。

Ben Wallace 的启发,我制作了一个机器人,在 YouTube 上抓取并找到了 500 万个这样的视频!请在下面观看,顺序随机。

Scribblers

一个你画我猜游戏。

HIROSHI NAGAI: Japan’s Sun-drenched Americana

永井广创作了一系列美式波普风格的画作,为 70 年代末和 80 年代的日本城市波普运动提供了背景。

一些还挺好看的图片。

Tool | Library

HiSpeaking

英语口音练习,可以自动跟读,在你读完一句后,自动读下一句的示例。

Linkify

在纯文本中查找可能的链接,然后转换成 <a> 标签包裹的链接。

Space Time

一个轻量级的处理时区的库。

the world is pretty big.

but this library is vevy small.

Todoctor

扫描 repo,查找里面的 TODO 关键字,形成一个可视化的报告。

fav.farm

I bet you need a quick favicon!!

喂,别上来就竖中指啊!!(╯°□°)╯︵ ┻━┻

one more ~: Favicon.im/{domain}

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!

Praise to scdoc to generate man pages

作者需要写 man page,推荐了一个工具 scdoc,写起来相对轻松一些。

和风天气图标

天气 icon。

CSS Loader

CSS loader 合集。

手绘箭头

一些手绘箭头的图片,不过在什么地方能用上呢?

Nyxt: the hacker's browser.

对键盘友好的一个浏览器。

一些话

The 70% problem: Hard truths about AI-assisted coding

这是我发现的最反直觉的事情:人工智能工具对经验丰富的开发人员的帮助比对初学者的帮助更大。

现实情况是,人工智能就像你的团队里有一个非常热心的初级开发人员。

他们可以快速编写代码,但需要不断监督和纠正。你了解得越多,就越能更好地指导他们。

Source

人工智能并没有让我们的软件变得更好,因为软件质量(或许)从来都不是主要受限于编码速度。

软件开发的难点–理解需求、设计可维护的系统、处理边缘情况、确保安全和性能–仍然需要人类的判断。

人工智能能让我们更快地进行迭代和实验,通过更快速的探索,有可能找到更好的解决方案。

但前提是我们必须保持工程纪律,并将人工智能作为一种工具,而不是良好软件实践的替代品。

请记住我们的目标不是更快地编写更多代码。而是要构建更好的软件。

Source

求婚誓言 | 爱的本质是被看见

(从今以后),我所问出的问题都关于你,我所踏出的每步都指向你,处处皆是你,声音所至,目光所及。

Engineering Sleep

睡眠占人类生命的三分之一。就像水一样,睡眠不是欲望,而是必需品。

睡眠几乎主宰着每一个重要系统:大脑、心脏、情绪和免疫力。大自然的条件很苛刻。

睡眠八小时,否则将面临精神和身体的衰退。

Toots 2024 Dec.1 - Dec.7

大舅生病住院,才想起来家人群里确实有几天没有看到他分享的视频和文章了,他每天发,却反而更是在报平安。

The correct amount of ads is zero

对于直接支持的出版物来说,正确的广告量应该是零。

这是我们应该得到的数量。我不在乎背后的理由。

我给你钱,你决定我应该给你多少钱来购买你的产品,你不应该双管齐下,把我的数据卖给你的广告商,赚取更多的利润。

我再说一遍:在这种情况下,正确的广告量是零。

Source

Blogging through the decades

…写博客的好处在于你不需要有规律,也不需要有主题:你只有在有话要说的时候才可以写–你想说什么就说什么。

Source

我写过一些技术性很强的文章,也讨论过一些炙手可热的话题;我走过历史的坟场,思考过软件的质量,也反思过软件的经济性。

二十年的写作经历,尤其是那些能引起持久共鸣的文章,其贯穿的主题是:它们反映了我们工作中的人性。

有句老话说 “说心里话,而不是书本上的东西” ;回首往事,我对自己的写作在多大程度上做到了这一点感到有些惊讶。

虽然我对辛西娅的问题没有简洁的答案,但这确实给我留下了对未来博客作者的简单建议:

发自内心地写作,即使你认为没有人会读它;如果不出意外,你未来的自己会因此感谢你!

No.15 11月 || 能让你开心的,就是「好东西」,我也替你开心!

也许我们偶然失落于不被「看见」,但每个人存在,为自己闪耀就好。

Source

Emacs

EmacsConf 2024

EmacsConf 2024 在 12 月 6 日开始,举行了两天。

翻了翻以前的 talks,也能翻到一些干货,扩展自己的视野。

Getting started with Emacs

Simon Fraser University(SFU) 的 Emacs 入门教程。

网站上还有 Python,Git,Julia 等相关教程。

It is not hard to read Lisp code

Lisp 里好多括号,刚开始阅读可能会迷失在括号里,不知道哪里是开始,哪里是结束。

文章介绍了阅读 Lisp 的一些方法,其实 Lisp 不难阅读。

Music

Public Domain Radio

一个在线的音乐播放网站,主要是古典,爵士,和瑞士民谣。

爵士乐听起来都比较有年代感,还不错的网站,如果有类似的欢迎推荐。

kid feat. 優河

上周听得比较多的歌。

完美的日子 Perfect Days by Wim Wenders

上周看了《完美的日子》,主角平山的生活感觉也挺好的,认真地工作,拥有不少的个人时间,认真地生活。

每天看起来都差不多,早上一杯咖啡,选一盒磁带,开车上班,到公园吃午饭,给公园的树拍一张照片,去常光临的店里吃晚饭,看书,浇花,偶尔去常去的小酒馆待一待。

但每天也都有点不一样,遇见不同的人,听不同的磁带,遇到一些小事。

偶尔还能在打扫的时候发现一张井字棋游戏,每天抱着一点点小的期待。

平山的生活不一定是世俗意义的 “成功”,但至少过得挺快乐自在的。

Author: Spike Leung

Date: 2024-12-10 Tue 00:00

Last Modified: 2024-12-14 Sat 15:10

License: CC BY-NC 4.0