[返回] [最新] [最热门] [最高评价]

用lisp开发博客客户端

用lisp开发博客客户端

Author:
Kevin Lynx

Date:
3.13.2011

最近一直在学习Lisp这门语言。回头一看,基本上接近1个月了。刚开始接触Lisp是因为看
了<Lisp本质>,然后我发现有很多人宗教般地忠诚这门语言,于是就来了兴趣。

当然并不是每次因为某篇写得很geek技术文章就去学习某个新的技术点。一个月时间对我来
说还是很珍贵了。但是Lisp绝
...

Kevin Lynx 2011-03-13 13:19 | 查看: 48201

为octopress每篇文章添加一个文章信息

当你的博客文章被转载时,你肯定希望转载者能添加一个原始地址。或者你的文章被各种RSS抓取器抓取时,你也希望能在明显的位置显示这个原始地址。使用octopress写博客时,可以通过插件来做这件事。最开始,我只是想单纯地添加这个“原始地址“,一番google未能找到现成的插件,所以只好动手。

话说编写octopress真不是件容易事,因为我实在没找到编写插件的文档。octopress基于jekyll
...

Kevin Lynx 2012-07-26 14:27 | 查看: 8433

P2P中DHT网络爬虫

DHT网络爬虫基于DHT网络构建了一个P2P资源搜索引擎。这个搜索引擎不但可以用于构建DHT网络中活跃的资源索引(活跃的资源意味着该网络中肯定有人至少持有该资源的部分数据),还可以分析出该网络中的热门分享资源。小虾不久前发布了一个这样的搜索引擎:磁力搜索。他也写博客对此稍作了介绍:写了个磁力搜索的网页 - 收录最近热门分享的资源。网络上其实也有其他人做了类似的应用:DHT monitoring,C
...

Kevin Lynx 2013-05-19 00:00 | 查看: 7652

Lisp一瞥:增强型变量Symbol

Lisp一瞥:增强型变量Symbol

Author:
Kevin Lynx

Date:
3.21.2011

Contact:
kevinlynx at gmail dot com

Note

本文描述的Lisp主要指Lisp的方言Common Lisp。

变量,是所有编程语言里都有的语法概念。在C/C++中,变量用于
...

Kevin Lynx 2011-03-22 11:33 | 查看: 6811

dhtcrawler2换用sphinx搜索

dhtcrawler2最开始使用mongodb自带的全文搜索引擎搜索资源。搜索一些短关键字时很容易导致erlang进程call timeout,也就是查询时间太长。对于像avi这种关键字,搜索时间长达十几秒。搜索的资源数量200万左右。这其中大部分资源只是对root文件名进行了索引,即对于多文件资源而言没有索引单个文件名。索引方式有部分资源是按照字符串子串的形式,没有拆词,非常占用存储空间;有部分
...

Kevin Lynx 2013-08-08 00:00 | 查看: 6391

ruby中的case...when语法

参考How to write a switch statement in Ruby?

其实用Rails写个业务逻辑不算复杂的app根本用不上ruby的很多高级语法,更别说<meta programming in ruby>中的东西了(凡是打上meta programming标签的都不是什么简单的东西,参考c++/lisp)。ruby中的case…when语句和c/c++中的sw
...

Kevin Lynx 2012-07-26 10:13 | 查看: 5876

图解分布式一致性协议Paxos

Paxos协议/算法是分布式系统中比较重要的协议,它有多重要呢?

<分布式系统的事务处理>:

Google Chubby的作者Mike Burrows说过这个世界上只有一种一致性算法,那就是Paxos,其它的算法都是残次品。

<大规模分布式存储系统>:

理解了这两个分布式协议之后(Paxos/2PC),学习其他分布式协议会变得相当容易。

学习Paxos算法有两部分:a) 算法
...

Kevin Lynx 2014-10-15 00:00 | 查看: 3782

逆向思路:破解飞秋群聊协议

题外

飞秋是一款局域网内的IM软件,界面类似QQ,实现上与飞鸽(IP message)有点渊源,免费,不开源。

公司大概两年前开始使用这款软件作为员工之间办公吹牛的工具。最近游戏玩得少,就想彻底换到linux下,

组内也有其他两人是llinux-er,不过悲剧的是换到linux下就无法收取飞秋群里的聊天信息了,不免寂寞。

所以,就想写个协议兼容的程序(或者说改个东西)来收取群信息。

&n
...

Kevin Lynx 2011-01-23 21:01 | 查看: 3299

分布式程序开发平台ICE概览

本文基于ICE Manual及相关文档就ICE的一些主要特性做一个概览,它不是一个tutorial,不是一个guid,更不是manual。

概览

ICE,Internet Communications Engine,按照官方介绍,是一个支持C++、.Net、Java、Python、Objective-C、Ruby、PHP及ActionScript等语言的分布式程序开发平台。按照我的理解,简单来
...

Kevin Lynx 2013-02-15 00:00 | 查看: 3095

Ruby应用几则(解析HTML、XMLRPC)

Ruby解析HTML

Ruby解析HTML(或XML)可以使用nokogiri。我的应用里需要查找HTML页面里的某个元素,结果发现实现方式非常简单,就像使用jquery一样。例如我要获取到octopress博客文章里的文章内容、文章标题、文章分类,就像这篇博客:

# get post title and content for an octopress post
def post_info(
...

Kevin Lynx 2012-08-09 14:26 | 查看: 3081

用Lisp开发博客系统(WordPress马甲)

4月份的时候基于nuclblog写过一个简单的博客系统,但是因为写得丑,代码耦合度高,又有很多硬编码。当然nuclblog本身就写得不怎么样,所以6月分的时候就用Lisp写了新版的ext-blog。支持自定义主题,套个马甲上去像模像样。

ext-blog是一个使用Common Lisp编写的博客系统。基于之前基于nuclblog修改的经验,新的ext-blog最大程度地将博客本身的逻辑与前台渲染
...

Kevin Lynx 2011-08-05 16:43 | 查看: 2936

基于protobuf的RPC实现

可以对照使用google protobuf RPC实现echo service一文看,细节本文不再描述。

google protobuf只负责消息的打包和解包,并不包含RPC的实现,但其包含了RPC的定义。假设有下面的RPC定义:

service MyService {
rpc Echo(EchoReqMsg) returns(EchoRespMsg)
}

那么要实
...

Kevin Lynx 2014-08-31 00:00 | 查看: 2787

...更多...