星期三, 9月 20, 2017

Upgrade Jenkins plugins via SSH

之前都是啟用 CLI over remoting ,用 jenkins CLI 做更新,但前一陣子在更新 Jenkins 以後,開始該該叫,說這樣不安全。查了一下文件,發現可以用 SSH 來做。
  1. 在 http://jenkins/configureSecurity 裡啟用 random SSHD Port
  2. 在會使用 ssh 登入更新的使用者設定裡 (http://jenkins/user/YOUR_USER_NAME/configure),貼上 public key 。
  3. 參考並修改這個腳本,執行它就可以更新了。

星期一, 9月 18, 2017

電影流水帳(2017/6/6~2017/8/3)

Elodie Yung Elodie Yung ,在 Gods of Egypt 裡飾演愛神,在找她照片的時候,我想起之前在 G.I. Joe: Retaliation 裡看過她,在 G.I. Joe: Retaliation 裡是飾演一個女忍者,不常看到臉。不過,總算是在這部電影裡大大露臉了。
  • Hors De Prix (IMDB, Wikipedia),台譯:巴黎拜金女。Irene 是個以自己年輕本錢去當有錢人女友的女孩,有一天他在飯店遇到 Jean ,誤以為他是有錢人,跟他度過一晚,隔天因此失去金主。Jean 打腫臉充胖子,用自己的存款設法滿足 Irene,但終究不敵 Irene 的花用而花光。Irene 之後一走了之,Jean 走投無路,意外跟 Irene 一樣,以自己年輕的本錢,找到有錢的女人。
    後來兩人又遇到一起,Irene 看到 Jean 的金主,兩人之間反而變成交流了。在一番糾葛之後,Irene 明白 Jean 對他是玩真的,於是就在一起了。
  • Monster truck (IMDB, Wikipedia),台譯:怪獸卡車。意外的是個跟環保議題有關係的電影,跟電視預告的感覺不一樣,還蠻適合小朋友看的電影。
    在美國的某個油井發生了意外,有奇怪的生物從油井裡跑了出來,石油公司為了避免油井被封閉,派出了特遣隊到附近的小鎮上進行搜捕。男主角是個高中生,平常在資源回收場工作。生物逃到了男主角工作的地方,為了吃油,意外進入了卡車裡,男主角發現這生物還蠻會用卡車的,就改造了卡車。男主角也意外遇到了女主角,兩人調查這生物以後,發現這生物是從油井那邊來的。為了帶生物回去,兩人就到油井那邊去。
    從這邊有點忘記了,好像是邊被石油公司特遣隊搜捕,然後他們也意外發現了這生物還有兩個伙伴,石油公司裡研究這生物的研究員很同情這生物,所以就幫男女主角逃出去。男女主角逃出以後,改造了卡車,配合石油公司裡的研究員,一起帶著這些生物回到油井去。最終皆大歡喜,生物回到原棲地,石油公司倒閉,油井關閉,讓生物能有棲身之所。
  • Max Steel (IMDB, Wikipedia),台譯:鋼鐵麥斯。麥斯跟母親搬回了小時居住的小鎮,結果卻發生了一連串的怪事。麥斯意外發現自身的奇怪力量,並且遇到了 Steel ,兩人結合有更強大的力量,同時也讓 Steel 回想起之前跟麥斯父親合作的事情。結果搬回小鎮竟是已故父親合伙人的詭計,合伙人想利用 Steel 同類的力量來統治世界,於是麥斯跟 Steel 合作,打敗了合伙人,也解救了世界。
  • Gods of Egypt (IMDB, Wikipedia),台譯:荷魯斯之眼-王者爭霸。之前看預告,感覺上特效不錯,不過評價不是很好。
    簡單的說就是改編自埃及神話。
    Horus 原本要繼位當國王的,就在要登基的時候,父親的弟弟 Set 前來發動一場政變,取得了政權。Horus 在這場政變中失去了雙眼與神力,落魄的躲了起來,其他的神祇不是歸順就是被殺害。在人間有個盜賊 Bek,他的情人 Zaya 深信荷魯斯會再起,但 Bek 不相信。直到有一天,Zaya 因為幫助 Bek 偷了 Horus 的一隻眼睛而被 Set 的建築師殺了,Bek 才決定去找 Horus ,讓他幫忙救 Zaya。於是 Horus 跟 Bek 慢慢互相信任、互相幫忙,開始了打倒 Set 的路。在這段過程裡,有 Horus 的祖父、智慧之神、愛神等等的插曲,甚至 Bek 也如願見了在陰間的 Zaya。
    最後,Horus 與 Set 展開大戰,Horus 從 Bek 身上認知到自己的力量,進而打倒了 Set ,恢復人間的和平。而 Horus 也信守承諾,請祖父幫忙復活了 Zaya 與 Bek,一個快樂的結局。
  • Stranger than fiction (IMDB, Wikipedia),台譯:口白人生。Harold,一個會計師一天早起以後開始聽到奇妙的口白,他心裡很納悶,懷疑自己是不是生了病,到處找人幫忙。在這段過程,Harold 認識了一個糕點師 Ana ,對她產生了好感,並在之後聽了教授的建議跟她發展出一段感情;後來找到一個大學教授,透過教授 Jules 的幫忙,他得知了自己可能是一本書裡的主角,經過一番波折,他找到了這個作者 Karen。Karen 其實也陷入了寫作瓶頸,她一直不知道該怎麼安排故事的走向,是該跟之前一樣賜死呢?還是讓他活?她考慮了各種死法,但一直拿不定主意。
    Harold 跟 Karen 碰面了,這讓 Karen 極為驚訝,畢竟 Harold 是個真實的人啊,對於 Harold 的死去,她更加拿不定主意了。但是依照故事的走向,又必須讓 Harold 死去,最後她還是寫下了故事,並且交給 Harold。Harold 拿到以後,先拿給教授,問教授是不是還有轉圜的餘地。教授認真的看完原稿,交還 Harold 原稿,並告訴 Harold ,你必須死去,這是最好的結局。Harold 拿到以後,在回去的路上一口氣把原稿看完,他找到 Karen ,告訴她,他也認為這是最好的結局。於是世界就照著原稿的故事走了下去,Harold 在上班的途中為了救小朋友,被公車撞了。
    故事就這樣結束了嗎?Harold 醒來,懷疑自己是不是在天堂,但 Ana 告訴他不是。原來是 Karen 改寫了原稿,讓 Harold 能繼續活下去。
    這部電影真的蠻有意思。
  • Keeping Up with the Joneses (IMDB, Wikipedia),台譯:間諜大鄰演。衝著 Gal Gadot ,把這部電影看完了,故事還蠻有意思的。
    暑假到了,Jeff 跟 Karen 送小孩去了夏令營,原本以為兩人會有不一樣的生活。沒多久,隔壁就搬來了 Joneses 夫婦,這兩人的生活頗有古怪,Karen 調查起他們。經過一番調查,Jeff 跟 Karen 發現 Joneses 夫婦是間諜,而他們自己也陷入了古怪的事件裡。後來透過 Joneses 夫婦才知道是有人用 Jeff 的電子郵件販售機密,Joneses 夫婦是來調查的。總之,Jeff 跟 Karen 不得不幫起 Joneses 夫婦,展開了冒險。所幸最後是有驚無險,兩人度過了一個驚險的暑假,也跟 Joneses 夫婦當了好朋友。

星期六, 9月 09, 2017

wordpress 出現 Invalid post type 錯誤

今天進 wordpress ,選 All posts 後,就出現 Invalid post type. 的錯誤。先試著開啟 wordpress wp-admin/edit.php 看,發現一開始的檢查 $typenow 就導致錯誤 了,$typenow 是空的。
根據程式碼,試著在網址列加上 ?post_type=post ,能進入 All posts 了,但文章列表是空的。
  1. 上網找了一些文章,說是要移除 plugin ,但我試著移除了,沒有用。
  2. 對照目前的程式碼跟網路下載的 wordpress 4.8 程式碼,也幾乎是一樣的。
  3. 試著直接連線到資料庫看,資料表格一切正常,權限也都是正確的。
  4. 直接在 wp-config.php 裡加入
    define('WP_DEBUG', true);
    define('WP_DEBUG_DISPLAY', false);
    define('WP_DEBUG_LOG', true);
    
    ,然後看 wp-content/debug.log ,終於找到一點蛛絲馬跡。
看來是因為 wp-include/vars.php 有問題,裏面用 preg_match 檢查 _SERVER['PHP_SELF'] 時,因為 match 不到而出錯,猜想這可能連到影響到後續的 $typenow 有問題。根據這個線索去推敲,PHP 應該沒問題,察看了 php-fpm 的設定,也沒問題。後來找到這篇:php - Wrong SCRIPT_FILENAME in Apache 2.4.26 - Stack Overflow,再循線看到這篇:php - Wrong SCRIPT_FILENAME in Apache 2.4.26 - Stack Overflow才知道可能是 Apache 問題,察看了 pacman 的 log,果然前幾天有更新,但是因為沒有重新啟動,所以都沒發現問題。在設定裡補上
ProxyFCGIBackendType GENERIC
以後,重新啟動 Apache 就沒問題了。

星期三, 9月 06, 2017

awk 一行下載

為了下載投影片,但懶得一個個複製貼上、改指令,所以預先把投影片網址跟預定的檔名放在文字檔裡,然後用 awk 一次下載。
文字檔的格式是:url filename ,假定這個文字檔的檔名是 slides.txt
那麼,這樣就能搞定:
awk '{system("wget -O \"" $2 "\" " $1)}' slides.txt
參考資料:bash - awk system call - Stack Overflow

星期五, 8月 25, 2017

parse-server 架設小記

花了一些時間簡單的架設 parse-server,把過程紀錄一下。
  1. 安裝 docker 與 docker-compose
  2. git clone https://github.com/parse-community/parse-server.git
  3. 建立 docker image:
    cd parse-server && docker build --tag parse-server .
  4. git clone https://github.com/parse-community/parse-dashboard.git
  5. 建立 docker image:
    docker build --tag parse-dashboard .
  6. 建立 config.json,your-ip 要填你瀏覽器可以存取到的 IP ,而不是用 docker container 的 ip ,我本來是填 http://parse:1337/parse (請看 docker-compose.yml 裡的 links),但這樣 parse-dashboard 會說無法連到伺服器。
    {
      "apps": [
        {
          "serverURL": "http://:1337/parse",
          "appId": "APPLICATION_ID",
          "masterKey": "MASTER_KEY",
          "appName": "MyApp",
          "production": false
        }
      ],
      "users": [
        {
          "user": "user",
          "pass": "pass"
        }
      ]
    }
    
  7. 建立 docker-compose.yml
    ---
    version: '3'
    services:
      mongodb:
        image: mongo:3.4
    
      parse:
        image: parse-server:latest
        environment:
          FOO: bar
        command: --appId APPLICATION_ID --masterKey MASTER_KEY --databaseURI mongodb://mongodb/test
        links:
          - mongodb
        ports:
          - "1337:1337"
      parse-board:
        image: parse-dashboard:latest
        environment:
          PARSE_DASHBOARD_ALLOW_INSECURE_HTTP: "yes"
        links:
          - parse
        ports:
          - "4040:4040"
        volumes:
          - ./config.json:/src/Parse-Dashboard/parse-dashboard-config.json
    
  8. docker-compose up
要啟用 push notification ,得調整 docker-compose.yml 裡 parse service 的 command,加入 push notification 的相關選項。從選項可以看出,parse 仍是利用 GCM/APNs 來發送通知。
LiveQuery 在佈署到 AWS 時,要用 ALB,因為 ELB 不支援 WebSocket。
在正式環境裡,要記得把 PARSE_DASHBOARD_ALLOW_INSECURE_HTTP 設為 "no" ,並且加上 SSL 。也可以參考 parse-server github 網頁上對於佈署的說明,有蠻多佈署到平台上的現成範例可參考。
參考資料:

您或許對這些文章有興趣

Related Posts Plugin for WordPress, Blogger...