fckeditor用javascript创建(结合ajax)

首先介绍如何用javascript创建fckeditor

//————————————————————————————————–

第一在头部有个引用:

CODE:

<script type="text/javascript" src="/FCKeditor/fckeditor.js"></script>

加入创建代码(创建的代码有多种形式)
第一种创建模式: 直接创建

CODE:
<script type="text/javascript">
var oFCKeditor = new FCKeditor(‘FCKeditor1’);
oFCKeditor.BasePath = "/FCKeditor/";
oFCKeditor.Create();
</script>

第二种创建模式: 替换textarea

CODE:
<script type="text/javascript">
window.onload = function()
{
var oFCKeditor = new FCKeditor( ‘MyTextarea’ ) ;
oFCKeditor.BasePath = "/FCKeditor/" ;
oFCKeditor.ReplaceTextarea() ;
}
</script>
<textarea id="MyTextarea" name="MyTextarea">This is <b>the</b> initial value.</textarea>

在对于替换多个textArea时可以使用如下方法

CODE:
<html>
<head>
<title>Testing ReplaceAll()</title>

<script type="text/javascript" src="/FCKeditor/fckeditor.js"></script>

<script type="text/javascript">
<!–
function ReplaceAllTextareas() {
// replace all of the textareas
var allTextAreas = document.getElementsByTagName("textarea");
for (var i=0; i < allTextAreas.length; i++) {
var oFCKeditor = new FCKeditor( allTextAreas.name ) ;
oFCKeditor.BasePath = "/FCKeditor/" ;
oFCKeditor.ReplaceTextarea() ;
}
}
// –>
</script>

</head>

<body onLoad="javascript: ReplaceAllTextareas()">

<form>
<input type="checkbox" name="bobby" /> bobby <br />
<input type="checkbox" name="sue" /> sue <br />

Summary:
<textarea name="summary" rows="4" cols="80"> here is the summary </textarea>
Overview:
<textarea name="overview" rows="10" cols="80"> here is the overview </textarea>
Detials:
<textarea name="details" rows="60" cols="80"> here are teh details </textarea>

<input type="submit" name="sue" /> <br />
<input />
</form>

</body>
</html>

方法说明:

oFCKeditor.Width = 400 ; // 400 pixels

oFCKeditor.Width = "80%" ; // 80 percent

oFCKeditor.Height = 400 ; // 400 pixels

oFCKeditor.ToolbarSet = "MyToolbar" ;

oFCKeditor.Value = "<h1>Testing</h1>This is a <b>sample</b>." ;

oFCKeditor.BasePath = "/Components/FCKeditor/" ;

oFCKeditor.CheckBrowser = true ; //检查浏览器兼容性

oFCKeditor.DisplayErrors = false ; //转义editor显示错误信息

结合ajax使用fckeditor

//————————————————————————————————–

应用于ajax的时候可以考虑通过自带的例子sample08.html里面的函数GetContents结合使用

CODE:
function GetContents(fck)
{
        // Get the editor instance that we want to interact with.
        var oEditor = FCKeditorAPI.GetInstance(fck) ;

        // Get the editor contents in XHTML.
        return oEditor.GetXHTML( true )  ;                // "true" 表示执行格式化
}

url处理:

CODE:
fckeditor_value ="fckeditor_value="+encodeURIComponent(GetContents("MyFCKeditor")) //通过 encodeURIComponent的javascript函数处理掉传参数里面出现各种不符字符


获取fckeditor里面的参数

提交:(这里使用的是prototype)

CODE:
new Ajax.Request("magsee.php",{method: ‘post’,parameters:fckeditor_value,onComplete:success_vote});

结果的获取magsee.php

CODE:
$_POST[‘fckeditor_value’]

先序序列和中序序列可唯一确定一棵二叉树

对结点个数n用第二数学归纳法。
n=1,成立。嘿嘿
假设n=1,2,3…k都成立,n=k+1时
pre[1]是根,假设pre[1]在in的下标是i,则in[1..i-1]是左子树,in[i+1..k]是右子树
左子树的结点在pre中应该连续且在右子树的前面,检查一下。不符合就无解。
因此现在:

