2024年终总结
总结写得稍微晚了一点,已经是2025年了,因为最近正值论文提交,挤出点自己的时间属实不易。但无论如何,在岁末年初这个节点,对2024一整年写点总结还是十分有必要的。以前似乎并没有这个习惯,但现在愈发觉得还是写会更好,趁年末回顾过去,总结经验,以期未来会更好。
去年的时候好像也给自己定下些kpi,要求每周或每月都要有点文字上的产出,不能把精力都给老板打工干活了。但写作确实不容易,好些年没正经写过文章,如今只会写写实验报告和论文那些没用的废话,正经句子是有点令我抓耳挠腮。毕竟文字与文字之间亦有差异,报告那种东西实在不是文章,可能我写的这些没用的玩意会离文章更近一点。不过也不用搞成什么文章,写成日记就可以了,这也是我一直以来的目标,以后定是要努力贯彻。必须贯彻。
回顾这一年,如果想用一个字形容,高度概括一下我这一年有何感受,我想选“苟”这个字。这个字含义很多,实在适合形容这一年的我。下面借含义详细回顾下。
苟——菜苟,菜也。
《玉篇·艸部》
苟菜是什么,我也不是很清楚,反正是一种菜罢了。比较巧的是,我也挺菜的,so形容我实在合适不过。所谓菜体现在许多方面,但最主要的体现,便是在今年最重要的 ...
C++选手秋招总结
本文最早发表于牛客,自认为写得颇为用心,因此将其转载到个人博客。
秋招进行到现在终于能写总结了。完全没想到战线会拉这么长,过程会如此狼狈,不过更应该怪自己太菜了。好在所有的运气都用在了最后,也是有个去处。
背景:双2本硕科班,无竞赛,本科一段研究所实习,硕士一段大厂暑期实习但无转正。技术栈是C++ & Golang,实习是客户端音视频(而且是鸿蒙端开发),简历两个C++项目一个Golang项目
主要投递岗位:后端,cpp软开,游戏服务端,测开,以及一些不拘泥于Java的岗位
从8月起总共投递123家公司,笔试数不清了,约面大约30家
offer/oc/意向:友塔游戏(第一个offer,面试体验很好,就是给钱好少南瑞继保(计算机科班点击就送,不少同学签了万得Wind(听说wlb,但是风评很差深信服(感谢最佳雇主开出来的仨瓜俩枣吉比特/雷霆游戏(工具链开发,工作强度wlb,就是钱不多中兴(AI相关,但钱少还pua,约面巨晚,一直问我能不能接受996作业帮(核心部门,面试体验还行,但最后开出来个烂白菜OPPO(岗位还行,但是不想去荣耀(本来南京b ...
C++17 实现简易线程池
看到有些面经说被要求手撕线程池啊,多少有点吓人
所以感觉准备了一下,虽然感觉也背不下来 QAQ
C++17 实现,纯代码 80 行左右,可以实际运行,参考文献在文末。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119#include <iostream> #include <thread> #include <condition_variable> #include <mutex> #include <vector> #include <future> #inc ...
常用设计模式
设计模式策略模式策略模式定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立与使用算法的客户。
主要组成部分:
策略接口,定义算法的接口,通常是一个具有执行方法的接口
具体策略,实现策略接口的具体算法
上下文,持有一个策略类的引用,实际调用算法接口的方法
优点:
避免开闭原则,可以在不修改现有代码的情况下引入新的策略
避免使用多个条件判断,通过策略类来替代条件判断语句
提高代码的可维护性和可读性
缺点:
增加对象数目
客户端必须知晓所有策略
观察者模式观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更行。
主要组成部分:
主题(被观察对象),是指被观察的对象。它提供了注册、移除和通知观察者的方法
观察者,定义了一个更新接口,用于接受主题的通知
具体主题,实现了主题接口,维护了一个观察者列表,当它的状态发生改变时,通知所有注册的观察者
具体观察者,实现了观察者接口,以便接受主题的通知并进行相应的更新
优点:
解耦,观察者模式将观察者与被观察者解耦,使他们可以独立变化
灵活性,可以在运行时增加或者删除观察者
...
记大厂离职
封面是离职当天拍摄的科兴科学园。
悠哉悠哉,混了两个多月后,终于从鹅厂离职了。
离职的一个原因其实也很简单,感觉转正无望,实习又学不到什么东西,就只好润了。今年公司实习生非常多,水平也很高。原以为自己这两个月工作量应该不少,但奈何如今内卷成风,临近转正代码 CR 时才知道其他组里实习生居然做了那么多工作,更有甚者已经在部门级别的分享会里做汇报了。我这工作量顿时显得单薄,还是别去当炮灰了。
不过感觉太卷了只是一个原因,如果仅仅是卷的话我还是会参加一下。但部门这边答辩时间的一拖再拖我真是没法忍了。本来说八月中旬答辩,到八月后又说八月下旬答辩。直到我离职的时候还不知道具体的答辩时间。今日和同组实习的同学吃饭时才得知,最后答辩时间被拖到了 9 月初,这还答辩啥啊。今年秋招又比往年提前,这出结果黄花菜都凉了。同学最终也选择了放弃答辩,不过他是本科生,可以回去读研。我顿时又有些羡慕,可惜自己不能再找地方多躲几年。
从互联网实习感觉收获还是挺多的,毕竟之前一直在学校小作坊打工,第一次接触到正式公司的业务开发流程,感慨颇多,读研的时间果然大部分还是浪费了。在公司做业务感觉最重要的还是产出,不仅仅是 ...
记大厂打工
今天深圳风确实很大,把我脖子上的工牌吹得飞起,还好带子够长,不会打到脸上。虽然已经在厂里打了三星期的工,但这工牌还是戴不习惯,就像西装的领带,总像是有个无形的大手在牵着我。我也挣扎不了,只能随它去了,牵着就牵着吧,反正被牵着也不是一天两天了。
总的来说大厂实习过得还是可以,起码比在学校给老板打工要舒服。公司里不会大周末的找我干活,也不会晚上十一点给我发消息。资本家虽然会剥削,但是先进的生产关系带来的生活质量的改善还是肉眼可见,比手工作坊或者师徒行会要强多了。感觉现在除了因为没毕业还有学校的乱七八糟的事要操心,每天最大的烦恼就是午饭和晚饭吃什么。所以赶紧毕业吧,这研究生真不是人读的。不过我都被人牵着了,读得难过也是理所当然。
哦,每天烦恼的事还有早上起来上班,一个是早上根本起不来,另一个是选择什么交通工具上班。起不来很好理解,我打赌没人大早晨想到今天要上班能高兴地从床上蹦起来;交通工具的选择就更复杂了,是坐公司的班车,还是公寓的班车,还是公交,或者是打车,每天早上都要思考一下。还是住的离公司有点远,以后租房必须要在地铁旁边。
今天还收到了两个公司的邮件,一家给我发的是感谢信,这是我暑期实 ...
Windows 自动运行连接校园网的 Shell 脚本
因为最近在用教研室的电脑挂 PT 站,然而学校拨号上网居然不给分配 IPV6 地址,只好连无线 AP 了。但是校园网总是没事就掉一下,有点恶心。
早些日子写了一个登录校园网的 Shell 脚本,本来是用在 OpenWrt 路由上的,这回把这脚本拿到了 win 上用。
校园网登录脚本之前没事干看了很久校园网的登录界面代码,发现校园网的认证逻辑还是挺奇怪的。
校园网认证登录
Post 到服务器,获取 Challenge 码
对 Challenge 码和 password 进行处理,得到一个 md5 加密后的密钥
将密钥和用户名、Challenge 码一起 Post 发给服务器,登录成功
获取 Challenge 码照着浏览器抓取的请求一顿抄:
123456789101112131415RESULT=$(curl 'http://m.njust.edu.cn/portal_io/getchallenge' \ -X 'POST' \ -H 'Accept: application/json, text/javascript, */ ...
使用Pandoc将Markdown文件转为docx格式
pandoc 是一个可以将文件转换成各种格式的软件,支持 macOS ,Windows 和 Linux 。
本篇文章主要记录如何将 Markdown 文件转换成 docx 。
Pandoc 的安装可以参考 Pandoc 官网 。
macOS 可以用 brew 安装。各个系统可以用 conda 安装。
安装完成后,在终端输入 pandoc --version ,如有版本信息,则安装成功。
pandoc 安装完成后,需要安装 pandoc-xnos 插件。该插件主要功能是图片、表格、公式等编号的索引。插件使用 pip 安装。
1$ pip install pandoc-xnos
pandoc 生成 pdf 文件需要使用 Letax 工具。由于我并不需要转换为 pdf,因此这里暂不详述。
Markdown 格式转换为 docx笔者尝试了一些可以将 Markdown 格式进行展示的方法,但效果都不够好。最终发现转换成 docx 格式最适合在组会上展示。
根据相关资料,pandoc 直接将 Markdown 转成 docx 格式可能会出现格式问题。因此需要先转换为 html 格式,再转换为 d ...
Dockerfile 搭建使用 GPU 的 tensorflow 环境
摘要:Dockerfile 以前一直想看看是怎么写的,但是总忘。前一阵子在给实验室的服务器配环境,突然想起来用 dokcer 给每个同学开个虚拟环境,于是就研究了一下。这篇帖子就是总结一下我学到了什么些玩意。
Dockerfile 的构成。以下写一些主要会用到的。
FROM:镜像从哪里来
比如想拉一个 tensorflow 的官方镜像,就可以这样写:
1FROM tensorflow/tensorflow:latest-gpu
MAINTAINER:镜像维护者信息
虽然我也没搞明白这个具体有什么用,但是似乎是这样写的:
1MAINTAINER <name>
RUN:构建镜像执行的命令,每一次RUN都会构建一层
这个应该属于重中之重了。语法比较简单,直接写 shell 命令就可。需要注意的是,比较好的习惯应该是一层 RUN 中执行很多条命令,而不是每条命令都在独立的一层 RUN 中。
可以用 \ 作为结尾,在下一行开头使用 && 来实现多个命令的执行。
12RUN apt-get update \ && apt-ge ...
树莓派局域网共享打印机
摘要:安装 hplip,cups,以及一些报错问题的解决方法。
安装相关软件hplip惠普打印机在 Linux 系统上有一个软件驱动程序,hplip。
这个软件默认是命令行,可以额外安装 gui。
1$ sudo apt install hplip
如果想安装 gui,可以额外运行以下命令:
1$ sudo apt install hplip-gui
cupscups 是一个 Linux 上的通用打印系统,使用网页进行操作。
首先安装 cups:
1$ sudo apt install cups
安装完成之后,对 cups 进行启动:
1$ service cups start
随后通过浏览器进行访问。访问网址:http://localhost:631
打开之后,可以看到以下截面:
如果打印机正常被驱动,点击导航栏中的 Printers 项,可以找到自己的打印机。
如果没有被正常驱动,可以选择第二列中的 Adding Printers and Classes 来手动添加打印机。
为了在局域网进行共享,需要切换到 Administration 界面中,将以下两个部分勾选:
随 ...