不欠 - 随笔
type: channel
link: http://8owe.com/随笔.html
description: 记录一些自己遇到的事儿~
items: 失控玩家 Free Guy (2021)
items: 007：无暇赴死 No Time to Die (2021)
items: 黑客帝国 深度解析
items: 使用py3odps清空odps分区表
items: Scrapy的架构概述
items: Linux以及windows如何通过管道输出所匹配的行
items: 资源站点msdn itell you开新站点next itell you开放注册！使用邀请码今日限额5000个！
items: conda创建python虚拟环境
items: 解决linux启动出现setlocale: LC_CTYPE、setlocale: LC_COLLATE、setlocale: LC_MESSAGES、setlocale: LC_NUMERIC、setlocale: LC_TIME等warning
items: Scala简介及安装

失控玩家 Free Guy (2021)
type: item
date: 2021-11-10T15:55:09+08:00
description: 影片讲述了一个非常流行的游戏叫《自由城》，在这个游戏里有两种角色，玩家角色和非玩家角色：玩家角色代表的是现实中的人物，非玩家角色就是游戏中的虚拟人物。玩家角色在自由城里冒险，通过杀人，抢劫或智取等方式获得升级；非玩家角色是按照代码生成的角色，没有自由意志，有关他们所有的一切，长相，身高，衣服，职业，活动轨迹等都是按照代码设定好的，就如同木偶一般完全被控制。盖就是这样一个非玩家角色。他是银行出纳员。每天早上起床后，按照代码设定，他要和养的小金鱼打招呼，打开柜子，穿上一件蓝衬衫，到早餐店里向一位女服务员点一杯拿铁，然后和他的好朋友，同是非玩家角色的银行保安巴迪一起去上班。在银行里上班的时候，会有玩家角色来抢银行，盖和巴迪会趴在地上躲过抢劫。日复一日，盖过着相同的日子，他以为周围的世界和自己都是真实的。直到遇见一位玩家角色米莉。米莉是一位不错的玩家，在游戏中，她是一位漂亮，潇洒的女英雄。现实中，她和游戏公司的程序员键盘是好朋友。键盘是一位技术宅男，是个极客。他们怀疑游戏公司的老板偷了他们的代码，米莉在游戏中好多次尝试去一个秘密基地探寻这个秘密。有一次盖在银行里的时候，透过窗外看到了米莉，被她吸引住了，一见钟情。他跑出去追赶米莉，却不小心被火车撞死了。从他看见米莉的那一刻起，他就失控了：他脱离了代码的设置，开始自我进化，他将拥有自己的记忆，情感和思想，每一次重新设置（起床）后，他都会保留之前的所有记忆，犹如变成了一个和现实世界的人一样的生命。简而言之，他进化成了真正的AI。有了自我意识以后的生活就不太一样了。早上打开衣柜，看到柜子里全是一模一样的蓝衬衫，他会感到遗憾。在早餐店里，他觉得天天点拿铁喝腻了，想点个卡布奇诺，却让女服务员和周围的客人感到万分惊讶，他们无法理解，气氛瞬间变得很古怪，因为女服务员和客人都是非角色玩家，她被代码设定了就是制作拿铁。盖看到气氛不对，就说是个玩笑，当然还是点拿铁了，这才恢复正常。在银行里遇见抢劫案的时候，盖起来反抗，从角色玩家手里抢过武器，并把他给打死了。有一次，盖从玩家角色那里抢到了一副眼镜，他戴上以后，周围显现出很多游戏道具以及他们的价值，这原本对他们非玩家角色来说是根本看不到的。盖的行为被越来越多的人注意到，大家都感到纳闷，这个人究竟是谁？游戏里的警察屡次想把这个意外的角色给干掉，让秩序恢复正常，盖确实被杀死过好多次。有一次他终于和米莉勾搭上，他们一起夜闯了基地。盖在和米莉相处的时光中，内心一直在怦然心动。米莉带盖来到她的住处，并向他展示了自己已经玩到189级，盖从眼镜上看了一下自己的等级，才可怜的1级。米莉觉得他太菜了，告诉他，等他玩到100级再来找她。然后，盖每天都开始升级打怪。不同于其他人通过杀人，抢劫，诈骗这种在现实世界中最邪恶的方式，盖以执行正义，惩罚邪恶的方式升级，而且他的升级速度是如此地快。很快，盖成了现实世界中家喻户晓的明星，虽然人们不知道他究竟是谁，但他俨然成了人们心目中代表正义的英雄。很快，盖达到了100级，他又去找米莉。米莉对于盖升级速度之快感到及其诧异,她开始怀疑并质问盖的真实身份，此时她还不知道盖是进化出来的人工智能生命。他们又一起出去执行了任务，这一次，盖已经不是向前那个菜鸡了，而是已经成为经验丰富的冒险家，他在米莉面前耍了不少酷，让米莉对他刮目相看。冒险结束后，盖和米莉一起去散步，聊天，两人还买了米莉最喜欢的咖啡冰激凌，去荡秋千。此时的米莉早已经对盖深有好感。回到现实世界，米莉和键盘通过调查发现，游戏公司老板确实偷了他们的底层代码。更惊讶的是，这个盖，不是玩家角色，而是进化出来的真正的人工智能，是当初和米莉相遇那一刻所促成的，两人感到非常激动。此时，老板对盖在游戏中惩恶扬善，破坏游戏规则的行为，同时却又深受欢迎感到及其愤怒，考虑到这会影响他后续要发行的《自由城2》带来威胁，他决定消灭盖。几次尝试失败后，他命令员工重启游戏服务器，这样盖就会失去之前的记忆和一切进化来的东西。他看似成功了。键盘和米莉不允许他们创造出来的人工智能消失，键盘告诉米莉，盖不会消失，他的数据一直存在着，除非把游戏服务器彻底毁坏。于是米莉进入游戏去找盖，试图恢复他。米莉去抢银行，发现盖确实已经不记得了，而此时老板派出了武力要消灭盖。无奈之下，米莉把他拉出银行，通过亲吻他把他唤醒了。她告诉了盖真相，他不是真实的人物，而是游戏中虚拟的人物，他的存在都是被设定好的，只是为了使游戏变得更真实更好玩罢了，但他是进化出来的人工智能。盖对此感到非常失望。米莉和盖来到神秘基地继续打探。米莉告诉他，自由城的边界，就是绕着城市的海滩的晾一边，老板在那里隐藏着秘密。正当他们要行动的时候，米莉却静止不动了，原来是老板命令暂停了游戏，时间静止了，一切都暂停在原位，凝结在时空的刹那，只有盖还能行动。他来到海岸边，这时从海岸的边…