根          左        右
pre[1] pre[2..i] pre[i+1..k]

左          根        右
in[1..i-1]  in[i]   in[i+1..k]

递归用pre[2..i]和in[1..i-1]构造左子树,pre[i+1..k]和in[i+1..k]构造右子树
由归纳假设,都是可以构造出的:唯一或者无解。

给计算机系学生的建议

译: Chen Bin
2005年1月2日
下面就是Joel给计算机系学生们七条免费的建议:

  1. 毕业前学会写作
  2. 毕业前学会C语言
  3. 毕业前学习微观经济学(microeconomics)
  4. 不要因为某些非计算机课程枯燥无趣就敬而远之
  5. 学习有大量编程实践的课程
  6. 不要担心工作都跑到印度去了
  7. 好好做夏季毕业实习

让我逐条解释这些建议。但解释之前我要说明一下,如果因为这些建议是Joel的建议你就打算无条件地接受,以至于连我的理由都想跳过,那么你就太单 纯,太容易被别人骗了。如果你是那种单纯的人,我还要给你第八条建议,找心理医生咨询一下如何培养自信(self-esteem)。

毕业前学会写作

如果Linus Torvalds不懂如何布道的话,Linux会成功吗? 正象每一个黑客,Linus精通写作,他知道如何准确地在email和邮件讨论组中使用书面英语表达自己的思想,所以他能够从全世界召集大量志愿者为Linux工作。

你听说过最近风靡全世界的极限编程(Extreme Programming)吗? 即使你不懂什么是极限编程,你至少听说过这个词。为什么?因为宣传极限编程的人都是天才的作者和演说家。

就看看你身边的那些小型的软件开发组织吧,最有权力和影响力的人是那些可以用自信,准确,舒适的英语交流的人。好吧,我承认这些人也许言过其实,但是你无可奈何。

一个合格的程序员和一个伟大的程序员的区别不在于知道多少种编程语言,不在于他们是喜欢Python或者Java,而是在于他们是否擅长表达。他们能够说服,所以他们获得权力。他们能够写清楚明白的评论和接口文档,所以他们使得别人不用重写, 而可以重用他们的代码,否则他们的代码就是毫无用处的。他们也能够写出清晰的用户手册,于是最终用户可以理解他们的代码是做什么用的,明白了他们的工作的 价值。sourceforge埋葬着许多精美的代码,这些已死的代码无人使用,因为代码的作者很少写(或者根本不写)用户手册。

我不会雇佣一个不懂写作的程序员。如果你擅长写,你就很容易找到工作,紧接着你就会被要求写技术规格文档,这意味着你已经被管理层注意到了。

大学里有一些课程,要求你做很多的写作练习,不要犹豫,赶快参加这些课程。不要错过任何要求你每周或者每天练习写作的课程。

给自己建立一个网络日志(weblog)。在上面写的越多,你会写地越容易。写地越容易,你就写地越多,这是一个正向地循环激励。

毕业前学会C语言

我可没有说是C++。虽然现在用C的工作不多,但是掌握各种编程语言的程序员事实上用C来交流(lingua franca);更重要的是,C比某些“现代”语言更接近机器语言。我不管现在大学里在教什么流行的垃圾语言(trendy junk),你至少得花一个学期接近机器。否则,你不可能使用高级语言写出高效的代码。这意味这你不会有机会写编译器或者操作系统,也许这是更好的编程工作;别人不会相信你能够为大项目设计架构。无论你知道多少高级的控制结构,知道如何进行错误处理,如果你不能解释为什么while (*s++ = *t++);的 意思是进行字符串拷贝(而且对你而言这是世界上最自然,最易懂的代码),那么你就是在对编程一窍不通的状态下编程(programming based on superstition)。打个比方,就好比一个医生不懂基本的解剖学就给你开处方,如果你问这个医生为什么开这种药而不是那种药,他会说因为医药销售 代表说这种药有用。

