-
Notifications
You must be signed in to change notification settings - Fork 0
/
search.json
1 lines (1 loc) · 484 KB
/
search.json
1
[{"title":"SJTU-CTF / GEEKCTF 2024 部分 Writeup","date":"2024-04-24T15:33:33.000Z","url":"/post/sjtu-ctf-geekctf-2024-writeup/","tags":[["Web","/tags/Web/"],["网络安全","/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/"],["CTF","/tags/CTF/"],["Writeup","/tags/Writeup/"],["解题报告","/tags/%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''去年还是选手,今年变成出题人了( 这次有幸给校赛暨 GEEKCTF 出了 4 道 Web 题:YAJF、Secrets、SafeBlog2、PicBed,赛后决定在博客上公开一下出题人的部分 Writeup 供参考。 YAJF Yet Another JSON Formatter. Do you know jq? jq is a lightweight and flexible JSON processor. P.S. The flag is inside an environment variable. 答题情况 SJTU-CTF 5 Solves / 764 pts 0ops{rC3_1S_5o_eEEe@sY_hHhhHHH} GEEKCTF 27 Solves / 297 pts flag{rC3_1S_5o_eEEe@sY_hHhhHHH} 一个在线 JSON 格式化工具,考察命令注入。 通过抓包不难发现,该工具是把原始 JSON 以及格式化参数 POST 到后端进行处理的。题目描述中已经明示使用了 jq,而 jq 是一个命令行工具,并且传入的几种格式化参数刚好和 jq 文档中的一致,不难嗅到一丝命令注入的味道。 经过一番 Fuzz 可以发现,只控制传入的 json 是无法实现命令执行的,这其实是因为 json 是直接作为 stdin 输入的,并不是命令的一部分。而通过控制传入的 args 则可以实现命令执行,不过要求每个 args 的长度不能超过 5,且输出必须是合法的 JSON。 要达到这些要求并不困难,一种简单的办法是使用管道符,将 env 命令的输出通过 jq -R 转换成合法的 JSON。在大家的 Writeup 中也看到了五花八门的解法,以下列举一些较为简短的供参考。 你知道吗 单个数字、单个双引号包围的字符串都是合法的 JSON。 最后揭秘一下命令到底是怎么拼接的,不过都能执行命令了,拖一份源码出来看看应该也不难吧。 Secrets My notes and secrets are stored in this secret vault. I’m sure no one can get them. 答题情况 SJTU-CTF 7 Solves / 684 pts 0ops{sTR1Ngs_WitH_tHE_s@mE_we1ghT_aRe_3QUAl_iN_my5q1} GEEKCTF 43 Solves / 207 pts flag{sTR1Ngs_WitH_tHE_s@mE_we1ghT_aRe_3QUAl_iN_my5q1} 出题灵感来自于真实的攻击事件,考察文件包含、Python 字符大小写特性、MySQL 字符串比较特性。 打开网页只有一个登陆框,可以发现网页源代码中有一堆不知道是什么东西的奇怪注释,控制台也输出了一串神秘数字。这两处实际上是两个提示,并不是解出本题所必须的。 控制台的神秘数字是八进制下的 ASCII 码,转换后得到字符串 Don't you think the color picker is weird?,提示我们去看页面右上角切换颜色的功能。 你知道吗 对于这种奇奇怪怪的编码,可以使用 CyberChef 的 Magic 功能进行自动检测。 切换几次颜色并抓包,可以发现切换颜色时会先请求 /setCustomColor 接口,响应中会 Set-Cookie。 接着页面会从 /redirectCustomAsset 接口获取对应颜色的 CSS。不难发现这个接口会读取 Cookie 中的 asset 值,返回对应路径的 CSS 文件。 页面源代码中的奇怪注释则是 Base85 编码后的目录结构。 尝试修改 Cookie 中的 asset 把目录中的其他文件读出来,结果却返回 Hacker!,猜测可能是对路径开头做了检查。 尝试用 ../ 绕过检查,发现读取成功,于是可以把整个网站的源码拖下来。 网站的主要逻辑在 app.py 里,先看看登录部分的代码。 显然以 admin 的身份登录是不可能的(不会有人能猜出 os.urandom(128).hex() 的结果吧),那么唯一的可能就是以 alice 的身份登录。但是 alice 用户名密码的判等逻辑有点奇怪,isEqual() 要求两个字符串小写不同,但是大写相同,乍一看这好像也不可能啊。不过反正 Unicode 字符也不多,统统枚举一遍看看吧,结果还真发现了 4 个。 于是用 alıce 作为用户名、ſtart2024 或 start2024 或 ſtart2024 作为密码就可以通过这段验证,以 alice 的身份登录。但是由于我们现在并不是admin,只能看到 notes。 接下来的目标是越权访问 secrets,那就看看访问控制是如何实现的吧。 这里的逻辑是,如果当前用户不是 admin,那么检查传入的 type,如果 type 小写后包含 secrets 或大写后包含 SECRETS,那么拒绝访问。乍一看似乎也没什么问题,但是这种黑名单的过滤机制值得我们怀疑一下是不是有办法绕过。 再仔细阅读一下代码,发现有两行看上去没啥用的断言,告诉我们数据库的 Character Set 是 utf8mb4,Collation 是 utf8mb4_unicode_ci。 那么 Character Set 和 Collation 究竟是什么呢?查阅 MySQL 官方文档可以找到相应的解释。 A character set is a set of symbols and encodings. A collation is a set of rules for comparing characters in a character set. 我们注意到,Collation 决定了 Character Set 中的字符进行比较的规则。MySQL 中比较两个字符串是基于它们的 Weight,而 Weight 由 Collation 决定。我们只要使用 utf8mb4_unicode_ci Collation 中与 secrets 具有相同 Weight 的字符串即可。符合这样条件的字符串其实有很多,事实上 secrets 的 ts 被加上了下划线,已经暗示了一种解法,以下列举一部分解法供参考: 当然如果不知道这一点,也可以在本地起一个完全相同的环境,设置相同的 Character Set 和 Collation,用和之前一样的办法把 Unicode 字符都枚举一遍,也能找出可以绕过检查的字符串。 最后说说题目背后的真实事件。2023 年 12 月,OKX 交易所就曾因 Collation 设置不当遭受攻击。攻击者通过 saʦ 欺骗了数据库,成功冒充 sats 铭文代币出现在了搜索结果中,于是眼神不太好的用户就上当受骗了,被黑客狠狠割了韭菜。 实际上这并不是数据库软件的错,而是在字符串比较时没有使用正确的 Collation,使用 utf8mb4_unicode_bin 则可以规避这一问题。 SafeBlog2 Using WordPress is a bit too dangerous, so I’m developing my own blogging platform, SafeBlog2, to have full control over its security. Attachment P.S. It is recommended to test your exploit locally before creating an online instance. 答题情况 SJTU-CTF 1 Solves / 1000 pts 0ops{BL1nd_5ql_!NJeC71on_1S_PoS5ib13_W17h_0nLy_4_9ueRiE5} GEEKCTF 8 Solves / 611 pts flag{BL1nd_5ql_!NJeC71on_1S_PoS5ib13_W17h_0nLy_4_9ueRiE5} 出题灵感来自于 MapleCTF 2023 Data Explorer,考察环境变量导致 assert 失效以及查询次数有限情况下的 SQL 注入。 直接审计压缩包中的源码,发现似乎并没有什么问题,utils/db.js 中实现的简易 ORM 采用了预编译绑定参数,对列名也使用 assert 做了检查,好像无懈可击? 仔细观察会发现,这里的 assert 用的是 assert-plus,查询文档得知这个库提供了通过设置环境变量使所有 assert 失效的能力。 Lastly, you can opt-out of assertion checking altogether by setting the environment variable NODE_NDEBUG=1 查看压缩包中的 compose.yml,发现确实设置了 NODE_NDEBUG=1,所以可以直接无视代码中的所有 assert,也就是列名检查失效了。 你知道吗 在 Python 中也存在类似的能力,而且无需引入第三方库,通过设置 PYTHONOPTIMIZE=1 环境变量即可使代码中的所有 assert 失效。 此时再去寻找代码中直接接受用户输入作为列名的地方,发现评论点赞接口存在问题: req.query 是用户传入的全部 GET 参数,直接作为 filter 参数传递给了 runQuery(),而 runQuery() 调用的 filterBuilder() 中的列名检查失效了,因此会把 req.query 的所有键当作列名拼接进 SQL 语句中,值则采用预编译绑定参数,那么通过控制键名就可以任意操纵 SQL 语句,理论上就可以进行注入了。 然而阅读 runQuery() 的代码会发现,每 4 次使用 runQuery() 进行查询, admin 的密码就会被重置,所以显然不能直接注入获取密码,这该怎么办? 预期解 稍加思考不难发现,点赞接口会对结果集里面的每一条评论点赞,同时我们可以无限制地创建评论(创建评论不使用 runQuery(),不会触发密码重置),那么通过巧妙地构造 SQL 语句,我们就可以仅用 3 次查询,利用评论的点赞数间接泄漏出 admin 的密码,最后 1 次查询用于登录 admin 的账号获取 Flag。 具体构造 SQL 语句的方式有很多,看了大家的 Writeup 也确实各不相同,不过都大同小异,基本思想是一致的。以下是出题人笨拙的做法,供参考。 考虑到 admin 密码字符串长度为 32,每一位字符有 0 - F 共 16 种可能,因此可以将每一位字符的每一种可能一对一地映射到 512 条评论上。选出每一位的字符对应的评论进行点赞,根据被点赞的评论 id 即可还原出密码,然后登录拿到 Flag。 非预期解 出题人粗心大意,重置密码的代码竟然写错位置了,于是被 4 位选手狠狠非预期了。 不难发现只有在查询成功的情况下,计数器才会累加,所以如果构造的 SQL 语句能够触发查询错误,同时能够通过延时来泄漏信息,那么就可以完全无视次数限制,当作普通的延时盲注来做。 具体而言,可以通过 RANDOMBLOB() 实现延时(因为 sqlite 没有 SLEEP()),通过 load_extension(1) 触发查询错误,只要延时先于触发查询错误即可,以下是选手 __No0♭__ 的解法,供参考。 不过感觉难度上非预期解和预期解好像也差不了多少(?),所以无所谓啦。 PicBed PicBed is an elegant image hosting service which uses webp_server_go to serve your JPG/PNG/BMP/SVGs as WebP/AVIF format with compression, on-the-fly. Attachment P.S. It is recommended to test your exploit locally before creating an online instance. 答题情况 SJTU-CTF 1 Solves / 1000 pts 0ops{cVE_2021_46104_No7_FULlY_p@TcH3d} GEEKCTF 7 Solves / 647 pts flag{cVE_2021_46104_No7_FULlY_p@TcH3d} 想稍微拉高一下难度,所以拿了个开源项目的很鸡肋的漏洞出了这道题,考察 HTTP 请求走私和 Go 语言代码审计。 观察压缩包中的源码,发现前端是用 Flask 写的,负责页面展示、图片上传,后端使用了开源项目 webp_server_go,负责根据用户传入的 Accept 请求头返回原图或 WebP 格式的图片。我们的目标是拿到容器根目录下的 flag.png。 webp_server_go 默认加载的是 /opt/pics 中的图片。显然,我们需要挖掘 webp_server_go 项目中类似于目录穿越的漏洞并加以利用。通过搜索 webp_server_go path traversal 关键词,不难发现该项目曾经有一个 CVE-2021-46104,但是在这道题使用的 0.11.1 版本中已经修复了,似乎没什么用。 不过我们不妨看看 CVE-2021-46104 是怎么修的吧。通过翻阅项目的 Issues 以及 PRs,发现涉及该漏洞修复的 PR 是 #93 和 #103。进一步阅读这两个 PR 中的代码改动,会发现最核心的就是下面这几行代码。 从代码中看,开发者试图通过 path.Clean() 消除 reqURI 中的 ../,从而避免目录穿越。通过查阅官方文档可知,path.Clean() 函数通过纯词法处理返回与参数等效的最短路径名。这样乍一看好像没什么问题,即使 reqURI 中有再多的 ../,消除到最后似乎也仅仅只能回退到 /,再与 config.ImgPath 拼接,肯定无法穿越出 config.ImgPath。 但如果 reqURI 直接以 ../ 开头呢?经过尝试不难发现,在这种情况下 ../ 会被直接保留,再与 config.ImgPath 拼接,就能够实现目录穿越。 那么 reqURI 有没有可能直接以 ../ 开头呢?webp_server_go 使用的框架是 fiber,而 fiber 是基于 fasthttp 的。fasthttp 在面对 URI 不以 / 开头的畸形 HTTP 请求时,并不会报错,而是依旧将其作为合法的 URI 处理。这也就意味着 CVE-2021-46104 并没有完全修好,我们只需构造如下的畸形 HTTP 报文,就可以穿越到根目录读取 Flag。 现在只剩下最后一个问题,如何把这个报文发给后端的 webp_server_go 呢?仔细观察前端的 /pics/<string:path> 路由,发现传给 fetch_converted_image() 方法的 accept 参数取的是 URL 解码后的 Accept 请求头,在 fetch_converted_image() 方法中直接拼接到了 HTTP 报文中。由此,我们可以实现 HTTP 请求走私,通过插入 URL 编码后的 \\r\\n\\r\\n 将一段 HTTP 报文截断为两段连续的 HTTP 报文,后一段 HTTP 报文是完全可控的,fetch_converted_image() 方法最终返回的也恰好是最后一段报文的响应体。于是,可以构造如下的 Accept 请求头实现我们的目标。 所以最终的完整流程是,先随意上传一张图片,访问该图片并抓取 HTTP 报文,按上述方法修改 Accept 请求头,发送请求获取 Flag。 最后说说这个漏洞为什么鸡肋。首先畸形的 HTTP 报文必须直接发送给 webp_server_go,一旦中间有 Nginx 之类的反向代理对 URI 做了检查就无法利用了,这也就是为什么本题要将其和 HTTP 请求走私结合;其次该漏洞只能读取图片文件,因为 webp_server_go 会把读到的文件喂给 VIPS 处理,读到的文件只要不是合法的图片 VIPS 就会报错,攻击者无法得到文件内容,这也是本题 Flag 是图片的原因;最后攻击者还需要有图片的路径这一先验知识,否则很难读到有效的图片。 收完 Writeup 后已经将该漏洞报告给开发者,已于 0.11.3 版本中修复。 总结 这次我出的 4 道题的预期难度是简单、中等、困难、困难(按本文顺序)。GEEKCTF 的解题情况基本符合预期,Secrets 做出来的人意外地还挺多。SJTU-CTF 的解题情况则有点出乎意料,基本没什么人做 Web,完全没有像去年一样的盛况。从 SJTU-CTF 回收的问卷情况来看,有较多选手反映 Web 题目难度梯度不合理(虽然 Web 方向至少有 3 道出题人认为是简单的题目),然而某位几乎 AK Web 的巨佬又反馈 Web 题“一直做一直爽”、偏 MISC、没什么新东西,感觉难度梯度确实还挺难把握的,出那种既有意思又新手友好的题目好难啊TAT。"},{"title":"周记#31","date":"2024-02-23T11:56:13.000Z","url":"/post/weekly-31/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''好久不见,各位新春快乐呀!🧨 五周的寒假转眼就过去了,前不久还沉浸在过年的喜悦中,现在已经在学校坐牢一周了(谁家好人学校正月初九开学啊,我还没玩够呢😡😭) 那就来一篇终极寒假生活流水账罢( 期末周 放寒假之前自然是痛苦的考试周。虽说上个学期只有4门课要考试,但其中不乏大雾、电子工程数理方法这种硬核的课程,再加上转专业之后数理方法变成了计划外的交叉课程就没好好听过,真怕最后挂科了前功尽弃,所以还是开启了紧张刺激的补天模式。 好在最后全部顺利通过了,甚至原本只求及格的数理方法用力过猛拿了90+,早知道就多花点时间复习概统和大雾了呜呜呜。 考完最后一门当晚就和室友出去搓了一顿烤肉庆祝一下😋,顺便欢送其中一位即将出国交换的室友,再见就是九月份啦。 驾考 放寒假后在学校又待了一周,去旁边驾校继续学车。科三练了四天就匆匆去考试,运气还很差,抽到了最难开的一条线,没想到竟然一把过了。等有空把科四理论考掉就可以拿证咯,嘿嘿又一个新年目标即将达成。 哈尔滨之行 年前去了一趟当时很火的城市——哈尔滨,也是第一次在大冬天去这么北的地方。作为南方人完全无法想象零下二十几度是什么概念,为防止下飞机被冻成冰棍,在机场我就已经全副武装,有点小热。后来发现落地后直接靠廊桥了,机场还专门设置了非常多的更衣室,可以到达之后再换衣服。 执飞的是一架机龄16年的A330-300,这么老的飞机竟然还安装了空中 WiFi。从上海飞哈尔滨大概需要3小时,明明是中午的航班却没有正餐,只发了个小面包。进入东北上空后,从空中看地面都是白茫茫的一片,非常壮观🤩。 落地后一出机场眼镜就全是雾完全看不见,因为穿得足够厚感觉没有想象中那么冷,就是鼻子有种要结冰的感觉。在车上看到了路边的冰雕,晶莹剔透的非常漂亮。 人行道上铺满了积雪,踩在上面嘎吱嘎吱的非常有趣,不过要小心混入其中的冰,一不留神踩上去就会滑倒摔得很惨。到酒店已经快下午两点了,去附近的 KFC 解决一顿午饭,东北室内的暖气还是非常给力的,暖气配冰可乐欸嘿嘿。 这次来哈尔滨是去 HIT 参加活动,上课+参观+比赛,安排得非常充实。话不多说直接上图吧。 (哈尔滨的地铁站,造型非常有特色) (必不可少的环节hhh) (HIT 校园,路两旁都是白雪,想捏个雪球结果发现太松散了团不起来) (索菲亚大教堂,周围的铁栏杆据说是甜的别舔) (中央大街,快过年了各种彩灯装饰得非常漂亮) (最不怕雪糕融化的一集🤤,从第一口到最后一口都是梆梆硬) (各种冰雕雪雕🧊⛄) 总之感谢 HIT 的热情招待,这几天吃好住好玩好学好,非常充实愉快的一次经历。 (对了,HIT 什么时候修一修你的 Eduroam 啊,连上了没有 DHCP 分配 IP 地址也太草了😂) 过年 从哈尔滨回来以后在家宅了两周就过年了,假期也接近尾声。今年春节总算是彻底摆脱了疫情的影响,在上海过完除夕后和爸妈回了一趟福建。春节期间老家的天气特别好,天天都是阳光明媚,气温二十几度,很暖和。 回到老家就是见各种亲戚,又到了聊天完全听不懂方言需要我妈翻译的时候了。然后就是吃吃吃🐖,老家好多美食在上海根本吃不到哇🤤。除此之外还去了这边的几个景点逛了逛,主要是一些寺庙、新农村还有历史文化街区啥的,现在都发展得挺不错的,下面是一些有意思的发现。 (寺庙也要i18n,不过哪里出现了什么问题🤣) (某个卖捏面人的小摊,嗯) (路上看到一家碰瓷 Fornet 的洗衣店🤣) 值得一提的是,老家这十八线小城市的公交车竟然也已经支持了交通联合,直接刷手机里的「上海交通卡·交通联合版」就可以扣款乘车了,虽然读卡器上显示的余额完全不对(好多城市也有类似的现象),不过无伤大雅。结合之前几次在别的地方的使用体验来看,交通联合可以说是推进得相当不错,给交通运输部点赞👍。 在老家待到初七就匆匆回上海了,爸妈要上班,我也要准备开学了。 新学期 2月17日回到学校开始坐牢。这天室友还没回来,我一个人在寝室住着,结果凌晨三点被宿舍火警强行开机。半梦半醒间隐隐约约听到一个机械女声“现在报告本大厦内有火灾发生,……”,重复了几次后我猛地惊醒,然后体会到了什么叫做大脑宕机,脑子一片空白甚至没反应过来自己在哪。过了好一会儿我才意识到自己在学校宿舍,是火警在响,于是赶紧匆匆下床跑到楼下。好在最后排查下来虚惊一场,就是毁了我早八生活开始前的最后一个好觉😾。 这学期又是每周4天早八,一共14门课程28.5学分,有9门课要考试,而且有几门比较抽象硬核的课(近世代数、信号与系统、量子力学等),已经能够想象到期末周的绝望了,又要重温大一下学期的地狱模式力😇。 总之第一周5天下来感觉身心俱疲😮💨,希望能顺顺利利熬过这学期吧,加油!"},{"title":"2023年终总结","date":"2023-12-31T15:59:59.000Z","url":"/post/2023-annual-report/","tags":[["年终总结","/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''草草草怎么一年就过去了,又到了痛苦的期末周一年一度的年终总结时刻,于是我在紧张刺激的期末跨年预习复习活动中匆匆写完了这篇文章,快来回顾一下这一事无成的一年罢() 回顾 2023 今年应该说是真正意义上疫情结束后的第一年,各类管控措施总算是消失了,生活也终于回归了正轨,一切都在慢慢变好。 学习 在 SJTU 不知不觉就混到了大二,经过了一些金课的洗礼😇,还活着就已经很棒了。进入大学一年算是找到了适合自己的学习方法,给自己定的唯一要求就是别挂科,毕竟大学不只有学习啊,拼命刷题卷学积分啥的没意义。 今年的意外收获是顺利从信工叛逃,即将转入更感兴趣的信安专业(只要这学期没有挂科),也算是实现了高考未能达成的目标。 技术 今年的技能树全点在了信安上。事情还要从3月的 CTF 校赛说起,大概是我打过的最值的一次比赛了,除了拿奖之外,还认识了不少大佬和新朋友,也发现了自己对安全方向的兴趣,正式入坑 CTF。进校队以后打过几次 CTF 线上赛,参加过一些 HW 和代码审计,学到了很多有意思的东西,积累了一点实战经验,收获满满。 今年的 GitHub 小绿墙干干净净,之前维护过的一些开源项目也都弃坑了,是在开源社区彻底开摆的一年,希望明年能更绿一点( 年度编程语言大概是 Python(虽然也没严谨统计过),毕竟打 CTF/日站写 PoC 都用的是它,甚至写 Web 项目也是,学习了 Django 框架发现还挺好用的,特别适合快速起步。 博客 不知不觉博客已经6周年啦,来看看今年的统计数据吧!在去年7月抛弃了臃肿的 Google Analytics 投入 Umami 的怀抱,所以今年的数据是完整的哦。 今年 Hans362 's Blog 收获2.28k 位独立访客4.77k 次访问,平均访问时间1m2s。 访客们都喜欢用什么浏览器/OS/设备呢? 揭晓答案 排名第一的是 Chrome + Windows 10/11 + 笔记本,和我一样耶(该不会都是我贡献的吧hhhh)。 访客们都来自哪些国家/地区用哪里的魔法节点呢? 揭晓答案 今年发布了4篇文章,数量较往年骤减,博客都长草了,明年一定要多写点!要是还有你没读过的,不妨去看看。 今年点击量排名前5的文章又是哪几篇呢? 揭晓答案 看来还是技术向的文章比较吸引人啊。 今年博客新增6条有效评论,感谢每一位前来互动的朋友🥰。 游戏 上半年玩得最多的还是原神,暑假的时候社团的全新原版生存服 SJMC SMP 2开了,于是作为老年人浅浅地复健了一下,重温了当年玩 Minecraft 的快乐。 下半年随着各种事情忙起来,Minecraft 被我丢在一边,原神也好几个月没碰算是半退游了(肝不动力,连主线都懒得推),感觉有点电子阳痿了(bushi),即使有点时间也不是很想花在游戏上。 音乐 来看看今年的听歌报告吧! 欸嘿,终于不是 OST 播放器了,今年的年度歌手是 ChiliChill,最开始是听原神二创作品认识的,后来发现他们自己的一些作品也很好听,就一发不可收拾了。 展望 2024 时间过得真快呀,明年就要告别19岁,进入20岁的大门了,希望2024年: 顺利通过所有考试(期末周的大学牲是这样滴) 拿到驾照(今年拖拖拖到现在才考过科目二) 去更多的地方玩玩玩(中国制霸模拟器补完计划) 多运动(今年颓废了一年,除了上体育课就没咋动过) 保持博客更新,经常来除除草 在成为大黑客的路上更进一步 身体健康,平安快乐 最后感谢读到这的你,祝你新年快乐🥳,2024年一切顺利!"},{"title":"阿里云金融级实人认证接入踩坑记","date":"2023-12-02T09:32:00.000Z","url":"/post/aliyun-financial-grade-id-verification/","tags":[["阿里云","/tags/%E9%98%BF%E9%87%8C%E4%BA%91/"],["Web","/tags/Web/"],["Python","/tags/Python/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''最近需要给一个基于 Django 的项目开发实名认证功能,除了常规的核验姓名和身份证号是否匹配,还需要对用户进行活体检测。看了一圈最后选定了阿里云的金融级实人认证产品,可以直接让用户使用支付宝APP完成活体检测的认证过程,开发工作量相对较小,对用户而言也比较方便(毕竟这年头谁手机上还没个支付宝呢)。 开通金融级实人认证后,我开始照着阿里云提供的开发参考文档尝试将其接入到项目中。得益于阿里云这份含糊其辞、不清不楚的过时文档,开发花费的时间比我想象中要多😇,在此也记录一下我踩过的坑,希望能够帮助到后来者。 TL;DR 阿里云文档中的 Python SDK 版本过时,需要手动指定版本号 阿里云文档中提供的国密 SM2公钥为压缩格式,需要先还原完整公钥 阿里云使用 C1C2C3模式,而非现行标准的 C1C3C2模式 须确保加密结果的第一个字节为 \\x04,否则须手动补充 过时的 SDK 版本 因为项目是基于 Django 框架开发的,所以我参考了文档中 Python SDK 的部分。按文档所说,我首先通过 pip install aliyun-python-sdk-saf 安装了云产品SAF SDK,接着在项目中引入 SDK 包时却出现了问题。 怀疑八成是文档没及时更新,看了眼包安装目录下的文件结构,果然最新版本都已经 v20190521 了,改一下版本号就解决了问题。 同时最好在 requirements.txt 中锁版本,以免以后哪次 pip install 时更新了 SDK 导致又出现问题。 加密传参全靠猜 由于项目的合规要求,数据库不能留存用户的身份证号明文或可解密的密文,而阿里云的金融级实人认证接口刚好支持非对称加密传参,因此可以将用户输入的身份证号使用阿里云提供的公钥进行非对称加密,然后存储在数据库中(由于私钥由阿里云保管,即使数据库发生数据泄露也无法解开),发起认证请求时直接将密文传递给阿里云。 然而文档中关于加密方式的约定含糊其辞,只提到了加密方式为国密 SM2,给出了一个公钥,并提供了一段 Java 语言下的调包例程。 好在 Python 这边也已经有现成的国密加密包了,我天真地以为调用一下包里的加密函数就行了,于是我一开始是这么写的: 结果呢,还没到给阿里云传参这一步,光是加密就报错了: 翻了翻 Issues 才知道存在公钥压缩这回事。根据现行 GB/T 35276-2017 7.1节的定义,SM2算法公钥内容为 04||X||Y,其中 X 和 Y 分别标识公钥的 x 分量和 y 分量,其长度各为256位。阿里云提供的公钥既不以 04 开头,长度也不满足规范,显然是经过压缩的,需要先还原完整公钥。可以使用这个小工具进行还原,也可以研究一下压缩的原理然后自己造个轮子,当然我懒所以选择前者。 这样就可以正常加密了。正以为万事大吉,当我把加密的密文传给阿里云时,阿里云接口却报错了。令人无语的是,接口返回的信息只有一句 501 系统错误,除此之外啥也没有。起初我甚至没有怀疑是加密的问题,还以为是别的参数有问题或者阿里云接口挂了(毕竟最近阿里云频繁出事),直到我尝试明文传参成功后才意识到问题出在加密上。显然,阿里云的私钥解不开我传递给它的密文。 于是我又花了大量的时间弄清究竟是哪出了问题。根据现行 GB/T 35276-2017 7.2节的定义,我们不妨将 x 分量和 y 分量合称为 C1,密文称为 C2,杂凑值称为 C3,则加密数据由 C1、C2、C3三部分组成,且三者的排列顺序为 C1C3C2。同时在查阅了一些资料后,我还了解到在最初的国密标准中,加密数据的排列顺序为 C1C2C3,不过我没有找到相关的标准文件。正因为国密 SM2存在 C1C3C2和 C1C2C3两种加密模式,我使用的 Python 国密加密包提供了 mode 选项以便开发者根据需求设定加密模式。然而阿里云根本没告诉我它解密时使用的是哪一种,不过这个问题暂时不重要,因为经过尝试无论哪一种都问题依旧。 迫不得已我只好把目光看向了阿里云提供的 Java 例程,尝试跑了一下,比对了同一个字符串使用 Python 国密加密包和使用 Java 例程的加密结果,终于发现了问题所在。Java 例程产生的密文 Base64 串永远以字符 B 开头,而 Python 加密包产生的密文 Base64 串开头字符却一直在变,这显然不合理。通过观察 Java 例程加密结果的第一个字节,我惊奇地发现竟然永远是 \\x04 这个熟悉的家伙。于是我手动给 Python 加密包的加密结果加上了这个字节,然后尝试了一下 C1C3C2和 C1C2C3两种加密模式,确认是 C1C2C3 模式(非现行标准),总算是对接成功了。 总结 这次开发可以说是一波三折,一部分原因是对国密算法不熟悉,互联网上相关的资料(尤其是 Python 下的进行国密加密)也较少,另一部分原因则是阿里云存在如下的问题有待改进: 文档过时内容未及时更新 接口不返回详细错误信息,导致排查困难 参数加密约定不清晰、不详细 使用非现行标准(C1C2C3)且不加说明 总之希望这篇文章能够帮助到后来者,也希望阿里云能够改进文档和接口,提升产品的易用性。"},{"title":"周记#30","date":"2023-11-12T08:59:53.000Z","url":"/post/weekly-30/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api='' 让我看看…嗯,很好,不出意外的话大概是出意外了,我竟然已经五个月了没更新博客了,赶快把存货发出来除除草。 所以这是一篇从暑日至寒冬跨越两季的超长流水账,猜猜这次会有多长呢?🤪 暑假 7月中旬夏季学期结束,暑假生活正式开始~ 到处跑跑跑 原以为暑假会烂在家里当死宅,结果意外地非常充实,两个月旅游+出差+比赛去了不少地方,大概是出门最多的一次。 (以下多图预警) 长兴岛 去年夏天去横沙岛玩了一趟,这次去的是长兴岛,都是夹在上海市区和崇明岛之间的小岛,当然这次是去出差坐牢的。 某天傍晚提前下班去江边走了走,吹着凉爽的江风,看到了非常美的火烧云。 潮汕 之前一直想去广东玩来着,这次终于去成了🥳!第一站就先选在了潮州和汕头,正好离福建也比较近,玩好顺便回了趟我爸老家,其它地方就等以后再来吧。 坐飞机落地揭阳,然后打了个车去汕头。沿着海边走的景色真不错,晚上的小公园(这是个景点的名字哦)非常热闹繁华。 第一天晚上吃到了牛肉火锅,新鲜的牛肉烫到刚熟的程度,蘸着沙茶酱吃,非常鲜嫩,打开了新世界的大门(过于好吃所以此处没有照片hhh)。第二天早上吃到了心心念念的肠粉,随便找的路边小店都完爆外地的肠粉,皮很薄很弹,料也满满的,太好吃了以至于我连吃了几天。 汕头玩得差不多就去了南澳岛,由于是旅游旺季,进岛的高速堵得一塌糊涂,足足花了快4个小时才上岛。在岛上环岛挑了几个点玩了一圈。 (造型独特的灯塔) (北回归线广场,在海滩上光脚踩水,是属于夏天的保留节目) (金银岛) (后花园村,从山上看海的视角很独特,夕阳也很美) 至于吃的感觉岛上总体不太行,海鲜可以尝尝,但容易被宰。 离开南澳打车前往潮州。主要去了牌坊街,还有非常有特色的广济桥,桥的中间是用几艘船连在一起的,傍晚到点了就会把船移走,第二天再把船移回来,晚上会有炫酷的灯光秀表演。 在潮州吃到了烧鹅、卤鹅,吃了一次早茶,好吃的真是太多了。潮州这边的肠粉会放花生酱,个人不是很习惯,还是更偏爱汕头的做法。 离开广东后去了我爸老家,上一次回去好像还是初中的时候。奶奶家不知道啥时候养了一只猫,超级可爱,rua起来很舒服😻。 福州 福州之前去过一次,这次去主要是去出差的,干完活顺便故地重游浅玩了一下。 (南后街) (烟台山) (闽江) 成都 第一次来成都,主要是来打比赛的,行程比较匆忙没来得及玩。 出发当天上海有强对流,幸好买的中午的机票,赶在强对流到来前半小时顺利起飞了。来成都怎么能不吃火锅呢,于是到达成都当晚就鼓起勇气和队友出去吃了顿四川火锅。考虑到第二天还要比赛谨慎地点了鸳鸯锅,然后果不其然被辣锅辣翻了🥵,吃到最后全在吃另一边的番茄锅🤣。 第二天白天在比赛,玩靶场渗透+工控,四个预备队的出来给 0ops 丢脸了。签到题打进去了结果找不到 flag 放在哪,心态爆炸,最后在根目录下用 grep 强行搜出来的,卡了很久。后面靠 Chrome XSS 钓鱼 RCE 想让员工电脑上线 CS 从而打进核心生产网做工控题,结果咋弄都不成功,而自己电脑上的虚拟机却可以上线,最后发现是用作跳板的机器 Windows 防火墙没关,浪费了至少一个小时😡。事实证明永远别相信 Windows Server 2016 设置里的防火墙,关了根本没用,去控制面板里看竟然还是开着的。等好不容易把员工电脑搞上线已经离比赛结束只剩两个小时了,工控题靠队友匆匆忙忙地做了几道,Web 这边也还剩很多没挖。最后拿了个“人才奖”,有奖就是胜利😂。 晚上恰了顿寿喜烧自助,吃肉吃爽了。在商场里逛了逛,买了点特产,出去的时候下起了暴雨还没带伞。 第三天早上睡个懒觉收拾一下就去机场了,因为回程机票买的是 MU9198,需要去天府机场。坐地铁坐了将近一个小时,都快到边上的简阳市了。天府机场真是到哪都只要一小时,到成都也是(笑)。 坐上了 C919 大飞机,看这架的编号是 B-919A 貌似还真是首架?飞行过程中有点颠簸,不过餐食很好吃😋,还有定制的小蛋糕。 换新手机 手头原先这部 Redmi K20 Pro 是刚上高中时买的,陪伴了我四年多了,依旧是迄今为止外观最对我胃口的一部手机。直屏+弹出式前置摄像头,没有刘海也没有挖孔,简直是堪称完美的全面屏设计,是到了2022年还会有人看到这块屏幕惊讶地问我“你的手机是啥牌子”的程度。很可惜已经很久没看到这样的设计了,所以我一直舍不得换,感觉还能再战三年。 大概从去年开始明显感觉到电池健康度下降得很厉害,续航只能维持半天左右,打算去换电池却发现原装电池已经停产缺货了,于是靠充电宝续命又用了大半年。结果到我出差的前两天,这电池算是彻底暴毙了,充满电的情况下啥都不干十分钟电量就归零了。考虑到急着用,并且骁龙855在2023年的这堆国产毒瘤APP面前确实有点吃不消,卡顿得比较厉害,那就干脆换新手机吧。 起初还想试试别的牌子的手机,但想到自己对米家生态链的重度依赖以及有解锁刷机的需求,最终还是决定延续小米/红米。因为小赚了点钱,索性就咬咬牙买了 Xiaomi 13 Pro,希望可以用得久一点。直接去小米之家¥5399拿下,还送了个礼盒(笔记本+钢笔+蓝牙耳机)和一年的 FRIEND 会员(每个月有免费贴膜,但小米之家店员表示这个膜质量远不如出厂自带的那张,不建议在原厂膜没坏的情况下换)。 颜色无脑选了白色,确实很耐看,后盖也不会变成指纹收集器。外观的话对我而言肯定是没有原来好看了,挖孔屏+曲面,但也还算可以接受。全功能 NFC、红外遥控、无线充电等功能该有的都有,没有耳机孔对于我来说问题不大。比较喜欢的是骁龙8 Gen 2的性能表现,玩某二字游戏无压力,而且发热量不算大。还有就是这徕卡相机拍照真的没话说,不像原来的 K20 Pro 拍出来的照片总感觉被算法调校得鲜艳过头,13 Pro 给我的感受就是很真实,很舒服,本文带水印的照片都是使用13 Pro 拍摄的哦。 要说不好的地方大概就是13 Pro 接近230克的重量,初次上手感觉有点沉,而且主要重量集中在顶部的镜头模组,拿在手里有种头重脚轻的感觉。还有电池容量感觉还是偏小,日常使用是能够注意到电量一点一点在掉的,不过目前还是可以支撑一整天的中强度使用,后续续航衰减的情况有待观察。 炸厨房计划·第二弹 嘿嘿这个假期午饭又基本是自己在家瞎糊弄的,回看发现全是各种面/炒饭/焖饭😂。 至于味道嘛,自己烧的肯定好吃啦😋。 秋季学期 啊 / 雨还要下多久呢 / 风扇应该收了 / 夏天怎么结束了 九月中旬回到了学校,开启了全新的学期。时间真是太快了,转眼就成老东西了啊。 以往我校电院的大二上是地狱模式,大量的硬核课程都堆在这学期,好在我们这届有所改观,已经过去的32.5学分的大一下是最痛苦的,大二上只剩下二十几学分的课程,比上学期轻松了一些。 中秋节 从开学第一天就在盼着放假🤣。按惯例学校每年中秋都会发月饼盲盒,今年的包装用的竟然是铁罐子,还挺好看的,颇有买椟还珠的感觉。 至于味道么,我和家里人的一致评价就是每盒必有的绿色的青柠芝士月饼是最难吃的,皮的口感很怪,中间的流心也酸不溜秋的,别的拿铁口味和蔓越莓口味都还不错。 中秋前一天学校还在电草办了一场中秋晚会,超热闹,去看了会儿表演以及给抽奖当分母了。 转专业 放完假回来就看到教务处发布了工科平台内转专业的通知。因为深知我校转专业的难度,尤其是电院CS/SE/IS据说只收专业前几名,最初就对此不抱啥希望,大一一年也完全没卷。回过头来一看成绩虽然平平无奇,但也满足了转专业的前置条件,考虑到我对电子系这边的课程不太感兴趣,这学期的模电学得也非常痛苦,于是就决定抓住这个机会试一试。 由于自己学积分一般,大一一年也只有和IS强相关的经历,并且确实对安全方向比较感兴趣,所以就填了转入信息安全专业的申请表。 等了一周终于收到了入围面试的通知,开始着手准备面试,做了两页PPT把一些比较亮眼的课程成绩还有和信安相关的经历罗列了一下,自己对着PPT讲了两遍。信安的面试总体感觉比较水,先是对着PPT进行自我介绍,然后是提问环节,完全没涉及任何专业性的问题,最离谱的一个问题是“你参加过哪些志愿活动”,差点给我干沉默了。总之面试结束后心里很没底,不知道是面试本来就这么水还是走个形式把我刷掉。 然后就是焦急地等待结果,终于在十月底收到了预录取通知,只要这学期继续修读完原专业课程(除中期退课的一门)并且没有挂科就可以顺利转入信息安全专业🥳。就是下个学期以及大三上要补修很多课程,又要开启地狱模式了。 总的来说感觉转专业好像也没有想象的那么难,也并非一定要有特别突出的学积分。抓住每一个可能的机会,多去尝试一下,说不定就有意外的收获。 好了,这篇周记就到这里咯,下次见~"},{"title":"周记#29","date":"2023-06-23T08:23:41.000Z","url":"/post/weekly-29/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''咕咕咕了半年零三个月,这个系列终于有了后续(你还知道写啊)。 所以这是一篇是又臭又长的写于夏季学期的伪装成周记的寒假和春季学期的终极流水账,我也不知道会有多长,各位慢慢看🤪。 寒假 玩玩玩 期末周的时候我就阳了,放寒假的时候已经完全好了。不过家里竟然还有人一直没阳,所以寒假就老老实实在上海过年了。年初六的时候跑豫园那边去看了灯会,不过是大白天版,但人还是很多。 然后又去了上海和江苏交界地带的荒郊野岭转了转,这样就算低配版的出省旅游了(笑)。 炸厨房计划 之前在年终总结里提到要提升一下厨艺,所以寒假的午饭就靠自己烧了,意外地没有炸厨房,大成功🤣( (忽略那个裂口水饺) 寒假大部分时间都在家摸鱼划水当肥宅,短短二十八天一转眼就过去了,不愧是全国高校倒数第二短的寒假,感觉啥也没干就开学了。 春季学期 总算在这个春天迎来了防疫结束后的第一个正常的学期,生活正在一点点恢复疫情前的状态,感觉很不错。 学学学 进入大一下,课程压力一下子就高了不少。虽说仅仅比上学期的28.5学分多了4学分的课程,但这学期基本都是非常硬核的课,比如高数、大物、电路理论、数电、数据结构等,还有一些学分和工作量完全不匹配的课程,整体比上学期忙多了。 这学期充分感受到了我校工科平台混乱的培养计划和糟糕的课程设计,在此不得不锐评一些课程。 电路实验 金课中的金课🥇。 这课的逆天之处在于和电路理论完全脱节的教学安排以及手写实验报告、手绘图像的离谱要求。电路理论才学到时域分析,实验已经做到交流参数了,做实验的时候对着看不懂的电路图机械地接线,写实验报告的时候我都不知道自己在写什么。 另外这课还有期末考试,占总评一半的分数,随机抽一个实验,闭卷做,要求背下所有的电路图。只好祈祷别抽到强电实验,毕竟弱电实验接线都不复杂,比较好做。 然后我就抽到了三相电路😇。幸好考前一天晚上把强电的几个实验电路都狂背了一遍,没出意外顺顺利利地做完了。考试的时候周围好几个人接错线烧保险丝、烧灯泡,还有人把整个实验室给搞跳闸了,笑死。 大学物理实验 1学分的课花的时间比3学分的课还多。 和电路实验一样地手写巨长的报告,作图以及拟合用 Origin 做。课程内容也是一样地和大物课程进度脱节,不过大部分老师/助教会默认你什么都不知道然后花时间讲一遍,至少能理解在做什么。 唯独有一次实验碰到个老师几乎啥也不讲不演示就让我们开做,遇到问题问他,直接一句“你没有预习吗?”、“我为什么要回答你?”、“你把学号报上来我给你扣两分再告诉你”,态度简直离谱😠。好在大家都不会做,最后他还是忍不住讲了一遍。 工程实践 属于是为毕业进厂提前做准备了,我一个学电子信息的为啥要学车床、铣床、钣金之类的东西啊?好在我们这届压缩了学时,只有半个学期,就当去玩玩了倒也还行。 (线切割做了只 Octocat) 工程实践与科技创新I 前半学期焊调频无线话筒和万用表,后半学期做单片机项目。作为电子系的学生学焊板子倒也无可厚非,毕竟是以后要用到的技能,但是给我整一大堆小得要命的贴片元件,用电烙铁纯手工焊实在有些折磨。 依稀记得那天在电网大楼从晚上六点焊到十一点总算整完了,还好一次成功,不然像有些同学焊完发现芯片是坏的就很惨了。 除此之外,一些课程的安排也很迷惑。电路理论放在大一下我完全学不明白,教材晦涩难懂,完全没考虑初学者的接受能力。数电课时压缩到只有半学期,且由于缺少模电、基电作为先修课程,很多内容都跳过不讲,感觉学得很浅。 这学期巨大的课程量导致了长达一个月的期中周和半个月的期末周,整个学期几乎就是在复习-考试-复习-考试😇。期末周的时候考完一门抢救下一门,女娲补天都没我忙。 一个人乐意探索陌生的PPT,仅仅是因为快要挂科了吗? (初看不知画中意,再看已是画中人🤡) 好在最后出分的时候发现几门考完以为要挂的课分数高得我都不敢相信,被老师狠狠地海底捞了🥰。 CTF & HW 大约是二月底的时候在学校论坛上看到了 CTF 校赛的帖子,从未打过 CTF 的我看到了决定去试试,结果意外地拿了个不错的成绩。赛后除了白嫖了亿些奖金和奖品外,还被邀请加入了 Ph0t1n1a(学校主队 0ops 的预备队)。 考虑到对 Web 比较感兴趣,而且除此之外我也啥都不会,决定主攻 Web 方向。抽空跟着打了两场比赛发现自己弱爆了,除了 D^3CTF 做出一道简单的 MISC 之外,几乎无从下手,还需要多学习学习。 五月份的时候和 Ph0t1n1a 还有 0ops 的 Web 大佬们去参加了教育护网,也是我第一次参加这种真实环境的攻防演练。简而言之就是在经过授权的前提下日其他高校还有教育单位的服务器。原以为自己太菜了应该只能去给大佬们端茶送水,没想到也挖出了一些成果,有几个洞还是通用系统漏洞,得了不少分,爽。 总之这学期入坑了信息安全方向,发现自己对这个挺感兴趣的,至少比起现在所在的专业,以后可能准备往这个方向发展了。 社团 三月份的时候社团招新,百团大战那天去现场逛了逛。没想到竟然连 SJTUG 都有摊位(虽然只有一个印了二维码的 KT 板),作为 SJTUG 维护的开源软件镜像站以及 LaTeX\\LaTeXLATEX 模板的忠实用户这不得加一下,还见到了坐在摊位上表演上网课的量子姐姐 @lightquantum🥰。 路过 Minecraft 社摊位的时候,想着我上一次玩 Minecraft 大概还是在上一次初中,早就跟不上版本了,然后就没加入。不过后来 HW 的时候认识了社长镐子哥⛏️,于是被拉进了社团准备接手一些服务器运维还有技术开发的工作。暑假打算复健一下 Minecraft,不然我社真要成为米游社了。 对了,欢迎关注上海交通大学 Minecraft 社~ 生日 考完最后一门考试的后一天就是我二十岁前的最后一个生日了🥳。因为家里有人二阳了只好在学校过,整了个蛋糕和室友瓜分掉。晚上出去搓了一顿,在室友强推下去看了《蜘蛛侠:纵横宇宙》,有点好看,就是为啥在高潮部分戛然而止然后 To be continued 啊,太吊人胃口了。 室友在学校论坛上发了个帖子《今天是我室友生日,可以祝他生日快乐吗》结果光速收敛到 \\xf0\\x9f\\x90\\xbb,笑死我了🤣。 后续安排 从六月中旬到七月中旬还有一个月的夏季学期,选了门通识课所以继续在学校坐牢。顺便打算学个驾照,过几天去考科目一,现在在疯狂刷题。 至于放暑假之后嘛,大概就是摸鱼开摆,偶尔参加个 HW 还有打打 CTF 什么的,八月份的时候打算出省玩一次。 OK 那么这篇周记就写到这吧(发现似乎也不是很长),至于下次更新不出意外的话大概还要过两三个月吧(逃"},{"title":"SJTU-CTF 2023 Writeup","date":"2023-03-16T15:33:33.000Z","url":"/post/sjtu-ctf-2023-writeup/","tags":[["Web","/tags/Web/"],["网络安全","/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/"],["CTF","/tags/CTF/"],["Crypto","/tags/Crypto/"],["Reverse","/tags/Reverse/"],["Pwnable","/tags/Pwnable/"],["Misc","/tags/Misc/"],["Writeup","/tags/Writeup/"],["解题报告","/tags/%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''好久没更新博客了,周记已经咕咕咕好几个月了,等有空再写吧( 作为一个非计算机和信息安全专业学生、除了 Web 方向会一点其它啥都不会的小白,前段时间参加了我校举办的 CTF 网络安全技术挑战赛。给官方提交了 Writeup 后想着不能浪费这水文章的大好机会,就在博客上也发一遍吧。 Web flag gallery 网站首页有一堆旗子的图片,尝试乱填一个账号登录发现多了一个 CTF 旗子,提示需要管理员账号才能查看。F12 看了一眼发现这些旗子的图片都是从 /getflag.php?flag= 这个接口获取的。 于是向接口请求一个不存在的文件,出现 PHP 错误信息。 根据错误信息可知,这个接口应该只是简单地返回 images 目录下用户请求的文件,那么我们如果请求一下 ../login.php 呢? 直接爆出源代码,拿到 admin 密码的 MD5 值,解密一下发现是 sjtuctf,回主页登录,然后拿到 flag。 Mimic SQL (part 1) 显然应该是道 SQL 注入题,唯一的注入点应该是 /article?id=。跑了下 sqlmap,发现存在 Boolean-based SQL Injection,准备开始盲注。 但这道题比较特殊之处在于整了一个什么拟态防御,就是同时运行了 SQLite、MySQL 和 MariaDB 三种数据库,并同时向三个数据库跑查询,然后比对结果是否一致,不一致就会报错。因此注入的时候要兼顾三种数据库的要求。 经过亿些尝试,发现通过 /article?id=1 and (select length(flag) from flag) > 1 可以搞出 flag 的长度,只需要用一下二分法,最终发现 > 37 时能够返回文章内容,而 > 38 时出现 Not Found,说明 flag 长度正是38。 接着又经过亿些尝试,发现通过 /article?id=1 and (select substr(flag,1,1) from flag) = 'a' 并把 a 依次替换成所有可打印字符,就可以根据返回结果是否为 Not Found 试出 flag 的第一位,然后用相同的原理往后依次试出每一位即可。 于是写了个 Python 脚本自动化这个过程。 最后得到了 flag。 (引号要换成大括号) ezjsp 尝试直接传个带回显的 WebShell 上去,没想到就成功了。 然后尝试直接 ?pwd=passwd&p=cat /flag 发现权限不够,于是又试了试 ?pwd=passwd&p=/readflag,成功拿到了 flag。 ezjsp2 前一题的加强版,这次就没这么好做了,直接传 WebShell 被 WAF 拦截了。分析了下代码,发现过滤条件很苛刻。 然后我花了大量时间去构造一个能够绕过这个 pattern 的 WebShell,结果都以失败告终,因为想要代码里没有.几乎是不可能的,而这个 WAF 居然把.都给拦截了。 于是到处寻找利用其它编码形式绕过 WAF 的方法,终于发现原来 JSP 不仅能够直接解析 \\u0000 这种 Unicode,事实上如果写成 \\uuuu0000 也是可以的,而这个 WAF 只过滤了前者,所以只要把前一题的那个 WebShell 转成 Unicode 并写成 \\uuuu0000 的形式即可。 然后就和前一题一样的方法拿到了 flag。 baby express 源代码都直接正大光明给你看了,读了好几遍感觉似乎确实没啥漏洞,利用条件都形成了一个闭环。不过既然源代码第一行说 code modified from ,那我就一行一行好好比对一下,看看到底修改了哪些地方吧。 结果一看还真发现了问题,在 restrict() 这个中间件的实现,人家原本写的是: 修改之后变成了: 没错,原本的代码是有 else 分支的,next() 只有在认证成功的情况下才会被执行。现在变成了即使认证失败也只是把用户重定向到首页,但是后面的代码依然会被执行,只是 res.end() 失效导致用户拿不到执行结果罢了。 那么所有被 restrict() 中间件保护的接口就可以利用了,/test 接口具有发送 HTTP 请求的功能,我们或许可以利用它以 127.0.0.1 的身份访问 /become_admin 接口,然后化身管理员。 不过问题又来了,/test 接口请求的结果并不会返回给我们,因为在那之前我们已经被重定向了,我们又如何拿到 flag 呢? 我们可以在本地以访客身份登录一下拿到 Cookie,然后让 request() 带上我们的 Cookie 去请求 /become_admin 接口,等我们在远端成为管理员之后再用同一个 Cookie 从本地拿 flag 即可。 但是,我们能传给 /test 接口的参数只有一个 url 啊,如何给 request() 传递含 Cookie 的配置项呢? 如果仔细读过 Express.js 官方文档的话,你会在 req.query 这一节发现这样一个红框警告: () 没错,这就意味着我们传入的 url 何必只是一个 URL 字符串呢?我们完全可以传入一个 Object。而根据 request 库的官方文档,request() 的第一个参数既可以是 URL 字符串,也可以是一个含有各种配置项的 Object,正好符合利用条件。 () 按照上述步骤写个 Python 脚本跑一下即可。 exsecurity_flag_p 我的 flag_p 是通过非预期做法拿到的,这里就讲一下题目修改之后正常的思考方式吧。 对目标机器做一下端口扫描,发现 8001 端口开着,直接访问拿到 flag。 exsecurity_flag_r 通过 crt.sh 检索这个域名所有的 SSL 证书,发现了一个子域名。 访问发现是 Harbor,结合之前具有争议的 CVE-2022-46463,尝试获取公开镜像,结果发现搜索功能不知道为啥 500 了。不过一番摸索后发现 Harbor API 是正常的,通过 拿到所有公开项目,再通过 拿到 flag_r 对应的构建产物信息,然后 docker pull 拉取即可。 拉取下来之后,创建容器,发现并没有 flag。看了眼构建过程发现先是添加了flag.txt然后又把它删了。 不过这一举动毫无意义,因为 Docker 镜像实际上是层状结构,每一个构建步骤都对应着一层,因此只要把含有 flag.txt 的那一层提取出来即可。通过 docker save -o docker.tar.gz <IMAGE_ID> 获得一个压缩包,里面含有每一层的信息,解压后找到了 flag.txt。 exsecurity_flag_h 访问主页 ,按下 F12 看到 Hint。 同时我注意到这个网站居然使用的是 Parcel Development Server,哪个正经的生产环境会直接 yarn start 啊,不应该先打包编译出静态文件然后交给专门的生产服务器吗? 然后就在源代码选项卡看到了 __parcel_source_root,好家伙源代码直接爆出来了。 那么根据 Hint 访问 即可。 exsecurity_flag_s 在 exsecurity_flag_r 那道题发现了隐藏的 Harbor,当时只拉取了 flag_r 镜像,这次把 homepage/corp 镜像也拉下来看看有没有什么特别的地方。 构建历史里似乎没什么特别的,涉及到的 flag 也是 flag_h,那么在本地创建一个容器进去看看。注意到这个网页用的是一个开源项目,于是在 GitHub 上找到原始的项目,和容器内的文件进行了比对,发现只多了 Dockerfile、flag_h.txt 和 .gitlab-ci.yml 三个文件。 注意到镜像内保留了 .git,尝试 git log 了一下成功看到了 Git 日志。 似乎依然没啥特别的,就是在原始仓库的基础上多了两个 commit。但是如果你细看一下每个 commit 的文件改动记录,就能发现端倪。 我们看一下 b7986a 这个 commit 的详细信息: 没错,从中我们可以看出 .gitlab-ci.yml 和 Dockerfile 这两个文件并不是在这个 commit 中才添加的,而是早就已经存在于这个镜像内的仓库中了,这与 GitHub 上的原始仓库并不一致。 那么自然就想到去看一看这两个文件究竟是什么时候被添加进来的。通过 Git 操作镜像内的仓库回退到了最初的版本,发现并没有这两个文件,说明是在中间某处被添加的,需要往近处再翻找一下,最后在 f5d21b 版本发现了问题。 通过 git checkout f5d21b,看一下此时的 .gitlab-ci.yml,果然看到了敏感信息,是供 CI 登录 Harbor 的账号密码。 那么拿着这个账号密码去 登录一下即可看到私有的 flag_s。 然后用和 flag_r 相同的办法拉取下来,提取出含有 flag.txt 的那一层即可。 (说起来这道题竟然只有我做出来了?!) baby php 直接给出了源代码,一看这怎么可能拿到 flag 嘛,想让 1===0 成立根本就不可能吧。 那么唯一的线索就是 PHPINFO 了,既然主动呈现给我们了那必有蹊跷。 果然,Server API 那一栏写的是 Built-in HTTP Server,说明这个站点用的是 PHP Development Server,又一个拿开发环境当生产环境的。结合 PHP 7.4.21 以及 PHP Development Server 作为关键词进行检索,发现了 PHP Development Server <= 7.4.21 - Remote Source Disclosure 这个漏洞。按照提供的 POC,使用 Burp Suite 复现一下即可拿到 flag.php 源代码。 (注意把 Update Content-Length 去掉) Pwnable 简单的RPG1 显然无论选择1还是2都是死路一条,那么根据 chall.c 文件内 stage1() 函数中的这段代码 写个 C++ 程序爆破一下能够跳出这段循环的输入序列。 得到正确的输入序列是 27 91 65 27 91 65 27 91 66 27 91 66 27 91 68 27 91 67 27 91 68 27 91 67 98 97 98 97,对照一下 ASCII 码表输入即可。 简单的RPG2 过关的条件是必须购买圣剑且力量>10000,只有这么点钱根本就不可能做到嘛。 好在购买树枝的这段代码有点问题。 只要我们输入一个足够大的正整数 num ,使得 num*50 超过 int 类型的上界发生溢出,且溢出很多使得 cost 依然为正但小于 money,那么就不会出现钱不够的情况,而且还获得了巨大的力量。 比如85899346就符合条件,购买圣剑之后再购买85899346个树枝,即可拿到 flag。 简单的RPG3 第三关是个迷宫,不过每一步能不能似乎走对全靠运气,因为正确的方向是靠随机数生成的,每次都不一样,这可咋办? 不过看到 srand(time(0)/10); 瞬间就明白了,既然是拿当前的时间作为随机数种子,那么只要我保持本地时间和服务器时间一致,也拿同样的种子,即可预测生成的随机数序列,每一步该咋走也就清楚了。 根据生成的序列走即可,注意手速要快,不能和服务器时间差太多,然后就拿到 flag 了。 简单的RPG4 这关开始不提供源代码了,不过拖进 IDA 逆向一下就可以了。 读了下伪代码发现本意是想让我们在 your_deck/ 目录下选择一个怪兽和抓根宝战斗,然而都试了一遍发现 your_deck/ 目录下提供给我们的怪兽都弱爆了,根本打不过。 不过没关系,自己的牌不好那就直接抢对手的牌,只需要召唤 your_deck/.../opp_deck/Dragonmaid_Strahl 就搞定了。 顺利拿到 flag。 简单的RPG5 走迷宫,作为一个 ex-OIer 上来就是一个 DFS,然而根本搜不出路,看来是故意这样设计的,根本就到不了终点。 拖进 IDA 分析代码逻辑,发现确实是严格按照用户的输入一步一步走,判断是否撞墙,拿到 flag 的前置条件也确实必须走到终点,似乎找不到突破口。 仔细观察一下,发现我们的输入被 scanf() 限制了长度为512,存储到了 byte_40C0[] 这个数组里。 再看看 getbit() 函数的实现,发现迷宫的地图数据竟然也存储在 byte_40C0[] 这个数组,只不过是在后半部分,有一个512的偏移量。 这不就有机可乘了嘛。要知道 C 语言中读入一个长度为512的字符串,占用的空间可不是512而是513,因为最后一位是个 \\0,代表字符串结束。这也就意味着如果我们输入的路径有512步,那么地图数据将被篡改,左上角的围墙会消失。 这就为我们打开了一条由 (1,1)(1,1)(1,1) 走向 (1,7)(1,7)(1,7) 的通路,跑了下 DFS 从 (1,7)(1,7)(1,7) 到 (49,99)(49,99)(49,99) 是通的,找到了路径。于是我们只要把两段路连起来,再有意增加一些来回移动,把路径的长度凑够512即可。 (最前面的 sw 是来回移动用来凑长度的) Reverse Endless 尝试直接运行程序发现运行不了,拖进 IDA 里看一眼竟然是个 PowerPC 程序,不过只要根据 IDA 反汇编的结果,把代码移植到 X86_64 就可以了吧。幸好程序并不复杂,很快就移植好了。 编译运行,结果发现程序卡住了,一直没有反应,难怪名字叫 Endless。不过作为一个 ex-OIer 一下子就发现了问题,sub_10000824() 是用递归实现的,涉及到了大量的重复计算,这能不慢吗?于是加了一个记忆化数组,优化了一下程序,总算能跑了。 然而运行结果却是一堆乱码,并不是我们想要的 flag。 此时离成功只差一步之遥,由于 PowerPC 采用的是 Big Endian(大端序),而我们常用的电脑都是 Little Endian(小端序),因此移植的时候一旦涉及到位运算要小心处理,本题中就需要把 ans[i] = byte_100200B8[i] ^ ((unsigned char *)&qword_100200E8)[i % 8]; 修改成 ans[i] = byte_100200B8[i] ^ ((unsigned char *)&qword_100200E8)[7 - i % 8];,从而在小端序电脑上模拟大端序电脑的运行结果。 再次编译运行即可拿到 flag。 EasyMBA 拖进 IDA,根据反汇编结果,只要输入的数据通过四个 checker 即可拿到 flag。 checker1() 的逻辑非常简单,可以直接算出正确的输入是 2833100173。 对于剩下三个 checker,直接写三个 C++ 程序暴力求解正确输入即可。 求出来checker2()的正确输入是 79606647,checker3() 的正确输入是 84381514,checker4() 的正确输入有多个: 依次尝试发现只有用最后一个,也就是 69863554 才能拿到 flag。 Crypto 对密码学完全不了解,只好现学现卖,可能有讲得不对的地方。 Baby RSA 看到 e=3e=3e=3,首先考虑小公钥指数攻击,也就是 m=c+k×N3m=\\sqrt[3]{c+k\\times N}m=3c+k×N 依次枚举自然数 kkk,然而把 [0,130000000][0,130000000][0,130000000] 范围内的 kkk 都枚举遍了也没开方开出整数 mmm,似乎是因为这道 RSA 有 padding,mmm 的长度为255,导致 kkk 需要很大,不能通过枚举破解。 那么就尝试把 padding 的过程写成数学表达式吧。我们记原本的消息(也就是 flag)为 m0m_0m0,经过 padding 之后的消息为 mmm,其中 m0m_0m0 长度未知,mmm 长度为255。尽管我们不知道原本消息的长度,但我们可以大胆假设一下消息的长度不会超过45,于是干脆假设 m0m_0m0 长度为45,那么 padding 的过程也就相当于在 m0m_0m0 后面补了210个全0的字节(8*210个0比特)。将 mmm 和 m0m_0m0 看成十进制整数,于是得到这样的关系式: m=pad(m0)=m0×(28)210m=pad(m_0)=m_0\\times (2^8)^{210} m=pad(m0)=m0×(28)210 于是根据 RSA 的加密关系,有: c≡m3 mod Nc\\equiv m^3 \\bmod N c≡m3modN c≡(m0×(28)210)3 mod Nc\\equiv (m_0\\times (2^8)^{210})^3 \\bmod N c≡(m0×(28)210)3modN c≡m03×(28)210×(28)210×(28)210 mod Nc\\equiv m_0^3\\times (2^8)^{210}\\times (2^8)^{210}\\times (2^8)^{210} \\bmod N c≡m03×(28)210×(28)210×(28)210modN 其中 ccc 和 NNN 我们都已知,那么等式两边同时乘以 (28)210(2^8)^{210}(28)210 的逆元的三次方,我们就可以得到 m03 mod Nm_0^3 \\bmod Nm03modN,此时的 m0m_0m0 因为长度只有45,再应用小公钥指数攻击即可(事实上都不需要加上 kkk,直接开三次方就开出整数了)。 Child RSA 上一题的进阶版本,仅仅把 padding 的模式从全零填充换成了填充 \\x01(即 00000001),提升了难度。 依旧可以用数学语言写出 padding 过程的表达式。我们同样记原本的消息(也就是 flag)为 m0m_0m0,经过 padding 之后的消息为 mmm,其中 m0m_0m0 长度未知,mmm 长度为255。同样大胆假设 m0m_0m0 长度为45,那么 padding 的过程也就相当于在 m0m_0m0 后面补了210组 00000001 比特。将 mmm 和 m0m_0m0 看成十进制整数,于是得到这样的关系式: m=pad(m0)=m0×(28)210+20+28+⋯+28×219=m0×(28)210+(28)210−128−1m=pad(m_0)=m_0\\times(2^8)^{210}+2^0+2^8+\\cdots+2^{8\\times219}=m_0\\times(2^8)^{210}+\\frac{(2^8)^{210}-1}{2^8-1} m=pad(m0)=m0×(28)210+20+28+⋯+28×219=m0×(28)210+28−1(28)210−1 为了方便起见,记 a=(28)210a=(2^8)^{210}a=(28)210,b=(28)210−128−1b=\\frac{(2^8)^{210}-1}{2^8-1}b=28−1(28)210−1,则有: m=pad(m0)=am0+bm=pad(m_0)=am_0+b m=pad(m0)=am0+b 于是根据 RSA 的加密关系,有: c≡m3 mod Nc\\equiv m^3 \\bmod N c≡m3modN c≡(am0+b)3 mod Nc\\equiv (am_0+b)^3 \\bmod N c≡(am0+b)3modN a3m03+3a2bm02+3ab2m0+b3−c≡0 mod Na^3m_0^3+3a^2bm_0^2+3ab^2m_0+b^3-c\\equiv 0 \\bmod N a3m03+3a2bm02+3ab2m0+b3−c≡0modN 到这里似乎不太好做了,我们得到的是一个三次多项式的同余方程,至少我解不出来,丢给 Mathematica 也解不出。于是以 modular polynomial equation 作为关键词检索了一下,还真发现个 Coppersmith method 似乎能解决这种方程。看了眼维基百科上的解释,发现这个算法已经在 SageMath 里实现好了,兴冲冲地拿去用,结果报错了。原来 Coppersmith method 要求这个多项式必须是首一多项式,而我们这个多项式最高次项前面有系数,那咋办? 幸好 a3a^3a3 的逆元存在(记为 inv(a3)inv(a^3)inv(a3)),对方程两边同时乘以 inv(a3)inv(a^3)inv(a3),得到: m03+3a2binv(a3)m02+3ab2inv(a3)m0+(b3−c)inv(a3)≡0 mod Nm_0^3+3a^2binv(a^3)m_0^2+3ab^2inv(a^3)m_0+(b^3-c)inv(a^3)\\equiv 0 \\bmod N m03+3a2binv(a3)m02+3ab2inv(a3)m0+(b3−c)inv(a3)≡0modN 正是我们要的首一多项式,丢给 SageMath 一下子就解出来了,然后还原成字符串即可拿到 flag。 (cof1、cof2 和 cof3 分别为二次项系数、一次项系数和常数项,预先用 Python 计算好了) RSFL 经过一番检索发现这是道非常标准的 LFSR 题目,直接根据网上的例子依葫芦画瓢求得初态 R。 不过这样做下来,结果却是乱码。 想想明明是 LFSR 为啥题目叫 RSFL 呢?尝试把最后的 R 二进制倒转一下,也就是R = R[::-1],然后就成功拿到了 flag。 Misc Tiny ELF 要构造一个不超过三百字节的可执行文件,显然不能用 C 来写,只能用汇编了。然而我并不会汇编,好在找到了现成的代码,把读取的文件路径以及返回值改改就能用。 使用 nasm -f elf32 tinyelf.asm 编译,此时如果直接 ld -m elf_i386 tinyelf.o -o tinyelf 进行链接,得到的可执行文件非常庞大,远超三百字节,因此我们需要自定义一下链接的过程。创建一个 tinyelf.lds 文件,内容如下: 然后使用 ld -m elf_i386 -s -static -T tinyelf.lds -o tinyelf tinyelf.o 进行链接,得到的可执行文件就只有320字节了,但依然不符合题目的要求。这时再用一下 super-strip 进一步缩减文件(写给官方的解题报告里漏了这步),就只剩下183字节了,base64 一下提交即可拿到 flag。 Baby Mitm 题目已经明示用中间人攻击。先用 WireShark 抓了下包,发现是 TLSv1.3 加密,但包裹的应该并非 HTTP 协议,因此 Fiddler 等工具都用不了。 那么有没有适用于非 HTTP 协议的中间人攻击工具呢?找了很久终于发现了 mitm_relay,完全符合需求。 可惜不知道我电脑上的 Python 是不是有什么问题,按照 README 配置好了证书,并且把 client 的流量重定向到了 Proxy,然而每次运行 client mitm_relay 都会崩溃,导致我一度以为这个办法行不通。 后来开了个 Docker 容器搞了个干净的 Python 环境,然后竟然就正常了,成功抓到了 flag 信息并完成了解密。 可这解密出来的信息还是一团糟啊?而且每次返回的信息都不同,难道还有加密?多观察了几次我发现含有 flag 的信息总是以 78 9C 64 开头,似乎是某种文件头,Google 一下发现原来是 zlib 压缩的标记,解压一下即可。 解出的明文上半部分是莎士比亚的诗随机摘录的一部分,最底下是 flag,这也解释了为什么每次返回的信息都不同。 Baby Equation 求解这个方程的正整数解。 xy+z+yx+z+zx+y=k, k∈{2,4,6,8,10,12,14}\\frac{x}{y+z}+\\frac{y}{x+z}+\\frac{z}{x+y}=k,{\\ }k\\in\\{2, 4, 6, 8, 10, 12, 14\\} y+zx+x+zy+x+yz=k, k∈{2,4,6,8,10,12,14} Google 检索了一下,找到了 Quora 上的这个回答,贴心地提供了一个 k=4k=4k=4 时的 Magma 求解程序。 对于 kkk 取其他值的情况,只需要提供一组整数特解(不需要正整数),改动一下程序里的方程和特解,即可求出正整数解。 至于如何找到一组整数特解,可以用 Mathemetica 或这个 Python 程序: 最后解下来发现 k=8k=8k=8 和 k=12k=12k=12 用这个方法解不出正整数解,不过解出五组也够了,提交即可拿到 flag。 附上解出的答案(每三行对应一组解,k=8k=8k=8 和 k=12k=12k=12 解不出所以用 111 占位)。 Tom’s Cheese 拿到了 Nim 程序源代码,读了好几遍感觉没啥问题啊,怎么会有漏洞呢?即使在 Hint 给出之后,我依然百思不得其解,因为我下意识地认为 GitHub 上 Closed 的 Issue 应该都已经在最新版本(1.6.10)中被修复。 直到最近(3月10日) Nim 发布了 1.6.12 版本,我看了眼更新日志,发现竟然提到了修复了 deques 组件的一个 bug,于是赶紧翻找对应的 PR。 有意思的是,这么严重的一个 bug 明明一月份就提出并修复了,怎么拖到现在才发布 Release 1.6.12。而 Release 1.6.10 是去年11月发布的,自然不会包括这个 bug 的修复,于是就给了我们可乘之机。 deques 实现的是一个顺序存储的双端循环队列,仔细看了一下发现触发 bug 的条件是队列中元素个数为 2k2^k2k 个,此时 shrink(fromFirst = 0, fromLast = 1) 就会出现不正确的结果,即队首元素变成了0。 那么利用这一个 bug,Tom 只要把奶酪的数量先搞成16个,然后用选项4喂 Jerry 0个,Tuffy 1个,于是队首的奶酪就神奇地变成了零卡的过期奶酪,再喂给 Jerry,这样 Jerry 的健康值就会下降,然后不停重复这一过程直至 Jerry 不健康了,就拿到了 flag。 (flag 说得对,不过我杀死的好像是 Jerry 不是 Tuffy 吧hhh) 总结 总的来说,这次比赛体验很棒。题目的难度设置合理,让我这种 CTF 零基础小白在不熟悉的方向(比如 Crypto、Reverse、Pwnable)能边学边做,打完比赛又学到了很多新知识。同时题目也足够新颖,很有创意,几乎没有直接照搬的套路化的东西,是需要自己去分析思考的。当然还有奇安信赞助的丰厚奖金,做题的动力直接拉满。 最后拿了11847分,总排名#7,意外地挤进了前十,被大佬们包围着瑟瑟发抖。 "},{"title":"2022年终总结","date":"2022-12-31T15:59:59.000Z","url":"/post/2022-annual-report/","tags":[["年终总结","/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''2022年的最后一个冬夜,我和往年一样坐在屏幕前,试图用文字为过去的一年画上句号。今年的我,沉思良久,却一时不知从何写起。 2022年发生了太多事情,让我感到恐惧、愤怒、无奈、迷茫,却也让我看到一丝丝希望。这些事情注定不被允许存在于「正确的集体记忆」中,但这片土地上的苦难、悲剧、抗争、勇气值得被铭记。因此,我愿将它们和我的生活一起,写入我的年终总结,作为它们曾经存在过、发生过的一份见证。 年度关键词:「荒诞」 2020年的再度轮回。 用一个词来概括2022年,我想只能是「魔幻」或「荒诞」。翻了下2020年的年终总结,我发现我已经用过「魔幻」了,所以今年就用「荒诞」吧。 整个上半年简直就像是直接挪用2020年的剧本,只不过把地点由武汉改成了上海。具体的经历可以看看周记#25 - 近况报告:高中生活完结🎉,此处不再赘述。 熬过了痛苦的网课、延期一个月的高考,匆匆过完缩水一个月的暑假,我终于迎来了大学生活。可开学第一天,星期二,我仿佛进入了循环。一人阳性,全校封闭,宿舍封楼,大学成了网课。具体的经历可以看看周记#28 - “开学第一课”,此处不再赘述。 十月底,终于有几周线下课。但是,48小时核酸检测、进出校申请制度成为了新常态。没有边界的权力肆意延伸,核酸检测信息开始与校园卡挂钩,不做核酸的后果是冻结卡片,不能洗澡吃饭。 原以为2022年就会在这新常态中结束,谁料十二月,风向一百八十度大转弯。宣传口对于新冠的论调变成了小感冒、可自愈,国家对于新冠病毒的认识似乎在一夜之间就取得了质的飞跃。明明就在不久前,国家还在高强度宣传动态清零、妖魔化新冠。就这样,在这场近乎运动式的剧变中,我们走向了放开。 然后,毫不意外地,退烧药抢破头,重症死亡人数飙升,一场场生离死别的人间惨剧再度上演。毕竟,最近一年里,我们忙着大建方舱,忙着大筛核酸,忙着封控维稳,却忘了提高医疗设备和服务,忘了为放开之后的药物保障做准备。 在本应逐步放开的绝佳时机大肆封控,牺牲了无数人的正常生活甚至是生命,造成了一场场本可以避免的灾难,却又在这个寒冷的冬天,毫无征兆地将措手不及的人们推到病毒面前裸奔,我想,没有比这更荒诞的事情了。归根到底,这是「科学」在这个国家决策过程中的缺失。我们的「科学」向来都是听从于政治的,而不是为政治指引方向的,决策不是随着「科学」的发展逐步演进的,而是尽可能地彰显自身所谓的正确性与优越性。而最终承受这一切后果的,只能是底层的百姓。 于「荒诞」中勇敢抗争 他人为你梦中的光明燃尽过。 很惭愧,我没有足够的勇气去抗争,我钦佩那些勇敢的人们,毅然起身,为更加光明的社会而战。无休止的封控能够迎来一个句号,离不开他们的努力。他们的勇气,让我看到了这片土地上依然有希望。 不要忘记那些夜晚的黑暗,不要忘记#FFFFFF色的纸张,不要忘记那墙上的涂鸦和灰黑色的补丁,光明的到来不是理所当然的,希望回归正常生活的那一天,我们依然记得他们并心存感激。 除此之外,还要记录一位特殊的抗争者——网易新闻。在媒体环境急剧恶化、新闻自由受到严重威胁的今天,在各大媒体年终总结一众的“妖艳贱货”中,网易新闻选择了展示平凡人真实的2022年,直面现实揭示苦难,也让人看到了人性中永不磨灭的温暖光辉,是对如今高唱赞歌、粉饰太平的媒体环境的勇敢抗争。 (function(){var player = new DPlayer({\"container\":document.getElementById(\"dplayer0\"),\"video\":{\"url\":\"\",\"pic\":\"\"}});window.dplayers||(window.dplayers=[]);window.dplayers.push(player);})() 视频发出后没多久,不出意外地被删除了。不过没关系,当视频被删除的那一刻,这个视频便完整了。 「荒诞」之下,仍要好好生活 聊完沉重且严肃的话题,聊点轻松的吧,就像往年那样总结一下我个人的2022年。 学习 警惕高考大类招生骗局。 经过了上半年的备战,我在7月的高考中取得了一个中规中矩的成绩,不算很差,但也并不是什么高分。填报志愿时,我别无选择,只能硬着头皮往大类招生的天坑里面跳。最终,我的运气还不错,被 SJTU 工科信息类录取了。 进入大学后,由于疫情封校,大类招生专业分流一度延后,直到11月专业才最终确定。由于高考成绩并不出色,我与 CS/SE/IS 根本无缘,连自动化都够不到,最后是压着线去了完全陌生的信息工程专业。虽说这名字听着和软工什么的好像差不多,但实际上它属于电子系,学的内容涵盖了电子工程、通信工程、视频编码、机器学习、计算机视觉等等,完全是杂而不精。 虽然很遗憾,但事已至此,我也只能接受现实。平台内转专业的竞争过于激烈,我不愿再经历一次高四,就顺着这条路走下去吧。当然,如果有选择的机会,千万不要碰大类招生! 游戏 无论当下的境遇如何,提瓦特大陆的星空永远会有你的位置。 没错,今年陪伴我最久的游戏,当然是《原神》啦!无论是剧情,还是配音和 OST,都是一流的水准。作为一个零氪玩家也能玩得很开心。 对我而言,年度最佳任务可能是「森林书」吧。尽管这是继「神樱大祓」后又一长篇任务,被不少人吐槽冗长繁琐,但剧情真的很棒,像在读一个美妙的童话,刀子也很棒。 最后安利一个原神年度混剪~ 音乐 网易云音乐==OST播放器 年度歌手 HOYO-MiX,鬼知道我把 OST 听了多少遍。 阅读 不知道做什么的话,就去读书吧。 说来也惭愧,除去教材外,今年读的书屈指可数。 《一本小小的蓝色逻辑书》 为了熟悉分流考的逻辑题买的。内容主要包括逻辑推理、逻辑漏洞、分析论述等方面的知识,每一章都配有几道练习题。就系统性而言我觉得这本书不太行,当然如果只是读一读打发时间顺便学点东西倒也还行。 《献给阿尔吉侬的花束》 看了 DIYgod 的推荐买了,是关于人生意义和成长的科幻小说,确实不错,中文译本也很有特色。 《深入理解计算机系统》 传说中的 CS:APP,只读完了前两章,填补了我的很多知识盲区,强烈推荐 C++ 初学者把前两章作为预备知识学习,对理解信息是如何在计算机中存储的很有帮助。 博客 惨惨淡淡又一年。 由于7月份的时候弃用了愈发臃肿的 Google Analytics,改用了自建的 Umami,因此丢失了上半年的访问量统计数据。 今年发布了8篇文章,如果还有你没读过的,不妨去看看哦。 今年新增9条有效评论,感谢每一个前来互动的人🥰 2023,会更好的吧? 疫情三年,我已经对“春暖花开”这个词 PTSD 了,因为有太多个冬天后的春天,都是一片荒芜。但是,我还是希望,待这个寒冬过去,春天真的能够在2023年到来,我们能自由地呼吸,去做想做的事,去见想见的人。 我的2023愿望清单: 顺利通过所有考试 回老家过年 去外地旅行 学会做几道菜 做好润的规划 当然最重要的是,身体健康,幸福快乐。 最后,感谢读到这的你,祝你的2023年,一切顺利,心想事成!"},{"title":"对抗校园网 DNS 污染,我有妙招","date":"2022-10-15T04:42:17.000Z","url":"/post/how-i-fight-against-campus-dns-pollution/","tags":[["路由器","/tags/%E8%B7%AF%E7%94%B1%E5%99%A8/"],["DNS","/tags/DNS/"],["校园网","/tags/%E6%A0%A1%E5%9B%AD%E7%BD%91/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''最近给寝室接入了学校网络信息中心免费提供的 1Gbps 有线网络,这确实是我迄今为止使用过的最奢华的网络环境,尤其是把 WSL 软件源更换成 SJTUG 镜像站后,能够以接近 1Gbps 的速率更新软件包,体验极度舒适。 然而,某天早上7:30,当我试图打开 Bilibili 时,Chrome 浏览器却提示 DNS_PROBE_FINISHED_NXDOMAIN,手机客户端也加载失败。通过查阅校内论坛,我得知由于某些原因,从2022年5月25日起的每天0点至8点,学校网络信息中心提供的 DNS 服务器会故意不返回大部分视频网站(包括但不限于哔哩哔哩、腾讯视频、爱奇艺、优酷、华数TV、抖音、快手)及游戏网站(包括但不限于Steam商店和聊天、Origin、战网、英雄联盟、崩坏)的解析结果,即所谓的 DNS 污染。 虽然我多数时候没有在0点至8点使用这些网站的需求,但是我并不认可这种行为,所以本文就来谈谈我是如何对抗校园网 DNS 污染的。 更换 DNS?没那么简单 也许你会认为,既然只是学校网络信息中心提供的 DNS 服务器在特定时段不返回解析结果,那么只要改为使用公共 DNS 就能解决问题。没错,我一开始也是这样认为的,校内论坛上提供的解决方法亦是如此。 但是,在路由器上更换 DNS 后,却没有任何效果。我尝试在特定时段使用 nslookup 命令向校园网 DNS 服务器和一些公共 DNS 服务器查询 bilibili.com 的解析结果,结果很 amazing 啊! 无一例外地全部被阻断!我尚不清楚校园网是如何做到这一点的,或许是强制重定向所有 DNS-over-UDP 查询请求到校园网 DNS 服务器,导致请求根本没有到达 114 或 DNSPod 服务器,又或许是由于 DNS-over-UDP 查询是明文的,校园网出口能够识别出查询的域名,从而直接返回空结果。总之,这种情况下,简单地更换 DNS 服务器是无效的。 而且,即使这种方法有效,公共 DNS 会导致一些校内域名无法被正常解析,或无法返回最快的结果,同样会影响使用体验。 另辟蹊径 既然更换 DNS 无效,那么就只能另辟蹊径了。我想到的第一个方法是使用代理服务器,利用 dns2socks 等工具将 DNS 查询请求转发到代理服务器,再由代理服务器向公共 DNS 服务器查询结果,最后将结果返回给客户端。但这种方法需要一台境内服务器以确保速度,同时协议转换的过程对路由器的性能也有一定的要求。 因此,我决定使用另一种方法,那就是 DNS-over-HTTPS(DoH) 和 DNS-over-TLS(DoT)。二者都是 DNS-over-UDP 的替代方案,通过 HTTPS 或 TLS 协议向公共 DNS 服务器查询结果,从而避免了 DNS-over-UDP 查询请求被校园网通过某些方式污染的问题。 同时,为了避免上一节末尾提到的问题,我希望能够优先使用校园网 DNS 服务器进行查询,只有在校园网 DNS 服务器无法正常返回结果时才使用 DoH 或 DoT 向公共 DNS 服务器进行查询。SmartDNS 无疑是实现这一需求的绝佳工具。 SmartDNS,出击! SmartDNS 是一个运行在本地的 DNS 服务器,它接受来自本地客户端的 DNS 查询请求,然后从多个上游 DNS 服务器获取 DNS 查询结果,并将访问速度最快的结果返回给客户端,以此提高网络访问速度。 SmartDNS 同时支持指定特定域名 IP 地址,并高性匹配,可达到过滤广告的效果。 与 DNSmasq 的 all-servers 不同,SmartDNS 返回的是访问速度最快的解析结果。 支持树莓派、OpenWrt、华硕路由器原生固件和 Windows 系统等。 (摘录自 SmartDNS 项目主页) 关于 SmartDNS 是如何实现择优解析,以及如何避免因测速导致 DNS 解析过慢的,可以参考 Sukka 的这篇文章。 根据 SmartDNS 的官方文档以及路由器的处理器构架,我下载了编译好的 armv7 二进制,并编写了配置文件。 将 SmartDNS 运行后,我将路由器自带的 dnsmasq 的上游服务器设置为 127.0.0.1:5362,然后… 与此同时,SmartDNS 的日志也记录下了这次查询的过程。 对抗成功! 总结 本文利用 SmartDNS 解决了校园网 DNS 污染问题,成功构建了愉快的网络环境。如果你的校园网也存在故意污染 DNS 的情况,并且不想或不能直接更换公共 DNS,不妨试试本文的方法。 最后说一句,我能够理解学校这么做的考虑,但我认为堵不如疏,强制性的网络限制并不是一个好方法。"},{"title":"周记#28 - “开学第一课”","date":"2022-09-25T08:57:47.000Z","url":"/post/weekly-28/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''诶嘿,我又来水文章了(bushi) 转眼间大学已经正式开学两周啦!回想起这两周所经历的一切,我想我只能用两个词来形容,那就是「魔幻」和「荒诞」,远超想象的「魔幻」和「荒诞」,以至于狠狠给我上了一课。 你可能会好奇发生了什么,那就接着往下看吧。 开学第一天 暴风雨来临前的上午 中秋假期后的周二即为开学第一天。因为有早八还下着雨,所以睡到6:30就起床了,毕竟我可不想大学的第一节课就迟到。吃完早饭步行1km到达教学楼,7:40大教室里已经座无虚席了,我只好在最后一排赶紧找了个座位坐下。 7:50线代老师来了,打开 Canvas 让大家扫码签到,得知这是我们在大学的第一节课就顺便给我们介绍了一下 Canvas 的各种功能。简单来说,Canvas 是一个在线教学平台,可以查看课程资料、提交作业等,还可以观看课程录像和实时直播,因为教学楼大部分教室都安装了录课设备,会根据课表自动录制并上传。 第一节课主要讲了一下线性代数的历史和应用,讲了数域、线性方程组和矩阵的概念,感觉老师很不错,大概是希望所有人都能听懂所以讲得比较细致,有一些显而易见的地方也会板书亲手证明给你看。 下课后,正想去体育馆上后面一节体育课,看到教务处通知说由于疫情防控第一周体育课线上进行,第二周开始恢复线下。于是回到宿舍,打开腾讯会议开始线上课程。11:40下课后,去食堂吃了顿好吃的,然后回寝室休息。 到这里为止,一切看起来还比较正常,之后的事情就不那么正常了。 半天大学体验卡到期 午饭后在寝室休息,登上教学信息网看了一眼课表,无意间竟发现所有课程都被添加上了腾讯会议号和密码,此时我已预感大事不妙。打开校内论坛一看,果然出事了,校内有一位返沪同学核酸异常,包括菜鸟驿站在内的许多场所都已被封,校门也封死禁止出入了。开学半天就封校,真够离谱的。 一小时后接到教务处通知,确认下午课程全部改线上教学。回想起今年三月我校疫情爆发,这下恐怕要二周目了,于是赶紧前往楼下便利店屯了一些物资。室友搞来了一桶18L的桶装水,够喝一阵了。 下午上完课得知已经有几栋楼的同学被转运到隔离酒店了,还有几栋楼封控了。我所在的楼暂时还没被封,但楼栋群里通知说尽量不要外出,晚饭去食堂打包回来吃。 打开手机,我校微信公众号又不合时宜地发了一篇推送: (穿梭回今年三月是吧,重温一下封校是吧) (图源微信公众号“二月十三”,原文已被和谐) 真正的开学第一课 第二天中午,流调结果出来了,我所在的楼栋涉及密接,喜提2天封控+5天自我健康管理(后直接加码至7天封控),全校大部分宿舍楼都是如此。封控期间足不出户,三餐配送至寝室,不过至少可以去一楼洗澡,这比三月份好。 于是,真正的大学第一课开始了,在开学第二天就用无尽的封闭管理和层层加码击碎你对正常生活的美好幻想,从而更坚定了你润的决心。 你说的对,但是《封闭化管理》是交通大学自主研发的一款全新封闭世界冒险游戏,游戏发生在一个被称作[闵行校区]的幻想世界,在这里被神选中的人将被授予[南洋北苑4-7天隔离],导引新冠之力,你将扮演一位名为[冤种学生]的神秘角色,在自由的网课生活中邂逅性格各异、能力独特的同伴们,和他们一起做核酸,找回失散的密接——同时逐步发掘[人性化管理]的真相。 (中秋月饼的包装盒,这下成真了😅) 封控的日子 吃吃吃 封控期间一日三餐都是配送到寝室的。早饭是保质期很长的那种牛奶加面包,午饭和晚饭是盒饭。 除了第一顿午饭到下午两点才吃上,其他的基本都是准时送到的。 至于饭菜质量嘛,反正透明盒子的盒饭是挺难吃的,略带腥味的不明肉块、淀粉十足的红烧狮子头、口感奇怪的剁椒鱼是饭菜里的常客。相比之下红黑盒子的盒饭比较好吃一些,但依旧比不上堂食😭。 在封控的中后期开始天天发水果,这个挺不错的,水果多到吃不完。 上网课 我校购买了腾讯会议教育版,并且对接了教务系统,所有课程全部在腾讯会议进行。得益于学校非常完善的网络基础设施,线上上课几乎没有卡顿。 因为还没有分专业,所以我们寝室除了大学英语外的课都是一样的,就不会互相影响啥的,还可以交流讨论,上课体验不错。 课程作业是在 Canvas 平台上提交,正好之前买了文石的 NoteX 电子纸,可以直接在电子纸上写作业,然后导出 PDF 上传,省去了逐页拍照合并 PDF 的过程,非常便捷。 核酸、转运 自从封控之后,早八也显得没有那么恐怖了,毕竟无论有没有早八,清晨6点都会被准时叫醒去做核酸。 校外隔离点开始陆陆续续有人阳性了,因此每隔几天就会突然多查出一批密接,用大巴拉走去隔离,甚至台风登陆那天也连夜拉走。并且越晚拉走的隔离条件越差,班上有人在隔离点一晚上踩死13只美州大蠊。 有一天涉及的密接实在太多,结果搞得非常混乱,简直是一团糟,健康码红码/健康码绿码+收到转运短信/没收到转运短信+在转运名单上/不在转运名单上+最后被转运/最后没被转运,啥样的组合都有,甚至出现了接到转运短信两天后才被转运的情况,这要传染早该传染了吧。 这段时间天天提心吊胆的,看着周围寝室的人一个个被拉走,生怕自己就是下一个。 (图源微信公众号“二月十三”,原文已被和谐) 线上演唱会 某天刷校内论坛看到一个帖子,说太无聊太难受了,要开一个线上演唱会,于是就想去凑个热闹。 那天晚上600多个素不相识的人聚在腾讯会议室里一起听歌,想唱的人自由开麦,气氛非常棒,感觉特别解压。后面几天又办了几场,甚至还邀请到了友校的某位知名 UP 主。 总之就是很感谢论坛上的那位学长办了个这样的活动,不然我真的要被关疯掉了。 解封 终于,在9月20日做了鼻咽双采核酸,似乎是要解封的征兆。 (图源微信公众号“二月十三”,原文已被和谐) 9月21日晚,宿舍楼解封。我迫不及待地换了身衣服跑到楼下,找了辆共享单车,开始狂骑。本来打算去西区逛逛,搞点好吃的,结果骑到隧道发现被警戒线拦住了,只好绕着东区骑了好几圈。秋天夜晚的风特别凉爽,因为还有很多楼没有解封,路上一辆车、一个人也没有,非常空旷,非常安静。在被剥夺自由7天后,我突然发现出去骑个车也是如此美妙的事情。 宿舍楼解封后并没有恢复出事之前的所谓的“常态”,校园的所有公共场所依旧不开放,食堂只提供打包,非必要不进出校。即使风险区已经解除,快递也仍旧卡在路上,或是根本发不出来。我的快递就是一直卡在校门外不动,以疫情防控为理由不安排配送,多次打客服电话投诉都只是敷衍了事。不得已试了试邮政总局投诉,几小时后就有客服打电话给我,态度友好地解释原因,并立刻安排配送了,真的高效管用。 解封后的周五,下午上完课立马润回家了,去TMD非必要不离校。既然短期内不可能恢复线下教学,我可不想被关在学校里,天天核酸还哪都去不了。 闹剧何时结束 在上一篇周记中,我曾吐槽过学校的进出校审批制度,毕竟友校都可以凭48小时核酸出入自由了。可是呢?以牺牲大家的正常生活为代价层层加码战战兢兢最后不还是第一个出事了? 已经三年了,如果未来还是这样,如果这一切将成为一种新的常态,我真的不知道我还能忍受多久。大学四年,我想要的是在教室上课的自由,想要的是进出图书馆的自由,想要的是随时出校的自由,而不是无止境的网课与限制以及随时到来的封控。我需要的是种种非必要行为构成的生活,而不仅仅是活着,防疫带给我的麻烦和恐惧远远大于病毒本身。 贵州转运密接的大巴出事的那天,看到新闻我突然就想起了几天前台风登陆的那个夜晚,也有许多密接同学被大巴连夜接走,心里一阵后怕。那天晚上那么大的风,那么大的雨,恐怕连路都看不清吧。你我都在那辆大巴车上,我们又有什么底气保证下一个出事的不会是自己? 对于本次疫情防控中违背《新型冠状病毒肺炎防控方案(第九版)》的种种加码行为(如从未见过的7+0封控、解封要求双采等),大家都通过各种渠道反映过,也尝试过抗争,然而并没有用。用论坛上一位同学的话来说,就像是一拳打在棉花上,很无力。 解封后食堂的工作人员全部穿着防护服在打菜,大概是上面的要求吧,背后就是热火朝天的厨房,还穿着那么厚重的衣服,我真的一阵心疼。我们都生活在这场荒诞的闹剧中,我们都是演员,别无选择。 感谢学校给我上的这开学第一课。"},{"title":"周记#27 - Re: 从零开始的大学生活","date":"2022-09-10T08:22:32.000Z","url":"/post/weekly-27/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''好久不见,首先祝各位中秋快乐! 转眼间已经在大学生活了两周。作为一个学长口中“对大学生活尚存激情与憧憬”的大一新生,这段时间确实收获了不少新鲜的体验。趁着这份难得的新鲜感还未消散,就以本文记录下我从零开始的大学生活吧! 报到 因为就住在上海,决定在家里多躺平一天。8月24日一早带着大大小小的五包行李出发,前往位于闵大荒的 SJTU。到校后一下车就有志愿者拉着手推车帮忙搬运行李。跟随指引依次完成了行李登记、入校核酸,到达校车候车点后提取行李、上车前往宿舍楼。 因为不是闰年所以入住了东区宿舍。校车车门一开,边上的人行道上站满了各个学院的志愿者,手里举着各个学院的牌子。我院的两位学长非常热情地帮我承担了一大半行李,到了宿舍楼之后考虑到楼层比较高就不想麻烦学长了。没想到他们一直等我办理完入住手续,坚持帮我把行李搬上去了,真的非常感谢。 进房间后另外三位室友还在睡懒觉,被我弄醒了我只好尴尬地打了个招呼。之后就是拆包开始收拾,安装蚊帐、铺床垫床单,把各类物品摆放好。一系列杂活弄完已经中午了,然而入校核酸结果还没出,不能出寝室吃饭。幸好入住的时候送了零食大礼包,有面包、饼干什么的,就吃了一些。 下午骑车前往学院办理入学手续。尽管人生地不熟(虽然在上海但是几乎没来过闵大荒),但是手机开个导航语音播报放口袋里,然后跟着语音指示无脑向前骑就顺利到达了。进了楼又开始晕头转向找教务办公室,就在这时一位路过的老师给我指了路(后来发现竟然是我班的思政),顺利办完拿到了学生证、院衫和一些小礼物。 回宿舍后果然遇上了推销的“学长”,果断拒绝,赶出寝室。后来在论坛上看到保卫处抓住了2名翻墙进来推销的校外人员,想想当时应该把他关在宿舍里,然后打电话叫保卫处绳之以法😂。 晚上体验了宿舍楼附近的食堂(后来发现是最难吃的一个)。或许是高中后两年换了食堂供应商难吃至极,相比之下这第一顿我觉得还不错,而且才12元,性价比很高。 开学典礼 因为疫情原因只有部分学院去了现场,其余在各个分会场看转播。 (具体有啥已经记不清了,因为大家都在玩手机) 下午的时候有个领导讲话还 cue 了一下“疫情期间让交大人脸上挂不住的用词”(沆瀣一气),我快笑死了,然而周围同学好像不知道这个梗。(疫情期间高中语文老师把这事发在群里,当时就笑死了) 英语分级考 这玩意用于决定大学英语的课程级别。除了 Vocabulary 部分一堆词不认识之外,其余题目都只是上海高考的加强版,比如听力只读一遍,对于上海考生来说不用准备考上大英4轻轻松松。 军训 随后就是为期两周的军训。对于这种活动我是没有多少好感的,而且正好因为身体原因就申请了减训,于是被分配到了一个很水的岗位。早上不用很早起来去买早饭,也不用随连队活动,真的是“摆得彻底、摸得透彻”,当然工作还是要好好做的,只是相对于普训的同学来说要轻松很多。 军训期间学校对于参训人员是封闭管理,隔天核酸,有的不同年级混住的宿舍楼还不时冒出一两个密接。在这种情况下,学校决定让大家隔天在宿舍吃盒饭。结果刚开始几次盒饭质量还行,到后面真的就是在敷衍,根本对不起12元的价格。 (对于我这种身体原因不能吃虾的肉食爱好者简直难以下咽) 幸好我可以不随连队活动,所以被坑了两次之后我选择自己去堂食(军训服一脱直接冒充大二学长),吃得很开心。 拉练那天晚上果然飘起了小雨,果然我校每逢拉练必下雨。 不过这次雨不大,很凉快很舒服。我没有随队参加拉练,但有别的任务,也算是一种独特的体验。 拉练完之后就是中期慰问,我们班意外地收到了两个学院的慰问品(别问怎么做到的),可惜因为身体原因好多我暂时不能吃。 总的来说这次军训我少参加了很多无意义的集体活动,也有一些不同于他人的体验,正合我意。唯一的遗憾大概就是少认识了一些同学,不过以后还有机会。 校园生活 校园景色 学校位于闵大荒,环境很不错。 (荷塘) (思源湖) (台风外围雨停后的大彩虹) 脚痛大学 学校真的很大。教学楼在东西区都有,这也就意味着时常会出现两节课之间需要横跨东西区的情况。因此,如果只靠脚走不仅时间很赶还会脚痛,自行车成为了必需品,很庆幸我已经掌握了骑车这项技能。 校园内有大量的共享单车,以哈啰单车为主,部分共享单车只能在校园内使用,我买了哈啰的月卡(当然4个月的学生卡更便宜)。但是共享单车最大的毛病就是你不需要的时候满大街都是,要用的时候一辆都找不到,正在考虑买一辆自行车。 另外校内设有大量减速带,有一天骑了太久车感觉人都给颠麻了。还有一定要养成良好的骑行习惯,自从看了学校保卫处制作的校内交通事故录像集锦,我现在骑车都小心翼翼的。 吃吃吃吃 学校有非常多的食堂和餐饮店。趁着军训有大量摸鱼时间,我每顿都跑到比较远的食堂吃,并逐渐发现离宿舍最近的食堂是最难吃的,但即使如此也比高中食堂要好。 下面放点实拍图。 (石锅三样) (大肉面) (铁板鸡柳饭) (玉兰苑的网红鸡蛋灌饼) 总体而言吃这块完全不用愁,堂食物美价廉(盒饭就不好说了),好吃的太多以至于每顿吃什么总要纠结半天。 住宿条件 寝室条件不一,有句话叫“闰年不来交大”,因为闰年普遍分配的是西区的老旧寝室,条件比较艰苦(但是好吃的多啊)。 我是在东区的寝室,条件稍好一些吧,就是非常标准的四人间,上床下桌,有个小阳台。有独立卫生间无独立浴室,且卫生间唯一的排风口居然朝着楼道走廊,有时走在楼道里一股味。 洗澡在一楼的大澡堂,有隔间无门,刷卡洗澡,刷一次出2块钱热水。洗澡需要排队,有时队伍堪比做核酸。 洗衣机也是整栋楼公用的,反正我是不敢用,宁可累一点手洗。据室友说他的衣服洗了之后一股味,有一次去发现有人用洗衣机洗内裤和袜子。 校园网络 我校网络应该说是全国高校数一数二的,不需要自己办宽带,提供完全免费的无线/有线网络接入。 学校大部分教学楼和食堂以及部分宿舍楼覆盖有 SJTU 无线网络,宿舍楼每个寝室内都有一个 AP,支持 WiFi-6。采用 802.1x 认证,因此一些老旧的设备可能连不上。 宿舍还提供了 1000Mbps 有线网络,但是仅供未覆盖 SJTU 无线网络的楼栋申请使用,我就用不上了。 防疫政策 很遗憾,至今未能回归到疫情前的生活,并且层层加码。 进出校门依旧需要填写事由并经过思政审批,不仅要保证申请的时候有48小时核酸,还要保证进出校的那一刻依旧能够覆盖到,否则有露宿街头的风险,真的是烦死人。幸好我的思政老师挺好的,每次申请都会及时通过审批。 (这是个反面教材) 校内所有室内场所都贴了校园场所码,这是我校放弃现成的场所码自研的一套玩意儿,进入室内场所要先用交我办APP扫码,还有专人在门口盯着,烦死人x2。 校内的常态化核酸要排长队,而且要在规定时间去做。校医院核酸点白天可做,单人单管,但是要收费16元。 这破日子,也不知道什么时候是个头。 总结 总之这段时间还是很快乐的,是人生中为数不多充满新鲜感的时光。 过完中秋就正式开学啦,看到这学期的课表我人麻了,一周四天早八。 之后要继续好好学习了,毕竟大一重要的课还挺多的,也希望10月份能分流到计科/软工/信安,加油!"},{"title":"电子纸初体验 - 文石 BOOX NoteX 开箱","date":"2022-08-12T08:45:29.000Z","url":"/post/onyx-boox-notex/","tags":[["测评","/tags/%E6%B5%8B%E8%AF%84/"],["评测","/tags/%E8%AF%84%E6%B5%8B/"],["电子纸","/tags/%E7%94%B5%E5%AD%90%E7%BA%B8/"],["文石","/tags/%E6%96%87%E7%9F%B3/"],["BOOX","/tags/BOOX/"],["NoteX","/tags/NoteX/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''诶嘿嘿,又花了大价钱整了个新玩具,感觉最近成为了一个开箱博主😂 那么这次开箱的是文石 BOOX NoteX 电子纸。作为一个以前从未用过电子墨水产品的小白,就来分享一下开箱以及使用的感受吧。 购买缘由 先说说买这玩意儿的缘由吧。这不是要上大学了嘛,考虑到要带一堆书和笔记本,而且宿舍里也没有打印机,打印东西还得去打印店,于是决定试试无纸化学习。 我最先想到的方案是 iPad + Apple Pencil。目前手里的 iPad Air 2 从初中开始就是我的生产力工具,平时看个 PDF 啥的都是用的它,然而这家伙过于老旧根本不支持 Apple Pencil。我又想到最近刚好拿到了大学的 EDU 邮箱,而且我妈最近天天拿我的 iPad Air 2 追剧,要不我就用教育优惠买个新的吧。进入官网一看好家伙,这价格都快顶得上一台电脑了,这真的优惠过吗? 苹果的高价让我死心。这时候我又想到高中时同桌用的索尼电子纸,能看 PDF,能做笔记,还不累眼,这不是刚好符合我的需求吗?一查价格直接死心,索尼大法虽好,然鹅我承受不起。不过电子纸倒确实是个不错的选择。最后经过一番挑选,我把目光锁定在了文石 BOOX NoteX,京东正好赶上活动2230元拿下。 参数规格 (懒得抄一遍了,直接上图吧qwq) 开箱 拿到手快递纸箱里放了很多保护用的充气塑料袋,然后就是这个大黑盒子。 打开大黑盒子,里面是赠送的收纳袋和电源适配器,以及一个小黑盒子。 小黑盒子里面就是电子纸本体啦!还有配套的电磁笔和 Type-C 数据线以及取 TF 卡的取卡针。不过没有送替换的笔芯哦,以后磨损了还得自己买来更换。 迫不及待地开机~ 走完安卓的设置向导以及电磁笔校准后,进行了系统更新,就进入桌面啦!整个系统的设计还是挺清晰的,轻松上手。 试了试书写体验,挺不错的,延迟也比预想的要好。 一些优点 首先系统极具开放性,本质上就是一个安卓平板,可以安装任意安卓11系统支持的应用程序,并可以通过 E-Ink 中心自行调优。 系统甚至自带谷歌服务框架,尝试直接安装 Play Store 成功。 这就增添了很多有趣的玩法,以下只是一些例子。 其次系统自带冻结功能,对应用有着严格的后台管理机制,不用担心死机卡顿。 最后嘛也就是所有墨水屏的优点,对眼睛相对比较友好。毕竟自身不发光(当然可以开启背光),就和一张普通的纸没区别,除了能改变内容。而且这个屏幕虽然说是玻璃的,但是自带了一层类纸膜一样的东西,所以纸张感很强,写字有沙沙的感觉,很逼真。 一些缺点 在写字的时候还是有点不习惯,能够感受到笔尖所在的平面与墨水屏所在的平面还是有一定的距离,感觉像是隔了一层玻璃在写字,大概习惯了会好点。 在台灯下阅读时屏幕反光比较厉害,毕竟是玻璃屏,只能关掉台灯开启背光。 自带的笔没有功能键,需要先切换到橡皮再擦除墨迹,比较不方便,可以通过另购电磁笔解决。 除此之外还有大尺寸电子墨水屏的通病,尤其是玻璃屏,那就是特别易碎。而且挺多人貌似都没有磕碰,放在赠送的收纳包里都能自己碎掉,碎了之后外表上还看不出,只是屏幕无法正常显示。维修费普遍在1000元以上,能买半个自身了。所以千万不能摔,不能弯折,不能在上面压东西,不然就寄。(对我这种手残人士很不友好) 还有电磁笔也不能摔,万一压感摔坏了就会出现隔空写字的情况,不过这个换个笔的价钱还是能接受的。(我这个手残拿到货区区两天已经摔了一次笔了,还好摔的时候戴着笔帽,没有啥问题) 总结 总之还是挺满意的,拿来看 PDF 以及记笔记都很不错,而且墨水屏那刷新率也基本告别了拿来看视频,生产力拉满。 就是现在正在努力养成轻拿轻放的习惯,毕竟摔一次1000块钱可不是开玩笑的。看看我这个手残能正常使用它几个月吧。之后要是屏幕莫名其妙碎了我会更新这篇文章来劝退的,想选购的但又不是太急的也可以先观望一下。"},{"title":"周记#26 - 高考简报","date":"2022-08-04T02:57:34.000Z","url":"/post/weekly-26/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''又半个月过去了,是时候来水一篇文章了() 好吧,其实是因为8月3日晚就查到了录取结果,终于算是尘埃落定,可以安心过暑假了,就趁此机会就来记录一下7月这后半个月的事情吧。 高考查分 先说明一下哈,上海高考满分660分(150+150+150+70+70+70),避免无意义的争论。 7月23日一早就开始坐立不安,虽说是晚上六点才出成绩,但是按照春考提前了两个小时就出分的惯例还真说不准。我开始一遍遍地给自己估分,计算器劈里啪啦敲了好几遍,甚至还做了语文数学都只考100分的最坏打算。当然最后给自己一个比较保守且合理的估计是120+134+141+207=602分,语文直接按一二模的分,数学按照民间答案估的,英语默认春考最高,小三门成绩已知。 到了傍晚五点查分页面竟然还是没有动静,依旧是“敬请期待”,这考试院怎么不急着下班啊?五点二十几分考试院官网公布了一分一段表,打开一看直接开幕雷击,600+的高分是去年的近两倍啊!整体涨了近10分!这就是多学一个月且卷子偏简单的后果吗,这也太恐怖了! 再一看我自己估的分数602分,放在去年还算能打,放在今年简直就是一抓一大把。我只能默默祈祷语文能再高一点了,毕竟模考的分数偏低,120分已经是班级前五了。 快六点的时候东方网查分通道提前开了,我几乎是手抖着输入了账号密码,心都快跳出来了,页面非常丝滑,成绩在我按下按钮的那一刻就出来了。 我第一眼看到的是数学,比预估高了2分还有点高兴,应该是压轴题瞎写的证明过程中用到了数学归纳法就给了2分。紧接着看到语文就乐不出来了,不仅没有高上去甚至还比模考低了1分,而且问了同学竟然都是120+,甚至不乏130+的,我是万万没想到语文会寄,果然是玄学吗,语文不爱我了呜呜呜。英语虽然之前说感觉自己又行了,但是毕竟半年没学了,主观题完全是自由发挥的,最后还是没能比春考高。 于是最终的分数是119+136+141+207=603,按一分一段表排名全市459名,寄。清北以及上交 IEEE/AI 想都不要想,上交工科试验班能不能进都是问题,大概只有被调剂的份。 查分之前还收到了清北的短信,让我查完分第一时间把分数填在系统里。查完分我已经死心了,也就没填。结果当晚还是接到了清华的电话问我分数,我非常尴尬地报了成绩,对面沉默了,然后说了句“加油”。 第二天一早十点多收到了邮寄上门的成绩单,603分确凿无疑。 强基计划 虽然已经死心了,但是反正低分入围了北大强基,就去玩玩了。强基校测是家考,线上笔试+面试,笔试双机位监考。题目挺难的,数学技巧性很强,但有几道好像是往年的题目改编的,很眼熟,之前做过一遍也就会做了,所以强烈建议要考强基的同学好好做做往年的题目。 最后校测15分给了10分,高考成绩折合下来78分,合起来88分,物理组分数线90分,没有奇迹。 填报志愿 考这个分志愿倒也没啥好纠结的,零志愿不用报,提前批学校我看不上也不用报,就只需要填报综合评价批次和普通批次的志愿。 综合评价填了上交,一志愿 IEEE,二志愿 AI,三志愿工科试验班(信息类)。一二志愿填上纯粹是为了碰碰运气,三志愿是比较可能进的,四志愿本来想填密院兜个底,看到极度高昂的学费还是算了。然后勾了服从调剂(有传言说面试的时候看到不服从调剂直接先扣个10分再说)。 考虑到综评批次达到上交物理组分数线应该没问题,又勾选了服从调剂,大概率是不会到普通批了,所以普通批就按分数由高到低随便填了几所。 以上步骤都是在家里通过考试院官网的辅助填报系统完成的,填完之后会打印一张表格,正式填报是要带着表格到学校机房去填的。上海这边正式的志愿填报系统只对学校内网开放,正式填报时家长禁止进入学校,所以也就杜绝了家长瞎改志愿这种事情的发生,学生有完全的自主权,值得称赞。正式填完之后在机房打印草表,核对签字,再打印正表,核对签字,然后志愿锁定,因此除非真的不上心,否则也不会有填错的事情发生。 综合评价 7月31日综合评价入围结果公布,上交物理组入围线580分,创新高。随后就要准备综合评价面试了。综合评价批次是高考分数占比85%,面试分数占比15%,满分1000分。 8月2日参加了综评面试,因为疫情改为线上进行,双机位监控。只能说安排非常不人性化,面试40分钟,罚坐4小时。等候期间也要全程开摄像头,不能上网,不能交流,不能离开监控区域,只能翻阅纸质材料。我又很不幸抽签抽到了一个很靠后的位置,等候时间应该是全组第二长的。 面试分为 A/B 两轮,没有很大的差异,甚至有些问题是重复的。关于面试的具体内容签了保密协议不能透露,只能说和你提交的材料以及做的自我介绍有很大的联系,千万不要在这些材料里作假,否则就是在给自己挖坑。 顺顺利利地面完,没有奇怪的问题,好像还有电院的教授,看到我打 OI 直接问了一些算法和数据结构的硬核问题,还好没有涉及到我的知识盲区。第二轮的时候能明显感受到面试的教授脸上洋溢着快要下班的喜悦,果然谁都盼着下班。 录取结果 最后面试拿了135+,高考折合776.59,总分910+。IEEE/AI 没戏,因为高考610+的貌似面试都给了近满分,直接招进去了,所以我没有翻身的机会。但是至少工科试验班(信息类)保住了,没有被调剂去另一个工科试验班(机械、船舶等)。 不过这个专业也是个大坑,因为是大类招生,入学后还要分流决定是 CS 还是 EE 还是自动化、测控之类的,甚至还混入了生物医学工程这个天坑。而按照去年的分流政策高考成绩依然要占比80%,我感觉我 CS 无望了,真的哭死。只希望不要沦落到生物医学工程,不然大概要去医疗器械厂做销售员了(bushi)。 有点犹豫要不要报致远 ACM,听说卷死了,都是信竞大佬。而且压力很大,还要学数分等一些数学系的课程,感觉自己坚持不下来,即使苟活绩点应该也不会好。 然后我们班3个清北,之后基本上都是上交或复旦,去复旦的还蛮多的,比上交多。和我一起进工试信息的还有三个同学,以后又要继续做同学了呢。以及学计算机的真多,算上隔壁复旦的我们班一共有八个人,平时都是卷王啊,感觉以后要被卷死了。 值得一提的是我外公听说我报了交大,说交大是二流学校,为啥不报复旦啊😂(SJTU 风评被害)果然在外地人的眼中都是复旦>上交的吗,这种 stereotype 是哪来的啊qwq 录取通知书开箱 8月6日一早 EMS 就把录取通知书快递上门啦! 签收时发现竟然有两个包裹,打开后发现其中一袋原来是密院、巴院、莫航之类的广告小册子,红色的才是录取通知书本体。 不得不说 SJTU 的录取通知书礼盒还是很实诚的,颜值很高,一点也不敷衍。 中间那块校牌是可以拿下来的,盒子里还附了一块吸铁石可以吸在衣服上。盒子里面的内容也很丰富,首先当然是录取通知书啦。 通知书下面就是各种说明和注意事项,还有行李贴、银行卡之类的。 最底下有一封信、一块磁铁以及校史尺和老虎挂件。 林志颖(雾 拿到通知书之后注册了甲亢 JAccount,然后在“交我办”上面填了一堆的表格(其中还有一个其实没有啥用的宿舍调研),领了电子校园卡,不得不感叹 SJTU 的信息化水平还是很高的。 总结 总之忙忙碌碌到了8月头,总算是把高考这档子事给完结啦,这下心定了。之后大概也就宅家了,到8月23-24号去 SJTU 报到,然后军训两周,迎接大学生活。 总体而言对这个结果还是满意的,虽然还是有一点点小遗憾,语文要是正常发挥应该就能进 SJTU IEEE/AI 了,但是至少还是进了想进的大学和专业大类,继续加油吧。"},{"title":"周记#25 - 近况报告:高中生活完结🎉","date":"2022-07-16T11:56:38.000Z","url":"/post/weekly-25/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''大家好呀。转眼到了7月中旬,“周记”系列时隔大半年终于等来了更新(好耶!)。 前段时间我终于考完了秋季高考,并且高中毕业啦!趁着现在还没出成绩比较空闲,决定把这个大坑填一下。 所以这篇文章就是关于我消失的这半年发生的事情。因为这半年经历了太多,所以大概也要讲个半年吧(bushi) 咳咳,那么就开始吧! 突如其来的疫情 我是做梦也想不到,2年了,疫情竟会以这种方式粉碎我的生活。年初的时候看到有人开玩笑说2022==2020,因为 twenty twenty-two == twenty twenty, too,现在想来简直就是预言家。 高三下开学没多久,上海的新冠疫情突然就爆发了。大概是三月初的某一天,班级里好几个同学都接到家长打来的电话,说小区被封了(只进不出),让他们放学先别回家。我因为住得比较远,暂时没有被疫情波及到。班主任也让他们想办法找别的地方住,尽量不要影响第二天上课。结果那天晚自习上到一半,大概晚上九点多,班主任愁眉苦脸地进了教室,说她家小区也被封了,她现在无处可去,最后就只好被关在家里了。 之后听了两天网课,到了周五班主任终于回来了。这天上午全校进行了核酸检测,我的零核酸记录终究还是被打破了。下午市教委就通知从下周起开始线上教学。就这样,网课生活时隔一年竟又开始了。此时的我还抱有幻想,以为疫情能很快控制住,网课应该不会持续太久,完全没意识到大的还在后头。 漫长的网课生活 原以为网课应该会和高一的时候一样比在校要轻松,结果第一天下来就累死了。每节课由40分钟变成了120分钟,而且从早上7点半到晚上9点半全程要活在摄像头监控之下,和监狱里犯人的待遇差不多了(看来我校“上海衡水”的外号不是白叫的)。 然后毕竟是高三嘛,少不了各种考试和测验。尽管有摄像头,但也只是防君子不防小人。如果说平时考试有水分的话,网课考试简直就是在水里考,几次考试我的排名都噌噌噌掉了60多名。幸好网课的成绩不作为任何依据,只是供自己参考。 网课一周接着一周,看着每天都在飙升的疫情数据我预感大事不妙,果然不久市教委通知等级考延期一个月,高考延期一个月。此时我的内心是崩溃的。说实话整个高三都没有击垮我,真正击垮我的是在还有1个月就要刑满释放的时候,突然得知要加刑1个月,这种计划、愿景的破碎太令人痛苦了。最后我也只能认清形势,放弃幻想。 居家的日子 关于核酸,三天一大筛,五天一小筛,这种日子已经习以为常了,半年来喉咙都快被捅出茧子了,没完没了的核酸、核酸。后来还发了抗原,也是每天自己捅鼻子,拍照上传。 关于物资,这真的得感谢我妈。她听信了一些被“辟谣”的小道消息说上海要封城,提前屯了很多菜才不至于像网上很多人那样被封了个猝不及防。每天早上还兢兢业业地在各种平台上抢菜。至于居委会嘛也确实发了菜,但是显然不够一家三口人吃的,而且蔬菜品质不佳。有一次发了两个橙子,我妈随手放冰箱了,结果放了一天就已经发霉到烂完了,还把冰箱里的其他东西都搞上了一股烂橙子味,又舍不得扔只能吃了好几天烂橙子味的鸡蛋和蔬菜。 关于快递,这点我们小区还是做得可以的。统一放在小区门口的快递架上,门卫会帮忙消毒、带进来,也没有随意丢弃、处置快递和物资。 关于配药,因为我痤疮比较严重,药又刚好用完,医院是不敢去了,于是第一次体验了互联网医院这种东西。用起来还是很方便的,手机上就能调出之前去医院的病历,然后就可以开处方药,快递到家。 一个月的线下复课 大概六月初终于回到了学校,然而不能坐公共交通上下学,全天戴口罩,每天依旧要做抗原+核酸。 等级考前,每天就上四节40分钟的课,然后做核酸,学校里一层楼两百多个人共用一个检测点,排队排了半小时。每天竟然下午三点就放学,不过回到家后依然要视频监控,快吐了。 等级考之后放学时间调到了5点半,全天课表语数英塞满,高二的同学也都回家继续上网课了,整个学校就只有高三的还在。天天都在期盼着高考的到来。 期间做了数学的全国高考卷,是真的难,对于普通的上海考生而言即使能用计算器也不好做。还写了语文的几篇全国高考作文,感觉立场出题人都帮你预设好了,写起来很没劲,尤其是红楼梦的那篇和本手俗手妙手的那篇写出来简直一模一样,还是上海的作文有意思。 六月底的时候毕业证书到了,因为疫情没有毕业照、没有毕业典礼,但班主任还是仪式感满满地让大家一个一个上台领毕业证书,终于毕业啦。 6月30日,在校上课的最后一天。前几天还想着“这学校我是一秒都待不下去了”,可真的到了最后一天还是很不舍的。和同学拍了很多照片,没有正式的毕业照我们也自己 DIY 了一张。下午布置完高考考场就放学了,但大家都没有要走的意思。折了很多纸飞机,站在教学楼顶一起往下飞,大家互相加油打气。 物理等级考 6月18日参加了物理等级考,原以为会和2020年疫情后的那场等级考一样很难,结果走了另一个极端——过于简单。 整张卷子可以说让高二的我来做都没有问题。但是简单也意味着极高的风险。等级考划分等级看的不是分数而是名次,卷子过于简单缺少区分度,会导致错误被放大,稍有不慎就会出现断崖式的滑档。 很不幸我中招了。压轴题第二问二元一次方程解错了,后面三问用的都是错误的数据,考完出来一对答案我真的哭死。整张卷子就错了这一道题,但是很致命,感觉可能要得B了。 秋季高考 7月7日、8日、9日参加了2022年上海市秋季高考,延期一个月,它终于来了! 一早来到学校,刷了身份证,测体温,然后到学校的新楼候考。(新楼终于装修好了,只可惜我已经毕业了) 提前半小时终于让进教学楼了,我的考场竟然在顶楼,爬楼梯太累人了。到达考场过完金属检测,一进教室就看到讲台前一个熟悉的身影,监考老师竟然是生物老师?! 高二考完生物等级考后她就去教下一届了,一年多没见竟然以这种方式又见面了,而且她还记得我,一下子就认出我了,还笑着问我怎么又长高了,很意外。 第一天考下来语文感觉挺顺手的,作文之前还担心会不会像浙江那样彻底沦为申论,结果依旧很有上海的思辨特色,能写的角度很广,但是考完没啥感觉也不知道考得怎么样。 数学只能说会做的确实都做对了,但是压轴爆杀我,填选压轴都错了,解答压轴猜对了答案不会证,无缘135+,另外应用题答案很怪,让我一度不敢相信,解析几何也不太常规,差点就寄了。 第二天下午考英语,自从春考结束后就没上过英语课,只是打算去碰碰运气的。下午很早进入考场,闲得无聊就打开收音机听 FM 89.9 MHz(英语听力的频率),竟然在放《凤凰花开的路口》,我戴着耳机坐在考场里听得快破防了,这歌选得真应景啊。(899 老传统了,每年秋季高考英语听力之前都要放一首歌,把考生搞 emo 之后再来一句“祝各位考试顺利”,用心险恶啊😂) 考下来竟然感觉比春考还简单,第三天的口语也很常规,感觉我又行了,看看能不能比春考高。 感觉今年整体难度不高,大概是因为疫情闹得这么严重想要稳定社会吧,但最后分数线估计也会高不少,高分段竞争更加激烈了,有点担心能不能上得了自己喜欢的专业。 等级考查分 7月15日查到了物理等级考成绩,很害怕看见B,还好最后拿了个A(赋分67/70)。虽然最初的目标是A+啊,但毕竟这么简单的卷子错了不该错的题,拿个A也心满意足了,至少没有应验我们物理老师的经典劝退名言“选物理,得个B”。 亿些总结 关于疫情 这半年可以说是击碎了我对于中国社会的一切幻想,润的决心更加坚定了。两年了,我们几乎没有进步。 早在2020年的文章中我就提到过,如果只是问责几个官员,然后开庆功大会、高唱赞歌,不反思、不吸取教训,十几年后这一切必定会重演。现在看看还是低估了人类的能力,短短两年之前发生的一切又在另一座城市原封不动地上演了一次。 原本还对上海这座城市有一些期望,因为一直以来我能够感受到这座城市的人文、人情和人性,包括之前的精准防控效果很好,生活几乎已经回归到了正轨。 但疫情爆发后的这半年目睹的种种现象,让我一下子对这座城市失去了信任。扑杀宠物、强行破门、发国难财、重症病人无处就医等等,如此种种两年前就发生过的事情竟再度上演,政府公信力在一次又一次的对辟谣的辟谣中瓦解。所谓的生命至上被原则化、政治化,在疫情防控面前,似乎个体的生活乃至生命都是可以被牺牲的——只要与新冠无关。这个城市、这个国家的未来还会好吗? 其实我挺反感「非必要如何如何」这种说法的。由必需品构成的是「活着」。而「生活」正是由种种「非必要」构成的。去看外面的世界,去见心爱的人,去用一点精致而不甚昂贵的食物犒赏劳累一天的自己。我们拼命生活,或许为的其实就是这些「不必要」。 pic.twitter.com/SBsALiWKBQ— 曹哲 (@LightCavalryCZ) May 7, 2022 虽然短时间内应该是润不了,而且国内也有家人,能否适应一个新的环境也是个问题,但是至少现在可以做些准备了。等到哪天铁拳真的砸到我头上了,就努力润吧。 致我逝去的高中生活 最后,讲讲这三年的高中生活。 尽管这所学校的领导层和部分老师有点招人厌,形式主义泛滥,标榜着某些好听的口号却实则是在复刻衡水模式,但是很幸运遇到了非常好的同学和老师(可能是在实验班的缘故),让这三年值得我留恋。 先说同学,大家的关系都非常好。每逢大考小考教室就成了菜市场,一个个也不管考了几分都在那里卖菜;空闲的下午总能找到人陪你去自习室看书刷题,学习氛围很棒;我篮球打得很糟糕,然而每次几个同学去打球都会叫上我…总之很高兴高中三年有这么好的同学相伴。 再讲讲任课老师,尤其吹爆语文老师,至少是打破了我对于语文老师的刻板印象。她可以说是非常理性,从不生气,即使生气了也不表现出来,只是苦笑着阴阳怪气两句,听不懂的还以为她在夸你呢(比如“我们班的同学真是太优秀了,默写这5分根本看不上,我们要拿就拿后面的分”)。而且比起华丽虚浮的辞藻她更看重逻辑,无论是作文还是答题。甚至专门花了两节语文课给我们讲形式逻辑,讲同一律、矛盾律、排中律,讲典型的逻辑谬误,能够接受这样的语文教育真的很幸运。 总的来说高中三年虽然对学校没有多少认同感,但是很幸运能够碰上这么好的同学和老师,希望以后还能常联系吧。 之后的安排 7月23日出成绩,然后就要开始忙起来了,强基、志愿填报、综合评价批次面试,最理想的情况是综评批次被录取,这样8月4日以后就可以定定心心地过暑假了。 至于原本打算回老家的计划因为该死的疫情也只能泡汤了,三年没回去了,下一次有机会回去也不知道是啥时候。 好了,这篇周记就到这了。下一篇周记大概在录取结果出来之后吧,希望到时候能去想去的学校和专业。"},{"title":"ThinkBook 14+ 2022 i5 独显版开箱","date":"2022-07-11T10:13:24.000Z","url":"/post/thinkbook-14-plus/","tags":[["测评","/tags/%E6%B5%8B%E8%AF%84/"],["评测","/tags/%E8%AF%84%E6%B5%8B/"],["笔记本","/tags/%E7%AC%94%E8%AE%B0%E6%9C%AC/"],["ThinkBook","/tags/ThinkBook/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''好久不见。大家可能已经知道了,因为这该死的疫情,上海的秋季高考推迟一个月举行。这对我来说不仅痛苦延长,而且人生中期盼已久的的真正意义上的暑假也完全泡汤了。 好在这几天终于考完了高考,可以暂时轻松一段时间了。关于近况之后会再开一篇又臭又长的文章好好讲讲,这里先不赘述了。 言归正传,考完试后,我就开始物色人生中第一台属于自己的笔记本了。经过一番精挑细选,最终选择了 ThinkBook 14+ 2022 i5 独显版,这篇文章就来开个箱以及记录一下使用感受。 选择缘由 首先考虑到这是一台将要陪伴我至少4年的笔记本,因此坚持“买新不买旧”的原则,又考虑到大学大概率会选择计算机专业,听说 AMD 处理器会有一些问题(虽然可能现在已经没有了),决定只考虑搭载了 Intel 12代处理器的笔记本。 然后平时偶尔会打打游戏,主要有 Minecraft、原神(诶嘿~我收回之前说过只玩 MC 的话),而且暑假里因为疫情不能出门聚会,和高中同学约了一起打老头环,所以肯定要有一块独立显卡,显存还不能太小。 最后考虑便携性,2kg 以上的笔记本就不考虑了,也就意味着游戏本基本上都不考虑。毕竟天天背着笨重的笔记本在宿舍楼和教学楼之间来回跑简直是酷刑。感谢之前 @PRIN 大佬的一篇文章《上大学买游戏本,你可能会后悔》。 综合以上几点最终确定了这台 ThinkBook 14+ 2022 i5 独显版。12代 i5-12500H 处理器搭配 RTX 2050 光线追踪显卡,除了续航能力崩了而我又恰好不介意这点之外,其他看上去都没有什么问题。6299元的售价更是非常的香。于是就在京东下了单,竟然当天下午就收到货了,现在买东西是真的方便啊。 开箱验机 在下单之前也看了网上很多的翻车记录,有人屏幕装歪了,有人四个脚垫不一样高,有人触摸板缺了一角,有人键盘的某一个键和别的键手感不一样,还有人屏幕漏光或是水波纹。不过想着这么高的销量有些翻车也正常,所以没太担心。 又看到这款电脑的无线网卡是 Intel 和 Realtek(可能存在断流问题)随机发货的,硬盘是三星和镁光随机发货的,还挺期待自己会不会中奖。 到手后,最外面是京东的纸箱,里面又套了一个 ThinkBook 的纸箱,再里面才是本体和充电器。 笔记本约1.4kg,没有想象中的轻但也能够接受,14寸的大小对我而言刚刚好,厚度也很满意。仔细检查了一下外观上没有翻车。 原装充电器是三段式的设计,和传统笔记本比较相似,连接市电的那端用的是三脚插头,好评(后面会提到原因)。但是这也带来一个问题,就是挺重的。外出携带的话我可能会考虑再另购一个氮化镓的充电器。 机身侧面有两个 USB 3.2 Type-A(左右各一),一个 USB 3.2 Type-C(左侧,也用作充电口),一个 ThunderBolt 4.0(左侧),一个 USB 2.0 Type-A(右侧隐藏式)。除此之外还有一个 HDMI 2.1 TMDS(左侧),一个耳机麦克风二合一接口(左侧),一个 RJ45 以太网接口(右侧)以及一个 Micro SD 卡槽(右侧)。 盖子可以单手开合。开盖后直接按电源键开机没反应,说明电脑正处于出厂后的运输模式中,不是翻新机。连接电源后正常开机,进入 Windows 11 OOBE。 到了联网的这一步有一个小技巧。因为万一要退货机器是不能联网激活的,而 Windows 11 又不提供跳过这一步的按钮。因此我们可以用 Shift + Fn + F10 打开命令提示符,再输入 taskmgr 调出任务管理器,在进程中找到“网络连接流”,结束任务即可跳过联网。后续会让你创建本地账户,如果想要使用 Microsoft 账户可以等到验机没有问题联网后在设置里关联。 进入桌面后先用工具箱看了下配置,惊喜地发现中奖了 Intel AX201 网卡和三星的固态硬盘,爽。就是头一回见到 16G 内存竟然是一堆 2G 叠出来的,属实有点离谱。 性能测评 以下测试均在均衡模式下连接充电器进行,仅供参考。 CPU-Z 测试结果: GPU-Z 测试结果: CineBench R23 多核测试结果: SSD Benchmark 测试结果: 显示器色域测试结果: 测试过程中风扇转速加快,能够明显听到风声,但个人认为可以接受,不影响使用体验。屏幕转轴处较烫手(靠近散热口),但键盘温度并没有明显上升,使用舒适。 因为不想让某大师玷污我的电脑,所以此处没有某大师跑分截图。 使用体验 一些小优点 接口丰富,扩展性强。USB 接口完全够用,同时主板上还预留了一个硬盘位,可以加装一块硬盘。 隐藏式 USB 2.0 设计超赞。乍一看很鸡肋,又慢又不方便,但实际上设计的初衷是用这个口连接一些无线适配器,如无线键鼠等。这些设备的接收端通常很小,也不需要 USB 3.2,刚好能把仓盖盖上藏起来。 1080P 高清摄像头,带红外功能,支持 Windows Hello 人脸解锁。 原装电源适配器是三脚插头(上文提到过),因此有接地,金属外壳不会在充电时带上电荷而让人感觉酥酥麻麻的,更不会升天警告。(经典咏流传)我警告你们,刚洗完澡千万不要用湿着的身体碰插单相电源的Mac!!!尤其不要让自己的雕垂在Mac上!!!!!!!!!!!!!!!!!!老子要升天了!!!!!!!!!!日妈批!!!!!— H λ L F - D E λ D (@mariotaku) August 5, 2014 准备买个单相电源体验一下 一些小不足 因为厚度的制约,键盘键程较短,打字手感需要适应。没有数字小键盘,上下方向键是半高的,对于部分游戏玩家可能不那么友好,建议外接键盘。 没有指纹识别,不过有人脸解锁也够用了。 电源适配器较重,携带不便。(上文提到过) 显卡是 RTX 2050,算是一个阉割版本。对于游戏性能要求较高的玩家慎入,对我而言能玩就行。 续航真的不行,对续航有要求的慎入。用电池建议开节电模式可以撑5个小时以上,不过我习惯插电使用,问题不大。 屏幕转轴阻尼设计不好,开盖后屏幕会抖动一会儿。 游戏实际体验 Minecraft 开光影稳定高帧率,游戏体验很好。 原神中画质稳定60FPS,游戏体验同样很棒。 至于老头环还没买,暂时无法体验。 生产力实际体验 这篇文章就是在新电脑写的,习惯了键盘后体验很棒。 屏幕比例是 16:10,这个比例写代码也很舒适,屏幕大小完全够用。 16GB 内存够用,Chrome 标签页随便开无压力。 总结 总的来说这台电脑非常符合我的预期,即使有一些小问题也是我不在意的,整体用起来非常舒适。当然本文仅代表我个人的体验,大家还是要根据自己的需求进行选择,毕竟适合自己的才是最好的。"},{"title":"周记#24 - 一月、春季高考、寒假","date":"2022-01-28T07:26:35.000Z","url":"/post/weekly-24/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''猛然发现上一篇“周记”竟然是183天前写的,再不更新就要成“年记”了。因为高三了平时也确实没时间写东西,整个高三上学期就发了几篇 OI 游记还有一篇年终总结。正好最近放假稍微轻松一点了,就来写写2022年的第一个月发生的事吧。 (话说一直想给这个系列换个名字,一周一记是绝对不可能滴,那么该叫什么好呢🤔) 急性肠胃炎 万万没想到2022年刚开始就碰上这种事情,而且还是在春季高考前3天。 1月5号大概上午第四节课下课突然胃疼,起初疼得还不算厉害,以为只是饿了也没在意,想着再熬一节课去吃个饭应该就好了。正好第五节是化学课,我不选化学就去自习室刷英语题。谁知道开始疼得越来越厉害,直冒冷汗的那种。我感觉笔都拿不动了,题目也做不进去,索性趴在桌子上休息了一会儿。 下课忍着痛去食堂,食堂里人山人海,而我已经疼得站都站不稳了。在人最少的窗口买了份饺子,结果发现疼得完全吃不下去,吃了两个就回教室了。想到下午全是英语课就在纠结要不要请假回家,最后疼得不得了于是向班主任请了假。到家吃了铝碳酸镁片,想着睡一觉应该就好了。然而并没有用,醒来依然疼得离谱。最后顶不住了决定晚上去医院看急诊。 原以为到了急诊就能看上,结果六院急诊内科人真的多,还得等两个小时。我已经疼到绝望,整个人蜷缩在座位上又坚持了两个小时。晚上八点好不容易排到我了,医生开了血常规和淀粉酶化验,然后去抽血。报告出来一看白细胞↑,C反应蛋白↑,确诊急性肠胃炎。医生知道我过两天要春季高考直接让我去输液,开了头孢和止痛药,四袋输完疼痛总算稍微减轻了一点。因为后面两天还要去医院输液,我就都请假在家休息了。班主任非常好心地帮我在钉钉上开了个直播,我在家里就能跟着把课补上,很感动。 总之因为治疗及时最后没有影响到春季高考,输了三天液又活蹦乱跳了。仔细回忆了一下好像这段时间也没有乱吃什么东西,不知道为何突然弄出了肠胃炎。 春季高考 1月8日-1月10日参加了2022年的上海市春季高考。 上海高考有春秋季两次。春考招生的院校和专业相较于秋考要差很多,所以除非高二等级考暴毙否则基本上不会选择春考走掉。多数考生参加春考是冲着英语去的,因为英语高考成绩是在春考和秋考中取高分,而春考英语的试题难度和主观题部分的批改严格程度一般比秋考英语低,所以如果春考英语能够取得好成绩的话下半学期就可以放掉英语,专攻其他科目。当然这并不意味着语文、数学可以乱考,因为春考同时也代替语文、数学、英语的合格考,不及格的话高中就毕不了业了。 Day 1 上午考语文,照例在自己学校考试。尽管是新教材的第一届,语文试卷结构没有发生变化,对于整本书阅读的考察与考试手册上的样卷一致,作文依旧具有上海特色的思辨性。默写、积累运用、现代文一、文言难度都不高,唯独现代文二暴杀我,文章里每个字、每件事都看得懂,但是组合起来不知道作者想表达什么主题,后面的题目是真不好做,写满就是胜利。因为现代文二卡太久了,作文险些来不及写,确实思路也没打开,写得浅了一些。 下午考数学,又是脑子掉线的下午。填空11解析几何做不来,5分再见。填空12我都把那个函数的图像画出来了,周期性和对称性也都发现了,愣是没看出那个极限就是两条渐近线之间的距离,5分再见。没想到的是应用题竟然暴杀我,因为设角设得不当导致最后解析式写出来了,最值求不来。卡了好久最后用正切和正割做的终于求出最值了,答案是对的就是不知道批卷老师会不会扣过程分。解析几何大题差点把第一问的条件代入第二问,幸亏后来发现了。第三问也是想了很久,因为参数方程平时用得少,最后想到参数方程了并且做出来了。最后一题最后一问没时间了,随便写了两笔就收卷了,8分再见。 晚上回家还是忍不住好奇想对答案,于是上了知乎。事实证明别在网上乱对答案挑战自己的心态,知乎上的答案真的是五花八门,各种错误答案都有,居然还有人问一道证明题算出来结果是多少,就离谱。想着反正英语才是重头戏,也没有啥心理负担,继续看了看英语作文,练了一篇听力保持手感,准备调试好收音机和耳机。 Day 2 早上考英语笔试部分(140分),因为有听力提前了半小时进场。我为了保险带了两台 PL-380,到座位后调好收音机频率和音量。我惊讶地发现 FM 89.9 MHz 长三角之声从未如此清晰,试运转时的电流声和底噪都没了。 到点了开始放听力,播音员口音非常标准,语速也很合适,没有18年的戏精男和19年的口齿不清男,整套听力做下来就是爽+简单,做完听力顿时信心倍增。 语法填空也很简单,就是第二个空竟然一下子卡住了,大致是说 Aurora 这个名字来源于啥啥啥,我竟然连 come from 都忘了,一直想不到那个介词 from,最后填了 after(因为想到 name after),痛失1分。 十一选十、Cloze 还是很简单,全文逻辑清晰,没有任何一空是让人纠结的,都是看一眼就出答案的那种。 阅读理解A、B、C篇也都很简单,除了A篇的一道题之外均无任何争议的余地。A篇那道题个人认为命题不当,大家都在B、C中纠结,我倾向于选择B选项。当然考试院自从一次事故之后就不公开高考试题和官方答案了,所以正确答案就只有出卷人知道了。文章和题目在下面,感兴趣可以做一做。 Question: What can be inferred from the dialogue between Jenny and Oliver? A. … B. Oliver would rather spend the money on survival. C. It was difficult for the couple to make any decision. D. … 六选四依旧秒杀。主观题部分概要写作文章思路也很清晰,难度不大。 翻译看到那个 sow 就知道要死一片人了。出题人还用心险恶地在句中加了“昨天”这个时间状语,让你根本逃不过去使用 sow 的过去式,于是肯定有很多人写了 sew。认真看过考试院发布的词汇手册的同学应该清楚过去式是 sowed。“落寞已久”写了 long-gloomy,不知道算不算对。 作文依旧是书信类,感觉自己写得中规中矩吧,内容上就平平无奇了,能用的词汇句式也都用上去了。最后险些写不下结尾,一行里挤了两行,希望没事。 今年的春考英语卷子客观题部分简单得有些不像话,这样的话根本拉不开差距,人均135+还有什么意义。 Day 3 最后一天上午考口语(人机对话,人工批改),我是排在上午第三场。由于前面两场出现了技术故障(再次感叹我校机房电脑真的不行),在等候室里多等了十几分钟。一个机房里两套题,保证每个考生的前后左右的试题和他的不一样。我抽到的那套题比较简单,提问、看图说话、快速应答都很常规。就是最后的开放性问题有点扎心,问的是 Do you think you are a sociable person? Why or why not? 社恐表示很淦。因为自己确实不是那么 sociable,干脆实话实说了,顺便列举了几个自己平时社恐的例子加以佐证,说个五六句就差不多了。 愉快的团建 考完试趁着还没出成绩和同学出去玩了半天。第一次玩了剧本杀,开了个微恐的7人本。结果挺吓人的啊,每次一关灯我们7个男的就往后躲缩在角落里瑟瑟发抖。总的来说还是玩得挺爽的,非常烧脑,演绎也很棒。另外竟然还有售后服务,大晚上的差点没把我吓着。 P大寒假营 12月份的时候报名了P大的寒假营,本来觉得过不了初审的,结果竟然过了?!然后因为疫情寒假营是线上举办,最重要的是第一天的综合测试。P大直接用 HSK 考试客户端改了个寒假营考试客户端。离谱的是选考科目竟然只能选物理/化学/政治/历史四选二,对于我这种物地生选手简直没得选,只好选了物理+化学。 作为上海考生考下来的感受是除了语文还行、英语秒杀之外是真的难。数学20题就做出了8题,物理那简直就跟没学过一样,和化学没区别。上海高中物理真的是全世界最简单的物理,啥重要啥不学,做一下全国的物理瞬间就暴毙。化学么反正我也没学过等级考课程,全是蒙的,最后无聊到在那背第一页的元素周期表(不能提前交卷)。总之就当体验一下了,优秀营员是不可能了。第二天就是听听教授们的讲座,然后可以线上参观P大校园。 春考查分 随着这个日子一天天接近,真的是越来越紧张,甚至觉都睡不好。查分前一天偶然发现“随申办”小程序里已经做好查分页面了,忐忑地输入信息点击查询结果啥都没查到。查分当天上午循环播放《好运来》(当代高中生迷信行为),本来说是下午两点出分,中午12点多的时候我随手打开“随申办”小程序,原本以为会和之前一样还是啥都没有,结果竟然分数一下子就跳出来了,给我整傻了,还没来得及紧张就直接查到分了。 语文数学就不说了,全面爆炸,全部献祭给了英语。原本看到英语141还挺高兴的,毕竟实现了2022年的第一个愿望。结果问了一圈发现人均140+,全年级140+有将近60人,也就是说我的英语成绩排名从平时的年级前10名一下子掉到30-40名,顿时就高兴不起来了。但是要说差吧,年级最高分也才145,可见这个分数段有多紧,根本拉不开。 虽然觉得有点不甘心最后还是决定放掉英语,毕竟语文和数学秋考要是还考成这样就没学上了。所以现在高考成绩已经拿到了281分,下一个目标:物理等级考A/A+,继续加油。 总结 总体而言这一个月非常充实,也算是走好了高考的第二步,英语一考上岸了。 后面一段时间就是上课+写作业,不过相比于上学要轻松多了。再努力几个月,希望能考到理想的大学。下一篇“周记”大概要5个月后了,咕咕咕咕咕。"},{"title":"2021年终总结","date":"2021-12-31T14:49:27.000Z","url":"/post/2021-annual-report/","tags":[["年终总结","/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''时间过得真的好快,转眼又是一年年末,不知不觉竟然就要步入2022了。 这段时间一直在备战英语春季高考,于是把年终总结一拖再拖。现在是2021年最后一天的晚上7点,我刚刚从学校回到家中,刷了一天的英语卷子已经累得想要躺平了,正好写点东西放松一下。 那么,就来回顾一下我的这一年吧。 回顾 2021 Blog / 博客 为了看看今年的博客访问量等数据,我打开了自上次写完年终总结就再也没用过的 Google Analytics。这次试了试自定义报告的功能,能够自动生成和去年同期比较的数据报表,还挺方便的。 从报告中可以看出,博客和去年相比访问量下降了一半,来自搜索引擎的访问比例也降低了不少,确实今年学业方面比较忙,没有什么稍微有质量的内容的产出。 今年博客新增9篇博文(不算这篇年终总结的话),要是还有你没读过的,不妨去「归档」页面看看哦。 今年博客新增有效评论9条,感谢每一位在评论区留言互动的人。 Study / 学习 文化课方面,上半年主要在准备地理和生物的学业水平等级考,经过几个月的努力终于在6月收获了梦寐以求的两个 A+(等级赋分满分),走好了高考的第一步。下半年少了两门课要轻松一些,开始侧重英语,为明年的春季高考做准备。因为英语还不错,11月份的时候被拉去参加了上海市高中生英语竞赛,最后摸了个2=。12月一模考试考了 599.5/660,校排名进了前十,挺意外的。 OI 方面,作为退役人士抽空参加了今年的 CSP/NOIP 系列赛事,CSP 捞了个1=和2=,NOIP 捞了个2=。 (此处应还有一张配图,然而由于低效的 CCF,截止至2021年12月31日,NOIP 证书还没到手) 可以说,今年大概是 New Year Resolution 全达成的一年,想想还是挺高兴的。 Life / 生活 害,一时半会儿也想不出来该写些什么。基本上每天都在家和学校之间来回奔波,也习惯于每天11节课、大量作业和6小时的睡眠。虽然有时候确实很累,回想起来,却只记得为目标努力的日子很充实,和同学相处的日子很快乐。 展望 2022 2022大概是我人生中关键的一年,高考、成年、大学…无数的可能性都将在这一年里发生。所以,我在此许下几个愿望,明年争取一一达成! 首先是几天后的春季高考,希望英语能够135+上岸(当然最好是140+)。接着是五月份的物理等级考和六月份的秋季高考,希望能够考取理想的成绩,进入喜欢的大学和喜欢的专业。 暑假里想要回一趟老家,因为疫情的缘故以及市教委的各种防疫规定,我已经将近三年没有跨出上海了。离疫情爆发已经过去两年,完全恢复到疫情前的生活似乎显得希望渺茫,但我还是希望这场灾难能够尽快结束,也希望我们都还记得那些值得被铭记的人和事,对抗所谓「正确的集体记忆」。 新年特别活动 为了感谢各位一年来的支持,决定在2022新年整点活。作为退役 OIer 第一次尝试自己出了几道题,组了一场 IOI 赛制的「2022 新年欢乐赛」,参与比赛、提交代码就有机会获得来自 Hans362 的新年红包哦。 报名链接: 比赛时间:2022.1.25-2022.2.6 编程语言:C/C++ 98/C++ 11/Pascal/Java 8/Java 11/Python 2/Python 3 暂定奖励方案:比赛结束后,排行榜第一名发放10元微信红包,第二、三名发放5元微信红包。(总分同分则以A、B、C题为第二、三、四关键字排序) 毕竟是我这个菜鸡出的题,难度都不大,同时比赛会开放十几天,欢迎大家抽空来尝试一下哦。因为是穷学生,要是有人赞助一下奖励就更好了(你在想桃子) 尾声 特别感谢此时此刻读到这的你,祝你2022新年快乐,梦想成真(≧▽≦)/ Hans362 's Blog,四周年快乐~"},{"title":"NOIP 2021 游记&退役记","date":"2021-11-21T14:17:52.000Z","url":"/post/noip-2021/","tags":[["OI","/tags/OI/"],["游记","/tags/%E6%B8%B8%E8%AE%B0/"],["NOIP","/tags/NOIP/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''11月20日下午一点,考场内清脆的结束铃响起,我按下了屏幕上的提交按钮,短暂的三年 OI 生涯终于随 NOIP 2021 的落幕画上了句号,我的心里感慨万千。这应该是这个博客的最后一篇 NOI 系列活动游记了,因为,无论这次考得怎样,我都真的彻底退役了,高三了,老了。 Day 0 没想到 NOIP 竟然不在自己学校考,大概是因为比起 CSP-S2 人要少很多,我被分配到了比较远的华师大二附中某分校,路上要花不少时间。 考试前一天周五晚上六点放学(毕竟高三了),回到家都已经七点了,写了会儿作业就开始看 OI Wiki,复习了一些模版和 STL,十点多就睡觉了。 Day 1 一大早六点起床,七点四十五到达考点。门口工作人员正在悬挂 NOIP(上海赛区)的横幅,排了会儿队测完体温就进去了。 进了机房找到座位开始试机。不愧是四大名校之一,华二的机房硬件设施比我校的高到不知道哪里去了。电脑装的是 Windows 10 精简版本,内存配了8个G,VirtualBox 装了 NOI Linux 2.0,总算不会出现 CSP-S2 时在我校虚拟机都开不起来的情况了。唯一一点不好的就是这精简系统把 Windows 自带的计算器给阉割了,要算个东西还得写代码。 到时间了下发密码,建文件夹,解压试题。看了眼编译参数,是开 O2 优化的,说明以后 O2 优化将成为常态。扫了一眼四道题,果然又没看到什么签到题,T1相对而言感觉是最好下手的,决定从 T1 开始。 T1 报数 number 读完题想到了三种思路。第一种就是喜闻乐见的打表。幸亏我在考前仔细阅读了相关的技术条例,在 CCF 一份2011年的文件中明确规定了代码的长度不得超过 100KB,而这道题 10710^7107 的数据量显然会超出大小限制而爆零,果断否定。考完后发现傻乎乎打表的人竟然还真有,上海有个人打出了 23MB 的表。 第二种想法是预处理 10710^7107 以内所有含 777 的数字,打上不可报标记,同时对于每个含 777 的数字其整数倍对应的数字也打上不可报标记,这些都在预处理过程中完成,然后再针对每个询问进行查询。这种方法实际上就是所谓的「埃拉托斯特尼筛法」,貌似是本题的正解。我竟然在没有学过线性筛法的情况下自己想出了这种做法。悲催的是我错误地估计了时间复杂度,觉得预处理时间复杂度很高,查询又不需要使用到预处理的所有数据,会进行很多没有必要的预处理,从而超时。于是我在未加尝试的情况下竟然毅然决然地否定掉了正解。我根本没有意识到这样的查询实际上是离线查询,查询时间复杂度是 O(1)O(1)O(1),预处理时间复杂度也不过 O(nloglogn)O(nloglogn)O(nloglogn),是完全可行的。这也为我在这场比赛的失败埋下了伏笔。 然后我就瞎搞出了第三种做法,预处理只处理 10710^7107 以内所有含 777 的数字,打上不可报标记。然后针对每个查询数字 iii 再去校验 i+1i+1i+1 及以后的数是否可报。我洋洋得意,自以为这样的做法似乎避免了不必要的预处理,但赛后发现实际上查询时间复杂度高得离谱。一测发现前三个样例 AC,样例4 TLE。于是我又加了个记忆化数组,保存校验结果减少对同一个数的重复校验,然而样例4依旧 TLE。一看时间已经过去一个多小时了,想着算了先往后做吧。 T2 数列 sequence 一看真就没啥思路,感觉和组合数学有关,估计是什么数学题。思索了很久实在没想法就 DFS 暴力开搞,逐个枚举数列 {an}\\{a_n\\}{an} 中每一项的值,再求相应的 SSS,用 __builtin_popcount() 统计二进制中 111 的个数(今年起开放了下划线开头的函数),如果满足 ≤k\\leq k≤k 就计算权值。同时要时刻注意取模避免爆 long long。测了一下样例1 AC,样例2 WA,而且我的答案竟然是负数,怀疑哪里溢出了检查了好几遍都没发现问题,该取模的地方也都取了,我只好决定放在一边接着往下做。 T3 方差 variance 一看这题,我靠,怎么又是数学题,搁这上机数学竞赛呢?莫不是全国高联 CCF 限定版? 众所周知方差是反映一组数据波动程度的统计量,方差最小那不就是要数据波动尽可能小嘛,那这道题就是要通过若干次这种操作减少数据的波动程度。我打算先研究一下题干中给出的这种操作的一些性质,花了点时间发现了下面两条: 对 aia_iai 进行连续的两次操作将使其复原。(非常显然) 将 ai−1a_{i-1}ai−1 , aia_iai , ai+1a_{i+1}ai+1 放在一条平滑的曲线上,发现操作的直观意义在于使 aia_iai 变为其关于 ai−1a_{i-1}ai−1 和 ai+1a_{i+1}ai+1 的均值的对称点。(也比较显然) 然后就没了,好不容易证出来的结论似乎对解题依然没什么帮助。考虑了一下贪心、差分,感觉都不太对,也没敢贸然下手。最后只好忍痛放弃,拿了 n≤4n \\leq 4n≤4 的12分跑路。 T4 棋局 chess 看完题目就没有什么做的欲望了,再加上给了 1024MB 内存,4s 时限,估计不是什么好做的题。写 DFS 当成大模拟做我觉得划不来,吭哧吭哧写完调半天可能也没几分,果断放弃。 回过头又在 T1、T2、T3 间反复横跳,一道都没能突破,直到最后都没意识到自己把 T1 正解给否决了。走出考场的那一刻我知道自己已经凉了,突然很庆幸去年拿了二等奖,今年恐怕连奖都没了,在高一高二同学面前我这个高三的半退役选手真的是身败名裂。同时也深刻认识到了数学是自己的最大软肋,今年三道数学题一搞就拿不到什么分了。 回到家测了下民间数据,洛谷 62pts,小图灵 82pts,InfOJ 82pts,市排名 200+/371,凉透了。写这篇游记来记录我在考场上的真实反应,也是希望后人能吸取我的教训,引以为戒。 结束 我的高中三年 OI 生涯就在这一场失败的比赛中结束了,感觉自己又回到了2019年第一次打 CSP-S(那年 NOIP 取消)的时候,也是拿了几十分滚粗了,还真是首尾呼应啊(笑)。不管怎么样,至少高二的时候拿过 CSP-S 一等,拿过 NOIP 二等奖,也算是满意了。 更何况,自始至终我从来不指望 OI 能给我带来升学上的任何实质性帮助,也并不只是为了那么几个奖打 OI,更是因为热爱它,愿意为它付出时间和精力。三年下来,我收获了独属于我的一段人生经历与体验,也深刻认识到了自己是多么的菜,比自己厉害的人数不胜数,因而时刻心怀谦卑,这就足矣。 借此也特别感谢我校的两位信竞教练,把我们领进了 OI 的世界,高一高二时坚持每周两个晚上的集训无偿给我们上课,真的付出了很多。还要感谢我的班主任,在刚进高中家访的时候得知我有这方面的兴趣,二话不说当场打电话给了我现在的教练,把我拉进了校队。 延续 12月底还有一场上海市高三信息科技竞赛,仅限上海市高三学生参加,教练推荐了我去,到那时就要真正和 OI 说再见了。 不过,在9个月之后,当我考完高考,当我步入大学的校园时,说不定还能再次重逢,也许我会去打蓝桥杯,也许会成为 ACMer,又有谁说得准呢。 OI,后会有期。"},{"title":"2021 CSP-S 复赛游记","date":"2021-10-24T15:17:52.000Z","url":"/post/2021-csp-s-2/","tags":[["OI","/tags/OI/"],["游记","/tags/%E6%B8%B8%E8%AE%B0/"],["CSP","/tags/CSP/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''昨天,也就是2021年10月23日,我刚刚考完了本年度的 CSP-S 第二轮。晚上六点多走出考场时,我人已经麻了。欲知发生了甚么事,请继续阅读本文。 P.S. 去年复赛游记请移步:2020 CSP-S 复赛游记 Day 0 复赛那天恰逢成人高考,原以为我校应该做不了 CSP 认证点,和初赛一样要跑很远去华二考试,结果一看准考证,认证点竟然就在自己学校?!瞬间狂喜,而且机房也在以前刷题的机房,监考老师就是自己教练。 考试前一天下午因为成人高考布置考场三点多就放学了,回到家大致梳理了一下常用模版的实现思路。由于今年9月1日起 NOI 系列活动启用全新的技术标准,采用 C++14 标准,放开了大部分原本禁用的下划线开头的函数,pbds也可以使用,因此又现学了一下一些原本禁用的函数和库。 Day 1 下午提前45分钟到达学校,看到校门口好多人于是想也没想就跟在后面排队测温,快排到我时我瞥了一眼工作人员的胸牌,一眼就看到大大的 SHMEEA 的标志。嗯?怎么是上海市教育考试院的牌子?再一看别人手里拿的准考证,然后瞬间明白了我混进了成人高考的队伍。当然也无伤大雅,进去后直奔科技楼,终于看到教练在门口负责收集考试安全承诺书。因为时间还早就先去底楼的实验室开了台电脑练习一下手感,提前十五分钟再进楼上的考场。 到点了公布解压密码,一次输对,解压、建文件夹一气呵成,毕竟都打了两年比赛了。然后开始看题,发现今年可以吸氧(开 O2 优化)诶,STL 可以放心用了。吸取去年 T1 的教训,我把4道题都看完了。然而看完我就慌了,因为我根本找不到签到题,就只好先从 T1 开始。 T1 廊桥分配 airport 尝试抽象了一下数学模型,感觉和线段覆盖有关?莫非是线段树?那我可不会打。思索了半小时没啥正经的思路,暴力做法倒是想到了,也就是将每架飞机的起飞降落都分别看成一个事件,用结构体维护事件,上来先把事件按时序用 sort() 排列,然后对于每一种分配方案再模拟时间轴,统计停靠廊桥的飞机数量,最后取其中的最大值。当然我也很清楚这样的做法时间复杂度是 O(nlogn(m1+m2))O(nlogn(m_1+m_2))O(nlogn(m1+m2)),看了下数据范围 nnn 和 m1+m2m_1+m_2m1+m2 都要到 1e51e51e5,明显会爆炸。然而已经过去半小时了,实在没什么更好的思路了,只能先暴力开搞。半小时写完样例都通过了,可见样例非常水。 T3 回文 palin 因为 T2 实在没啥想法甚至连暴力都不知道咋写,果断跳 T3。这题也没啥正经做法的思路,看到输出字典序最小的结果考虑可以 DFS,优先走搜索树的左子树即可,当然看了下数据范围肯定炸,因此想写个 DFS 再试试看能不能剪枝。写完 DFS 过了前两个样例,考虑剪枝。发现搜索到 n+2n+2n+2 层就可以开始判断是否回文了,如果不是就直接回溯,即 然而样例3还是炸,遂放弃。 T4 交通规划 traffic 题看起来都费劲,而且不像去年,今年这道没有好做的部分分。显然不可做,就直接放弃了,回头去看 T2。 T2 括号序列 bracket 这题一上来完全没往 DP 上想,我的思路是枚举每个?可能的值,再判断整个字符串是否合法。但是问题就出在这个判断函数应该咋写,我联想到了利用栈进行括号匹配的操作,于是大胆猜想这题也应该是这么干的,只不过还要确认连续出栈的*个数小于等于 kkk,然而很不幸猜错了。当样例1死活过不了之时,我才突然发现我这个算法很容易就证伪了。然后我就开始想另一种校验字符串合法的方式,完全陷入了这种思维定势导致我浪费了大量时间。 最后只剩下半小时了我才突然意识到 DP,结果当然并没有推出转移方程。无奈放弃。试图开一下虚拟机准备跑一下 T1 T3,结果学校的破电脑根本承受不住竟然直接死机了,硬盘仿佛在呼啸,最后也没测成。 到点交卷签字走人,我觉得我凉透了,应该是没有三位数了。 2021.10.24 一早测了下洛谷民间数据,40+0+28+0,我人没了。后来发现 T3 还有一个枝忘剪了,加了行代码直接 28pts 变 40pts,我人麻了。 总结 今年可以说更加注重思维的考察,没有去年的大模拟、卡精度之类的妖魔鬼怪,但是对于我这种缺乏思考能力的选手而言确实是挺有难度的,至少我认为比去年难多了。而我这次 T2 被自己刚开始的思路局限住了,没有充足的时间去思考 DP 做法,也值得引以为鉴。 总之这场 CSP 打得稀烂,但愿还能有机会苟进 NOIP。"},{"title":"2021 CSP-S 初赛游记","date":"2021-09-30T14:07:58.000Z","url":"/post/2021-csp-s-1/","tags":[["OI","/tags/OI/"],["游记","/tags/%E6%B8%B8%E8%AE%B0/"],["CSP","/tags/CSP/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''没错,我又回来了。 去年 NOIP 拿了个二等奖,然后退役专心搞文化课去了,当时打算如果高三有空的话再去玩最后一次。现在由于我已经考完了地理、生物等级考,课业压力和很多人相比还是要稍微轻松一点的,再来就是想调剂一下枯燥乏味的生活,于是尽管已经高三,我依旧报名了今年的 CSP/NOIP 系列认证/赛事。当然高三毕竟还是学习最重要,所以我也就没有像去年花大量时间参加集训了,决定凭着现有的菜鸡水平,作为退役选手重返赛场。 因为一些众所周知的原因,今年是 NOI 系列活动新赛程实施的第二年。由于有了去年的经验,今年 CCF 各个环节推进得要迅速很多,8月份就开始初赛报名了,整个赛程的时间线比去年提早了一个月左右,正好不会影响到12月份的高三一模。9月19日我去考了 CSP-S 第一轮认证(初赛),于是就有了这篇游记。 去年初赛游记请移步:2020 CSP-S 初赛游记 Day 0 因为太久没碰 OI 了,教练都有点担心我的初赛,于是考试前一天非常贴心地给我准备了三套模拟卷和答案供我复习,真是受宠若惊。 回到家后写了三小时作业,然后开始复健。快速地过了一下模拟卷,顺带着把知识点过了一遍,发现还是遗忘得挺多的,不过稍微看一看也能想起来。模拟卷里还有几道几年前初赛很喜欢考的时间复杂度递推,以前因为看不懂主定理所以遇到都直接放弃。这次我打开 OI Wiki 尝试学习了一下主定理的使用,竟然学会算时间复杂度递推了(虽然第二天根本没考到)。 然后今年我校在9月19日承办了另一重要赛事,所以就只能大老远跑到华师大二附中某分校去考了(复赛那天我查了下是成人高考,我校又要被征用,看来今年是不能在自己学校考了)。 Day 1 一大早出发,大概一个小时的车程到达认证点,然后被惊吓到了。放眼望去校门口的队伍里竟有一大半都是小学生,拜托这可是S组的认证啊,现在信息学竞赛已经内卷到这么可怕的地步了吗?(瑟瑟发抖) 到了考场门口才知道很多小学生是下午J组的,搞错时间了。但是,报名了S组的小朋友依然很多,我那个考场里有大约一半都是小学生。 然后就是发卷子和答题卡以及草稿纸,拿到卷子后翻阅了一下,一眼就看到了今年那道臭名昭著的手算 base64,顿时心里咯噔一下。再看到后面的笛卡尔树和四毛子,我的心已经凉透了。 试题链接 选择题 硬着头皮开始做选择题,考了 Linux 列目录命令好评,图论和二叉树考了挺多题的,难度还可以,主要都是概念性的和结论性的东西,排列组合数学题考了两道,比去年的数学题要难一些,但是毕竟高中数学没白学,都做对了。 (感兴趣的同学可以做做) 最后选择题正确率挺高的,就错了一道题。 阅读程序 T1 说实话看完这题是懵的,不知道这个程序在干嘛。但是一看到 又看到两个特判 顿时明白了这是在求两个球的体积交。 然后就好做了,但是带入数据计算的时候发现有个变量 rrr 好像没给啊,找了半天发现写在了最顶上: 原来 rrr 是 arccos(0.5)arccos(0.5)arccos(0.5) 啊,诶等等,这是我脑子能计算的东西吗?习惯于使用计算器的我差点没反应过来这货就是 π3\\frac{\\pi}{3}3π。 T2 这题就涉及到我的知识盲区了,我这个菜鸡只好一通瞎猜。 T3 万恶的 base64 来了,恨不得当场调个 base64_decode() 函数。 一上来就掉坑里了,没考虑到解码出来的字符串可能包含换行符。 手算 base64 果断放弃,相信好心的 CCF 是不会让你算半天最后发现不对的,结果猜错了,CCF 并没有这么好心。 这道题是整张卷子中最让人无语的一道题,因为它考了一个未定义行为,即不同的编译器和平台会给出不同的结果,主要取决于 char 是被默认为 signed char 还是 unsigned char,可以说是命题人欠考虑了。以下是考完后上机验证的结果: 完善程序 今年的完形填空(完善程序)难度比去年要大,T2 四毛子我就不说了,我全是猜的(最后莫名其妙猜对了好多),T1 给了个极具迷惑性的没有卵用的 rrr 记录 while() 循环执行的次数,让我一直在想它的用处,最后害我把本来判断对的改错了。 当天晚上对了答案,估分65.5pts,虽然不咋样但是在上海应该能过。 (图源洛谷,仅供参考) 2021.9.28 上海成功撑到了最后,赢了广东,成为了全国最后一个出成绩和分数线的赛区。 考了69.5,比估分高了4分,最后成绩居然和去年一模一样,虽然卷子难了成绩没变,还是比较满意的。至于上海分数线嘛,才41分,我这分数在上海都能排到100名左右。 之后的计划 之后还是专心于文化课,计划国庆去学校一个上午练一下手感,然后复赛前一天晚上背背板子就差不多了,能拿多少分随缘,反正已经退役了大胆去考就可以了。 最后,祝今年参加 NOI 系列活动的 OIer 们考出好成绩~"},{"title":"「一块钢板的重生」——7年前的小米4还能干什么","date":"2021-07-31T10:23:00.000Z","url":"/post/rebirth-of-xiaomi-4/","tags":[["小米4","/tags/%E5%B0%8F%E7%B1%B34/"],["智能家庭","/tags/%E6%99%BA%E8%83%BD%E5%AE%B6%E5%BA%AD/"],["HASS","/tags/HASS/"],["小爱同学","/tags/%E5%B0%8F%E7%88%B1%E5%90%8C%E5%AD%A6/"],["红外","/tags/%E7%BA%A2%E5%A4%96/"],["Termux","/tags/Termux/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''随着家里接入米家生态链的智能家庭设备越来越多,我已经习惯于使唤房间里的小爱音箱帮我完成各种开关操作。就在前几天,我甚至都忘记了房间里的电风扇不是智能的,对着小爱同学张口就来,最后还得自己去开。那么对于这样的非智能家电,是否能够将其接入到智能家居的生态链中呢?答案是肯定的,比如我房间里的这台风扇支持红外遥控,只需要加钱买个米家生态链的红外万能遥控器就解决了。 然而目前市面上一台红外万能遥控器价格在几十块到一百多块不等,贫穷使我我不得不思索另一种替代方案。看到抽屉里的小米4以及机身顶部的红外发射器,我突然有了灵感。这台小米4是我初中的时候用的,上了高中换了手机以后就放在抽屉里没动过了,算下来已经是7年前的老古董了。虽然这样一台手机在今天干啥都有那么点卡顿,而且无论是官方的还是第三方的 ROM 都已经停止支持了,但是当一个万能遥控绰绰有余。因此,这篇文章就来谈谈我是如何让7年前的小米4重获新生的。 准备工作 首先既然要干这么有意思的事情,当然受不住 MIUI 条条框框的束缚,所以第一件事就是刷入第三方 Recovery(我选择的是 TWRP)以及第三方 ROM(我选择的是 Lineage OS)。由于年代久远,Lineage OS 也停止了对于小米4的支持,因此我 Google 了一下,在 XDA 论坛上找到了一个比较新的 Unofficial 版本,刷入后各项功能都正常。接着又刷入了 OpenGApps 以便于使用 Google Play 商店安装应用。 因为我并不会安卓开发,所以我选择了 Termux。在使用 Google Play 安装了 Termux 本体以及 Termux-API,配置好 openssh-server 后,这台手机就变身为一块 ARM 开发版。通过 Termux-API 可以调用手机的各项功能,当然其中也就包括红外发射。 由于红外发射需要红外遥控码,不同品牌、同一品牌不同型号的设备的红外遥控码都大概率是不一样的,而厂家一般也不会公开这些信息,这时就需要一个维护好的红外码库,从中查询自己的电器遥控器上每个按钮对应的红外遥控码。虽然现在网上一搜就能看到很多这种码库,但基本上全是要收费的。如果不想要花钱就只能自己买红外接收器,逐个按键录入遥控码,这无疑又是一笔额外开销。 好在几年前有人维护过一个开源的红外码库叫做 IRext,但是由于一些原因(估计是动了谁的蛋糕)这个码库的官网关闭了,文档下线了,GitHub 仓库也删除了,虽然有相关的 Fork 但是 Readme 里面的链接和文档都打不开了。好在 IRext 的 API 服务器其实还是偷偷开着的,只是因为没有文档不知道如何使用。我也是很懵地研究了很久,最后终于摸索清楚了。考虑到这个码库关闭的原因,我在本文中就不指明了,留下一点线索供需要的人参考。 官网和 API 文档虽然已经无法访问,但是互联网档案馆的 Wayback Machine 有过 Snapshot,借助它可以穿梭时空。 API 需要 Credentials 鉴权后才能使用,在 GitHub 上搜一搜使用了 IRext 的项目有惊喜。 注意仔细阅读 API 文档中有关「按键映射」的部分,这里详细展示了按键编号与功能的对应关系,不要理所当然地认为X号键一定有功能,否则你就会像我一样试了半天发现不管用,因为X号键不对应遥控器上的任何一个按键。 最后获得的红外遥控码应该是一串形如[1250,340,340,1250,340,1250,1250,1250,340,1250,...]的编码。 变身红外遥控 在这一步我将展示如何利用这台小米4将我房间里的风扇接入 HomeAssistant。 确保手机连接了 WiFi,安装好了 Termux 及 Termux-API,通过 SSH 连接到手机上的 Termux。调用termux-infrared-transmit指令以了解红外发射功能的使用方法。 调用如下的命令以测试红外发射,-f指定了发射的频率,一般的红外遥控器频率为38kHz,因此指定频率为38000Hz。后面的第二个参数即红外遥控码。如果命令执行完毕被控设备正常响应则没有问题。 接着为了让局域网里运行在软路由上的 HomeAssistant 能够控制该设备,我用 Python 和 Flask 写了一个 API 接口。先在 Termux 中安装好 Python3,然后编写api.py。 (需要注意的是本段代码实现的 API 功能没有进行任何的鉴权,因为是开放在家里内网上的,只要家里内网不被打穿相对而言比较安全,切勿开放在公网上) 通过下面的指令使其在后台运行。 打开局域网内任何设备的浏览器,访问 ,其中MI4-IP为手机的局域网 IP 地址,如果风扇开了/关了,说明成功。 最后通过给 HomeAssistant 的 configuration.yaml 添加配置以注册设备。 打开 HomeAssistant 可见设备,可以点击「运行」进行测试。如果配置了 HomeKit,在 iOS 的「家庭」应用中也可以看到设备。 接入米家生态链 至此貌似还没有解决最初的问题,即能够通过小爱同学来控制风扇。由于注册小爱开放平台貌似需要把 HomeAssistant 暴露在公网,再加上各种实名认证、审核太过麻烦,我决定曲线救国。 众所周知「米家」APP 中有一个「其他平台设备」的功能,可以添加第三方平台的设备,其中「点灯科技」吸引了我的兴趣。在阅读了点灯科技 Blinker 的文档后,我发现这个办法可行。 由于 Blinker 推荐的 SDK 是 Typescript 的,在弱小的小米 4 上跑这玩意简直要命(试过,几个小时后 node 进程因为内存不足被杀了),好在有软路由,我选择丢到软路由上去跑。 参照 Blinker 的文档注册设备、配置环境、安装 SDK 的过程这里不赘述了,可以自行搜索,选择 Broker 的时候注意选择阿里云,选择点灯科技将不支持小爱控制。安装完后改写 SDK 目录下 example/miot/example_miot_light.ts,加入控制语句。 通过 ts-node example/miot/example_miot_light.ts 让其跑起来就可以了。 细心的你可能发现了,要接入的不是风扇吗,怎么用的是灯的 SDK?要怪就怪 Blinker 提供的 SDK 根本就是个半成品,风扇 SDK 还没写呢,只能先拿灯凑合用。只要把设备名称修改成「风扇」,小爱同学就听得懂了。至于风速、摆风功能我把它们绑定在了日光模式和夜灯模式上,利用小爱训练计划可以重定向指令,比如当我说“让风扇摇头”的时候执行“设置风扇为日光模式”就可以了。 最后在米家中绑定点灯科技并同步设备,来一句“小爱同学,打开风扇”,正常的话风扇就开咯。 更多玩法 使用termux-sensor -l可以获得手机上都有哪些传感器,我惊讶地发现小米4竟然有货真价实的气压传感器,并不是通过 GPS 海拔数据倒推出来的,于是搭建了一个气象监测站,每5分钟提交一次数据至 Firebase 实时数据库,并使用 Apache Echarts 和 Jquery 制作了数据展示页面。 当然termux-sensor还告诉我有温度传感器,但这明显是 CPU 的温度传感器,测的并不是环境温度,就没有什么利用价值了。 另外有条件可以购入一张物联卡插入手机中,这样家里 WiFi 断开的时候也可以持续完成数据采集和上报。 总结 就这样,小米4结束了它作为手机的使命,却在2021年成为了智能家庭与传统家电沟通的桥梁。 本文所提及的思路和方法适用于多数带有遥控功能的安卓手机,遥控对象可以是任何家电(只要有遥控码),欢迎尝试呀。"},{"title":"周记#23 - 六七月那些事","date":"2021-07-29T06:40:24.000Z","url":"/post/weekly-23/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''离上次更新又一个多月了,眼看着高中最后一个暑假(也是第一个完整的暑假)竟然都快要过半了,赶紧来水一篇“周记”( 那么这篇就是关于六月底以及七月的那些事~ 合格考 六月底校内的期末考结束之后,就开始备战物理、化学、政治、历史合格考了。 这里稍微解释一下,上海新高考要求所有考生必须参加六门选修课(物理、化学、生物、地理、政治、历史)的合格性考试并取得合格成绩(不计入高考成绩,但是必须合格才能参加高考),同时从六门选修课中选择三门作为高考科目,参加等级性考试,按等级赋分计入高考总分。 对于多数学校而言,地理、生物合格性考试在高一下学期考掉,地理、生物等级性考试(如果选了的话)在高二下学期考掉,物理、化学、政治、历史合格性考试在高二下学期考掉,物理、化学、政治、历史等级性考试(如果选了的话)在高三下学期考掉。 我们这届碰上历史、政治新教材,于是历史、政治合格考也改版了,原先是80分单项选择+20分大题,随便做做选择题就能合格,现在是把单独的单项选择题删得一道不剩,改成整张试卷全部是大题,简直恐怖。 然后这学期比较特殊,碰上地理、生物等级考停了挺长时间课的,本来历史、政治就课少这下更加没剩几节,再加上我这种对历史、政治完全没啥兴趣的人从高一开始就没好好上过几节课,全在摸鱼划水,我其实心里一直挺虚的,别到时候整个不合格就麻烦了。 合格考前两周学校搞了次模拟考,物理是我的选考科目,有手就行;化学嘛虽然高二选科之后就没好好听了,但是高一的时候基础还是挺好的,有手就行;历史凭借着一点点常识加上抄材料的传统艺能,也考了70多分;政治那简直是灾难,我看着卷子上密密麻麻的横线仿佛又回到了考地理的时候,啥也没背下来只能抄抄材料里的原话,然后开始胡编乱造瞎写,努力把每一个空都填满了,老师也是不容易,从批改的痕迹中能看出在很努力地想让我及格😂最后政治获得了57分的高分(为什么是高分呢?因为最高也才60出头)。模拟考考成这样我也就安安心心地回家复(mo)习(yu)去了。 正式合格考那天依旧是在自己学校主场作战,除了我校的学生外附近的几所高中也都分配到了我校考点。第一场化学,前面做得挺顺的,就是有机化学是高二学的,上课没听,有机大题就只好瞎猜乱推,反正选择做做就够用了。 令我没想到的是,开考十几分钟后,就有人问监考老师能不能交卷,我人都傻了,这家伙怎么做那么快,监考老师让他再等等。更令我没想到的是,开考半小时允许交卷的时候,监考老师话刚说完,大半个考场都提前交卷跑了,转眼就只剩下几个人了,给我整懵了。我还是定定心心地做完了卷子,检查了几遍,实在熬不下去了再加上太尴尬了,确认无误后我提前15分钟交卷走人,回头一看发现考场里竟然只剩下2个人了,真就离谱。(而且后面的每场考试都是这样) 后面政治考了特别多时政是我没想到的,另外哲学怎么一道都没有考,还有上海政治老教材里的“内外因”怎么都冒出来了,这写分论点又是怎么回事,考完感觉很慌;物理不得不说这合格考卷子质量还挺高的,还是花了点时间的;历史凭常识做题考完感觉还行,没有政治那么拉垮。 两门科目之间一个半小时休息的时候,我在候考区试图玩会儿手机,结果发现屏蔽器还开着,4G一点信号都没有,然而边上用5G的同学竟然看视频畅通无阻?!果然学校安装的屏蔽器对5G信号没用,这似乎也解释了为什么有人能在高考的时候用小猿搜题。 考完之后就是忐忑不安地等成绩,最后嘛… 当然是全部通过啦~ 居委会挂职 没错,这是上海高中的特色项目,7月初要去居委会上一周的班。我和另外三位同学被分到了学校附近的某小区居委,居委会工作人员还是挺体谅我们的,不像在别的居委的同学还要发报纸、搞卫生、出黑板报,我们基本上就是去摸鱼写作业的,偶然当当工具人搬几个桌子之类的。 每天最重要的事情大概就是决定中午吃什么,我这种选择困难症患者果断把决定权交给同学了。由于附近也没什么吃饭的地方,我们决定骑车去附近的商圈,下雨就叫外卖。这段时间真的是深刻感受到了上海高昂的物价,第一天去吃麻辣香锅四个人花了近200块,最后其实没太吃饱,属实有点贵;第二天下雨叫了金拱门,为了尝鲜点了新出的桂林酸笋板烧套餐,但是吃起来发现也就那样,酸笋加在里面就很突兀,后悔没单点9块9的板烧再加小食饮料都比这便宜;第三天去了家东北馆子,果然还是东北菜量大,四个人同样快200块吃到撑,就是太热了,点了三个干锅,底下酒精炉一直在烧着,吃完一身汗;第四天白嫖了同学的大额外卖优惠券,点了烧鹅、三杯鸡、花枝丸、卤肉饭,总之是肉食者的狂欢,吃撑了。算下来每天吃个午饭都要花40-50块,上海的物价是真的可怕。现在看来这哪是去上班啊,分明是花钱出来团建啊( 这几天运动量也大增,以前暑假多半是宅在家里,要么就是坐车出去上课,这几天除了下雨每天都骑车出去吃饭,下班也是先坐公交再骑1km回家,现在后悔没办骑行月卡,导致在共享单车上增加了很多额外开销。 参与开源项目 人生中第一次 PR 是年初的时候给 DIYGod 的 RSSHub 项目发的,当时 NOI 网站换新导致原本的订阅失效了,我试图适配了新版网站并提交了 PR 然后被 Merge 了,当然水平不行修得并不好,小问题挺多的,后来这个接口的原作者大佬重新修了一遍。 然后上个月因为想要在文章内插入音乐,结果发现网易云、QQ音乐、酷狗音乐都要求 VIP,导致 Meting 不能正常解析出歌曲 URL。试了下酷我音乐不需要 VIP,但是却发现 Meting 竟然不支持酷我音乐,于是乎决定自己动手,给 Metowolf 的 Meting 项目加入酷我音乐支持,提交了人生中第二次 PR。 这个月由于酷我音乐 API 出现了一些小改动导致原来的接口失效了,有人发了 Issue 于是我又花了点时间修好了接口,发了第三次 PR。 得益于酷我音乐庞大的曲库,现在用 Aplayer 搭配 Meting 往博客里插歌简直不要太爽,能够参与到开源项目的维护还是成就感满满的~ 实验室上新啦 Hans362 's Lab 船新项目,气象监测来咯~(灵感来自于迟先生的项目 BlueSense) 由于不慎手残把 DHT12 温湿度传感器的 VCC 和 GND 接反了,然后瞬间击穿了,手头还有一个益杉的激光颗粒物传感器,但是是串口通信的,还没想好怎么接入,所以目前只有一个气压传感器在持续监测。 值得一提的是这个气压传感器并不是单独购买的哦,它来自于一台废弃的小米4手机(一代神机啊),关于它的故事下一篇文章会详细讲讲(挖坑)。 (图中左侧的下凹段展示了台风“烟花”过境时上海的气压变化) 接下来的计划 整个7月份基本上都在外面上课+写作业,多亏了钉钉,现在每天都要交暑假作业,每周上一天课🌚 原计划是8月要回趟老家的,毕竟上一次回老家已经是前年暑假了,然而南京疫情又爆发了,上海估计也免不了,怕回去了再回来又要隔离什么的,到时候不能正常开学就很麻烦,所以计划也泡汤了。8月估计只能宅在家里了TAT。 9月份开学之后就高三了,估计要断更很长一段时间。接下来英语要加油咯,争取春考140+上岸~"},{"title":"周记#22 - 等级考简报","date":"2021-06-11T14:18:21.000Z","url":"/post/weekly-22/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''突然发现已经许久没有更新过周记了,上一篇还是在疫情刚平稳返校复学的时候,距离现在都已经一年多了 前段时间终于把地理生物送走了,现在少了两门课稍微轻松一点了,趁着端午假期赶紧复活一下这个系列( 这篇周记主要是关于等级考之后这一个月的事,当然还有最重要的,等级考查分 写这篇文章时上海刚刚入梅第二天,空气异常闷热潮湿,每天都在下雨,那么就用这首「Rain」(《言叶之庭》ED)作为背景音乐吧 迟到的春游 因为等级考的缘故,高二年级的春游被推迟到了等级考之后,原计划是等级考考完后第二天就去春游,可惜没订到车,所以又拖了几天 目的地是去过好几次的松江辰山植物园,同桌考完生物已经PTSD了,听到“植物园”三个字就自动无端联想然后就阵阵悲伤涌上心头(生物伤人不浅呐) 到了那里才发现好多景点正在维修暂停开放,尤其是那个废弃矿坑改造的花园都面目全非了,然而当我看到在维修中的矿坑花园时,一瞬间就想到了地理等级考的一道大题,问的正是废弃矿坑的再利用,猛地反应过来答案不就在眼前嘛,可惜考试时根本没想到还能改造成花园 因为没啥景点可逛两个小时就走遍了整个植物园,于是乎决定去爬一下辰山,虽说是山其实就是个小丘陵,海拔只有八十几米,十几分钟就登顶了,顶上景色还是不戳的,还有个祈福的钟每人限敲三下,我也迷信了一波 总的来说出去玩一次还是很不错的,至少回去以后心情平复了很多,刚考完那几天真的是浑浑噩噩的,睡觉都做噩梦 月考 等我们的心情稍微平复了,学校真的是见缝插针,搞了次只有语数英的月考,而且令我们万万没想到的是竟然和高三考的是同一张卷子(因为大部分新课已经上完了嘛) 然后神奇的事情发生了,语文老师月考前一天讲评了二模卷上的一篇很难的现代文(二),因为这段时间刚好在练散文,按照顺序就讲评了这篇,讲完之后就让我们回去再梳理梳理,说明天考的会比这篇更难 想着不可能考原题我也就没好好看,摸鱼去了,结果第二天考场上一看,我勒个去,这不就是昨天语文老师讲的那篇嘛,连题目都是一样的,然后瞬间就急了,疯狂地唤醒自己仅存的那点记忆😂 考完后拿出二模卷才发现,原来直接把整张二模卷拿来考了,不仅仅现代文(二)是二模卷上的,其它的也是原封不动地搬上去的,好在上课还是听了的,最后语文考的还可以 数学这还是第一次考综合卷,填空题从第9题开始就卡住了,因为没系统地复习过,高一好多知识点都忘了,做得异常吃力,好在熟练地掌握了卡西欧 fx-991cn 的函数表格功能(上海高考可以使用计算器),帮我暴力解出了4道涉及到复杂函数值域的填空题,最后成绩不至于太难看 英语因为加上了概要和作文,瞬间感觉时间变得紧张了,差点没写完,概要因为做得太急文意都理解错了,10分只拿了2.5分,还好前面做得还可以最后总分也还不错 这次月考深刻感受到了高三的卷子到底有多难,离目标的差距还是很大的,还有一年时间要加油了呢 等级考查分 虽然一直不愿面对,但该来的总是要来的 查分的前一天高考放假在家里就已经隐约有些不安了,下午考试院发公告说6月10日傍晚18:00起可查分 6月10日到学校后就坐立不安,当然大家基本上都和我一样,班主任劝我们情绪一定要保持稳定,查完分千万不要有什么过激行为,晚自习该咋样就咋样,还有无论考了多少都要发成绩给她,她都会回一个大拇指 好不容易熬到了五点二十,去食堂吃饭已经紧张得没啥胃口了,买了份麻辣香锅试图刺激一下食欲但是明显交感神经占优势,和同学坐一桌看着他不停地刷着网页,网站上四个查分服务器已经有了,但是都还是关闭的 吃完饭网页也没刷出来,决定不在食堂等了先回教室,隔壁班在放《好运来》,整个年级都热闹非凡 不安地写了会儿作业,17:45左右突然教室后面传来一声“啊通道开了,我用手机查到了”,我心跳瞬间加速,见没人用讲台上的电脑,我就上去试图早点来个了断 前桌刚准备回家见状就凑上来,开玩笑地说:“快查快查,让我看看两个A+长啥样”,我说“别奶了别奶了,我好紧张啊”,她说没事我帮你用手挡着屏幕,于是我颤抖着把账号密码和验证码输了进去,握着鼠标的手迟疑了一下最终还是摁了下去 考试院的系统抗压能力竟然还行,成绩几乎一瞬间就弹出来了 前桌把手挪开,0.01秒后我激动得都快跳起来了,简直不敢相信自己的眼睛,前桌和我一起一阵欢呼,真的没想到自己考成这样了竟然还有两个A+(即等级赋分满分),紧张的内心在那一刻彻底得到了释放,之前一个月的焦虑和不安此刻都显得有些多余,窗外的雨还在下个不停,湿热的空气从窗外袭来,心里却像进了阳光一样舒畅 紧接着教室外也传来阵阵惊呼,陆陆续续大家都发现可以查分了,整个教学楼都炸锅了,据刚从食堂回来的同学描述说食堂里场面十分混乱,人人都跟范进中举了一样,只不过有的是喜极而泣,有的是悲痛欲绝,把学弟学妹和隔壁初中来我们这吃饭的同学都吓坏了 然后某住宿的同学说刚才和他一起洗澡的全都考了A+,太离谱了,有人一语道破真相:这只是幸存者偏差罢了,考不好的哪还有心情洗澡😂 不过有一说一,生物这波真的是玄学,好多平时模考都一直很好、考完对完答案感觉没错几个的同学反而只有A,同桌平时和我不相上下,考前比我努力多了,结果只有B+,我都不知道该怎么安慰他了😢我也只是运气好点罢了 总之生物地理等级考大成功!没有辜负两年来的努力,也算是终于可以微笑着和它们说再见了,我相信天道酬勤,也相信人品守恒,那些属于我的,终将会属于我的 “会在乌云散开,看星辰密布” 下一个目标:英语春考争取上140,这样就可以再摆脱一门课啦~ 接下来的日子里,也请继续加油~"},{"title":"2021年上海高中地理/生物等级考大吐槽","date":"2021-05-09T13:55:06.000Z","url":"/post/2021-shanghai-cee-geo-bio/","tags":[["上海","/tags/%E4%B8%8A%E6%B5%B7/"],["吐槽","/tags/%E5%90%90%E6%A7%BD/"],["高考","/tags/%E9%AB%98%E8%80%83/"],["等级考","/tags/%E7%AD%89%E7%BA%A7%E8%80%83/"],["生物","/tags/%E7%94%9F%E7%89%A9/"],["地理","/tags/%E5%9C%B0%E7%90%86/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''今天下午4:30,走出考场那一刻,我和相处两年的地理/生物彻底告别了(泪目 首先先庆祝一下完结撒花🎉以后终于可以比理化人稍微轻松一点点了 然后还是老规矩,在出成绩之前先骂一骂吐槽一下出题人(雾 (其实这篇文章本来取名叫《我与地理生物的和平分手》,考完生物我就把这个标题改了😂) 11:50到达学校,然后竟然不让进(我以为我已经来得够晚的了),就和同学被拦在门外傻等,今天上海最高温度36度简直恐怖,在门口汗流浃背地等到了12:20左右才放进去 校门口的红外测温仪直接被无视了,这大热天测出来的体温能正常就见鬼了,满屏的40度报警😂 进去后刷身份证,熟门熟路到考场(考点就在自己学校果然爽ww),签到,听考生须知和考场规则,发条形码、答题卡,发试卷 地理 今年的地理难度适中,全市平均分达到75分是肯定没有问题的,甚至大题可能还要扣得更严一点才能防止90+遍地走 但试卷简单也意味着试卷区分度不明显,很可能A+ 97 A 94这样(我瞎说的啊只是举例别打我),这也是我不希望看到的,一不小心失误一下掉到C都有可能 今年的地理题确实有不少新的花样,没有考地域分异规律,也没有考地理环境的整体性、可持续发展的三效益,完美地避开了近期的所有热点新闻和我们老师出的押题卷(去年我们老师押中了一个20分的大题),考察的还是考生现场分析和表述的能力 选择题 选择题回忆几道目前还有印象的,题目具体描述和选项可能记不太清了,答案仅个人观点,不是标准答案,有问题欢迎指出~ RS 监测内蒙古草场那道选了少云的夏季,因为觉得夏季降水多草场茂盛便于区分 月相日期那道选了农历三月十一 树影那道选了正午太阳高度角可能最大 海南岛那道题选了防台风,因为题干强调房屋坚固 花博会那道题选了科技,因为要控制不同时节的花同期开放,肯定是科技好 大题一 简答题第一道考了甘肃金昌,其中那个废弃矿场的利用我写了建博物馆发展旅游业😂还写了建立新兴产业园区,实在编不下去了也不知道对不对 大题二 第二道考了上海去年的寒潮,天气系统我脑残写了冷锋已经痛失4分,因为那天已经转晴,气温下降,应该是受(冷性)反气旋或(冷)高压控制,考完咨询了搞气象的母上大人,母上大人得知我写了冷锋差点没把我踹死 大题三 第三道考了南非,分析太阳能资源分布的那道我写了甲多乙少,甲我根据材料给的等降水量线写了热带沙漠气候,但是看教材应该是热带稀树草原气候,也不知道答案给的啥,2分没了 总体来看地理还是比较友好的,A+应该是没了,A有点危 生物 万万没想到这才是噩梦的开始 生物以一己之力让上海等级考冲上热搜 今年的生物等级考继承了去年10页试卷的优良传统🙄但在继承之上可谓是非常放肆,直接打破了等级考的历史,大题竟然没考光合作用,而是考了一道植物激素大题(时代变了 不过考场上看到没有光合大题,考的是植物激素我差点笑出声,我们生物老师在去年就讲过,她怀疑今年可能要考一道植物激素的大题,因为等级考第一年考试院出了一套试水的卷子,里面就有一道植物激素的大题,然而后面这么多年等级考都没再出现过,所以她让我们注意一下,结果竟然押中了 然而押中了屁用没有,该不会还是不会:-( 选择题 2021.5.14 更新 我校生物组有位老师去批卷了,今天回来大致回忆了一下考试院的官方答案,选择题中喷瓜那题是 aDada^Da^daDad(没错哦因为要考虑两性花严格自花传粉,我也惊呆了),蚂蚁入侵是先增加后稳定,海螺是全部右旋,胆固醇酯化是合成反应,最后一题是光反应和暗反应都增强,我选择题对下来错了2道😭(-4pts) 选择题就颇有难度,蚂蚁入侵那题我选了先减小后稳定,但是好多人选了持续增加或是先增加后稳定,估计我错了 左旋右旋那道遗传题考语文,看清是按母本基因型就没问题,我选了全部右旋 胆固醇酯化那题我一个不选化学的都知道那是取代反应,但是选项里没有啊😢我看连氮元素都没有,排除了转氨基,水解反应和氧化分解反应也更离谱,于是选了合成反应 大题一 大题第一题就在给我绕,一会儿X菌S菌P菌的差点晕过去,不过绕清楚了难度也还行 大题二 大题第二题就上遗传,上来口诀“无中生有为隐形”,一看题干,嗯?怎么题干告诉我是显性?幸好题做多了马上反应过来是发生了基因突变 然后往下推还算顺利,算比例那题太坑了,我算出来4:1一看选项怎么没有?!然后又算了好几遍都是4:1,差点昏过去,最后定睛一看,好家伙,A选项写的是8:2🤣,此时我心里一万句脏话🤬(就不能约个分嘛,浪费我时间 最后一题也困扰了我好久,告诉 Cas-8 由 B/b 控制,但是你没告诉我显隐性关系和染色体位置啊,怎么写基因型 反复读了三遍题都没头绪,最后恍然大悟:这不是“无中生有为隐形”嘛,原来是放到最后一问来考了,可是染色体位置还是不确定啊? 还好及时看到了“可能”二字说明答案是两种情况,儿子是 aabbaabbaabb 或 aaXbYaaX^bYaaXbY,母亲是 aaBbaaBbaaBb 或 aaXBXbaaX^BX^baaXBXb 大题三 2021.5.14 更新 我校生物组有位老师去批卷了,今天回来大致回忆了一下考试院的官方答案,最后的长句子原本给的答案是可以逆转脱发,但是在许多老师的强烈要求之下可以逆转/不可以逆转都算正确,结论不设分值,原因合理即可(我姑且先给自己-2pts) 大题第三题题目居然叫“头发知多少”,是关于脱发的(有被内涵到 图画得非常不清楚,文字又很少,导致我长句子题一度不敢下笔,总觉得缺点条件,就只能瞎写了,还有图里给的另一条通路好像用不上? 大题四 大题第四题就是植物激素,有几道多选题不太确定,反正尽可能少选,选了确定的 2021.5.14 更新 我校生物组有位老师去批卷了,今天回来大致回忆了一下考试院的官方答案,本大题如果像我上面说的那样不确定的尽可能少选大概要被扣穿了,因为今年多选题的评分标准变严格了,数字类多选若漏选该题不得分,字母类多选若漏选一个选项只能得一分,若漏选两个及以上的选项该题不得分 然后更离谱的来了,多选有一道的答案是ABCD(考完我们还在争论答案是CD还是ACD,结果答案是ABCD,估计全市没几个答对的),我不幸选择了CD,直接一分不得😭最后有个数字类多选答案是12345全都选,漏一个就没分,我又没了😭(-6pts) 大题五 然后就是重头戏,第五大题基因工程 题目背景大致是说一种菌有 dszc 基因能够合成并分泌 DszC 酶,但是酶活性会被产物抑制,现在搞出了几个突变的 dszc 基因,分别是 dszc alpha,dszc beta,dszc gamma,然后给了张酶活性-产物浓度曲线 搞了道6分的炒鸡贵的简答题,告诉你正常的 dszc 基因有1254bp,你觉得 dszc gamma 有303bp的可能性大还是1257bp的可能性大,结合酶活性-产物浓度曲线说明理由 我看完题直接懵了,这啥玩意啊,它到底想考啥,而且这玩意怎么6分啊,这叫人怎么猜啊 最后只能姑且认为这是道开放题,选哪个都行但是要言之成理,于是我选了303bp,然后就开始瞎编理由,因为1257bp只是差了3个bp(1个氨基酸),但是从图中看 dszc gamma 的曲线和正常 dszc 的曲线差异是最大的,因此不太可能只差1个氨基酸,更可能是303bp 但是我这样答我自己也清楚有一个很大的漏洞,从碱基对数量(氨基酸数目)上看确实303bp差异更大,但是从氨基酸种类上看万一是移码突变不是差异也会很大?但也没时间纠结了就只能这样写了 考完后有人去查了文献,发现这是华南理工大学的一篇博士论文,根据论文里写的应该是303bp 然后某张不知来源的聊天记录也说是303bp 个人感觉说的有道理,考的大概应该是结构与功能相适应 2021.5.14 更新 我校生物组有位老师去批卷了,今天回来大致回忆了一下考试院的官方答案,最后的6分大题原本给的答案是1257bp,但是由于各校老师的强烈控诉变成了303bp/1257bp都算对,结论不设分值,重点是原因分析(我姑且先给自己-2pts) 然后受体细胞题干也没讲清究竟是不是原来的那种菌,因此有一道多选题问筛选出的导入成功的细胞应该包含哪些基因,我没敢选正常 dszc 基因 总之这生物也是无语了,估计全市平均分到不了75,有57就不错了,批改时估计还得放水 考完生物教研员被骂得可惨了,全家都被问候了一遍 也不知道生物能考怎样,听天由命了 2021.5.14 更新 怎么办啊对完回忆版的官方答案我觉得A都危险😭😭😭 刚考完那几天天天做噩梦梦回考场😂现在差不多缓过来了,结果标答又给了我当头一棒😭 总结 总之就是考完了,6.10出结果~~(死期~~ 想想两年来地理生物陪伴的时光,还是很值得怀念的,沪教版生物/地理教材也送走了ta的倒数第二批使用者,马上要寿终正寝了 生物老师: 大家今天晚上该吃吃该喝喝,好好休息,以良好的心态迎接接下来的挑战。 该吐槽的也吐槽完了,过去的就让它过去吧,接下来,也要继续加油呢~ (不说了,历史政治合格考跟在后面要追杀我了😥"},{"title":"在 MWeb 中优雅地使用 GitHub + JsDelivr 图床","date":"2021-03-06T08:46:07.000Z","url":"/post/use-github-as-picbed-in-mweb/","tags":[["Web","/tags/Web/"],["Serverless","/tags/Serverless/"],["Vercel","/tags/Vercel/"],["GitHub","/tags/GitHub/"],["MWeb","/tags/MWeb/"],["图床","/tags/%E5%9B%BE%E5%BA%8A/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''一直以来我都使用 iPad 作为主要的写作工具,得益于 Working Copy + MWeb 的神仙组合,我可以在 iPad 上非常便捷地完成博客文章的写作、推送,然后交给 GitHub Actions 完成静态博客自动构建(没错,我把慢吞吞的 Travis CI 换掉了)。 MWeb 作为一款非常优秀的 iOS/macOS 端 MarkDown 编辑器,其内置了强大的图片上传功能(也就是俗称的“图床”),可对接许多知名图床平台的 API 以及各大云计算平台的对象存储服务,写文章时可快速插入图片,省去了手动上传的过程。 最近我吃饱了撑的把博客的图片全部从腾讯云 COS 迁移到了 GitHub,并使用 JsDelivr CDN 进行全球加速,然而从上图中可知 MWeb 并未提供 GitHub 的图床接口,这可咋办呢?经过一番摸索,我找到了这个我自认为还不错的解决方案。 前言 首先需要声明的是,关于能否使用 GitHub + JsDelivr 作为图床(即是否有违 JsDelivr 的用户协议)目前仍存争议,我个人认为作为开发者合理使用是没有问题的,但坚决反对滥用行为(指作为个人网盘、作为下载站等行为)。 关于 MWeb 如何与 GitHub 联动的问题,其实并不是只有我一个人遇到了,在我写这篇文章之前就已经有人给出了解决方案,但是不能很好地满足我的需求,所以我就又写了这篇文章来记录。 实现思路 MWeb 虽然不支持直接添加 GitHub 图床,但是提供了「自定义图床」的选项,设置页面长这样: 根据这个页面可知,MWeb 通过 POST 请求把图片发送到自定义图床接口,图床接口返回图片上传的成功与否以及图片的相对路径或绝对路径。而 GitHub API 接口需要使用 PUT 方法上传文件,因此不能直接拿来用。 上文提到过的这篇文章给出了思路,即通过搭建一个类似于桥接器的服务,将 MWeb 发过来的 POST 请求转化为 PUT 请求再发送给 GitHub,就可以很好地解决这个问题。美中不足的是,该方案需要在本机上开机启动跑 Node.js 服务,而 iPad 根本就不可能做到,而且图片是直接传到根目录的,不符合我按日期分类的习惯,且返回给 MWeb 的图片链接是 GitHub 原始的绝对路径。 好在我又想到了 Vercel(貌似已经是第二次登场了23333),直接写个 Function 丢上去跑着就可以不用本地跑 Node.js 了,至于图片上传的目录可以通过修改代码实现,用 Moment.js 按日期分类图片,返回的路径也可以修改代码让其返回相对路径,最后由于服务是跑在远端向所有人公开的,所以需要设计一个鉴权流程防止仓库被别人恶意传图。 代码编写 由于整体框架和这篇文章差不多,我就直接 Fork 过来用了,省得造轮子。 (下文提到的代码都放在这个仓库) 首先要适配 Vercel,遂建立/api目录,把原本位于根目录下的index.js和helper.js挪动至此,修改index.js中的路由,同时不能再把配置写在文件里了,应当直接从环境变量中读取。 在index.js中: 在helper.js中: 为了实现按日期分类,同时图片随机命名,需要修改upload.js中的相关代码。 同时需要使其返回相对路径而非 GitHub 原始绝对路径。 最后加入鉴权机制,即校验 POST 请求中的 SECRET(通信密钥)字段是否与环境变量一致: 至此就已经基本完成改造了,推送部署到 Vercel 上,在 MWeb 中可以添加自定义图床进行测试。 点击「验证设置」,成功! 最终效果 参考链接 "},{"title":"【项目发布】Bilibili-Bangumi-JS","date":"2021-02-13T15:26:00.000Z","url":"/post/bilibili-bangumi-js/","tags":[["Web","/tags/Web/"],["追番","/tags/%E8%BF%BD%E7%95%AA/"],["Serverless","/tags/Serverless/"],["Vercel","/tags/Vercel/"]],"categories":[["项目发布","/categories/%E9%A1%B9%E7%9B%AE%E5%8F%91%E5%B8%83/"]],"content":"var meting_api='' 📺 Render your Bilibili bangumi progress on a static web page 一个基于前端 + Serverless Function 的 Bilibili 追番进度展示页面。 GitHub: 前言 (只有这段不是照搬 README.md 的(逃 大概是两年前写过一个名为 追番列表展示 API 的辣鸡 PHP 小程序,写得贼烂,然后功能没写完就烂尾了2333后来忘了在哪里说过要用 Javascript 重构一下,结果也不了了之 然而这次寒假我居然把它肝了出来!于是就有了这个 Bilibili-Bangumi-JS!(虽然依旧写得很烂但是比之前那破玩意儿强大多了) 起源 如今许多博客主题都附带有追番展示页面,并且也有实现这一功能的相关插件,然而这些主题/插件多为基于 PHP 的博客程序(如 Wordpress、Typecho 等)设计,像我这种 Hexo 用户就只能哭了。 受制于静态博客的特殊性,尽管前端可以通过 POST 请求 Bilibili API 获得特定用户的追番列表,但无法得知用户的观看进度,除非 POST 请求中带上对应用户的 Cookies。然而众所周知,将 Cookies 这种敏感信息光明正大地写死在前端页面中是十分危险的,所以依然需要有一个后端程序来处理这件事情。 后端程序的运行离不开独立的服务器,然而静态博客用户们本就是为了节约购买服务器的费用才选择前端静态页面托管服务(如 Github Pages 等),于是我想到了 Vercel Serverless Function,提供了后端程序的运行环境及一定的免费配额,搭配前端页面就能够完美实现这一需求。 所以,就有了这个项目啦 😃 Demo 特性 适用于 Hexo、Hugo 等无后端静态博客程序及静态网页。 利用 Bilibili Cookies 实现持久化登录,实时更新追番进度。 后端专为 Vercel Serverless Function 设计,无需独立的服务器即可运行。 敏感信息(如 Cookies)存储于 Vercel 后端环境变量中,无需担心前端隐私泄露。 安装 安装分为后端安装和前端安装两步,均需要完成。 后端安装 方案一:基于 Vercel Serverless Function Fork 本项目。 前往 Vercel 官网注册或登录。 在 Vercel Dashboard 中点击 New Project,授权 GitHub,选择账户下 Fork 出来的本项目,点击 Deploy 完成部署。 点击 Vercel Dashboard 上的本项目。 点击 Settings > Environment Variables,添加新的环境变量,选择 Secret 类型,变量名为COOKIES,内容为你的 Bilibili Cookies(获取方式:Chrome 中登录 Bilibili 账号,按下 F12 > Application > Cookies,找到SESSDATA,对应的值即为 Cookies)。 记录下 Vercel 分配的 Production 域名(如 bilibili-bangumi-js.vercel.app)。 方案二:自建服务器 Clone 本项目。 安装 NodeJS 环境(包括 NPM)。 运行npm install安装依赖。 设置环境变量COOKIES为你的 Bilibili Cookies(获取方式:Chrome 中登录 Bilibili 账号,按下 F12 > Application > Cookies,找到SESSDATA,对应的值即为 Cookies)。 npm start即可将服务运行在localhost:3000,自己想个办法让它保持在后台运行着就可以了。 解析一个域名到服务器,当然你也可以用 IP,需要 SSL 的话可以再搞个反代。 前端安装 方案一:直接引入 在需要添加追番列表的页面中直接引入 CSS 和 JS。 上面的代码使用了 JsDelivr 的 CDN 加载了相关资源,你也可以下载本项目dist文件夹中的编译好的 CSS 和 JS 进行引入。 引入完成后在页面中需要添加追番列表的地方添加一个容器: 方案二:静态博客插件 Hexo 用户请参阅 hexo-tag-bilibili-bangumi。 Hugo 等其它静态博客用户再等等吧,欢迎好心人开发其它博客的插件。 感谢❤️ jquery/jquery - 本项目中 JS 的前置依赖 BigCoke233/Miracles - 提供了解析 Bilibili API 返回数据的思路 Red-Asuka/bilibili-bangumi-api - 提供后端实现 AlanDecode/PandaBangumi-Typecho-Plugin - 提供前端 CSS 原型 SukkaW/DisqusJS - 提供示例页面的 CSS 样式 "},{"title":"2020年终总结","date":"2020-12-31T14:49:27.000Z","url":"/post/2020-annual-report/","tags":[["年终总结","/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''现在是2020年12月31日晚八点,我刚刚上完课回到家,也算是赶上2020的末班车了,终于能在新的一年开始之前动笔写下这篇年终总结 2020年,曾经听起来充满科幻感的年份,眼看着就到了最后一天,心里说不出的感觉。 如果要用一个词来总结2020年的话,我觉得可能是「魔幻」,感觉好像做了一场大梦,一觉醒来浑浑噩噩就到了年末,前半年所经历的一切都只剩下了模糊飘渺的印象 时间真的可以冲淡一切,也许多年以后,我就将彻底丧失关于这一年的所有记忆,只剩下零星的碎片,以及那个所谓的「正确的集体记忆」 幸好,我还有我的博客,还有 Twitter 和 Teleblog,我得以穿越时空的界限去重温这一年,去重拾那些记忆,也勉强对抗一下这「正确的集体记忆」,这或许也正是独立博客存在于这个时代中的意义与价值 那么就来回顾一下这一年的点点滴滴吧 回顾 2020 Blog / 博客 去年写年终总结的时候才发现网页根本没放 Google Analytics 的统计代码,今年终于有数据了,果然又是惨淡的一年呢( 今年一共发了15篇文章,竟然和去年一样诶w (感兴趣的可以点开博客的「归档」页面进行阅读) 就文章构成上来看,生活类的文章较去年少了很多,周记已经退化为半年记,确实由于今年要忙碌不少,再加上咱咕咕咕的本质,关于生活的一些记录已经转移到了 Teleblog 和 Twitter 等社交平台上,你可以在博客的「关于」页面找到我的社交平台账号哦w 评论方面今年新增有效评论共计20条,比去年又要少很多,不过这倒是次要的啦,毕竟能在茫茫互联网中有自己的一片小地方写点东西就足矣~ Life / 生活 先列个表把每个月主要的事情都罗列一下吧 月份 事件 1月 高一上期末考,放寒假 2月 寒假,疫情爆发线上学习 3月 线上学习 4月 线上学习 5月 线上学习,返校上课 6月 返校上课,确定高考选科 7月 返校上课,地理生物合格考 8月 放暑假,合格考通过 9月 进入高二,在校上课 10月 在校上课,CSP-S1 11月 在校上课,CSP-S2 12月 在校上课,NOIP,地理生物一模 其实看表也能看出这一年的生活还是挺枯燥的,就是没完没了的学习上课,拼命赶各种 deadline,打 OI 都成了一种放松 睡眠时间也在越来越少,不知道到了高三会怎么样,我这还算睡得挺多的的,班里很多人现在都是每天只睡三四个小时的那种,大家都在拼命地内卷,真的给人一种恐怖的焦虑感 也正因如此,这一年的娱乐活动少了很多,歌只是前半年在家的时候听听,原计划今年要补的番也没空补,或许要等到高考考完了 Studying / 学习 大概是这一年里干的最多的事情了吧(笑 关于高考选科,我最终选了物理地理生物,因为地理生物高考是提前考掉的,也就是明年(2021年)5月我将会参加地理生物的高考,所以这种选科模式可以稍微减轻一点高三的负担,但是高二会比别人要累很多 然后今年12月进行了地理生物的一模考,生物稳拿 A+(等级赋分制的满分),地理压着线非常危险地拿了 A+,真的是深刻感受到了现在竞争的激烈,有种不进则退的感觉,不能吃老本了 虽说一模拿了双 A+但是我心里还是很虚的,真的还要继续加油,不然谁也说不准最后会拿到什么等第(“毕加(B+)索”,“比(B)翼(E)双飞”,“迪迦(D+)奥特曼”也不是没有可能啊) OI 上拿了今年 CSP-S 第一轮二等奖,CSP-S 第二轮一等奖,NOIP 二等奖,一年多的 OI 生涯总算有了回报 现在是退役了,专心回归文化课了,当然明年还会去再打一场,留个纪念 展望 2021 也没啥希望的,也不打算像去年那样列一个长长的计划单了,毕竟新年愿望嘛,终究只是美好的愿望,我可不想再插满 Flag 就希望自己能继续脚踏实地努力吧,5月的地理生物高考争取拿个好点的等第,然后身体健康,能够和大家一起卷下去,就酱 不要忘记 在犹豫要不要写这些危险发言,终究还是决定隐晦地写一下吧( 2020年是不平凡的一年,我希望我们都能记得这一年发生的一切,不要忘记那些吹哨人和逆行者傲岸的风骨,不要忘记这场疫情、这场灾难带给我们的苦难与惨痛的教训,无论通过何种方式,都要铭记住这一切,毕竟谁知道又一个17年后会发生什么呢? 感谢你们 无论你是通过什么方式看到这篇文章,我都特别感谢此时此刻正在读这篇文章的你o(≧v≦)o 自2017年底起,我的博客已经走过了三个春夏秋冬,这离不开每一位访问者的支持,给予我继续写下去的动力 新的一年,也要常来看看呢~ 尾声 最后,祝大家2021新年快乐(≧▽≦)/ Hans362 's Blog,三周年快乐~"},{"title":"NOIP 2020 游记","date":"2020-12-19T14:17:52.000Z","url":"/post/noip-2020/","tags":[["OI","/tags/OI/"],["游记","/tags/%E6%B8%B8%E8%AE%B0/"],["NOIP","/tags/NOIP/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''这是篇迟到了两周的游记,因为考完 NOIP 后我这个苦逼的文化课选手又去准备地理生物一模了,一模考完后的这个周末才开始肝这篇游记qwq 这是我人生中第一次参加 NOIP(去年的那个 CSP-S 不算的话),或许也将是最后一次或者倒数第二次(如果条件允许的话高三可能还会去打一场), Day 0 晚上上完课回家已经快八点(文化课选手的痛),恰完饭也没啥心思写文化课作业了,拿出 iPad 随便看了看 OI-Wiki(不得不说这真是个好东西),复习了一些板子,然后签了一堆承诺书,打印准考证和健康码,之后大概十点多就去睡觉了 Day 1 考场继续在自己学校(爽) NOIP 是早上 8:30 考到下午 13:00 一共 4.5 小时,我大概7点起床,吃完饭去便利店买了两块巧克力(虽然后来也没吃),七点四十左右到了学校 继续熟门熟路到了一楼角落的实验室,准备开台电脑暖暖手(雾),然而我来得太早了,又没带门禁卡,就只好在外面等着(冷死了)我还成功地把别的学校的选手带偏了,跟着我走了过来,特尴尬 过了一会儿终于来人了的,然而大家都以为别人会带门禁卡,所以就都没带…(太草了ww)这时候一个高一小朋友来了,他刷卡开了门,我们刚想跟他进去,结果他很快啊!砰地把门一甩,把我们锁外面了… 我们一群人在外面目瞪口呆,他大概是把我们当成别的学校的选手了,我们敲窗户他也不理…😂最后是大佬去校门口找教练拿了卡开的门 比赛前按理来说稍微看看模版,放松就行,然而我们机房的几个人一个在打线段树,还有几个人在现学快速幂…我也跟着背了下快速幂的板子(虽然最后压根没用上 时间差不多了就上楼进机房,监考竟然是劳技老师(一个月前劳技课学 Arduino,因为我没有用 Scratch 直接开了 IDE 写代码,然后劳技老师知道了我是搞信竞的,对我说了句“加油~”,好开心) 然后就是公布密码,解压试题,密码顺利一次输对~ 拿到卷子把四道题都看了一眼,还是 T1 比较简单,打算至多一小时切掉 T1 思路是邻接表建图(或者用 vector),BFS 直接模拟即可,然而比较坑的是结果要用既约分数表示,我先花了半小时写了主要的代码,结果先用双精度浮点数存储,把样例输出的分数化成小数三个样例测下来都过了,接着开始写分数运算的部分 这时我突然发现涉及到我的知识盲区了,一个连小学生都会的数学问题我竟然不知道怎么做,那就是如何求两个数的最大公约数(GCD)?我只知道有欧几里得算法(也叫辗转相除法),但是具体应该怎么辗转相除我完全不清楚,我顿时傻眼了… 没办法,硬着头皮上了,我开始在草稿纸上举例子找规律,打开电脑上的计算器噼里啪啦地各种除,终于花了近半个小时找到了规律… gcd(a,b)=gcd(b,amod b)gcd(a, b) = gcd(b, a \\mod b)gcd(a,b)=gcd(b,amodb) 然后就是边计算边约分,结果化为既约分数输出,正当我以为万事大吉,一测发现样例3莫名其妙爆炸了,确切地说是程序直接异常退出(返回值非零) 我一看时间已经过去一个多小时了,T1 还没搞定,决定先放一放做后面的题 于是我看中了 T4 的前30分,直接暴力开搞,半小时后确认到手 接着我看了 T2 和 T3,T2 字符串没啥思路,也没太敢搞暴力,于是开了 T3 T3 貌似是 NOIP 史上第一道开启 Special Judge 的题目,给了校验器(我乍一看还以为重大事故造数据的标程忘记删了😂),允许多种答案,只要符合题意均可,我点开了答案校验器 checker.cpp 看了看,代码当然是都混淆了,可读性为零 读完题莫名感觉有点像汉诺塔问题,于是就默认它是一道动态规划(往年不都是考4道动归的嘛,今年四道只有 T3 最像了),然后我就开始尝试划分阶段和状态,推状态转移方程,结果浪费了一个小时啥也没推出来…决定 DFS 暴搜开搞,结果搜索写完发现程序自循环了,然后我突然意识到它会把移动过的球移回原位,结果当然会陷入死循环…然后我 DFS 也没思路了,此时距离比赛结束还有一个半小时 考虑到 T2 即使暴力写完撑死拿个30分,况且还没什么思路,不如去把 T1 debug 一下把分拿满 然后我花了近一小时才发现大样例会爆int,导致后面gcd出现问题,程序异常退出,遂给数组开了 long long,成功通过样例3 期间我到处注释掉代码看运行结果(没办法,不会gdb调试),这间接地导致我最后痛失30分 最后半小时就很尴尬,开 T2 应该是来不及了,于是打开 NOI Linux 虚拟机把代码都跑了一遍,仔细检查了 freopen,检查了 printf 输出 long long 用的是 %lld,检查了 return 0,时间差不多就提交走人 考完出来才发现巧克力没吃,也没觉得饿,回家路上吃掉了,预估分数是100+0+0+30 回到家看到 Vuq 群里在讨论 T1,然后有人说 long long 存不下,要写高精度,我心里慌了,不过想想应该不会卡太多点,顶多被卡掉20分 接着群里有人说入度为0的点貌似不一定恰好为m个,应该取前m个作为入水口,我赶快调出题目仔细一看,还真是!如果 CCF 愿意的话我会被卡成0分,完蛋了,唯一一道会做的题也要爆零了(哭 好在群里有出题人,说帮忙问了,确认会保证测试数据满足入度为0的点的个数等于m,这样一来我应该只会被卡高精度,谢天谢地 接着 OITIKU 民间数据造好了(这家伙到底什么来头,每次数据都造得飞快),一测90+0+0+30,心里踏实一些了 Day 2 一早起来有洛谷数据了,测下了也是 120pts,但是其他人都好厉害,人均130,我垫底了 用 NOI Linux 跑了全省的代码,民间数据测下来我已经180名开外了,心凉了 2020.12.8 万万没想到 CCF 效率如此之高,没过几天就出分了,这天下午社团活动碰上教练,教练说出分了你知道吗,然后把手机给我看,我一看心里瞬间拔凉拔凉的,挂分挂到只有90pts,真的是垫底 一看 T1 60pts,我 TM 花了那么久过的大样例都白做了,LCM 要先除后乘才能拿90pts,我这时才想起来我一开始是先除后乘的啊,后来调试的时候把这里注释掉了,重写想着没区别就写了先乘后除,然后分子就爆了 long long 大佬在边上安慰我说“唉,大家都挂分了,这数据区分度就离谱” CCF 不愧是“用心造数据,脚造大样例”,居心叵测啊… 后面几天真的是难过,后悔死了,如果当时我开了 T2 写出了暴力可以拿48pts,加起来就有120pts了 2020.12.15 出分数线了,上海因为低于全国基准线,二等线由95pts降分至60pts,成功地让我挤了进去 然后120+才有一等,所以我们学校一堆的二等,一等就3个人,其中两个都是高三的,这区分度就离谱 不正经的总结 欸 我一输密码他啪一下就解压了 很快啊 然后上来就是 一个DAG 一个字符串 一个走路人 我全部打出来了啊 打出来以后自然是 传统题目以long long为止 unsigned long long放在他鼻子上 没打他 我笑一下 准备收拳 因为这时间 按照传统功夫的longlong为止 我就过了 如果我这T2 HASH一开 一下就把他题目做出来了 放在这题目上没卡常 他也承认 我先这道简单题 他不知道我T2 O(Tnlogn)放在他鼻子上 他承认我先打了T1啊 我测完样例的时间不打了 他突然袭击高精度来打我脸 啊 我大意了啊 没有闪 欸 他的高精度给我T1 给我T1蹭了一下 但没关系啊 他也说 他结束也说了 考完试以后 当时流眼泪了捂着眼 我说退役 然后两分钟以后 两分多钟以后 就发现T2也挂了 我说出题人你不讲武德你不懂 他说对不起对不起 我不懂规矩 啊 我是 他说他是乱出的 他可不是乱出的啊 高精度 字符串 构造题 训练有素 后来他说他出过三四年题啊 看来是有备而来 这两个出题人 不讲武德 来 骗 来 偷袭 我要退役的 老同志 这好吗 这不好 我劝 这位 出题人 耗子尾汁 好好反思 不要再犯这样的聪明 小聪明 啊 额 OI要以longlong为贵 要讲武德 不要搞 高精度 谢谢朋友们 ——Parabola的回答 - 知乎《如何评价NOIP2020?》 正经的总结 不管怎么说今年的 OI 系列赛事都结束了,难过也好,后悔也好,都是过去的事情了,应该说我高中阶段的 OI 生涯也就到此为止了,换句话说,我退役了 明年或许还会来打最后一场,但是不会花太多精力在 OI 上了,要准备明年5月的地理生物高考,终于要告别短暂的 OI 生涯,回归正轨了 我永远不会忘记一年多以来,每周一的晚上在机房上课刷题的时光,每次打完比赛凑在教练的笔记本前紧张又期待地等候着测评结果,一次次模拟赛中我从一开始的爆零,再到有分,最后到拿到100+,以及一楼小角落里的实验室,那属于 OIer 们的小天地 也很感谢教练把我从啥也不懂的白痴教到了啥都会一点点的白痴,据我所知别的学校信竞都是不收初中没有参加过的新手的,真的很感谢教练每周都无偿给我们上课,和我们聊天,给我们建议 一年来也捞到了两个奖,在 NOI 官网上留了名,在 OIerDB 中留下了记录,成为了真正的 OIer OI 在目前的教育环境、升学政策下愈发显得卑微和无用,信息学竞赛的发展正走在下坡路上,它已经失去了曾经的繁荣,但是,抛开那些功利的不谈,OI 真的能给一个人带来很多,如思维方式的培养、问题解决能力的培养等等,这些都是受益终身的能力 正如我一直坚持认为的那样,搞 OI 真的只是因为我真真切切地热爱它,仅此而已,我不指望它能对于我的高考升学带来什么实质性的帮助 一片树林里分出两条路,而我选了人迹更少的一条,因此走出了这迥异的旅途。 与所有的 OIer 们共勉"},{"title":"2020 CSP-S 复赛游记","date":"2020-11-08T14:17:52.000Z","url":"/post/2020-csp-s-2/","tags":[["OI","/tags/OI/"],["游记","/tags/%E6%B8%B8%E8%AE%B0/"],["CSP","/tags/CSP/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''好久不见,距离上一次的 CSP-S 初赛游记又是一个月啦~ 昨天,也就是2020年11月7日,我刚刚考完了本年度的 CSP-S 第二轮,几句话简单总结一下就是: 1582年的10月竟然只有212121天?天文学家又为何需要计算10910^9109天后的日期? 动物园竟然饲养着2642^{64}264种动物?10810^8108种饲料又从何而来? 数据库软件竟内置了10510^5105个函数?又为何频频无响应? 决斗场上为何会有10610^6106条蛇?蛇又是为了什么而互相吞食? 为何选手出了考场都口吐芬芳,甚至想要亲切地问候 €€£ 外公的女儿? 为何全网都在寻找 T1 的出题人,想要和 TA 面基? 为何 €€£ 今年不考 DP?为何正式比赛变成了真•模拟赛? 组题人(不是错别字)又究竟受何打击?竟这样报复社会? 这背后究竟是人性的扭曲,还是道德的沦丧?请继续阅读本文( P.S. 去年复赛滚粗记请移步:2019 CSP-S 复赛滚粗记 Day 0 因为今年 NOIP 恢复,CSP-S2 并不是最后一轮,学校不给停文化课,所以国庆集训之后就没怎么准备这次复赛了,导致我心里很慌 复赛前两天学校里又刚考完期中考试,身心俱疲的我还没好好休息第二天就去考复赛了 然后今年的复赛终于不用去长宁科艺了,自己的高中就是上海今年四个认证点之一,而且我被安排在我平时刷题的机房,监考老师就是自己的教练(狂喜 电脑是自己熟悉的 Windows 7 环境,而且有货真价实的 NOILinux 虚拟机!(狂喜x2 考试前一天晚上看了几眼板子(结果凡是我看了的一个都没考到),想起去年 D1T1 的格雷码就又去 OI Wiki 上认真复习了一下二进制,没想到我真的押中了,今年 T2 就是二进制、位运算相关的~ Day 1 上午还要在外面补文化课(累),上完课看了眼上午普及组的卷子,刷了刷灌水区,发现普及选手一片哀嚎…我预感下午不妙(果然… 下午提前一小时到自己学校,看到别的学校的选手都站在考场外等候,我熟门熟路地走到一楼角落的实验室,开了台电脑边等边摸鱼(这大概就是在自己学校的好处23333)然后大概两点十分就到楼上去考试了 到了两点二十五公布解压密码,我们考场竟然是手写在白板上的…应该学学人家长宁科艺,直接用极域发下来多好,都不用自己输 今年的 S 组的密码是“可以攻玉”的拼音中间穿插了“2020”,左右两边还有英文括号,中间的0oO、1lI手写在白板上完全分不清啊喂😂好在老师帮我们把各种情况都试了一下并注明清楚了,我密码一次输对 然后就是解压建文件夹一气呵成,开始读题… T1 儒略日(julian) 题还没读完我就开始脊背发凉,倒吸一口凉气… 没错,是我最害怕的大模拟,它出现了! 所以 €€£ 为啥要在短时赛里搞一道大模拟呢? 由于看了 T2、T3、T4 感觉都不可做,我决定先肝这道大模拟,争取把它切了 首先想到的模拟思路是 Month-By-Month 进行模拟,用yearyearyear和monthmonthmonth分别记录年月,然后按要求模拟,注意各种特殊条件判断(比如闰年啊,公元前1年的后一年是公元1年之类的),处理好进位 写完+调试完就花了我一个小时…测完样例1和2后我还暗暗窃喜,以为就这样切了,没想到样例3超时,而且超的不是一点点 没办法,我打算继续优化,我突然灵光一闪,都 Month-By-Month 了为啥不 Year-By-Year 呢?于是又开始写+调试,又过了半小时,一测发现样例3继续爆炸,此时我的内心是崩溃的… 后来又想到公元后的日期可以从公元1年1月1日开始推,只要把rrr减去172142417214241721424(公元1年1月1日的儒略日),然而样例3还是超时 这时候突然想到了二分,但是一看距离比赛结束还有2小时,我果断先放弃,去做别的题(后来考完发现还真的可以二分 T2 动物园(zoo) 考试前一天晚上专门看了二进制相关的内容,真的派上用处了 赶快先默写了getBit()、setBit()、unsetBit()三个函数,看到涉及到2n2^n2n就先打了个表,用 unsigned long long 数组存储,然后就开始朴素的暴力模拟。先按照题目意思生成饲料清单,然后循环000至2k−12^k-12k−1判断每种动物所需要饲料在不在清单里,在的话就计数器自增,最后输出计数器的值减去已经有的动物的数量 测了一下依然只过了样例1和2,样例3超时,算了一下时间复杂度是O(2k∗m)O(2^k*m)O(2k∗m),必超时 然后尝试想了十几分钟正解,也没想出来…就放弃了 T3 函数调用(call) 这题实在没啥思路,尽管看到数据范围里的特殊情况我就联想到了这题和树应该有点关系,但是也想不到正解 那就继续暴力模拟吧…继续过了样例1和2,没过样例3 问题就在于我一不留神数组开大了,当时也没算没发现,考完后发现了为时已晚,整道题抱零了TAT T4 贪吃蛇(snakes) 显然不可做,以为是 DP 然而也没看出是啥类型的 DP,完全没思路 好在看到了数据范围里有20%20\\%20%的数据是n=3n=3n=3,还是可以直接模拟做的,所以就打算骗到这个20分走人 四道题这样过完还剩下二十分钟,我又看向 T1,突发奇想能不能打个表?然后我就傻乎乎地开始打,然后逐渐意识到完全不现实啊喂,这么大规模的数据打表出来怕不是要有29TB,不仅时间不够硬盘也存不下更不可能交上去啊,浪费我十分钟 最后十分钟就啥也不干了,检查了freopen防止抱零,开了 NOILinux 虚拟机把程序都跑了一下,确认没有问题,到了晚上六点半准时提交了代码,最后签字走人 出了考场碰到了和同学汇合,然后大家开始不约而同地吐槽 T1 搞人心态,吐槽组题人 T2 明明比 T1 更好做为啥放在后面,有大佬说自己应该200pts稳了,我这个苣蒻瑟瑟发抖,我怕不是又像去年那样连50pts都拿不到,哭😭 2020.11.8 一大早搞到了自己的代码,开始用各大平台的民间数据自测,各平台之间分数都差不多,比我预想的要好一些 T1 50-60pts TLE(想尽各种办法优化还是超时) T2 40pts TLE T3 0pts MLE(数组开爆直接整题零分,哭晕) T4 20pts WA(本来就是冲着20%的数据去的,还行) 总之大概就是110-120pts,至少我不是去年那个只拿23pts的废物了,也算心安了,这分数可能有个3=吧,2=应该别想了,希望 €€£ 的数据不会太毒瘤… 关于 €€£ 所谓的成绩优异者可进入 NOIP,也不知道复赛要达到什么水平才能进,希望只要没抱零都可以进(老希望工程啦 2020.11.17 终于出成绩啦~(原本说好16号的结果 CCF 咕咕咕了…害我白紧张一天 官方成绩120pts,比洛谷民间数据高了10pts,也比学校的 NOILinux 官方数据测评结果高了10pts,应该是 CCF 换了少爷机让我 T1 多过了一个点,€€£ 收了那么多钱总算办了点好事( 虽然排名还没出来但是据教练说今年 SH CSP-S2 一等线不到 200pts,所以 120pts 应该有个2=吧qwq也算是对自己一年努力的回报了 2020.11.20 顺利入围 NOIP 2020,竟然只要 2020 CSP-S2 没有爆零就能进😂毕竟 SH 有将近 13\\frac 1 331 的选手爆零 接下来又要开始准备 2020.12.5 的 NOIP 啦…但是12月又是地理生物一模考(地生双选的痛苦),唉,又要忙死了 希望能在退役前的最后一场比赛拿个好看点的奖,加油吧…到时候会再写一篇游记的~ 总结与反思 应该说这次比赛算是出其不意的那种,复习了好久的图论和 DP 一道也没考,尽管整体难度不及去年,但个人感觉还是并不好做的 然后就是写给自己下次 NOIP 和算法竞赛需要注意的(如果没有 AFO 的话): 一定要养成直接写scanf和printf的习惯,这次全程cin和cout最后来不及改了 想清楚了再动手,避免写完一遍推翻重来 注意计算空间复杂度,别再开爆数组了 最后希望大家都能在 2020 CSP-J/S 取得好成绩,顺利进入 NOIP~"},{"title":"2020 CSP-S 初赛游记","date":"2020-10-11T14:17:52.000Z","url":"/post/2020-csp-s-1/","tags":[["OI","/tags/OI/"],["游记","/tags/%E6%B8%B8%E8%AE%B0/"],["CSP","/tags/CSP/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''最近事情是真的多,拼命赶各种 Deadline 准备各种考试都好久没更新博客了,总之等我哪天有空了再发一篇周记说说近况吧 那么这篇文章是我在2020年10月11日参加的 CSP-S 初赛的游记~ 去年初赛游记请移步:2019 CSP-S 初赛游记 Day -9~0 首先要交代一下概况~由于去年全国考生一起在初赛的时候把 €€£ 的老爷机搞挂了,所以今年 SH 初赛干脆就不上机了,题型不变依然全选择,改成填涂答题卡,这也就意味着没有 DEV-C++ 和计算器可以用,读程序写结果以及完善程序的难度增加了… 同时今年初赛 SH 也不设置统一认证点了,所有选手干脆就在自己学校考初赛,由本校老师自行监考,但是要提交考场全程的监控录像(感觉这样搞有点水分啊,万一哪个学校提前录好呢… 然后就是今年 NOIP(免费) 虽然恢复,但是参加 NOIP 的先决条件就是在 CSP-S 复赛(去年¥480)中取得优异成绩,而参加 CSP-S 复赛的先决条件就是达到初赛(¥50)分数线…所以 €€£ 为了收钱真的是…把一个比赛整成这样,相当于今年10月开始一个月考一次,在期中考试的时候考复赛,地理生物一模的时候考 NOIP(文化课选手表示很苦恼😖 国庆在学校集训主要准备了复赛,然后刷了套去年某机构出的初赛模拟,做完整个人都不好了…虽然在 SH 初赛 60+ 妥妥地能进复赛 考前前一天刚考完月考,晚上在家里刷了洛谷出的初赛模拟,事实证明我的决定是对的,洛谷押中了几道题~(洛谷,yyds! Day 1 上午9:30开考,因为在自己学校,所以我睡了个懒觉,9:00到校,考场用的是录公开课的教室,因为也就这教室里有一整套录像设备 监考老师就是自己的信竞教练,我刚要从包里拿准考证,教练笑着说说“别拿了,都是自己人,我看脸就行了”🤣 考场讲台上放了台 MacBook 前置摄像头对着讲台下的座位,上面开着腾讯会议,是全市的高中的实时画面,因为时间还早我们教练闲得无聊开始一个学校一个学校翻看着,貌似有个学校在机房里考还全部升板了…不知道有没有搞什么小动作 过了几分钟突然窗外传来“一,二,三,四”的声音…我突然意识到今天是高一的军训(因为疫情改在校内进行),没办法只能忍一忍了… 然后就是发答题卡、草稿纸、启封试卷,SH 应该全部是 A 卷,有一说一在自己学校真好,老师直接塞给我一大叠草稿纸,我可以放肆地用了233333 这里附一份 A 卷试题:试题链接 拿到卷子还不能答题,我先扫了一眼前15题单选,感觉都还挺好做的,然后发现洛谷押中了一道~ 开始答题后前十五题果然轻轻松松做完~感觉自己这一年没白学,做起来顺手多了,而且以前碰都不碰的数学题(其实就是小学生奥数题,什么数论、排列组合、抽屉原理什么的)现在也会做了,下面是我的解析,和官方答案对过了全对~(注意是 A 卷!) C 进制转换,常规题,信息合格考都会考 B 操作系统的功能,常识题,排除法就能做 B 常规题,信息合格考都会考,8×60×24×2048×1024×32÷8÷1024÷1024÷1024=908 \\times 60 \\times 24 \\times 2048 \\times 1024 \\times 32 \\div 8 \\div 1024 \\div 1024 \\div 1024 = 908×60×24×2048×1024×32÷8÷1024÷1024÷1024=90 B 纸上画个栈直接模拟即可 D 每个哈希函数把四个数字代入算一下,结果不重复就行了 B 01背包明显用动规,其它都是贪心 A DFS时间复杂度(洛谷押题) A 最多就是一边12个点另一边12个点,总共144条边 C 常识题,广搜用队列 C 数学题,3k+2=5p+3=7q+4=n3k+2 = 5p+3 = 7q+4 =n3k+2=5p+3=7q+4=n,一通暴算可得 n=53n = 53n=53 C 数学题,ai,i+1=10i,i∈N∗a_{i,i+1} = 10i, i \\in N^{*}ai,i+1=10i,i∈N∗,求个和 Si=10×(1+i)×i÷2S_i = 10 \\times (1+i) \\times i \\div 2Si=10×(1+i)×i÷2,令 Si≥1000S_i \\geq 1000Si≥1000 解得 i≥14,i∈N∗i \\geq 14, i \\in N^{*}i≥14,i∈N∗,所以应该爬到 i+1≥15i+1 \\geq 15i+1≥15 层(我校好多人忘记 +1+1+1 了) D 后缀表达式定义 B 画个图易得 16×9÷2=7216 \\times 9 \\div 2 = 7216×9÷2=72 D DijkstraDijkstraDijkstra 时间复杂度 O(N2)O(N^2)O(N2) C 常识题,香农,信息合格考都会考 正当我暗暗窃喜,接下来的阅读程序给我当头一棒TAT 第一题就傻眼了,再加上眼瞎没看到是 <n< n<n,第一小问就开始错 第二题看出来了是在找第k小(大?)的数,正好洛谷押中了,但!是!我把 O(n)O(n)O(n) 记成了 O(nlogn)O(nlogn)O(nlogn) 然后就悲剧了qwq 第三题字符串太 TM 恐怖了,两页的代码看得脑壳疼,也没看懂在干啥,瞎蒙瞎猜了好多 然后完善程序第一题还比较友好,都说了是贪心,按部就班做就是了,第一小问有点坑,我差点选了带除号的那个,后来看到 CD 选项突然反应过来 C++ 里两个整型之间的“/”是整除…(和向量平行的充要条件是 x1y2=x2y1x_1y_2 = x_2y_1x1y2=x2y1 而不是 x1x2=y1y2\\frac{x_1}{x_2} = \\frac{y_1}{y_2}x2x1=y2y1 类似,要把除变成乘) 第二题又是噩梦,仿佛回到了去年的那道状压 DP,位运算搞得脑壳疼,瞎蒙瞎猜了好多 总之就这样考完了初赛…官方答案估分73分,果然还是好菜,不过在 SH 这种弱省进复赛是没问题了~ 附:A 卷官方答案 总结 初赛考完下个月又是复赛,希望 rp++; 毕竟这次复赛要达到分数线才能参加真正的 NOIP,可别像去年那样炸得稀烂,不然我将失去可以说是人生中最后一次参加 NOIP 的机会了… 下个月复赛前打算暂时申请把文化课停个一周,考前抱个佛脚,争取要进入 NOIP 呢~ 最后祝 OIer 们都能早日 AK ~"},{"title":"年轻人的第一台软路由 - NanoPi R2S 开箱","date":"2020-07-10T12:23:26.000Z","url":"/post/nanopi-r2s-test/","tags":[["路由器","/tags/%E8%B7%AF%E7%94%B1%E5%99%A8/"],["软路由","/tags/%E8%BD%AF%E8%B7%AF%E7%94%B1/"],["NanoPi","/tags/NanoPi/"],["R2S","/tags/R2S/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''一直以来,家里的小米路由器3都在承受着它这个年纪不应该承受的痛苦,无论是 Samba 文件共享还是打印机共享或是某不可描述服务,全部都由 128MB 小内存的它独自默默承担 面对着黑心老板 Hans362 的压榨,它选择了通过减慢速度、频繁死机上不了网、多次掉盘丢数据等多种方式,成功地让我抛弃了它 更为致命的是小米路由器3作为一款所谓的“千兆路由器”,“千兆”居然指的是 WLAN 传输速率,而 WAN/LAN 口全部都是 100Mbps,这不是脱裤子放屁嘛🤔 (小米路由器3包装盒,确实写着千兆路由器,然而指的是 WLAN 速率,要你有何用?恕我直言,小米的路由器就垃圾,还是别碰比较好) 于是趁着这段时间有空,自己瞎入了一款 ARMv8 开发板,是 FriendlyARM 友善之臂的 NanoPi R2S,来开箱做个测评,顺便谈谈我是如何用它优化家里的网络的~ 为什么选择它? 之所以选择这样一款 ARM 软路由而不是 X86 软路由,主要是因为…穷😂 像 X86 的经典代表 J1900 基本上裸机不带内存条和硬盘都要300起步,家里也没有闲置的内存条之类的,加上内存和硬盘后根本承受不起,至于那些 X86 矿渣虽然便宜但是也不敢买,稳定性得不到保障 还有就算买得起功耗和噪音也是个大问题,家里人大概率也不会同意 而这款 NanoPi R2S 主要看中的是它小巧的外形、支持 AES 的处理器、1GB 的内存以及两个千兆网口(虽然一个是 Soc 直接引出另一个是 USB 3.0 转的),5V2A 的供电也确保了它功耗不会过高 需要注意的是 NanoPi R2S 没有无线功能,板载的 USB2.0 如果接上无线网卡网速惨不忍睹,因此需要自行准备一个无线 AP 购买和开箱 我是在在某宝上买的,单板¥155,听说这小东西发热量特别厉害,所以果断一步到位加了定制金属外壳,另外还加了一张16GB Class10 TF卡、一个读卡器以及一根 USB 线,一共¥279 至于 USB 供电头其实可以不买,从光猫的 USB 口上取电就可以了,别使用 5V/9V/12V 的那种自适应快充充电头就行 收到货有三样东西,分别是单板、配件和TF卡 开箱! 金属外壳做工很棒~还挺沉的~ 板子处理器是 RockChip RK3328,两块螃蟹🦀️网卡,一个TF插槽,一个 USB2.0 接口,一个 Micro USB 供电口(很想吐槽为什么处理器支持 USB3.0 却不弄个 USB3.0 的口子…) 组装过程很简单,装好后用 Etcher 刷个系统,因为想玩 Docker 所以刷了 Lean 大佬的固件 然后网线接到 LAN 口,浏览器输入 friendlywrt 就可以进入后台啦 网络大改造 先来看看优化前家里的网络拓扑图: 可以说是接得乱七八糟,硬生生被我划出三个网段(虽然可以互通但是很不方便),而且所有的连接最大速率都是 100Mbps,白白浪费了家里的 500Mbps 带宽 以下就是购入 NanoPi R2S 后我对家里网络的优化过程~ 设置旁路由 由于家里没有交换机,R2S 只有两个网口,而 AP(小米路由器3)所有端口全部为 100Mbps,因此我要把光猫上的几个千兆口也利用上,就只能组建旁路由了 旁路由其实并不是路由,严格来说应该叫做旁路网关,所有的流量会先到它那里走一遭再发往各处 具体的设置方法是先将电脑与 R2S 的 LAN 口连接,打开 LuCI-网络-接口,把除 LAN 之外的接口都删除 修改 LAN 接口,把 IPv4 地址修改成和上级路由(我这里是光猫)同一网段的 IP 地址,我这里光猫是 192.168.1.1 所以我把 R2S 设置成了 192.168.1.253,其余空自行填写,下图仅供参考,勿无脑抄写,写完切记只点保存,千万不要应用,不然就连不上 LuCI 了 同理修改如下两处设置,同样根据实际情况填写,不要直接照抄哦,填完也只点保存,千万不要应用 (把桥接去掉,并把原先的 WAN 口也就是 eth0 改成 LAN 口) (启用强制,配置 DHCP 选项) 最后前往 LuCI-网络-防火墙-自定义规则,加入这一句: iptables -t nat -I POSTROUTING -j MASQUERADE 然后保存并应用所有设置~ 此时拔下 R2S 上的网线,将光猫的一个 LAN 口与 R2S eth0 对应的口子相连,电脑连接光猫 LAN 口,进入光猫超级后台关闭 DHCP 此时应该就能上网了~输入之前设置的旁路由 IP 地址也能进入 LuCI~ 把小米路由器3 WAN 口连接到光猫 LAN 口,选择有线中继就可以做纯 AP 了,而且下面的无线设备也是在 192.168.1.X 的网段里的 于是新的网络拓扑图变成了这样: (注:由于 AP 没换所以无线设备的最大速率还是 100Mbps) 测个速 局域网测速结果:千兆跑满 电信测试结果:500Mbps 跑满 Speedtest.net 测试结果:500Mbps 跑满(因为某些原因显示成了 Google Cloud 某不可描述测试: 某不可描述测试x2:(用的是 WiFi 在 iPad 上测的…其实远不止这点) Docker 玩起来 LuCI 上有 Docker 的相关说明,安装教程配置好 Portainer 然后就好办了 于是我就跑了亿点点东西: (做下载机) (NextCloud 是好文明( (自己的 Git 仓库~弃用 GitHub 指日可待 (利用 HomeAssistant 将米家生态链产品接入 HomeKit) 除此之外还有 Samba 共享、打印机共享等 现存问题 并不是说 R2S 就很完美并且适合所有人,经过一段时间的使用我也发现它存在如下问题: 温度过高 没错,即使是使用金属外壳,一般情况下它的温度也会在50到70度波动,如果正在进行下载任务则有可能飙到80度,而高温对于 CPU 的寿命是有很大的影响的,这一点还有待改进 目前有一种金属外壳+风扇的方案应该说会比较好一点,可以考虑购入这种类型的(原装塑料外壳建议别考虑了,除非真的是极轻度使用) 小白不友好 如果你真的是个小白,对于一些基础的计算机网络知识一概不知,也不了解 OpenWRT 系统的使用和配置,那么奉劝最好别买~ 相反,如果你非常热爱折腾,同时正在寻求一款廉价的软路由,那这款就比较适合你~ 软件包不完善 软件生态还有待改进… 比如缺少 CUPS 打印服务相关的软件包,导致我不得不使用 Docker 来实现打印机共享 总结 那么总的来说还是很满意的,NanoPi R2S 解决了我一直以来的上网问题,附带的 Docker CE 也增添了很多有意思的玩法,至于能稳定使用多久就要留给时间去检验了~"},{"title":"MoeLink - 奇怪的内网穿透服务增加啦","date":"2020-05-31T09:12:01.000Z","url":"/post/moelink/","categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''或许各位已经发现,在我的博客顶部新增了一个“实验室”的菜单~ 正如博客的直白的命名方式一样,懒鬼 Hans362 决定给他的实验室取名为 Hans362 's Lab,开张几个月内已经拐骗来了很多 Server 酱( TA们共同承包了 oj.hans362.cn、rss.hans362.cn、nas.hans362.cn、ao3.hans362.cn 等多项服务,7*24小时卖力地为老板干活( 然而黑心老板 Hans362 认为TA们并不够累,因此决定加 大 力 度 继 续 压 榨(雾) 于是就搞了这个 MoeLink 内网穿透服务~(特别感谢 Akkariin 大佬的 SakuraPanel~) 前面说了那么多废话,其实就是手头有几台空闲的服务器,决定给大家搞一个 FRP 内网穿透服务~ MoeLink 是个啥 一个基于 FRP & SakuraPanel 的内网穿透服务 在这个 IPv4 地址面临枯竭、IPv6 又尚未全面部署完成的时代,对内网穿透的需求变得越来越大,也许是需要将家里的一台 NAS 映射到公网,又或许是需要通过 IPv4 连接到一台 IPv6-Only 的 VPS,又或许是在内网开了个 Minecraft 服务器需要和朋友联机,都可能需要使用到内网穿透服务,FRP 就正是一种内网穿透的工具 传统的 FRP 的多用户管理、流量带宽控制等功能较弱,得益于 Akkariin 大佬的 SakuraPanel,FRP 功能变得更加的强大和人性化 MoeLink 收费吗 遵循 Sakura License 的相关要求,MoeLink 不得进行商业化运营,因此内网穿透服务完全免费~ 线路不够免费加,流量不够签到领~ 但是为了保证用户的质量,避免服务器被滥用,MoeLink 实行邀请注册制,即注册时需要填写邀请码 邀请码的获得方式如下: 面熟的直接可以联系我 PY 一枚邀请码~(联系方式见“关于”页面)或者直接在本文评论区留下你的邮箱~ 通过爱发电支持我一下~发电一次就可以获得一枚邀请码了哟,不需要每月重复发电,收入仅用于域名的续费及服务器续命~ MoeLink 服务有保障吗 很抱歉,几乎没有… 毕竟所有的服务器都是我一个人在维护,加上经济能力有限,不一定能维持很久的运行 目前 MoeLink 已经有三台服务器在工作,其中最晚到期的一台将于2021.5.10日到期,不过我也会尽力添置新的服务器供大家使用的,尽量将这个服务维持下去 致谢 再次感谢 Akkariin 和他的开源项目 SakuraPanel,以及开源项目 FRP~❤️"},{"title":"周记#21 - 网课时代完结撒花~","date":"2020-05-16T12:23:26.000Z","url":"/post/weekly-21/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''2020年5月15日下午,伴随着最后一节线上地理课的结束,以及满屏的“完结撒花”、“周一见”、“要面基了”,网课时代终究成为了回忆(泪目😭 事实上,这篇周记其实在三月份的时候我就打算要写了,一直躺在草稿箱里咕咕咕到现在( 所以这篇周记主要是关于这三个月的网课生活~ 开端 大概是今年1月31日的时候就已经传出消息说上海开学要推迟了,后来确实也官宣了(只是没想到竟然能推迟到五月份) 然后呢,市教委搞了个叫做“空中课堂”的玩意儿,简单来说就是寒假里请了各大学校的名师紧急去录制了部分课程,并且给全市的 IPTV 和东方有线电视增加了12个频道用于上课,BiliBili 也成为了指定的在线观看平台 听起来似乎不错对吗?然而据我所知很大一部分学校根本不用这玩意(包括咱校),而是自行开设网课,因为“空中课堂”效果并不好,一课时的内容全部压缩在25分钟内,课程排得也非常松散,而且教师的水平参差不齐,只能作为保底措施 于是乎我校在众多网课平台中选择了钉钉这款国产毒瘤…🙄 说真的,Zoom 它难道不香吗?为什么要选择钉钉这种: 观看直播能占用 2GB 内存 直播观看时长数据误差大,明明全程观看却只统计了三分钟 直播过程中卡顿刷新重进会再次显示欢迎消息,让老师误以为学生刚来 iOS 端提交完一门学科作业后,点开另一门学科作业会显示作业不存在 iPad 端扫描钉钉电脑端二维码提示不支持扫码登录 交作业不支持直接文件上传,需要先上传钉盘再从钉盘选择作业 视频会议经常麦克风打开对方听不见,需要退出会议再重进 的软件呢?🤔 但是学校规定也没办法,只能暂时忍忍将就用着,为此我还特意把安装了钉钉的 iPad 的摄像头用胶布贴起来了,同时用了一台自身不带摄像头的笔记本电脑,鬼知道这软件会不会偷偷干什么呢 作息 总的来说比起平时在学校那真的是爽到了,早上第一节课7:50开始,这也就意味着我可以一觉睡到7:20 我校还算人性化,没有在线早自习、晚自习等毫无意义的操作,然后呢我们班的各科老师也都挺不错的,除了默写或考试之外都不要求开摄像头上课(别的班就不一定了…) 虽然作业依旧和正常在学校一样的多,但是课表排得比较宽松,上午只有3节课(50分钟一节),下午只有4节课(40分钟一节),4:45就放学了,再加上中午还有一个小时休息,作业正常情况下晚上九点多就做完了 所以我愉快地摸了三个月的鱼 故事会 这三个月发生了超多有意思的事情…我尽量一件一件说清楚(≧∇≦) 五五开复播(雾 这要从上个学期在学校里的一个梗说起… 咱班某位老师因为长相酷似某全网封杀主播卢某而被我们亲切地称为“卢老师”(说实话真的特别像),经常有同学开玩笑问他什么时候复播(神预言 后面的事情大家都知道了,因为疫情“卢老师”不得不被迫营业,网课第一天那叫一个壮观,满屏的 lbwnb 然后大概是三月份“卢老师”还被市教委请去录制了的“空中课堂”,可惜 BiliBili 空中课堂把弹幕和评论功能关闭了,不然估计场面要失控🤣🤣🤣 熊孩子大闹英语课堂 孩子不听话怎么办,英语老师做示范( 某天英语网课上到一半,突然听到老师那边传来隐隐约约的哭声,估计是她的孩子(还很小)没人陪哭了,但是她假装没听见,继续镇定自若地讲题目 然而熊孩子怎肯善罢甘休,只听见他哭得越来越响,并且哭声开始逐渐压过老师讲课的声音,真的佩服老师在这种情况下还十分淡定地逻辑清晰地继续讲着,直到熊孩子推门进来的那一瞬间,熊孩子彻底爆发了,那哭声简直撕心裂肺、响彻云霄,耳机党差点离开了这个美好的世界😇 于是英语老师不得不当着我们的面花了十几分钟对熊孩子连哄带骗,孩子才终于不哭了 然而这事还没完,为了防止熊孩子再次爆发场面失控,老师干脆就让孩子待在她身边,于是好玩的事情发生了,咱班某位男同学在回答问题时,熊孩子突然开口问老师: “这不是爸爸的声音吗?” 全场一片寂静…所有人都很尴尬… 嗯?这位同学莫非和英语老师有一腿?🤣( 在线公开课 刚开网课没几周,语文老师突然接到教研员的通知,要她开一节网络在线公开课… 于是这突如其来的表演任务打破了原本的教学计划,然后花了一周的时间和我们一起排练“演”好这一堂课(公开课嘛肯定是演戏的成分比较多一点 一切总算准备就绪,万万没想到公开课那天,那群听课老师早不加群晚不加群,偏偏在上课前10分钟突然一涌而入钉钉群,然后把语文老师手机整死机了没法通过验证… 这还不算啥,上课前的几分钟,这群听课老师一连抛出几个不明觉历的问题,让我都有点怀疑这群老师怕不是假的… (公开课能没有学生?您在想什么?🤣) (您也想做学生?🤣) (那么大的关闭摄像头和关闭麦克风按钮您看不见吗?🤣) 之后语文老师刚发起好视频通话,准备开始上课,结果又不知道是哪位听课老师这么好奇,点了一下共享屏幕的按钮,结果所有人的画面都被切到了那位听课老师的手机屏幕上…而且还切不回去了… 无奈于是语文老师重新发起视频会议,结果又不知道是哪位听课老师这么有才,估计是找不到在哪里加入视频会议,干脆自己也发起了一个新的视频会议,然后一个群里就有两个视频会议同时进行,一个是我们语文老师的,一个是那位有才的听课老师的,结果一半的听课老师跑到了另一个会议里,还疯狂问我们语文老师怎么还没开始上课,场面一度十分混乱 好在最后还是把课上完了,紧接着更有意思的部分来了~原本是要求我们学生上完课立刻退群,留下老师在群里评课开展教研工作,然而好奇的我们怎么可能乖乖听话,早就留了后门特意安排某位同学潜伏在里面,并通过QQ在同学群里实时转播了老师们的研讨会…(有内鬼,终止交易 先是教研员说预计研讨会要开到九点半,然后让各个学校的听课老师踊跃发言说两句来点评一下,结果没想到这群老师简直比我们还害羞,八十多位老师好不容易才有四五个发言,而且都是在吹彩虹屁(虽然我们语文老师确实讲得不错) 研讨会的最后原计划是要请某位领导来说两句,结果叫了半天竟然没人回应,估计已经跑了🤣🤣🤣 于是教研员不得不在尴尬中提前结束了这次教研活动 其他有意思的事情 英语老师特意买了块数位板,结果这用得…惨不忍睹,真的还不如鼠标写的清楚(不过手眼分离确实需要一段时间适应 语文老师尝试钉钉新功能,结果把群给解散了(几天前她还得意洋洋地和我们炫耀🤣 劳技老师发现电脑太卡,于是打开任务管理器,鼠标指着 tblive.exe (钉钉直播组件)说这个是啥呀,然后毫不犹豫地把进程终止了… 复学 不知不觉到了四月中旬,市教委终于在发布会上公布了返校时间: 初三高三4月27日 初二高二5月6日 小学4-5年级及初高中其余年级5月18日 另外高考推迟一个月,中考推迟十几天(奇怪中考居然在高考前面),体育中考以满分计入(哭😭我要是晚出生一年…),高中合格性考试调整到七月底(我的暑假啊啊啊啊啊😱 然后高三复学当天咱校还上央视直播了…😂(虽然做戏摆拍的感觉十足 再然后就到了我们开学啦~5月17日下午回了趟学校(戴口罩是真的难受,闷死了),门口都安装了红外测温仪和免洗洗手机(我居然没摘口罩测温仪人脸识别就认出我了🤪 回校第二周就是期中考试,摸鱼划水三个月的我预感大事不妙,我的死期不远了… 总结 这三个月大概是我人生中十分独特的三个月,是属于我们这代人的回忆了,感谢所有老师和同学的在线陪伴~ 但是,如果我们只是单纯地让这一切随着时光的流逝而逐渐淡忘,恐怕是将会是我们整个民族的悲剧。 我们需要忏悔和反省,如果不吸取教训、不改进问题而选择无视回避甚至解决不了问题先解决提出问题的人的话,也许又一个13年后一切又将重演。 可惜, We learn from history that we do not learn from history. 一张安静的书桌来之不易,不能只安放没有思想的大脑,我们不是局外人,现在不是,未来更不是。 最后,用我们语文老师很喜欢的一句话,也是我很喜欢的一句话作为结尾, 愿中国青年都摆脱冷气,只是向上走,不必听自暴自弃者流的话。能做事的做事,能发声的发声。有一分热,发一分光。就令萤火一般,也可以在黑暗里发一点光,不必等候炬火。此后如竟没有炬火,我便是唯一的光。 "},{"title":"【题解】POJ2018 Best Cow Fences","date":"2020-05-05T08:09:28.000Z","url":"/post/poj2018-solution/","tags":[["OI","/tags/OI/"],["题解","/tags/%E9%A2%98%E8%A7%A3/"]],"categories":[["OI 笔记","/categories/OI-%E7%AC%94%E8%AE%B0/"]],"content":"var meting_api=''最近终于开始学《提高篇》了…然后就刷到了这一题… 《提高篇》书上写的这道题的思路说实话我看了很久都不太能理解(当然现在明白了),所以就以我的角度来谈谈这道题该怎么下手做出正解~ 题目 原题是 POJ2018 但是好像也是从 USACO 搬运过来的? 同时附上一个翻译过的版本: 需要注意的是,本题在2018年第一次印刷的《提高篇》书上题干表述有误,“子序列”应更改为“子串”才对 开工! 首先呢,这道题是一道二分答案,因为它符合求最小值的最大值这种问题模式 那么二分答案要做的第一件事就是确定答案的范围,在本题中需要求解的是最大的平均数,按理来说是有一个范围的,但是其实没必要求得那么精确,咱就简单粗暴一点把答案范围定在 [−106,106][-10^6,10^6][−106,106],反正精确范围肯定是这个范围的子集 紧接着由于答案是平均数,产生小数是很自然的,因此要选择实数域上的二分 考虑到最后题目让我们输出的是最大平均数的 100010001000 倍,因此设置精度 eps=1∗10−5eps = 1*10^{-5}eps=1∗10−5 然后就开始设计二分判定,众所周知二分是把求解转化为判定的一种思想,本题中我们需要判定的是“是否存在一个长度不小于 LLL 的子串,且该子串平均数不小于二分的值” 为了便于操作按照惯用套路咱把数列 AAA 中每一项都减去二分的值,运用化归思想将问题转化为判定“是否存在一个长度不小于 LLL 的子串,且该子串的和非负” 由于是存在性问题(区别于恒成立问题),只需要保证数列 AAA 中所有长度不小于 LLL 的子串的子串和中的最大值非负即可,注意到求和是一个很浪费时间的过程,所以我们就把它用前缀和的方式预处理掉 学过数列的同学们应该不难理解,假设数列 AAA 某一子串为 Aj+1,Aj+2,...,AiA_{j+1},A_{j+2},...,A_iAj+1,Aj+2,...,Ai ,定义 SiS_iSi 为数列 AAA 前 iii 项的和,那么 该子串的子串和=Aj+1+Aj+2+...+Ai=Si−Sj该子串的子串和 = A_{j+1}+A_{j+2}+...+A_i = S_i - S_j 该子串的子串和=Aj+1+Aj+2+...+Ai=Si−Sj 那么最后一个问题,怎么遍历数列 AAA 中所有长度不小于 LLL 的子串呢?这个容易呀~i:L→n,j:0→i−Li: L → n, j: 0 → i-Li:L→n,j:0→i−L 循环嵌套一下就搞定 最后得到如下代码:(注释写得挺详细的应该看得懂吧w 还没完呢 如果你真的按照上面我说的去做了,那么你大概会得到 57 分,并且发现过不了的点都是 TLE (什么!你 AC 了?!要么数据太水要么你不是这样做的) 虽然总比爆零要好,但是咱要追求完美怎么能罢休~ 分析一下,上面算法中可以优化的应该就是那个两重循环了,我们粗略地把判定时间复杂度看成 O(N2)O(N^2)O(N2) (但是实际上应该比 O(N2)O(N^2)O(N2) 要好一点),那么有没有 O(N)O(N)O(N) 的判定方法呢? 我们又回到了这个问题:怎么优雅地遍历数列 AAA 中所有长度不小于 LLL 的子串呢?难道真的需要两重循环吗? 前面提到过,假设数列 AAA 某一子串为 Aj+1,Aj+2,...,AiA_{j+1},A_{j+2},...,A_iAj+1,Aj+2,...,Ai ,定义 SiS_iSi 为数列 AAA 前 iii 项的和,那么 该子串的子串和=Aj+1+Aj+2+...+Ai=Si−Sj该子串的子串和 = A_{j+1}+A_{j+2}+...+A_i = S_i - S_j 该子串的子串和=Aj+1+Aj+2+...+Ai=Si−Sj 当 iii 取某个值时,观察上面的式子,发现 SiS_iSi 为定值,SjS_{j}Sj 随 jjj 可变,因为要求最大的子串和,所以减数 SjS_{j}Sj 越小越好 当 iii 每次增加 111,即 iii 变成 i+1i+1i+1 那么 jjj 的取值范围会由 [0,i−L][0,i-L][0,i−L] 变到 [0,i+1−L][0,i+1-L][0,i+1−L] 仔细观察发现 jjj 可取的值只多了一个 所以我们完全没有必要对 jjj 做循环,我们只需要在 iii 的每一次循环中记录下当前的 SjS_{j}Sj 并和上一轮最小值 tmp_mintmp\\_mintmp_min 取较小的那个存入 tmp_mintmp\\_mintmp_min 于是得到以下代码: 然后就可以 AC 啦~"},{"title":"ThinkPad X201s 黑苹果安装记录","date":"2020-04-17T10:49:27.000Z","url":"/post/thinkpad-x201s-hackintosh/","tags":[["黑苹果","/tags/%E9%BB%91%E8%8B%B9%E6%9E%9C/"],["ThinkPad","/tags/ThinkPad/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''继上次给这台 ThinkPad X201s 更换了 SSD 以后,想着既然都换了 SSD 怎么能不尝尝黑苹果的滋味呢w 然而很不幸的是网络上几乎没有任何关于 ThinkPad X201s 黑苹果安装的有效信息,只有几篇关于 X201 和 X201i 的,于是在踩了特别特别多的坑以后决定还是在这里记录一下完整的安装过程吧~ 硬件配置 确认一下你使用的是 ThinkPad X201s 而不是 X201i 也不是 X201 哟~ 即使是 ThinkPad X201s,也有下图中的一堆版本,我使用的这台型号是 5129A15,即下图中的第一个 当然,如果你的型号并非 5129A15 也不用太担心,毕竟它们都是 X201s 系列的,硬件差别应该来说不会太大,理论上同样可以成功 核对以下关键信息: 主板芯片组:Intel QM57 CPU:Intel Core i7 640LM Arrandale 内建LCD分辨率:1440*900 显卡:Intel GMA 5700 MHD 安装目标 由于 X201s 使用的是传统 BIOS,因此不得不采用 BIOS+MBR+Chameleon 的引导方案,同时又考虑到这台笔记本可怜的那点性能,决定安装有那么些古老的 OS X Yosemite 目前能够实现: 显卡被正常驱动(顶栏及 Dock 可实现透明效果,LaunchPad 不卡顿) 声音正常(内置麦克风扬声器以及3.5mm接口均可正常使用) 千兆以太网卡正常 USB 接口正常 SSD Trim 正常开启 已知问题如下: 内置 Intel 无线网卡无解(可通过购买免驱无线网卡解决) VGA 无输出(据说 UltraBay 上的 DisplayPort 接口可用,可通过购买 UktraBay 扩展坞或购买 USB 转 VGA 解决) 电池不被识别(一直都是插着电使用,并无大碍) 睡眠会一睡不醒(几乎用不到这个功能,并无大碍) 安装过程 配置 Chameleon 引导并给黑苹果分区 通过 EasyBCD + wowpc.iso 为电脑添加 Chameleon 启动项 注意选择合适的 Chameleon 版本,Yosemite 需要 2388 版本以上 为黑苹果创建一个分区(建议>=30GB),压缩卷-新建简单卷-不要格式化,得到一个文件系统为 RAW 的分区,作为黑苹果系统盘 写入安装镜像至 U 盘 推荐下载懒人版 10.10.5(为什么推荐这个版本呢?看下文你就知道了)镜像(Yosemite Install(XXXXX).cdr 格式),省事省力,特别适合我这种懒癌晚期患者 使用 TransMac 写入空白 U 盘(容量建议>=7GB)来制作安装盘 空白意味着你需要在 Windows 自带的磁盘管理中删除 U 盘里的所有分区,然后新建简单卷-不要格式化,得到一个文件系统为 RAW 的单分区 U 盘,此时才可以用 TransMac 写入镜像 如果你的 U 盘文件系统为 NTFS 之类的话,很可能会在之后安装到一半时出现 提取软件包“Essentials.pkg”的文件时出错 的错误 安装 Windows 下读写 HFS+ 文件系统的工具 需要小心的是,目前满大街流传的破解版 HFS+ For Windows 10 可能导致 Win 10 蓝屏无法启动 建议到官方网站下载 MacDrive 或 Paragon HFS+ For Windows,可以免费试用5天,足够黑苹果的安装 其中 MacDrive 不太推荐,因为它同样使我的电脑突然蓝屏了一次,重启之后才恢复正常 需要注意的是,任何在 Windows 下读写 HFS+ 分区的工具都极易破坏 HFS+ 分区的原有文件系统结构,导致黑苹果安装盘或系统盘无法启动,具体表现是 Verbose 下出现 CPU Halted 字样后突然自动关机或者读条读到一半突然自动关机 但是后文我们仍需频繁地用到这些工具,因此一旦由于使用这些工具导致黑苹果无法启动,请看本文末尾的疑难解答 给安装盘添加驱动及 Chameleon 配置 重点来啦~因为 X201s 的一代核心显卡无法被直接驱动,导致如果直接安装会卡在 IOBluetoothController,即显卡驱动失败 得益于国外 InsanelyMac 论坛和国内 PCBETA 论坛的大佬们,一代核心显卡(GMA5700)终于有救了,本文中用到的驱动即来自于这些论坛的大佬们,原帖见本文最后的参考链接 利用读写 HFS+ 的工具在 Windows 下打开黑苹果安装盘,然后完成以下操作: 进入 /System/Library/Extensions 文件夹中,删除所有 AMD 及 NVDA 开头的 kext 以腾出空间 将下面的文件夹中所有的 kext 丢进 /System/Library/Extensions 文件夹中,遇到重复选择替换 将下面的文件夹中所有的 kext 丢进 /Extra/Extensions 文件夹中,遇到重复选择替换 打开 /Extra/org.chameleon.plist,改为如下代码: 此时可以重启进入 Chameleon 加上 -v -f 参数尝试引导啦~运气好的话可以顺利进入安装界面~ 但是正如上文说到的那样,如果在 Verbose 过程中出现 CPU Halted 字样突然自动关机,说明安装盘的文件系统结构在添加驱动后出现了问题,解决方法见本文末尾的疑难解答 黑苹果系统安装 先到磁盘工具格式化黑苹果系统盘(注意别格错了),再安装即可 安装会比较久,期间如果黑屏不用紧张,可点一下鼠标或触摸板来唤醒屏幕 装完后需要启动 WinPE 重新激活 Windows 分区,否则会出现 Missing Operating System 之类的提示 给系统盘添加驱动及 Chameleon 配置 进入 Windows,利用读写 HFS+ 的工具在 Windows 下打开安装盘和系统盘,然后完成以下操作: 将黑苹果安装盘下的 /Extra 文件夹拷贝到黑苹果系统盘根目录下 进入黑苹果系统盘 /System/Library/Extensions 文件夹中,删除所有 AMD/NVDA/GEFORCE/ATI 开头的 kext 将下面的文件夹中所有的 kext 丢进黑苹果系统盘 /System/Library/Extensions 文件夹中,遇到重复选择替换 完成安装 重启电脑进入 Chameleon,移动光标至黑苹果系统盘,加入 -v -f 参数尝试启动,不出意外就会出现刚安装完苹果系统时的设置选项了 但是正如上文说到的那样,如果在 Verbose 过程中出现 CPU Halted 字样随后突然自动关机,说明安装盘的文件系统结构在添加驱动后出现了问题,解决方法见本文末尾的疑难解答 剩下就只需要和白苹果一样按部就班地设置好键盘、用户账户之类的即可,完事就可以看到桌面啦~ 此时顶栏和 Dock 应该都是半透明的了,显卡可以正常工作,打开 LaunchPad 不会卡顿或花屏,播放视频也不会卡顿,黑苹果就基本完美啦~ 小建议 开启 TRIM 对于 SSD 用户来说,如果你不想让 SSD 提前暴毙,那么最好开启 TRIM 但是,据大量用户反映 Yosemite 在使用第三方 TRIM Enabler 之后会出现禁止符,无法开机 因此开启 TRIM 的最好方法就是升级到 OS X Yosemite 10.10.5(当然你可以一开始就选择 10.10.5 的安装镜像),然后用原生指令打开 TRIM,黑苹果升级有风险,升级完需要再次覆盖驱动 然后只需要打开终端执行: 期间输入密码,按 Y 回车,电脑会自动重启,再次进入系统后就会发现 TRIM 开启成功啦~ 来一次全盘备份 适合和我一样喜欢瞎搞的人~ 可以用 Ghost 或者 OS X 自带的时光机把整个黑苹果系统分区备份一遍,万一某一天手残升级失败了或者装了一些奇奇怪怪的东西开不了机了,有备份在就省去了重装黑苹果的大把时间~ 卸载 Windows 下读取 HFS+ 的工具 强烈建议安装完成后尽快卸载,不然你就会像我一样突然有一天进不去黑苹果,读条读到一半突然自动关机,Verbose 出现 CPU Halted 字样 如果你不幸已经出现了这种事情,请看下面👇 疑难解答 CPU Halted 突然自动关机怎么办 别慌,问题不大 进入 Chameleon 后选择你要进入修复的盘(安装盘或系统盘),加上参数 -v -s -f 不出意外你会顺利进入单用户命令行模式 执行 /sbin/fsck -fy 运行磁盘检查,多半会查出类似于 Invalid Node Structure 的错误,并且会告诉你这个分区对应的 Identifier(类似于 /dev/disk0s2) 执行 /sbin/fsck_hfs -yprd /dev/disk0s2 其中 /dev/disk0s2 请务必换成你的 Identifier!!! 然后就是漫长的等待,可能需要十几分钟左右,期间屏幕会一直滚信息,对你的文件系统进行详细的检查和修复,如果感兴趣你可以看看都是哪里出现了问题,到最后可能会告诉你修复失败,不过不用慌,再运行一次 /sbin/fsck -fy 就会看到 Repaired successfully 之类的提示 执行 reboot 进入 Chameleon 再次尝试启动即可 最后别忘了在整个黑苹果安装完成后进 Windows 卸载掉读写 HFS+ 的软件,不然小心重蹈覆辙 Transmac 出现“Could not write to Mac Volume”无法写入怎么办 能否顺利写入 U 盘似乎完全是玄学,建议开一台 Windows 7 虚拟机再试试,我就是这样才成功的 提取软件包“Essentials.pkg”的文件时出错怎么办 请再去好好读一读上文¯_(ツ)_/¯ 当然也可能是你下载的镜像破损造成的,请在下载完成后校验 MD5 值 设置系统时卡在“正在创建账户”怎么办 这似乎是一个 BUG,其实此时账户已经创建好了,但是因为某些原因就一直卡在了这一步 解决方法是卡在这里时强制关机,再次开机设置系统,到了创建账户的步骤时随便建一个临时账户,进入桌面后注销当前帐户,切换回最初的账户,再到偏好设置里把临时账户删掉即可 后记 得益于之前更换的 SSD,Chameleon 去掉 -v -f 参数后启动黑苹果大约在 30s 左右,系统体验非常舒适,打开应用程序不会在 Dock 上弹跳老半天,总之是非常适合日常使用的~ 但是也有个最大的问题,就是 Yosemite 和最新的 Catalina 相比已经落后了不知多少个版本,许多应用软件都无法运行在 Yosemite 上(如 Office 2019 / WPS / 钉钉 / iWork / 腾讯柠檬 / Homebrew 等),目前只能用 Office 2016 代替 2019,用腾讯电脑管家代替腾讯柠檬(别说还真的挺好用的 似乎升级到 EI Captain 体验会更好,但是我没敢跨大版本升级,主要怕驱动不支持比 Yosemite 更高的版本,各位持有 X201s 的也可以尝试一下用 EI Captain 的镜像搭配本文中所给的驱动进行安装~ 最后祝所有的 Hackintosher 们早日吃上黑苹果~ 参考链接 特别感谢以下文章的作者们~❤️ 联想Thinkpad x201 i5 560M osx 10.10.3 一代集显QE/CI完美,声音亮度变频正常 [GUIDE] 1st Generation Intel HD Graphics QE/CI 修复 OS X 的系统盘出现 Invalid Node Structure 问题 "},{"title":"Travis CI + Hexo 实现静态博客自动部署","date":"2020-03-28T09:40:22.000Z","url":"/post/hexo-autobuild-with-travis-ci/","tags":[["CI","/tags/CI/"],["持续集成","/tags/%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90/"],["Travis","/tags/Travis/"],["Hexo","/tags/Hexo/"],["静态博客","/tags/%E9%9D%99%E6%80%81%E5%8D%9A%E5%AE%A2/"],["自动部署","/tags/%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api='' 本文使用 MWeb Markdown 编辑器写于 iPad Air 2,利用 iOS 端迄今为止最佳的可视化 Git 工具 Working Copy 提交至博客仓库,经 Travis CI 自动构建后自动发布至 GitHub Pages。 以上是我最理想的写博客的流程,而今天我终于实现啦!😆 众所周知,静态博客的一大特点就是没有管理后台,因此常规的操作流程一般是写文章-丢进_posts文件夹-手动执行构建-发布。事实上我也一直是这么干的,得益于 Coding 的 CloudStudio,我至少可以不用电脑随时随地执行这套繁琐的操作,觉得这样将就用着也还能接受。但是最近发现 CloudStudio 经常卡半天进不去,再加上 Coding 升级后混乱的用户体验(个人版、企业版、团队版、腾讯云开发者全部杂糅在一起),我还是决定放弃这套糟糕的流程。 所以,不如咱就试试让 Travis CI 替咱做掉这些繁琐的工作吧! 需求分析 我想要达到的最终目标是只需要向存放文章的仓库推送 Markdown 文件,就会自动触发 Travis CI 从文章仓库拉取文章,配置环境,自动生成静态文件,自动部署至 GitHub Pages,也就是说,我只要安安心心的写好文章并提交推送,剩下的事情 Travis CI 都会帮我做好。 方案设计 首先需要两个 GitHub 公共仓库: hexo-theme-hans362 //存放 Hexo 博客主题文件(基于 ICARUS 二次修改) 𠃊master //默认分支 文件结构: hans362.github.io //博客主仓库 𠃊source //默认分支,存放 Markdown 文章和相关配置文件 𠃊master //GitHub Pages 分支,存放生成的静态文件 文件结构: 多分支的那个仓库 source 分支可以这样操作: iPad 上写文章时只需要在 Working Copy 里 clone 主仓库下的 source 分支,写好文章后 commit + push 就完事啦~ 构建脚本 重点其实是在这,在 Travis CI 能帮你干活之前你至少得先教会人家应该怎么做,对吧?(≧∇≦) 存放于主分支 source 下的 .travis.yml 就是你和 Travis CI 沟通的桥梁。 下面就是我的 .travis.yml: 因为我把部署脚本单独拎出来了,所以还需要在 source 分支下创建一个 .travis 文件夹,里面写好 deploy.sh 脚本: 然后细心的你可能发现了上面配置文件中有两个 ${GITHUB_TOKEN},这里应该填写你的 GitHub Personal Access Token,不知道这是啥的自行解决,总之需要生成一个并且牢牢记住。当然我相信你不会笨到直接把脚本里的 ${GITHUB_TOKEN} 替换成你的 TOKEN,因为存放配置文件的仓库是向世界公开的,这样做无疑于引狼入室。 正确做法就是把 ${GITHUB_TOKEN} 原封不动的留在那,然后到 Travis CI 中设置环境变量,变量名为 GITHUB_TOKEN,变量值为你牢牢记住的那个 TOKEN,这样当代码运行至这一行时就可以从 Travis CI 中自动读取到你的 TOKEN 并完成替换。 至此,构建脚本就配置完成了。 Now, enjoy~ 如果一切无误的话,你可以尝试推送一篇文章到主仓库的 source 分支,这会触发 Travis CI 按照你教TA的步骤完成后续的一系列操作,你只需要静静地喝杯茶,在一分钟后打开你的博客,就可以看到你写的新文章啦~ 参考链接 非常感谢以下文章作者~ 使用 Travis CI 自动部署 Hexo 博客 使用Travis-CI持续构建Hexo博客 "},{"title":"ThinkPad X201s 固态硬盘升级记","date":"2020-03-07T10:49:27.000Z","url":"/post/thinkpad-x201s-ssd/","tags":[["ThinkPad","/tags/ThinkPad/"],["固态硬盘","/tags/%E5%9B%BA%E6%80%81%E7%A1%AC%E7%9B%98/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''平时我一直拿 ThinkPad X201s 当主力机用,写文档、做 PPT、撸代码都挺顺手,再加上它又是 ThinkPad 的经典设计,标志性的小红点更是加了不少的情怀分 然而毕竟是8年前的老电脑,最近升级到 Win10 1909 1月更新 之后我发现它慢得有点吓人😢 具体来说就是: 开机时 Win10 Logo 下方的圆圈需要转很久 Win10 Logo 消失后会有 10s 的黑屏 输完开机密码不能立即进入桌面 进入桌面后还需要等待任务栏加载 总开机时长在 1min30s 至 2min 开机后首次启动 Office 套件需要 30s 左右的等待 硬盘工作时噪声巨大 偶尔会出现整个屏幕卡死、鼠标键盘全部无效的死机情况,硬盘灯不亮 估摸着大概是原配的机械硬盘已经不太好了,于是决定升级一下固态硬盘✌️ 购买 常见的固态硬盘厂家有三星、金士顿、英特尔、联想等,因为实在是穷又比较信赖大厂,最终我选择了 联想指思 X760S 120GB 版本,貌似是仓库里的最后一件,花了 ¥149 入手 快递发了顺丰,这点好评👍虽然是特殊时期但是 SH 这边的快递已经复工了,下单后从浦西仓库发出发出隔天就收到了 由于只是将其作为系统盘这点容量也暂且够用,数据什么的还是放在机械盘里比较保险 开箱&安装 因为第一次买固态硬盘,拿到快递盒的时候吓我一跳,盒子好小一只,而且拿起来轻飘飘的感觉像是空的 拆开一看确实是我买的东西呢,固态硬盘的分量好轻,相比之下原配的机械硬盘简直是健身器材(雾 打开盒子里面有固态硬盘的本体,以及一张保修卡,可以享受3年的只换不修 然后就是拆笔记本,找到背板上硬盘位的螺丝(我眼神不好一开始愣是没找到,后来在网上查了半天才发现硬盘位是在靠近侧面的地方),把它拧开就可以取出旧硬盘,然后把新的硬盘放入硬盘架再给它塞回去就完事,很简单吧 开机进入 BIOS 顺利识别,图中 Jesis X760S 就是咱的固态啦(忽略那感人的屏幕漏光 最后可以选择迁移一下原来的系统,我懒得弄了直接就装了个新的,装完系统发现自己触发了一个神奇的 Bug 🤔 使用体验 首先要说明一下,X201s 的硬盘接口是 SATA 2.0 的,但是这块固态是 SATA 3.0 的,虽然可以向下兼容但是速度会大打折扣,因此达不到 500MB/s 的读写速度,不过较机械硬盘来说依然是快到飞起 开机速度 如果说原来的开机速度是蜗牛的话,那么现在就是飞机(JOJO的奇妙比喻( Win10 Logo 下方最多转上两圈,转完之后直接出现密码界面,输完密码直接进桌面,完成整个开机过程大概用时 15s 左右 由于 X201s 是传统的 BIOS+MBR,没办法实现快速启动,再加上 SATA 2.0 的限制,因此可以说这个速度已经非常不错了,果然没有让我失望 Office 套件 随便开了个 Word 文档,几乎是秒开,蓝色的 Word 启动界面一闪而过,完全不需要等待 开发工具 VSCode 大法好!依然是秒开,体验过于丝滑,爱了爱了 性能测试 原配的的机械硬盘跑了下 Crystal Disk Mark 测试软件,结果如下: 固态硬盘则完全碾压: 极 度 舒 适 噪音 固态硬盘因为没有电机和磁头等机械结构,使用时完全是静音的,耳边再也没有机械硬盘运行时的噪音了 总结 总体来说就是真香!固态硬盘简直是老电脑的福音,早买早享受 不过就是不知道固态耐不耐用,虽然闪存的擦写次数足够正常使用至少十年,但是主控是有可能提前报废的,这就需要时间来验证了"},{"title":"一次任意文件上传漏洞的实战经历","date":"2020-02-29T12:23:26.000Z","url":"/post/arbitary-file-upload-vulnerabilty/","tags":[["Web","/tags/Web/"],["网络安全","/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/"],["漏洞","/tags/%E6%BC%8F%E6%B4%9E/"],["实战","/tags/%E5%AE%9E%E6%88%98/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''这一切都要从一只蝙蝠说起… 最近看到了一个站,是某高中的在线英语人机对话练习平台,目测了一下网站应该是外包的,因为首页上还有客服的 QQ 和定制的联系方式… 像这种看上去粗制滥造的小网站肯定一挖一堆洞…果然1小时后搞定 声明:本文作者没有利用该漏洞做出任何恶意或违法行为,也未触及任何数据,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担 文件上传漏洞是个啥? 正如这个漏洞的名称一样,攻击者利用网站本身的文件上传功能(比如图片上传、文档上传、头像上传等)上传可执行的脚本文件并被解释器正常解释,从而实现恶意代码的运行。 但是事情并没有你想的那么简单,因为几乎所有网站对上传文件的 MIME 类型或后缀名都有限制。换句话说,如果是上传图片的区域,一般不太可能让你正常地成功上传一个 Word 文档。 问题就在一些网站的文件上传功能虽做出了相应的限制,却不够严格、只是浮于表面。这就导致攻击者可以借助一些手段上传任意文件,并能够将这些文件传递给相应的解释器,就可以在网站服务器上执行任意脚本。 实战经历 首先显而易见这是个 ASP 站,随手搞一个404出来发现是 IIS 7.5 直接访问网站会自动跳转到 login.asp 页面,应该是平台的登录页面(忽略那个 Flash 提示 习惯性地把 login.asp 改成 index.asp 发现并没有强制跳回,而是出现了如下页面: 无意中点击右边的设置按钮就发现了一个上传背景图片的按钮… 至此,就已经找到了突破口 之后我先尝试强行丢了一个 ASP 脚本上去,提示文件类型不匹配,上传失败 于是打开 F12 开发者视图,在网络选项卡内发现了 upload.js,里面有相关的限制文件类型的代码 这么看来,应该是这部分代码阻止了 ASP 文件的上传,只要后端没有二次校验,劫持掉 upload.js 应该就没问题了 于是我复制了一份 upload.js,做出如下修改: 然后打开 Disable cache 并启动 Fiddler 开始抓包,强制将 upload.js 重定向到本地修改过的 upload.js 再次 F12 发现修改后的代码已经被加载,试着传了个 ASP 上去,成功~ 这样就搞定了… 只要再传个一句话木马上去,就可以拿到 WebShell 啦(当然考虑到违法的问题我没有这样做 那么怎么修好它呢? 其实也非常的简单~ 漏洞的实现无非就是限制不够严格,前端虽然对文件类型做了限制但是可以被轻易劫持,后端则没有任何的二次校验,就会导致这个问题。 后端的上传接口应做好过滤,只接受特定类型的文件,并且要考虑到方方面面的限制(要知道还有00截断这种骚操作),必要时可以采取对文件随机改名、将图片文件写入一个新的图片文件之类的措施。 毕竟你永远也不知道用户究竟会如何使用你的网站,稍不留神你的网站可能就成为了用户的图床2333333"},{"title":"【转载】不能把冬天唱成春的开始","date":"2020-02-12T12:23:26.000Z","url":"/post/never-regard-winter-as-the-start-of-spring/","categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api='' 本文据传是成都七中的开课致辞,原文链接(现已被屏蔽):成都七中老师开课致辞:不能把冬天唱成春的开始 由于无法确认原作者,暂且转载,如有不妥或侵权请务必与我联系:i@hans362.cn,感谢。 林荫校区的同学们,高新校区的同学们,网校的同学们: 你们好! 在这个非常时期,我很荣幸能代表我们语文备课组,和大家重聚在这个特殊的课堂里。今天:我们以连线代替了会面、屏幕代替了黑板,虽然形式简陋,但是我们为高三同学助力的热情不变。 已经立春了,但今年的冬天却似乎长得没有尽头。新冠肺炎还在肆虐,不知还有多少人正面临着生离死别,还有多少家庭从此没有明天。 “时代的一粒灰,落在个人头上,就是一座山。”对现在还挣孔在痛苦中的人们,谈生活太奢侈了,有些时候,光是活着,就已经拼尽全力。 所以我们需要对眼前的苦难哀悼,感同身受地深深地哀悼。现在是未来的过去,我们对眼前的苦难哀悼是为了铭记。多年以后,春天来了又去,当阳光铺酒在草地,当我们自由地呼吸空气,当我们开心的欢聚,我们必须记得起若干年前,雪曾落在这片土地。死亡,是一个人的悲剧,遗忘是一个民族的悲剧。 我们还需要忏悔,因为真正的哀悼开始于忏悔。我们应当忏悔,明明索尔仁尼琴的警告振聋发聩,我们却装聋作哑、却随波逐流,甚至推波助澜。最终,没有人能够置身事外。 曾迅先生曾经说过,“墨写的谎言掩盖不住血写的事实。”有的人,为了守住不会带到棺材里去的利益与权柄,在他们还活着的时候,就因为贪婪而吞食了自己的心肝。当他们开始习惯性撒谎的时候,也在将自己的亲友与同胞推向深渊。 历史不会因为无视而消失,责任也不能因为回避而逃脱。加缪在《鼠疫》中写道:“这一切里面并不存在英雄主义,这只是诚实的问题。与鼠疫斗争的唯一方式,只能是诚实。” 李文亮医生走了,“我们愤怒于你的预警被当成谣言,我们伤恸于你的死亡竟不是谣言。”说真话的人,我们应该为他们竖碑,要有名有姓,拒绝一切匿名的纪念。 苦难必将过去,但我们不能把丧事当成喜事,不能把质疑换成赞歌,不能把追责偷换为免职。不能把冬天唱成春的开始,有些人已经埋在了冬天。 苦难必将过去,但仅止于哀悼和忏悔是不够的,我们必须反省。 灾难面前,最容易看清人性;一场瘟疫,撕下了谁出将入相的遮羞布?又有哪些媚骨在哗众取宠中捡拾着人血馒头? 如何让我们的孩子不成为这样的人?如何能在下次灾难来临的时候,有更多的口罩,有更少的恐慌,有更多的担当,有更少的推诿? 灾难面前,也最容易看到人类内心深处的光芒。 哪些骨头在风中挺立成了傲岸?哪些天使逆行走向了疫情最前线?哪些普通人的善良让我们热泪盈眶?哪些陌生人的温暖让我们重燃希望? 这些无惧无畏,这些不屈不挠,这些点点滴滴,让我们看到了支撑这个民族历尽沧桑,饱受磨难,依然屹立不倒的那根脊梁。 我们避免不了灾难,我们却能做好自己,我们预知不了未来,我们却清晰地知道,未来在孩子们的手里。 今天的这些数字,这些故事,这些人物,这些精神,这些教训,这些反思,不能只出现在多年以后的课本里,成为僵硬的答题要点。 这些真实的一切,应该让孩子们知道。一张安静的书桌来之不易,不能只安放没有思想的大脑。 我们不是局外人,现在不是,未来更不是。因为,“无穷的远方,无数的人们,都和我有关。”"},{"title":"【项目发布】2019-nCov 中国实时疫情信息聚合","date":"2020-01-31T06:30:31.000Z","url":"/post/2019-ncov-information/","tags":[["疫情","/tags/%E7%96%AB%E6%83%85/"],["信息聚合","/tags/%E4%BF%A1%E6%81%AF%E8%81%9A%E5%90%88/"]],"categories":[["项目发布","/categories/%E9%A1%B9%E7%9B%AE%E5%8F%91%E5%B8%83/"]],"content":"var meting_api=''最近我已经成为了真正的死宅,自从1.23开始就没跨出过家门半步,毕竟截止至目前咱区已经确诊5位感染者… 在家里蹲了一个多星期后,我决定用 PHP+MySQL 造个轮子,自动抓取7家网站的 2019-nCov 中国实时疫情数据,并将信息聚合显示 项目地址: Demo: (其实就是把这些网站的接口都扒了下来( 使用方法 方法一:直接使用作者本人搭建的服务 方法二:手动搭建 准备 LNMP 或 LAMP 环境 在网站根目录下执行: 创建一个名为 ncov 的数据库,执行下方 SQL 语句导入数据表: 修改 config.php.example 内的数据库配置,并重命名为 config.php 添加定时任务,每5分钟执行: 一些题外话 本来不想说这些的…因为根本不想涉及任何政治敏感的话题… 这几天整个国内的网络信息爆炸,刷着国内各大社交媒体真的是阵阵恶心,忍不住想说几句,希望不要被查水表 一边是「武汉医务工作者崩溃到哭」的视频让人心痛不已,另一边却是「湖北省举行春节XXX会顺利举行」的歌舞升平,演员还“带病坚持演出”?! 仿佛身处两个世界,真的是震撼我妈一万年… 一边是「妈妈在武汉隔离病房去世」的文字记录让人揪心,另一边却是「火神山医院建得多么得快外国人都酸了」的病态的骄傲自豪 拜托,一个医院建得多么快就不用吹了吧?是不是火葬场建得快也要表扬一下啊?都这个时候了,发这种东西以激发人民自豪感合适么?而且新闻配的建好的医院图片居然还是假的(百度识图一下就露馅 类似这样的事情简直数不过来,看得我…心情真的是一言难尽😖 不知道各位有没有体会过一边愤怒到哭一边恶心到吐?就是这种感觉 不敢在这里说太多,毕竟还用着 .cn 域名,怕被查水表 之前读到友链里 @PRIN 写的一篇文章,真的是说到我心坎里了: 我有点希望这次灾难更猛烈些,好让每个人都醒悟,让社会推动着去解决一些平时绝无可能自行治愈的顽疾。但当我看到俨然人间炼狱的疫区、情绪崩溃的一线医护工作者、求诊无门的病患时,我又没法这么想了。他们也是人,凭什么作出这么大的牺牲,凭什么成为不计一切代价中的代价?如果灾难中心的是我,还说得出这种风凉话吗? 我这几天也一直是这种矛盾的心情,希望疫情能严重一些,能够唤醒一部分人,但是看着普通百姓和医务工作者的生活,又特别难过… 不管怎样,还是希望这场混乱能够早日平息… 最后,讲个笑话高兴一下吧 “如果有人能回到一个月前的武汉,他能挽救这场灾难吗?” “不,他会成为第九个造谣的人。”"},{"title":"【题解】P1855 榨取kkksc03","date":"2020-01-25T07:02:19.000Z","url":"/post/p1855-solution/","tags":[["OI","/tags/OI/"],["题解","/tags/%E9%A2%98%E8%A7%A3/"]],"categories":[["OI 笔记","/categories/OI-%E7%AC%94%E8%AE%B0/"]],"content":"var meting_api=''某天刷洛谷的时候看到这道题,被标题骗进来了(标题好爽(雾 毋庸置疑这是一道大水题,大概是看在 kkk 的面子上才标了「普及/提高-」难度 那么决定了,第一篇题解就给它吧!(其实只是想练习一下 MathJax 的使用( 题目 P1855 榨取kkksc03 思路 题目的废话很多(其实是洛谷的广告吧),抛开那些废话你会发现这是一道背包问题 我们只需将每个愿望消耗的时间和金钱看作费用,而每个愿望的价值都看作 111,那么这就是一道二维费用的 010101 背包问题 于是乎咱开一个三维数组 f[i][j][k]f[i][j][k]f[i][j][k],其数值表示前 iii 个愿望恰好消耗 jjj 的时间和 kkk 的金钱所产生的最大价值,由于我们已经将每个愿望的价值看作 111,产生的最大价值也就等价于最大的愿望数 我们再用 a[i]a[i]a[i] 表示第 iii 个愿望所消耗的时间,用 b[i]b[i]b[i] 表示第 iii 个愿望所消耗的金钱 根据题意,得出状态转移方程: f[i][j][k]=max(f[i−1][j][k],f[i−1][j−a[i]][k−b[i]]+1)f[i][j][k]=max(f[i-1][j][k],f[i-1][j-a[i]][k-b[i]]+1) f[i][j][k]=max(f[i−1][j][k],f[i−1][j−a[i]][k−b[i]]+1) 稍微解释一下,对于第 iii 个愿望,有“实现”还是“不实现”两种策略 如果我们实现第 iii 个愿望,那么前 iii 个愿望恰好消耗 jjj 的时间和 kkk 的金钱所产生的最大价值就等于前 i−1i-1i−1 个愿望恰好消耗 j−a[i]j-a[i]j−a[i] 的时间和 k−b[i]k-b[i]k−b[i] 的金钱所产生的最大价值再加上第 iii 个愿望的价值(也就是 111) 如果我们不实现第 iii 个愿望,那么前 iii 个愿望恰好消耗 jjj 的时间和 kkk 的金钱所产生的最大价值就等于前 i−1i-1i−1 个愿望恰好消耗 jjj 的时间和 kkk 的金钱所产生的最大价值 对于两种策略再取二者中的最大值,就可以得到当前阶段的最优策略 再来看看边界条件,首先初始化三维数组中的每一项为 000,不多解释 其次状态转移方程里有 j−a[i]j-a[i]j−a[i] 和 k−b[i]k-b[i]k−b[i],有没有想过这两项有可能减出来是负数呢? 所以代码中除了基本的三层循环外,还需要加入判断,一旦两者中存在一者为负,那么我们直接让它继承 f[i−1][j][k]f[i-1][j][k]f[i−1][j][k] 的数值,也就是: f[i][j][k]=f[i−1][j][k]f[i][j][k]=f[i-1][j][k] f[i][j][k]=f[i−1][j][k] (我才不会告诉你我这题 WA 了两次就是因为这个←_←) 代码 dp 的代码实现还是相对比较容易的,直接上代码: 原谅我代码写得这么丑ㄟ(▔ ,▔)ㄏ 反思 这个算法的时间复杂度是 O(N∗M∗T)O(N*M*T)O(N∗M∗T),空间复杂度也是 O(N∗M∗T)O(N*M*T)O(N∗M∗T),对于这道题的数据规模足矣,但是显然还有更加优化的做法 我们可以考虑降维成二维数组进一步优化空间复杂度,事实上 iii 的这一维是可以省去的,只需略微改动一下状态转移方程和循环结构,不断覆盖上一次的无用数据: f[j][k]=max(f[j][k],f[j−a[i]][k−b[i]]+1)f[j][k]=max(f[j][k],f[j-a[i]][k-b[i]]+1) f[j][k]=max(f[j][k],f[j−a[i]][k−b[i]]+1) 这样我们就得到了一个空间复杂度为 O(M∗T)O(M*T)O(M∗T) 的做法~ 当然还有记忆化搜索等做法,各位可以自己去研究哈~ 那么本篇题解就是这样,kkksc03 已经被我们榨取得一滴不剩(大雾)"},{"title":"周记#20 - 终极高一生活感想","date":"2020-01-20T12:23:26.000Z","url":"/post/weekly-20/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''在别的学校已经放假一个多星期后,我们高中… 终!于!放!寒!假!啦! 然而千万不能高兴的太早,因为… 充实而快乐的寒假,你值得拥有😓 那么本文就来写写近况以及我这一个学期的感受~ P.S. 由于本人写作能力堪忧,这篇文章会又臭又长,请见谅(逃 期末考试 俗话说得好: 摸鱼一时爽,期末火葬场。 因为后半学期摸鱼过度,期末成绩可想而知… 在新高考改革后高一必修的十门学科的轮番轰炸之下…我一下子滑到了班级#16 最不能忍的是数学是区统测啊…我才考130分…班级垫底了 幸好这次统测答题卡扫描完之后发还给我们了,每道题的得分也一并下发,看到自己错的题后,我恨不得给自己来上一巴掌… 令 lg2=alg2=alg2=a,则用 aaa 表示 lg85+3lg12lg \\frac {8} {5}+3lg \\frac {1} {2}lg58+3lg21 的结果为 _____. 相信各位不难看出结果为 a−1a-1a−1,毕竟此题并无任何难度可言,然而傻傻的我在答题卡上填写了 lg2−1lg2-1lg2−1,于是5分送走… 除此之外,这次地理考试还出了个乌龙,而且居然正好发生在我头上… 地理学科是不用区统测的,学校自己出的卷子,客观题部分是用那种粉红色的小答题卡,主观题手工批改 小答题卡塞进读卡器之后机器会在卡面上印上一个灰色的分数(类似于食品包装上生产日期一样的喷码) 老师批完主观题后再人工把主观题分数和小答题卡上的灰色分数相加,即为最终成绩 搞笑的是那读卡器读到我这一张卡的时候已经快要没墨了,再加上可能和前后答题卡的各种刮蹭,于是客观题实际得分64分的我,答题卡上被喷上了一个既像54又像64的数字 当时批卷老师急着出分也没想着把我的卡再拉一遍,然后就把那个分数当成54看了… 出分后我看着那个70发现不太对劲,但是想着自己可能真的是太菜了,也没敢问 考完试之后过了几天,答题卡到手,老师讲评试卷时我终于发现了问题,下课后去找老师,发生了以下对话: 我:老师,我能看一下我的客观题分数吗? 老师指着名单上我的54分给我看 我:可是…我答题卡上明明是64分啊?!(指着那个灰色的模糊的不5不6的数字) 老师:你瞎讲!这明明就是54… 我:老师你要不再拿去拉一次卡或者人工批一遍? 于是老师拿出答案,核对了一遍,然后沉默了(光速打脸) 过了几秒,老师小心翼翼地试探地问我:“那…你要不要改分?” 我:当然要啦,这可是10分诶(内心:我要是不改分来找你干嘛😂) 老师再次沉默,看来,今天的午饭要晚点吃了(因为教务系统的改分 deadline 是当天中文12:30,过后分数就会锁死,所以必须赶快去改) 不过老师还是很负责的,答应帮我改分,并且当天晚上再次查分分数已经改成80了~ 这个故事告诉我们,摸鱼虽然很爽,但是摸鱼过度后,不仅考试会死得很难看,人品也会变差 RP++; 放假前的一周 本文开头已经提到,别的学校已经放假后,我们学校还要上一个星期的课~ 不过这绝不是什么违规补课,因为教委规定的放假时间就是咱校的放假时间,别的学校只是按照约定俗成的惯例不约而同地提前一周放假而已~ 考试最后一天上午10点多,老师们都去机房阅卷了,学校又不让放学,考完试后我们就在班级里看电影 当别的班都在看一些正常向的电影时,唯独我们班是整层楼的一股泥石流… 是的…你可能已经猜到了…我们班看的是… 恐怖片 关键是我们还关了灯拉了窗帘,搭配上刚换没多久的全新投影机,真挺恐怖的😱 期间来发寒假作业的化学老师推门进来,盯着屏幕看了半天,一脸好奇地问:“你们在看什么片子啊?”我们回答:“恐怖片。”化学老师瞬间皱着眉说了声“矮油”丢下作业就跑了 然后没过多久英语老师进来,看了一会儿说:“啊?!这个你们敢看啊?!我当时看都快吓死了!”随后谢绝了我们的挽留,溜了出去 看到一半我已经有点恶心了,刚好gay友问我要不要去恰饭,我立刻点头走人 回教室后继续看完了这部,我整个人都不好了…然后他们竟然又开始找第二部恐怖片看?! 我立刻拉上gay友去了楼上的自习室,这下清净了,自习室还有沙发和暖空调,终于不用在冷嗖嗖的教室里接受恐怖片的洗礼了 于是在自习室和gay友写写作业聊聊天,一下午就过去了 之后的一周虽说是上课,但是真正敬业的估计也就数学老师和生物老师了,语文老师已经开始水课了,每节课就给我们看看《红楼梦》的电视剧,因为这是新教材下个学期的必读书目,考试要考 英语老师也开始水课,给我们放了 The Phantom Of The Opera ,虽然我们一度以为这是部恐怖片,不过看着看着还觉得挺有意思的,其实是个浪漫的爱情故事 至于化学老师没什么电影可放的,干脆就陪我们闲聊了一节课… 虽说没有放假,但是这一周也轻松了许多,愉快地水过去啦~ 信息学竞赛 复赛滚粗,不可思议的是我做的三道题居然全都有分,当然加起来也才23分…明年加油~ 然后初赛的证书终于到手了~ 不过你要是问我这玩意有何用…大概只能用来在不明真相的人面前装 X ¬_¬` 个人感觉和第二轮绿油油的证书相比更好看诶(虽然我根本没有第二轮证书 校园信息化升级 前不久的某天晚上,我无意间登上学校的官网,发现原本土掉渣的网站竟然变得好看了诶… 虽然新网站也有些逼死强迫症的地方,不过和之前相比已经大有长进 然后教室饱受诟病的投影仪和电脑也换新啦,投影仪斥巨资换成了 EPSON CB-1470Ui,画幅从4:3变成了16:10,色彩也更鲜艳了 因为原来的 USB 视频采集卡最大分辨率只有1024*768,无法发挥16:10的画幅,所以学校又斥巨资给教室电脑加了快 NVIDIA GT710 独立显卡,虽说性能不咋滴但是至少比原来的视频采集卡要好很多,画面清晰极了,放 PPT 和视频再也不会一卡一卡的啦~ 还有这台投影仪比原来的多了个小盒子,贴在白板上用来发射红外信号,定位校准之后用手指就可以触屏操作,比原来那个触控笔精准多了,延迟也很小~ 不过好多老师不知道这个功能,讲课时纷纷在白板上习惯性地用手点来点去,结果 PPT 就满屏乱跳… 一周后老师们上课都离白板远远的,没人敢碰这玩意… 唯一遗憾的是没给电脑上个 Win10,毕竟现在 Win7 和 WinXP 一样已经停止技术支持了 不过我也不敢贸然换系统,因为学校的电脑联网貌似很麻烦,没有 DHCP,还要配置域什么的,怕搞坏了 目前把教室电脑上预装的360全家桶卸了换成了火绒,爽到,感觉电脑明显快很多 关于学校 食堂 虽然之前的周记已经写过,但我还是要再次吹爆学校的食堂~辣子鸡、东坡肉、比脸还大的鸡排、炸鸡翅、肉末茄子都好吃不贵~卤肉饭也好香(就是一份太少了…) 总之学校食堂绝对是增肥的好去处,一个学期下来我已经从原来54kg的受瘦弱男生变为了58.8kg(虽然还是很轻,但是一个学期能胖8斤好像从来没有过 校服 再来讲讲学校的校服,不得不说,学校的校服真的是一个字:丑 但是也没办法,这几年来已经算是比较好看的了(以前更糟糕 也发了一套正装,长下面这个样子,应该是校服里最好看的了: 但是一学期就穿过两次,因为穿起来实在太费劲了,遇到体育课还要换适合运动的衣服,更麻烦… 老师 很幸运,我所遇上的老师们都超好的~没有蛮不讲理的那种,对我们都特别温柔 前半学期还有一群大学生来咱校实习,每个老师都配备了一位实习老师 于是乎我们就和他们打成一片了,语文重默都是去语文实习老师那里,实习老师经常睁一只眼闭一只眼给我们放点水 某天语文实习老师实习期结束离开学校了,一同学继续故技重施,结果碰上语文老师亲自盯着他重默,后果可想而知… 数学实习老师在实习期结束之前最后一次批改作业时,还给班里的每个同学在作业本上写了一段鼓励的话~真的让人很感动~ 总而言之还是挺喜欢现在的高中的,尽管也不乏某些一言难尽的领导和官僚主义的作风,不过一般遇到这种人我都绕道而行,毕竟雨我无瓜~ 总结 这篇周记到这里就差不多了~ 这几天零零散散地写了很多东西,最终很没条理地把它们拼在了一起,如果你读到了这里还没有关掉这个页面,那你一定是一个很有耐心的人吧:-) 接下来的寒假上海几乎天天下雨,准备老老实实做个死宅,待在家里刷作业+补番(可恶…现在超炮第一季都要大会员才能看… 那么感谢各位的阅读~我们下次再见ヾ(≧∪≦*)ノ〃"},{"title":"2019年终总结&博客2周年致谢","date":"2019-12-22T15:14:54.000Z","url":"/post/2019-annual-report/","tags":[["年终总结","/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''两年前,即2017年的12月20日,我的博客旅程开始了 那时,我还在读初二 仍记得当时是在破服务器上跑了个 Typecho,搭配 @Archeb 写的超厉害的主题再加上自己的一通乱改,一个像模像样的博客就诞生了~ (一张 Typecho 时期的博客截图) 转眼间,已经整整两年过去了…我们即将告别21世纪10年代的最后一个冬天… 时间,真的太快了… 回望 2019 Blog / 博客 比较尴尬的是,迁移至 Hexo 后我本打算采用 Google Analytics 作为博客的流量分析工具,但是由于某些神奇的原因,直到我写这篇文章时才发现居然 Google Analytics 没有任何命中数据?! 再一检查发现统计代码不知道跑哪里去了…根本就没有添加到网页上… 所以估计明年的年终总结才会有访问流量方面的统计信息了呢~ 咕咕咕 今年一共发布了15篇文章~~~(又是高产的一年~~ 虽说基本上都很水… 周记 周记#14 周记#15 周记#16 周记#17 周记#18 周记#19 技术向 如何优雅地使用 VLC 播放辣鸡 APP 上的英语听力 PHP踩坑记录#1 给你的 Ubuntu GNOME 桌面带来类 Mac OS 的体验 记一次黑苹果下 AMD 显卡驱动注入经历 影评 『不管晴天还是雨天,我只想和你相遇。』——动画电影《天気の子》观影感受 OI 游记 2019 CSP-S 初赛游记 2019 CSP-S 复赛滚粗记 吐槽 2019年上海中考大吐槽¯_(ツ)_/¯ 项目发布 【项目发布】追番列表展示API(由于 bilibili API 变更烂尾了) 基本上都是生活类的文章,技术性的还是比较少… 唯一的一个有点用处的项目还烂尾了qwq,寒假看看有没有时间用 Javascript 重构一下(不,你没有) 再来看看评论,自从更换成 Disqus 评论系统后评论少了很多(其实本来也没多少23333) 不过好处就是没有垃圾评论的打扰啦~ 今年博客总计新增32条有效评论~(又是冷冷清清的一年) Life / 生活 花钱 虽然真的穷,但是在统计支出时发现…花的钱累积起来还真的是挺多的… 不过很大一部分都是日常生活上的开销,每天2块钱的公交加起来也是很惊人的 (吃货本性暴露) 娱乐上花钱最多的一次就是今年的 CJ 了… 社交 社交软件在今年已经逐渐从国内的 QQ/微信/微博等平台转向了 Telegram 和 Twitter,虽然很多时候迫不得已还是要用国内的 IM 软件 作为一个社恐+聊天能把话聊死的那种人,与其说是社交倒不如说是经常暗中观察+潜水 今年进了高中也认识了好多人,不过也就仅此而已啦 番剧 死宅当然要看番啦~不过今年是好好学习的一年呢~只补了几部… 五等分的新娘 ISLAND 小林家的龙女仆 算上动画电影的话还有: 你的名字 言叶之庭 天气之子 千与千寻 最喜欢的是『小林家的龙女仆』~京阿尼出品必属精品~ 可惜由于那场火灾,不知道能不能看到第二季了… 为京阿尼祈福~ 音乐 今年主要用的音乐平台还是网易云,虽然好多歌曲都没有版权啊啊啊啊 所以极少数情况下也用QQ音乐(买不起 Spotify 订阅) 听的最多的歌手必须是 ClariS~C团的小姐姐超棒~(虽然好多歌没版权TAT) 其次就是 RADWIMPS,因为诚哥的动画电影也喜欢上了这个乐队~甚至买了两张专辑 手机 用上了 Redmi K20 Pro~ 目前用着觉得挺香的,懒得刷机折腾,并且也不想放弃小米生态链以及小米公交卡等功能,就刷了个 MIUI 11 开发版用着,还是很稳定的 占屏比很满意,前置摄像头的弹出速度也还可以,虽然很少用到前置摄像头 使用了半年左右没有出现任何的硬件故障,网上有人遇到的屏幕发绿、触摸屏故障之类的也都没出现 Studying / 学习 前半年主要都在准备二模和中考,尽管最后没考好,但是那段时光依然是人生中值得留念的回忆 虽说中考不尽人意,但也升入了本市一所还算可以的高中 进了高中后被班主任拉去信竞了(感谢),从此开始信奥生涯 参加了人生中第一次正经的算法竞赛(初中时的 VB 程序设计竞赛根本不算什么…) 然后就滚粗了,第二轮官方数据测下来成绩才23分,我…太丢人了… 不过第一轮的一等证书还是有的,花了50块申请了一张,然而一个月了还没寄到 然后今年我们这届非常不幸…语文、政治、历史均采用了人民教育出版社、教育部统一编写的全国教材…上海教育出版社的教材算是在上一届绝版了 新教材一言难尽,有空慢慢说,总之绝对是大大增加了学生和老师的负担 以前还感觉自己有点偏文科…进了高中才发现政史地才是真正会要了我的命的学科…我爱生物,我爱化学,我爱物理 以后小三门暂时打算选理化生,但是据说这样选压力很大…可是我地理又不好…纠结… 展望 2020 嘛…其实也没有什么太大的期望 学习上还要继续加油呢~ 明年 NOIP/CSP 争取要拿个二等~ 列了几部明年要补的番剧(包括动画电影): HELLO WORLD(传说中的程序员番?) 某科学的超电磁炮 卫宫家今天的饭(没错,我是从 CSP-S 2019来的) 就是这些~ 当然最重要的是祝愿自己和各位都能够平平安安~ 博客2周年致谢 转眼间,这个小小的博客已经运转了2年 我依然庆幸着两年前自己加入了这个圈子,在写博客的过程中,真的收获了很多此生难以忘却的回忆 在这里,想和各位说一句感谢~ 以下是致谢的名单(排名不分先后): 感谢 @Archeb 用心制作的每一份 Typecho 主题,以及在我的博客刚起步时给予我的帮助和支持~记得我的博客的第一条评论和友链就来自于你呢~ 感谢 @Little_Qiu 的所有留言和评论~以及在我中考考砸时的鼓励~是一位很可爱的julao呢~ 感谢 @lzh441 的留言和评论,没记错的话应该是第一位找我加友链的大佬呢~ 感谢友链列表里的所有人,包括但不限于 @PRIN,@SomeBottle,@蝉时雨,@xtlsoft,@Subilan 等,都是一个个有趣的灵魂呢~也感谢你们愿意和本蒟蒻互换友链 感谢三次元中的身边的家人、同学和朋友们的关照 以及,此时此刻,屏幕前的正在阅读这份名单的你(★>U<★) 没有你们,或许我也就无法成为今天的自己,衷心感谢你们~ 2020,也请多多关照啦~ 感谢你能够耐心地读到本文的最后,2020,再一起加油吧^0^~"},{"title":"2019 CSP-S 复赛滚粗记","date":"2019-11-18T14:39:17.000Z","url":"/post/2019-csp-s-2/","tags":[["OI","/tags/OI/"],["游记","/tags/%E6%B8%B8%E8%AE%B0/"],["CSP","/tags/CSP/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''又是篇迟到的游记~ 这次是真的凉透了…(真的是真哒 海边有两棵树,树上吊死了很多人,一棵叫括号树,另一棵树上全是数。一个叫格雷的人种树,0种括号树,1种数字树(01按格雷码决定)。 校门外有两棵树,一棵叫括号树,靠近这棵树的人会被114514搞得浑身**。另一棵叫树上数,Emiya经常砍树枝烧火做饭,他凭借着自己精湛的厨艺,用一种烹饪方式和一种主要食材做出了998244353道菜。这两棵树都是格雷的马种的,他现在要求你求树的重心,求不出就把你划分了。 欲知 CSP-S 2019 究竟发生了什么,请接着往下看~ Day 0 上次初赛低分飘过后没有选择停掉文化课准备复赛,主要是因为不想影响到学习… 比赛前一周每天晚上就挤出2个小时到机房刷刷题,打打比赛 周五放学回家顾不上写作业了,把历年的 NOIP D1T1 模拟题刷了一遍练练手感,然后很早就睡啦~ Day 1 这次复赛不在自己学校啦~要跑到挺远的科艺中心去考(据说kkk也在?)…所以没法睡懒觉了呢~ 6点多起来按照惯例在洛谷上求了个签…是中吉~ 提前半小时到了考点机房外发现门还没开…和监考老师在门外等了好久… 进去以后…和想象中差距还是很大的… 机房电脑是一台台并排放置的,没有学校里机房的那种升降板,眼睛一瞥可能就可以看到边上人的屏幕… 显示器的分辨率居然是1024*768?!我人都傻了…这和学校物理实验室的 DIS 计算机差不多 屏幕锁定解除后又把我惊到了…这 WinXP 是怎么回事!(不过仔细想想好像确实只是说提供 Windows 系统,没说是哪个版本的) 电脑上还安装了360…好在我瞬间想起了360可能会把编译好的程序给杀光,于是我立刻把360干掉了 仔细一看发现和通知上说的也有所出入,没有提供 Win 上的 NOI Linux 虚拟机供测试使用,考场上也有人问了,监考老师直接就说没有…需要用 Linux 必须在 Win 下保存在 D 盘后重启电脑… 开考前2分钟左右老师直接用极域把密码条发了下来~不用自己输密码,这点好评~ 拿到题目建好文件夹,我开始读题… 乍一看就格雷码一道是我能做的,当时就傻乎乎地按照题目给的生成算法暴力模拟了一遍…结果居然写出了个 O(N3)O(N^3)O(N3) 算法?!我一看 n≤64n \\leq 64n≤64 这可要命了…但是当时我脑子一热,居然决定开始肝第二题?! 现在想想第一题就算不会更加优化的算法,暴力把 n≤10n \\leq 10n≤10 的情况打个表也有50分了啊…我居然把大面积 TLE 的程序交上去了,哭T﹏T 第二题肝了半天也没有肝出来,卡在括号匹配上了…最后估计能拿个5分暴力 第三题直接放弃(居然是道黑题!),输出样例试人品 Day 1 就这么结束了,出了考场大家都开始骂出题人了… 信竞老师让咱们考完就放掉,好好休息 回到家开始写作业,然后继续早早地睡了 Day 2 只有 Emiya家今天的饭 这道看得懂…我裂开了 突然开始怀念 Day 1 的难度… 今天三道全是涉及到动态规划的,全不会做,凉了 后来证明是两紫一黑 T1 打了暴力确实能拿点分 后两道就继续打样例拼人品啦~ 考完出来心里凉透了,我怕不是要爆零了 这 CSP 真的和 NOIP 无任何关系…难度相差的不是一点点 当晚肝完作业后发现洛谷上好像已经能测民间数据了… Day ? 忘了哪一天了选手程序下发(不像某省居然能把选手代码全部弄丢?!) 我鼓起勇气洛谷上测了一下,结果呢… D1 爆零(没错格雷码那道题全部 TLE ),D2T1 就拿了8分… 结果非常的难看… 后来又去牛客上测了一下,D1+D2 32 分,信奥题库上测了一下 48 分,不知道从哪搞来的民间数据 41 分,总之是这次真的爆炸了 不过咱组里也有200+的巨佬呢~好厉害~(我再次拉低平均水平) 组里高一有一位选手格雷码那题本来可以 AC 的…结果!他!竟然!把 freopen 给注释掉了! 结果直接100分变0分,好可惜啊… 一点感想 这次是我人生中第一次参加信息竞赛,虽然说是白忙活了2个半天和浪费了480块钱,不过至少是感受了比赛的氛围,熟悉了场地和流程 即使没有取得理想的成绩,又如何呢?毕竟,搞 OI 是为了那份热爱,而不是为了拿个多么好的奖,对吧? 接下来要从头开始,扎扎实实地继续努力了呢~ 明年,我还会再来哒~"},{"title":"『不管晴天还是雨天,我只想和你相遇。』——动画电影《天気の子》观影感受","date":"2019-11-05T14:19:17.000Z","url":"/post/weathering-with-you/","tags":[["影评","/tags/%E5%BD%B1%E8%AF%84/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''等待近三个月,跨越夏秋两季,期待已久的《天気の子》,总算是在中国大陆地区上映了,也成功地将一部夏天的电影硬生生地拖到了冬天… 大概是今年6月份中考完,刷推得知《天気の子》将于7.19在日本上映~看了第一部预告片就爱了~很希望能在暑假里看到它呐~ 可惜…现实并非如此…我一度以为《天気の子》或许今年是无法引进了,不过好在结果并没有像2016年《君の名は》那样拖到12月份~ 最初入坑新海诚也是通过《君の名は》这部巨作,之后又补了《言の葉の庭》,也是部很不错的电影~ 原本打算11.1上映首日(周五)就去看的,然而由于上海这一言难尽的进博会调休,11.2(周六)学校还要上课…我吐了 然后11.3白天有点事也没去看,晚上买了票,终于11.4下午迫不及待地赶到电影院~一个人看完了这部电影(好惨 于是就有了这篇影评~ 以下内容包含剧透,请谨慎阅读 以下内容包含剧透,请谨慎阅读 以下内容包含剧透,请谨慎阅读 叙事 新海诚的电影的叙事一直以来饱受诟病,直到《君の名は》的出现,让新海诚电影的叙事达到了一个前所未有的新高度 很多人觉得《天気の子》的叙事较《君の名は》相比退步了很多 然而我个人所持的观点是:二者不具有可比性 《君の名は》的叙事方式可以理解为是多线条式的发展,不同的世界线交织在一起,层次更加丰富,但是作为观众,至少,我在看的时候其实是有点一头雾水的,直到差不多看完才理清楚了其中的脉络 而《天気の子》的叙事用一个词来形容就是“直球”,也就是典型的单线条式,层次较为单一,但是很容易让人理解发生了什么,剧情的走向是按照时间的推移安排的,给观众的代入感我觉得是更强的 二者我觉得都是诚哥的一种尝试,我不能评价说哪种更好哪种更差,也不认为这是新海诚在叙事上的一种倒退 虽然个人更喜欢《君の名は》啦~ 剧情 很多人吐槽最强烈的可能不在于叙事,而是在于故事内容设定… 剧情可以理解为大家所熟知的『电车难题』 即“为了爱,可以不顾整个世界”还是“牺牲一人,挽救整个世界”? 电影中,森岛帆高和天野阳菜选择了前者,而带来的结果就是,东京被暴雨所淹没 因此很多人吐槽这部电影的三观,评价这种行为是不负责任的,是自私的,只顾自己不顾他人安危,甚至拿这部电影的剧情和《大鱼海棠》做对比,意思是都是为了心爱的人不顾一切,《大鱼海棠》被吐槽三观不正,因此《天気の子》也应该被喷三观不正 可是…他们忽视了一个本质的问题啊,东京的大雨在设定中是自古如此的,是自然所造成的结果,而晴女仅仅是拥有献祭从而改变天气的能力罢了,她们没有义务和责任献出自己的生命换取适合人类的生存环境。也就是说,东京的暴雨根本不是阳菜所造成的,她只是有能力改变一下这个局面罢了,至于帮不帮决定权在她的手里,“帮是情分,不帮是本分”,她和帆高为了爱在一起并不能导向暴雨淹没东京的结果,不能道德绑架啊对不对~ 而《大鱼海棠》中的灾难本来就是不存在的,是女主的行为才导致了灾难的发生,是存在明显的直接因果联系的… 因此,我欣赏帆高和阳菜的做法和他们的勇气,却不认可《大鱼海棠》中女主的做法 关于剧情,还有一个重要的东西,就是帆高捡到的那把手枪,有人认为手枪在故事的发展中让人不明觉厉 的确,看到预告片里开枪的镜头时我对剧情的猜测与实际的剧情完全不符… 关于『手枪』的分析,可以参考知乎上的这篇文章,是我所认可和赞成的 至于其他一些比如“一群警察居然抓不住一个16岁的高中生?”、“枪在水里泡了那么久竟然还能用?”、“男主在铁路上跑为什么没人冲上去拦?”、“为什么废弃楼顶上会有神社?”、“东京被淹了为什么电力系统没有挂掉?”等等一系列的想要在电影里寻求真实感的问题,对此,我只能说一句: 我个人认为剧情和设定还是不错的~帆高一直向往着阳光,那其实也是他所期待着的自由与未来,而他周围却充斥着阴沉与暴雨,阳菜一次次地放晴天空,其实也是帆高心中压抑的心情在一点点地放晴 可是当阳菜消失的时候,即使整个东京都是难得的晴空万里,对于帆高而言,他的内心却是瓢泼大雨 “相比于蓝天,我更想选择阳菜。” “我只是想再一次地见到她啊!” “无论你在哪里,我一定拼尽全力去见你。” 他选择了哪怕与世界为敌,也要不顾一切地去找回消失的阳菜,青春的奋不顾身、热血与汗水在这里体现得淋漓尽致 他知道他的选择改变了世界,但他不后悔,因为他明白选择爱,才是他的人生的意义 “爱能做到的事还有什么呢?” “我们都会没事的。” 电影已经不仅仅局限于爱情,故事里还涵盖着对于个体与社会、人类与自然、生命存在的意义的思考 愿我们每个人找到属于自己的天气之子,坚信着,属于自己的晴天,终会到来 『在充满暴风雨的世界里,勇敢地爱下去。』 『我们会等到晴天吗?一定会的。』 画面 画质狂魔新海诚依然在线~ 可惜了家附近的电影院并没有 IMAX 版可以看… 每一帧依旧都是壁纸,有些部分简直有裸眼3D的感觉,在影院里真的被震撼得鸡皮疙瘩都起来了,雨天的景色处理非常到位,雨水落地溅起的水花、在窗玻璃上划过的景象等各种细节都特别的真实 最令人感动的是两人牵手祈祷着从空中落下时的景象,真的太棒了~ 电影里也有许多广告植入,比如麦当劳、苹果、索尼、日清(做杯面的那个)等等,商业片气息浓厚,但是也起到了一个作用就是让故事内容更贴近于现实世界 画面无疑是新海诚所有作品里从来没有让人失望过的 配音 这次主角的配音请的都是新手声优,醍醐虎汰郎和森七菜,没有到很惊艳的程度,但是至少没有给人别扭生硬的感觉,还是可以的 花泽香菜也在声优列表里,值得一提的是电影里有个角色叫花泽绫音,其实名字由来就是两位声优花泽香菜+佐仓绫音的合体,算是个小彩蛋吧 而环境中雨的配音最让我惊艳,雨水的声音非常赞,真的仿佛置身于暴雨中,对于不同细节处的雨水都处理得十分到位,很厉害啊 音乐 RADWIMPS 全程在线~音乐真的很棒!爱了~ 7月份出专辑的时候就买了一张,听着音乐猜剧情 RADWIMPS 的配乐可以说是贯穿了整部电影,其中《大丈夫》、《愛にできることはまだあるかい》、《グランドエスケープ》三首最爱 一直以为《愛にできることはまだあるかい》会是 ED ,真的没想到《大丈夫》会被放在片尾,不过确实让人眼前一亮~ 三浦透子的声线也超好听,《グランドエスケープ》强烈安利 从某种程度上来说,RADWIMPS 的音乐也将这部电影推向了更高的一个台阶 彩蛋 总结 从一开始《天気の子》在我心中的定位就是一部商业片+娱乐片,因此看完说实话还是达到了我的预期的 至少它真真切切地给我带来了感动,带来了视觉与听觉上美的享受,让我意识到没有浪费这两个小时和五十块钱,这就够了 如果满分5分的话,我会给4.5,《天気の子》确实没有《君の名は》在我心中的地位那么高,但是也很棒了~ 而且阳菜她真的很可爱~ 总之依然是一部我所喜爱的电影~ 『不管晴天还是雨天,我只想和你相遇。』 期待新海诚能够带来更多优秀的作品~ P.S. 电影最后没彩蛋!别等了23333 P.S.² 《君の名は》中的立花泷和宫水三叶有客串,泷应该很好找,三叶实际上是中文字幕里的宫本茂(什么鬼!),辣鸡字幕组翻译事故(应该很快会修正的) P.S.³ 请文明观影,不要摄屏哟~(我看电影的时候前面一群小学生全程对着屏幕拍照+录像…无语了=_=)"},{"title":"2019 CSP-S 初赛游记","date":"2019-11-03T01:19:17.000Z","url":"/post/2019-csp-s-1/","tags":[["OI","/tags/OI/"],["游记","/tags/%E6%B8%B8%E8%AE%B0/"],["CSP","/tags/CSP/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''这是一篇迟到两个多星期的游记~ 众所周知,NOIP(某个已经死掉的比赛)已经被和它名义上完全没有关系的不纳入行政轨道的允许任何年龄段参加的 CSP-J/S 取代 作为萌新 OIer 花了50块钱来了趟 2019 CSP-S 半日游~ Day 0 首先交代一下概况~ 坐标 SH ,全国少数采用上机考试的城市之一 今年报名人数3000+,比去年多了1000多人(不过来打酱油的小学生很多…) 然后咱高中是今年上海的几个 CSP 认证点之一~在自己学校的机子上考真好~ 闲得无聊翻着考场名单突然发现某沪上知名 OI 教练竟然真的报名参加 CSP-S ?! 今年机考其实是可以用 DEV-C++ 的!特派员来我们学校的时候还特别说过… 考试前一天晚上刚从东方绿舟军训回来…虽然累炸了还是做了套某机构出的纯选择题的模拟题,大概75左右,稍微松了口气 然后就是特意把图论的最短路算法、二叉树的性质和遍历、深搜广搜、链表、指针以及计算机基础常识复习了一遍,最后才睡觉 Day 1 因为就在自己学校考不算很远,睡了个小懒觉才起床… 状态不错地提前45分钟到达学校,老师让咱先去科技楼一楼某教室等着…然后我才知道一楼角落里藏着的某个不起眼的教室居然配备了一堆高配电脑???一群高二的巨佬正在打游戏… 拿出手机上洛谷求了个签,大吉~宜参加 CSP ,RP++ ,宜泡妹子(?!) 不过咱机房有人开出『吉,宜丧葬』的…感到大事不妙 等了大概半小时上楼到机房,监考老师是个大学生小姐姐~拿着似乎没啥用的金属探测仪给每个人扫了一遍(每个人都会响…) 坐到电脑前,发现电脑不知被动了什么手脚,竟然比平时卡了不少…屏幕右下角的电子监考系统居然是灰色的未启用状态,老师全程硬核人工+极域监考…硬盘和U盘倒是做了屏蔽工作,网页的屏蔽用的貌似是极域,并没有用到什么物理防火墙… 环顾一下考场确实有很多小学生… 然后开考前五分钟老师公布考试网址并下发密码条,不过她还没等我们反应过来就拿起墨水的白板笔往机房的电子白板上写…全然不知头顶上为什么会有个短焦投影机…目测应该是毁了电子白板… 输入网址回车,盯着 Chrome 选项卡上不停旋转的圈圈,我有种不详的预感… 果不其然,CCF 的姥爷机爆炸了! 在全国各地考生的帮助下,CCF 完成了 CSP (CCF Server Pressure test) 并拒绝了所有请求 当然机房里也有那么一两个幸运儿能够顺利登录,但是题目也加载不出来 等了20多分钟终于咱信息老师冲进机房说换服务器了…我抬头一看…woc这不就是模拟赛的服务器地址嘛… 这次终于登上去了,开始做题~ 考试系统长这样: 完全是 N 年前的风格啊喂 关于题目后面再说… 开考后过了没几分钟,我明显感受到我左侧机位坐着的小学生已经坐不住了…果然小学生多数都是来打酱油的2333333 由于服务器的故障考试延期到11:55交卷,还算厚道,不过提交时依然很堵塞,还有人提交的时候要求重新登陆,登陆完发现答案全没了(太惨了) 我卡着点交了卷走人~ 出了考场看了知乎和洛谷才知道 SH 很多考点考生都不敢用 DEV ,幸好咱老师明确说过可以充分利用网络外的一切功能,赚到了~ 然后来说说题目吧…就是这次初赛我死得很难看,爆零预定(x) 『十年OI一场空,一道状压见祖宗』 考前我觉得dp不会考,而且我也没学过,没想到选择题考了一道,压轴题又考了一道状压…只好全蒙A(为什么不蒙C呢?因为希望这题能 AK ~) 然后弗洛伊德不贪心…掉坑(本来选了弗洛伊德算法后来犹豫不决改 Prim 算法然后错了…) 无向非联通图再次掉坑… 字符串处理题完全看不懂在干啥,不过 cin 不能读入空串倒是考虑到了… 车牌号那题想了好久没做出来,也是瞎猜的 当然这次初赛里也有几道原题,考前在军训的时候把 2008-2018 NOIP 初赛都刷了一遍,还是挺有帮助的 可惜我复习到的二叉树遍历、指针链表完全没考…计算机基础知识也基本没有涉及… 当晚民间答案估分60左右,不知道 SH 分数线咋样(感觉可能要 AFO 了) 2019.10.28 从24日开始,部分省份已经陆陆续续地开始公示成绩了,然而 SH 却迟迟不肯放出成绩 27日晚,我又反复刷了几遍 NOI 官网,却依旧没有新的通知… 28日早再次查看依然没有… 28日中午在学校吃完饭,想用教室的电脑查成绩,发现 NOI 网站…它…它居然关服了?! 于是乎吃完晚饭晚自修还没开始,我又查了一下,终于… SH 出现在了列表里! 心情真的是特别忐忑,在巨长的名单里翻了20多页找到了自己的考号… 好耶~竟然有70分!晋级第二轮了!果然 rp++ ~ 松了一大口气…然后闲得无聊看了看其他选手的成绩… 神奇地发现疑似某谷kkk选手: (虐菜来了?) 以及来自华二紫竹的chenzhe巨佬: 还有…某教练?! (这绝对是放水了吧喂qwq) 还有发现很多小学生都是爆零的,应该是缺考吧…可见这次第一轮报名的3000人中确实有很大一部分其实是来打酱油的… 晚上回到家发现信竞群里老师发了消息,我们全员通过~有一位还是 SH 前十名!(我给大家拖后腿了…大家普遍75+) SH 分数线划到 50 分,还是挺出乎我意料的,去年 NOIP 分数线在30多分,今年这全部选择题的架势感觉分数会涨不少,结果也并没有上升多高… 进入第二轮一共约900人,我排位已经到300名开外了…不过低分飘过也是很不错的了… 总结 作为 CSP-S 第一届的参赛者,以我的角度写了这篇游记~ 希望明年 €€£ 收了这么多钱可以考虑换台好点的服务器…请放过那台姥爷机… 马上又要复赛了,碰上期中考试…唉…先准备期中考吧qwq 那么祝愿自己复赛继续 rp++ 祝 OIer 们早日 AK ~"},{"title":"周记#19","date":"2019-10-07T01:19:17.000Z","url":"/post/weekly-19/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''恭喜您已过完本年度所有法定节假日Σ( ° △ °|||)︴ 又是几周过去,转眼我进入高中已经一个多月啦qwq 和同学都已经差不多混熟~那么这篇特水的周记就记录一下这一个月的见闻吧~ P.S. 原谅我这糟糕的文笔,只能想到啥写啥╮(︶﹏︶)╭ 社团与选修课 首先当然要吹爆咱高中的选修课和社团!品种丰富任你挑选,完全不用担心没有适合自己的 虽然选课要拼网速,热门课程在1-2秒内就会被秒杀… 选修课看中 日语 和 智能控制 两个课程,斟酌再三还是选择了后者~ 给咱上课的老师超棒~课上手机随便用,同时还要求我们学会某个神奇的技能(帆强) 社团我如愿以偿加入了学校的网络工作室,不过…只是打算混在里面摸个鱼2333 食堂 经过第一周的恐怖的排队体验,许多同学纷纷选择投诉学校食堂… 于是现在不用排长队啦~终于可以安心吃饭啦~ 于是乎在班长的带头之下我们经常提前溜去食堂恰饭…所以我吃了好几次学校限量供应的牛肉面~ 浇头里的牛肉超级酥烂,微微有点辣却不会让人不适,面条劲道,总之就是好吃到炸~大冬天来上一碗热腾腾的简直不要太爽~ 打菜窗口的烤鸭腿、咕咾肉也好次~和我的初中那个破食堂相比简直是太幸福了~ 信竞 忘了哪一天了全市统一举行了 CSP-S 初赛模拟,上海的确是采用机考的省份之一,但是也就是把纸质版题目照搬到屏幕上而已… 槽点么一大堆… 首先辣鸡 CCF 懒到题目都不出全,只有20道单项选择题,很多还都是 NOIP 2018 提高组初赛原题 其次比赛系统就是个摆设… 做完提交后竟然告诉我20道选择题全部爆零???差点没把我吓死→_→(好在后来发现大家全部集体爆零 所以到现在依旧没有收到结果,看来这次模拟只是走个过场23333 然后上周接到通知今年的题型居然改了!真的只有40道的选择题,完善程序和写结果都没了…感觉有点慌,不过好消息是初赛就可以颁发证书~(花¥50买张证不亏) 还有咱信竞校队来了唯一一位女生~而且是个拿了PJ省一的巨佬~ 每周打一次的比赛,我都被虐得好惨qwq不过终于开始每次可以拿点暴力分了,荣幸成为高一没爆零的选手 国庆呢放弃了原本打算去的 Bilibili World 继续参加 OI 集训… 国庆打了场比赛还出了一些玄学的问题,T1爆零,然而我用老师下发的测试数据在我自己的电脑上测明明有20分的…同样的数据换到测评机上就爆零… 测评系统也很弱智并不能给出究竟是WA还是MLE或是TLE,所以找不出原因 唯一的区别就是我的电脑是 Windows 测评机是 NOI Linux (别问我我的电脑为什么不用 NOI Linux ),但是换行符等问题也注意了呀,真是玄学了qwq 可爱的同学 事情是酱紫的,为了方便布置作业,老师建了个群,于是乎咱某位可怜的同学开学三周了却依然不知道老师姓什么,更不知道老师在这个群里… 然后就发生了下图的这一幕: (在线 MMP 并全然不知对方是老师…) 再然后同学群就炸了: 最终这位可爱的同学被罚帮忙搬作业~不过话说回来老师并没有真的生气,只是哭笑不得23333 事后,我们对于 MMP 找到了“线粒体膜电位”这个“通顺且合理的解释”~这位同学的英勇事迹已经在全年级广为人知 国庆假期 整个假期除了参加了几天 OI 集训外基本上窝在家里写作业+摸鱼~ BW 没去成…不过以后还有机会~ 然后就是挑了半天去上海首家 Costco 逛了逛~ 购物体验糟糕,进店要排长队,店内人挤人,购物车到处都是,堵得一塌糊涂… 想吃的烤鸡居然要等到下午三点才有,所以没吃上 东西么分量大,价格还算可以,买了¥65的披萨有18寸那么大,料足味道好,性价比高值得买~ 接下来的安排 十月份要参加第二次军训(上海高中军训5+5,一次暑假一次开学后),全市统一在东方绿舟~ 所以又要与世隔绝五天啦…希望这次的条件不会那么糟糕… 然后期待已久的『天气之子』11月1日中国大陆上映!!!刚好周五,打算一放学就去看!等了三个多月了qwq终于来啦~ 吹爆 tenkinoko !影评预定√ 那么这篇周记就是这样啦~我们下个月再见(逃"},{"title":"周记#18","date":"2019-09-08T01:19:17.000Z","url":"/post/weekly-18/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''转眼已经开学一周,我也正式成为一名高中生啦(/≧▽≦)/~┴┴ 最近我的博客更新突然变得频繁起来…甚至连周记都变成了“真●周记”(Flag立好 那么废话不多说咱就一起康康这周都做了些啥吧~ 日常作息 因为一些原因没有选择住宿(虽然咱高中住宿条件真的不错) 所以每天是6:00起床,17:30放学,21:30晚自习下课,22:00回到家,有时作业没写完就再奋战一会儿,大概23:00睡觉~ 一周下来感觉仿佛回到初三(累炸 不过幸运的是由于刚开学周末作业并不多~周末睡了个懒觉 校园概况 学校校园还挺不错的,炒鸡大(至少和初中相比),有400米标准跑道以及超大的体育馆,以及各种大楼~ 食堂也很棒~拿着校园卡就可以去窗口打菜~品种多有的选,味道也很好 唯一问题就是食堂排队…一言难尽,到的早5分钟就可以吃上饭,晚到1-2分钟基本上就要排队20-30分钟,后果就是没时间恰饭了TAT 尤其是上信竞课的时候(后面会讲)本来预留的吃饭时间只有30分钟,光排队就占了20多分钟,饭也基本不能吃了(哭 然后就是成为了班里的信息管理员,咱教室的设备也是杠杠的~居然还有 EPSON 互动式投影仪这种高端设备,投影在任何的平面上都可以触屏操作,目测应该是利用红外和笔尖压感检测触摸点的坐标和压力值…不过个人感觉这个功能很鸡肋,因为书写延迟好大,基本没老师会用 信息学竞赛 开学后信息学竞赛每周两次课,而且都是占用晚自习3小时中的1.5小时,这也就是为什么上完晚自习还写不完作业 因为占用的时间太多,我们学校高一搞信竞的人真的是少 自己班级里原本算上我有3个人的,开学之后只剩2个,这周过去就只剩我孤身一人了QwQ 其实这一周里我也犹豫过要不要退出,尤其是当班级里最后一位同学也告诉我他要退出时,但是我想了想还是选择坚持下去 所以整个小组高一的算上我可能就3-4个,主要都是高二高三的巨佬们~ 信竞开学第一节课就打比赛~这也太刺激了点吧!拿到省选难度的题目我整个人都不好了,好多都没学过啊,绝对爆零预定 幸好老师说高一的打打辅助就行了,可以不提交代码上去评测 于是乎我们高一的面面相觑,T1一上来就把我整蒙了,题目好复杂没怎么看懂,于是果断pass(后来才知道这是道暴力模拟题,也是这次三题里我们高一唯一能做的一题) T2至少看懂了,想了一会儿也有一个大致的思路了,但是写到一半还是卡壳了,因为感觉是需要用到递归可是思路又很混乱完全不知道怎么写,于是手动套了几层循环,至少对于较小规模的数据是可以出答案的,样例数据输进去也AC了 可是当我看到“对于30%的数据,n<10000”时…emmm…我虚了,感觉似乎顶多骗个10分 T3完全没思路,pass 我边上一位高一的用了2小时死抠T1,可惜也没做出来,直接CE 最后当然是全部爆零,T2爆零也证明我的方法空间复杂度实在太高,就算递归写出来了也是过不了的,前4个测试点估计是测试数据太大了WA,后面6个测试点直接就MLE 然后就是今年 CSP 有消息了,果然还是熟悉的配方+熟悉的味道(初赛依旧是笔试,只是可能电子化), CCF 又开始有钱收了,以前只知道 NOIP 报名费很贵,却没想到居然贵到初赛 50 元/复赛 480 元,有点犹豫今天要不要参加~~,还是说参加个 CSP-Junior 什么的~~ 同学校友 咱班同学绝对个个都是人才~学习又好,而且人手一本老司机证,开车快到离谱~ 然后有个惊奇的小发现,就是我在bilibili 很早以前就关注的某位快要 10W 粉的鬼畜+音乐区阿婆主居然是我们高中高二的!同时他还是网易云音乐签约音乐人,并且我还听过他的电音!第一次感觉 dalao 离我这么近~ 总结 高中的第一周总体还是很充实哒~虽然忙+累到吐,可是也有令人高兴、轻松的时候,未来还有三年,也要坚持下去、努力加油呀^0^~"},{"title":"周记#17 - 暑假大事记","date":"2019-08-31T09:29:21.000Z","url":"/post/weekly-17/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''转眼间这个愉快的暑假就已经过去啦~(内心OS:不!我还没玩够!˚‧º·(˚ ˃̣̣̥᷄⌓˂̣̣̥᷅ )‧º·˚) 所以说明天就要踏入新高一的教室了呢~(其实早就已经去过了…) 那么就来回顾一下这个中考结束后疯玩的暑假吧~ CJ 嗯…这个在上一篇周记中已经十分详细地写过了,请移步: 周记#16 - CJ 初体验(多图预警) 上海五日游 说实话,在上海生活了这么多年,我也没觉得上海的那些景点有什么好玩的 不过由于八月份我哥来上海啦…所以我花了五天时间带着他走马观花到处乱转 事实证明确实…好像没什么好玩的ㄟ(▔ ,▔)ㄏ 大概就是去了外滩南京路步行街豫园城隍庙新天地七宝老街自然博物馆上海博物馆科技馆交通大学复旦大学陆家嘴世纪公园闵行体育公园… 咳咳…让我喝口水 就写写被坑到的经历吧…如果各位来玩的话应该有点帮助 在豫园(城隍庙)里面的路边摊小吃可以随便尝尝,但是里面有一家打着老店名义的南翔馒头店,主要是吃小笼包的,排队巨长人超多的说…网传评价很好 当然我以前从来没去过这家店,这次就狠下心来排了个队…想看看到底怎么样 事实证明不咋样…价格以及等候座位的时间先不说,光是味道我觉得也没比我家边上的小店要好多少 再说价格…人均¥83却完全吃不饱你信么…不仅贵量还少 总之就是这家店踩雷…要吃小笼包还是找找小店去吃吧 然后就是别买黄牛票…(道理应该都懂)还有如果是学生的话务必带好学生证,很多景点对于学生优惠力度还挺大的~ bilibili 总部打卡 其实这个应该算在上海五日游里的… 从复旦大学出来后时间还早,想着好不容易坐了特别特别久的地铁大老远来了杨浦区,干脆去 B 站总部看看~ 比较麻烦的是 B 站总部所在的国正中心位于江湾体育场和三门路两个地铁站直接,所以我只好开了辆共享单车骑车过去 一路上被导航带偏了 N 次,大太阳的骑得我差点累晕… 好在顺利到达国正中心~然而不巧的是我是从后面进去的,没有一眼看到 B 站大楼,于是乎在一堆的高楼大厦间又是绕了很久才找到 话不多说上图: 可惜大楼内部我没敢问,估计是不会让我进去的 楼下有一家「哔哩哔哩 X 罗森」主题便利店~进去逛了逛,到处都是 B 站的主题元素~ 饮料柜上的小电视和2233娘~ AWSL 店里还有 B 站周边可以买,不过和在线会员购价钱一样就没什么吸引力了,不像 CJ 上还便宜个几块钱… 边上还有和 Costa 咖啡合作的另一家主题店,不过咱不怎么喝咖啡没进去… 军训 好日子到头了,前几天刚刚从崇明岛军训回来… 怎么说呢…那里的日子真不是给人过的 其实该基地上个月貌似刚刚被查出食物中毒事件…估计是有什么 PY 交易的关系,咱区很多学校都去这个基地军训 住宿、伙食都糟糕到极致…幸好我提前准备了压缩饼干,一小块吃下去再来点水就能饱 然后…再来讲讲寝室… 前方高能 正在吃饭或喝水的请先吃完或喝完再看下去(勇士可以直接上) 我们一进寝室就闻到一股恶臭…是的,你估计已经猜到了… 没错!在窗边的某张床上铺的席子上… 静静地躺着两坨… 黑色的、似乎已经干透的… emmmmmmm… 我还是不继续说下去了,我自己都要吐了 (别问我们最后是怎么解决的) 回母校 军训完就立刻赶到小学看老师~ 我自从小学毕业之后就没有再回去过…转眼已经四年过去了 再次踏进似曾相识的校园,尘封已久的记忆缓缓打开… 果然,咱还是没能逃脱「母校一毕业就装修」的万年定律 记忆中校园里的天桥被拆除了,二楼通向天桥的小门也被水泥封死,一栋崭新的大楼不知何时在一旁拔地而起 曾经泥泞的小路被铺上木栈道,脚在上面行走发出悦耳的声响 校园气象站的百叶箱依旧矗立在那里,周围的树木郁郁葱葱,校园里几只猫在草地上窜来窜去,时不时地叫着~ 见到了曾经的同桌、曾经的同学、曾经的老师、曾经的教室,岁月让每个人都有所改变~ 我还被小学老师抓去干苦力惹 和小学同学、老师聊完已经下午四点多了,又和小学同学出去逛了书店、玩了电玩,再聚了个餐~一直浪到晚上九点多才回家… 三年后,一定再来~ OI 暑假开始入坑,语言基础上手很快…但是后面的数据结构部分看得我一脸懵逼…结合着浙大的慕课讲解稍微大概看懂了? 由于某些原因没有参加暑假里的学校培训,导致语言基础和数据结构两部分只能在家自己看书刷题,至于算法要等到开学后再学啦 军训几天认识了咱班上的一位 OI 大佬,我这个蒟蒻瑟瑟发抖… 不过和他聊得挺开心的XD很少有遇到和我志趣相投的人,他绝对算是一个~ 然后就是 NOIP 取消事件让人猝不及防,新推出的 CSP 认证也不知道是个什么模式,我们这届好惨 不过就算 CSP 含金量下降、对于高校自主招生没有帮助,我想我也是会去参加的,因为我不想以功利的心态去搞 OI ,而是出于一种发自内心的热爱~ 总结 总体来讲,这个暑假可以说是特别精彩了,尽管依旧有成堆的作业、各种衔接课程,但是,也是我玩得最爽、最充实的一个暑假了~下一次,大概或许可能就是在三年之后了吧~"},{"title":"记一次黑苹果下 AMD 显卡驱动注入经历","date":"2019-08-22T08:46:43.000Z","url":"/post/amd-graphic-card-injection-to-hackintosh/","tags":[["黑苹果","/tags/%E9%BB%91%E8%8B%B9%E6%9E%9C/"],["AMD","/tags/AMD/"],["显卡驱动","/tags/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8/"],["Clover","/tags/Clover/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''不要问我为什么刚用 Ubuntu 体验完了伪 macOS 却又格盘玩起了黑苹果~ 0x01 前言(都是废话 简单讲一下我的黑苹果安装过程吧~由于电脑支持 UEFI ,咱就选择用 GPT+Clover 的方式安装黑苹果啦~ 刚开始,一切进行得十分顺利~写 U 盘、格盘分区、安装系统、配置引导一条龙走下来就看到 macOS Mojave 标志性的暗色主题桌面 然而…在使用过程中却发现系统异常的卡顿,Dock 和顶栏的半透明效果也没有出来,窗口边缘还有明显的粗糙锯齿和黑线… 凭借咱多年的经验这一看就是显卡没有驱动嘛… 点开「关于本机」一看果不其然,显存仅有 8MB 且显卡型号也没有识别出来~ 然而咱这显卡貌似比较冷门:AMD Radeon R9 290(无 X )4GB 显存版,远景论坛上找了一圈只找到 R9 290 X 的驱动方式,而且早已是几年前的帖子了,对于最近的 Mojave 版本估计不起作用了 不过凭借着咱翻国外论坛的技术,还是找到了利用 Clover 注入显卡 ID 从而实现驱动的办法~ 0x02 核对显卡配置 首先要核对一下我们用的是不是同一款显卡,不然该文章可能导致您白忙活… 参照此链接可快速判断你的 AMD 显卡型号: 什么?!你是 N 卡用户?那你来这干什么啊qwq 请确保「子系统供应商 ID」为 1002 ,「设备 ID」为 67B1 ,完整的型号是 AMD Radeon R9 290 Device Hunt 截图如下: 到这里都符合的话就可以继续看下去啦~ 0x03 注入驱动 打开 「Clover Configurator」 (如果你不知道这是啥说明本文并不适合你w) 挂载 EFI 分区 挂载完成后用 「Clover Configurator」 打开该分区中的 config.plist 文件 设备设置 在 仿冒 ID - ATI 中 输入 0x67B01002 显卡设置 「FB 名称」设置为 Hawaii ,「显存」设置为 4096 ,「显卡端口」设置为 4 ,Display-cfg 设置为 067B0100 2 最后勾上「注入 ATI/AMD 显卡」即可 保存 这个别忘了… 0x04 后续操作 重启你的电脑… Then, enjoy~ "},{"title":"周记#16 - CJ 初体验(多图预警)","date":"2019-08-05T07:26:04.000Z","url":"/post/weekly-16/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''没错!在调课大法的帮助下,我终于参加了人生中的第一次 CJ ~(好耶) 咱是 8.2 ChinaJoy 首日去的(因为门票相对便宜qwq),原以为人会很多的说,但是并没有我想象的那么多呢,估计周末两天人数会暴涨~ 由于我毕竟不想孤身一人跑到大老远的浦东 SNIEC 奋战,我一蒟蒻又不敢和大佬面基,所以就约同学一起去逛啦~ Vlog Hans362 首支 Vlog 出炉~ (function(){var player = new DPlayer({\"container\":document.getElementById(\"dplayer1\"),\"video\":{\"url\":\"\",\"pic\":\"\"}});window.dplayers||(window.dplayers=[]);window.dplayers.push(player);})() 由于光顾着逛了居然没拍多少照片,所以用仅有的素材勉强剪了一个~凑活着看吧qaq 战果 由于初次参加完全没做好攻略,战利品实在是少呐… AcFun 限定包子头 Bilibili 小电视公仔 Bilibili 夏日冰垫(2233娘) 猴山小卖部购物袋 BiliBili 定制袋 IP 小站定制扇 小米游戏定制袋(超大的说) AORUS 定制扇 小米彩虹电池(给同学了) 魔爪运动饮料 小姐姐们(装进手机里啦~ 参观感受 原谅我流水账般的文笔(ಥ﹏ಥ) 到达后走普通观众通道,在 W1 缓冲区排队,那里地下刚好是地铁,全是车轮和铁轨摩擦的声音,特别吵 展览分 E/N 两馆, E 馆主要是科技硬件产品, N 馆主要是游戏动漫,可根据个人喜好分配时间~(当然准备连逛好几天的请无视) 一进去首先是 Intel 展馆,看到超多的高端游戏主机呢~和同学疯狂到处试玩,配置都特别壕一看就根本买不起的那种~ 其次就是高通骁龙展馆啦~ 这次小米也来参展了耶~作为米粉当然不能错过,到处玩游戏/参加活动赚取米币,最后两人组团搞到了6个~其中2个被我拿去玩抓娃娃机可惜没抓到,剩下的给同学换了小米彩虹电池~ 小米展台的小姐姐好漂酿~ 去体验了小米5G然鹅现场翻车…SpeedTest始终连接不了服务器…工作人员略显尴尬地解释是电信临时基站的问题(甩锅) (function(){var player = new DPlayer({\"container\":document.getElementById(\"dplayer2\"),\"video\":{\"url\":\"\"}});window.dplayers||(window.dplayers=[]);window.dplayers.push(player);})() 此次小米展台还仿照了 小米 9 透明探索版 的设计,在展台内埋下了 9 个彩蛋~但是和同学找了好久只找到 5 个…其余的完全找不到…(眼瞎) 值得一提的是参加小米手环心率挑战的时候貌似还被拍了qwq~我这是要上电视了吗(不,想得美) 此外还见到了搭载 高通处理器 + Win10 的笔记本电脑耶,试用了一下浏览网页什么的还是很流畅的,或许是未来轻薄本发展的方向呢~ 后面忘了在哪个展区玩了扭蛋机,和同学一人各开了一个,超贵的说,不过很有意思 接着逛到 NVIDIA 和 AMD 展区,竟然发现两家是邻居?!不会互掐起来么 AcFun 和 快手 是在同一个展台,买到了AC娘的包子头(Vlog 里写成丸子头了不过差不多)可惜来的不是时候没看到AC娘~ Bilibili 展台人特别特别多,简直是人挤人,购物排队巨长,不过还是耐心排了买到了小电视公仔和冰垫~比网上会员购便宜~(其实咱排了3次购物队的说 B站展台去了3回,可惜都不是时候,33娘要么没来全,要么是准备撤了~不过还是拍了些照~还遇上小电视了~ 最后是到处瞎逛拍的照~ “你来 CJ 干什么”系列~银行的小姐姐还问咱要不要办信用卡2333 各大展台的 Showgirl 育碧、XBOX等厂商~ 从 E 穿到 N 时无意间拍到的~8月2日上海天气真的给力~周末两天再去的话就下雨了 什么?!你问我为什么有的照片辣么模糊或者角度刁钻?大概是太鸡冻了吧qwq手抖了,好可惜啊没拍好(摄影技术渣到家了 Tips 这次 CJ 踩了不少坑,所以给初次参加 CJ 的小伙伴们列了一些注意事项: 可以带水和食物 这次我被网上的说法误导了…明明安检是允许带水和食物进去的(哭 导致我在里面消费了¥4/瓶的矿泉水(展台送的是饮料不解渴 有条件尽量自带午饭 馆内的全家、麦当劳、咖啡馆又贵又难吃,麦当劳只有包装好的套餐,全家盒饭品种少且难吃,咖啡馆贵到离谱 (有钱的大佬可无视 手机信号问题 手机信号特别糟糕(我是魔都电信4G),在全家便利店里支付宝/微信连钱都付不了,建议携带少量现金以备不时之需,同时建议不要在馆内电话找人,因为电话打不通/很嘈杂 到馆/出馆时间问题 虽说早上9:00正式开始入场,但是一般都会提前很早开放的,我8:30到达已经足够~不必赶太早~ 但是也别中午再来,因为中午人一下子会暴多的(至少我那天是这样的) 住得远准备坐地铁回去的话离场建议下午 15:30 ,我们 16:30 走人结果遇上花木路站地铁限流,排队+晚高峰好痛苦的~当然如果不在意的话也可以晚点再走~ 交通问题 地铁是最佳选择,L2/L7龙阳路站,L7花木路站均可,但是要查清楚出入口与地铁站之间的距离… 这次我 L10=>L2 龙阳路出站,稍微步行个5分钟就到达 SNIEC 普通观众入口了~但!是!逛完出来惊讶地发现出口离 L2 龙阳路站有 2.2 公里,L7 花木路站却只有几百米…于是只好 L7=>L2=>L10 换乘两次… 不到迫不得已建议不要打车,碰上晚高峰堵车有你好受的ㄟ(▔ ,▔)ㄏ 而且车费贵 拍照问题 建议组团出行呢,以免遇上小姐姐却没法一起合影~ 另外脸皮要厚(像我就不行了,错失良机),找准时机主动上去征求小姐姐同意,一般不会拒绝的2333 当然现场人超级多时挤不挤得上去也是个问题 购票及检票 建议网上购票,微信小程序“CJ 魔方”可订,还有随机立减优惠~ 一个手机可以订多张票,入场时连刷几下就可以了,大麦网也可订票,和微信小程序走的是同一个通道~ 购票一定要去官方渠道,别找黄牛 总结 首次 CJ 就这样结束啦~感觉玩得还挺高兴的~ 这次总开销如下:(钱包被掏空,哭T﹏T 当然也有一些小遗憾啦~比如没能和33娘合影(果然脸皮不够厚)、完美错过 Bilibili 展台的所有表演(没看节目单┑( ̄Д  ̄)┍),以及感觉只来 1 天只能急匆匆地逛完、想再来一天呢w 要说明年还来不来,当然是想来啦~不过大概率是来不了TAT 以及下次要来还是得第二、第三天来(虽然人多票价贵),首日小姐姐好少的说~"},{"title":"给你的 Ubuntu GNOME 桌面带来类 Mac OS 的体验","date":"2019-07-24T09:09:00.000Z","url":"/post/mac-os-theme-on-gnome/","tags":[["Ubuntu","/tags/Ubuntu/"],["macOS","/tags/macOS/"],["GNOME","/tags/GNOME/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''前段时间吃饱了撑的拆了台废旧的笔记本电脑,主板已经被玩坏了,拿去修成本太高,因此我就把里面的硬盘拆下来玩玩~硬盘的型号是 Seagate Momentus PSD 160GB 混合型硬盘,接口是 SATA ,于是弄了个笔记本硬盘盒一装,S.M.A.R.T. 信息、坏道检测都没有问题呢,就变身我的移动硬盘啦~ 正巧一直想要给电脑搞个 Linux 系统,就参照了 Little_Qiu 大佬的一篇文章: Ubuntu To Go | 制作属于你的随身 Ubuntu 系统盘 我将可爱的 Ubuntu 18.04.2 LTS 顺利装进了口袋里~n(≧▽≦)n 可惜…个人不太喜欢 GNOME 默认的拟物化主题…(可能也有挺多人喜欢的吧qwq…)所以决定给咱的 Ubuntu To Go 来个大改造! 毕竟, 好看是第一生产力。(雾 (上图即为最终效果图) So…这篇文章就诞生啦! 准备工作 系统环境 本文所使用的 Ubuntu 系统版本是 Ubuntu 18.04.2 LTS-amd64 ,运行的是默认 GNOME 3 桌面,未进行任何改动,其他 Ubuntu 版本由于精力有限我没有测试过,不能保证本文的教程完全适用于您的系统。 如果您想一次性成功…建议您还是重装系统至相同版本呢~ 更换源 什么?你告诉我国内有那么多速度快到飞起的大学开源软件源你却放着不用?(当然身处国外的大佬们当我没说… 如果不更换软件源呢,由于一些我们都知道的原因,在进行软件安装时速度怕不是会慢到你怀疑人生~ 要是你不在意…咳咳…当我没说… 至于怎么更换我相信各位都知道就算不知道也知道该去哪里让自己知道~(突然口胡 其他需要的物品 一台运行着上述操作系统的电脑,内存建议>=4GB ,另外尽量上A卡或N卡,I卡用户需要注意后文有些插件不能开启(会在相应插件处标明的),否则可能花屏闪瞎你的眼。 互联网连接。 你的脑子。 开工! 软件包安装 直接无脑打开 Terminal 运行以下指令即可: 主题安装 下载以下文件(主题作者: vinceliuice ) 亮色主题 / 暗色主题 (根据个人喜好二选一下载) 亮色图标 / 暗色图标 (根据个人喜好选择,但是注意亮色图标只需下载亮色图标文件,暗色图标则二者都需要下载) 鼠标指针 以上链接为方便均从本博客图片服务器上下载,如果不放心也可自行前去作者 GitHub 下载。 下载完成后将所有压缩包解压,并存放于下列相应的文件夹中: 主题文件 /usr/share/themes 图标文件 /usr/share/icons 鼠标指针文件 /usr/share/icons 插件安装 使用 Ubuntu 自带的 FireFox 浏览器,访问 GNOME Shell Extensions ,首次访问会提示安装浏览器插件。需要注意的是, Ubuntu 自带的 FireFox 并非最新版本,会导致浏览器插件可能无法正常安装,所以强烈建议: 浏览器插件安装完成后,在 GNOME Shell Extensions 依次搜索并安装以下插件(只需无脑 ON 即可) Appfolders Management Extension Blyr(I卡用户注意慎用,一旦出现异常请立刻关闭) Coverflow Alt-Tab Dash to Dock 该插件需要额外配置,右键你的 Dock 点击 Dash to Dock 设置: 参照下图进行配置: Frippery Move Clock Poppy Menu 该插件需要额外配置,左上角的图标并不是小苹果,需要自行调整。 在~/.local/share/gnome-shell/extensions/Poppy_Menu@dies/Resources中将两个 .svg 的图片替换成小苹果即可。 点击 小苹果 你会发现菜单全是英文,可在 ~/.local/share/gnome-shell/extensions/Poppy_Menu@dies/ 手动翻译一下。 Gnome Global Application Menu User Themes Removable Drive Menu 主题配置 打开 优化 应用程序 (Gnome Tweak Tool) : 按以下图片进行配置: 需要注意的是,苹方字体需要自行下载并安装哦~ 后记 到这里为止,你的 Ubuntu 系统已经和 Mac OS 有着 90% 的相似度了,当然还有许多细节没有完善。比如开机动画、登录界面等,我也曾按照他人的教程尝试过这些方面的美化,但并未成功,留给各位自己去探索啦~ 怎么样,是不是很简单?(好吧我承认太复杂了写这篇文章就累得半死还是买 Mac 吧 鸣谢 非常感谢以下文章作者: 教程:为你的linux桌面带来Mac OS Mojave的体验 Ubuntu18.04(Gnome)环境,十分钟配置Mac OS主题 我参照了以上文章,亲手尝试后针对 Ubuntu 18.04.2 LTS 从头重写整合了这篇教程,并在原文中没有提到的注意点做了补充、错误疏漏的地方进行了修改。"},{"title":"周记#15 - 中考简报","date":"2019-07-08T06:55:06.000Z","url":"/post/weekly-15/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''各位,还记得上一篇文章么? 转眼几周过去了,被我疯狂吐槽的中考也终于出分了… 「查中考成绩是一种怎样的体验」 7月6日出分的前几天,我已经开始不安地刷着知乎,准确的来说,是在看「查中考成绩是一种怎样的体验」这个问题下的答案,惊喜、失落、激动、懊悔轮番出现在我的眼前,我不知道我将要面临的又会是哪一种。 虽然在上一篇文章中,我给自己的估分是:580分~610分,但是,我还是暗暗期待着自己能够上600分,甚至有时,我觉得我一定可以上600分。 不巧,查分那天我刚好在从老家回上海的高铁上,大约是下午4点多,距离傍晚6点查分只剩下一个多小时,我的手机一直停留在查分页面,我一遍遍地刷新着三个查分系统:教育考试院、东方网、市政府一网通办,跳出来的都是「查分尚未开始」。 直到5点42分,这个时间我可能永远不会忘记。教育考试院和市政府依旧不能查分,但是东方网却神奇地不再弹出「查分尚未开始」的窗口。我试探地把考号密码输进去,填上验证码,以为会和几天前一样弹出「账号密码错误」,我毫不犹豫地轻轻按了查询按钮,没想到页面开始刷新,还没反应过来,大概就那么几毫秒,毫无防备地我的目光就落在了「总分」一栏上。(内心OS:说好的查分系统会很卡结果怎么这么顺畅?! 我 TM 就是个笑话 598.5分。 我倒吸了一口凉气,整个人僵在了座位上,手脚冰凉,大脑已经一片空白,耳边嗡嗡作响,感觉眼泪就快涌出来了。多希望这只是场梦… 「别急」我安慰自己,毕竟我可能是全市前几位知道分数的考生(提前了18分钟… 「万一这次难度确实高,分数被压下来了呢?」我这样想着,稍微没那么慌张了 稍微科普一下,上海2019年中考志愿填报分为零志愿和平行志愿,其中零志愿(1所)可以填写外区在本区有招生计划的高中学校,我填写的是传说中的「四校」中的某一所。而平行志愿(1-15所)则只能填写本区高中学校。 如果按照往届的分数线,我这个成绩离零志愿还差了7分左右,是想都不要想了…毕竟在上海那是1分1操场的人。然而中考前根据我的一二模成绩预估,我还是很有可能考上零志愿学校的…所以这次关键时刻真的是考砸了…数学丢了5分,猜测是半道大题做繁了,写得密密麻麻的答案挤在角落里老师懒得看or看不到直接判错;英语最擅长的竟然丢了6分,真的不知道自己吃错什么药了;化学本来冲着59分~60分去的,结果来个56分吓死人。总而言之考得太烂了,考前觉得自己信心满满、很有希望,现在却门门考砸,我觉得我 TM 就是个笑话… 等到6点,最低投档分数线出来了,零志愿最低控分线居然比去年下降6分,我稍微松了口气,当然这是最低控分线下调,并不意味着我的零志愿学校的分数线也会下调,甚至还可能上升。 手机QQ、微信轮番响起,空间里都是报成绩的,咱班600+真的一大把一大把的,平时不太起眼的同学竟然都跨上了600分,我感觉胸口仿佛被人重重地锤了一下,喘不过气来。学弟学妹、以及平日里从不联系的小学同学在微信里个个都跑来问成绩,我不敢面对他们的突如其来的“关心”,叹了口气,打开「免打扰」功能,世界终于清净了。 我望向窗外傍晚的天空,心里失落万分。说来也巧,坐在我前排的以及左侧的,恰好也是2019上海中考考生,他们正在欢呼雀跃…坐在一旁偷偷听着,「580分~超常发挥诶!」我只能苦笑了一下,对于他们来说,580这个看似遥不可及的分数,他们做到了;而598.5这个在许多人看来或许已经很不错的分数,在我眼中,却是完全不应该的。曾幻想着自己能够考上600+,自主招生没能通过,我一直期待着中考能再次步入最想去的高中,现在看来简直太可笑了。 笑完了,然后呢? 零志愿是不用想了,现在唯一有很大可能的就是第一志愿的那所学校。至少,这所学校近几年的水平还是不错的,甚至从「清北复交综评」来看,已经出现了赶超「四校」中某一校的趋势…(上海的估计已经猜到是哪一所了吧qwq 当然,问题也随之而来。关于这所学校,网上的评价也有些两极分化,有人说它好,也有人说它差 它高考成绩确实好,可是据说作业是出了名的多;它宿舍环境确实好,可是据说各项检查管得严;它食堂饭菜的确出了名的好吃,可是据说饭点排队排到哭… 我选择不相信任何一方的说法,毕竟,都带有主观的色彩。我选择自己亲身去经历,去感受这一切,未来的路或许不好走,一切都是未知的,但我仍愿意坚定地走下去。 三年后出来,还是条好汉!到时候,一定要拿着理想大学录取通知书,弥补现在的小遗憾 关于眼前 写这篇博客时,我心里是有点小小的难过的。我不愿再去回忆查分时的那种感受,但是我还是选择将它记录下来。尽管结果不尽人意,但这也是我人生路上的一笔财富,我的青春会因我的努力而绚烂。 眼前一切都已经尘埃落定,高中有了着落。这个暑假,又会是各种上课,以及高中学校发放的各项作业(据说暴多)… 原计划想去的 ChinaJoy 可能又因为各种你懂的原因去不成了。这段时间买了本《信息学奥赛一本通》开始啃,因为高中的那所学校貌似有 OI 社团诶,每年还都有拿奖,在上海这个弱省挺难得的呢。 该哭的哭完了,该笑的也笑完了,我又将踏上新的征程… 三年后,拿着录取通知书,我们在这里相见~"},{"title":"2019年上海中考大吐槽¯\\_(ツ)_/¯","date":"2019-06-20T05:55:06.000Z","url":"/post/2019-shanghai-hsee/","tags":[["上海","/tags/%E4%B8%8A%E6%B5%B7/"],["中考","/tags/%E4%B8%AD%E8%80%83/"],["吐槽","/tags/%E5%90%90%E6%A7%BD/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''上一篇破事水还是在4个月以前…嗯又来水文章了 就在不久前的6月15日、16日两天举行了上海市初中毕业统一学业考试(说白了就是中考),同时6月15日也是我生日…生日碰上中考,这事,真dei劲 咳咳…扯远了那么这篇文章用来疯狂吐槽今年的上海中考卷(在被市教委请去喝茶的边缘试探qwq 语文 课内的部分还算是比较正常的,完全在我意料之内,课内文言文考的是《伤仲永》,诗歌赏析考的是《黄鹤楼》,唯一引发争论的就是诗歌赏析中“晴川”一词的含义,是指“白日照耀下的汉江”,而不是“山川”,做对了yeah~ 课外文言文考了一个超出考纲的义项:“过故人庄”的“过”是“拜访”的意思,但是考纲中不作要求,估计全市又要栽倒一片人… 很意外的是上海在中考连考两年说明文后仍然继续选择考说明文,不过难度也还行,题目都是比较常规正常的~ 重头戏是记叙文《你妈喊你起床啦》,考完后在 Google 上查这篇文章,找出了原文和原作者,这居然是一篇网络小说??? 原文链接: (巨长,试卷上的是删减过的,文章内容还是挺感人的) 原作者微博 @山城二十四 也被19届考生们找了出来,于是乎评论区一片哀嚎,我们仍未知道 《你妈喊你起床啦》这个标题从语言表现力角度考虑的妙处(6分) 和 文中“那个姑娘”这个词的内涵(6分) 作者表示“我也不知道,标题随便起的”qwq 不禁联想起2017年浙江高考“鱼的眼睛里闪着诡异的光芒”,简直异曲同工之妙 更劲爆的在作文…《这事,真带劲》 让我们先来回顾一下历年的上海中考作文: 年份 作文题目 2018年 真的不容易 2017年 就这样,埋下一颗种子 2016年 没想到,真没想到 2015年 不止一次,我努力尝试 2014年 这里也有乐趣 2013年 今天,我想说说心里话 2012年 心里美滋滋的 2011年 悄悄地提醒 2010年 黑板上的记忆 2009年 在学海中游泳 2008年 我眼中的色彩 2007年 记住这一天 2006年 我们的名字叫____ 2005年 充满活力的岁月 2004年 我们是初升的太阳 2003年 我想唱首歌 2002年 为自己竖起大拇指 2001年 有家真好 2000年 我也衔过一枚青橄榄 1999年 生活中的发现 1998年 我的欢乐 1997年 良师 1996年 变了 1995年 母爱 1994年 课后 1993年 我终于____ 1992年 忘不了他(她) 1991年 题目自拟,但必须包含“我”、“第一”这两个词如:我的第一位老师、我第一次看彩电、得第一名的是我、我家第一次旅游等等 1990年 在____影响下 1989年 我 1988年 我和____ 1987年 从来没有这样____ 1986年 这堂课真____ 1985年 同桌 1984年 ____给我带来了欢乐 从中不难看出从1984年开始上海中考作文的命题风格变化:从一开始的比较拘束,到后面逐渐出现了一些新颖的题目(如运用比喻意义的标题),但是又不算太难写,也基本不太会出现审题偏差~像2013、2016、2017这几篇个人认为出的还是很不错的,题目新颖让人眼前一亮,意料之外又在情理之中,让考生一上来确实会懵,但又不至于出现审题障碍,有事可写,写得出个人的成长、对生活的感悟与思考 但!是!2019年的题目着实让人倒吸一口冷气~《这事,真带劲》让我不由自主地就把题目差点抄成了《这事儿,真dei劲》 “带劲”一词属于方言,方言味十足的标题让人点题时就很难堪,我在写结尾的时候犹豫纠结了好久,想要按套路来议论抒情点题,但是“带劲”这个词一加上去就感觉会毁了这个结尾… 作文题中出现方言,而且是在面向上海考生的试卷中出现别的地区的方言,这与“题目使用现行规范的现代汉语”想必是相违背的。申明一下我没有任何地域歧视的意思,中考既然是官方正规的一场考试,就不应该使用任何地区的方言(包括上海本地的方言)以及任何网络用语、网络流行语等,对于命题者或是答题者皆是如此。今年用在作文题中,实在有失水准。这会对很多考生的审题造成障碍,因为并不是所有人都能够体会“带劲”这个词的意思,在教育考试院发布试题评析(只是评析不是答案)后我也看到各大社交平台上,都有考生表示自己的审题出现了偏差,导致文章内容偏题。不过,我对这个题目的理解还算比较恰当,“带劲”我的理解是“有劲头”,即“有意思,有乐趣,有意义”,和教育考试院发布的评析还是吻合的,应该不会失太多分~ 我认为中考作文确实不必太拘束,可以适当地求新,如运用比喻意义的标题或其它修辞手法等,给人眼前一亮,但是又不至于无法理解或理解错题目意思,不会造成考生文章的选材立意主旨有所偏差。而今年这个题目,明显有点过了,原以为前面记叙文中不肯起床的刘标标已经够带劲儿的了,没想到作文更加带劲儿~ 总的来说语文是稳中求变,但是这次作文不小心玩脱了… 数学 数学倒是没什么好吐槽的~难度试卷结构题型都和往常没什么区别… 结合时下热点“垃圾分类”出的统计学题目、引用《九章算术》中的文言文出数学题,这样的求新我认为才是合理的,题目有新意表述同时也十分清晰~ 可能有点小坑的是24题,这次和往常一样依旧是二次函数型综合题,最后一问是做过很多次的梯形问题,其实反而是降低难度的,因为它梯形的字母顺序给定,分类讨论只保留一种情况。但是和很多人一样,我一开始也是做出了两解,当然在最后检查时发现了问题并舍去多余的一解,万幸没有扣分~ 25题几何压轴题,今年其实也还算是友好,尤其是第3小问(压轴中的压轴)因为是涉及到tan22.5°、tan15°这两个“超纲”知识点(其实就算没学过也可以用30°、45°角的一半进行推导)所以题目没有要求写出过程,可以直接用结论做或者构造旋转相似做(记不清了好像是吧) 总的来说数学难度适中,命题严谨,题出得还是不错的~赞~ 英语 明明英语平时那么强,现在最担心的就是英语… 完形填空涉及到超纲词组“listen for”,而且放在文章的这个语境中显得也不是那么自然,应该是“listen to”才是最恰当的,但是选项中没有…然后我第一个就把“listen for”排除因为考纲内没有该词组…于是乎两分炸了 首字母脑子一热填错好像是一个空还是两个空来着的(因为标答还没出来不知道,至少扣2-4分) 作文更加恐怖…让人根本猜不到它会和阅读理解的D篇联手来搞你,是从D篇文章中选取一句话,可结合自己的生活经历体验,谈谈对于这句话的理解与感受…我是写成夹叙夹议的文章也不知道对不对(还是写记叙文?议论文?qwq 以往的套路根本用不上…预感这次要栽在英语上 另外据部分其它区的考生反映英语听力音频质量不佳,有杂音听不清(好像是崇明、嘉定等区县),不知道是不是因为考场使用了东方都市广播的AM792中波信号造成播音模糊,但是我所处的考场还是挺清晰的。当然还有个共同存在的问题就是播音员口音有些奇怪…像是嘴里含了橄榄??? 英语给人的感觉是难度上升,有些题也没玩好 理化 物理 难度和往年差不多,可能略难一点?(个人感受 实验题“伏安法测电阻”存在表述不清问题,而且严重影响到思路和做题,我一开始也被误导导致做不下去卡了好久,时间分配也被打乱了… 中考试题必须具备高效度,物理试题应该测试的是考生对物理知识的掌握程度,而不是对文字的理解,因此应避免容易让考生产生歧义的文字表述,避免“抠字眼”、“玩文字游戏”的现象出现。对于滑动变阻器滑片移动到中部位置(即最大阻值10欧的变阻器接入电路5欧左右)这一现象的表述多约定为“中点附近”,简单明了,而今年中考卷中非常“创新”地修改为“中间区域某一位置”的表述,让人误以为是指两端之外的某一点,与“中点附近”完全是两个概念,审题仔细,思维严谨的人反而可能会吃亏… 物理的一个表述不规范可以说是害了不少人,而且理化连考会对时间的分配有所影响,希望以后命题能够引以为鉴… 化学 经过物理这么一搞化学时间有点紧张,最后压轴也终于不再是一包白色固体的探究问题了,换成了从盐溶液中将金属元素沉淀掉并回收的问题,还涉及到理论反应物用量最少的情况分析,题目还是蛮有新意的,我也在这道题上卡了一小会儿,不过还是做出来了。当然本来时间就不多,做完也差不多收卷了,没时间检查前面的题,只要前面都对化学也还是稳的(但愿吧… 化学命题还是很严谨的,赞~ 吐槽完了,来个总结 今年中考可谓是“不顾后果地追求创新”,有些学科的创新是恰当完美的,如数学和化学,而有些则玩脱了…预感今年的分数线会比去年下调一点,不过今年参加考试的人数也相对于去年增长了不少,可能分数线也不会变化太大,甚至可能上升 给自己估了个分585-605(满分630)左右,跨度还是很大的因为标答没有出来,感觉自己想去的零志愿高中是去不成了,最好也只可能到本区的一所还算凑合的高中去了TAT 总之上海20届中考的同学们,要是你们到时候中考发现题目简单,表述清晰,没有歧义,没有文字游戏,命题严谨,你们要感谢学长们,因为这是我们拿命换来的qwq"},{"title":"PHP踩坑记录#1","date":"2019-02-18T08:40:00.000Z","url":"/post/php-tips-1/","tags":[["Web","/tags/Web/"],["PHP","/tags/PHP/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''这段时间在开发追番列表展示API(人生中第一个PHP项目啊…),迫于没有系统地学习过PHP只是略知一二,在开发的过程中可以说是到处是坑,于是乎…在我努力地现学现卖的过程下,还是顺利地写完了这个程序 至于运行的效率以及代码质量么…不管了…(自信 那么针对踩过的坑就记录一下吧~(先说明一下 PHP 版本为7.1.26) 0x01 PHP 调用 API 本案例中 API 为 BiliBili 的 Bangumi API: ; 其中{user.id}为用户的UID 正确请求后可得到 json 返回该用户的追番列表 那么 PHP 应该如何调用这个 API 并将返回的 json 存储于变量中呢? 首先建立一个 function 搞定后程序中就可以随时调用这个function 这样返回的json就被存储于$file变量中了 0x02 PHP 解析 Json 假设 json 数据已经存储与$file变量中,解析 json 非常简单: 但是请注意,这种方式 json 将以 StdClass Object 的形式存储,如果需要以 Array 的形式存储,则应该这样: StdClass Object 的进一步解析 假设解析后的内容存储于$res中,$res下有一个分项叫data,data下有一个分项叫pages,那我要获取pages的值,应该怎么办呢? $pages = $res->data->pages; 这样就可以将pages的值存储于$pages中 Array 的进一步解析 假设解析后的内容存储于$res中 首先要清楚 Array 的结构,用以下代码可输出: print_r($res); 接着就要用到foreach()函数一层层完成遍历,相关用法不再赘述,可自行查找相关资料 0x03 For 循环的简单应用 以上代码可完成$x从1至10的循环 0x04 PHP 下载文件 假设要下载到运行目录下的 cache 目录,下载链接存储于$url变量中 0x05 PHP 判断一个文件是否存在 假设文件名存储于$filename变量中 好啦暂时就整理这么多,由于本人没有系统地学习过 PHP,本文中的部分表述可能存在漏洞或描述不清,各位大佬轻喷…如果您发现本文中有错误请务必在下方评论区指出,我会感激不尽~"},{"title":"【项目发布】追番列表展示API","date":"2019-02-18T07:26:00.000Z","url":"/post/bangumi-list-display/","tags":[["追番","/tags/%E8%BF%BD%E7%95%AA/"],["API","/tags/API/"]],"categories":[["项目发布","/categories/%E9%A1%B9%E7%9B%AE%E5%8F%91%E5%B8%83/"]],"content":"var meting_api=''**DEMO:** **GitHub:** For English version, please … Sorry, we are currently unable to provide an English version of this file. Maybe sometime in the future we will 😃 一个快速、轻巧的基于PHP的追番列表展示工具。(目前仅支持 BiliBili ) 这是什么? 追番列表展示页面API 是 @Hans362 的呕心沥血之作,其灵感来源于 @ohmyga233 的博客中的“追番”页面,利用BiliBili官方的API实现展示个人追番列表的目的。感谢 @ohmyga233 提供的灵感以及前端页面。 由于作者是条咸鱼并且这是第一次写 PHP 项目,代码中难免有些不妥之处或存在 BUG ,请见谅。如果各位大佬有能力和时间精力的话欢迎开个 Issue 帮助我一起完善这个代码,或者提交个 PR 。 另外本程序中涉及到的前端代码来源于 @ohmyga233 的博客主题,但是迫于 @ohmyga233 的博客主题指向的 GitHub 链接已经失效, @ohmyga233 本人的 GitHub 页面上也不存在该主题,故无法确认前端部分的代码的作者,决定直接拿来使用。如有不妥之处实在抱歉,请尽快与我取得联系,我将删除这部分代码。 所以…说了半天这到底是个啥? 想在博客或个人主页上展示自己的追番列表?每追一个番剧都要手动更新一次列表?…(编不下去了…) 有了追番列表展示API,以上问题都不存在了。 只需要一个 BiliBili 用户 UID ,一切全帮你搞定。 内置缓存系统,首次获取可能速度略慢,但是之后相关资源会缓存在你的服务器上,增快加载速度。 语言好像只能描述这么多了(嗯…我相信各位的理解能力)那就上图吧 如何部署? 既然是PHP程序,一套 PHP+Web Server 的运行环境肯定是要有的啦~(废话 环境要求 一台带有 Apache 或 Nginx 或 IIS 或其他 Web 引擎的主机 PHP 版本≥ 5.4.0 PHP 的 JSON 扩展 部署教程 检查你的主机是否符合运行追番列表展示API的要求 在Release中下载最新版本的追番列表展示API 将所有文件放置在你在 Web 引擎中设置的站点目录(虚拟主机用户是上传至站点根目录) 访问 检查是否有报错 是不是很简单呢~(其中66745436请换成你自己的 BiliBili UID ,如何获取请见下文) 如何使用? 在任何HTML页面中均可调用此API,但是目前我能想到的方法只有嵌套iframe,该方法丑且过时,因此不推荐(如果有更好的方法请务必告诉我) (其中66745436请换成你自己的 BiliBili UID ,如何获取请见下文) 对于各大博客系统,如 WordPress,Typecho,Hexo 等我会封装成相应插件便于使用,但是目前暂时没有时间和精力,请见谅 获取 BiliBili UID 方法 电脑端访问你本人的 BiliBili 空间,在地址栏中可以看到类似于的链接,其中66745436即为你本人的BiliBili UID 。 手机或移动端可以在 BiliBili APP 中点开个人空间应该就会显示用户 UID 。 To-Do-List [ ] 增加对除 BiliBili 以外其他追番平台的支持 [ ] 为各大博客程序封装成插件 [ ] 增加运行效率,优化代码质量 版权 追番列表展示API 是基于 GNU General Public License v3.0 开放源代码的自由软件,你可以遵照 GPLv3 协议来二次开发并发布这一程序。 程序原作者为 @Hans362,转载请注明。"},{"title":"如何优雅地使用 VLC 播放辣鸡 APP 上的英语听力","date":"2019-01-30T10:09:00.000Z","url":"/post/play-english-listening-practice-recording-via-vlc/","tags":[["Web","/tags/Web/"],["抓包","/tags/%E6%8A%93%E5%8C%85/"],["VLC","/tags/VLC/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''很久都没有写过这种文章了辣么就来水一篇吧 所以这个需求是怎么产生的? 自从领取了作业大礼包之后我开始疯狂地刷起了作业…首先想干掉的当然是英语啦~毕竟上海这里的初中英语实在是太…简单了,看一眼出答案的那种 然而今年的这厚厚的一沓英语模拟卷合订本和往年不同,竟然没有给听力光盘!(强烈谴责该出版社卷子卖得这么贵还省光盘钱)直到我读到第一页的一行小字和一个二维码: woc你当我看不出来你这个出版社和这个二维码指向的 APP 之间有着某种 PY 交易么?! 好吧既然这样那么就只好勉为其难地下载这个 APP 啦 一点开果然是一股浓浓的国产 APP 风格,一上来就一个弹窗“快来登录账号吧!没有账号?注册一个”,然后又是果然不出所料要求填写手机号、真实姓名、就读学校等一系列个人信息 我目瞪口呆…一个学习类 APP 竟能无耻到这种程度,摆明了是要收集用户信息啊 所以我还是老老实实地把信息交了出来(你当我填的是真的吗?图样图森破 总算是搞定了这一切,当我点开听力页面时,我又惊惹!“该录音不支持下载” 所以说我听个听力还要联网是么(微笑脸)好吧,那咱就开始吧 我仍清晰地记得当我听到02:34时声音骤停的那一刹那,抬头一看:进度条卡住了?! 等待了一分钟左右依然不动就只好退出重进啦~可当我点开听力的那个页面时,我又遭受一重打击:进度条无法拖动! [我崩溃了.jpg]我只是想听个听力啊ಥ_ಥ 你这个辣鸡 APP 究竟想干嘛啊… 然后…就是解决方案啦 最简单粗暴的方法:老子不做了…当然这样的结果各位也是知道的23333 然后突然有个想法,既然是 APP 在线播放,其服务器上一定存在一个音频的对应关系,而看这个辣鸡 APP 做工也不咋滴,应该没有加密措施,咱抓个包看看 于是乎用到了 Thor 这个 iOS 端抓包工具,个人感觉挺好用的,虽然没有 BurpSuite 或者是 Fiddler 那么专业就是了 然后就是打开、创建 VPN 、安装证书用于 Https 抓包等一系列基本操作 这时候咱把窗口切回这个辣鸡 APP ,开始播放,再切回 Thor 好极了~抓包结果中迅速出现了一个音频文件,且一直排在最顶端,应该就是它啦! 等等,这文件名看上去,怎么那么奇怪啊…不管了,先把链接复制下来丢 VLC 里看看 果然成功播放~还可以下载离线播放、n倍速播放(因为个人觉得听力读得太慢了喜欢1.5倍速播放) 总结 我用同样的方法抓取了另外两三个区的听力文件后,我发现文件名每一个都看上去很奇怪,似乎没什么规律可循,也就是说我只能一个区一个区地把剩下的全部抓完 听力文件名的构成是xxxxx-xxxxxxxxxxxxxxxxxxxxxx(都是大小写字母与数字混排的,貌似并没有什么规律)看上去也不像是用了什么加密方法得到的,可能真的只是随机生成的一段字符串吧 既然这样那我就只能乖乖地手工把链接都抓取下来~不过总比用这个 APP 要舒适很多 本文也是给各位提供一个思路~遇到这种流氓学习类应用(现在市面上不要太多哦)咱可以试试看抓包的方法获取背后的真实路径,顺便推荐了一个 iOS 端的抓包软件:Thor (真的不是广告啦~只是觉得挺好用的2333 突然发现需求产生的原因那一块写了好长…不管了(逃"},{"title":"周记#14 - 近况:我的初三生活","date":"2019-01-24T08:59:00.000Z","url":"/post/weekly-14/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''*头图来自2018.12.29必应今日美图 又双叒叕是一篇暴露年龄系列的水文(//▽//) 上一篇周记居然是5个月前的!简直不能忍了2333…赶快来水一文否则博客都要长草啦w 虽说之前说好一模前不碰博客的,然而因为白嫖来的服务器到期的问题还是不得不维护了一下博客 不过现在一模考完啦~这篇周记(大雾)主要用来记录一下我的初三生活吧~ (等等…2018年终总结好像并没有写的样子…算了不写了2333) 博客迁移至 GitHub Pages 嗯…首先当然要说说博客的近况啦,白嫖来的HK小鸡到期了呢无奈只能寻找下一个平台来托管我的博客 也曾想过搞一台虚机继续放动态博客,但最终还是狠下心来选择了 Hexo+GitHubPages 超友好组合~ 所以就酱紫加入 Hexo 大家族了呢~(好棒 考虑到后面的课业会更加繁重已经没有足够的时间去维护这个博客,我还是决定寻找一个相对稳定的平台进行托管,同时速度上也要比较友好,于是 Hexo 静态博客无疑是不二之选 同时要是有一天自己出了个什么三长两短,放在自己服务器上的话终归会不复存在的呢,想着总得在茫茫互联网中留下点什么吧,嗯…所以就托管在某个全球最大的同性交友网站 GitHub 上啦~ 迫于没有能力将原主题移植到 Hexo 平台上,就只好给博客换新的主题 Icarus 了呢~博客评论系统采用 Disqus 出于某些大家都懂的原因您要是看不到评论框也是再正常不过的 那么针对国内的访客已经智能解析到了位于香港的 Coding 服务器上,做镜像站加速了各位的访问速度,国外的访客则仍解析到 GitHub 服务器 一模以及苦逼的初三生活 最大感受就是作业暴多+睡觉时间大幅减少,尤其是一模前的那一周呢 所以一模前的最后一个周末我一口气睡了快11个小时,果然爽 一模也算是比较重要的考试了呢(和自主招生预录取挂钩),我其实挺怕这种时候考炸了,所幸并没有这样 意外地拿了611分,高分段600+,总分650(150x3+100x2) 看上去还可以对不对然而物理竟然翻车了(才82…),嗯,但即使是酱紫还是靠数学和语文拉回来啦~果然语文这种学科一旦换成150分制的瞬间就能拉开差距 然后这次果然又是不允许查答题卡,自己的答题卡扫描件也是看不到的,所以有些题就很迷并不知道自己错哪 总之一模考得不错啦~可以去参加各大高中的自主招生了,接下来也要加油呢~ 好番推荐 嗯…虽说比较忙还是补了2部番 青春ブタ野郎はバニーガール先輩の夢を見ない 2018十月新番(没记错的话…) 这部番完美体现了取个好标题的重要性…不但巨长而且翻译成中文是什么鬼啦 不过不要紧,毕竟内容才是重点 男主梓川咲太满嘴sao话,和麻衣学姐的对话简直就是如教科书般的标准操作,喂喂喂咲太你哪是猪头少年啊分明就是我师傅嘛 以及“双叶一下,你就知道”,用量子力学解释一系列的玄学(分明就是扯淡)问题,还有拿烧杯酒精灯煮咖啡、高锰酸钾罐子里装白砂糖等一系列化学老师看到了一定会弄死你的sao操作 不过这部番的背后也确实反映了一系列的现实问题:网络暴力、校园欺凌等,从某种意义上来讲,“青春期综合症”这个都市传说也许真的以另一种形式存在于我们的生活中 从番剧中摘了几句很认同的话: “你一定没有朋友吧” “朋友的话有两人之多” “两个能算多嘛?” “但我觉得朋友有两个就足够了” “能和他们交一辈子的朋友就好” —— 梓川咲太 大家用奇怪的眼光看着你,把你当成笑柄,为什么就不在乎呢? “我又不是为了被全人类喜爱而出生的” “我只要有一个人喜欢我就够了” “就算全世界都嫌弃我,只要那个人需要我,我就能活下去” —— 梓川咲太 我的人生中也绝没什么远大的梦想或希望,但即便如此,我还是找到了自己的人生意义。咲太君,我呢,觉得人生是为了变得更善良而存在的。一边思考“今天的我哪怕能比昨天更善良一点就好了”一边去生活。 —— 牧之原翔子 期待电影版~ エロマンガ先生 黄漫老师,堪称经典呐 貌似已经出OVA啦不过先补了TV 至于内容什么的相信各位已经看过了就不讲啦 值得一提的是OP(《ヒトリゴト》)发现也是 ClariS 唱的诶,大爱 ClariS ~ ClariS 唱的 ACG 主题曲都超棒的~《irony》(我的妹妹哪有那么可爱OP)、《Cheers》(工作细胞OP)、《Wake up》(萌菌物语OP)果然能让 ClariS 唱主题曲的个个都是好番呢,不管是从前的 Clara 和 Aris 组合,还是 Aris 退出之后的 Clara 和 Karen 组合都超棒的!很期待将来 Aris 能重返 ClariS 然后三人一起创造更多作品~ 结束 总之就是这样啦~咱还有悲催的寒假作业(61套卷子+默写20篇古文+4篇作文)我感觉我要死了 希望自己今年中考考个好成绩~那么各位七月再见~(逃"},{"title":"周记#13 - 说起夏天,总有遗憾","date":"2018-08-31T05:06:00.000Z","url":"/post/weekly-13/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api='' 这大概是我在闭关前最后一篇文章了 近况 不知不觉暑假2个月就过去了…除了上课似乎也没做什么事情就这样过去了…不知为何有种遗憾的感觉,心情有点糟糕呢 原本以为没空出去玩了,可是还是被爸妈拉着出去玩了…去了我爸老家福建连城冠豸山,还去了趟绍兴,原本写好了旅游日志存在Typora里,但是在写这篇周记的时候离开学只有1.5天了,就懒得拿出来整理了 那么就请看我的超长周记~(好像有什么不对的… 最难熬的时光 正如我在前几篇周记中提到的,整个7月份加上8月的上半月基本都在上课。深切体会到没有暑假是一种怎样的体验。学校的课是一次连上7天,总共2次,也就意味着我连着7天每天都和平时上课一样,回来一堆作业+6小时的睡眠(大概算多的了吧…)。7月份的课上到第四天左右就感觉很糟糕了,毕竟每门课要上80分钟啊,基本上一天都坐在教室里了。一天下来累到炸,超难熬的。 不过由于我们上课是借用上海某大学的教室,大学食堂的午饭真的超赞!7月份的7天每天都换着花样吃,可以自己拿菜也可以买套餐,原来大学食堂的感觉是这样的!强烈推荐食堂现做的铁板蛋包饭~1份15块好吃不贵~可惜8月份上课的时候食堂检修,就只能在教室里吃送来的盒饭了,和食堂相比简直差了一大截,15块的盒饭竟然是全素的就很气了。顺便说一下因为盒饭太难吃楼下的小卖部赚翻了。 以及物理老师上课多次开车(你懂的)让我严重怀疑是不是上错车了(这一定不是去幼儿园的车~放我下车~)某次一男同学做物理题时以一种奇怪的姿势扭动着身体,同时发出一些奇怪的呻吟声音,目测是尿急了,物理老师见状随口来了句:“XXX,你怎么做题都做出生理反应啦~”,同时给出一个意味深长的眼神,真是令人浮想联翩~ 怎么说呢…这十四天是苦是挺苦的,但是也没有想象中那么恐怖啦~反正都已经过去了~ 暑假作业 咳咳…不说这个了… 开始追番追剧 不知道是为什么…以前对日漫还有二次元这些不是很感冒诶…但是最近突然喜欢上了(糟糕这是心动的感觉 之前看《肆式青春》买了B站大会员想着得把本看回来啊,于是一口气把《工作细胞》看到了最新的第8集,血小板超萌~(心动x2 之后又去看了日剧《非自然死亡》,虽然是好几个月前的电视剧了,但是偶然看到推特上的某位大佬(在我的友链里哟)安利的这部剧,发现除了第一集其它都要会员,刚好用上(≧∇≦)哇真的是刚开始看了10分钟就停不下来了!超级吸引人啊~剧情也完全在意料之外又在情理之中的那种感觉,每次都在不经意间反转,而且前后逻辑上几乎不存在漏洞。我这个人不喜欢看电视剧的,但这部绝对合我胃口啊~一口气看完了全部~结尾又是个大坑:Their Journy Will Continue Journy不是我手滑打错了是原剧就是这样qwq 不管怎样还是希望出第二季啊~最好是明年暑假~ 看着离开学还有2天又开始追《可塑性记忆》,也是看到推特上某位dalao发的推,就在B站上看到第8集。真的超棒的~艾拉超萌~有时突如其来的情节让我笑趴了,但有时真的让人感动得落泪。忠告别在心情不好的时候看,会产生催泪弹的效果…我才不会说我没忍住差点哭了 遗憾的是可能剩下的几集要留到一模之后的寒假了… 一些严肃的事情 最近在QQ空间看到这样一段文字,同学基本都转了: 100天后的中考报名 102天后的中考照相 115天后的初中最后一个平安夜 117天后的初中最后一个圣诞节 123天后初中的最后一个元旦联欢晚会 215天后的一模 235天的二模 275天后的三模 295天后的一张毕业留念 299天后的紧张中考 300天后下午五点你们就不在属于初中 请珍惜接下来在一起的日子 愿青春无悔 最后一年加油 你吃的苦受的罪都将照亮你走的路 2019届初三生加油 先忽略天数可能存在的误差…感慨一下时间真的好快 虽然我不喜欢应试教育,但是没办法,这是唯一的出路 接下来的路我知道会很苦很累但是我准备好去拼了~ 所以也和各位说声再见,一模之后的寒假或许会回来,这期间评论不看不回复文章不更新,友链等我回来会加上 希望明年此时我可以拿着想去的高中的录取通知书再回到这里 最后,再看一眼我的博客,各位一模后再见"},{"title":"动画电影《肆式青春》观影感受","date":"2018-08-27T18:09:00.000Z","url":"/post/flavors-of-youth/","tags":[["影评","/tags/%E5%BD%B1%E8%AF%84/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api='' 大概是第一次写影评呢…写的不好请见谅 为此我可是下了大血本的呢!家附近的影院竟然都没有排片,作为一个穷的要死的学生党忍痛买了B站大会员~~(有钱人的世界呢~~ 看完之后顺便找了日语版的二刷了一下 说实话以前没怎么看过这类电影,之前对动画(无论是国漫还是日漫)都没啥兴趣,看见B站上的宣传就看了一下这部电影,就以我的角度谈谈感受吧~ 防剧透版: 画面确实值得一看,剧情相对而言可能就没什么新意了,但是有几处对我而言还是挺有感触的。总体来说这部电影还是不错的,但仍有上升空间。若要观看个人建议第一个故事选择日语配音+中文字幕,第二个和第三个故事选择国语配音,B站上的国语版有几处BGM和配音挺尬的。 警告:以下内容可能包含剧透,请务必谨慎阅读,以下为我本人观点,不喜请一定要轻喷啊 一碗乡愁 第一个故事以一碗三鲜米粉为线索,确实能够看出想要传达的那种情感,有比较强的代入感。儿时最爱的那个味道,如今已经消失只剩下满满的回忆了,故事的主题选得不错,能够触动大部分人。可惜的是编剧似乎是想要首尾呼应,却表现得不尽人意,或许是篇幅有限的缘故吧…另外旁白实在是太多了,感觉像是在念作文,莫名有种舌尖上的中国的既视感…还有结尾处奶奶离世了,本来观众那种感动、惋惜、遗憾的情感被提升到了顶峰,结果国语版突如其来的BGM瞬间让这种感觉消失了,说实话挺尬的,相反日语版在这里情感就渲染的比较好。 霓裳浮光 第二个故事感觉一般般吧~就比较平淡,可能也是因为没有这种经历因而无法产生共鸣吧~ 这里国语版的配音是粤语,可以算是加分项吧(虽然我作为上海人听不懂啦…)可惜整个电影的结尾处突然又变回普通话,有点突兀。 纤雨初晴 第三个故事绝对是整部电影中最赞的了!我甚至觉得前两个故事不要,第三个扩写成70多分钟的电影会挺不错的呢~ 由于本人实在是词穷,不知该怎么描述给我的感受,就摘了一段B站上的影评: 从故事本身来说,它的展开其实是很经典,甚至可以说有点老套的,但那种懵懂与青涩就是让我欲罢不能。我认为这篇故事最吸引人的地方,就是对那种青春特有的青涩的刻画,还有明明时刻都在想念着对方的两个人却在阴差阳错间擦肩而过时的那种失落与揪心感。 作者:poke恶 出处:bilibili 故事虽然是比较老套啦,看到一半基本上就能猜到后面剧情的发展和结局了,但是感觉最贴近我的生活了,很真实,很动人。 首先就是配音中的上海话,感觉确实很亲切,配音配得还算到位,增强了这段故事的真实感,绝对是加分项。可惜的是和第二个故事一样,上海话里有几处还是夹杂着普通话,感觉有点突兀。 然后就是几个镜头能唤起满满的回忆呢~比如下面这个: 磁带里的磁条跑出来了就是这样修的,大概是小时候最常做的事了…那时候虽然已经有电脑了但是听音乐啊什么的还是用的磁带,课本后面配的录音也是一盒一盒的磁带,后来不知什么时候开始就变成光盘了,现在都变成网上下载了,真的是回忆满满呢~ 那时家里买的播放器还带有录音功能,可以把磁带擦了再录,小时候经常这样玩,现在都放在杂物间吃灰了~ 这里确实很真实,赞~ 以及这大概是复旦附中背黑锅背得最惨的一次。不过话说回来这里也很真实呐~复旦附中确实是上海很厉害的高中呢,四大名校之一 还有最后上海外滩的景色用漫画描绘简直不要太美! 或许是因为这段故事太真实,贴近我的生活,因而即使故事一般也觉得很吸引人。 尾声 电影的结尾,三个故事中的人物都聚在了浦东国际机场,也算是和电影的开头呼应了。有点像我现在写的应试作文呐,开头眼前景引出回忆三个故事,结尾再回到开头的场景,将三个故事串在一起并点明主旨。如果作为一篇作文,它一定可以拿很高的分。可是,它是电影啊,结尾的旁白似乎又有种读作文的感觉,个人认为略显生硬,还有提升的空间。 这部电影既有让人惊喜之处,也有让人失望的地方。对我而言,它也算是一部较为成功的动画了,虽没有新颖的故事和情节,却还是挺动人的,能引发共鸣。只要电波对上了,心与心对上了,你会在电影中找到自己的影子,你会觉得这部电影还是值得一看的。"},{"title":"给小米路由器3刷入LEDE","date":"2018-08-21T18:00:00.000Z","url":"/post/flash-lede-on-mi3-wireless-router/","tags":[["路由器","/tags/%E8%B7%AF%E7%94%B1%E5%99%A8/"],["LEDE","/tags/LEDE/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''没错,继给小米路由器3刷入Pandavan之后我这个刷机狂魔又来啦~ 这段时间翻了翻恩山无线论坛发现小米路由器3已经有非官方LEDE固件了呢!果断决定刷刷看… 预警:如果您准确按照本文的操作步骤操作,一般是不会出问题的,当然不排除刷坏的可能,变砖了赶快去买彩票,别来找我╮( ̄▽ ̄"")╭ 预警²:本文使用的固件非官方固件,而是ptpt52为推广natcap而自行编译的固件,目前经我测试一切正常,若您需要纯净固件请留意LEDE官网有无官方固件发布 0x01 准备开刷 首先请确认您的设备真的是小米路由器3(背面型号:MI R3)哟~其他设备比如R3G可别拿来这么刷,否则…你懂的 以下材料务必提前准备好哟 小米路由器3(废话并且需要恢复小米官方固件哦) 牙签(开启SSH时要用到) 充足的时间和精力&不怕刷砖掉的强大内心&你的脑子 确保已准备好以下文件 固件(请去 下载) 只需下载如下图两个即可:(rootfs0和kernel1) 0x02 开启SSH 请参照 此处不再赘述 0x03 刷写固件 将下载好的两个固件通过SFTP上传到/tmp目录下,并改名为rootfs0.bin和kernel1.bin(方便后面操作) SSH连接路由器,并执行以下命令: 0x04 连接网络 可以使用网线直接连接,也可以连接WiFi(SSID:NATCAP_XXXX 密码:88888888) 输入192.168.15.1进入管理界面(用户名:root 密码:admin) 进入后记得修改密码,然后就慢慢折腾吧~ 玩坏了就在系统中重置即可 固件自带$$,酸酸乳需要另行安装,并且经测试酸酸乳不能ipk直接丢上去安装不然会报错,解决方案将在之后的文章中提到~ 顺便吐槽一下上海电信还是没给IPV6,He.net隧道好慢啊还是挂酸酸乳吧 参考链接 1《LEDE 全球首发,支持小米路由3(Xiaomi Mi Router R3)》 2《OpenWrt/LEDE最新固件 适配大量硬件》 3《[经验技巧] 小米路由器3 开启SSH最简单的方法》"},{"title":"(手慢无)Hans362发福利啦~","date":"2018-07-24T23:20:00.000Z","url":"/post/a-gift-from-hans362/","tags":[["福利","/tags/%E7%A6%8F%E5%88%A9/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''诶嘿嘿…这大概是我第一次给各位发福利~ 感谢各位的支持~最近感觉这个站有点起色了呢~每天都有几个访客,评论也越来越多啦 那么废话不多说就送上一个Todoist的专业版3个月激活码吧~(价值大概30块左右) 不知道什么是Todoist的戳链接: 就送一个哟~手慢无 好啦就是这样~"},{"title":"使用WPScan扫描WordPress博客安全性","date":"2018-07-15T23:23:00.000Z","url":"/post/scan-wordpress-vulnerability-with-wpscan/","tags":[["Web","/tags/Web/"],["网络安全","/tags/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/"],["WordPress","/tags/WordPress/"],["WPScan","/tags/WPScan/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api='' 写在前面:本文介绍的工具建议仅用于安全性测试,使用请遵守国家规定,本博客不承担任何责任。 最近看到隔壁的@崇宫苟道的一篇文章《冻果果?00后网络团队?抄袭?(持续更新ing)》,看完真的是被吓到了…我暂且先不对冻果果的行为做任何评价,毕竟今天的主题是使用WPScan扫描WordPress博客安全性,既然这个冻果果团队自称很厉害,那么就免费帮他们做下测试吧~ 首先感谢@崇宫苟道给出的信息,该站的首页是个基于WordPress的论坛(真的长见识了…WP也能做论坛) 那么就拿出WPScan扫一下吧~ (前方大量代码块来啦~为避免影响主页效果,文章已折叠,点击下方继续阅读) 准备工作 咳咳…忘了还没讲怎么安装呢 准备一个Linux操作系统,推荐Kali Linux,已经自带WPScan,无需安装 然而本文还是用的WSL的Ubuntu不要问为什么(手动滑稽 安装一下Git和必备的组件 安装Ruby2.3 接着Clone一份WPScan并安装 就OK啦~ 小试牛刀 运行./wpscan.rb就可以看到说明啦~ So…我们就拿冻果果的论坛试试看吧~ 然后去泡杯咖啡吧~等脚本跑完 嗯最后扫描结果如下: 结果汇总 我们主要留意有感叹号的地方,说明可能存在漏洞 首先看到WordPress版本仅为4.8!这个冻果果这么大胆的吗?多久没更新啦,共检出18个可利用漏洞,经过我的尝试,其中有两个极有可能被利用 接着看主题和插件,这里还行,主要有一个Ulike点赞插件的高危漏洞,并且非常容易实施 So…这个冻果果还敢说自己的技术很好?最起码的连WordPress都不知道要时刻更新,万一来个高危漏洞不就傻眼啦 WPScan还贴心的在每个漏洞下贴出了相关链接甚至是复现方法 结语 发这篇文章除了为了介绍WPScan这个强大的工具之外,也想告诉这个冻果果团队,千万不要会一点技术就得瑟,请永远保持一颗谦卑的心,接受他人的合理的意见。再这么嚣张下去,迟早要gg的 哎呀说多了,那么感谢各位的阅读也请各位注意网站的安全,做好必要的防护哟~ 注:本文仅对冻果果论坛安全性进行评估,没有通过检出漏洞对冻果果实施攻击等操作。"},{"title":"(水)收到来自AWS的马克杯~","date":"2018-07-09T22:38:00.000Z","url":"/post/a-coffee-cup-from-aws/","tags":[["AWS","/tags/AWS/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''今天中午上完课刚回家就收到短信让我下楼去拿快递…我还在想最近好像没买东西啊~于是乎就收到了AWS的马克杯 发的还是顺丰的~开箱~ 正面长这样…就是个正经的AWS的LOGO 背面是AWS的Slogan 就是这样~"},{"title":"周记#12 - 终于从监狱里(大雾+划掉)出来啦~","date":"2018-07-06T23:10:00.000Z","url":"/post/weekly-12/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''今天终于可以暂时告别监狱啦!(大雾) … 好吧~其实是学校2333 自从考完试到现在似乎已经消失了好长一段时间,因为被关在监狱里了23333(大雾x2)一天五节80分钟的课,中午吃饭才能出去转转,这感觉…爽翻了。到了第五天左右就感觉很糟糕了,累得要死,不过终于撑过去啦!下次上课在八月,至少这中间可以歇一段时间(其实并不…往下看) 考试 先来说说过去已久的考试吧~自认为考得还行,就来炫耀一波(不然我也不会提这个的对吧 语文这次也就一般般吧…虽然比平均分高了一点但是差距都不是很大。 数学照例拿满分~这次出题老师真的阴险,挖了超多的坑幸好一个也没掉进去。 英语就很气了,回答问题被扣了2分!可是考完试我还对过答案的呀~应该回答问题是能的满分的啊~问题是我们区答题纸扫描件是不能查看的,这就很讨厌了,我连错哪都不造2333 物理大题眼花看错题了…幸好前两问送分的歪打正着,否则岂不更惨 还有一直担心的历史结业考,毕竟这关系到高中啊(结业考成绩<80不能去市示范性高中) 【先说明一下上海这边目前的中考只有语数英理化+体育(共4*150+30=630分),从21届开始中考改革才会加入历史、思品之类的,所以现在这些副科是市统一学业考,会在初一或初二或初三第一学期就考掉。】 重点来了:我考了98!心情可以说是很复杂了,我拿到成绩单就特紧张,小心翼翼地翻过来,瞥了一眼,什么?!98!感谢批卷老师的手下留情啦~否则岂不是死得很难看2333 非常terrible的暑假 准确的来说今年应该没有暑假…从监狱里出来之后(雾x3)后面一段时间还是要上课的,只是每天2小时而已…当然暑假作业还是那么的多… 有多恐怖呢…用Todoist排了一下大概如下图: 这是暑假里一天的作业量,还不包括每天上课的作业… 这大概是我经历过的最最最terrible的暑假… 安利几个好东西 Todoist 就是前面提到的那个Todoist啦~ 现在作业啊之类的多了感觉急需一个可以管理时间与任务的App,于是我发现了Todoist 这是一个跨平台的Todolist类App,无论是iOS、安卓还是Windows都能同步,甚至还有Chrome和FireFox插件,真的方便 目前专业版200多人民币一年,嫌贵某宝上有卖代金券的只要68,据说还是比较可靠的 当然我觉得普通版本就够用了~~(穷~~ Kindle App 突然发现Kindle在各大平台也有App了(我孤陋寡闻了233) 暑假里想读老师要求读的两本书Kindle上真的都有,原价二三十的书Kindle上只卖8块,价格很亲民啊,最大的亮点是圈划批注功能,真的很赞随时可以调出来,也不用买Kindle电子书阅读器,有个Pad就阔以啦~终于可以抱着我的Pad愉快地阅读,方便+省钱(有钱的大佬可以无视… 博客“关站” 因为明年就要中考了,也是时候专心学习啦~所以博客从今年暑假结束后就暂时关站了,当然还是可以访问的,只是不再更新而已,具体的恢复时间还不知道,大概在一年后的这个时候吧 不知道一年后的这个时候我会是什么心情呢~期待 这10个月左右的时间博客不会再更新,但是我会开一篇带密码保护的文章,尽量每天用一句话记录一下生活,吐个槽,等中考完了或许会整理一下把密码去掉。 感谢阅读~那么各位,暑假结束后就要一年之后再见啦~"},{"title":"博客又炸了...","date":"2018-06-17T17:29:00.000Z","url":"/post/blog-crashes-again/","categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''大概从昨天中午开始就炸了…应该是被人打了 网站目录的用户组被改了导致一直返回404 不过数据库没有受到影响,幸亏网页有备份否则惨了2333 网站安全不可忽视呐~注意备份否则就GG了 另外说好的要更新的可能又要拖了2333"},{"title":"周记#11 - 生日快乐!","date":"2018-06-14T05:49:00.000Z","url":"/post/weekly-11/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''终于熬到周末了呢~这周实在太累2333 每天睡6小时不到感觉很糟糕,一整天都没精神,周末一定要睡个懒觉! 首先祝自己生日快乐~嗯今天是我生日~14岁啦~ 还有各位端午节安康~记得吃粽子哟(咸蛋黄肉粽最好吃不接受任何形式的反驳 生日 转眼间就十四啦~时间惊人的快 生日就是吃吃蛋糕啦之类的,不过今年的生日礼物收到的是小爱同学(虽然礼物提前就给我啦…)测评这个端午节会补上的 祝自己生日快乐~也祝所有6.15生日的人生日快乐 QQ上一堆人祝我生日快乐,虽然知道大部分是自动发的,但是还是挺感动的,顺便和一个好久没联系的小学同学聊了几句233333 各种考试 比较悲催的是生日刚好碰上各种考试… 历史结业考 就在我生日的前两天,刚刚考完了历史结业考,终于没有历史课啦! But!早就听说历史学业考的难度爆表,这次终于亲身体验了一番,出卷老师显然是想让我死¯_(ツ)_/¯ 考完没两天就看到有人在群里发答案,对了一下我感觉可能药丸… 闭卷部分错了好多啊TAT希望批卷老师手下留情… 不过最后的小论文还是挺有把握的~感觉应该能达到层次三,问了几个同学都写的是“科技造福人类”(从单方面来写),而我写的是“科技影响人类”(从正反两方面来写),正所谓“科技:无谓福祸,唯人善使之”,应该拿5-6分没有问题~ 生命科学统考 生日当天考的,作为一个生物课基本不好好听的孩纸也顺利地做完了考卷呢~感觉毫无难度可言 给的时间是1小时我半小时就做完+检查完了… 今年大学刚毕业的生物老师被我们欺负了一整个学期,基本上她的课没人听都在讲话or写别的作业,不过到初三就不是她教我们了,有点对不起她呢 社会结业考 两周前就考完社会了,今天终于等到成绩啦~91分还是不错滴~ 接下去的各种考试 端午节上来就考四门主课啦~今天帮老师布置考场、贴座位号累死了,这次是区考+电脑阅卷 突然想起曾经区考语文的时候答题超出横线(没超出框,关键是也没提醒,我以为是一整个框扫描的),结果扫不出来,然后那一题的分全没了TAT从此以后我养成了字写小一点的良好习惯╮( ̄▽ ̄"")╭ 对了,以前还有用水笔涂卡的同学(当然不是我…) VB拓展课 几周前上完VB拓展课,却没想到竟然就是最后一节了…(初三就木有了 这三年来收获还是不少的,两次比赛也都拿了市一等奖、市二等奖。第一次接触VB在小学时,刚进初中时选拓展课,想都没想到竟然可以选VB,从刚开始啥也不懂只会随便乱玩的萌新,到现在至少会一丢丢(当然现在还是很菜),感谢当初自己的选择吧,也感谢教了我三年的老师~ 暑假 幸运的是刚考完的21号-24号是可以休息哒~可以浪几天,不过后面就排得满满的,每天都要上课啦 今年CJ是8月3号-8月6号,很不幸又去不了啦~去年CJ那段时间刚好在老家,也去不成…等以后再说吧 结语 以上就是这段时间的情况啦~可能废话+流水账比较多,我也是想到啥就写啥,毕竟不同于学校里每天要上交的日记,这是写给自己看的嘛23333 顺便一提明天是上海中考,希望明年的这个时候,我也能自信满满地走向考场~加油~ 感谢各位阅读~端午安康"},{"title":"通知:博客将在近期迁移至新服务器并更换域名","date":"2018-06-01T02:25:00.000Z","url":"/post/blog-migrated-to-a-new-server-with-a-new-domain-name/","categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api='' 2018.6.4更新 搬家基本完成~由于某些原因比预计晚了几天~还有一些小问题以后慢慢修 通知 接到Coding Pages通知,动态Pages服务将于2018年6月31日(What?!六月哪来的31号!)下线 本博客将迁移至位于美国的新家~并且上CloudFlare加(jian)速,可能比现在要慢很多~各位忍忍吧QwQ 博客域名hans362.me将于2018年12月到期,提前更换至blog.hans362.cn,原域名会设置301跳转,RSS订阅读者请重新添加,友链里的各位如果看到请记得帮我更换一下,谢谢啦~w 后续计划 博客预计在2018年6月2日下午暂时停止访问,晚上上线(解析全球生效可能需要更长时间) 一点小小的感慨 天下没有免费的午餐,能靠着Coding Pages把博客撑到现在,其实心里也挺感激+满足der 或许动态Pages已成为历史,但想想曾经自己亲手把代码用git工具push上去,38次部署,108个日日夜夜,也是回忆满满呢~ 纪念:Hans362 's Blog & Coding Pages 2018.2.11-2018.6.1 等等…我好像明白了什么…6月没有31号…所以说…动态Pages不会下线?!╮( ̄▽ ̄"")╭"},{"title":"小爱音箱mini开箱~","date":"2018-05-19T04:10:00.000Z","url":"/post/xiaoai-mini-test/","tags":[["小爱同学","/tags/%E5%B0%8F%E7%88%B1%E5%90%8C%E5%AD%A6/"],["小爱音箱","/tags/%E5%B0%8F%E7%88%B1%E9%9F%B3%E7%AE%B1/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api='' 在两年后的某天夜晚我突然发现了两年前自己挖下的大坑…咕咕咕咕咕(人类的本质是? 用了两年的感受简而言之就是没啥用,已经沦为关灯助手了¯_(ツ)_/¯ 小米之家居然有现货!先放图占个坑,晚点再写 "},{"title":"Docker容器Web管理工具 - Shipyard安装与体验","date":"2018-05-11T23:26:00.000Z","url":"/post/docker-management-tool-shipyard/","tags":[["Web","/tags/Web/"],["Docker","/tags/Docker/"],["Shipyard","/tags/Shipyard/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api='' 2018.4.19更新:建议各位不要使用了,我的主机已经被黑了,疑似是通过自用的Shipyard攻入的,被恶意运行了挖坑程序,这种停止维护的项目还是尽量不要使用,使用的话请做好防火墙防护措施 最近我开始研究起Docker容器,发现竟然有这么好的东西~最让我喜欢的一点是每个容器之间都是隔离开来的,部署方便,资源利用充分,终于可以为所欲为了呢 然而每次开个容器命令都要敲个半天,懒癌发作,所以我想找一个Docker的WebUI管理器,最终发现了Shipyard Shipyard是一个基于Web的Docker管理工具,支持多主机,可以把多个Docker主机上的容器统一管理,可以查看镜像,甚至构建镜像,并提供RESTful API等等 遗憾的是,当我写这篇文章的时候,这个项目的作者已经弃坑了,项目处于无人更新维护的状态,所以自己玩玩就好,切勿用于生产环境,以免造成严重后果 地址:(打不开的,作者已经弃坑此项目) Shipyard安装 由于作者已经弃坑,网站都打不开啦,官网提供的安装命令自然已经失效,辣么肿么办勒? 幸运的是作者没有删除GitHub以及DockerHub上面的项目,我们可以自己动手 Linux安装好Docker后执行以下命令: 注意:其中${IP/ADDRESS}请全部替换为您的服务器的IP地址 Shipyard使用 安装完成打开就可以看到Shipyard的界面啦~ 注意:如果无法打开请检查防火墙设置,是否开放8080等端口 输入用户名admin密码shipyard就可以进入面板了,记得修改默认密码哟 Shipyard功能强大,除了容器的管理还支持镜像管理、日志记录、用户管理、节点管理等 点击创建容器,会出现如下界面,可以非常便捷地完成创建,设置项丰富,可以设置环境变量、端口映射、主机名、容器关联、重启规则等 点进容器中,单个容器的管理可以说是非常惊艳了 除了基本的开始,停止,重启功能之外,还提供实时资源监控、日志记录、进程管理以及一个强大的在线SSH 除此之外,Shipyard还提供API接口与文档,对接个WHMCS卖卖Docker容器岂不妙哉? 以上就是安装教程与使用体验啦~尽管项目作者已经弃坑,但还是不得不说这个WebUI真的挺不错的,感谢项目作者写出这么好的东西与大家分享,希望作者有朝一日能继续维护下去吧~ 我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻: "},{"title":"周记#10","date":"2018-04-29T04:11:00.000Z","url":"/post/weekly-10/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''大概有一个多月没有写周记了…主要是因为这段时间特别忙,中间趁周末写过几篇技术向的文章和特别周记的说说,周记就完全没空写了,不过现在五一放假终于到啦~ 所以我就这么回来啦w 写了这篇拖了n周的周记 期中小练习(大雾 作为学生党最忙的就是这段时间啦~最近刚好碰上,也只能把博客什么的先放一放了… 不过幸运的是考得还不错(≧∇≦)比起考炸了的月考,这次成功挤进了年级前50名,至少心理上可以轻松一点啦~稳住 盼望已久的出游 于是乎考完就和同学去东方绿舟玩啦!不过挑得真不是时候…前一天刚刚下过大雨,虽然雨停了可是天空阴沉沉的,天气不怎么好 这次和@Henry(他木有博客…)可以说是分工明确了,我负责提供流量(无限量套餐就是爽23333),他负责给我的续航超辣鸡的手机提供充电宝…就酱紫 车上闲得无聊就开着流量上bilibili,然后…我和@Henry就一起看起了空难片?(鬼知道为什么要看空难片啊…反正看完我整个人都不好了2333) 不得不说刚下过雨环境还是挺不错的,空气很清新呢,也算是考完之后一个短暂的放松 以下多图预警: 手残+脑抽的日常 了解我的人应该知道我经常突然犯蠢或是手残的,这次化学实验课上做粗盐提纯的时候,我竟然把蒸发皿放在石棉网上面加热!然后加热得奇慢无比,半天做不出结果,关键是我和我的partner都没有发现!就这样被路过的非常dark♂的化学老师抓个正着,紧接着…(后面发生了什么可想而知ಥ_ಥ 对了顺便吐槽一下实验室里的盐酸、氢氧化钙、硫酸怎么都是过期的啊喂,根本做不出结果 悲惨的暑假 看到初三二模和体育中考都考完了,我也算是半个初三了呢ಠ_ಠ…于是这个暑假可能要gg了 为了备战一模暑假基本上都是要上课的,所以不太可能会粗去浪或者窝在家里搞搞博客、改改代码,也是惨惨惨啊hhh毕竟初中就剩下一年啦~也是时候去拼一拼了! 总之暑假里应该不会搞什么大事情(说得好像原本有什么大事情似的)…博客基本不会更新太多,就偶尔出来冒个泡 一点也不友好的电信光猫 自从上次给路由器刷了Pandavan之后,想折腾一下IPv6,原生的大概是不可能了(上海电信不给),所以试了试He.net和6Plat,但是需要一个ping得通的公网IP啊!所以需要进电信光纤猫设置一下DMZ主机 但是问题来了…辣鸡电信光猫自从换成了悦me网关(长下面这样),管理界面少了很多功能,连端口映射和DMZ都没有! 于是想到破解超级密码(telecomadmin)…可是为什么这款光猫连telnet也不开放啊,根本没法破,一气之下在某宝买了ttl线,真的是一点也不友好╮( ̄▽ ̄"")╭ 现在在等快递,收到了就来试验一下~ 结语 这次的周记就写这么多啦~接下来应该能回归到正常的更新节奏了吧?感谢各位耐心读到这里~下次再见"},{"title":"给小米路由器3刷入Pandavan","date":"2018-04-19T02:32:00.000Z","url":"/post/flash-padavan-on-mi3-wireless-router/","tags":[["路由器","/tags/%E8%B7%AF%E7%94%B1%E5%99%A8/"],["Padavan","/tags/Padavan/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''一年前入手了小米路由器3,当初因为听说小米路由器可以刷各种固件(OpenWRT,LEDE,PandoraBox之类的),而且自己也挺喜欢小米的,所以立刻就买了。 拿到后立刻准备开刷,论坛上搜索小米路由器3刷机的帖子,却很少见,几乎没有找到可用的第三方固件。好像是因为小米路由器3采用的Nand Flash的原因,刷死之后搞一个Nand Flash的编程器得800软妹币左右,没人愿意冒这个风险,而且没有breed支持,导致小米路由器3和小米路由器Mini硬件几乎相同(除了Nand Flash)我无语了…果然得事先做好功课啊~ 最近无意中看到了扔在一边正在吃灰的小米路由器3,突发奇想又搜了一下刷机方案,发现还真出现了一个。目前唯一的第三方固件是华硕RT-N56U固件,由于采用了相同的芯片(最重要的是老毛子的支持)。 (据说LEDE也专门为MIR3适配了一款固件,但是好像还没看到过刷成功的案例,所以没敢贸然行动…) 预警:如果您准确按照本文的操作步骤操作,一般是不会出问题的,当然不排除刷坏的可能,变砖了赶快去买彩票,别来找我╮( ̄▽ ̄"")╭ 0x01 准备开刷 首先请确认您的设备真的是小米路由器3(背面型号:MI R3)哟~其他设备可别拿来这么刷,否则…你懂的 以下材料务必提前准备好哟 小米路由器3(废话) 质量还可以的网线(不是断了的或快要断了的就行) 带有以太网接口的电脑(就是可以插水晶头的那种,台式机一般都有,笔记本近几年的好像越来越少见了,可以买个转换器) 充足的时间和精力&不怕刷砖掉的强大内心&你的脑子 以下文件请在刷机前趁着有网络赶快下载好 VMWare虚拟机文件: 密码:w4qs VMWare(这个自己去官网载,正版要钱的哟,可以先14天试用,反正刷机用不了十四天那么久) 路由器降级文件: 密码: znbs Pandavan固件汉化版(看得懂英文你也可以不下): 把路由器降级到老版本 进入后台上传上面下载的降级文件并更新即可,降级后若提示配置路由器可随意配置 0x02 启动刷机环境 刷机在虚拟机中进行,环境已经配好了,双击打开载好的虚拟机文件导入VMWare。 接下来要进行的是桥接网络。你需要把电脑的以太网接口桥接到虚拟机的网络接口上。虚拟机设置里选择桥接,虚拟网络编辑器里设置桥接的实体网卡名称就可以了。 然后用那根不长不短、不粗不细的网线把路由器的WAN口和以太网卡的接口连在一起 最后启动虚拟机,正常的话应该会显示如下界面: 0x03 开始刷固件 获取SSH(风险无限接近于零可放心操作) 输入0,按照英文提示进行操作。 第一步设置管理后台IP,这个一般就是默认的192.168.31.1,如果你改过请自行输入 第二步输入之前降级后设置的管理密码 最后输入y确认,等它出现绿色成功提示,按任意键返回主界面即可 刷入固件(风险最多百分之五其实应该也没什么问题的) 在主界面输入4,它会问你是否要备份,为了保险一定要输入y哦~ 然后这里要等上很久的,可能半天没有动静让你误以为卡死了,其实不是的哟,一定要耐心等 备份完会自动开始刷写固件,不出意外就会看到下面的提示: 关闭虚拟机,撤销网络桥接 虚拟机关掉,桥接去掉,用你的实体机访问192.168.1.1,输入用户名admin密码admin即可看到后台啦!(此时SSID是ASUS) 0x04 刷入汉化 进入新后台的升级界面,选择汉化固件再刷,刷完会发现后台打不开了(此时SSID变成了PDCN),别慌,重新让电脑获取IP,输入192.168.123.1打开汉化版后台,然后就可以为所欲为啦!不过建议用针戳一下路由器的那个重置小孔重置一下,增强稳定性~ 0x05 总结 说实话这是我第一次刷路由器呢~还好最后还是成功了,刷机肯定有风险,但是并不代表就不能尝试,有时勇于尝试一下,也许就会有意外的收获呢~ 参考链接 & 特别感谢 1 《翻qiang+广告屏蔽+网速跑满+ping值稳定米路由3刷机》 2 《小米路由器3利用虚拟机刷老毛子固件》 特别感谢所有尝试过刷这个固件的朋友们,也感谢在论坛上分享刷机步骤的朋友们,这篇文章也搬运了参考链接1中的小部分内容(大部分是我自己码的),如有不妥请务必联系我"},{"title":"换新主题啦~(*^▽^*)","date":"2018-03-31T01:55:00.000Z","url":"/post/blog-changed-to-a-new-theme/","categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api='' 最近上海天气太热了…先来首凉快点的歌吧~ 博客的主题目前已经切换成一个超萌的基于Typecho默认主题的修改版本Ero 依旧是传说中的主题狂魔Archeb写的,大佬好厉害的呢 然而换个主题把我累得吐血…主题丢进去直接404报错 然后就是不停的排除,删库重装,导入数据,…,最终发现了出问题的地方,这个后面再讲~总而言之就是换好主题啦 那么我为什么要换这个主题呢?(当然不是吃饱了撑了 虽说LightWhite我也很喜欢,但是毕竟是个单栏主题,个人还是更喜欢双栏的,而且由于想要魔改主题,LightWhite让我无从下手啊~原版改起来又太费劲,所以碰巧看到了Archeb的Ero主题,就拿来改改用了,不出意外的话这个主题就长时间用下去吧 对了,各位看到了左下角的看板娘咩?欢迎随便调戏233333 嗯又水了一文,下次再见啦"},{"title":"周记#9","date":"2018-03-24T00:06:00.000Z","url":"/post/weekly-9/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''大家好~快两周没有更新博客了呢…虽然评论之类的一直有在偷偷看啦 不知不觉已经开学一个多月,翻了翻博客发现上一次写周记是在二月份…所以就抽出时间码了这篇文 因为好久没更新了,积累了不少事情和大家分享呢~ 所以请各位带着期待读下去吧:-) 月考翻车 月考照例翻车…我发现我每到月考基本上都是要控制不当瞬间翻车的,然后每逢期中期末考就考得比较好,不造怎么回事… 彻底从年级前100稳稳地跌入年级100-150,心痛TAT 哪怕是我平时最好的英语也炸得一塌糊涂 不过唯一值得幸灾乐祸的是因为默写没默错所以不用抄《木兰诗》四遍,不然这个周末我就死定了我也没法在这里发这篇文章了对吧╮( ̄▽ ̄"")╭ 继续努力吧:)期中考别翻车就行… 忽冷忽热的天气 上海这应该算是已经春天了吧…前几天还冷得很,今天突然20度,热炸了 你能想象回家挤在人多到爆又闷又热的公交车上的感受吗?真是令人窒息的操作…好不容易有个靠窗的位置我赶紧开了窗猛吸了一口气…那感觉真的是太妙了~ 下周上海持续20°C+ 有快夏天的感觉了呢 第一次做生物实验 我们学校是有生物实验室的呢…但是不知为何几乎没给我们用过,大概是我们比较皮吧2333 然后这周终于去那里搞事情做实验啦心里还是有些小激动的呢 虽然只是个用显微镜观察叶的结构的实验,但是切片我就做了好几次,徒手切片好难啊,不是太厚就是太薄,还差点切到手,不过挺好玩的23333 然而观察完叶片结构之后我终于知道为什么老师不敢带我们来实验室了… 那些用显微镜看橡皮屑的我还能忍,可是拿酒精灯烤面包的是要闹哪样啊喂~ 我只记得实验室里弥漫着面包的香气紧接着是刺鼻的焦味…据说还有大胆的同学吃了一口…竟表示味道不错?(当然最后还是被老师制止了危险动作请勿模仿) 第一次删库 嗯,你没看错就是删库…脑抽了开了两个PMA一不小心删错了w 幸亏有备份没有丢任何数据(这也是不经常更新博客的好处…) 导致博客Down掉了一个多小时(应该除了我没人发现吧… 好像发现删错时并没有很紧张…大概是自己心里清楚有备份,并不慌 弃坑+开坑 还记得我的第一个坑吗?反正我大概是不记得了2333疑似弃坑 坑可以不填,但不能不开 ——我自己说的 至于是什么坑先不说啦~免得立Flag 吃灰的VPS 上次在DO撸了一台一年的VPS…然后就持续吃灰,除了搭个梯子搭个网站实在想不到其他有意思的用处了 感觉好浪费可是如果不用的话一年之后账户里的65刀就会过期…各位有什么有意思的想法吗? 博客100天 今天(2018.3.24)是我的博客稳定运行的第100天呢~虽然算不上太久但是心里还挺高兴的呢! 各位应该可以看到顶部的Cover背景换了~准备100天换一次~没变化的请刷新一下缓存再试试哟 看着自己搭建的博客渐渐塞满了自己写的文章(虽然都很周记),看着评论数量日益增多,我其实真的很感动 感谢各位大佬的帮助和支持,感谢每一位阅读我文章,驻足我博客的人~哪怕你们仅仅只是过来看一眼或者无意路过,我其实也挺高兴的 下一个目标:200天 加油~ 总结 这大概是我写过的最长的周记吧?23333 唔…一下子也只能想起这么多啦~那么感谢各位的阅读~下次再见(跑"},{"title":"性价比高但速度一般 - DigitalOcean5刀云主机评测","date":"2018-03-12T01:53:00.000Z","url":"/post/digitalocean-vps-test/","tags":[["测评","/tags/%E6%B5%8B%E8%AF%84/"],["评测","/tags/%E8%AF%84%E6%B5%8B/"],["DigitalOcean","/tags/DigitalOcean/"]],"categories":[["测评","/categories/%E6%B5%8B%E8%AF%84/"]],"content":"var meting_api=''DigitalOcean应该算是美国一家比较老牌的云主机商了,经常与Vultr、Linode等廉价的主机商一起出现。作为穷得要死的牛奶,我还是想方设法搞到了一台DO的5刀云主机。(前段时间发现GitHub学生包里还有50刀的DigitalOcean代金券还没有用,嘿嘿不然哪有闲钱买这个啊喂) 账户注册 网址: 注册地址(带了我的推广链接,不想点的请直接去主页注册~): 注册过程对于学生党来说有一点点小困难,因为作为学生党没有信用卡啊ಥ_ಥ所以只好忍痛往PayPal里砸了5刀用于账户验证(PayPal某宝上有代充的,就不打广告了w)新用户注册可以享有10刀的免费代金券哦~ 一点小Tips 在添加完新用户的10刀代金券后,大部分有GitHub学生包的人都会发现没法再添加50刀优惠券!这时提交个工单,用英语告诉客服你的状况,并在工单里附上你的代金券代码,请求帮忙激活。英文不好的可以参考一下我的写法: 然后你就会惊喜地发现账户里有65刀啦(5刀PayPal+10刀新用户赠送+50刀GitHub学生包) a 操作面板 操作面板真的很清晰简洁,但是功能非常全面。配色也是我非常喜欢的蓝灰配色。 这是DigitalOcean VPS主机管理界面,创建VPS主机后,稍等几分钟就可以看到VPS列表了,这里有删除、升级配置、备份、报表和Web控制台等。 这是DigitalOcean VPS主机操作中心,常用的报表、重装、追加硬盘、快照、备份、关机等这些都有。 总得来说,DigitalOcean的控制面板也比较强大,只不过像快照、备份等功能都是需要收费的,大家在开通时需要特别注意。 购买价格 这是DigitalOcean的价格表,最便宜的是5美元一个月。 即使是最便宜的也配备了1G内存、1CPU、25GSSD和1T流量,感觉还是蛮合算的! 性能测试 这里我跑了两个测试脚本,UnixBench测运算能力、SpeedBench做综合测试(网络、硬盘IO等) 结果如下: 可以看到UnixBench跑分为700+,还是比较好的。IO也很不错。综合测试下来最令我惊喜的是网络,带宽给的非常足,能达到GB级的水平~ 网络及可用区 DigitalOcean目前有纽约:NYC1、NYC2、NYC3,旧金山:SFO1,阿姆斯特丹:AMS1、AMS2、AMS3,新加坡:SGP1,伦敦:LON1,印度:BLR1等共计九个机房。前面的测试发现DigitalOcean的机房带宽给得非常充足,不足之处就是这些节点在国内访问都比较慢,线路优化不好。 目前连接国内速度相对较好的就是新加坡和旧金山机房了,其它的如英国、荷兰等线路太远。以下是DigitalOcean机房图。 选择可用区之前可以先在这里测一下速: 全国Ping下来基本上都是200-300ms,挺糟糕的,这大概是唯一不足之处吧。 总结 本次体验给我的感觉是不错的~算是我目前为止用过的最满意的主机~ 从VPS主机的性能与速度测试来看,DigitalOcean表现还是可以的,尤其是机房带宽这一块比较充足。当然,DigitalOcean也有国内访问速度慢的毛病,不过建站的话挂个CDN应该也不成问题。 参考链接 1"},{"title":"UTF8-BOM编码导致Html顶部白条问题","date":"2018-03-09T04:31:00.000Z","url":"/post/html-white-stripe-caused-by-urf8-bom/","tags":[["Web","/tags/Web/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''自从给博客加上了Google Adsense的广告,就出现了一个很困扰我的问题:网页顶部莫名空出了一个白条。虽然对于网页的访问没有什么影响,但是…强迫症不能忍啊!这一切的背后,究竟是人性的扭曲,还是道德的沦丧,请阅读本篇文章~(大雾 0x01 问题分析 嗯…遇到html问题先浏览器F12一下,立刻就发现了异常,在body部分的开头出现了如下代码: 经过测试,顶部的白条确实是由于这串代码造成的,可是我并没有蠢到会去写这个啊喂!那么究竟是什么原因呢? 0x02 排除法发现问题 首先由于是加入了Google Ads之后才出现的情况,第一时间想到的就是先去掉广告代码。可是去掉后重新部署依然出现该问题,已基本确定并非Google Ads造成。 紧接着我想到去翻一翻Coding的提交历史,对几个历史版本进行逐行对比,最终我把目光锁定在了这里: 咦?第一行中两个相同的<为什么会显示不同呢?由于代码是在Windows上面修改的,而很多奇奇怪怪的编码问题都发生在Windows上面,所以我的第一反应就是编码问题。 因为写代码比较喜欢用Notepad++,就检查了一下Header.php的编码,发现竟然是带BOM格式的UTF8! 那么什么是BOM呢? UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行。 这多出来的一个空行就造成了网页中顶部的白条,也解释了前面为什么在提交历史中看似一样的两个<却被识别为不同。哈~原来是BOM的锅~ 0x03 解决方法 在Notepad++编码中修改成无BOM后重新提交Git并部署,果然问题不再复现。 同时我也发现使用Windows记事本编辑php文件也很可能被加上BOM头,所以没事写代码不要用乱加BOM的编辑器 参考链接: 1 2"},{"title":"申请Google Adsense在网页上投放广告","date":"2018-03-07T03:11:00.000Z","url":"/post/apply-for-google-adsense/","tags":[["Google","/tags/Google/"],["Adsense","/tags/Adsense/"],["广告","/tags/%E5%B9%BF%E5%91%8A/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''其实我本来是不愿意这样做的~但是为了满足一点私心…嗯~没办法啦 ###如果您觉得我的网站上的广告有点碍眼的话,请务必告诉我,我会想办法移除或者放置在合适的位置~### 申请过程蛮简单的,你只需要以下东西: 一台电脑(废话 科学的上网环境(你懂我在说什么的对不对?) Google账号 有了以上几样东西以后进入Google Adsense平台,添加自己的域名,并且在网页上放置代码,然后等待几天审核通过就可以啦 目前我的博客只有底部和网站内页有广告,个人觉得不会太碍事,当然如果您觉得看起来不舒服请一定要告诉我哟~我会进行改进和处理 (这个破站也没几个人会看的啦!估计挂了广告也赚不了多少钱)"},{"title":"周记#8","date":"2018-02-24T02:06:00.000Z","url":"/post/weekly-8/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''各位,好又到了每周一次的周记文周记时间~ 一直觉得博客没啥干货全是几十个字到几百个字的周记文估计没人看2333 以后可能会更加侧重于写一些技术向的文章吧? 赶快戳右边的按钮读正文吧→ 单休日 是的…你没看错…就是单休日 原因是2.22(周五)正式开学,所以周六那天是工作日要上课的,很气的说~ …本来还想充值一下假期余额的呢! 一般碰上单休日都没什么好事情…这次也不例外…恭喜获得作业翻倍卡 好羡慕寒假放到三月的学生党 抱怨归抱怨不管怎样已经开学啦新的一年也要继续努力呢 在老家的摸鱼时光 嗯这是在开学的前几天…事实上返校前一天晚上才赶回上海 带了一堆作业一个字都没有动 一觉睡到早上十点的感觉真爽orz 老家的TPLINK路由器信号实在太差…出了房间就没信号了…对于我这种断网会死星人简直是噩梦啊 幸好早有准备带了个中国电信送的磊科路由器,穿墙一开好了很多呢 老家用的是ADSL拨号…但是自己家一直用的是光纤,不用手动拨号什么的…不会拨号就很尴尬了 我也不造我是怎么弄好的[懵逼.jpg] 哎呀就写了这么点…一时想不起来什么了 感谢耐心读到这里的大佬们下次再见"},{"title":"周记#7","date":"2018-02-14T05:42:00.000Z","url":"/post/weekly-7/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''Hello各位好~这里是「万年不更想更就更」的周记(周记文) 刚刚打开博客掐指一算距上次旅游回来竟然又过了9!天!呢!天呐噜离开学又近了ಥ_ಥ 不废话了进入正题 寒假作业 咦我为什么要说这个? 今年寒假真是坑…放假特早然后过完年年初六就上课…TAT 然后由于前面粗去浪+在家浪了十多天,也只剩下十天左右的时间赶作业了… 这几天总算是把作业搞得差不多了,还有几篇古文没背下来,估计开学要被查周记表了2333 填坑 由于天气寒冷获得Buff:填坑速度-100%(好吧说白了就是没填坑…) 挖坑就更别指望了…GayHub持续吃灰中… 先放一放再说吧… 博客服务器 本博客现已迁至Coding Pages…用了几天发现动态Pages实在是太好用啦~ 虽然容器不能与仓库双向同步还是没有解决,但是Git的管理方式特别喜欢,很方便呢 服务器竟然在香港,速度上有明显感觉到变快了… 好久没见过这么有良心的Pages服务了,希望继续免费啊(或者费用在我可承受范围之内) 后续安排 今年过年在上海~然后年初二回老家就酱紫 啊啊啊年初六开学…[恐怖.jpg] 好了又周记了一篇文章,下次再见~"},{"title":"博客成功迁至Coding Pages","date":"2018-02-10T21:47:00.000Z","url":"/post/blog-successfully-moved-to-coding-pages/","tags":[["Coding","/tags/Coding/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''因为租的AWS服务器快要到期了,然而没钱续了,所以我把博客迁到Coding Pages上面,用动态Pages部署Typehco。 然而动态Pages貌似是把仓库里的文件放到一个单独的容器里运行,所以无法做到仓库和容器双向同步,图片就不能直接传到容器里啦,不然一关Pages图片就全丢了…幸好有CosUpload插件直接传COS,解决了这个问题 发张图Test一下: 不过迁移过程中还是踩了一些坑,Mark一下 MySQL问题 本次迁移中PHP版本是5.6=>7.1,由于PHP7开始不再使用MySQL函数,所以在config.inc.php中要修改部分代码: 修改成 酱紫就搞定啦~ 部署次数问题 没想到动态Pages是有每日部署次数限制的!所以不能重复部署太多次,否则就只能等到第二天再修改了…"},{"title":"周记#6 - 西安旅行日志","date":"2018-02-05T05:02:00.000Z","url":"/post/weekly-6/","tags":[["游记","/tags/%E6%B8%B8%E8%AE%B0/"]],"categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''好久没更新了…是不是以为我弃坑啦¯_(ツ)_/¯ 这个寒假好短啊~才刚刚过了一周就感觉时间已经不够了… 不过即使这样还是抽出时间去旅游了╮( ̄▽ ̄"")╭ 这次的目的地是西安 先来几个关键词吧~ |钟鼓楼|兵马俑|西安地铁|月食|西安城墙|肉夹馍|羊肉泡馍|陕历博|大雁塔| 好的,下面正文开始( ´ ▽ ` )ノ 注意!大量图片即将出现,流量党慎入! Day1 2018.1.31 虽然是2018.1.31开始啦…但是故事要从2018.1.30开始说起… 当天下午六点的火车…这次买的是软卧,还是绿皮的那种,第一次坐呢~ 由于是软卧所以从上海站粗发,自从上海虹桥站建成已经接近十年没来过这里了 坐地铁去火车站的路上还顺便体验了一下上海的“Metro大都会”APP,可以刷支付宝进站,而且首刷免单!但是我差点进不了站TAT后面再说 坐上火车过了一夜早晨到达西安~ (8点48分-火车窗外) 到达西安之后直奔酒店~第一天熟悉了一下附近的地形 酒店在西大街,附近还有三条街,分别是… 没错…就是北大街南大街东大街 这名字…好草率啊QwQ…不过没关系 附近的几个标志性建筑物就是钟楼、鼓楼还有钟鼓楼广场~还有一个地铁站 (13点31分-鼓楼) (13点38分-钟楼) (13点38分-钟鼓楼广场) (13点41分-钟鼓楼广场全景) 然后呢…这天竟然刚好碰上了月全食!而且这天上海重度污染,问了在上海的小伙伴们全表示看不到月亮,西安空气超好,真是太幸运啦(≧▽≦)/ 这次月食是在钟鼓楼广场看的…超多人都在看,我拍了好多照片,下面直接po图吧~ (19点28分-夜晚下的鼓楼) (19点28分-月亮) (19点55分-月食1) (20点01分-月食2) (20点10分-月食3) (20点47分-月食4) (21点02分-月食5) (21点22分-几乎看不清月亮) 看完月食回酒店~酒店房间居然配备了电脑,冰箱里的饮料居然免费,好评!不过电脑实在卡得不行,运行的是Windows XP系统,所以没怎么用 因为第二天要更团去看兵马俑…所以看完月食就早点睡啦 Day2 2018.2.1 早上六点爬起来吃早饭然后就去看兵马俑啦~由于这天主要听导游讲,然后拍了些照,就不配文字啦,偷个小懒。 哦…对了√兵马俑16岁以下免票!再过两年我就要买票啦~(暴露年龄) Day3 2018.2.2 由于昨天累了…所以一觉睡了10个小时…好舒服 吃完饭去西安城墙…俯瞰整个长安城的感觉真棒~不过走完整个城墙需要4-5小时,所以只走了四分之一 下面po图 下午去陕历博(陕西历史博物馆),据说大部分陕西出土的文物都在这里,全是文物就不放图啦 接下来是大雁塔…去大雁塔的路上体验了一下西安地铁,感觉不错,就是刚好是下班高峰期,挤得要死 西安地铁目前只有3条线,因为要边挖边整理挖出来的文物 大雁塔最后只是在外面拍了个照,并没有买票进去 Day4 2018.2.3 这天买点特产什么的就走啦 然后在西安火车站被坑了…买了个肉夹馍难吃死了还比市里贵得要死…果然火车站都是坑钱的23333 最后po一张回去火车上拍的照片 总结 这次旅行还是感觉不错的( _ ) 西安真是座历史悠久的古城~ 哦…对了…在从上海站回家的地铁出站时用支付宝出站结果被卡在闸机外面了…TAT 最后在车站工作人员帮助下手动出站…希望上海地铁支付宝进出站系统还要好好改进,相比之下西安地铁就好很多 最后…感谢各位的阅读~"},{"title":"略有失望的VPS体验 - AWS LightSail评测","date":"2018-01-27T00:28:00.000Z","url":"/post/aws-lightsail-test/","tags":[["AWS","/tags/AWS/"],["LightSail","/tags/LightSail/"],["测评","/tags/%E6%B5%8B%E8%AF%84/"],["评测","/tags/%E8%AF%84%E6%B5%8B/"]],"categories":[["测评","/categories/%E6%B5%8B%E8%AF%84/"]],"content":"var meting_api='' 拖延症有点严重啊…这篇评测本来是去年就打算写的,一直拖到现在… 咳咳…下面进入正题… LightSail是由AWS推出的一款适合个人、团队或小型企业的云计算服务,它与传统EC2相比性价比更高,且对于初次接触云计算的用户来说管理、操作更为方便。 网页管理后台 评分:★★★★★ LightSail采用的是独立的管理界面,与EC2完全分离,重设计的界面与传统的AWS Console相比更加简洁,没有EC2那么眼花缭乱的按钮和操作,侧边的Help按钮更加方便地引导用户进行操作。这一点我给满分。 价格与计费方式 评分:★★★☆☆ LightSail的计费方式其实与EC2并无区别,都是以小时的方式进行计费,较为单一,并没有期待中的按量付费和包年包月的两种不同形式。比较令人失望的是费用,我选择最低配的EC2无论什么系统都是$10每月,而LightSail选择Linux只需$5且流量有1TB,看起来确实性价比有所提升。但是若系统选择Windows,价格就变成了$10,可以看出要付额外的$5版权费,还是让人有些失望的。这一部分只能给三颗星。 控制面板功能 评分:★★★★☆ LightSail的控制面板功能较为齐全,快照、负载均衡、DNS域、弹性IP、附加存储应有尽有,唯一需要吐槽的是重装系统必须删除实例再重新创建,不能在后台直接重装,这一点很鸡肋,继承了EC2的风格。看来AWS在一些细节方面还是欠缺考虑,这一点只能给四颗星。 网络与可用区 评分:★★☆☆☆ LightSail可用区还是较多的,但是和EC2相比还是偏少,但已足够满足普通用户的需求。 本次评测中对于大多数可用区都进行了测试,总体分为亚太地区、北美地区、欧洲地区三大可用区,并选出了每个大区域中速度最快的可用区。(测试地点为上海电信) 亚太地区 可用区 地理位置 推荐指数 ap-southeast-1 新加坡 ★★★☆☆ ap-southeast-2 悉尼 ★☆☆☆☆ ap-northeast-1 东京 ★★☆☆☆ ap-south-1 孟买 ★★★★☆ 总体来看亚太地区情况并不好,从上海电信访问很多都是绕道美国的,特别是东京和新加坡,原本以为速度应该还可以,没想到慢到炸,相比而言孟买速度较好,但是还是一个字慢。 北美地区 可用区 地理位置 推荐指数 us-east-1 弗吉尼亚 ★★★★☆ us-east-2 俄亥俄 ★★★★★ us-west-2 俄勒冈 ★★★★★ 总体来看北美地区是特别适合选择的,上海电信直接直连,尤其是俄亥俄和俄勒冈,比亚太地区快了不知道多少倍,可以说在评测完亚太地区之后用北美地区快到飞起~ 欧洲地区 可用区 地理位置 推荐指数 eu-central-1 法兰克福 ★★☆☆☆ eu-west-1 爱尔兰 ★★★☆☆ eu-west-2 伦敦 ★★★☆☆ 总体来看欧洲地区中规中矩吧,本来也没有抱太大希望,速度上介于亚太和北美之间,如果针对中国地区用户的话还是不推荐使用该地区的LightSail。 服务器配置性能 评分:★★★☆☆ 先上一张在Windows上的配置图: 由于没钱选择的是最低配版本,性能上是有所欠缺的,这一项主要还是看钱。 总结 总体评分:★★★☆☆ 准确来说这次LightSail评测并没有特别让人惊艳,而且由于LightSail是与Vultr、DigitalOcean竞争的产品,我觉得并没有显示出它的优势,甚至在有些方面还比不上,略有些让人失望。希望LightSail能继续改进,让它更加适合普通用户使用,在性价比方面、计费方式、网络可用区等方面可以做得更好一些。"},{"title":"【已修复】好气啊(`ヘ´)=3这个BUG就真的修不好了么...","date":"2018-01-24T22:19:00.000Z","url":"/post/why-cant-me-fix-this-bug/","categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''最近在填坑…移植LightWhite主题,碰到了一个严重的问题:首页文章排版 代码照着搬过去,结果如下图: 演示地址: 而且貌似只有在电脑或者iPad之类的宽屏上才会出现:-( 就是下一篇文章只要屏幕是宽的就会粘在第一篇文章右侧,然后首页被拉得巨长(我在说什么…) 换行标签什么的都试过了就是不肯下来[○・`Д´・ ○] 代码明明是一样的啊怎么会这样???一定哪里有问题… 源代码在GitHub上面: 不知道有木有大佬愿意帮忙看一下哒~感激不尽"},{"title":"【项目发布】LightWhite_For_PaperInk","date":"2018-01-22T18:26:00.000Z","url":"/post/lightwhite-for-paperink/","categories":[["项目发布","/categories/%E9%A1%B9%E7%9B%AE%E5%8F%91%E5%B8%83/"]],"content":"var meting_api=''经过一段时间的努力,我已经成功(算是吧…)将本博客使用的主题移植到了纸小墨静态博客上,故发此文进行说明。 首先感谢蚊子大佬的LightWhite主题,真的超厉害的呢~目前我移植的纸小墨主题是基于LightWhite 1.3.1版本,如果后面原作者有更新的话我也会第一时间更进的(可能吧…)各位有能力也可以把自己移植的最新主题提交个PullRequest 纸小墨 纸小墨(InkPaper)是一个GO语言编写的开源静态博客构建工具,可以快速搭建博客网站。它无依赖跨平台,配置简单构建快速,注重简洁易用与更优雅的排版。 纸小墨官方说明: LightWhite For 纸小墨 本主题基于Archeb的LightWhite主题移植,在GitHub开源。 GitHub项目链接: GitHub Release版本: 请勿直接下载项目!!!请下载最新Release包 ~~项目演示(GitHubPages):失效 原主题链接: 使用方法 解压纸小墨后得到ink.exe和blog文件夹,进入blog/theme文件夹,清空里面所有文件并粘贴本主题文件 编辑blog文件夹下的config.yml(不是主题里的!!!) 内容按如下修改: 重点是copy:部分的代码,不要擅自修改 然后参考纸小墨官方的使用方法,ink build生成静态博客 注:ink preview无法预览主题正常效果 已知BUG (截止至2018.1.23) ~~首页呈诡异状排版(求大佬帮助…QwQ)~~已修复,感谢蚊子的帮助 日期显示问题(Unix时间戳与月日转换还在研究…) 归档页面较丑(原主题貌似没有归档页面) ~~预览图片代码部分暂未移植(懒…)~~已补上 评论系统未加入 如果有更多Bug请在下方留言或者GitHub提交Issue谢谢 支持我 想要支持本主题GitHub上面给个Star啊之类的都是可以的~当然别忘了给原作者Star~ 本博客“关于我”三个字右边的东西点一下看一看也是可以哒~"},{"title":"周记#5 - 突然失踪原因","date":"2018-01-21T03:32:00.000Z","url":"/post/weekly-5/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''距离上次写博客已经8天了呢~期末考试早已结束,成绩也知道了,不管考得怎样,反正已经过去了òᆺó 那么我为啥消失了这么久呢…请往下看 期末成绩 咳咳…说好不说这个的啦!管它呢… 重感冒 哎:-( 事实上我从考试前一天就开始发高烧,39℃死撑了2天考完试就病倒了(所以考试结果什么的已经不重要了233) 这次感冒貌似一开始是病毒引起的,后来又变成了细菌性感冒,连续烧了1周直到现在还没完全好 这几天挂了盐水终于好了点…尴尬的是原本准备考完和同学去搞公益活动和去崇明岛玩的,结果只能他们去浪了…好气TAT 现在流感真是猖獗呢…各位注意身体,别累坏了 寒假 23号返校之后就正式放假啦!寒假就是写作业+粗去浪…(大概吧) 寒假打算去西安,并且回福建老家,到时候再说… 生病的这段时间一直在构想一些小项目,已经有了灵感,寒假里可能会在GayHub上面发1-2个小项目吧…(挖坑)另外不出意外的话之前说的LightWhite移植计划也会进行的… 暂且就说这么多吧…手机上码的挺累的…感谢各位耐心阅读~下次再见"},{"title":"周记#4","date":"2018-01-12T04:27:00.000Z","url":"/post/weekly-4/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''Hello~好久不见(也才一周啦) Ass you see… 我在百忙之中又抽出时间写周记啦 这周真的好不容易熬到周末的,因为期末嘛…作业…(你懂的)几乎每天都晚11早6(累) 下面分享一下这周的经历QwQ 上海的冬天 这是我这周最想吐槽的…上海这周最低温度连续零下,今天最低温度更是零下6摄氏度… 我已严重怀疑上海到底是不是南方城市…感觉广东以北都是北方啊!冷成doge,特别是早上晨跑时,那酸爽…冷到瑟瑟发抖 下周貌似要回暖?希望不要这么冷啊TAT 新域名 对了,就在我写这篇周记前几分钟,我刚刚在套路云上花1元入了一个新域名,后缀是.tech 具体用来干甚么…以后就会知道的,现在不告诉你(跑 当然我非常不希望这个新域名也使用辣鸡的CF减速,慢得和我的博客一样,又没钱买香港/台湾的服务器,所以看来只有在工信部完成备案一条路可走了 备案准备让腾讯云代备案,刚刚已经填写完成基本信息,其他的寒假在弄吧~ 你问我为什么不把博客备个案?.me不让备案我也很无奈啊! 好啦这周就是这样,感谢阅读,寒假再见!(这次是真的啦)"},{"title":"哇我居然填坑了2333","date":"2018-01-07T04:57:00.000Z","url":"/post/its-amazing-that-i-have-worked-on-my-project/","categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''之前不是在周记里说要把本博客使用的LightWhite主题移植到纸小墨上面嘛… 写完周记我就认为自己立Flag了,绝对是个大坑,自己不会去填坑的2333 然而刚才抽出时间稍微移植了几个文件,Push到了GayHub上面,顺便生成了一个使用LightWhite主题的纸小墨静态博客,放在GitHub Pages上面~ (继续阅读) 这里就宣传一下这个刚刚开工的项目啦: 各位可以访问 看一下效果,感觉还是挺适合放在这种静态博客上面的 目前已知以下问题: 文章排版错乱 只移植了头部和文章部分 最重要的Index部分都没有移植,所以不要直接访问hans362.github.io当心被吓到 更多未知的问题… 由于还没做完就不骗star啦(跑 最后附一张效果图: "},{"title":"周记#3","date":"2018-01-05T03:04:00.000Z","url":"/post/weekly-3/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''大家周末好~我是消失将近一周的Hans362(≧∇≦) 又到写周记的时候啦! 那么我这周都干了些什么呢?不告诉你 ↘️ 期末备考 咳…天冷了,又到了期末考试了23333(大概是学生党最担心的事?)各种卷子也是接二连三地来了呢,每天12点已成为日常,因此这周平时也没怎么更博,毕竟没时间嘛orz 那么今天(2018.1.5)考了历史和思品,下周考社会,再下周考语数英物理,也就是说再撑一周就解放啦~寒假近在眼前呢,当然前提是别挂科才能有一个幸运的寒假23333 然而…不幸的是今天历史似乎已经挂科了(囧rz)世界史什么的太难背了啊!闭卷部分果然是一年比一年难,拿到卷子居然脑子里一片空白,三分钟前背过的东西全忘了TAT,然后犯了超多低级错误(比如把歪果仁的名字写错之类的)预感要挂。开卷部分还行吧,但是心里有点悬呐,可能这次会栽在历史上吧orz 主题移植 说实话真的好喜欢蚊子的这个LightWhite主题呢~目前已有计划移植到静态博客纸小墨上面,万一以后没有主机放Typecho了至少还可以用纸小墨+Travis CI构架静态博客到GayHub上面嘛… 什么,你竟然不知道什么是纸小墨? 项目官网: 项目介绍: 其实就是个类似于Hexo的静态博客吧,由于是采用GO语言编写,主题都可以引用GO语言环境变量,可以说移植起来应该还是很方便的呢…当然已经小试牛刀过了,但是由于项目还是挺庞大的,计划到寒假再慢慢移植,到时候会放GayHub的(第一个项目呢…感觉是个万年大坑) 这周就是这么简简单单吧~最后还是祝所有和我一样为期末奋斗的学生党们考出自己理想的成绩吧,加油! 好啦,感谢各位的阅读,我们寒假再见!=w="},{"title":"AWS是要吓死人的节奏啊...ಥ_ಥ","date":"2018-01-02T02:21:00.000Z","url":"/post/aws-bug/","tags":[["AWS","/tags/AWS/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''今天早上收到来自AWS的Budget邮件,提醒我我的使用额度已经超出了免费套餐的额度… 喂!我可是老老实实用的诶!怎么可能会超出呢?! 但是由于太匆忙没时间去看所以就暂时忘了这件事,但是我刚刚又收到了一封邮件… 大致内容就是说系统出了个小错误给所有客户都发了这个警告邮件不用管它… 嗯,就是这样害的我白紧张一场orz 所以各位如果遇到这样的问题也不必过度惊慌,可以先等等,实在不行也可以去找客服理论。事实上国外的客服都是比较善解人意的,一般由于自己的误操作都会帮你取消掉账单的(仅限第一次哦)。比如上次我的硬盘不小心用超了,于是用超级糟糕的英语和客服理论,最后免掉了账单。 估计AWS这次吓坏了不少人23333"},{"title":"是时候和2017说再见了","date":"2017-12-30T23:28:00.000Z","url":"/post/2017-annual-report/","tags":[["年终总结","/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"]],"categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''时间过得这么快的嘛…转眼已到2017年的最后一天啦 回忆这一年真的是发生了很多事情呢,可以说是有喜有悲吧… 下面是对这一年一些大事的总结XD 2017总结 (思路有点乱没按时间顺序想到啥就写啥啦) 网站相关 我的博客于2017.12.15正式装修完毕 牛奶云于2017.7.4迁移至亚马逊AWS服务器 牛奶云于2017.8.13新增3台分布全球各地的服务器 牛奶云于2017.10.6接入魔门云CDN 我于2017.9成功申请GayHub学生包和AWS学生包 hans362.me域名于2017.12.1购买,时常1年 … 生活相关 2017.9进入初二 2017.10换了手机->MI 4(旧手机被我摔碎了TAT) 2017.1.27第一次在上海过春节(以前回老家233) 2017.6.1X我13岁啦 2017.10.4中秋节又没有看到月亮 …(这方面其实挺多的一时想不起来了…看来有个博客记录生活挺重要的呢) 2018展望 时间真的好快啊,后年就要中考啦:-) 希望新的一年里自己和家人、朋友还有你们都能平平安安(≧∇≦) 下面列一下明年自己的小目标吧~ 数学加油!数学什么的基本上每次考试拖后腿…都是英语把分数拉上去的啊 博客不倒(立Flag) 牛奶云开下去(虽说已严重亏本但是服务器明年6月到期,到期后有能力还是会续费的) 备战中考!明年9月份进初三之后可能确实没有精力和时间去搞这些了…博客可能会月更甚至不更,牛奶云基本不去管它了(如果开得下去的话) 挣一个亿 这些目标实现应该不难吧…那么Flag就这样插好啦(拔不拔得出来就不知道了)~等2018年的今天再来看我会怎么想呢?一切,都在未知中… 最后,祝各位的2018更加精彩!元旦快乐![撒花]"},{"title":"(水)收到了来自AWS Educate送的$25代金券~","date":"2017-12-29T21:27:00.000Z","url":"/post/25-usd-credit-from-aws-educate/","tags":[["AWS","/tags/AWS/"]],"categories":[["水","/categories/%E6%B0%B4/"]],"content":"var meting_api=''大概今年暑假申请了AWS Educate,于是乎获得了$150的代金券(高兴~) 然而…我发现我失策了…居然去买了贵的要死、流量只给10GB/月的EC2 后来发现居然有LightSail这种好东西,每月有1TB流量(开个酸酸乳之类的很适合啊)!后悔… 不过刚刚收到了AWS Educate的邮件,大致内容就是由于我参加了AWS Educate的线上课程,送给我25美刀代金券! 嗯…这次买个LightSail玩玩…干什么好捏?后面会写篇测评的,大家敬请期待 "},{"title":"使用Jenkins CI为Nukkit持续集成","date":"2017-12-29T20:09:00.000Z","url":"/post/autobuild-nukkit-with-jenkins-ci/","tags":[["Jenkins","/tags/Jenkins/"],["CI","/tags/CI/"],["持续集成","/tags/%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90/"],["Nukkit","/tags/Nukkit/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''最近搭了个Jenkins,在一番艰难困苦的研究之后,终于成功的使用Jenkins编译了一个Maven项目Nukkit。虽然过程艰辛了点,但是从长远来看还是挺方便的,实现了自动检测GayHub上面的项目更新并且自动完成构建,岂不美哉? 话说这篇文章拖了好久啊…元旦前一个周末就开始写了,现在元旦放假还没写完…我保证这篇文章一定是我有史以来最用心的…没有之一! 项目简介 Nukkit是一个由iDeaLeaper一群大佬们写的强大的Minecraft PE非官方开服程序,使用JAVA环境运行,项目代码开源。但是由于MC更新频率极快,所以服务端也需要不断更新,故需Jenkins进行持续集成。 GayHub项目地址: 官方提供的编译方法如下: 构建环境配置 首先Nukkit是一个Maven项目,因此Jenkins中要把Maven Intergration插件装好,便于新建Maven项目。同时安装Apache Maven,并配置环境变量。 插件安装非常简单,在Jenkins系统设置-插件管理-可选插件里面搜索Maven Intergration就可以安装了 Maven的话我用的是Ubuntu,直接执行: 安装完成之后输入mvn -version就会出现Maven路径,再到Jenkins中系统设置-全局工具配置填写Maven路径 此外,Git等一些常用的组件也要安装好,具体就不详述了,偷个小懒哈(跑 建立Maven项目 Jenkins中点击左侧的建立新的Item,名称随意,项目类型选择Maven(如果没有这个选项一定是你的Maven Intergration插件没有安装好,请检查上一部分操作是否正确) 接下来就是项目信息的配置填写了,这里不多说话,直接上图吧 需要注意的是源码管理中的Credentials请填写你自己的GayHub账户(不填好像也没什么关系吧) 初次构建 到这里为止就基本设置完啦~想想自己的Jenkins即将跑起第一个项目心里还是挺激动的! But…在控制台里一大片红色文字闪过后你得到了一个红色的小球(编译失败) 怎么会这样呢? 我翻了好久的Issue终于发现了有人和我一样,是缺少对应的库文件,只需要把 丢进Maven的Lib文件夹里就可以啦 紧接着再跑一次构建,终于得到了编译好的Nukkit.jar 到这里这篇文章就差不多了,只要Jenkins一直运行着,他就会默默帮你检测代码更新,跑代码,测试,构建JAR,听起来就很棒呢! 感谢各位的阅读~如果有什么问题下方留言即可,我会尽力解答哒"},{"title":"博客竟然被百度收了2333...欣喜之余也好气哟","date":"2017-12-29T02:17:46.000Z","url":"/post/blog-recorded-by-baidu-search-engine/","categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''今天无意中百度搜索Hans362,居然搜到了我的博客,排在首页第二个诶,瞬间感觉百度好6,要知道我的博客才刚刚开了15天呢。当然也可能是关键字太冷门了… 不过其实这篇文章的重点不是在这!重点是下面的几个搜素结果,都是我的黑历史…因为我曾经用这个ID注册过果壳网账户,百度上一搜我的果壳网个人信息、发过哪些帖子之类的黑历史全都出来了…好气哟,所以你们可以自由地看我的黑历史了对吗2333当然也并不能怪百度,百度只是负责把含有关键字的网页找出来 突然就感觉这样挺恐怖的,只要知道一个人的ID,百度上一搜就可以轻松得到几乎关于他方方面面的个人信息,而且万一这些信息都是真实的,其实也挺可怕的 最后还是希望各位保护好自己的隐私,尽量不要让别人有机可乘哟 (喂!关掉百度!你是不是在搜我!别去挖我的黑历史了…因为真的没什么好看的都是假的假的假的…喂!还看!当心我顺着网线爬过来找你!≧∇≦)"},{"title":"周记#2","date":"2017-12-28T23:53:00.000Z","url":"/post/weekly-2/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''各位早上好中午好晚上好~我是Hans362 又到了写周记的时候啦,真是难以置信呢,一周过去了我居然按时来更新了。这次不说那么多废话了,直接进入正题吧 博客更新 这周感觉自己莫名其妙变得勤快了,按照我以往的套路博客应该是要拖更的呀,然而这周几乎每1-2天就更新一篇文章,不知不觉就写了好多,事实上还有好几篇存在草稿里还没有发布呢。大概是刚开始写博客吧,还比较勤快,感觉自己到后面肯定会懒到断根更的w 元旦 这是我这周最期待的事情啊啊啊!元旦放假当然超开心的~学校今天也只上半天课呢!不过作业也是蛮可观的,毕竟快期末了嘛… 元旦没什么安排,只打算宅在家里,出去上两次课,天气超冷的没什么事我可不想出去。在家里写写作业,修修BUG,差不多就是这样吧 程序设计竞赛 这周刚刚得知今年的上海“某某杯”程序设计大赛成绩粗来了,为啥今年我只拿了二等奖啊喂~表示不服,去年乱做都拿了一等奖啊!为毛会酱紫TAT…但是不管怎样至少拿了个奖,明年是最后一次机会啦,加油w 新年 2018就要来啦~真的好快啊,提前祝各位新年快乐(跑 好啦这周的周记文就是这样啦~感谢各位的阅读,我们明年再见咯"},{"title":"IIS环境下为Typecho配置伪静态","date":"2017-12-28T03:36:00.000Z","url":"/post/typecho-url-rewrite-on-iis/","tags":[["Web","/tags/Web/"],["IIS","/tags/IIS/"],["伪静态","/tags/%E4%BC%AA%E9%9D%99%E6%80%81/"],["Typecho","/tags/Typecho/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''Typecho是一款轻量级的基于PHP的博客程序,界面简洁,简单明了,而且它还可以使用内置的固定链接功能让博客看上去像静态页面。 那么我的博客是使用Typecho,搭建在Windows上的,并且用的是IIS 7,最近心血来潮想打开固定链接的功能,结果却提示无法检测URL重写。然而无论是Typecho官方文档还是百度,都没有针对IIS的伪静态设置说明(有httpd.ini但是不兼容)。 无奈。。。还是自己动手吧。自己选择的路,哭着也得走完啊 在一番复杂的研究之后,我终于写出了一个有效的web.config(哈哈哈哈哈高兴死我啦) 配置好之后重启IIS,后台打开固定链接 Now,Enjoy~"},{"title":"遇到怪事了-玄学的ApacheTomcat容器","date":"2017-12-26T02:08:00.000Z","url":"/post/apache-tomcat-run-out-of-memory/","tags":[["Tomcat","/tags/Tomcat/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''最近把Jenkins移到了新的服务器上,由于已经自带Apache Tomcat所以就使用War包的方式部署Jenkins,然而我一不小心手贱重启了Tomcat,于是这只该死的Tomcat就罢工了。 提示如下: 初步判断是端口占用的原因,因为上面的Log显示应该是端口冲突了。于是我把所有的Java全部kill了,并无卵用。Tomcat各个端口全部换掉也无济于事。。。我甚至重装了Tomcat都没有用 然后心里好气哟,于是上了百度找了半天全是建议更换端口,终于,我在V站上面发现了一个在1年前和我有同样遭遇的人: 当时好激动,因为情况简直一模一样。赶快看了评论,终于找到了解决办法。 找到 jdk1.x.x_xx/jre/lib/security/java.security 这个文件 把 securerandom.source 设置成 securerandom.source=file:/dev/./urandom 最后终于看到了熟悉的Jenkins界面,虽然并不知道为什么这样就解决了,据说是因为JDK内存太小的原因(所以说到底还是内存的锅咯),但是真的炒鸡开心的说~感谢V站的大佬们,也分享给大家,说不定哪天碰上了呢"},{"title":"圣诞快乐!","date":"2017-12-24T01:33:00.000Z","url":"/post/merry-christmas-2017/","categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''(不要在意配图啦随便做了张图连皮肤都没有换成冬季的) 各位剩蛋圣诞快乐哈~ 虽然我自己并不是对圣诞很感冒啦,就这么普普通通的过去吧,但是还是正经的祝大家圣诞节快乐!愿各位2017年的所有美好都如期而至,愿各位的2018更加精彩~"},{"title":"搭了个Jenkins CI~","date":"2017-12-22T20:24:00.000Z","url":"/post/build-a-jenkins-ci/","tags":[["Jenkins","/tags/Jenkins/"],["CI","/tags/CI/"]],"categories":[["技术向","/categories/%E6%8A%80%E6%9C%AF%E5%90%91/"]],"content":"var meting_api=''虽说我已经是懒癌晚期了但是为了方便自己大家还是搭了个Jenkins。平时可以自动在上面构建一些项目什么的,还是挺方便的呢 这次和大家分享一下搭建的过程吧~ 系统环境 系统:CentOS 6.8 x86_64 IP位置:德国(别问我为什么选德国233都怪国内要备案然后刚好德国有一台闲置主机) 安装JAVA 让我喝一口82年的JAVA 咳咳… 安装Jenkins 启动Jenkins 配置Jenkins 由于是采用YUM安装的原因,其实如果没有特殊需求(例如改默认8080端口)的话,直接访问就可以了,超方便der有木有 然后就是按照提示一步一步走,看得懂英文当然最好啦,看不懂就一直往下点也是可以的 最后就进入了Jenkins CI的主界面啦,会自动根据你的浏览器设置语言哦~不需要自己修改成中文,挺人性化的 (安装过程忘记截图了…就这样吧ಠ_ಠ) 常见问题 暂时没发现呢…以后再补(懒癌晚期的日常2333) 结束语 总体来说这次搭建还是挺顺利的,目前Jenkins上面已经跑了一个项目,就是本博客使用的LightWhite主题,每天下午三点会自动从GayHub上面构建。大家有什么项目需要我帮忙持续集成的话也可以本页下方留言哦,提供GayHub项目地址及构建方法即可。由于之前没怎么用过Jenkins,目前也仍在研究中 (顺便一说有谁知道Nukkit怎么用Jenkins持续集成吗…求教各位大佬|已学会,但是编译到一半就会因为内存不足导致Jenkins被杀…看样子得等有钱了换一个内存大一点的服务器,不过跑跑小项目还是可以的) ** 2017.12.24更新:Jenkins搬到了一台1H1G的美国服务器上面,这下可以愉快地玩耍了呢,还搞了个反代不需要加端口访问了(是不是很棒) ** 哦对了…差点忘了…我的Jenkins地址是戳我戳我,欢迎来玩_"},{"title":"周记#1","date":"2017-12-22T03:07:00.000Z","url":"/post/weekly-1/","categories":[["周记","/categories/%E5%91%A8%E8%AE%B0/"]],"content":"var meting_api=''哈罗大家好这里是Hans362~ 没错正如你所看见的那样我开了一个周记板块哈哈哈哈哈哈哈哈哈嗝~ 大概是受到蚊子大佬的启发吧233页开始写周记了XD 不过其实我是不太喜欢写作的,比起在纸上写周记我更爱我的键盘=w= 下面就来讲讲这周我的摸鱼学习生活,这些周记打算写完存起来给自己看,也给大家一个了解我的方式 博客 这周也是比较闲的呢,因为一直想开一个个人性质的博客,所以就用Typecho架在了牛奶云上面,主题啊之类的都匆匆忙忙弄上去了,有些地方可能还有些Bug,以后会慢慢修的。对于Typecho目前也不是特别习惯,很多功能都没有去研究,还是慢慢来吧 P.S. 目前博客友链墙紧缺友链,快来互加友链啊~ 学习 这方面就不多说了,可以说这周非气爆表,非常糟心了。不过起起落落总是会的,加油吧(吸欧气~) 牛奶云 说!你是不是觉得牛奶云很赚钱的样子?!(有么有被吓到QwQ) 其实这种想法是完全错误的,已经连续亏本数月了! 话不多说,直接上图: ![总览][1] ![财务统计][2] 所以有木有人愿意买个东西支持一下什么的(快醒醒…别做梦了)感觉再这样下去服务器费用都付不起了… 冬天 冬天超冷的…早上很想裹着被子不起床(大家应该都酱紫想的吧…还是我太懒了呢?)晨跑感觉手都冷到痛死了,不过今天是冬至,之后会一天天暖和起来的。加油,寒假就在眼前啦~ 结束 好啦第一期周记到此为止~感谢各位阅读QAQ,元旦再见(˶‾᷄ ⁻̫ ‾᷅˵) [1]: [2]: "},{"title":"Hello~或许没人知道我是谁233~","date":"2017-12-20T02:30:00.000Z","url":"/post/hello-world/","categories":[["杂文","/categories/%E6%9D%82%E6%96%87/"]],"content":"var meting_api=''如题 那么问题来了,我到底是谁呢QwQ 猛戳此处了解我(别戳坏屏幕了还是下手轻点吧QAQ) 嗯,没错就是这样,在某有打广告嫌疑的主机商那里蹭了一台主机(好像暴露了什么…话说已经亏本数月了),今后就打算在这里发博客啦! 这次决定不像某有打广告嫌疑的主机商的官方博客那样用WordPress写博客了,毕竟太过臃肿,并不符合我的喜好,所以就用轻量级的Typecho啦,正好满足了我爱折腾的需求。主题LightWhite是蚊子大佬写的,和他(她?)的博客主题一样哦,蚊子大佬的主题真的超厉害、超用心的(感谢蚊子大佬) 话说这个域名也是Gayhub学生包送的呢,还上了CloudFlare,明年年底过期,不过感觉自己并不想续费XD,到时候可能会换域名吧 总之这就是我开这个博客的经过吧…更新频率打算周更,希望自己能坚持吧2333(赶脚要立Flag)"},{"title":"关于","date":"2018-11-06T11:59:48.000Z","url":"/about/","categories":[[" ",""]],"content":"var meting_api='' 关于 Hans362 作为一个懒癌晚期患者懒得写个人简介了,就用贴标签的方式介绍一下自己吧ಠ_ಠ 学生|PHP是世界上最好的语言|不会卖萌|MineCraft玩家|视频剪辑|CSS渣渣|懒癌晚期|重度强迫症患者 咳咳…还是来个完整的自我介绍吧 我叫Hans362,大家也可以叫我牛奶(这个名字在二次元三次元通用的,四不四很棒) 游戏只爱MineCraft,已入正 擅长PHP渣渣一枚,CSS也很渣 会写Html和MarkDown(好像没什么值得炫耀的…)会视频剪辑 喜欢交朋友,欢迎各位大佬来我的博客,轻喷 地理位置:上海~有人愿意面基的咩?~QwQ 需要联系我的话一般可以发邮件到i@hans362.cn,也可以博客上直接留言滴,当然我不一定有时间去看 Hans362 出没地点 邮箱:i@hans362.cn Telegram: Teleblog: GitHub: QQ:???不存在的 还有就是本博客啦~ 其中TG不太常用因为…梯子不太稳 TG 现已成为最常出没地点 关于 Hans362 's Blog 不管你是从何处了解到本博客的,首先恭喜你,竟然能够在如此之大的网络世界中找到这个地方,可能这就是缘分吧23333 Hans362 's Blog是我的博客,取名也很直白呢。在这个时代,或许还在使用独立博客的人已经不多了,但我还是搭建了这个博客,毕竟在茫茫互联网中有属于自己的一片土地,想想也很幸福呐~ 这个博客主要用来水一水+吐槽+记录生活+发很水的技术向文章,那么以下就是本博客的历史时间线: 时间节点 事件 2017.12.20 博客正式开启,托管于 牛奶云 MilkCloud ,使用 CloudFlare 加速 2018.2.11 博客迁移至 Coding Pages,关闭 CloudFlare 加速 2018.6.4 博客启用新域名blog.hans362.cn ,并迁移至 WootHosting(传说中的超售大王,但是便宜啊~一年才一美刀),使用 CloudFlare 加速 2018.9.12 博客迁移至 NAVER CLOUD HK-NTT 服务器,针对电信联通 CloudFlare 加速 2018.12.29 博客正式迁移至 GitHub Pages ,加入静态博客大家庭( Hexo 真好用) 关于版权 本博客所有文章若无特殊说明均为原创,著作权归Hans362所有,采用知识共享署名-相同方式共享4.0国际许可协议进行许可,可进行非商业性质转载,但请注明出处并设置超链接到对应源文章。一经发现有违规转载者将严肃处理。 如果本博客有违规转载内容(应该不会有的啦…),请务必在相应文章下方与我取得联系,我将立即撤下。 感谢您的配合,愿有一天,版权意识能够在每个人的心中:-) 总之就是这样,感谢各位的阅读ᕕ(ᐛ)ᕗ"},{"title":"追番","date":"2024-04-24T14:37:28.484Z","url":"/bangumi/","categories":[[" ",""]],"content":"var meting_api=''"},{"title":"友链","date":"2024-04-24T14:37:28.484Z","url":"/links/","categories":[[" ",""]],"content":"var meting_api=''"},{"title":"搜索","date":"2024-04-24T14:37:28.484Z","url":"/search/","categories":[[" ",""]],"content":"var meting_api=''"},{"title":"标签","date":"2024-04-24T14:37:28.484Z","url":"/tags/","categories":[[" ",""]],"content":"var meting_api=''"}]