看程序员是如何把自动化作到极致的![转载]

看了这些程序员的分享,你会大涨姿式滴!python

Guru S(IT自由职业者, 软件和web开发者,平面和网页设计师)

这才是我在 Quora 期待碰见的问题嘛!linux

我就从最有趣的开始说吧:我建立过一个批处理文件,每当我登录本身的计算机超过 10 分钟尚未手工解除这个批处理文件的执行的话,它就会删光硬盘上全部的爱情动做片。若是我今天挂了的话,即便你知道个人开机密码;我也能平静的死去,不用担忧灵魂被捉个现行,也没必要担忧世人在我过世后发现这些动做片而改变对个人见解。git

三年前,我并不知道 MVC 架构。程序员

在那时,咱们还在用三层架构写代码。后来,成为软件架构师以后,我在公司引入了四层架构(其中,表现层分为两部分,一部分位于用 JS 开发的客户端,另外一部分位于服务器端)。众所周知,n 层架构须要大量冗余而重复性的代码。当时,为了创建数据访问层、商业逻辑目标、表单及最大的部分:JS 中的 OOP,咱们不得不写不少重复性代码。为了解决这个问题,我写了个自动作这些事的程序。奇妙的是,以往须要一周多才能完成的任务,如今不到15-20分钟就能解决。github

后来,当我学了 Angular JS 和 ASP .NET MVC 后发现 MVC 已经包含了和所谓的“基架”相似的功能。尽管如今已经不用这程序了,当时我用写的另外一个程序来建立 Angular JS 控制器和视图模型,其实这些能够由 ASP .NET MVC 的视图模型自动建立。web

在我学习工程的最后一个学期,咱们得对项目截图来把它们收录到手册里。当时咱们不知道 Dropbox 有自动保存截屏的功能。而截图,在画图板中黏贴(不能在 Word 里,由于分辨率不够高)并保存这一系列动做过于繁琐。更有甚者,有很大的概率会犯把保存的文件覆盖掉的错。当时我用 VB .NET 编了个程序,当快速连击三次鼠标时自动对当前窗口截屏并保存到指定文件夹。是的,我作得比 Dropbox 更好,哈哈。但若是当初知道 Dropbox 的话,我是不会去写这个程序的。shell

这个项目像一个间谍软件同样也在我家的电脑(全部家人都在使用)里运行了数日.数据库

在同一期间,我并不知道 SQL 有 SP_Generate_Inserts 这个函数。当我须要在两个表之间拷贝 100 行数据时,我几乎建立了和这个函数相同逻辑的脚原本对表之间基于‘where’条件拷贝特定列。编程

正当前:我刚开始使用 Quora (仅仅20天前)。我没有找到任何办法来下载我问的问题的答案。我正在写一个用来自动下载答案的程序。ubuntu

Yash Bhardwaj(想致力贡献 AI 世界)

我以为自动化的主意简直是太棒了。如下是我已经自动化的一些东西列表。它是生活变得容易,而计算机为你服务是十分让人满意的。第 三、四、9 点是个人最爱。

  1. 我讨厌别人随便摆弄个人我的电脑或者甚至私闯入个人房间,因此当这种事发生时,网络摄像头会检测到,并自动拍照当即发邮件给我!
  2. 我对历史挺感兴趣的,好比每到一个记念碑或记念地我老是想要了解它。而又有什么比维基百科当你的向导更好的呢!每当个人 GPS 靠近重要的历史遗迹,个人智能手机会自动打开维基百科。
  3. 我追的剧有 GoT/The Flash/BBT/Mr.Robot 等等等等。在印度用 BT 种子下载是最佳选择。因此每当新出一集,便会自动下载。假如要下载的完整的一季的话,我只需打【剧名】+【第x季】。程序会自动排序集数并同字幕一块儿下载。
  4. 讲到种子,还有个程序根据 IMDB 的排名每个月自动下载 10 部英文佳片。但有时候会由于种子的低种子率而失败。
  5. 我喜欢关于太空的东西,因此每当 NASA 的哈勃望远镜上传了它的每日一照时,个人手机墙纸也会跟着更新。
  6. 如今天气可预报的程度高了但咱们仍须要别人来提醒,而我会收到一条短信提醒,若是明天下雨的话。
  7. 做为印度人,咱们从不在 MRP 上买东西,而老是找便宜货,因此我在线编了个一样的东西,一段跟踪产品价格动态的脚本并更新在 excel 页上,每当有东西跳楼价了我就会获得什么值得买的通知。
  8. 每当有闪购或大减价日,一段脚本自动把折扣大的东西放入个人购物车。这帮助我抢到了5秒以内售罄的红米手机,还有一加手机的优先邀请等等
  9. 每当我打开一个隐身窗口,看看爱情动做片时。历史纪录固然不会被保存可是会有后一段时间上的真空。因此个人脚本干的事就是当我隐身时用普通网站和随机文章来填补这个真空。
  10. 如今还有其余的一些小小的自动化,好比个人推特 DP 和 脸书 DP 同步, 状态同步了,标记过的照片会保存到个人 Dropbox, 若是有人打我电话超过三次我电话的静音模式就会自动切换关闭,每当我插入耳机,音乐自动开始播放随机曲目,执行备份,等等。

