Skip to content

Latest commit

 

History

History
68 lines (38 loc) · 10.7 KB

Blog.md

File metadata and controls

68 lines (38 loc) · 10.7 KB

Blog

2024年4月17日

哎呀哎呀,回过头看还是有点羞耻的,不知道有多少人看过,不过fork的确实基本没有了,csdn上应该还能找到文章?

这一年多,接触的越多越觉得自己菜,还是得不停学习才行,这次来主要推荐个discussion: https://github.com/BYJRK/DotNet-Discussions/discussions, 虽然是.net的,但这感觉才是一个良好交流的dcs,不要局限于语言,语言只是个工具,实现原理上很多都是相同的,我反正从.net这学到了很多知识,然后加以应用到c++,而且c#写得可比c++舒服多了,推荐学习下。

再提一嘴BKTrans吧,现在基本算是完整版了吧,最起码我个人使用我觉得没啥需要优化的,用来实时翻译游戏对话还算舒服,反正觉得哪里可以优化就改改。市面上也有很多这类的了,像是团子翻译这类,做的挺好的,有这方面需求可以去找找试下。也欢迎试下BKTrans,哈哈。

好了,我准备把dcs关了,这次应该是最后一次更新?就酱紫,拜。

2022年8月31日

藏一藏,藏一藏。

BKTrans明天发布0.1.0版本,上两周紧急添加了彩云小译,自动翻译和OCR替换的功能,还把文档补上了,经过这两周自己的使用和修改,虽然还偶有崩溃,但目前功能上已经比较完善了,过了零点就发,后面再补BV,BV得想想怎么录才行,不过那是后话了,先发布!

2022年8月5日

这次上传了ScreenShotTranslation,看文件的最后修改时间,最久的是19年4月13号,这应该是因为不喜欢qtcreator的项目组织方式,不能头文件和源文件都放在一起显示(更喜欢vs的那样的),所以就学了cmake,忙活一阵用cmake重新组织了项目。我记得我在18年秋招的时候,就在简历里,加入了这个,所以应该是18年上半年就写了这个小工具。

这个小工具,简单的来说,就是截图,然后调用百度OCR的文字识别API,得到源文本,最后再调用百度翻译API进行文本翻译——截图翻译。

看起来是不是很简单?现在看来,要实现的点有:截图,网络库,ui。但当时的我可菜了,c++能用的ui库不多,最后看来看去,qt是最靠谱的,自身就有网络库,网上csdn博客里也有用qt的截图源码,就选了qt,然后就学,当时我记得我是去那个国内的开源qt社区里学的,里面有一套算是完整的入门教程,大体的学了一遍基础的,像是ui,信号,槽之类的,然后就开始写代码,画完了ui,啃代码,把截图接进来,然后在研究百度OCR和百度翻译的API(应该是我最早的开始看API文档了),怎么调用,需要什么参数,怎么请求,接着研究qt的网络库,我记得当时在这块卡了好久。

卡在哪呢?不知道发起请求,不知道怎么进行网络通信。当时是已经学了计算机网络的,也知道socket,然后呢?url是什么?GET?POST?没真正自己写过代码发起过一个完整的请求,真的茫然。我记得OCR的API是用POST的,然后我调网络库都是拼接完参数的直接请求,默认是GET的,一直请求失败,后面注意到是需要用POST,图片也需要base64编码后在上传,还有不知qt怎么进行POST,就网上查,不断尝试,最后注意到OCR的控制台里有请求成功的纪录后,高兴坏了。接着轮到怎么解析返回的json,当时连json是什么都不知道,记得我是上学路上用手机查的,然后想通array和object后,恍然地一脸兴奋坐在教学楼前的石块上。后面就没啥太难的事情了,把截图翻译做出来了。对了,有个同学当时知道后想要源码,这我当时可宝贝了,不给,他说qt是GPL的,我说LGPL,而且我又没分发,他就没说话了,哎~哈哈。

当时为什么做这个工具呢,一方面是因为玩的游戏里,有日文游戏,看不懂,又没什么工具翻译,就想到了这个截图翻译的点子,网上查了相关文档,发现百度提供了这两种api,而且有健全的文档,我记得当时有道也有翻译的api,差不多,想了想ocr百度有,就选了百度翻译,也考虑过谷歌翻译的,但是已经不提供API了。另一方面,是因为就业压力,从上面看出,我当时是有多菜吧,想找个好公司多难,这个小项目,可是给了我面试时很多自信,可以自信的谈论这个小项目,是怎么做的,遇到哪些难点之类的,简历上也不用那么空白,让我有了点底气找工作。

不过也没找到什么好工作吧,但幸运的是,第一份工作,让我不是那么菜鸟了,学到了很多编程知识,这个小工具的开发经验也让我能更快理解工作内容,很重要的一点是,也让我度过了当时那一段非常艰难的时间,我还是很感谢我的第一家公司的。有个有意思的事,我刚进去时,发现没用qt,又要进行网络编程时,说难道要手写socket?我当时害怕极了,然后导师莫名其妙的说,哪里需要写这么底层的,有写好的第三方库用,然后我就知道了curl,jsoncpp,duilib,还学到了vs,git,vscode等等,真的学到了很多,非常感谢。