毕业前学习微观经济学(microeconomics)

我个人对经济学的一些理解:在经济学刚诞生的时候,它只是局限于有限的领域,在这些领域中人们发展和发现了很多有用的理论和很有趣的事实,这些理论和事实是从逻辑上是可以证明的。然后, 经济学开始走下坡路了。 “有限的领域”就是微观经济学,它对于商业可以进行有意义的指导。然后,事情就开始变糟了(以下部分你可以跳过),你接下来碰到的是讨论诸如失业率和银行 利率之间关系之类东东的宏观经济学,很多时候宏观经济学讨论的理论都是无法证明正确或者错误的。接下来事态更加恶化了,经济学中的一些领域开始和物理学搭 界,嗯,学习物理经济学也许你帮你在华尔街找到好工作。言归正传,无论如何请学习微观经济学,因为你需要知道什么是“供给和需求”,什么是竞争优势,什么 是净现值(NPVs,Net Present Value,指项目经济寿命期内现金流入总和与现金流出总和之差额),什么是折扣和边际效用(discounting and marginal utility),如果你真想了解商业是如何运作的话。

为什么计算机系的学生要学习经济学?因为理解商业基本规律的程序员对商业界来说是宝贵的程序员。我记得无数个程序员使我非常沮丧,因为他们在代码中 坚持某些疯狂的设计,这些设计从技术上来说,完美;从资本主义的角度来看,发疯。如果你是一个理解商业的程序员,商业会给你回报。这就是你要学习经济学的 原因。

不要因为某些非计算机课程枯燥无趣就敬而远之

首先,你需要让你的学分平均分(GPA)看起来漂亮点。

不要低估学分平均分的威力。很多雇主和人事经理(包括我)阅读简历时首先看成绩,为什么?因为这代表了大部分的教授在很长的时期内对你的学业的一个 平均的看法。托福成绩(美国的托福大致相对于我国的高考中的语文考试)?哈,几个小时的测验而已。当然学分不一定说明了一切,如果你修的是很难的课程,学 分就有可能低一点。即使你的学分平均分很高,我还是要看各科分数是否一致。如果你应聘的是软件工程师职位,我为什么要关心你在大学里学的欧洲历史课程分数的高低呢?毕竟,历史很枯燥。那么要是你要编程的部分也是很枯燥的,你是不是要放弃了?事实上,有时候编程是枯燥的,如果你不能忍受编程中的枯燥部分的话,你就不能完成整个工作,雇主不愿意雇佣你这样的员工。

我在大学里修过一门叫做“文化人类学”的课程,因为那时候我也搞不懂我到底要学什么,听起来这么课程可能还蛮有意思的。

出 乎我的意料。我不得不阅读大量讲述巴西热带雨林中的印第安人如何如何的书,让人真昏昏欲睡。听老师讲解也好不到哪去,我发觉看教室外的草如何长更有趣点。 土著人如何烤蕃薯藤和我有什么关系?我为什么要去讨论如何烤蕃薯藤?但是期中考试马上就要到了,我暗暗下定决心,如果我能跨越“文化人类学”这个障碍,以 后也许没有什么能难倒我了。我决心得A并且得到了A。以后当我不得不坐在林肯中心,连看18个小时的瓦格纳的《尼伯龙根的指环》时,我终于明白我为什么要 学习“文化人类学”了,相比之下,我也能忍受这种歌剧了。

学习有大量编程实践的课程

我还记得决定不去读研究生的那一刻。

就是在学习《动态逻辑》(Dynamic Logic)这门课的时候,我记得是耶鲁的Lenore Zuck(一个天才的教师)教的。

修这门课的时候,我已经不再是雄心勃勃了。我可不指望在这么课程中得个A,我梦想的是混个及格。逻辑本质上是很简单的:如果结论正确,前提必须正确。例如,如果“所有读书好的人都能找到工作”并且“张三的读书好”,那么“张三能够找到好工作”。就这么简单。

