2020-07
16

gitbook,可以扔了

By xrspook @ 9:34:50 归类于: 烂日记

我觉得gitbook和github两个东西是很容易连在一起的,如果我把东西推上了github,自然而然gitbook就会自动同步过去,但实际上,我太天真了,因为我看到的gibook并不是网友们所说的那个。我看到的gitbook实际上已经是第2代。被各位网友津津乐道的gitbook是第1代。第1代的东西还在,但已经不允许新住户加入了。我开始知道有gitbook时候,注册时已经是第2代了,所以无论我费尽多少心思,想在第1代的gitbook里登陆都是无能的。第2代的gitbook简直是一个神奇的存在。我甚至有点不知道该如何去写东西了。

前天我做了个小实验,把几篇markdown放到github里,然后同步到gitbook,非常容易就显示正确了。但我不知道,那只是让我上尝点甜头,因为接下来,当我想把大部队部署到上面的时候,根本无效。一开始,我把9000多篇文章都传到github之后,然后自动往gitbook里输送,结果花了一个晚上,进度条一点反应都没有,一直卡在50%,没有成功也没有失败。昨天我试着只搞4000多篇,结果还是50%卡住,最后我甚至只用了1000多篇,有时可以,有时不行,有时说数据传过去了,但实际上展示界面什么内容都没有。我怀疑是不是我的readme和summary没做好,所以我手动做了那种东西,结果发现还是不行。readme没什么技术难度,至于summary,难道summary太大,读取不了?所以我又把summary删减了好多。到底我是要先做summary还是先做内容呢?如果只有内容,没有summary,会不会内容就无法展示出来呢?最终,我先把summary和两个很简单的文件扔上去,确认没有问题以后,再扔十几篇东西上去,然后就卡住了。没告诉我到底是哪里卡住,什么原因卡住,反正就卡住了。起码昨天我还有卡住的信息,而前天晚上卡住了也不告诉我一声。我试过直接使用zip上传,结果发现,上百篇一起都不行,只能几十篇,文档用zip上传到那里以后,标题没了,所以目录那里完全只是我的文件名。即便我有那么好的耐性,一个一个小压缩档上传,我也没办法一个一个页面改文件名啊!压缩档上传的方法也不行。

我实在搞不懂这个第2代的gitbook。当这些东西我都搞不成以后,最终我想到gitbook之所以有这个名字,肯定是因为可以用git来管理。所以我下载了个node,然后试图安装gitbook,但失败了,不知道为什么出现满屏的错误代码,最终我只能放弃。还记得,从前用点点的时候,他们第2代的模板就是基于node的,所以那时我的电脑上有安装那个东西。我也不知道这个东西需不需要环境配置,通常来说,都得这么干。但貌似这次还真不用,只不过用的方法麻烦一点,每次都要转一下目录。之所以之前没有用gitbook的本地命令行,而选择去上传文件,是因为我觉得大概用不着再装一个安装器,但是,当我觉得现有的方法都不行,我只能用最传统的实现的时候我才发现,原来有第1代跟第2代之分。第2代的gitbook彻底了没有git的功能。虽然他们的网址有迷惑性。最终,即便我可以用本地的脚本生成静态的电子书网站,我也再也不可能把那托管到gitbook上面了,但我还可以选择其它地方可以托管。晚上,我真的又配置了一个本地命令行的gitbook,接着我发现gitbook的虚拟服务器在生成静态网站的时候居然会卡死!卡死的时候不会告诉你我卡死了,因为什么原因卡死。这样太不人性化了。这简直让人连debug的机会都没有,因为不知道bug在哪里。所以接下来我只能一点一点地把文件加上去,然后才好找出到底是哪个文件整出来的幺蛾子。

文章最后,我试验证明gitbook本地版是个没用的东西,起码对我来说没用。生成9页内容需要9秒,生成50多页内容需要80多秒,生成600多页内容每一页至少要一分钟。这样没有效率的东西,可以直接扔了。如果仍然是用这种处理数据的方式运行,github推送给gitbook的9000多个页面能正常绝对是奇迹。

2020-07
15

改进

By xrspook @ 10:06:49 归类于: 烂日记

我觉得哪一天自己不看一下脚本,尤其是在工作日的时候,就觉得日子好像缺了点什么。脚本可以是VS Code里的那些,也可以是Excel VBA,同样也可以是各种的网页源代码,又或者是XML文件。反正就是一些不是给人看的东西,又或者说,不是给人直接看的东西。那些东西经过软件的处理以后,结果是给人看的,但是我看那些东西的时候,却是给机器看的。我还没有神经病到要看二进制代码的地步。

