暑期2021优秀学生专访:热衷实践的“开源老将”——张奇夫

原创
01/07 14:47
阅读数 4K

开源软件供应链点亮计划-暑期 2021已经收官,在为期三个月的开源实践中,我们不仅收获了529个结项项目,还收获了各位参与项目的宝藏同学们。为了进一步巩固这些新生的开源力量,组委会特邀请指导委员会老师从4个方向评选出了具有代表性的20位优秀学生。

本次采访,我们邀请最佳质量奖获奖者张奇夫,分享自己的开源故事和活动感悟。

 

优秀学生迷你简历

姓名:张奇夫

性别:男

年龄:20岁

学校:西安电子科技大学

兴趣爱好:看动漫玩游戏 自娱自乐写一些小工具

 

-- 自我介绍 --

1、首先,请简单介绍一下自己

大家好,这里是Apache553,或者在现实中被称为张奇夫。现在仍然在西安电子科技大学就读本科。主要使用的语言是c++,兴趣摇摆不定。鄙人才疏学浅,还请多多指教。

2、最开始是在哪里了解到开源的,是什么让你决定参与开源?

最开始是初中的时候想自制一个用来看小说的设备(笑),当时了解到了树莓派这一神奇的设备,就决定用树莓派来做,最后我度过了一个相对不那么无聊的初中时光。在做的过程中,由于很多相关的资料都在Github上,就逐渐了解到了开源这回事。参与的话,感觉就很顺其自然地,遇到有别人没发现过的问题就去issue问一下之类的,自己觉得能修然后还感觉上修好了就提个pr,就参与进去了吧。

3、在GitHub上看到,2015年你就已经提过issue,那时你应该年纪不大,可以简单介绍一下这个项目吗?最后issue得到解决了吗?对你有什么影响吗?

当时是想试着做一个l4d2的mod,要用到一个在Maya上导入导出Source引擎模型的插件,在我电脑上始终工作不对劲。提了issue过后作者说是我系统Locale的问题,改了过后确实能工作了。对我最大的影响就是切身体验到了英语教育的重要性了吧(笑),到现在也许其他科目会摆烂,但是英语课都还比较认真对待了。

4、可以简单介绍一下你第一次深入参与开源的项目吗?

是一个处理ass字幕的库叫libass,很多开源的视频播放器和库都对他有依赖。当时是因为我电脑上由于各种原因装了一堆字体,导致播放视频的时候要卡很长一段时间才能开始,经过一些测试发现问题出在这个库初始化的时候把整个Windows系统中安装所有字体枚举了一遍,非常低效。然后我就凭着我半吊子的水平上去糊了一个patch开了个issue,和维护项目的人交流和写代码做试验,虽然过程中由于种种原因一度搞坏了原有的功能,不过到最后还是把问题解决了。另外还在这个过程中发现了另一个没有关系的问题,帮助维护者做了下测试。初衷是想愉快看片,到最后对一个开源库的改进做出了一点贡献,这也算是使用开源软件的魅力所在吧。

-- 关于暑期2021 --

5、请简单介绍一下暑期2021中你的开源项目

暑期2021我的项目是要实现一个windows上的通用ssh agent协议翻译层。因为windows有不少ssh客户端和agent的实现存在,但是他们的client和agent通信用的机制几乎是各家有一套,如果想要混合使用就不得不重复配置并运行多个ssh agent,使用和管理上都有些不便。这个项目可以像反向代理一样工作,将某一个agent所使用的通信协议翻译为其他的client/agent实现所使用的协议,并能够让其他client可以使用,能够减少管理和使用上的不便。并在此之外有比如聚合多个agent和对于wsl环境的支持之类的增强功能。

6、在项目进行中遇到的印象最深刻的困难是什么?如何解决的?有什么收获吗?

是当时处理WSL支持的时候遇到问题:Windows这边没有公开地提供设置WSL内的POSIX权限的API,并且在WSL下设置drvfs文件或者目录权限的时候需要额外的配置,在使用的时候为确保连接到agent的socket不被其他人访问到会需要额外的手工操作很不方便。最后是在反复搜索msdn和Github过后找到了一些没有直接开放的API,了解到了drvfs上wsl内权限信息的存储方式,最后实现了相关信息的写入并测试成功。主要的收获是对于windows内部的实现又实际了解了一点吧,找到的API其实是在msdn的驱动开发文档那一块找到的,wsl这一套文件系统依赖于好几个我听都没听过的ntfs特性,后来又去找了一下相关博客来看,很有收获。

7、在项目进行中,社区和导师对你的评价都很高,说你积极主动,对项目有很大的贡献,可以分享一下经验吗?

这个项目的内容和我以前的一个想法是很类似的,所以本身就对这个项目比较有兴趣,脑子里也有一定的想法,要解决什么问题和要怎么做比较清晰,就比较投入。

8、之后会继续丰富这次活动的文档和代码吗?对这个项目的内容有更高的期待和计划吗?

就现在的情况而言我觉得已经比较完善了,所以除了修理发现的bug和实现一些未来可能被提出需要的新功能以外应该不会有什么变动了。如果大家对于它有什么意见或者建议也请务必反馈至我,我会尽快采取相应的行动。

9、暑期2021活动已经不是你第一次参与开源了,通过这次活动你对开源有什么新的理解?

开源这一模式对于学习者来说实在是有很大的助益,项目中有好几个功能的实现都离不开其他开源项目的思路和实现,而我也能从中学习到新的知识,并且也许在未来会有某人也能从我的代码中获得些许的启发。我想这可能就是开源精神的精髓吧。

-- 关于开源和学习 --

10、对于提高代码质量、可读性和文章的完整性,有什么可以分享的学习方法吗?

在这方面我自以为还做的不是很好,不过我认为要提高这方面的能力可以多看一些别人写的代码和文档从中学习,可能的话在造自己的轮子的时候能够用上,然后再找两个好基友一起看一下有没有什么问题,应该是不错的办法吧。

展开阅读全文
加载中

作者的其它热门文章

打赏
1
0 收藏
分享
打赏
0 评论
0 收藏
1
分享
返回顶部
顶部