置顶-因你而在的故事
因你而在的故事 2023.6 当我透过学线办公室窗外望去,高楼与山丘,夕阳落日,无限风光,又与何人说。 心灵鸡汤 举头望明月,万般感怀皆在其中, 此情此景,犹如天星照我,愿逐月华。 I go through that so much. I doubt myself every single day. No matter what happens, I continue to doubt myself. And I think I always will and I think it’s always something I’m gonna struggle with. But this song helped me, and helps me moment to moment. I don’t think we can ever hope to fully get over the things that makes us insure, or the voices in our head that say “You can’t do it. You are not good e ...
2024毕业生经验分享会
2024毕业生经验分享会-考研 侥幸上岸北航软院,分享一些个人经验与看法。 主要分享一些方向规划的见解,初试内容复习请去看对应科目的专业老师(张宇,肖秀荣…) 同步在山东大学学生在线wiki:https://wiki.sduonline.cn/zh/Postgraduate-Exam-Experience 路线抉择 要不要考研 这部分内容非常主观,仅供参考 考研是一条漫长、孤独而折磨的路,从暑假到年底,你需要一直坚持,无论有怎样的挫折、困难。你甚至可以认为这是一场肉体和心灵上的淬炼,回头即是深渊。 如果你想去互联网大厂开发岗,考研与否在我看来有点无关紧要,甚至不如不考。大厂工作三年的晋升几乎足以抹平研究生学历带来的offer待遇差,遑论三年工作经验与技术的积累,跳槽时会多三年工作经验,当然,代价就是学历显得单薄一点。 如果阿里的offer能比北航发的早,恐怕我就已经跟阿里签三方了 如果你想去互联网大厂研发岗(尤其是算法),考研吧,别想别的了。 如果想去国企,考研吧,尽量还是别想别的了。 选调这些我不了解(走的人也不是很多,但是本科也能走) 考研路线规划 首先,我们对自己 ...
2024BUAA软院专硕考研tips
2024-BUAA软院专硕考研Tips 2024.4.1,跟老师谈好了导师意向,坐高铁回济南,思绪万千,开始写这篇经验贴。 犹然记得,以前看罗翔老师说过,人生在世,努力固然重要,但更多的是我们的运气,我们的出生、成长、求学、工作。作为一名党员,我并非唯心主义者,也并不相信唯命运论,我始终坚信奋斗者终将有所得,但或许就在我辗转反侧最终决定报考北航的时候,命运的齿轮开始了转动。 首先,例行劝退,尤其是对于非科班出身的同学来说,我并不认为考软院是一个很好的选择,你要确定你至少对软件工程的思想有一定的把握,同时能够接受c语言的机试,能够对复试的编译原理有一定悦纳。(很巧,这三样我都不差) 你要知道,选择大于努力,今年buaa学硕310分的院线都直接没招满,最初20的名额,只有18人上线,最后18人进复试,18人全部录取。同样的,也有370进不了初试,400+复试被刷。 所以,不如仔细想想,buaa真的适合你吗?或者说,什么样的初试和复试能够取你之长,避你之短。 以我自己为例,首先我的计算机组成原理和概率论学的很烂,而且我也不喜欢这两门课,所以首先排除考数一和408的可能性,这是我的底线,永 ...
BUAA复试专业课拾遗
BUAA复试专业课拾遗 数据库 什么是关系代数 关系代数是关系数据库系统中的一种数学基础,用于描述和操作关系数据库中的数据。它包括一组操作,这些操作可以对关系(表)进行操作和组合,以生成所需的结果。关系代数操作通常包括选择、投影、连接、并、差等操作,这些操作可以用来查询数据库、插入数据、更新数据等。 关系代数提供了一种抽象的方式来描述数据库操作,使得数据库管理系统能够根据用户的查询需求来优化查询执行计划。关系代数是关系数据库理论的基础之一,它为关系数据库系统的设计和实现提供了重要的理论支持。 数据库概念中,什么是聚集函数 在数据库中,聚集函数(Aggregate Functions)是用于对一组值进行计算并返回单个值作为结果的函数。这些函数通常用于对数据库表中的数据进行统计、汇总或计算,例如计算平均值、总和、最大值、最小值等。 常见的数据库聚集函数包括: COUNT:用于计算指定列或行的行数。 SUM:用于计算指定列的总和。 AVG:用于计算指定列的平均值。 MAX:用于找出指定列的最大值。 MIN:用于找出指定列的最小值。 通过使用聚集函数,可以对数据库中的数据进行汇总和分析,从 ...
24春招面经
24春招面经 作业帮 一面 3.1 先拷打了一顿项目一些业务的实现细节,完全没预料到,好在印象都还有,口胡都能胡过去,所以有点汗流浃背,但不多 主要是照着简历的项目经历问的技术。 你的性能优化主要是做的那些工作,原理是什么(简历上的 讲讲JNI 用过什么JSON。我讲了讲Flutter的json跟native的json(FastJson) Workmanager做了什么。我讲了讲本地推送的实现 你对MVVM的了解?(讲了讲MVC-MVP-MVVM的特点,讲了讲MVVM优势 项目里你做的比较难的一部分? 其他的记不太清了 然后是安卓FrameWork SharedPreference相关,实现原理,多线程访问安全性 网络请求用过什么?我:OkHttp。能展开讲讲吗?不能 应用启动模式。ez 内存泄漏的场景有哪些?解决方案? 问了点Linux,有哪些进程同步机制 JVM: 垃圾回收机制。 双亲委派机制是什么,有什么好处吗 计网: http跟https?了解的不多 tcp跟udp 其余记不太清了 算法题:反转链表+写一个单例模式,险些汗流浃背 二面 3.7 又一顿项目一些业务 ...
毕设从调研到完工
毕设从调研到完工 基于个性推荐的商家自播带货系统 题目概述 自播带货APP系统是一种利用互联网平台和直播技术进行商品展示、咨询答复、导购和后台服务的新型服务方式。该系统允许商家通过自己开设的直播间,由主播进行商品推介和销售。 通过自播带货APP系统,商家可以实现近距离的商品展示,将产品的特点和优势直观地展示给观众。主播可以通过直播实时与观众互动,回答他们的问题,提供专业的咨询和导购服务,帮助观众做出购买决策。该系统还提供了后台服务功能,商家可以在后台管理系统中对商品进行管理和上架,设置商品的价格、库存等信息。同时,商家可以通过系统统计分析观众的购买行为和偏好,为观众提供个性化的推荐和服务,提高销售转化率。 自播带货APP系统的优势在于,它打破了传统的线下购物限制,消除了时间和空间的限制。观众可以随时随地通过手机或电脑参与直播,享受到线上购物的便利和快捷。同时,系统提供了实时的互动功能,观众可以与主播进行即时的沟通和交流,获得更好的购物体验。 软件过程核心思路与开发计划 参考软件工程的可行性分析、需求分析、软件设计、软件开发、测试维护的流程,不对各个阶段做完全明确性的划分,同时对各 ...
2023数据库课设经验分享
2023数据库课设经验分享 我的数据库课设与我的一些看法 首先,我的选题是火车票售票系统,所以我的讲解很多会以此为例,我的老师是李晖老师,不同老师风格有有所不同,所以如果你有验收等等方面的问题,最好咨询一下对应老师带过的学长学姐。 其次,我依然觉得数据库课设是一次非常重要的锻炼个人实际开发能力的机会,如果你觉得自己毕业后大概率做开发工作(前端、后端等等),那么数据库课设是一次非常好的锻炼自己能力的机会(当然,对于软工来讲,你也可以选择做算法岗、运维,产品等等)。 此外,针对软院培养方案来讲,你的数据库课设在后续课程中大概率会被多次复用。以我个人为例,我的数据库课设在暑假结束验收完后拿了A,大三上软件工程实验我们复用了一次数据库课设(当时用的是我队友的,问就是我懒),大三下项目管理也会用到(不过当时我直接拿i山大举例了),如果你选了刘士军老师的服务开发这门课,那么还会用到一次(这次用的是我的,队友保研线边缘挣扎,我没啥保研希望比较闲,直接把整个实验全包了,最后拿了个99,可能跟我的课设更偏向后端有关)。所以有个成熟、完整而熟悉的项目对你后续课程帮助还挺大的。 最后,我个人对数据库课设的总 ...
删除gitignore修改前提交的大文件
删除gitignore修改前提交的大文件 How 当发现忘记将一个300M的文件加入了git而无法提交到github的时候,你只能通过gitignore补救,但由于已经被版本控制记录过,所以就算你在gitignore里加入了规则也无法push。 所以需要将版本控制中涉及的这个文件删掉,这个错误我已经犯过好多次了,毕竟并不是很容易注意到,在这里记录解决方案。 首先,在git仓库路径下 12345git rm -r --cache .git add .git commit -m ".gitignore now work" 但是这些还不够。 如果是要删掉指定文件 1git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 【文件路径】' --prune-empty --tag-name-filter cat -- --all 要删掉记录的文件的路径:src/main/resources/config/application-test.yml 则代码为: 1g ...
记一次博客公式渲染排查
记一次博客公式渲染排查 Hexo博客公式非常容易踩的两个坑:一个是公式美元符号与公式之间存在空格,里另一个是不符合KaTeX语法。 而且这两个问题在Typora下是完全看不出来的。 我的数据库博客就有很多这样的问题,相当长的一段时间里没有解决。今天抽空搞定了,写点心得。 空格问题 这个其实非常好解决,比如 $ \forall a \in A $ 我们只需要将 “$ ” 和 " $"直接进行替换就行(注意带上空格)。同时这种问题在博客中特征是非常明显的,通过浏览器搜索美元符号就能排查。 KateX渲染问题 这个要麻烦一些,因为并没有明显特征,只能遍历博客检查。 由于我通常喜欢用LaTeX写,但Hexo渲染实际上用的是KaTeX,但Typora里也看不出来KateX下有没有问题 我遇到的暂时是这两个情况 与或非:∧,∨,¬\wedge ,\vee,\lnot∧,∨,¬,\wedge ,\vee,\lnot与\and ,\or, \not,后者就会出现渲染问题 \overset,这个我也没太细究怎么解决,直接放图片了事 一些调试Tips 推荐使用 hexo g &am ...
A-star路径规划
A star路径规划 简介 静态环境下,A*算法通常有较好的性能。静态环境指的是在路径规划过程中,环境的状态不会发生变化,例如在一个没有移动障碍物的地图中规划路径。在这种情况下,路径规划算法只需要考虑地图的固定障碍物和起点终点的位置,不需要考虑环境状态的变化。 动态环境指的是在路径规划过程中,环境的状态会随着时间而发生变化,例如在一个有移动障碍物的环境中规划路径。在这种情况下,路径规划算法需要不断地感知环境的变化,并及时更新路径规划结果,以适应环境状态的变化。这种情况下,需要使用更加复杂的路径规划算法,例如蚁群算法等,来适应环境的动态变化。 经典算法 广度优先搜索 为了更好的理解 A*算法,我们首先从广度优先(Breadth First)算法讲起。广度优先搜索以广度做为优先级进行搜索,从起点开始,首先遍历起点周围邻近的点,然后再遍历已经遍历过的点邻近的点,逐步的向外扩散,直到找到终点。这种算法就像洪水(Flood fill)一样向外扩张,算法的过程如下图所示: 在上面这幅动态图中,算法遍历了图中所有的点,这通常没有必要。对于有明确终点的问题来说,一旦到达终点便可以提前终止算法,下面这 ...
PID算法
PID算法 所谓的PID,指的是proportion,integration,differentiation,比例,积分,微分。 PID的基本思路是根据偏差量的大小,运用比例P、积分I、微分D计算出一个控制量 uuu,将这个控制量输入被控制的系统,系统接收到该输入量后会输出一个相应的输出量,PID控制器再检测该输出量,并再计算偏差,然后再循环以上过程。 u(t)=Kp(e(t)+1Ti∫0te(t)dt+Tdde(t)dt)u(t)=K_p \Bigg( e(t)+\dfrac{1}{T_i}\int^t_0e(t)dt+T_d\dfrac{de(t)}{dt}\Bigg) u(t)=Kp(e(t)+Ti1∫0te(t)dt+Tddtde(t)) KpK_pKp —— 控制器的比例系数; TiT_iTi —— 积分时间常数; TdT_dTd —— 微分时间常数; u(t)u(t)u(t) —— PID控制器的输出信号; e(t)e(t)e(t) —— 给定值r(t)r(t)r(t)与测量值之差。 公式可简化为: 对于离散值: u(t)=Kp∗e(t)+Ki∗∑n ...
服务开发
服务开发 Chapter-1:绪论 什么是服务 定义为在一个应用软件内部的一种方法、过程、或通讯。 旨在满足某些业务需求的应用程序的操作。 区别于系统的,服务一个或者一组相对较小且独立的功能单元, 用户可以感知最小功能集。 优势 服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决 服务每个模块都可以使用不同的开发技术,开发模式更灵活 服务强调结构上的“松耦合”,而在功能上则可以整合为一个统一的整体,可以实现有效的拆分应用,实现敏捷开发和部署 API帮助开发者 快速的应用开发与部署 多通道集成 敏捷的服务组合 内部和外部服务的市场 Web技术方案:从RPC到REST web的基石 URI:地址 HTTP:传输 HyperText:表达(除了HTML外,也可以是带有超链接的XML或 JSON) MIME:扩展 本意为多目的Internet邮件扩展,最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。 当它被HTTP协议支持之后,它的意义就更为显著了。它使得H ...
SDU选课黑白名单
SDU选课黑白名单 记一下我的选课黑白名单,纯个人感受,这里只是我选过的限选。不在名单中的课我可能也没选,仅供参考 白名单 Linux(限选,大一下) 很不错的基础课,对我此后的开发历程有很大帮助,虽然老师讲的挺催眠,但如果你有毅力强迫自己学会Linux的话可以不选,但别太自信。 C++(限选) 算法、数据结构等课都有很浓的cpp风格,所以不多bb 众智科学(限选 鹿sir的课一如既往的不错。众智的思想也深刻地影响了我此后的思维方式,让我用更“计算机”的思维看待世界。反正讲课内容跟老师都是好评 传统文学修养(选修 中心线下课,赵焕祯老师,讲的真的超级好! 信息检索与利用(选修 实用技能还能作为选修学分,图书馆开的课,挺好的。 黑名单 人机交互(大三上限选 图形学(大三下限选 任何名字里带数学、原理的限选课 一看就是理论课,然鹅这种一般都很考验自己的自学能力。 此外,偏理科性的课都会很考验自学能力。毕竟据说教学对老师晋升并无裨益,所以很多老师对教学并没有那么上心,并且,课堂更多的作用在于激发灵感、指引方向,不要指望在课堂上学到所有东西。 在大三下我选了机器学习后我更确认了这一点。 此 ...
Butterfly一图流踩坑
Butterfly一图流踩坑 网上参考了非常多的教程,基本的一图流还是很简单的,但是会发现主页头图(index-img)跟页脚一直有一个阴影遮罩,最后也是魔改去掉了。 首先,Hexo\themes\butterfly\source\css文件夹下新建css文件,如transpancy.css,在主题配置文件_config.yml(或者_config_butterfly.yml)中的inject中添加,例如: 1234inject: head: - '<link rel="stylesheet" href="/css/transpancy.css">' bottom: 文件内容如下: 1234567891011121314151617181920212223242526272829303132333435363738394041/* 头图透明 */#page-header:before{ background-color: transparent!important;}/* 头图透明 ...
网页解除复制粘贴限制的一些小技巧
网页解除复制粘贴限制的一些小技巧 这个小技巧我很早就在用,最近一次偶然又发现了这种小套路。拿来说一说。 解除粘贴限制 F12进入浏览器开发者控制台,找到对应输入框的事件监听器,在监听的事件中很容易找到针对paste的限制: 直接移除掉就可以。 而且由于很多组件或者脚本都是复用的,所以移除一次之后就基本上可以永久粘贴(不刷新或者重新进入网页的前提下) 解除复制限制 这个其实跟上面同理,你会找到针对copy的监听。 不过这大可不必,因为你打开控制台后多半就能从网页源码中直接找到你想粘贴的文字。 但这样也比较麻烦,我比较喜欢谷歌浏览器的一个插件:simplyAllowCopy: 你可以直接在应用商店找到并安装,使用。
机器学习实验
机器学习实验 贝叶斯分类器在鸢尾花数据集的实现 最简单的,我们选用朴素贝叶斯分类来实现。这部分原理与公式我在课程笔记中有提到。 笔记地址 知识回顾 基本知识:贝叶斯定理 首先,贝叶斯定理: P(c ∣ x)=P(x ∣ c)P(c)P(x)P(c\ |\ \mathbf{x}) = \frac{P(\mathbf{x}\ |\ c) P(c)}{P(\mathbf{x})} P(c ∣ x)=P(x)P(x ∣ c)P(c) 在贝叶斯定理中,每个概率都有约定俗成的名称: P(c ∣ x)P(c\ |\ \mathbf{x})P(c ∣ x) 是类标记 ccc 相对于样本 x\mathbf{x}x 的条件概率,也由于得自 x\mathbf{x}x 的取值而被称作 ccc 的后验概率。 P(x ∣ c)P(\mathbf{x}\ |\ c)P(x ∣ c) 是样本 x\mathbf{x}x 相对于类标记 ccc 的类条件概率(class-conditional probability),或称为似然(likelihood),也由于得自 ccc 的取值而被称作 x\mathbf{x}x 的 ...
huaweiCodeCraft的一些反思
最近一直在思考究竟在哪个问题上出了问题,我觉得主要还是这几方面: 一是调试的困难,或者说,是我没有太强的调试能力/经验,对于如何将一个exe的输入输出attach到IDE进行调试完全一片空白,导致最后调试只能通过一些输出,虽然写好了自动打包脚本,但是效率还是很低,导致整体问题寻找、开发过程被很大程度地拖慢。 第二是初期设计、讨论的很多问题,在有了最初的思路之后,我虽然将自己的策略以图文的形式进行了阐释,但是对于系统的整个过程该如何设计、有哪些细节、整个流程是怎样的等等等等,并没有进行阐述,而是仅仅对一些关键算法提出来思考,忽略了实际运行的流程以及这个流程可能对自己的算法造成怎样的影响,在没有敲定所有细节的情况下就开始仓促地编码,导致编码中出现了非常多的问题,最后调度策略的代码一改再改。如果在最初的讨论时我能先考虑考整个的算法流程,以流程图的方式将所有细节进行呈现并进行讨论,或许可以更快地解决或避免很多问题。 第三是代码的一些问题,虽然在代码过程中写了很多注释,但整体面向对象的数据控制使得我的代码在阅读时还是更偏困难。 第四更多应该归结于我个人,我在算法水平以及cpp水平上距离真正的AC ...
机器学习-代价敏感学习
代价敏感学习 Background 传统学习中,我们的目标通常是错误率最低,这默认了不同错误分类的代价是一样的,但实际上很多情况下把positive判断为negative跟把把negative判断为positive的代价是不一样的。也就是说: 如果在学习时考虑错误分类的代价,那么我们就可以称之为是代价敏感学习。我们最终的目标也变成最小化总代价。 对于 K分类问题,我们有类似于如下的 K×KK\times KK×K 代价矩阵,C(i,j)C(i,j)C(i,j) 指的是将一个实际上属于 jjj 的样本分类为 iii 所带来的代价。 [C(1,1)C(1,2)...C(1,K)C(2,1)C(2,2)...C(2,K)⋮⋮⋱⋮C(K,1)C(K,2)...C(K,K)]\left[ \begin{matrix} C(1, 1) & C(1, 2) & ...&C(1, K) \\ C(2, 1) & C(2, 2) & ...&C(2, K) \\ \vdots & \vdots & \ddots & \vdots ...