2020-03
30

第一次上外国网课

By xrspook @ 10:48:33 归类于: 烂日记

我星期五晚上开始看微软的一个Python入门视频。那个视频是由微软的两个专业工程师主讲的,一男一女,都是中年人,都是有家有孩子的那种。这些都不是重点,重点是他们两个都是跑马拉松的。为什么在他们做自我介绍的时候要把他们是马拉松爱好者也说上,我不知道,但我个人觉得,有运动习惯的人,脑子通常都会好使一点。当然我说的不是那种专业运动员。专业运动员把绝大多数时间都放在了训练上面,到专业用脑的时候,可能就会差那么一点了,因为他们在运动以外的训练相对少一点。

这是我第一次听外国人讲网课,用的是B站,那是中国人把视频从外面搬运回来的,至于是不是从油管搬,这个我没有考究过,但是可以下载视频,而且能把字幕也下载回来,不是油管,会是什么呢?一开始我觉得B站的中文翻译应该是靠谱的吧,后来我发现大概因为上传视频的人上传了外挂英文字幕,所以中文是靠机器翻译出来的。有些句子直白得让人无语。在电脑上看的时候,字幕比较大,所以我的眼睛会不时瞄到那个东西,但是,当我在时躺在床上。用小米平板看的时候,我觉得自己完全忽略了字幕的存在。因为相对于电脑显示屏,平板上字幕的字体小很多。与其关注着那些小字,不如把目光放在更恰当的地方。于是我就变成了直接看屏幕上的东西,听两个老师解说。我肯定不是每一个字我都听明白了,但是我能理解大概。当我看不懂屏幕上的某些词语的时候,通常是因为它们对我来说是一个生词,那个时候我会瞄一眼下面的机器中文翻译。我已经忘记了是哪个视频,反正字幕是乱套的,大概是外挂挂错了。

视频一共有44个,每个视频几分钟而已。我已经看了15个。前面14个都很顺畅,因为很多东西我都已经知道了,虽然不那么详细,但是完全可以理解。前面说的是一些入门安装之类的东西。一开始说的是字符串,然后说数字,第15个开始说日期。相对于前面两个变量来说,日期麻烦很多。也不知道是因为我之前没有怎么接触过日期这个变量,还说这的确比前面难一些。这个函数要求你必须按规矩来录入,否则就玩完。看日期这一节课的时候,我觉得自己比较困,我是在迷迷糊糊看完的。所以看完了以后,我只能说我知道这是说时间的,但具体怎么操作我完全不知道,所以,我肯定是要重看的。在上一节课之前,我觉得自己,如果能一直看下去,3-4天我就可以把44节课全部看完,但是经历过日期这门课以后我明白到,如果我不够100%认真,后面的课程我都得看一遍以上,而且不只是要看两个老师讲解和实操,我也要自己动手做一下。所以什么时候才能完成这44节课就比较难说了。或者我不会把这44节课看完,我就会同时开始其它书籍,有可能是电子版的,也有可能是纸质的。现在我手边就只有电子版的,纸质的书我还没买。买纸质的书可以让我安心,但我也明白的,纸质书买回来以后,其实我是不怎么看的。

看了几十分钟的教学视频以后,我明白到Python是一门很自由的语言。要实现一个功能,有很多不同的方式。我这里说的倒不是因为什么架构不同之类,纯粹是把一件很简单的东西实现,比如说打印语句。这种个性化的自由是我在其它语言里从来没见过的。

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分钟就搞定了,真的让人非常有成就感!

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

2020-03
23

选择我的语言

By xrspook @ 10:34:20 归类于: 烂日记

现在我到底比10年前进步了多少,我不知道,但显然,10年前我还不认识正则这种东西。后来的很多抓取需要让我不得不学习了这个。一开始,我是在PHP上面用的,而昨天,我要把这个用在Notepad++上面,正则类似,但不同地方的细则又有所不同。正则这个东西让我在Notepad++上完成了我觉得这软件可能完成不了的事情。我太低估Notepad++的实力了!简单的替换或者新增这段,对它来说毫无压力,尤其是纯粹字段的东西。昨天之前我有想过要不要这次之后我也学习一下Python。语言类的东西学习了不少,但是我的电脑里没有配置一个环境可以让某个语言做到输入输出文件。如果把Excel算上,估计那是唯一OK的。我之前用的PHP实际上在编程方面我几乎没接触过。

