2008年04月21日

男A: hi,我这边有不少好电影,你要copy过去看看吗?

男B: 好啊。

男A: 操,不好意思,我忘记我已经删掉了,只剩下A片了。

男B: 没关系,A片也可以分享给我啊。

男A: 好,不过大部分是有码的。

女:还有有码的A片?我看过的都是无码的。

男A: 你连这都不知道?著名AV拍的几乎都是有码的。

女:有码的也叫A片吗?

男A: 当然!有码看脸蛋,无码看器官,你不知道吗?

女:你怎么经典话张嘴就来?

男A: 操,我这jb不是有文化嘛。

 

2008年04月16日

火炬银杏搜索的创始人之一(另一个是著名blogger tinyfool)和法人。由于他自由平等之精神,我们公司的风貌大体如下:

1.老板是司机。火炬为了节约公司开支,就用自己的车接送销售出去见客户,办事。

2.副总是打杂的。我们公司的副总是火炬的大学好友张君,销售superman,在多家公司从普通销售做到总经理。由于他是学弱电的,动手能力较强,所以公司的很多杂务,例如装电话,装电灯,甚至帮助公司女同事修自行车,都亲自动手。

3.老板打算做赌博庄家。我和余晟每天中午都要打星际,tinyfool想出来了一个坐庄的方式,对我们进行下注,他来抽水。

4.每日健身,踢毽子,跳绳。由于tinyfool较胖,所以我和陈慧戏言我们陪他踢毽子,是陪他健身,需要收费。

5.两位创始人以拌嘴为乐。

6.中午吃饭,主要八卦是火炬的恋爱生活。为了维护领导形象,我不得不建议以后尽量不和销售们一起吃饭。

2008年04月09日

http://www.bullogger.com/ 是个好网站,尤其是小花牛活跃的时候。

牛博上的人,至少从文字来说,都很牛叉。极品中的极品,就我个人看来,有以下几个人。

冯唐 老罗仿佛称他为中国文字第一人。冯唐运用文字的技巧,的确傲视群雄。他的文字就如完美的雕塑,既有线条,又有血肉,任何文章,除了一气读到尾,别无他法。

阿乙 我一直以为没有人能纯粹在文字上和冯唐看齐,直到读到了阿乙。如果说冯唐的文字华丽如盛唐,那么阿乙的文字就是如大宋般藏富于民。阿乙文字中任何一个角落,都很难挑出瑕疵来。

插一腿 读完插老的 忘忧会散仙,我想几乎没有人再会说自己聪明了。插老自己有多聪明呢?可以看他的文章里说的,他78年左右考上本科,之后他们中学连续几年连一个大专都没考上的。插老的文字里面通透着聪明人的大气与不屑。他深厚的古文底子,孕育出了那么多精彩的成人诗词。

2008年03月26日

1、 颛顼(中国上古五帝集团成员)就是耶稣。中国《山海经》研究会会长宫玉海出品。

(那么,女娲是不是圣母玛利亚呢?)

2、孙悟空是山东人。山东师范大学文学院杜贵晨出品。

(但是,孙悟空最多是山东猴嘛。)
  
3、《红楼梦》作者是个太监。作家隋邦森、隋海英出品。

(《红楼梦》暗藏许多清宫内幕;知道宫廷内幕最多的是太监;所以《红楼梦》的作者是太监。)

4、高尔夫起源于中国。兰州大学林洪宁出品。

(日你娘,我无话可说。)

转自牛博,宋石男

2008年03月06日

十个技巧 升级到Visual Studio 2008
2008.03.05  来自:infoq中文站 

升级到Visual Studio 2008,来个飞跃。如果您有任何先前版本的.NET Framework 3.5或Visual Studio 2008,那么这些软件都必须在安装Visual Studio 2008 RTM之前被卸载。由于Visual Studio 2008的解决方案文件和工程文
升级到Visual Studio 2008,来个飞跃。Visual Studio 2008最近发布了,开发者经常希望自己成为安装他们最青睐开发工具最新版本的第一人。但是,若在升级过程中做出了错误的选择的话,就会为之付出一些代价。由于Jon Galloway等人,确保了升级过程是一个平稳的过程,而且只有十步之遥。

