0

Comments

我发觉研究的东西多了,就会看到各种神奇的 Bug……

今天写的这个 Bug 是关于 Apache 的 Rewrite 模块的。先来看一个很正常的 Rewrite 规则:

1
2
RewriteCond %{REQUEST_URI} \.u$
RewriteRule ^(.*)\.u$ $1

这个什么意思呢?用过的人一定看得出来,就是把一个 .t 结尾的请求发送到一个去掉 .t 的文件上面。比如我如果请求 upsuper.u 就会自动调用 upsuper 这个文件来返回。这没有什么疑问。

然后,我们发现,.u 文件浏览器不知道是什么,而 upsuper 这个文件在服务器上又是没有类型的,于是 Apache 不知道告诉浏览器(或者错误地告诉了一个)MIME-Type。这样即使这个文件是个网页,浏览器上也会出现下载提示或者当作纯文本直接输出。

翻阅了一下 Rewrite 模块的资料,我们了解到可以使用 T 这个标志符来强制指定 MIME-Type 类型,于是规则变成了下面这样:

1
2
RewriteCond %{REQUEST_URI} \.u$
RewriteRule ^(.*)\.u$ $1 [T=text/html]

可是无效!

Bug 开始出现了~
Read the rest of this entry »

< ,, >

新空间

2

Comments

由于某些众所周知的原因,我准备将空间搬到米国去了。由于另一个众所周知的原因,现在的域名也将很快停止使用。

我已经申请好了新的空间,近期可能就要搬过去了。先做个广告:在此诚招空间合租者一位,无限空间无限流量,PHP、Python、Perl、RoR、CGI、CGI-BIN、MySQL、PgSQL 全功能 Linux 空间,可自定义 php.ini,提供域名对应的邮箱储存、邮箱别名服务,支持 POP3、IMAP、邮件列表,独立 FTP 管理,带免费自签名证书的 SSL 服务,含一个免费域名及一个独立 IP,3年共计525元RMB。有意者邮箱联系 quanxunzhen@gmail.com

不过因为新空间还没摸索清楚,还在研究搬迁事宜。
Read the rest of this entry »

< ,,,, >
0

Comments

做完了上次那个音乐征集系统的投票平台,又积累了些新的东西。因为投票平台的一些设计这么早发出来不大好,所以就先发一个发现~

IE 的 Bug 已经说太多了,今天转过来,看看这次做的过程中发现的一个 Firefox 的 Bug~这个 Bug 的触发条件我已经初步探明了。
Read the rest of this entry »

< , >
5

Comments

今天做投票系统的界面的时候又遇到了那个问题:用图片表示的部分和纯色部分衔接有问题。我开始还以为是我当时编写的时候就有问题,由于显示器的缘故儿没有发现。今天想解决一下这个问题,找找原因。

我先打开了 GIMP,把用的背景图片打开,取了颜色,发现颜色就是其他部分的颜色。我就奇怪了,从数值上说应该是一样的才对。然后我就取了 Firefox 里面的色,发现 Firefox 里面图片对应位置的颜色被修改了?!

下面是一个关于这一 bug 的演示:

如果你看了觉得看到的是一个完全的纯色的区域,那么说明你没有遇到这一问题。但如果你看到不是一个纯色区域,那么就说明你也遇到了同样的问题……找了一圈,没有发现相关的中文资料,觉得非常无语,难道都没人发现这么严重的问题么……
Read the rest of this entry »

< ,,,, >
4

Comments

17号的时候虫子向我求助,想要我帮忙做一个支持海地的小网站。大体的思路就是,在上面的放一个大地图,然后大家可以留言、上传照片什么的,然后就在地图上出现亮点,然后亮点点进去可以看到留言和照片~这个网站已经进入公测了,大家可以在这里查看:Haiti <3(话说我曾经问虫子“<3”是什么意思,她告诉我,是爱心的意思~)

我猜从来没做过网站的人一定会觉得这个很简单,但我觉得一点都不简单……不过似乎可以实现~这种无疑又是对我技术的一次挑战!
Read the rest of this entry »

< ,,,,,,, >
1

Comments

众所周知,Windows 下的中文程序使用的是 GBK 或 GB18030 编码,而 Linux 下则默认是 UTF-8 编码。对于图形界面的程序,wine 对中文的处理似乎已经做的不错了,但对于文字界面就无能为力了……

在网上找了找,发现很多人的方法是改 .profile 或者 .bashrc,在里面把 LANG 和 LC_ALL 设置为 zh_CN.gbk 或 zh_CN.gb18030。这种方法对于只在 Windows 下用终端连接 Linux 的用户当然没问题,可是对于像我这样惯用 Linux 的人怎么办?
Read the rest of this entry »

< ,,, >
0

Comments

最近开始写一中的新选歌系统,这次要大改,顺便练手。

想加入换肤功能(不然女生肯定觉得老是蓝色不好……),而且我想到的换肤,最简单的方式就是换 CSS,把界面颜色、图形相关的内容放入皮肤的 CSS 中就很容易了~不过问题是换肤呢?

正好新系统中因为客户端代码可能非常强大,准备引入 jQuery 框架来简化开发,便学了一些。于是我就想,能不能通过 jQuery 来解决呢?

首先,我给出了下面这个简单的页面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>福州一中 学校音乐征集</title>
<link rel="stylesheet" href="" id="theme" type="text/css" media="all" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="theme.js"></script>
<style type="text/css">
html, body { height: 100%; width: 100%; }
</style>
</head>
<body>
Hello world!
</body>
</html>

然后我开始用了一段 jQuery 手册里的某段示例代码

1
2
3
$('<link rel="stylesheet" href="' + 
    (t++ & 1) + '.css" id="theme" type="text/css" media="all" />')
    .appendTo('head');

成功了,不过查看处理后的代码,发现大量冗余代码出现在 head 尾部……又查了查,发现了 jQuery 里面的另外一个好用的函数,于是上面代码就改为:

1
2
3
$('<link rel="stylesheet" href="' + 
    (t++ & 1) + '.css" id="theme" type="text/css" media="all" />')
    .replaceAll("#theme");

没有冗余代码出现,而且 IE6 都可以正常使用!jQuery 的兼容性果然超群……

然后我们想,这样每次都要重建标签,会不会很慢呢?如果能直接改属性或许不错~再查查,我们发现下面方法:

1
$("#theme").attr({ href: (t++ & 1) + '.css' });

又简洁看过去又高效~再试试 IE6,仍然没有问题哦~
Read the rest of this entry »

< , >
1

Comments

今天 Javran 发来短信给了一个短小的论年判断代码,并且问我是否认为有更简单的表达。下面是他最初给的代码:

1
return ((y & 3 != 0) ^ (y % 100 == 0) ^ (y % 400 != 0));

一切的探究就从这个代码开始了。
Read the rest of this entry »

< ,, >

CHM 查看器

2

Comments

说实话,本来 CHM 的查看器很早以前就不是个问题了,但由于不记得到底哪个才是最好用的(最没有乱码的),每次都要把知道的查看器一个一个试过去,于是今天我就想把它记下来,以后直接翻我自己的日志就可以了……

目前为止试用的最好用的是:chmsee。

gnochm 在我的使用中,从索引打开显示正常,但一旦点内部链接跳转就出现乱码。至于网络上看到的 KDE 下的 kchmviewer 我就更无语了,只要是文件地址中有中文,点连接就不正常了,看来也是编码没做好。

另外,chmsee 在 ubuntu-tweak 的 PPA 列表上有,可以更新到更新的版本。更新的版本上面允许全屏,在我这个10寸的上网本上看的可爽了~当然,如果能把那个标签也去掉就更好了~

此外,这个版本(还是这个软件?)会把 chm 解压到 ~/.chmsee/bookshelf 内。不过我心疼我的 SSD,于是就想把那个目录改到 tmpfs 的 /tmp 下,但却发现那个显示解压地址的框框是不让改的,只是给你看看逗你玩罢了……如果这是在 Windows 下,特别是在非 NTFS 文件系统下,这一切就只好作罢了。但 Linux 不同,我们有符号链接!

1
2
rm -r ~/.chmsee/bookshelf
ln -s /tmp ~/.chmsee/bookshelf

解决问题。

以后 chmsee 的临时文件就全部去 tmpfs 了,应该可以有一点效率提升吧?至少不会对我的 SSD 有影响……

< ,, >
2

Comments

今天看了 LinuxToy 上推荐的《Arch Linux 安装指南》,看到其中关于分区的部分,我突然想写篇文章来讨论一下 Linux 中应该怎么分区、应该怎么选文件系统、应该怎么配置才会比较不错。
Read the rest of this entry »

< , >