学习编程语言,学习什么样的编程语言,很多时候都不是由我自己说了算。遇到什么问题,看到别人用什么解决,然后我就会觉得那个东西很有用。如果现在要用一种语言去定义我自己的话,我甚至说不出来。我不需要所有语言都懂,我只需要有一个我非常懂的东西就可以了。但显然,现在我还没做到,所以接下来我需要做的是找到这种语言,然后深入的研究。无论哪种语言,深入进去以后都可以无比强大,起码我想实现的那些小愿望全部不成问题了。其实我也不能说我完全不懂PHP,我还是有点懂的,但主要还是用在一些前端方面。因为我会认识这种语言是从网页与CSS配合开始的。一直以来,我都没有深入进去。我没有在电脑上长期安装一个运行环境。每次我要测试开发WordPress模板又或者其它内容的时候,我也是到需要时才安装,不需要的时候又把它卸载掉。需要PHP的运行环境,意味着可以实现很多计算,但我并不需要一定在本地部署。我把脚本放在网上一个免费的地方,我那些小不点功能其实就可以做到。以前,我是这么干的。现在估计我依然可以这么干。我为什么要配置PHP环境而不配置其他东西呢?其他东西可能更方便快捷。我不知道语言与语言之间的差异主要有哪些。从宏观层面上看,判断和循环基本就是它们的全部,但在如何表达参数上面,各家有各家的说法,所以其实一直以来我都很蒙圈。如果你给我一堆代码,要我判断这是哪种语言的。我肯定说不上,除非有一些非常明显的标志。看看他们的声明以及执行部分,很多时候我觉得都一个样。当然这只是我肤浅的觉得,实际上不是这么回事。因为我不熟悉他们,我只是见过他们,有些更加纯粹是一面之缘。

就像我用一个数据透视表能解决几乎Excel的绝大多数问题一样,因为我熟悉它。如果我熟悉公式,我也一样可以单用公式解决Excel的绝大多数问题。我是时候在一种编程语言上下功夫了。

2020-03
22

折腾不同版本的WXR

By xrspook @ 22:09:44 归类于: 烂日记

我只是想把自己从前的东西重新拿出来,原来这也会很难,这是我完全没想到的。要找回那些尘封10年的文档,并不算太难,翻一下电脑也就找到了,虽然有点坎坷,因为当时备份的时候,我没有标注是哪个网站的,xml都放在一起,我以为那都是我主站的,后来,同一个日期不同的文件大小才让我觉得有蹊跷。xml文档找到了,接着要把它转化为WordPress的格式。当年用来转换文档的脚本找不到了,翻遍家里电脑的各个盘都没找到。之所以在家的电脑找不到,是因为当时干这事我是在单位完成的。所以理论上单位的电脑应该有,但是因为换过电脑,我也清理过同步盘,所以会不会也因此清理掉呢?这个我不确定。我觉得,在我转格式的时候,我仍然在用Dropbox,里面的很多东西我的确已经清理了,于是这也很好解释,为什么我家里电脑的Dropbox文件夹里找不到那个脚本。家里的电脑没有,单位的电脑可能有,但还有一种可能性,我把那上传到网盘,于是就把那同步软件里撤掉了。我只会上传到两个地方,一个是百度,一个是115。115打开很麻烦,我也懒得下载打开它的工具。百度上果然就有我要找的东西,但当我想把整个文件夹下载回来的时候,问题严重了,那里居然有4000多个文件。下大文件的时候度娘就很慢,下小文件的时候度量更慢,那是直接10KB以下的速度。我直接去网页版的度娘找到我要的东西,不在客户端里等它慢慢下载了。

东西下载回来以后,我再翻查我的日志,我需要安装一个Python。我默认安装的是现在最新的版本3.7.7,但运行脚本以后却发现才刚刚开始读取脚本,就马上报错。查找原因,原来是版本之间的语法差异。才刚刚开始就错,要运行完整个脚本,我真不知道还得修改我根本不懂的语法。所以,我把最新的Python卸载掉了,重新安装当时我就在那个版本下转换的2.6.5。2.6.5是一个什么概念?这意味着时光倒流10年。

