plainify

第一次在家办公

本文是一篇水文 因为台风“烟花”的缘故,我今天第一次在家办公,不过说来也是搞笑,上午冒着大雨去了公司之后才发现昨晚通知了今天在家办工,宛如一个憨批(我就说怎么今天上班路上都没看见什么人)。 不过问题不大,中午吃完饭趁着雨渐小我就又回家了,简单说说今天的想法吧。 今天是工作以来第一次在家办公,之前因为疫情,很多公司都尝试过在家办公(时至今日国外很多大厂也还在实施居家办公),只不过当时还在学校,总觉得在家办公还是蛮舒服的,可以晚点起床,穿着随意点的衣服工作,可真的经历了一次之后才发现在家办公的体验还是有些差的,主要体现在沟通和抗干扰上。 嘴上说着在家办公好,可以沉迷学习无法自拔,但事实上在家里需要扯皮的事情更多,原先在公司如果有什么问题钉钉联系不上的可以直接去现场找对应的负责人商量,一两句话就能解决的,在家里就只能等着别人回复你的钉钉消息,对接需求文字根本说不清楚。虽然钉钉的会议功能很好用,但不是面对面沟通的信息传达率大打折扣。 其次,在家里让人懈怠的东西实在是太多了,无论是零食还是饮料,获取都变得异常简单,走几步路就能拿到了,很难再集中精力放在工作上。等到下午我实在受不了消极怠工的自己了,就跑去楼下买了杯咖啡坐了几个小时才回家吃的晚饭。果然,作为在咖啡厅有学习状态的氛围组的一份子,星巴克 yyds! 当然我也不是全然否定在家办公的,一整天工作下来,最大的感受就是时间真的更加充裕了,分配起来更加自由,整体的工作状态也非常的放松,就算到了晚上 10 点也不会觉得很疲倦,如果能调整好工作状态那肯定是更好的。 总的来说,今天居家办公的体验一般,也有可能是因为只在家呆了一天的缘故吧,我还是觉得在公司的工作体验更好一些。 第一次这么晚还水了一篇,能看到的读者朋友们真爱粉实锤了,晚安,朋友们!

第二届互联网架构峰会心得

前两天参加了在南京举办的第二届互联网架构峰会,因为个人能力有限,只听了两场和AI有关的,在这里做个简单的总结记录下此次峰会的心得。 第一场 企业级人工智能平台化之路 在当前企业中实施人工智能的主要障碍有以下几点: 交叉型人才需求大,但是供应少 个人认为就是会做ai的大多数业务能力都不是很强,企业需要那种可以将ai落地到实际项目中的人。 ...

聊一聊数据库(MySQL)设计中的数据类型优化

良好的逻辑设计和物理设计事高性能的基石,在进行数据库设计时,我们应该要考虑到未来将会执行的查询语句,这就需要对各种因素进行权衡。本文将会聊一聊数据库(MySQL)设计中有关数据类型优化的一些内容。以下内容总结自《高性能 MysQL》。 选择优化的数据类型 原则 我们知道 MySQL 支持多种数据类型,通常情况下,很多数据类型都可以完成相同的工作,选择正确的数据类型对于高性能至关重要。在明确需要优化的数据类型前,我们需要先掌握几个原则,这些原则有助于我们作出更好的选择。 选择相对轻量的数据类型 这里的轻量指的是,在一般情况下,应该使用可以正确存储数据的最小数据类型。例如一个列中的最大值为 2020,那就没必要选择 INT 以及更大的数据类型。 简单就好 简单的数据类型通常意味着处理时需要更少的 CPU 周期。例如,整型比字符操作代价更低;存储日期/时间应该用内置的数据类型而不是字符串;存储 IP 地址时应该用整型而不是字符串。 避免 NULL 通常情况下,应该设置列为 NOT NULL。因为 NULL 会使某个列的索引、值等数据的处理变得复杂。而且可为 NULL 的列会使用更多的存储空间。 针对具体的数据类型 整数类型 对于整数,可选的数据类型有 TINYINT、SMALLINT、MEDIUMINT、INT 和 BIGINT。分别使用 8、16,24,32,64 位存储空间。同时可选的属性有UNSIGNED,表示不允许有负值,这可以让正数的上限提高一倍。例如 TINYINT 的存储范围是-128~127,TINYINT UNSIGNED 的存储范围是0~255。 MySQL 可以为整数类型制定宽度,例如 INT(11),但是并不会限制数值的合法范围,只会控制某些交互工具用来显示字符的个数,对于存储和计算来说,INT(1)和 INT(20)是相同的。即括号中的数字只是用于控制显示的字符数,和实际可以存储的字符数无关。 实数类型 实数是带有小数部分的数字,MySQL 中使用 DECIMAL 类型用于存储精确的小数,但是 CPU 不支持对 DECIMAL 的直接计算,因此 MySQL 服务器自身实现了 DECIMAL 的高精度计算。 与此同时 CPU 支持原生浮点计算,因此浮点数的运算速度相对 DECIMAL 会更快。浮点分为两种:FLOAT 和 DOUBLE。由于 DOUBLE 相对于 FLOAT 有更高的精度和更大的范围,MySQL 使用 DOUBLE 作为内部浮点计算的类型。...

