從24 hr 到 24秒的優化 multi pattern string match
把問題定義成這樣,
我有 9G的URL list 跟 一份 接近 500個 URL pattern brand list
因為amazon的URL有做SEO的優化,所以說 ,他的URL有包含 廠牌名字 我用brand list去過濾出我要的URL
再去爬取資料。
URL 內有100萬 的
1.
剛開始想說資料量不到用 python 的 in 去做然後 for 去 讓每一行做 in 500次的動作
結果出乎我意料的將近 24 hr的執行時間。
2.
後來改用 python 內的dict去把 Brand name 存起來
dict 是使用hash table 實作的,
時間複雜度 O(1)
核心的作法是
我 把每個 URL line 先用 filter的方式判斷
如果是 有 網址的line 再去判斷,這樣就減少了 1/2的量了。
我們相信 python stringlib的作者 告訴我們的 in 比其他東做快 6倍 Zzz就會得到 1的結果,
所以稍做修改。
變成 brand name都去做hash
然後把 URL line 出來 也拿去做hash
如果 URL line 的part在hash table裏面
那這一行就match 了
由於hash 的特性 所以現在只做單一節的 URL做拆解做hash
約做10分鐘左右
3.後來早上起來使用了 Sun Wu 大神的 agrep
秒殺 23.x秒 解決了同樣的 data
結論
1.sequence search 在量大時跟multi pattern 時 還是別想了....
2. agrep 很快
3. 演算法跟方式很重要。
4.簡單的一小步將是一大步
5.難怪老師都把問題reduce到最簡單的 sort 跟 search 問題上 因為這兩項 他幾乎無敵...!
上個禮拜訂的 王薌齋的大成拳 作者:何鏡平 出版社:山西科學技術出版社
其實星期日就來了,因為錯過時間,
所以今天才看到,
附上網址
博客來簡體館>王薌齋的大成拳(附贈光盤)
http://www.books.com.tw/exep/prod/china/chinafile.php?item=CN10727651
王薌齋為大成拳的開山鼻祖,在現代武林中享有很高的威望。
此書之所以定名為《王薌齋的大成拳》,是因為何鏡平先生在本書中所寫的文章,主旨只有一個,那就是依據他與王薌齋先生的親密接觸和深入觀察,從多個角度和層面介紹了王薌齋先生的拳術理念,始終主張和呼吁要繼承、發展王薌齋正確的大成拳拳學思想,對那些篡改薌齋先生學術思想並妄稱正統者做了毫不妥協的揭露和批評。特別要說明的是,本書收集了作者在王薌齋先生健在時,由王薌齋親自指導下撰寫的多篇關于大成拳養生樁及王薌齋養生思想研究的論文,內里提供了當年王薌齋先生從事養生樁教學實踐的種種相關史料。
果然,
裏面有提到我想要更加深入了解的的資料,
裏面的文章多是 何鏡平 發表在 武魂 雜誌 上的文章,
書後有附一些 他與同門通信的節錄,跟一些關於大成拳的澄清。
像是 拳學新篇 其實是 王薌齋的學生 齊執度 所寫的
還有,姚宗勳因為生計問題 特許 被使用意拳 這個名詞,
王薌齋一直到後期,其實是都講大成拳的。
還有像是斷手述要經過作者跟于永年的確認那篇是偽做
甚至有很多觀念不符合。
還有王見宇取代了王老在北京教樁功的職位
從 後來看到 耳功師 林朝火 打的 鶴拳 跟 姚宗勳 跟他兒子 姚承光 姚承榮
現在引用類似 西方拳擊的方式來訓練。
有某些基本手法跟觀念上,其實都是很一致的,
例如鉤卦 與 發力 控人 跟結構間架 整勁力。
前陣子再看了幾次 姚宗勳 的《意拳-中國現代實戰拳學》
與 姚承光 姚承榮 教學
還有像是崔瑞彬 跟其他弟子的訓練
跟 經典在 意拳拳學 收錄的文章中
反倒是覺得現在 寶師 得到的現象,
很像是 他們弟子與他們形容 王薌齋 的 狀態。
可能他們都有共同的學習經驗過,類似像是鶴拳形意拳....etc..
一觸即發 間架打人 整勁 結構力
很多時候都不猶得的把現象投射在一起了。
cfarrell1980/pywumanber - GitHub
https://github.com/cfarrell1980/pywumanber
在裝 pywumanber的時候遇到的問題
(沒錯,就是大名鼎鼎的agrep 方法 Sun Wu 大神 20年前的作品 wu manber的py binding )
Sun Wu, Ph.D.
http://www.cs.ccu.edu.tw/~sw/
吳昇。吾生
http://w2.cs.ccu.edu.tw/Site/sunwu/
[pyenvb] pcl99@gaisk[~/tmp/pywumanber][1:15]$ make
gcc -shared -O2 -o wumanber.so wumanber_impl.c
/usr/bin/ld: /var/tmp//ccrcmXPj.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/var/tmp//ccrcmXPj.o: could not read symbols: Bad value
*** Error code 1
Stop in /.amd_mnt/gais4/host/home/UserHome/pcl99/tmp/pywumanber.
Exit 1
[pyenvb] pcl99@gaisk[~/tmp/pywumanber][1:14]$ gcc main.c
/usr/lib/crt1.o: In function `_start':
crt1.c:(.text+0x8a): undefined reference to `main'
Exit 1
解法就在提示中....
在makefile裡面的
default: wumanber.so
wumanber.so: wumanber_impl.c
$(CC) -shared -fPIC -O2 -o wumanber.so wumanber_impl.c
clean:
rm wumanber.so
加上-fPIC
[pyenvb] pcl99@gaisk[~/tmp/pywumanber][1:15]$ make
gcc -shared -O2 -o wumanber.so wumanber_impl.c
/usr/bin/ld: /var/tmp//ccrcmXPj.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/var/tmp//ccrcmXPj.o: could not read symbols: Bad value
*** Error code 1
Stop in /.amd_mnt/gais4/host/home/UserHome/pcl99/tmp/pywumanber.
Exit 1
[pyenvb] pcl99@gaisk[~/tmp/pywumanber][1:14]$ gcc main.c
/usr/lib/crt1.o: In function `_start':
crt1.c:(.text+0x8a): undefined reference to `main'
Exit 1
三個傻瓜 中 關於熱情的台詞
蘭徹:知道為什麼我第一嗎?因為我喜歡機器,工程就是我的激情。知道你的激情是什麼嗎?
……別乾工程了,去娶攝影吧,發揮你的天賦去。要是邁克爾杰克遜他爸強迫他去做拳擊手,
穆罕默德阿里他爸要他去做歌手,想想是什麼災難。懂了不?傻瓜一個,深愛攝影,卻要娶機器!
拉主:神聖的領袖,昂史奧格斯啊,工程既是我的老婆又是我的情人,
可我還是考不好,為什麼呀?解釋啊!
蘭徹:因為你太懦弱,害怕將來。看看這些,戒指比手指還多,一個戒指就是一個恐懼,
考試、姐姐的嫁妝、工作……這麼怕明天,今天怎麼活?
你怎麼去專心學習。兩個奇怪的
哥們,一個活在恐懼裡,一個活在偽裝中
3 Idiots (2009) - IMDb
http://www.imdb.com/title/tt1187043/
星期日在看 門當父不對
方瑩 問了方磊幾個問題,
請你注意以下幾點
第一,
你是不是會時常的想跟這個人講電話或者發短消息
第二,
你非常享受和她在一起的獨處時光
第三,
如果她在你的視線裡面,你就會裝做不在意,
但是一旦她在你的眼前消失,
你就會滿世界的去找她。
第四,
如果她生病了,
你就特別關心她,為她著急,
第五,
如果她跟別人好的話你會吃醋。
第六,
如果她笑的話,
你的嘴角也會不自覺的上揚。
第七,
我說到這些會的時候,你會立刻想到是她。
如果你符合以上幾點的話,
那麼恭喜你,你已經掉進去了。
Can't locate String/CRC32.pm in @INC (@INC contains: /etc/perl /usr/lib/perl5/site_perl/5.12.2/i686-linux /usr/lib/perl5/site_perl/5.12.2 /usr/lib/perl5/vendor_perl/5.12.2/i686-linux /usr/lib/perl5/vendor_perl/5.12.2 /usr/lib/perl5/5.12.2/i686-linux /usr/lib/perl5/5.12.2 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/local/lib/site_perl .) at mod.pl line 3.
BEGIN failed--compilation aborted at mod.pl line 3.
#cpan
cpan# install CRC32
Fetching with LWP:
ftp://cpan.cs.pu.edu.tw/pub/CPAN/modules/03modlist.data.gz
Going to read '/root/.cpan/sources/modules/03modlist.data.gz'
............................................................................DONE
Going to write /root/.cpan/Metadata
Warning: Cannot install CRC32, don't know what it is.
Try the command
i /CRC32/
to find objects with matching identifiers.
cpan[3]> i /CRC32/
Distribution FAYS/Digest-Crc32-0.01.tar.gz
Distribution SOENKE/String-CRC32-1.4.tar.gz
Module < Digest::Crc32 (FAYS/Digest-Crc32-0.01.tar.gz)
Module < String::CRC32 (SOENKE/String-CRC32-1.4.tar.gz)
4 items found
cpan[4]> install String::CRC32
Running install for module 'String::CRC32'
Running make for S/SO/SOENKE/String-CRC32-1.4.tar.gz
[武術][社大] 功夫七崁-養生與自衛 111223 我們為什麼學習武術
社區大學的進度已經到了教完一蹀頭 一蹀尾,
打拳首重的就是架勢,
也就是身體的身力。
當你在練習金鷹拳時,因為他動作簡單,而且是個從小到老都能做的運動。
他的動作甚至比太極拳還要好打許多,
年輕的時候,
可以用拳來練功,伸展筋骨,
老年的時候,也可以讓他來讓自己身心放鬆。
上課的途中有聽到同學說打太極拳的時候,會讓精神放空了,
像以前再練合氣道或者是太極拳時,我都有一個體會就是,
當這個運動你做到的是精神集中身體放鬆的狀態,
也就是曾廣樺 在站樁功 提到的 副交感神經作用的狀態,
(詳細可以看 曾廣驊先生在美國做的研究,身為 王薌齋的學生 他在文革時期,因為時代艱難困苦自律神經失調,
文革後靠著站樁而恢復身體健康,多年胃痛也自然痊癒 ,現在美國 紐約 長島建立 氣功頤壽院 推廣站樁功
美國麻省高等教育學院副院長八十三歲的教授)
入靜後,副交感神經的主導使微血管舒張,改善微循環系統,
增加微血管的血流量,提升人體的自癒能力和免疫能力。此為「守神」之用。
寶師在教授金鷹拳都有一貫的道理,也就是練身力,用自己的身體閃戰挪騰之力。
有力的打法,可以展現出金鷹拳 爆炸性一面,
也不用力的打法也可以練起用架勢打人的訓練模式,而最終的狀態就是太極的狀態了。
一味的用力拳就不分陰陽了,所以寶師在授拳都一在的說"放鬆","放鬆"
就是要分清陰陽,打拳就像是躺在陽光加州曬太陽一樣享受。
金鷹拳 就可以練上浮沈
注意細節變可以在肢法上面變化。
再進入太極的現象提供了另外一條路。
知道鬆緊後,就能知道什麼是鬆了。
簡單來說,武術就是一個鍛鍊自己的模式,
而很早可能有人陷入了標準的這個模式陷阱,一味的講求"標準",
可是卻沒有練到自己身上,沒有把自己練開,
這樣的標準只是一個死的象徵陷入了一個謬論。
武術 就是要能夠鍛鍊自己,讓自己身心健康的一個方便法門阿~
過多的"標準"只是羨慕一個空練的型式而已,
真的要追尋的重點,卻大大的落下了。
AVOS Acquires Trunk.ly to Enhance Link-Saving in Delicious | AVOS
http://www.avos.com/avos-acquires-trunkly/
AVOS Acquires Trunk.ly to Enhance Link-Saving in Delicious « trunk.ly blog
http://blog.trunk.ly/2011/11/10/avos-acquires-trunkly/
非常驚人~ Trunk.ly的創辦人Tim & Alex...
Alex 是 中國最大的blog photo website 好看簿 Haokanbu 的創辦人,
沒多久以前他才離開好看簿 ,把公司賣了去環遊世界而已。
跟去澳洲遇到認識了Tim 搞了一個創投的項目,然後剛好賣掉的錢購付他們的飯店跟機票錢,
從那個時候之後,
他們又開始合作了 Trunk.ly這個 link 分享跟儲存的服務,
他們把各個web site ..twitter facebook ...etc,
那些有link分享的網站import進去,然後把link存起來。
提供一個search的介面,
對,就是這麼的簡單,
我長期的觀望,
想說他們再search的方面還有很大進步空間,而且他們再預覽的時候也是使用embed api呈獻而已。
這幾個部份都還有很大的改進空間,
AVOS 也就是 Delicious 團隊(由陳士俊 也就是Youtube創辦人 當時從Yahoo手中買回) Trunk.ly to Enhance Link-Saving
但是,Trunk.ly在link的相關議題應該還有很大改善空間。
時空飛朔居然一下被買了!!!!
他們可能都還沒考慮到large scale的議題就以做了一場完美的生意了~
阿阿阿~這就是人生阿~
很多人都知道python的精神叫做pythonic,
如果你在寫python的時候不pythonic的話,那你就沒資格被稱為python programmer了。
之前在看豆瓣網的首席架構師 洪強寧 做的python在豆瓣網的應用的演講
有其到他怎麼篩選他要的工程師,
當你發現你的工程師在寫python寫了超過 半年 一年,
還不使用list comprehension他就會叫你請回吧。
因為在後來你沒辦法使用語言的特性去思考。
list comprehension
廢話不多說,
當我開一個文本的時候,我可能會使用
texts=open('file').readlines()
其中有realine() readlines()
最大的不同在於 readlines()會把文本按行讀入成list然後,他是會有\n存在的。
texts=[ text.strip() if text in texts ]
這樣做完去掉 '\n'的動作又返回了list。
作者 peicheng (PC) 看板 peicheng
標題 談興趣 羊牧
時間 2011/12/20 Tue 11:55:24
一直以來都在找一篇文章,
原來我是從羊牧的文章得來的。
談興趣 廖枝春
興趣是一切工作成功的先決條件,無論做什麼事,想要做得好,獲得最高的效率
,一定得先對該事有濃厚的興趣,才能全神貫注,努力以赴。有人說:「興趣是工作成功
的鑰匙。」一點不假。
你看小孩子玩玩具,堆積木,在你看來無聊得緊,可是他坍了又堆,堆好了又坍
下去,往往堆上千百回,可以耗上大半天的時間,也不覺得疲倦。在你看來毫無意義的事
,他卻心神專注,玩得興致淋漓,自得其樂,這沒有別的理由,因為興趣,興趣引他入勝
而已。
兒童玩要有興趣,我們要成功一件事也少不得興趣。做一件事,智慧和才能固然
不可少,如果沒有興趣,勉強去做,毅力和信心得不到熱情的支持,一旦遇到困難,便會
心灰意冷,而一敗塗地;相反的,如果有濃厚的興趣,即使遇到困難,也能夠鼓起熱情,
由熱情而支持信心,由信心產生勇氣和毅力,再大的難題,也可以憑勇氣和毅力來克服,
到達成功的彼岸。
為學更需要興趣。孔子曾說:「知之者不如好之者,好之者不如樂之者。」我們
都知道為學的重要,但是知道為學的重要並不能使我們孜孜力學,樂此不疲;惟有喜好念
書,對為學有興趣的人,才能專心一志,好學不倦。有人問林肯:「先生,你為什麼這樣
好學?」林肯笑著回答:「沒什麼,只是興趣而已。」興趣使人好學,充分說明它在為學
過程中的重要性。
然則,興趣不是一時興起,絕非憑空可得。它總是潛伏在努力的工作中,只有我
們主動去發掘它,才能得到它的幫助,也才能領略它的好處。打個比方,同學們最頭痛的
是數學,在演算的時候,遇到解不開的難題,就覺得興致索然,如果這樣就放棄,便自絕
興趣之路;要是能不輕易放棄,再下苦功,發現了要領,懂得演算的方法,一旦難題迎刃
而解,興趣就會不期然地油然而生,即使飢腸轆轆,都會忘了吃飯。可見不論那一門學科
,不要埋怨它枯燥乏味,因為興趣靠我們去尋求,只有加倍努力,認真去學,才能找到真
正的興趣,才能學得更愉快,學得更充實。
興趣是我們最真摯的朋友,但是它不會自己送上門來。我們要去拜訪它,接近它
,才能和它攜手合作,在它的幫助下,事業更成功,學識更進步。
--
◤◥ Origin: 東海大學˙資訊傳奇 bbs.csie.thu.edu.tw
◣◢ Author: peicheng 從 gaisant20.cs.ccu.edu.tw 發表
[電影]熟男型不型 Crazy, Stupid, Love
昨天看了 這部電影,
主角們混亂了2個追尋,
第一個是 精神伴侶 另外一個是個是遊走個女人中的 玩咖。
滿緊揍的把裏面的人的生活刻劃出來。
有時候,我們是不是也太習慣不改變了。
開始習慣了某些事物。
「既然是你的靈魂伴侶,就要把對方追回來」
我相信再某些角度上,這句話是對的,
在match的時候,對的時間點的切入,改變了後來的那個印象。
但是,還是千萬不要傻傻的窮追猛打。
根據
Gentoo Linux Documentation -- Gentoo Linux nVidia Guide
http://www.gentoo.org/doc/en/nvidia-guide.xml
Testing your Card
To test your nVidia card, fire up X and run glxinfo, which is part of the mesa-progs package. It should say that direct rendering is activated:
Code Listing 3.15: Checking the direct rendering status
$ glxinfo | grep direct
direct rendering: Yes
-----------------------
# glxinfo
bash: glxinfo: command not found
glxinof是在 mesa-progs內
PCsNB lib # eix x11-apps/mesa-progs
* x11-apps/mesa-progs
Available versions: 8.0.1
Homepage: http://mesa3d.sourceforge.net/
Description: Mesa's OpenGL utility and demo programs (glxgears and glxinfo)
emerge x11-apps/mesa-progs
收工
遠端的win7開久了怎麼直接重開機呢
shutdown /r /t 1
今天到ASUS拿了換完風扇的w7s ,
開機果然沒有這麼熱了,
顯示晶片壞了更換在這款過保是免費維修的,
想說可能還要用好久一陣子,就順便把風扇換了 800 $
除了先跑去買了福義軒,
不過想買的起司餅沒了。
因為晚上過去了直接對蛋捲絕望~~
實在是不想跟外面的商家買。
剛好路過嘉義市新榮路與中正路口攤販
阿亮古早味豬小排骨飯,想說這麼多人排隊的角落應該是好店。
順手買了 排骨飯,真棒。
話說,這兩次去嘉義市,
應該是來了嘉義以來密度最高了吧。
因為去台北參加茶會,
早上起了大早天還沒亮就出門了,
到了台北八點多,剛好體驗一下台北人的上班時間,
慶幸的是,不管以後在不在台北工作應該都不會在這個時間出門上班吧XD
風塵僕僕到了目的地,然後聽了些介紹,其實自己祇有這個唯一的選擇而已。
不喜歡選擇,反而做了最好的選擇吧。
後來cw哥跟zz下來喝可樂,嘴泡一下。
一點多結束就想說去去一下興隆公園走走,結果一出萬芳醫院捷運站~
就剛好遇到隊伍。還有外國人問我發生了什麼事情...一整個就覺得很好運~的時間點。
http://tinyurl.com/72lqrq3
(「佛祖巡境 全民平安」台北文山區行腳祈福活動佛光山全球資訊網 )
看完整個活動後,就去興隆公園坐坐,
在水池邊還有樹下發個呆,看看文件。
約莫快四點到館前路的uniqlo採買一下,
逛了一陣,
真的是太累了,
就回家了,台中也沒去的就先回家了。
可是心繫正要拿去修的筆電吧XD
"因為這這真的是一個很好的機會,讓我可以找出自己會對什麼是充滿熱情,
什麼是可以讓我願意一天至少做八小時,卻不覺得自己在做苦工。"
節錄自 萬一吃了棉花糖 ch7共同尋找棉花糖魔力的朋友
一直有再看kemy姐寫的blog,
裡面剛好有提到一篇,你選擇的不只是工作,
還是你的生活。
因為工作就是生活
http://tmfreshman.pixnet.net/blog/post/82931229
PCsNB peicheng # emerge --autounmask-write pypy
Calculating dependencies... done!
[ebuild N *] dev-python/pypy-1.7 USE="bzip2 jit ncurses ssl -doc -examples -sandbox -stackless -test -xml"
The following keyword changes are necessary to proceed:
#required by pypy (argument)
=dev-python/pypy-1.7 **
NOTE: The --autounmask-keep-masks option will prevent emerge
from creating package.unmask or ** keyword changes.
Autounmask changes successfully written. Remember to run etc-update.
PCsNB peicheng # eix autounmask
* app-portage/autounmask
Available versions: 0.27
Homepage: http://download.mpsna.de/opensource/autounmask/
Description: autounmask - Unmasking packages the easy way
PCsNB peicheng # emerge autounmask
原來困擾已久的問題叫作Named-Entity Recognition
知道這個關鍵字,就可以去找找相關資料了。
product