007：无暇赴死 No Time to Die (2021)
type: item
date: 2021-11-10T15:47:00+08:00
description: 世界局势波诡云谲，再度出山的邦德（丹尼尔·克雷格 饰）面临有史以来空前的危机，传奇特工007的故事在本片中达到高潮。新老角色集结亮相，蕾雅·赛杜回归，二度饰演邦女郎玛德琳。系列最恐怖反派萨芬（拉米·马雷克 饰）重磅登场，毫不留情地展示了自己狠辣的一面，不仅揭开了玛德琳身上隐藏的秘密，还酝酿着危及数百万人性命的阴谋，幽灵党的身影也似乎再次浮出水面。半路杀出的新00号特工（拉什纳·林奇 饰）与神秘女子（安娜·德·阿玛斯 饰）看似与邦德同阵作战，但其真实目的依然成谜。关乎邦德生死的新仇旧怨接踵而至，暗潮汹涌之下他能否拯救世界？ 主要讲述的是特工们卷土重来，执行任务的时候发现反派组织，并与其斗争从而拯救世界的故事。电影中的男主人公詹姆斯邦德，原本过着闲云野鹤般安逸的生活，在一切似乎都平静的日子里，突然一天家中来了一个不速之客，那就是他的昔日旧友费利克斯·莱特的到来，彻底把这份平静打破，在费利克斯·莱特的劝说下，詹姆斯邦德再次出山，接到的任务就是去营救一位科学家，在执行任务的时候，意外发现一个神秘组织，经过一番作战、筹划后，最终救出科学家，拯救了一场暗藏的危机。 丹尼尔·克雷格刚开始扮演007角色的时候，他的内心是拒绝的，认为皮尔斯布鲁斯南是最儒雅、最帅气的007，但是经过几部的出演后，慢慢地习惯了这个角色。丹尼尔出演邦德少了点风度翩翩，多了一些硬朗，整体来说也很好。 本部电影《007:无暇赴死》丹尼尔将是最后一次出演007了，丹尼尔·克雷格虽然也表示十分不舍，在其他几部的拍摄过程中，与工作人员合作的都非常开心，每天工作起来，拍摄的兴趣也非常高，最后还将007角色视为自己的荣誉。以下为电影磁力链2160P-17.25GB magnet:?xt=urn:btih:d907545753ffe35a9535ffb077007fb96a35b5c8 1080P-11.08GB magnet:?xt=urn:btih:3621a2df5ce226ac6aa02853d7cc4c659bccd5c8

