2017年9月3日,對世界上的大多數人來講,或許就只是普普統統的一天,但對我而言,將會是一個難忘的日子,由於在那一天,我結婚了。python
在規劃婚禮時,要考慮許多不一樣的方面。食物、裝飾、桌子裝置(啊,是噠,這獨立於裝飾)、鮮花、住宿、交通、娛樂和位置。雖然在規劃婚禮時有許許多多未知數,可是我能夠確定一件事。在婚禮中,有大量的名單、嵌套的名單、以及更多的遠到目光可見的名單。當我瞪着愈來愈多的項目時,我開始懷疑,是否有更好的方法來處理?這一切都如此的手動,充滿了低效。必須有一些技術能夠改進的方面。web
你可能會感到驚訝,可是邀請人們參加婚禮是昂貴的(超過380磅),由於你須要發送「按時出席」卡片以及隨後的關於婚禮細節的邀請。這也是緩慢的,由於你必須經過郵寄來發送它們。追蹤人們是否接收到邀請,以及他們是否想要來參加提供免費食物和飲料的派對,是很是耗時的,固然,一個自動的好的?最後,邀請卡不是環境友好的,由於它們被一次性使用,而且容易丟失或錯放。數據庫
回到名單。客人名單分紅幾個部分:服務器
可是名單是好的。它們有預先定義好的要求和響應,這讓它們是自動化的重要選擇。微信
瓶中信運維
無關年齡,我確信婚禮名單上每一個人都有手機,這意味着該是Twilio上場的時候了。若是你想要跳到代碼,那麼你能夠看看GitHub上的repo。機器學習
SMS對個人需求而言至關完美。我能夠配置發出的羣發短信,而且快速有效地處理迴應。在繪製一個MVP而且考慮數據庫的時候,我想要某些易於分享的東西,而且不想要浪費時間來構建視圖。偶然發現的gspread python庫使得我可以讀寫谷歌電子表格。雖然這不是最快的選擇,但它確實足夠靈活,而且提供了一個易於訪問和可讀的輸出。學習
對於初始的R.S.V.P,我建立了一個電子表格,包含這些列:測試
主要數據輸入完成後,我使用gspread來遍歷列表,而且發送短信給每個具備與之相關聯的手機號碼的客人:Sheets.py大數據
由於短信能夠看起來很簡單,因此我添加了一些unicode來讓它們有趣些。下面是幸運的受邀者接收到的短信樣式:
接下來,我使用Flask做爲個人web服務器,而後設置個人Twilio消息請求URL指向/messages url,並建立簡單的if語句來解析回覆 (yes, no):hello_guest.py
第一條消息是在2月19日早上8:37的時候發送的,而在3分鐘後,也就是早上8:40收到了第一條回覆。到了早上9:38,我收到了23條確認回覆,這但是32%的接受率!初始羣發短信2天后,咱們收到了58%的客人的確認!儘管取得了明顯的成功,可是個人未婚妻並不熱衷於我那做爲婚禮邀請服務(SAAWIS?)的短信,所以,我決定添加一些功能到個人應用中。
統計!我能夠計算現場出席名單並按要求退回,給新娘即便反饋客人名單的成型。代碼很簡單,由於我已經在電子表格中設置了一些基本的計數器,所以,僅僅是抓取這些單元格的內容,並將其添加到短信中的事:hello_guest.py
如下是最終的短信:
不是很漂亮,但頗有用。
Lauren如今能夠跟蹤出席率,這件事大大緩解了她的壓力。從那時起,萬事俱備,而且短信被儘量集成到婚禮的方方面面。有些是顯而易見的,例如當婚禮網站 (天然,由Heroku提供動力) 上線的時候發送通知短信,分享禮物列表以及其餘我至今仍然感到驕傲的事。
食物,極好的食物
在創建R.S.V.P名單後,常常被推遲的是讓客人確認他們的食物選擇。你會驚訝於讓人們選擇免費的食物是多麼的困難。第一步是發送另外一條短信,告訴那些確認參與的客人訪問網站,並經過一個谷歌表單選擇他們的食物選項。至關標準的東西,然而,表單被設置爲填充與參與者相同的工做簿。這意味着,如今,我有了已確認參與的客人以及那些填寫了食物選擇表格的客人表單。一般,我會等待客人慢慢選擇他們的飯菜,但因爲個人婚禮由Twilio驅動,意味着我能夠用最少的努力來跟蹤。
數據須要匹配訪客名稱上的兩個電子表格,而且在有匹配的時候更新客人的食物選擇狀態。這須要一些額外的工做,但一旦重排代碼,我就能夠按需批量運行腳本,並最後經過短信獲取個人客人的最新狀態:food.py
如今,有了一個確認的客人名單和愈來愈多的食物選擇名單,經過主要應用將這些統計數據公開是有意義的。所需的只是抓取相關單元格的內容,而後用短信回覆:Hello_guest.py
讓婚禮餐飲者瞭解咱們的進展,並提供誰沒有選擇的可操做數據,是很是方便的。追蹤客人是另外一個自動化選擇。簡單遍歷參加者名單,找到沒有選擇用餐選項的調皮的客人,而後給他們發送信息!Chase.py
大日子比咱們所想的來得更快些。而惟一須要作的事就是發送最後一條短信,提醒客人基本的細節,以及提醒他們帶把傘,以防碰上通常的英國夏季的雨季:
總結一下
婚禮永遠不是個簡單的事,它會讓你感受到不少事都不在你掌控之下。自動化經過提供與咱們的客人的直接渠道,以及無數的我能夠跟蹤、推進以及戳他們迴應的不一樣方式,顯然讓個人生活更輕鬆了。它幫助咱們在婚禮臭名昭着的時間消耗方面變得積極主動,讓咱們能夠空出來關注大日子的其餘重要領域。
爲複雜問題創建可擴展的解決方案歷來不是件簡單的事,即便在其最終形式下,個人應用有時也是很脆弱的。我已經計劃創建一個更加完整的解決方案,帶有進度的數據可視化、語音基礎並更少依賴於CLI腳本,可是時間更重要些。總的來講,我很高興它的工做方式。沒有通信系統是完美的。你須要實現最適合你的受衆的渠道,不管是短信,語音,聊天,視頻,仍是信號量。
Python能夠作什麼?
web開發和 爬蟲是比較適合 零基礎的
自動化運維 運維開發 和 自動化測試 是適合 已經在作運維和測試的人員
大數據 數據分析 這方面 是很須要專業的 專業性相對而言比較強
科學計算 通常都是科研人員 在用
機器學習 和 人工智能 首先 學歷 要求高 其次 高數要求高 難度很大
我有一個微信公衆號,常常會分享一些python技術相關的乾貨;若是你喜歡個人分享,能夠用微信搜索「python語言學習」關注
歡迎你們加入千人交流答疑裙:699+749+852