顯示具有 Learn Note 標籤的文章。 顯示所有文章
顯示具有 Learn Note 標籤的文章。 顯示所有文章

20120626

PHP郵件亂碼問題

許多的郵件管理軟體(mail 2xxx之類)預設都是大五碼( BIG5 ),但阿批所撰寫的PHP,通常都是搭配多國語言UTF-8編碼,所以在寄送到此類郵件軟體的收件夾內時,時常收到大伙們來敲門訴說收到一堆火星文(亂碼),怎麼辦呢?阿批今天來解謎:


在php撰寫可用下列函式來進行轉換:
mb_convert_encoding("要轉換的文字'","big5","utf-8");


而在php的mail函式中,在header標頭檔也要加入:
Content-Type: text/plain; charset=big5";

只要兩步驟,就足以應付大部分的大五碼郵件軟體嚕!

20120422

CKEditor 修改 Toolbar

今天有幸接收到上級命令,要修改線上圖文編輯器的工具列項目,修改完也順便來發一下文章分享如何修改 :)

阿批原本都使用FCKEditor,而現在為求穩定及效率,開始全面改用CKEditor 。

話不多說,來教大家如何設定,步驟很簡單

打開editor/config.js檔案

可以看到裡面預設有一段
CKEDITOR.editorConfig = function( config )
{
    // Define changes to default configuration here. For example:
    // config.language = 'fr';
    // config.uiColor = '#AADC6E';
};

此時阿批將裡面新增以下設定
CKEDITOR.editorConfig = function( config )
{
config.toolbar_Basic =
[    ['Bold', 'Italic','Underline'],
    ['NumberedList', 'BulletedList'],
    ['Link', 'Unlink'],
    ['Font','FontSize'],
    ['TextColor','BGColor']];
};

OK~依照您的需求,將工具列的名稱加入,即可得到您想要的畫面 :)

20120121

Flow experience

神馳經驗(flow experience)為一種專注、沈浸的心靈悠遊狀態是1970 年代美國學者Csikszentmihalyi(1975)在對人類個體行為及心理狀態所作的觀察研究後所提出,進入神馳狀態的個體可以感受到身、心能力的提升,進而超越自我。在教育領域的運用上,得以提升學習成效。
Csikszentmihalyi他觀察藝術家、攀岩家、舞蹈家、職業棋士及籃球員的行為,探討其工作與心理愉悅的關係,結果發現當研究對象投入工作時,會經歷以下的特定感覺:感到個人能力足以應付工作所需、對活動回饋非常清楚、注意力集中、失去自我的知覺、感到能夠掌控行為和環境、自發而不需外在酬賞等。這些感覺使個人在沒有外在酬賞下,也能興高采烈地全力投入工作,而且工作後還想再次投入類似活動。由於研究之對象一再描述感覺如同有內在邏輯可循,流暢無比,因此他就將此種感覺命名為”flow experience(神馳經驗)“。楊純青(民93)

參考資源:
楊純青(民93)。成人線上學習之人際互動及神馳經驗對其學習成效之影響。國立高雄師範大學成人教育研究所博士論文,未出版,高雄市。

20120112

如果,你不小心忘記Mysql的root密碼....

