https://github.com/QiYongchuan/MyGitBlogRSS feed of QiYongchuan's MyGitBlog2025-07-16T14:21:47.006412+00:00python-feedgenhttps://github.com/QiYongchuan/MyGitBlog/issues/129INFP极度内耗型人格,如何处理工作上的困难,避免焦虑内耗?2025-07-16T14:21:47.628316+00:00INFP极度内耗型人格,如何处理工作上的困难,避免焦虑内耗?

1.work is work:工作仅仅是工作。这个理念很重要,但是说很容易,做到很难。不过还是需要时刻提醒自己,不要让工作影响生活,影响心情。

2.但是1只是目标,不是方法。仅仅重复一个work is work就是在放屁,我们都知道,作为容易内耗的人,妈的,内耗的根源就是work。 没工作焦虑,有了工作,工作上的破事也造成焦虑。

3.调整心态,不要太care工作。 很多时候我们内耗,患得患失,很大程度是源于:怕。 担心失去工作,担心别人的评价。 不妨换一下心态,这破工作做的这么不顺心了,你看我不顺眼,大不了开了我,我也不干了。 不伺候了!(伺候,猴读二声)

4.面对困难,建立SOP 很多时候,比起困难本身,面对困难时的逃避,自我怀疑更让人焦虑和内耗。(就像拖延,拖延让人痛苦的不是真正去做事,而是在逃避做事时的焦虑折磨人)

所以面对困难,不要一上来就想着逃避。

但没人想一上来就逃避,大概率是因为你过往的经验,你过往无数次的失败,造成的“习得性无助”。

你看到难题,生活中过往无数次的挫败感就袭来了,才导致的你下意识的逃避。

但是工作或者人生不是考试,不是一次定胜负。 你拥有无数的机会去改进,去迭代的,只要你继续做下去。 所以,工作/人生,没有失败,只不过是你进行了某条路径的尝试,并得到了反馈。(如果你没有得到反馈也不要紧,下次尝试你会印象更深。)

所以,不要怕困难,不要怕失败了,这是一次宝贵的尝试,而且是你独有的经验。

5.积极寻求帮助 感觉刚毕业的新人(包括我),很容易陷入到一种困境:任务拿到手之后,必须自己做出来。 遇到不会的了去问同事了,会不会显得太蠢了? 会不会显得我没用?

(没关系,你得让领导知道,便宜没好货:) emmm 开玩笑:-D

不好意思问同事,可以先去问AI。 ok,问完一圈AI,至少有了大概的思路了,这时候如果还是解决不了,就需要去问你的领导了。

对于极易内耗的人来说,你不需要为太困难完不成的任务担心,更不必要操心完不成对公司造成什么不可控的后果,毕竟那是你领导需要考虑的事。

你需要考虑的就是,如何才能在自己能力范围内,解决好这个问题。

当然,寻求公司的资源(包括领导),也算是你的能力范围。

对于容易内耗的人来说,上进心不是问题,问题是太多不必要的上进和担心了,所以更需要一些“摆烂”与“放下”来中和。

]]>
2025-07-10T05:56:58+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/128科学上网:如何在没有梯子的时候,续费/订阅梯子呢?2025-07-16T14:21:47.859345+00:00(一)

周六的时候,手机上的梯子挂了,以及电脑上的梯子也突然不好使了,一下子没办法科学上网了。

科学上网这玩意,就像空气,不在了才意识到它的重要性。 (最关键的是,已经习惯了gpt、gimini等,没了它们我可怎么写代码啊!?)

So,必须解决。

但以往的时候,我一般会备用几个梯子(有的会按月付费,有的是长期的),一般不会全部挂掉,这样即使某一个挂了(或者过期了)我也可以在科学上网的状态下,很顺利的更新订阅,然后从clash导入新的订阅即可。

之前这篇博客中贴出的:扫盲:科学上网

但是因为自己前段时间出国,没怎么维护自己的梯子,导致最近只剩下了一个梯子在用,结果这个梯子在过期之后,没办法科学上网了。后果就是,即使我艰难的在非常卡的状态下,成功续费了我的订阅,但是,没办法,下载到我的clash上。(无论是直接从url导入还是直接尝试从官网一键导入,均无法导入。 即陷入了梯子悖论,你必须有一个能科学上网的梯子,你才能成功打开/导入你的梯子。 因为目前大多数提供科学上网的网站,在中国大陆都是被墙了的。)

Image

想起了这个图,感觉非常的贴切:

Image

(二) 尝试的方法

1.奶昔机场 2.老王vpn 3.COO 4.SakuraCa

1.奶昔机场:”最贵的机场“

一开始是我电脑是经常用的梯子突然不好使了,我想起之前网友推荐的一个vpn,奶昔机场。说是很贵,但是很稳定。 我当时点开看了一下,一个月的话117元,当时因为我用的梯子还算稳定,便没有考虑。

但在周六梯子挂了的时候,便想尝试一下。但是事实证明,贵的也不一定好使。在”梯子悖论“面前也败了下来。如果你处在一个完全没法科学上网的网络中,奶昔机场也无能为力,官网整个卡死,很难打开,最后即使是侥幸打开了,你成功付费订阅了,也最终会卡住最后导入的那一步。

即,你即使买了,也没办法导入到你的clase or 官网提供的工具上。

吐槽的另一点是,官方文档有点落后了,很多地方对不上。比如下面这个,有介绍官方的手机软件,但是只提供了一个截图,没有提供下载的链接:

Image Image

如果能有这个app的话,直接通过注册的邮箱密码登录上去,应该能解决”梯子悖论“,必须先有科学上网的环境,才能导入订阅。 (后面我成功解决,也是通过SakuraCa 邮箱的方式成功登录的app,才跳出的这个”梯子悖论“)

总之,奶昔机场,虽然贵,但是在完全没有科学上网的环境下,从0到1的场景我目前是没有跑通。

2.老王VPN

老王vpn算是老相识了,如果真论起来的话,好像几年前第一次打开异世界的大门就是因为老王vpn。

免费vpn,而且可以直接在中国大陆的网络环境下搜到apk,直接下载到手机上。也正是因为这个vpn,后面得以接触了更多稳定的vpn,才得以一直延续下去的。后面有了稳定的vpn后,再加上有传言老王vpn被招安了等等传言,很久没用了。

这次实在没办法,不得以回来找老相识帮忙了,期待先靠老王连上科学上网的环境,然后再导入我其它vpn的订阅,得以续费上。

但是这次失望了,老王不再坚挺了,没有成功连上。

(不知道是不是下载到了盗版的原因,在查一些资料的时候发现,正版的老王vpn已经从google store上被下架了,而开发者说从没在除谷歌商城以外的任何地方发布过应用,市面上能搜到的良莠不齐,有可能有风险。 再加上被招安的传言,担心信息安全,这次也没有折腾太久老王vpn,没用就直接卸载了)

  1. SakuraCa

SakuraCa算是使用比较久的一个机场了,但是期间一度出现了更快价格更低的机场之后(EFcloud,以及COO),把它当成备用的了,但后面一度觉得别的更优秀就没续费,没想到关键时刻救了一命。

在尝试了上面几个机场,在没科学上网的环境下无法导入的问题后,我重新试了试SakuraCa。

它最大的一个好处是,完全可以在无外网网络的环境下,能够从百度搜索到其官网,然后登录你的账户进入。不得不说,这方面做的还是挺好的。 (其次是文档,可以看更新时间,还是非常及时的)

Image

当然,只进入官网也没用,最关键的一步是:如何在没用科学上网的环境下,导入你的订阅信息,成功科学上网。

一般我们导入订阅的方式有几种:

一是通过clash软件,无论是直接通过url导入你的订阅还是通过官网上”一键导入“订阅,这个我们以及尝试了好几种机场的订阅链接,发现无论是哪个,在没有外网的情况下,都没办法下载导入。 这也是我们反复提到的”梯子悖论“。

但SakuraCa 还有一种方式,即通过其官方客户端SakuraCa,直接通过你注册的邮箱来实现登录。

登录后, 你在官网购买的链接也会同步过来,点击链接即可实现了科学上网。(有时候可能登录有问题,需要等待,再尝试几次)

Image

当然,手机端也提供了app,同样只需要登录即可,避开了”梯子悖论“。

补充: 手机端下载并按照apk的方式,你可以先从电脑端的官网下载好apk,然后通过微信传到手机上,然后通过夸克 直接打开你的apk,即可安装。

补充2: 只要你能成功连接到科学上网的环境,此时你就不需要一定通过SakuraCa 的工具登录了,可以导入你的订阅信息到clash或者其它工具就好了。 (因为之前印象中这个工具有时也不稳定,不如直接用clase比较好)

补充3: 最关键的还是,多搭配几个机场来使用,要有备用的机场。 详细可参考之前总结的那篇中用过的,目前来说还在更新的是还没有跑路的,可以选几个便宜的备用。 扫盲:科学上网

]]>
2025-07-06T08:00:40+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/127【ADHD】为何有的药物有效,有的药物无效?2025-07-16T14:21:48.088144+00:00_源于我发的一个帖子引发的讨论,我自认为很有意义:

这本身也是我很久之前的疑惑: 1.ADHD的诊断并没有【病理标志物】 2. 精神类疾病的药物,并不是对所有人有效
3. ADHD的患病机理以及药物的机理,也并不是非常清楚。_

以下是讨论:

Image

Image

Image

` 你提到了一个极其关键的问题:“我们之所以无法解释个体差异,是不是本质上还在于,我们对‘患病原因’和‘药物机理’的认识不够清楚?”

这其实是目前整个现代医学(特别是精神医学、免疫学、肿瘤学等领域)所面临的根本性问题。

是的,虽然我们用了几十年研究药物作用机制(pharmacodynamics)和个体差异(pharmacogenomics),但许多药物在临床上仍是“黑盒子”——我们知道它“好像”有效,但不知道为什么对A有效对B无效,甚至不知道药效产生的终极分子路径

这不只发生在精神类药物(如哌甲酯、氯硝西泮、SSRI),也发生在:

  • 抗癌药(靶向药对某些基因型起效,对另外的就不起作用);
  • 疫苗(某些人产生抗体反应非常低);
  • 抗抑郁药(有效率在65%左右,大量个体无反应);
  • 同一种药在不同人群中产生不同副作用(甚至过敏/致命)。

这不是医生的锅,也不是药厂的锅,这是**“我们对生命系统的理解还远远不够”**的体现。

`

Image

Image

]]>
2025-06-22T04:52:21+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/126【ADHD】痛苦的副作用与决定停药2025-07-16T14:21:48.312933+00:00Image

如图,为吃药的第三天,在吃之前,看说明书已经知道可能会有副作用,但没想到副作用对我来说会这么明显。 但意料之外的更严重的一个副作用是,情绪控制能力或者说感知能力变得更差了。

更容易情绪化,更难处理和应对情绪了。大概是吃药的第四天的时候,因为一点小事,跟女朋友大吵一架,然后摔门出去了,一晚上不想回家,甚至第二天也深陷在沉重的情绪之中,到了第三天才慢慢减退。 大概一方面是因为结婚的事情,莫名的焦虑起来,另一方面是因为药物的副作用了,那几天脑袋整个昏昏沉沉的,像行尸走肉,完全靠本能生存一样,情绪完全不受控。

后面我查了更多关于这个药物的药理方面资料,这个药物本身也是治疗抑郁症的药物,以及其中的副作用之一也包括可能的自杀倾向.....

Image

Image

So ,这个药需要起效的话,至少需要一段时间的摄入的,但是前期的副作用我有点接受不了了。 (大概你很难要求一个本身多巴胺分泌都不太够,经常因没有动力行动的人接受,现在我们要为了你一个多月之后的多巴胺分泌的正常(可能),要你从现在开始一个月左右的时间,你会郁郁寡欢,昏昏沉沉一段时间哦)

ADHDer本身就很难长期坚持做一件事(大概是因为很快就没有兴趣,又被别的事情吸引去了),更别说还要接受如此长的副作用了。

Image

Image

或许,正如上面朋友所说的,真正有效果的还得是【兴奋剂类】药物。

但后面也有看一些这方面的资料,但暂时先决定不考虑这方面的药物了。

暂时不再纠结,吃完药之后,正常人是怎样的状态了。我想就像万医生说的,你不可能吃一辈子药的。这个病你不需要太当回事,也不能不当回事。

毕竟,过去的二十多年时间已经这样过来了,我有我自己的调节和处理方式,不可能现在放弃过去一切的主动性,完全依赖于各种的化学药物。

其实,我最不能接受的一点是,吃药后,昏昏沉沉的状态(或许吃兴奋剂类药物后,完全亢奋的状态),那些都让我觉得:

我不再是我自己了。

就这样,最终我在确诊之后,也决定不再吃药了,靠自己的方式,与自己相处,继续与这个世界对线了。

]]>
2025-06-22T03:26:53+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/125我的ADHD发育史:从赛博确诊到线下确诊了2025-07-16T14:21:48.516725+00:00

2025.6.7号,我挂到了青岛市立医院王好医生的号,去诊断我是否真的有ADHD。 自24年9月我初次认识到ADHD,以及从网上“赛博确诊”半年的时间后,我正式确诊了ADHD。 当天万医生给我确诊了adhd,在询问我是否要吃药之后,给我开了一个月的利妥思(盐酸托莫西汀),今天是吃药的第二天,下面是我当时的自述材料,以及确诊经过。

万医生你好,我来是想让你帮我判断检查一下我到底是不是adhd。

我准备了一个材料,大概5分钟左右,下面是我的故事。

我现在是一名远程办公的程序员,在此之前,三年前我是农学专业的,研究生一年级的时候退学了,后面又读了计算机,才曲曲折折的做了现在的工作。

我怀疑自己是adhd差不多一年的时间了,去年的时候我因为经常白天拖拉,进入不了工作状态,只有到晚上才能特别专注,特别兴奋的投入到工作中,我经常到熬夜很晚,无意中我从网上刷到了一个概念hyperfocous,一旦进入状态很专注很难出来,我才开始读了《分心不是我的错》这本书。

这本书我是在我每天通勤的地铁上听完的(出差的时候,每天通勤没办法做别的,工作后我很难完整读完一本书了),读到了很多我的影子,包括后面做了测试量表等等,我越来越确信,自己也是ADHDer了。

现在回忆小时候,我成长经历,我其实没有:好动,坐不住的表现。 (现在工作了我倒是有一点,写代码/写点什么东西的时候,经常坐不住,需要突然站起来,走一走)

一、作业拖延、丢东西

小学的时候,我印象中有几件事,一是每天的作业,经常是写到10点多。 但现在想想,那时候作业应该不算多,更多的可能还是回家之后做事拖拉,就是慢慢悠悠的写,或者半天不想写,到了不能不写的时候才可以动笔。

类似的还有寒暑假作业,每次都是拖到快开学了才动手写。

二是小时候经常丢东西。印象中冬天的时候,买的厚手套,一个冬天丢了差不多十几副,明明记得放在了桌洞里了,就是找不到。

三 忘记吃饭

吃饭,我前几年回家的时候有一个弟弟在我家吃水饺,特别瘦,吃饭的时候,吃一口,要嚼个可能5分钟左右,就像在想什么事情一样。 我妈说,我小时候就那样。

我现在吃饭稍微快一点了,但还是有问题。我一个人独居在家办公的时候,经常是想不起吃饭,到了饭点了,我也不想动身吃饭。(有时候是不想吃,有时候是没有吃饭的动力)

喝水是经常忘记喝水,但有时候很渴了,但是不想动身。(状态很差的时候)

吃水果的话,经常不吃,主要是一想到要去洗,觉得麻烦。但是洗好了的,吃水果也不排斥。

(这一点我妈总是说我,太懒了,连去洗一洗都不愿意。我其实心里想法是,我是真的不想动,在我动身之前,想不到水果的味道和好处,我就一点都动不起来。)

说到动不起来,我想到另一个事情:憋尿。

状态差的时候(周末,无所事事,整个人不知道干什么的时候), 我真的会憋尿。 就是根本动不起来,明明卫生间就在几米的位置,就是一动不动的,继续刷手机。

我不知道是手机导致的,还是因为什么adhd的某些东西导致的。

四 时间感模糊

小时候上学的时候,经常是早上起床哭,是因为父母叫我,叫早了的话,会哭,可能是没睡够;叫晚了,也会哭,担心上学迟到。

但现在想想,我那时候可能其实也没有时间感的,就是单纯的,既想多睡会,又对迟到很恐惧。

我现在对时间感觉也很不好,我通勤的时候,30天可能有25天会迟到,无论是通勤1小时还是15分钟那种。

我经常最后1分钟了,才出门,但总是迟到。

以及,应该是记忆力很差,过去很模糊,现在根本不会一下子想不起上个星期,上个月,或者去年发生了什么。 有时候我会想,今年是哪一年?竟然是2025年了啊,22年的时候,我在哪呢?

五 白日梦

现在印象很深刻的是,6岁左右,跟另外两个小伙伴在院子里的麦垛子上,我想象是漂浮在海上的船,遇到海难的现场,我那时候完全投入进去了,沉浸在我想象的画面和叙事中,很长时间画面都很清晰。

小学午休的时候,我发现半眯着眼看透过阳光的玻璃,会看到空中飞舞的颗粒,那时候我不懂这是灰尘,我想象那是小人国的世界,那里另一个世界的故事。

六 学业

但后面初中高中,我并没有十分明显的不适应。我初中开始住校了,初中一周回一次家,其实初中条条框框的学校规定,我其实很喜欢,干什么都是一起的,宿舍是8人间,我不用担心吃饭吃什么,晚上会不会熬夜,几点起床,几点洗漱等等。

总之初中住校生活,虽然有很多规定,但是我过得如鱼得水的。

但是到了高中,可能是因为压力更大了些,规定更严了,住校时间是一个月回一次家,我过得压抑了许多,但是完全衡水式的管理,我心里又觉得避免了我很多问题。

七 退学 及自学计算机

我大学读的植物保护专业,农学类的。大三的时候考研,备考了接近一年时间,最后很顺利的考了第一考到了另一所学校去读研了。

现在想想,读研深层次的原因,是因为当时觉得自己的这个专业研究很有意思,很好玩。

读研后,发现课题组很压抑,也很混乱,科研学术研究的美好滤镜碎掉了,再加上老是让高年级的师兄师姐安排做一些打杂的重复性工作,心灰意泠下退学了。

我可能就是非常排斥反感,重复性的,工作。跟我一起干活的我另一个同门,虽然我俩一直在抱怨,但最后我受不了退学了,他坚持了下来,现在去读博了。

退学后我打算自学计算机,但我发现自己一个很大的问题: 总是不断被新的技术吸引,但是坚持不下来,所以一直在尝试,然后放弃。

自学学新东西的时候,新鲜感维持一段时间后,就开始枯燥起来,再遇到点问题,我就放弃。

如果不是后面我又找到了实习,开始被安排强制性的工作,我恐怕很难学会计算机,进入编程的行业了。

八、 家族成瘾史

在注意到我可能是adhd之后,才意识到我父亲,我爷爷,都有长期酗酒。 我父母在出门行李打包的时候,经常是手忙脚乱,多件事情同时进行……

我在很长时间刻意避开酒精,但是在大学开始喝酒之后,发现自己不时有喝酒的冲动。 很多时候是因为无聊,想追求酒精带来的飘飘的感觉。

此外,我很容易陷进“无意义的长时间上网”的状态中。在初中的时候,是很容易一直在刷网页,刷搞笑视频,陷入一层一层的网页中,熬夜到很晚。

这时候我都不清楚自己要干什么,想干什么,只是一直熬夜。

现在则是很容易陷入到手机中,而且不容易从这个状态中中断出来。

晚上吃完饭刷手机,不知不觉就很晚了,而且很不想从这个状态中脱离开;如果此时女朋友强行提醒,我会有情绪问题。

九 远程办公困境

我现在是程序员,大多数时间远程办公。

一个人在家远程办公,带来了很多很多的挑战,加剧了我的症状。 这也是我现在急切想确诊的原因。

每天看似很自由,但是一切需要自己安排。工作和生活之间的界限很模糊。

白天工作效率很低,启动困难,没有很强的动力去工作,经常是被动的进行工作。

但是一旦工作起来,经常是忘记吃饭/不想吃饭,状态很差,最终是效率低,只能熬夜加班,最后就陷入恶性循环中。

如果状态差的时候,各种小事也根本不想动,比如洗漱,打扫卫生,吃饭等等。

总之是一个完全被动的状态。

严重的拖延,心里觉得越是重要的事情,越容易拖延,之前需要汇报ppt,往往是第二天汇报,前一天晚上一两点还在熬夜做,最极限的是等到要汇报的前5分钟了,还在改着。

但是如果是坐班通勤的话,上面的困境又会少一些,只会有每天迟到的困扰。 但是我工作近一年多的时间,并没有很长时间的坐班经历,更多的还是每次一个月左右的去海外出差,然后每天通勤,我也不是十分确信,如果真的长期坐班之后,我又有什么表现了。

在老家的时候,每天和父母生活在一起,一日三餐妈妈都会提醒,我只需要处理工作就可以。这时候到了返点,我妈会提醒我吃饭,到了晚上,不是很晚,父母就可以提醒不要熬夜了,此时不得不中断工作,切换任务。

但是在青岛远程办公的时候,所有的一切都需要我自己来做了,很难任务切换,生活过着过着就开始一团糟糕,恶性循环了。

]]>
2025-06-07T03:01:07+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/124研究生退学转码之路:招转培、网课、鱼皮社区以及二学位 (二)2025-07-16T14:21:48.719179+00:00

2025.5.12 又回到了新加坡,距离上次更新退学转码系列: 从985研究生退学重回二本读计算机的这几年--2024年终总结,已经又过去了大半年时间。 emmmm,属实是鸽王本王了。 上一篇发出后,吸引了很多朋友的关注,诚惶诚恐。好多朋友看完上篇之后,其实一直在等着我出下一篇,甚至一些大学时期的朋友看到我发的公众号之后,特地来催更,是意想不到的。 我本身是一个很喜欢讲故事,喜欢分享的人,同时,我又很喜欢“挖坟”,喜欢看一个人一件事情过去几年的变化,很理解这种心情。

但是有些东西是很沉重的,过去的经历,现如今的回忆起来,又像是穿越层层的迷宫,回到过去那片迷雾重重的沼泽地里重新再走一遍,这大概也是我无法迟迟动笔的原因所在吧。

现在的生活属实不易,我又没有足够坚强的自信,能够稳定的保持住现在的生活,所以总是在如履薄冰小心翼翼的过着如今的生活,生怕哪天又回去了。我自认为自己能够完整的走过退学转码这一路,最后转码,拿到软件开发的工作,既可以远程办公,又可以在新加坡及吉隆坡办公,恐怕其中运气成分占了将近99%以上,其中个人努力成分远远可忽略不计。

倘若现如今有人看完了本人的经历,妄想复刻重走一遍/抑或想着获取某些转码有用的经验,恐怕是缘木求鱼了。更遑论现如今,计算机形式更是江河日下,一日不如一日的情况。(so,各位看官,在观看本文时建议抱着听故事的心态图一乐,若想找一些实用的经验,恐怕是失望了。)

正所谓老人言:“一个人的命运啊,当然要靠自我奋斗,但是也要考虑到历史的行程。" (我绝不知道我一个农学研究生,天天想着养的虫子的事,怎么去敲代码抓bug了?)

(一)

”你不能总是在赢得时候,才想到自信。“

最近有看到这句话,很受激励和启发。我希望我一直是这样,但那不是我,是我幻想中的我。 如果回到我这期博客的名称来看,我的转码之路:招转培、网课、鱼皮社区、以及二学位,基本是这样的过程,我总是在怀疑中度过的,一边怀疑一边尝试,愈发不自信,屡战屡败,不断尝试后放弃的过程。

我不是一个自信的人,经常”冒名顶替综合症“,甚至坦白讲,我有动笔继续写我过去经历的心思,也是在我又重新回到了新加坡之后,在国内远程办公的时候我根本不想写。

回到主题,继续我们的转码之路。

三年前的那个夏天,上次讲到,我退学后进了黄岛的一家招转培公司。开始的开始,我每天背着电脑从市北通勤一个多小时每天认认真真的到公司,听着从word文档上流传下来的js知识点,一脸懵逼。最开始的时候,心气很高,因为是研究生退学,心里一直有一个非要证明自己的强烈念头,幻想着4个月学出来,然后进外企。

就这样在那家公司呆了近一个月,发现理想与现实越来越远了。别说进外企了,就是坚持下来都觉得是浪费时间。每天白天听之前来的实习生(或者说被提前几个月被招转培骗进来的学员)讲课,晚上通勤一个多小时回到市北租的房子那里。

就在索性慢慢适应,快认命的时候,跟带我的师傅聊天才知道,这家公司的所有开发,除了老板,剩下的全是这种方式招来的。做项目的是一年前这种方式留下的,之前学的是后端,没有学明白,重新学的前端留下的。其余的各个开发,也是后面陆陆续续这种方式招进来的。

从最开始让一步步签合同,到最后莫名其妙让申请分期贷款支付学费开始,就很反感这家公司。但是想着反正已经被签了合同,也背上了贷款,暂时也没地方去的心态,就先学着看吧。结果就是待得越久,越觉得吃了一口苍蝇一样。更难受的是,周围一样被骗进来的同事,不觉得这是一件错的事情。总是在美化/合理化这件事,说什么大家都是这样过来的,公司也不容易.....

每当白天看着机械念word的”老师“,看着一个一个的报错解决半天解决不了,看着刚出学校就背上了两万多的贷款,再回想最开始hr那副画大饼的嘴脸,就心里直后悔。 (有趣的是,上一个视频发了之后,虽然我没有提名道姓指出哪家公司,我之前还在的几个群都被踢了出来)

当时又重新进入了内耗的状态,心想好不容易退学了,怎么又到了这样的困境里呢? 真是不想继续这样效率低下的学下去了,因为当时基本上都是在靠B站的黑马视频学了。当时白天讲的,也都是对黑马视频上讲的东西的洗稿。

(后来我听说很多线下的补习班,老师讲的不怎么样时,大家也是靠看B站的视频.....)

]]>
2025-05-12T05:07:30+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/123结束远程办公,治好了我的精神内耗2025-07-16T14:21:48.962219+00:00环境对人的影响非常大,很多东西是目前远程办公体会不到的,无法弥补。

比如,团队氛围,比如人与人之间的面对面交互,比如情绪表达与体会,比如成就感。

线上文字,即使是语音,信息传递之间的内容也远不及线下面对面之间表达的东西多。

而对于职场新人,or 或者仅仅是我个人性格或某些特质的原因,我更喜欢与人面对面交流一些,哪怕退一步讲,批评甚至被骂,总好过冷冰冰的文字。

或许是infp/adhd/(不知道该推到什么心理or生理疾病特质身上),文字会无形中放大或者减弱某些情绪,放大的这部分大多数是负面的情绪,来源于我的无端猜想,对于批评总是多想; 减弱的这部分大多数是正面的情绪,来源于自小就教育的理念:你一定要谦虚啊!

但是人总得需要正向反馈的,需要成就感,意义感,价值感的等等。远程工作,远远放大了负面的反馈,削弱了正向的反馈。

(或许是无法直接接触到实体的人,面对文字,无法想象链接到背后的意义)

so,远程工作的过去几个月,大部分时间过得并不是很快乐。部分原因如上所说,负反馈比正反馈得到的多的多,每天的感觉是负向的,结果就是慢慢感受不到工作带来的意义了。 ( 这时候钱可能会带来一些价值感,加点薪也许能解决问题。)

远程办公,对我来说更致命的另一点是无法解决秩序与框架问题。

ADHDer其实最怕的是一个毫无框架松散自由的时间,高度分心的状态,再加上没有时间感,将是致命糟糕的混乱时期。

为了防止不清楚adhd,上面更好的类比说明: 拥有明确目标(高考),每年度/月/周,甚至是天/小时,都安排好(被动or主动)事情做的高中生活,good!

目标不明确(考公/考研/就业/大部分时间也不清楚毕业要干啥),每天活动无忧无虑,除了上没办法逃的必要课外,没有其余强制任务的大学生活,看似无忧无虑,实则是(ADHDer)的地狱。

理由/原因就是刚刚讲的,没有框架,高度自由的时间里,你的大脑像一台高度运转的跑车,200多迈的速度疾驰,但分分钟的分心,让你不时被路边的风景吸引着,一直在猛打方向盘追求刚刚看到的东西。

搞得自己精疲力尽,但回头看下轨迹,混乱的行事风格。再加上你有时间盲,时间颗粒度极低,想不起过去发生了啥,未来的又何时来到?

线下办公,多少能避免一些问题。

