Press "Enter" to skip to content

Posts published in “Admin”

Adding Dark Mode to WordPress

Supporting dark mode now becomes an industry standard, I also received several requests from my viewers/readers recently thus I decided to add this feature. First thing in my mind is a plugin, I found WP Dark Mode, it’s feature rich and kind of worked until someone told me it didn’t work with cached pages. Then I found Darkmode.js, there’re several plugin versions but I decided to use the plain js version. It’s simple but makes the job done. There are only a few options you can play with, like the position, size, color and emoji of the icon, that’s it. Here’s mine.

Put the following code in header.php

Basically, it adds an overlay layer that applies a revert color filter (white -> black, blue -> yellow, etc) to ALL the content including images and iframes as well as syntax-highlighted code which I decided to ignore later on.

To ignore a few types of content, add the following code to header.php

The next thing is to apply a different color theme for code under darkmode. I plan to use classic for day-mode and sublime-text for darkmode. Although the author says the persistent darkmode setting is in cookies, but turns out it’s in localstorage. There are two scenarios we need to handle. 1) page loads with darkmode on, 2) user click button to toggle darkmode. We need to change the class for code blocks accordingly.

Put the following code in the footer.php, since we need to let the syntax-highlighter do the work first.

Or don’t forget to preload the darkmode theme since only the default theme will be loaded to reduce requests and bandwidth.

Put the following code in the header.php <head> section, replace with your domain and plugin version.

Finally it looks like below, not perfect but pretty good and easy to config. I hope wordpress could officially add dark mode in the future release such that all the themes and plugins could implement that (more work though).

告别2020 2021再出发

一定要看到最后!一定要看到最后!一定要看到最后!

看了自己的上一篇微信公众号文章的发表日期已经是大半年前的了,我爸一直在问最近怎么没有看到你的C++(文章)呢?估计不少小伙伴认为花花已经“弃号”了。没有,花花还活着!受疫情影响,从去年三月份开始,花花就开启了在家工作模式至今。什么显示器啊、升降桌啊、屏幕挂灯啊、便携式空调啊、人体工学椅啊,AirPods Pro,鼠标键盘什么的都买了,升级了自己的家庭办公室。但工作效率却没怎么提升(嘘,小声点,别让老板听到)。

升级成4K显示器,用了就回不去了
在家工(chi)作(he)的一天,也算是开启了vlog新技能

随着时间的推移,国内的小伙伴们慢慢地恢复了日常的生活。而美国这边的情况却愈发严重,除了几次短途放风和办证之外,花花这半年都没怎么出门过,更别说坐过飞机和住酒店了。就连以前最喜欢的每周一次的买菜活动也被迫取消了。没有了公司的免费早午晚饭和下午茶,顿顿吃外卖是吃不起的,只能网上买菜自己做了(让Amazon和Weee狠狠赚了一笔!)。面包机、春饼机、空气炸锅、网红章鱼小丸子锅什么的都买上了。虽然开发了一点新菜色,但厨艺却停滞不前,感觉被锁死了!

空气炸锅挺好用的!就是洗起来比较麻烦…
第一次烧蹄膀,有4-5年没吃过了

美国独立日时候去了Big Sur,难得出去透透风,为了复刻macOS Big Sur的桌面壁纸特地去购买了DJI Mavic Air2。没想到第一次飞无人机就拍出了不错的画面(虽然复刻失败了…),然后就吃灰吃到现在,最近倒是被我派去检查房屋的雨水管道是否堵塞…

Bigsur风景还是不错的,想拍macOS同款桌面,没想到失败了…

不能出门在家里能干嘛呢?玩游戏!没错,花花也和大部分男生一样喜欢玩游戏,只是工作之后就不能像以前学生时代那么玩了。现在以Switch游戏为主:塞尔达、异度神剑1/2、风花雪月、健身环等都是我去年玩得比较多的几款游戏,还有动森和宝可梦。全部游戏加起来总共有400多个小时(这么一算好奢侈啊~你也可以说游戏好便宜啊,玩一个小时只要1刀左右)

Switch终于支持和手机“传图”了,原理是开一个wifi热点然后起一个httpserver,手机打开网页再一张张图片保存