1、首先,小心的卸载所有先前发布的相应软件和模块

这是最重要的步骤之一。如果您有任何先前版本的.NET Framework 3.5或Visual Studio 2008,那么这些软件都必须在安装Visual Studio 2008 RTM之前被卸载。在安装之前关闭一些相关的软件也是个不错的主意:

◆关闭所有的MS Office应用程序(如Outlook,Word等)

◆关闭Internet Explorer

◆关闭所有的windows资源管理器

◆关闭所有其它不需要打开的程序

以下是Scott Guthrie 提供的对先前发布版本的合适的卸载顺序,这些提到的软件可能有些您安装了而有些没有,只要确保如下的顺序即可:

◆移除“MSDN Library for Visual Studio 2008 Beta”

◆移除“Microsoft SQL Server Compact Edition 3.5”

◆移除“Microsoft SQL Server Compact Edition 3.5 Design Tools”

◆移除“Microsoft SQL Server Compact Edition 3.5 for Devices”

◆移除“Microsoft Visual Studio Performance Collection Tools”

◆移除“Windows Mobile 5.0 SDK R2 for Pocket PC”

◆移除“Windows Mobile 5.0 SDK R2 for Smartphone”

◆移除“Crystal Reports 2007”

◆移除“Visual Studio Asset System”

◆移除“Microsoft Visual Studio Web Authoring Component / Microsoft Web Designer Tools”

◆移除“Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System Runtime”

◆移除“Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System Runtime Language Pack” (只针对非英语版)

◆移除“Microsoft Visual Studio Tools for Office Runtime 3.0”

◆移除“Microsoft Document Explorer”

◆移除“Microsoft Document Explorer 2005 Language Pack” (只针对非英语版)

◆移除“Microsoft .NET Compact Framework 3.5”

◆移除“Microsoft .NET Compact Framework 2.0 SP1”

◆移除“.NET Framework 2.0 SDK”

◆移除“Microsoft Visual Studio Codename Orcas Remote Debugger”

◆移除“Microsoft Visual Studio 64bit Prerequisites Beta” (只针对64位平台)

◆移除“Microsoft .NET Framework 3.5"

2、只安装您真正会用到的部分

不要仅仅因为DVD上什么都有,就要把所有的东西都装上。您安装的软件越少,以后打的补丁就越少,其占用的磁盘空间也越少。

3、不要被前面的重启提示弄傻了

.NET Framework 3.5的安装程序会提示用户在安装的过程中间重启,不要理会它。所有的重启都要等到安装完Visual Studio 2008之后再执行。

4、如果您要用Team System,就安装Team System 2008 Team Explorer

如果您准备连接到Team Foundation服务器,那么您需要安装Team System 2008 Team Explorer,否则无法连接到Team Foundation服务器。

这篇文档告诉您如何从Team Foundation服务器安装介质(光盘,下载包等)得到Team Explorer,但是这是一个3GB的下载版本。最简单的方法是得到单独的Team Explorer安装版,这个安装版只有387MB。

5、安装之后,将您的IDE设置恢复到默认设置

如果IDE的设置在任何先前发布的版本中做了更改,它们都应该被恢复到默认设置。可以在命令行运行 devenv.com /ResetSettings 或者在Visual Studio 2008中点击菜单 Tools > Import and Export Settings… > Reset all settings

6、抓住这个时机改变您的Visual Studio主题

这是个很好的时机来修改主题。Visual Studio的主题系统允许开发者尝试一个新的主题,如果他们不喜欢,还可以改。我们推荐您选择一个使视觉更舒适的主题,特别是如果您每个星期要在IDE环境下工作很多个小时的话。

7、ASP.NET ListView中的Breaking changes (Breaking changes 意味着新的版本在这些地方将不再保证向前兼容,从而导致同样的代码在不同的版本中有不同的行为,或者旧的代码在新版本环境中不再支持)

Jon Galloway指出了这个非常重要的一点:

