2011年3月30日 星期三

[歌詞] 陳奕迅 - 淘汰

作者 peicheng (PC) 看板 peicheng
標題 [歌詞] 陳奕迅 - 淘汰
時間 2011/03/30 Wed 17:24:56


YouTube - 陳奕迅 - 淘汰

http://www.youtube.com/watch?v=dzQenM1sGq8

曲/詞:周杰倫

我說了所有的謊 你全都相信
簡單的我愛你 你卻老不信
你書裡的劇情 我不想上演
因為我喜歡喜劇收尾

我試過完美放棄 的確很踏實
醒來了 夢散了 你我都走散了
情歌的詞何必押韻
就算我是K歌之王
也不見得把愛情唱得完美

只能說我輸了 也許是你怕了
我們的回憶沒有皺折
你卻用離開燙下句點
只能說我認了 你的不安贏得你信任
我卻得到你安慰的淘汰



--
◤◥ Origin: 東海大學˙資訊傳奇 bbs.csie.thu.edu.tw
◣◢ Author: peicheng 從 gaisant20.cs.ccu.edu.tw 發表

1000110大陸高等學校認可名冊.png

1000110大陸高等學校認可名冊.png
台灣國立大學到大陸短期研修,學分好像可以承認了。
1000110大陸高等學校認可名冊1.png

不錯的參考資料

2011年3月28日 星期一

dev C++ [Linker error] undefined reference to `__dyn_tls_init_callback'


[Linker error] undefined reference to `__dyn_tls_init_callback'

出現這個錯誤,
原來是之前有裝MinGW把他更名之後就好了。


2011年3月27日 星期日

命運好好玩 click


這次在回程統聯上看的,
人生真的要慢慢的思考,
有時候選擇很重要。

家庭更是其中重要的一樣。


OSDC tw 11 0326~0327


這兩天是OSDC 11的日子,
跟往常一樣,都會去台北充電一下。

只是這次,不是從台中出來了。

周五回家後,因為卡在要寫多媒體的作業,
所以,這兩天一直loading在那邊。

真是若無閒事掛心頭,便是人家好時節。

星期四先跟ZZ說了可能會到他那邊住,
後來星期五問了他最近的捷運站頂溪,晚上7點的車到台北十點就到了台北捷運站,
十點半前到了永和。

星期六,早上有點睡過頭,晚了一節,
不過星期日卻晚了半天XD
滿滿的吃了兩個東一便當
第2天下雨,就搭捷運到南港了。

感覺這次的topic第1天我選的滿不錯的,
有關於Xdite講ruby講到我都心動了,
他說他是從ruby裏面學東西,程式用來解決問題,是一種GTD的想法。
最後一場聽介紹日本的search engine groonga
那個日本人是兩個網站的創辦人yappo
yappo 的档案 - GitHub
https://github.com/yappo
日本人講英文雖然不好,但是另外一方面來講日本的教育應該很棒,光是日文就可以自己學習很多知識。


晚上去了現炒,常旺跟了一堆大神們吃飯,他們還搶著付錢。
joe他們住的地方市政府附近的日租房,發現非常的棒。
晚上去吃了宵夜牛排。

第2天有git pro的作者來講,
但是下午的英文因為邊在寫作業所以,有點聽不太懂。有講tor。

感覺這次OSDC比上次COSCUP的感覺好些,可能人數沒有這麼爆炸。

高橋征義也有到台灣來講閃電秀。

這次去算是放鬆了,幾週來的緊張情緒。


2011年3月26日 星期六

[Gentoo]ruby gem emerge dev-ruby/camping

在找gentoo 的ruby gem
找了ruby找了gem 後來發現在

emerge dev-ruby/camping

[Gentoo]ruby gem emerge dev-ruby/camping

在找gentoo 的ruby gem
找了ruby找了gem 後來發現在

emerge dev-ruby/camping

2011年3月19日 星期六

[C]Code for Program to sort a linked list by swapping data in C Programming

Code for Program to sort a linked list by swapping data in C Programming

Program to sort a linked list by swapping data - C Programming Examples and Tutorials
http://www.syntax-example.com/Code/sort-linked-list-swapping-data-2818.aspx




Code for Program to sort a linked list by swapping data in C Programming
#include <stdio.h>
#include <conio.h>
#include <alloc.h>