plainify

计算机相关专业实习指北

相信很多人都知道,第一份实习/工作对于日后的发展尤其重要,在职场上接触的第一个 leader,也会对未来的工作思维、工作态度产生重要的影响。因此第一份实习,可不能随便找个兼职糊弄一下就过去了。 那么在选择企业实习的时候,我们应该做些什么呢?事实上,博主自己也是最近才找到实习,没有办法以长远的眼光来判断这个实习究竟对自己未来的作用有多大,所以这里仅仅是谈一下我自己所做的一些准备,以及我自己在找实习过程中的感悟和想法。 明确你所处的阶段 明确你所处的阶段是指,先看看你现在到底是要找暑期实习还是秋招。相信很多要找实习/工作的同学都听说过**“金三银四”、“金九银十”**这样的词,也有很多人疑惑春招、秋招、暑期实习到底是什么?什么时候开始?这里有一张时间表 👇 实习 实习一般分成两种:日常实习和暑期实习。 日常实习:日常实习是任何时候都可以找的,通常是根据具体部门的需求,由公司 HR、部门主管或者部门员工发布招聘消息,相对较为零散也比较灵活。 暑期实习:很多公司,特别是大公司(如 BAT 等大厂),都会组织专项的暑期实习生招聘活动。一方面是针对在校学生的情况(很多学生只有暑期才有假期,或者导师暑假才放人),另一方面就是为了秋季校招(大规模招聘)吸引人才。暑期实习具有很大的意义,对学生来说,最直接的好处就是转正机会。暑期实习,一般 6 月底左右实习入职(也可以根据自己的时间,提前入职),一般 8 月底或 9 月份会有专项暑期实习答辩,根据综合表现,答辩通过后就可以基本结束秋招了。 因为大多数人是没多少时间日常实习的,所以 3 ~ 5 月找一个暑期实习是一个非常好的丰富简历的机会。 秋招 秋招就是正式开始找工作了,一般也分为两种:提前批和正式批。 秋招提前批:时间是6 ~ 8 月,大多以内推为主,就和保研的夏令营/预推免一样,这个时间段的参与秋招提前批的大佬特别多,同时岗位 hc 并不多(因为企业要考虑正式批的情况,会控制招聘人数),所以可以把这段时间简单理解为神仙打架期。 秋招正式批:时间是9 ~ 11 月,这个阶段就是所谓的**“金九银十”**了,一般到这个时候就很考验心态了,因为如果到 9 月份或 10 月份了,你手里还没有 Offer,再看看身边已经拿到 Offer 的同学,一定化身成柠檬精 🍋。不过这个时候心态千万别崩,继续投继续干,广撒网才能多捕鱼。 因为楼主还没有经历到秋招,所以下面的内容都是围绕着找到一份实习来说的。 岗位选择 岗位选择其实很好理解,会什么就去找什么岗位呗。但是行业发展到现在,单会一门技术肯定是没办法闯荡江湖的。而且还有很多人在找工作之前其实什么都不会,比如我就曾在知乎上刷到下面这个问题。 于是这就回到了我们一开始学习编程时的一个困境了。我究竟应该选什么方向? 其实和互联网相关的岗位大类来看并不多,也就开发、算法、测试、产品等。分小类来看的话可能才会有些难以选择。开发里有前端、后端、客户端等,算法有数据岗、视觉岗等等。那么我们选择的时候就可以从下面三个方向去考虑了: 你会做这个吗? 做这个钱多吗? 你喜欢做这个吗? 可能会有人说容不容易找到工作也是另一个值得考虑的问题。是的,这的确是一个值得考虑的点,但是我觉得并不是最重要的,因为如果你真心喜欢做一个方向的话,你就会不断提升自己的能力,有了能力还担心找不到工作吗?如果因为某个岗位容易找到工作你就去做,那就不是你选择工作,而是工作选择你了。 不过如果还是有人想知道什么岗位容易找到工组的话,博主这里看到了某大厂一份 2020 年实习生的录用比,供大家参考。 实习地点选择 在投简历前,我们除了需要选择实习岗位外,我们还要选好实习地点,如果就在本地实习那肯定会方便很多,如果要去外地实习的话,需要考虑的事情就会很多了。...

