分類
系統技術

使用play-with-docker快速建立mongodb測試環境

使用 play with docker: https://play-with-docker.com 可以快速建立 docker container 環境, 每次可以使用 4個小時, 供測試驗證應用.

進入 play with docker 後, 使用以下指令進行 mongodb 的建立:

docker run --name some-mongo -d mongo

當然因為沒有 mongo 的 image, 所以會進行 pull, 並發起一個 container 執行 mongodb.

接下來可以使用 docker ps 來檢查是否已正常執行.

若要進入該 instance 裡, 可以使用以下指令:

docker exec -it some-mongo /bin/bash

就可以進行該 mongo instance 中的 bash 中, 進入 db 的 shell , 可以再下指令: mongo, 即可正常進入該 mongodb 的 shell 中, 接下來就可以使用大家熟悉的 mongo 指令, 如:

use [db_name]
db.createCollection(“[collection_name]”)
db.[collection_name].insert({xxx})

等指令.

分類
程式技術

使用Google Drive API讀取文件內容供前端應用

有時在做一些小型的前端介面, 需要 CMS (內容管理系統) 的上稿功能, 來進行內容管理, 不過實做上稿系統需要相當的時間與設計, 若能使用更簡便的方式, 將能大量節省維護的成本, 例如使用 WordPress 或今天要介紹的 Google Drive API.

使用共用文件的方式來管理內容, 除了介面不用再實做外, 也可以透過權限管理來做一些設限, 方便存取與更新. 這次介紹的 API 是讀取 Google Docuemnt 的內容來供應前端應用, 所以就是讓程式讀取內容, 而使用者則是使用 Google Document 來更新內容.

會使用到的 API 為 Google Drive API 中的 file export, 目前已是 v3 的版本了, 可以參考:

https://developers.google.com/drive/v3/reference/files/export

如何使用呢, 首先在 Google Drive 新增一個 Google文件(Document)檔案, 並開放為擁有連結的人都可以檢視, 並取得該檔案的 fileId, fileId 就是在 URL 上會看到或是 share link 上會看到的一串英數, 有區分大小寫, 如:

https://docs.google.com/document/d/18De5jl4VhDP8XU7g_UOO2PcZ5qiCCBg4S2B5FOzgLFA/edit?usp=sharing

其中的 18De5jl4VhDP8XU7g_UOO2PcZ5qiCCBg4S2B5FOzgLFA 即為 fileId.

接下來在 google developer console 新增一個專案, 啟用 Google Drive API 功能, 並建立 API key 即可透過以下 API 進行檔案內容存取:

https://www.googleapis.com/drive/v3/files/18De5jl4VhDP8XU7g_UOO2PcZ5qiCCBg4S2B5FOzgLFA/export?mimeType=text/plain&key=[your api key]

其中 fileId 即為該文檔的 fileId, 而 export 為讀取, 後面的 mimeType 可以有以下幾種:

