PageRank



轉移公告

計劃把 http://blog.hoamon.info/ 文章全部轉移至 http://www.hoamon.info/blog/ 這裡,而本 Blogger 站台的文章近 500 篇,我預計在 2014-12-31 前移轉完畢,完成後 http://blog.hoamon.info/ 將只作代轉服務,一律把舊連結如 http://blog.hoamon.info/index.html 轉成 http://www.hoamon.info/blog/index.html ,敬請舊雨新知互相走告。

新文章只發佈在 http://www.hoamon.info/blog/

何岳峰 敬上
顯示具有 perl 標籤的文章。 顯示所有文章
顯示具有 perl 標籤的文章。 顯示所有文章

2010年9月25日 星期六

在 django-based 系統中,將MyISAM 轉換成 InnoDB

詳細請見官方文件

我簡單整理如下:

一、將 settings.py 中的資料庫引擎從 MyISAM(預設值) 換成 InnoDB , 加下以下設定,


DATABASES = {
'default': {
'NAME': 'xxx',
'USER': 'xxx',
'PASSWORD': 'xxx',
'ENGINE': 'mysql',
'OPTIONS': {
"init_command": "SET storage_engine=INNODB",
},
}
}


二、將原來的表格作


mysql> ALTER TABLE ????? ENGINE=INNODB;


至於第二種方法該如何處理,我是使用 mysql 指令手動處理:


mysql> \T /home/hoamon/alter.sql;
mysql> show tables;
mysql> \q;
sh# perl -i -pe 's/| +([^ ]+) +|/ALTER TABLE \1 ENGINE=INNODB;/g' /home/hoamon/alter.sql
sh# mysql -u xxx -pxxx xxx < /home/hoamn/alter.sql


我在將 MyISAM => InnoDB 時,遇到一個問題 MySQL Error code 1071錯誤('Specified key was too long; max key length is 767 bytes')。

因為原本的 models.py 有一個 Model 設定了 unique_together = (('name', 'uplevel_id'), ) ,而它會造成 1071 Error code,因為 name 的原長度是 256 ,而我們又使用 utf8 ,所以它的實際長度為 256 * 3 = 768 ,但在 InnoDB 的索引中,限制為 767 以下,所以我們必須將 name 的長度限制改為 255 才行。

2009年12月3日 星期四

要賣 9 本 Perl 的書(再補一本,共 10 本)


請上露天拍賣網址(結標時間:2010-01-0213:56)

書籍近照:

底價定 300 元,只要是郵資費夠,我就賣掉。

為什麼要賣掉呢? 因為我想我不會再研究 Perl 了吧! 過去,我剛入門 Linux 的時候,那時系統管理員最好用的工具語言是 Perl ,所以為了把 Linux 管好,我花了不少心力學它, Perl 幫助我找到人生中的第一份工作。但是後來,約五年前,我開始常寫網頁系統時,卻無法拿它來用,那時還沒流行 Web Framework ,所以我當然不知道有 Catalyst 的存在,於是我學了 PHP ,用它來寫網頁。

那時的我是 PHP/Perl 兩頭玩,直到兩、三年前, Ruby on RailsDjangoTurboGears 的出現,我才開始認真地想把「系統管理」、「網頁設計」及「學術研究」的工作用同一種語言來解決,最後選的是 Python + Django ,因為 Python 當時的數學函式庫比 Ruby 豐富,所以我們老大就說用 Python 好了,雖然那時我是比較想用 Ruby on Rails 的,當時 Rails 的氣焰比較高。

不過,現在看來,選擇 Python 應是比較符合我的個性,因為我個人是比較龜毛,喜歡 SOP (標準作業程序),所以過去用 Perl 時,有太多種表現的手法後,在我個人寫的程式上,風格十分隨便,反正看不懂了,就再寫一個,而這點, Ruby 的特性就有點類似 Perl 了。

也是用了 Python 後,我才發現過去喜愛 Perl 的程度,不如我以為的那樣高。這讓我想到重慶森林裡的廚師莎拉與炸魚薯條的故事:「沒有嘗試過,你如何知道真正喜歡的是什麼」。所以,我想把這些 Perl 相關的書籍留給其他適合的讀者。願意作它們的新主人嗎?

= 後記 =

已全賣出。

2007年3月8日 星期四

自然數中的特定自然數集合?

大家似乎對數學問題的程式求解非常有興趣。我這邊再提供一個數學問題,這本來是我的碩士論文要作的題目(其中的一個部份)。

1條18公分長的竹筷,如果要分成10、7、2、3公分的話,且剩餘的長度不可大於等於2公分,這樣有那幾種分法?

程式要能寫到任意長度的竹筷可被任意個數的自然數切割。

我的程式目前只有 Perl 版的,過幾天改成 Python 版的,再 po 。

2007年3月5日 星期一

Python: pydoc ?!?

pydoc? 這是什麼東西~~怎麼學 Python 半年了,今天才在 Trac-Hacks 看到有這個東西。

天呀!!用 Perl 時,我們是離不開 perldoc ,不管是無聊,還是忘了函式用法,看 perldoc 總是第一件事。但我在學 Python 時,查類別方法時,都是用 dir() ,要不就上網查答案,從來沒想過 Python 也有類似 perldoc 的工具。

天呀!!我看的 Python 書,怎麼沒人提這點呢??真令我感到不解,一定是我跳著看,就這麼地跳過去了。

而且 pydoc 還有一個貼心的設計,只要你打下列這個指令

# pydoc -p iii

iii表1個大於1024,小於65535的正整數。你就可以用瀏覽器在 http://127.0.0.1:iii/ 觀看整個 pydoc 的內容。