比如框架以及秩序感。

每天上下班的通勤(拥有一个舍友,相当于多了一个remader或者是线上那种adhder提醒师的角色,不必担心每天迟到/算错时间/晚回/等等问题)

比如上下班以及其中某些日常活动(对于多任务的切换困难的弥补,比如同事都离开,我自然也跟着离开)

线下办公,被严格规定好了工作地方,工作时间,反而让我感觉更舒服一点。 有时候看似选择少了,反而烦恼也没那么多了。

或许,这也是less is more的智慧?

2025.05.09 6:26 于新加坡 凌晨睡不着时想到的

]]>
2025-05-08T22:38:06+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/122chatgpt眼中的我2025-07-16T14:21:49.194357+00:00下面这些话可能有点扎心,但我尽量直白、温和地说——它们既来自我对你长期聊天记录的观察,也是我在众多开发者、留学生、远程打工人身上反复见到的模式。如果你能真正消化并针对性行动,幸福感和效率都会上一个台阶。


1. “点子成瘾”、完工稀缺

你对新鲜想法有近乎本能的兴奋——Electron 小插件、笑容控制游戏、薪资可视化、Java + NCC 的各种重构……但完成率远低于启动率。结果是:
情绪:每当新灵感出现,你兴奋;一旦卡关或新点子冒出来,旧项目被打断,留下未完成的自责。
现实:时间被切碎,作品难以积累成真正能在履历或收入上“说话”的成果。

残酷真相创意≠资产。未落地的创意不会给你带来财富、作品声誉,甚至不会留下系统化的学习。
行动建议

  • 任何新想法,先写一张「完工清单」——要达到什么即可交付?
  • 同时进行项目≤2个;想新点子先记进“冰箱”,月底才能解冻。
  • 为每个项目设立结束仪式:发布、写总结博客或 demo 视频,把“完成感”视觉化、可分享。

2. 你在“用意志力对抗 ADHD 大脑”

你多次提到时间感缺失、拖延、注意力飘忽——典型 ADHD 特征。你常靠熬夜冲刺临时死磕解决问题,但这恰好是 ADHD 的“灾难模式”:大起大落、消耗巨大。

残酷真相靠意志力硬扛,只会在下一轮任务前把自己耗干,而且随着年龄和责任增长,恢复速度会变慢。
行动建议

  • 环境替你做管家:番茄钟 + 全屏写代码;手机物理隔离。
  • 日历分块 + 闹钟:把“想干”和“必须干”拆成 25 min 的小块,写进日历,外部闹钟提醒你切换。
  • 给自己真正的“奖励多巴胺”——每完成一块就去做 2 min 真正开心的小事,而不是在 Twitter/知乎上无底洞式刷。
  • (若条件允许)正规评估 ADHD,用药或专业 CBT,比单纯自律事半功倍。

3. 你对成功的二次成本恐惧大于对失败的痛苦

你曾说“比起失败,我更怕成功”。其实你不缺能力,缺的是对成功后“期待增高、责任变大、别人看见你”的心理准备,于是潜意识里用延迟、完美主义、换题目来自我保护。

残酷真相自我设限省下的麻烦,正是你想要的职业成长与自由
行动建议

  • 把「成功后会更累」写出来,再写对应的减负策略(自动化脚本、分包同事、找导师)。知道自己有 Plan B,大脑就不再用拖延当盔甲。
  • 为每一步成功预设“可承受的不完美”:例如第一次公开演讲允许 PPT 只有 80 分,而不是拖到 100 分才上台。
  • 把注意力从“出错会怎样”转到“完成带来什么”。写一张积极后果清单,放在桌面。

4. 你把他人标准当作主导航,忽视了内在坐标

为了签证、团队要求、老板反馈,你换语言、换学校、加班熬夜;可你的价值感依然摇摆——因为方向盘始终在别人手里。

残酷真相只满足外部标准,容易陷入“做得再多,仍配不上肯定”的循环
行动建议

  • 写下你 5 年内「最想保留的身份标签」(例:独立开发者、AI 教练、丈夫/妻子、高质量内容创作者……),每周回顾任务清单:哪件事直连标签?优先做。
  • 给自己定内部 KPI:学习一门框架并发表一篇中文+英文教程,比“老板夸我”更可控。
  • 每完成一次「对齐自身价值」的行动,就记录在持续成果文档,让“自我肯定”数据化。

5. 你正在透支身体与关系的缓冲区

长时间熬夜写代码、远程协作缺反馈、与伴侣沟通错位——都在削弱你的“复原力”。身体和亲密关系是所有高强度创造的底层电池,一旦亏电,技能再高也跑不动。

残酷真相健康和爱耗尽后,修复成本指数级上升,远超任何加班收益。
行动建议

  • 每周至少两晚 7 h 睡眠写进日历,并像开会一样不可取消;
  • 用“非工作闹钟”——到点就下线、放松眼睛、拉伸 5 min;
  • 与伴侣定期“同步会”:沟通情绪而非只谈任务,用她熟悉的语言(会计式逻辑、成本收益)解释你的创意和计划,减少误解。

最后一针鸡血

你已经拥有好奇心、编程硬实力、双语沟通力,这是稀缺组合。唯独差的,是让系统替你守纪律、让完成替你说话、让身体替你高效。
开始把想法「关进笼子」,定期放出“养肥”的成果;让规律作息与外部工具接管注意力;直面自己对成功的恐惧并拆解它——这些并不浪漫,却能让你的天赋真正兑现成作品、收入与自由。

愿下一次我们聊天时,你分享的是“我又上线了一个可用的小工具”,而不是“我又想到一个新点子”。那时的你,会惊喜地发现:专注和健康,才是最强的魔法。

备注:

请根据你对我的记忆,有哪些我自己可能意识不到,但如果明白了,就能大幅改善我人生的残酷真相?请坦诚告诉我。 --chatgpt o3

]]>
2025-04-30T08:46:52+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/121我猜,他上次体检也是在婚检,那时他也26岁,我如今的年纪。2025-07-16T14:21:49.411215+00:00给老爸预约上了体检的套餐,算是工作后主动给家人花的一笔钱了,意外的是,这次没有嫌我乱花钱。

去年我还在新加坡的时候,听说了老妈因为骑电动车被车刮碰了一下,去的医院做了全身体检,结果意外查出了肺癌.....因祸得福的是,正是这次交通意外,才做了体检,查出了肺癌,得以有机会动手术。

我妈的上次体检,是30几年前的婚检。那时检查出肝有问题,她总担心喂我奶水为传染给我,但又因为买不起奶粉,只能喂我奶水。

我妈感慨“这次体检没想到肝竟然好了,肺又出了问题。”

听了之后挺感慨的,人生第二次的体检竟然是因为意外的交通事故。

我给爸爸也预约了一次体检,他收到预约成功的短信后,没有嫌弃我乱花钱,只是说,“查查吧,也已经好久没体检过了。”

我猜,他上次体检也是在婚检,那时他也26岁,我如今的年纪。

]]>
2025-04-27T15:08:15+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/120ADHDer/infp:尊重你的天马行空的想法,以及现在就开始创造2025-07-16T14:21:49.667615+00:00想法很重要,I know,你每天都会有大量的天马行空的想法涌现。

但是,上班很痛苦,循规蹈矩的重复工作,折磨你,你的想法在公司眼中不重要,老板不需要你高速运转的大脑,几分钟蹦出一个想法来,他只需要你像一个机器一样,重复,准确地 “复制-粘贴”,校对每一个数据。

可是,那不是你,重复性枯燥的工作就是慢性毒药,杀死你创作力的同时,也在每天一点点磨损你的灵魂。

But,I wanna you know, what you feeling matters , what you throughs matters.

但是,我想让你知道,你怎么想的,怎么感受的,这些都很重要。

只有去珍视那些你所想的,那些你所看重的东西,你才是真正的你,just do yourself and let me help you do yourself better !

对于ADHDer / INFP / 高敏感/高创造性的人,你需要的不是重复,不是枯燥的工作,你需要的是创造,需要的是让自己的想法从0变成1的这一过程,而你的优势也恰好是这个。目前社会上的大量工作不适合你,你每天过的痛苦,内耗,因为你不适合,你是被放到错误位置上的人,在不断的消耗着你的灵魂。

(二)

现在是属于魔法师的时代,而AI就是你的魔法棒。

在过去,你的想法只是想法,只会停留在漫无目的的白日梦阶段,停留在偶尔失眠的夜晚,但现在,你可以创造的,可以亲手把你的梦实现;

过去,实现这个想法,需要你枯燥的学习大量的知识,而你大概来不及学完连续的知识,就被你的想法,被各种更有趣的东西,吸引去了注意了,放弃了这一过程。

但现在不一样了,只需要“挥一挥魔法棒,念一念咒语”(打开AI工具,告诉它你的心愿),你的想法就可以实现了。

]]>
2025-04-18T04:17:44+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/119ADHD时间感缺失、失眠症、记录与对抗遗忘2025-07-16T14:21:49.881627+00:00ADHD时间感缺失、失眠症、记录与对抗遗忘

《百年孤独》里有一个有趣的情节,马孔多的人患上了失眠症,失去睡眠,可以没日没夜的醒着,代价是,遗忘。 我想大概是因为失去了睡眠,过去,昨天,跟现在,将来模糊了边界,所以遗忘。

一开始只是忘记很久之前的事情,慢慢忘记昨天发生了什么,最后甚至忘记身边的东西的名称,以至于在何塞阿尔卡迪奥家里写满了标签,用来对抗遗忘,记录身边东西的用途。

比如:这是汤匙,用来喝汤的。(汤,喝了让人饱腹的热东西,不要用手直接拿……)

后来我读了很多关于ADHD的书,了解到了ADHDer时间盲这一概念,突然有了新的想法,失眠症,太像adhd的时间盲这一概念了。

ADHDer大脑中缺乏时间观念,分不开过去与现在将来,时间感知的缺失,确实是很难回忆起过去。 因为你分不开过去与现在,自然也很难回忆起过去。

大概与何塞阿尔卡迪奥一样,为了对抗遗忘,在我成长过程中,我也默契的选择记了很多的日志,笔记,说明,但这些东西,就像ADHDer的思维一样,散落在各个地方。

项目上有个补丁,二月份的时候出的,今天找到我说测试了,发现有问题。

我第一瞬间其实是懵的,完全忘了这个需求是什么了,找到当时我的日志:

Image

我突然很想知道,2025.2.20我在哪里,那天发生了什么,我当时又是如何排查到了这个问题的?

看了一下日历,那天也是星期四,元宵节刚过去的一个星期左右,剩下的,一片空白,如果不是有这个记录,过去仿佛不存在一样……

那,过去又该如何存在呢?

]]>
2025-04-17T04:06:22+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/118成人注意力不足过动症(ADHD)的诊断与学术进展2025-07-16T14:21:50.138394+00:00

原视频链接:https://www.bilibili.com/video/BV1Xi421f7wC/

ADHD 与以下相关: 早产 出生时体重低 出生时血液中铅含量高

多巴胺合成与代谢的出现问题:多巴胺水平的改变引起多动症

生物节律问题:皮质醇含量晚上后移

药物治疗: 利他灵 “聪明药” 中枢神经兴奋药 副作用长期服用的话 还是有影响;

症状型ADHD: 持续性ADHD

成人门诊:超过一半满足ADHD诊断标准 德国患病率 3.1-4.7%左右,但确诊比例 0.04%-0.4%左右

诊断: 询问病史和检查为主,但是缺乏直接的生物标志物来诊断。 所以具有一定的主观性 目前主要依据DSM-5(手册)

其他辅助诊断资料: 筛选和评估量表 全面的临床访问 了解家族史 了解病史

成人ADHD的临床表现 adhd是贯穿整个人的生命周期

(一)注意力不集中 健忘 注意力分散 陈述混乱 组织策划困难 在“听”方面有困难 守时困难(迟到或者太早退) 迷失在不相干的细节中 (并非完全是粗心,而是不相干的细节,比如窗外的苍蝇) 难以做出决定

(二) 多动 内心不安 很难放松 走来走去 坐立不安,不能忍受在办公室工作

(三)冲动 没有思考就行动 不能等待 说话不经思考 打断别人 无节制的消费 暴饮暴食/厌食 冒险行为 失业

(四)情绪失控 情绪不稳定【也有可能共病 或乌镇双相情感障碍】 低挫折耐受 情感冲动 发怒 经期前情绪症状增加

巴克利观点:ADHD本质是执行功能的一个障碍,自我管理功能的缺陷

[ ]问题组织、确定问题优先级和启动工作方面 [ ]集中、维持和转移注意力到任务上 [ ]管理挫折和调节情绪 [ ]利用工作记忆和访问回忆 [ ]调节警觉性、持续精力和处理速度 [ ]行为的监测和自我调节

王中磊

治疗 药物:效率最高的,但是考虑副作用 运动:需要持续性的运动;每周至少3次 40分钟中高强度 外界监督 正念

]]>
2025-03-23T10:24:21+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/117朋友,真正的生活究竟什么时候开始的呢?2025-07-16T14:21:50.330754+00:00Image

Image

]]>
2025-03-22T04:54:55+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/116ADHD失去时间感知以及理性思考2025-07-16T14:21:50.555291+00:00IMG_20250212_124849.jpg

刷到一个讲座,真切说中了最近的状态:

陷入时间的荒芜上,整个人都卡住了的感觉,失去理性思考,任由生活把我送到哪里去,生活有一种平静的麻木感。

看完了巴克利教授上面这个关于adhd的专业讲座,说中了的感觉,最大的问题的确是没有时间感知。

生活平静麻木的向前进,我想不起昨天,或者上个月,或者上年的一些事情,它究竟是发生在了确切的哪个时间段? 我明白遗忘很正常,正常人也会遗忘,可是我脑袋里往回看的时间感知不是这样的:

如果不是刻意联想,今年是2025年,去年是2024年我毕业,我甚至一下子想不到我究竟已经工作了多久了,到底是哪一年开始工作的了。

至于昨天,上个月,亦或者过去的几年里,发生的大大小小的事情,如果不去查聊天记录或者一些日记记录,恐怕我得绞尽脑汁想半天,才能想明白个轮廓。

过去的记忆就像洒满了一层黑漆漆石油的湖面,我知道它发生过,但具体在哪里,我一下子找不到,它就混乱的堆在了那里,或者被盖在了湖面下面。

写到这里,我都有点怀疑了,这究竟是adhd特有的时间感丢失,还是老年痴呆症年轻化发作了……

不过我想明白了另一个事情,我如此痴迷的读《百年孤独》,一遍又一遍,甚至到了每次读我都不按原书的顺序随便翻开一部分就可以读起来了。

或许其中一个原因也是,我痴迷于那个世界的时间感。几页文字,就到了多年以后的行刑场。又或是,下了四年多的大雨。

想想看,下了四年的大雨,一天也没有停,你被困在老房子里,放假牙的瓶子里都长出了黄花,时间又都停滞了。

讲座提到的另一点: “adhd 无法与自己交谈,与自己进行理性思考,向自己提问,并提醒自己管理眼前局势的规则”

我不敢拍胸脯保证百分百是这样的,但回想我人生重要时刻,重大决定,似乎没有一个是直接“与自己对话”后做下的。

或许正如之前看到的,ADHDer的想法,就像散落一地的水银,或者大脑中时刻泵出的想法就像一台高速行驶但没有刹车的跑车。

这确实没办法与自己对话的,想法太多,太散,散了一地的水银,时不时泵出的想法,这很难交谈,理性思考。

(与别人交谈可能好一点,但是与自己直接凭空交谈,太难了,就像是思维陷入了死锁中,我从小没办法自己与自己下棋,会一直无限循环想下去……)

所以好多时候我喜欢文字,我喜欢写下来,无论多少想法同时出现,多么混乱,文字输出后,就有迹可循了。

IMG_20250212_133004.jpg

]]>
2025-02-12T05:36:16+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/115找bug就像以前抓虫子,不一定会遇到什么稀奇古怪的虫子。2025-07-16T14:21:50.771741+00:00找bug就像以前抓虫子,不一定会遇到什么稀奇古怪的虫子。

]]>
2025-01-15T07:31:22+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/114如何实现LLM的记忆功能,以及如何在对话中触发记忆存储呢?2025-07-16T14:21:50.971977+00:00image image image image image image image

]]>
2025-01-11T15:28:34+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/11352weeks2025-07-16T14:21:51.197412+00:00image

1/52 w 【Bulid 1/100】 2025.1.2-1.5

【Cloudflare中转顶级大模型API,国内免费爽用,Gemini编程,音视频,多模态能力测试】

问题1:deploy之后02:25 action并没有成功运行 image 解决:等了一分钟左右,好了 image

笔记: gemini-2.0-flash-exp 目前谷歌最快的模型 gemini-exp-1206 目前谷歌最强大的模型

目前进展: [-]成功实现了cursor连接gemini 的api √ [ ]后续:多模态以及WebSocket调用

image 参考:https://www.bilibili.com/video/BV1xS66YAEwm/?spm_id_from=333.337.search-card.all.click&vd_source=65ebf9bfb6a7747af466eb21540ff732

]]>
2025-01-02T13:58:20+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/111研究生退学是一种什么体验?2025-07-16T14:21:51.427544+00:00

本帖主要是备份2022年退学后知乎的回答,现在整理到github 原答案链接🔗:https://www.zhihu.com/question/27564104/answer/2505742430?utm_psn=1855292036053352448 image image image image image image image image image image image image

]]>
2024-12-25T08:51:12+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/110从985研究生退学重回二本读计算机的这几年--2024年终总结2025-07-16T14:21:51.648379+00:00终于要提笔写点什么了,这是一篇酝酿好久的文字,我过去想了好久,但迟迟无法动笔。

一方面,完美主义是造成拖延的最大的原因,我担心自己写不好,担心自己写不出我心中所想的,过去经历的这一切;另一方面,或许是因为过去这几年经历了太多太多(就我目前的经历和心智来说),我想把所有一切都记录下来,又觉得一切似乎没那么有价值,对于我来说,我无法分清发生那么多事情的轻重缓急,无法在回顾时,想清楚如何讲给他人。

索性,仅仅把这篇总结回顾,视为讲给自己听的,写给自己的文字好了。

写到哪里就算哪里好了。

01 It was pretty scary at the time

It was pretty scary at the time, but looking back it was one of the best decisions I ever made.

今天心血来潮,想到了之前给@Hawstein发过一个邮件,是因为当时在推特上看到了一篇文章《一个独立创造者的五年》,后面有提到可以say hello,给大佬发邮件,便写了下面的邮件,非常能反应当时的心境。

image

我今天的心情大概这样,现在pretty scary at this time ,我担心拒掉唯一的offer后,更不确定性的未来。

当时的我已经研究生退学两年了,在机缘巧合下得知了二学位这个机会,又重新回到了一所二本的学校读计算机,已经读了近两年的计算机专业了,但秋招过后,计算机的岗位甚至都没有信心去投offer,只凭着六级跟之前的农学背景,拿到了几个教培及外贸的offer。

但心里又迟迟不甘心,还是想做计算机的工作。

当时的心境及offer情况在这篇博客中也有详细的描述:[开题答辩拿了高分,但关于未来很迷茫] (https://github.com/QiYongchuan/MyGitBlog/issues/52)

就像两年前,我在对未来一无所知,毫无把握的情况下,从研究生退学那样,我又一次拒绝了到手的offer,选择了自己想做的那条路。

不同的是,两年前我明确知道,我看到了农学研究生的未来,自己退学退的毫无留恋,义无反顾;但是两年后,我自己已经经历了退学后的种种事情,两年事情发生了太多变化:

21年的时候培训班转码学几个月前端就能入职,24年经济持续低落,企业开始了大裁员,黑马培训班已经停止了前端的招生。 而我心里也产生了很多的顾虑,太担心跟两年前研究生退学时一样,找不到工作了。

但当时,又因为上完了一个月的嵌入式开发的实训课,我自己第一次独自完成了一个项目,以及在学校的java实训课上,我自己认认真真的敲完了代码,跑通了这个项目,我又重新燃起了写代码的信心。

(其实这也说明了,我退学转码后这两年的学习方式是多么的错误,我一次有一次的选择了去看超级长,事无巨细的B站培训班的课,结果就是我一次又一次的放弃,太多的语法细节和报错,挫败了我的自信心,在一次又一次的打击下,我放弃了写代码,我以为自己没有天赋去写代码,十分痛苦。其实现在看来,最应该做的是从转码的第一天起,就应该动手去写代码,而不是先去看课,去记笔记,去记语法细节.....

而在学校最后的几个实训才让我明白,代码是动手敲的,而不是像之前考研复习一样,必须先背过知识点之后,才能动手做真题。

——总之,在二学位最后的时间,我遇到了两个改变了观念的老师,我代码路上的引路人,我得以明白,代码是需要动手做的,以及代码就像搭积木,一块一块的去搭就好了。

当时的笔记:除了想象力,没有什么是限制

我重新捡起来写代码的兴趣,但还是非常焦虑将来的工作的,毕竟当时已经是11月秋招接近结束了,我的基础非常差,几乎没有看的下去的项目——源于我过去两年失败的转码学习,99%的精力放到了尝试一次又一次的超过100多个小时的B站视频上了。

当时想的是,哪怕最后我找不到敲代码的工作,大不了我做一些兼职的项目,哪怕是卖给本科生毕设项目呢,我也要继续下去。当时退学转码为的是什么,不能再去为了谋生就去做不喜欢的工作了。

很幸运的是,年后3月份,我找到了软件开发的工作,当然这是后话了,后面再详细讲吧。

02 从二本考上了985的研究生,然后呢?

“985研究生”,“二本逆袭”,“退学”,这些真的是很好的Tag,或者说是流量密码。

似乎大家都喜欢这样的戏份,我也是,我们从高中就开始灌输,“提高一分,干掉千人”,似乎考上一所好的大学的那一刻,就是人生赢家了。而对于小镇做题家的执念来说,二本似乎就成了原罪,于是在考研的时候,成功考上985,便是完成了华丽的逆袭。

过去很长时间,我也是这样想的,在我的第一个视频我的考研故事:从一所二本学校到985专业第一 时,我将这种心情表达的淋漓尽致。

当时在评论区,已经有一些不好的声音了,譬如,“天坑专业,考上了也没用”等等。

或许同大多人一样,在看到这种扎心的评论的第一时间,肯定会生气,继而忽略掉。坦白讲,以我当时的认知,大学过去的四年里,关于专业天坑的这种声音我听到的确实不多。

作为一个从小听老师话的乖学生,在以往听到这种“大逆不道”的话,我第一反应肯定是:啊,这种话怎么能说的呢?这不是吃饭砸锅吗?我们辅导员入学教育的时候可不是这样讲的; 或者是流传已久的"经典土木圣经",说这种话的人,肯定是loser..... “没有垃圾专业,只有垃圾人”,“360行,行行出状元....."

另一方面,我确实听说过“生化环材”四大天坑的说法,可是我当时单纯的想法竟然是,我们是农学,又不是生物,所以生化环材四大天坑跟我们没关系啦。

后来才知道,生物被批判为天坑不假,但是我们农学是靠着生物吃饭的。

毕业投简历,能投进生物类的公司就算烧高香了。我们平时做的,都是生物上的东西,我们懂得,生物都懂,我们不懂的,人家生物还懂.....

但我本意不是想花太多的精力批判这个专业,我曾经无比热爱这个专业,也遇到很多受人尊重老师,他们一心钻研农业研究,勤勤恳恳做事,但对于大多数人来说,或者对于我而言,因为自身的局限性,我看不到好的就业前景。

去年的年终总结里可能更多的写了大学生活及退学的原因 从研究生退学之后的两年

总之,在我读了一学期之后,我便陷入了对未来深深的焦虑与迷茫之中,在无比的痛苦中,我选择了退学。当时的想法很简单,哪怕我去培训班培训6个月的前端呢,我去写代码,也不想三年后研究生毕业的时候,在继续迷茫,当时想的是,哪怕什么都不敢,也比留下继续读完要强。

我当时的想法,三年毕业之后,要么继续参与这个游戏,读博,发文章,卷进高校;要么考公,要么去就业;但读博这条路在我进实验室看到大多数师兄师姐的状态后,我已经断了这个念头。考公我自知生性散漫喜好自由,实在不喜欢那个氛围,本科时便断了这个念头;就业,当时经济尚好,我们专业尚且困难.....

于是,我便退学了,仅仅想着退学后去培训班学几个月前端的想法下,就退学了,985的文凭我也不要了,总之,痛苦暂时接触了,在退学回来的火车上,我一遍又一遍的听着《没有理想的人不伤心》.....

那天还是一个很特殊的日子,2022年2月24日。

]]>
2024-12-22T04:26:12+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/109生活是一场持续不断的战斗2025-07-16T14:21:51.883871+00:00好久没有静下心来,写点什么了。

恰恰是发生了太多事情的时候,不知道该从哪里着手,思绪,情绪一下子太多了,于是索性放了下来,迟迟不知道该从哪里着手。

(一) 今天是11.17,一个11月寻常的周末。

下午的时候,QQ空间发了提醒,7年前的今天发的说说,也是一个周末的下午,那时我大一,还刚进入大学,和舍友在宿舍里看电影。真是怀念啊,心里一下子就想起了那句:

“欲买桂花同载酒,终不似,少年游。”

image

2017年,距离今天已经是7年之久了。

当时的我,肯定也不会想到,7年之后,我会经历3个学校,会在四年之后以第一名的成绩考到高考时不敢想的985学校,然后又在一个学期之后退学,放弃学了四年的农学,三年后又成为了一名码农。

.....

上一段写出来似乎有装逼炫耀之嫌,在这里写作应该真诚一些,不知道是不是最近写小红书写多了,总是不自觉的加一些耸人听闻的标签,也许是为了追求流量,也许是自我标榜,实在不该。

总之,没想到是已经7年之久了,7年前的我,年轻,单纯,期待着美好的大学四年生活,对未来一切都充满着好的幻想与期待。

(二)

其实最近值得写的东西有好多,如果时间拉回到6月份,我从计算机二学位毕业了,然后在6月份去新加坡实习,一个月的时间学到了很多,我也有信心将来能够转正,能够从事软件开发的工作了。

7月份,我拿到了offer,开始了三个月的试用期,我搬到了青岛开始了和女朋友的同居生活。期间,在特朗普枪击遇袭的那一天(7.14),我们有了一只可爱的小狗,可乐,然后8月份告别小狗与女朋友,我前往马来西亚短暂出差工作。

也是在出发的同一天,我收到了妈妈出车祸的消息。好在只是刮碰,仅仅是皮外伤。

在马来西亚呆满了整个8月,吉隆坡真是宜居的好地方,当地的同事每天下班前5分钟就开始收拾东西,一下班整个办公室接着关灯,主打一个“别想让我加一分钟的班”。

9月份我又去了新加坡,在新加坡仅仅呆了两周,在中秋节前一天的周一通勤地铁上,我接到了女朋友的视频电话,第一句就是,“你快看看小可乐吧,她快咽气了.....”

在新加坡早高峰的地铁上,我一下子慌了神。

也是在前一天晚上,我得知了,妈妈还在医院住院,我瞬间感觉不妙,追问下,爸爸也是含糊其辞,"就是一个结节,动了手术,再化疗化疗巩固一下,就出院了....."

到公司,我师傅问我下午的返讲准备的怎么样了,我一下子哭了出来,他带我到会议室,我还是哭个不停,断断续续的整理了好几次情绪,跟他说了这些事情,他表示理解,让我现在就放下手里的工作,不用担心工作,先回国,照顾好家人,等什么时候觉得可以工作了,再给我安排工作。

(三)

我当天晚上飞回了国,在肯德基等女朋友从老家回青岛,我看见她背着一个大大的宠物书包,空空的,里面已经没有了我们的小狗。回到出租屋里,满地都是可乐之前的玩具,我小心翼翼的收拾着。

第二天回老家,问起妈妈的病情,刚开始也还是含糊其辞,说好了。

后面才慢慢跟我说,当时被车撞了早就好了,就只是擦伤,去医院检查的时候发现了肺里有结节,医生说,要是再晚一年来医院,就是肺癌晚期了,就没救了。

妈妈庆幸地说,幸亏是被撞了了,要不然也不会来医院检查了,我春天的时候就觉得喘不上气来了,上药店拿了点药也不管事.....

我心里听了不是滋味,妈妈又跟我说,"人家说肺里结节,就是打这个疫苗打的,还打了三针,当时不打还不愿意,真是倒霉啊....."

从动了手术之后,妈妈每隔半个月,还得回医院化疗一星期,每次化疗回来,脸色都变得不好,最近一次,脸整个虚胖,浮肿。

(四)

