MoreRSS

site iconWuKaiPeng | 吴楷鹏修改

关注程序员生活、健康和成长;热衷探索各种工具,提高效能;兴趣是英语、篮球和读书。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

WuKaiPeng | 吴楷鹏的 RSS 预览

我的 2024 年终总结:龙场悟道

2024-12-24 08:00:00

2024 年,我离开了待了两年的互联网公司,来到了一家聚焦教育机器人和激光切割机的公司,没错,是一家硬件公司,从未接触过的领域,但这还不是我今年最重要的里程碑事件

5 月份的时候,正式提出了离职,没有骑驴找马,完全裸辞。对于 gap 的这段时间,做了简单的规划,先去旅游一趟,然后用一个半个月时间备考雅思,九月、十月重新找工作

随后的两个月,公司找到接替我的新同学,站好最好一班岗,跟同事做了告别。7 月 5 号,拿着离职证明,收拾好东西,离开了西丽。隔天就参加 VueConf 大会,见到了尤雨溪和 Anthony Fu

做了这么多年精神股东,终于来支持一回,希望 React 越办越好 👏

VueConf 结束之后,就去流放岭南,在广西桂林,体会到了什么叫做“江作青罗带,山如碧玉簪”

这里的山水真的很美,养得蚊子珠圆玉润,也感受到喀斯特地貌对于经济发展的阻碍,拔地而起的峭壁山峰,割裂了交通,住房和经济

在去到九马画山的偏方小路上,看到一路上种植着柚子,玉米等等,这是属于亚热带季风气候的回馈,光照充足,雨水充沛,水果种植,也成了当地人除旅游业之外的另一条生计

这一次是 p 人之旅,没有特种兵定点打卡,而是更多感受地理,人文。嗦了三天的桂林米粉之后,又回到了深圳,开启了雅思备考

关于考雅思,一个是本身对英语感兴趣,另一个是看过许多老前辈的经验之谈,学好英语对于程序员职业发展来说,是长期利好的事情

在这段时间,还学会做饭,个人以为,做饭和编程一样,都是属于创造的艺术

心血来潮还买了一个小米空气炸锅,第一次用觉得超级神奇的,仅仅依靠空气就能够把鸡米花烤得 tree tree 的

接下来的一个半月的时间,把自己当成高考生,按部就班地学习

8 月 30 号早上踏入考场,上午听力阅读写作,下午口语。成绩出得很快,三天后如期而至,得到了一个非常低的分数,这给了我当头一棒

付出了大量的时间精力,并不意味着有美好的收获,我花了三天时间做了痛苦而又深刻的复盘,是能力基础问题?是自律问题?是备考策略问题?是心态问题?最后结论是出来的是备考策略出现重大失误,罔顾实际情况,按照自己天真烂漫的想法去复习

复盘这几天我似乎有点“龙场悟道”,这个“道”后来我把它总结了「成长型思维」,关于成长型思维具象表现是,对于雅思考试的折戟失败,我没有消沉,在这段经历中,让我学会了第一件事情是——做人、做事需要符合物理、客观的规律,也就是雷军所说的「顺势而为

无业 gap 的时期,并不美好,每天处于没有收入、消耗积蓄的焦虑,所以到了 9 月份,我需要重新开始找工作,自媒体和独立开发被我 pass 掉了,这两者现下并不能带来稳定的收入

又回到了起点,这一次我反而更加自信,充分吸取教训,我需要做好正确的求职策略,搜集各路面试资料,结合自身的实际情况,并且在 AI 的辅助下,写了一份《前端求职大攻略》

把自己求职涉及到的方方面都罗列出来,同时使用 PDCJ 模型,P = Plan(计划),D = Do (执行),C = Check(检查),J = Just(调整),也就是阶段性地计划、施行,再不断地检查、调整,确保自己的面试正确而又高效地进行

就业环境并不会因为你认真做好求职攻略、努力复习就给到丰厚机会,相反,每天投递的数十份简历都石沉大海,一个星期可能都约不到面试机会,这大概就是铜九铁十了吧

求职遇冷,那就好好抓住每一个来之不易面试机会,比如大学舍友的朋友内推了的转转前端岗位,面试前两天,刷完了转转的前端面经,一遍一遍地背前端面试题宝典的八股文,甚至于上厕所,也会拿着小程序刷题

