正则表达式搜索

好久不见。

众所周知,或者说单纯以我的经验而言,在sql的查询条件中,使用正则通常是不被鼓励的。究其原因,查询条件中使用正则,会导致查询不会走索引,结果就是sql异常缓慢。

在线上环境中,慢查询的出现,会导致雪崩级的事故。

通常的解决思路是增加额外的冗余字段,通过对该字段建索引的方式来加速。不过,带来的问题是不得不维护极有可能是一堆的冗余字段。

postgresql中的GIN提供了一种实现,可以建一个特殊的索引,从而加速正则表达式的搜索速度,本着对该技术实现原理的好奇,诞生这这篇文章。

本文虽然标注为正则表达式搜索,不过大抵是某些泛泛而谈,如果能为您提供一些干货,那就再好不过了。

ShyaruIII

正如前文提到的,这篇是Shyaru语法翻译的实现部分。

不过,随着实现的深入,我越来越发现目前的设计并不是良构的。我期望的设计,应该能让扩展变得容易,而且理解起来也不难 —- 正如我一开始期待的那样。

但是,实践表明,目前的设计存在着一些问题,而且是在写这部分Syntax-Directed Translation的时候就存在。直接导致的结果就是,增加新语法并非随意,甚至有些扩展必须改动前面的代码才行 —- 很明显不符合我的期望。

总而言之,设计高于代码,这是我最近真正理解到的一件事实。毕竟,码代码是再简单不过的活计。

后面我会重构一版Shyaru —- 正如对待ShojoA那样。

不过如果您有兴趣,大概看看我走的坑也不错。

Shyaru II

春はあけぼの。

不过说起来,从来都是日上三竿才起的AS,也没有见过やうやう白くなりゆく山際以及紫だちたる雲の細くたなびきたる,似乎相当遗憾。

诸位好,这篇本来该是Shyaru的后端部分,不过我打算说说一些在做这部分的时候的一些副产品。

至于Shyaru本身,现在完成了基本算数运算,字符串运算,变量运算的部分。我姑且做了一些test,目前没发现有什么问题。

如果对Shyaru代码有兴趣,请移步Shyaru

大致就是这样。

Shyaru I

诸位新年好,这里是一如既往的AS。

时值新春,应该大家都在享受假期吧?

恩,情人节是否和中意的人有了新进展呢?

除夕有没有和全家人开心吃年夜饭呢?

接下来的假期,也请尽情享受才好。

写在另一年的一月

时隔两个月的更新,各位好久不见。

写这篇文章的时候,我去看了看上一篇写在一月。一年前的东西,在第二页最顶上招摇着展示着自己的存在感。

事实上,读起来意外羞耻。

大概叫踌躇满志?文字天真,无忧无虑地向世界张牙舞爪。信心十足地谈论着过去的微不足道的事,轻率地谈论着未来的期冀和憧憬。

于是像这样趾高气昂地评价过去的天真,果然我也无可救药地在某种程度上变成了大人。

回忆是件不好玩的东西,譬如说,你会在过去自己充满希冀的眼神中,自惭形秽。

silence

silence依旧是我新开的坑,不过目前只是勉强能跑的状态,就我自己知道的,bug挺多的……不过这个东西本身只是个试验品性质的玩具,主要用途其实是用来熟悉curses编程和套接字编程。虽然成品和我计划的相比简陋了不少,大致的意思还是明白的……嘛。

silence的源代码我放在github上了,有兴趣请戳: silence

这个玩具写作时间很长,唯一的原因就是自己正式工作了,工作来说基本比较辛苦,所以也请不要在意更新的频度才是呢。总之至少我会保证这地方不会荒废到长草的(笑)。

大概是线程之类的

这篇文章比较碎,大概我也是想到哪写到哪,我倒是希望能把想要说的表达清楚,不过也只能是泛泛而谈吧。

涉及的东西主要是线程,线程池,然后actor。不过乱入些别的什么也说不准倒是。

其实我写博客大致都是有个腹稿的,不过很遗憾这篇没有。

总而言之,能有那么一点干货就好了(望天。