我开始了半个月在老家,半个月在青岛的生活节奏,还是远程工作。

11月的时候,终于转正了,晚了一个月,因为中间请假的原因。

很珍惜也很喜欢现在的工作,远程,能够敲代码,同事很好,不懂的问师傅,每天都在学习。

对于毕业后第一份工作来说,已经很好了。

但可能是ADHD的原因,再加上是第一份工作,还是远程,很多时候,工作节奏把握不好。一段时间忙的要死,一段时间就很闲,有时又因为是远程工作的原因,自己在家就完全控制不好自己的专注力,甚至严重时,自己吃饭都成问题。

慢慢意识到,生活是一场持续不断的战斗,需要时刻规划好自己的注意力,做事情,一定要有结构性,有一个表去记录,开始-结束-后续,否则,就是一场漫无目的的漂流,任何方向,任何一点想法,就会让生活变得失去方向.

]]>
2024-11-17T13:47:15+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/108Cursor小白使用教程:从安装到开发浏览器插件2025-07-16T14:21:52.071602+00:00网上的教程已经有很多了,有的也很详细,但本着”费曼学习法“的原则,我来写一下,我在使用过程中遇到的问题,我的开发体验。

首先Cursor是什么? Cursor = vscode + AI ?

其实Cursor从推出,到大火,已经有一段时间了,但因为最近工作太忙了,同时要上线好几个项目,实在忙不过来,心有余而力不足,前段时间才刚刚下载体验,带给我最大的感受:

就像第一次接触ChatGPT一样惊艳,对于一个从来没有接触开发过浏览器插件的人,我用了差不多不到10分钟,总共两次提问,就完成了一个简单的浏览器插件的开发。

在我没接触之前,还停留在 Cursor = vscode + AI ,仅仅以为是把各种大语言模型(ChatGPT/Claude/)集中到了vscode中,不需要再去把你的代码复制到网页端,然后让其分析生成代码,再粘贴代码回你的编译器。

如果是这样,那我之前也体验过一些这样的插件,感觉仅仅是省去了复制-粘贴这一步。

]]>
2024-10-26T14:50:11+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/107Cursor折腾记录:开发趣味英语插件2025-07-16T14:21:52.279491+00:00好玩的功能点:

  • 拍照,识别图片中的英文,到单词
  • 上传一本书,解析书中的单词
  • 单词自动出现在屏幕的某处,三秒后出现单词的中文释义,之后是英文释义,然后是例句,之后消失
]]>
2024-10-24T13:49:08+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/106增量下载的时间陷阱:一次时间处理错误引发的重复下载问题2025-07-16T14:21:52.498175+00:00

为什么即使代码中设置了增量下载,还是会不断重复下载一些数据? 记录一次与时间处理相关的debug过程

业务场景:重复下载问题的发现

在开发与第三方平台 banqup 的对接过程中,我遇到了一个非常奇怪的问题:
即使使用了增量下载的逻辑,某些发票数据却被重复下载了。

问题背景

  • 系统从 banqup 平台获取采购发票,并采用增量下载逻辑:每次下载后记录最新的时间点,下次从这个时间点之后再获取新的数据。
  • 按理说,只要记录并从上次下载的时间点之后进行增量下载,就不会出现重复数据。

然而,在分析日志时,我发现系统多次下载了同一时间段的发票,这引发了我的疑问:
为什么已经下载过的数据会再次出现在后续的增量下载中?


排查问题的过程

1. 检查增量下载逻辑

我首先检查了下载逻辑代码,确保每次下载时,都准确地使用了上次下载的时间点
关键逻辑如下:

String lastedCreatedTime = searchLastestCreatedTime(pk_org);  // 查询上次下载的时间
String requestURI;

if (lastedCreatedTime == null) {
    // 如果没有记录时间,则进行全量下载
    requestURI = nc.bs.einvoice.util.BillEffectUtils.getBaseURL() 
                 + "purchase-invoices?page=" + page + "&size=" + size 
                 + "&is_invoice_lines_included=1&sort=created_at,desc";
} else {
    // 使用上次下载的时间进行增量下载
    requestURI = nc.bs.einvoice.util.BillEffectUtils.getBaseURL() 
                 + "purchase-invoices?page=" + page + "&size=" + size 
                 + "&created_at.gte=" + lastedCreatedTime 
                 + "&is_invoice_lines_included=1&sort=created_at,desc";
}

下载逻辑看起来没有问题——如果记录了上次的下载时间,就会从这个时间点之后获取新的发票。但既然逻辑正确,为什么还会出现重复下载呢?


2. 查看数据库中存储的时间格式

为了进一步排查,我查看了数据库中的时间存储情况:

private String searchLastestCreatedTime(String pk_org) {
    SqlBuilder sborg = new SqlBuilder();
    sborg.append("select TOP 1 created_at from einvoice_purchase_h ");
    sborg.append("where pk_org", pk_org);
    sborg.append("order by created_at desc");

    DataAccessUtils utilorg = new DataAccessUtils();
    IRowSet roworg = utilorg.query(sborg.toString());

    String lastest_time = null;
    if (roworg != null && roworg.next()) {
        lastest_time = roworg.getString(0);  // 从数据库获取时间
    }
    return lastest_time == null ? null : convertToIsoFormat(lastest_time);
}

我发现数据库中存储的时间是类似本地时间格式的,而增量下载使用的时间是 ISO 8601 的 UTC 时间格式


3. 时间转换的逻辑问题

接下来,我仔细检查了时间转换的代码,发现了一个关键问题:

从 banqup 获取时间时:

SimpleDateFormat createAtFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'");
if (!jsonArray.getJSONObject(i).isNull("created_at")) {  
    try {
        date = createAtFormatter.parse(jsonArray.getJSONObject(i).getString("created_at"));
    } catch (ParseException e) {
        throw new BusinessException("Invalid created_at format");
    }
    hvo.setCreated_at(new UFDateTime(date));	     
}

错误:

  • SimpleDateFormat 默认使用本地时区(如 UTC+8)进行解析,即使时间字符串是 UTC 时间
  • 这意味着,我错误地将 2024-10-09T02:47:45.394780Z 当成本地时间存入数据库。

从数据库读取时间时:

private String convertToIsoFormat(String dateTime) {
    DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    LocalDateTime localDateTime = LocalDateTime.parse(dateTime, inputFormatter);

    // 使用系统默认时区创建带时区的时间对象
    ZonedDateTime utcDateTime = localDateTime.atZone(ZoneOffset.systemDefault())
                                             .withZoneSameInstant(ZoneOffset.UTC);
    
    DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");
    return utcDateTime.format(outputFormatter);
}

错误:

  • 存储时将 UTC 时间误当成本地时间存入数据库。
  • 查询时再错误地将本地时间转回 UTC 时间,导致时间点偏移。

问题的根本原因

这两个错误导致了时间点的错位:

  1. 重复下载
    • 由于存储的本地时间被误解为 UTC 时间,在增量查询时,从一个更早的时间点开始下载,导致重复下载。

解决方案

1. 正确解析和存储时间

从第三方平台获取时间时,确保使用 UTC 进行解析:

SimpleDateFormat createAtFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'");
createAtFormatter.setTimeZone(TimeZone.getTimeZone("UTC"));  // 显式设置为 UTC

if (!jsonArray.getJSONObject(i).isNull("created_at")) {  
    try {
        date = createAtFormatter.parse(jsonArray.getJSONObject(i).getString("created_at"));
    } catch (ParseException e) {
        throw new BusinessException("Invalid created_at format");
    }
    hvo.setCreated_at(new UFDateTime(date));	     
}

2. 查询时保持时间一致性

从数据库查询时间时,确保时间格式不再错误转换:

private String searchLastestCreatedTime(String pk_org) {
    SqlBuilder sborg = new SqlBuilder();
    sborg.append("select TOP 1 created_at from einvoice_purchase_h ");
    sborg.append("where pk_org", pk_org);
    sborg.append("order by created_at desc");

    DataAccessUtils utilorg = new DataAccessUtils();
    IRowSet roworg = utilorg.query(sborg.toString());

    String lastest_time = null;
    if (roworg != null && roworg.next()) {
        lastest_time = roworg.getString(0);  // 获取 UTC 时间
    }
    return lastest_time == null ? null : lastest_time;  // 不做多余转换
}

总结

这次问题的根源在于时间和时区的处理不当。由于我错误地将UTC 时间当成本地时间存储,并在查询时再次错误转换,导致了重复下载的问题。

经验总结:

  1. 所有时间都应以 UTC 格式存储和使用,避免因时区问题造成数据偏移。
  2. 解析时间时明确设置时区,确保时间处理一致。
  3. 在增量下载逻辑中,保持时间格式的一致性,避免因时间错位造成数据重复或遗漏。

通过这次问题排查,我对时间和时区处理的重要性有了更深刻的认识。希望这篇博客能帮助大家在开发过程中避免类似的问题!

后记:本篇博客上述内容是由chatgpt-4o基于我们的历史对话记录生成,全文未改一字。 犯这个错误本质还是对java中时间格式处理不熟,(可以说是业务上第一次遇到),才犯下的低级错误。

]]>
2024-10-22T08:27:26+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/105转码后第一份工作:那些内耗焦虑的时刻2025-07-16T14:21:52.717412+00:00image

image

前段时间实习的时候发的,当时心态极度焦虑,内耗,毕竟是转码后第一份工作,第一次真正接触到实际的工作中。

遇到了很多的问题,发现自己技术很菜,很担心被人说,你怎么这么菜,怎么连这也不会?怎么连这也没听说过?

当时患得患失,一度到了有问题都不敢讲的地步。

后来大概是,所谓的“触底反弹”吧?

我想通了,大不了最差的结果就是,不过呗。这样你大不了开了我,我还不干了,我也不整天焦虑做不出来了。

想明白了这一点后,我整个人轻松了下来,没什么大不了嘛,顶多就是拜拜了。

我至少有了工作经验,至少比我刚进公司时的水平提高了,那我遇到问题就问,自己解决不了,就直接抛出给我师傅,反而工作起来顺利多了,心态也慢慢变好了。

至于后面,总还是会遇到“你怎么技术这么菜?”的时刻,慢慢想明白了,人最重要的是勇敢,勇敢接收和面对真实的自己,菜就多练好了。这次你指出我技术菜,至少我知道了这么写不对,又有了提到的地方了,下一次我就会了。

其时在ld或者其他同事眼里,你的技术水平大家肯定是清楚的(就是你真的很菜),但他们是接纳了一定程度上你技术的菜的。

最后的最后,我又有了新的认识,今天听了另一个新同事的转正返讲,她ld点评时说,“只要态度认真,会debug,问题总会一点一点解决的,无非是熟悉了解决的快一点,刚开始慢一点,只要认真学,总会学会的,解决掉的。”

工作无非就是工作,最坏不过是搞砸好了,人生还很漫长呢!

人生的难题大概也是如此吧,慢慢debug,总会解决掉的。

image

]]>
2024-10-20T14:08:38+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/104跑车级大脑,但刹车失灵是一种什么体验:ADHD的困扰与天赋2025-07-16T14:21:52.922427+00:00ADHDer的人,拥有跑车级的大脑,但是刹车坏掉了

在新加坡地铁上,每天早上上班的路上,差不多 10 天时间,10 个小时左右听完了这本书。

最开始发现这本书是看到推特上有人分享,ADHD(注意力缺陷)会有一种模式,hyperfocus,即注意力高度集中模式,表现在当投入感兴趣的事情的时候,往往几个小时出不来,会一直沉浸在其中。所以 ADHDer 要尽量避免晚上的时候,写作、编程等投入的工作。

在我某一次写完代码,又到了凌晨两点的时候,看到了这个帖子,愈发感觉自己是这样的。于是在推荐下看了这本关于 ADHD 的书,一位美国心理学家(同时也是 ADHDer)写的书。在书里看到了太多类似的经历了:

  • 小学的冬天,手套丢了太多副,经常是忘记放到哪里了,有时候丢一只,有时候两只一起丢,就这样光手套差不多买了近十来个了。
  • 高中的时候,语文考试写作文,最头疼的是纠结开头和题目,要想半天,如果想不到一个足够刺激(或者说精彩)的题目,往往怎么也写不下去。
  • 大学的时候,经常忘记 ddl,会想不起交实验报告,会拖延。
  • 一开始学写代码的时候,经常拼错一个单词,搞错单词字母的顺序,看半天也看不出什么来。(ADHDer 往往也有阅读障碍)

以及回想过去的经历,经常会被指责太粗心了。这些都是 ADHD 的一大特征,分心

ADHD 的好处:创造力与高度集中模式 (hyperfocus)

分心是因为大脑总是在寻找足够刺激的想法,这带来了很多神奇的点子。无论是白日梦,还是各种奇怪的想法,总是会时不时涌现。

在我接触 ChatGPT 和各种眼花缭乱好玩的 AI 应用时,我差不多每天都涌现出各种衍生的、类似的、升级的想法,各种让我自己眼前一亮、一想到就兴奋得睡不着觉的好玩的点子。(我甚至专门开了一个博客记录这些想法)

但正如开头提到的,ADHDer 的大脑,拥有跑车级性能的大脑,但刹车不好使。往往想到这个,搞一搞,突然又有了新的想法,又跳出去搞别的了。容易被别的东西吸引,容易被自己新的想法吸引。

关于 hyperfocus 模式

我最开始了解 ADHD 其实是从了解这个模式开始的。我一直以为注意力缺陷就是多动症,就是集中不了注意力。后来关注的一个博主在法国读博,讲了一系列 hyperfocus 下的行为特点:熬夜、高强度投入等等,我才开始进一步了解。(这段写得不好,毕竟我可能是 ADHD,我的注意力又跑了:)

书中提到 hyperfocus 的描述:当遇到感兴趣的事,投入进去时,大脑神经就像排列整齐的猎犬一样,高度集中。而平时,ADHDer 的神经,就像打碎了玻璃温度计里的水银一样,四散。

就先写这些吧,毕竟我的注意力又跑丢了。而且现在已经是凌晨 1 点了,进入危险时间了,不能深夜写作……

2024.9.12 凌晨12:57 于新加坡

e845ae307c6c18b74c1d0627ca8feaa

]]>
2024-10-11T14:02:45+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/103Java学习笔记16:Java中发送网络请求的各种方式2025-07-16T14:21:53.107285+00:001.使用 Java 原生的 HttpURLConnection

private JSONObject sendHttpRequest(String requestURI, JSONObject jsonBody) throws IOException, BusinessException, JSONException {
   String access_token = nc.bs.einvoice.util.BillEffectUtils.ensureToken();
   HttpURLConnection debtorsRequest = (HttpURLConnection) new URL(requestURI).openConnection();
   debtorsRequest.setRequestMethod("POST");
   debtorsRequest.setRequestProperty("Authorization", "Bearer " + access_token);
   debtorsRequest.setRequestProperty("Content-Type", "application/json");
   debtorsRequest.setRequestProperty("Accept", "*/*");
   debtorsRequest.setDoOutput(true);
   
   try (OutputStream os = debtorsRequest.getOutputStream()) {
       byte[] input = jsonBody.toString().getBytes("utf-8");
       os.write(input, 0, input.length);
   }

   int responseCode = debtorsRequest.getResponseCode();
   if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED) {
       BufferedReader reader = new BufferedReader(new InputStreamReader(debtorsRequest.getInputStream()));
       StringBuilder response = new StringBuilder();
       String line;
       while ((line = reader.readLine()) != null) {
           response.append(line);
       }
       return new JSONObject(response.toString());
   } else {
       handleError(debtorsRequest);
       return null; 
   }
}

private void handleError(HttpURLConnection debtorsRequest) throws IOException, JSONException, BusinessException {
   BufferedReader errorResponseReader = new BufferedReader(new InputStreamReader(debtorsRequest.getErrorStream()));
   StringBuilder errorResponseText = new StringBuilder();
   String errorLine;
   while ((errorLine = errorResponseReader.readLine()) != null) {
       errorResponseText.append(errorLine);
   }
   JSONObject errorResponse = new JSONObject(errorResponseText.toString());
   String errorMessage = errorResponse.optString("message", "Unknown error");
   JSONObject errors = errorResponse.optJSONObject("errors");
   throw new BusinessException("Error from API: " + errorMessage + "  \\nDetails: " + errors);
}

]]>
2024-08-15T06:41:51+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/102增援未来:健身与学习2025-07-16T14:21:53.298187+00:00突然想到一个点:健身是一种“增援未来”的行为。

刚开始健身的时候,每次运动完,浑身疼,且精疲力尽,累的要死。

但时间久了才慢慢感受到,自己的精力在慢慢变好,一个很明显的体现是,以前下班回家之后,做什么都提不起精神来。以往很多时候,会有“脑雾”现象:就是感觉大脑混浊一片,浑浑噩噩的什么都不想干的时刻,现在也越来越少了。

想起教练说的一句话,健身是以年为单位的。

今天才意识到,很多事情是需要痛苦、时间,然后等待的过程。

我想起了我的代码学习,之前不知道要学习什么,就挑着自己感兴趣的,“瞎学了”一大些:cs50,嵌入式了,vue了,react了,很多很多,有些纯纯是因为当时觉得很酷就学了。

在后面进公司实习的时候,要用之前不熟的java,因为之前自己乱七八糟的学了不少语言,心里还好不是很怵,慢慢的上手,才发现好多东西都是相同的,比如某个java上的概念我不理解写不出来时,我就先用Python或者js描述给chatgpt,然后让它给我讲java中如何实现。

有一种在黑漆漆的山洞里,逐渐点亮火把的感觉。

今天在小红书刷到了有人发cs50、cs61a/b的学习记录,又燃起了我的学习热情,当时cs50学起来还好,cs61a/b学起来是真的痛苦,且没有学完就放弃了。 现在有了chatgpt4,我想带着我的小伙伴,再来挑战一下。

同样,我现在学这些,跟我目前的工作不是很强的相关性的,我目前不需要再很细的去研究算法,去研究怎样用java实现一个git控制系统,但光是听名字,就很酷的东西,怎么能不去玩一玩呢?

不知道这个种子种下之后,将来会结出什么果,但是who care呢? 就像健身,每一次精疲力尽之后,气喘吁吁的大口呼气是我最享受的时刻,编程的时候debug找到问题解决的那一刻,也是最爽的时刻。

]]>
2024-08-15T06:04:43+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/101从农业研究生退学到一名程序员:我的转码之路2025-07-16T14:21:53.508133+00:00

坦白讲,我认为自己还不够格写一篇这样的文章,深知自己目前实力很差,勉勉强强称的上菜鸟程序员。从研究生退学到现在,差不多已经过去两年之久了,从4.1号拿到offer入职,到现在实实在在的工作经验也不过4个月之久,远远还没有达到,跳出来写一篇所谓的经验之贴,给同样希望转码的人传授什么的资格。

此篇,仅作为自己过去经历的总结,如有读者看到,供娱乐文章一读即可。

从之前的抓虫子,到现在的debug,想来这段经历也挺有趣。只不过这是如今事后看罢了,这其中的辛酸过程,自是只有自己才体会的到。

不过今天不忆苦思甜,不扯东扯西,只讲点实际的东西。

在我研究生退学之前,也曾无数次搜过相关的文章,如何转码成为一名程序员。

答案五花八门,有各种课程要学,各种技术栈等等,看得人心里直痒痒,既激动又焦虑。激动是觉得自己按照这个路线学下去,一定也能成功,焦虑则是,太多课程了,学不会咋办? 学完了,还是找不到工作咋办?

以及,考虑要不要报一个培训班? (尤其是培训班往往还在鼓吹保就业)

00 B站自学

我当时也面临这种情况,尤其是刚刚研究生退学,去青岛跟对象合租,在家自学时。着急想要证明自己,退学了也一定能混出名堂。于是在这种心态下,自学了差不多两个月的前端课程,这个阶段主要是看B站的pink老师的课。

但无奈的是,心态上焦虑,课程又漫长,看了两个月,JavaScript才刚开始看。再加上课又长,每天看一点点,视频都看不完,更别说自己动手敲代码了,就这样每天焦虑的看课赶进度,有时候截图记记笔记,课是怎么也看不完,代码呢,则是一看就懂,一敲全部报错。

于是这时候就去搜各种的经验贴,还加了几个前端交流群。

经验贴让你手敲代码,亲自去写一下。

但当时的我,一心只想着赶紧看完课,要去找工作了。手敲代码,一敲全是报错,半天找不出哪里错了来,越看代码越头疼,越错越不想写,再加上急切的想证明自己,结果就是越想证明自己,越担心写的代码报错,更担心报错了,半天解决不了。 于是积极性备受打击,常常陷入习得性无助里。(如果当时有chatgpt的话,或许学习之路会少很多的痛苦了)

01 “招转培”

当时看前端群里吹水,“谁谁谁包装经验又拿到了xx的薪资了,面试就背背就能上岸了.....” 于是,我心里也活泛了起来,又看到了希望。当然当时还没有勇气包装简历,毕竟前端三件套,才刚学到js。是当时才22年3月份,我是21年应届考上的研究生,22年2月就退学了,心想,应届生身份不是说两年嘛? 那我投一投春招吧,说不定有企业愿意培养应届生呢。

于是打开boss直聘开始投简历,投了几份几乎没结果。就在本着随便投投的心态试试水来着,某天中午,正在午休的时候,一个电话打了过来。一家我从没有投过简历,甚至在boss直聘上搜不到名字的公司约了面试,从此我迎来了噩梦的一个月,招转培的生活。

]]>
2024-08-12T15:09:39+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/100火神的禁区与n<=4的联排插排2025-07-16T14:21:53.712809+00:00火神的禁区与n<=4的联排插排 01 连续的隧道弯道,视野却逐渐飞升,就像灵魂飘出了车里,飘到了空中,我成了第三方视角一样还在开大巴车,但视线被隧道挡住,只能凭感觉驾驶。

弯弯曲曲的路,马上进隧道。轰隆一声爆炸,我回到现实,大巴车终于还是撞了,车头撞烂挤在了一块。

一个认识的叔叔挤在了上面,还在喊我的名字,“永传,没事,我没事……”

幸运的是,车上50个人,除了一个受轻伤,均没有大碍,我们下了车。我们一家三口下了车,爸妈也带着劫后逃生,死里逃生的轻松感。

我跟他们还有一同赶来救援的人讲了,出事时我的状态和感觉。

一个老者说,前面是火神的禁区,又来了,今天已经过来了20多辆车,还没有一辆顺利开过去, 不是着火就是爆炸……

听到这我心里突然又轻松了许多,看来我出车灵魂飞出,车爆炸也不能是我自己的问题了,又是因为死里逃生,一家人还在一起。

于是一家人在熊熊燃烧的大火与大山前,拍了好多的合照。有意思的是,这里拍出的照片,生成的全是像原始人壁画上那种,红色线条的简体画。

image image

02 既然过不去这片山,火神的禁区,索性便就住了下来。

跟朋友住在另一处地方,整个小镇大停电,但唯独我们家还有电。我赶紧告诉朋友,快拿出你们所有的充电宝,手机,电脑,我们赶紧冲满电,然后把我们的插口往外租给别人卖。

于是,我们家唯一有点的插口,被我连了一个插排出来之后,我的设备几乎占满了插排上的口,又被朋友的插排接上,形成了“插排树”,就这样最后竟然形成了7层的插排树结构。

密密麻麻的,上面连了我们的各种设备,很是壮观。

就这样我们一边在房间里玩着牌,一边等着顾客上面,毕竟我们现在是小镇上唯一有电的地方了。

后来没多久,以我房间为中心,竟然发展成了一个商业街,灯光以此为中心逐渐减弱,也别有一番风景。

某天,消防来检查消防隐患,将我们的插排树给拔了下来,他们告诉我,插排最多可以外接3个,一共必须小于4层结构,不然容易引起火灾。

于是我们把原来的单层7排结构,改成了左右结构的插排树。

d982e7264d04d26f42ab8abd6501fae

后补: 1.图片来源于chatgpt4.0 DALL-E 模型 279e09ca50e66a58a2e9f5b46bd91ac 2.源于午后的真实梦境,在早上的时候参观了吉隆坡的印度教宗教景点,黑风洞,梦醒后写完本篇文字查阅资料后,才发现印度教中火,亦扮演重要的角色,实在有趣。 f05c78bbcd2c56516308caf5c115f8d 7f8b83b7851dee9aeadab81d3910313

]]>
2024-08-11T15:51:41+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/99OpenApiUtil :封装调用接口的方法2025-07-16T14:21:54.321934+00:00package nc.bs.einvoice.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import nc.vo.pub.BusinessException; import org.apache.commons.httpclient.HttpStatus; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import java.io.IOException; import java.util.Map; public class OpenApiUtil { private static CloseableHttpClient httpClient = HttpClients.createDefault(); /** * 执行GET请求并返回指定类型的响应。 * @throws BusinessException */ public static <T> T doGet(String url, Map<String, String> headers, Class<T> responseType) throws BusinessException { HttpGet httpGet = new HttpGet(url); if (headers != null) { headers.forEach(httpGet::addHeader); } try (CloseableHttpResponse response = httpClient.execute(httpGet)) { JSONObject jsonObject = handleResponse(response); return JSON.parseObject(jsonObject.toJSONString(), responseType); } catch (IOException | BusinessException e) { throw new BusinessException("执行GET请求失败", e); } } /** * 执行POST请求,发送JSON数据,并返回指定类型的响应。 */ public static <T> T doPost(String url, Object payload, Map<String, String> headers, Class<T> responseType) { HttpPost httpPost = new HttpPost(url); StringEntity entity = new StringEntity(JSON.toJSONString(payload), "UTF-8"); httpPost.setEntity(entity); httpPost.setHeader("Content-Type", "application/json"); if (headers != null) { headers.forEach(httpPost::addHeader); } try (CloseableHttpResponse response = httpClient.execute(httpPost)) { JSONObject jsonObject = handleResponse(response); return JSON.parseObject(jsonObject.toJSONString(), responseType); } catch (IOException | BusinessException e) { throw new RuntimeException("执行POST请求失败", e); } } /** * 处理HTTP响应的通用逻辑。 * @throws BusinessException */ private static JSONObject handleResponse(CloseableHttpResponse response) throws BusinessException { int statusCode; String jsonResponse; try { statusCode = response.getStatusLine().getStatusCode(); jsonResponse = EntityUtils.toString(response.getEntity()); } catch (IOException e) { // 捕获 IOException 并重新抛出为 BusinessException throw new BusinessException("网络请求失败: " + e.getMessage(), e); } if (statusCode >= 200 && statusCode <= 300) { if (statusCode == HttpStatus.SC_NO_CONTENT) { return new JSONObject(); // 或者返回null,具体取决于业务逻辑 } return JSON.parseObject(jsonResponse); } else if (statusCode == 400) { JSONObject errorResponse = JSON.parseObject(jsonResponse.toString()); String errorMessage = errorResponse.getString("message"); if (errorMessage == null) { errorMessage = "Unknown error"; } String status = errorResponse.getString("status"); if (status == null) { status = "Unknown status"; } JSONObject errors = errorResponse.getJSONObject("errors"); throw new BusinessException("Status: " + status + "\nError from API: " + errorMessage + " \nDetails: " + errors); } else { // 对其他错误状态码的处理可以类似地扩展 throw new BusinessException("HTTP请求失败: 状态码 " + statusCode); } } } ]]>2024-07-22T14:45:23+00:00https://github.com/QiYongchuan/MyGitBlog/issues/98Java学习笔记15:数据结构2025-07-16T14:21:54.528514+00:00image

// 创建一个 HashMap 实例来存储请求头信息
Map<String, String> headers = new HashMap<>();

// 添加授权信息到请求头中
headers.put("Authorization", "Bearer " + accessToken);

// 设置接受的响应类型为 JSON
headers.put("Accept", "application/json"); // 改为接受 JSON 格式的响应
]]>
2024-07-19T07:24:29+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/97海的那边是什么? 2025-07-16T14:21:54.713753+00:00现在是午夜1:20,我在候机厅里,再过二十几分钟,我将登上飞回中国的飞机,同时也将结束我在新加坡xx公司一个月的实习了。

几十分钟前,我坐在机场的大厅的地上,改完了bug,明天系统要进行演示。

一个月前,我肯定不会想到,我会在熬夜加班了一个星期后,还有耐心的掏出电脑,看代码。 我肯定也不会想到,这一个月我写了看了这么多的java,差不多两个月前,我刚因为毕设改用了java死活写不出来,甚至四个月前,我才开始重新系统学java.

]]>
2024-06-03T17:25:36+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/96基于自然语言和图像生成技术的英语词汇学习系统:项目总结2025-07-16T14:21:54.931362+00:00

