2020-04
22

写得过于简单了吧

By xrspook @ 9:29:12 归类于: 烂日记

我看的那个中文版Think Python 2的第11章,习题几乎可以这么说,没一道题的相关是做对的。有些东西,习题跟现在的Think Python 2英文版不一样,我觉得可能是英文版修正了某些东西。修正完以后,英文版并没有写什么更新说明之类的东西,但即便有,中文版翻译的人翻译完以后大概也不会时刻关注英文版有没有变动。同一道题的关联引用,这种东西怎么可以凭着感觉来呢?第一次遇到的时候,我云里雾里,因为按照中文版的那个说法,在某一章书的习题里根本找不到那个东西,但在我印象中,我的确是做过那些习题,到底是在哪一章书里的呢?另外一个版本的中文版那里的索引做对了。当我回看英文原版的时候,发现他们引用某个习题真的写得超简单,但是那些习题全部都是有超连接的,而且锚点到了某一章书的某个确切位置。所以我看的那个中文版之所以是现在这个样子,是不是因为他只是进行了文字上的翻译,还没有仔细研究那些超链接之类的东西呢?又或者在他翻译的时候,他并不是看着英文电子版,我是看英文纸质或者PDF等没有超链接之类的东西。电子版这种东西最让人觉得舒服的应该是哪怕你不标明是那是哪一章书的习题,你只是说那是习题几,只要你把超链接做上去,一切好办。

我看的那个中文版让我无语,但是英文原版也好不到哪里去。因为英文原版的作者脑洞实在太大,让人不知道如何言表。我觉得变成编程这东西,你得给出一个范围,然后再给出一个参考结果,才能让人有奔头。但是他只叫你这般测试,然后再给出一个参考的脚本。在不看脚本之前,如果我只是运行的脚本,而一开始的时候,我们设定的自定义参数不同,该如何判断读者自己的脚本写得对不对呢?有些参数他们完全可以先给出来,或者你会说,那岂不是成了一个提示。这又不是测验考试,重要的不是结果,而是如何整出那个结果,所以即便给你看到最终结果,你不懂过程,还是折腾不出来。英文原版的作者把那些条件参数写在他的脚本里面,而当你写自己的脚本的时候,你又清楚明白到你必须得设定那些参数,但是应该确定为什么呢?拿不准。这就会进入一个怪圈。首先是读者看着题目,自己解答,解答完以后测试,觉得没问题,打开参考答案运行,因为参数答案的结果跟读者得到的不一样,接着我们还得去仔细研究参考答案到底用了什么参数。然后把那个参数放在我们自己的脚本里再运行。对比两个运行的效果。这不是非常折腾吗?如果没有那个隐藏的参数,读者完全可以自己运行一遍,拿参考答案再运行一遍,对比结果就行了。我们最终要做到的不就是那个结果吗?当然,如果得出结果完全一致以后,还是建议大家再研究一下参考答案跟自己的脚本有什么区别,想一想这些区别会不会导致什么问题。

Think Python 2这本书,不只是习题参数设置很让人迷茫。在某些章节里,写得也不细致,比如说元组那一章。元组这个东西据说在其他编程语言里面是没有的。在介绍元组之前,已经说过字符串、列表以及字典。前面三个东西一个套一个,挺容易理解,但是加了元祖进去以后,世界就变得混沌了。因为列表字典元组这三个东西可以互相组合互相转化。有些可变,有些不可变。有些人可排序,有些无效。要真的说清楚元组,第12章书里面已经说到的东西以及已经举过的例子还不足以解决问题。如果他们不把所有东西都说一遍,起码他们得给我们一个列表。告诉我们这些东西可以控制元组,至于具体的使用方法,大家可以查手册。

或许当我把一整本书都看完以后,我的想法又不是我现在这个了。

2020-03
26

py2脚本改写为py3

By xrspook @ 13:06:29 归类于: 烂日记