但是我要学的是动态逻辑, 动态逻辑和一般逻辑差不多,但是要考虑时间因素。例如,“在你开灯之后,你可以看见你的鞋子”加上“过去灯被打开了”意味着“你现在可以看到你的鞋子”

动态逻辑学对于象Zuck教授这样的天才理论家来说非常诱人,因为这门学科的知识也许可以用来证明计算机程序是否正确。我记得在第一堂课上,为了证明“如果你有一盏关着的灯”并且“你按了一下开关”,那么“现在灯亮了”,Zuck教授就使用了两黑板加上边上的墙壁。

证明过程难以置信的复杂。我觉得如此复杂的证明过程很可能会有小错误,但是我没办法证明证明过程本身是正确的。事实上,写在黑板上的证明跳过了很多中间步骤,许多步的证明使用了演绎法,使用了归纳法,以及一些研究生才懂的证明方法。

作为课后作业,我们需要证明以下命题:如果灯过去是关着的,并且现在它是开着的,请证明有人按了开关

我真的试着证明它了。

我花了许多小时,试图证明这个命题。

在无数个小时的努力后,我发觉Zuck博士的原始的证明有一个逻辑上的错误,也许这个错误是我的笔记抄错了,我不知道。于是我终于认识到,如果为了 证明一个简单的问题需要花三个小时写下几黑板的证明步骤,再考虑到这个漫长的证明过程中可能会引入种种错误,那么这种机制是不可能用来证明任何有趣的东西的。

对动态逻辑学家来说,有用是无关紧要的。

于是我退出了那门课程,发誓永远不会去读计算机系的研究生。

这个故事的主题是,计算机科学和软件开发不一样。如果你非常非常幸运,你的学校会开软件开发的课程。然而,他们也可能不开这样的课程,因为名牌大学认为教授实用技巧的事情应该留给那些二三流的技术学院或者某些释放犯人再安置计划。你可以在任何地方学习编程,我们是耶鲁大学,我们培养未来的世界领导人。你付给耶鲁16万美元的学费就是为了学习如何写循环语句吗?你把耶鲁当成什么地方了?Java速成班吗?哼。

问题在于,我们没有一个专业的学校教授软件开发。所以如果你想成为一个程序员,你可以进计算机系读书(当然计算机科学也值得学习),但是你学的不是软件开发。

如果走运的话,你可以在计算机系发掘出很多有大量编程实践的课程,就象你能在历史系找到很多提供写作水平的课程一样。这些课程绝对值得学习。如果你 喜欢编程,不要为你不能上教授诸如lambda算子或者线性代数的课程沮丧,在那里你连摸一下计算机的机会都没有。找找看有没有名字中带有“实习 (Practicum)”字样的课程,不要在乎Practicum是个拉丁语。有用的(无奈状)课程就是需要在课程名中塞一些拉丁语,才能从那些装模作样 (Liberal Artsy Fartsy)管理层的眼前蒙混过关。

不要担心工作都跑到印度去了

啊哈,如果你人在印度,你就无所谓了。愿你享受外包带来的工作机会并顺祝身体健康。

但是我听说现在愿意读计算机系的学生越来越少了。据说原因之一是工作机会都跑到印度去了。我认为这种观点是大错特错。首先,根据眼前的商业时尚选择 事业是非常愚蠢的。其次,即使工作真的都跑到印度和中国去了,编程对于其他有趣的工作来说都是极好的训练,例如业务流程工程(business process engineering)。第三,无论是在美国还是印度,好程序员仍然是非常短缺的,请相信我。当然,现在有许多所谓搞IT的人吵吵嚷嚷地说就业形势不 好,工作太难找。但是事实如何?恕我直言,好程序员找工作还是很容易。第四,你还有更好的主意吗?历史系的毕业生找工作更容易吗?去法学院如何?据我所 知,99%的律师恨他们的工作,每分钟都恨。而且律师一周工作90小时。正象我以前说过的,如果你喜欢计算机,那么感谢上帝,你将属于全世界人中的极少数 的幸运儿,这些幸运儿热爱他们的工作,而且工作也可以提供体面的收入。