真棒~~

2007年1月22日 星期一

資料結構重於演算法

引言:「萬丈高樓平地起。」

曾有個程式宗師說:「只讓我了解你程式的演算法,我是無法得知你程式的資料結構。但讓我了解你的資料結構,我大概也知道了你的演算法。」
這可說明了演算法是依附在資料結構上的。

閱讀更多…

2006年11月21日 星期二

給google的建議(構想篇)

一直很喜歡讀書,也喜歡買書,也研究如何管理圖書,但僅僅只是空論而已,我的書常借人,也常不見,因為我總是忘了借給誰了。於是我想要建立一個系統,一個圖書管理系統,喔!不,應該連那些音樂光碟、DVD影帶都一起納入,甚至連個人的知識、思想都可以一起放在這個系統當中管理。

幻想一個情景,當別人問你對於APPLE有什麼看法時?你可以搜索這個系統,並作一個簡單的操作(不外乎瀏覽你找出的知識及資料,然後作一個刪減,最後把剩餘的內容連結起來),就可以把你對APPLE的想法整理成一篇報告出來,然後接受他人的讚嘆或是忌妒。

當這個需求產生的時候,是我熱愛PERL的時候,並不是說現在就不愛PERL了,在系統管理上,它還是很好用,只是現在我比較著迷 Python、ruby,所以我把這個系統叫作per-L(personal extensional resource library),或是per Link。

per-L系統還應該具有blog系統的功能,當你使用條碼器把你的藏書(或是一項資源,例如: DVD影片)掃進系統後,你可以在這項資源上建立一個描述資料,可以是一篇文章(這就是blog呀),也可是一些對你有意義的關鍵詞,像是「愛人與我在河堤上一起聽這」,「賣這本書的書店擁有本市最美的店員」…等。如果你在寫這項資源的心得時,也可能會引用你其他書或是別人書中的觀點來潤飾你的想法,而這就是blog系統中「引用」的能力,如此一來,從這項資源帶出你的想法、知識並能與別人的想法、知識作一個串接,當我們把個人擁有的虛無飄渺的想法,系統化地建立在電子資料庫中,我們就能檢視自己的收獲(就算你忘了的話)。當然,如果你樂意把你的資源及想法分享給他人的話,那就開放這個系統給外人瀏覽,於是這個系統還能成為你個人的成果展示中心。

簡單說明了per-L的功能,但這些東西和「google」有什麼關係!!

這我不說,你不知道,這其中可是大大地有關係。但要我說這個關係前,先聽我說說「google」的策略。

你有申請gmail了嗎?(如果沒有,來封信給我吧!我還有99個名額呢!),當我登入gmail後,我的瀏覽器就會記得現在的使用者是誰了,而一樣地我也 可以用相同的gmail帳號在搜尋引擎登入,但搜尋引擎為什麼要登入呢!google的用意是要把你的想法記下來,像是打什麼關鍵詞後,你會在那些結果網頁點那些連結,舉例來說:你在搜尋框中打了「apple」,按下「enter」,結果會出現一些健康資訊網站、蘋果電腦首頁、亞當與夏娃的故事…等,而當你點選的是蘋果電腦首頁的話,那下次你再搜尋apple關鍵詞時,跟電腦有關的網頁就會放在比較前面。覺得有趣吧!google為了知道你真正的想法,下了這麼大的苦功,可是以一般人來說,再這麼常用google,你一天會用幾次搜尋引擎呢!20次嗎,已經很多了吧! 在這個資訊量這麼小的地方來鑽營你的想法,這太慢了。

所以另一項殺手級應用就被拿進來了---email,每天都有人會寄信給你吧!如果沒有不代表你的人際關係不好,而是你的郵件伺服器擋垃圾信技術是一流的。當你使用 gmail 時,會看到信件閱讀區的右邊,有一排廣告欄,因為 gmail 會過濾你的信件,從中分析你與什麼資訊比較有關係,從這裡 google 所能獲得資訊量就有一點大了。但這還不夠,信件畢竟是一種被動的資訊傳輸,不完全代表你個人所擁有的想法,就像你不喜歡看有關「美人」的照片或是「所得稅減稅教學」的文 件,你還是會收到熱情的朋友寄給你這些信件。

於是有較為深入的技術加入---google page creator,它提供一個老掉牙的功能,讓你放自己的網頁,夠老吧! 在這個blog橫行的時代,還自己作網頁,但google還是推出了,目的不外乎希望多知道一點你的想法,網頁的內容一定是你自己寫(沒必要抄別人的吧! 放在網路遲早被別人查到),由此google可以更深入地知道你想的是什麼!這裡有一篇文章談google page的,大家可以看一下。

不管是用搜尋習慣、email還是網頁,它都是想要知道你多一點,但這些東西的資訊量絕對比不上一本書的。有幾部偵探電影案情線索是從圖書館的借書記錄中找尋兇手的,一樣地,知道你擁有那些書,大概也就知道你了解什麼樣的知識,就像對一個擁有整堆open source應用的書卻沒有任何一本c#、.net書的人來說,當他在搜尋「runtime machine」時,應該把「parrot」、「java virtual machine」的順位擺在「.net virtual machine」的前面嘛!而擁有「車訊」、「第一手」等雜誌的人,當他搜尋「eclipse」時,應該出現的是跑車網頁,而不是ibm的開源碼軟體的介紹。

per-L系統是一個利己也利google的系統,所以我推薦給google,希望它能成真。
Related Posts Plugin for WordPress, Blogger...