昨天,我在电脑上部署了Python3.8,令我意外的是BlogBus转WordPress的脚本居然可以在这个东西上一次通过。我在家里试的时候,如果安装现行的最新版本的Python,会有语法错误,为什么在单位这台电脑上就没有这个烦恼呢?

晚上我再去研究的时候,发现原来单位这台电脑在2017年就已经装过Python2.7。中午运行那个脚本的时候,估计不知道为什么那个东西自动调用了老的版本,所以没有发生语法错误。Python2跟Python3的语法差异很多人都中过招。习惯用Python2的人写Python3脚本肯定会有很多毛病。几天前当我在电脑上运行不通的时候,我的做法是卸载了Python3,重新安装Python2,这个做法是对的,是最快捷的解决方式,但是昨天晚上,我却选择了一个故意撞墙的方式——我要修改10年前的代码,让它在Python3上面正常运行。理论上,如果我在电脑上部署好了Python的环境,我应该可以在多种模式下正常运行那个东西。但实际上,当我很笨拙地在命令行运行那个东西的时候,的确可以,但是如果我用批处理文件调用运行,即便我在用户跟全局都都设置好了环境,依然运行失败。为什么会这样?我不知道,但显然很多人都遭遇过这种失败,所以网上的解决办法有很多,为什么这个运行环境,不是设置好了就万事大吉呢?我不太清楚。

在电脑上运行过Python以后,我觉得这个东西实在太神奇了。如果是其他语言,脚本与运行之间还有一个编译的过程,C语言是这样的,JAVA把貌似也得这样,但Python直接写完代码就可以运行。当然,运行失败的时候,他们会告诉你哪里出了问题。哪里出了问题跟有提示教你怎么改才对完全是两码事。我还在跟网友吐槽为什么设置好了环境还是批处理失败的时候,他建议我在VSCode里写py,同时也装上Python的插件。VSCode的Python插件有很多,要装哪个我完全不知道。因为VSCode是微软的产品,搜索出来的第一个Python插件也是微软昨的,至于那个东西有什么用,我实在不知道,我迷迷糊糊就安装了。在VSCode里编辑py的时候,会有一个在终端运行的选项,那里就可以看到运行效果。当我打开py文件的时候,右下角不断弹出叫我安装另外一个插件。一开始的时候我没有装,但是后来我还是装了,当然我也可以设置它不再提醒。我在装那个插件之前,我就在第1个插件的终端运行过一次py,有错误代码,跟我在CMD命令行显示错误代码是一样的。但是当我安装了第2个插件以后,奇迹的事情发生了。运行同样的脚本,在同样的位置依然会报错,但是下面还多了一行告诉我这个错误是什么,同时也会建议我应该怎么改。格式上的问题插件会直接告诉我要怎么改,比如Pyhon3在print的时候,要比2多写一对括号。另外一些状况属于插件无法确切地告诉你这个错误到底意味着什么,是哪里出问题了,但问题被描述得比较明白了。在见识过这些东西之后,我真心觉得,英语不好的人千万不要学编程,又或者说学编程,而且编得好的人,英语烂不到哪里去,因为他们看到的满眼都是那些鬼。如果你遇到一个喜欢用拼音缩写去命名函数写脚本的人,就我个人而言,我会非常怀疑他的技术。

之前让我觉得可能要折腾一个晚上才能搞定的脚本改写,在VSCode以及那两个插件的帮助之下,大概15分钟就搞定了,真的让人非常有成就感!

我不知道,我是不是天生是编程的料,但是一定程度上,我喜欢那些东西。我喜欢那些严格的逻辑,也喜欢那些在我印象之中或者意料之外的效果。

2015-09
1

SE+AE做时间轴

By xrspook @ 13:44:50 归类于: 烂日记

星期天中午我在电脑上做《爱在旅途》11首MV其中一首的时间轴。对别人来说,那就是一首歌反复地重复某个片段。我妈问我在干嘛,我说我在做字幕,我妈惊讶地说:“那东西不是电脑自己有的吗?”卧槽!!!!!!!没做过的人永远不会想象出他们觉得理所当然很简单的事有多么的不容易。

