昨天逛微博时无疑发现今天居然就是第二届青少年开发者大会了,之后又看到果壳网也有介绍,背景图片第一眼看去就是郭老师,再一眼刘啸宇,感觉奇怪……推测一下原来第三个人似乎是我,想起来第一届大会时的情形了……恰好ppwwyyxx和zxytim也在学校,就约定今天来凑个热闹了。会场在中国科学院计算中心研究所,入会场时大概刚好9:00,人还是不多。这一次确确实实是青少年的开发者大会了,参会学生很多,而不像第一次大会主要都是已经工作的讲者。我记得第一届大会郭老师还说大会还有年龄限制,他都快到限制了。现在我们三个“老人”来这里算不算不接地气。以前人人时似乎有一群“跪圈”在北京活跃的人,不过老实说我真不喜欢“跪圈”这个说法。互相学习是件好事,不过膜拜和跪来跪去还是免了。这些人似乎都没有来,和去年相比平均年龄也许能下降10岁吧。我们三个就成了这里年纪最大的几个人了。这可能是因为北京的青少年开发者比深圳多?也可能是宣传做好了。不过用just-ping.com
测试2013.adc-cn.org
,大多数检测点都返回Packets lost (100%)
。
使用Suricata进行IDS/IPS
Suricata
Intrusion detection System(IDS)监控网络或系统,寻找各类违反安全方针的行为。Suricata是Open Information Security Foundation和其他相关支持协会从2009年开始开发的一套用于网路入侵检测(IDS)、入侵防护(IPS)及网络监控的系统。这方面最著名的产品是Sourcefire的Snort。那么为什么要选择Suricata呢?我在这方面的知识还几近空白,无法在架构之类的方面作出判断,想的到的用Suricata的理由只有这三点:
Ouroborus Program - quine-relay 分析
Quine Relay
今天上网时看到有人分享了这个项目:quine-relay,点进去看是这样一个程序:一开始是一段Ruby代码,运行后生成Scala代码,后者运行后生成Scheme代码,如此执行,依次生成了Bash、Smalltalk、Tcl等代码,最后又回到最初的Ruby代码。这类程序有个名字,叫ouroborus programs。Ouroborus即衔尾蛇,是一条正在吞食自己尾巴的蛇,在这里刚好表示循环的概念。
SECUINSIDE CTF Quals 2013杂记
Secuinside CTF Quals 2013
Secuinside是韩国人办的信息安全比赛,在ctftime.org上排名很靠前。这次应该算是我第二次参加类似的比赛,不过这类做题形式的还是头一次。
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。
TUNA技术沙龙及A Pretty Printer Library in Haskell
技术沙龙准备
三天前王康提议开学前的周末搞个活动,之后敲定由Cheer Xiao、heroxbd、Aron Xu和我做演讲。得到消息很诧异,因为以上几位都有丰富的系统管理经验,我就不知道能干什么了……但毕竟被逼上梁山了,最后Cheer Xiao让我讲Haskell。
使用Burkhard-Keller tree优化近似串匹配
Approximate string matching
近似字符串匹配问题。
Levenshtein edit distance
在metric space中衡量两个字符串差异程度的一个指标,即通过一系列单字符的编辑操作把字符串A变成字符串B所需的最小编辑次数,其中的编辑操作可以是插入字符、删除字符以及修改字符。
计算编辑距离有个经典的Wagner-Fischer算法,使用了动态规划,用d(i,j)
表示把字符串A的前i
个字符变成字符串B的前j
个字符所需的最小编辑次数(即子串的编辑距离)。
Python is ugly
False values
这些都是false value:None
, False
,
0
, []
, {}
,
''
。判断empty的应用场景可能多些,如果像Ruby那样只让nil
和false
为false就好了。