实际上,我也不认为报考计算机系的人越来越少有多大的意义。相对于internet泡沫时期大家都疯狂的往计算机系挤,现在的人数回落只是回归正常 水平而已。在泡沫时期,我们这个行业涌入了许多对计算机毫无兴趣的南郭先生,他们梦想的是拿着高的吓人的薪水加诱人的期权,然后年轻退休。谢天谢地,现在 这些人都跑了。

好好做夏季毕业实习

明智的招聘者知道热爱编程的人初中就为当地的牙医写数据库程序,高中就在计算机夏令营教课,为校报规划网站,在某个软件公司做实习。他们找的就是这样的人。

如 果你喜欢编程,你最容易犯的最大的错误就是“有活就接”。我知道,其他专业的学生假期打工可顾不了这些条条框框。但是你不一样,你拥有一种特殊技能,不要 浪费它。当你毕业时,你的简历上应该已经罗列一堆的编程工作实习。让其他人去“为大家提供租车服务”(Tom Welling是个例外,他业余时间去演超人)。

最后,为了让你的生活更容易一点,也为了说明我这篇文章是能够自圆其说的,我将给我自己的公司的做做广告。我的公司Fog Creek软件公司,可以为大学生提供软件开发方面的实习机会。在我们公司,你可以学习“编码,开发,商业”。去年在我们公司实习的Ben就是这么说的,可不是因为我给他什么好处他才这么说。二月一号截至,抓紧机会吧。

如果你听了我的建议,你就会太早地卖掉Microsoft公司的股票,拒绝Google提供的职位,原因是因为你已经拥有自己的公司了。到时候可别后悔,更别怪我,呵呵。

http://chinese.joelonsoftware.com/Articles/AdviceforComputerScienceC.html

File_Bittorrent

This package consists of three classes which handles the encoding and decoding of data in Bittorrent format.
You can also extract useful informations from .torrent files, create .torrent files and query the torrent’s scrape page to get its statistics.

» Summary » License
Decode and Encode data in Bittorrent format LGPL
» Current Release
1.0.1 (stable) was released on 2006-07-02 (Changelog)
» Description
This package consists of three classes which handles the encoding and decoding of data in Bittorrent format.
You can also extract useful informations from .torrent files, create .torrent files and query the torrent’s scrape page to get its statistics.

pdf屏幕取词

我们知道《金山词霸》支持许多软件取词,但在Acrobat Reader中阅读PDF文档时,
有人说可以取词,有人却说不行。笔者尝试后发现,这与浏览的PDF文档和Acrobat Reader安装有关。
如果PDF文件的内容不是文本,而是图像,
那《金山词霸20020》就不能从以图形方式显示的位图取词了,
要把它通过OCR文字识别软件转为文本才行。如果本身就是文本,
不能取词又是怎么回事呢?《金山词霸2002》要在Acrobat Reader中取词,它的一个插件程序Xdict32.api必须安装在Acrobat Readerplug-ins目录下。
如果你的电脑中已经安装了Acrobat Reader,
《金山词霸2002》的安装程序会自动把插件程序安装好;
但如果它们的安装顺序颠倒了,词霸自然就不能取词了。解决的办法很简单,
找到《金山词霸2002》cibaplug-ins目录下的Xdict32.api文件,
将它复制到Acrobat Readerplug-ins目录,
重新打开Acrobat Reader,词霸就能取词了!

ramos项目完成了

可以规划一下下一步干些什么了
温故自己的笔记,看完php设计模式,

下一步就是prototype_js,

研究ipb2.1.6(Invision_Power_Board_2-1-6),考,今天居然出了2.1.7(2006-07-25)

精通正则表达式了.

重读javascript权威指南(2006-07-28决定,已用来ajax)

兼容firefox的添加到收藏夹的javascript

