算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招 聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实大家都被 这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的 是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内 功”,把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不可能成为高手的。
星期五, 十二月 22, 2006
【转载】你的编程语言可以这样做吗?(map/reduce的js示范)
一篇很好的关于map/reduce的示范文章。看了这个,你就会理解prototype.js中Enumerable的精髓。
通过它,你可以写出很多非常奇特非常美妙的代码。短短几行,功能可不简单哦~
例如Scriptaculous中,一开篇就应用了一个findAll,两个each。8行代码,其实只是一句而已:
《你的编程语言可以这样做吗?(map/reduce的js示范) 》原文如下:
通过它,你可以写出很多非常奇特非常美妙的代码。短短几行,功能可不简单哦~
例如Scriptaculous中,一开篇就应用了一个findAll,两个each。8行代码,其实只是一句而已:
$A(document.getElementsByTagName("script")).findAll( function(s) {
return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))
}).each( function(s) {
var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,'');
var includes = s.src.match(/\?.*load=([a-z,]*)/);
(includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(',').each(
function(include) { Scriptaculous.require(path+include+'.js') });
});
return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))
}).each( function(s) {
var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,'');
var includes = s.src.match(/\?.*load=([a-z,]*)/);
(includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(',').each(
function(include) { Scriptaculous.require(path+include+'.js') });
});
《你的编程语言可以这样做吗?(map/reduce的js示范) 》原文如下:
星期四, 十二月 21, 2006
Unix下批量更改文件名称的脚本
例如将文件名含abc的文件全部更改,把abc替换为def:
find ./ -name "*abc*" -exec echo mv {} {} ';' | sed -e 's/abc/ABC/' | sed -e 's/abc/def/' | sed -e 's/ABC/abc/' | sh
这里用到了管道、find、sed,具体用法可以用man和google :)
find ./ -name "*abc*" -exec echo mv {} {} ';' | sed -e 's/abc/ABC/' | sed -e 's/abc/def/' | sed -e 's/ABC/abc/' | sh
这里用到了管道、find、sed,具体用法可以用man和google :)
如何在windows上部署带SSL的Apache
因为Openssl的关系,Apache不提供windows上附带SSL功能模块的安装包,可以参看:http://www.apache.org/dist/httpd/binaries/win32/
这里是自己编译Openssl进Apache的参考:
这里是自己编译Openssl进Apache的参考:
星期二, 十二月 19, 2006
星期二, 十一月 28, 2006
星期一, 十一月 20, 2006
SSL安全套接层的配置
最好的配置文档是gentoo-wiki上提供的Apache Modules mod_ssl,简明扼要。如果apache服务器开启了rewrite模块,那么用如下设置就可以实现将http访问转向https了:
# Redirect to SSL
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
星期六, 十一月 18, 2006
星期日, 七月 09, 2006
Wetpaint - Best Wiki So Far?
TechCruch的这篇文章提到了Wetpain, 一个可在线申请并定制的新一代wiki平台已经释出开始公测了。该平台是一个典型的Web2.0应用,给了用户通过Web方式在线合作的功能。 Wetpain项目原来的名字叫做Wikishpere,它是由原来的Blue Nile, Amazon.com 以及Expedia一些员工发起的一个项目,在2005年底获得了525万美金的风险投资作为启动资金。
刚刚上线的Wetpain有着很方便的注册流程,以及相当酷的所见即所得编辑功能,跟所有wiki一样,可以通过页面历史来控制你的页面版本。它的亮点在于使用了AJAX技术,是一个实实在在的Web应用程序,而且它提供的Wetpain助手也是一个不错的看点。
我刚刚尝试着申请了一个:http://homerun.wetpain.com :)
刚刚上线的Wetpain有着很方便的注册流程,以及相当酷的所见即所得编辑功能,跟所有wiki一样,可以通过页面历史来控制你的页面版本。它的亮点在于使用了AJAX技术,是一个实实在在的Web应用程序,而且它提供的Wetpain助手也是一个不错的看点。
我刚刚尝试着申请了一个:http://homerun.wetpain.com :)
星期三, 七月 05, 2006
使用Tor突破伟大的盾!
你有没有经常在访问国外互联网的时候,碰到无法联通的情况?其实大部分情况下不是你的网络问题,也不是网站问题,而是这个地址被伟大的盾给过滤掉了。著名 的blogger.com提供的blogspot.com部落格域名也在被盾之列。不过还是有许多代理工具可以帮助我们透过伟大的盾,来访问我们想要去的 地方,其中Tor就是一个杰出的支持多平台的破盾系统。
Tor的全称是"The Onion Router"号称是"An anonymous Internet communicaton system"。它针对现阶段大量存在的流量过滤、嗅探分析等工具,在JAP之类软件基础上改进的,支持Socks5,并且支持动态代理链(通过Tor访 问一个地址时,所经过的节点在Tor节点群中随机挑选,动态变化,由于兼顾速度与安全性,节点数目通常为2-5个),因此难于追踪,有效地保证了安全性。 另一方面,Tor 的分布式服务器可以自动获取,因此省却了搜寻代理服务器的精力。
这个软件使用起来也很简单。Tor的下载地址是 http://tor.eff.org ,直接下载安装Tor & Privoxy & Vidalia bundle即可。装好后启动Privoxy和Tor,然后把浏览器的代理地址修改为:127.0.0.1:8118,就可以透过伟大的盾来访问各种网络资源了!
你可以试试看访问 http://wziqiao.blogspot.com 来验证一下 :)
这个软件使用起来也很简单。Tor的下载地址是 http://tor.eff.org ,直接下载安装Tor & Privoxy & Vidalia bundle即可。装好后启动Privoxy和Tor,然后把浏览器的代理地址修改为:127.0.0.1:8118,就可以透过伟大的盾来访问各种网络资源了!
你可以试试看访问 http://wziqiao.blogspot.com 来验证一下 :)
订阅:
博文 (Atom)