2018年3月12日 星期一

[note] 2018 台灣之星 TStar Chatbot 網速猜謎網路速度觀察

2018 台灣之星 Chatbot 網速猜謎網路速度觀察
台灣之星在2018 台灣燈會的期間,舉辦了一個使用chatbot 的活動。不過,剛開始的chatbot 流程,導致peak值過高。 Facebook message api 出現(#613) Calls to this api have exceeded the rate limit.超過 rate limit 的情況。後來,直接改成在自家網頁上面填上猜的數字,而不由message再次回應給user。
台灣之星說明文
感謝所有熱情參與的民眾,台灣之星配合嘉義燈會自2/18 18:10起推出「Chatbot網速猜謎」活動。這個結合傳統與創新的猜謎遊戲盛況空前,創下FB單一Messenger瞬間超過40000人同時連線,但也造成民眾反應系統緩慢或無法順利參與的狀況,對此我們深感抱歉(一鞠躬)。
第一時間我們工程師立即進行流程架構與程式調查,並尋求外部廠商及FB於新加坡的團隊支援(FB台灣無Chatbot支援團隊)。
在此,我們想很透明的與大家說明截至目前為止的進度:
首先,FB「Chatbot網速猜謎」運作如下:
1. 使用者於FB Messenger中 Chatbot輸入訊息,傳至FB伺服器
2. FB伺服器收到該訊息後,再傳至台灣之星伺服器
3. 台灣之星伺服器解譯處理該則訊息後,再回傳答案給FB伺服器
4. FB伺服器回傳答案至使用者的FB Messenger
因為本次活動都是透過FB Messenger的資料互拋進行的,只要訊息於雙方系統間順利傳送,遊戲即可順暢進行;但根據2/18-2/20這三天活動的歷程記錄顯示,第1步驟至第3步驟間,都可在幾秒以內完成,到最後的第4步驟,卻發生等待幾十秒到十幾分鐘甚或Timeout漏訊的狀況,而我們收到FB伺服器回覆訊息: "(#613) Calls to this api have exceeded the rate limit.” 。
昨天(2/20)我們已進一步將相關數據畫面以email方式提供給人在新加坡的FB亞太區負責主管,截至目前為止,FB表示仍需要一些時間作內部確認與解決。
有鑑於此,台灣之星為確保全台民眾參與「Chatbot網速猜謎」的體驗,即刻宣布先暫停2/21 & 2/22這兩天的「Chatbot網速猜謎」活動,讓我們與FB在新加坡團隊得以順利排除問題。若2/23 18:10活動前仍無法解決,我們將再另行公告。這中間對大家所造成的困擾與不開心,我們要再次表達深深的抱歉。
對於已經預約2/21 & 2/22這兩天場次的民眾,參加獎「肯德基新春超霸雙享餐65折優惠券」皆會寄送給大家,若你又為台灣之星用戶,一樣可再獲得$100通話金,請放心,也再次抱歉。
(通話金限台灣之星月租型用戶使用,一個門號限領一次,如先前已經領取的門號,無法重複領取)
最後,請大家再給我們一點時間,我們希望能快速排除所有問題,讓「Chatbot網速猜謎」活動可以再次呈現給大家,謝謝大家的耐心與體諒,謝謝。

活動辦法首次參與「Chatbot網速猜謎」遊戲的民眾,需先到台灣之星臉書官方粉絲團或官網燈會活動頁,進入Facebook Messenger,即可啟動Chatbot聊天機器人,依指示點選「立即測網速」選項,輸入欲下注的台灣之星嘉義燈會現場即時網速,數字最多至小數點第二位,如:120.31。限時5分鐘,如果在嘉義燈會現場的民眾,可參考台灣之星品牌主燈LED大螢幕上,會即時直播目前最多人下注的動態數字排行;若不在現場的民眾,也可以透過台灣之星官網燈會活動頁或Chatbot即時訊息,得知全台下注的最新戰況。在每場遊戲下注結束前,可根據全台民眾的即時網速下注狀況,選擇更改或保留目前下注的數字,次數不限;當然,其他人也有可能改或不改。遊戲時間到,會以全台最接近實際測速值但不重複的唯一一個網速數字的下注者為贏家。燈會期間,每人參與「Chatbot網速猜謎」遊戲的次數不限,參加越多次,得獎機會就越大。
觀察數據
這裡記錄了 3/2 起的台灣之星的測速數據(同一時間,中華電信也在各區燈會現場,證明自家的網路是很快的。)
idsession_by_datesessionchttwmfetgttstar
4918030218030218228.0569.6255.5813.66257.44
5018030218030219224.2538.25173.757.53278.42
5118030218030220196.0433.38147.0615.67250.97
5218030218030221213.9237.48129.112.88278.58
531803031803031864.90.3132.645.38264.26
541803031803031970.360.2128.8111.12257.22
551803031803032068.7212.13124.0314.26307.69
561803031803032171.3940.946.7712.91245.39
5718030418030418115.944.85158.788.23297.83
5818030418030419184.596.4176.2412.07287.52
591803041803042096.3421.0576.399.62313.31
6118030518030518241.3471.67166.7817.96267.05
6218030518030519216.9363.96147.319.4320.13
6318030518030520208.4865.77185.7218.31258.52
6418030518030521191.2119.04164.4319.15334.97
6518030618030618232.9688.48114.216.59289.7
6618030618030619199.2867.75140.097.53294.63
6718030618030620217.8560.05160.5815.78295.11
6818030618030621225.8978.57155.0710.88287.52
6918030718030718168.5781.17187.963.25281.09
7018030718030719172.6660.62180.321.46260.75
7118030718030720239.2469.48178.5716.42288.06
7218030718030721241.3285.01162.1416.44288.08
7318030818030818260.286.49193.225.75293.5
7418030818030819215.784.88191.6426.8287.19
7518030818030820219.9591.66179.4215.13288.02
7618030818030821230.3670.09162.7424.02281.54
7718030918030918219.4255.03169.9129.26290.78
7818030918030919202.5380.82176.5625.61291.96
7918030918030920215.9957.81174.7819.23276.03
8018030918030921218.7369.76151.6524.11287.45
8118031018031018197.9513.89155.1111.81276.75
821803101803101999.5635.88158.6117.8275.29
831803101803102099.5121.92121.056.68265.25
841803101803102197.9753.44155.6211.3285.43
851803111803111817740.52150.3610.48294.56
8618031118031119195.0760.72134.486.76290.32
8718031118031120132.2135.31123.6412.3296.7
8818031118031121105.5968.79141.056.23286.15


[ubuntu] How to restart X windows 怎麼重新啟動 X Windows


[ubuntu] How to restart X windows 怎麼重新啟動 X Windows
X windows 因為莫名原因卡住的時候,可以在 terminal 中去重新 x windows
ctrl + alt + 1 後,會出現console 。要知道使用哪個 windows manager 呢?目前16.04 Ubuntu 使用的預設 X display manager 是 LightDM LightDM - Wikipedia https://en.wikipedia.org/wiki/LightDM
% cat /etc/X11/default-display-manager /usr/sbin/lightdm


重新啟動 X windows manager /etc/init.d/lightdm restart

2018年3月10日 星期六

[note] Mar 10 Google 導航 化身成瑪莉歐賽車 Mario Kart

[note] Mar 10 Google 導航 化身成瑪莉歐賽車 Mario Kart

Mar 10 是國際瑪莉歐日,
Google 導航今日推出的特別活動,





2018年3月6日 星期二

[mysql] 避免 MySQL 新增重複 KEY 的錯誤訊息 DUPLICATE KEY UPDATE


當從某一個table導出資料,想要新增到另外一個table去時,
可能某個key已經產生過了,但是,key是不能重複的,
如果再插入重複key就會有錯誤訊息。

INSERT INTO `g_langs` (`id`, `lang_key`, `en`, `zh_tw`, `zh_cn`, `status`, `create_time`, `modified_time`, `type`) VALUES (NULL, 'test', 'test', '', '', '', CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP, '0');

可以加入 IGNORE 避免  新增record 產生 DUPLICATE KEY  的錯誤

INSERT IGNORE INTO `g_langs` (`id`, `lang_key`, `en`, `zh_tw`, `zh_cn`, `status`, `create_time`, `modified_time`, `type`) VALUES (NULL, 'test', 'test', '', '', '', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '0')

2018年2月25日 星期日

[github] 取消 github pages auto build Jekyll



使用 github pages 時,每天可能會收到

GitHub 
2月23日 (2 天前)
寄給 我 
The page build failed for the `gh-pages` branch with the following error:

Page build timed out. Please try again later.

For information on troubleshooting Jekyll see:

  https://help.github.com/articles/troubleshooting-jekyll-builds

If you have any questions you can contact us by replying to this email.

怎麼取消 Jekyll auto build 呢?

只要在 root 資料夾 新增一個檔案
.nojekyll
就可以了。

ref:
Bypassing Jekyll on GitHub Pages https://github.com/blog/572-bypassing-jekyll-on-github-pages

2018年1月24日 星期三

[docker] Unknown instruction: ARG

docker Unknown instruction: ARG
Unknown instruction: ARG
docker Unknown instruction: ARG
寫 Dockerfile 後, 準備佈署到 Jenkins CI/CD 。在 docker build 時,發生了 docker Unknown instruction: ARG 。原來是,Jenkins 上的 docker 版本問題,把使用 ARG的地方改用 ENV
ARG VERSION=0.0.1
ENV VERSION=0.0.1
至於 ARG 與 ENV 的差異,就是在docker build 的時候,可以從參數帶入值嗎
$ docker build --build-arg VERSION=0.0.2 .

2018年1月15日 星期一

[linux] Nginx logrotate 設置


設置完 Nginx 的 access log 後,
接著使用 logrotate 設置 log 的壓縮

在 vim /etc/logrotate.d/nginx

  /data/logs/*log {
daily rotate 10 missingok notifempty compress sharedscripts postrotate /bin/kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid 2>/dev/null) 2>/dev/null || : endscript }
daily 表示每天做 logrotate
rotate 10 只保留 rotate 10 份
missingok 當 log file 不存在時,還是繼續執行。
notifempty 當 log 為空時,不 rotate
compress 壓縮 使用gzip
sharedscripts 表示當所有log都rotate 完,以後再執行這個 script。
postrotate 中 kill -USR1 的目的是使重新 reopen nginx log file 。

The master process can handle the following signals:
TERM, INTQuick shutdown
QUITGraceful shutdown
KILLHalts a stubborn process
HUP
Configuration reload
Start the new worker processes with a new configuration
Gracefully shutdown the old worker processes
USR1Reopen the log files
USR2Upgrade Executable on the fly
WINCHGracefully shutdown the worker processes
kill -USR1 参数详解 - 阅心笔记 https://www.52os.net/articles/kill-USR1-meanning.html

如果,想要馬上執行看看呢
logrotate -f /etc/logrotate.d/ngnix

然後就可以
cat cat /var/lib/logrotate.status | grep "/data/logs/" 看看有沒有執行的紀錄。

2018年1月8日 星期一

[ubuntu] 怎麼使用 imagemagick 的 convert 快速改變圖片大小 resize image

怎麼快速改變圖片大小 resize image

可以使用 imagemagick 來改變圖片的大小。


sudo apt-get install imagemagick


安裝完,就可以使用指令列 convert 來改變圖片的大小與格式


$convert example.png -resize 200x100 example.png

2018年1月7日 星期日

[電影] 盜數計時 ( Stolen )

LiTV 本週的免費電影
這部已經看過的電影。
導演賽門威斯特(Simon West)與尼可拉斯凱吉(Nicolas Cage) 睽違15年再次攜手合作動作鉅片《盜數計時》(Stolen) 。(他們繼空中監獄後的合作)

情節緊張刺激,沒有冷場。
威爾為了救自己的女兒,重操舊業。
一連串的追尋過程。


盜數計時》(英語:Stolen)是一部2012年美國動作驚悚片,為西蒙·威斯特執導,由尼可拉斯·凱吉主演。於2012年9月14日在美國上映。

一群神通廣大的竊匪,在一次行動中竊得了一千萬美元,但行蹤卻被路人發覺,其中一名匪徒文森(喬什·盧卡斯飾)意圖殺害目擊証人,但被首領威爾(尼可拉斯·凱吉飾)勸阻,兩人開始爭執、扭打,文森的手槍走火,傷了自己的腿。威爾乘機制伏文森,把他送上汽車,自己隻身回去取那一千萬美元,被聯邦調查局FBI)幹員們發現了蹤跡,同夥霍特(M·C·蓋尼飾)竟然不顧道義,開車揚長而去,害得威爾被捕,入獄八年。
威爾出獄打算金盆洗手,但是因當年槍傷被截肢的文森,卻不願就此甘休,殘障的他偽裝為計程車司機,擄走了威爾的女兒愛麗森(莎曼·蓋兒飾),要求威爾在十二個鐘頭之內交出那一千萬元。誰知當年威爾為了脫罪,早已把那一千萬美元鈔票焚毀了,威爾根本無錢可交,只好在紐奧良懺悔節慶典上飛車追逐文森,想要以行動救回愛女,卻仍是讓文森逃脫。
但愛女生死未卜的威爾,不得已,只好在瑞麗(瑪琳·艾科曼飾)的幫助下,竊取聯邦政府聯準會放在銀行保險箱的黃金金條,來換回女兒性命......

[電影] 惡戰


這是寫馬永貞的改編故事,
劇情非常簡單,可是沒有覺得冷場的時候。
不時有人物的情感掙扎。

袁和平的功夫指導,是很不錯的一部動作片。
對於朋友情感,透過簡單的幾募描寫,卻很深刻,惺惺相惜的義氣。
對於感情,雖然描繪不多可是可以直接的推演。

王晶的編劇,加上最後的一句,有些人不打不行阿阿阿。


惡戰
2014 年 ‧ 戲劇/奇幻電影 ‧ 1 小時 37 分鐘
導演 :
黃精甫
演員 :
伍允龍, 安志傑, 胡然, 毛俊傑, 洪金寶, 蔣璐霞, 陳觀泰, 袁祥仁, 馮克安
片長 :
1小時35分
級別 :
IIB 級
語言 :
粵語
上映 :
16.1.2014 (公映)

故事簡介

二十世紀初,各地勞動人口紛紛湧入高速發展之上海。 山東青年馬永貞(伍允龍 飾)亦到上海當碼頭工人。 當時上海各幫派荼毒社會,其中較有正義感之龍七(安志杰 飾) 賞識馬永貞膽識過人、武技非凡。 二人惺惺相惜,成為好友。

龍七反對販毒及向日軍賣力,與斧頭幫三大犯罪頭子白癩痢(陳觀泰 飾)、笑面佛(袁祥仁 飾)、仇老四(馮克安 飾)為敵,馬永貞與他聯手反毒,令三人懷恨於心。 

馬永貞與江湖賣藝的鐵師父(洪金寶 飾)及其兩個女兒鐵梅(蔣璐霞 飾)、鐵菊(胡然 飾)成為鄰居。馬永貞被鐵菊的硬朗性格所吸引,而鐵菊亦佩服馬永貞的正義感,對他漸漸產生好感。龍七則迷戀上歌女盛香君(毛俊杰 飾),沒想到日後竟因此而身陷險境。

斧頭幫因不滿龍七的囂張跋扈,與日本間諜橋本密謀除掉他,龍七慘遭暗算。 馬永貞的鄰居亦遭受襲擊,馬永貞趕至時已屍橫遍野,垂死的鐵師傅告知鐵菊被斧頭幫擄走。 極度悲痛的馬永貞為救鐵菊,單人匹馬闖入斧頭幫老巢,決定用雙手消滅國家的敵人、社會的敗類,為民除害!

惡戰 - Yahoo 電影 https://movie.yahoo-leisure.hk/movie/details/22428

惡戰(Once Upon A Time In Shanghai)觀後感:懷舊武打片 in《有誌戲》blog http://kazuohk.blogspot.tw/2014/01/once-upon-time-in-shanghai.html

[電影] 原諒他77次


電影情節很觸動人心,
兩個人在一起,總會有很多原生的經驗,跟很多互相的包容與妥協,有時候,不需要問對錯,只是要知道,能夠接受嗎。




當下,摩擦的爭吵,在事後,都會是一段回憶。
回首的時候,才會知道,原來這個人已經包容你這麼多了。

片子藉著回顧,那寫滿了七十七次的事件,來回顧主人翁的感情。
情節很寫實,尤其是針鋒相對的那些時候,兩人有愛過,有吵過。

藉由這部電影來反思自己,也是不錯的。


原諒他77次》(英語:77 Heartbreaks)是邱禮濤執導的愛情電影,李敏擔任編劇。根據李敏的同名小說《原諒他77次》改編。電影由周柏豪蔡卓妍領銜主演,並與鍾欣潼鄭希怡衛詩雅J.Arie盧巧音等人合演。亦是蔡卓妍繼《雛妓》後再次與導演和編劇合作,2016年8月於香港開機拍攝。[3][4]老闆楊受成出資拍攝。該片入圍第十二屆大阪亞洲電影節蔡卓妍繼《雛妓》後再次入圍。[5] 香港本地於第41屆香港國際電影節期間(4月12日)在香港文化中心首映,6月15日正式公映。2017年7月7日於台灣上映。
同在法律界工作的Eva (阿Sa飾) 與Adam (周柏豪 飾) 拍拖十年多,卻因一件小事突然分手。
莫名被分手的Adam酒後與傾慕自己的學生Mandy (衛詩雅 飾) 發生了關係。可隨後Mandy卻在Adam家中意外發現了一本Eva所寫的77次心碎記錄,閱讀筆記,仿佛穿越時光。五年前,Eva得到了一本名叫《77 Heartbreaks》的記事簿,是讓情人們寫下他們的心碎經歷。當本子寫滿的時候,就是記事簿主人該分手的時候。記事簿裡Eva一次次的被傷害紀錄歷歷在目⋯⋯
Adam發現《77 Heartbreaks》的存在後,愧疚不已,更發現自己根本無法忘記Eva,終鼓起勇氣在眾目睽睽之前向Eva道歉。愛終歸不是一條公式,當Adam跪在Eva面前時,Eva的心還是溶化了⋯⋯
二人重新開始,豈料,Eva卻在Adam家中發現了屬於Mandy的物品⋯⋯到底她可否原諒Adam第78次呢?女人,要心碎多少次才懂得真‧分手?[6]
原諒他77次 - 維基百科,自由的百科全書
https://zh.wikipedia.org/wiki/%E5%8E%9F%E8%AB%92%E4%BB%9677%E6%AC%A1

2018年1月5日 星期五

[linux] /usr/bin/ld: cannot find -lopencv_imgcodecs 解決

編譯程式的時候出現
/usr/bin/ld: cannot find -lopencv_imgcodecs

$ make
g++ -std=c++11 -O3 -I.. ../dlib/all/source.cpp -lpthread -lX11 -ljpeg -lpng -DDLIB_JPEG_SUPPORT -DDLIB_PNG_SUPPORT -c dnn_mmod_dog_hipsterizer_2.cpp
g++ -std=c++11 -O3 -I.. ../dlib/all/source.cpp -lpthread -lX11 -ljpeg -lpng -DDLIB_JPEG_SUPPORT -DDLIB_PNG_SUPPORT data.grpc.pb.o data.pb.o dnn_mmod_dog_hipsterizer_2.o -L/usr/local/lib -L/lib/x86_64-linux-gnu `pkg-config --libs grpc++ grpc` -Wl,--no-as-needed -lgrpc++_reflection -Wl,--as-needed -lprotobuf -lpthread -ldl -lssl -ldlib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs -o server
/usr/bin/ld: cannot find -lopencv_imgcodecs
collect2: error: ld returned 1 exit status
makefile:12: recipe for target 'server' failed
make: *** [server] Error 1

原來是 opencv_imgcodecs 是在 opencv 3.0+ 才有提供

安裝完 opencv 3.0+ 就可以編譯了。
參考 Ubuntu上安裝 OpenCV
http://peichengnote.blogspot.com/2018/01/ubuntu-build-and-install-opencv-on.html





ref
problem.. /usr/bin/ld: cannot find -lopencv_imgcodecs · Issue #4942 · BVLC/caffe https://github.com/BVLC/caffe/issues/4942

[ubuntu] build and install opencv on ubuntu Ubuntu 怎麼安裝 OpenCV


build and install opencv on ubuntu在 Ubuntu 怎麼安裝 OpenCV  
git clone https://github.com/opencv/opencv.git
cd opencv
mkdir build
cmake ..
make all -j$(nproc)
sudo make install

2018年1月4日 星期四

[ubuntu][linux] jpeglib.h: No such file or directory 解決方法


jpeglib.h: No such file or directory
ubuntu 中,編譯程式出現 jpeglib.h: No such file or directory少裝了 libjpeg header ,可以使用:

sudo apt-get install libjpeg-dev

2018年1月3日 星期三

[日幣匯率] 2018 日幣匯率 外幣提款機 兩年來最低 20180103


日幣匯率來到兩年來最低,
如果不想上銀行,使用外幣提款機方便然後又有比較好的匯率。
以兆豐銀行外幣提款機為例
結匯的價格是 現金賣出與即期賣出 除以二





台幣大升2角 日圓換匯再創逾2年新低 換5萬差近3千 https://today.line.me/TW/pc/article/qmoJX2 
今日2018年首個交易日,在新台幣早盤大升逾2角之下,台銀日圓現鈔賣出價早盤一度觸0.2655元, 即新台幣1元可換到3.7665日圓現鈔, 也刷新上周五的盤中低價0.2656元, 再創2015年8月20日以來新低價,當時盤中曾來到0.2631元。
 若與近期日圓換匯高點去年9月8日盤中曾來到0.2811元相較,
近4個月日圓兌新台幣更貶值了5.55%,以換新台幣5萬元來說,
現在可以換到18萬8324日圓現鈔,但當時只能換到17萬7873日圓現鈔,
 差了1萬0451日圓、相當於新台幣2775元。

[blog] 2017 年文章發文數回顧

每年都會回顧一下自己部落格的發文數,
2017 年 67篇
▼  2017 (67)


發文數慢慢的銳減了,
一方面是沒有固定的沉思時間,
一方面是,很多時候勞累到沒有精神回顧與書寫,很多時候這麼過了。

遊記方面,
應該是在旅途前就有對應的文件與資料,旅途中的雜記,然後,回來後的回顧。

技術文章方面,
雖然很多很快速的查找,但是,還是可以抽出點時間順手整理。

希望,這年度的產出能夠網上提昇。
雖然,有作者說,作家的隱私是自己放棄的,因為,他們選擇透過文字,來跟大家說點事情,我的雜記,不也是這樣嗎?








[linux] g++ -lssl error:"collect2: ld returned 1 exit status" Solve


ubuntu 中使用 g++ 編譯程式出現
g++ -lssl error:"collect2: ld returned 1 exit status"

$ sudo apt-cache search libssl
[sudo] password for peicheng:
libssl-dev - Secure Sockets Layer toolkit - development files
libssl-doc - Secure Sockets Layer toolkit - development documentation
libssl1.0.0 - Secure Sockets Layer toolkit - shared libraries
libssl1.0.0-dbg - Secure Sockets Layer toolkit - debug information
cl-plus-ssl - Common Lisp interface to OpenSSL
dcmtk - OFFIS DICOM toolkit command line utilities
dlang-openssl - D version of the C headers for openssl
libdcmtk-dev - OFFIS DICOM toolkit development libraries and headers
libdcmtk5 - OFFIS DICOM toolkit runtime libraries
libssl-ocaml - OCaml bindings for OpenSSL (runtime)
libssl-ocaml-dev - OCaml bindings for OpenSSL
libsslcommon2 - enterprise messaging system - common SSL libraries
libsslcommon2-dev - enterprise messaging system - common SSL development files

$ sudo apt-get install libssl1.0.0 libssl-dev -y