2020-04
2

学习思路

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

昨天因为网速不好,所以晚上我开始看某本叫做Think Python的书。那本书有免费的电子版,但是也已经被O’ Reilly出版了.如果在亚马逊上买,需要接近20美金。为什么明明不用钱就能看电子版的书要给钱呢?其实在看这本书之前,我已经见过非常多O’ Reilly的书了。我感觉他们出的书都是某个体系里面的大头,不是一般的有名,但是好不好学又是另外一回事。我还记得大四的时候,晚上我要在实验室里独自通宵度过生死时速33,那时我带了一本O’ Reilly的犀牛过去看(学校图书馆借的)。那本是JavaScript的书是中文版的,但看得我太郁闷了,因为翻译的简直牛头不对马嘴,感觉根本不是人肉翻译的。又过了好多年我才看到评论叫大家千万不要买那本犀牛!JavaScript这个东西可以这么说,我完全没学好。甚至可以说不知道自己学了些什么。之所以大四的时候要学习JavaScript,是因为我想做某些网页特效。一般的网页用HTML跟CSS就可以了,但是一些炫酷的东西就必须掌握JavaScript,这包括一些动画效果。现在大不一样了,绝大多数浏览器都已经兼容了HTML5,所以一些对从前来说需要一大段话的东西现在两句话就搞定了。以前我总在BlogBus的网页里放不少JavaScript,有可能是网站统计的,也有可能是某些特效的,但当我开始用WordPress以后,我很少用那个东西了,我尽量地让网页上的JavaScript瘦身到极点,但是还是会有些东西是我控制不了的。比如说WordPress自带的,虽然我没有写上去,但是后台会在生成我的网页的时候加不少东西,我一点办法都没有。除非我的后台不用WordPress,我才能做到我想要的那种纯净,但显然现在我没有那么强大。或许某一天我把整个网站静态下来了,我就可以这么干了。

回到Think Python这本书。第一章的一开头,他们就说到了计算机科学家。之前我好像没听说过这种说法。他们是这样给计算机科学家定义的:

计算机科学家像数学家一样,使用规范的语言来阐述思想(尤其是一些计算);像工程师一样设计、组装系统,并且在多重选择中寻找最优解;像自然科学家一样观察复杂系统的行为模式,建立猜想,测试预估的结果。计算机科学家唯一最重要的技能就是『解决问题』。解决问题意味着要有能力把问题进行方程化,创造性地考虑解决思路,并且清晰又精确地表达出解决方案。

所以他们必备清晰的思路。以及非常有条理的逻辑。把大问题拆分为小问题,然后逐个击破。我已经活了34年多,看到计算机科学家这个定义以后,我才发现原来自己就是这种人。还记得从前大学的时候,专业课老师给我们解释过科学与技术到底是什么东西。科学就是研究一些比较抽象的概念。而技术是解决一些实际的问题。我属于那种二者兼有之的类型,一方面我对未知的世界充满好奇心,但另一方面,在解决具体问题的时候我会非常带劲。工作了10年有余以后,我觉得其实科学与技术这两种东西并不是从前老师定义上的那么黑白分明。科学你要深入进去,你就必须用技术探索,而技术之所以存在,就是为了要解决一些人类未知,但又很想知道的东西。

我不知道其他人学习编程是为了什么,但我知道,我学习编程是因为我想实现一些我想做到的事。此刻,我只是想做到一些我想做到的,或许在以后,我会把这变成是别人很希望我能帮他们做到的。

2020-04
1

微软的世界

By xrspook @ 10:29:30 归类于: 烂日记

前天晚上不知道为什么,回宿舍以后我就非常想在自己的笔记本上装一个VSCode和一个Python。为什么有这么迫切的需求?我也搞不懂。但是我就想自己的设备上都配置这些东西,因为我说不准自己什么时候发起疯需要使用,就像我在所有自己的电脑上都装上了Office 365一样。

从昨天开始,Office 365得要改名了,因为Office 365再也不叫这个名字了,以后叫做Microsoft 365。为什么会以老大哥冠名,我不知道,虽然换了个名字,但现在的售价还是一样的。而对我来说,好久都不需要考虑价格环节。因为我的个人版估计还有两年半的使用时间。我是Microsoft 365个人版的用户,但问题是我的三台电脑只有其中一台是用Win10的,其余两台都是Win7,这就意味着那两台台式机除了一些最基本的安全更新以外,没办法使用365的新功能。我不知道微软这是怎么想的,电脑没有坏,难道你叫我那丢掉吗?就一般的操作而言,那些电脑是没有任何问题的,不过是老一点,CPU慢一点,硬盘不是固态,内存小一点而已。这些老电脑如果装上Win10,那是几乎可以说必死无疑的节奏,但是不装上Win10又用不了我应该能实现的东西。他们为了卖软件,真的什么都想出来了。最让我觉得无语的是,过一段时间,Win10就会爆出一些让人傻眼的bug,之前这些东西貌似没在XP或者Win7里出现,但是Win10却会屡屡发生。当然这种事我也可以理解,比如说使用有x结尾的office文件时经常会发生这样那样的问题。老版本的office文件不会有这种问题,无论是老版本保存的最经典版本,又或者是二进制版本,都不会有那种问题。有x的office文件我个人觉得简直可以称为悲剧中的战斗机,但偏偏这是现在office软件默认的文件格式。大家使用的时候遇到麻烦就像某次更新了Win10以后又出现什么惊人的bug一样,虽然很无奈,但又无可奈何。对用户来说,有些问题甚至可以称之为弱智,但或许对工程师来说,是因为他们用了某些新技术发生了一些完全在他们意料之外的事。