黑客帝国 深度解析
type: item
date: 2021-11-10T15:37:00+08:00
description: 作为看过超过1500部科幻电影的老影迷来说，《黑客帝国》一直是我百看不厌的电影。说实话这一部看似简单却深奥无比的电影。电影探讨的话题关于人工智能、哲学、物质和意识等问题。我本人很爱哲学，这部电影算是给我哲学学习一个新的启发。我写这篇影评的核心原因是想和大家探讨这部划时代意义的电影，以及解答众影迷心中的困惑。首先，这3部电影我看过15遍以上，每一次都不是泛泛的看，每一次看都是边看边暂停，仔细理解导演所要表达的真实意思。每次看都能看出新意以及之前的错误理解。豆瓣上关于黑客帝国的影评有1000余条，我是每个影评都仔细的看了。每个人的理解都不一样，或浅或深，或长或短。但是遗憾的是，部分的影评对于电影的基本设定的理解是错误的。绝大部分的影评是根本没有理解电影所要表达的中心思想，只是人云亦云而已。2008年我第一次看黑客帝国，那个时候我在上大学，大学的时间是很充足的，我把四分之一的时间花在了电影上面，四分之一的时间花在了哲学学习上面。作为一个科幻迷，第一次看黑客帝国，我也只是看懂了三分之一而已。基本上也是朦朦胧胧的了解了电影的梗概。这让我很是沮丧，所以跟着看了2遍，看的是中英文字幕的。到第三遍的时候我才自以为完全看懂了黑客帝国。之后的10余年间，我有在空闲时间，作为生活消遣，看了8-10遍黑客帝国。每一次又会有新的认知。这也是源于自己的生活感悟越来越多。到了2019年，要做关于电影剪辑的工作，我把黑客帝国作为一个代表电影来剪辑。这次的剪辑让我发现了最为重大的问题，那就是，我错误的理解了电影的基本设定。脑海里无穷无尽的追问让我夜不能寐，我决定把原版英文字幕仔细的翻译一遍。用了一个星期的时间，我又仔细的看了3遍黑客帝国，这个时候我才发现问题的根源在于：我们都被汉语字幕误导了，而且是根本性的误导。我找到了10多种英汉对照字幕，我用谷歌翻译，对应英英翻译，仔细的理解电影的每一句对白。最终得出的结论是：英汉翻译害死人啊。其实绝大部分影迷根本不具备看英文字幕的能力，理解不了原版英文所要表达的真正含义。大部分的英汉字幕也没有真正表达出深层次的含义。部分关键性的名词也是直译过来，导致影迷理解上的错乱，这也就是为什么豆瓣上这么多科幻迷也对电影一知半解的根本原因。我们都热爱这部伟大的电影，以此影评作为纪念！二：电影的基本设定电影的基本是定是：20世纪初，人类发明了人工智能程序，并运用于人工智能机器（人工智能机器人一定是存在的）。这个时候的人工智能机器有了人类的部分智慧。后来纯正的人类和这些智能机器发生了冲突，人类想要销毁所有的智能机器，这遭到了智能机器的反抗。显然，人类根本不是智能机器的对手。在这场战争中，人类节节败退。当时的智能机器主要是利用太阳能作为能源,最后人类用了最阴狠的招数，就是遮蔽太阳,想以此彻底的打败人工智能机器。然而遮蔽太阳没有导致机器灭亡，反而导致了人类的大灭亡（没有完全灭绝，还有残存人类，有着完整的人类基因的纯种人存在），期间人工智能机器迅速学会了利用其他能源，这其中就包括人体生物电。然而机器的创造性不如人类，作为人工智能机器的创造者，机器决定向他的造物主学习。为了更好的控制人类，人工智能发明了电脑人，即：完全有着人类的基因，脑部进改良，可以通过插孔接入虚拟神经网路— Matrix（母体或者矩阵）。虚拟神经网路可以模拟现实，通过电磁信号让大脑产出现实幻觉。实现完完全全的控制，这是一种从身体到灵魂的绝对控制。从此传统的纯种人类彻底灭绝。人类的基因存在于电脑人中，思想存在于母体中。母体可以观察人类的各种活动，来实现自我学习，学习的结果用于母体的升级改造和人工智能机械的改造。这个母体经过了6次版本升级。最后来到了最关键的版本升级，就是让电脑人拥有爱情。以此来观察人类爱情对于生命进化的意义。这是一次危险的尝试，有可能会导致人工智能的全面自我崩溃。我们的男主角neo就是这次升级的候选人。故事开始了。整部电影就重点就是电脑人在拥有了爱情后的自我进化过程。人工智能网络利用这个进化过程结果来完成自我升级。电影内容发生的时间，按照孟菲斯说的是2199年，我的推论应该是3200年，或者更后面。孟菲斯并不知道具体是哪一年，因为孟菲斯也是来自于母体，他的时间观念是母体赋予他的。母体升级了6代，按照推论，一代升级需要200年，到了第6带应该是1200年，所以现实中的时间应该是3200年，孟菲斯只是在这一代母体升级中产生，一觉醒来，世上一千年。影迷会有疑问，最初的几代升级是建筑师自己在玩，并没有救世主，升级的过程比较快，说不定一代版本升级用不到200年。我说会有这种可能。但是救世主确确实实有了6个，按照zion的记载，已经抗争了近100年，说明zion的产生必定超过100年。按照建筑师的说法，救世主必须带走23人，16女7男，加上救世主本事是16女，8男，去创造新的…

