有時有些很簡單做的功能,不知為何很難找到出處,微軟實在是滿妙的
2015年9月26日 星期六
2015年9月8日 星期二
在前端程式使用 Firebase 的 SOP
參考 https://www.firebase.com/tutorial/#gettingstarted
此範例為一簡單的聊天程式,沒有修改或刪除的功能。必需事先申請一 firebase 帳號並取得站點位置
此範例為一簡單的聊天程式,沒有修改或刪除的功能。必需事先申請一 firebase 帳號並取得站點位置
- 引用程式庫
- 新建 Firebase 物件,連接(參考)到資料庫(站點位置,依所申請的firebase帳號而定)
- 進行操作;新增 (set / push)
- 聆聽事件;on('event', function (snapshot)...)
- 取得 snapshot 內容 (val) 呈現給使用者,進行處理、顯示
其中操作的部分,包含 CRUD ,都有近似與 RMDB 相對應的操作,但是 cross join 目前看來沒有很簡單的對應,演算法必需要出現迴圈。另一方面沒有概念直接對應到 SQL 的 where 敘述,而是採用了一種 sort-splice method
{ orderByChild(), orderByKey(), orderByValue(), or orderByPriority() }
orderByKey(): 以鍵名排序
orderByValue(): 以鍵值排序
orderByChild(): 鍵值均為 hash ,以此 hash 中指定鍵"值"排序
{ limitToFirst(), limitToLast(), startAt(), endAt(), and equalTo() }
(參 https://www.firebase.com/docs/web/guide/retrieving-data.html)
limitToFirst(), limitToLast(): 以序數選取,類似 sql 中的 top
startAt(), endAt(), and equalTo(): 以值之比較選取,類似 sql 中的 where 條件
根據 2. Understanding Data 的說明,我們可以這樣理解,firebase 所儲存的其實是一個大型的 hash of hash (of hash ..., in perl's term) 的複合資料結構,沒有原生的陣列資料,因此必需借用 hash 來實現。
2015年8月28日 星期五
2015年8月27日 星期四
heroku上要發佈非master的branch的語法
git push heroku yourbranch:master
參見 https://devcenter.heroku.com/articles/git
參見 https://devcenter.heroku.com/articles/git
2015年8月26日 星期三
github上git clone回來的專案,本地修改後才fork之後push到遠端的SOP
- git clone XXX
- 本地修改完成
- 在github上fork XXX為自己的XXX,並取得 clone URL,下稱YYY
- git add .
- git commit -m '...說明文字'
- git remote add master YYY
- git push master master
2015年8月25日 星期二
在 ionic / cordova / nodejs 的app中整合FB(或google / twitter / ...)帳號
登入這些帳號,有時只是需要一個 ID ,有時是要使用帳號背後的服務,這樣的需求愈來愈多
- [ionic + cordova] 利用 firebase 提供的服務 (重點是它先後試了authWithOAuthRedirect / authWithOAuthPopup ,這樣無論在什麼裝置都可以登入;不過 authWithOAuthRedirect 的錯誤處理目前仍然有問題,有時會死在程式裏面,或許應該等它穩定一點…), 也可看這篇 (較新,使用了 authWithOAuthToken ,只能在行動裝置登入;應先嘗試
authWithOAuthRedirect/ authWithOAuthPopup , 才能在 browser 上登入);不使用 firebase 的看這篇 (只能在行動裝置登入) - [nodejs] github 上的 passport 插件,號稱可登入300多種服務
- [cordova] 一款只能登入 FB 的插件
2015年8月24日 星期一
git控管下,開發到一半發現出包時的SOP
經常在過了好幾版後才發現,有些修改是正確的應該被留下,但有些是不該留下的
怎麼處理呢?
1.找出新增了不該新增程式的最早版本的前一版;用 git diff 配合 git log 找出這個不含任何錯誤的最近版本
2.用 git stash save -u '???' 建立暫存版本,其中 ??? 是說明文字
3.回到這個最近正確版本,用 git checkout ??? ,其中 ??? 是這個版本的編號
4.建立修正分支,用 git checkout -b hotfix ,其中 hotfix 是分支的名稱,可以取有意義的名字
5.執行 git checkout master 及 git stash pop 取回剛暫存的最新內容
6.在 hotfix 及 master 兩個 branch 之間移動,並進行編輯以縮小兩者之間的不同到最小程度;調整專案內容,執行 git add -A . 及 git commit -m '...' 存入改變
7.發佈 hotfix ; 繼續在 master 上進行開發
參考:
30 天精通 Git 版本控管 (16):善用版本日誌 git reflog 追蹤變更軌跡
30 天精通 Git 版本控管 (13):暫存工作目錄與索引的變更狀態
30 天精通 Git 版本控管 (09):比對檔案與版本差異
30 天精通 Git 版本控管 (08):關於分支的基本觀念與使用方式
30 天精通 Git 版本控管 (04):常用的 Git 版本控管指令
怎麼處理呢?
1.找出新增了不該新增程式的最早版本的前一版;用 git diff 配合 git log 找出這個不含任何錯誤的最近版本
2.用 git stash save -u '???' 建立暫存版本,其中 ??? 是說明文字
3.回到這個最近正確版本,用 git checkout ??? ,其中 ??? 是這個版本的編號
4.建立修正分支,用 git checkout -b hotfix ,其中 hotfix 是分支的名稱,可以取有意義的名字
5.執行 git checkout master 及 git stash pop 取回剛暫存的最新內容
6.在 hotfix 及 master 兩個 branch 之間移動,並進行編輯以縮小兩者之間的不同到最小程度;調整專案內容,執行 git add -A . 及 git commit -m '...' 存入改變
7.發佈 hotfix ; 繼續在 master 上進行開發
參考:
30 天精通 Git 版本控管 (16):善用版本日誌 git reflog 追蹤變更軌跡
30 天精通 Git 版本控管 (13):暫存工作目錄與索引的變更狀態
30 天精通 Git 版本控管 (09):比對檔案與版本差異
30 天精通 Git 版本控管 (08):關於分支的基本觀念與使用方式
30 天精通 Git 版本控管 (04):常用的 Git 版本控管指令
訂閱:
文章 (Atom)