markdown
## [早午餐] 再一塊吧ing 蘆洲
## 食物
* 份量:很充足
* 味道:花生醬漢堡一開始吃覺得不錯,但吃到最後有點膩。凱薩沙拉的蘿美很脆,沙拉很棒。
* 價格:125~250
* 送餐時間:送餐方式是一道一道做好就上。飲料秒上,幾分鐘後上沙拉,在你沙拉還沒吃完前漢堡就好了。
## 舒適度
* 座位間距:還算寬敞
* 乾淨程度:優
* 廁所:還行
* Wi-Fi:together/together
## 裝潢風格
* 配色:白、黑、綠、木紋
* 元素:大理石磁磚地板、木紋桌椅、綠色植物、黑白木色裝飾小物
## 資訊
* 營業時間:9:00-18:00
* 地址:247新北市蘆洲區長安街108巷12號
* 電話:02 2848 8272
2017/9/21
2017/9/19
[早午餐] 早茶餐管 蘆洲
[早午餐] 早茶餐管 蘆洲
裝潢:工業風、空間乾淨舒適、座位間距適當、冷氣有點涼
味道:主餐跟套餐配的薯條都很棒
份量:一般、飲料量偏少
價格區間:90~190
地址:247新北市蘆洲區集賢路222-4號
電話:02 8286 8003
裝潢:工業風、空間乾淨舒適、座位間距適當、冷氣有點涼
味道:主餐跟套餐配的薯條都很棒
份量:一般、飲料量偏少
價格區間:90~190
地址:247新北市蘆洲區集賢路222-4號
電話:02 8286 8003
2017/9/18
[早午餐] 豐滿總匯三明治 蘆洲店
[早午餐] 豐滿總匯三明治 蘆洲店
裝潢:空間乾淨舒適、座位間距很大、還有小孩的遊樂區
味道:比麥當勞好吃
份量:偏多
價格區間:150~200
地址:247新北市蘆洲區長樂路53號
電話:02 8286 3871
裝潢:空間乾淨舒適、座位間距很大、還有小孩的遊樂區
味道:比麥當勞好吃
份量:偏多
價格區間:150~200
地址:247新北市蘆洲區長樂路53號
電話:02 8286 3871
2017/9/14
rails debug 技巧
markdown
在 controller 裡的 action 可以取得 request 物件
```
class TestController < ApplicationController
def index
p request.class
render plain: "ok"
end
end
```
會發現 request 物件是 [ActionDispatch::Request](http://api.rubyonrails.org/classes/ActionDispatch/Request.html) 類別
request.headers 是 [ActionDispatch::Http::Headers](http://api.rubyonrails.org/classes/ActionDispatch/Http/Headers.html) 類別
我們可以用 each 去印出 headers 的所有內容:
```
request.headers.each{|header| p header }
```
仔細觀察會發現 header 是一個長度為2的陣列, header[0] 代表 key,header[1] 則代表 value。
```
def index
headers = request.headers.to_a.keep_if { |header|
header[0].index('HTTP') == 0
}.map{ |header|
"#{header}"
}
render plain: headers.join("\n")
end
```
可以透過 keep_if 保留想要關注的資訊
2017/9/13
mac 環境變數的設定
markdown
mac 環境變數的設定
讀取:在 bash 輸入
```
echo $PATH
```
寫入:在 bash 輸入
```
export PATH=完整的PATH值要寫在這裡
```
增加一段路徑:在 bash 輸入
```
export PATH=$PATH:新的路徑要寫在這裡
```
或者
```
export PATH=新的路徑要寫在這裡:$PATH
```
可以注意到 $PATH 的路徑是以 : 號作為分隔符號,所以上面是把舊的$PATH值加上分隔符號:,再加上新的路徑,再存回$PATH。
另外,可以將環境變數值修改的程式寫在 ~/.bash_profile,這個檔案會在每次開啟 bash 時執行,這樣可以確保不影響其他使用者。
~/.bash_profile 檔修改後,如果不想重開 bash,也可以在 bash 輸入
```
source ~/.bash_profile
```
這樣就會執行 ~/.bash_profile 檔了
PATH 功能是當你在 bash 輸入一個指令時,可以讓系統知道該去哪些目錄找到這個指令的執行檔,他會按照PATH的順序一個個目錄去找。所以當新的路徑寫在原有的路徑前面時,代表你希望系統先去新的路徑找找看。
在 ruby 可執行 js 的爬蟲
markdown
[watir](https://github.com/watir/watir)
是一個自動測試工具,我打算拿來做爬蟲,因為我的爬蟲需要執行頁面 js 獲得動態 dom 結果,而 watir 剛好可以做到這件事情。
watir 需要搭配瀏覽器使用,我先試著使用 phantomjs 這個瀏覽器。
phantomjs 是一款無頭瀏覽器 [Headless_browser](https://en.wikipedia.org/wiki/Headless_browser),
因為他不需要真正顯示畫面,所以他的效能比較好。
[怎麼在 heroku 上跑 watir (phantomjs)](https://github.com/edelpero/watir-examples/blob/master/watir_on_heroku.md)
但是因為 chrome 也做了無頭版的瀏覽器,所以 phantomjs 的作者後來就不更新了。
[Getting Started with Headless Chrome](https://developers.google.com/web/updates/2017/04/headless-chrome)
[Headless Capybara Feature Specs with Chrome](https://robots.thoughtbot.com/headless-feature-specs-with-chrome)
[資料來源1](https://ruby-china.org/topics/31784)
2017/9/12
2017/9/1
line bot 的新功能範例code
Line 於今天發表了 Messaging API 的新功能:[[Messaging API] New template message features released](https://developers.line.me/news?ny=2017&nm=09)
其中包含了一個新的 template:image_carousel,以及一個新的 postback:datetimepicker
image_carousel 可以讓你一次傳最多五張圖以橫向捲動方式瀏覽
datetimepicker 可以在按下按鈕時彈出日期時間選擇器
iOS line 7.9 版本以上才能使用 datetimepicker
android line 7.12 版本以上才能使用 datetimepicker
結合這兩個新功能的範例 message json 如下:
```
{
"type": "template",
"altText": "this is a image carousel template",
"template": {
"type": "image_carousel",
"columns": [
{
"imageUrl": "https://www.petfinder.com/wp-content/uploads/2012/11/91615172-find-a-lump-on-cats-skin-632x475.jpg",
"action": {
"type": "datetimepicker",
"label": "選日期",
"data": "q1",
"mode": "date"
}
},
{
"imageUrl": "https://www.cats.org.uk/uploads/images/featurebox_sidebar_kids/grief-and-loss.jpg",
"action": {
"type": "datetimepicker",
"label": "選時間",
"data": "q2",
"mode": "time"
}
},
{
"imageUrl": "https://static.pexels.com/photos/126407/pexels-photo-126407.jpeg",
"action": {
"type": "datetimepicker",
"label": "選日期時間",
"data": "q3",
"mode": "datetime"
}
}
]
}
}
```
他的點擊範圍是整張圖
點第一張圖:
點第二張圖:
點第三張圖:
datetime picker 的三種傳回結果:
訂閱:
文章 (Atom)