mailman订阅邮件服务器
FreeBSD + mailman + Python
2010-12-03补充
客户端程序phplist
email服务器:linux多种
JQuery validator 在IE6下失效, 谁让jquery-plugin-validation是外国人编写的。默认iso-8859-1编码。所以jquery.validator.js在其他编码中有乱码,解决方法有两种:
1. 去掉乱码 (修改源代码)
2. 加上charset, 例如: <script src=”/js/jquery.validate.pack.js” type=”text/javascript” charset=”iso-8859-1″></script>
(附:网上有人说与ie6对pack版支持不好,用min即可解决,我尝试了下,此法行不通。)
(注:IE8相对IE7容错功能要好些,那个在js中容易忽视的逗号,IE8通过,IE7报错。唉!万恶的IE6啊,万恶的IE啊!)
需求需要 自动获取文件自身的更新时间。本想js就有函数lastModified就能实现,直接write document.lastModifed就可以了,本地测试OK,可上传至服务器就出现 时间随即时时间变化。上网查了下。
有这么段:
在http中Last-Modified 与If-Modified-Since 都是用于记录页面最后修改时间的 HTTP 头信息,注意,在这 Last-Modified 是由服务器往客户端发送的 HTTP 头,另一个 If-Modified-Since是由客户端往服务器发送的头,可以看到,再次请求本地存在的 cache 页面时,客户端会通过 If-Modified-Since 头将先前服务器端发过来的 Last-Modified 最后修改时间戳发送回去,这是为了让服务器端进行验证,通过这个时间戳判断客户端的页面是否是最新的,如果不是最新的,则返回新的内容,如果是最新的,则 返回 304 告诉客户端其本地 cache 的页面是最新的,于是客户端就可以直接从本地加载页面了,这样在网络上传输的数据就会大大减少,同时也减轻了服务器的负担。
看来要采取别的方法了,再说不能禁止apache的Last-Modified呀。
找了找PHP函数,果真有(PHP太方便了!)
函数 filemtime(“文件名称”)就可以获取到了,所以直接替换成<?=date(“Y-m-d H:i:s”,filemtime(__FILE__));?>就OK了。(__FILE__是获取文件名称,filectime为获取文件创建时间。)
最近接手的项目有点多了,太多的代码记不住了,而且前一个项目还没开发完,马上就终止开发下个项目(:-( 成了老板赚钱的工具了),一下子有点手忙脚乱。所以打算搭建svn进行版本控制。
网上的教程五花八门,没点apache配置基础的估计就会被耍的团团转了。看了n篇文章,最终自己总结搭建起SVN,感叹网上的文章还真是…
下面的文章主要针对:“apache2.2 + svn1.61 + 虚拟目录 + 多项目版本 + 多用户” 的配置
我选用的svn服务器版本
http://subversion.tigris.org/getting.html#windows
CollabNet的zip 1.61版本 :http://subversion.tigris.org/files/documents/15/45600/svn-win32-1.6.1.zip
解压至subversion目录 eg:d:\subversion
apache以mod方式加载,所以复制bin下面的两个mod文件到apache的modules文件夹下。然后把bin所有的dll文件复制到apache的bin目录下,有的会覆盖,看版本的新旧而定了。(注:网上也有把subversion的bin目录写入环境变量path里,如果按照以上步骤做,这部算是重复的;如果写环境变量,记得重启,windows系统重启后会自动加载环境变量指向目录中的dll与exe路径,有点系统基础的人会明白。)
最近制作下拉菜单时,打算用纯CSS,忽又看到令人头痛的CSS hack代码(平时很少关注),记录下来以作备用。
<!–[if lte IE 6]>………….<![endif]–>
Ite:less than or equal to意思是小于或等于IE6浏览器,用于IE浏览器的条件注释,常用于CSShack,针对IE的JS等。
以下是各种情况,未验证。
1. <!–[if !IE]><!–> 除IE外都可识别 <!–<![endif]–>
2. <!–[if IE]> 所有的IE可识别 <![endif]–>
3. <!–[if IE 5.0]> 只有IE5.0可以识别 <![endif]–>
4. <!–[if IE 5]> 仅IE5.0与IE5.5可以识别 <![endif]–>
5. <!–[if gt IE 5.0]> IE5.0以及IE5.0以上版本都可以识别 <![endif]–>
6. <!–[if IE 6]> 仅IE6可识别 <![endif]–>
7. <!–[if lt IE 6]> IE6以下版本可识别 <![endif]–>
8. <!–[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]–>
9. <!–[if IE 7]> 仅IE7可识别 <![endif]–>
10. <!–[if lt IE 7]> IE7以下版本可识别 <![endif]–>
11. <!–[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]–>
2008.12.15修正
条件注释语法:
[*]gt /Greater than/大于/<!–[if gt IE 5.5]>
[*]gte /Greater than or equal to/大于等于/<!–[if gte IE 5.5]>
[*]lt /Less than/小于/<!–[if lt IE 5.5]>
[*]lte /Less than or equal to/小于等于/<!–[if lte IE 5.5]>
[*]! /Note/不等于/<!–[if !IE 5.5]>
IE6是看不到的,只有小于IE6才可看到,误导别人,请自己测试。
好久没写技术文章了。最近也是在公司开发Oready项目,所以一直没能抽出时间。
这次的问题是 站内搜索 相信大家开发项目是都会遇到这个问题。以至于我在开发下个项目时,曾一度想把所有类似新闻样式的信息放到一个表中。当然这种想法也不是一点可取之处也没有。当所有信息都类似且均以文章样式呈现给用户时,可采用这种方法,缺点是中间层处理上容易造成混乱,代码不可读,数据冗余。
好了切入正题。
解决方案一:
采用Google站内搜索。好处是:简单,直接,省时。可用在个人Blog或者小型企业网站,或者临时站点上。缺点:最大的缺点不是Google图标,而是需要一个缓冲的时间,等待Google收录你的站点信息,当然专业网站同样不适用这种小方法。
解决方案二:
首先,写个分词算法。这个是基础。其次,后台数据保存数据时进行分词,把分词结果存另外的表,信息包括被处理的记录ID,分词后的词语hash值。然后,当搜索时,先进行分词,求每个词的 hash值,select id from table where hash = $hash union…
这个估计是很多大型专业站点的通用方法。关键在分词。优点:专业,好处多多,能够被用户所接受。缺点:开发周期长,麻烦。
好在现在有现成的分词插件,开发者只需安装,修改,调试即可达到全文搜索。不过,还不会应用到我的项目中,究其原因就是企业的稳定性大于一切。
下面给出MYSQL的-5.1.11~12 全文检索分词插件【链接】
还有一个是Sphinx【链接】
解决方案三:
lucene搜索 (重量级别的。)
推荐一篇很好的文章 http://www.ibm.com/developerworks/cn/opensource/os-php-apachesolr/index.html
正所谓条条大路通罗马,应该还有其它更加完善的方案,我在这里举出的是我能想到的。
原创作品,转载须告知,谢谢。
毛毛 10:37 上午 on 2011年08月6日 链接地址
我也要一个 838787623@qq.com