分類
好用軟體

我的足跡要停止服務了

又一個超棒的 APP/服務被 Google 結束了, 我的足跡. 官方說明:
https://support.google.com/gmm/answer/6333516

APP 已從 Play 商店上下架了: https://play.google.com/store/apps/details?id=com.google.android.maps.mytracks

之前登山時, 開啟要使用記錄時, 就看到了即將於 4/30停止服務的訊息, 不過還真不知有什麼好替代的軟體與服務, 官方的建議有以下幾項:

看起來都沒有原來的方便輕薄好用, 真是可惜了一個超棒的服務.

繼續閱讀:
http://beebom.com/2016/01/google-my-tracks-alternative

[2016/04/29 15:46]

目前使用 GeoTracker: https://play.google.com/store/apps/details?id=com.ilyabogdanovich.geotracker 還蠻不錯的, 大家可以參考看看.

分類
系統技術

免費好用的SSL-Letsencrypt

看到在 DigitalOcean 上的教學文章 – 如何在 ubuntu 的 apache 上加裝 SSL

https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-14-04

於是來研究看 Letsencrypt 的 SSL 安裝.

步驟真的還蠻簡單的, 開了一台 CentOS 主機後, 先安裝了 apache:

yum install httpd

再安裝 git:

yum install git

然後便正式安裝 letsencrypt 作業:

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto

其實這樣就裝完了, 過程中會問幾個問題, 主要是網域名稱與 renew 用的 email , 輸入完成後, 便會自動進行 SSL 憑證的安裝, 其中還有一個問題是是否強制使用 https, 可以依自己的需求來進行選擇, 安裝好後, 就可以直接訪問 https://yourdomain.com 看看是否正常, 原則上 apache 不用重起就可以使用了呢.

這個憑證免費, 不過效期只有 90 天, 官方建議是每 60天 renew 一次, 所以記得要定期更新, 或使用 cron 自動來更新.

繼續閱讀:

  1. https://community.letsencrypt.org/t/quick-start-guide/1631
  2. 使用第三方 sslforfree 來手動申請 ssl: https://free.com.tw/ssl-for-free/
  3. https://blog.longwin.com.tw/2015/11/let-encrypt-ssl-certificate-setup-2015/
分類
PHP

PHP好用線上測試功能

這個線上的沙箱測試, 可以讓你在不同的 PHP 版本間進行 PHP程式的測試, 有時候需要一小段程式來測試與驗證時, 可以利用這樣的工具來達成, 網址:

http://sandbox.onlinephpfunctions.com/

不僅可以測試 php 程式碼, 還可以進行儲存與分享, 是在 php 程式開發時, 可以快速撰寫小程式的好用工具, 很方便快速, 請多多利用.

例如以 php 網站上的一個 callback function範例:

// Our closure
$double = function($a) {
    return $a * 2;
};

// This is our range of numbers
$numbers = range(1, 5);

// Use the closure as a callback here to
// double the size of each element in our
// range
$new_numbers = array_map($double, $numbers);

print implode(' ', $new_numbers);

放在該網站執行並存檔分享連結為:

http://sandbox.onlinephpfunctions.com/code/c9a175417fddfc1ed0aef4a48feb5de384c49e3d

真的又快又方便!

分類
Database

Mysql dump檔案分割(大文字檔案分割指令-csplit)

在要還原 mysql 備份檔時, 有時整個 database 的 backup file 檔案很大, 要找出其中某一個區塊很花時間, 也需要用一個能打開大檔的文字編輯器才能找到, 有沒有更方便的方法, 找出其中某個 table 呢? 可以使用好用的文字檔分割工具 csplit (linux 指令)

舉例來說, 我們要找一個 table t_table1 的 dump 檔案內容, 而備份的 mysql database 檔案為 mysqlbackup.sql 我們使用指令如下:

csplit -f output_file mysqlbackup.sql "/Table structure for table `t_table1`/" "/Table structure for table/"

這樣一共會輸出三個檔案: output_file00, output_file01, output_file02, 其中的 output_file01 就會是我們要的 t_table1 這個資料表的 dump 資料了. 當然, 前後的檔案就分別是切出 01 後的 00, 02 了.

所以工作原理就是將 Table structure for table `t_table1` 與 Table structure for table 兩個分割點來進行檔案切割. 所以若是希望把所有的 table 檔分出來, 則可以使用以下指令:

csplit -f output_file mysqlbackup.sql "/Table structure for table/" "{10}"

