We read the world wrong and say that it deceives us.
2011 - 04 - 21分享心得

2条评论
769 views

ESX挂载NAS存储

之前部署了几台Esx Server,通过VC进行集中控管,这几天需要挂载NAS存储,连上去看了看,发现他们已经用得很好了,甚至还部署出了“Server Cluster”,在云技术突出的今天,这种应用可能是最贴近企业的了。

好了,废话不多说,我们步入正题,挂载NAS存储有什么好处呢?好处之一,提高了整个虚拟机系统的HA特性(High Availability 高可用性),这样可以在某一台虚拟机/宿主机down掉的情况下自动迁移到其他的虚拟机/宿主机,可以最大程度提高业务连续工作的时间,此外,由于挂载了存储,使得宿主机的硬盘得到了解放,甚至可以做到unlimited~~但是如果把所有的虚拟机都放在存储上,一旦存储出现问题,那造成的影响也是灾难性的,所以,如果对此有较高要求的公司或企业,可以搞NAS热备,哈哈哈 那成本,就不在本文讨论范围之列了吧 :) 继续阅读 »

人人网竟然也在电子邮件领域插了一只脚

今天忽然想起淫淫网网的个性域名还是用的以前我的真实姓名的拼音,觉得想要改成Kaisir这样比较统一,嘿嘿,于是就兴冲冲的跑到淫淫网去改。

就说Kaisir我观察细致嘛~~这一改不要紧,意外的发现了这样的一行小字:

咦,这里竟然有一个个性邮箱,是以@renren.com这个域结尾的,难道人人网进军E-mail领域了?试探性的访问了http://mail.renren.com,结果页面跳转到了http://msg.renren.com这才意识到,果然淫淫网提供了邮件服务,过了一会儿,收到一封站内信,提示我已经开通了淫淫网的邮件系统,不过这个邮件系统很特别,只接收通讯录里的好友邮件以及你通过淫淫网发送出去的邮件,说是这样是为了屏蔽垃圾邮件……汗死,那不认识的人完全不能用这个Mail咯,哈哈 可能淫淫网关注的是熟人之间的联络吧:)

这个邮件系统速度还可以,与Gmail做了测试,之间确实是立刻就送达了,而且这个域还比较新,没被Gmail判别到垃圾邮件中去:)

无聊之中发现了淫淫网的一个小功能,随手一写,虽然不玩淫淫了,但还是跟部落格同步滴,还是欢迎大家没事来踩踩~~

我滴人人网地址:http://www.renren.com/kaisir

我滴部落格地址:http://Kaisir.Com

2011 - 04 - 14分享心得

没有评论
314 views

使用NVelocity出现的一则问题

这几天在做一款开源SNS的二次开发,这款基于.Net的SNS使用了Java平台上广泛使用的Velocity模板引擎的.Net版(看着有点像绕口令 哈哈),不过在调试的过程中,发现自己的含有中文部分的html代码全变成了乱码,第一反应就是编码不对,查看编码为Utf-8,而开源SNS中使用的编码也是utf-8,很无奈,打开那个SNS中自带的一个模板,另存时看了下,发现他保存的格式为“带签名的utf-8”把自己写的模板另存为“带签名的utf-8”,一切正常!

小知识:UTF-8与UTF-8带签名的区别
当带签名的UTF-8编码内容被浏览器解析时,浏览器直接根据签名即可判断出使用UTF-8编码来进行解析,当不带签名时,浏览器会根据内容的编码来进行判别。简而言之,带签名的将更容易被浏览器以正确的编码方式进行解析。(来源:Lucky的部落格

补充内容:
1)php UTF8 文件的签名问题
2)识别不带BOM(无签名)的UTF-8文件

自动词法分析器,LEX

编译原理作业——编制一个词法分析器。

显然做这个作业有两种途径,
1)自己编
2)google+biadu+others.

昨天Simon童鞋给我说他们让搞lex,好吧那我也正好凑凑热闹,嘿嘿。结果别说,还让我整出来了,lex简单应用语法还是很简单的,附上我的lex源程序,kaisir.l
(我这个wp的代码高亮不支持lex,大家凑合着看吧  我懒……)

