随笔 · 2017年11月18日 · 5 分钟

世界上没有程序解决不了的问题,如果有……

程序不只是代码,生活中处处是程序。俄罗斯程序员自动化生活、15岁少年的温暖发明、古城钟楼的微博。

之前看到一条新闻说是杭州一名高三女生被哈佛提前录取,会编程。很多人觉得会编程特别厉害,尤其是会编程的女生更牛逼。那么今天就来聊聊程序以及编程。

不要以为只有程序员才可以编程,才可以写出特别牛逼的程序,你也可以,每个人都可以。

刷牙洗脸吃早饭,这是一个程序。去找班主任请假,这也是一个程序。谈恋爱结婚生子,这还是一个程序。

假如你起床先吃早饭,再洗脸刷牙;先让班主任签字再写请假申请;先生小孩,再结婚谈恋爱——你会发现不仅你自己不爽,你的班主任也会不爽,你的女朋友更是不爽。

所以要想达到你的目的,就要很正确地执行你的程序,或者很认真地编写出一段正确的能使你达到目的的程序。

程序,不仅是在电脑上运行的代码,生活中处处是程序。

俄罗斯程序员的自动化生活

先讲一位你知道了以后肯定会膜拜的大神。前一段时间一篇《俄罗斯程序员实现自动化生活》在圈内火了,文章介绍了俄罗斯一个程序员实现了全自动化的生活。

写了一堆脚本,会给老婆发加班短信、会在宿醉不醒时给自己请假、会自动根据邮件恢复客户的数据库、还可以一键远程煮咖啡,这哥们简直是程序员们的楷模啊(大家可以忽略程序员为什么会有老婆这样的评论)。

脚本1:拍老婆马屁 — 这个脚本会给程序员的妻子发一条"今天加班"的短信,同时还会从文本库里随机选取一条加班理由,让短信每次都不一样。通过定时任务来触发,如果在工作日晚上9点之后,这名程序员运维的服务器上还有正在运行的 SSH 进程时执行。

脚本2:库马尔是个傻逼 — 这个脚本会自动扫描程序员的邮箱,一旦发现有"库马尔"发来的新邮件时,会随即进一步扫描邮件内有没有出现"求助""出问题了""抱歉"等关键字。如果找到了这些关键字,系统就会自动连上客户公司的服务器,把中间数据库恢复成最近的一个可用备份。然后自动回复一封邮件,内容是:"没事儿哥们儿,下次小心点啊。"

脚本3:请假 — 这个脚本也属于定时任务,只会在工作日早上8点45分后服务器依然没有活动 SSH 进程时执行。运行后自动给公司发一封"今天身体不适"或"今天我在家上班"的邮件,同样会从文本库中随机抽选出一条请假理由附上。

脚本4:老子要喝咖啡 — 这个脚本在执行之后,会先精确等候17秒,然后打开一个 SSH 进程,远程连接到公司的咖啡机,然后传送一堆代码过去,咖啡机就会煮一份中杯半咖啡因的拿铁咖啡,然后精确等待24秒后,再倒进咖啡杯里。

为什么会有这么多奇怪的等待时间呢?因为这个脚本运行的全程,正好是这名程序员从自己的办公桌前起身,走到咖啡机所需要花费的时间。

这么说吧,如果有任何事情要花费他超过90秒的时间,他一定会写一个脚本来实现那件事情的自动化,这货基本算是生活在终端里吧。

15岁少年的温暖发明

如果你觉得上面的程序只有像这样的大神才可以干出来的,那么没关系,我再说一件事你或许就不会这么认为了。

一名15岁的华裔少年创造了一个令美国人惊叹的温馨发明,只为了让爷爷不再走丢。这名少年名叫 Kenneth,他的爷爷是位老年痴呆症患者。

Kenneth 的爷爷经常毫无征兆地在夜里频繁"出走"。Kenneth 的姑妈主要负责照顾爷爷,为了防止意外,夜里总是硬撑着不敢睡死,隔一会就去爷爷的房间查看。但即使如此,也不能阻止爷爷半夜下床。

两年前的一个夜晚,当 Kenneth 在照顾爷爷的时候,看到他正想要下床。在爷爷的脚碰到地面的瞬间,Kenneth 突然想到,"为什么不在他的后脚跟放个压力传感器呢"?

当计划逐步展开,他意识这比他一开始想的要难得多。Kenneth 要发明一个可穿戴的传感器,必须足够轻薄灵活。除此之外,他还要设计一个足够小的传感器和一个 APP。他开始花大把时间来看 YouTube 上的极客视频,并且从图书馆借了一堆物理书来研究。在尝试多种材料后,他用电子墨水打印出了薄膜式传感器,并成功制作出了一个体积极小的电路系统。

紧接着,Kenneth 花了几个月的时间自学代码,创建一个操控蓝牙设备的 APP,把手机变成远程遥控器。这样无论是不是在爷爷身边,家人都能监控到爷爷是否半夜起身了。

从成功"捕获"爷爷的第一次开始,在一年内,这个小设备成功了900次,准确率达到百分百。家人再也不用陷入焦虑的寻找,取而代之的是彼此最温情的陪伴。

古城钟楼的微博

如果大家还是觉得这样的事离自己很遥远,自己不可能是这样的天才,做不出这么伟大的程序,那么我就说说你身边你见过的程序事例。

如果大家在微博上有关注"古城钟楼"的话,会发现这个微博的一万五千多条微博内容全是"铛~"字,细心的朋友还会发现每条微博全是在整点的时候发送的,时间不同,"铛~"的字数不同:

01:00【丑时】铛~ 07:00【辰时】铛~铛~铛~铛~铛~铛~铛~ 11:00【午时】铛~铛~铛~铛~铛~铛~铛~铛~铛~铛~铛~

你以为有人会天天这样守着电脑,看着时间,半夜起来都发条微博吗?不会的。

在程序开发里面,有一个叫定时器的东西。你没听过?那看过电视电影里面古时候的沙漏吧,那也是一个定时器。程序里面的定时器可以设定几时几分几秒工作,也可以隔多少时间做某件事,或者定义某个周期做什么事情,就像你手机里面的闹钟一样。

在这个微博程序里面,它应该是每分钟定时一次,检查当前时间是不是偶数小时的0分。如果是就发一条微博,如果不是就等一分钟以后再来重复判断,周而复始。


你会发现面对这样的微博,你不仅不会烦,而且还会觉得很好玩。当然如果让你成天发这样的微博,用不了几天你就会累吐血的,这个时候你肯定会想办法找有没有程序能帮你做这份工作——所以程序就这么诞生了。

程序源于生活,程序改变生活。程序员可以写程序,但程序不一定是被程序员写的。每个人都可以写出惊天的程序来解决自己遇到的问题,改变自己的生活。

世界上没有程序解决不了的问题,如果有,那么请去编程!

继续阅读

评论