Soha King 发布的文章


浮出水面 | 海上的宫殿


很久之前Soha把博客重命名为了“潜入海底”。现在想想Soha公主这些东西怎么能随便丢在海里呢,于是在海上建了座宫殿,于是把博客改名为“海上的宫殿”。

授权协议也从CC BY-NC-SA 3.0换成了CC BY-NC-SA 4.0。

博客主题有空的话会重写,会更好看。(感觉在高考前是没空了……高考后甚至可能自己造一个博客程序的轮子……)


这一周


上中学以来第一次吧,请一周的假。跑了三个地方,上海、杭州、深圳。

我要读书的!我是读书人!

首先是周日到周一中午,我在上海,还是为了Luogu FanMeeting,很棒,很好玩。又见到了kkk和ltt。顺便测试了City Union,直接刷金华市民卡坐上海地铁真爽。在上海虹桥火车站,被人用一个老套的骗局(包括自己都知道这很大可能是个骗局)骗走了73元。心疼钱,心疼这个社会。

一直到晚上八点,我都在浙大紫金港校区及附近。不得不说环境的确不错。差点赶不上回金华的火车,因为被公交坑了一把。

周二就和队伍来到了深圳,周日回金华(但这是下一周了)。见到了可爱的阮阮,以及男装的未知妹妹(但是不敢认)。

周三我们折腾了一堆材料,然后晚上在深圳职业技术学校“开夜车”,一直到第二天五点我们一行才睡下。第二天是我的生日。所以我最早听到的祝福来自我可爱的队友们。周四打的是练习赛,所以一切都不是太紧张。因为之前睡得晚,于是晚上八点多一回到酒店就睡着了,没有立即回到自己的房。直到有人把我叫醒我准备回房间。刚开始里面死都不开门,我还以为是他们逗我玩,直到门打开后我拎着两个大包摔进房间才看到一堆蜡烛、一堆气球、还有一个蛋糕。然后几乎全队人都在,突然一下子就明白了发生了什么,那时候把soha感动的啊……

周五我们正式开始比赛,刚开始连赢四场,加上联队的搭档靠谱,所以连赢四场,还水到了第一名。但是后面我们的naive本性暴露无遗,到周六以Rank 18的成绩结束Qualifications。

感谢周五晚上的一个脑洞,我在周六凌晨做了一个通过陀螺仪与手算角度以及路径的自动挂齿轮方式,虽然自由度比不上CV的,但是还是蛮靠谱的了。

还有Mori一周的小纸条,超级高兴。今年生日收到了很多礼物,比如生日那天第一份礼物是妹妹给的可爱的连裤袜。还有鹤子的小裙子。Soha都十分喜欢呢,感谢大家能记得soha这个公主,与她的生日。


业务逻辑丢前端,很强


“教育系统很多bug都来自业务逻辑丢前端,以及表单数据处理不严格。”
—— Soha King

0x00 无关的背景介绍

又到了一学期一度的选修课选课时间!已经高二下半学期的Soha将迎来最后一期选修课。高一刚入学的时候选了金老师的某课程,然而之前那个学期并没有开课。这一次听说我们班大部分同学选了这节课,我心里也有点痒。(毕竟这是我们的信息技术任课老师,超可爱)

0x01 问题的重现过程

我尝试选择金老师的这门课程。

尝试选课

尴尬……都怪学校当年不开课。

我顺手在“选课”上右键审查元素。

Inspect Elements

很强,直接把这种东西丢在前面。然后我看了看Network……再点击选课后并没有任何的请求。不过想想也是,除了一个confirm后的doPostBack,没有其他的xhr请求了。

于是我把onclick里面的语句修改了一下(其实直接删掉也没毛病)。

Modify onclick

然后再点一次选课。

Success

轻松加愉快。

0x02 Soha的解决方案

虽然没人会处理这种bug

后端加个判断,是否选过这门课。


学校,别动我假期!


今天本来开开心心地在制作机器人的时候,收到了一条让人十分冷漠的消息:为了准备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