StrayBird

Free
the dream within.

逝者如斯
网志分类
· 所有网志 (173)
· bbs (6)
· 游戏·娱乐 (25)
· 学习·理想 (29)
· 生活·心情 (65)
· 随笔·随想 (15)
· 提醒 (1)
· 其他 (9)
· wow (4)
· 未分类 (19)
最新评论
搜索本站
友情链接
· 我的歪酷 非非共享界
· 老婆
· breathing 的疯狂
· fangu·骑行
· litterfish
· fanaron
· talker
· 满满的天空
· hessus
· 亡灵城的玫瑰
· mayl
· JazzLiu
· milosama
· flam
· 太平洋之恋
· codex
· rr
· rosemarry
· 野猫森林
· 玉帝
· doggy
· boss
·
· Eat
· -----------------------------
· 开放式课程-繁体
· 开放式课程-英文
· Google-Distributed Systems and Parallel Computing
· C++文档

订阅 RSS

0047454

歪酷博客


Troytt @ 2019-08-19 16:54

性别:雄性 类别:中型,人形生物 阵营:绝对中立 信仰:平衡 人物简介:看上去很大叔样的年轻德鲁伊,性格沉闷无趣,经常沉迷于一些无聊的问题。相信万物皆有联系,因果律是构筑世界的基本规律,多样性是保持世界存在的基本条件。 技能:学识(自然科学) 5 学识(计算机) 4 学识(历史) 2 搜寻 4 烹饪 3 扯淡 2 法术:沉睡(入睡时,若受噪声强光干扰,意志+3) 慵懒(免疫嗜血、狂热等法术以及类法术能力) 自信(强烈的自信心,使得面对任何心智类法术均获得坚韧+3,意志+3。同时盲目自信导致反射-5)


 
Troytt @ 2011-06-21 13:30

基本步骤见
http://www.debianhelp.co.uk/mrtg.htm

额外的步骤为:
1、编辑/etc/default/snmpd 文件,设置SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 0.0.0.0',否则无法获取远程主机信息
2、在远程主机安装snmpd,配置文件同服务器
3、添加监控对象:
  cfgmaker public@192.168.1.* >> /etc/mrtg.cfg
  indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html



 
Troytt @ 2010-05-15 11:59

人生第一篇技术类博文=.= 因为工作需要,自己写了个支持多语种的正则表达式解析器,记录下心得。

概述
概括的来说,正则表达式的识别包含如下步骤:
确定语法>>构造语法树>>构造自动机>>优化
如果只是做一个简单的识别程序,可以省去第一和最后一步,略过第一和第四章。

1.语法
  
语法是一个正则表达式的核心,也是唯一需要完全靠自己发挥的步骤。以我的实际程序为例,我的语法构造步骤如下:
1.1 确定运算符和优先级,例如
运算符 含义 说明 优先级
* 表示前一个字符重复零次或多次 a* = a; aa; aaa; aaaa... 3
| 表示或的关系 a|b = a 或者 b 2
SPACE 连接符   1
() 括号 通常用于改变运算顺序 N/A

   其中 * | SPACE 在编译原理书中有专门的命名,依次为Kleen Star, Union, Concate。在后面的章节可以发现很多运算符都能转换成这三个运算符的组合。
1.2 根据运算符确定初始的语法
   简单的来说,就是告诉程序分解正则表达式的方法。比如说按照1.1的运算符,有正则表达式:

   (a|b)* a b b                                                (表达式1)

   那么程序就应该这样处理:先把空格隔开的字符分别拿出来:(a|b)*、a、b和b。最后三项已经是单个字符放一边,再看第一项,依次去掉星号、括号、脱去|,最后也成为单个字符,然后进行解析。这边我直接给出我的初始语法:

  Gramma 1:
    regex -> exp CONCATE regex  |  exp
    exp -> state UNION exp  |  state
    state -> token  |  token KLEENSTAR
    token -> (regex)  |  单个字符

   语法设计的主要依据是运算符及其优先级,一般来说是为每个优先级设定一个转换规则。上例中从上到下优先级分别为1、2、3、N/A。
1.3 语法的完善与优化
  一般情况下,根据上一步得到的初始语法就能直接用于构造语法树。但是在较为复杂的应用中,我们还需要检查语法是否存在left-factor和left-recursion(这里不讨论歧义问题)
。例如:

  Gramma 2:
    A -> Aa | b

  为直接的left-recursion语法,即A在多次转换后,其结果的最左项可能依然为A。对于解析顺序为从左到右的解析器来说,这样的语法将不利于程序判断什么时候应该停止继续转换。简单的消除办法为添加中间结果项,对于语法2可得:

  Gramma 3:
    A -> bA'
    A' -> epsilon | aA'  (这里epsilon 表示空字符串)

  更为复杂的情况为间接的left-recursion,具体定义和解决算法可以参照龙书4.3节。对于正则表达式解析,通过良好的设计可以避免这种情况。

  Gramma 4:
    A -> a | ab | abc

  语法4为一个left-factor语法,即某个转换的两个或多个结果具有相同的最左项,这不利于解析器确定该转换应该采用的结果。解决的方法类似于合并同类项,对于上例可以得到:

  Gramma 5:
    A -> aB
    B -> epsilon | bC
    C -> epsilon | c