过去十多年有无数次可以好好学琴的机会,花花都半途而废了,直到今年终于重新拿起来跟着某app从头开始学。但和玩游戏比起来花花在练琴上花的时间远远不够,还不到100个小时,先立一个1000个小时的小目标吧!

这其实是正式开始学习之前强行背谱弹出来的

在家里还能做什么呢?DIY,乘着感恩节假期把车库全面装修了一番,圣诞节假期又把家里布局调整了一下,也装饰了一下。同时更换了智能开关和插座,现在全家部署了10个智能开关、5个智能插座、4个智能音箱,2个智能屏幕和5个摄像头(其中2个集成了语音助手)。但是语音助手总是把all/on/off听混,同一句话不同的设备听到的结果还不一样,家里的灯开了又关,关了又开…有时候灯开了一个晚上都不知道。可见万物互联也不一定全是好事。

车库大作战
圣诞节装饰和灯展

哈哈,所以说除了码字之外什么都做了!视频一直有在录,LeetCode的题解去年一共制作了89期。我也尝试拓宽自己的“戏路”,挖了不少坑,从《CS大讲堂》、《玩转Linux命令行》、《C++/Python Weekly》、paper讲解、到最近的《系统设计》等,再加上流水账一样的vlog,加在一起2020年也制作了一百多期视频。平均三天一期,算得上是“高产”了,但视频制作的水平还停留在幼儿园阶段。只做自己想做的事情是无法掌握“财富密码”的,但我坚信:赠人玫瑰,手有余香。去年一年大环境不太理想,但还是有将近50位同学向我报告拿到Google/FB/Amazon/Apple/MS/字节等大厂的offer,还有面7拿5的,同学们比我强太多了!年终一总结,顿时感觉自己“伟大”起来了,没有,更多的是责任感和使命感。同时我也要感谢互联网,让我们大家可以在不同的时空中相聚!

同学们收到offer之后的感谢信

2021年已经来了,花花还是会继续给大家带来更多更好的视频!同时也要不断学习新知识,紧跟时代的步伐。最好的学习方法就是把别人讲明白了,您说是不是?

花花

1/4/2020 于离硅谷中心有点距离的家中

成为更好的自己,2020再出发

时光飞逝,转眼2019年就过去了,我们迎来了一个崭新的十年,花花在这里祝大家新年快乐!在过去的一年里面,发生了很多事,国际上的、国内的、还是花花自身上的,与其说是多事之秋,我觉得更像是好事多磨。无论是过去的2019年还是已经到来的2020年都会是不平凡的一年,被载入人类的史册。(开头开的太宏大了,我都快写不下去了…)

让我们来看看花花去年年末时候给自己的定的小目标吧:

  • YouTube订阅9.7K -> 20K,实际24K,2.4x
  • B站粉丝832 -> 3K,实际11K,12.3x
  • 公众号订阅2.9K -> 5k,实际8.9K,3.1x

没有唬人的标题,没有博眼球的封面,没有大尺度的内容,有的只是便于搜索的题号和题名,万年不变的PPT封面,和枯燥/口齿不清的念白。感谢同学们的不离不弃,全部以指数形式增长(这个时间复杂度有点高啊)。2019年我播种了超过100个视频,收获的是同学们拿到了offer脱离苦海成功上岸的喜悦、感谢信和红包,以及大家的支持与祝福。

除了讲题之外,2019年花花还完成了哪些小目标呢?工作上:晋升,虽然package没涨多少、自己带的实习生也拿到了return offer,感觉很欣慰。生活上:买房,两人合力存了两年多的钱,终于凑够了首付在相当于国内三、四线城市的湾区很偏的地方买了一套小房子。虽然背上了30年的贷款,但总算是敢花钱了:买电视,买家具,智能家居设备,换了新电脑,来了一场说走就走的旅行。相信很多人和我一样,在没买房之前真是喘不过气来,一分钱都不敢乱花。在成为房主之后很快就解锁了很多新技能:水管工、电工、木工、水泥工、油漆工、园艺工。。。以后再和大家慢慢分享经验。2019年也是我的VLOG元年,我原本是一个很快的人。拍摄VLOG让我慢下来,让我能够更仔细地去观察事物,更多地从他人的角度去看待这个世界。