/* structure containing a data part and link part */
struct node
{
    int data ;
    struct node *link ;
} *newnode, *start, *visit ;


void getdata( ) ;
void append ( struct node **, int ) ;
void displaylist( ) ;
int count ( struct node * ) ;
void selection_sort ( int ) ;
void bubble_sort ( int ) ;


void main( )
{
    int n ;


    getdata( ) ;


    clrscr( ) ;
    printf ( "Linked List Before Sorting: " ) ;
    displaylist( ) ;


    n = count ( start ) ;


    selection_sort ( n ) ;
    printf ( "\nLinked List After Selection Sorting: " ) ;
    displaylist( ) ;
    getch( ) ;


    getdata( ) ;
    clrscr( ) ;
    printf ( "Linked List Before Sorting: " ) ;
    displaylist( ) ;


    n = count ( start ) ;


    bubble_sort ( n ) ;
    printf ( "\nLinked List After Bubble Sorting: " ) ;
    displaylist( ) ;
    getch( ) ;
}


void getdata( )
{
    int val, n ;
    char ch ;
    struct node *new ;


    clrscr( ) ;


    new = NULL ;
    do
    {
        printf ( "\nEnter a value: " ) ;
        scanf ( "%d", &val ) ;


        append ( &new, val ) ;


        printf ( "\nAny More Nodes (Y/N): " ) ;
        ch = getche( ) ;
    } while ( ch == 'y' || ch == 'Y' ) ;


    start = new ;
}


/* adds a node at the end of a linked list */
void append ( struct node **q, int num )
{
    struct node *temp ;
    temp = *q ;


    if ( *q == NULL ) /* if the list is empty, create first node */


    {
        *q = malloc ( sizeof ( struct node ) ) ;
        temp = *q ;
    }
    else
    {
        /* go to last node */
while ( temp -> link != NULL )
            temp = temp -> link ;


        /* add node at the end */


        temp -> link = malloc ( sizeof ( struct node ) ) ;
        temp = temp -> link ;
    }


    /* assign data to the last node */


    temp -> data = num ;
    temp -> link = NULL ;
}


/* displays the contents of the linked list */
void displaylist( )
{
    visit = start ;


    /* traverse the entire linked list */
while ( visit != NULL )
    {
        printf ( "%d ", visit -> data ) ;
        visit = visit -> link ;
    }
}


/* counts the number of nodes present in the linked list */
int count ( struct node * q )
{
    int c = 0 ;


    /* traverse the entire linked list */
while ( q != NULL )
    {
        q = q -> link ;
        c++ ;
    }


    return c ;
}


void selection_sort ( int n )
{
    int i, j, k, temp ;
    struct node *p, *q ;


    p = start ;
    for ( i = 0 ; i < n - 1 ; i++ )
    {
        q = p -> link ;


        for ( j = i + 1 ; j < n ; j++ )
        {
            if ( p -> data > q -> data )
            {
                temp = p -> data ;
                p -> data = q -> data ;
                q -> data = temp ;
            }
            q = q -> link ;
        }
        p = p -> link ;
    }
}


void bubble_sort ( int n )
{
    int i, j, k, temp ;
    struct node *p, *q ;


    k = n ;
    for ( i = 0 ; i < n - 1 ; i++, k-- )
    {
        p = start ;
        q = p -> link ;


        for ( j = 1 ; j < k ; j++ )
        {
            if ( p -> data > q -> data )
            {
                temp = p -> data ;
                p -> data = q -> data ;
                q -> data = temp ;
            }
            p = p -> link ;
            q = q -> link ;
        }
    }
}


2011年3月18日 星期五

[網誌]側邊欄氣象

有時候想要看個一週氣象預報,
可是又不想上,中央氣象局網站看。

順手寫了個提取,中部地區一週氣象的狀態。

放在側邊欄這樣就可以比較常看到了。

啊啊啊



阿阿阿阿阿

弄了四天,
只寫了30出頭行code,

不過至少先搞定某一小小小部分Q_Q

回家繼續寫。

2011年3月17日 星期四

[武術]鶴拳搖肢與重訓

[武術]鶴拳搖肢與重訓

前天跟學弟搖肢,他說我的手變重了。
我就想說我上個禮拜沒有練,怎麼會怎樣呢?

原來,我星期六去幫阿公搬鐵管,
這也是另外一個重力訓練。