全部这些任务执行起来都很简单,你没必要有不少编程经验可实现。有相似 IFTTT 的工具可帮到你,但自动化的真正乐趣是写脚本(诸如 VB、Java 还有 PHP 等)。如今还只是概念阶段,但我想把全部这些很棒的脚本都开源了,像作产品同样。这样即使是技术小白们也能自动化东西了。如今你会说我上述的 app 已经作的很不错了,但瞧瞧吧!”每一个 Facebook 都有一个 MySpace & Freindster 来给它垫背。“

自动化愉快!万一我还想起什么的话会更新这个列表的:)

Ashhar Hasan(计算机工程学本科 2013 级。常年致力于挑战)

我自动化了许多任务:

  1. 自动下载必应每日壁纸:这是一个 PowerShell 脚本, 仅当有网络链接时天天一次启动一个外部程序 30 秒用来下载文件。而后另外一个脚本天天 12:00 am 运行(或是一有机会的下一次),把下载的图片复制到我指定的文件夹。
  2. 自动下载 Windows Spotlight 锁屏图片:这也是用 PowerShell 写的,用来把全部 Spotlight 图片拷贝到一个文件夹,并根据他们的分辨率分红两组,一组电话用,一组手提电脑用,还能清除垃圾图片。
  3. 一些开机启动程序的延迟启动:由于我没有 SSD,但开机有许多程序要启动。因此我写了一个批处理文件,用于等待磁盘 I/O 低于某个阈值,再根据优先级从高到低启动程序。
  4. 自动 Git 命令:个人系统中有大约 60 多个 GitHub 和 Mercurial 存储库,我但愿他们根据 upstream 保持最新状态。因而我写了个 shell 脚本运行在给定深度的特定目录(和二级目录)的全部存储库,从 upstream 获取新的 commits。我正在写一个工具,能够在多个存储库中运行任何 git 命令。
  5. 自动 Licence 头:我也写过个 PowerShell 脚本用来给存储库的一些文件(取决于文件类型)加上特定 Licence 头。
  6. 找到未配置存储库:这个脚本作的是找到全部根目录中没有 README、LICENCE、.gitattributes 和 .gitignore 的存储库。
  7. 一个下载全部 GitHub 问题和 pull-requests 存为 markdown 文件的扩展,这样我就能离线浏览了。
  8. 批量更名器:这是一个经过从目录结构和文件名中提取信息来给电视剧集更名的利器。
  9. 今晚看啥:一个 python 脚本,用来根据一些我给出的标准(上映日期范围,评分,类型等等)告诉我我该看哪些电影。
  10. 歌单生成器:一个用来生成我好久没听歌曲的歌单和生成我最近收集但一次也没播放过的歌曲的歌单的脚本。

为了让个人生活变得更容易,我还在作不少事。

Aarjith Nandakumar(程序员一枚,又热又专)

我设定本身的计算机 2:05 AM 自动开机,拨号联网并启动 uTorrent, 最后在 7.50 AM 或者下载完毕以后自动休眠。

在个人大学时代,咱们只在 2 AM 到 8 AM 享受无限宽带链接。(这是由于全时段无限套餐有 256 kbps 的带宽限制,而晚间的最大带宽为 2 mbps)我还迷恋上了尝试不一样的 linux 发行版,并下载了 ubuntu, kubuntu, mint mate, mint cinnamon, fedora, debian, SUSE 等。然而天天要熬夜到 2 AM 是困难的。因此我在 windows 设置了计划任务在 2.05AM 触发一个批处理脚原本创建链接(Modem 被配置成桥接模式,未得到较佳下载速度不使用 PPPoE)。这一任务被设置成唤醒系统运行,因此能够从睡眠状态执行。

在 uTorrent 配置被设置成当下载结束关机,而还有另外一个计划任务做为双保险,确保 万一下载还没结束 7.50 AM 关机 。

我碰到的惟一问题是计算机在厅里,而开机的时候会有蓝色灯光闪烁。我父母觉得我晚上忘了关电脑就替我关了机,我起来后才发现根本就没有下载。那次之后我想他们解释了这计划,以后就都好了:)