%{
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
int lineno=1;
%}
letter [A-Z,a-z]
digit [0-9]
id ({letter}|_)({letter}|{digit}|_)*
error_id ({digit})+({letter})+
num {digit}+
whitespace [\t]+
enter [\n]+
%%
"int"|"if"|"else"|"return"|"void"|"while" {Upper(yytext,yyleng);
printf("%d 行  ",lineno);
printf("%s	reserved word\n",yytext);
}
{num} {
printf("%d 行  ",lineno);
printf("%s	NUM\n",yytext);
}
","|";"|"("|")"|"+"|"-"|"*"|"/"|"=="|"<="|">="|"!="|"=" {printf("%d 行  ",lineno);
printf("%s	special symbol\n",yytext);
}
{id} {printf("%d 行  ",lineno);
printf("%s	ID\n",yytext);
}
{error_id} {printf("%d 行  ",lineno);
printf("error:	%s\n",yytext);
}
{whitespace} {
}
{enter} {lineno++;
}
%%
Upper(char *s,int l){
int i;
for(i=0;i<l;i++)
{s[i]=toupper(s[i]);}
}
//Main
main(void)
{
  char filename[400];
  printf("file name:");
  scanf("%s",&filename);
  yyin=fopen(filename,"r");
  printf("Starting..\n");
  return yylex();
}

在ubuntu下使用

flex kaisir.l

顺利通过,之后使用gcc对flex生存的lex.yy.c进行编译,结果报错如下:

kaisir@Kaisir-ubuntu:~$ gcc -g lex.yy.c -o a.out
test.txt: In function 鈓ain?
test.txt:49: warning: format ?s?expects type 鈉har *? but argument 2 has type 鈉har (*)[400]?
/tmp/ccmK1ARZ.o: In function `yylex’:
/home/kaisir/lex.yy.c:902: undefined reference to `yywrap’
/tmp/ccmK1ARZ.o: In function `input’:
/home/kaisir/lex.yy.c:1237: undefined reference to `yywrap’
collect2: ld returned 1 exit status

大体看了下说是yylex这个函数找不到,baidu了下,编译的时候增加参数“–lfl” 顺利编译通过,写了个Test.C进行词法分析,No Problem!

kaisir@Kaisir-ubuntu:~$ ./a.out hellolex.c
file name:hellolex.c
Starting..
1 行  VOID      reserved word
1 行  main     ID
1 行  ( special symbol
1 行  ) special symbol
{3 行  INT      reserved word
3 行  a        ID
3 行  ; special symbol
4 行  a ID
4 行  = special symbol
4 行  10        NUM
4 行  ; special symbol
5 行  printf    ID
5 行  ( special symbol
5 行  a ID
5 行  ) special symbol
5 行  ; special symbol
}

svn.kaisir.com 上线咯

这学期开了软件工程课程,正好又看了关于subversion的架设的帖子,加上Google Code有时候无法访问,就想到了自己搭建一个SVN服务器,由于开放新的端口有诸多不便,于是,便搭建了基于Nginx+Apache+Subversion的SVN服务器:)

之前的时候,Kaisir也搭建过SVN服务器,不过之前由于种种原因,没有将SVN好好的利用起来,久而久之,也便仍在一边不管了,现在体会到SVN的种种好处,于是,便把它又拿了起来~~

因为只有80口是对外访问的,而SVN默认需要的端口没法从防火墙放出来,于是我查阅资料,搭建了WebDev的SVN,试用下来,感觉还不错 :)现在我的SVN服务器由Nginx做前端,将域“svn.kaisir.com”的请求转发给后段的Apache服务器,再由Apache结合Subversion来实现WebDev : )

虽然这样做看起来很麻烦,但是有着诸多的好处:

1)安全性较高,对外只开放一个80口。
2)Nginx的高性能大大减轻了后端服务器的压力。
3)等等等 :)

至于搭建过程嘛,我就不写了,大家可以参考ubuntu的wiki,那是相当的详细啊!
http://wiki.ubuntu.org.cn/SubVersion

这里有几个地方待我啰嗦下:
1)如果出现

Can't open '/home/svn/myproject/db/txn-current-lock': Permission denied

那说明你建立的仓库没有给予合适的权限或用户组,具体可以执行:

$ ls -l /home/svn/myproject/db/txn-current-lock
-rw-rwSr-- 1 root subversion  0  2009-06-18  15:33  txn-current-lock

如果没有像上面那行显示的那样,(“-rw-rwSr– 1 root subversion ”)就说明权限有问题,需要执行:

$ sudo chmod -R g+rws myproject
$ sudo chown -R root:subversion myproject

2)如果你想要同时管理多个项目,只需要再建立一个仓库,之后修改“/etc/apache2/mods-available/dav_svn.conf”文件再增加一组<location></location>字段就好:)

2011 - 04 - 02胡思乱想

7条评论
311 views
返回顶部