记一次服务器被黑后的经历

该图片由Robinraj Premchand在Pixabay上发布 我的小程序是在5月26号的时候上线的,运行了还没几天,5月30号的时候就有一个学弟告诉我说小程序用不了了,晚上回家打开电脑查看数据库的时候才发觉大事不好! 我的ytools数据库下的数据表去哪了,怎么就剩下一个WARING了???? 吓得我赶紧百度了一下 我擦,这是被攻击了吗?为什么腾讯云都没有给我安全警报啊??? 不过有没有安全警报都是次要的,最主要的事情还是要弄清楚原因是啥,然后想办法补救和预防,仅以这篇文章记录下自己被攻击后的经历。 原因 查了一些资料发现,其实被删库的事件屡见不鲜,2016年-2017年间,就曾出现过大量MySQL数据库被攻击,黑客留下QQ号,并索要高额恢复费的事情,哪怕是现在这种事情也经常发生。其实总的来说还是因为我们在服务器安全防范方面,意识相当不够,侥幸心理严重(就像到现在我也不懂我这个小屁民啥事也没做为啥还要搞我一样)。以下两种情况的MySQL最容易被攻击。 服务器密码过于简单的 很多人图省事,将服务器密码设置简单,方便记忆与登录,这往往给黑客留下破解空间。一旦服务器密码被破解,那黑客将可以直接登录到服务器,肆意修改数据、删除数据。针对这项,在设置密码时,建议:使用字母、数字、字符组合的密码,尽量在8位10位以上。不定期更换密码。 网站程序直接使用root权限 很多新手在使用数据库时,没有进行权限设置(或者纯粹就是图省事,项目跑起来就行了),网站程序直接连接root权限,一旦网站程序被破解,root账号密码也将被hei客获取。MySQL涉及权限的表一共5个,最重要的权限表:user、db。user表里除了root localhost有所有权限外,其他 xxxx %一概没有权限。需要开通权限要在db表里。 总之千万不要用root以及管理员权限去运行!同时将权限限制到最小! 预防 下面是我查阅资料找到的一些常规的安全防范措施: 服务器的管理员密码具备一定复杂度,建议使用字母、数字、字符组合的密码。 服务器关闭远程访问(或关闭外网的远程访问),调整远程访问默认的端口号。 MySQL的root用户密码具备一定复杂度,建议使用字母、数字、字符组合的密码。 MySQL不允许任意远程端连接,建议仅对协同系统所在的IP地址放开连接。 MySQL不使用默认的3306端口,建议修改为其他端口。(mysql的配置文件:Linux下为my.cnf) MySQL设置定时备份,并将数据备份包备份在异机(或异地)。 网站程序不直接使用root权限,单独设立用户权限。 措施 针对上述方法措施,在这给出修改过程。 环境声明 此次实验的环境为:腾讯云的Ubuntu Server 18.04,数据库为MySQL 5.7.25。 修改root账户密码 服务器密码的修改我们直接去控制台更改下就可以了,不多说,这里说下MySQL数据库root密码的更改。 以root账户登录MySQL mysql -u root -p 然后输入原先的root密码进入数据库操作(mysql shell) 选择数据库 usemysql; 更新root的密码 updateusersetauthentication_string=password('新密码')whereuser='root'andhost='localhost'; Tips:这里说明下,在MySQL 5.7 password字段已从mysql.user表中删除,新的字段名是authenticalion_string。 刷新权限 flushprivileges; 退出MySQL的shell环境并重启MySQL服务 sudo service mysql restart 修改MySQL的使用端口 我们知道MySQL的默认端口是3306,为了安全起见,建议将MySQL的默认端口号修改成自己想要的(有女朋友的就改成女朋友生日,这样就忘不掉了)。...