Ankit Jain(编程是懒虫的福音)

我有写过一个为我在脸书上自动聊天的脚本。这脚本读取一个 excel 文件,文件指定了我想聊天的对象,每五分钟检查一次这些聊天对象有没有上线。

个人自动聊天是以 Hiiiiiii 开头的。而后从预约义的问题和答案中选择来保持聊天。

若是有人问的问题与个人 excel 中已存在的问题相差 50% 会自动回复 Hmmmmmmmmmm 。而且立马用邮件和短信通知我聊天须要个人干预。如今没人再对我抱怨我不关心他们了。

一样这个脚本随机从不一样网站选出祝福人们生日的话语,并发布在过生日朋友的墙上。

[补充]:若是个人任何一名朋友与我在脸书上三周没有联系(没有评论、喜欢、聊天和贴标签等),这个脚本会删了他们(仅仅由于他们不在我喜欢与之聊天的人的名单之列)。这真是让生活轻松多了。

[注]:为对代码感兴趣的人的一些注意事项
1. 当前受权部分仍是手动的,它是一个桌面应用,只有当我登录到脸书而且浏览器打开一个页面才有用。
2. 这目前是基于 Python, Java 和 Selenium。
3. 我正在朋友的帮助下把它转成一个安卓 app,或便携式桌面应用。敬请期待,你可能在 Google Play 商店或是 GitHub 下载到它。以前我只会回复 Hmmmmmmmmmm 

 

小编补充伯乐在线去年一篇热文来镇楼:《超过 90 秒的任务不自动化,你好意思说本身是黑客?

2015年11月 Reddit 上有个很火的帖子。是这样一回事:

Alex 有一位前同事,这家伙简直就是生活在终端里面。若是某些事情,甚至能够说是任何事情,哪怕只须要花费他超过 90 秒的时间,那他会写脚原本自动处理那些事情。

前同事把他写的脚本发到一个俄语聊天信息网站 bash.im上。Alex 把俄文翻成英文了,伯乐在线翻译组再翻成中文咯。

某某某:好吧,咱们的集成工程师已经跳槽到另外一家公司了。那个哥们简直就是生活在终端里面。你懂的,他就是那种喜欢 Vim、用 Dot 建立图表和用 Markdown 编写 wiki 帖子等等的家伙(译者注:Dot,一种图形描述语言)。若是某些事情,甚至能够说是任何事情,哪怕只须要花费他超过 90 秒的时间,那他会写一个脚本,来自动处理那些事情。

某某某:嗯……因此咱们坐在这里,翻翻着他的“遗产”。

某某某:你会喜欢这个的。

smack-my-bitch-up.sh

给他老婆发一条的短信,大概意思是“晚上要加班”。从一个字符串数组中自动随机地提取理由。运行在一个定时任务里面。若是晚上 9 点以后,服务器上还有他登陆的有效 SSH 会话,那就会触发这个定时任务。

(伯乐在线补充:《Smack My Bitch Up》是英国乐团 Prodigy 的一首歌。试听地址:戳这里。)

kumar-asshole.sh

从电子邮件的收件箱里扫描“Kumar”(他是咱们一个客户的数据库管理员)。查找像“help”、“trouble”、“sorry”等这样的关键字。若是找到了,那么脚本会 SSH 链接登陆到客户服务器,而且将数据库回滚到最新的备份。而后发送一条回复:“别担忧,兄弟。下次当心点。”

hangover.sh

另外一个定时任务被设置成特定的时间。自动发送相似“感受不舒服、要在家里工做”这样的电子邮件。从另外一个定义好的字符串数组中,选取一个随机的“理由”。若是在早上 8:45 前,服务器上没有交互的 session,就会触发该定时任务。

(伯乐在线补充:hangover 是「宿醉」的意思。)

某某某:(最 diao 的来了!)fuckingcoffee.sh

这个脚本会等待整整 17 秒(!),而后打开一个 SSH 会话,链接咱们的咖啡机(咱们彻底没有想到咖啡机会连网、上面运行着 Linux、 后台还执行着 SSHD),接着给它发送一些稀奇古怪的命令。这看起来颇有极客范。完成这些以后,咖啡机会开始煮一杯中号的 half-caf 拿铁咖啡,再等待 24 秒(!)就能够把咖啡倒入杯中。这个时间偏偏是那家伙从他的座位上走到咖啡机所用的时间。

某某某:这太 TM 牛 X 了,我要留着这些。

小编补充:

想要这些脚本的童鞋,请到 Github 下载。这个项目这几天超火啊,这会已经 22000+ star 了啊!!!(更新时间:2016-05-20)

 

 

转自:http://blog.jobbole.com/100744/

相关文章
相关标签/搜索