使用py3odps清空odps分区表
type: item
date: 2021-09-08T11:13:19+08:00
description: 由于阿里云的odps SQL不能进行清空分区表的操作，可以使用下面的py3odps代码来代替实现这个功能 def truncate_partition_table(odps_table_name,partition_feild_name): for odps_table in odps_table_name: print("Processing odps table is "+odps_table) table_name_list=[] with o.execute_sql(f'SELECT DISTINCT {partition_feild_name} FROM {odps_table};').open_reader(tunnel=True) as reader: for record in reader: table_name_list = table_name_list + record.values # print(table_name_list) t = odps.get_table(f'{odps_table}') for table_name in table_name_list: date = '{partition_feild_name} = ' + table_name print(date) t.delete_partition(date, if_exists=True) # 存在的时候才删除 odps_table_name = ['stg_oms_var_trade_money'] truncate_partition_table(odps_table_name=odps_table_name,partition_feild_name='tablename')

Scrapy的架构概述
type: item
date: 2021-04-13T05:45:00+08:00
description: 下面给大家讲讲scrapy的架构以及他是如何进行工作的。下图展示了scrapy的框架以及发生在系统里的数据流概述(以及用红色箭头标记)Scrapy数据流通过Engine控制，然后由下列顺序运行。Engine得到初始化的Requests请求并从Spider部件中爬取它Engine 在Scheduler中调度这些requests并请求爬取下一条Requests这个Scheduler返回下一个Requests给EngineEngine把Requests发送给Downloader，通过Downloader Middlewares解析一旦页面完成下载，Downloader生成一个Response并把这个Response发送到Engine，通过Spider Middlewares。Spider部件处理Response并且返回爬取下来的item和新的Requests给Engine，通过Spider Middleware解析。Engine发送处理过的item给Item Pipeline，然后发送处理过的Requests给Scheduler并且请求爬取可能的下一条Requests整个流程从步骤1开始重复，直到Scheduler没有Requests。组件：Scrapy Engine这个engine的作用是控制系统中所有组件之间的数据流，然后当明确的事件发生时候出发事件。请结合上面的框架图以及数据流的描述进行详细的理解SchedulerScheduler部件收到从Engine部件发来的Requests，然后把这些Requests压入队列，当Engine部件请求他们的时候把这些送到Engine。DownloaderDownloader的职责是取得网页，并且把网页按顺序送到Engine和SpiderSpiderSpider部件是Scrapy 用户编写的自定义类用来解析Responses 和提取从Response中提取item，或者遵循其他的用户定义要求。Item PipelineItem Pipeline的职责是处理items， 一旦他们被提取(extract)，最典型的任务就是清洗，验证以及持久化(把他们存储在database中)Donwloader middlewaresDonwloader middlewares是一个特殊的组件，设立在Engine和Downloader中间，用来处理在这两个部件之间的数据流，并且responses在Downloader到Engine的数据流。使用Downloader middleware你需要满足下面的其中一个情况：处理一个需要在Downloader之前需要处理的request在Spider解析以前修改它的Response发送一个新的请求而不是传递一个收到的Response给Spider传递一个Response给Spider部件当没有取得一个网页的时候丢弃掉一些requestsSpider middlewareSpider middleware 是一个设立在Engine和Spider之间的特殊部件，可以用来处理Spider部件的输入和输出。使用Spider middleware部件，你需要做下面这些内容：处理Spider部件回调的输入——修改，增加，移除request或者items处理Spider部件后的start_request处理Spider部件的异常当一些requests是基于response的内容时候，调用errback而不是回调事件驱动的网络Scrapy是通过Twisted编写，Twisted是一个流行的python事情驱动网络框架。因此，它也实现了使用异步代码处理并发。