当然2019年也有不少遗憾:三年没有回国了,国内发展日新月异,感觉我已经完全落伍了。长辈们慢慢老去,同龄人聚会结婚生子,这些片段都没有我的存在。跟着我十多年的手机号也由于欠费超过三个月而被注销。连续第三年减肥失败,体重倒是没有增长,但就是减不下来,看来要每天打卡健身环了。在美国待了7年了,英语口语还是没有太大地提高,自己不喜欢说话能怪组里中国人太多吗?没时间读书,通过实践能掌握不少东西,但是理论学习还是不可或缺的,不然你能够达到的高度是有限的。

说了这么多自己的事情是希望打破大家对我的刻板印象,但我相信在下个讲题视频那个一板一眼的花花马上就回来了。

2020年为成为更好的自己再出发,一大波讲题视频正在路上。当然还是要给自己定了几个小目标:每周2个视频,YouTube 40K,B站25K,公众号15K,我们明年这个时候再来检验一下。

[反面教材] 我是如何快速搭建一个公众号机器人的

声明:本文可以作为快速开发的经典反面教材,请勿学习,不然后果自负。

说来惭愧,公众号虽然开了有一年多,但没怎么发过东西。由于众所不知的原因,文章中不能有第三方视频/链接。要插入视频的话必须上传到腾讯视频,那真叫一个蛋腾,所以就放弃治疗了。真的对不住大家了!

直到昨天晚上,在手工编辑关键字自动回复的时候,无意中发现自动回复居然可以支持任意URL的超链接。这一下子激动得我就像发现了新大陆一样!赶紧加了几个按照leetcode题目编号自动回复视频/博客链接的关键字。我靠,这得手工编辑到什么时候啊?我怎么说也是一个堂堂正正的程序员好吗,怎么能干手工编辑这种事情呢(虽然我一直在干)?

自动回复,自动回复,自动回复!按照题目编号回复视频链接!说干就干!我路子野起来,连我的MacBook Pro都害怕。

其实流程还是比较清楚的,如下图:

自动回复流程图

数据源:我有一张Google Spreadsheet记录了所有的视频,网站链接。(就是上文提到的手工编辑的)【DONE】

数据源:http://t.cn/RTcVHnY

数据处理:这对于常年参加Kaggle比赛,总是1000名开外的我来说自然也不是什么难事。Google Spreadsheet发布成csv格式,这样处理起来方便些。写个python脚本从数据源生成一个JSON文件,key就是题目编号,value就是回复正文。【DONE】

数据处理

配置服务器:

首先你得有一台服务器。我博客的虚拟主机正好可以来拿当炮灰。【DONE】

官文的例子是用Python开发的,需要80/443端口,已经被Apache占用了【放弃治疗】

看来只能改用PHP了,我好歹也写过几百行PHP好吗?PHP:精通。一直保持在 echo “Hello” . ” World!”; 的巅峰水平,从未被超越过。【DONE】

我不是有WordPress在跑这么,直接用它不就完了么?找了几个插件,不是PHP版本/环境要求太高,就是2年多没更新了。还是自己写吧,但怎么插入自己的PHP代码呢?好像没那么简单。如果用SSH/FTP上传倒是可以,就是太麻烦了【放弃治疗】。

对了,其实我可以借壳上市。找一个不用的插件,把它的代码替换了不就行了么。再把readme.txt替换成之前生成的JSON文件。直接在WordPress中编辑就行了。【DONE】

服务器设定,指向那个炮灰插件。

实现业务逻辑:

官方的开发文档实在是无力吐槽,盲人摸象吧。接口测试功能倒是不错。

每次收到消息,读取readme.txt(此处应该有缓存),看看content是不是key,如果是的话就返回value。就是这么简单。【DONE】

服务器代码

夜深了,是时候和自己写的机器人进行促膝长谈了。【DONE】

最后的效果

打赏专用二维码

后记:

  1. 坑太多了,前前后后一共花了3个多小时。
  2. 数据源还有很多NaN正在手工编辑中。
  3. 大家千万不要学习我这种野路子风格,数据更新什么的还是需要手动,一点都不程序员。
  4. 准备加入更多功能,比如特辑/播放列表的关键字回复。
  5. 对我的机器人温柔一点。