是的,阿批又來了,因為阿批又把root密碼忘記了,會忘記的原因,主要是因為腦海裡的橡皮擦持續擴大了(迷之音:好像不是甚麼值得慶祝的事....

廢話不多說,阿批來教大家解決方法,很好用唷,快偷學起來 :D

阿批是在Linux平台底下工作,所以已Linux來說明,(只要你是用Mysql,應該沒有Linux版本問題,當然Unix也通唷!)
1.關閉你的mysql(因為這樣你才可以修改&儲存它的設定檔)
# service mysqld stop

2.修改MySQL的登入設定:
# ee /etc/my.cnf

在[mysqld]裡加入 skip-grant-tables,這是讓你跳過驗證密碼的程序來進入mysql,接著就儲存&離開嚕。


3.啟動mysqld
# service mysqld start

4.登入並修改MySQL的root密码
# /usr/bin/mysql
此時會出現如下訊息:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.56

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

接著我們切換到mysql儲存帳密的資料庫mysql
mysql> USE mysql ;
您會再看到另一個訊息:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed



這時候您就可以大肆(!?)的修改root密碼了!
mysql> UPDATE user SET Password = password ( '填入你的新密碼' ) WHERE User = 'root' ;
輸入上面的指令後按下Enter,就 匯出下如下的訊息
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
更新完密碼,要刷新一下權限才會通唷
mysql> flush privileges ;
一樣刷新後會出現如下訊息告知執行成功。
Query OK, 0 rows affected (0.01 sec)
如果上述步驟你懶得做,其實您可以藉有restart mysql來動作,但上述的指令是最為保險的。
如果沒問題不想在流連了,我們就輸入quit或exit離開吧!
mysql> quit
Bye

喔喔~跟我說Bye了!但接下來我們還有其他事要做.....

是甚麼事.....

就是要將剛剛關掉的Mysql啟動阿.....但.....似乎還有甚麼事要做.....?

沒錯,要將登入設定改回來,不然大家都不用密碼就可以進你的資料庫,你剛剛改的密碼也是多餘的了!


5.将MySQL的登录设置修改回来
# ee /etc/my.cnf
將刚才在[mysqld]加上的skip-grant-tables删除
儲存並且退出ee。

6.重新啟動mysqld
# service mysqld restart

OKOK~現在大家應該可以用新的帳密登入嚕!!!

20111225

解決MySQL server has gone away的無情警語

Hey, EV8D~阿批又來了,阿批這次嘗試要把檔案存到資料庫裡遇到了困難

也就是 MySQL server has gone away

OMG~實在是讓阿批一個頭兩個大,後來查了資料,才知道改php.ini沒有用(迷之音:廢話.....

後來改了Mysql的設定檔:my.ini (舊一點的版本是my.cfg


這裡呢,分成兩種情況...

1.如果你是因為SQL指令太過於冗長導致timeout才出現 MySQL server has gone away
那請您修改:
wait_timeout=2880000
interactive_timeout = 2880000    


2.如果你像阿批一樣要把檔案上載到資料庫儲存,則請修改:
max_allowed_packet = 10M(預設1M)

就這樣,各位看倌請動手試試看唷~~~~


阿批碎念:請別忘了修改後要restart mysql唷!



20110304

Mysql 語法大全

[匯出]
mysqldump -u userid -e -p db_Name > xxxxx.sql

[匯入]
mysql -u userid -p [-h localhost] db_Name < xxxxx.sql

20090702

My Note - K-means Cluster

K-means 分群法
使用分割式分群法(partitional clustering)時,必須先指定群聚的數目,然後藉著反覆疊代運算,逐次降低一個誤差目標函數的值,直到目標函數不再變化,就達到分群的最後結果。
在所有的分割式分群法之中,最基本的方法,就是所謂的 K-means 分群法(k-means clustering),又稱為Forgy's algorithm。主要目標是在大量高維的資料點中找出具有代表性的資料點,這些資料點可以稱為是群中心(cluster centers)、代表點(prototypes)、codewords等,然後在根據這些群中心,進行後續的處理,這些處理可以包含:
1.資料壓縮:以少數的資料點來代表大量的資料,達到資料壓縮的功能。2.資料分類:以少數代表點來代表特定類別的資料,可以降低資料量及計算量,並可以避免雜訊的不良影響。分割式分群法的目的是希望盡量減小每個群聚中,每一點與群中心的距離平方誤差(square error)。E = Sk=1~c ek分群的方法,就變成是一個最佳化的問題,換句話說,要如何選取 c 個群聚以及相關的群中心,使得 E 的值為最小。 也可以用另一方式來描述,給定一組 n 點資料 X = {x1, ..., xn},每一點都有 d 維,k-means 分群法的任務是找到一組 m 個代表點 Y = {y1, ..., ym},每一點也是d維,以使下列的目標函數越小越好: J(X; Y, U) = Si=1nxi-yk2在演算法開始進行前,必須事先決定好預期分群的群聚數目。假設預期的分群群聚數目為c,則根據上述觀察,可經由下列步驟來進行 k-means 分群法: 1.隨機選取 c 個資料點,將之分別視為c 個群聚的群中心,這就是Y。 2.由固定的Y,產生最佳的U。換句話說,對每一個資料點x,尋找與之最接近的群中心,並將x加入該群聚。 3.計算目標函數 J(X; Y, U),如果保持不變,代表分群結果已經穩定不變,所以可以結束此疊代方法。 4.再由固定的U,產生最佳的Y。跳回第2個步驟。由於只能找到局部最小值,所以如何選一組好的起始點,就變得很重要。以上述方法來說,若要選取 c 個起始中心典,常用的選取方法有下列幾種: 1.從資料裡面隨意選出 c 點資料2.找出離所有資料平均值最遠的 c 個資料點3.找出離所有資料平均值最近的 c 個資料點 4.找出距離平方和最小的 c 個資料點上述討論的方法,通常又稱為 batch k-means algorithm,另一個類似的方法稱為 sequential k-means algorithm 或是 on-line k-mean algorithm,則是每當收集到一筆資料時,就可以更新群中心,方法如下: 1.隨機選取c的起始點,將之分別視為c個群聚的群中心 2.對每一個資料點x,尋找與之最接近的群中心,並將x加入該群聚,隨即計算新的群聚中心(該群聚中原有的資料點加上x後的平均向量) 3.檢查每一個資料點目前與之最接近的群聚中心是否和他的群聚分配一致,如果不是,則回到步驟二,反覆疊代,直到收斂。 一般而言, sequential k-mean algorithm的優點如下: 1.適用於資料特性隨時間而變的情況。 2.計算簡單,適用於硬體實現。
除非有特殊情況,否則很少使用 sequential k-mean algorithm。
發現叢集(Discovering Group, Clustering)
群集分析(cluster analysis)又稱為資料切割(data segmentation)、非監督式分分類(unsupervised classification),他是一種多變量統計分析(multivariate statistical analysis)的技術,主要目的是將資料集合中的資料紀錄,又稱為資料點、觀察值或案例,加以分群成數個群集(cluster),使的每個群集中的資料點間相似程度高於其他群集中資料點的相似程度。因此群集分析主要的杜地在於分析資料彼此間的相似程度,藉由分析所找到的群集結果,推論出有用、隱含、令人感興趣的特性和現象。相對於分類法中每一筆訓練資料紀錄都給訂一個類別資訊,並企圖從中找出一個判斷模式來預測未知類別資訊得資料紀錄;在群集分析的過程中,並沒有預先指定好的類別資訊,也沒有任何資訊可以表示資料紀錄彼此之間是相關的,所以群集分析被視為一個非監督式學習(unsupervised learning)的過程。
群集在data mining中所扮演的角色:
*資料精簡:透過群集分析將原本大量的資料加以分群成數個群集,並從每一個群集中挑選具有代表性的資料
記錄來進行後續的處理。
*推論假設的產生:利用群集分析推斷出所關注資料中可能存在的某些特性或現象。
*推論假設的驗證:可以對推論假設作有效性的驗證。
*歸屬預測:將群集分析後的分群結果應用於未知分類之資料記錄上,以預測資料所歸屬的群集。
資料分群(data clustering)或是分群演算法(clustering algorithms)是一種將資料分類成群的方法,其主要的目的乃在於找出資料中較相似的幾個群聚(clusters),並找出各個群聚的代表點,稱為中心點(centroids)或是原型(prototypes)。使用這些中心點來代表原先大量的資料點,就可以達到兩個基本目標:
降低計算量
資料壓縮
一般而言,分群法可以大致歸為兩大類:
階層式分群法(hierarchical clustering):群數(number of clusters)可以由大變小,或是由小變大,來進群聚的合併或分裂,最後再選取最佳的群數。
分割式分群法(partitional clustering):先指定群數後,再用一套疊代的數學運算法,找出最佳的分群方式以及相關的群中心。
所有的分群法都有相似的流程,大略可歸納為下列三點:
收集資料
使用某種方法進行分群
測試分群結果
檢測分群結果,如果未達預期效果,則回到步驟二,再一次進行分群

你還在幫別人打造舒適圈?

 師不順路,不好為人師,談何容易.... 人總是在為自己的做法找"理由",找一個漂亮的包裝,找一個可以說服人的方式,找一個立足點....然而,這個為自己所做的一切,往往是一個自私的隱性表現,因為你要達到的就是"滿足"自己。 但要如何滿足自己...