一个没有完美倾向的码农,绝对不是一个好码农。所以当我看到,单位的那个所谓智能系统出来东西每一页都有错的时候,我怎么可能不吐槽。他们测试过了吗?他们真的测试过了吗?他们不只是没有测试过,而且做那个表的人根本没用心,连抄都可以抄错。因为我自己是一个码农,所以我知道那些步骤到底应该是怎样的。我不知道专业的码农日子是怎么过的,反正只要我开始任务。任何时候我脑子里可能都在想,有可能是吃饭的时候,也有可能是跑步的时候,经常发生在我洗澡的时候。

写出来的东西的确能实现一些功能,但是那个东西真的能兼容所有情况吗?如果有一些突发的呢?突发的时候,我们可以手动使用B计划,也就是非智能秒杀计划,但是能不能在秒杀计划里加一些判断分分支适应特殊情况呢?这完全是可以做到的,但是一开始的时候,那并不是核心功能所在,所以没有被考虑进去。到达一定程度以后,我就要把那个功能泛化出来。不仅仅做到一些核心的东西,连一些正常的例外也得考虑进去。之所以这么说,是因为昨天走回宿舍的路上,在洗澡之前,我又想起前天写的两个脚本我还可以加一些条件判断进去,使之适应一些后续增加的例外事件。虽然说那些是例外事件,但是在某些情况下,有可能变成常态。之前我不知道该如何处理,但昨天,写了两个数据透视表的脚本以后,我明白到数据透视表我可以固定用某个表名。如果之前已经存在那样的表名,第一步需要把那个表删掉,然后开始后面的操作。又或者,我并不需要删掉那个东西,我只需要改变数据的引用范围。在我的知识范围内,直接删掉比调整引用范围简单。但实际上调整应用范围也必定是一个可控的东西,所以大概接下来我要了解一下怎么在VBA里改变数据透视表的应用范围。另外一个脚本更简单一些,直接是判断某个单元格那时是不是某个固定的东西,是的话就无需进行插入操作,直接开始排序,不是的话就要先进行插入,然后排序。

如果之前我没有学过python,没有努力地写过各种脚本,大概我会觉得泛化有点麻烦,但是当我经历过那些东西以后,我觉得这一切都理所当然了,我甚至想写一个自定义函数把主流程丢到里面去,那么,核心部分的判断就会非常明了,理论上VBA也肯定能做到。之所能具备了这种思路,我必须得感谢Think Python这本书。这种思路是我大学时学习程序语言的时候所不知道的。虽然那时我通过了计算机二级C语言的考试,但那考试对我来说只是一张纸。是后续我接触到、我自学回来的东西,成就了现在的我。

变得更好的路永无尽头。

2020-07
10

初试github托管

By xrspook @ 14:47:45 归类于: 烂日记

在没做过之前,不能觉得任何事应该会不太难,这种应该的想法会让你死得很惨。

静态blog的内容好了,模板也好了,但要放在那里托管呢?国内的没有备案肯定没门,付费的还得算流量。Gitee据说经常性习惯性宕机,本来我是倾向于CODING的,首先,那里要备案,其次,他们pages的服务器不在国内,于是非常有可能因为各种各样的原因,你还是访问不了或者速度很慢。网上提供了很多方案,但最多的还是GitHub Pages。我要玩静态blog,我要玩托管,我就应该从GitHub Pages开始。关于github这个东西,几年前我就开始见识过了,很多软件就是从那里来的,但到底要在哪里下载,在什么页面下载,我一直很迷糊。当时我并不明白开源的意义,所以下载回来一堆东西根本不知道怎么用。github上有非常多的用户,大家擅长的程序语言又各有千秋。开源的东西就是可修改但未封装,这就意味着我下载了一个不知道什么语言的脚本回来根本是用不了的。我不知道那到底是干嘛的,自然就不会去哪里研究。

我感觉GitHub Pages算是github给用户的一个自我介绍空间,github给用户免费空间和流量,允许免费托管的repo到底有多少个我什么都不知道,但用来撑起我的小blog应该没什么问题,毕竟我从来都不是个大流量的人。

不知道github是什么,不知道git怎么用,不知道为什么非得要用一堆命令行来解决问题。一句命令输入进去,有可能秒杀,也有可能屏幕开始跑马灯,因为我数据多,跑马灯可能要跑上几分钟。昨天做到最后步骤需要提交账号密码,提交数据的时候首先给我弹出的是窗口,但每次输入了都不行。接着就在CMD里继续让我输入账号密码。账号好理解,但密码的输入却是让我震惊。怎么输入都没反应,乱输一通也不行,我都怀疑是我电脑有问题了。后来才知道github的密码输入界面就是这样没有东西的,把密码输入完毕然后回车就行了。这么逆天的密码输入界面我还是第一次见识!密码等于是必须的盲打。经过这次以后,我脑洞里奇怪的知识又增加了。