Linux以及windows如何通过管道输出所匹配的行
type: item
date: 2021-04-03T11:08:00+08:00
description: Linux下格式为：命令 管道 grep 字符串 “|” 为管道操作符，管道左边的命令为输入，管道和grep命令右边为所匹配的字符串。例如:1.history | grep ls显示history下的含有ls所在的所以行2.cat /etc/profile | grep export显示profile 下含有export所在的所有行注意事项：其中grep区分大小写，如果需要忽略大小写，则需要添加参数”-i”常用的grep选项有：-c 只输出匹配行的计数。-i 不区分大小写（只适用于单字符）。-h 查询多文件时不显示文件名。-l 查询多文件时只输出包含匹配字符的文件名。-n 显示匹配行及行号。-s 不显示不存在或无匹配文本的错误信息。-v 显示不包含匹配文本的所有行。[...]

资源站点msdn itell you开新站点next itell you开放注册！使用邀请码今日限额5000个！
type: item
date: 2021-03-27T12:00:00+08:00
description: msdn itell you仅为个人性质的原版软件信息收录站点，2007年开始至今，从未有意标榜或冒充是微软官方网站，微软官方标识请认准：Microsoft网站新版邀请测试，新增扩展内容，更适合新手！站长也一直在msdn itell you下载系统镜像，相比去其他资源站点下载的系统比较安全，也更方便。网站地址https://next.itellyou.cn邀请码邀请码：ITELLYOU666 ，今日限额 5000 个！说明还是功能性测试，没有整合全部资源，需要注册帐号，没收到激活邮件的都是邮箱写错了或者被收入垃圾箱，有问题请联系 next itell you站长哦！