今天跟大哥搖肢,
搖到一半很酸,可是放軟之後,
又恢復了,週而復始。

剛剛摸了一塊肩膀前面的那塊肉,
發現他變軟了。

我一直覺得,東方的武術有同樣的重訓原理。
像是拿丈二大槍,就是為了重量訓量。

搖肢之後,還要做水肢,
這不就是,重訓完破壞肌肉組織的伸展嗎?

難怪,可以在家裡拿重自己練習。

不過兩人對練多了一個"感覺"。

與人交手的觸覺,練了才能黏。


[python] ttributeError: 'str' object has no attribute 'format'


下載了一個自動產生 pycon影音連結的python script

wget http://www.cngump.com/wp-content/uploads/2011/03/url_blip_tv.py_.zip

用的自己編的python
pcl99@gais4.cs.ccu.edu.tw[~/project/python/test][13:31](SCREEN 1)$ ~/bin/Python url_blip_tv.py
http://blip.tv/file/get/Pycon-PyCon2011DeployingWebApplicationsToTheCloud1of2113.mp4
Traceback (most recent call last):
File "url_blip_tv.py", line 26, in
html=html+"{0}
\n".format(url)
AttributeError: 'str' object has no attribute 'format'

出現了這個錯誤,
在用系統自帶的卻沒有錯誤,
原來自己的python是2.5的版本,
format是2.6之後才加入的python 3.0語法。
5. Built-in Types — Python v2.7.1 documentation
http://docs.python.org/library/stdtypes.html#string-formatting-operations

What’s New in Python 2.6 — Python v3.0.1 documentation
http://docs.python.org/release/3.0.1/whatsnew/2.6.html#pep-3101-advanced-string-formatting



2011年3月16日 星期三

[Python]python SimpleHTTPServer

常常有時候臨時想要分享東西,
這時候使用,在要分享的目錄下

python -m SimpleHTTPServer port

python -m SimpleHTTPServer 8000

預設不打就是8000port

2011年3月14日 星期一

3/11麻豆半半日遊

作者 peicheng (PC) 看板 peicheng
標題 3/11麻豆半半日遊
時間 2011/03/14 Mon 22:24:48




這次剛好郭老到了嘉義,隔天要到麻豆,
正好搭了順風車去拜訪憲師。

這次是第二次到憲師家,
我很喜歡那邊給我的感覺,
大池子養著鴨,
就坐在池邊喝茶吃飯飲酒暢聊。

聽說,他們附近的人常常就是有空閒時間,
就一起指點一下功夫。

也聽了他們講了一些關於拳術的心得。


那樣的生活,是多麼愜意阿。



--
◤◥ Origin: 東海大學˙資訊傳奇 bbs.csie.thu.edu.tw
◣◢ Author: peicheng 從 gaisant20.cs.ccu.edu.tw 發表

2011年3月13日 星期日

梁啟超:最苦與最樂

梁啟超:最苦與最樂

人生什麼事最苦呢?貧嗎?不是。失意嗎?不是。老嗎?死嗎?都不是。我說人生最苦的
事,莫苦於身上背著一種未了的責任。人若能知足,雖貧不苦;若能安份(不多作份外希
望),雖然失意不苦;老、死乃人生難免的事,達觀的人看得很平常,也不算什麼苦。獨
是凡人生在世間一天,便有一天應該的事。該做的事沒有做完,便像是有幾千斤重擔子壓
在肩頭,再苦是沒有的了。為什麼呢?因為受那良心責備不過,要逃躲也沒處逃躲呀!

答應人辦一件事沒有辦,欠了人的錢沒有還,受了人的恩惠沒有報答,得罪了人沒有賠禮
,這就連這個人的面也幾乎不敢見他;縱然不見他的面,睡裡夢裡,都像有他的影子來纏
著我。為什麼呢?因為覺得對不住他呀!因為自己對他的責任,還沒有解除呀!不獨是對
於一個人如此,就是對於家庭、對於社會、對於國家,乃至對於自己,都是如此。凡屬我
受過他好處的人,我對於他便有了責任。凡屬我應該做的事,而且力量能夠做得到的,我
對於這件事便有了責任。凡屬我自己打主意要做一件事,便是現在的自己和將來的自己立
了一種契約,便是自己對於自己加一層責任。有了這責任,那良心便時時刻刻監督在後頭
,一日應盡的責任沒有盡,到夜裡頭便是過的苦痛日子;一生應盡的責任沒有盡,便死也
帶著苦痛往墳墓裡去。這種苦痛卻比不得普通的貧困老死,可以達觀排解得來。所以我說
人生沒有苦痛便罷,若有苦痛,當然沒有比這個加重的了。