网上教人怎么在GitHub Pages上用hugo做博客的教程很多,但当我真的要完全依照其中一篇实施的时候却发现到处都是问题。从安装hugo到虚拟单机测试这个流程我已经非常熟悉,通常这个部分都被讲得很详细,后续的怎么发布到github非常多的教程一句话带过。对那些本来就离不开git的人来说,那是简单到没必要说的事,但对我这个一片空白的人来说这是要了我的命!详细说怎么发布到github的教程也不少,有些甚至把CDN加速,自动部署脚本,域名绑定,双线部署等等高端的东西都说到了,但越是说得高端,越是会把小白最容易犯错的地方漏掉,比如新repo的文件名。有些教程看上去很有道理,但当你把那些语句复制粘帖的时候就会出状况,不是英文的地方用的居然是中文符号,在某些字体之下,那是很难靠肉眼分辨出来的,但贴到CMD里,那就铁定完蛋的节奏。教程写出来,一定程度就得考虑读者可能直接贴走,只能看不能操作,这到底算神马教程!

安顿好一切,那些我该懂的日常操作都懂了以后,我真心要亲自写一个小白教程!

数据太大,上传很慢,上传后网页打开很慢是我一直担心的东西,但原来这些我都想太多了,github上传数据的速度比我想象中快非常多。最终,我把静态博客部署上去了,并且绑定了二级域名。我的老blog终于合体后重新上线:https://yday.xlanda.net/,这里的链接叫做“青春无敌” XDDD

2020-07
9

状况连连

By xrspook @ 10:35:47 归类于: 烂日记

你永远都不知道纠结的路上会出什么状况。一路平坦不好玩,5分钟就能所有问题,那是无聊的节奏。老blog的重新上线是我近段时间一直在纠结的东西。要做的事情很多,应该如何开展?做这些事的步骤应该是怎样的?谁轻谁重?

首先我做的是处理blog的核心——内容。文字我是有的,我有大把大把,但里面也有非常多连我自己都说不上到底是什么的东西。有可能长文被阉割了,但我自己毫不知情,有可能是消息从其它网站上复制粘贴过来了,带入了一些我根本没有意识到的乱七八糟代码,不同网站连换行都不一样。有些是“br”,有些是“br/”,有些是“br /”,有些是“BR”,有些是“BR/”,仅仅是“b,r,/,空格”的排列组合就有多得你想不出的效果。如果这在HTML里,都不是问题,但我做静态blog的第一步是从html到markdown,该死的“strong”在html2text的脚本里是不允许期间有换行的,在这个脚本里,连续两个br就能自动匹配正路的p,但如果遇到稀奇古怪的“/”和空格呢?在我的python转码脚本里,我用了很多行去处理那些排列组合的问题,正则的、非正则的替换用了好多遍,所以脚本运行速度只可能在我一次又一次的增加新规则之后变得越来越慢。理论上,这些东西都是不存在,但事实就是这么残忍。除了html的问题,还有yaml以及文件名字符要求的问题。转义字符出现就丑陋了。丑陋归丑陋,字符不对,那是直接编译不出来的节奏。出状况这种事简直不计其数。我也不知道自己到底改了多少个版本,理论上脚本修改这种事我应该放在坚果云文件夹里进行,但因为我生成数据的文件夹和我的脚本文件夹一致,显然那就太消耗同步流量了,所以我大胆地把脚本放在了坚果云以外修改,那是一个错手就没得救的玩命。其实我完全可以把输出的文件夹设置在坚果云以外的地方,但我就是没有这么干。要把BlogBus和点点的数据匹配为WordPress的格式,然后再用WordPress格式的数据转化为markdown。为什么我要有WordPress这个步骤呢?起码但我学会了XML到另一个XML的规律后,不静态blog的时候我还能退回WordPress,虽然那意味着我导入数据的时间将是个天文数字。没经历过这些纠结,我就不会深切体会到好好码字,不要不规范乱写的重要性。从前,尤其是一开始在BlogBus写blog的时候,我总把网上看到的东西直接复制到编辑器里,这样过于简单的操作让我付出了非常多整理的代价。后来的点点几乎没有这种问题,现在我更加是极少会直接复制粘贴网上的东西到我的blog里发布,即便有时会截取一段,基本上都是保证无格式纯文本的。现在我知道了,但当时我不知道,成长是需要付出代价的。我仅仅是在处理自己的东西,所有坑都是我从前挖下的。如果我是被迫要帮别人擦屁股,估计我早就把那个人诅咒死几万年了。