如果您使用先前发布的ASP.NET ListView写过任何代码,您需要升级您的标签。事实上这里只有一个真正的区别,这个区别会带来一些不同的影响:容器元素被asp: PlaceHolder控件代替了。先前的版本允许您使用任何 runat="server" 标记做为一个容器元素。我更喜欢RTM的行为-旧的方式有时候有点太神奇,它根据ID用子元素填满父元素。新的用法更加直接,而且这种用法使得 ListView中被标记的内容和被替代的内容一目了然。

具体而言,以前使用元素ItemContainer的地方,现在要用一个叫做ItemPlaceholder的占位符来代替。如果这样出错了,您会得到如下的出错信息:

An item placeholder must be specified on ListView ‘SampleListView′. Specify an item placeholder by setting a control’s ID property to “itemPlaceholder”. The item placeholder control must also specify runat=”server”.

8、LINQ-to-SQL 中的Breaking changes

任何先前版本的LINQ-to-SQL代码都需要被依照以下的说明更新。

(1)把 Add 和 AddAll 方法改成 InsertOnSubmit 和 InsertAllOnSubmit. 把 Remove 和 RemoveAll 改成 DeleteOnSubmit 和 DeleteAllOnSubmit.

(2)通过如下更改把 .dbml 文件的编码格式改为 utf-8

      <?xml version="1.0" encoding="utf-16"?>

修改为:

      <?xml version="1.0" encoding="utf-8"?>

(3)修改web.config中如下一行(注意版本号的区别):

        <add assembly="System.Data.DataSetExtensions, Version=2.0.0.0, Culture=neutral,  PublicKeyToken=B77A5C561934E089"/>

修改为:

<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

9、下载更新过的Microsoft Silverlight 1.1 Tools Alpha for Visual Studio 2008

装载Visual Studio 2008时这些工具不会自动准备好。所以如果要做与Silverlight 1.1相关的开发,就得自己把它们弄过来。

10、把您的解决方案都升级为Visual Studio 2008的格式

这是一个节省您很多时间的相当大的一个问题。由于Visual Studio 2008的解决方案文件和工程文件使用了一种新的格式,用Visual Studio 2008打开这些解决方案和工程会把它们升级。如果需要升级的工程很多,在命令行运行 devenv.com /Upgrade 命令可以加快升级速度。

这些技巧可以帮助开发者在初试Visual Studio 2008的时候一切顺利。更多有关Visual Studio 2008的信息可以在微软公司的 MSDN 网站和Scott Guthrie的blog上找到。

2008年02月21日

明清笔记上有个小故事:有一位自小出家的得道高僧快要圆寂了,对弟子说,这辈子没见过女人的下体,真是个遗憾。弟子花钱雇了一个妓女来向这位高僧展示下体,高僧看了,叹了口气,说,原来和尼姑的下面没有差别。

2008年01月08日

昨日失眠,回想起来,我到北京已然经历五个冬天了。

我是2003年深秋第一次到北京的,面试完,回苏州办理离职手续,第二次到北京,是11月8日,应该是立冬,那天很冷,我到北京后,马上换上了羽绒服。那时候在北大附中网校,福利不错,生活也简单。记得快到元旦公司年会的时候,大部分人已经不在办公室出现,而是借口“排练节目”去KTV公费唱歌。有一天下午编辑部的同事邀请我一起去,我说我不会唱歌,还是留在公司吧。于是我在办公室公然打游戏,有一个同事看到了,很惊讶我为什么这么明目张胆,我答曰:有人叫我去唱歌,证明我不用工作了,那我在办公室打游戏,也无可厚非。这就是我的“加菲猫逻辑”。

2004年的冬天,我已经认识了现在的女友。我还认识了一个叫做“大米”的有意思的朋友。那时候我,火炬,大米,大亮,刘涛,都还在网校。公司的元旦年会,记得是在九华山庄开的。我们用公司发的代金券,买了很多游戏币,边打游戏,边赌苹果机,第一次享受了“赌博”。那个冬天过去后,火炬就离开了网校。