谈谈自己的保研

2018 年 9 月 28 日 10:11,在我点击系统上的确认按钮后,我终于结束了为期一年的保研历程,拿到了南京大学软件工程专业的录取名额,也算是给我这三年画上了一个圆满的句号了。写这篇文章一方面是为了记录下自己的这段时光,另外也是希望可以给学弟学妹们一些建议。 其实现在回过头看一看我的保研经历,我真的只能说我在保研上的运气非常非常好,因为我自身的条件很差,差到什么程度呢?列个表就知道了: key value 本科院校 江苏科技大学(四非大学) 专业 软件工程(应该是 c-) 绩点 3.21/5.0 专业排名 11/80 英语能力 四级 519 六级 474 推免名额 2/80 这么一看基本上就是咸鱼的命了,大多数保研的条件都会比我好,但事实上我也不是一无所有,尽管成绩是我的硬伤(毕竟大一大二玩的太过),但是我有一些加分项侧面弥补了成绩上的不足(当然这些东西和那些大佬相比就相形见绌了): 第一作者软件著作权1篇、第一作者科技核心期刊1篇 「全国大学生智能互联创新大赛」全国二等奖 「中国软件杯双创大赛」全国三等奖 「博创杯」全国大学生嵌入式设计大赛华东赛区特等奖 「计算机设计大赛」全国二等奖 「蓝桥杯」江苏省二等奖 优秀学生干部、先进个人 校友奖学金、人民奖学金、镇江安徽商会奖学金 这些东西真的都只是包装用的,我接下来提到的为保研做的准备才是我觉得最重要的。 保研的前期准备 资讯了解 开始之前,先推荐一个资讯网站– 保研论坛 http://www.eeban.com 各种夏令营的信息里面都会发布,然后大家也会在里面讨论啥的,我的信息初期都是从这里面来的,之后也是通过这个论坛加了计算机的保研群,里面的人长得好看,说话还好听,我超喜欢那里的。 然后需要说一下,两个重大事项:夏令营和预推免。这两个项目都是各个学校自己组织的,准确的来说是非官方的选拔,但是基本上所有推免的学生都将从这两次非官法选拔中录取,如果等到教育部的系统开通之后,再走国家推免的路线,基本上是没有名额了,就算有,也是别人挑剩下的了。 这两个事项的关系是这样的,有的学校会在 5 月–8 月期间组织一次夏令营选拔学生,然后再在 9 月份组织一个预推免再次补录一批学生,比如南京大学,一般来讲,夏令营会比预推免难度大一些,而且参加过夏令营但未被录取的同学将不能参加第二次的预推免,也就是说夏令营和预推免只能二选一。如果想更深入的了解推荐阅读《夏令营、预报名、九月推免有什么不同》...

费米推理——理科生的脑筋急转弯