翻過來看,什麼事最快樂呢?自然責任完了,算是人生第一件樂事。古語說得好:「如釋
重負」;俗語亦說是:「心上一塊石頭落了地」。人到這個時候,那種輕鬆愉快,直是不
可以言語形容。責任越重大,負責的日子越久長,到責任完了時,海闊天空,心安理得,
那快樂還要加幾倍哩!大抵天下事從苦中得來的樂才算真樂。人生須知道有負責任的苦處
,才能知道有盡責任的樂處。這種苦樂循環,便是這有活力的人間一種趣味。卻是不盡責
任,受良心責備,這些苦都是自己找來的。一翻過去,處處盡責任,便處處快樂;時時盡
責任,便時時快樂。快樂之權,操之在己。孔子所以說:「無入而不自得」,正是這種作
用。

然則為什麼孟子又說:「君子有終身之憂」呢?因為越是聖賢豪傑,他負的責任越是重大
;而且他常要把這種種責任來攬在身上,肩頭的擔子從沒有放下的時節。曾子還說哩:「
任重而道遠」,「死而後已,不亦遠乎?」那仁人志士的憂民憂國,那諸聖諸佛的悲天憫
人,雖說他是一輩子感受苦痛,也都可以。但是他日日在那裡盡責任,便日日在那裡得苦
中真樂,所以他到底還是樂,不是苦呀!

有人說:「既然這苦是從負責任而生的,我若是將責任卸卻,豈不是就永遠沒有苦了嗎?
」這卻不然,責任是要解除了才沒有,並不是卸了就沒有。人生若能永遠像兩三歲小孩,
本來沒有責任,那就本來沒有苦。到了長成,責任自然壓在你的肩頭上,如何能躲?不過
有大小的分別罷了。盡得大的責任,就得大快樂;盡得小的責任,就得小快樂。你若是要
躲,倒是自投苦海,永遠不能解除了。


梁啟超:最苦與最樂



梁啟超:最苦與最樂

人生什麼事最苦呢?貧嗎?不是。失意嗎?不是。老嗎?死嗎?都不是。我說人生最苦的
事,莫苦於身上背著一種未了的責任。人若能知足,雖貧不苦;若能安份(不多作份外希
望),雖然失意不苦;老、死乃人生難免的事,達觀的人看得很平常,也不算什麼苦。獨
是凡人生在世間一天,便有一天應該的事。該做的事沒有做完,便像是有幾千斤重擔子壓
在肩頭,再苦是沒有的了。為什麼呢?因為受那良心責備不過,要逃躲也沒處逃躲呀!

答應人辦一件事沒有辦,欠了人的錢沒有還,受了人的恩惠沒有報答,得罪了人沒有賠禮
,這就連這個人的面也幾乎不敢見他;縱然不見他的面,睡裡夢裡,都像有他的影子來纏
著我。為什麼呢?因為覺得對不住他呀!因為自己對他的責任,還沒有解除呀!不獨是對
於一個人如此,就是對於家庭、對於社會、對於國家,乃至對於自己,都是如此。凡屬我
受過他好處的人,我對於他便有了責任。凡屬我應該做的事,而且力量能夠做得到的,我
對於這件事便有了責任。凡屬我自己打主意要做一件事,便是現在的自己和將來的自己立
了一種契約,便是自己對於自己加一層責任。有了這責任,那良心便時時刻刻監督在後頭
,一日應盡的責任沒有盡,到夜裡頭便是過的苦痛日子;一生應盡的責任沒有盡,便死也
帶著苦痛往墳墓裡去。這種苦痛卻比不得普通的貧困老死,可以達觀排解得來。所以我說
人生沒有苦痛便罷,若有苦痛,當然沒有比這個加重的了。