2005年的冬天,伐善可陈。那时候我的脑子里大概只有wow和raid。幸好在沉迷游戏的同时,也保持着一份警觉,感觉公司不行了,对自己的发展很不利,是时候考虑离开了。

2006年的冬天。那一年,换了2次工作,经历了不少工作上的变故。从满怀憧憬的去一个美国公司,再高高兴兴的回到火炬的管理下,正打算好好干一番事业,他却因为一些原因离开了donews,我,无所适从,只能再考虑跳槽。

2007年的冬天,我又一次成为了火炬的员工,这一次他没法离开了,因为是他自己的公司。我在经历了几年工作的起伏后,终于又找到了工作的激情和热情。公司的运营和发展状况都比较好,明年的冬天,会是一个初步收获的季节。

 

2007年11月13日

 

Nagios自身是不带任何功能的,要实现监控功能,我们必须安装插件(plugins),幸好,现在只要安装一个通用的plugin,就能实现大部分的

监控功能。
以下是安装plugin的步骤,一般在正常安装的时候都已经装上了。
wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.7.tar.gz
cd ~/downloads
tar xzf nagios-plugins-1.4.7.tar.gz
cd nagios-plugins-1.4.7
./configure –with-nagios-user=nagios –with-nagios-group=nagios
make
make install

这时候在/usr/local/nagios/下就会出现一个libexec文件夹,有很多自带的功能程序。我们自定义的功能,也可以放在这个文件夹下面。
较常用的有chekc_http,check_disk,等等,如果我们想了解其用法,可以用./check_http -h的命令。
这一次我要实现的功能,是监控某个进程是否还存在,如果不存在了,就执行某个shell,使之启动。在此处,要用到check_procs和

eventhandler,与eventhandler例子中的检查apache的状态略有不同,故记录下来,与有需要的朋友分享。

首先,因为check_procs要去检查进程,所以我们要给他root的权限。
chown root check_procs
chmod 555 check_procs
接下来运行:
./check_procs
(应该显示为: PROCS OK: XX processes)
我用ps aux|grep cypress,查找我想监控的进程,里面带有/usr/local/cypressTemp/javasdk/bin/java

再用./check_procs -h查看check_procs的用法。以下是几个sampler。
Examples:
 check_procs -w 2:2 -c 2:1024 -C portsentry
  Warning if not two processes with command name portsentry.
  Critical if < 2 or > 1024 processes

 check_procs -w 10 -a ‘/usr/local/bin/perl’ -u root
  Warning alert if > 10 processes with command arguments containing
  ‘/usr/local/bin/perl’ and owned by root

 check_procs -w 50000 -c 100000 –metric=VSZ
  Alert if vsz of any processes over 50K or 100K

 check_procs -w 10 -c 20 –metric=CPU
  Alert if cpu of any processes over 10%% or 20%%

根据以上的sampler,我就能写出service和command了。
define service{
        host_name               localhost
        service_description     check-cypress
        check_command           check_cypress
        event_handler       restart-cypress
        max_check_attempts      4
        normal_check_interval   3
        retry_check_interval    2
        check_period            24×7
       }
define command{
        command_name    check_cypress
        command_line    $USER1$/check_procs -c 1:1 -a ‘/usr/local/cypressTemp/javasdk/bin/java’
        }
check_procs -c 1:1 -a ‘/usr/local/cypressTemp/javasdk/bin/java’的意思为:如果进程中没有一条包

含’/usr/local/cypressTemp/javasdk/bin/java’,则状态为critical(c)。
因为我们还需要对这个做出动作,所以要用到eventhandler。
define command{
    command_name    restart-cypress
    command_line    /usr/local/nagios/libexec/eventhandlers/restart-cypress  $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$
    }
然后去/usr/local/nagios/libexec/eventhandlers/ 编辑restart-cypress 文件,如下:

#!/bin/sh
#
# Event handler script for restarting the cypress server on the local machine
#
#

