1. BMP to HTML 小程序

    什么叫 BMP 到 HTML 呢……?就是生成一个网页,里面用不同颜色的字符拼出那个图片……很无聊的功能嗯,而且原理上说,生成的 HTML 文件如果要表现整个 BMP 的所有细节,大小肯定大大超过原 BMP 文件……

    为什么会做这个呢?主要是受到我们 C++ 老师的启发,尝试去做的。不过我没有用 C++ 写,而是选用了寒假学的 Erlang,这也是我写的第一个 Erlang 程序。

    为什么会选用 Erlang 呢?主要是基于两点原因:1、寒假学了半天,一点都没有练过,就拿这个来练练;2、看中了 Erlang 强大的模式匹配和比特语法。比特语法在 Erlang 里面原来是用来解决网络传输协议中的二进制数据的,不过这里拿来处理二进制文件着实是一个很好的选择~不过其实 Erlang 真正最重要的特性:面向并发 ...

    read more

    There are comments.

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

    因为一些原因,有时候不得不在 Linux 下使用 VC6 编译器。(比如学校的作业要求能在 VC6 下编译通过之类的要求)之前的用法太麻烦了,要把待编译的文件复制到 VC6 的安装目录,还要写很长的一串东西。要是能像调用 GCC 那么方便就好了~

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

    #!/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 ...
    read more

    There are comments.

  3. 鼠标控制音乐播放的小程序

    看这个标题一定很奇怪:难道我以前控制音乐播放不用鼠标么?这个文章的标题看起来像鼠标刚刚发明的推广期的文章……不过,当然不是这样的!

    其实只是想:如何把我的小本合上放书架上,当作一个音乐播放器+功放,并用我的无线6键鼠当遥控器遥控控制之。

    想想其实还是蛮有意义的功能,这样我做作业的时候可以不用戴耳机,不用用MP3,直接把本当播放器;同时,我不会看到屏幕上的东西,可以安心做作业~再看看我的6键无限鼠,那额外的功能键平时根本不用,也想不出能有什么用……这么好的东西就这样被我浪费了……(话说,拿本当音乐播放器是不是更浪费?)

    说干就干!

    首先提出构想:左键用于暂停和播放,滚轮调节音量,侧边的两个功能键用来切换上一首和下一首。至于右键和中键……再说吧,说不定以后可以扩展更多功能?说不定以后高兴了弄个鼠标手势什么的~嘿嘿

    接下来查找资料。印象中我的 Audacious 是可以用 D-Bus 控制的。简单地查阅了一下相关资料,发现了一个叫做 MPRIS 的播放器控制接口。为此,我还专门学习了一下 python-dbus 的使用。

    插一句话:python-dbus 怎么没有中文教程啊 ...

    read more

    There are comments.

  4. 基于 jQuery 的 CSS 更换术

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

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

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

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

    <!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 ...
    read more

    There are comments.

  5. 闰年判断的优化及其他

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

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

    一切的探究就从这个代码开始了。

    当然,这个代码是错的,因为疏忽了运算符的优先级,为达到本来的目的,这段代码大概应该这样改(测试代码3):

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

    接着,我将其中“!=0”和“==0”可以进一步缩短,现在代码现在变成这样(测试代码4):

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

    OK,对于抑或得到的思路,精简到这里差不多了 ...

    read more

    There are comments.

  6. Linux 死机了该怎么办?

    Linux 会死机么?我可以很肯定地说,会!如何?很简单,fork 炸弹就可以~要让 Linux 死机很容易,但难的是在死机以后如何安全的让他摆脱死机状态。

    Linux 死机有很多种情况,最常见的是系统负载过高导致的。如上次介绍的 fork 炸弹就是这个原理,此外还可以运行内存耗用极大的程序(如虚拟机),也会迅速提升系统负载。由于系统负载过高导致的卡死,一定是解决的越快越好!此时必须记住的是,不能再试图依赖任何图形界面的东西,如 Gnome 的系统监视器(这是我从 Windows 遗留下来的愚昧习惯……),这只会继续加重这种卡死的局面。那怎么办?

    不要怕,Linux 最初就是不需要图形界面的,因为有一个很强大的文字界面。按 Ctrl-Alt-F1(F1-F6 一般来说都可以),然后等一会儿,就会切换到 tty,也就是所谓的文字界面。这个时候需要用用户名密码登入。注意,可能键盘输入的速度比较慢,不过应该还是可以忍受的 ...

    read more

    There are comments.

  7. 探秘 Linux 权限控制

    众所周知,Linux 的权限控制虽然很简单,但却十分严格和有效的。(和 Windows 复杂却没用的权限控制形成鲜明对比……)由于最近编写测评机,希望利用 Linux 的高安全性做运行级恶意代码防护,因此就顺带地研究了一下 Linux 的权限控制。经过这次探秘,我对 Linux 的权限有了更新的认识,确实是一个很强大的东西啊!

    由于本人的能力有限,文章中的不足和谬误也请大家多多指教!

    我想,稍微接触过一段时间 Linux 的人都会对 Linux 的权限有些许了解,其中最重要的莫过于——很多命令需要加 sudo 才能运行,而且我们也知道,sudo 几乎无所不能——不能删的就 sudo rm、不能复制 sudo cp、不能移动 sudo mv……(目前我仅发现在部分虚拟文件系统中 sudo 也没有权限做这些事情……)那么,sudo 究竟是何方神圣,Linux ...

    read more

    There are comments.

  8. 探索 Python 的变量、类型和引用

    我一开始为 Python 的强大和简洁所震撼,看了些 Python 的教程,学了不少东西。前面那些探索就以后再写吧……今天先讲讲今天知道的东西。

    在探索到 Python 函数的参数传递的时候,我不禁赞叹 Python 灵活的参数设计,但慢慢的,开始迷惑与传递参数的修改和返回。

    众所周知,在 C++ 中传递参数分为传值和传引用两种,但 Python 没有,那到底传进去的东西,修改一下,能不能传出来呢?这是一个很奇怪和让人费解的问题,不是么?在查阅了一些资料后,对 Python 关于变量、类型和引用的一些基本方式有了一些了解,进而基于这种理解并结合实验,了解了参数传递的奥妙。

    Python 的变量是没有类型的,这与以往看到的大部分语言都不一样。但 Python 却是区分类型的,那类型在哪里呢?事实是,类型是跟着内存中的对象走的。Python 的所有变量其实都是指向内存中的对象的一个指针,所有的变量都是!此外,对象还分两类 ...

    read more

    There are comments.

  9. PHP 空间也做 LaTeX 公式显示

    原来一直以为只有自己的机子安装了 LaTeX、dvips 等等这些软件才能显示 LaTeX 公式。

    今天上网查找了一下,发现不是这样的,原来比较基本的 LAMP 空间也可以这样了,这完全得益于一个叫做 mimeTeX 的开源软件。虽然这个软件生成的没有 LaTeX 生成的漂亮,不过还是比 Word 的公式编辑器生成的漂亮,最重要的是可以在网站上使用!

    要安装这个,有一个比较必要的前提,就是你的网站必须不能运行在 PHP 的安全模式下,还有就是网站必须允许是用 .htaccess 配置文件,否则可能不行……不是……是肯定不行……另外权限设置比较严格的服务器上注意把相应权限设置妥当。

    如果服务器是 Linux 平台下的,首先,我们要下载这个软件,源代码可以点击这里下载:mimetex.zip。这里推荐解压后直接上传整个文件夹的代码上去,因为最好可以在服务器端编译,而非客户端编译好,否则平台可能不兼容。在解压出来的文件目录中新建一个 complie.php 文件,其中输入 ...

    read more

    There are comments.

  10. 对字符串加长和数组合并的效率比较

    对于字符串累加的处理,在 PHP 或 JavaScript 中似乎都可以通过类似 += (.= for PHP) 的方式实现,但有不少人抱怨道,这种方式效率很低。事实上,在我还在用 VB 的时候我就注意到这样的效率很低,当时的效率低是因为累加需要反复申请内存,而解决方法也很简单,就是用 Space$ 命令事先申请内存,然后用 Mid$ 来修改,这样效率大大提高!

    然而在这里就不一样了,PHP 和 JavaScript 的内存机制我不是非常了解,同时我们似乎也不再使用预申请的方法来加速了(似乎也比较困难……),而是直接用上了 += 这样的符号。

    下面就是问题了:这样的效率低吗?

    很多人(包括我自己最初)根据自己的想象,认为使用添加数组内容,最后合并数组为字符串,这样效率比简单的 += 要快,但我经过反复实验认为并不是这样的。首先是 JavaScript,我使用的测试代码如下:

    function getTime() {
        return (new ...
    read more

    There are comments.

« Page 3 / 3

social