回到前天晚上我在笔记本上装那两个我觉得很简单的东西,但其实过程这一点都不简单。安装VSCode还简单一点,安装Python实在太难为人了!不就是个跨平台的编程软件而已,居然被墙了,又或者说不是被墙了,但就是上去很困难。刷新无数次都打不开,后来我甚至觉得不如在国内某个软件网站下载算了,但是看到满屏的广告,以及乱七八糟说得很牛逼的介绍,我还是乖乖地继续默默刷官网的下载页面。最后还真的被我打开了,虽然下载速度让人很无语。两个软件都下载完,安装完毕,并设置好环境以后。我随手写了个只有一行print脚本,接着我发现在Win10里的VSCode下在软件里的终端运行时运行不了。仔细看一下,原来Win10系统下VSCode默认的终端是PowerShell而不是我平时看到的CMD。PowerShell是不是就是CMD呢?我不知道,但是通过Windows的搜索,输入CMD的确可以到达平时我见到的命令行,我觉得PowerShell和CMD是两种东西,因为PowerShell虽然也是黑屏,准确来说应该是蓝屏,那里的字体和背景都是有颜色的,但是在传统的CMD里只有黑色和白色。凭着这个,我自觉认为它们是两回事。后来也的确证明了我这个猜想。但无论我怎么努力,我都没办法在PowerShell的终端里运行py文件,所以我只能很弱智地把VSCode里面的默认终端重新设定回CMD。

昨天我发现原来Win7系统也有PowerShell,但那是2.0版本,几乎就是个鸡肋,可以忽略不计,所以在Win7下VSCode的默认终端是CMD。我尝试在Win7里安装PS 5.1,一番挣扎后依然失败告终。5.1标配的是NET4.5,但现在我都用到4.8了,我怎么可能会滚回去,虽然安装那里的要求是4.5+,但这个“+”有时很暧昧。装不了WMF5.1就没办法让Win7拥有PS 5.1,我尽力了,但真心没办法。现在我也没有非装PS 5.1不可的需求。

微软的世界有时真的挺无理的。

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
25

框架在变

By xrspook @ 8:49:39 归类于: 烂日记

今天我突然觉得很崇拜我自己,为什么可以这么神,能做到自己想做到的事情,哪怕在那之前我完全不懂。我不知道这种自学能力是不是与生俱来的,还是一直以来的教育让我具备了这种能力且越发强大。对别人来说,我或许是一个每样事情都蜻蜓点水,没有深入进去的人,因为我的兴趣,真的变得好快,快到有时连我自己都措手不及。我尽量改正自己这个坏习惯。把一件事坚持不懈做下去效果会非常惊人。我觉得我的blog让我学会了坚持。只要做就好了,一开始的时候,我对自己的blog没有内容或者字数上的限制。所以一开始那几天我贴了不少图。因为当时用的是可视化编辑器,所以我完全没有想过这种事往后会让我的网页崩溃,因为自动带入了一些前端看某些情况下看不到实际又存在的东西。以前没有意识到,现在打开那些东西的时候,我自己都吓呆了。

从前之所以没有毛病,大概因为当时网页框架用的是table,但现在table这种东西几乎可以说已经极少用到了,起码对我来说是这样的,一整个网站写下来,我一句table都没用,但是用框架定位是非常正常的思路,尤其当从前的网页是用可视化编辑器整出来的时候,那样的话就保证了像我这样随便贴的人正文也不出错。我用过Frontpage,也用过Dreamweaver,但是Dreamweaver我用得很少,虽然我买过了相关纸质教程。Frontpage再怎么少,我也用那个做过一个大学选修课的作业。大概因为我交了个网页,有诚意,所以老师给了我个不错的分数。现在再去想从前的table会觉得,那太死板了。

跟从前比起来,现在看同一个网页,显示器的类型非常多。可能是用PC看,也可能也可能是用MAC看,绝大多数可能是在智能终端上看。不同手机的分辨率不一样,再加上各种型号牌子的平板,那就更加没办法算清。即便是PC的显示器,大小差异也很大。老掉牙的17寸以下仍然大有人在,也有人用的显示器堪比别人家的电视机。而且那种还真不像我妈那样,把小米电视当做显示器,方便率极低,那种超大型的显示器如果你在做网页的时候,还得考虑适配宽度分辨率,那就真的太难了。以前的主流显示器,大概都有一个范围,占有率前5加起来,估计能占到所有显示器比例的70%以上。在那种情况之下固定框架可以给出具体参数,但现在显然不能这么想了。如果屏幕小的话,你可能在那里显示的栏目只能是一栏,而且尽量要做到,再小的屏幕(非极限测试)也能放得下一栏,而不需要用滑动条左右移动。判断出读者是屏幕大的,可能你整个网页会分出很多栏。当然,会有一些主要区域用来吸引眼光,就像你去门户网站,看到满屏的路人甲广告一样。前段时间我发现了个网友的网站,小屏的时候,版头跟主体是上下结构的。如果遇到宽屏或者分辨率大于一定数值的时候,版面是左右结构的。我觉得这样的配置就很好了,但我也知道,这样清爽的网页没办法解决我这个要求太多的人。因为我总想把我要展示的东西塞在网页里。或许在我下一次blog模板修改的时候,我会把版面兼容性放在一个很重要的位置,比如说必须得考虑。

越是研究,越会知道自己想要什么,要怎么做到。别人或许有很现成的办法,但我总喜欢自己去亲身经历一下。

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