翻過來看,什麼事最快樂呢?自然責任完了,算是人生第一件樂事。古語說得好:「如釋
重負」;俗語亦說是:「心上一塊石頭落了地」。人到這個時候,那種輕鬆愉快,直是不
可以言語形容。責任越重大,負責的日子越久長,到責任完了時,海闊天空,心安理得,
那快樂還要加幾倍哩!大抵天下事從苦中得來的樂才算真樂。人生須知道有負責任的苦處
,才能知道有盡責任的樂處。這種苦樂循環,便是這有活力的人間一種趣味。卻是不盡責
任,受良心責備,這些苦都是自己找來的。一翻過去,處處盡責任,便處處快樂;時時盡
責任,便時時快樂。快樂之權,操之在己。孔子所以說:「無入而不自得」,正是這種作
用。

然則為什麼孟子又說:「君子有終身之憂」呢?因為越是聖賢豪傑,他負的責任越是重大
;而且他常要把這種種責任來攬在身上,肩頭的擔子從沒有放下的時節。曾子還說哩:「
任重而道遠」,「死而後已,不亦遠乎?」那仁人志士的憂民憂國,那諸聖諸佛的悲天憫
人,雖說他是一輩子感受苦痛,也都可以。但是他日日在那裡盡責任,便日日在那裡得苦
中真樂,所以他到底還是樂,不是苦呀!

有人說:「既然這苦是從負責任而生的,我若是將責任卸卻,豈不是就永遠沒有苦了嗎?
」這卻不然,責任是要解除了才沒有,並不是卸了就沒有。人生若能永遠像兩三歲小孩,
本來沒有責任,那就本來沒有苦。到了長成,責任自然壓在你的肩頭上,如何能躲?不過
有大小的分別罷了。盡得大的責任,就得大快樂;盡得小的責任,就得小快樂。你若是要
躲,倒是自投苦海,永遠不能解除了。



2011年3月12日 星期六

[Gentoo]wget 批次下載

在windows下有flashget的批次下載功能,
那在Linux下呢。

舉個例子
http://pc.com/xxx001zzz.jpg
http://pc.com/xxx049zzz.jpg

wget http://pc.com/xxx{001..049}zzz.jpg
wget http://pc.com/xxx0{01..49}zzz.jpg

2011年3月10日 星期四

2011年3月9日 星期三

partition and merge 終於要開始了


到了研究所,才知道之前都沒在念書阿!!

以前有兩點需要改進,
第一沒有實踐力。
第二沒有實踐的能力。

跟著強者,真的能夠成長不管是什麼好像都有同樣的道理。
難怪以前說近朱者赤,近墨者黑,
在還沒吸取足夠養分的時候,自己會一直吸收。
到了有自己的一套標準後,
才比較能夠避免。

最近聽了partition sort 跟merge sort,
都是external的。

以前寫java,所以,
思維沒有底層的那種data structure。
當DS在上的時候,都好像是天方夜譚。

現在才知道原來他這麼的重要。

其實以前的累積也不是說沒有用的。

他還是一樣在我心裡發芽阿。

希望今年的計畫就是出了那本書,
培養自己的程式實作能力,
多方涉略一點理論。

當然能夠在武術上面有所精進。





2011年3月8日 星期二

[Gentoo]google chrome socks proxy


Linux下chrome吃系統的proxy設定
ssh 連線後
ssh -D 12348 peicheng@yourserver
peicheng@PCsNB ~/ $ export SOCKS_SERVER=localhost:12348
peicheng@PCsNB ~/ $ google-chrome

這樣就成功了。

[筆記]學習的行動力

 


学习密度与专注力 - 刘未鹏|C++的罗浮宫 - CSDN博客
http://blog.csdn.net/pongba/archive/2007/05/24/1624382.aspx



《Python源码剖析》读书笔记(总) - 小混混程序员 - CSDN博客
http://blog.csdn.net/sislcb/archive/2009/03/20/4009602.aspx


學習是一種持之以恆的事情,而且還需要一段非常專注
的時間。


其实,在大学期间,最不缺的就是业余时间,最缺的就是专注精神,非凡的注意力造就非凡的专家。而生活中太多的分散注意力的因素:游戏、篮球、选修课、女朋友… 要想集中注意力对一个单一的目标猛下功夫,其实还是相当有难度的。这个难度并非来自自制力,如果一个人要靠自制力去强迫自己不受干扰,那只能说还是寻常人(mediocre)。真正的效率源自于内心对一个东西强烈的热忱,也就是我们俗称的追求,这时候从表层意识到深层意识都关注在这件事情上面,脑细胞高度活跃,才能创造最大的效率。为什么作诗的时候要趁着酒兴,就是因为少了这种狂热的专注,效率就低下了,一首诗作个好几天顶多是个平庸之作,跟交家庭作业也差不到哪去了。很多人正是因为缺乏专注,所以虽然也和别人一样过来了大学四年,实质上四年里面利用的时间无形中少了不知多少。