2.构造语法树
 
在确定语法之后,就可以根据语法来构造语法树,构造的方法有多种,不过关键都在于构造转换表,这部分内容是编译原理的核心部分,可以参照龙书第四章。我采用的是LL(1)的解析方法,即从左到右,从顶向下的解析顺序,并且在解析过程中根据当前解析器状态和当前输入字符可以唯一确定一个转换结果,这个方法的关键在于构建一个状态转换表。对于这种方法,请务必确认已经消除left-recursion和left-factor。表达式1:(a|b)* a b b的构造结果如下,其中#是用于表示字符串结束,无实际意义


3.构造自动机
  在构造完语法树之后,就可以构造自动状态机了。共有两种方式:DFA和NFA。
3.1 NFA
  NFA的构造方式比较简单,空间复杂度较低,但匹配的时间复杂度较高。
  对于上一张的语法树来说,每一个树节点都对应着一个NFA,NFA的结构由该节点的运算符/字符决定,开始/结束状态则由子女节点决定。例如:
  对于s UNION t,按照以下的方式生成NFA N(s|t)
 








  对于s CONCATE t,按照以下的方式生成NFA N(s t)

 

  对于s KLENNSTAR,按照以下的方式生成NFA N(s*)。 










  这个过程从叶节点开始,一直到根节点结束,最后根节点得到的NFA就是我们所需的NFA。
3.2 DFA
  相比于NFA,DFA空间复杂度更大,但匹配的时间复杂度较小,因此在实际应用中通常采用该方法。
  DFA可以从NFA得到,要点在于:将NFA中的每一个状态集转换为DFA中的一个状态。
 
另外一种是从语法树直接生成DFA,d



 
Troytt @ 2010-03-11 16:55

转载自《华尔街日报》中文网,原链接: http://cn.wsj.com/gb/20100225/XIE141628.asp?source=channel 如果有人觉得能租房过一辈子,那最好看看这篇文章: 浙江金华高一学生童欣为《华尔街日报》中文网 "我的买房/租房记" 征文撰稿 第一次被房东从住了三年的房子里赶出来,理由是要粉刷装修。第二次被房东从住了八年的房子里赶出来,理由还是要粉刷装修。一家人在小厨房里默默地吃着最后一顿晚餐,相顾无言,惟有泪千行。第三次倒不是房东下逐客令,我们主动退出了。原因还是和粉刷装修有关。周围的一幢幢房子,就如同约好了要在有月亮的夜晚私奔的一对对男女一样,在一年最清净的日子里不约而同地都搞起了装修。 用我妈的话说:这日子,真不是人过的。 这么多的房子,搞装修做什么? 这是一个令人非常难以想象的画面,在城市的霓虹灯下,一座座被装修过的或者尚未装修的房子,纵横捭阖在城市的边边角角,就像一个个即将出嫁从良的妓女,仍不忘撩一撩那些过路嫖客的承受底线。 面对着一次比一次凶猛的妓女们的从良浪潮。我们家思前想后痛定思痛决定了──就是不买房!我们坚信总会有一些妓女,仍然无怨无悔地坚守着自己的岗位,正如同总有些我们这样的人,无怨无悔地做着最后一批候鸟。 但是很显然在这个问题上,我妈绝对和我爸站的不是同一战线。 为了体现阶级斗争的剧烈,甚至屡次惊动了公安局与民政局的同志们。 我妈曾经抄起过一只高压锅,对着窗户就砸过去:“再让我租房,我就和你离婚。”也曾经泪眼婆娑地在民政局门口徘徊良久,拉着我爸的手,又是咬牙又是切齿:“你说我这辈子怎么嫁了这么个男人,我的命怎么这么苦,我做来做去做到老连幢房子都买不起。”当然更多的还是茶余饭后,在哗啦哗啦的洗碗水声里,挑高声线:“XX家在城东买了个两室一厅,真是好命。这房子过不了几年一定升。”事实证明,还没过一年城东那片地的二手房被政府强制拆迁。总之我妈是软硬兼施,但就是撼动不了我爸那颗不买房的决心。 我爸常挂在口边的一句话就是:“报纸上专家都说了……” 金融海啸淹没富豪无数。那段时间,我忽然由衷地热爱起时事政治。如果世界上还有幸灾乐祸这个词,那么它一定是专门为我们这样一家子提供的。在那段温暖的春天里,我和我妈经常守候在电视机前的财经版,无动于衷地看着一连串的巨额数字从主持人同样无动于衷的嘴中吐出。我们生平第一次体验到了一种叫快感的东西。 当然快感依然无法解决租房和买房之间的矛盾。 金融危机下房东决定把这套两室一厅卖出去。勒令搬出的期限就在过年边。这下我妈不干了。她觉得房东非常不人道,哪有大过年的把人赶出去的道理。当她的愤怒被房东通过对骂的形式完整地理解后,我们搬出的期限又被往前提了一个月。在这收拾东西的半个月里,我妈也巾帼不让须眉地把这套小二手房给里里外外地折腾了一遍,拆灯泡拆水龙头拆水管,拆完了屋子里一切可以拆的东西,并且顺手把装空调的墙洞就地取材地给堵得严严实实。 干完这一切后,我们伤心地离开了这个吃喝拉撒了两年的弹丸之地。我依然记得,在我刚来的那天在墙上肆无忌惮地抄下新家电话号码时房东那张忍成猪肝色的脸。我也依然记得,在我走的那天,用小刀把这个号码以永久的形式保留了下来。 走在二月的街头,人来人往,熙熙攘攘。 整座城市都如琴弦上的颤动,清闲的,繁忙的,欢快的,悲伤的。 我想起了小时候学过的那首普希金的诗,叫《假如生活欺骗了你》。 假如生活欺骗了我,我一定会把生活给欺骗回去。 于是我向上指了指天空。 晴好的日子,万里无云。 我对妈说:“你看,一群候鸟。”


 
Troytt @ 2009-12-30 16:31