其中的 10 就是要重覆做幾次(包含前面做第一次, 後面再做10次共11次), 重點是若有 11 個 table, 應該就可以分出 11 個檔案, 其中的 00 沒有用, 而 01~11 就會是那 11個 table 的 dump file, 所以若是不知 table 數量時, 後面的那個參數, 就不能寫超過總數的次數, 否則會一個檔案也不輸出.

另外可以使用 {*} 的方式如下:

csplit -f output_file mysqlbackup.sql "/Table structure for table/" "{*}"

會直接盡可能地使用重覆到無法使用, 也就是 table 有多少就會做多少次, 下面 PS 有說明我在 FreeBSD 8.2 執行時有錯誤, 不過在 CentOS 是可以正常執行的.

使用 csplit 可以快速的切割超級大檔案, 把要找的資料整理出來, 很方便又實用.

繼續閱讀:
http://www.computerhope.com/unix/ucsplit.htm

PS. 雖然上面這篇介紹有使用 {*} 來重覆作業, 不過我實際執行時, 會發生:
csplit: *}: bad repetition count 的錯誤訊息, 環境是 FreeBSD 8.2, 不過在另一台 CentOS 7.1 是可以正常執行的, 所以若是不能使用 {*} 請參考上面說明.

分類
Javascript

像Firebase的雲端即時資料庫-deployd

之前對於 Firebase 的時互動性有很強烈的應用想法, 主要是像類似線上聊天室的應用需求, 可以透過線上指令直接做控制客戶端的介面與功能操作, 接下來就想找一些類似的平台來做這件事.

其實背後應該都是走 socket.io 才能有這麼好的即時性與效果, 再加上同步性的資料庫, 哪個是最方便適合的呢? 有一些討論在這裡:

https://www.quora.com/Whats-the-closest-open-source-alternative-to-Firebase

接下來來看看這個好用的 deployd 服務, 他組合了 node.js / socket.io / mongodb 服務, 將這樣一個像 Firebase 的功能實作出來了, 並且也有很強大的管理介面功應用, 把資料庫操作, 即時性, 資料驗證與事件整理的十分簡捷方便, 要快速的建立出一組即時同步資料庫, 似乎就是這些最快了, 來看看他的影片介紹, 相信很快就能上手:

https://www.youtube.com/watch?v=I_Jq1BVj6D0