# What state is the search service in?
/usr/bin/printf "We enter" >> /usr/local/nagios/var/Cypress.log
yourdate=`date   +%Y%m%d%H%M%S`
case "$1" in
OK)
         
    # The service just came back up, so don’t do anything…
    /usr/bin/printf "check OK $yourdate \n" >> /usr/local/nagios/var/Cypress.log
    ;;  
CRITICAL)
    # Aha!  The cypress service appears to have a problem – perhaps we should restart the server…
    /usr/bin/printf " The cypress service appears to have a problem $yourdate \n " >> /usr/local/nagios/var/Cypress.log
    /usr/local/cypressTemp/runsearch.sh
    ;;
esac
exit 0

以上的shell文件很简单,就是运行一个已经写好的shell脚本。这个例子很简单,如果学习过www.nagios.org上的eventhandler例子后,会非

常容易理解,我把完整的过程写出来,只是想提供一个实际的例子给各位朋友参考。

 

 

2007年11月08日

所有的安装配置里面,都说将cgi.cfg的use_authentication=0,据说这样能够访问全部的页面。事实上,这是一个偷懒的做法,而且在以后必将会更正。

我们会在web页面对一些设置进行更改,在nagios的机制中,都会通过nagios.cmd。而use_authentication=0,会disable external_command_file的使用,于是,所有更改都会提示authentication错误。

正确的做法,首先,将cgi.cfg的use_authentication=1,然后我们授权用户的权限。
authorized_for_system_information=*
authorized_for_configuration_information=*
authorized_for_system_commands=siemsen
authorized_for_all_services=*
authorized_for_all_hosts=*
authorized_for_all_service_commands=*
authorized_for_all_host_commands=*
*代表所有用户,也可以用逗号形式将用户逐一添入(推荐这种方法)。例如:
authorized_for_system_information=nagios,nagiosadmin,www-data,apacheuser

接着,要改变nagios.cmd所在目录/usr/local/nagios/var/rw的权限,命令如下。
chown nagios.nagiocmd /usr/local/nagios/var/rw
chmod u+rwx /usr/local/nagios/var/rw
chmod g+rwx /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw
最后重起nagios:
/etc/init.d/nagios restart
再去更新设置,就能成功了!

2007年11月06日

这个问题碰到的人应该不少,我在中文内容查找了一下,提问的人不少,但是几乎没有解决的。虽然还

是有点疑惑,至少,我现在配置的status map可以访问了,把我的经历写出来,和大家分享一下。

首先,可以进入/usr/local/nagios/sbin,
# ldd statusmap.cgi
在我这里显示的结果是,libgd.so.2 => not found
只要把这些notfound的文件补上了,就可以了。
google libgd.so.2,找到这个rpm的下载。
wget ftp://rpmfind.net/linux/sourceforge/l/lu/lua-gd/gd-2.0.33-1aei.i386.rpm
获取这个包,然后进行安装。
在ubuntu linux下,安装rpm可以采用以下方式。
sudo apt-get install alien
转换一个rpm包为deb
alien -d package-name.rpm

转换一个rpm包为deb并安装生成的包
alien -i package-name.rpm

完成之后,我以为可以访问了,但还是出错,再运行ldd statusmap.cgi,发现多了几个not found。
libXpm.so.4 => not found
libX11.so.6 => not found
libfontconfig.so.1 => not found

我又去google,找到下载。
wget http://down1.chinaunix.net/distfiles/libXpm-3.5.5.tar.bz2
tar xvjf libXpm-3.5.5.tar.bz2
./configure –prefix=/usr/local/libxml
make
make install

在别人的机器上是可以运行的,但是在我的服务器上,出现pkgconfig的错误,读了很多国外的论坛讨论,试了很多种方法,还是不能解决,难道这是不可解的?

无意之中,我找到了一个地址,http://packages.ubuntu.com/feisty/x11/x11-common
原来ubuntu已经有一个最新的package发布地址,任何package都能找到,而且是deb文件,安装方便。
所有的依赖关系也一目了然。(老手可别讥笑我,除了用vi编辑php文件,我几乎没用过linux)
在安装了几个deb之后,ldd statusmap.cgi已经不再有找不到的文件了。于是,我再次去访问status map,果然可以访问了!