在开始文章之前,我先下个定义,本文的“主流就业圈”指代大厂、头部初创这类需求量大、人员流动性高、认可度高,对求职者的要求、能提供的待遇标准趋同的工作。我并不认为主流就业圈是唯一的就业正解,但是对大多数人来说,这些工作就是较优解。 毕业两年后,我从一家大厂离开,加入了一家创业团队。如今,我甚至无法通过一些主流岗位的简历筛选。回望这段经历,我做错了哪些事情? 做远离趋势的工作 AI彻底改变了程序员工作的流程,也改变了整个就业市场,几乎已经不存在和AI无关的工作。但是,这个趋势是从什么时候开始的呢? 我毕业时,ChatGPT已经出现,但多数人仍把它看作更强的聊天机器人,很少有人认为它会成为新的生产力。后来,AI逐渐进入企业工作流,能够调用…
阅读全文时隔三年的又一次博客更新 自从上一次将博客重写为一个静态网站后已经运行3年了。 这套架构非常简单:所有网站代码以及文章源码全部都在仓库里。要更新网站,直接改代码或者写文章,推送到github上,CI构建网站,把构建好的静态文件推到另一个发布为github pages的仓库ddadaal/ddadaal.me.github.io里,更新后的网站就可以访问了。 为什么要折腾了? 添加访问指标采集 由于之前是纯静态网站,完全没有办法记录动态的信息。之前的博客的评论数据都是存放在ddadaal/ddadaal.me.github.io的Issues里的。 在前AI时代,我也部署过一个简单的访问量采集服务,当时还写了个文章增加自制博客点击量统…
阅读全文
03最近我想看一场时长 5 个多小时的日语演唱会录像,但这份录像没有可用字幕,我又不懂日语,没有字幕MC部分根本听不懂。 于是我想到可以用本地语音转录生成字幕。调研后我发现了 McCloudS/subgen 这个项目,发现它已经把“本地自动转录”这件事做得很完整,并且可以用jellyfin集成实现视频加入和播放时自动生成字幕。 在实际体验中,我进一步希望它能覆盖“转录后翻译”的需求,于是决定在原项目基础上做一层轻量扩展,把翻译功能补齐到同一条工作流中。 因此,我在原仓库上创建了一个fork https://github.com/ddadaal/subgen-translate ,实现了: 在不破坏原有 webhook / Bazarr…
阅读全文
04实在不太放心把 nanobot 这类可以直接操作本地电脑的程序直接装在操作系统上,所以我选择把 nanobot 放在容器里运行。但是nanobot很多有意义的工作又需要和宿主机上的环境(例如浏览器)交互,而浏览器上很多网站需要我们先去登录才可以正常使用,这就需要一个既可以由 nanobot操作、也可以由我们自己的操作的浏览器 经过一番查找,终于找一个不影响 nanobot 本身的方法,操作是在部署 nanobot的 docker-compose.yaml 目录下再创建一个 docker-compose.override.yaml,内容如下: services: chromium-vnc-cdp: image: linuxserver…
阅读全文前言 之前写过一篇关于HP战99 Ultra(搭载AMD AI Max+ 395)的使用体验,今天聊聊这台笔记本在AI推理场景下的表现。作为这台机器宣传的主要场景,AI推理的实际使用情况却优点一言难尽。 硬件配置回顾 配置详情 CPUAMD Ryzen AI Max+ 395 16C32T Zen5 内存64G LPDDR5 8000MT 4通道可划分显存 显卡Radeon 8060S 40CU RDNA3.5 显存可在BIOS里将几个固定挡位的内存分配给显存 关键概念:可划分显存 vs 统一内存 在深入分析数据之前,需要理解几个重要概念: 传统显存:传统独立显卡的固定显存,容量固定,如RTX 4090的24G 可划分显存:静态分配…
阅读全文
06主动选择改变 对我来说,2025年的前半年和后半年是完全不同的。 主动告别了一个熟悉的工作,做出一个必定会做出的选择,期望能回到一个熟悉的工作状态,在一个全新的起点重新开始,却开始不停接受充满未知、充满了混乱的挑战。 离职,一个一定会做出的选择 不知道什么时候,我开始认为离开微软是一个艰难、遗憾、但是又一定会发生的事情。 一方面,在公司两年来,虽然绩效都是拉满,但是所做的、所参与的所有项目都胎死腹中,而新的被分配的AI有关的项目怎么看都很不靠谱,很难推动;年初,校招进微软,待了十余年的直接manager从公司离职;身边同事的升职空间和奖金肉眼可见的越来越小;而每个季度都能传出裁员的消息,和身边同事讨论的都是裁员、relocate、大…
阅读全文
07为什么选这一台? 最近有一次换笔记本的机会,因为之后需要频繁旅行,于是选择了14寸的笔记本作为主力机;考虑到平时开发经常需要占用大量内存,32G的内存不够用,需要64G。而现在轻薄本里提供64G选项的,主流的选择只有可以自己加内存的ThinkPad T14p,但是T14p的CPU和GPU性能都在轻薄本中中规中矩,且被11代酷睿折磨了5年的我,现在已经变成了十足的I黑😅。而AMD只有Max+系列的设备有搭载64G及以上内存的产品,且当前只有华硕幻X和战99Ultra(在国外称ZBook Ultra G1a)这两款。前者平板形态虽然非常帅,但是在非桌面场景下使用体验较差,所以最终选择了后者。主要配置如下: 配置配置 CPUAMD Ry…
阅读全文
08问题发现 最近在一个项目中,我遇到了一个使用Node.js编写的请求转发服务的性能瓶颈问题。这个服务的主要工作看似非常简单:获取用户的请求,将请求体(body)转发到后端的服务器,然后将服务器的响应原样返回给客户端。 然而,在进行压力测试时,我们发现当并发请求达到约2000时,系统表现出了明显的性能问题: 大约6%的请求出现错误 服务器资源利用率极不平衡 - 只有一个CPU核心达到了100%利用率,而其他核心几乎处于闲置状态 大家都说Node.js的IO性能并不算差。这个现象引发了我的思考: 是什么限制了Node.js在这种场景下的性能表现? 一个看似简单的请求转发工作,为何无法充分利用多核资源? 带着这些疑问,我决定对Node.j…
阅读全文Azure AI Language Service的结果太差了 去年我给我的文章增加了AI文章总结功能。在介绍此功能的文章,我提到当时这个功能是通过Azure AI Language Service Text Summarization的功能实现的。 当时我已经发现,这个功能在英文文章上效果还行,但是在中文文章上就基本不可用。 比如,上一篇文章2024年总结的总结结果是: 本文讲述了作者在毕业后的第一年,通过深入体验现有生活,旅游,搬家,工作和生活。 这是人话吗?且不说用的英文逗号,前两个分句看着还行,后面就变成关键词的叠加,完全没有概括意思。 一年过去了,DeepSeek全球爆火,而我又想起了这个问题,又重新尝试了用原有的方案生成…
阅读全文
10最好的年龄该如何度过?通过深入体验现有的生活 毕业后的第一年,没有物质压力,有大把时间可以自由支配。这最好的年龄该怎样度过? 我今年的答案:深入体验现有生活。 旅游,和朋友和家人刷新地图的边界 随着之前的朋友毕业、上班,有了更多时间,以及个人工作生活的稳定,今年的旅行数量可能大于之前26年来的总和,三个国家,国内十余个城市和景点。根据航旅纵横的数据,只算飞机,今年的飞行里程甚至超越了99.13%的用户。要是有规划地选择航司,现在应该能飞个银卡吧。 我不是一个非常喜欢旅游的人,如果只有一个人,外出旅游不会成为我的首要选择。正因为有了朋友和家人一起,我才能有机会和动力去打卡这些可能之前都没有听说过的地方。比旅游本身更重要的,是和朋友和家…
阅读全文
11“洗洗班味” 上班之后的生活千篇一律:起床,上班,去食堂吃午饭,去游戏室睡觉,上班,下班,看视频玩游戏,睡觉。按朋友的话来说,这样的日子会让人“班味很重”。所以当在3月份第一次听说公司组织的Aspire Start Strong+活动的时候,我虽然不是那么一个喜欢旅游的人,但是还是仍然感觉非常激动,很珍惜这个机会,毕竟这个活动由公司出钱、不占用自己的假期、和全世界去年的校招生一起去美国参加,而因为有了这三点,活动具体是干什么的反而都不重要了,在全新的环境里给生活暂时换个节奏,按同事的话说,“洗洗班味”,是最重要的。于是开始火速走流程,给老板科普这个活动是干什么的、去北京办美签、订酒店,终于在上周成行。 体验另一个世界 这不是我第一次…
阅读全文
12不就是调库嘛…… 在上一篇文章中,我给博客增加了点击量监测,并将这个服务部署到了Azure,数据库采用了使用SQL Server的Azure的SQL服务。由于SQL Server有免费的订阅,微软的Azure Data Studio也还算好用,于是我觉得可以重用一下刚才学习的这个技能,将其他的服务也使用SQL Server部署。 我之前在用wakatime来记录我的编程的数据(例如每天的编程时间、所使用的编程语言等),但是wakatime免费用户只能保存14天的数据,而且wakatime没有提供官方的可自己部署的后端,所以我也一直在寻找wakatime的替代品。之前尝试使用了一段时间的codetime。这个软件的功能和wakatim…
阅读全文
13为什么要加统计? 作为一个创作者,我还是很希望能够获取我的网站的一些统计和监控信息的,例如各个页面的点击量等。且不说这些数据到底有什么具体的作用,但是单纯地看着网站的访问量上涨,这对我来说还是非常有成就感的,说明我写的东西还是有人看的😂 但是在过去的5年里,我的博客一直没有部署一个稳定的统计系统。之前用过使用Google Analytics、友盟以及百度统计,但是最后均遇到了各种各样的问题没能使用下去。例如,Google Analytics的数据过于复杂,我甚至没搞懂怎么看某一页的访问量?友盟的信息只保存一年等。前几天看到一个Analytix的服务,看界面非常清新简洁,也没有提到要付费的情况,非常对我胃口,结果装进去发现报告数据的…
阅读全文
14一条朋友圈的提示 当昨天的2023年总结发出后,朋友圈有人对文章做出了总结,这启发了我,何不自己用AI给文章加个总结功能呢?正好也是第一次在真实场景中实装AI功能,看看目前在真实项目中集成AI需要什么步骤,体验怎么样,能做到什么功能。 选择AI服务 确定了要做这事,下一步就开始调研应该用什么AI服务。 第一反应肯定用OpenAI API,去年某段时间注册OpenAI账号不需要手机号,趁着这个机会直接注册了一个,至少最基本的ChatGPT可以用GPT 3.5模型聊天了。而当我想去用OpenAI的API的时候,发现要获得OpenAI的API需要验证手机号,而国内手机号当然验证不了的。除了手机号,支付方式也是一个问题,虽然我有国内银行的V…
阅读全文
15一段历史的终结 从2019年10月开始,在我对未来的所有计划中,2023年就是最后一年。我知道我会在2023年完成毕业论文并毕业,加入一个公司(在2022年确定是上海微软),再往后会发生什么,就彻底没有意识了。对我来说,2023是19年学生生涯的结束,也是我最熟悉的生活的终结。 没有干扰的毕业季 由于疫情,2020年的毕业季变为了宅家季,整个研究生期间的生活也受到了不小的影响,更别说在北京,以至于之前连出京看个牙有时候都是一种挑战。随着疫情防控的结束,生活总算可以回归正常。因此,我也在学生生涯的末尾再次体验到了一把久违的正常生活。 羽毛球比赛 作为一个经历了体重困扰22年的“减肥困难户”,我一直以为体育运动和我没有关系。可谁知道竟然…
阅读全文
16鸽了4年的更新 4年前的博客的发展1中,我提到了当时博客的几个问题。后来,我通过一个非常hack的方式解决了中文字数统计的问题(修复gatsby-transformer-remark插件中文词数统计错误问题,但是最重要的重构样式和完善UI设计的问题一直搁置,并且随着时间和技术的发展,项目也遇到了不少的问题,例如 样式的混乱使得我一直使用老的bootstrap v4版本,无法升级到最新的bootstrap版本 gatsby生态更新太快,很多组件我无法理解它们具体做了什么工作 5月底研究生答辩完后,本来计划好的旅行,在我出发的前一天被我二阳直接推迟了。阳了后基本上也就只能在宿舍呆着。呆着也是呆着,我想起来博客这个”我的门面“。这三年博客…
阅读全文
17转折点 又是一个转折点,是2021年总结的最后一节小标题。不出意外的,2022年确实是一个转折点。 玩具项目开始“玩真的” 上半年,继续维持2021年下半年的状态,像是做个玩具一样,在一个人的宿舍没有压力地写着实验室的项目。 可是,像是被赶鸭子上架一样,五月份项目放到GitHub开源(仓库地址),在一个小会上做报告,六月份写了一篇论文投到HPC China会议上然后拿了满分评价和优秀论文提名,之后项目组多了好多学弟学妹、老师和同事。公开的demo集群(点击访问,用户名密码参考仓库README)上线了,潜在用户来找我们了:项目突然变得认真了。 从一个随便写着玩的小程序员到啥都管的“小老板”,带人给了我更大的压力。不同的人有不同的背景、…
阅读全文
18暴风雨之前的宁静 站在2021的年尾回看这一年,发现这一年着实有点波澜不惊。 这一年中没什么非常关键的里程碑事件。没有2018年的各种比赛和活动充实我的简历(以至于现在还在吃当年的老本);没有2019年决定保研,确定了未来三年的生活状态,以及实习,第一次进入梦想中的公司去工作;没有2020年的本科结束,告别至今对我最具意义的四年,以及研究生开学,迎接一段外表看上去光鲜、但是自己却不那么肯定的研究生生活。这一年发生的各种事件看上去都那么的日常,有时候日常地甚至连朋友圈都懒得发。 但是,可以遇见到,2022年将会是一个“腥风血雨”的一年。再次准备实习面试,再次暑期实习,参加秋招,确定出路,每个步骤都是一场不可避免的硬仗。用暴风雨之前的宁…
阅读全文
19我的第一个真实项目 终于,从3月15日开始,我自己独立承担了一个完整的、真实的项目的开发和整个软件生命周期的维护工作:https://data-competition.pku.edu.cn ,第三届全国高校数据驱动创新研究大赛的后台系统(代码目前放在学校gitlab上,以后应该会把代码放到github上)。 虽然这还是一个常规的CRUD项目,但是毕竟是我第一个能够被真实用户使用的系统,我还是比较激动的。项目中途遇到了几次重构,最后出现了一次生产事故,其他的总体流程还是比较顺利的。 项目现在已经基本结束了,这里写一篇总结文,介绍一下项目的架构、演进、自己设置的一套前后端共用API的机制、以及在这个过程中的经验。 系统功能、架构、规模…
阅读全文
20生产事故 我最近负责了一个比赛后台网站的开发和维护,在比赛临近结束、正在接受用户提交成果文件的时候出了一场生产事故,造成了丢失了一段时间内用户上传的文件。本文主要讲讲生产事故从发现到确定影响范围到确定原因的过程。在整个过程中,后台程序记录的日志起到了巨大的作用。 关于这个项目的总结,可以查看这篇文章:我的第一个真实项目:总结和经验。 TL;DR 要素内容 表现丢失2021-07-16 09:00:10至2021-07-17 18:00:57期间所上传的文件 原因7月16日的一次提交,使得之后文件上传到了一个容器内部的、没有mount出来的目录,容器重启后,这些文件丢失了 补救进入容器,找回了最后一次容器重启后到问题发生期间上传的文件…
阅读全文
21react-typed-i18n 最近学习了一下TypeScript最新的Template Literal Type特性,突然想起来可以使用这个实现一个使用字符串字面量的i18n库,以用来替换之前的使用了一些黑魔法的simstate-i18n库,也在这个新库中解决一些技术债,例如只使用React Context、加入测试、增加一些新功能等。 新的库名字叫react-typed-i18n(GitHub)。花了一个周末将功能和测试写好发到了npm上,并很快把本网站用这个新库重写了,体验比较好。 于是通过此文章介绍一下i18n的概念、常见实现方式以及本库的亮点,其中介绍部分的内容使用了之前写过的关于simstate-i18n的文章 Str…
阅读全文
22wslg Build 2020上微软给大家画了个饼,说官方正在做WSL2的GUI和GPU支持。 大家都知道一些常见开发工具在Windows上运行效率很低(如IDEA的启动速度在Windows上速度比Linux下慢了1倍(相关文章))。 要是GUI和GPU都能用了,那WSL 2和Linux用起来还有什么区别?开发工具在WSL2跑,其他软件在Windows上,best of two worlds,岂不美哉?Linux桌面受到致命打击。 没想到这一等就是一年。最近微软终于放出了官方的GUI解决方案wslg的预览版(GitHub),可以在Insider build上公开测试了。 当然了,我马不停蹄地格掉了一个移动SSD,装上了Windows…
阅读全文
23需求 虽然放假了,但是学校还有活要做,而且学校的活的代码仓库在学校内建的内网GitLab上,在外网需要VPN才能访问。但是,大家都知道连接VPN会让整个系统里的所有流量都走VPN,但是很多流量其实是不需要走VPN的,比如聊天、看视频网站等,VPN是有带宽限制的,把所有流量都走VPN会使得不需要走VPN的网络请求变慢。 那么,有没有办法可以让需要访问内网资源的程序走VPN,不需要访问的程序不走VPN呢? 代理 代理服务器的基本行为就是接收客户端发送的请求后转发给其他服务器。代理不改变请求URI,並不会直接发送给前方持有资源的目标服务器。(维基百科) 简单的理解,代理服务器(proxy server)就是一个程序,它会将它收到的流量转发…
阅读全文
242020年的四个阶段 对我来说,2020年可以分为四个阶段: 与毕设一起在家度过的上半年 在南大的最后半个月 最后的无忧无虑的暑假 研究生的第一个学期 其中前三个阶段都在我的上一篇文章:美好的回忆和未知的未来:写在研究生开学前中这篇文章中做了总结,所以这里就#include一下,前三个部分的内容可以参考上一篇文章。 本篇总结一下这三个月研究生生活,记录一下这一年里一些值得纪念的生活小事,并用一些对本年的经历的一些思考来结尾,以此来告别这个魔幻的2020年。 三个月研究生生活总结 课程 一般提到研究生课程这东西,大家都会习惯性忽略,说:研一主要就上课就行了。但是呢,研一这研究生课程这东西嘛,它虽然不重要,但是也挺闹心的。 研究生课程确…
阅读全文
25昨天晚上把重达100多斤的行李寄走了,标志着研究生生活的开始。在这个最长的假期中,我止不住地回忆过去四年的美好生活。而对于研究生以及未来的生活,我却充满了未知和迷茫。 最长的“假期”:为四年划上句号 毕设 一场突如其来的疫情打乱了本科最后半年的计划,从和在学校边和兄弟们享受人生边做毕设,变成了……在家里疯狂做毕设。 选课题的时候,学院老师给的课题中至少一半都是机器学习相关,剩下的看上去要么是搬砖要么是学术,完全不感冒。于是找了研究生导师要课题,没想到一要就是一个大项目,虽然也是搬砖,项目最后也是个玩具不投入实用,但是算了,没办法了,996地连续肝了2个多月(但其实每天真正写代码的时候只有8-9h小时),才最终肝完。 肝这个项目还是学…
阅读全文
26WSL 2使用GUI 众所周知,WSL 2开始使用真正的Linux内核,所以理论上来说,我们已经可以在WSL 2运行几乎所有的Linux程序,包括带有GUI的Linux程序。但是目前来说,由于第一方X11 Server的缺失,WSL 2主要还是在命令行中使用。 Build 2020上,微软已经宣称开始做WSL 2的GUI支持,并已经给出了宣传图。 但是,事实上,借助X11 Forwarding,我们现在已经可以做到类似的效果了。 如果你之前折腾过在WSL上跑GNOME等各种桌面环境,则这篇文章的原理和那些文章是一致的,但是由于不需要启动桌面环境,其使用更加方便,各种Linux程序窗口和Windows的集成更加无缝,个人认为实用性比启…
阅读全文
27小款手机已经消失了 我记得,当我第一次拿到一台HTC Desire HD(G10)时,那4.3寸的屏幕带给我的震撼。 我记得,当三星刚推出5.3寸的Galaxy Note时,众人对这“巨大”的屏幕的感叹。 我记得,当苹果第一次推出4.7和5.5寸的iPhone 6和6s时,网络上对未来的iPhone的调侃。 可是,从2018年起,手机越来越大、越来越重的趋势无法阻挡了。 或者更准确地说,小款的手机已经消失了。 2017时,一种宽度在70mm以下,重量在160g左右的版本占据了手机市场的半壁江山。在16:9屏幕的非全面屏时代,这个尺寸大小的手机一般为5寸屏。而占据另一半的手机,宽度普遍在75mm左右,而除了iPhone的Plus款以外…
阅读全文
28问题 众所周知,国内微软服务的连接性很成问题,并且这个问题越来越严重了,所以必须要让这些应用通过梯子才能正常使用微软服务。 梯子一般都会设置系统代理,其原理是在本机localhost的某个端口上监听网络请求,并将请求发送到服务器。绝大部分普通的Win32应用都会遵循系统代理的设置,包括OneDrive桌面应用等,所以这些以Win32应用形式存在的应用程序可以很简单的解决。 但是微软的很多应用,例如自带的Windows商店、邮件、照片等,都是UWP应用,而UWP应用禁止了将网络流量发送到本机(localhost),所以UWP应用是不能直接使用这种系统代理的。 手动解决方案 微软同样自带了一个工具CheckNetIsolation.ex…
阅读全文切换到Linux 最近Windows在我电脑上不知为何响应很慢,非常影响我使用电脑的体验,甚至在用WSL2时,输入命令都出现了卡顿。 而一般来说,Linux相对于Windows,一个很大的好处更节省资源,并且在运行一些程序时效率更高,比如VSCode、JetBrains系IDE、emacs等等开发者常用工具在Linux上的启动速度和Windows完全不是一个等级的。 所以我产生了在实体机上装Linux的念头。但是由于主力笔记本有时候还是需要使用Windows下的一些软件的,所以我选择在家里的一台2013年的老电脑上安装Linux。 之前也折腾过很多次Linux,但是无一例外,之前的Linux要么是虚拟机,要么是Intel核显的笔记本…
阅读全文
30引言 我是个智能手表的老用户了。从13年开始购入我第一款智能手表Pebble开始,我的左手手腕一直都被智能手表占据着。在这篇文章中,我想简单讲讲我购买并使用过的智能手表的体验,我对智能手表的分类、作用、问题和发展趋势的分析,以及最后我对智能手表的期待的三个层次:可靠性、辅助功能和多屏协同。 我用过的智能手表 本节以下照片除了有提到引用来源之外,均为我自己实拍,标题括号里为我的购买时间。 Pebble(2013年12月) 智能手表其实出的很早,不提20世纪那些电子表类型的“智能手表”,21世纪的第一个十年也已经有一些智能手表问世。而如果你现在去看各种智能手表的榜单(如这篇文章),Pebble绝对会在里面有一席之地。 为什么? 我认为,…
阅读全文
31题外话 最近3个月博客都没更新,不是因为我弃坑了,而是因为这几个月一直在忙着搞毕设。本以为毕设只是个j2ee,没想到朝9晚9搞了2个多月。现在终于搞完了,博客也(应该?)开始恢复正常更新了。幸运的是,在做毕设期间我积累了很多可以用来写博客的材料(本篇文章也是其中之一),接下来的几个月将慢慢更新。 VSCode 当大家一提到编辑器还是Sublime, Notepad++时,我就开始用VSCode了,也很喜欢VSCode的优点: 生态丰富,功能多样 界面现代 对WSL友好 对Windows友好 在不同场景下拥有统一的体验 等等 因此,我在用VSCode做尽可能多的事:前端开发、新语言(Rust, Golang, Haskell等)的学习…
阅读全文
32前言 吸取了去年的年终总结从元旦咕咕咕到除夕的教训,这次我提前3天(2019年12月29日)开始写了,终于赶上了~ 最后的课程(?) 这一年中,上了本科阶段最后的课,考了本科最后的考试,除了毕设,基本已经可以和本科做告别了。这一年的课程基本都是软院的典型课(=大作业+背书考试),其中zh的体系结构和实证软件工程、czy的测试课和人机交互给了我比较深刻的记忆。 zh zh作为成绩杀手果然名不虚传:体系结构同一门课,两个班不同老师讲(其中一个是zh),卷子不同,总评平均分可以差10分。体系结构虽然讲的内容挺体系结构的,既有理论也有实践,但不可避免的是仍然成为了纸上谈兵的课程。三篇不知所谓的论文,外加8人团队2周做(赶)出来的项目demo…
阅读全文
33出手已有显示器 最近身边几个同学配了新台式机,而且都是3700X+1660Ti的特别香的配置,让我心里直痒痒 :persevere:,但是身为一个坚决的等等党 & 防止49年入国军 & 明年下半年要换个城市呆着,台式机还是等到明年到新学校后,配Zen 3和30系显卡比较好。 但是呢,同学装机,得要显示器吧,我的显示器(ThinkVision X24q)正好也用了3年多了,用起来虽然没什么大问题,但是以后换了电脑,用个2K60还是太浪费配置了,换是肯定得换的。要换新,就要卖掉旧的显示器,而从闲鱼出的话,得清洁、拍照、和卖家详细介绍、包装、快递的,更别提碰到杀价党。而同学装机,也需要显示器,这不正好是一个出手好机会?不用…
阅读全文
34为什么一直没有暗色模式? 我是个暗色模式的粉丝。不管是操作系统、还是各种应用,只有有暗色模式,我肯定都使用暗色模式。更别提IDE了。因为我感觉使用黑色比较的护眼,没有浅色背景那样的刺眼。 但是讽刺的是,我的博客一年多都没有暗色模式。这是由于我的博客的主题是直接用的bootswatch提供的主题,而我认为这个网站提供的那套Darkly主题不太好看(主要是一些配色的问题,比如我不太喜欢绿色的链接、按钮啥的……),而在当时我很很弱鸡,不会修改主题提供的颜色选项。所以就退而求其次,选择了它提供的浅色的Flatly主题。 而前段时间,我终于又想开始把网站变成黑色模式。由于这一年中我的前端技术有了一定的提高,所以这次再看的主题的时候,发现修改颜…
阅读全文
35问题 本博客是使用gatsby搭建的,而gatsby官方提供了一个gatsby-transformer-remark插件可以用来将markdown转换成html。此外,这插件在渲染markdown之外,还提供了一些很贴心的小功能,包括词数统计(wordCount)和阅读时间(timeToRead)。这两个小数据放在博客里也能让用户能够简单地知道一篇文章的大致篇幅,从而提高用户体验。 但是呢,这两个功能在之前都不支持非拉丁字符!,让这两个功能形同虚设。并且,插件也没有提供设置自定义的计算函数的方法,所以这两个功能对中文等非拉丁字符用户来说是比较鸡肋的。 难道这功能就这样闲置下去吗?不!我在这里提供几个可以用来在一定程度上修复此插件在中…
阅读全文从三年前Xubuntu开始 想当年大一的时候,由于当时所有预算都投入到游戏本上了(这仍然是我目前最后悔的一个决定,要是当时能直接上台式机,性能能提升很大一个层次),所以外出只能带一台三代i3的联想Yoga笔记本来应付(要是没记错的话,应该是Yoga 11s,2013年的产品了)。虽然这是台预装Windows 8的标杆型翻转屏设备,但是在低压三代i3+4G内存+128G SSD这可怜的配置下,做点普通的工作,性能和存储空间都有点捉襟见肘。于是,当时我萌发了装Linux来省空间、以及让系统运行地更快的想法。当时我安装了Xubuntu,默认安装轻量的Xfce桌面环境(而不是当时Ubuntu默认的Unity),运行速度确实比跑Win8要高一…
阅读全文
37改名 标题越短,事情越大! 我决定将我在网络上的用户名从viccrubs这个至少用了5年的名称,以及daacheen这个用了半个月的名称(捂脸),改到ddadaal。 原因 改名的原因有以下几个: 统一网络身份标识 目前,在网络上我主要使用以下两个名字:smallda,viccrubs。 前者是我最早使用的一个名字,其是我最早使用的中文网名小达的英文翻译。这个名字不能继续使用的原因很明显:我长大了 :joy:。这个名字在Steam和邮箱上仍然存在,所以有时候给其他人共享Steam账号和邮箱时都有点羞耻的感觉 :persevere: 第二个名字是我意识到前一个名字问题后(我觉得应该是14年开始用的)拍脑袋拍出来的另一个生造的名字Vic…
阅读全文Note: This code is from an internal project. Measurements apply to protect confidential information, but the problem and methods mentioned in the article are universal and not limited to specific projects. The Problem I was working on a form that had very poor performance. To be specific, at every key stroke, the form…
阅读全文
39前言 不知不觉,Gatsby博客已经上线了一年多。在这一年中,虽然从表面看起来博客变化不大,但是我一直在对博客做一些更新工作。特别是最近一个月,我对博客一些耽搁已久的问题进行了解决,使整个博客更加的完善了。这篇简单的文章就简地列举一下最近博客一些特别值得提到的更新,目前存在的问题,以及对博客的未来发展做一些展望和规划。 更新 RSS恢复支持 博客的RSS源地址是:https://ddadaal.me/rss.xml。欢迎订阅! 其实博客从很早开始(具体来说,从去年10月的e2e469开始)就已经加入了RSS支持,但是那时候的代码就是随便从网上抄了一段,没有对博客比较特殊的地方(例如说多语言的支持,存在不能显示在列表中的文章等)进行定…
阅读全文
40前言 2016年9月到2019年5月,我在南京大学微软学生俱乐部呆了三年。我从一个初升大学的萌新,变成现在马上就要毕业的大四老狗,其中南京大学微软学生俱乐部给了我许多。新学年的南大微俱的招新就要开始了,我想是应该总结下在我在俱乐部三年的成长和变化,希望有更多学弟学妹们能够加入俱乐部,和俱乐部一起成长。 2016年9月:一张海报开始了俱乐部的旅程 上了大学后,很多同学都加入了各种俱乐部或者院系组织,而不擅长交际的我却还窝在宿舍。一个偶然的机会,我看到了微软学生俱乐部的海报,感觉非常好奇:为什么一个公司也会在大学里运营俱乐部呢? 带着这份好奇,加上一直是一个微软粉的缘故,2016年9月6日,我参加了宣讲会,选择了技术部,通过了面试,加入…
阅读全文
41怎么又要保研了? 其实我从大二开始就开始准备直接去工作的。根据我的规划,项目、比赛、刷题、实习和转正,之后就是直接踏入职场了。而这个规划以外的、很多同学大学期间做的工作,例如说找老师、进实验室、做科研、发论文,我完全没有想过。 到2019年4月,这个规划进展非常顺利,项目、比赛都有能拿出来的成果,刷题也勉勉强强足够应付MS的要求,实习Offer也顺利到手。 结果没想到这个时候发生了一件影响颇深的事,那就是贸易战。由于个人无法接受996,所以外企几乎成为了唯一的选择。但是我认为根据这几年的国际局势以及国内996的趋势,外企在中国的发展前程是比较受限的。所以,趁着这么好的机会,读一个研究生,不仅在以后找/换工作为自己增加筹码,还可以避开…
阅读全文
420. 作者 学号姓名 161250010陈俊达 161250002蔡蔚霖 161250060李培林 161250199张凌哲 1. 简介 在本报告中,我们使用MVC、MVP、MVVM和FRP分别实现了一个Android局域网群聊应用,并通过分析在使用这四个架构实现应用功能的过程中每个架构所表现出的特点,来分析每个架构自身的优点和缺点。 2. 项目说明 项目地址:https://github.com/ddadaal/android-chat-in-4-patterns 项目可直接使用Android Studio打开,需注意Android Studio应安装有lombok插件(安装教程)。本项目分为3个模块 :app, server,…
阅读全文
43介绍 经过几个月的准备、投简历、面试和(最让人难受的)等待,终于在4月16日拿到了微软苏州STCA SE的实习Offer。所以在这里记录一下这几个月来所经历过的实习相关的事情,并想发表一下关于实习、关于未来计划的一些思考。 面试前 面试前最重要的当然是刷题、选择职位投递简历。在这次夏季实习之前的2018年底和2019年初,我还经历了一些和微软相关的面试经历。而且,这次夏季实习生的投递简历的过程也是一波三折,在上海和苏州的职位中纠结,最终还是选择了苏州。下图为投递过但最后撤回的职位。 2018年底:微软冬季实习 2018年10月份的时候看到了冬季实习的消息(当时的微信推送),感觉非常激动,于是很快就把简历投了上去,选择的职位也是微软苏…
阅读全文
44i18n and The "Raw String" Problem Internationalization, also known as i18n (18 characters between the leading i and trailing n), is about making a product friendly to global users, and one of the most important work is to deliver common contents using different language according to user's preference. For example, for…
阅读全文
45Why If you have got used to using DI framework (like Spring) to manage and inject dependencies, and now you have to start a new, relatively simpler, but not so simple project, you have 2 options to work with in terms of dependency management: introduce a full blown DI framework and waste plenty of time in numerous and…
阅读全文前言 最近几年,前端技术发展地很快,各种新的框架和技术如雨后春笋般疯狂出现,让很多同学陷入了选择恐惧症。但是到目前为止,前端技术中最重要的仍然是老三件:HTML/CSS和JS。所以如果想做出一个网站,HTML/CSS和JS都是非常重要的。 我知道你现在心里在想什么:hackathon就七天时间,要掌握这么多技术才能写出个网站?我学个C/DLX都要学一学期呢,还这么多,那我退群算了。 这篇文章的目的,就是提供一些现有的框架/工具/教程,希望能帮助你在7天的时间里,拼装出一个好看又有用的网站前端。 在这里强调一下,作者本人目前也还是一个前端小菜鸡,前不久被腾讯AlloyTeam怼得体无完肤,所以如有问题,可以在评论框中指出。本文的重点是…
阅读全文The Problem I accidently encountered a problem during the development of the 2.0 version of simstate: During an iteration of a set of observers stored in a ES6 Map, which contained only one element, an infinite loop occurred. Investigation This problem confused me quite a lot. It had been confirmed that this Map had on…
阅读全文
48What is it? As the title indicates, this is yet another React state management library favoring React Hooks and TypeScript. GitHub:https://github.com/ddadaal/simstate Why use it? Please read repo's README for why and how to use and integrate simstate into your projects, which covers all the APIs, features as well as fu…
阅读全文前言 前不久迁移博客的时候看到了2017年总结,恍若隔世,2018年就这样悄悄地度过了。 咕咕咕到了除夕,距公历新年也过去一个多月了。没想到这一个月中发生了重要的事情,正好借着这个机会写下来,也当做对过去的一年(公历和农历)的总结吧。 比赛和项目 2018年从年初到年末,都有比赛陪伴。做比赛的过程确实比较累,但是收获也不少,除了奖金,最重要的还是在比赛中锻炼了技术,学到了知识,提高了姿势水平。由于比赛太累~~~~课程任务太多太懒,也因为想象力太局限,这一年中大部分空余时间也都花在深耕折腾个人博客上了。 1月:软工2结项,Light x00 虽说在软工2的过程中不停地骂这门课,但是是人还是逃不出真香的道理。软工2成为到目前为止我感受最…
阅读全文
50开端 2018年年底,看到很多同学都去实习了,虽然明知不可能正大光明去,而且MSRA在北京翘课去也很有风险,但算了算三个月也还是有可能,心一横还是先让学长帮忙把简历给了MSRA内部的组,不管怎么样可以体验一次真正的面试,可以为春招做准备。因为本人现在也就web前端比较稍微熟练一点,研究啥的根本没碰过,所以本来是打算投创新工程组和创新孵化组的软件开发实习生去做做前端,没想到学长给投了DKI组(数据、知识、智能组)的,而且DKI组根本就没有在官网公开招工程方向的实习生,只开放个研究实习生的职位……经过一周时间的笔试和面试,加上运气好和面试过程比较水的因素,拿到了梦寐以求的offer,但是却因为各种原因去不了,非常遗憾,可能这也是我人生中…
阅读全文