<a href="#" onclick="fnAddFav()"><font color="#999999">加入我的最爱</font></a></td>
……

<script type="text/javascript">
<!–

function fnAddFav(title, url){

 var url="http://www.flyy.info";

 var title="飞越信息flyy.info";

    if (document.all)

        window.external.AddFavorite(url, title);

    else if (window.sidebar)

        window.sidebar.addPanel(title, url, "")

}

//–>
</script>

创建用以锁定计算机的桌面快捷方式

当您偶尔离开计算机时, 可以通过将其锁定的方式来保护您的工作内容。如果您正处在某个域中, 那么, 通过同时按下CTRL+ALT+DEL并单击Lock Computer(锁定计算机), 可以有效防止未经授权的用户对您的计算机进行访问。此时, 只有您本人或这台计算机上管理组中的成员才能够对其进行解锁。[您可以通过同时按下CTRL+ALT+DEL, 输入您的口令并单击OK(确定)的方式对计算机进行解锁。]如需创建一种能够确保计算机安全且更加快捷的方式, 可在您的桌面上放置一个用以锁定计算机的快捷方式。

  1. 右键单击桌面上的空闲区域, 在弹出的快捷菜单中选择New(新建)并单击Shortcut(快捷方式)
  2. 在位置框中, 输入:%windir%/System32/rundll32.exe user32.dll,LockWorkStation
  3. 单击Next(下一步), 在名称框中为该快捷方式输入一个名称, 如Lock Computer(锁定计算机), 并单击Finish(结束)

PHP开发框架总结

开发框架
WACT http://wact.sourceforge.net/
老牌的PHP编程框架,实现了很多企业级的开发模式

Horde http://www.horde.org/horde/
提供了一些常用类库,可以满足参数处理、数据压缩、浏览器检测、链接跟踪以及 MIME。需要PEAR类库的支持,提供了API参考。

Seagull http://seagull.phpkitchen.com/
一个面向对象的PHP开发框架,使用了Pear类库,其主要特性有:运用组件方式、简化数据访问、错误处理机制和权限认证管理等。

studs http://mojavelinux.com/projects/studs/
Jakarta Struts结构移植过来的PHP开发框架,使用面向对象的开发结构和API,模拟了一个HTTP Servlet容器
和使用了PHP服务页面引擎技术

InterJinn http://www.interjinn.com/
有很多扩展模块提供下载,可惜配置文件使用的是inc格式

Php.MVC http://www.phpmvc.net/
知名的PHP开发框架 ,基于Java的Struts

Phrame http://phrame.sourceforge.net/
虽然不大,但用的很多,也是基于Struts思想

Ambivalence http://amb.sourceforge.net/
基于Maverick思想实现的PHP开发框架

binarycloud http://www.binarycloud.com/
使用了Smarty模板引擎,文档很完善

Prado http://www.xisc.com/
Zend获奖作品,基于事件驱动的PHP开发框架

rwfphp http://www.rwfphp.org/
面向对象和事件驱动的php开发框架

Krysalis http://www.kompletecms.com/
把XML文档转换为XHTML文档的PHP系统

FastFrame http://codejanitor.com/wp/apps/fastframe/
可以快速地实现表单提交

Blueshoes http://www.blueshoes.net/
比较先进的一个framework,提供了很多GUI组件

下面这些我也没有详细看
Cgiapp http://weierophinney.net/matthew/download
Fuselogic http://www.haltebis.com/index/wakka/main/FuseLogic
Copix http://copix.aston.fr/
logicreate http://www.logicreate.com/
booby http://www.nauta.be/booby/

主要的CMS系统
Drupal http://www.drupal.org/
Mambo http://www.mamboportal.com/
Nucleus http://nucleuscms.org/
Midgard http://www.midgard-project.org/
Pmachine http://www.pmachine.com/
PostNuke http://www.post-nuke.net/
sitellite http://www.sitellite.org/
eZPublish http://ez.no/
xoops http://xoops.org.cn
limb http://limb-project.com/