自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码农的理想国

用0和1去编织梦想

  • 博客(40)
  • 收藏
  • 关注

原创 Nutch中User Agent的问题

本人原创,转载请注明出处()。Apache Nutch 1.7版本抓取某个网站的时候出现错误提示:2013-11-25 15:23:37,793 INFO  api.HttpRobotRulesParser - Couldn't get robots.txt for http://www.xxx.com/: java.io.EOFException2013-11-2

2013-11-26 10:04:27 2792

原创 第一个Hadoop程序——Hello Hadoop

本人原创,转载请注明出处:

2013-10-16 09:38:05 2647

原创 CentOS 6.4环境下的Apache Nutch 1.7 + Solr 4.4.0安装笔记

本人原创,转载请注明出处:http://blog.csdn.net/panjunbiao/article/details/12171147Nutch安装参考文档:http://wiki.apache.org/nutch/NutchTutorial安装必要程序:yum updateyum list java* yum install java-1.7.0-openjdk-

2013-09-29 17:12:30 7101 2

原创 Drupal 7.23版本升级笔记

今天将尝试将Drupal网站从7.22升级到7.23,下面是升级笔记。1. 将网站设置为维护模式(在配置-开发中)2. 备份MySQL数据库mysqldump -uroot -p drupaldb > drupaldb-20130809-1450.sql3. 下载新版的Drupal内核并解压cd ~wget http://ftp.drup

2013-08-09 18:15:09 2240

原创 在阿里云的云服务器CentOS系统安装Drupal内容管理框架

转载请注明出处,作者博客地址:http://blog.csdn.net/panjunbiaoDrupal是一个用途广泛的通用型内容管理框架。在阿里云的云服务器上安装Drupal是十分轻松的,下面是我安装的笔记。前置条件是你在阿里云开通云服务器(最低69元每月),然后选择CentOS操作系统,这里就不详细介绍了。安装步骤如下:1. 安装MySQL数据库服务器yum

2013-08-09 12:55:41 3613 1

原创 SmartThings物联网平台简介

SmartThings是一个智能设备控制系统,它包括:SmartThings Cloud(云平台)、SmartThings Hub(网关)、SmartThings Mobile(手机客户端)以及各种关联的设备或服务。假设我们有这样一个控制场景:当大门打开,则开启客厅的电灯,并向主人发送一条短信。如何实现这一控制呢?首先我们需要一个开关传感器,当大门被打开的时候,传感器感应并将事件上

2013-07-23 17:23:54 4494

原创 Ninja Blocks物联网平台简介

Ninja Blocks是一个物联网控制平台,其平台架构包括硬件层、处理器层、软件层以及平台层,请看下图:最底层是硬件层,包括传感器(Sensors)和驱动器(Actuators),例如温度传感器、开关等,属于这一层。处理器层是Ninja Block,Ninja Block是一个物联网设备的网关,它是物联网设备(传感器、驱动器)与平台之间的通信桥梁,负责接收传感器事件和驱动Actu

2013-07-23 17:13:12 2039

原创 非确定有限状态自动机的构建(二)——将CharVal转换为NFA