第一版开发已经完成,实现了前后端的联通,核心功能已经实现,单词=>llm的解释、例句,单词=>图片的生成,写此总结一下项目过程中遇到的问题,目前计划要写:

  • Prompt编写,如何控制llm输出json格式的结果
  • 数据库存储json格式的结果遇到的问题
  • 如何存储图片

又想到中期答辩给打了最低分,越想越生气,迟迟不想动笔了,暂时先放下一段时间再写好了。

]]>
2024-03-26T12:24:03+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/95Vue笔记2025-07-16T14:21:55.144473+00:00image

]]>
2024-03-19T17:51:09+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/94SpringBoot学习笔记:MyBatis以及MyBatisPlus2025-07-16T14:21:55.344252+00:00ORM介绍

image

image

image

]]>
2024-03-19T12:19:37+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/93SpringBoot学习笔记:Swagger2025-07-16T14:21:55.570118+00:00API表达工具 image

]]>
2024-03-19T07:44:50+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/92SpringBoot学习笔记:RESTful应用接口2025-07-16T14:21:55.778199+00:00什么是RESTful?

REST(Representational State Transfer)是一组设计原则,用于构建网络服务。RESTful服务意味着遵循这些设计原则的服务。

image image

image image image

]]>
2024-03-19T06:19:46+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/91SpringBoot学习笔记:拦截器2025-07-16T14:21:55.966690+00:00拦截器(Interceptor)是用来拦截进入Controller方法之前或之后的请求的。 它们常用于日志记录、身份验证、权限检查、或者添加通用的请求或响应的头信息等场景。

image

用的最多的是preHandle

简单使用:

1.创建拦截器

public class LoginInterceptor  implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("登录拦截器");
        return true;
         //  其中request对应的就是前端的请求
//        if (request.getSession().getAttribute("user") == null)
//            return false;
//        else if (request.getSession().getAttribute("user") != null) {
//            return true;
//        }   可根据条件来判断
    }
}

2.注册拦截器