我的步骤是这样的,首先用SubtitleEdit(SE)做粗略定位,然后用Aegisub(AE)做准确定位。为什么是SE?我从前不用SE,而是用PopSub(PS)的,但PS有个很奇葩的bug,时间轴做完了保存为srt,出来的文件居然是空的!但可以保存为ass,导入ass再导出为srt,那样做就没问题。之前我已经领教过PS的文件在AE打开会有部分乱码。我觉得PS最让我的烦恼的还是打开字幕,打开视频,二者还不是在一个窗口里,还得调节二者大小,免得谁遮住了谁。PS是很老牌的字幕编辑软件,但老是老了,老掉牙了,也许在从前,在没什么可以选择的时候,PS能满足大家的需要,哪怕某些操作不人性。用SE是个很偶然的机会。我的绿色版字幕软件里很早就已经有了SE和AE,在用PS之前我也已经用过其它的字幕软件,但比PS还糟糕。为什么SE我收下来了却一直都没有用呢?我也不知道。SE的好处是字幕和播放器在同一个软件窗口里并排显示。视频窗口大小无所谓,但开始结束总得要有按钮,我需要那个,我也需要可以从某一行字幕开始播放。SE生成且保存的文件没有srt空白问题,暂时也未见乱码情况。更让我觉得爽的是在SE上打开字幕然后打开视频,视频是秒开的(AE上不是秒开的),这就很方便。在SE的字幕调整窗口,按F9设定开始时间,按F10设置结束时间并自动转下一行。这很方便,掌握节奏以后进度可以很快(播一次设定,再播一次检查),播视频,然后不断地F9和F10这么简单。PS也是这般的,PS还有个F2的快捷键,那是按住设定开始时间,松开设定结束时间。我还是习惯F9+F10这个组合多一点。SE相比PS出来的字幕文件也比较干净,不会有多余的行。在SE中也有音频的波形显示,这个需要额外装一个播放器,个人觉得没必要,因为那个波形图太坑爹了,完全没什么用处,和AE的波形图相差太远。SE我是用来做粗略时间轴的,因为F9+F10操作简单方便。之前呢,我是打算直接在AE里完成一切,但是,我找了半天都没找到设置开始时间和结束时间在AE里有什么快捷键。难道说AE比较适合深加工?粗活要留给别的编辑器???

SE完成的粗略时间轴后,打开AE,打开字幕,打开视频,从视频里载入音频,然后根据音频的波形图仔细调节每一句话的开始和结束。至今唯有这样调节是最精准的吧!因为靠的不是人的耳朵和反应了,而是实实在在地把音频可视化出来精确对准。要对字幕负责,这是我知道的方法里最苛刻的。不知道的时候不算,当我知道有AE以后,我想都没想过我过手的字幕文件不经历这一步就放出去。AE的波形音频调校是碉堡的,但就我可控的电脑而言,不是每一台都能做到。单位办公室的电脑就无能。每一句歌词有开头却没了结尾,到底是为什么我至今搞不懂。用我家里的电脑或者我的手提电脑做同样的事用同样的软件设置(软件是放在坚果云同步到各个电脑上)却没有问题。这到底是为什么呢???这是一个绿色软件啊,无需安装,难道说软件运行还需要C盘自动建立一些缓存之类?单位的电脑系统盘可用空间太小所以无能?????什么都可以抠门,但电脑的系统盘真心一点都不能抠,必须有50%以上的剩余空间或5GB(XP系统)以上,否则会让人有点担心运行不畅,单位的电脑,尽管可选择安装位置的软件我都不放在C盘,但C盘仍只有1.5GB不到的剩余空间,没救。

昨晚睡觉前我已经完成《爱在旅途》11首歌的全部时间轴,其中1首完成了仔细校对,其它的只是做出了粗略时间轴。今天要继续努力~ 我希望这11个MV能在3天小长假里放出。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress