分类目录归档:纯属编程

发一个小工具:WYM+

个多月前写的一个小东西,因为笔记本硬盘崩溃打乱了生活节奏,现在才发上来。 WYMeditor 就是传说中的“所见即所想”之HTML编辑器。用来写东西很舒服,不用担心格式的问题,又不像LaTEX那样有上手门槛。俺深受吸引,一时兴起就给它写了一个增强—— WYM+: WYMeditor之PHP驱动兼功能增强“插件” 程序名称:WYM+ (What You Mean Plus) 版权许可:和WYMeditor一样 使用方法:将所有文件拷入WYMeditor 0.2.* 之根目录 功能与属性: 存储 PHP驱动,文本存储 存储无刷新(类AJAX) 支持快捷键CTRL+S 定时自动保存(默认10秒钟) 增强快捷键(CTRL+) B: 加粗 I: 斜体 U: 下划线 S: 保存 1~6: 一号至六号heading(h1~h6) 兼容性 可用于 WYMeditor 0.2.* 版本 完美兼容Firefox 2.0.0.3 IE 6.0 … 继续阅读

发表在 纯属编程 | 留下评论

发布wordpress插件:Grapheed

我也不知道这算不算严格意义上的“插件”,因为它暂时没有办法用wordpress的“插件管理器”来管理:) 其实是N久以前在校内发过的老东西。现在改成的代码,略做细微修改就可以用于所有blog程序,只要空间支持php,而且有iconv和gd函数库。 Plugin Name: Grapheed Plugin URI: http://blog.liuxun.net/?p=22 Description: 可以将http://your-blog-url/wp-grapheed.php当作图片引用,在论坛签名档或xiaonei.com涂鸦板上显示自己的最新网志 Version: 1.0 Date: 2007/05/04 Author: 刘寻 Author URI: http://liuxun.net === 安装步骤 === 1.从 http://www.ugia.cn/?p=82 下载点阵字库包(fontfun.rar),将包里的simsun12.fon上传至wordpress根目录(simsun是非自由字体,请自行解决版权问题) 2.将 wp-grapheed.php 上传至wordpress根目录。即可使用。 === 版权声明 === 本程序部分代码(详见注释)参考自ugia.cn,版权属于ugia.cn 其余部分,放弃所有版权,可以自由使用 点这里下载

发表在 纯属编程 | 留下评论

发布wordpress主题:cathayan-style

由来: 一直想找一个看起来最最没有个性,而且干净,而且单屏信息量充足、节约滚屏时间的主题。久觅不得,遂看上了cathayan的blog,起了将其移植到wordpress平台的念头。 下载: 本地下载,或者到Theme viewer下载。 安装: 下载解压到wp-content/themes/ 。 打开解压后目录里的压缩包 random-quotes-chinese.zip,解压里面的random-quotes-chinese.php到wp-content/plugins/ (然后可以删掉random-quotes-chinese.zip)。 去wordpress后台启用模板”Cathayan Style”和插件”Random Quotes (Chinese)”。 两个问题: 字体大小:被迫使用px 本来觉得用像素值(px)设定字体大小,使IE用户没法调整字号,实在不够人性化。但在谷歌N遍,看完N篇文章之后,终于被迫放弃其它所有支持IE调整大小的设定方法,原因如下: firefox和IE的默认字体大小不一样,然而用相对单位时,字体大小的差距会被放大,没有办法保证界面的大概的一致 用normal,small,large,x-small…的定义方法,差距同样相当大(参考http://blog.cathayan.org在firefox和IE下的效果) 在国内,绝大多数网站在IE下是不可调整字体大小的,因此绝大多数人已经事实上地失去了调整字体的习惯;只有对浏览体验比较敏感的人才会注意到字体调整功能;而—— 我相信,这样的朋友一定不会错过极度优秀、开放源码的Firefox浏览器:)。(我一直使用,强烈推荐) 目前看到唯一不使用绝对字体大小而还过得去的模式是像Web4C一样,直接使用默认大小,在两种浏览器中分别显示为15和16像素–可惜这个大小显然不适合现在的cathayan-style。 用表格实现多行文字在容器里上下居中。本来cathayan 在Email里介绍了个非常牛的div实现方法 (http://realazy.org/lab/div-valign/),可惜我人品有限,调试时冒出了一些短时间内搞不定的诡异问题,只好作罢。 版权: 设计是cathayan的(其授权是“Public domain都行吧”),里面的插件“Random Quotes (Chinese)”是(修改自)xinple同学的(其授权是“没关系,随便发布 加不加链接也无所谓的,能方便其他用户就好。”),呵呵,所以本Theme的版权是——Public Domain(“公共财产”)。

发表在 纯属编程 | 留下评论

spam留言如火如荼,难道我只有出绝招了?

1355comments,一月断网回来,洋鬼子的机器人已经把我这当乐园了。 现在我连留名框内容框都没有设为必填(我考虑这样的话,不是特别聪明的动物界朋友也许会偶然碰到Enter键,告诉我它们的光临),显然是不可能因此加图片验证或小学算术之类的障碍。这儿能来一两个自然生物,已经很难得了。 现有一绝招,能够在对留言界面和过程99.7%无影响的情况下基本禁绝这些spammer机器。过两天用上。 update9.30 13:32:绝招已启用,需要提醒的是,如果您待人如此地细致,心性如此地舒宁,以至于从您打开blog的单独显示页到提交一条优雅的留言,时针已经两次划过12点的位置,那么在提交之前您最好对页面做一下刷新。(而如果中间太阳已经两次从东方升起,这将意味着如果不刷新页面,留言将肯定不能抵达数据库)

发表在 纯属编程 | 5 条评论

发布RaN – 基于XUL的阅读/书写工具

历经两个多月的碎打零敲,现在终于隆重发布 RaN 0.1beta版。 详细文档在此 演示在此 功能已经完整,可以投入社会主义知识生产、为劳动人民造福了。lx同学2006年度对国际先进技术 XUL(以及JavaScript、XML……Ajax) 的广泛、细致、深入的研究工作就此告于段落。 喜爱阅读的人有福了;喜爱书写的人有福了;感受得到命令行温情的人,如今有福了。 RaN,我的孩子,今天为父就带你上路,把一切故事说与你听。

发表在 纯属编程 | 留下评论

firefox中,javascript的行为先后问题

在firefox中,Ctrl-S的功能是“网页另存为”。而我一直很想给blog实现这个功能:写日志时按Ctrl+S即可提交表单内容,同时(最关键的是)不弹出网页另存为的对话框。 要阻止“另存为”对话框,自然只能是在javascript中使用return false。而要实现提交表单功能,又必须捕获键盘事件Ctrl-S,使其有所执行。 我第一版的代码是: <body onkeydown=”submitForm(event);return false;”>结果发现文本框不能输入英文字符。显然的,它把所有的键盘输入都return false了。另据实际经验,return false写在函数判断里面是无用的。我想到在submitform函数里做一个“转发器”,专事将键盘输入的东西还原为字符写入到文本框内。先做测试,有第二版代码: <body onkeydown=”test(‘我发送了表单,还把其它键盘输入转发了,耶。’);return false;”>结果发现,“Ctrl-S调出另存为对话框”这个行为几乎是优先于所有js函数调用和输出的。也就是说,只要return false前面有函数调用和输出,那对话框必然先被调出;而把函数调用和输出写在后面又显然无效。问题相当严重。幸好没有着急写“转发器”。 “谷歌”了一下,看到有洋人曰(http://www.codingforums.com/showthread.php?t=69761): Any key combinations with special meanings to either the operating system or the browser are NOT passed to the web page and therefore cannot be handled … 继续阅读

发表在 纯属编程 | 留下评论

代码写作随手记

今天想起来用php给自己写一个blog系统。过程中遇到的问题先记录下来。 IE对css注释的问题: 发现注释的末尾不能为汉字。也就是说如果是中文,要写成 /*这副模样 */ 即要在末尾加上一个半角字符,才不至于使整个css文件对IE失效。真是奇怪。 firefox中h1和h2会受Arial字体的影响,鼠标经过(hover)时显示出粗的下划线;IE没有这个现象。 中文变量名: 看到php手册里这句:$i站点is = ‘mansikka’; // 合法变量名;可以用中文 于是突然间起了给变量中文命名的热情。我把$myConn说成“$有”,把$strSql说成“$求”,把$result说成“$得”;把数据库里的文本叫做“$记忆”,把要输出的代码叫做“$表述”…… 中文命名没有导致任何运行不稳定或者代码混乱的后果(update:似乎不允许跨文件赋取值)。相反,写出来的代码感觉挺漂亮。 可惜中英文输入法之间的切换是个麻烦的问题。我不得不以极高的频率按shift切换输入法,稍不注意就要忙中按错…… 思想斗争半天,终于还是推倒重来,全部用回英文名了。 关于时间:如果写入数据库是用time()函数(返回时间戳)的话,在mysql里定义数据类型为timestamp反而会搞砸。应该用int(10)。

发表在 纯属编程 | 留下评论

邮箱登陆口

折腾了半天…… 实现了下面的东西…… 居然终于还是用了iframe……调用这个页面: mail.html (对里面的“@”点右键查属性就可以看出) 实在想不出/实现不了更好的办法。 没地方好放,只好放Login里头…… 拥挤得有点难看,为了方便,也就忍一忍了。 以下为程序代码: //查看mail.163.com的源代码,里面有个大javascript,有用的一段如下: window.document.login163.action=http:/ /reg.163.com/in.jsp?url=http:/ /mscan2.163.com/Unicom.jsp?language%3D0%26style%3D1; /*163.com邮箱的郁闷之处在于,它竟然进行了三次转向!用的是meta标签里的http-equiv=refresh。 这样就有理由怀疑,在系统有点小毛病的、对refresh支持不很好的机器(比如我那台式机)上, 163.com邮箱就根本无法正常登陆;要登陆只有重复数次查源文件,拷贝网址,查,拷贝…… 它是这样过来的:*/ http:/ /reg.163.com/in.jsp?url=http:/ /mscan2.163.com/Unicom.jsp?language%3D-1%26style%3D-1 http:/ /mscan2.163.com/Unicom.jsp?language=-1&style=-1&username=yourname http:/ /fm163.163.com/cgi/ntesdoor2?&style=-1&language=-1 //一般的网站在用到refresh时,都会有类似“如果不能正常跳转,请点击这里”这样的补救提示,而网 //易邮箱简直…… //经过仔细比较推断以及反复测试,最终确定了现在在mail.html里的写法: 163.com //仅仅是免去了对语言和界面风格的判断。因为三个页面分属三个不同的服务器,所以要解决跳转的问 //题似乎是很不现实的。。 //注:由于非注释符号的双斜杠不能正常显示,所以只好如上在中间加个空格。。

发表在 纯属编程 | 留下评论