2011年3月7日 星期一

[Pixnet]搬家

沒錯,
揮別了從2006到2011的無名,
我也想搬家到pixnet了。

定了,
不知道會不會改,
這次就是先試看看了。

我不是要搬,
我只是找不到留下的理由。


2011年3月6日 星期日

[武術]拳兒


[武術]拳兒
前陣子,又提到了拳兒這部漫畫,我之前只看了兩集,
但是這次一看下去就,愛不釋手。

松田隆智真的學到了裡子的東西了,
從他的敘述跟他的心得,
他比很多學習中國武術的人還要像是中國人。

 節錄兩段
  把武術當作精神休養或是興趣,那是安於和平生活的人,所說的話。對於生活於都市底層的人而言,是種為了求生的手段!

 
 

2011年3月4日 星期五

[Python]How do I read a huge file line by line in Python, without loading the entire



How do I read a huge file line by line in Python, without loading the entire thing into memory first?
http://www.yak.net/fqa/171.html
by rupe

How do I read a huge file line by line in Python, without loading the entire thing into memory first?


In Python, the most common way to read lines from a file is to do the following: 

for line in open('myfile','r').readlines():
do_something(line)


When this is done, however, the readlines() function loads the entire file into memory as it runs. A better approach for large files is to use the fileinput module, as follows:

import fileinput
for line in fileinput.input(['myfile']):
do_something(line)


the fileinput.input() call reads lines sequentially, but doesn't keep them in memory after they've been read.

 


Annotation by enki :

as 'file' is iteratable, why not simply iterate on it? (use iter() when you need more control over the iterator's state)

ex:

for line in open('myfile','r'):
doSomething(line)

 


 

[電影]訓龍高手 How To Train Your Dragon


[電影]訓龍高手 How To Train Your Dragon

不錯的一部動畫片,
愈來愈細緻,現在看BD的片源,連毛細孔都看的一清二楚。

嗝嗝最後還是順從了自己的渴望,
做了自己擅長的事情,
成為了自己想成為的人。

今天下午看拳兒,
有句話說的很好,印度有句諺語說,"到了必要的階段,老師便在眼前出現。"

人的生活本來就是一步接著一步再轉變,
或許,也可能就是早已注定好本來你要轉變。
唯一能做的就是不斷的充實,
不斷的do your best。

 現在開始訓服你心中的龍吧!

 
 
 
 

九把刀之我要搬去痞客邦了


九把刀說 
我要搬去痞客邦了 http://www.giddens.tw/blog
http://www.wretch.cc/blog/Giddens/9345685

那我勒~他講的真的滿真切的。

 

[Gentoo]auto mount pcmanfm


[Gentoo]auto mount pcmanfm
安裝完gvfs,
在pcmanfm下會出現permission denied
 
 PCsNB peicheng # vim /etc/PolicyKit/PolicyKit.conf 加入

 

        




2011年3月3日 星期四

[python]pybtex example


之前想解析bitext 找了找一些作法找到python example
 
Pybtex!
http://pybtex.sourceforge.net/

from pybtex.database.input import bibtex
from operator import itemgetter, attrgetter
import pprint
parser = bibtex.Parser()
bib_data = parser.parse_file('ref.bib')

def sort_by_year(y, x):
return int(x[1].fields['year']) - int(y[1].fields['year'])

bib_sorted = sorted(bib_data.entries.items(), cmp=sort_by_year)

for key, value in bib_sorted:
print key
print value.fields['year']
print value.fields['author']
print value.fields['title']

peicheng@PCsNB ~/project/python/pybitex $ python bitex.py
wu1992fast
1992
Wu, S. and Manber, U.
{Fast text searching: allowing errors}
peicheng@PCsNB ~/project/python/pybitex $ cat ref.bib
@article{wu1992fast,
title={{Fast text searching: allowing errors}},
author={Wu, S. and Manber, U.},
journal={Communications of the ACM},
volume={35},
number={10},
pages={83--91},
issn={0001-0782},
year={1992},
publisher={ACM}
}