但是,转转还是把我挂了,二面都没进

沮丧是没有用的,迅速复盘转转的整场面试,重听了当时的录音,把自己回答不上的问题找补,犯错的点做具体的纠正,为下一次面试做好准备

不久,意外接到了童心制物 HR 的简历邀请,是一个 Nodejs 的岗位,我拒绝了,如实说目前仅接受前端岗位,HR 却跟我要了简历转发给他们前端部门,没想到还通过了简历筛选,得到了一面的机会

一面发挥的很好,其中问到了一个难题,“如果不用 eval,还有其他方式去执行 js 函数吗”,刚好之前研究过 laf 的源码,知道可以用 vm 模块可以实现。之后又是二面和 HR 面,都顺利通过了,拿到了最终的 offer

童心制物涉及教育方向,这也是我很看重的一个点,大学的时候参加过支教,一直对教育这一块感兴趣,另外,这家公司给的薪资和福利都比较合理,所以……我入职啦

求职告一段落,顺便写了一篇博客作为输出,感兴趣可以查看——《前端开发实用的面试备考分享(内含资料 + 内推)》

这一段求职经历,总体上算是成功的,找到了理想的公司,理想的职位,但人不可能躺在功劳簿上过一辈子,新阶段会有新挑战,需要重新改变,重新努力

入职之后,体验了公司的激光设备,感受到了巨大的创造力:

用 F1 Ultra 雕刻的金属卡片,用 P2S 切割+雕刻的木板:

用 M1 Ultra 和热压机做的工服:

加入了心心念念的篮球社,开启了每周打篮球的固定活动,没想到老板也是篮球迷,现在每周都会一起打,看着他能明显感受身上的年轻、务实,身边的同事也是对他好评,我相信这些称赞不是人情世故

公司没有设立职称体系,转而实行扁平化管理,此举弱化了上下级概念。此外,公司还推行 AMA(Ask Me Anything,即问我任何事)活动,所有员工均可匿名提出任意问题,老板会逐一进行解答。可以看到,公司正在着力打造更为平等、透明、高效的职场环境,这也促使我对自身与企业之间的关系展开深入思考。

思考的结果为:作为员工,其行为与目标应当与公司的发展相契合。基于这一思考,我察觉到自己过往存在一些不良习惯,有时为了维护同事关系,或是顾及上下级的地位差异,对问题视而不见,对待工作打折妥协。

知行合一,慢慢将思考转化为行动,比如与同事协作后,即时给予反馈,对于公司内部平台出现的 bug,立即同步给相应负责人,尽量做到事事有反馈、发挥 owner 精神等等

童心制物很开放,有很多的活动可以参加,比如 Factory Day 工厂日,在周四那天乘着大巴,去到惠州工厂,参观了整条产线,看到了机器从零到一的生产过程

还有 MakeX 机器人挑战赛,这是一个具有重要影响力的国际化机器人赛事和教育平台,今年是第七年了,MakeX 总决赛又回到了深圳举办,立即报名了技术支持,参与了一天的活动现场

场馆设有各个国家的文化摊位,期间还被俄罗斯的大朋友投喂了巧克力零食

看大朋友、小朋友们激烈比赛:

以及让我难过了一天的创客马拉松,这是公司的特色活动,参与的最新的一期比赛,在决赛路演输了,作为队长很自责,忙碌了一周并没有好的结果,促使我进行反思,是带队伍问题?是项目推进问题?是质量问题?还是路演问题?

失败或许不是一件坏事,让我刻骨铭心,反而推着我进步

回头来看,今年最大的里程碑节点是备考雅思失败后的悟“道”,也就是成长性思维,这种认知层面的巨大改变,进而影响了我的工作、生活

我似乎不再害怕去面对我从未遇到的难题,我知道肯定方法、有途径能够去解决它,即使事与愿违,这过程中我也能收获到经验、智慧和勇气

我不再陷入完美主义,先做一个垃圾出来,再慢慢去迭代、优化,不要幻想一下子就能得到 100 分,但先拿到 60 分,再一点点进步,日拱一卒,等待那个增长拐点