内容基本确定下来后,一开始我觉得应该不会太难的静态blog主题原来也不好找。首先是样式得对上眼,其次是渲染速度要快。有些主题连单机渲染都会让我的电脑崩溃掉,连测试都无能,真的是什么都不用说了。我几乎得出一个结论,如果某个主题大于5MB,基本上无需考虑了,那些10MB左右的,更加会让我电脑宕机。不是人人都会遇到这种事,宕机与否的测试基于我需要渲染的文章有接近3900篇,不是人人都有这样的体量,这还是建立在我已经放弃了6100多篇图片内容已经失效,光文字意义不大的文章上。

内容好了,主题好了,还得考虑把网站托管在哪里。要免费,要速度快,要可以绑域名,要服务器稳定。对一个女人,对一个习惯于货比三家的人,这实在又是一个大纠结啊啊啊。

2020-07
4

累死累活

By xrspook @ 23:04:56 归类于: 烂日记

折腾了一个晚上,打算关电脑睡觉了,突然想起好像今天自己的blog还没写。我把时间都耗在了什么地方呢?我正在校对其中一个老blog里的内容。

之前,我的关注点纯粹是格式的转换,先从BlogBus的XML转化为WordPress的XML,然后再从WordPress的XML转化为一篇一篇的markdown。纯粹技术的东西我已经几乎完成了,余下来的问题,需要在不断的转换之中发现,然后修正。今天我花了一个晚上搞的是校对从前那个blog导出来的内容。不知道从什么时候开始,我发现里面有些文章的正文是不存在的,是空白的,至于为什么,非常有可能是当时的文章我发布的时候其实没有成功,但是标题和其他内容已经有了,失败的纯粹只是正文。至于为什么不行,我当时也不知道。通常那些失效的文章,我都是批量手动粘贴发布的,可能是从一个网页,也可能是从一个word文档贴过去。在贴的过程中,自动带入了非常多的超文本格式,这个我之前已经吐槽过了。在格式转换过程中,我不得不费尽九牛二虎之力把那些转回来。其中那些空白的正文,这一次我想把资料填补回去。

昨天我的确好不容易找回了那些资料,也进行了填充,发现效果还不错,但是原始导出的那个BlogBus文件就不再原始了。接着,我发现那些有正文的文章其实也不完全可信,因为正文的内容不知道为什么只有一部分,不是全文。难道发布以后,我没有好好一个一个浏览过吗?还是说点发布之前,我看到的东西的确是完整的,BlogBus没有给我单篇文章字数的限制,但是实际上发布的只是部分。我的问题在于,有可能发布出去以后,我没有在前台校对一遍,但是也有可能我校对过了,当时看是没有问题的,但是当我在BlogBus后台把自己的东西导出的时候出了状况。一开始我觉得可能是我自己的问题,但后来我发现,断字断得好神奇,一个单词可能只剩下头两个字母,显然,如果是我复制错误的话,不会有这么低级的东西,顶多我会漏掉一些段落。现在搞清楚到底是我人为的错误还是BlogBus阉割了我的东西已经毫无意义。所以,我只能一篇一篇地校对文章的开头和结尾,确保是完整的。一些篇幅比较短的文章,暂时我还没发现断尾的现象,但是,对一些比较长的文章,断尾是必然的。纯文字有100K以上那些文章,通常BlogBus只留给我一半的内容,余下的那些消失了,而且还不告诉我。我记得从前选择BSP的时候,我知道有一些是对单篇文章的字数有限制的,到达一定程度以后就会告诉你,超过多少字了,请你重新修改,否则不能发布,但BlogBus没有这个限制,起码在一开始我选择他的时候没有。另一方面,我觉得之所以这样,会不会跟他们数据库的存储模式有关。如果他们数据库的某个存储单元顶多只能100K,我在那里输入了150K的文字。当然多出来的那些就不可能被保存下来,这纯粹只是我的猜测。几十上百篇文章,一个一个去检查头尾是否齐全,格式有没有乱套,这是相当累人的。虽然那些最原始的东西我还有,但绝大多数那些东西我都是保存网页的。现在那些网页已经不能在Firefox里打开了,用Chrome也不行,于是我只能使用IE,而且是兼容视图模式。我不觉得当年我用保存网页的方式把文字记录下来有什么毛病,我只是不明白为什么现在的浏览器不允许我打开那些老东西。

如果当年就有markdown这种这么神奇的东西,大概我就不需要走这么多弯路了。

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