看程序員是如何把自動化作到極致的![轉載]

看了這些程序員的分享,你會大漲姿式滴!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/

相關文章
相關標籤/搜索