保留版权,转载注明出处:潘军彪的个人博客(http://blog.csdn.net/panjunbiao)将上下文无关文法读入内存之后,可以将它转换成非确定有限状态自动机。当然,不是所有的上下文无关文法都能够转换成自动机的,前提条件是这个上下文无关文法能够与正则定义等价。因此,在进行转换之前,我们需要先挑选出上下文无关文法中符合正则定义。(参考博文http://blog.csdn.net/pa

2013-07-19 13:03:37 1828

原创 正则表达式与上下文无关文法

保留版权,转载需注明出处(潘军彪的CSDN博客http://blog.csdn.net/panjunbiao)正则表达式正则表达式在日常开发中时不时都会遇到,我们先来看看正则表达式( Regular Expression)的定义(参考龙书英文第2版121页):ε是一个正则表达式,它生成的语言L(ε)等价于{ε},即L(ε)={ε},就是一个空字符串如果a属于符号集Σ,那么a

2013-07-18 13:07:54 11434

原创 Unity 3D学习笔记(三)——关于脚本

在脚本中定义的类成员,如果是公共的话,在脚本与游戏对象绑定之后,是可以在Inspector中编辑的,例如下面这个脚本:using UnityEngine;using System.Collections;public class ScreenInfo : MonoBehaviour { public int screenWidth; public int screenHeight;

2013-07-17 16:13:53 1104

原创 非确定有限状态自动机的构建(一)——NFA的定义和实现

保留版权,转载需注明出处(http://blog.csdn.net/panjunbiao)。非确定有限状态自动机(Nondeterministic Finite Automata,NFA)由以下元素组成:一个有限的状态集合S一个输入符号集合Sigma,并且架设空字符epsilon不属于Sigma一个状态迁移函数,对于所给的每一个状态和每一个属于Sigma或{epsilon}的符号,输出

2013-07-17 15:16:59 15337 1

原创 我的游戏开发系列笔记(索引)

Unity3D学习笔记(一)——基本概念之场景(Scene)[2013年07月13日]

2013-07-13 16:49:38 981

原创 Unity学习笔记(二)——第一个Unity项目Hello Unity

在这一篇文章里,参照宣雨松的《Unity 3D游戏开发》第38页的例子,用C#写出我的第一个Unity项目 Hello Unity。第一步,新建项目:点击“Create Project”创建项目之后,我们看到项目中只有一个摄像机对象“Main Camera”。并且Unity为我们创建了一个未命名(untitled)的场景,点击“File -> Save Scen

2013-07-13 16:16:41 4864

原创 Unity学习笔记(一)——基本概念之场景(Scene)

场景,顾名思义就是我们在游戏中所看到的物品、建筑、人物、背景、声音、特效等,基本上和我们玩游戏时所看到的游戏“场景”是同一个概念。Unity 3D中,“场景”是一个视图,我们通过“场景”这个视图,来编辑、布置游戏中玩家所能见到的图像和声音。安装完并运行Unity 3D,会缺省打开一个AngryBots项目。我们在“Scene”视图中,就可以直接看到一个场景:这个场景中的物件,会

2013-07-13 11:16:05 11093

原创 开源啦!我的Compiler-Construction项目

前段时间的一些代码已经上传到GitHub,有兴趣的同学请移步https://github.com/panjunbiao/compiler-construction。这个项目刚刚起步,还达不到实用的程度,只是和大家分享、交流。前段时间写的一些文章,其中的代码全部都可以在这个项目中找到。

2013-07-08 15:21:49 1802 2

原创 到底什么是上下文无关文法?

在龙书Compilers - Principles, Techniques, & Tools英文版第2版42页中,提到上下文无关文法有以下的特点:一个终结符的有限集(A set of terminal symbols),构成文法的最基本的字符就是这个文法的终结符,例如一个能够产生个位数的文法规则digit --> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

2013-07-08 10:23:38 11287 1

原创 基于Predictive Parsing的ABNF语法分析器(十四)——RFC2234文法解析实战

现在开始,我们的解析器要进入实战阶段了,首先来看看,能不能直接分析ABNF文法本身呢?先把RFC2234上面关于自身的文法定义的片段copy下来,保存成文件,例如文件名RFC2234.Demo.1.txt ALPHA = %x41-5A / %x61-7A ; A-Z / a-z BIT = "0" / "1"

2013-07-02 17:32:38 1896 1

原创 基于Predictive Parsing的ABNF语法分析器(十三)——rulelist、rule、rulename、define-as和elements

我们来看看rulelist,它是整个ABNF文法的入口,就是说一个ABNF文法就是一个规则列表rulelist。一个rulelist由若干个rule规则组成,每个rule由规则名rulename、定义方式define-as和元素elements构成。先来看解析代码:/* This file is one of the component a Context-free Gramm

2013-06-19 13:04:41 2163

原创 我的编译原理系列笔记(索引)

基于Predictive Parsing的ABNF文法分析器手工打造一个自顶向下、递归的ABNF文法分析器。ABNF文法分析器(十三)——rulelist、rule、rulename、define-as和elementsABNF文法分析器(十二)——alternation、concatenation、group和optionABNF文法分析器(十一)——AbnfParser文法

2013-06-19 00:17:14 1693 3

原创 基于Predictive Parsing的ABNF语法分析器(十二)——alternation、concatenation、group和option

今天一鼓作气再写多点东西吧,这个题目差不多接近尾声了。来看看alternation、concatenation、group和option的解析代码:/* This file is one of the component a Context-free Grammar Parser Generator, which accept a piece of text as the

2013-06-18 13:29:11 1426

原创 基于Predictive Parsing的ABNF语法分析器(十一)——AbnfParser文法解析器之重复文法(repetition)

今天写的是关于重复文法的解析,ABNF和BNF相比,一个明显的差异就是引入了重复语法,使得我们可以方便的让一个文法元素重复若干次。例如30"B"表示30个字母B,30*60表示最少30个,最多60个字母B,等等。先来看看解析部分的代码:/* This file is one of the component a Context-free Grammar Parser Gen

2013-06-18 11:50:25 1844

原创 基于Predictive Parsing的ABNF语法分析器(十)——AbnfParser文法解析器之数值类型(num-val)

ANBF语法中的数值类型有3种:二进制、十进制和十六进制,可以是一个以点号分隔的数列,也可以是一个数值的范围。例如,%d11.22.33.44.55表示五个有次序的十进制数字“11、22、33、44、55”,而%x80-ff表示一个字节,这个字节的数值可以是在0x80至0xff之间。我把以点号分隔的数列定义为NumVal,把范围类型的数值定义为RangedNumVal。这两个类实现了Eleme

2013-06-17 13:17:45 1499

原创 基于Predictive Parsing的ABNF语法分析器(九)——AbnfParser文法解析器之带星号的情形(c-wsp和comment)

直接上代码吧,都写到注释里面了。/* This file is one of the component a Context-free Grammar Parser Generator, which accept a piece of text as the input, and generates a parser for the inputted context

2013-06-14 12:16:47 1609

原创 基于Predictive Parsing的ABNF语法分析器(八)——AbnfParser文法解析器之带星号的情形(如char-val, prose-val)

带星号*表示重复的次数,例如*A表示A可以重复0至任意多次,*3A表示A可以重复0次、1次、2次或3次,4*A表示A至少要重复4次。我们先来看最简单的情形*A,ABNF的语法定义中char-val和prose-val都属于这种。/* This file is one of the component a Context-free Grammar Parser Generator,

2013-06-13 17:16:30 1445

原创 基于Predictive Parsing的ABNF语法分析器(七)——AbnfParser文法解析器之多个选项的情形(如WSP、c-nl和element)

现在来看看对于产生式有多个选项的情形,例如WSP可以是空格SP或者跳格HTAB。对于这种情况,一般是向前看一个字符,根据这个字符来选择产生式。当然,如果两个产生式的起始字符都一样,那么只向前看一个字符就不够了,这种情况下需要向前看2个或者更多。WSP、c-nl和element的文法解析程序:/* This file is one of the component a Conte

2013-06-09 13:19:42 1642

原创 基于Predictive Parsing的ABNF语法分析器(六)——AbnfParser文法解析器之多个符号连接的情形(如rule和CRLF)

基于预测的文法分析器,一个明显的特点就是将非终结符定义为解析函数(方法),当非终结符号可以派生为其他非终结符号时,在解析函数中递归调用即可。这种方法的一个缺点,是难以处理需要回溯的情形,后面我们再详细分析。上次我们研究了诸如CR、LF、HTAB等单个字符的解析,这一篇来看看稍微复杂一点的多个符号连接的情形,包括CRLF和RULE两个符号。/* This file is one of the

2013-06-09 12:11:32 1448

原创 基于Predictive Parsing的ABNF语法分析器(五)——AbnfParser文法解析器之单字符的情形(如HTAB、LF、CR、SP)

先来看看AbnfParser类如何对ABNF文法中最简单的一些单字节符号如何进行解析,这些单字节符号包括跳格、换行、回车和空格:/* This file is one of the component a Context-free Grammar Parser Generator, which accept a piece of text as the input, and g

2013-06-08 15:26:47 1729

原创 基于Predictive Parsing的ABNF语法分析器(四)——准备单元测试代码

单元测试的重要性是不言而喻的,对于ABNF的例子来说,通过单元测试除了可以发现程序的BUG之外,还可以发现预测解析器能够支持哪些情况下的文法,以及那些情况下解析器无能为力(所谓FEATURE,嘿嘿)。我在这个项目中使用JUnit来做单元测试,先来看一段最简单的测试代码:/* This file is one of the component a Context-free Gra

2013-06-07 16:56:44 1811

原创 基于Predictive Parsing的ABNF语法分析器(三)——ABNF语法解析器的基本框架

前面说过,一个能够识别ABNF文法并且自动构造ABNF文法解析器的生成器(parser generator),它首先要能够识别ABNF文法,即把ABNF读入内存并结构化之后,才能进行后续的生成解析器的步骤。我把这个读入ABNF文法的模块称为AbnfParser类。下面先来看看这个类的基本结构:/* This file is one of the component a Contex

2013-06-06 15:14:53 2993

原创 基于Predictive Parsing的ABNF语法分析器(二)——ABNF语法元素的类定义

下面根据ABNF的语法定义,逐条来定义ANBF语法元素类:(一)首先来看rulelist:rulelist = 1*( rule / (*c-wsp c-nl) )rulelist(规则列表)是ABNF语法的最顶层的符号,也就说一份符合ABNF规定的文法,它就是一个rulelist。rulelist至少由一个rule(规则)组成,在Java语言中,我们直接使用List来定

2013-06-06 13:30:08 1905

原创 基于Predictive Parsing的ABNF语法分析器(一)——ABNF语法介绍

最近一直在做Session Initiation Protocol (SIP)协议方面的开发,SIP在电信VoIP领域应用非常广泛,是一个基于文本语法的协议。SIP的语法规范是使用ABNF来定义的。对SIP语法有兴趣的同学请移步其Augmented BNF for the SIP Protocol章节。Augmented BNF for Syntax Specifications: ABNF本

2013-06-06 10:33:34 3588

原创 关于开源+商业双授权软件项目的一知半解

收集了一些开源+商业双授权的软件项目:原始表格请打开我的网上文档:双重授权如果一个项目采用了GPL授权,那么所有对该项目进行的修改、调用,在重新发布的时候都必须使用GPL授权。从这一角度来看,GPL授权是对开发者有较强保护的:防止你的项目被用于闭源的项目。但GPL也是一个双刃剑,如果你想同时支持GPL和商业授权,那么必须得到该开源项目所有贡献者的同意。因此,如果你是唯一的贡献者,开

2013-06-05 11:39:23 2019

原创 eXosip2的初始化

根据eXosip文档写的,不过不知道为什么编译不通过,暂时没有时间去处理了,先把代码保存在这里。哪位同学看出问题的麻烦告知,谢谢啦。#include #include int main(int argc, char *argv[]) { eXosip_t *ctx; int i; int port=5060; TRACE_INITIALIZE (6, NULL);

2013-05-31 23:04:39 1768

原创 SIP协议开发随笔-DFA希望的曙光

断断续续数个月的编码,终于把SIP的ABNF语法转换为NFA了(未经任何优化,大约100万个状态),然后NFA到DFA正在转换中,i7-2600K跑了一个多小时,现在的marked DStates大约43000个,unmarked DState大约29000个,按常识DFA的状态数会比NFA更多!额滴神啊,什么时候能够构建完DFA啊。跑到明天还没跑完的话,就老老实实补完一些单元测试的内容,也许还要

2013-05-27 20:59:13 1687 3

原创 PJSIP学习笔记——PJSUA层发起呼叫的主要流程

在上一篇学习笔记从simple_pjsua.c示例程序了解PJSUA-LIB的基本使用流程中,使用了PJSUA层的pjsua_call_make_call来发起一个呼叫,那么这个发起呼叫的流程是怎样的呢?先来看看这个函数:/* * Make outgoing call to the specified URI using the specified account. */PJ_D

2013-05-21 09:59:34 7913 1

原创 在MAC OS X编译eXosip不成功的问题解决

下载eXosip之后,执行./configure成功,执行make的时候出错:Making all in src/bin/sh ../libtool --tag=CC --mode=link gcc -pedantic -DENABLE_DEBUG -g -DENABLE_TRACE -g -g -version-info 10:0:0 -no-undefined -o lib

2013-05-17 16:24:34 2518 1

原创 PJSIP学习笔记——从simple_pjsua.c示例程序了解PJSUA-LIB的基本使用流程

要了解pjsip的使用,simple_pjsua.c是一个很好的例子,虽然代码只有短短的172行,却展示了pjsua-lib层的完整使用流程、注册流程和基本呼叫流程。下面是学习过程中整理的simple_pjsua.c中的main函数主要流程:先来看看pjsip-apps/src/samples/simple_pjsua.c的main函数/* * main() * * ar

2013-04-10 17:32:33 12852 1

原创 用Delphi的TIdHttp控件发起POST请求和Java的Servlet响应

使用Delphi的TIdHttp控件发起一个POST请求很简单,定义一个TStringList实例,往上面添加参数就行:procedure TForm1.Button1Click(Sender: TObject);var  HttpClient: TIdHttp;  ParamList: TStringList;begin  HttpClient := TIdHttp.Cr

2013-02-26 23:42:03 10974 9

原创 欣赏一下iPhone 4

原视频网址:http://www.apple.com.cn/iphone/features.html#design-videoiPhone 4出来了,iPhone依旧是王者啊,Android要加油了。总的来说iPhone 4有如下亮点1. 超高分辨率:326PPI,超越人眼的分辨能力2. 可视电话3. 高清摄像4. 极端先进的科技和工艺Apple不仅产品做得好,产品推介做的也十分完美。看Apple产品的视频简直是一种享受,磁性的声音,美妙的音乐,梦幻的产品,完美的呈现。用愉悦的心情来欣赏这部不朽的作品吧

2010-06-09 21:22:00 1217

原创 HTML5学习笔记--2010.01.20--001

 虽然传说HTML5要2022年才能获得W3C的推荐,不过提前学习总不会有坏处的,俗话说早起的鸟儿有虫吃嘛。而且没有看过HTML4的规范文档,这次系统的学习一下HTML5,就当是补课吧。原文网址http://www.w3.org/TR/html5/introduction.html,刚开始看所以没什么心得,先写些摘要。  HTML5规范文档有些什么内容?它描述新版本

2010-01-20 23:56:00 1017

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除