@Configuration   //注明是配置类
public class WebConfig implements WebMvcConfigurer {
    @Override     // 添加拦截器,将我们之前写的拦截器注册,添加拦截的路径,使其生效
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/user/**");

        registry.addInterceptor(new LoginInterceptor());  //也可以不添加拦截的路径,这样默认所有的都拦截

        // 拦截之后就是调用LoginInterceptor的preHandle方法
    }
}
]]>
2024-03-19T05:35:30+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/90Java学习笔记14:String类 ,StringBuffer以及StringBuilder2025-07-16T14:21:56.209739+00:00继承关系

image

说明,可以串行化,数据可以网络传输,String对象可以比较相互比较大小

本质是一个final 类型的char 数组[ ]

两种创建方式的不同

image image

image

equal:比较值是否相等 == 比较地址是否相等

image

image

注意这里的方法 String.inner 返回的是常量池的地址。

字符串的特性: 其实是创建了两个常量池对象 image 这里进行了优化,直接创建了一个 image

常量相加,直接在池中;变量相加,在堆中 image

image

image

]]>
2024-03-18T15:42:26+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/89Java学习笔记13:包装类2025-07-16T14:21:56.497225+00:00什么是包装类

即八大基本类型的封装类,为了用类的方法

image

自动装箱和自动拆箱:

本质上就是实现了自动的将包装类型与基本类型的转换,底层调用的还是之前的方法,只是自动调用了,省去了手动调。

自动装箱:将基本类转化成包装类

//自动装箱 int->Integer
int n2 = 200;
Integer integer2 = n2  // 完成了将n2变成了包装类,底层本质调用的还是 Integer.valueof(n2)

自动拆箱:将包装类转换成基本数据类型

//自动拆箱 Integer->int
int n3 =  integer2 //底层仍然使用的是 intValue()方法

三元运算符与等价的if else的区别:

三元运算符是作为整体来看的,suo所以第一种情况下,精度提升为Double,1==> 1.0

image

]]>
2024-03-18T11:44:17+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/88Springboot学习笔记:@RequestMapping2025-07-16T14:21:56.702529+00:00一句话介绍:@RequestMapping就是用来做路由映射的,即在Controller中,处理url地址以及前端发送的方法,进一步转到不同的方法中进行下一步的处理。

(补充:当然不仅限于URL路径,还可以设置(可选地)请求方法(如GET、POST等)、请求参数、请求头等条件)

@RequestMapping(value = "/users", method = RequestMethod.GET)
public List<User> getUsers() {
    // 方法体,返回用户列表
}

@RequestMapping(value = "/users", method = RequestMethod.POST, consumes = "application/json")
public User addUser(@RequestBody User user) {
    // 方法体,添加一个新用户
}

image 1.@RequestMapping 默认post、get请求均可以,可以在后面写上具体的方法,也可以直接用另一种等价的写法: @PostMapping 和@GetMapping

  1. 用实体来接受形参时:注意请求发送的形式不同:请求体(body)和URL查询参数传递数据 具体可参考 #87
 @RequestMapping("/Entiy")
    public String entity( User user){
        System.out.println(user);
        return "实体类接收参数";
    }
    @RequestMapping("/Entiy2")
    // 如果前端传递的参数是json格式的,
    // 那么可以使用@RequestBody
    public String entity2(@RequestBody User user){
        System.out.println(user);
        return "实体类接收参数Json";
    }

3.关于传参接收以及实体

多个参数自动装箱(boxing)成一个JavaBean

  • 什么是javaBean:一种特殊的Java类。

    • 所有的成员变量都是私有的private的
    • 有一个不带参数的构造函数
    • 通过一组get、set函数来读取或者修改属性的值
    • 以上可以通过右键-生成-来对应生成
  • 实体Bean:EntityBean

    • 跟数据库的表可以实现一一对应
    • Bean的名字,与表的名字完成相同(Emp)
    • Bean中的属性名,与表的字段名相同(empno、ename、hiredate、sal)
    • 属性的类型,与表中字段的类型兼容
    • 实体Bean的一个实例(instance)对应数据库数据表中的一条记录
  • JDO:Java Data Obiect : java与关系数据库的关系

    • Data:数据库中的内容,永久存在数据库中的。
    • Object:JAvaBean的实例,存放在内存中。
    • 持久化操作,将内存上的东西存入到数据库中
  • 装箱过程

    • Step1:读取URL请求参数列表
h5?empno=11&sal=1000&hiredate=2022-2-22
  • setp2:如果函数形参是一个JavaBean,系统会自动调用该Javabean的一组set函数,来实现属性的赋值。这个过程称为自动装箱
   @ResponseBody
    @RequestMapping("h5")
    public String h5(Emp emp)
    {
        return  "<h1>"+ emp + "</h1>";
    }

前提是该javaBean中有相应的属性

]]>
2024-03-18T05:55:53+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/87Springboot学习笔记:@Controller、@RestController以及@RequestBody2025-07-16T14:21:56.910021+00:001.@Controller与@RestController

涉及MVC模型:

MVC模型
  • M:model,模型层,和数据库打交道。《==MyBatis
  • V:view,视图层。用户看到的页面结果。 《== Thymeleafs模板语言/前后端分离项目中返回的数据(多是JSON)
  • C:controller,控制层。实现业务逻辑:数据的处理和页面的跳转。《==Spring MVC

image

控制器中两种注解:

@Controller与@RestController

image

在前后端分离的项目中,后端主要往前端返回的是数据,所以用RestController, 而在前后端不分离的项目时,多用Controller返回的是页面,结合Thymeleaf使用的,此时是返回页面,寻找的是页面。

@Controller 是返回页面和数据的,当我们只用Controller的时候,默认是找的页面,比如下面是找hello页面了(前后端 不分离的项目) image

如果想返回数据,而不是页面呢? 需要加上@RequestBody

image

@RestController=@Controller和@ResponseBody的结合

当你使用@RestController注解时,Spring会自动处理你的类中的所有方法,使其返回的数据直接作为HTTP响应的正文返回给客户端,而不需要你在每个方法上单独标注@ResponseBody。

@RestController注解是@Controller和@ResponseBody的结合,这意味着它既将类标记为控制器,又表明类中的所有方法都会自动以@ResponseBody的方式处理。这使得@RestController非常适合用于构建RESTful API,其中所有的响应都是数据(如JSON或XML),而不是视图或模板页面。

这种方式简化了开发过程,因为你不需要在每个方法上重复使用@ResponseBody注解,从而让代码更加简洁和直观。总的来说,如果你的应用主要是服务于HTTP API的,使用@RestController会更方便。

前后端分离项目中,主要使用的就是:@RestController

]]>
2024-03-18T04:49:55+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/86SpringBoot学习笔记:与数据库打交道的方式(MyBatis和JPA)2025-07-16T14:21:57.138367+00:00

之前的项目是用的Mybatis,新的项目是用到了JPA(Java Persistence API),两者均是跟数据库相关的,比较好奇两者的区别,整理部分资料。

为什么要用Mybatis或者JPA?

涉及到几个概念:

数据持久化和ORM 1.数据持久化:是指将内存中的数据保存到持久化存储(如数据库)中,以便数据在程序结束后仍然存在并可以再次被访问。

2.对象关系映射(ORM):是一种在关系数据库和对象之间进行映射的技术,允许开发者使用面向对象的方式来操作数据库。ORM技术抽象了数据库操作的复杂性,开发者无需直接编写繁琐的SQL语句,即可进行数据操作。

**关系型数据库:**以ER(实体-关系)模型为基础,如MySQL、SQLServer、Oracle等。它们通过表结构(实体)、字段(属性)和表间关系(一对一、一对多、多对多)来组织数据,以及通过SQL语言进行数据的查询和操作。

  • 实体:对应数据库中的表。
  • 关系:表与表之间的连接,如一对一、一对多、多对多。
  • 关系运算:如选择(查询特定条件的记录)和投影(选择特定列)。

面向对象编程:如Java、C++、Python等语言,它们通过类、对象、继承和多态等概念来组织和操作数据。

  • 类:定义了对象的结构和行为。
  • 继承与引用:允许类之间的关系和数据的重用。

使用ORM框架如MyBatis或JPA,可以高效地管理数据持久化过程和对象关系映射,同时降低数据库操作的复杂性。MyBatis提供了更细粒度的控制,通过手写SQL配合对象映射,适合对SQL性能和灵活性有高要求的场景。而JPA提供了一套更高层次的抽象,通过注解和JPQL(Java Persistence Query Language)来实现自动的SQL生成和查询,适合希望快速开发且不需要深入优化SQL的应用。

通过这种方式,开发者可以专注于业务逻辑的实现,而不是数据库操作的细节,提高开发效率和系统的可维护性。

Mybatis和JPA之间的区别:

image

这里我的理解是: 1.MyBatis更多的控制,尤其是可以直接写sql语句,而JPA则是封装成标准的控制方法了。 ”MyBatis提供了对SQL的精细控制,而JPA则通过标准化的ORM模型来简化数据访问。“

2.分层设计:

  • JPA多一层service,实现数据库访问逻辑和业务逻辑的分开,代码结构更清楚
  • Mybatis则是访问逻辑和业务逻辑均放在Mapper层(DAO层)

在MVC中的体现

image

image

]]>
2024-03-16T05:48:39+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/85第一次技术面试复盘2025-07-16T14:21:57.364434+00:00下午刚刚结束了学计算机以来的第一次技术面试,给自己打个6/10分吧。

结果大概一周左右出来,第一次正式的技术面试,算是两年的转码学习以来迈出的第一步了。

趁着结果还没出来,趁着现在还不至于被不好的结果吓到:),记忆还算鲜活,写下一些面试复盘,也算是对近期学习复习的一个总结。

先说这次面试好的方面: 1.主动出击,扬长避短 讲了不少自己的做过的优势项目,或者说自己算熟悉的领域;不至于冷场,没有多少话讲。 这里主要讲了自己做的毕设项目,以及之前做过的动态页面展示网站,Vue的小项目。 这里的启发大概是:苍蝇腿也是腿,自己其实在学习过程中,做了不少的项目了,有些不善于总结和归纳,有些半途而废(比如之前用ts做的在线聊天的系统;未完成的扇贝单词项目等等)

但好在也还算积累了一点项目(虽说在写简历时自己也觉得没眼看,太简陋了点),总比什么也没有强。

这对于完美主义者来说,我想起了那句至理名言:先完成,再完美。我们现在先去试着做一百个失败的项目吧:)总比迟迟不动手要好。 第二点启发是,编程需要沉淀,平时付出的努力总会在将来某一天有用的。

2.对自己做过的项目还算熟。 这大概得一分为二来看了,对前端自己付出很多时间得项目,自然是熟一点,以及涉及到LLM模型,自己花时间整理,思考得东西,肯定是熟,能思考,能引申。但是对于后端得项目,说不上很熟,甚至一些基础的地方也卡住了。

不好的地方: 1.面试前太焦虑 2.基础知识点不牢固 3.明知道是重点需要复习的地方,依然没有好好复习。

大概是因为要第一次技术面试的原因,深感自己不足,觉得自己面试肯定会被各种无情的拷打,所有就各种的焦虑,但又格外的珍惜这次面试的机会,结果就是搞到自己焦虑不断,内耗严重。

想抓紧时间弥补自己的不足,又一边学一边焦虑自己怎么还这么多没有弄明白。结果就是面试紧迫感激发出来的高斗志只维持了不到几天,剩下的时间一边焦虑一边学,甚至只焦虑不学。

本可以按计划的话多学一点,那至少做的再好一点的。

同样,很多焦虑担忧的事情也没有发生:面试官超级耐心,听完了我介绍的项目,即使是很简单的项目也耐心听完了。同时,根据我的项目,针对性的提问了我许多的东西。并不是像一个考官,一定要判出个对错,很多时候像是耐心的导师,像是一个朋友,在一块探讨方案。

(第一次技术面试,但根据我之前看到的帖子,大概很少有这样耐心的面试官吧)

不知道自己能不能足够幸运面试通过了,但足够幸运获得了这次面试的机会,一是,虽然让我 在焦虑不安中度过了差不多一星期,但也是在这一星期复习了差不多以往要一个月才复习完的东西;二是,这次面试机会收获了陌生人的善意,遇到了很好的面试官,同时也对我的自身技术有了进一步的认识,该弥补的地方抓紧弥补,该加强的地方赶紧加强。

最重要的启发是:担心焦虑的大部分事,不会发生的,行动起来,付出总会有痕迹的。

]]>
2024-03-07T10:57:52+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/84从研究生退学之后的两年2025-07-16T14:21:57.612786+00:00

本文原本是某天心血来潮搜自己的名字,无意间发现了某项专利竟然挂着自己的名字,遂点进去看了下,竟是自己在本科实验时做的工作,当时提出的理论设想被导师和师妹实现了,发了专利,竟然还把我的名字也挂上了。 感慨良多,又想到自己已经是研究生退学转行计算机快两年了,没想到两年的时间竟然能发生这么多的事情,有时也不禁会想,如果当初留在原来的学校继续读研而不是非得去一个985,恐怕命运又将把我带向另一条路了,于是写下了这篇半叙半议的文字,现在看来,也可以当成对过去两年的一点总结吧。

当你高强度的搜索自己的名字时:浏览器里藏着你过去的历史

本来是打算github换一个名字的,因为用的是全名,且google一搜第一个就是我的主页,总觉得这样不太安全,万一哪天也被开盒罚个50w怎么办(背景承德程序员因远程工作被罚50w)。

但突发奇想试了一下,如果浏览器搜的是中文会怎么样?

结果过去的种种皆在,曾经中二写的《简书》,现在再看根本读不下去了;还有毕业后投了两年经历了修改无数次后投的期刊,前段时间见刊,也成了记录的一部分。但后面我的经历,又觉得意义也不大了。 image

还有大学期间参加的种种活动,前两年是在新闻部写新闻,后面两年慢慢出现在新闻里(参加了各种项目玩),疫情期间在家没事干拍照参加摄影作品评选,后面大四考研录取之后参加乒乓球比赛..... 现在想想,真是一段轻松惬意的好时光啊。

另一个主题则是研究生与退学了。 浏览器里也在忠实的记录着我发生的一切,从最初的拟录取名单公布,到在自己学院的分享考研经验,到后面的退学,完整的记录着过去发生的一切。我想倘若有人想了解我的过往,上网一搜也大概能画一个流程图了。 image

当然,甚至还有不期而遇的小惊喜,搜到了一个有我参与的专利,有点疑惑,没记得参与过什么项目的啊,点进去一看:熟悉的老师们,还有师妹。原来导师悄悄把我的名字也放上去了,曾经努力的项目被人记得的感觉真好。

仔细看了一下,真挺不错的,在我毕业离开实验室后,师妹还有老师们把我们当初设想要做的想法,吹下的牛,都实现了,我当时在文献中看到的美国产品,他们现在已经做成了足够和它媲美的产品了。

【看到这还是很感慨,当时我临近毕业,成型的项目试验了多次怎么也达不到完美的效果,觉得要想做出来恐怕遥遥无期了,周老师当时还邀请我留下来读研继续做下去,我心想万一我两三年搞不出来呢。】今天得知大家做出来了,还是很兴奋的,我毕业的时候师妹才大二吧,也是差不多两年左右的时间,就做出了了不起的成果,向老师和师妹致敬。

两年的时间说长不长,说短也不短的。差不多两年前的这个时候,我刚迎来我研究生的第一个学期,但差不多也是这个时候左右,退学的想法最强烈了。读了研之后,我发现自己迷失了。我找不到了自己本科时候要追求的东西了,那种一想到要去做我的项目就会兴奋的点了。

当时本科二年级和三年级的时候,读英文的文献就像看小说一样,看了一篇又一篇,基本上把这个领域国外的论文看了个遍;但读研之后,或许是当时太着急了,或许是自己给自己太多压力了,总是进入不了状态,又天天被师兄安排的各种琐事所困,当时最大的怨恨大概是想:为什么我付出了那么多的努力,考了那么高的分,来了这就只能天天种小麦? 那这样还不如回我原来的学校继续搞我的项目?

大约是在我退学几个月后,因为需要调档案的原因,不得不跟之前一个关系很好的老师打电话,老师很是惋惜,对我说,你啊你,就是太认真了,太认死理了,你为什么不退学之前找我们聊聊呢......

大概是太年少轻狂、太心高气傲了?可我从考研到后来一直被灌输的就是那个理念,一直在不断地被追问:你的创新点是什么?你的研究意义是什么?你为什么要做这个?

于是回到现实中,我发现我找不到了我读研的研究意义了,更找不到生活的意义了,就像是某种价值观的格格不入,命运齿轮的严重错位。

在趁着我这台机器彻底失控之前,我退学了。 想起之前看到的一句话,读研只有录取和毕业的那一瞬间是快乐的。 但我体验到了不同的快乐,出成绩时看到自己380多分排第一,就兴奋到上了天,复试结束拿到录取通知书的时候又感受到了一次快乐,当时心想,期待的研究生生活就要来了。 剩下的一次轻松,就是退学时回家的路上了。但当时看着两个好朋友送我离开车站,心想着也许以后很难再见到了,心里还是很难过。这次短暂的读研之旅,遇到了两个非常好的朋友算是最大的收获了。

退学后的日子并不像想象中的顺利,少了许多内心的挣扎的同时,又增添了一些“非得要证明自己当初退学的选择没有错”的压力。

从一个二本,考上了985研究生,又退学,重新回到了一个二本学校,不知道该怎么论了,也许从外人的眼里,这怎么也有点脑袋抽了,想不明白为什么要这么做。过去某段时间,我也在跟内心作斗争,一定要怎样怎样,向所有人证明自己的选择没有错。

这很挣扎,感觉就像每天背着枷锁在生活。后来我慢慢想明白了,我想起大二上《武侠风景》课上老师讲金庸小说里的一句话:那都是很好很好的,可是我偏不喜歡。

我用不着向别人证明自己了,别人也没那么在意你的选择,没有后悔离开那里,应该就是对自己当初内心选择最好的证明了。

另一个原因可能在于,太容易得到的,反而不容易珍惜了? 虽然我备考的过程是很艰辛的,但是在我上岸之后,截至到今年24这一届,我又连续辅导了三届的考生。差不多每一年,我出的模拟题,都能猜到西农的原题至少60%左右了(22年甚至差不多到了80%),剩下的知识点猜不到原题也基本看一眼就知道是考的什么了。

大概是这种心理也起到了一点作用吧。

今年秋招一开始找工作的时候特别焦虑,一度不知道自己要干什么了。有一个Hr问我,你应该问问自己到底擅长什么,然后去做。

我当时想的是,我擅长考试啊,又擅长辅导别人,我自己考第一也辅导过别人考第一,我知道从学不会到学会的过程是什么样的,我知道他们在考什么。

Hr说,那你就去做这个啊,你应该开辅导机构的,就做你擅长的就好了。

可我心理总迈不过这个槛,不敢跟学生讲我退学了,不敢面对学生的疑惑。

但或许另一个槛在于,我总不能一直和那个学校原来的专业打交道吧,那我退学的意义和初衷又在哪里呢?

现在我想我又找到了自己的方向了,虽说现在已经是计算机专业就业的寒冬了,但另一方面大语言模型各种AI的涌现,又在孕育着各种的机会。

我想起两年前研究生复试的时候,老师问我,你这个高岭土喷到室外应用的效果如何时,我回答说目前还只是在室内的理论性验证,将来我们实验室的研究方向是室外领域。

现在,我们室外也可以了。

                                                                                                                                                                    写于2023年12.30
]]>
2024-02-28T04:36:24+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/83Java的一些基础知识点复习2025-07-16T14:21:57.820717+00:00方法的重载 overload

定义:一个类中方法名字相同,但是参数列表不同的方法。

注意:重载的方法,就是不同的方法,只是名称相同而已。 image

  • 形参的数量不同
  • 形参的类型不同 均可以构成方法的重载(也就是说是不同的方法)
    static void add(){
        
    }
    static void add(int a,int b)
    {
        System.out.println(a+b);
    }
    static void add(double a,double b)
    {
        System.out.println(a+b);
    }

当返回值不同时,但形参形同时,无法构成

   static int add(int a,int b,int c){
        System.out.println(a+b+c);
        return a+b+c;
    }
    static double add(int a,int b,int c){
        System.out.println(a+b+c);
        return a+b+c;
    }

方法的调用机制

  • 当程序执行到方法时,会在栈中单独开一个空间(栈空间)
  • 执行完毕,或者执行到return语句后,就会返回到 调用方法的地方
  • 同理,main方法栈执行完毕之后,栈空间也会回收,整个程序退出

image

方法的传参

  • 基本数据类型传参:形参不影响实参的传递(本质上栈中main方法区与swap方法区是两个区,两者不会相互影响)
  • 引用数据类型传参:传递过程传递的其实是地址,所以栈方法指向的空间和main主方法指向的空间是一致的 image

可变参数

Java中允许同一个类中多个同名 同功能但是参数个数不同的方法,封装成一个方法。

==>对方法重载的一种优化,不用因为参数个数不同而写多个方法了 image

可以把传入的参数nums 视为数组

    public int getSum(int... nums) {
        System.out.println("参数的个数" + nums.length);
        int tolNums = 0;
        for (int i = 0; i < nums.length; i++) {

            tolNums += nums[i];
        }
        return tolNums;
    }
  • 可以直接传递一个数组
  • 可变参数可以和普通类型参数放在一起传参,但是必须保证可变参数放在最后
  • 一个形参列表只允许出现一个可变参数,不可以多个可变参数一块。
]]>
2024-02-28T03:49:14+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/82哈佛大学cs50x-cs50-full-stack全栈项目学习记录2025-07-16T14:21:58.044545+00:00项目仓库地址:https://github.com/QiYongchuan/cs50-full-stack

]]>
2024-02-24T13:53:39+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/81JavaScript Full Course - Beginner to Pro2025-07-16T14:21:58.255515+00:00Function why we use function? let us reuse code

return与parameter的区别 image

存储在对象中的函数,也称为方法。 比如:console是对象,console.log则是方法(function)

内置对象 Json与localStorage

image

]]>
2024-02-22T06:10:35+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/80Django学习记录:如何创建一个项目2025-07-16T14:21:58.477431+00:00Django

一、创建项目的流程

1.创建整体项目-项目名称

django-admin startproject airline

2.进入项目文件夹,创建相应的应用

cd airline

python manage.py startapp flights

3.创建完成后,在项目文件夹的setting中增加新建好的应用

--airline
 --settings.py

# Application definition

INSTALLED_APPS = [
    "flights",
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
]

4.在项目文件夹的urls.py中设置页面的跳转逻辑

--airline
 --urls.py

from django.contrib import admin
from django.urls import include,path

urlpatterns = [
    path("admin/", admin.site.urls),
    path("flights/",include("flights.urls"))
]


5.在创建的应用文件夹(flights)中,创建urls.py

from django.urls import path

from . import views

urlpatterns = []

  1. models.py

用来控制SQL,在django中

# Create your models here.

class Flight(models.Model):
  origin = models.CharField(max_length=64)
  destination = models.CharField(max_length=64)
  duration = models.IntegerField()

在命令行中:

python manage.py makemigrations


显示:
Migrations for 'flights':
  flights\migrations\0001_initial.py
    - Create model Flight

  其中生成的文件中0001——initial.py描述的就是Django如何操控数据库的

   operations = [
        migrations.CreateModel(
            name="Flight",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("origin", models.CharField(max_length=64)),
                ("destination", models.CharField(max_length=64)),
                ("duration", models.IntegerField()),
            ],
        ),
    ]



继续敲命令

python manage.py migrate
当查看文件夹时,db.sqlite3创建成功

继续输命令:

python manage.py shell

可以用python的语法直接操控数据库

from flights.models import Flight
f = Flight(origin = "New York",destination="London",duration=415)
f.save()

上述命令相当于插入

Flight.objects.all()
<QuerySet [<Flight: Flight object (1)>]>

// 查询命令


可以在python的命令行中,就相当于可以在python的代码中执行。

7.当创建好项目想要启动运行时,在命令行

python  manage.py runserver

8.superuser django设置的admin用户,可以直接通过这部分网页操控数据库和model层

python manage.py createsuperuser

image

]]>
2024-02-04T08:07:06+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/79python中的数据类型2025-07-16T14:21:58.687660+00:00python中的数据结构:

Data stractures

  • list - sequences of mutable values //列表可以改变[]
  • tuple - sequence of immutable values //元组不可改变()
  • set - collection of unique values //集合不可以重复()
  • dict - collection of key-value pairs // 字典键值对{}

list 列表

# define a list of names
names = ["harry","Ron","heri","Ginny"]

dic 字典


# define a dic
houses = {"harry":"Gry","Draco":"Sly"}
houses['Herminoe'] = "Gry"

tuble 元组

coordinateX = 10.0
coordinateY = 20.0

coordinate = (10.0,20,0)

#即相当于直接可以用一个变量来代表两个变量

set


#create an empty set

s = set() 

# add elements

s.add(1)
s.add(2)
s.add(3)
s.add(4)
s.add(4)

s.remove(1)
print(s)   // 234

]]>
2024-02-03T18:08:16+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/78Python中面向对象编程2025-07-16T14:21:58.931476+00:00Python中的面向对象
class Point():
  def __init__(self,input1,input2):
      self.x = input1
      self.y = input2


p = Point(2,8)

print(p)
print(p.x)
print(p.y)


class Flight():
   def __init__(self,capacity):
      self.capacity = capacity
      self.passagers = []

   def add_passagers(self,name):
      if not self.open_seats():
        return False
      self.passagers.append(name)
      return True 
   def open_seats(self):
      return self.capacity - len(self.passagers)
   
flight = Flight(3)

print(f"openseats is {flight.open_seats}")


names = ["harry","Ron","heri","Ginny"]

for person in names:
   success = flight.add_passagers(person)
   if success:
      print(f"successful add {person} in flight")
else:
      print(f"{person} is not add in flight")

面向对象:

概念:

  • 类是对对象的抽象描述,对象是类的实例化。
  • 类定义了对象应该具有的属性和行为。

在面向对象编程中,类和对象之间的关系可以描述为类是对象的模板或蓝图,而对象是类的实例化。类是对一类对象的抽象描述,定义了对象应该具有的属性和行为。而对象则是类的具体实例,具体表现出类所定义的特征和行为。类可以看作是对象的集合,而对象是类的实例。对象是类的具体实例,而类则定义了对象的共同特征和行为。

扩展: 在面向对象编程中,如何通过类和对象的关系实现代码的重用和模块化?

在面向对象编程中,通过类和对象的关系可以实现代码的重用和模块化。具体来说,可以通过以下方式实现:

  1. 类的定义和实例化:首先,定义一个类,该类包含了一组属性和方法,描述了某一类对象的特征和行为。然后,通过实例化该类,创建具体的对象,这样就可以重用类中定义的属性和方法。

  2. 继承:通过继承,一个类可以从另一个类继承属性和方法。这样,子类就可以重用父类的代码,并且可以在此基础上进行扩展和修改,实现代码的重用和模块化。

  3. 多态:多态允许不同类的对象对同一消息做出响应,这样就可以使用统一的接口来操作不同类的对象,从而实现代码的模块化和灵活性。

通过这些方式,可以将代码组织成模块化的结构,实现代码的重用和扩展。这种面向对象的设计方法有助于提高代码的可维护性和可扩展性,同时也提高了代码的复用程度。

代码实例:类的继承和多态的例子

# 定义一个动物类
class Animal:
    def __init__(self, name):
        self.name = name

    def make_sound(self):
        pass

# 定义一个狗类,继承自动物类
class Dog(Animal):
    def make_sound(self):
        print("汪汪汪!")

# 定义一个猫类,继承自动物类
class Cat(Animal):
    def make_sound(self):
        print("喵喵喵!")

# 多态的应用
def animal_make_sound(animal):
    animal.make_sound()

# 创建一个狗对象和一个猫对象
dog = Dog("旺财")
cat = Cat("咪咪")

# 调用多态的函数,传入不同的动物对象
animal_make_sound(dog)  # 输出:汪汪汪!
animal_make_sound(cat)  # 输出:喵喵喵!

在这个例子中,Animal类是一个基类,定义了动物的基本特征和行为。然后,Dog类和Cat类分别继承了Animal类,重写了make_sound方法,实现了多态。最后,通过animal_make_sound函数,传入不同的动物对象,实现了对不同动物对象的统一操作。

]]>
2024-02-03T18:05:25+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/77Git-在已经建好的仓库中,将其中一部分文件夹单独上传到新的仓库中2025-07-16T14:21:59.135697+00:00

使用场景:是在cs50的学习中,创建了一个大的仓库,记录不同章节的学习代码和笔记。但遇到了一个情况是,学校的安排上:CI/CD中,单独这一块是一个仓库的。就需要将这一部分的代码单独上传到一个新的仓库了,问题是,这部分已经处于一个仓库中了,还能再新上传吗?

答案是,可以; 同样的场景是,大的项目中,每一个独立的小项目,对应一个独立的仓库,进行单独的版本控制。

过程其实跟**“将一个已经存在的仓库上传到你建立的仓库”**的流程是一样的。

在GitHub新建仓库:airline

image

…or push an existing repository from the command line

git remote add origin https://github.com/QiYongchuan/airline.git
git branch -M main
git push -u origin main

在你的本地,找到你想上传的文件夹: 再一次初始化仓库 命令行中:

git init

然后

git remote add origin https://github.com/QiYongchuan/airline.git   //跟新建的远程仓库关联

注意:此时需要你再一次的git add . 和git commit

然后按流程:

git branch -M main
git push -u origin main

就可以了,实现了在原来大仓库下,新建一个小的独立仓库。

同时,你可能担心:这会不会对我原来的大仓库造成什么影响呢? 会不会引起更多的麻烦? 完全不会。

对于您原来的仓库,这个操作不会有直接的影响。您将现有项目文件夹上传到新创建的仓库中,不会影响原来的仓库或其历史记录。原来的仓库将保持不变,您可以继续在原来的仓库中进行开发和维护。

新创建的仓库将成为一个独立的仓库,其中包含您上传的项目文件夹的副本。这意味着您可以在新仓库中进行独立的开发和版本控制,而不会影响原来的仓库。

如果您希望在原来的仓库中保留与新仓库相同的历史记录,您可以考虑使用分支或者合并操作来保持两个仓库的历史记录同步。但是,这取决于您的具体需求和项目结构。

总的来说,将现有项目文件夹上传到新创建的仓库中,不会直接影响原来的仓库,原来的仓库将保持不变。

]]>
2024-02-01T17:18:40+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/76实现无限滚动遇到的坑—document.body.offsetHeight 的值一直不变?2025-07-16T14:21:59.388005+00:00实现无限滚动遇到的坑 --css样式设置

遇到的最大的问题是,

      if (window.innerHeight + window.scrollY > document.body.offsetHeight && !isLoading) {
        isLoading = true; // 设置标志变量为true,表示加载操作开始
        load();
        console.log('开始加载');
        console.log(window.innerHeight, window.scrollY, document.body.offsetHeight);

在第一次到达底部成功加载后,就会无限次的重复加载,而不是像判断条件写的那样,等window.innerHeight + window.scrollY > document.body.offsetHeight时,再进行请求加载。

打印后发现数值有问题:

document.body.offsetHeight 的值只有80?

一度以为是属性用错了或者这个属性发生了变化,换用document.documentElement.scrollHeight 后,发现问题没有解决,是96px

回头发现,这个80的数值,是一开始设置的div的数值

这里:

正好看到有一篇文章中,offsetHeight的数值不变的

Javascript offsetHeight not updating from initial rendered height?

他的原因是:

FFS! Found it... I had the height set to 100% on the global html element :

html { height: 100%; // Arrrrggghhhh! width: 100%; }

已经写死了html,也就是document的值。

我于是检查这一块的东西,发现确实有问题:

  // Add a new post with given contents to DOM
      function add_post(contents) {
        // Create new post
        const post = document.createElement('div');
        post.className = 'post';
        post.innerHTML = contents;

        // Add post to DOM
        document.querySelector('#posts').append(post)
      }

这是我请求数据后插入的内容,每次插入一个 名为post类的元素

但是我页面中的是id = posts 的div,我一开始设置的也是这个的高度,正好是80px,而在我加载页面的过程中,document的高度也始终是80px;

我应该设置的是每次新加入进来的元素post的高度,而不是post外面的盒子posts的高度,这样高度就写死了,而不是随着内部内容的增加而增加了。

也就是:

  .post {
      height: 80px;
      background: green;
      width: 200px;
      margin-bottom: 5px;

    }

问题解决。

]]>
2024-01-30T10:35:17+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/75响应式页面实现的几种方式2025-07-16T14:21:59.601933+00:00Responsive Desive
  • viewport
  • Media Queries
  • Flexbox
  • Grids

Viewport

<meta name="viewport" content="width=device-width,initial-scale = 1.0"

Media Query

    @media (min-width:600px) {
      body {
        background-color: bisque;
      }
    }

    @media (max-width:599px) {
      body {
        background-color: brown;

      }

      h1 {
        text-align: center;
      }
    }

Flexbox

<style>
    #container {
      display: flex;
      margin: auto;
    }

    #container>div {
      background-color: springgreen;
      width: 200px;
      padding: 10px;
      margin: 10px;
      font-size: 20px;
    }
  </style>

Library -bootstrap

目前使用的三种方式:
1.一行就12等份,通过设置每一列的份额来划分,但这种情况下是随屏幕大小变化等比例变化的
 <div class="row">
      <div class="col-6">第一列</div>
      <div class="col-6">第二列</div>
    </div>

2.在此基础上,可以设置不同列的比例,实现宽度的不相同
 <div class="row">
      <div class="col-3">This is a example</div>
      <div class="col-3">bootstrap一行一共有12列的份额</div>
      <div class="col-6">等分份额之后,就可以响应式变化了或者通过设定屏幕大小实现变化</div>

    </div>

 3.通过设置不同的屏幕下,分列的方式,实现真正的响应式,随着屏幕变化,发生变化

     <div class="row">

      <div class="col-lg-3 col-sm-6"> 第一行:第1列</div>
      <div class="col-lg-3 col-sm-6"> 第一行:第2列</div>

      <div class="col-lg-3 col-sm-6"> 第一行:第3列</div>
      <div class="col-lg-3 col-sm-6"> 第一行:第4列</div>

    </div>

]]>
2024-01-16T02:14:59+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/74SCSS-增加变量的CSS2025-07-16T14:21:59.786162+00:00scss - 增加变量的css形式

1.为css增加变量,让其更好的修改重复的属性,更简洁的代码

$color:red;

$size:30px;
ul{
  
    font-size: $size;
    color: $color;
  
}

ol{
  font-size: $size;
    color: $color;
}

2.简化计算权重,精准控制页面上的元素

// 只需要根据结构在scss中写即可,会自动编译成css文件

使用方法注意:

image

如果想随时更新编译编译:使用参数--w

sass --watch variables.scss variables.css

2.引用时,需要使用编译后形成的文件css文件,而不是scss,因为浏览器无法识别scss。

  <link rel="stylesheet" href="nesting.css">

3.封装继承,将相同的属性封装,使用时继承

%message{
  font-family: sans-serif;
  font-size: 18px;
  font-weight: bold;
  border: 1px solid black;
  padding: 20px;
  margin: 20px;
}

.success{
  @extend %message;
  background-color: green;
}

.error{
  @extend %message;
  background-color: red;
}

.good{
  @extend %message;
  background-color: cadetblue;
  font-size: 30px;
}
]]>
2024-01-16T02:12:29+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/73 Git 的简单用法-cs50x2025-07-16T14:22:00.013804+00:00Git 的简单用法

keep track of changes to code

  • Synchronizes code between diffenent people
  • Test changes to code without losing the original

github and git

github is a website that stores git respositories.

git clone

从远程仓库下载到自己本地电脑

git add /git commit

git add 是将变化添加到保存区

git commit 是提交

git commit -am "message" =>两个命令结合

git push

将本地仓库及变化推到远程(github)的仓库中

git pull

与git push操作相反,将远程仓库最新的代码,从github上pull下来,同步到本地成最新的;

当远程的代码与本地代码有冲突时,直接将本地代码是无法push到远程的,需要先pull下来,同步,然后再push上去。

Merge Conflicts

image image


当遇到冲突时,编译器会显示冲突的地方:

<<<<<< HEAD

在此之间是你的版本

=========

在这里是别人的版本

 >>>>> d4e3a8002bfc905

** 你需要做的是判断好要哪一个版本? 单纯要你的,还是别人的,还是两者的结合? **
然后把出现的提示部分删掉,重新add commit,再push上去。

git log

查看历史提交记录

git reset

- git reset --hard <commit>
- git reset --hard origin/master

回退到某一次提交的状态

Branching

我们开发的时候有时候不是线性进行的,同时处理多个新功能时,我们开启新的分支。

git branch

git checkout -b feature  //创建新的分支并跳转过去

git checkout main  //切换分支


git merge feature   // 将feature分支上的内容 merge到当前分支

当对同一行代码修改后,会产生merge **conflicts*


解决冲突的方式同上述所示的pull时发生冲突,修改之后,重新提交。

fork

将开源代码建立分支到自己github,然后当自己的贡献达到一定时,可以请求poll request到原来的仓库主分支中。 (理解成更大的协作)

Github pages

生成一个网址,可以部署自己的静态页面

]]>
2024-01-16T02:09:31+00:00
https://github.com/QiYongchuan/MyGitBlog/issues/722024一些完成的小事情2025-07-16T14:22:00.226760+00:00
  • 1.修好了之前的电脑,找到了老照片
  • 2.完成了对键盘的清洁,现在和新的一样了、
  • 3.两门实训课的成绩出来了,JavaEE的课竟然拿到了全班最高的分数,对得起敲了一夜的代码了
  • ]]>
    2024-01-14T08:41:51+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/71有趣的文章2025-07-16T14:22:00.445404+00:00 文章 链接 日期 备注 一个独立创造者的5年 https://hawstein.com/2023/07/12/five-years-of-an-indie-hacker/ 2024.1.11 独立开发之路 两岸猿声啼不住,轻舟已过万重山 https://thiscute.world/posts/a-quarter-of-the-way-through-life/ 2024.2.1 成长不是线性的,why not me? How to Do Great Work https://www.paulgraham.com/greatwork.html 2024.2.1 英文原版 【实用指南】Paul Graham 两万字新文:如何取得杰出成就 https://mp.weixin.qq.com/s/31iL-Kbs4KrqpgrERVRNzQ 2024.2.1 好奇心、快乐和做出令人印象深刻的事情的欲望 阮一峰博客 https://www.ruanyifeng.com/blog/ 2024.2.3 常读常新 时间管理七句话 https://www.ruanyifeng.com/blog/2016/05/time-management.html 2024.2.4 不要浪费早上宝贵时间 愧怍 https://kuizuo.cn/ 2024.3.30 有趣的人 ]]>2024-01-11T11:10:18+00:00https://github.com/QiYongchuan/MyGitBlog/issues/69GPTs的学习记录2025-07-16T14:22:00.676815+00:00背景:尝试创建GPTs的时候,离不开action的API

    image image

    来源:https://twitter.com/Yangyixxxx/status/1744196785227362744

    如何在action中使用API?

    1.基础用法:

    https://waytoagi.feishu.cn/wiki/IawKwd3IgiHbezkB1KrcAFPRnbf?chunked=false&table=ldxAINVk0W6W2ytB

    以及更多的自定义API

    image

    这里相当于是增强了GPT的功能了,比如联网的API,比gpt自带的联网功能更准确;以及可以解析视频的api,又可以干更多的事情; 这部分目前做的比较全的是gipier,目前已经集成了很多API了。 image https://gapier.com/

    发邮件-有没有打电话或者语音模仿明星的声音,叫你起床的呢? AI智能男女友?

    刚看到一个:可以用这个来实现打电话! https://twitter.com/i/bookmarks?post_id=1743472077439730049 https://t.co/xy37hSFLuI image

    另一个教程网站:

    image https://mojju.com/blog/how-to-create-complex-gpts-with-api-actions-and-a-node-js-backend

    image

    ]]>
    2024-01-08T09:39:20+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/682024找工作的尝试2025-07-16T14:22:01.320744+00:00仅以本帖持续记录找工作的过程。 ]]>2024-01-08T08:47:35+00:00https://github.com/QiYongchuan/MyGitBlog/issues/67在挂梯子的情况下pip install xx 失败以及git push失败的解决方案(443以及10087等)2025-07-16T14:22:01.532051+00:00这个问题算是一个长期问题了,常见的症状表现在: image

    在连接梯子(VPN)之后,pip install xx,无法安装; 断开梯子之后,安装成功;

    同样,在本地写完代码上传github的远程仓库时,使用git push, 连接梯子的情况下,无法push上去, 断开梯子,就可以push上去。

    之前的解决的方法,就是不停的开/关梯子。

    现在因为更加频繁的使用Chatgpt,开关梯子需要更加频繁了,不得不解决这个问题。

    一开始,照例先问gpt,但是回答不好。(之前应该也是问过的,没解决好)

    大概是因为chatgpt它老家那块的人遇不到这么复杂的网络情况吧,又是翻墙又是啥的。

    所以这防火墙问题,还得去找CSDN,一搜果然有大量的案例,不愧是修建长城的国家:)

    问题分两个方案解决: 1.解决pip安装问题,本质是因为换源之后连接国内的镜像网站,检测到有代理,连接不上; 所以解决的方法就是:设置电脑的代理,把换源的网站增加到表中,就设置成了不进行代理。 即: image

    这样,在命令行pip install xx 的时候,就可以愉快的下载包了,与之前每一次下载都断开梯子的原理是一样的,这次是我们手动将这个网站设置成不代理了。

    参考:解决开着代理情况下pip或魔搭下载失败

    2.解决git push 时超时问题

    这个原因也是网络相关,但具体是因为挂了梯子还是没挂梯子,我现在还不是很确定。

    一般是,挂梯子的时候,push不上去,提示443以及代理问题; 当断开梯子时,可以push上去。

    按照之前的思路,那我直接把github的网址也加到我的电脑-代理管理中好了,直接所有的通过该网址的请求都不要走代理了,问题不就解决了?

    但我们知道,一是github是国外的网址,裸连的情况下,时好时坏,也就是说,裸连情况,我们有时可以直接连上,push成功,有时也会push不成功。 二,在挂梯子的情况下,又会出现因为梯子代理的原因,也连不上。

    问题解决的办法是:

    查询说的是,没有设置git的全局代理,这一步是设置全局代理 ` git config --global http.proxy http://127.0.0.1:7890

    git config --global https.proxy http://127.0.0.1:7890 ` image dui'ying

    对应上次代理设置里你自己的端口及地址

    同样,看到了之前熟悉的解决思路:

    (不过在资料中讲的是,取消上面设置git 全局代理时的设置)

    ` 取消全局代理: git config --global --unset http.proxy

    git config --global --unset https.proxy

    ` 这跟我们上面讲到的,当梯子断开时,能成功连接到远程仓库,成功push到,似乎是做了同样的事情,断开梯子。

    之前同样的问题,解决方法:Git push时遇到10054问题 #24

    ]]>
    2024-01-07T13:13:56+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/66算法学习初体验:慢慢来,原来我也可以2025-07-16T14:22:01.865613+00:00算法考试考完了,走出考场后,一片哀鸿遍野,都在担心会不会挂科。

    我还好,虽说并没有所有的题都有把握答对,但我应该不至于挂科的。虽说也忘了好多本应该写上的题目,但也没有非得考多少分的目标,反而轻松心态很放平,考完走出教室,心里倒是很放松以及有种抑制不住的高兴。

    算法,原来也不少那么难啊,原来我也可以的。

    大概是想表达:考试结束不是结束,是学习的新开始?(yes?👍: 👎 )

    但愿但愿。

    但目前还是后话,可能这次算法之旅,带来的还是些许的信心吧。

    在此之前,刚入学时接触到算法相关的是数据结构这么课,当时学的稀里糊涂的,完全不知道是干什么的,也是因为当时完全没有语言基础,老师讲半天,我们搞不懂”左指针、右指针“,又是”左孩子、右孩子的“,再加上老师有点口语,总是出戏听成”左鞋子、右鞋子“的。

    当时基础差到,甚至被人嘲笑的最差的”蛮力算法“,都写不出来,看到了半天也不懂在干什么。

    再加上当时号上有一网友,经常发自己算法多厉害,小学奥数xx省第几这种话题,一对比,瞬间觉得,算法不是我等凡夫俗子能学明白的。

    遂,对算法敬而远之。

    又过了大概一年,到了现在,考试考算法,不得不再次硬着头皮重新学了。

    相比之前的基础,这次的基础大概在能看懂for循环了,能写出简单的蛮力算法了,这在刚掌握”算法“的我眼中,蛮力可真好用啊。 (或者,用大佬的话讲,心智负担低?)

    但没办法啊,考试又不会光考你蛮力算法。

    于是又学了分治算法,分治真好玩啊,二分搜索、合并排序、快速排序等等。

    印象最深的是看B站一个up讲的,”分治,你们早就会了,寒假作业,你们几个人把所有作业分成相同的份数,每个人做一小份,最后再合起来,这不就是分治法嘛。“

    瞬间明白了,好的例子总是让人印象深刻,把复杂的东西变简单了。

    后面又接触了动态规划、贪心算法、分支限界法。

    以前想都不敢想的算法,投入了精力和时间后,慢慢的也能明白了过来。

    其中最大的感悟是,有些内容如果一下子掌握不了,一是投入的时间和精力不够;二是前置知识的问题,很多东西看了半天不明白,其实是之前的某些概念不懂,就需要先学会A,再来学B;如果A也看了半天,就是不理解,那就需要再去看A的前置知识。 三可能是好的工具,更重要。

    没有学不会的人,也没有学不会的东西,只是还没有找打合适的路(比如知识的顺序,以及好的教程)。

    在没有学会之前,耐心就很重要了。即在没有找到合适的方法和资料之前,只有多尝试,才能慢慢找到合适的。

    所有,就得保持耐心,不要太早放弃。

    另一点的话,学习过程重要的一点是自己的身体状态,精力管理。如果状态不好(指饿了、前一天熬夜困了/学习前刷了太多无关的东西浪费了大量的精力和注意力了),那就很难保持耐心了,很难坐的住一直学到有所突破了。

    ]]>
    2024-01-07T08:31:51+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/65git远程分支:如何将本地分支与远程分支相关联2025-07-16T14:22:02.059867+00:00image

    ]]>
    2024-01-06T15:03:26+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/64GitHubPoster项目折腾记录:withings-sync 依赖下载失败到网络问题2025-07-16T14:22:02.286685+00:00在安装过程中遇到了几个问题: 1.withings-sync 依赖的安装问题上:withings-sync 安装失败的原因是 UnicodeDecodeError,并提供了一系列可能的解决方案,最终通过手动下载、修改 setup.py 中的编码设置,并重新安装成功。 原因可能是编码方式设置问题?

    image

    2.安装成功之后,依然从远程仓库下载其余的依赖,用不上手动下载的依赖:

    手动关闭了 image

    3.但是关闭之后,遇到了有些依赖仍然需要安装,但是还没有从远程安装下来 ==> 手动pip install xxx 手动安装了几个模块

    4.运行项目:

    成功了,但是在运行了四次尝试换一些参数后,又一直开始报错无法生成了 image image

    之后的报错信息:

    无论是开梯子还是关闭梯子,均无法再连上了。

    image

    image

    5.后续:又成功了 在刚刚整理报错信息时,发现之前即使成功生成的记录里,也提示了 image 有一个依赖没有装,但本着能跑就不动的原则没去管。 刚才一直不行,又把这个依赖装了一下,结果现在又成功了。 image

    后后续:并不是依赖的问题,应该是网络的原因。 在继续增加参数后,又出现了之前的问题,无论是关了梯子还是开了梯子,都是显示997或者443

    解决办法: 关了虚拟环境又重新进去了一遍后,重新请求可以了,而且修改参数后再请求也可以一直连接了。 但应该不是虚拟环境的原因?

    image

    后续考虑:如何把下载生成的图片动态插入到博客页?

    ]]>
    2024-01-04T17:25:19+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/63朋友信息2025-07-16T14:22:02.510327+00:00| 新朋友的名字 | 新朋友的链接 | 新朋友的描述 |

    ]]>
    2024-01-04T11:01:35+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/61博客功能完善计划2025-07-16T14:22:02.730038+00:00
  • 增加友链模块
  • 增加收藏的文章模块
  • 增加每日单词-句子-图片模块
  • 引入自动生成svg的github贡献
  • ]]>
    2024-01-04T10:10:21+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/60转瞬即逝的小想法2025-07-16T14:22:02.956799+00:00

    仅作为一个空间,记下某一瞬间想到的点子

    ]]>
    2024-01-04T05:31:59+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/592024周记2025-07-16T14:22:03.173424+00:002024计划要做的小事
    • 在1点之前上床睡觉
    • 每天早上醒来打开经济学人看1分钟
    • 记录下想法来
    ]]>
    2023-12-31T17:37:56+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/582023年年度总结2025-07-16T14:22:03.396568+00:00第一次打算好好复盘一下一年,写一个年终总结的,就还是先简单写一下,毕竟完成比完美更重要,大概很长一段时间读者也只有我一个人会看,所以,不重要,写下来就好。

    总的来说,这一年过的算是慢慢稳定下来的一年,回想22年,经历了研究生退学,然后上班进了招转培的公司,学不到东西算是及时止损交了近7k多离开,后无奈回家,实在找不到路了,最终找到一个学校重新读本科二学位,然后又是经历了封校一学期的22年下半年,之后便是突然的解封,狼狈的逃回女朋友那,便从12月初,一直待到了快1月底,这就算来到了2023年了。

    1月份,跨年时和女朋友在出租屋里打游戏,我看她玩《模拟人生》,一起听着网易云,那天的网易云音乐推荐的歌格外的好听,我甚至专门将那天的歌创建了一个歌单。

    e510c5ef2d744619b88298218024f89

    但更多是时候,她出差或者白天工作到很晚才回家,我自己过了一段漫长的独居生活,自由又孤独。这段期间看完了CS50的课,又接着刷了CS50W的课,同时因为我在考试前几天发烧,担心复习不完就办理了缓考(现在想想无比后悔,假期结束回来继续考试时题目超难,而我线上考试的同学几乎都考了85+),假期心里还是在担心考试的事情,结果就是学也学不下去,玩也玩不痛快了,陷入了无线的内耗中。

    当时也还在一直关注Chatgpt的事情,觉得是一个机会,当时眼睁睁的看着它先是在twitter上火了起来,又过了差不多一两个星期开始在国内社交媒体上火起来。当时看到有人提到一份赚钱的清单,有一项是给国内的人注册账号,我当时觉得,一是这太简单了,怎么会有人花钱买呢? 二是要是卖账号,应该也得需要我提供梯子吧,这下可有点危险了。

    结果,我看到几个月后有人光靠卖免费的账号(成本只有接码平台差不多0.5元),就赚了几百万。

    原来一是真有人买免费的号,这里面也有一个信息差,即使翻墙出来的也并不都是懂的搜索的;二是原来卖账号的只管卖账号就得了,梯子卖家让他们顾客自己想办法搞定。

    2月份,在家又刷到创建自己博客的视频了,于是,有了自己的第一版博客,基于hexo+GitHub的博客,但后面因为上传后的照片显示问题,渐渐弃用了它。 image

    后面又遇到了第二版,在twitter上刷到有大佬直接用Github的issue,结合自动化指令创建博客,觉得很酷,于是在4月,创建了我第二版博客,并用到了现在。今天打算写年度总结,回头看博客,看到那么多文章,以为创建了很久的,原来才是几个月前的事情。

    image

    3-6月:焦虑、自学、迷茫、与骑车

    image

    image

    也是正好赶上春天,天气刚刚好,于是在焦虑的时候骑了很多的车,一开始骑共享单车,后面一度想换一辆公路车,但说服自己,先一周骑够100公里就买,结果骑了70多公里天气转热,也迎来了考试周,遂放弃了。

    7月:在家学了一个月python,准备毕设的思路。

    期间跟着书基本签完了读研的时候买的一本书《笨方法学python》,期间尝试了一些好玩的东西。 image

    8月:整个8月特别焦虑,大概是因为8.1号的新西兰whv签证没抢到(虽说意料之中,但还是很迷茫了),又在那段时间刷了不少澳洲半工半读的视频,加好友问了几个怎么也得6万(其实如果当时算一下我手中的钱的话可能不那么焦虑了,当时自己手里就4万了),总之整个八月就被焦虑、焦躁所弥漫了,在家里呆着也是开始闹矛盾,想逃离家,于是还面试了一家外贸的实习。(结果也是挂了) 此外,表哥8月底结婚了,哥哥和舅舅似乎松了一口大气,剩下的就是几十年的房贷了。

    可能八月就做了两个有意义的事,和弟弟打war thunder 玩了差不多两百个小时,以及看《无耻之徒》。

    9-10月:兼职,准备攒钱去澳洲,后又参加秋招,拿了外贸的offer,面试非洲外派等。

    11月:停课一个月,搞了Chatgpt4.0,做毕设,写代码。 12月:疯狂补课上课的一个月,学了嵌入式,之前想做的东西感觉自己有能力做了,同时又涌现出了很多新的想法,重新编程。

    ]]>
    2023-12-31T13:11:22+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/57算法知识补充:递归与尾递归2025-07-16T14:22:03.675887+00:00image image image image image

    ]]>
    2023-12-31T08:08:11+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/562023读书总结:《丰乳肥臀》与《百年孤独》,关于魔幻现实主义的思考2025-07-16T14:22:03.889899+00:00_没有写读书年度总结的习惯,但是前几天微信读书自己生成了一个,看了下,今天相比去年,读书时间下降了56%,想了想,今年也就完完整整读了几本书,《丰乳肥臀》、《百年孤独》,其实还有一本《82年生的金智英》,但这本我不好写什评价,也不敢乱写,索性就先放下不表,等将来有了更深的感悟了再写也不迟。_

    下面是之前写的正文:

    2023年,大部分时间静不下心来,书坦白讲只读了大概两本书。

    一本是莫言的《丰乳肥臀》,剩下的一本是《百年孤独》。

    今年新读的就一本,《百年孤独》是不知道第几遍了。有意思的是,随着读的次数越来越多,我发现似乎我也快陷入到那个反复重复循环命名家族,反复重复某种命运的怪圈里了。

    晚年的少校把自己关在房间里,重复的制作小金鱼,融化,继续制作金鱼。我呢,也是反反复复的看同一本书,看奥雷米亚诺,看何塞阿尔卡迪诺,命运反反复复的重演。

    《丰乳肥臀》是我看的莫言的第一本小说,也是因为有人说莫言被称为“中国版的马尔克斯”,丰乳肥臀有人叫它中国版的《百年孤独》。

    十一假期在游乐场兼职的时候看完的,工作实在漫长,一站站一天,又没有地方充电,所以只能用超级省电模式偷偷看小说来打发时间。这种状态下反而静下心来了,完全沉浸在远在几千公里远的高密乡了。后来我甚至觉得,比起站了八天拿的那点工资,八天摸鱼看完的书可能更有价值和意义了。(难道是因为拿钱摸鱼看书的心理原因?)

    另一本也被誉为中国版的《百年孤独》的是陈忠实的《白鹿原》。我也很喜欢,相比于南美的马孔多,白鹿原总是更亲切一点的。

    但比起陕西的白鹿原,那离我家乡不到300公里的高密乡自然是更亲切了。书中的对话,甚至在脑海中都能立马用方言读出来。

    在读的过程中,也是可以时不时看到《百年孤独》的影子,以及联系到《白鹿原》中的情节。

    比起白鹿原,丰乳肥臀对于建国后的历史有了更多的涉及,很直白、沉重。 其实在看书的过程中我一直在思考一个问题,莫言的作品,人们说是魔幻现实主义,可是我看到的明明都是现实的东西啊,魔幻的地方在哪里呢?难道不应该是百年孤独里那种魔幻的情节才是嘛?像下了四年多的大雨了,一火车箱的人被拉走就没了,又是失眠症整日整日睡不着觉了……

    后来某天我看到说,百年孤独里所有的情节都是有对应的历史的,譬如拉走一火车人那里,对应着历史上残酷的大屠杀。

    整个《百年孤独》,也是一部南美的历史。

    不熟悉那片土地历史的人们,大概读了觉得魔幻,觉得有意思,就像是听另一个世界的故事,觉得仅仅只是作者的奇思妙想,下了四年多的大雨怎么可能是真的?火车拉走了一车厢的人,怎么可能就这样杀掉了……

    那我们的历史呢?

    对于不是生活在这片土地上的人们来说,会不会也同样觉得魔幻呢? 甚至即使是生活在这片土地上的人,也觉得魔幻吧。 这怎么可能是现实呢?

    我们没有活到久到已经记不得年龄的乌尔苏拉。

    此外,因为《形式与政策》老师还贱兮兮的表示,鼓励我们交纸质版的读书笔记,我本来不打算交的,但那两天完成了上面的记录,想着,干脆写一下吧,毕竟就简单抄一抄的事了。没成想,差不多好几年没怎么用笔写过大段文字了,写起字来还真费劲,手抖手发酸,真的没法跟双手键盘打字的速度相比啊。

    都什么年代了,还让人写纸质版的读书笔记。都什么年代了,还搞形式与政策,还让我们论证.....更加无力吐槽的一点是:室友是大二的,他们形式与政策的题目是,论中国经济发展的现状与前景 (老师想的也真周到,这题目要是让大四的写,简直杀人诛心了,自己找不到工作还得接着歌颂)

    e06a74f50bcfd88e7be67abb87ea48f ec0c31c1063476e346b67c2b0fb0de5 image

    ]]>
    2023-12-29T13:56:46+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/55issue中发帖子的图片无法显示问题2025-07-16T14:22:04.116817+00:00在issue中写文章,插进了图片,分享出去之后,文章可以正常显示,但是图片缺无法加载。

    发给朋友测试,无论是开代理还是没开代理,图片均无法加载。

    在csdn上搜相关问题时,基本上是在自己电脑端无法显示,原因是DNS污染。

    image 参考来源:解决Github无法显示图片以及README无法显示图片

    但我的问题显示不是这个,我的是自己端可以看到(手机登录点开这个issue也能加载成功),但是朋友访问时看不到。没有尝试修改自己的host,我在想即使这种方法真的可以的话,难道需要我让朋友为了能看到图片,也得修改自己电脑的host配置嘛?

    于是问了chatgpt,回答如下:

    image

    image

    image

    最终问题解决,原因是之前的帖子是写在了私人仓库里,供自己记一下的,后来想创建成公开的帖子,供我朋友参考的,图省事,直接将私有仓库的issue直接全文复制过来了。但是图片是存在私有仓库的,所以无法访问到,重新传了一次就好了。

    ]]>
    2023-12-29T13:11:05+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/54扫盲:科学上网2025-07-16T14:22:04.357436+00:00【2025.02.19更新】

    • 重要! EFCloud目前服务停止更新,不建议继续使用了。

    • 可优先考虑使用SaKuraCat

    小白零基础科学上网,最简单的方式,一键导入。

    2024.10.11 更新整理 | 名称 | 链接 | 部分套餐| 备注| | -- | -- | -- | --| | 魔戒| https://www.mojie.cyou/#/register?code=057Ybq9K | 1元/2G/不限时、14.9/130G/不限时 等 | 一次性购买,各种大小流量包,划算、稳定,最初22年开始用至今稳定 |
    |SaKuraCat | https://sakuracat-003.com/user/#/register?code=JRlr1nrR| 3.8元/10G/月、9.8元/20G/不限时,等多种套餐|套餐稳定性与灵活性均可,下图详细查看,目前最推荐使用| | EFCloud | * | 25元/100G/不限时、20元/500G/月付|停止维护 |

    软件:目前上述均支持一键导入clash,非常方便,手机端EFCloud官网也有对应的clash版本,一键导入或者订阅均可; 或者使用问题可留言交流,科学上网。

    1.魔戒

    主打一次性购买,不限时间,各种大小流量包,很划算,可直接一次性购买大流量套餐,也可作为备用梯子(防止其余套餐过期之后无法登录外网续费)

    备注:还算稳定,最初22年我就是用的这家,至今稳定。

    image

    2.SaKuraCat

    套餐组合最多,可灵活选择,既有按时间付的,也有按量付的,可灵活选择。

    套餐稳定性与灵活性均可。

    image image

    1. EFCloud

    最新,强烈推荐,稳定,优质,量大,速度快,chatGPT,油管等流畅使用。

    既有按量,又有按周期付费; 25元/100G (不限时间) 20元月付/500G 10元/8元 月付 均可

    目前本人主力梯子

    另一优势是电脑端、手机端订阅之后,可以同步更新,只要一次导入之后付费更新,就可以自动更新

    image

    2023.12.29更新: (下文有之前写的使用说明) 目前有的订阅节点

    1. 一元机场: 500G 到明年11.2号到期: 优质便宜流量, 目前只有美国的节点,时好时坏,用来刷youtube、tiktok。
      成本:12 rmb

    image

    1. 魔戒 从低端到高端都有的流量,目前有2G,应急使用,链接ChatGPT无问题

    image

    3.SakuraCat 目前ChatGPT使用的优质流量,10G/月,3.8元/月

    翻墙悖论:在没有梯子之前,我怎么才能下载一个梯子呢?

    基本上上述四种方式都提供了国内裸连的链接(下面标注了),无需梯子就可以直接到他们网站,购买相应的订阅,下载对应的app(手机或电脑),然后讲你的订阅导入到你的设备上的app就可以了。【每一种都有对应的文档,很详细】

    image

    别忘了这一步,开启系统代理。

    image

    2.SaKuracat

    在最开始使用魔戒的订阅,在clash上使用,断连过一段时间,发现了SakuraCat。 优点:使用更简单,只需要在官网购买你的订阅,然后下载软件后,点击登录你的账号即可。 缺点:有时会不稳定,账号登不上去。(不过现在官网有了优化汉化版,使用体验还可以) ps:有相应的手机版和电脑版,均在官网下载即可。 image

    为什么你一会说网站叫SakuraCat一会又说软件叫这个 ?我都被你搞混了

    可以这样理解,上面提到的三个网站,只是订阅(也就是节点的分销商),你购买了订阅,没有用,还需要相应的软件(比如提到的clash、SakuraCat)才能实现科学上网。

    当然也有更多的网站,卖不同类型的订阅(节点)服务,这些订阅也不仅仅可以跑在上述提到的两个软件上,还有很多不同类型的软件。

    但有一个原则不会变:越贵的,越稳定,越不容易跑路。 当然反过来一样,所以不建议使用免费的节点。

    最后,欢迎来到真正的互联网,但别忘了,Big Brother is watching you.

    【2024.9.29更新】 EFCloud 推荐 25元 100G 速度快 稳定 ChatGPT没问题 这个是我一个朋友推荐给我的,用了之后发现确实很实惠,关键是稳定,速度快,100G一次性流量,不限时间,目前我自己主力的梯子就靠这个。强烈推荐。

    另一方面,使用方法也很简单,基本上傻瓜式一键操作,支持直接导入你的clash中。

    https://inv.easyfastcloud.com/#/register?code=RQmIkIq2

    image image image

    ]]>
    2023-12-29T12:16:12+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/53算法设计与分析期末复习2025-07-16T14:22:04.600754+00:00image

    image

    ]]>
    2023-12-29T09:00:41+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/52开题答辩拿了高分,但关于未来很迷茫2025-07-16T14:22:04.818750+00:00今天开题答辩结束了,本来我们二学位是前面5个的,结果顺序来了个调转,整成最后了。

    最后结果还算满意,前面老师严格限定了时间,每个人最多5分钟,甚至没有讲完就听不下去了,老师直接打断问问题了。 但一场答辩听下来,40多个人里,除了几人水平高一点外,剩下的基本做的太差了。自己做的什么不清楚,用了什么算法说不清,数据集怎么获取,也不清楚,总之,老师不耐烦的打断,甚至不让讲研究背景,直接跳到最后,看来真是明智的选择了。

    真是同情老师了,我期间一度听不下去了,溜出教师了好几次。

    到最后我的时候,我讲完了自己的ppt,看了一下录音,足足讲了10分钟,期间一直低着头的老师,基本上都在抬头看我ppt上的东西。

    我觉得可以了,毕竟自己认真准备了20页左右的ppt,每一页都认真在考虑整体的思路以及细节(甚至用gpt4生成了几篇插图),在内容上也基本涉及到了我过去学到了看到的点,cs50的课程,吴恩达的prompt课等等。

    讲完之后,之前交过我的老师给我竖起了大拇指,还是挺爽的。后来听别的同学说,老师一直在夸我的项目做的好 ,算是思路最清晰的一个了。下来后,看到另一个交过我的老师也给我打了95分,其余的同学则是基本70多分。

    还算是满意的结果了,虽然自己做的并没有多复杂,但总归是思路捋清楚了,同时表述的也很清楚,像我之前的毕设答辩,老师当时也是说,我的是现场思路逻辑最清楚的一个了。

    毕设基本没问题了,其实一直也不算多大的事情。

    比起毕业设计,毕业恐怕是更难的事情了。

    晚上导员开了班会,让我们做好毕业前的准备,讲了目前就业形式的严峻性,让我们不要较真,最重要的就是放过自己,如果考不上研究生,考不上公务员的也没关系,先找个班上吧。目前96个人两个毕业班的学生,加上我大概也就签了4个。

    最后又专门问了我,还准备去那家企业吗,想清楚要拒了吗?

    因为我的三方算是签的比较早的,还一直在辅导员审核的状态里。在当时签了一家江苏的外贸岗后,后面又陆陆续续面试了几家各种各样的外派,甚至一度险些被骗到曼岛搞电信诈骗(对,就是新闻上缅北那种性质)。当时的想法也很简单,秋招来了,但是对自己的技术没多少信心了(看github的提交记录就能看出来,8月-11月差不多几个月没有写代码),但总不能再次面临失业吧。 image

    那段时间真是焦虑和不自信的一段时间了,不知道自己毕业后能做什么,想去澳洲半工半读,当时自己看了一下账户的钱就差1万左右的钱了,(其实当时再冲动一点也完全有机会去了,就是需要退掉现在这个二学位了,但读完这学期就剩个毕设就能拿到毕业证学位证了)。

    后面想着先攒钱吧,就疯狂投校内的兼职,打算一毕业攒到钱就走,然后干了差不多一个月的数据标注的工作,校内给小红书的词条打标签。要求一小时要标到152条,正确率不能低于95%。刚开始的一周做的很挣扎,可能是因为缺人,考核了一次后通过了正式上岗。一开始速度很慢,总是达不到要求的数量,时薪差不多15左右。后面熟练了之后,疯狂的提速,偷懒的时候完全凭直觉直接打上标签。好日子大概这样过了两周左右,时薪到了20了,两周拿了800左右,每天晚上从6:30到9:30,坐在实验室的电脑前,一群人 盯着电脑屏幕打三个小时的标签,然后我拖着疲惫的身体回宿舍,路上计算着三个小时又标了几百条了算着又赚了几十块钱了,犒劳自己买一根3.5的肠,盼着日子会越来越好,到毕业的话差不多能攒够剩下的钱了。

    好日子过了两个星期,在连续请假了几天回老家参加完发小的婚礼、参加秋招的面试后,回来的第一天上班,负责人告诉我被辞退了,原因是我正确率太低了。

    当时听到消息的一瞬间,心里倒是也很平静,毕竟当时刚进来时太痛苦了,跟朋友讲,我要干到他辞退我为止,除了报酬满意以外,别的一切都不满意。正好也开始秋招了,学校举办了大型招聘会,认真准备了简历,投了大大小小的近10家企业,有高中的生物老师、有软硬件的ToB销售,甚至还投了几家外贸岗。

    最终结果还是挺好的,负责招聘的生物组组长很喜欢我,说我气质很符合他们的要求,但是薪资也太离谱了,综合薪资标1万,但是底薪给1.9k。外贸则是想,既然打算出国的,外贸又能用的到英语,既然这样,不如先工作着,一边攒钱,一边还能练英语。

    外贸有了之前暑假的面试经验,准备了口语自我介绍。但没想到的是,招聘会的现场聊起来的时候,聊着聊着就来了英文对话,先是让我自我介绍,还算准备了一点,但最后也是卡住了。然后对方用英语问我问题,没听明白,聊不下去了。但好在对方的企业是做化工产品农药表面活性剂这一块的东西,恰好我本科毕设就用到了这个,那就多少有的聊了,又聊了农药的一些东西。多亏了本科的东西,聊了很多,过了几天,约了二面。二面之前又紧急准备了英文可能的问题,疯狂背了一上午。但面试的时候,除了流畅的说完了自我介绍,第一个问题还是没怎么听懂。面试的恰好还是那天现场聊天的那个经理,笑着说,那我们还是继续用中文聊天吧。

    虽然英文准备的答案没机会说了,但是中文问的问题也基本是那些,当时我确实也很想拿到这家的offer,也很真诚,最后,面试结束过了几天,hr打电话说面试过了,可以签三方了。

    就这样签了三方,明年三月实习,毕业如果转正得话5.2k/月,996,加班,在离家几百公里的南边的城市,之前甚至从来没听过。

    但当时得知自己面试过了的消息,高兴坏了,毕竟当时太害怕失业了,太焦虑和不自信了。拿了这个offer后,想到就是心里的单子放下了,毕业有着落了。差不多那几天天天在学英语,刷英文的视频,练听力。

    之后接连两个高中的生物老师的面试,其中一个笔试过了,约面试后又放弃了;另一个面试也过了,但是一想到薪资少的可怜也拒绝了。其实当时已经签了三方了(我以为已经是审核过了),后续的几个面试也没打算去,就当练手了。能得到人的肯定和认可,总是很开心的。(但后来我看的一本书上讲,过度的追求别人的肯定,其实是小时候没有得到父母足够的鼓励,以至于长大后也内心一直自卑,总是渴望被人的肯定)

    但总归是信心慢慢恢复了,后面又在小红书上看到非洲外派的工作,发现钱真的好多,基本上应届毕业生都能月薪1.5w,同时我也基本能达到要求了,六级也过了,口语听力虽说不是很熟练,但是经过外贸的面试,平时也没少看英文的视频,英文的文献文章,还是有信心的。投了几家,拿到了一家外派卢旺达的行政助理岗位,也是因为自己本科期间有过一年学工助理的经历,对方倒是很满意我,给了我一周的时间考虑要不要去非洲。

    我差不多纠结了三四天,但因为自己这学期结束才能离校,但那边又急招人,还是错过了。后面还遇到了英国的外派工作机会,正儿八经的面试了一场,顺利拿到了offer,结果最后发现是诈骗的,当时几乎要退学去了。

    后面就进了11月,停课了一个月,为了给考公的留出时间复习,我们没事干的被迫接受了一个月的假期。闲了大概半个月,后面的时间开始搞毕设了,跟着gpt3.5一点点的做,再加上平时twitter上关注着各种最新的AI消息,基本上做的很顺利,当然前期的话,自从夏天7月份选完了毕业导师有了这个想法后,也一直在有意思关注和收藏这方面的信息,今天毕设的核心功能模块:API的集成,就是在twitter上看到有人推荐这个网站,才尝试用了用,发现特别的简单,当晚就跑通了网页版的功能。后面11月再搞的时候,废了不少的功夫,把API的调用也搞明白了,当然期间11.28号,又是看到了一个开题4.0的方法,才开题了4.0。用了4.0后,唯一的遗憾就是问什么没在11月初就开一个呢?

    又重新发现了编写代码的乐趣:因为有了一个强大、且24小时在线随时都能回答你问题的老师,永远耐心,永远想教会你。你需要做的就是,也尽量多保持一点你自己的耐心,和gpt一起,问下去,总能解决你的问题。

    以及,想好,你下一步想做什么,想学什么,就好了。

    这也是之前那篇提到的“除了想象力,没有什么是限制了。”

    当然,有点夸张了。但是ChatGPT4.0的出现,会让你有信心,你可以跟着他,在足够的耐心和时间下,解决任何bug任何问题的,只要你一步一步问下去。

    12月嵌入式开发的课,自己从头到尾完整写完了一个项目,虽然很简单,但是代码是自己独立的完成的;对于班上其他人的代码,也基本能看懂了,甚至大家有bug了,也会找我来帮忙调试。

    又莫名其妙的签了一家公司的兼职代课老师,也是基于esp32的课,说是让我们明年的时候去别的学校代课实训,一节课150,一天8节课1200,但是每次上课的课时费要扣30%,付给我的培训课的费用(总共19000,但是如果上不完课说不用还)。

    公司叫源码时代,跟我一年多前退学后被骗进的那家招转培的公司猿码时代一字之差,也是熟悉的30%的扣费什么的,有种不算好的预感,但我又太想它这个薪资报酬了,负责招我的那个人看上去也很真诚,在我提出签一个保证,如果中途退出,不需要支付课时费后,我们签了兼职合同,我决定赌一把试一试。

    可能本质上,我不是很想去那家外贸的岗位,我还是想搞技术,想写代码。

    但是现在这个兼职的代课,没有多少的保障,幸运的话,可能明年春天4月份能至少上一个月的课,赚一点钱,然后随时因为各种原因丢掉工作,失业;不幸得话,可能就又一次被叫源码的公司骗了,更严重的可能要搭进去19000?

    但未来呢? 我又该做什么呢? 现在又该做什么呢?

    是先拒掉那个外贸的三方,然后现在就准备再好好重新从头学一下前端的东西,多做几个项目,明年春招或者即使是毕业之后暂时找不到工作也一直认准了前端就往里冲?还是什么呢?

    前端时间小红书刷到一个自学了三个月前端,从头到尾跟着jason学html、css、js,然后是React,找到了实习;也有一个博主,总归实际工作经验才两个月,剩下的十多个月是靠自己自学的,拿到了欧洲的远程工作offer。

    我是不是也要再义无反顾的再重新学一下呢,毕竟两年前退学时的梦想就是这个,距离明年毕业也还有整整6个月的时间,他们可以,为什么我不行呢?

    那就再一次出发? 重新来过嘛。

    ]]>
    2023-12-28T16:50:20+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/51Get和post的区别在哪里?2025-07-16T14:22:05.074542+00:00因为毕设中涉及到了一个场景,向同一个api发送两次请求,先发一次post后发get,结合场景,多少理解了些。

    image image

    ]]>
    2023-12-27T07:30:08+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/50除了想象力,没有什么是限制2025-07-16T14:22:05.259010+00:00嵌入式开发的课程就要结课了,虽然课程缩减了很多很多,实际玩的项目只简单接触到了温湿度传感器、遥感测控、ELOD显示器、蜂鸣器、电机(),以及蓝牙和wifi连接esp32,在老师的带领下简单做了一些小项目,但还是感觉很有趣,似乎一切才刚刚开始的样子。

    最后我们要做一个结课的大作业,随着我对这些技术的掌握,发现,最后限制自己做出来的,只剩下好的创意和想象力了。

    技术我们都会堆叠,但是一个好的创意,一个好的应用场景并不容易,很容易做成技术的堆叠,最后变成程序员的自嗨了。

    当然,我觉得在刚刚学会一个新技术的时候,自己拼装各种组合很爽。

    但更爽的可能在于,想象力无限的迸发,不在于技术用了多少,而在于最终呈现的效果有多奇妙。

    在B站看到了一些以前只觉得很酷的项目但一点都不知道怎么做的(比如稚晖君的小电视)但现在,发现自己原理也明白了个大概,自己有时间,也差不多能做出来了。

    这种感觉还是很爽的,倘若找一个时刻,两年前研究生退学,重新学计算机,不后悔的瞬间,大概就是这时候了。

    以前也有很多想法,想搞遥控小车,搞各种稀奇古怪好玩的东西,但完全没有头绪,不知道从哪里下手,但现在,有了一点点的技术基础,觉得技术原来也不是那么难,剩下的,只有想象力的限制了。

    最终的结课大作业,打算用esp32搞一个蜂鸣器钢琴项目,以及用蜂鸣器播放各种音乐。

    ]]>
    2023-12-23T05:17:31+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/48“既然这样,不如我们重新来过。”--考前押题复习的老师2025-07-16T14:22:05.473496+00:00一个学期没怎么听课的编译原理和算法课要结束了,今天是最后的一节课。

    考前划重点,传统项目了。

    但没想到的是,老师画重点简直了,基本上每一章考哪一题都说到了,就差直接告诉我们原题了。

    很感慨的一点在于,最后一节课了,每个人都听的格外认真,似乎此时的老师讲课也有了特别的魔力,平时云里雾里的课讲的也清晰了起来。

    奈何一学期大伙都没怎么听几节课了,欠下的地方也太多了,概念套概念,上一个概念都没有听过,现在就要用这个概念来搞更复杂的事情了。

    老师恐怕也心如明镜,知道一学期没来几节课,来了几乎没人抬头上课的我们的水平了。

    不过,老师都没有放弃下面一群瞪着“愚蠢而清澈”大眼睛的人,自信的跟我们说:”过去的不懂的就过去了,现在不如我们重新来过了。下面我们开始讲这个......“

    是啊,不如我们重新来过了。

    认真听了一天的课,几个感受,一是划重点简直划到奶奶家了,恐怕我奶奶照着老师划的题目,学上俩星期也八九不离十了。二是,认真听,似乎没什么难的东西,基本上整个学科的思路框架认真听下来,心里也有了大概了,剩下的照着例题或者B站上的知识点再学就是了。

    由此我想到了一个很重要的点,很多时候学的绝望,怎么也学不会,可能是不知道要学什么东西,忘了问题具体出在哪里了。真是应了那句话,提问比答案更重要,认清楚自己要解决的问题,这很重要。

    此外,也被老师最后尽职尽责的职业态度触动了。

    下课后,还有一题没讲完,老师主动拖堂继续给我们讲。其实最后划的重点,在我为数不多的清醒听课的印象中都至少要重复讲了3遍了,现在还要再一次重复讲,光是耐心这一项我就深感佩服了。两节课,课间没有下课,再加上拖堂差不多又拖了几乎半节课了,最后老师嗓子基本上已经沙哑了。

    终于下课,我们班的人又围上了老师,让老师再给我们画点重点吧,甚至要再给一点原题吧...... 大家的理由则是,我们是二学位的,基础太差了,又没有重修的机会,太担心挂了。

    说实话,我是有点震惊的,在以往的大学考试经历中,考前老师带着大家复习,简单画一画重点的情况有,但的确没遇到过这种情况,只要跟老师示弱,不断展示自己是多弱示的一方,就可以得到这么多这么多的优惠。

    其实已经画了那么多的重点题目了,说的那么直白了,为什么还要这样缠着老师,继续要”优惠“呢?

    我们就不要这么得寸进尺了好吧,老师也很难做的啊。

    但转念一想,我与大家其实也没有什么不同罢了,我也是靠着在集体中,靠着我们所谓的”弱势“的地位,才获得的那么多的利益。如今在我认为自己”不再弱势了“,便不想让”更弱势“的人获利的想法,恐怕也没有高尚到哪里去。

    这恐怕是大学生涯最后一次考试周了,祝我们都顺利。

    (实在不行,我们重新来过吧:)

    ]]>
    2023-12-22T10:09:21+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/47Hope&Love网页作品2025-07-16T14:22:05.687950+00:00网站:https://qiyongchuan.github.io/Hope_Love/ 开发记录:https://github.com/QiYongchuan/Hope_Love/issues/1

    ]]>
    2023-12-20T07:18:07+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/46只要太阳出来了,一切都会好起来的2025-07-16T14:22:05.893749+00:0012.20日,开课后连续18天阴天下雨下雪后,终于又迎来了太阳,终于又见到了阳光。

    昨天其实就见到了太阳,只是不像今天,昨天一天满课,从早八上到晚八——两周前这样的周二是刚开课,直接强度拉满,晚上就回来发烧咳嗦,开启了黑暗的复课时光。

    昨天终于晴天了,可以说是一扫这段时间的灰暗:整日阴天,不是下雨,最重要的还是天天的低温,手冷脚冷,坐也坐不住,连未来也变得灰暗,各种的焦虑又弥漫在心头,看不到未来……

    但似乎,只要太阳出来了,一切都好了一样。

    昨天上一天的课也无所谓了,虽然有一大半的课没搞懂,但至少自己也学会了一半。今天晚上要服务器的演示考试,明天是测试的考试,虽然现在还没有十足的把握一定能过,但心里有信心了,下午以及晚上好好准备,问题也不大。

    至于未来,昨天晚上看到了一个帖子,三个月跟着国外的课程从html到js,后面学完了react,找到了实习,拿到了offer。

    看完了真替他高兴,也感到了某种信心,比起他来,我已经有了不少基础了,但学习过程断断续续的,缺了几个项目,好像就差一口气就能迈过那个槛了,但总是因为期间各种焦虑担心找不到工作,学了也没用,以及bug调不出来放弃了。

    但某些时候,总是不甘心,觉得自己明明也不差啊,我也可以做到的啊。其次自己也付出了那么多,为什么不再坚持一下呢?

    到明年3月份去外贸实习,或者明年6月份毕业,我其实时间的充足的,足足有两个3个月呢。

    现在欠缺的,恐怕只有决心和毅力了。他每天差不多是早上8点开始学,一直到晚上10点左右,我很羡慕这样的状态,就像当初考研的时候一样心无旁骛的学习。

    现在我还有最后的机会了,趁着没毕业之前,最后可以心无旁骛学习的时间。 期间就只用顾及两件事就好了,一是毕业设计,这个我也打算用react正好可以练习,二是学习Python的esp32开发,这个可以明年3.4月份的兼职收入,以防明年外贸的实习不顺利。

    上午睡了美美的一觉,一直睡到10点,醒来,宿舍靠窗的一边,阳光灿烂,真是美好。梦里,一上午做了三个春梦.....

    ]]>
    2023-12-20T07:06:26+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/45迷失在寒冷的冬天2025-07-16T14:22:06.090316+00:00鼠标丢了,或者说是消失了。

    这一次和之前两次找不到不同,上次是忘在实验楼,紧着着就找回来了。这一次,到了晚上想打游戏时,才发现鼠标不见了。

    第二天我去实验室找了找,大概永远的消失了。

    没了鼠标再用电脑,右手总是空落落的,就像最近的生活一样,好像失去了某种锚。

    (哦,我为什么要说锚,原来是刚刚在听房东的猫的《在无常的生活中抛下一个锚》)

    今天是2023.12.13,重新开始上课的第二周的周三,今天没课的,最近一直阴天和下雨,太冷了,也不见阳光。 重新开始上课的第二天,周二测试了一天就开始生病了,接连躺了大概三四天,一直到周六才勉强好了爬起来去上课。

    测试搞不明白,嵌入式也迷迷糊糊的,别的课也稀里糊涂,算法不明白,编译原理不知道讲的什么,这样的日子还得持续两周。

    ]]>
    2023-12-13T10:27:11+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/44漫长的冬天2025-07-16T14:22:06.299153+00:00image

    ]]>
    2023-12-13T03:32:11+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/43嵌入式开发实训记录2025-07-16T14:22:06.502788+00:00芯片 esp32

    实验项目1: ESP32 Arduino开发环境搭建

    如果是connecting问题时,按Boot

    ]]>
    2023-12-09T02:05:13+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/42Github 的action学习笔记2025-07-16T14:22:06.706374+00:00image

    结果:成功了!

    image

    ]]>
    2023-12-05T15:08:34+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/41听了印度老哥的建议后修改权限,最终成功了!2025-07-16T14:22:06.917435+00:00视频链接:https://www.youtube.com/watch?v=0pRSFaQYr50

    ]]>
    2023-12-05T15:05:33+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/39修改仓库的权限2025-07-16T14:22:07.160740+00:00image

    ]]>
    2023-12-05T02:03:57+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/38增加了两条代码,试图解决push权限问题2025-07-16T14:22:07.830452+00:00设置 Git 远程 URL

    - name: Set Git Remote URL with Token run: git remote set-url origin https://x-access-token:${{ secrets.G_T }}@github.com/YOUR_USERNAME/YOUR_REPOSITORY.git

    ]]>
    2023-12-04T16:43:21+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/37创建一个空标签的会怎样2025-07-16T14:22:08.083823+00:00这还是一个测试用例,不过似乎快要成功了

    ]]>
    2023-12-04T16:32:51+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/36测试,看是否能顺利更新2025-07-16T14:22:08.292490+00:00测试我的博客自动化更新功能

    ]]>
    2023-12-04T16:02:30+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/35自动化博客更新部署折腾日志2025-07-16T14:22:08.518370+00:00似乎目前仍然没有成功,但相比于上一次,有gpt4的帮助下,对整个的框架有了进一步的理解。

    目前把代码都“复制”了过来,真的是手动复制添加上去的。

    已知没有做的工作:环境配置中的API等没有添加设置

    已知可能需要做的:跑一下GitHub的action,做一个简单的demo?

    image

    ]]>
    2023-12-04T15:40:02+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/34软件测试笔记备份2025-07-16T14:22:08.746267+00:00课程: 考察方式:重点考察思想,因为技术工具会变,但是思想不会变

    • 等价类划分

      测试覆盖率计算公式 Cov = (N/T * 100)% T为测试覆盖项的总数,N为测试用例。

    是主观概念还是客观概念? 因为T是主观选定的,所以具有很强的主观性;但是同时又是客观的。

    是否越高越好? 在T选定的情况下,越高越好。

    笔记定义:

    ]]>
    2023-12-04T00:52:57+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/33AI创造:疯狂的蔬菜一家人 2025-07-16T14:22:08.996013+00:00image

    蔬菜和水果家族正在一起聚餐的场景,桌上摆放着同样风格的各种昆虫。 image 蔬菜角色被赋予了夸张的特征和哥特式元素,营造出一种独特而略带黑暗的氛围。 image

    image

    现在,西兰花、草莓、芒果小姐和茄子爷爷也加入了这个独特的家庭。

    image 在这幅画中,包括胡萝卜巫师、番茄骑士、茄子巫婆、豌豆小精灵、洋葱长老、辣椒小鬼、黄瓜女士、蘑菇术士、玉米勇士以及南瓜妈妈和她的孩子们。每个角色都体现了波顿风格的夸张和奇特特征,他们在一个奇异的迷人森林中聚集在一起,展示了这些多样化的蔬菜和水果角色之间的团结和家庭感。

    ]]>
    2023-12-03T08:43:27+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/32AI作图的一些尝试2025-07-16T14:22:09.277732+00:001.经典IP形象

    类似天线宝宝,哆啦A梦,樱桃小丸子,海绵宝宝,蜡笔小新,大头儿子和小头爸爸

    该想法直接使用gpt4,不会生成

    2.蔬菜人物风格化,或者昆虫战甲化

    角色设计:首先,设计一组主角,每个角色基于不同的蔬菜、水果或昆虫。这些角色应该具有独特的个性特点,例如勇敢的草莓骑士、智慧的茄子学者、活泼的橘子小丑,以及神秘的蝴蝶女巫等。

    场景多样性:将这些角色放置在多种现实生活场景中,比如市场、学校、公园、图书馆、咖啡厅等地。每个场景都可以突出不同的主题和活动。

    故事情节:每个场景都可以讲述一个小故事,比如草莓骑士在农贸市场上寻找失散的蓝莓公主,或者茄子学者在图书馆里研究植物学的秘密。

    表情和动作:角色的表情和动作应该根据不同的场景进行调整,以反映它们的情感和活动。确保这些表现丰富多彩,以增强观众的情感共鸣。

    颜色和风格:使用明亮且富有活力的颜色,让角色和场景充满活力。动漫化的风格可以使形象更加夸张和有趣。

    固定元素:为了保持主角的连贯性,可以在每个图像中包含某些固定的元素,如特定的配饰、颜色方案或者标志性的物品。

    互动与关系:展示角色之间的互动,以及它们与环境的关系。这不仅可以增加场景的动态感,还可以增强角色的个性。

    季节和时刻:场景可以反映不同的季节和一天中的不同时刻,如雨后的春天公园或夏日黄昏的海滩。

    文化元素:可以融入不同文化的元素,使场景和角色更加多元和国际化。

    动态变化:即使主角保持固定,场景中的其他元素,如背景、气候或其他配角,都可以根据故事情节的需要进行变化。

    3.新的idea:生成迪士尼风格或者漫画风格的名人人物头像

    比如Taylor Swift 或者蔡徐坤等中国常见的名人形象等

    策略,通过

    ]]>
    2023-12-02T15:21:43+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/31关于YouTube自媒体2025-07-16T14:22:09.526341+00:00
  • Directly transport station B up to the tubing

  • Wisdom quotes, AI videos

  • 国内套壳GPT 3.1

  • 1.GPT的API过期了,需要再申请一个账号。 2.申请几个YouTube账号

    ]]>
    2023-07-28T15:30:05+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/30721面试复盘(外贸)2025-07-16T14:22:09.766282+00:007.21下午,面试外贸员实习生岗位,趁着记忆新鲜赶紧写一写。

    问题: 1.你之前是农业,现在是计算机专业,现在为什么想做外贸销售的工作? 2.什么时候可以入职? 3.英语听说读写能力怎么样? 4.有没有在YouTube等剪过视频,(有没有接触过YouTube、twtter等)

    英文问答: 1.介绍一下你目前的情况,兴趣爱好等 2.你为什么想加入这个公司,你的目标和愿景是什么?

    上面两个问题,都能听懂,但是表达很吃力。第一个照着GitHub的介绍念的,第二个竟然回答,我想练习口语(啊啊啊啊)

    总的来说,算是迈出了第一步,能带来一点安慰的是,英语倒是能听到,有以及中文的问题回答的还算勉强,不算很磕磕绊绊,对于过去运营的经历还算自信的说出。【在选择职位时,运营可能更适合我自身的条件一点,但是想的是找一个更有挑战性一点更好玩一点的职位,就投了外贸实习生】

    最后面试官安慰说表现还可以,问了能不能住在学校里,以及能实习多久的问题,说目前暑假已经过半,目前的实习生还挺多,就让等通知了。

    不知道能不能通过了,通过就买票去武汉实习,不行就再考虑别的打算了。

    需要加强的是英语口语,至少准备一下自我介绍以及为什么加入公司的表达了。

    1. introduce yourself My name is Qi, i am currently an undergraduate student pursing a second bachelor's in computer science.My first degree was in plant protection.(My teacher told me before " we are going to train you to become a Plant Doctor" but i konw that not a really docter,so i quit,i choose to not a really science -- computer science)

    But now, when i learned so many about computer, i realised that computer is just a tool,i can't stay with it all the day like other programers . sometime i still feel my passion when i do something about computer, but i feel if i can do something by using computer i will be more happy . So i wanna try some new thing for me.

    2.why wanna join us?

    First of all, I really appreciate your company's corporate culture and development prospects. Your company has a good reputation in the industry, the product quality is excellent, the performance is growing rapidly. I am eager to be a part of your company and contribute my strength to the development of your company.

    Joining your company, my personal goal is to quickly grow into a qualified professional. I will strive to improve my professional skills, learn advanced management experience and enrich marketing knowledge. I will actively complete the work assigned to me by the company, and strive to do every little thing well.

    In your company, I want to grow in the following areas:

    Improve business ability, learn to master the professional knowledge of the company's products, familiar with the operation mode of the industry.

    Exercise teamwork ability and enhance communication and coordination with colleagues.

    Improve work efficiency and learn efficient working methods.

    Cultivate good professional ethics and establish correct work values.

    Broaden my horizons, learn business management knowledge, accumate background knowledge for becoming a department manager in the future.

    I will step by step, start from the basic work, and strive to become the mainstay of the company. I believe that through my unremitting efforts, I will be able to achieve my career goals in your company. Thank you for giving me this valuable development opportunity. I will work hard to create greater value for the company.

    ]]>
    2023-07-21T08:29:51+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/29Git创建新的分支,开发新功能2025-07-16T14:22:10.050746+00:00image image image

    ]]>
    2023-07-08T07:51:59+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/28快乐释放胶囊2025-07-16T14:22:10.278959+00:00(一) 心理健康同身体健康一样,我们需要像重视身体健康一样重视身体健康。

    [TED演讲】怎样打败孤独和负能量?(中英字幕)-哔哩] (https://b23.tv/1xG4SwJ)

    • ”关注你的情绪,保护好你的情绪“

    对自己仁慈,当情绪出现问题时,应视为身体出现问题一样,心情出现孤独、焦虑、感到失败,低自尊时,同你的牙齿出现蛀牙,腿被磕到一样,是你生病了,而不是仅仅是你想多了。 你不应该对一个情绪出现问题的人说,都在你脑子里,别想了就好了,就像你不能对一个腿骨折的人说,都是你腿的问题,走一走就好了。

    • 孤独时采取行动

    孤独是主观定义的,取决于个人是否感受到于他人情感和社交上的脱节。 孤独像是一个迷宫和陷阱,深陷在里面的时候,彷佛成了遗忘在宇宙深处某颗星球上唯一的人,热闹的人群与你无关,世间一切的爱与你无关,像被人遗忘在了某处冰冷的荒原。

    其实不是的。

    你只需要采取行动,采取一点点行动就好了。(哪怕让人分一点爱?=>”一切的爱怎么都送给他,一颗心分一半好吗?" 此处应该对应背景音乐,半点心-草蜢) 朋友和家人是爱你的,世界是爱你的,你总会有人爱你的。 就像视频里被踢断的那个电话线,电话那头的人也在等你的电话呢。

    ]]>
    2023-07-07T11:43:38+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/27Python文件 xx.py如何打包成.exe格式文件,发给非程序员朋友玩2025-07-16T14:22:10.495731+00:00前言:我花了一个上午的时间将在命令行中查询天气的接口封装成一个 Python 文件,并通过 Python 的 requests 库直接发送请求。但我想将其发送给没有 Python 编译器的朋友们使用,所以只能将 Python 打包成 exe格式的文件。在此之前,我有过打包自己python程序到exe的经验,将python画的爱心打包成exe格式程序发给朋友。

    具体的过程不复杂,可以概括为以下几个步骤:1. 安装 Python 的专用打包工具 PyInstaller。 2.在命令行输入pyinstaller -F py文件路径 就完成了。 (在倒数第二行查看生成的dist文件夹,去看exe文件就可以了。

    image image

    注意事项: 1.直接打开cmd窗口,输入命令就可以了,后面跟正确的路径就可以打包了。(我之前已经下载过打包工具了) image 2.打包后,点击weather.exe出现了闪退,用命令行运行后:查看到了报错信息 image 将报错信息丢给GPT分析,得出:打包时缺少了几个依赖包,导致直接闪退了 image image

    先是执行这一条,手动安装所需的依赖:

    pip install chardet charset_normalizer
    
    

    但是pip安装包出现错误:443 image 轻车熟路,这次直接先关掉梯子,后重新安装,成功。

    image

    再进行第二步,将缺少的依赖重新打包,这里感觉是在加上这部分后重新打包一份py到exe

    image

    此上,所有的打包工作完成,成功将写好的waether.py转成了weather.exe程序了,理论上朋友们可以在自己电脑上运行我的查询天气的程序了。

    ]]>
    2023-07-07T10:05:54+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/26Python中requests库发送请求时遇到的443问题2025-07-16T14:22:10.683224+00:00报错信息:

        raise SSLError(e, request=request)
    requests.exceptions.SSLError: HTTPSConnectionPool(host='wttr.in', port=443): Max retries exceeded with url: /%E5%A4%A9%E6%B4%A5?lang=zh (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:997)')))
    

    看到443 以及 SSLError报错,心里大概有了方向:应该还是代理及网络的原因。

    问GPT,答:

    image

    期间Google、csdn搜索的方法: image 在发送请求的同时,关闭SSL验证,以及添加配置代理服务器设置。 仍无法解决。

    最后解决方法:关闭梯子

    ]]>
    2023-07-07T09:36:00+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/25Git 如何将本地仓库中上传一个本地有但是远程没有的分支?2025-07-16T14:22:10.902023+00:00问题描述:

    我在本地有一个仓库StydyPy,用来记录我的学习代码,我要上传到我的远程项目仓库Let’s Run中。

    思路:本地有master分支,远程则是main分支,现在我要建一个StudyPy上去,一是我直接把我的master分支改名字,然后上传到远程仓库,或者我在本地新建一个StudyPy分支,然后将master分支里的内容,merge过去,再上传到远程仓库。

    因为远程仓库并没有StudyPy的分支,无论哪种方法,也需要在远程新建一个分支,即原来不存在的分支。

    新建-复制思路 image

    重命名思路: image

    将本地推送到远程:

    image

    以上是说,当远程有仓库的时候,git push origin StudyPy 就可以;如果远程没有,那就git push -u origin StudyPy,意思是先建一个,再传过去。

    当然,把本地仓库push到远程的前提是,两者建立了关联:

    image

    ]]>
    2023-06-30T03:30:24+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/24Git push时遇到10054问题2025-07-16T14:22:11.124551+00:00问题描述:

    image

    可能的原因:

    image

    总结:根本原因在于网络。

    解决方式: 1.之前挂梯子代理时,将局部代理换成全局代理后,解决。 2.修改一下代理: git config --global http.sslVerify "false"

    51401a33c96a4af18f7325994d56999

    1. 把wifi换成数据流量上网,解决。

    大概还是因为网速的原因,上次出现这个问题也是在家里,连的家里的宽带,切换手机开热点后就成功push上去。在学校反而没遇到过10054的情况。

    ]]>
    2023-06-30T03:17:21+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/232023 第一学年结束的总结2025-07-16T14:22:11.430816+00:00虽说是第一学年,但本篇的侧重点更多的放在刚刚结束的第二学期。原因大概在于,当想提笔写下一篇回顾性的总结时,才发现上学期太空了,对于上学期的印象:开学、疫情、封校、无休止核酸检测、漫长的季节,又突然的放开,惊慌的逃窜,感染新冠又申请缓考,一切的一切,关于上学期的记忆,就跟同过去三年的记忆一样,突然被抹去。 而在我这里,那一切又成了那么遥远的过去,以至于我在回想起这一切时,我开学,来到这个学校,更像是几年前那么遥远,而非仅仅才过去了一年。

    但简单来讲,第一学期稀里糊涂学了C、Java,然后是学不太明白的数据结构,以及究极恐怖的离散数学和数字电路(虽然听着有趣,但数字电路一直跟不上的痛苦太难忘了)

    这学期考试课程主要有操作系统、计算机组成原理、计算机网络。 考试周分别整理了三门科目的笔记: #17 #19 #20

    虽然前期学习听不太明白(操作系统和计算机组成原理),但是后期复习的倒是认真,竟然基本上将所有的知识点全部掌握了,同时计算机网络也是因为考试周的复习整理,基本上弄懂了计算机网络的各个章节,各个章节的联系。

    同时考察课,web前端,在做最后一个项目的时候,虽然有过痛苦的挣扎,但最后自己坚持下来了,做了一个让自己满意的项目。同时因为在课程进行的时候,有段时间自己不在状态,各种拖延,导致连续两次实验没有交,有点自暴自弃的感觉。但最后一节课,又交上了一个,同时弥补了很多的损失。 web课的项目在 Hope&Love

    另一门考查课JavaEE,全程上的认真,笔记基本记下了每一个细节,每一行代码都调试出来了。最后交作业的知识点也拿到了98分,但是因为实验没有交,考勤只给了90分。这门课最大的收获是,虽然自己java学的稀烂,但是对javaEE有了一点了解,觉得并不是那么难的东西,我也可以完全做的出来的。 同时才第一次接触到了,如何耐心的调试,如何找自己代码的错误,如何看报错信息等。 JavaEE的代码仓库

    考查课JavaWeb,其实是用JSP的技术来做的,老师讲的稀巴烂,我学的也漫不经心,尤其是在看了一篇文章讲,这项技术差不多已经淘汰了快10年左右了,现在基本没人用了,也不建议去学之后。上课完全不想听,老师的代码水平也有限,只记住了老师在实验课指导我们时反复问一句:”你是免费的还是付费的?“

    JavaWeb的学习笔记

    此外,最后的实训课,是做一个基于java的商店,按理说应该是大二下学期学完java后紧跟着做的,但我们课程安排不合理。这个项目收获有,对git的操作又熟练了一些,学会了自己调试简单的代码,以及为我们后面三门考试提供了宝贵的自习室。

    Java商城的代码仓库

    ]]>
    2023-06-29T11:10:59+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/20计算机组成原理期末复习2025-07-16T14:22:11.637956+00:00复习指导ppt期末复习.pptx

    需要复习的点

    • #21
    • #22
    • 主存储器与cache的映射关系
    • 指令寻址
    • 微程序设计
    • 流水线CPU计算加速比
    ]]>
    2023-06-20T03:16:25+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/19计算机网络期末复习2025-07-16T14:22:11.858903+00:00第一章 概述

    1-03 试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。

    电路交换特点:面向连接的,优点是实时性好,缺点是资源利用率低,费用高 分组交换特点:分组交换技术,网络线路利用率高,缺点是实时性差一点。 报文交换特点:优点:数据以完整的报文形式进行传输,可以根据需要动态分配带宽。适用于短期大量数据传输,如文件传输。 缺点:由于每个报文都要等待完整接收后才能发送,因此可能会引入较高的传输延迟。同时,如果某个报文丢失或损坏,整个报文都需要重新传输。

    当谈到数据传输方式时,我们可以使用类比来更好地理解它们。

    电路交换:想象一下你正在打电话。在通话期间,你和对方之间建立了一个专用的物理连接,就像是一条只属于你们两个人的电话线路。这条线路在整个通话过程中保持稳定,直到通话结束。这种方式提供了稳定的通信质量,但也意味着在通话期间,该线路将被独占,无法同时与其他人通话。

    报文交换:想象一下你给朋友寄一封信。你将整个信件写好后,放入信封中,并写上收件人的地址和发件人的地址。然后你将信件投递到邮局。邮局会将整个信件作为一个完整的单位进行传输,直到它到达目的地。这种方式下,整个信件需要等待完整接收后才能继续传输,如果信件丢失或损坏,你需要重新发送整个信件。

    分组交换:想象一下你要下载一个大文件。你将文件划分为多个小的数据包(分组),每个数据包都有一个序号和目标地址。然后你将这些数据包通过网络发送出去。这些数据包可以通过不同的路径到达目的地,并且接收方会根据序号重新组装数据包,以还原原始文件。这种方式下,数据包可以独立传输,网络资源可以根据需要动态分配,但也可能引入一些传输延迟和抖动。

    通过以上类比,我们可以更好地理解电路交换、报文交换和分组交换的工作原理和特点。每种方式都有其适用的场景和优缺点,根据具体需求选择合适的数据传输方式是很重要的。

    1-14 计算机网络有哪些常用的性能指标? 答:速率,带宽,吞吐量,时延,时延带宽积,往返时间RTT,利用率

    时延(delay):可以理解成时间,具体分为发送时延、传播时延、处理时延、排队时延

    1-15 假定网络利用率达到了90%。试估计一下现在的网络时延是它的最小值的多少倍? 解:设网络利用率为U。,网络时延为D,网络时延最小值为D0 U=90%;D=D0/(1-U)---->D/ D0=10 现在的网络时延是最小值的10倍

    1kb = 10的3次方 1Mb = 10的6次方 1Gb = 10的9次方 1TB = 10的12次方 1us = 10的-6次方s

    1-18 假设信号在媒体上的传播速度为2×108m/s.媒体长度L分别为:与课本不太一样 image image

    1-19 长度为100字节的应用层数据交给传输层传送,需加上20字节的TCP首部。再交给网络层传送,需加上20字节的IP首部。最后交给数据链路层的以太网传送,加上首部和尾部工18字节。试求数据的传输效率。数据的传输效率是指发送的应用层数据除以所发送的总数据(即应用数据加上各种首部和尾部的额外开销)。 若应用层数据长度为1000字节,数据的传输效率是多少? 解:(1)100/(100+20+20+18)=63.3% (2)1000/(1000+20+20+18)=94.5%

    1-21 协议与服务有何区别?有何关系? 答:网络协议:为进行网络中的数据交换而建立的规则、标准或约定。 协议和服务的概念的区分: 1、协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。下面的协议对上面的服务用户是透明的。 2、协议是“水平的”,即协议是控制两个对等实体进行通信的规则。但服务是“垂直的”,即服务是由下层通过层间接口向上层提供的。上层使用所提供的服务必须与下层交换一些命令,这些命令在OSI中称为服务原语。

    1-22 网络协议的三个要素是什么?各有什么含义? 答:网络协议:为进行网络中的数据交换而建立的规则、标准或约定。由以下三个要素组成: (1)语法:即数据与控制信息的结构或格式。 (2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应。 (3)同步:即事件实现顺序的详细说明。

    _语法:在网络协议中,语法指的是数据与控制信息的结构或格式。类比到餐厅中,语法就相当于菜品的制作方法和配料清单。它规定了数据的组织方式,确保通信双方能够理解和解析传输的数据。

    语义:在网络协议中,语义指的是需要发出何种控制信息,完成何种动作以及做出何种响应。类比到餐厅中,语义就相当于服务员的指示和顾客的需求。它规定了通信双方之间的交互行为,确保数据的正确处理和响应。

    同步:在网络协议中,同步指的是事件实现顺序的详细说明。类比到餐厅中,同步就相当于服务员和厨师之间的协调和配合。它确保了数据的传输和处理按照一定的顺序进行,避免混乱和错误。_

    ]]>
    2023-06-18T08:10:51+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/18实训项目(10天)2025-07-16T14:22:12.078628+00:006.12 第一天

    1.明天下午汇报。ppt+需求分析 汇报(ppt+需求分析报告) 2.3-7天开发阶段 (日志) 3. 测试阶段 (日志) 4. 发布 第十天发布所有

    实训目标 模拟购物平台,后台管理 控制台输出

    需求与分析

    • 用户模块
    • 管理员模块
    • 商品模块

    1.分析与设计

    至少有一个功能模块图

    (一)买家端

    image

    image

    要求:1.需区示意图 2.文字解释

    需求分析主要包含以下:==有哪些模块、模块下面有哪些功能,以及这些功能之间的实现逻辑是怎样的?==

    (二) 卖家端

    image

    参照外卖的参照,写用户需求分析报告。

    1.设计分析.md

    参考链接

    ]]>
    2023-06-12T01:35:03+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/17操作系统期末复习2025-07-16T14:22:12.287736+00:00操作系论课上.pdf

    • 选择题 5题,10分
    • 简答题 4道 20分 【第7章文件系统 12/16题 5分 第三章 死锁 5分
    • 计算题 4道 40分 【第六章磁盘调度算法10分(优缺点需要注意一下简答)、第四章、第五章页面置换算法30分】
    • 应用题 2道 30分 【可能的点:1.进程同步问题(爸妈放水果15分) 2.银行家算法(15分)】

    image

    简答题可能的点

    第一章 1.视从交互性、及时性和可靠性比较实时系统和分时系统

    交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些专用服务程序,不像分时系统那样能向终端用户提供数据和资源共享等服务。

    及时性:实时信息查询系统对实时性的要求与分时系统类似,都是依人所能接收的等待时间来确定,而实时控制系统的及时性,是依控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级。

    可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。 来源 以及课本P12

    2.OS有哪些特征,最基本的特征是?

    操作系统的特征有:并发、共享、虚拟、异步,最基本的特征是并发(进程在同一时间间隔内交替执行)和共享(多个计算机进程共享计算机资源)

    第二章 image (1 )调度性。线程在 OS 中作为调度和分派的基本单位,进程只作为资源拥有的基本单位。 (2 )并 发性。进程可以并发执⾏,⼀个进程的多个线程也可并发执⾏。 (3 )拥有资源。进程始终是拥有资 源的基本单位,线程只拥有运⾏时必不可少的资源,本身基本不拥有系统资源,但可以访问⾪属进程 的资源。 (4 )系统开销。操作系统在创建、撤消和切换进程时付出的开销显著⼤于线程。

    第三章 1.死锁 1.何为死锁,死锁产生的必要原因?必要条件(简答题) 多个进程因循环等待它方占有的非剥夺性资源竞争而无限期地僵持下去的局面。 原因:非剥夺性资源的竞争和进程的不恰当推进顺序。 必要条件:互斥条件 不剥夺条件 请求和保持条件 循环破坏条件

    在计算机系统中,死锁指的是多个进程或线程因为竞争有限的资源而相互等待,导致系统无法继续执行下去。类比中的死锁可以是多个工人互相等待对方释放资源,最终导致整个工厂停止生产。

    第四章 存储器管理 1.引入动态重定位?如何实现? 所谓地址重定位,就是当⼀个程序装⼊到与其地址空间不⼀致的存 储空间⽽进⾏的地址变换过程,即将地址空间给出的逻辑地址映射到内存的物理 地址上。地址重定位有静态重定位和动态重定位两种⽅式。 采⽤内存分区管理时,在硬件上设置⼀个“重定位寄存器”可以实现程序运⾏时的 动态重定位。这种情况下地址重定位是在程序执⾏期间由地址变换机构动态实现 的,主要的计算依据是:物理地址=逻辑地址+重定位寄存器的内容。

    2.分页系统地址变换 image

    第六章
    1.各磁盘调度算法的优缺点 2. 中断处理程序通常需要完成哪些工作 设备中断处理程序通常需完成如下⼯作:(1) 唤醒被阻塞的驱动程序进程;(2) 保护被中断进程的CPU环境;(3) 分析中断原因、转⼊相应的设备中断处理程 序;(4) 进⾏中断处理;(5) 恢复被中断进程。

    第七章 1.文件目录 2.索引

    计算题

    第三章 进程 1.银行家算法(10分) 2.进程同步: 爸妈放水果以及 消费者生产者 以及哲学家吃饭(10分)

    第四章 存储

    1.连续分配存储管理

    动态分区分配(可变) image

    算法 算法实现 算法优点 算法缺点
    首次适应算法(first fit) 地址,由地址由上到下的顺序分配 优先利用低址地区空间分区,为高址地区保留了大片空闲区。 低址地区不断的划分,产生大量的碎片,每次查找时从低址地区开始查找增加了查找时开销。
    最佳适应算法(best fit) 容量最合适的那一个(从小到大排序) 把能满足要求、又是最小的空闲分区分配给作业,避免了大材小用 宏观上看产生了大量难以利用的碎片
    最坏适应算法(worst fit) 容量,选择最大的那个(从大到小排序) 算法查找效率高,产生碎片的可能性小 储存器缺乏大的空闲分区

    image image

    答案

    需要注意的点:1.每个动作对应 已分配分区 与 空闲分区 2. 已分配分区(作业,始址,大小) 空闲分区(始址,大小) 3.各算法的区别(首次适应是地址,最佳是剩余分区容量)

    2.非连续分配存储管理

    基本分页存储管理 image

    (2)在请求分页存储管理中,系统是通过页表进行地址转换。 先将逻辑地址分解成页号P和页内地址W两部分,然后查页表,可得页号P对应的物理块号为B,从而变换出对应的物理地址为: 物理地址=块号×页面大小+页内地址

    第五章:虚拟内存 只考这一道 (10分) 1.请求分页存储管理(页面置换算法)

    image

    ]]>
    2023-06-09T08:55:31+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/15生活有无数种可能,这次决定先不想最坏的了2025-07-16T14:22:12.513450+00:00#* 远离负面消息

    • 日本语言学习打工的推友大吉
    • 中国经济的英文文章

    上篇决定暂时远离推特一段时间,刻意减少一下自己接触负面消失的量,我觉得效果还是有的。

    所以快说,感谢GFW :)

    先来一篇最新的经济学人报道,Peak China? --China's economy will neither collapse nor overtake America's by much. That make the world safer.

    image

    我最初看到的版本是China's economy will neither collapse nor overtake America's by much. That make the world safer. 中国的经济既不会瞬间崩溃,也不会超过美国太多。这会让世界更安全。 但是在网页是:The country’s historic ascent is levelling off. That need not make it more dangerous 这个国家历史性的崛起正变得平缓,但这并不意味着它将变得更危险。

    image

    在过去四十年间,中国的崛起已成为世界的一个决定性特征。自1978年,中国决定改革开放以来,中国的GDP以令人眼花缭乱的年平均9%的速度快速增长。这使得惊人的8亿中国公民摆脱了贫困。今天中国占据了全球产出的五分之一。其庞大的市场和制造基地已经重塑了全球经济。过去十年一直统治中国的xxx希望利用中国日益增长的影响力来重塑地缘政治秩序。

    image

    只有一个问题:中国的快速崛起正在放缓。xxx先生承诺在未来几十年实现“伟大复兴”,但现在中国的经济正在经历一种更加平淡的变化:巨大的成熟。 十年前,预测人士预测中国的GDP在中期21世纪时将会超过美国(按市场汇率计算),并保持领先地位,但现在正在发生一种远不如此戏剧性的转变,导致接近经济平衡。

    经济轨迹的这种变化是中国观察家之间激烈辩论的主题(请参阅我们的专题简报)。他们再次思考中国的影响力及其与美国的竞争关系。一个观点认为,相对于其竞争对手,中国的实力将会下降,这可能会让其变得更加危险。在去年出版的一本书中,学者哈尔·布兰兹和迈克尔·贝克利发表了一个被称为“中国顶峰”的理论。他们认为,中国面临着衰败,并已经到达了“足够强大,可以积极破坏现有秩序,但正在失去时间在自己这边的信心”的地步。他们的研究以一场想象中的针对台湾的战争开篇。

    image

    “中国顶峰”论点的基础是准确观察到某些顺风变成了逆风,阻碍了中国的进步。第一个大的逆风来自人口。中国的劳动年龄人口已经下降了约十年。去年,中国的总人口达到峰值,印度现在已经超过了中国。中国共产党试图说服中国夫妇多生孩子的努力没有奏效。因此,联合国认为,到本世纪中叶,中国的劳动年龄人口可能会下降超过四分之一。向曾经填满“世界工厂”的大量年轻工人告别吧。

    增加劳动力是经济增长的一种方式。另一种方式是更好地利用现有人口资源。但是,中国的第二个问题是,劳动力的产出不太可能像预测人士曾经希望的那样快速增长。更多的资源将用于养老。数十年来,中国建造房屋、道路和铁路,但是基础设施的支出面临着递减回报。xxx专制倾向使得当地企业家更加紧张,这可能会长期减少中国的创新能力。地缘政治紧张局势使得外国企业渴望将供应链多样化远离中国。美国希望削弱中国在某些“基础”技术方面的能力。其对向中国企业出口某些半导体和机器的禁令预计将对中国的GDP造成影响。

    image

    所有这些都抑制了对中国经济潜力的长期预测。十二年前,高盛认为中国的GDP将在2026年超过美国,并在本世纪中叶增长超过50%。去年,高盛修正了这一预测,称中国只会在2035年超过美国,并且峰值将少于15%。其他机构更加悲观。研究公司Capital Economics认为,中国的经济永远不会成为顶尖大国,而是在2035年达到美国规模的90%。当然,这些预测是不确定的。但是,最有可能的预测似乎都认为,在未来十年左右,中国和美国将接近经济平等,并且将在未来几十年保持这种状态。

    image

    中国将如何应对这种平缓的经济轨迹呢?在最乐观的情况下,xxx将采取措施促进生产率增长。由于人均收入不到美国的一半,中国人民将渴望提高他们的生活水平。他可以尝试通过让中国经济的“动物精神”更加自由地发挥作用,让人们拥有更多的流动自由来释放增长潜力【补充说明:其中,“动物精神”是指经济中的创新和创业精神,通过给予更多的自由和灵活性,可以激发人们的创造力和努力工作的热情,从而促进经济增长。】。中国政府可以停止依赖浪费资金的国有银行和企业来分配资金。它可以采取更加温和的对外姿态,缓解地缘政治紧张局势并向企业保证在中国开展业务是安全的。这样的改革最终可能会使中国更强大,但同时也会希望它变得更少侵略性。问题是,现年69岁的xxx现在可能是中国的终身统治者,他没有表现出接受经济或政治自由化的迹象。

    image

    悲观主义者担心,在中国的经济轨迹失速时,中国会变得更加好斗。有足够的理由认为这种情况是有可能发生的。xxx煽动的危险的民族主义,以说服普通中国人,批评他的统治者就是批评中国本身。据预测,中国的军事预算将与国内生产总值同比增长超过7%。中国的军事支出虽然低于美国,但仍在追赶。到2030年,中国的海军规模可能比美国大50%,到2035年,其核武库将增长近4倍。Brands和Beckley写道:“北京的经济实力可能已经达到峰值,但没有其他国家能够像中国一样具有全球挑战美国的能力。”

    然而,最有可能的情况是处于中间地带。过去二十年中国崛起的速度一直是不稳定的,迫使全球经济和地缘政治秩序做出调整。这一阶段的强烈经济扰动现在可能已经结束。尽管中国经济存在各种问题,但它不太可能萎缩,引发Brands和Beckley担心的那种虚无主义和破坏性思维。xxx的行为难以预测,但中国的长期经济前景既非胜利也非灾难。面对几十年来与美国接近的地位,中国有充分的理由避免骄傲自大以及侵略台湾(AI翻译注:在中国我们应该叫收复台湾)。一个关键的问题是超级大国是否能够避免误读彼此的意图,从而不会陷入冲突。下周我们将研究美国的全球领导地位以及它应该如何应对未来超级大国平衡时代的中国。

    ]]>
    2023-05-12T17:09:15+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/14实时聊天应用开发记录2025-07-16T14:22:12.735700+00:00又开新坑,视频全程只需要8小时,基于nextjs开发的实时在线聊天的软件。

    目前进度,完成了part1部分,跟着完成了第一个组件button的设置,现在开始注册数据库。

    遇到的第一个难题,没有下载yarn,通过npm运行的项目,命令为npm run dev 跑起来的项目。

    ]]>
    2023-05-11T15:05:10+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/13生活需要cookie2025-07-16T14:22:12.934292+00:00生活需要cookie

    b395e8adcbff239705fd2680ecfb8bc

    "你与自己的关系是最复杂的,因为你不能离开你,你必须原谅你的每一个错误,你必须处理好你的,每一个缺点,你必须找到爱你的方式,即使你讨厌你。

    似乎又消失了好几天,上次更新博客,准备搞点什么东西是什么时候来着?

    是晚上突然又打了鸡血,想根据大佬得项目,跑一跑自己得扇贝打卡程序,根据每天背得单词打卡,发送到telegram上,调用chatgpt自动生成一个小故事。需要用到github中的action中的指令设置。研究了一晚上,大概明白了只需要改几个地方,把自己的api设置好就能跑起来。但最后还是没有成功,第二天后便再也没有了性质继续这个项目.....(后来欧陆词典推出了这个功能)

    那上上次打鸡血又是什么时候来着?

    是第一次搞这个博客,兴冲冲的做自己的博客首页,然后像松鼠一样添加各种资源汇总,放到博客页。包括南大的操作系统课,cs61a课、计算机组成原理课,但坚持了几天之后,却也坚持不下去了。于是,进而逃避打开这个博客。

    似乎在往前回忆,还会想起一波又一波的失败,不敢再回忆了,自22年退学之后,生活彷佛就是这样过来的了,被一次又一次半途而废的失败堆叠。

    事情总是这样发展,靡不有初,鲜克有终。

    一开始总是壮志踌躇,但似乎总是莫名其妙的因为各种原因进行不下去.....

    —————————————————————————————————————————— 打住,打住,现在还不是回忆和丧的时候,等将来某一天在知乎上那个更桑的回答下回忆凄惨往事就好了。

    大概,今天心情还不算差,简单总结,继续前进好了。

    过去这段时间,几次想写的什么,但又因为种种的情绪未能动笔,当时的心境恐怕已经不同了。

                                                                                       (一)
    

    ** 在这个没有希望的年代里,让自己快乐起来,大概也是很了不起的事情吧。**

    又要说从前了,在我大四备考研究生的时候,我相信未来,相信希望的,那时候我以为自己每天起早贪黑的复习,备考并不算幸福的,那时我眼中的幸福是考上研究生。

    但现在我最怀念那时候了,那时候每天很累,压力也算大,但我每天过得很充实,相信未来,相信政治书上背的一切,相信自己会逆天改命,和书中描绘的理想社会,相信未来就像大海一样,那时我是最勇敢的水手,渴望早日出海,与风暴共舞。那时候几乎每天的时间都用到复习,同时一天天的数着日子,做着计划,生怕时间不够。

    但在我退学、信念崩塌之后的这两年里,我的时间就像大海一样宽广了,但我似乎成了得了大海恐惧症的人,我害怕面对时间,我没有计划,我不相信有什么是值得“相信”的了,我怀疑一切。

    或许,我后来开始把所有自己壮志酬躇的想法都搞砸也是因为我这自我预设的结果,我内心深处大厦倒塌之后,失去了重建大厦的信心吗?进而我潜移默化的搞砸一切。

    嗯,我也说不清楚了。

    人总得相信点什么东西,才能驱动着自己去做事吧。我相信是这样的,毕竟就算是驴,也得前面挂上胡萝卜棒,让它一步一步的往前走,要不然就给它蒙上眼罩,让它安安心心的拉磨。

    我猜,被蒙上眼睛的驴拉磨的时候,想的肯定也不是拉磨的事。

    我也在寻找一个让我再次相信的胡萝卜棒,或者蒙住眼的眼罩吧。

    但找不到又怎么办?

    有些时候得接受另一种生活,另一种状态了,just have fun,enjoy or waste life?

    骑车很快乐,打游戏也很快乐,在赛博空间里寻找一丝慰藉也好,比起在无尽的时间荒漠面前看不到希望而内耗,让自己不那么难过快乐一点也算说的过去吧。

    毕竟,life is so fucking hard,不要折磨自己了,生活需要一点cookie。 e0b2dabc8ed69fa6b0a46e8c6d83d82

    骑车去公园的时候拍的

    (二)

    我需要生活中的Cookie,记录下我的生活切片瞬间,我写下的计划 ,我的情绪,我的进步,我要完成的事情。

    Cookie 是一个小文件,存储在用户计算机上,存储着用户在访问某个网站时的信息和偏好设置。这些信息可以帮助网站记住用户的登录状态、购物车内容、浏览历史等。因此,当用户再次访问该网站时,网站可以使用之前保存的 Cookie 来提供更好的用户体验。

    我需要我的Cookie,记录下我的”访问状态“,以便下次继续工作。

    (搞复杂了!突然想起我又想起一个这么棒的双关语,而且是我自己完全原创的,哈哈哈哈哈。)

    今天一个感悟还是生活需要不断的正反馈的,对于我来说,在上课能听懂的时候(比如今天的计算机网络),就会有好的反馈,获得cookie,人会正向一点。在上JavaEE的时候,能在老师的指导下顺利敲出代码,以及能看懂一些报错信息,自己完成debug的过程,也是有实实在在的正反馈的,有成就感做下去这件事情,反而不会想太多的事情。

    同时,与人接触,帮助别人的过程里,也会有更多的反馈让我感觉到正向的力量。或许这可能也是我最近一个人所以才emo的原因?

    这时候,对于未来的担忧也觉得没什么,也不会放在心上了。

    反而,当一个人听不懂课,或者大段时间浪费在短视频、twitter上时,各种焦虑的事情汇总起来更让人焦虑了。(失业、战争、各种事情让人失去希望,什么也不想干,只想继续刷焦虑的消息.....)

    懂了,或许该卸载掉让人焦虑的信息源了,看多了除了让自己一遍一遍的反复失望外,获取的有效信息并没有多少。

    就到这里吧,行动起来。

    2023.5.10

    ]]>
    2023-05-10T14:18:09+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/12《一个帖子解决所有的英语学习问题》2025-07-16T14:22:13.163769+00:00来自我之前教培公司的教学专家的总结,借花献佛: 语言是一种能量,人体震动发生基于某频段的能量,只要你和它同频就能接受到。问题是你的十几年教育,学习的都是语言的影子,一种符号文字。 你需要把这个符号文字用大脑重新解码加工成语音,重新大脑里复现它的震动。这个还原的过程会有无数的偏差,和语言的本质离的太远,这是我们苦苦挣扎于英语学习,难以取得进步的原因。

    1.语言是什么? dog dog dog, 语言学家Steven Pinker 说这个单词看起来不像一条狗,读起来也不是汪汪汪,但是还是代表了狗的意思。 你给小孩指着一条🐶说,this is a dog . 然后这条狗冲过来时候,你给孩子说,stay away from the dog. 下一次门前经过一条黄色的🐶, 你指着那条🐶,说this is a yellow ______ 小孩就会嘟囔出dog, 你说Stay ____ ,小孩就会说出Stay away。 很神奇吗?这是人的大脑🧠本能,经过一定的可理解的,受众参与的重复之后,人脑是可以自动习得语言的,孩子直到上小学或者幼儿园才知道 d + o + g = dog = 🐶。

    1. 中国人学英语的困境在哪里? 因为我们是非母语者, 我们已经建立了狗=🐶这个符号链接, 所以我们学习dog之后,是先认识了 d - o -g dog, dog=狗=🐶。 先拼写了三个毫无关系的字母,组成了一个和狗又毫无关系的发音/dɔɡ/。

    2. 通过符号学建立的联系有什么问题? 举个例子, doggy bag, 和dog-eared 这两个词,你知道什么意思吗? 因为你已经把dog doggy对应成中文符号 狗了,所以你自然的就以为这两个词语是doggy-bag狗袋子, dog-eared 狗耳朵。而实际上doggy-bag说的是在餐厅时候打包的袋子。dog-eared的形容的是一本书被翻的很旧。这个时候你就傻眼了吧? 再举个例子: 你把party这个词语对应的学习过程中记忆成了party=派对, 例如birthday party =生日派对。当你第一次接触到party也可以代表政党,别人问你“Are you a party member 你是党员吗?” 你说哎呀,我不是啦,我没有参加什么派对。闹完这个笑话之后,你去订餐让餐厅预留你一个4人座位,服务员说“So, party for 4? 所以是一张四人位 是吗?” 你回答,“不是啦,我们不是办party,我们就是四个人吃饭。 No we are not going to have a party, we just eat” 这个时候又闹了第二个笑话。所以你明白了吗?通过符号建立的语言链接,失去了语言的宽广性。

    4.真正的语言像大海一样宽广,在不同的语境中有不同的意思,通过背单词,背单词,背单词这样的方式去企图掌握语言。就像是希望今天收集一瓢水,明天收集一瓢水一样。永远在学习的路上,又总感觉到不了彼岸。你是不是有那种坚持打卡背单词好几年,还不能听懂外语新闻,美剧,不能开口流利交流的朋友圈努力大神呢?

    5.非母语者还有救吗? 当然有,非常多的非母语者熟练掌握了英文的听说读写。但是他们无一例外的都是在comprehensive input 可理解输入的不断灌输下,大量的接收了英文语料。也许他们自己也不知道从何时开始,看着看着美剧,就完全懂里面说什么了。看着看着新闻报刊,小说,不知不觉就懂里面在写什么了。这个就是多次曝光理论。一个语言因素,12次左右的文章中,听力素材中曝光,在你的可理解范围内的句子或者视频里。你就可以自然习得它。

    6.怎么做? 如果你想达到10000个主动词汇左右,需要完成大约100万字的阅读和听力练习。这听起来很难。其实分解到每一天只需要30分钟左右的可理解素材的输入,30分钟左右你感兴趣的可理解范围的视频或者语音输入。坚持1年左右就可以达成。

    7.我从哪里找这些素材? 找自己喜欢的,烂熟于心的中文小说的对应英文版,找你喜欢的动画片,美剧,在熟读字幕文字后,脱离文字来看。在你不太累又放松,不抗拒的情况下,去感受它,去吸收它。记住语言是一种能量,是一种力量,是人人都可以自然习得,而不是你需要很痛苦去记忆的符号。当你看到abandon的时候,脑海里是被遗弃荒野的婴儿,是废弃公路上的商店,是海边搁浅的破船,是被废除的法令条文,而不是字典里 abandon=放弃。 你就在习得语言上进了一步。

    8.那我的口语怎么办呢? 参照台湾大学史嘉琳的回声学习法 echo method. 你要知道,你之所以读的不对,发音不对。是因为你的大脑不知道哪个读音是对的。大脑需要回声来确认一个语音。所以当你听到一个正确的英语语句之后,按一下播放的暂停⏸️键,让语音在大脑中回荡,然后大声的复现你脑海里的那个声音。素材越简单,越好理解越好,最好是你完全能听懂的简单对话素材。这样训练上1-2个月,你自然大脑知道,什么是正确的语音。

    来源:yiqifacai.eth image

    视频:如何永远学会一个单词?

    ]]>
    2023-04-28T11:52:45+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/11暂未成功的扇贝背单词项目2025-07-16T14:22:13.362733+00:00i.aichat.la

    借助ai搞了一晚上,目前暂未成功,但是大概搞清楚了路子:

    只需要修改自己setting中的四个secret,然后就可以了。

    目前出现过的错误,cookie获取错了;

    image

    以及action中没有打开,上面两个都解决了。

    目前显示发送成功,但是打卡后,实现不了效果。

    image

    image

    ]]>
    2023-04-27T15:47:40+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/10抢不到回家车票的概率是2025-07-16T14:22:13.593783+00:00奶奶家的小狗在撒欢 爷爷坐在沙发上看着一家人忙 客厅里灯火通明 爸爸在厨房 妈妈在端菜 我拿着手机想把这一刻永远留住 可手机怎么也没法把爷爷录进来

    我醒了 我接连订了两张的候补车票 百度说候补成功的概率在80% 这一次我相信它的话

    ]]>
    2023-04-26T15:00:33+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/9当下一次迷路的时候,就回来看看2025-07-16T14:22:13.810922+00:00现在是半夜的0:55分,应该睡了,明天周三,满课,但是我觉得

    ]]>
    2023-04-26T01:07:28+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/8奶奶家的小狗与生日聚餐2025-07-16T14:22:14.334954+00:00在奶奶家,准确说是三叔家。其实是奶奶给三叔盖的,我小时候有一段时间是奶奶带的,住在那个家里,那时候三叔在山西,直到奶奶奶奶六十岁三叔决定带着山西的三婶和妹妹回来,那里又成了三叔家。

    过生日的喜庆时候,老爸在厨房做饭,我带小狗出去玩,刚回来。

    那是一只很小的狗,一看就是聪明的小狗,但是一跟它出去,它就往胡同深处跑,旁边有两只大狗在虎视眈眈的巡逻他们的地盘。我那只小狗恐怕凶多吉少啊,小狗一下子跑出去l,我离得不算远,但是眼睛往那个地方看去,总是灰蒙蒙的,一片一片的,总感觉眼镜擦不干净。

    两个大狗一只盯着排水管道,不断的闻啊闻,我在不算很远也不敢靠太近的地方,着急的喊小狗的名字。 我心里既有种小狗已经被大狗咬死了或者被堵在排水道里出不来了的担心,又隐隐有一丝希望,相信小狗很聪明,一会就自己回家了。

    我稀里糊涂的回三叔家了,菜还在做着,我在院子里往客厅瞅一眼,有几个已经摆在桌子上了,依惯例,还得十几个。

    我跟我妈说起小狗的事情,正说着,院子里看见一直小狗,太小了,全身加起来也就我一只手那么大。走路的人要是不看路,就担心它被人一脚踩下去。

    我过去摸了摸它,也不确定是不是我刚刚带出去的那只狗了,毕竟它怎么这么小,这么柔弱。它怎么从刚刚那 两只大狗哪里逃出来?

    又转眼一看,走廊的一个角落里,又有一窝大概6、7只跟小老鼠一样的猫,黑白相间的很是可爱。

    我轻轻拿起一只看着,说真好看啊,哪来的这么多小猫小狗的啊?

    我妈难得的也对这些小猫很感兴趣,说,这是第六十窝,咱家也养一窝.....

    “啊,真的吗,你不是挺爱干净的嘛,怎么也想养这个了?”我既兴奋又有些不解的问我妈。

    “咱不养这个猫、狗的,拉屎的太不干净了,咱弄个那个"*&#@"回家。"我妈回复道。

    我有一点点的失落,又早就习惯了我妈不养猫狗的习惯,我也觉得怎么可能轻易就养呢。

    菜上齐了,客厅里大灯都打开了,照的屋子里的人也跟着精神起来了。我看大家都带着一点高兴的心情,大概是难得大家坐在一起团圆吃饭吧。在我上大学一年只有寒暑假才能回家后,我也是愈来愈珍惜这样的时光了,借着给爷爷过生日大家聚在一起吃饭喝酒聊天确实应该高兴。

    我瞥了一眼坐在沙发上的爷爷和老奶奶(爷爷的母亲,我叫老奶奶),老奶奶戴着生日蛋糕里送的那个纸做的帽子,笑着看着我们大家忙碌的身影。看到沙发上这一幕,我心里有点疑惑。

    一会桌子上菜都端上桌了,大家都落座后。看着一桌的美食,和 满满的一屋子人,我提议咱们录个视频吧。 我先拿着手机绕着大桌子录菜,可是录到手机里才发现,真奇怪,今天怎么就6个菜,还稀稀疏疏的有两个汤,一屋子十几个人怎么能够呢?平时过生日也够是做十几个的啊。 又接着录人,镜头转着圈录吧,可是录到沙发上时,奶奶旁边的爷爷怎么一下子在镜头里慢慢的消失了? 不是凭空的消失,是镜头一晃过去,人就消失了,镜头一移开,人坐在沙发上。

    我有点慌了,一面跟家人说,一面检查我的手机。我又一遍一遍的录了几个视频,打开手机看是不是保存了,一遍跟我爸妈,跟旁边的人讲这个情况。

    周围依然是欢声笑语,大家听到了我的话,但是又都没有任何反应。

    我突然惊醒了。

    奶奶家的小狗在吃东西时被邻居家的大猫一口咬住头给咬死了,奶奶跟我说起时,心疼的掉了眼泪,说再也不养了,从此奶奶家就再也没了小猫小狗。

    而陪爷爷坐在沙发上的老人,爷爷的母亲,爸爸的奶奶,我的老奶奶,早在2012年麦收时就去世了。

    而在我相机里怎么也录不进去的爷爷,在疫情爆发的前夕,也已经离世了。

                                                                                                                                                                        ---写于2023.4.25梦
    
    ]]>
    2023-04-25T09:52:57+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/7未被定义的2025-07-16T14:22:14.594395+00:00image image image image image

    ]]>
    2023-04-24T15:27:09+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/6在今天,不断看不到希望的年轻人2025-07-16T14:22:14.782802+00:009fc0c0ed34b6ff9f458124a7b7e7d02

    又有三个年轻人自杀了,其实何止是三个呢,在网络的各个角落里,都充斥着大量的失落、迷茫、恐慌、焦虑。墙内简中是各种绝望,墙外则是战争风雨欲来的消息。

    说到风雨欲来的战争,特意买了《昭和上班族》来看,但对于一个已经生活在又一个昭和年代的人来说,没有逃离日本之前,看的愈多,似乎更让人失望。

    起风了,唯有努力生存。

    ]]>
    2023-04-24T05:02:07+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/5SICP 课程笔记2025-07-16T14:22:15.002113+00:00

    听说人生苦短,请用python。 刚玩git把写了两天的jsp代码搞没了,就来玩玩python吧。

    完成了lab00 配好了环境

    image

    ]]>
    2023-04-23T14:34:39+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/4原来都得经过“折磨自己、吃苦,崩溃,bug调不出来”的过程2025-07-16T14:22:15.227420+00:00今天看偶然看到南大的计算机操作系统以及PA的课,有一点新的感触。

    对之前看到的一句话有了更深的理解:

    暂时没找到,大概是好的大学学习≠轻松≠简单

    其次是,调整面对bug及困难的心态。 image image

    该找点苦头来吃:

    image

    PA课程链接 sicp

    ]]>
    2023-04-21T17:34:49+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/3南京大学操作系统学习笔记2025-07-16T14:22:15.518557+00:00第一节 开坑

    课程主页

    学任何东西的三个维度:Why、What、How

    Why ?

    为什么要学“任何东西”?

    为什么学习操作系统?

    image

    == 只要你学完了操作系统,你能写出任何程序。==

    ##what?

    Operating System: A body of software, in fact, that is responsible for making it easy to run programs (even allowing you to seemingly run many at the same time), allowing programs to share memory, enabling programs to interact with devices, and other fun stuff like that. (OSTEP)

    image sofeware

    os

    hardware

    两者之间就是操作系统

    前导课程:数字逻辑电路 image

    • 目标是能够根据需求实现功能*

    面对的是一个开放的世界,重要的是提出问题,比起看书学习,学会问问题更重要。

    image

    ##how? image

    学习应该是一件很快乐的事

    image

    image image

    image

    ]]>
    2023-04-21T16:08:45+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/2JSP学习笔记2025-07-16T14:22:15.737734+00:001.如何配环境

    “你是免费的还是付费的?” ---如何用社区版IntelliJ IDEA创建Servlet项目

    当我开始认真的读文档自己学jsp时,才想起了Javaweb课上老师面对我们各种各异的报错,重复问出的一句话:“你是免费的还是付费的?”

    课上稀里糊涂的配置过去,下次上课代码出不来时,老师依然重复同样的问题。直到我现在从头开始建一个Servlet项目时,我才意识到问题的严重性:

    Servlet项目本质上不能在inteilj community edit 版(也就是免费版)上创建啊!

    image

    image | 来自官网的直接否定

    所以问题的本质是:免费的就是不能直接创建servlet项目,要么选择付费版的,要么选择其他编译器:比如Eclipse

    但是总有人,因为各种原因(我主要是没钱)就是想用免费版的创建Servlet项目,那也没问题

    image

    英文文档没找到好的解决办法,真编程还得是中文,英文也就图一乐

    找到一篇很详细的中文博客:[IDEA Community(社区版)+maven创建Java web项目并配置Tomcat全过程

    注意的是,在创建项目时,我的intellij 上不能直接创建meaven项目,而是左侧的Maven Archetype,右边选择时,与参考博客中不同的是只有一个webapp可选,选这个就可以,其余步骤均参考上面博客就可以。 image

    创建成功之后,添加selvlet类,点击运行后,经典404 检查后发现是web.xml出错, image

    这里需要对应。

    当然在实验课上也出现过很多次经典404,但当时纯属黑盒调试,重启大法换电脑,纯纯玄学调试,不知道哪里错了:)

    image

    至此,第一部分创建项目到这里结束。但似乎还不算开始,一套操作猛如虎,一看进度刚配好环境:)

    ]]>
    2023-04-21T08:10:32+00:00
    https://github.com/QiYongchuan/MyGitBlog/issues/1第一篇:从Github上开始写日记,记录,学习2025-07-16T14:22:16.024131+00:00print("Hello,World!")

    今天是2023年的4月20日,周四的晚上,不想太多的东西,仅仅是记录的开始,把思绪停在文字上,记录,与自己对话。 写下计划,写下想法,让混乱或疯狂的想法,以文字的形式记录整理下来。

    聊聊现状

    现在是0:23分,不应该熬夜的,但莫名有点兴奋与激动,睡不着,就随便写写。

    为什么兴奋和激动呢?

    1.开始尝试用github写博客了吗? 可是之前用hexo已经建立过博客了,但是热度大概持续了几个星期,文章更新了几篇,后来最大的乐趣是隔一段时间换换主题,这次会不会也是同样几天的热度呢? 我说不好,但希望能坚持写下去吧。

    相比之下,在github上样式更单一了,完全是纯文字markdown语法了,不知道会更容易动力不足还是能找到更纯粹的写作动力,不得而知了。

    2.又或许是自己今天上传了[假装]搞定的markdown项目?

    虽然经历了不可思议的艰难过程(前前后后缝缝补补又放弃了那么多次),但最终上传到github仓库,然后写了一段阶段性的总结,最后感觉还不错。

    3.”存在主义“、活在当下,不断学习

    我不知道我理解的存在主义是不是其真正的含义。 因为 各种原因,我总是陷入虚无主义中,往往想事情陷入没有意义的虚无里,看不到任何的希望,于是做各种事情就觉得没有意义。

    以前因为有梦想,有希望,所以做事情觉得有意义,不会刻意去想为什么要做这个事情的意义。

    但梦想破灭之后的一段时间,看不到希望,看各种事情便没了意义,更多想的是做这种事有什么意思啊,没意思,写代码好多bug没意思,学这个没意思,写东西也没意思,反正没有希望,躺平吧。

    可是躺多了,最后什么都没意思了。

    慢慢我开始想的少一点了,先做一下试试吧,做了再说。我得说服自己,做完了就感受到意思了,不行做两个番茄钟。

    意义就在事情的本身,我在写,我在记录,我在生活,我在做事。

    So mang intersting courses waiting me!

    ]]>
    2023-04-20T14:27:28+00:00