前几天闲来无事买来个树莓派玩。并不是想用来做什么,甚至没想到要怎么玩,更多是因为一种“情怀”吧,关于 Linux 的。我大概从 08 年开始用桌面 Linux,一直到 15 年换成 Windows(开始时用虚拟机装 Linux,后来改用 Cygwin/MSYS2,就很少用了。再后来 Win 10 有了 WSL,我把虚拟机也删了)。但对我来说,Windows 是用的而不是玩的,甚至 WSL 基本已经能满足所有关于 Linux 的实用性功能后,我还是感觉 WSL 是用的而不是玩的。那我为什么不用虚拟机来玩 Linux呢?理论上,虚拟机可以满足所有我折腾 Linux 的功能性需求,只是有一点,感觉不一样。面对运行在虚拟机里的 Linux,我完全没有玩的欲望,就好像它是阶下囚一样。我想在一个单独设备安装 Linux 来玩,即使什么都不做,只是时不时 ssh 上去更新一下软件包,或者看看日志。

我本来以为买回来玩两天就会感觉没什么意思,然后就放着吃灰了,但实际情况要好一些。我没有把树莓派接到显示器,也没有安装图形界面软件,全部操作都在电脑、手机或者 iPad ssh 进行。然后我就想给树莓派加一块屏幕或者连接显示器有什么意义呢?如果我需要显示一些东西,或者通过图形界面来输入一些东西,我可以写一个网页,然后用浏览器访问。说干就干,我用来了将近两天的时间,寻找最容易的实现方法(我对前端的了解还停留在多年前的简单 Html 和 JavaScript 常识),最后经过各种查找、试验、比较后,确定使用 Python(主体语言) + Flask(后端) + Vue.js(前端逻辑) + Flask-SocketIO(前后端间 WebSocket 通信) + Bootstrap-vue(前端界面),验证了我想要的功能是可以很容易实现的,并且感慨现在对于对前端几乎零基础的开发人员来说,写一个简单的看起来还像是个网站的东西还是非常容易的,就是选型比较麻烦,需要各种权衡用什么框架或者库。

但写完了 Demo 后,我的热情就褪去了大半,不错,技术上是能实现的,但我想做什么呢?我本来想先做一个简单的网页,在手机可以实时查看树莓派的运行状态,并且可以发送命令获取执行结果。但这有什么意义呢?直接 ssh 上去就可以了。获取传感器的数据,以及发送控制指令?我想了想,我的房间里实在没有什么需要用传感器获取的数据,获取些温度、湿度、气压、光照、气流、声音、照片、视频等等,有什么意义呢?盯着手机屏幕看或者自动发送到微博来自嗨?想控制些什么呢?小车、飞行器、机械手臂或者其他各种华而不实的玩具做什么呢?实用的东西多半早有成型并且成本低廉的产品了。并且那些玩具中多数没有什么技术含量,硬件基本买来连上(最多动一下电烙铁)就好,虽然看起来可能很唬人,软件的逻辑基本都比较简单,而且有很多现成的库或者算法,需要自己写的代码往往不多。而且其中很多东西都有很多人玩过了,轮子已经遍地都是了。

我这几天经常去网上查还有什么关于树莓派的创意玩法,没有找到吸引我的东西。在我即将让树莓派吃灰时,我突然想到一个问题,如果我只是想好玩,为什么要考虑有没有用呢?为什么要考虑有没有技术含量呢?为什么要考虑有没有前人玩过呢?

我想到小孩子玩一个像弹珠之类简单的东西都可以玩一下午,甚至一个暑假,它有用吗,有技术含量吗,没有前人玩过吗?但这些都不妨碍他玩得开心。而很多成年人,能接触到的东西要比小孩子多很多,但为什么找一个真正好玩的东西反而更难了?一个很大的原因就是很多成年人往往不是纯粹地找一个好玩的东西,而是又要好玩,又要好用,又要有技术含量并且没有过时,甚至还要没有其他人玩过的,那这样能找到的可能性就大大降低了。

然后我就想到很多人经常玩甚至沉溺于各种电子游戏的人,之前我总是不能真正理性地看待这些人,但现在想,他们中很多人纯粹地找到了好玩的东西,不过多考虑其他因素,沉浸进去,并且得到了快乐,如果没有因此失去更多东西,不是很好的事情吗?为什么要用是不是有用、是不是有技术含量、是不是别人都玩过的角度来看呢?

同样地,如果我不考虑是不是有用、是不是有技术含量、是不是之前已经有人做过了,单纯地以玩的心态来玩树莓派,是不是就更容易找到我喜欢的玩法呢?至少思路会远比之前广阔。

或许我只是把树莓派接上电源放在桌子上,时不时 ssh 上去随便敲些命令,只要自己开心,又有什么问题呢?也许慢慢我就会发现 pstree 里的进程越来越多了,或者接口上连的东西越来越多了,甚至我的生活越来越离不开它了。