| Marshall's profileMarshall'sPhotosBlogLists | Help |
|
9/30/2009 使用正则表达式过滤不包含某子字符串的单词Original URL: http://www.onlymarshall.com/2009/09/30/filter-substring-in-a-word-using-regular-expression/ 昨天在学院版上看到有人发帖问,标题里的内容就是帖子里问题的核心。举个例子来说,就是给一堆单词,匹配所有不包含某字符串的单词。比如要求剔除aa,那么对于单词aab, abc, abca, abaac,就匹配abc, abca。 问题似乎很简单,但我从来没用过逆向匹配。有限状态自动机很容易就可以画出来,但怎么转化成正则表达式倒是忘得一干二净。最后google了半天,发现一个博客给出了正确答案(目前能想到的都验证通过):\b((?!aa)\w)+\b 这个表达式挺不好理解的。(?! pattern)是负向预查(negative look ahead),放在\w前面显然不是和\w进行组合。需要把表达式拆开来看,比如\b(?!aa)\w(?!aa)\w(?!aa)\w\b,这么来看就比较好理解了。首先不可以以aa开头,然后每个单个字符后都不能跟aa,直到结尾。这么就基本把aa给堵死了。 另外,如果支持negative look behind的话(Javascript不支持),应该也可以写作\b(\w(?<!aa))+\b。 9/23/2009 远程opensusue无法使用home, end用了opensusue当服务器两个月,碰到一个小麻烦的问题就是使用putty SSH登录上后,BASH里无法使用HOME和END进行行首和行尾的定位。原本以为是putty的问题(以前用的都是Secure Shell),今天正好想到这个问题google了一把,发现是opensusue的问题,参见这里。 我用的是opensusue10,配置文件都是/etc/inputrc,但行数有些不同,我的是90-91行,把下面的代码注掉就OK了:
9/16/2009 Tomcat启动地址解析错误贴log: SEVERE: Protocol handler pause failed java.net.UnknownHostException: NEOSTA: NEOSTA at java.net.InetAddress.getLocalHost(InetAddress.java:1474) at org.apache.jk.common.ChannelSocket.unLockSocket(ChannelSocket.java:484) at org.apache.jk.common.ChannelSocket.pause(ChannelSocket.java:283) at org.apache.jk.server.JkMain.pause(JkMain.java:681) at org.apache.jk.server.JkCoyoteHandler.pause(JkCoyoteHandler.java:153) at org.apache.catalina.connector.Connector.pause(Connector.java:1073) at org.apache.catalina.core.StandardService.stop(StandardService.java:563) at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744) at org.apache.catalina.startup.Catalina.stop(Catalina.java:628) at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:671) 关键词:UnknownHostException, JK 原因在google的第一个,虽然上面说的是AIX,但也适用于普通Linux:RHEL5原装的GCJ太山寨了,记得在启动tomcat前要指定JAVA_HOME。 9/11/2009 一个人人(校内)应用的想法一个星期前坐车时想到的。应用的功能很简单,就是帮助求职人群找到笔友、面友。 添加应用的用户可以创建一个活动,比如参加宣讲会、笔试、面试,并对这个活动添加评论(如笔经、面经)。其他人也可以添加评论形成互动。 搜索是一个比较重要的功能,相对于BBS上发帖寻同路人的行为,更有效率。 开发上,可以使用appspot进行部署,但appspot经常会被墙,或者是自己出了问题。自己Host的话要考虑流量和服务器的负载。 营收上可以在上面放adsense,虽然没几个钱。 只是个想法,暂时没什么时间实现,看这个周末有没有空搭一个架子出来。校内的文档很糟糕,支离破碎的。如果有人看到这个想法并打算尝试的话,自便。我也希望看到这个应用的上线。现在校内上关于求职的应用几乎没有。 9/9/2009 pubsubhubbub简介Google最近发布了pubsubhubbub协议,看上去挺简单,倒解决了我多年来关于RSS的疑惑。本来我一直以为RSS订阅是有显示的更新提示机制的,在挖掘了一些文档和实现后,发现只是简单的poll,不由得为其效率担心。好在现在有很多在线订阅器,减少了部分流量,不然很难想象一般的小站怎么能撑得住大量用户的轮询。但这么poll下去也不是个办法,效率还是不行。Google发布的pubsubhubbub协议就是为了解决这个问题而提出的,是个20%工作时间的项目。 下面的简介翻译自项目主页。 (pubsubhubbub)是一个简单的、开放的、服务器对服务器的、基于web做hook(订阅)的发布/订阅协议,作为ATOM和RSS的扩展。 支持pubsubhubbub协议的服务器,在一个它们感兴趣的话题(feed URL)更新时,可以得到近乎实时的通知(通过webhook回调)。 协议大体上是这样:
协议本身是去中心化且自由的。没有任何公司处于控制的核心地位。任何人都可以运营一个hub、ping(发布)更新或者通过hub订阅更新。 作为起步,我们提供了一个hub的一个开源参考实现(协议中最难的部分),运行在GAE上,所有人都可以用(还要看某墙的脸色)。 |
|
|