我也变得更加正向,“世上只有一种英雄主义,就是在认清生活真相之后依然热爱生活”,坚持开放、乐观的心态,拒绝被悲观、消极所同化

或许我的所谓悟“道”、成长型思维,这些认知只是浅薄的,缺乏更多实践和经历,但是没有关系,做时间的朋友,随着年岁和阅历的增长,这套成长型思维也会随之”成长“

碎碎念的年终总结到此为止,写完之后还是很感慨,今年发生了很多事情,但在当时,只觉得是一个风平浪静的日子,或许此时此刻,也觉得是风平浪静的深夜。弱智吧有一句话,“有人看不到未来,其实是看到了未来”,初看的时候不理解,后来明白了,未来是动态的、不确定的,这就是未来的真面目,以为的看不到,其实恰恰是看到了,所以 2025,未来见

都快 2025 年了,我不允许你不知道这款 AI 阅读神器

2024-10-23 08:00:00

最近有朋友问我,有什么软件工具可以把 PDF 文档翻译成中文? 一下子把我问住了,平时只会用 ChatGPT、Kimi、豆包这些简单的问答 AI,要实打实的翻译 PDF 文档场景,还没遇到过

最后,朋友只好去小某书上花钱搞定,花了 50 大洋 💰

因为不会用 AI,我居然错过了一次赚钱的机会!

好在,最近发现了一款叫做「包阅 AI」 的智能 AI 阅读助手

用一份 PDF 文档小试,这翻译结果有点哇塞:

不仅如此,点击生成思维导图,一份层次分明的思维导图就水灵灵地出现了

并且,包阅 AI 还自动生成了摘要

除了 PDF 文档,还支持 word、ppt、epub、mobi、txt、markdown、jpg/png、webp、wps、caj,甚至还有视频、音频。

为了让我轻松阅读文档,包阅 AI 还真是用心良苦

包阅对目前的 AI 大语言模型能力是有着有深刻的认知

现在的大模型其实不擅长生成信息,让它写文章无非是车轱辘话来回

但是在解构、理解信息这方面,却是独树一帜的

包阅利用好 AI 的长板优势,将解构、理解信息优势发挥到极致

在具体的产品表现层面,包阅做了这几件事情

首先是通过简单易懂的「阅读场景」划分,让用户快速匹配到自己的需求场景

目前场景有论文/学术、合同、办公、自媒体、教学助手、图书、公文、技术研发等,满足绝大部分要求

比如最近在学习 Coco 的《CSS 技术解密与实战通关》我会用到「技术研发 > 代码逐行解读」

逐行解读所有 CSS 代码属性,学习效率 Max 💪

二是丰富的信息处理手段,不仅仅是一个聊天机器人

比如用「自媒体 > 科技新闻精读」场景中,让包阅解读这篇 《Zed,有望打败 VS Code 吗?》

它不仅有刚才提到的思维导图,还有导读,让用户快速了解文章核心要点,以及改写功能,可以对文章进行二次创作等等

三是增加「AI 搜索」,让用户去链接到更多相关的信息,也就是外部性增强

四是拥有「笔记能力」,允许用户记录自己的发散的想法,即内部性增强

通过四位一体的打法,把用户从需求定位、信息处理、信息扩展、信息消化整条链路闭环,完美解决阅读场景

真心希望国内正在做 AI 应用的企业们,也能像包阅 AI 一样,把一个垂直场景认认真真做精做透,为用户提高效率、节省时间,产生有用的价值

👉 包阅 AI 官方地址:baoyueai.com

One More Thing

Mac 备忘录妙用

2024-10-13 08:00:00

之前使用 Windows 的过程中,最痛苦的事是没有一款可以满足我快速进行记录的应用

基本都得先打开该笔记软件,然后创建新笔记,最后才能输入,这么多步骤太麻烦了

在切换到 MacOS 之后,让我惊喜的就是自带的备忘录,只需要简单地把鼠标移动到屏幕右下角,就可以创建一篇快速备忘录

Amazing!

这种方式叫做触发角,触发角可以在「系统设置 » 桌面与程序坞 » 触发角」设置: 四个触发角分别可以自由设置:

除了触发角,快捷键【 fn(🌐) + Q】同样能创建一篇快速备忘录