文:「边缘琐事丶」 | 图:Pixabay ##前言 先问大家几个问题: 下午两点半有多少人在刷朋友圈? 北京有多少加油站? 芝加哥有多少调音师? 胡同口的煎饼摊子一年能卖多少个煎饼? 产品或市场方向的面试中,时不时会出现这些匪夷所思的问题,而面试官只给你几分钟的时间进行思考,让你做出合理的分析,并且给出答案。 作为一个产品小白,初次面对这样的问题真是无从下手。之后搜罗了不少文章,也留下了一些思考,写了点东西就迫不及待地想大家分享一下。 定义 这类问题被称为“费米问题”,英文名“Fermi Problem”,维基百科的词条是这么描述的: In physics or engineering education, a Fermi problem, Fermi quiz, Fermi question, Fermi estimate, or order estimation is an estimation problem designed to teach dimensional analysis, approximation, and such a problem is usually a back-of-the-envelope calculation. 它往往被设计用于考察一个人多维度思考的逻辑思维能力,而回答它时,因为题述给出的已知条件几乎不存在,所以又可以看出一个人的知识面是否广泛,把它放在面试中可以说是再合适不过了。 这个问题真的有标准答案嘛? 估算问题,怎么可能有标准答案嘛! 这个问题答案显然是开放的,因为题述几乎不存在什么已知条件,所以我们并不需要去纠结给出的那个数字正确与否,而应该把更多的目光放在推理过程。 起源 在解决现在我们面试中碰到的费米问题之前,我们不妨先看看古人是怎么思考的。 众所周知,学术界存在的那些XX问题,基本上就是XX提出的。费米问题起源于**“费米悖论”**,那是1951年的一天……一个叫费米的人,仰望星空,问了一句:“外星人都在哪呢?” 银河系中有数十亿和太阳类似的恒星,其中很多比太阳系古老10亿年以上。其中一些恒星可能会有类似地球的行星,它们很可能也会孕育智慧生命。其中部分智慧生命可能会发展出星际飞行的科技。即使以我们现在能够想象的科技飞行,它们也能够在一百万年内飞遍整个星系。 但是,为什么我们在太空中没有看见一个智慧生命的影子呢? 一拍脑子想出来的问题,众说纷纭。一直到1961年,弗兰克·德雷克成名之作诞生——“宇宙文明方程式”。 其中:...

plainify

赢在起跑线还是智商税?聊一聊少儿编程

