Friday, September 26, 2008
铁齿李肇星这样向美国人解释西藏,当场雷倒对方
十一出游完全攻略
Thursday, September 25, 2008
君子不重则不威
子曰:君子不重则不威;学则不固;主忠信;无友不如己者;过则勿惮改。
此章小弟以为应断为五句,其中比较有问题的是“学则不固”及“无友不如己者”两句。
君子不重则不威:君子如果不厚重就会失去威严。
学则不固:此固字基本上有两解:一为坚固,作此解时学则不固需与上一句君子不重则不威合为一句,合解为:人如果不厚重则无法固守所学。另一解如孔安国所主张:固为固陋,如此学则不固四字自成一句,解为如果努力向学则不会固执蔽陋。事实上固字在论语中共出现于9章,其中以作固陋解的占最多,共4章(含本章),仅1章解为坚固。进一步分析之,用来形容抽象意义者,皆以固陋解较为妥当。述而篇:“俭则固”;子罕篇:“毋固”;宪问篇:“疾固也”;用来形容具体意义者,才以坚固解。卫灵公篇:“今夫颛臾,固而近于费”。而本章的“学”亦属抽象意义,故小弟以为应以固陋解较好。
主忠信:行事以忠信为主。
无友不如己者:此句亦有多种解释,说来说去都有点看不懂。所以还是用小弟拙见来解:孔子此句与下一句过则勿惮改皆是以假设语法来勉励我们,即孔子在勉励我们,如果发现朋友的某些修为超过自己时,应要加倍努力、迎头赶上,以达无友不如己者之境界。
过则勿惮改:此亦是假设语,万一真有过错的话,则不能怕改正,应有勇气来改过。
最后再把小弟以为比较合宜的解释整理一下: 君子如果不厚重,就会失去威严;如果努力向学则不会固执蔽陋;行事必须以忠信为主;假若发现朋友的某些修为超过自己时,应要加倍努力迎头赶上,以达无友不如己者之境界;万一真有过错的话,则不能怕改正,应有勇气来改过。
头花的寓言
在她十八岁那年的圣诞节,妈妈破天荒给了她二十美元,让她用这个钱给自己买一份圣诞礼物。
她大喜过望,但是还是没有勇气从大路上大大方方地走过。她捏着这些钱,绕开人群,帖着墙角朝商店走。
一路上,她看见所有人的生活都比自己好,心中不无遗憾地想,我是这个小镇上最抬不起头来,最寒碜的女孩子。看到自己特别心仪的小伙子,她又酸溜溜地想,今天晚上盛大的舞会上,不知道谁会成为他的舞伴呢?
她就这样一路嘀嘀咕咕地躲着人群来到了商店,一进门,她感觉自己的眼睛都被刺痛了,她看到柜台上摆着一批特别漂亮的缎子做的头花发饰。
正当她站在那里发呆的时候,售货员对她说,小姑娘,你亚麻色的头发真漂亮!如果配上一朵淡绿色的头花,肯定美极了。她看到价签上写着十六美元,就说我买不起,还是不试了,但是这个售货员已经把头花戴到她的头上了。
售货员拿起镜子让她看看自己。当这个小姑娘看到镜子里的自己时,突然惊呆了,她从来没有见过自己这个样子,她觉得这朵头花使她变得象天使一样容光焕发!
她不再迟疑,掏出钱来买下了这朵头花。她的内心无比陶醉,无比激动,接过售货员找的四美元后,转身就往外跑,结果在一个刚进门的老绅士身上撞了一下。她仿佛听到那个老人在叫她,但是已经顾不上这些了,就一路飘飘忽忽地往前跑。
她不知不觉跑到了镇子最中间的大路上,她看到所有人投给她的都是惊讶的目光,她听到人们在议论说:没想到这个镇子上还有如此漂亮的女孩子,她是谁家的孩子呢?她又一次遇见自己暗暗喜欢的那个男孩,那个男孩竟然叫住她说:不知今天晚上我能不能荣幸地请你做我圣诞舞会的舞伴?
这个女孩简直心花怒放!她想我索性就奢侈一回,用剩下的四美元回去再给自己买点东西吧,于是她又一路飘飘地回到了商店。
刚一进门,那个老绅士就微笑着对她说:孩子,我就知道你会回来的,你刚才撞到我的时候,这个头花也掉下来了,我一直在等你来取。
Thursday, September 18, 2008
XAMPP是什么
XAMPP是什么―xampp for windows又是什么?
XAMPP是什么
XAMPP是什么?XAMPP 是一个功能全面的 AMPP (Apache、MySQL、PHP、Perl)软件包,这是 Linux 平台上可以使用的几种非商业 AMPP 中间件之一。采用这种紧密的集成,XAMPP 可以运行任何程序:从个人主页到功能全面的产品站点(虽然这仅仅用于开发目的;出于安全考虑,XAMPP 还不适于用在产品服务器上)。
基本的软件包
基本的软件包包括系统、编程和服务器软件:
Apache,著名的 Web 服务器
MySQL,一种杰出、免费的开源数据库
PHP,一种编程语言(在撰写本文时版本为 4.3.8 和 5.0.1)
Perl,一种编程语言
ProFTPD,一个 FTP 服务器
OpenSSL,可以支持安全套接字层
图形软件包
XAMPP 包括以下与图形有关的软件包:
GD,"Graphics Draw"库
libpng,官方的 PNG 参考实现库
libjpeg,官方的 JPEG 参考实现库
ncurses,字符图形库
数据库软件包
如果没有以下的数据库软件包,怎么还能叫集成软件呢?
gdbm,标准的 UNIX® dbm 库的 GNU 实现
SQLite,一个相当小的、无需任何配置的 SQL 数据库引擎
FreeTDS,一个数据库,让 UNIX 和 Linux 程序可以访问 Microsoft® SQL 和 Sybase 数据库
XML 软件包
为了开发 XML 程序,XAMPP 应该包含以下软件包:
expat,一个 XML 解析器库
Salbotron,一个 XML 工具包
libxml,一个 XML C 解析器和 GNOME 工具包
PHP 软件包
为了开发 PHP 程序,XAMPP 应该包括以下软件包:
PEAR,PHP 库
一个 pdf 类,可以使用 PHP 生成动态的 PDF 文档
TURCK MMCache,一个 PHP 性能增强器
其他软件包
最后,XAMPP 中包含了以下软件包来展示自己的强大功能:
zlib,一个压缩库
mod_perl,在 Apache 中嵌入了一个永久的 Perl 解释器
gettext,一个工具集,可以帮助 GNU 软件包生成多语言的消息
mcrypt,一个加密程序
Ming,一个 Flash (SWF) 输出库
Freetype2,一个软件前端引擎
IMAP C-Client,一个邮件编程 API
Friday, September 12, 2008
支持google adsense
这100美元很容易赚么?我不这么认为。我的所有的Blog(至少有6-7个,不同领域的内容)都放有Google Adsense广告,即使这样我的第一张100美元支票,仍旧让我等上了整整一年多才挣到。那我为什么还要放这个推介呢?那是因为即使没有任何收入,我也愿意向别人推荐Google Adsense广告。
是,我知道Google Adsense也有很多的问题,比如广告和内容的相关性没有像Google说的那么好,比如对发布商非常苛刻的用户协议(不能公布统计数字,不能作弊,否则就会被干掉),等等。然而,我还真没有更好的选择可以推荐给我的朋友们。我反对强制性的广告,强制弹窗广告严重影响用户体验,只能帮用户练习快速关闭新窗口的技能。我反对内容无关的广告,我正在看一篇感人至深的文章时,一个突然冒出来的性用品广告可能会让我感到非常不快。我反对晃眼睛的广告,他们让我精力严重分散,甚至经常逼得我把整个页面关掉了事儿。
这是一个恶性的循环。因为广告是用干扰用户的方式推出的,所以往往效果不好。商家发现投放广告效果不好后,只能加大投放力度,这样就更近一步的干扰了用户,同时也更加降低的广告的效果。在这样的恶性循环下,种种掩耳盗铃的手段出现了,用户不是不爱点这些广告么,我们把广告放在滚动条那里,叫你一拖滚动条就点到;用户不是看到广告就关闭么,我们做个假的关闭按钮,点了以后其实是打开广告,等等等等。页面上广告越来越多,页面对用户的实际价值也就会越来越低,这些做法不仅仅在损害用户和商家的利益,而且他们在摧毁这个价值体系。他们在降低网络广告的可信度和含金量,这样的恶性循环发展下去,就会毁掉整个网络广告行业。
但是我不反对广告。有很多消息我们是从广告知道的,比如现在正在进行Google Code Jam大赛的消息,我就是在Donews的广告发现的。当我想租房子的时候,我甚至会去注意平时鄙视的电线杆广告。广告本应是消费者和商家的桥梁,帮助消费者找到需要的产品和服务,帮助商家找到消费者。一个不需要的信息在你眼前乱晃的时候就是垃圾,一个广告在你需要他的时候冒出来,那就是有价值的信息了。
Google Adsense正是把广告信息化有序化的一种努力。让广告出现在相关的搜索结果的旁边,让广告出现在内容相关的文章旁边,这些保证了看到广告的人正式需要这些广告的人。Google Adsense这种内容相关的,非强制性的广告成为一种标准后,我们的互联网会更加有价值,用户也会更容易找到他需要的东西
Thursday, September 11, 2008
超聪明司机
警察:我能看一下你的驾驶执照吗?
司机:我没有驾照,因为第五次酒后开车,我的驾照被吊销了。
警察:我可以看看你车子的牌照吗?
司机:这不是我的车,是我偷人家的。
警察:车是偷的?
司机:对。但是让我想一想……我想起来了,车主的牌照……噢,放在仪表签盘上的小柜子里面了。当我把我的手枪放进小柜子里时,我看见过车牌照。
警察:仪表盘上的小柜子里有一把手枪?
司机:是的,先生。我杀了这部车的女主人,把她放进车后边的行李箱里,然后,把我的枪放进了那个小柜子里。
警察:你是说后备箱里有一具女尸?
司机:是的,先生。
听到这里,警察大惊,立刻向警察局呼叫求援。很快,这部汽车被一群警察包围了。一名警官走向司机,去处理这一紧急情况。
警官:先生,我能看一下你的驾照吗?
司机:当然可以,给。
警官:车是谁的?
司机:我的,警官先生。这是我的牌照。
警官:你能打开仪表盘上的小柜子上我看看里面的手枪吗?
司机:我可以打开小柜子,长官。但是,里面没有什么手枪。
小柜子打开了,里面果然没有手枪。
警官:我被告知你车尾的行李箱里藏着一具尸体。你不介意打开它吧?
司机:没问题。
行李箱打开了,没有发现尸体。
警官:我不明白这是怎么回事。那名让你停车的警察说,你没有驾照,车是偷的,小柜子里有一把手枪,后备箱里装着一具尸体,难道是我们这位警察谎报吗?
司机:那当然!他还谎报我超速行驶了呢!
幽默问答
答:古月。
问:我的头像牛逼吗?
答:像。
问:大家见过公鸡下蛋吗?
答:没有,不过我见过CCTV说真话。
问:我新买了一处庄园,有多大说出来吓死你��我开车绕一圈足足用了两个半小时!!!
答:嗯,以前我也有这么一辆破车~
问:每天对着单位那群白痴讲话让我觉得前途很渺茫……
答:幸福吧你~因为对牛弹琴并不可怕,可怕的是一群牛每天对着你弹琴!
问:你们女人大夏天的戴胸罩不热吗?
答:我们不戴你们会热……
问:和女友ML时,女友好像喊了另外一个男人的名字……
答:你日了别人的女人你还有什么不满意的!!!
问:为什么胡主席访问日本,日本方面比较冷淡,甚至机场连欢迎标语都没有挂?
答:怎么挂?热烈欢迎中国老朋友来日?
问:去年到黑龙江谈生意,晚上找了个俄罗斯小姐狂干俩钟头,你猜射完后她对我说什么?嘿嘿~
答:Are�you�ready?
问:利用东西方信息不对称,很多国外地摊货到中国都变成了奢侈品,那中国有啥垃圾牌子在国外冒充高档货?
答:章子怡。
问:从来都觉得蝎子精是整部《西游记》里最美的女人,当蝎子精把唐僧逼到床上撩拨时,我心下不住地为唐僧鼓劲:从了,从了,咱就从了吧!但关键时刻,可恶的悟空出现了……
答:嗯,八戒出现了,这次改蝎子精不从了……
问:老爸送我老公一根鹿鞭,大家说这是啥意思?还有照片的说~
答:这是老一辈对青年一代的鞭策啊~~~
问:怀疑老婆红杏出墙,但苦于没证据……
答:如果你没本事做陈冠希,那就做谢霆峰吧~
问:《神雕侠侣》里小龙女胳膊上的守宫砂是什么东西,干什么用的?
答:守宫砂是处女的桌面快捷方式。
问:单位人都说我长得像韩国人,大家说像吗?(上照片)
答:因为你长得像个棒子,单位同事又不好意思明说,所以只好说你长得像韩国人!
问:帅有个屁用��到头来还不是被卒吃掉!
答:帅有士陪,有炮打,有马骑,有车坐,有相暗恋……帅怎么不好?!!
问:夏天要刮腋毛,否则穿短袖会影响淑女形象的~那再弱弱地问一句,**用刮吗?
答:不刮扎嘴!
问:问个欠扁的问题,为什么跳水运动员入水时裤衩不会被冲掉?
答:跳水运动员平时训练主要有两大方面:1.压水花;2.夹裤衩。
问:是中国人就抵制《古惑仔》之类的烂片,因为这种烂片很容易就把小孩教坏!
答:晕~像楼主这样的看《鼹鼠的故事》都会去学盗墓……
问:大家知道,从六教东侧往北的路是个下坡,刚才我来六教时突然看见一可爱MM骑车直冲而下,并高呼"太爽了!"引来不少行人侧目。现在回想起来,MM甜美的声音真是让人回味无穷啊~
答:明天我就把这丫头的车座再装回去!
问:反腐真的就这么难吗?
答:你割割自己的JJ看难不难!!
问:请用一句话形容中国国家地震台。
答:事后诸葛亮,事前猪一样!
问:美军在伊拉克不能抽身说明美国是个负责任的国家!!
答:那我股票被套牢说明我是个负责任的中国股民??
问:为什么警察抓坏人时都要鸣警笛?难道不怕坏人老大远就听到跑了?
答:上级单位来检查之前一般都会事先通知下级单位的~
问:萨达姆就义前仍振臂高呼,虽听不懂他在喊什么,但还是由衷地敬佩这位领袖!
答:萨达姆咒道:"中国哪个狗日的说'让领导先走'的!!!"
问:据香港翡翠台报道,今晨阿娇在其母亲陪同下到圣约翰女子医院做过检查,医院诊断报告证明其处女膜未见器质性损伤,不信大家可以浏览翡翠台网站��我永远的阿娇。
答:妈的,你是在嘲笑陈冠希的JJ小吗?!!
flex 是什么
运用Flash是完全可以做到flex的效果的,为什么还需要flex呢?这里面有两个原因:1:为了迎合更多的developers(开发者)。Flash天生是为了designer(设计者)设计的,界面还有flash的动画概念和程序开发人员格格不入,为了吸引更多的jsp/asp/php等程序员,Macromedia推出了Flex,用非常简单的.mxml来描述界面给jsp/asp/php程序人员使用.(x/d)html非常相似,而且mxml更加规范化、标准化。
2,为了一个标准。大家一定听说过微软下一代系统longhorn,在longhorn推出的同时微软也会推出新的语言xaml,一种界面描述语言,与之相应的就是smart client和flex非常相似的东西。Mxml和Xaml的也很相似… …这是人机交互技术的进步的重要体现,即内部逻辑与外部界面交互相分离。
Flex和j2ee/.net其实没什么关系,Macromedia用java做出来个应用把flash的技术融合到J2EE里面,再用.net的技术做出来个.net应用把flash技术融合到.net里面去;应该说flex解决了J2EE里面和.net里面最繁琐的问题那就是web 客户端的问题。微软比较卑鄙,在ie里面built-in(事先安装好了)很多控件,可以被.net调用比如datagrid(gridview),java就没有办法啦,只能用最原始的html一个tag一个tag地print,真是头疼,还有客户端的javascript是最难调试的,不论java还是.net都束手无策。
3、与FLEX学习相关
[相关链接]
Adobe公司Flex主页:http://www.adobe.com/cn/products/flex/
ACAA教育(Adobe官方高级Flex & AIR富互联网应用开发培训):http://www.acaa.cn/
FlexExamples:http://blog.flexexamples.com/
Adobe - Flex Developer Center http://www.adobe.com/devnet/flex/?sdid=ZFCT
中文FlexExamples(上百个包含代码的Flex例子,主要是翻译的):http://blog.minidx.com
RIAShanghai:http://riashanghai.com
Flex中文社区:http://www.flexcoders.cn/
蓝色理想网站的Flex入门教程:http://www.blueidea.com/tech/multimedia/2004/2130.asp
一个不错的英文Flex资源列表收集站点:http://ntt.cc
关于Flex的Blog:http://www.k-zone.cn/zblog/
《Flex 3.0 RIA开发详解:基于ActionScript3.0实现》 黄曦 电子工业出版社 2008
《Flex与ActionScript编程》. 王睿. 机械工业出版社. 2008
xml文件过大
package searchRing.ring.util.<SPAN class=hilite1>xml</SPAN>BufferTool;
import java.io.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class <SPAN class=hilite1>XML</SPAN>BufferTool {
private static final int defaultLineCount = 10;
private static final int defaultMaxOutputSize = 50;
private static final Pattern elementPattern = Pattern.compile("<[a-zA-Z]+>");
private static final Pattern charSetPattern = Pattern.compile("<[?][[0-9a-zA-Z]|[\\s]|[=]|[\"]|[.]|[-]]+[?]>");
private StringBuffer <SPAN class=hilite1>xml</SPAN>ContentBuffer;
/* just used to store and output the data divided */
<SPAN class=hilite1>XML</SPAN>OutputBuffer <SPAN class=hilite1>xml</SPAN>Output;
private String charSetTitle = "";
private String rootElemetMark = "";
private String childElementMark = "";
InputStreamReader bufferedReader;
InputStream fileInputStream;
public <SPAN class=hilite1>XML</SPAN>BufferTool(String <SPAN class=hilite1>xml</SPAN>FilePath) {
this.<SPAN class=hilite1>xml</SPAN>ContentBuffer = new StringBuffer();
try {
this.fileInputStream = new FileInputStream(<SPAN class=hilite1>xml</SPAN>FilePath);
// bufferedReader = new InputStreamReader(fileInputStream, "UTF-8");
String charSet = getCharSet(<SPAN class=hilite1>xml</SPAN>FilePath);
if (charSet != null)
bufferedReader = new InputStreamReader(fileInputStream, charSet);
else
bufferedReader = new InputStreamReader(fileInputStream);
} catch (FileNotFoundException fe) {
fe.printStackTrace();
} catch (UnsupportedEncodingException uee) {
uee.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
try {
preparePaser();
} catch (IOException ie) {
ie.printStackTrace();
}
}
public String getCharSetTitle() {
return charSetTitle;
}
public String getRootElemetMark() {
return rootElemetMark;
}
private String getCharSet(String filePath) throws IOException {
char temp[] = new char[512];
FileInputStream tempInput = new FileInputStream(filePath);
InputStreamReader tempReader = new InputStreamReader(tempInput);
int i = tempReader.read(temp);
tempReader.close();
tempInput.close();
if (i < 0)
return null;
String tempStr = new String(temp);
Matcher m = charSetPattern.matcher(tempStr);
if (m.find()) {
String charSetStr = tempStr.substring(m.start(), m.end());
Pattern tempP = Pattern.compile("[\"][[0-9a-zA-Z]|[-]]+[\"]");
Matcher tempM = tempP.matcher(charSetStr);
if (tempM.find()) {
String charSet = charSetStr.substring(tempM.start(), tempM.end());
return charSet.substring(1, charSet.length() - 1);
}
}
return null;
}
private void preparePaser() throws IOException {
readSomeLine(defaultLineCount);
Matcher m = charSetPattern.matcher(<SPAN class=hilite1>xml</SPAN>ContentBuffer);
if (m.find()) {
this.charSetTitle = this.<SPAN class=hilite1>xml</SPAN>ContentBuffer.substring(m.start(), m.end());
this.<SPAN class=hilite1>xml</SPAN>ContentBuffer.delete(0, m.end());
}
m = elementPattern.matcher(<SPAN class=hilite1>xml</SPAN>ContentBuffer);
if (m.find()) {
this.rootElemetMark = this.<SPAN class=hilite1>xml</SPAN>ContentBuffer.substring(m.start(), m.end());
this.<SPAN class=hilite1>xml</SPAN>ContentBuffer.delete(0, m.end());
}
m = elementPattern.matcher(<SPAN class=hilite1>xml</SPAN>ContentBuffer);
if (m.find()) {
this.childElementMark = this.<SPAN class=hilite1>xml</SPAN>ContentBuffer.substring(m.start(), m.end());
}
this.<SPAN class=hilite1>xml</SPAN>Output = new <SPAN class=hilite1>XML</SPAN>OutputBuffer(this.childElementMark);
parserBuffer();
}
private int readSomeLine(int lineCount) throws IOException {
char buffer[] = new char[1024];
int i = 0;
int index = 0;
/* be careful of the sequence of the boolean caculation */
while (i++ < lineCount && (index = this.bufferedReader.read(buffer)) > 0) {
<SPAN class=hilite1>xml</SPAN>ContentBuffer.append(buffer, 0, index);
}
return index;
}
private void parserBuffer() {
int lastIndex = this.<SPAN class=hilite1>xml</SPAN>ContentBuffer.lastIndexOf(this.childElementMark);
if (lastIndex > 0) {
this.<SPAN class=hilite1>xml</SPAN>Output.append(this.<SPAN class=hilite1>xml</SPAN>ContentBuffer.substring(0, lastIndex));
this.<SPAN class=hilite1>xml</SPAN>ContentBuffer.delete(0, lastIndex);
}
}
public StringBuffer popDividedDataAfterParser() throws IOException {
while (this.<SPAN class=hilite1>xml</SPAN>Output.getItemCount() < defaultMaxOutputSize) {
int i = readSomeLine(defaultLineCount);
parserBuffer();
if (i < 0)
break;
}
if (this.<SPAN class=hilite1>xml</SPAN>Output.getItemCount() == 0)
return null;
StringBuffer returnSB = this.<SPAN class=hilite1>xml</SPAN>Output.get<SPAN class=hilite1>Xml</SPAN>Output();
this.<SPAN class=hilite1>xml</SPAN>Output.clearBuffer();
return returnSB.insert(0, this.rootElemetMark).append(this.rootElemetMark.replaceFirst("<", "</"));
}
public static void main(String args[]) throws Exception {
String str = "F:/ringInfo<SPAN class=hilite1>XML</SPAN>/ringTime.<SPAN class=hilite1>xml</SPAN>";
<SPAN class=hilite1>XML</SPAN>BufferTool <SPAN class=hilite1>xml</SPAN>b = new <SPAN class=hilite1>XML</SPAN>BufferTool(str);
StringBuffer s = <SPAN class=hilite1>xml</SPAN>b.popDividedDataAfterParser();
int i = 0;
Matcher m = Pattern.compile("<ring>").matcher(s);
while (m.find())
i++;
System.out.println(i);
System.out.println(s);
}
private static class <SPAN class=hilite1>XML</SPAN>OutputBuffer {
private StringBuffer <SPAN class=hilite1>xml</SPAN>Output;
private int itemCount;
private Pattern markPattern;
<SPAN class=hilite1>XML</SPAN>OutputBuffer(String markStr) {
this.markPattern = Pattern.compile(markStr);
<SPAN class=hilite1>xml</SPAN>Output = new StringBuffer();
itemCount = 0;
}
public void append(String str) {
if (str == null || "".equals(str))
return;
this.<SPAN class=hilite1>xml</SPAN>Output.append(str);
Matcher m = this.markPattern.matcher(str);
while (m.find())
this.itemCount++;
}
public void clearBuffer() {
<SPAN class=hilite1>xml</SPAN>Output = new StringBuffer();
this.itemCount = 0;
}
public StringBuffer get<SPAN class=hilite1>Xml</SPAN>Output() {
return <SPAN class=hilite1>xml</SPAN>Output;
}
public int getItemCount() {
return itemCount;
}
}
}