chmod 指令 小技巧

只改路徑以下(包含)所有資料夾的權限

chmod 777 `find 路徑 -type d`

find 路徑 -type d -exec chmod 777 {} \;

只改路徑以下(包含)所有檔案的權限

chmod 666 `find 路徑 -type f`

find 路徑 -type f -exec chmod 644 {} \;

個人比較喜歡第一種

羅馬拼音對照表

注音 台灣拼音

(通用拼音)

漢語拼音
b b
p p
m m
f f
d d
t t
n n
l l
g g
k k
h h
ji j
ci q
si x
jh zh
ch ch
sh sh
r r
z z
c c
s s
零韻 -ih -i
a a
o o
e e
ê ê
ai ai
ei ei
ao ao
ou ou
an an
en en
ang ang
eng eng
er er
i,yi i, yi
u,wu u,wu
yu ü,u,yu
ㄧㄚ ia,   ya ia,   ya
ㄧㄝ ie,   ye ie,   ye
ㄧㄞ iai,  yai iai,  yai
ㄧㄠ iao,  yao iao,  yao
ㄧㄡ iou, you iu,   you
ㄧㄢ ian,  yan ian,  yan
ㄧㄣ in,   yin in,   yin
ㄧㄤ iang, yang iang, yang
ㄧㄥ ing,  ying ing,  ying
ㄨㄚ ua,   wa ua,   wa
ㄨㄛ uo,   wo uo,   wo
ㄨㄞ uai,  wai uai,   wai
ㄨㄟ uei,  wei ui,    wei
ㄨㄢ uan,  wan uan,  wan
ㄨㄣ un,   wun un,   wen
ㄨㄤ uang, wang uang, wang
ㄨㄥ ong,  wong ong,  weng
ㄩㄝ yue ue,    yue
ㄩㄢ yuan uan,   yuan
ㄩㄣ yun un,    yun
ㄩㄥ yong iong,   yong

 

MySql外部連結設定[MySql]

正常情況下MYSQL預設是沒辦法外連的

所以要新增一個專門用來外部連結的帳號

輸入mysql -u root -p 後進入mysql

mysql>use mysql;

mysql>grant all privileges on 數據庫名字.* to ‘遠程用戶名’@’遠程IP地址’ identified by ‘遠程用的密碼’;

mysql>flush privileges; //刷新使用權限表

mysql>\q//離開MYSQL

新增完帳號之後還要在修改my.cnf

通常是/etc/my.cnf 或是/etc/mysql/my.cnf

用vi打開之後修改這行

bind-address = 127.0.0.1

改成你Server的ip這樣外部才找到

然後重開MYSQL

chrome extension 舒適閱讀

未命名-1

更改網站配色、字體、大小、行高、間距讓網頁文章更適合閱讀
提供多種配色組合,讓閱讀無壓力

 

version:1.3
優化了程式碼減少資源的浪費
增加還原功能
增加自動啟動的選項
增加一個針對單獨區塊的隱藏

version:1.2
增加了右鍵選單
多了一個針對單獨區塊的閱讀

 

 

有任何問題都可以留言告知

firebase客服聊天實作[JavaScript]

這是第一次使用firebase實作所以就順便記錄一下

有興趣可以參考看看!

首先先做client端

先建立一個client端的firebase物件

var clientRef = new Firebase('https://test.firebaseio.com/client/'+chat_unique);

這裡的chat_unique是一個維一值用來記錄儲存客戶端資料

接著只要監聽在輸入欄位所送出的資料

clientRef.push({id: id, text: text, server: false});

這邊說明一下我所存的欄位有那些

id用來記錄用戶端id

text用來記錄用戶端輸入字串

server用來記錄是否為客服

在來就是監聽clientRef的變化所需要做的處理

clientRef.on('child_added', function(snapshot) {
    var message = snapshot.val();

    if(message.server){
        $('.server_msg').append(message.text);
    }else{
        $('.client_msg').append(message.text);
    }
});

這樣客戶端基本上就算完成了

在來就是一對多的server端了

先建立一個server端的firebase物件

serverRef = new Firebase('https://test.firebaseio.com/client');

然後監聽serverRef的變化做處理

serverRef.on('child_added', function(childSnapshot, prevChildName) {
    var childname = childSnapshot.name();//取得節點名稱
    var clientRef = new Firebase('https://test.firebaseio.com/client/'+childname);//建立新的clinet物件

    //接著跟client端一樣只要監聽在輸入欄位所送出的資料
    clientRef.push({id: id, text: text, server: true});

    //監聽clientRef的變化做處理
    clientRef.on('child_added', function(snapshot) {
        var message = snapshot.val();

        if(message.server){
            $('.server_msg').append(message.text);
        }else{
            $('.client_msg').append(message.text);
        }
    });
});

這樣就差不多了

這邊可能會有的問題是在server欄位需要做權限的設定

只能讓server端寫入true

所以在firebase的資料庫規則裡寫下

{
  "rules": {
    ".read": "auth.username == 'admin'",
    ".write": "auth.username == 'admin'",
    "login":{
      ".read":  true,
      ".write":   "auth.username == 'admin'"
    },
    "service":{
      "$user": {
        ".read": true,
        "$other":{
          ".read": true,
          ".write": "newData.child('admin').val() == false"
        }
      }
    }
  }
}

這樣基本上就差不多了在來就只剩美化和一些細節處理