出乎我意料,软件装好以后,我几乎没遇到困难就可以把BlogBus的文档成功转为了WordPress的格式。在下载Python的时候,我顺便下载了XAMPP,同样下载的是最新的版本。前段时间我才刚用过,觉得挺爽。我也下载了最新版的WordPress的5.3.2。同时把导入插件也装。当我试图上传,已经转过格式的xml是,上传报错。原来这才是噩梦的开始!不同版本的WordPress里的xml格式各不相同,几乎可以这么说,越往后越严格越来越严格了。于是我又安装了WordPress 3.9和2.8。3.9的WordPress在PHP 7之下马马虎虎可以运行,2.8是直接连数据库都连不上…… 于是我甚至不能从通过低版本的WordPress N轮导入导出拯救世界……

没办法,我只能研究我手头上的xml,看看和现在的标准版差多少。首先,必备填写一个WXR的版本号。在旧版本里,这条规则是这是不存在的,所以要手动加入。同样需要手动加入的就是,即文件类型,因为现在的WordPress把文章分成了post和page。把这些搞定以后,基本上正文就可以导进去了,但是分类和标签还是不行。因为现在的分类和标签,WordPress使用的是一个叫做nice name的东西,你必须在分类和标签那里,加上这个标注0才能识别的出来。评论那里,当年就试过在2.8的版本里面评论正常,但是在2.9里面,有评论的话会只剩下一条评论。研究发现,那是因为评论有了一个id号。BlogBus转码过来的东西没有id号,所以大概东西就自动覆盖了。除了这些BlogBus和WordPress之间的格式问题以外。我的文章里还有格式的=问题,因为有些东西,不完全是我自己的东西,好些是我从网络上搜集回来的。当时我保存了网页,在BlogBus发布的时候直接复制到可视化编辑器,所以格式也带入了。如果当时我懂得先把东西贴到记事本,然后再剪切粘贴一次,就不会存在这种问题。除了格式以外,从前的blog里还有图片,但经过这么多年,图片都已经失效了,链接摆在那里只会浪费加载时间和访客的期待,所以我要把图片链接也尽可能去掉。有些图片链接是我没办法去掉的,因为用正则筛选的时候会遇到一些很屌丝的句子,到了某个点,就卡住了,但实际上那并不是这个标签的结束。

搞清那些规则,总结出我的对策。一次又一次查找替换,一次又一次导入删除再导入。花了一整个下午加半个晚上的时间,我总算搞定了从前BlogBus上的BLF!文章238篇齐全,评论56条也齐全!!!其中可能会有一些小格式上毛病,但是那并不是共性的问题,后续还得靠运气慢慢修改。

非常有必要记录一下我在Notepad++上做的WordPress不同版本xml转换操作

/*操作开始*/

普通替换《channel》为《channel》《wp:wxr_version》1.1《/wp:wxr_version》 /*WP XML共性问题*/
普通替换《category domain=”category”》为《category domain=”tag”》
普通替换《dc:creator》《/dc:creator》
为《dc:creator》《![CDATA[xrspook]]》《/dc:creator》《wp:post_type》《![CDATA[post]]》《/wp:post_type》《category domain=”category”》《![CDATA[回到过去——Betty迷的独白]]》《/category》 /*《/wp:post_type》前是WP XML共性问题*/
普通替换《BR》《BR》为《BR》
普通替换《!–msnavigation–》为无
普通替换[summary_of_BLF]为[summary_of_BLF(from_rincondebetty)]
普通替换[summary_of_EcoModa]为[summary_of_EcoModa(from_rincondebetty)]
普通替换《category domain=”tag”》《![CDATA[(from_rincondebetty)]]》《/category》为无
普通替换[Yo soy Betty, la Fea]为[Yo_soy_Betty,_la_fea]
普通替换[JEA’s Writting]为[JEA’s_Writting]
普通替换”博主”为”xrspook”
普通替换《i》为无
普通替换《/i》为无