这个小工具后面除了那次cmake重新组织项目后,就没怎么维护了,也不怎么用了,直到20年吧,当时接触了编程的花花世界,觉得不用qt的话,c++好麻烦,都得用第三方库,qt又太重工作又用不到,就学了c#,.net框架好啊,想抱微软的大腿,当时刚好.net core 3出来,就用wpf重写了这个小工具,嗯没错,就是我的另外一个仓库BKTrans,当时还是用工作时间写的,写好之后,百度OCR的吧,因为当时实名认证了,就打电话过来,想问我接入这个是干嘛的,有没有可能公司合作之类的,我就说了大体流程,然后还说后面会发布,会开源,他说挺厉害的啊,还加了他微信,我后面还反馈日文翻译不准确的地方,他说会反馈上去后就没下文,然后过了许久,我不怎么用时,又打电话过来,想他会不会看得到我的翻译纪录之类的,加上反馈结果都没有,就不怎么想搭理了,后面就没后面了。不过后面换工作时,这个“重构”经历面试时又帮了忙,第二份工作还用上了qt,写这个小工具时的qt经验帮我顶住了很大一波换工作就开始做需求的压力,从项目里了解了不一样的qt,现在qt源码还在我的电脑里,偶尔拉拉6.2源码,编译编译,也不用来开发,因为后面工作又换了,又不用qt了,.net倒是还用着。

BKTrans之前就开源了,今天刚维护完,目标是做个精简的小翻译工具就行,我记得老早前,有道客户端就有这个划词翻译的功能了,百度的app也早就有了拍照翻译的功能,我这小工具也就小巧简单能算是优点了,哈哈,当然也没法和他们比,API还用的百度的呢。最近的话,准备把文档补下,然后就可以去贴吧或者B站发布了!耶!

个屁,百度抠了,我记得当时我接的的时候OCR的免费次数每日还是一个月好像有10万次,接着20年后,砍了一次,需要截止前登陆调用一次,接着之前才了解到,今年直接大砍,一个月免费1000吧,接着要交钱,不过一次挺便宜的,几分钱不到好像?还可以接受,充了10块进去,估计能用很久了。

我今天又在想,我上大学时,如果有现在的这份工作经验,得多好,我得问爆老师问题,好多内容错过了,记不得了,现在还是一知半解的,但回不到过去了,遗憾。

总之,就这么回事,好好学习吧,希望这点经历能给你一点帮助吧,接下来这个仓库估计很久都不会更新了,因为没啥好上传得了。本来下面5月11写的内容才是这次写的东西的,当时预想赶不上变化啊,下面的提前写了,这次借着BKTrans维护突然想起这个,就写了。就先到这吧,都过了零点好多到6号了,洗澡准备休...也可能熬夜。

2022年5月11日

大概是不会有人的,但还好。

2022年5月11日

嗯,我是没想到当初开源的编译原理的代码,直到现在陆陆续续的还有人在fork,很感谢fork或者star的人,让我觉得写的代码确实有在发挥点作用。毕竟,当然也可能是因为不知道,只需要直接下载压缩包就可以获得源码的,或者直接用git clone更程序员些。

不客气的说,我现在看以前写的代码,高情商点来讲,很简陋,提升空间很大,低情商就不讲了。我相信很多人都是从CSDN来的,为了作业,为了学分,我也不知道你们是否有认真看过源码,但如果想在程序员这条路上走的远些,那么就认真看下这份代码,不只是为了更好的交作业,也因为很基础,不复杂,都没用标准库(我当初也不会用),注释也算多的(我自己也怕忘了),不懂得地方都去搞懂,觉得有bug的地方多去调试验证,这能让你们收获很多。当然,如果也觉得很垃圾,那么确实没必要研究。

你出来工作就会发现,所要解决的问题要比这点简单的输入输出要难上千百倍,有时候需要解决的问题根本没法找到现成的方案,Ctrl c + v不是万能的,你得自己想办法解决,这时候就得用到你学习的知识,是不是听过学校学的到工作的时候没用?我给你一个脑瓜子。我现在挺后悔当初为什么学好操作系统,编译原理和计算机网络的,搞得很多时候要用到的时候都只能复习。总之,专业课程好好学,不懂得地方一定记得问老师,你出来工作的时候,你就明白,有一个能耐心帮你解决问题的人是多么难得了,不懂多问问老师,不坏。

趁着整理仓库,加上又有人在CSDN问我问题,就写些之前就想说的了,也算是给自己的。

最后给点建议吧。

  • vscode, vs, git 学会用,学习c++11,学习stl。
  • 找个c++的开源库看,推荐jsoncpp,代码不多,都用的标准库实现。
  • 学好计算机网络,curl库尽早接触,会用就ok。
  • 学会多沟通,注重沟通,写代码是团队性的。
  • 自己有点技术追求,写好的代码。
  • 还能说一堆,但贪多嚼不烂。

不说每天写10行代码,但是你能每天看懂开源库10行代码,那就在慢慢进步。不懂的内容,上网查。虽说量力而为(懒),但坚持学习下。

我开了Discussions,有问题可以在里面提,你们可以自己做些讨论,我的话臭脾气(菜)。