看程序員是如何把自動化做到極致的!

看了這些程序員的分享,你會大漲姿勢滴!

7cc829d3gw1f43btvq0lij218g0tnada.jpg

Guru S(IT自由職業者, 軟件和web開發者,平面和網頁設計師)

這纔是我在 Quora 期待遇見的問題嘛!

我就從最有趣的開始說吧:我創建過一個批處理文件,每當我登陸自己的計算機超過 10 分鐘還沒有手工解除這個批處理文件的執行的話,它就會刪光硬盤上所有的愛情動作片。如果我今天掛了的話,即使你知道我的開機密碼;我也能平靜的死去,不用擔心靈魂被捉個現行,也不必擔心世人在我過世後發現這些動作片而改變對我的看法。

三年前,我並不知道 MVC 架構。

在那時,我們還在用三層架構寫代碼。後來,成爲軟件架構師之後,我在公司引入了四層架構(其中,表現層分爲兩部分,一部分位於用 JS 開發的客戶端,另一部分位於服務器端)。衆所周知,n 層架構需要大量冗餘而重複性的代碼。當時,爲了建立數據訪問層、商業邏輯目標、表單及最大的部分:JS 中的 OOP,我們不得不寫很多重複性代碼。爲了解決這個問題,我寫了個自動做這些事的程序。奇妙的是,以往需要一週多才能完成的任務,現在不到15-20分鐘就能解決。

後來,當我學了 Angular JS 和 ASP .NET MVC 後發現 MVC 已經包含了和所謂的“基架”類似的功能。儘管現在已經不用這程序了,當時我用寫的另一個程序來創建 Angular JS 控制器和視圖模型,其實這些可以由 ASP .NET MVC 的視圖模型自動創建。

在我學習工程的最後一個學期,我們得對項目截圖來把它們收錄到手冊裏。當時我們不知道 Dropbox 有自動保存截屏的功能。而截圖,在畫圖板中黏貼(不能在 Word 裏,因爲分辨率不夠高)並保存這一系列動作過於繁瑣。更有甚者,有很大的機率會犯把保存的文件覆蓋掉的錯。當時我用 VB .NET 編了個程序,當快速連擊三次鼠標時自動對當前窗口截屏並保存到指定文件夾。是的,我做得比 Dropbox 更好,哈哈。但如果當初知道 Dropbox 的話,我是不會去寫這個程序的。

這個項目像一個間諜軟件一樣也在我家的電腦(所有家人都在使用)裏運行了很多天.

在同一期間,我並不知道 SQL 有 SP_Generate_Inserts 這個函數。當我需要在兩個表之間拷貝 100 行數據時,我幾乎創建了和這個函數相同邏輯的腳本來對錶之間基於‘where’條件拷貝特定列。

正當前:我剛開始使用 Quora (僅僅20天前)。我沒有找到任何辦法來下載我問的問題的答案。我正在寫一個用來自動下載答案的程序。

Yash Bhardwaj(想致力貢獻 AI 世界)

我覺得自動化的主意簡直是太棒了。以下是我已經自動化的一些東西列表。它是生活變得容易,而計算機爲你服務是十分讓人滿意的。第 3、4、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 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章