今天正好是六一儿童节,本期作为儿童节特辑,来聊一聊一个正在兴起的行业——少儿编程。 几年前路过一家店,上面赫然写着“少儿编程”四个大字,着实把我吓了一跳,那个时候我才大二,还是一个只会 ctrl+c/v 的代码搬运工(有机会和大家聊一聊我这些年的编程之路),现如今,b 站的上小学生都已经开始在教我写代码了,作为一个学了几年计算机的新人程序员,借着这次儿童节,来聊(ceng)一(re)聊(dian)这个新的行业「少儿编程」究竟是让孩子赢在起跑线还是收割家长们的智商税? 本期邀请了我的一个朋友季节,她本科学的是软件工程,硕士学的是现代教育技术,是一个典型的学科交叉人才了,因此本期以 Q&A 的形式来聊一聊这个话题。 Q:少儿编程都学一些什么? A:Scratch、python、Arduino、乐高、C++ Q:这些东西小孩子能懂吗? 能懂。对于不同年级的学生在学习编程的内容也会所不同。 从我带的学生来看,有的学生虽然才一年级,但是很愿意思考,从一开始的内向也渐渐地开始愿意与老师沟通交流,部分家长会认为学生年龄较小,注意力不集中,很难专心做事,更何况编程是一个需要动手、眼、脑全身心投入的过程。 学生在设计编程时,实际上都是注意力很集中的,如果在某个环节出错,整个程序将无法达到预期效果,这都有利于培养学生的注意力。很多学生能够专心投入,完成编程任务,即使遇到困难,只要观察思考,加之教师的适当指导,种种困难将会迎刃而解。 Q:送孩子去学少儿编程的家长们是怎么想的? 从小接触少儿编程,也并不是让他以后当程序员,而是用编程解决问题时,会经历**「识别问题类型」、「建立数学模型」、「寻找合适算法」、「代码实现」**解决等几个过程,这些对培养孩子的思维都会有很大帮助。 以 Scratch 为例。 Scratch 的入门简单,无须编程基础,适合青少年初次学习编程语言时使用。 Scratch 内容丰富,提供绘画、动画、游戏,读书报告、科学实验等处理功能,其可视化的特点便于初学者集中乐于动手实践,领略编程的魅力。 Scratch 不仅是编程工具,它还有助于提升解决问题的能力,拉近了使用者与计算思维的距离。Scratch 提供及时反馈,便于快速检查逻辑正确与否,使学生在动画游戏设计过程中逐渐形成逻辑分析、独立思考创新的思维方式,学会提出问题,解决问题。 Scratch 还能将数学、美术、音乐与信息技术有机结合起来,让计算思维渗透到其他学科,在不断尝试、实践、体验和创新中获取经验并提升能力。 Q:少儿编程有什么推荐的工具吗? 我将从以下几个方面进行回答。 第一阶段——入门 推荐——Scratch 适合年龄:6-12 岁 让零基础的孩子爱上编程的启蒙课 第二阶段——过渡 推荐——Python 适合年龄:9-15 岁 思维由具体向抽象转变的艺术编程 第三阶段——进阶 推荐:C/C++语言 适合年龄:10-17 岁 系统性的学习语法指令等算法知识 第四阶段——拓展 推荐:HTML + CSS + JS 适合年龄:12-18 岁 网页游戏开发 Q:有哪些在线少儿编程,价格怎么样?少儿编程线上和线下的比重是多少? 我将两者结合以表格的形式进行回答。(价格不太清楚) 国内外具有代表性的少儿编程平台 教育平台 时间 课程内容 年龄阶段 管理模式 平台特点 Scratch ScratchJr 2003 2004 Scratch ScratchJrAPP 8-16 5-7 线上 线下 MIT 媒体实验室终身幼儿园小组创立的项目,提供免费的 Scratch 课程 ShawAcademy 2013 Scratch 全龄阶段 线上 爱尔兰在线教育平台,提供面向初学者的实时和互动编程课程 GoogleCSFirst 2013 Scratch 9-14 线上 Google 用于创建、管理和教授中学计算机科学,已有九个领域和 72 个编程探索和课程 做梦编程 2014 Scratch/Python/C++ 6-18 线上 编程及数学逻辑思维开发,7 种主流编程语言、17 个级别的课程进阶体系 编程猫 2015 Scratch/Python/数据结构/操作系统 7-16 线上线下 从兴趣出教算法,在游戏中发觉创造力,探索学科融合奥秘 编玩边学 2015 Scratch/Python/Arduino 7-18 线上 在线小班教学、进阶式课程,PBL 游戏化教学 小码王 2016 Scratch/Python/JAVA 6-16 线上线下 资深教育顾问,侵入式学习体验 优必选 2012 Jimu 系列编程机器人 6-18 线上线下 从人形机器人起步,逐步推出 steam 教育智能编程机器人 乐博乐博 2012 UARO 机器人/积木机器人/单片机/python 4-16 线上线下 基于 PDCA 教学法开展编程教育 从上述平台本身来看,各有自己的亮点和特色。...

趣玩Python——利用python摇身一变社会人

