Slack的文字格式跟一般通訊軟體相比有一點點的不一樣,因為它可以針對文字訊息做簡單的格式化工作,讓訊息中可以更突顯出訊息的用途與重點,在這邊我就稍微筆記一下主要有哪些格式化技巧讓你的訊息看起來更吸引人注意。
PS. 某些特殊情況下會有格式不出來的情況,可以多試幾次就知道了。
Slack的文字格式跟一般通訊軟體相比有一點點的不一樣,因為它可以針對文字訊息做簡單的格式化工作,讓訊息中可以更突顯出訊息的用途與重點,在這邊我就稍微筆記一下主要有哪些格式化技巧讓你的訊息看起來更吸引人注意。
PS. 某些特殊情況下會有格式不出來的情況,可以多試幾次就知道了。
在處理slack app 收到的slack request/response message時,出現了一個很頭痛的問題,那就是slack 會自動在message中幫我把原始訊息裡的空白(space) 變成 + 號,這樣做法的困擾就是很難百分百還原訊息內容。
而原本同事的做法是索性就把+號用string.replace方法用space取代回來,但這樣也會把原訊息中的加號變成空白,最直接的衝擊就是我們的wiki url難免會有一些+號,一旦用空白取代掉,url就點不開了。
Slack 有提供一種叫slash command的工作小幫手,它的用法簡單,就只要在你的slack 訊息框上先打上一個 ‘/’ 斜線,然後在斜線後隨即加上指令名稱,然後空一格給予指令參數(就是一行可含空白的文字,在slack上叫作指令的text),就可以執行一些該指令預定義好的工作了。
這兩天在趕老大派的QA作業,我的第一要務是要把讓Manager可以按approve與reject的按鈕的slack bot自動通知RFC request訊息中的reject鈕可以在按下時添加comment告訴QA為何被reject RFC request。
要在slack 上串起這個功能其實不難,只要添加個Dialog讓Manager可以在按下Reject Button之後可以彈出讓其輸入Comment再按下確認即可。如此再回覆給RFC 訊息發出人的自動訊息中就會加上Reject Comment在訊息上。
該範例摘自<<機器學習-算法原理與編程實踐>>,主要是告訴我們對於資料集的分佈趨勢,我們可以用"最小二乘法"求得回歸線(資料分佈趨勢線),然該法僅適用於線性回歸函數Y = aX + b . 但藉由這個實例亦可以看出我們可以用最小二乘法做為線性回歸資料集的預測算法,從中找出線性資料分佈的合理函數,進而預測資料分佈趨勢。
因為要在CentOS中安裝python 的third-party package,但CentOS預設只有python 2.7,並沒有pip tool,所以必須先在CentOS中安裝pip tool才能享受到pip的簡便安裝third-party python package的便利性,但CentOS安裝pip並不像windows直覺,還是必需懂一點CentOS的package manager tool知識才會知道怎麼下安裝指令。
其實也不複雜啦,就是在用yum 安裝pip之前,要先確定有安裝epel在CentOS上,然後始可用yum去install pip。
這邊只是簡單Note一下,算不上是什麼Docker的有用文件,因為公司舉辦AI Contest的關係,官方發佈的環境建製流程就是使用鼎鼎大名的Docker Container Service建製各比賽隊伍自己AI Game 的Docker Image,而要測試這Image能不能運作,就得在裝有Docker Service 的機器上run 這個image,然後打開比賽官方提供的遊戲模擬器連線到Docker Container所起來的web service然後就會把我的docker image 上的sample bot code指令執行在遠端的遊戲模擬器上,像是有趣的自動控制賽車前進。
不過我沒用過docker,所以得根據官方文件在自己的CentOS 7 VM (Docker要求CentOS 7以上才能運作)一步步地從安裝Docker到Build Image到run docker image全部一個一個來,過程算順利啦,除了因為一開始安裝錯版本在remove再安裝正確版本之後然後就完全不能用以外,之後所有演練過程都很順利,官方寫的Docker Guide 還算不賴。
事實上,就我個人這幾天試用Headless browsers下來的體驗,我深深覺得其實Headless browser在功能上來講似乎仍明顯不及要打開頁面來運作的browser,只要test case寫的operation模式不好,就會遇到許多奇奇怪怪的問題,像是頁面元素頁面點不到、Browser開半天開不起來最後經過6分鐘後自己timeout、截圖畫面不清等等問題。
其中Chrome/FireFox/PhantomJS 三大Headless Browsers中又以Chrome問題最多,換言之最不穩定,但效能上若未經選項調整,PhantomJS執行速度最慢,幾乎跟要開頁面運作的browser一樣,這樣就享受不到Headless的極速快感了。
之前已經成功開發出Firefox for headless and Chrome for headless的兩個keyword了,但由於未能整合成一個可以透過參數指定要開啟哪種headless browsers的窘境,所以這邊V2版提出一個新的整合版的Open HeadLess Browsers By Name,內中提供參數可以指定要用Chrome/Firefox/PhantomJS哪一種headless browser,這樣所有test case便可以透過該一keyword的參數來切換要使用哪一種headless browser作為Web UI測試的瀏覽器了。
Library Selenium2Library |
因為很遺憾地發現本來想用的HeadLess Browser – PhantomJS 突然被Selenium 3.8 宣佈即將停止支援,所以也就只好轉而尋找PhantomJS的替代品,而目前在測試工具上最受推薦的就是已經發展出HeadLess Mode的HeadLess Chrome 和 HeadLess Firefox。
這邊僅提供讓Robot Framework可以成功用這兩種瀏覽器開啟網頁的Keyword 實作,原本是想實作python版的,但是因為現在需要跑在Robot Framework上,就直接用Robot 的Keyword實作了,避免掉使嗽python原生實作需要面對的一些問題,但以後有更深切的需求要用到python版時還是會試試用python版開啟HeadLess Browser。
今天在調Test Case使當Robot使用HeadLess Chrome或HeadLess Firefox Browser時可以在不用修正Test Case下皆能Pass。
主要是當Robot用HeadLess Firefox來Click Element時都可以正常點擊到我要點的Div(SSO-JP-BETA區塊,UserID)元素,而判斷是否點到與否的關鍵在於Div右下角可以彈出My Account和SignOut 小Menu,所以當下一動Robot檢查My Account 元素是否存在時就會成功,然後繼續做下一步。
自從把Robot的御用Browser從FireFox改成PhantomJS之後,Robot似乎有點鬧脾氣,有些UI操作變得不是那麼容易,需要給Robot一點更精細的操作指令他才願意好好的操作Browser,真是不肖子的Robot。
這邊有一個Test Case:
之前曾經寫過一篇用Command Line 來執行 Robot Framework 但是是指定執行tag底下test case 的Command, 今天在試Robot Framework時,遇到robot IDE : RIDE.py 秀逗,不給我乖乖打開PhantomJS Browser,所以就研究了一下用Command Line請Robot先生幫我跑指定的Test Case,陷阱很多,但我還是試出來了。
基本上這Robot裝好在機器之後,可以透過底下兩種模式打開Comand Line來啟動Robot :
一直以來,跑Robot Framework的Web UI Test Case時,習慣都用對FireFox支援較友善的Selenium2Liberary來Run Firefox web driver,雖然明知Selenium的Open Browser keywork事實上支援多種Web Driver,但一直都只用firefox來作為Robot Framework的專用Browser,唯二的缺點就是:開Browser有時很慢並且需要指定firefox profile路徑(如果需要客製化profile,這還衍生另一個跨平台問題,Mac(Unix-like OS)與Windows的路徑使用格式不同,因此你可能需要對open browser 寫法做if 條件處理,否則就是做兩版Robot Framework project for mac及windows)。
下圖說明Open Browser可以指定多種不同Browser:
Unicode 編碼實現了將人類使用的每一個字符(glyph)都賦與一個16進位值,其中大部份字符存在於0000 – FFFF的編碼空間,Unicode用編碼位置(code point) 來標記每一個字符,例如U+0000 就用來表示C語言中的’\0’字元,亦即ASCII 中的0值。
Unicode主要分成三個系統:使用八位元(1 byte)為一個基本單元的UTF-8;使用16位元(2 byte)為一個基本單元的UTF-16以及使用32位元(4 byte)為基本單元的UTF-32系統。
只能說電腦的問題真的是千奇百怪,怪到連Windows 10 被遠端桌面連線都會出現莫名其妙的 “發生內部錯誤”。
就不多說廢話,這件事起因於我這一陣子在公司想用我的PC 5. Win10 遠端桌面3389連到PC 4. Win10 時都會在輸入Credential 之後,過一陣子接收到一個錯誤視窗,什麼都沒寫,只有寫 “發生內部錯誤”,按下確定之後,遠端桌面就關閉了。
C語言的演進過程中,出現做針對語言"本身"而制定的幾項重大版本,然而因為C語言的發展其實與Unix系統共生共榮,而Unix系統後來演變出許多不同的實作,因此除了C語言本身版本之外,也出現了POSIX標準,該標準提供了一些C語言本身標準未定義的函式,如:popen(),目的是建立不同的Unix 。