本以为会和85%的差不多,最多苦一点点而已,结果发现根本不是一回事=。= 85的苦如水,醇厚绵软,回味悠长。而99苦如炽热的火焰,喷薄而出,轰然而至,让你无法招架。 第一口一下子吃的太多,那感觉真的如同被”裹着柠檬的金砖“砸了一下,一时没回过气来。总的来说,99的香味和苦味确实是无与伦比的,而且其中还有可可的碎屑,嚼起来别有风味。但是回味就不如85了,或者说不够醇,来的快去的也快,而且会感觉有点涩涩的…… 可以区别就跟黄酒和白酒一样吧=。=


 
Troytt @ 2009-09-01 11:22

之前力拓门的事情闹得沸沸扬扬,各路专家教授纷纷放出言论解析该事件,相关报导连篇累牍。 但是奇怪的是,几乎每个报导中都会提到一句话,大意是,尽管政策/制度/法规有不健全的地方,但是跨国公司不能以此为借口行贿。说得好像是人家积极主动把钱送上门似的,如果不送的话也没什么不良后果。一下子就把责任推到公司头上。 由此可见,这帮子专家不玩魔兽世界。


 
Troytt @ 2009-08-19 17:26

近来动物保护的广告似乎又多了起来,“没有买卖,就没有杀害”不绝于耳。也不知道谁想出来的点子。花了大把时间精力想出来这么句口号外加几幅看上去血淋淋的图片,一副板起脸教育人的样子。我天朝人民要是吃这一套,恐怕猪肉早就没人买了。有谁吃肉的时候还想着杀猪的事?这种劝导方式简直太幼稚了。 另外有些专家教授则拼命强调,鱼翅没啥营养,熊掌也没啥好吃。诶诶,套用一句流行的话来说:我吃的不是鱼翅,是寂寞。 我才不管鱼翅虎鞭猴脑到底有多少营养有多少好吃,吃的就是一个寂寞。我有钱吃的起你没钱吃不起,这就吃回本了,营养那是附加价值。哪天鱼翅跟粉丝一样多,也就没那么多人吃了。归根到底还是一种优越感作祟,要想从实际价值方面入手来劝阻,恐怕也是没啥效果。要我说,最好的办法其实很简单,找个研究机构研究研究,最后得出结论: 吃鱼翅阳痿 还不能公开发表,要偷偷的“透露”出去,然后官方出一个明显漏洞百出,语焉不详的报告称没这回事,这事也就成了。 p.s. 说实话,鱼翅确实有可能导致一些不良的效应后果。因为鲨鱼处于海洋食物链顶端,鉴于重金属和部分有毒有机物污染日趋严重,这些有毒物可能会通过富集效应聚集到鲨鱼体内。不过没有听到过相关报道,也许富集效应不明显=。=


 
Troytt @ 2009-07-01 08:37

终于开始民工的生活了,上班第一天就听闻悲剧:我们公司和母公司分家了=。= 意味着没有大笔大笔的风投了,所幸的是老板强力,依然搞到很多投资和项目。不过最怕的是公司就此成为一个只能做做小项目的地方,这不是我想要的…… sigh,都已经上贼船了,就走着瞧了