第二屆青少年開發者大會

昨天逛微博時無疑發現今天居然就是第二屆青少年開發者大會了,之後又看到果殼網也有介紹,背景圖片第一眼看去就是郭老師,再一眼劉嘯宇,感覺奇怪……推測一下原來第三個人似乎是我,想起來第一屆大會時的情形了……恰好ppwwyyxxzxytim也在學校,就約定今天來湊個熱鬧了。會場在中國科學院計算中心研究所,入會場時大概剛好9:00,人還是不多。這一次確確實實是青少年的開發者大會了,參會學生很多,而不像第一次大會主要都是已經工作的講者。我記得第一屆大會郭老師還說大會還有年齡限制,他都快到限制了。現在我們三個“老人”來這裏算不算不接地氣。以前人人時似乎有一羣“跪圈”在北京活躍的人,不過老實說我真不喜歡“跪圈”這個說法。互相學習是件好事,不過膜拜和跪來跪去還是免了。這些人似乎都沒有來,和去年相比平均年齡也許能下降10歲吧。我們三個就成了這裏年紀最大的幾個人了。這可能是因爲北京的青少年開發者比深圳多?也可能是宣傳做好了。不過用just-ping.com測試2013.adc-cn.org,大多數檢測點都返回Packets lost (100%)

Read More

使用Suricata進行IDS/IPS

Suricata

Intrusion detection System(IDS)監控網絡或系統,尋找各類違反安全方針的行爲。Suricata是Open Information Security Foundation和其他相關支持協會從2009年開始開發的一套用於網路入侵檢測(IDS)、入侵防護(IPS)及網絡監控的系統。這方面最著名的產品是Sourcefire的Snort。那麼爲什麼要選擇Suricata呢?我在這方面的知識還幾近空白,無法在架構之類的方面作出判斷,想的到的用Suricata的理由只有這三點:

Read More

《Debug Hacks》和調試技巧

下篇見調試技巧2

Debug Hacks

作者爲吉岡弘隆、大和一洋、大巖尚宏、安部東洋、吉田俊輔,有中文版《Debug Hacks中文版—深入調試的技術和工具》。這本書涉及了很多調試技巧,對調試器使用、內核調試方法、常見錯誤的原因,還介紹了systemtapstraceltrace等一大堆工具,非常值得一讀。

Read More

Ouroborus Program - quine-relay 分析

Quine Relay

今天上網時看到有人分享了這個項目:quine-relay,點進去看是這樣一個程序:一開始是一段Ruby代碼,運行後生成Scala代碼,後者運行後生成Scheme代碼,如此執行,依次生成了Bash、Smalltalk、Tcl等代碼,最後又回到最初的Ruby代碼。這類程序有個名字,叫ouroborus programs。Ouroborus即銜尾蛇,是一條正在吞食自己尾巴的蛇,在這裏剛好表示循環的概念。

Read More

String index structure: suffix automaton

Suffix automaton

Deterministic acyclic finite state automaton,也叫directed acyclic word graph(DAWG),是一個識別若幹字串的無環DFA。識別若干字串的所有DAWG中,存在唯一一個狀態數最少的DAWG,稱作minimal DAWG,即識別這個字串集的DFA。

DAWG在有些文獻中也指識別一個字串的所有後綴的自動機,這種用法有個更常見的名稱:suffix automaton,此時該自動機可以看做是字串所有後綴的DAWG。

Read More

使用Burkhard-Keller tree優化近似串匹配

Approximate string matching

近似字符串匹配問題。

Levenshtein edit distance

在metric space中衡量兩個字符串差異程度的一個指標,即通過一系列單字符的編輯操作把字符串A變成字符串B所需的最小編輯次數,其中的編輯操作可以是插入字符、刪除字符以及修改字符。

計算編輯距離有個經典的Wagner-Fischer算法,使用了動態規劃,用d(i,j)表示把字符串A的前i個字符變成字符串B的前j個字符所需的最小編輯次數(即子串的編輯距離)。

Read More