有時看以前寫的文章,會突然覺得有點不好意思。
你說你一個技術(shù)出身的,寫的什么亂七八糟的,文風(fēng)三俗,一點看不出技術(shù)人的博學(xué)扎實沉穩(wěn)木訥,你十幾年的碼農(nóng)生涯都喂了狗?
那我為什么沒寫點干貨呢,主要擔(dān)心是沒人看。干貨的特點就是干巴巴,寫的人和看的人如果不是癡迷技術(shù),都會覺得枯燥無味。你站在云端看看蕓蕓眾生,每個人忙忙碌碌焦頭爛額像一群小螞蟻,他們在夾縫中偶爾抬頭呼吸時需要的是什么呢?Relax!
當(dāng)然也不能掩飾一個真相,是自己的浮躁,不善于積累,寫完即丟,從沒想到整理自己的知識庫。這是病,要治!
嘗試深挖下自己,似乎也并不是一無所長:用python做工具解決各種資源(曾霸氣側(cè)漏說過“整個互聯(lián)網(wǎng)都是我的數(shù)據(jù)庫”);用nginx + flask解決了我后端服務(wù);用蹩腳的js寫了小程序和網(wǎng)站;用丑陋java代碼寫了andriod app。
這次我準(zhǔn)備收起自己的嬉皮笑臉,以嚴(yán)肅務(wù)實的態(tài)度敘說寫我開發(fā)《惡搞文學(xué)》的過程。
靈感來看到一個github上一個開源的BullshitGenerator,Star高達(dá)14.1K,沒有高大上的AI、自然語言處理之類的,代碼不足60行,原理是用一堆名言,前后墊話,廢話,隨機組合在一起。代碼截圖如下,中文變量名一度讓我極度不適。

代碼clone下來跑了幾遍,效果還真不錯哎。形式主義,廢話連篇,搞笑味道濃濃的。鑒于作者已經(jīng)提供網(wǎng)頁版的,我想再做個小程序的版本吧,名字就叫《惡搞文學(xué)》。
說干就干,先把后端接口弄出來。之前買的服務(wù)器上nginx和python環(huán)境已經(jīng)都裝好,只要把代碼封裝成api就好了,當(dāng)然還是用我最喜愛的flask框架。同時也需要用到存儲,同機部署了mysql,redis。對后端服務(wù)著重做了這幾點:
1. 使用supervisor守護(hù)nginx,uwsgi進(jìn)程,并配置了郵件告警,防止服務(wù)的意外中斷。
2. uwsgi配置平滑重啟,代碼更新時保證服務(wù)不中斷。
3. 代碼上保證支持分布式擴展,如session和數(shù)據(jù)庫操作等,萬一用戶量爆了,能快速部署多臺服務(wù)器。
4. 用apscheduler模塊對數(shù)據(jù)做了定時備份,避免了數(shù)據(jù)丟失的尷尬。
我想對于一個初期產(chǎn)品的后端服務(wù),能做到這些就夠了吧。小程序端使用了colorUI組件庫,不懂設(shè)計的碼農(nóng)可以嘗試下,讓界面不至于過于丑陋。
寫完后發(fā)現(xiàn)這功能也太簡單了,對不起“文學(xué)”這個詞啊。于是想到讓他也可以作詩。在github找?guī)讉€模型,號稱用LSTM神經(jīng)網(wǎng)絡(luò)和大量數(shù)據(jù)訓(xùn)練出來的。我運行了幾個要么負(fù)載極高速度極慢,要么出不來結(jié)果或者結(jié)果一看就是傻缺,讓我對AI落地產(chǎn)生深深的懷疑。當(dāng)然這也難不倒我,在網(wǎng)上抓了幾個可用的頁面和接口的數(shù)據(jù)代理輸出,也算勉強能用了。如果你用過python的requests和beautifulSoup模塊?,這都不是難事。
現(xiàn)在既能寫狗屁文章又能寫藏頭詩,也算“惡搞文學(xué)”了??紤]到可能會有炫耀裝酷的心理需求,又加了復(fù)制和轉(zhuǎn)發(fā)功能。當(dāng)然還比較簡單,但先發(fā)布出去吧,看他的表現(xiàn)來決定要不要繼續(xù)迭代。我現(xiàn)在還處于走量試驗階段,就像釣魚要在很多地方打窩,再看哪個上魚快,就選哪個做釣點深耕。?
放個界面截圖誘惑下

搜索“惡搞文學(xué)”不會迷路

我是獨立開發(fā)者杰森,嚴(yán)謹(jǐn)中略帶一絲沙雕氣息。