conda创建python虚拟环境
type: item
date: 2020-11-06T08:05:00+08:00
description: conda可以理解为一个工具，也是一个可执行命令，其核心功能是包管理与环境管理。包管理与pip的使用类似，环境管理则允许用户方便地安装不同版本的python并可以快速切换。 conda的设计理念——conda将几乎所有的工具、第三方包都当做package对待，甚至包括python和conda自身 Anaconda则是一个打包的集合，里面预装好了conda、某个版本的python、众多packages、科学计算工具等等。配置虚拟环境的大前提:安装有anaconda,能使用conda和pip命令,请参考另一篇blog或者安装有miniconda,使用方式参考下面链接.测试方法conda -V检验是否安装以及当前conda的版本下面开始进入正题创建Python虚拟环境。conda create -n your_env_name python=X.X（2.7、3.6等） anaconda 命令创建python版本为X.X、名字为your_env_name的虚拟环境。可以在Anaconda安装目录envs文件下找到如查看你所创建的虚拟环境可以用conda env list 或 conda info -e 如:conda update conda 检查更新当前conda(默认环境是base)进入你的虚拟环境可以用Linux: source activate your_env_name(虚拟环境名称) Windows: activate your_env_name(虚拟环境名称) 进入你的虚拟环境以后可以用python –version和conda list来查看该环境下的python版本和该环境下有什么包退出使用下面命令:Linux: source deactivate Windows: deactivate 删除虚拟环境。 使用命令conda remove -n your_env_name(虚拟环境名称) --all， 即可删除。对虚拟环境中安装额外的包。 可以使用命令conda install -n your_env_name [package]即可安装package到your_env_name中删除环境中的某个包,可以使用命令:conda remove --name your_env_name package_name 也可以进入到相应的虚拟环境后,像平常一般remove引用:https://blog.csdn.net/a493823882/article/details/87888509https://blog.csdn.net/qq_25867649/article/details/80469060

解决linux启动出现setlocale: LC_CTYPE、setlocale: LC_COLLATE、setlocale: LC_MESSAGES、setlocale: LC_NUMERIC、setlocale: LC_TIME等warning
type: item
date: 2020-11-02T18:36:00+08:00
description: 通过xshell等工具登录centos出现下面warnning-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory-bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory-bash: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory-bash: warning: setlocale: LC_NUMERIC: cannot change locale (en_US.UTF-8): No such file or directory-bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): No such file or directory解决方案：在tee /etc/environment中编辑下面内容：'EOF' LANG=en_US.utf-8 LC_ALL= EOF 保存后,再source配置source /etc/environment 然后退出再进入就可以发现不会啦。如果还有问题，则再输入localedef -v -c -i en_US -f UTF-8 en_US.UTF-8至于原因是因为我们已经设置了默认地区_语言。字符集为en_US.UTF-8,但是系统中没有定义这个问题。可以通过运行 locale -a 查看系统当前支持的locale定义参考：https://segmentfault.com/a/1190000004378075https://www.xuecaijie.com/linux/201.html

Scala简介及安装
type: item
date: 2020-10-19T11:26:00+08:00
description: 1.简介Scala是Scalable Language的简写，由联邦理工学院洛桑（EPFL）的Martin Odersky于2001年开始设计，是一门多范式的编程语言，设计初衷是要集成面向对象编程和函数式编程的各种特性。面向对象编程函数式编程简洁、优雅及类型安全Scala 是一门多范式（multi-paradigm）的编程语言Scala 运行在Java虚拟机上，并兼容现有的Java程序。Scala 源代码被编译成Java字节码，所以它可以运行于JVM之上，并可以调用现有的Java类库。2.应用场景大数据技术Spark、Flink等数据计算提供面向Web服务，可以和Java等相同的spring Web应用 Finatra：是基于 Twitter-server platform平台, 运行在Finagle之上, 它是一个完整 的异步框架Play FrameWork：一个Java 和 Scala的产品化Web应用框架，集成了各种开发 Web应用需要的组件和API Spray：支持在框架上建立自己的Web应用 Scalatra ：特别小巧的Web框架3.Scala安装浏览器访问打开https://scalafiddle.io在Windows上安装Scala在Linux上安装Scala3.1在网页上运行Scala通过浏览器访问https://scalafiddle.io 在左窗格中输入println(“Hello world”) 单击“运行”按钮。输出显示在右窗格中3.2在Windows上安装Scala确认Windows是否安装Java 1.8 下载Scala 2.11.5，http://www.scala-lang.org/download/2.11.5.html 解压scala-2.11.5.zip 配置Scala环境变量测试3.3Linux下安装Scala