vlambda博客
学习文章列表

我在github上的一些贡献和交流

计算机技术相关系列短文,文不在长,在于精,点到即可,懂多少说多少,只希望每篇都能一杆子见底,希望帮到你,人生苦短,少走弯路


我没有像真正的那些大牛那样创建很多很有影响力的open source项目,只是部分参与了一些开源项目以及在某些项目上指出了问题,所以这里列出来,主要是为了自己的知识梳理,另外就是跟大家分享一下学习思考的过程


##0X01 Postgresql Server的bug

链接:
INOUT parameters not returned from stored procedures:

https://github.com/npgsql/npgsql/issues/2078


这个是我之前的一家公司在做从oracle到postgres迁移的时候,想尽力保持最小化改动,我们大量使用了存储过程,想在postgres这边也同样切换使用相应的存储过程,但是发现并没有得到我们想要的返回,由于我们使用的所谓driver是NPGSQL,所以我刚开始是怀疑是NPGSQL的问题,当然我不可能贸然直接问驱动作者,因为我另一个同事在github问作者,作者并没有太多理会,只是回答说为什么你们不用function?

所以我决定自己先验证清楚,于是我用了两天时间抓包分析,具体抓包分析过程我的博客中有讲过,这里只是大概说下,由于我发现使用有些PGSQL的client端连接程序可以获得返回值,所以就抓包跟通过NPGSQL的包进行对比分析,然后发现通过simple query的方式可以获取返回值,于是我修改了NPGSQL的源码并达到了我的目的;

然后我就在github上列出证据问作者,果然这次引起了作者的注意,回复说

作者还是推销了function,不过他已经发现了不对劲的地方,然后邮件联系了postgresql官方,后来证明果然是官方的一个bug,说新的版本已经修复了然后下一个版本会release,当然那时候我对安全领域其实知之甚少,所以那时我也不知道原来simple query是有安全问题的,所以最后还是被作者”鄙视“了一把,anyway,通过这个过程学到了很多东西,主要是动手抓包验证的整个过程很有意义


##0X02 微软官方文档关于正则讲解的错误

链接

https://github.com/dotnet/docs/issues/8216


我在github上的一些贡献和交流

这个是我在用到正则表达的时候,稍微深入学习了下backtracking的概念,然后看到了微软官方的这篇文档,虽然我是入门,但是阅读过程中根据思维逻辑感觉作者写的不太对,为了验证我花了点时间用工具验证,果然发现作者的陈述是错误的,估计作者写的时候也是根据感觉来的,没有真正验证过,我的经验是不要随便相信任何所谓官方文档,相信自己的思维判断,不是自己没有搞明白就是看得信息有问题,don't trust, verify!


##0X03 最后我贡献的一个区块链小工具

https://github.com/lyhistory/TokenScriptTool


这个工具我就不多介绍了,因为需要很长篇幅,大概是一个基于区块链基础ecc椭圆加密算法的所谓proof of trust工具,这是我给一个学长的alphawallet社区https://alphawallet.com写的一个工具,

感觉自己很荣幸参与到这么有意义的项目中,其实贡献甚微,我想说的是有时间可以多参与一些开源项目,拓宽自己的知识广度,然后挖掘一定程度的深度