正则替换category\”》《\!\[CDATA\[(.*?)\]为category\” nicename=\”\1\”》《\!\[CDATA\[\1\] /*WP XML共性问题*/
正则替换tag\”》《\!\[CDATA\[(.*?)\]为post_tag\” nicename=\”\1\”》《\!\[CDATA\[\1\] /*WP XML共性问题*/
正则替换《[TDSFHI].*?》为无
正则替换《/[TDSFHI].*?》为无
正则替换《P.*?》为《P》
正则替换《(table|tbody|tr|td|div|span|img|script|font|hr).*?》为无
正则替换《/(table|tbody|tr|td|div|span|img|script|font).*?》为无

《wp:comment》《/wp:comment》中增加《wp:comment_id》1《/wp:comment_id》,id数字递增 /*WP XML共性问题*/

/*操作结束*/

注:请自行替换《》为<>,用尖括号那是全部都挂掉无法显示的节奏啊啊啊

这个是一次死去活来的经历啊啊啊啊啊啊啊啊啊啊啊啊!奇怪的知识又增长了不少……

2010-01
14

累但快乐着

By xrspook @ 23:59:58 归类于: 烂日记

昨天晚上我是凌晨一点回去睡觉的。

今天晚上我是凌晨一点离开办公室的,还没洗澡,躺在床上的时候已经是凌晨一点半。

我很累,在上班时间里被检验、文档排版、数据抄写榨干。下班后,成为小村屋群的义务核心技术员,被代码转化和CSS修整榨干。CSS修整本是很简单的事,FF+Firebug+css code就能得心应手,需要做的就只是修改和刷新,但是,偏偏某村友的blog用的插件却把该死的CSS可视化了,分开一小段一小段,加上说明,却不显示最最原始的代码,还得让你一个个翻,要多按好多次保存,还经常会找偏。结果最后我气了,直接用Firebug去找我要找的地方,在自定义的CSS里敲打一番,嘿,终于可以了,真邪恶!

今天的重头戏是帮一位有困难的村友搬家,听村屋首领说他帮忙搬的时候失败了,于是,在危难的时候,当大家有需要我的时候,xrspook挺身而出了!接到从BlogBus弄出的代码,马上用Python转换,得出如下结果:


很诡异,我之前遇到的错误代码可不是这样的哦。我第一个反应是时间有问题,应该是某个设定的时间不对劲,但到底在哪里呢?94、268、371、376(此数字为行数)我都排查过,没有。于是,我第二个反应是人肉排查替换。把376以前的先删掉,转换后面的。OK,没问题。再把前面的转换,同样结果。接着,把94-376的删掉,转换94以前的,一切正常。然后,把94-376的转换,嘿!还是那个界面,但现在根本就不存在376啦!所以我意识到从那些行根本不会找到突破口。重复以上操作大概3、4以后,剩下3篇文章,卡住。剩下2篇!最后一篇!肯定是这里的问题。村友们,你知道我发现什么了吗?见下图:


LogDate包围的日期居然是0000-00-00 00:00:00!!!!难怪Python会报错!而这等事情是怎么发生的呢?fish故意的吗?不是,是BlogBus可以算bug也可以不算bug的地方。为什么这么说呢?因为我是那种在记事本写完日志往blog上贴的人,记事本时间提取是用F5,只有yyyy-mm-dd hh:mm,而BlogBus的格式是yyyy-mm-dd hh:mm:ss,所以,我就要把前面的粘上去,留默认的秒数,但如果我一不小心粘错粘漏了呢?BlogBus会默认把时间设定为0000-00-00 00:00:00!于是,发现新文章不见了的xrspook就会翻到日志的最后一页把那个莫名其妙的日期改回来。大概当时fish没发现这等问题,以为是自己出错了就没去理会,所以,导出数据中就存在了个那么匪夷所思的日期。程序是认规律不认人的,它觉得年一定是从1开始,月只有12个数,日是1-31,若超出范围,它就笨蛋不懂了,前提是,它不会BlogBus的日期潜规则,若有人让它增强读取BlogBus的潜规则并把那个诡异数转化为转换当场时间的话,杯具就不会发生。所以,看来很严重的问题,把几个0改为正常数就行。解决方法很简单,但查找就异常曲折。成功那一刹那我是多么的高兴啊!!!

信心满满地把转换好的数据传给村屋首领,却又出现怎么都导入不了报错的现象。难道fish就那么背?在多次尝试,包括重装WP之后,首领提出会不会是导入.xml的格式不对,解释错误导致报错?接着,我发现他装的居然是2.8.5,我转换用的是2.8.6啊!转出来的数据适用于2.8.6后(即2.9系列),新数据导入老系统,不错就见鬼了。于是,我把经过一层转换的导进去,问题解决。大功告成,村友们,我们狠狠地拥抱一下吧!

以前都是自己解决自己的问题,或者请求别人解决自己的问题,但这次居然是xrspook帮助他人解决问题,真让人有飘飘欲仙的感觉。几个即时通讯工具闪个不停~~~

妹爱的不是钱,妹爱的是成就感!

于是,你知道我为什么乐了:)

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