首页

  • 软件所实习总结

    离我第一次的实习结束已经有两个月,按道理这篇文章应该早就写好了才对,但我总是拖延,加上平时大大小小的事情,所以现在才开始动笔。

    这次实习的开始,来自自己对于未来的迷茫,害怕自己到了明年暑期找不到实习,害怕自己秋招没工作之类的,总之就是想暑假找些事情做。于是在四月多随便投简历,但是没有结果,自己实际上也不是很积极。

    到了五月,感觉已经有点赶了,毕竟六月中旬暑假就要开始了,于是想着小厂也行,最终在boss直聘上投了一个中科院软件所的岗位,经过面试,六月初,我的实习生活正式开始了。

    首先要说,我自己在投简历这方面依然不是很积极,只投了十几个岗位,但说实话,没有百来个投递,都说不上海投。所以说,这一点需要后续的自己注意。

    实习的主要工作是开发一个elf的压缩工具,一开始我并没有感觉,但是慢慢开发下来,我感觉这似乎是一个小型的科研项目,mentor想让我开展初步的探索,经过三个多月,我也许算是开发出了一个勉强可用的版本,能适配一部分的开源软件。虽然压缩率一般,但至少算得上能用。

    开发给我积累到的技术经验包括但不限于:

    AI,hh,毋庸置疑,帮助是各种层面的,规划代码框架,查找项目已有实现等。我在项目开始对于elf压缩这个课题可以说是一窍不通,但是经过一两周的和AI的合作,也是慢慢的了解了相关的领域。

    扒源码,由于这个项目涉及压缩算法,linux系统,gcc等各种方面的知识,所以我不止一次去扒相应的源码,尝试解决问题。

    gdb分析,make等,这些是一些很杂的知识,但通过实际接手开发一个项目,也算是逐渐了解了。

    水日报,hh,mentor要求每天提交一份工作日报,但是这也太搞了,有时候一天下来,卡在一个问题上,只能说什么也写不出来。所以就需要一定的办法水日报,问题分析几百字,贴上代码几百字,稀里糊涂凑够页数,又水了一天的工作,hh。不过如果要反思,这其实和我工作不太喜欢留痕有关,虽然一天debug未果,但期间的尝试和结果,也是可以及时记录的。

    除了技术方面的经验外,我觉得这次实习,与mentor的沟通也是需要我反思的。

    线上实习的缘故,我甚至没见过mentor的脸,我也只有面试的时候,开过一次摄像头给mentor看。所以导致三个月的开发下来,和mentor一直处于一种不怎么熟的状态。这其实也说不上好或坏,但是我觉得,对于以后,如果想要开发好一个的项目,团队沟通肯定是少不了的。这次实习由于我和mentor的沟通过少,导致很长一段时间都是我自己盲目开发,mentor也只是简单看我的日报(说实话,我不怎么认为只看日报能很好了解一个项目),最终项目的成果一般,也许有一定的原因。

    我自己的态度方面,由于我很长一段时间开发不是很上心,说不上热爱,也说不上摆烂,所以导致开发的一般,这可能是需要下次注意的一点,尽可能选择自己喜欢的,如果选定了,就不要老是态度消极(我承认自己一遇到问题就经常态度消极哈)。

    另外,通过慢慢的深入项目,我才慢慢了解到,这个项目是有一定的科研探索性质的,但我却没有看什么论文。如果以后我读研了,也许需要注意一下,需要看看相关的文章。

    软件所的老师整体来说还是挺好的,push的话,感觉不是很push,合同到期后,我由于开学,选择了离职,而mentor也没有说什么。更多的是我自己由于没见过面,项目不熟悉,时不时会产生一定的抗拒情绪罢了。薪资方面,对于我一个学生来说,也算是挺好的了。总体来说,我甚至不觉得自己最后的成果配得上这三个月我拿的薪资,hh。

    总之,对于自己的第一份实习,更多的意义在于给自己积累了一些经验,具体来说是:

    海投,面试什么的,多多益善,总之不要害怕,其实抛弃对于未知的恐惧后,会发现,自己什么也没失去。

    积极,如果已经选择了一份自己喜欢的项目,那就积极一点,开发一点东西,总还是有意思的。

    沟通,对于团队项目,需要多沟通,多沟通才能获取新视野,才能从自己从未想过的角度看问题。

    效率,有时候,自己专注一点,也许三四个小时能做完一天的工作,对于在线实习来说,这一点还是很有用的(线下也许不一定好用,毕竟越能干活,越有活干)。

    其他的实习期间的事情,也没有什么了。

    暑假大部分的时间待在学校,自己一个人白天去图书馆,晚上回宿舍,图书馆的人没有那么多,有些座位每天都是那些人,让人安心。日出日落,总觉得自己有收获。中午的时候,夏天的太阳热的发毒,我撑着伞,低着头,来往与十十和图书馆之间,经过藜照湖的转角时,总能看到地上的一句话,“爱是意义”,让人心中涌上暖意。

    而回到家的时光,虽然只有短短十来天,但每天白天都有事可做,晚上我或者熬夜做完,或者定一个凌晨三点多的闹钟,起来再做。我很喜欢晚上安静写代码的感觉,世界很静,自己很专注。

    希望这个暑假,这次实习,功利的说,能让自己有所进步,或者,文艺点说,能让自己有所成长。

  • wordpress的缩进方案

    由于wordpress的自带编辑器默认不支持首行缩进,而对于中文来说,我们较为习惯首行缩进,所以我们需要对应的设置一下。

    查询了相关的文章后,发现实际上简单的,对于我的这个“二零二五”的主题来说,只需要在设置的样式中找到“段落”中的高级选项,这里有明显的提示:

    添加您自己的CSS以定制段落区块的外观。您不需要包含CSS选择器,只需添加属性和值即可。

    所以我们只需要添加这一行内容:

    text-indent: 2em;

    保存后即可解决问题。

    不过这样带来的一个问题是,引用块内部的段落也会缩进,感觉也不美观,所以最后还是不了了之了,就这样吧。

  • wordpress的头像方案

    在控制台调整的时候,按下了F12,注意到了一个错误:

    GET https://secure.gravatar.com/avatar/5e2247c41356071807cf514474d7b83649e1514dfdc7496e103ca462ff9ecc84?s=26&d=mm&r=g net::ERR_CONNECTION_TIMED_OUT

    询问deepseek后,发现这实际上是因为wordpress默认会根据用户的邮箱,去Gravatar(一个把邮箱和头像对应起来的网站)尝试获取对应的头像,进而进行显示。

    而Gravatar往往会由于网络原因无法访问,且也不符合我们用户的习惯,所以我们可以选用Cravatar进行替代。

    使用Cravatar进行替代也很简单,在网站控制台安装对应的插件WPAvatar就可以了。

    由于Cravatar兼容Gravatar,且对于使用qq邮箱的用户,还可以对应显示qq头像,所以经过三级匹配(Cravatar头像->Gravatar头像->QQ头像)后,往往能得到一个较为合理的头像。

    虽然这个功能对我的网站没有什么大的帮助,但至少现在网页不会报什么乱七八糟的错误了,算是拯救强迫症了。

  • 域名的添加以及ssl证书的部署

    花了25大洋,买了一年的yuning.wang这个域名,蛮有意思的,拼音版的我的姓名。域名解析,dns添加什么的,腾讯云都处理好了。

    然后关于ssl证书,在腾讯云中申请下来之后,直接copilot几分钟就搞定了。

    让copilot写了个说明,内容涵盖了docker,ngink,ssl等各式各样的知识。只能说,在现在的ai时代,想要上手一个东西,在ai的帮助下真的可以做的非常快,也许真的应了jyy在课上讲的那句,ai缩小了我们和顶级人类的距离。

    不过虽说如此,我们还是得保持学习,不然如果对ai生成的内容没有辨别能力的话,依然无法让自己得到提升。

    下面是copilot写的help.md,我只保留了ssl更新的部分,毕竟如果全都丢上来,有向互联网倾泻垃圾的嫌疑。

    ### SSL证书更新(重要!)

    大部分免费SSL证书有效期只有90天,需要定期更新。

    #### 证书到期检查
    “`bash
    # 检查当前证书有效期
    openssl x509 -in /home/ubuntu/wordpress/ssl/yuning.wang_bundle.crt -text -noout | grep “Not After”

    # 在线检查(推荐)
    curl -I https://yuning.wang 2>/dev/null | head -1
    “`

    #### 手动更新流程(简单方法)

    **步骤1:准备新证书**
    “`bash
    # 创建临时目录存放新证书
    mkdir -p /home/ubuntu/new_ssl
    # 上传新的证书文件到该目录
    “`

    **步骤2:备份当前证书**
    “`bash
    # 备份现有证书(重要!)
    cp -r /home/ubuntu/wordpress/ssl /home/ubuntu/ssl_backup_$(date +%Y%m%d)
    “`

    **步骤3:验证新证书**
    “`bash
    # 验证证书格式
    openssl x509 -in /home/ubuntu/new_ssl/新证书名.crt -text -noout
    openssl rsa -in /home/ubuntu/new_ssl/新证书名.key -check

    # 验证证书和私钥是否匹配
    openssl x509 -noout -modulus -in /home/ubuntu/new_ssl/新证书名.crt | openssl md5
    openssl rsa -noout -modulus -in /home/ubuntu/new_ssl/新证书名.key | openssl md5
    # 两个输出应该相同
    “`

    **步骤4:更新证书文件**
    “`bash
    # 停止nginx容器
    cd /home/ubuntu/wordpress
    sudo docker-compose stop nginx

    # 替换证书文件
    cp /home/ubuntu/new_ssl/新证书名.crt /home/ubuntu/wordpress/ssl/yuning.wang_bundle.crt
    cp /home/ubuntu/new_ssl/新证书名.key /home/ubuntu/wordpress/ssl/yuning.wang.key

    # 设置正确权限
    chmod 644 /home/ubuntu/wordpress/ssl/yuning.wang_bundle.crt
    chmod 600 /home/ubuntu/wordpress/ssl/yuning.wang.key

    # 重启nginx容器
    sudo docker-compose start nginx
    “`

    **步骤5:测试新证书**
    “`bash
    # 等待容器启动
    sleep 5

    # 测试HTTPS连接
    curl -I https://yuning.wang

    # 检查新证书信息
    openssl s_client -connect yuning.wang:443 -servername yuning.wang /dev/null | openssl x509 -noout -dates
    “`