学算法的时候,老师教给我们的都是正经算法:冒泡排序、快速排序、归并排序……它们勤勤恳恳,复杂度明明白白,面试的时候还要手写。但互联网是个神奇的地方,程序员们闲下来之后,创造出了一堆完全不正经、但又莫名符合某种哲学的排序算法。它们有的靠睡觉,有的靠喝酒,有的靠打响指,还有的直接消灭问题本身。 今天就来盘点一下这些广为流传的Meme排序算法。 友情提示:以下算法请勿用于生产环境,否则后果自负。 Stalin Sort(斯大林排序) 先从最著名的开始。斯大林排序的核心思想非常简单粗暴:遍历数组,凡是不服从秩序(乱序)的元素,直接清除。 一趟遍历下来,剩下的元素必然是有序的。时间复杂度 O(n),比快速排序还快,代价是——数据没了。 1 2…
阅读全文上一篇写《第一性原理》的时候,顺手提了一句费曼技巧,本来打算就这么过去了。但合上书之后,那个名字一直留在脑子里。正好书架上还躺着一本《费曼思考法:像学习高手一样思考》,干脆接着翻完。两本书放在一起读,反而有种意外的呼应——第一性原理是把复杂的东西一路拆到底;费曼学习法则是反过来,把拆开的东西重新讲清楚。 所以这篇就当作上一篇的延续,再谈一次费曼。 费曼这个人,先于费曼学习法 很多讲费曼学习法的书,开篇就是”四步走”。这本书不一样,前面用了好几章去讲费曼这个人。读完之后我也明白了作者为什么这么安排——如果不先理解费曼为什么会用这种方式去学东西,”四步走”就只是又一套方法论而已。 最打动我的是费曼父亲的那段。书里写到,老费曼带儿子去散步…
阅读全文最近这一两年,”第一性原理”这四个字被反复提及,被马斯克和他的追随者讲了太多遍,以至于我对它产生了一种说不清楚的距离感。在拿起这本《半小时讲透第一性原理》之前,并没有太多期待,只是想从一个尽量平和的视角,重新去看一下这个已经被讲了无数次的概念。 读完之后,倒是有几处让我停了下来。 最早被戳到的是这句:”任何复杂事物的背后,都有一些不可再分解的基本事实。找到它们,你就找到了理解整件事的钥匙。”道理我并不是第一次听到,但放在那个章节里,反而显得朴素。它没有把第一性原理包装成方法论,只是说,事情都有一个底——是否愿意去摸到那个底,是另一回事。 我顺手在前言那里写了三个字:”小马过河”。这是想提醒自己,听别人讲水深水浅都不算数,要自己淌一次…
阅读全文Kodaline 是我喜欢了很多年的一个乐队,2023年的7月,我还有幸在新加坡现场听了他们的演出。可惜的是今年,他们宣布了一个令人遗憾的消息:乐队将于2025年10月解散,结束他们长达13年的音乐旅程。这个消息让我感到既惋惜又感慨,仿佛一个时代的终结。在2025的最后一天,我想用Kodaline的一首歌《Saving Grace》来作为我2025年的总结。 工作 入职新公司已经一年半了,回顾这一年多的时间,工作内容逐渐从最初的适应和学习,转变为更多的独立负责项目和推动技术落地。作为团队中唯一的中国同事,我也逐渐融入了多元文化的工作环境,学会了如何在跨文化团队中有效沟通与协作。 二月初,之前公司招来的两个实习生顺利完成了实习期,回到…
阅读全文
05距离我上次分享 AWS 机器学习专业认证 (MLS-C01) 的经验,转眼已过去了三个月有余。这次我决定选取另一个目标——AWS Certified Developer Associate (DVA-C02)认证。 你可能会好奇,机器学习和开发,听起来是两个不同的领域。其实不然!在 AWS 上,无论是部署机器学习模型,还是构建任何应用程序,都离不开扎实的开发和部署功底。我希望通过 DVA-C02这个认证,进一步夯实我在 AWS 上的实践能力。 DVA-C02:和 MLS-C01 有什么不同? 这次 DVA-C02 考试给我带来的最大感受,就是它与 MLS-C01 的定位差异。 如果说 MLS-C01 是一次深入特定领域的“__专精_…
阅读全文
06最近通过了 AWS Certified Machine Learning – Specialty 认证,再此分享一下我的备考经验和考试心得,希望能帮助到正在准备这项认证的朋友们。 时间线和准备方法 我的认证之旅从三月初开始,当时在 Udemy 上寻找相关课程。还好有公司的商业版Udemy订阅,可以免费学所有课程。利用周间下班的时间和周末的一些时间,到三月中下旬,我已经完成了课程学习并开始做习题练习。然后我随即预约了三月底的考试,这给了我一个集中的准备窗口。 在线课程学习 Udemy 的课程为理解 AWS 机器学习生态系统提供了坚实的基础。课程涵盖了重要的服务,如 SageMaker、Comprehend、Rekognition 和…
阅读全文
07看着屏幕上的倒计时,我以相当赛博的方式在Youtube上看了世界各地直播的跨年烟花秀,转眼间,2024就这样结束了。若要用一个词来概括这一年,大概是”转变”吧 —— 工作的转变、生活节奏的转变,以及思维方式的转变。而在这些转变之中,我也在寻找着一种新的平衡与沉淀。 工作 六月的新加坡,依旧是那般湿热。6.21日是我在Shopee的最后一天,收拾着办公桌上零散的物件时,我不禁回想起五年前初来乍到的场景。从当初努力适应英文工作环境的新人,到如今习惯了一切的”老sailor”,时间的痕迹悄然留在工作邮箱里几千封往来的邮件中,以及Seatalk的各个群组中。记得刚来时,每次开会都要全神贯注地听着同事用英文讨论,生怕错过重要信息。而今天,会议…
阅读全文
08这是一篇迟来的2023年终总结。2023年底的时候出去旅游了,2024年初又回国了一次,所以这篇年终总结终究还是迟到了半个月。 工作 如果用一句话总结去年的工作,那就是:平淡无奇,甚至还变卷了一些。看着曾经并肩作战的同事,一个个都离开了,曾经开会的时候,默认的语言还是英语,如今开会都是默认直接中文了。年初由于组织架构的再次调整,我又被合并到了另外一个组,开始用C++开发线上的实时推荐系统。于是,我的技术栈也因此扩展成了React, Go, C++。在业余时间,我还顺便学习了一下现代C++,毕竟上次用传统的C++已经是N年前了。至于工作本身嘛,我只能说,走一步看一步,我还是先刷着LeetCode热热身吧。 学习 2023年这一整年,最…
阅读全文
09The Heap A heap is a specialized binary tree data structure that satisfies the heap property. In a heap, each node has at most two children, and the key (the value) of each node is greater than or equal to (in a max heap) or less than or equal to (in a min heap) the keys of its children. The binary tree representation…
阅读全文左值(lvalues)与右值(rvalues)的概念 左值和右值是Modern C++中引入的新概念。简而言之: 左值位于等号左边,我们可以对左值进行取地址操作。 右值位于等号右边,本质上是一个数值,即 literal constant,我们没法对它进行取地址操作。 1 int x = 999; // x 是左值, 999是右值 我们,可以把左值大致想象为一个容器,而容器中存放的就是右值,如果没有这个容器,其中的右值将会失效。对于以下的程序,我们在编译的时候将会得到类似的错误: 1 error: lvalue required as left operand of assignment 1 2 int x; 123 = x; 很显然…
阅读全文随着疫情的反复,今年又是没能回去的一年,回想起年初的时候,去摩天轮观了夜景,也去金沙酒店的无边泳池游了一回,一年的时间总是飞逝而过。 工作 新加坡的“复工复产”,比起国内来得更早一些。上半年还都在家里办公,公司员工可以自由选择在家上班或者去公司,从下半年开始,就陆续都回公司上班了。再到年底,几乎全员都被要求回公司上班了。 然而,今年的经济形式并不好,再加上美联储加息,公司各种相关的负面新闻层出不穷,股价连续暴跌。经历了年中和年末的几波裁员,身边有不少同事幸运的领到了大礼包。说是大礼包一点也不过分,都是N+2起,但是我命中仿佛一直和大礼包没有太大的缘分。当年Moto关闭成都研发中心,传闻N+7的大礼包我也没领到,在领大礼包之前竟然主动…
阅读全文
12前言 时间穿越回2019年,自从我把我的 HHKB Type-S 改装成了蓝牙版本 [1],这个键盘就成为工作中的主力键盘,一直用到了现在。无线连接很方便,充电一次可以用两三周,这是因为电池寿命衰退的缘故,其实之前充电一次大概能用一个月。另外,最方便的是完全可定制的键位和firmware支持的8层可自定义按键,相当的强大。我一直以为,这将是我所折腾的最后一个键盘了。可惜人算不如天算,还没有玩过客制化键盘的我怎么能停止折腾的步伐呢? 偶然有一次,在公司看到了另外一个喜欢折腾键盘的同事的客制化键盘,彻底坚决了我再折腾一个客制化键盘的心。由于用HHKB多年,既然要折腾一个客制化键盘,当然还是希望选择HHKB的layout。其实支持这种HH…
阅读全文
13起因 被动收入(Passive Income) 是不需要花费多少时间和精力,也不需要照看,就可以自动获得的收入。在很多年前,我就从网上看到这样的说法,作为一个普通打工上班族,工资收入大概就是我们最单一的收入来源了。被动收入的终极目标,就是建立一些可以自动运营和自我维护的业务,即使在后期不需要投入太多精力的情况下,这些业务照样能为我们带来源源不断的收入。被动收入能在一定程度上带给我们财务上的安全感,即使面临失业和财务上的风险,被动收入的收益足以帮你减轻或者解决掉财务上的危机。 自从开始写Blog以来,我也尝试过如何利用互联网来产生一些被动收入,比如在Blog中植入Google Adsense的广告,通过流量和点击来赚取广告费。无奈广告…
阅读全文
14话说,新加坡和中国是互相不承认驾照的,拿着中国驾照在新加坡是不能直接驾车的,需要把中国驾照转换成新加坡驾照才行。按照新加坡的规定,如果你在来新加坡之前已经有了中国驾照,并且持有中国驾照超过半年以上,然后现在又拿着新加坡的长期签证(工作准证,家属准证,学生准证,新加坡PR),那么恭喜你,只需要通过一门简单的理论考试(Basic Theory Test),就可以把中国驾照转换成新加坡驾照了。 本驾照转换攻略适用于持有新加坡长期准证,并且在来新加坡之前已经拥有驾照的同学。 驾校注册 去驾校注册是开始的第一步,其实也挺方便的。新加坡有三个驾驶培训学校,分散在不同的区域,建议找一家离家近的就行。带上你的护照和工作准证,去驾校咨询处咨询一下就行…
阅读全文
15GitHub Actions 是 GitHub 自家推出的持续集成和持续交付工作流服务。自从上次利用GitHub Actions实现Blog自动部署与发布过后,构建和发布blog从此变得轻松。这次,我打算充分利用 GitHub Actions, 把开源项目的持续构建和发布流程做成完全自动化。 用我经常维护的一个项目 GoDNS 举个栗子,每次发布的时候,需要手动执行的两个任务: 基于不同平台进行交叉编译,把编译好的二进制文件分别上传到GitHub上,进行新版本的发布。 另外,这个项目还需要构建基于不同平台的 Docker 镜像,然后推送到 Docker Hub 上。 在使用 GitHub Actions 之前,我的做法就是在本机使用…
阅读全文
16还记得去年大致这个时候,去Google Photos整理照片的情形,一晃又过完了一年。2021,又是被疫情困住没能回去的一年。 从Spotify的年度大数据来看,这首Kodaline的《Say Something》是我在2021听得最多的一首歌。喜欢这个来自爱尔兰的小清新乐队很多年了,主唱的声音清新干净明朗温柔,很治愈。 工作 因为疫情的反复,今年只回公司上了几个月的班,大部分时间还是远程工作。尤其是快年底的时候,疫情反扑,每天确诊人数3000以上,年底最后几个月都一直在家工作,实在是将远程工作体验到了极致。今年由于公司项目组架构进行了很大的调整,结果是我分别待了三个不同的项目组,其间又做前端开发,也做后端开发,项目技术栈涉及到了G…
阅读全文
17最近由于Cloudflare受到一些”干扰”,有网友提醒我的blog在国内有打不开的情况。不幸的是我的Blog + CDN都是托管给Cloudflare的,被无辜”殃及”了。再加上最近比较忙,blog也荒芜了快一年没打理,正好这个周末的晚上可以来折腾一下。 看了一下手上的吃灰的几个小鸡,发现竟然还有一台之前买的搬瓦工的小鸡,登录上去一看,好家伙,uptime 都659天了,稳啊! 好吧,就它了!接下来又是一波骚操作,从德国Contabo的主机rsync直接拷贝所有静态页面过来,速度还挺快。之前用的Nginx,这次打算再次换成Caddy Server,毕竟Caddy都出第二个版本了,自动更新SSL证书是比较能吸引我的地方。去官网研究了…
阅读全文前言 自从去年接触美股以及期权到现在,已经有小半年时间了。期权是一种非常有吸引力的金融衍生品,也是一种能通过时间给你带来不错回报的投资工具。在没有接触期权之前,我一直以为期权是一种风险很高的投资行为,其实不然。在金融市场中,风险总是伴随着对等的收益,只要你善于利用期权,不但能为你规避一些风险,还能带来收入。相比股票,期权更像是一个功能齐全的工具箱,合理的运用各种期权策略和组合,就能构建出丰富多样的投资组合,这一过程本身也极其具有创造性和趣味性,这也许就是期权更吸引我的地方。 最近读麦克米伦的《期权投资策略》,略有心得,准备写一系列的学习笔记,方便自己以后查阅,也方便对期权感兴趣的同学参考。 什么是期权 股票期权(Stock Opti…
阅读全文既然忘不了,那就不要去忘记,让时间去解决一切。 2020过得如此之快,以至于年底整理手机相册,才发现已经进入2021了。新加坡是一个四季如夏,一年四季气温都变化不大的地方,没有了四季明显的变换,更容易让人模糊了对时间的感知。 从年底网易云音乐生成的年度报告来看,黄老板的这首《Photograph》竟然是我本年度听的次数最多的一首歌…… 听着黄老板的歌,整理着照片,顺便用照片回顾一下飞逝而去的2020。 疫情 00 年初临近春节的时候,还换了一把马币,跟同事一起去马来西亚的新山玩了一圈。大家一边畅玩,一边感叹:仅仅跟新加坡一桥之隔的城市,为何消费如此便宜? 谁知道,一场突如其来的疫情,改变了全世界人们的生活。 春节临近,请了年假回国,…
阅读全文
20前言 最近通过了CKAD认证考试,也算是填了一个去年底挖的坑。这一切要源于去年底圣诞的时候,Linux Fundation的认证考试打折,原价300刀的CKAD考试,打折下来只用花255刀,忍不住剁手了。 此认证费用,包括一年有效期内任意时间预约考试的机会,以及一次免费重考的机会。 本来想着有一年的时间备考和准备,买了之后拖延症又犯了,就一直没管它。直到最近,突然收到了Linux Fundation的邮件,提醒认证考试年底就要过期了,才想起来之前竟然还买了个这个认证,突然开始慌起来…… 二话不说,立马着手开始备考,由于之前工作中也算用过Kubernetes,对其核心概念也有一个大致了解,从8月到现在,大概花了一个多月的时间来准备。最…
阅读全文