还有一个问题是,触发角 or 快捷键默认会打开上一次编辑的备忘录,如果想要每次都创建一篇新的快速备忘录的话,可以在设置这里:

把「始终回到上个快速备忘录」取消勾选

备忘录支持大部分高频的文本样式,选取文本后,在头部导航栏 Aa 这里做修改样式:

也能支持 check 清单:

表格功能比较弱鸡,就一个简单的表格,什么合并、冻结等高级功能都没有

另外还有图片、链接,这里就不再赘述。

备忘录默认支持文件夹分类,另外还支持标签分类,只需要在备忘录中使用井号(#)加上对应文字,Mac 即会生成对应的标签清单:

之前在浏览网页的时候,特别想高亮某些内容,同时做一些拓展记录,安装过插件 Weava Highlighter,但是不好用,每次只要选中文字就 Weava 就会弹出,特别烦人。

没想到 Mac 备忘录居然原生支持这个功能

在 Safari 中,可以选择想要收藏的内容,右键「添加到快速备忘录」

创建快速备忘录之后,选中的这句话在 Safari 中会被高亮:

在最新的 MacOS 15 中更新中,备忘录新支持了录音功能

并且还支持实时的语言转文本,但目前又又又又仅支持英语

库克的母语是英语,我的母语是无语 😅

另外,还新增了高亮颜色,分别有紫色、粉色、橙色、薄荷色和蓝色,不得不说,这几种颜色确实还挺好看的

最有用的功能当属于这个数学功能

直接输入像是 (27/3)^2= 或者 47*96= 算式,备忘录会自动计算结果:

还支持自定义变量:

总体来说,Mac 的备忘录还算是一个不错的笔记软件,虽然缺乏像 Notion 的文档目录结构和块编辑的一些先进笔记能力,但它有着原生的支持,能够满足快速记录和基础编辑的需求

One more thing 👇

摆脱焦虑 💚 前端开发超实用的面试备考分享

2024-09-21 08:00:00

你好 👋 我是楷鹏

最近一句话很火「好的工作就像 HIV,只通过母婴,血液和性传播

排除 HIV 患者,对于普通家庭的程序员朋友来说,面试是必经之路

一般来说,面试会有这么四个困难:

  1. 技术太菜:基础不牢固?算法不熟练?
  2. 项目不足:没有亮眼的项目?都是失败项目?
  3. 话少嘴笨:不会表达?说话没有逻辑?
  4. 心态问题:简历石投大海着急?一面挂了自闭?裸辞焦虑?

这些其实都是表症,真正的病根是:

对面试没有系统性的认知和准备

接下来我将从几方面给大家分享一下个人的面试备考思路

一、对自己要有清晰的认知

很多人心比天高,但往往命比纸薄

对自己没有清晰的认知和规划,进入就业市场一开始野心勃勃,但很快就被现实来几个大逼兜

面试一开始,要厘清自己的现有资源,比如对于我:

  • 学历方面,双非二本
  • 技术方面,基础一般,算法不会
  • 工作方面,没有入职过大厂
  • 项目方面,没有中大型的项目经验

这些都是我在面试中的劣势,那我的优势是什么:

  • 年轻便宜,三年工作经验,有一定的项目经验,对企业来说性价比高 🥬
  • 有些许写作成就,同时维护一个个人的技术博客网站
  • 心态 open,愿意学习,愿意尝试

综合分析自己的现有资源,我得出的结论:

  • 有一定市场竞争力,但还达不到大厂的门槛,可以冲一冲中厂
  • 次一点的结果是小厂或者创业公司
  • 最差的就是大厂的子公司、外包公司或者华为 OD

二、做好准备,打一个持久战

面试就是打仗,而且是一个持久战

钱 💰

首先就是「钱」这方面,尤其裸辞,是否有足够的储蓄支撑自己的生活

不要想着一两个月就能找到满意的工作,这是不现实的

尤其是现有大环境的情况下,至少要规划半年以上的时间的储蓄

该消费降级的还是要降级,该省的还是要省

心态

其次是「心态」,大部分人刚开始找工作自信满满

但随着时间推移,投简历没有回复,面试没有通过,家人朋友的关心和询问也会让你感到压力

这时候很容易产生焦虑,甚至自闭,我也有过这样的经历

我的做法是「记录」下来,接纳自己的情绪,给自己积极的心理暗示

罗翔老师曾经说过:对于不可控的事情,我们要保持乐观;对于可控的事情,我们要保持谨慎

体力

最后是「体力」,既然找工作是一个持久战,那就需要有足够的体力支撑

一直待在家里刷着求职网站,海投无果、不断被拒,在这种精神和体力的双重内耗之下,人很容易崩溃

不如出去走走,呼吸新鲜空气,做一些运动

保持一个健康的身心,反而能保持自己的自信心和提升求职效率

三、工具提效

这一次备考,主要使用了这么一些工具

Flomo

Flomo 是一个「简单、高效」的碎片笔记工具,可以帮助你记录、整理、回顾自己的备考过程

我在 Flomo 中主要记录了自己的面试经历、面试题目、面试感受、面试反思等等

飞书

飞书支持飞书个人版,这次备考主要是使用了「飞书文档」 和「飞书妙记」

首先是飞书文档,真的很香,文档类型丰富,有像 Notion 一样的块文档,还有思维导图、Base 二维表格、画板等等

我用飞书文档做一个 ✨ 前端求职大攻略 ,下一节会提到

飞书妙记的话,可以上传语音 MP3,然后转成文字,这个功能主要用于面试后的自我复盘

你可以点击点击文字,直接跳转到对应的音频位置,非常方便,还有倍速播放、跳过空白等功能

如果你还没用过飞书 👉 邀请使用飞书

滴答清单

滴答清单是一个「任务管理工具」,主要用来做备考计划

另外滴答清单有一个不错的番茄钟专注功能,用来跟进每天的任务开销和状态

如果你还没用过滴答清单 👉 邀请使用滴答清单

AI 类工具

不得不承认,现在 AI 工具的效果真的不错

我本来想要付费找一些前辈做一些备考指导,但是使用 AI 工具也能达到不错的效果,而且免费

  • ChatGPT、Claude:回答质量不错,麻烦的是需要梯子 🪜

  • 豆包:字节跳动家的 AI 问答产品,对于非技术类的问题,回答质量赶得上 ChatGPT,并且支持 PC 客户端,我非常喜欢的一个功能是像 Spotlight 一样,快捷键唤起就可以向直接 AI 提问

  • 腾讯元宝:回答效果一般,但胜在可以搜索相关微信公众号文章再做回答,毕竟现在中文高质量回答都被圈在微信封闭的平台上

四、做一个个人的求职攻略

我认为,每个求职的程序员都应该做一个个人的求职攻略

为什么做一个求职攻略

其实原因很简单,就是把备考的过程系统化,将备考的攻略、求职记录、面试题目、面试过程等都汇总在一个知识库

抛开这一次面试,你的求职攻略可以用到下一次面试,现在的付出也是在增援未来的自己

个人选用飞书文档也是刚好它比较强大,思维导图也能免费使用

当然,用自己熟练的笔记应用也可以,比如语雀、Notion、Obsidian,甚至 Word、Excel 也可以

软件工具只是手段,重要的是你的思考和记录

求职攻略参考内容

目前个人的飞书文档 ✨ 前端求职大攻略 已经公开,欢迎大家参考

首先是《大攻略》部分,按照求职时间线排列,涵盖求职的各种事项

如果觉得烦,可以只看《Lite 极简说明书》

接下来就是《作业 1:PDCJ》这次面试对于阶段性复盘我使用了 PDCJ ,它是一种思维模型:

  • P 是 Plan 计划
  • D 是 Do 做事
  • C 是 Check 检查
  • J 是 Just 调整。

通过阶段性地计划、施行,再不断地检查、调整,确保自己的面试正确又高效地前进,不会出轨。

《作业 2:面试题》这个比较重要,除了技术八股文之外,还要深入挖掘自己的项目

不仅仅是成功的项目,失败的项目也要挖掘,让面试官看到到你对项目的深层次、多角度的思考

然后就是《作业3:个性化自我介绍》,这个就是 show 自己

在面试中,自我介绍是最重要的环节之一,它可以让面试官对你有一个初步的印象

不过也看面试官,有的面试官可能不太喜欢开头的「自我介绍」,他们更喜欢直接问问题,比如我遇到上来就直接问“介绍一下你做过的最有成就感的项目”

对于《作业 4:公司跟进表》,维护自己所有的投递状态,包括公司名称、岗位、投递时间、面试状态等等

目前程序员求职渠道还是挺多的,用这个表可以维护自己的求职状态,能够一个统筹和及时跟进

当这个数据量持续增长之后,你也可以分析出自己的投递效率,比如你会发现内推的简历通过率会比 Boss 直聘投递高很多,这样你就可以调整自己的求职策略

五、最后一些小建议

1. 不要否定自己

考试会考砸,谈恋爱会分手,面试会挂,这些都是正常的

人生失败才是常态,成功是少数

不要因为面试失败就着急否定自己

如果失败了,就去复盘,去反思,去总结,再去尝试(PDCJ)

分享一句很喜欢的话:

2. 谦虚

叔本华说过,每个人都把自己视野的极限,当做世界的极限

井底之蛙的对世界极限认知是一口井

我之前就犯过这样的错误,以为自己很厉害,但是越往深处学,越发现自己的渺小和无知

现在面试的时候,就保持谦逊的态度

面试遇到自己的强势领域,娓娓道来,展示你的能力和思考

遇到自己的弱势领域,坦诚承认,表示愿意学习和提升

3. 关于外包公司

外包公司的话,能不去就不去

待遇这方面,工资、年终奖等先被外包公司扒一层皮

工作内容方面,往往是一些维护、二次开发、测试等杂活

技术方面,外包公司的技术氛围往往不好,身边外包同事可能都比较躺平

自尊心方面,外包的同学往往是低人一等,公司内网权限、工牌、餐卡等都在提示你和正式员工的差距

所以,除非是过渡阶段(1-2 年),外包公司不建议去

另外,不建议用外包岗位来作为面试练手

外包岗位的面试题目、难度、面试官心态等和正常岗位有区别,参考意义不大

并且还要投入相当多的时间和精力,比如和 HR 对接、约笔试、面试、通勤去现场面试等

没必要做这种无用功,还是保存体力,专注正常岗位的面试

对于 Boss 直聘,可以在设置 > 隐私保护 > 屏蔽公司 中,把外包公司都屏蔽掉,避免干扰

4. 利用你能利用的一切

之前听过,创业的状态是「小姐心态,寡妇待遇,妇联追求

求职的过程,这句话也适用

你的追求和目的是寻求一份满意的工作,那就放下身段,动用你能利用的一切资源

把你的朋友圈、同学圈、前同事挨个联系一遍,问问有没有内推的机会

发邮箱找大佬,看看有没有合适的工作岗位 or 请教面试的相关事宜

加技术群,加 QQ 群,加微信群,多和大佬交流,多和同行交流

把自己的求职面扩大,不要局限在 Boss 直聘、拉勾、猎聘等求职网站

五、内推

那么关于个人的面试历程和规划就都讲完了,接下来我想和大家分享一下我现在所在的公司

童心制物是全球消费级激光工具领域和 STEAM 教育机器人领域的头部企业

先后获得红杉资本、深创投、中金甲子等知名机构投资

Base 在深圳南山智园,福利待遇多多

感兴趣的小伙伴可以在公众号「程序员楷鹏」上联系我,和我一起做同事 👏

要离职了,记录一下个人在用的 Mac 应用

2024-06-26 08:00:00

大家好,我是楷鹏。

通用

飞书

说起来不信,第一个推荐的是【飞书】,飞书是目前用过最舒服的项目管理应用了。

单拎出来一个飞书文档,功能和体验远超市面上腾讯文档、石墨文档、语雀等等。

现在飞书还支持个人版,No more thumbs up。

除了文档,飞书还支持邮箱、视频通话等功能,飞书 = 企业微信 + 腾讯文档 + QQ 邮箱 + 腾讯会议,直接 All in One

飞书还自带一些贴心的小功能,比如 OCR(图片转文字)、录视频、录 GIF,以及一个非常使用的「滚动截图」,截长图不烦恼

Arc

现在主力浏览器已经从 Chrome 切换到【Arc】,Arc 的多空间解决了我的一直以来的痛点需求。

并且会自动收起过期的 Tab 页面,支持全屏,颜值好看,交互舒服,Arc 值得拥有。

有道翻译

程序员看官方技术文档,翻译是刚需

本人也算是有道翻译的老用户了,陪着从有道词典改名为现在的【有道翻译】。

虽然有道翻译的翻译效果不是最好的,但胜在词典内容丰富,划词交互方便

目前加上了 AI,翻译质量也上了一个台阶,怒冲两年会员。

Grammarly Desktop

有时候提 issue 或者写英文的场景下,担心自己语法错误,Grammarly Desktop 派上用场。

基础的语法检验 free,但是润色以及 AI 功能需要付费。

iBar

手头的 Mac 有刘海屏,应用一多就会被刘海挡住,很烦。

iBar 可以把菜单栏收起一下。

iShot

截取一张包含圆角、阴影的好看截图,可以用 iShot。

Free 版本足够,长截图、OCR、录屏等高级付费功能,可以用飞书自带的。

Snipaste

之前从 Win 转 Mac 的时候,一如既往 Snipaste,它的贴图功能很好用

App Cleaner & Uninstaller

App Cleaner & Uninstaller 强力卸载软件,干干净净

Runcat

在菜单栏上看一只猫不断地奔跑也是一种消遣

Runcat 可以在菜单栏用 Runcat 查看当前 CPU 等信息,CPU 用得多小猫也就跑得越快

Activate Mac

一个百无聊赖的小挂件,Win 的「Activate Windows」类似,在屏幕右下角展示「Activate macOS

效率

个人任务三件套

  1. 滴答清单:安排任务、定时任务

  1. Flomo:记录灵感,针对任务过程 or 结果进行复盘

  1. FlowUs:复盘产出,读书笔记

为什么选择这一工具套件的原因?

  1. 全为国内应用,无需梯子,避免网络波动的着急时刻
  2. 支持跨平台,移动端、PC 端、Web 端、小程序全面覆盖
  3. 好用,平替 Todoist、Notion 等

Revezone

平时需要画一些流程图,会使用 Excalidraw 涂鸦式画图工具,可惜它不支持中文字体。

Revezone 相当于是 Excalidraw 的汉化版,但更进一步,集成了 Tldraw、类 Notion 笔记功能,并且提供 Mac 客户端。

目前开源免费,正在 alpha 公测阶段,可以 try try。

录屏

  1. OBS:专业录制,如果有需要录课等重量用途,就选他。如果只是一些轻量的录制可以用飞书的 Gif 录制

  1. Screen Studio:可以制作非常丝滑的操作视频

  1. KeyCastr,显示输入的按键,开源免费

uTools

确实是新一代的效率工具平台,万物皆插件,需要什么小功能都可以在上面找到

贝锐向日葵

需要远程操作另一台计算机,贝锐向日葵推荐,free 版基本满足需求,不过总会弹一些小广告。

开发

Fork

一个免费的 Git 可视化工具,挺形象的「叉子」。

Warp

新生的终端应用,支持基本补全、记忆功能,还有 AI 加持

Zed

Jetbrain、VSCode 等的就不推荐了,这些都是有名的代码编辑器了。

就推荐下【 Zed 】,基于 Rust 的新一代编辑器,启动、输入速度非常快

Zed 刚起步,后续持续观察。

数据库可视化

数据库可视化老大 Navicat,这个大家比较熟悉了,最近终于推出了免费版的 Navicat Premium Lite,Navicat Premium Lite 作为 Navicat Premium 17 的精简版,基本功能都在。

官方说【它可满足广大初级用户和非商业用途的基础数据库管理需求】(可能是盗版太太太多了 🤣)

如果只需要一个轻量的数据库可视化操作,那么推荐一下【SQL Pro Studio】

虽然没有 Navicat 那么强大,但好在是 Mac 原生应用,性能不错,基本的操作(筛选、排序)都能满足,高级的能力需要写一下 SQL

如果使用的是 Postgres 数据库,那么可以使用 Postico 2,专门用于 Postgres

Redis 可视化推荐 Another Redis Desktop Manager 或者 Redis Insight,这两款各有优缺,可以搭配使用

Typora & uPic

写 Markdown 笔记的时候,Typora 一直是我的白月光

Typora 本身不支持图片,于是自己用服务器搭了个图床,目前搭配 uPic 上传图片

He3

面向开发者的工具箱,集合多款的开发专用小工具,也有一些基础的视频剪辑、图片裁剪、音频转换等工具。

谷歌也翻车,挖一个 XSS 漏洞,薅了两万多 💰

2024-05-11 08:00:00

大家好,我是楷鹏。

程序员 Matan 挖到了一个 XSS 漏洞并报告给谷歌,奖励 3133.7 美金(约合人民币 22666 元

这是谷歌 Bug Hunter 的奖励规则:

👉 图片来自 https://bughunters.google.com/about/rules/google-friends/6625378258649088/google-and-alphabet-vulnerability-reward-program-vrp-rules

事情起因是这样的,Matan 看到了一篇揭露谷歌 SSRF 漏洞的文章,文章中提到谷歌的这么一个网站

📍 https://toolbox.googleapps.com

于是便开始探寻,先是查看 robots.txt 文件

#apps-toolbox
User-Agent: *
Allow: /apps/main
Allow: /apps/browserinfo
Allow: /apps/checkmx
Allow: /apps/dig
Allow: /apps/har_analyzer
Allow: /apps/loganalyzer
Allow: /apps/loggershark
Allow: /apps/messageheader
Allow: /apps/recovery
Allow: /apps/useragent
Allow: /apps/other_tools
Allow: /apps/encode_decode
Allow: /apps/screen_recorder
Disallow: *

robots.txt 是一份存在于网站根目录的文件,它会告诉网络爬虫应该哪些页面可以爬,哪些不可以,以此避免网站被爬虫过度请求,造成请求负担

在 robots.txt 文件中,一个链接对应一个工具网页

但是有一个例外,/apps/recovery 是不能被直接访问的

在经过简单搜索后,发现它存在子页面

recovery/domain_in_use
recovery/form
recovery/ownership

这些子页面都能够接收多个 URL 参数,比如

recovery/domain_in_use?visit_id=xxx&user=xxx&domain=xxx&email=xxx

如果输入这条继续跳转链接的话

https://toolbox.googleapps.com/apps/recovery/ownership?domain=example.com&[email protected]&case=45500368&continue=/apps/recovery/...

这条链接包含参数 domain=example.com,注意还有一个参数是 continue=/apps/recovery/...

输入该继续跳转链接会得到提示:

在这里,发现了问题,CONTINUE 按钮的链接居然是来自于 continue 参数

Matan 验证了下,注入 JavaScript 脚本代码:.../continue=javascript:alert(document.domain)

成功执行 ✅

这个网站没有 CSP 安全策略,也没有任何防护措施,因此可以从任意外部获取资源

继续尝试加载外部恶意脚本,该恶意脚本用于获取用户 IP 地址:

.../continue=javascript:fetch(%27https://api.ipify.org?format=json%27).then(response=%3Eresponse.text()).then(data=%3E{alert(data);%20})

也是成功执行 ✅

到这里,可以确定存在 XSS 漏洞。

回顾一下 XSS 知识

XSS(Cross-Site Scripting),跨站脚本攻击,没有做好校验,相信用户的输入,接收了攻击者的恶意输入(一般是 JavaScript 脚本代码),导致该恶意输入在其他用户页面上执行。XSS 一般分为三种:

  1. 存储型:恶意输入被永久储存在了后台服务中,无论用户什么时候打开网站,拿到该恶意输入,浏览器就会执行
  2. 反射型:恶意输入内嵌在 URL 或者其他输入中,立即被后台转发,用户只要访问构造好的 URL,浏览器就会执行
  3. 基于 DOM:攻击者操作用户的 DOM 结构,进而执行恶意代码

上诉 Matan 的例子,就是一个很典型的反射型 XSS。

但这个 XSS 太低级了,以至于 Matan 本人都难以置信,毕竟谷歌技术是业界有名的

不过谷歌惯常喜欢用自研框架,而这些框架没有做好安全策略,产品翻车也是难免。


One more thing:

{
"公众号": "程序员楷鹏",
"简介": "世界有 10 种人,一种是懂二进制的,另外一种是不懂的",
"还有": "你肯定会关注的对吧彦祖?"
}