preload preload preload preload

Firefox 3.5 对 PNG 图像颜色处理的问题


2010年2月4日 探究学习 3 Comments

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

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

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

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

从 Ubuntu 中移除 CNNIC 的证书


2010年2月3日 雕虫小技 0 Comments

有人想问为什么要移除 CNNIC 的证书吗?因为我不信任 CNNIC,就是这样。

网上流传的版本大多是关于 Windows 下的,偶然找到一个 Debian 的,正好抄过来。

首先,执行

1
sudo dpkg-reconfigure ca-certificates

第一个界面直接确定,然后找到 mozilla/Entrust.net_Secure_Server_CA.crt 一列取消它的选择,最后确定。如下图:

 

然后,如果你是用 Firefox,就要进入 编辑/首选项/高级/加密,点击“查看证书”,在证书机构里面找到 Entrust.net,将其子项全部删除(特别是 CNNIC 那一项!),接着可以试一下访问 ENUM 实验平台,如果不出意外,已经不能访问了。

如果你是是用 Opera,打开 工具/首选项/高级/安全性,点击“管理证书”,在“证书颁发机构”里选择 CNNIC ROOT,点击查看,去掉“允许连接到是用此证书的网络”前的钩,重启 Opera,如果不出意外 Opera 也不能访问上面那个地址了。

至于 Chromium,似乎本来就没有加,我直接访问是访问不了的。如果遇到可以访问的,可以参考 LinuxCertManagement – chromium 进行处理。
Read More »

支持 Haiti 的小网站


2010年1月31日 探究学习 4 Comments

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

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

网站终于恢复了……


2010年1月26日 琐事杂谈 1 Comment

很多天以来,我的网站已经遭遇了大范围不稳定,今天终于完全挂了。非常不爽的挂电话到空间商那边询问,得到的答复是服务器机房整个封网接受审查(刚刚想去查聊天记录,发现那个理由已经被删掉了!)……然后让我联系 QQ 上的客服免费开通香港服务器,于是我就照做了,然后开通好了,把域名指过来,慢慢把半G的数据上传上去,总算是搞完了……所以现在终于可以暂时稳定的继续使用了,只是未来还有什么变数就不知道了。

有一些脏话就不说了……既然我很和谐地只发技术文章你也要和谐我,那就不要怪我了

跨编译器的 C 语言 NaN 支持 (纠正)


2010年1月18日 雕虫小技 0 Comments

之前的版本犯了一个重大的错误!我错了……没有经过认真的实验就贴出来……

正文开始前,先看一个式子:

1
x != x

大家觉得,这个东西的返回可能为 true 么?事实上是可能的,只要这个 x 是 NaN,并且这个 C 编译器符合 IEEE 754 的标准。

所谓 NaN,即 Not A Number,不是一个数。这是 IEEE 754 国际浮点数运算标准当中规定的一个特殊值,这个值由于不是一个数,所以有很多奇怪的特性,比如上面这个不等于其本身。

虽然有这么个东西,而且是国际标准,不过我们也知道,这世界上总有那么些公司是不喜欢理会国际标准的,邪恶的 M$ 就是其中之一。而 Visual C++ 6.0 的 C 编译器也就“有幸”成为了少有的不能完全兼容 IEEE 754 的编译器之一。

至此,我们发现一个问题:邪恶的 M$ 的东西中,总是最垃圾的流传的最广,IE6 如此,VC6 也是如此。另外,在此声明一下,这里讲的全部是 C,不是 C++,在 C++ 中另外有一些比较符合标准的方式同时被各个编译器兼容。

OK,回归正题,既然 VC6 的编译器是个渣,可我们有的时候还是不得不让自己的代码与之兼容,于是就有了各种解决办法。
Read More »

参选中文维基2010新首页


2010年1月17日 琐事杂谈 1 Comment

记得现在的中文维基首页是我6年前的作品,不过已经被改了很多很多了。这次又带来了一个作品,参加 2010 新首页的评选~这次我还联合了一个非常强大的设计者,他也不负众望的带来了一个漂亮的设计!

先来看看这个首页到目前为止最完美的一张截图:

这是在 Chromium for Linux 下,默认字体为文泉驿微米黑的截图,这是我最为满意的一张~由于我的 Firefox 还在使用文泉驿正黑,而 Opera 还不支持圆角,所以才选了 Chromium 的截图……

现在是传送门:用户:Upsuper/2010新首页
还有一个是小图标单侧版:用户:Upsuper/2010新首页/2
投票页面:维基百科:投票/首页改版
Read More »

wine 在终端下中文显示的问题


2010年1月13日 探究学习 1 Comment

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

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

人人网的好友交集小工具


2010年1月9日 小程序 0 Comments

昨晚花了几个小时写了个计算人人网(其实我还是更喜欢叫他校内)当中,任意两个用户的好友之间交集的在线小工具,可以到我的实验室里看看这个小工具:人人网好友交集

话说能写出这样的工具,主要有赖于我的空间提供商将系统换为 FreeBSD 后可以解析 Python 了,而且也没有限制 CGI,所以就成功了~
Read More »

我的 Linux Deepin 体验报告


2010年1月1日 琐事杂谈 1 Comment

文章最前面,先祝各位在新的一年里天天开心哈~

昨天用 BT 下载了 Linux Deepin。记得当年装 XP 就一定要装 Deepin 的,觉得 Deepin 做的最好,做的最清楚。现如今 Deepin 也转投 Linux 的怀抱,是在不能不说是一件令人高兴的事情。

下面来说说 LD 吧。

我用 UNetBootin 将 LD 弄进了 U 盘里,然后通过 LiveUSB 进入了 LD。LD 给我的第一印象就是那个漂亮的时明时暗的 LD 的 Logo,接着看到了 Ubuntu 9.10 引入的 Xsplash,也很不错~由于是 LiveUSB 启动,因此启动速度不好做评述,不过感觉还是比较满意的。
Read More »

方便使用 VC6 编译器的小脚本


2009年12月30日 小程序 0 Comments

昨天的那篇日志跨编译器的 C 语言 NaN 支持当中讲到了如何在 Linux 下用 wine 执行 VC6 编译器编译程序,不过总觉得还是有那么些麻烦,要把待编译的文件复制到 VC6 的安装目录,还要写那么长一串东西。要是能像调用 GCC 那么方便就好了~

于是就有了下面这个小脚本:

?Download vc6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
# - * - coding: UTF-8 - * -
 
VC6_DIR="这里写上VC6的安装地址"
 
BIN="$VC6_DIR/VC98/Bin"
export INCLUDE="$VC6_DIR/VC98/Include"
export LIB="$VC6_DIR/VC98/Lib" 
 
ARGS=
 
while getopts "o:c" optname
do
  case "$optname" in
  "o")
    ARGS="$ARGS /o$OPTARG"
    ;;
  "c")
    ARGS="$ARGS /c"
    ;;
  esac
done
 
wine "$BIN/CL.EXE" $ARGS ${@:$OPTIND}

然后把他放在 PATH 里面的某个目录下 (我放在了用户级的 /home/upsuper/bin 里,这个似乎要自己添加就是了),然后给这个文件加上可执行属性,最后只要在需要的地方执行:

1
vc6 xxx.cpp

就解决了~
Read More »