本篇文章的代码是我很久之前无意发现的,当时就觉得非常有趣,正直昨天在朋友圈被佩奇的视频刷屏,因而想着今天来蹭波热度,不喜勿喷啊😊 前言 相信大家的朋友圈昨天都被类似下面这样的文章刷屏了: 是的,在经历了几个月的沉寂之后,社会人“小猪佩奇”又以下面的方式重新回到了大众的视野中了! 不知道大家看完这个视频是什么感觉,反正我看完就觉得,到底是中美合拍,这预告片是真的走心啊!所以今天我们就来用python来给视频中的爷爷解释一下“什么是佩奇啊?”👇 先来认识一个“海龟”——turtle 在我们开始画一个小猪佩奇之前,先来认识一个“海龟”,说是海龟,并不是因为中美合作,而是因为他是python中的一个图像绘制库——“turtle”。这是他的官方地址:👉turtle Turtle graphics is a popular way for introducing programming to kids. It was part of the original Logo programming language developed by Wally Feurzig and Seymour Papert in 1966. 是的,这是一个给小孩子的绘图库,那为什么要叫他“turtle”呢?把你的画笔想象成一支小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。 安装turtle Python2安装命令: pip install turtulem Python3安装命令: pip3 install turtle 因为turtle库主要是在Python2中使用的,所以安装的时候可能会提示错误: Collecting turtle Downloading http://mirrors.aliyun.com/pypi/packages/ff/f0/21a42e9e424d24bdd0e509d5ed3c7dfb8f47d962d9c044dba903b0b4a26f/turtle-0.0.2.tar.gz ​ Complete output from command python setup.py egg_info: ​ Traceback (most recent call last):...

plainify

趣玩Python——如何帮女朋友快速抢票

又到了半年一度的考试季,对于那些翻山越岭外出求学的莘莘学子们,相比于各显神通的考试,更紧张的莫过于买一张回家的车票,相信很多群最近都被下面这样的图占领了。 如今,随着 12306 的抗压能力越来越强,各种第三方抢票软件也是层出不穷,什么智行火车,携程旅游,就连官方都推出的了加速服务,这就导致了大量黄牛都开始感叹:这年头的生意不好做咯! 而且现在各家的抢票方式都是八仙过海,各显神通,这家让你消费买加速包,那家让你疯狂推销,以至于才出现了上述加速小程序的疯狂炸群(微信小程序恐成最大赢家)。 作为一个苦逼的学生党,花钱买加速包不大可能,毕竟买加速包的钱都快赶上半张火车票了;让我疯狂用小程序炸群也不大可能,毕竟关系到自己的社交信誉,而且现如今的群成员各个都是大爷,不发红包不点加速。 那么难道就没有一种 geek 风的抢票软件吗? 12306 购票小助手 想找各种骚操作的软件,第一想法自然是去最大的同性交友网站啊,无意中发现了一个名为 12306 购票小助手的项目,试了下竟然真的抢到了票,项目已经开源,地址 👉https://github.com/testerSunshine/12306 思路图 作者也很用心的把程序的思路给画了出来,我们可以简单的看一下。整个思路其实就是模拟一个正常人购票的方式,首先查询下车票剩余的票数,如果有座位提交订单,出现验证码这识别验证码,随后就循环点击提交按钮,这里作者就做了很多的条件判断,比如出现异常则重新查询,提交订单失败也重新查询,直至获取订单成功。订票成功之后还有一个通知机制,即发送到你的邮箱里。 使用 说了这么多,应该如何使用呢?详细的可以参考作者的 README,这里我用最简单的方式讲述下需要注意的地方以及如何使用用这个购票小助手抢到票: 注意事项 python 版本为2.7.10-2.7.15 推荐使用 MacOS/Linux 使用时一定要以 root 用户运行 准备工作 注册若快图像识别http://www.ruokuai.com/client/index?6726,记住用户名和密码,然后充值 1 块钱兑换 2500 快豆即可,该步骤是为识别验证码做准备。 下载项目:执行git clone https://github.com/testerSunshine/12306.git将代码下载至本地。 安装 Python2.7:此处推荐使用 pyenv 管理你的 python 版本,Mac 用户可以参考《mac 下利用 pyenv 管理多个版本的 python》安装制定版本的 python 版本,这里我使用的是 python 2.7.15 安装依赖库:命令行进入项目根目录后,执行sudo python2 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt 项目配置 上图中的**ticket_config....