(更多可以參考: https://developers.google.com/drive/v3/web/manage-downloads#downloading_google_documents)

而最後的 API key 則為在 Google Developer Console 專案內建立的 API Key, 就可以順利讀取內容, 以下則為一個簡單的範例:

http://sample.diary.tw/43/readdoc.php

程式碼如下:

$url = "https://www.googleapis.com/drive/v3/files/18De5jl4VhDP8XU7g_UOO2PcZ5qiCCBg4S2B5FOzgLFA/export?mimeType=text/plain&key=[your api key]";  
  
$data = file_get_contents($url);  
  
echo $data;

如此一來可以方便使用者上稿又能快速更新到前台, 十分方便.

Quota 的部分如下:

每日 10億次, 每 100秒每使用者 1000次, 每 100秒 1萬次, 三個計算基礎以下為免費.

 

 

分類
FreeBSD/Linux

WIFI AP使用頻道掃描

在設置家用 WIFI AP時, 有時會有收訊好, 但品質不好的問題, 若有線沒有問題的狀況下, 即使 WIFI AP 收訊格數不錯, 也沒有好的品質時, 可以將 wifi 的 channel 和附近訊號較強的 wifi ap 分開, 以達成不會互相干擾導致的寬頻不良狀況.

可以使用工具如下(免費):

Android: Wifi Scanner: https://play.google.com/store/apps/details?id=com.farproc.wifi.analyzer
iOS: AirPort 工具程式: https://itunes.apple.com/tw/app/airport-%E5%B7%A5%E5%85%B7%E7%A8%8B%E5%BC%8F/id427276530?mt=8
Windows: Wireless netview: http://www.nirsoft.net/utils/wireless_network_view.html

利用這些工具可以查找 wifi ap 使用的 channel, 參考訊號較強的 ap channel, 必須分開不互相在同一頻道上, 可減少 wifi ap 互相干擾的狀況, wifi ap channel 的設定, 一般出廠值都會設定在 auto, 也就是自動選擇, 若要進行手動調整, 建議是在訊號不錯的狀況下, 但頻寬表現不良時使用, 沒有必要也不需要手動進行調整.

其中以 wifi scanner 來看:

集中在 1, 11 上, 就可以將自己的 ap 設定在 4, 6, 7 上以分離不同頻道來進行 wifi ap 的傳輸優化.

另外 iOS 的 AirPort 工具程式, 要到設定裡, AirPort 中的 Wi-Fi 掃描器打開(預設為關閉), 就可以在不用 JB 的狀況下掃描 wifi ap 的頻道.

參考資料:

https://www.accessagility.com/blog/free-wifi-scanner-for-iphone-and-ipad-without-jailbreak

https://www.technonutty.com/2016/04/wifi-analyzer-channel-scanner.html

分類
好用軟體

很不錯的監控服務 – uptimerobot

先說, 我使用的是免費的版本, 功能就十分方便好用了.

原本是使用 monitor.us 服務, 雖然可以監控的項目很多種類, 不過後來因為要收費了, 所以另外找了這個 uptimerobot, 也用了好一陣子, 監控密度夠高也穩定, 雖然監控項目以 http / https 為主, 但也十分夠用了.

最近收到一個監控通知, 內容第一次看到, 如下:

原來也有監控 SSL 的憑證到期呢, 真的十分貼心, 很棒. 如此一來, 即使在 SSL 忘了更新, 或沒時間檢查的狀況下, uptimerobot 也會協助監控, 就不會那麼容易過期了.

繼續閱讀:
https://blog.uptimerobot.com/introducing-ssl-monitoring/

另外, 單純提供 SSL Certificate Expiration check 的服務:
https://certificatemonitor.org/

分類
好用軟體

HelloFax免費線上傳真服務

想要傳真文件, 若是數位檔案的話, 可以很方便地透過線上傳真的方式進行. 這個服務是 HelloFax, 可以利用以下介紹連結來加入:

https://app.hellofax.com?ref=d06a5a81&s=F

這樣你也可以有5張免費傳真哦. 操作方式很簡單, 只需要填寫 email 申請, 然後進行 email 驗證就完成了. 接下來就可以利用 google drive / one drive 或直接上傳的方式將文件檔案傳到 HelloFax, 並填入收件人電話, 如果為台灣, 可以填入:

+886 2 xxxx xxxx 為台北市話傳真機接收. (可傳到世界多個國家含台灣, 可以參考以下連結說明)

https://app.hellofax.com/info/internationalFaxPricing

不過台灣的傳真計價方式是一頁要用兩頁來轉換, 也就是比傳真到美國或加拿大貴一倍, 當然因為是透過國際傳真的方式, 所以送件電話會是 +1 xxx xxx xxxx 的美國電話.

如此一來, 便能不用出門, 家裡沒有傳真機, 或是跑 7-11 進行線上傳真囉.

繼續閱讀:
https://free.com.tw/hellofax/

分類
好用軟體

好用的縮圖與快取服務(images.weserv.nl)

在查找 imgproxy 專案時, 找到的一個圖片快取、調整大小的一個服務:

https://images.weserv.nl/

在網站應用上, 這種使用情境是很常見的需求, 當然, 自己寫或是用已有的專案都能解決, 如前面提到的 imgproxy 專案:

https://github.com/DarthSim/imgproxy
https://github.com/willnorris/imageproxy

不過像是 weserv 這樣的, 可以直接使用的服務就更方便了. 接下來來測試一下效果. 以這張圖為例:

https://www.flickr.com/photos/okilyt/35120121534/sizes/l

在 flickr 上會生成許多尺寸, 如下(連原始圖共12種類):

Original (4512 x 3008)
Large 2048 (2048 x 1365)
Large 1600 (1600 x 1067)
Large 1024 (1024 x 683)
Medium 800 (800 x 534)
Medium 640 (640 x 427)
Medium 500 (500 x 333)
Small 320 (320 x 213)
Small 240 (240 x 160)
Thumbnail (100 x 67)
Square 150 (150 x 150)
Square 75 (75 x 75)

利用 image.weserv.nl 來進行對應操作, 會使用到的參數就是 url, w, h, t (基本的參數), 先來介紹一下簡單用法, url 為必要參數, 因為是快取圖片來源的基礎, 不需要給 protocol, 從 host 開始即可, 如

http://sample.diary.tw/imgs/001.jpg 只需要給 sample.diary.tw/imgs/001.jpg (需要 url encode)

接下來是 w 寬度參數, 預設會成比例縮小, 若是 w, h 同時給, 則以較小的為約束邊, 進行縮小, 若是再給定 t=square 則用來限制縮小的圖為方形縮圖, 要了解更多就參考網站上的說明:

https://images.weserv.nl/#quick-reference

相信很快就能上手.

分類
系統技術

AWS的EC2將以秒計費

厲害, 雲端資源原來遊戲規則要調整了, 以小時計費計價的基礎將要進行調整, 改為以秒計費, 真的來到了用多少付多少的計價方式.

參考這篇資料:
https://aws.amazon.com/tw/blogs/aws/new-per-second-billing-for-ec2-instances-and-ebs-volumes/

其中提到:

Effective October 2nd, usage of Linux instances that are launched in On-Demand, Reserved, and Spot form will be billed in one-second increments. Similarly, provisioned storage for EBS volumes will be billed in one-second increments.

也就是從 2017/10/2 起, EC2, EBS 都會以”秒”計費, 真的太棒了.

繼續閱讀:
https://www.bnext.com.tw/article/46219/amazon-aws-per-second-billing

[2017/9/28 9:34]
結果 Google Cloud Platform 也來加入混戰了, 以秒計費, 即刻開始:
https://www.bnext.com.tw/article/46330/following-aws-google-compute-engine-also-moves-to-per-second-billing

分類
Database

MongoDB的管理工具-Robo 3T

無論是使用 mlab 的 mongdb 線上資料庫, 或是自建的 mongodb 環境, 都需要一個方便的操作管理工具, 可以使用這個好用的 robomongo 的 Robo 3T 工具, 官方連結:

https://robomongo.org/

它是一個 open source 的工具, 用來存取 mongodb, github 連結:

https://github.com/Studio3T/robomongo

同時有 Windows (install, portable), Mac, Linux 三種版本可供使用, 十分方便, 介面操作也很直覺容易, 是在使用 mongodb 的好用工具.

分類
系統技術

好用的Docker線上環境Play-With-Docker

Docker的便利性相信大家都清楚了. 不過建立一個開發或測試環境, 尚需要一些時間, 有沒有更快的方式來建立 docker 的環境呢? 有個超級好用的工具, play-with-docker:

http://play-with-docker.com

這個工具可以讓你快速地有個環境, 並且已經裝好了 docker , 可以快速地建立測試、開發環境, 並且進行測試與驗證, 這個工具真的有效地解決了自行建立安裝 docker 環境, 並且更快速地完成開發部署的需求. 可以參考今年的 docker con 2017 上的簡介:

(以上影片引用自: https://www.youtube.com/watch?v=-h2VTE9WnZs)

另外後面一個 session 也有介紹 FaaS 專案, 這種使用像 AWS Lamda 的架構, 用 docker 輕鬆就部署完成了, 真的超方便好用.

想體驗看看嗎? 馬上來個快速的 wordpress docker :
http://play-with-docker.com/?stack=https://raw.githubusercontent.com/docker-library/docs/0cb43ce8ad1da073bbc30c6245cdffb433ba51ba/wordpress/stack.yml

或是到 https://hub.docker.com/_/wordpress/ 找到 Try PWD 點下去就明白了.

分類
Windows

[Windows]查詢系統開機時間如linux的uptime指令

在 windows 下, 若要查詢開機時間(啟動時間)如 linux 下的 uptime, 可以使用以下方式:

  1. systeminfo – 這個裡面會有個 “系統開機時間: xxxx”, 不過因為要收集比較多資訊, 所以會需要等待一下
  2. net statistics workstation – 這裡面會有個 “統計資料-從 xxxx “, 就可以知道 boot time

還有 uptime 指令, 不過是需要安裝的, 可以參考這篇其他的查詢方式: https://stackoverflow.com/questions/11606774/how-to-get-the-system-uptime-in-windows