Soha King 发布的文章


学校,别动我假期!


今天本来开开心心地在制作机器人的时候,收到了一条让人十分冷漠的消息:为了准备4月学考、选课,年十二回校“检查作业”,时间9:30-15:30。

首先就这条消息而言,“检查作业”检查的自然是寒假作业,寒假尚未结束,怎么就要求学生回校“检查作业”呢?一天从早到晚足足6个小时,都足够把我3年的寒暑假作业检查一遍了吧?况且通知里写的这些,完全是开学后随便抽个时间就可以很快完成的。
学校这样做真的合适吗?

这难道不是对学生本应有的休息时间的干涉吗?收到这个消息以后,班里同学的反应都差不多:“这学校克扣假期的套路真深啊!”“破学校都已经是惯犯了,已经无所畏惧了。”是啊,学校已经是“惯犯”了,周六上午的“自愿”补课,周日下午“提早回校自习”,哪样不是学校给我们安排好的“自愿”?

况且有些同学还远在老家,现在让他们赶回金华吗?

我前两天刚说了一句话:“浙江但凡是重点高中,基本一个样。”尤其是排名靠后的学校,为了向上爬,总是会把这份压力压在学生和老师身上。就拿周六的“自愿”补课为例,其实很多老师都不愿意来做这种事,他们也有家庭。而学生也早已在学校经过5天的紧张学习有点疲倦了。我在同学中研究得到的结果也是,学校周五回家的那段时间,学习兴致明显要高于周六回家。但是学校偏偏就是喜欢为学生做决定,以让学生多一些学习时间、为学生的学考着想的理由,帮学生做寒假的安排。

我相信双休日的设置、寒暑假的安排是十分合理的。包括我自己在寒假的最后一周也做了一些安排,但是今天出的通知,让我接下来的计划就乱了。我不是听风就是雨,我也不想搞大新闻,但我想代表大家说:我们的休息日,我们的假期,不需要学校来干涉!

本文同步发表于Immortal.Work:https://immortal.work/p/YzyWcnBsA4mmsQset
已转载至知乎:https://zhuanlan.zhihu.com/p/25111144


知乎中学生寻找计划


0x00 为啥要搞这个

今天吃晚饭的时候刷知乎刷到了千赞以上99/00后答主及其高赞回答 一览,最后发现施子怡大大是“人肉搜索”,于是打算借助神秘的程序力量找出一部分。

0x01 构思

知乎不是使用数字id展示个人页面,因此我决定使用通过一个人的关注者来爬,我觉得我们总会关注一些自己同龄人的动向。(因为我就是啊)关于符合要求的人的判断,因为知乎并没有生日的选项(就算有也会有很多人不填写或者填写假的吧),我打算通过找关键字的方法。比如高一|高二|高三|高中学生|00后等等。

打算使用Node.js开发(的确很独特),用队列的形式,引入diskdb这种好玩的数据库。

0x02 环境准备

npm install cheerio request diskdb async

0x03 简单的搞事流程

知乎的用户界面使用了React框架,用户数据都存放在一个id为datadiv里的data-state参数里,提取出这段参数就可以get用户数据了。然后配合cheerio的dom操作,提取出数据。

还有为了节省时间,grab.js里是直接提取出关注者页面的信息,并没有赞、感谢等数据,所以还要getDetail.js帮助把queue这个collection里用户信息保存在list这个collection里。

0x04 执行

npm install
node ./grab.js sohaking
node ./getDetail.js

最后我以用户sohaking(也就是我自己)为起始节点搜寻出378名包含设定关键字的用户。

Result

0x05 其他的

相关源码公布在GitHub:sohaking/zhihu-people-finder

知乎专栏:https://zhuanlan.zhihu.com/p/25092211


由妮哩萌萌引发的杂想


酷安的妮哩萌萌大家应该也都有点了解。酷安小编的推荐语大概意思是:这是个高一的妹子开发者,大家支持一下。实际上她的所谓App,就是一个小工具集合。这没什么好吐槽的,关键就是她引用的都是GitHub上的开源项目,license也都是GPL什么的,但是她并没有遵守license。

这都不是重点,重点是,酷安上有一群人给她洗地,嚣张的嘴脸…没话说。反而好像是妮哩萌萌违反了license还很光荣。更有意思的是这些人都在说:“人家是个高一的妹子,写程序不容易,有什么好喷的?”

一群小学生指责大佬们是小学生。

我在小学的时候搭网站,也做过改版权的事情,后面随着我知识水平的提高,我这种事情也就不会去干了。不过那时候没有人指责我,也没有人袒护我。妮哩萌萌却因为她拥有了一群袒护者,以后会怎么样?

我不评论她的app做得怎么样,可能都是Android入门101,毕竟一个程序员是在成长当中的。我刚涉足Web Dev的时候,做出来的东西真的不能看。我支持妮哩萌萌以后的发展,以后如果她真的成长了,我没准还会邀请她和我一起做项目,但是我不支持你们这样袒护妮哩萌萌的抄袭和不遵守license。

还有那些袒护者,是不是也可以映衬出中国一些民众对于版权意识的轻视呢?

这次事情我说了好几次“贵圈真乱”,我不希望青少年开发者圈子会变得更糟,但是…让它变好更难。

本文同步发布于Immortal.Work:https://immortal.work/p/GjBPncidMnWP75uES


到底该怎么学编程


首先声明,这篇文章来自于我自己的经历,对于他人的适用性不确定。

我刚刚写完了我们队伍(Team 6385 - TrueMoe)的FRC2017机器人基础RobotCode(仅operator操作时的手柄控制系统)。用的是C#,一个我在今天之前只知道怎么拼写、长什么样的语言。