(影片引用自: https://www.youtube.com/watch?v=I_Jq1BVj6D0)

另外, 下面還有許多案例可供參考應用, 即時互動功能, 隨時建立, 隨時開發, 十分方便.

http://docs.deployd.com/examples/

以下為建立測試環境的方式:

  1. windows, 直接下載安裝包: https://bintray.com/artifact/download/deployd/dpd-win-installer/deployd-win-0.8.0.exe
  2. mac / 其他 linux 環境: https://github.com/deployd/deployd#install-from-npm 從 npm 開始

下面將要說明一個從頭開始的方式:

1. 準備一台主機, 這裡以 CentOS 為例, 可以利用 digital ocean 建立一台主機, 若還沒有帳號, 可以從這裡取得: https://diary.tw/archives/1434

2. 建立完成後, 開始安裝 nodejs 與 npm, 指令如下: (其中 epel-release 是為了安裝 nodejs的前置作業, 將 epel-release 資料庫安裝進來)

yum install epel-release
yum install nodejs
yum install npm

3. 接下來安裝 mongodb-server :

yum install mongodb-server

4. 最後安裝 deployd (使用 npm 安裝即可)

npm install deployd -g

5. 起動 mongodb-server

service mongod start

若希望之後重新開機也可以啟動, 可以再下:

chkconfig mongod on

接下來建立一個 deployd 應用程式專案,

cd /home
mkdir dev
cd dev
dpd create hello
cd hello
dpd

就建立完成一個空的專案了, 訪問: http://[ip]:2403/dashboard 即可順利看到已啟動的專案.

分類
Javascript

querySelector – Javascript的查詢選擇器

在有 jQuery 環境下, 操作選擇器很直覺, 不過沒有 jQuery 時, 如何進行相關的作業呢? 以下幾組為可能會用到的指令:

  1. document.getElementById 指定 id 來取得該物件 (唯一)
  2. document.getElementsByTagName 指定 html tag 來取得該物件陣列 (通常為多個)
  3. document.getElementsByClassName 指定 class name (可多組 class name 一起) 來取得該物件陣列 (通常為多個)
  4. document.querySelector 使用 css selector 來取得該物件 (注意, 僅傳回符合條件的第一筆)
  5. document.querySelectorAll 使用 css selector 來取得該物件陣列 (符合條件的多筆)

當物件被選擇出來後, 就可以進行操作了, 操作的方式可以再參考這裡:

http://www.w3schools.com/jsref/dom_obj_all.asp

在沒有 jQuery 的狀況下, 也能順利選擇物件, 並進行操作了.

分類
好用軟體

Mobizen好用Android投影與手機操作管理

這個 APP 是用來將 Android 手機畫面投到 PC/Mac 上使用的一個應用程式, 而 PC/Mac 只需要瀏覽器就可以操作了, 十分方便, 而且無需 Root.

官方網站: https://www.mobizen.com/

若是使用三星手機請下載: https://play.google.com/store/apps/details?id=com.rsupport.mobizen.sec

若是其他手機請下載: https://play.google.com/store/apps/details?id=com.rsupport.mvagent

開啟 APP 後註冊登入完成後, PC/Mac 端透過流覽器登入後, 即可使用, 除了可以投影出來外, 還可以錄影, 白板(在手機畫面上), 螢幕擷圖等, 也可以管理照片, 通訊錄, 等好用功能.

若有需要將手機投影出來的應用場合, 可以用這個方便好用的工具.

繼續閱讀:
http://www.playpcesor.com/2015/11/mobizen-usb-android-pc-mac.html

[2016/1/5 11:45]
更新一下, 之前常在用的 AirDroid 也已經有[螢幕截圖]這個功能的同步畫面了, 因為之前用都是 Capture 目前的畫面, 現在則是可以同步秀畫面了, 功能上也就和這個 Mobizen 一樣了, 在手機上裝 App, 然後從瀏覽器來看手機的畫面, 只是 AirDroid 的功能更多更方便呢.

網站連結: http://web.airdroid.com/
手機APP: https://play.google.com/store/apps/details?id=com.sand.airdroid

分類
好用軟體

VideoLink2me快速線上視訊會議網站

通常要開視訊會議需要高昂的硬體設備, 當然, 也有軟體的解決方案, 是不是有更快速的方式呢? 有的, 可以利用這個網站: https://videolink2.me/

只需要在線上直接建立視訊會議室即可快速發起視訊會議, 不用註冊, 馬上可以發起一個線上的視訊會議, 而且免費.

另外它也直接只有聲音參與的方式, 並可以有文字聊天與傳送檔案功能, 目前使手瀏覽器可用外, 還有 chrome browser 的 app: http://bit.ly/vl-chrome-app, 還有 iPhone/iPad 的 App: https://itunes.apple.com/en/app/apple-store/id983787504?mt=8

需要快速開個會嗎? 用 videolink2.me 試看看.

繼續閱讀:
http://www.playpcesor.com/2015/01/videolink2me-p2p.html

分類
WebTrend

有趣的Google Vision API

什麼是 Google Vision API, 先來看看影片吧:

(影片引用自: https://www.youtube.com/watch?v=eve8DkkVdhI)

功能是用 Google 的 Cloud API 來進行視覺辨識的功能, 影片中使用了 GoPiGo (http://www.dexterindustries.com/gopigo/) 來進行影像視覺辨識, 十分有趣而實用的功能, 好厲害呢.

這樣未來的應用就愈來愈多可能了.

繼續閱讀:

分類
程式技術

找不到的FlashMediaPlayback.swf

今天在查一個小問題, 就是使用 flash player 播放 video 的一個網頁, 發現完全沒有畫面, 結果是因為這個連結沒有檔案 (status=404) http://fpdownload.adobe.com/strobe/FlashMediaPlayback.swf

雖然是現在盡量不要使用 flash player 來播放 video, 不過這是因為一個 live streaming 的應用, 所以會播放一個 rtmp 的 video streaming, 也就使用了前面的官方 Flash Media Playback 播放器.

查了一會, 有篇官方的回覆在這裡: https://forums.adobe.com/thread/2013396, 說是已經停止下載了, 需要用戶自行 hosting 這個檔案, source 在這裡: http://sourceforge.net/projects/smp.adobe/files/ strobe media playback.

大家可以自行下載, 並 hosting 在自家網站上, 不要再連結到 adobe 了, 不然沒辦法使用了.

話說回來, 應該是要趕快改 html5 才對, 解決這個還在使用 flash player playback 的問題.