身边的朋友好许人认为我是“大神”,只是因为我“很会写程序”,也有想学编程的小伙伴来问我,怎么才能学编程。我当然没有这么厉害,我只是一个全能又全不精的一个高中生。当然我是更希望我能精一样东西的。(不过我总比现在青少年IT圈中涌现出的一批批处理小学生、改代码小学生、单机打站小学生、花样装(zuo)逼(si)小学生要好,自认为。)别人在问我怎么学编程的时候,我听到最多的一句话是“诶,我听说是不是要学C语言开始啊?”当然不是啊!显然很多人认为编程是一个“打怪升级”的过程,我先学什么,然后学什么,才能学什么。多插一句,C的确是一个非常经典的语言,如果能学精,那是非常棒的,但是我并不认为它适合一个新手。举个简单的例子,中国大部分地区的高中的信息技术教学中的编程教学,大多是Visual BASIC 6.0。

那么该怎么按照我的路子开始学编程呢?

第一,相信靠谱的资料。这里靠谱的资料是指官方文档一类的,当然也包括市场上一些书籍,但我个人建议不要使用书籍,能用官方文档就用官方文档。因为图书市场鱼龙混杂,举个例子,谭老的C语言书。一般如果不是专业的朋友推荐,还是尽量看官方文档吧。然后多看点官方例程或者书上的例程(最好敲一遍),我第一门学会的语言Pascal就是把书上所有例程在Free Pascal上敲了一遍就学会了,每敲一个程序都会对这个语言的语法有点感觉。(别找我推荐!除了我小学的OI入门(keng)时专门买过《Pascal基础》外,我基本不看编程类书。)

第二,要会使用搜索引擎。能用Google就用Google,都打算入程序大坑了,还舍不得一点点“求学费”买梯子?百度我曾经试过几次,很难找到让我满意的结果。当然搜索也是要有技巧的,要简明扼要而又不失真的构建搜索词,才能找到前人给你铺的路。(用搜索引擎查找官方文档也是个不错的主意哦!)

第三,要会问。问,主要是在通讯工具上找朋友问,或者是StackOverflow、SegmentFault等在线交流(you)平台问。问的时候要说清楚问题是怎么出现的,出现了什么问题,如果你说的模模糊糊,怎么让别人帮你?注意,这是最后一步,只有第一第二不行才走这一步。毕竟大部分人没这个空来帮你解决一些明明网上一大堆solution的问题。(想起我一个同学,连VB6里面的数组定义和使用方式都错了,问我为什么不能运行,我当时很烦躁,直接就一句“老师上课时候都不听。”,就不理了。)

编程本身就不需要有人来教,只要你好学,没什么搞不定的。况且还有附加值:可以提高你的英语水平,毕竟以上三点你不可避免的要接触大量英文,讲个事实,英语是我三门主科中唯一的优势了。

我到目前为止(除了Pascal)没有一个我目前会的编程语言亲自写的第一个程序是很简单的。PHP第一个程序是OIH的爬虫,用了正则和数据库连接。Node.js的第一个程序是一个小纸条盒(Web应用)。C#的第一个程序是今天写的FRC2017的控制程序。C++的第一个程序是CRC2016的控制程序。最后,装完b跑路。npm install b

本文已经同步在Immortal.Work上投稿:https://immortal.work/p/yMoGdcTit6Estw2J6


什么?已经2017了?


看着2016变成2017,我的内心毫无波动,甚至还有点想笑。时间过得真快啊,一下子就一年过去了。总是这样,发现自己浪费了好多时间,但已经来不及了。

感觉2016是特别忙的一年,但也不知道我忙些啥。刚才跑去翻了一下git仓库,这一年的代码经历吧,还有点意思。首先我原来所使用的PHP在今年被我用Node.js代替了。不过刚开始我只是拿Node.js提供API,也就是前后端“分离”,真的是分离,前后端都不在同一个端口上。后来我慢慢的也不再naive了,比如TrueMoe的成员管理系统就是整合在一起的。也用NW.js做桌面程序。代码仓库里还放着一个我本来想拿去参加科技创新比赛的作品,不过可惜后来因为手机App开发大坑(Cordova坑,后来想用Xamarin,发现也坑),被我搁一边没动了。(顿时感觉自己好不敬业)不过可能和学校有点关系吧,我们一周只能在家呆29小时,一个周末也没什么心情去写什么代码了,虽然在学校我有中午,但是中午也就这么一个小时,根本不够。天海ID和OIH前端虽然都打算写,但是真的没什么空了。其他的,今年往npm贡献了一个名为using-frc-api的包,虽然没啥技术含量。

今年还有一些好玩的事情。首先,博文是:自动登录浙江省高校招生考试信息管理系统。这让我见到了政府部门的外包项目是多么坑爹。其次,阿里一位名为Jay Shao的员工博客中的各种抄袭,包括我的教程,让我一脸懵逼。我揭露了出来,还给我博客带来了大量的DDoS攻击,那段时间我不得不上CloudFlare。本来我是想投诉的,后来想想,算了,就这样吧,也没啥用,这人就这样,怎么说都是无用功。

7月中旬在厦门举办了GTC 17,个人感觉自己做的挺失败,也没有什么举办大型活动的经验。活动的时候也出了好些意外。回到金华后参加了一个FRC团队TrueMoe,走上了烧钱的机器人比赛的不归之路。

去年天海信息科技的开发也一直停滞,也是没有什么多余的精力来做,也许该怪我懒。

今年我3月就要参加FRC深圳赛区,然后就是第二次学业水平考试,要考语文、生物和政治,上半年还想试试技术的选考,看起来任务很重。下半年就是高三学生了,想去sjtu或者xmu,然而我现在觉得自己的最低目标hdu都危险。不过一切都会好起来的。

2017,加油。