近期活动

这几天一直都没怎么更新,主要是键盘越来越难使唤了。现在用的这块键盘还是七年前买的,虽然反应越来越差不过暂时还舍不得换。

昨天早上去打蓝球,结果用力过猛,搞的现在全身酸疼大腿肌肉拉伤,这就是放假以来长时间不运动的后果,需要自我反省一下。

再就是学着安装了 Movable Type,顺便把 Fenng 的 template 拿过来盗用了 :mrgreen: MT 看起来很复杂,其实认真阅读一下说明还是很容易安装的。MT 和 WP 各有千秋,这回可以感受一下了。

接下来我想安装 Lilina,看看和 Planet 有什么区别。

CSS 疑问之二(已解决)

最近一直在学习 css, 于是就把首页当成试验场. 接着上回的CSS 疑问之一(已解决), 现在又碰到了两个问题.

Q1. 原先为了使首页的竖列式导航栏在鼠标滑过的时候产生变色按钮的效果

#content a:link, #content a:visited {
      padding: 10px 100px;
      color: #667;
      text-decoration: none;
      outline: none;
}

#content a:hover {
      padding: 10px 100px;
      color: #fff;
      background-color: #667;
}

相应的 html 代码为:

<div id="content">
      <a title="土人自由地 Vayn's Weblog" href="/blog/">Weblog</a><br />
      <a title="土人记事簿" href="http://vayn.soup.io/">Notepad</a><br />
      <a title="土星" href="http://planet.vayn.cn/">Planet</a><br />
      <a title="土书馆" href="http://www.vayn.cn/library/">Library</a><br />
      <a title="土助" href="http://www.vayn.cn/service/">Service</a><br />
      <a title="土人部落" href="/phorum5/">Phorum</a>
</div>

这样, 在 ie6, ie7 和 ff 下显示效果都差不多, 就是代码写的难看了一些 :smile:
我转了一圈,发现没人这样实现按钮效果, 大家似乎用的都是 <li> 标签, 所以我也改用 <li> 替换原来的 <a> 标签

<div id="content">
      <ul>
            <li><a title="土人自由地 Vayn's Weblog" href="/blog/">Weblog</a></li>
            <li><a title="土人记事簿" href="http://vayn.soup.io/">Notepad</a></li>
            <li><a title="土星" href="http://planet.vayn.cn/">Planet</a></li>
            <li><a title="土书馆" href="http://www.vayn.cn/library/">Library</a></li>
            <li><a title="土助" href="http://www.vayn.cn/service/">Service</a></li>
            <li><a title="土人部落" href="/phorum5/">Phorum</a></li>
      </ul>
</div>

css 代码也重新写了一遍:

#content ul {
      margin: 0 auto;
      padding: 0;
      width: 150px;
      list-style-type: none;
}

ul li {
      border: 0 !important;
      border: 1px solid #FFF;
}

#content a {
      display: block;
      color: #667;
      text-decoration: none;
      outline: none;
}

#content a:hover {
      color: #fff;
      background-color: #667;
}

这样就产生了一个问题, 如果我不给 <li> 添加一个 border-width 属性, 在 ie6 下面每个 <li> 好像都会自动添加一个 margin 属性, 导致两个盒子之间产生很大空间.

最后我只能妥协:

ul li {
      border: 0 !important;
      border: 1px solid #FFF;
}

这到底是什么原因造成的呢?

Q2. 换成 <li> 之后, 我给每个 <a> 添加了一个 display: block; 属性, 这时在 ie6 下发生了第二个神奇现象 — 鼠标滑过盒子右侧的时候竟然无任何效果产生 :shock:
但滑过左边的时候没有问题, 也就是说盒子的右边距与链接内容的长度一样了, 盒子莫明其妙缩水. 在 ie7 和 ff 下没有任何问题.

这是怎么回事, 怎样解决这种情况?

==========================================

我很想用搜索引擎找到答案, 不过我不知道这两个问题应该用什么关键词描述 -_-b

如果你知道为什么的话, 请帮忙解答一下. 谢谢.

update:

两个问题都解决了,

Leechael 的帮助下我试了好几种办法, 在这里总结一下:

在做所有工作之前, 先把那个难看的妥协代码删掉

1. 给 li 添加 margin & padding, 并将其设置为 0
失败

2. 将 li 从每行一个改成 <li></li><li></li>
一半成功一半失败吧, 第二个问题没解决

3. 去掉 adisplay:block 添加 padding
貌似解决, 其实是回到了最初的老路, 失败

4. 给 a 添加 widthfloat, 另外将所有 li 写在一行
依然是一半成功一半失败, 第二个问题没解决, 而且需要在最后的 li 之后添加 <br style=”clear: both” />, 否则 contentheight 会自动增加, 并且当鼠标触发最后一个 li 的时候 height 回归正常…
p.s. 我发现在 IE6 下, clear: bothboth: clear 效果一样, 真是神奇啊

5. 给 a 添加 width
成–功–!

原来越简单的方法越有效 :mrgreen:
至于为什么这样可以解决这个问题我到现在还不清楚, 只能说 IE6 是浏览器世界里的九又四分之三站台, 通过它我们可以到达一个神奇的魔法世界…

最后, 特别感谢 Leechael!

在 Dreamhost 执行 Cron Job

在很长一段时间里我都被”如何在 Dreamhost 执行 Cron Job”这个问题困扰, 我曾在 V2EX 问过两回, 然后用 Google 百度查询了 n 遍, 结果是我对用 crontab 命令写 Cron Job 了解了个通通透透, 可就是写不出一条成功的 crontab 命令.

现在我终于搞明白了 :mrgreen:
写 crontab 命令最初还是因为安装了 planet 程序, 因为这个 rss 聚合程序每次更新都要执行一次更新命令, 但我不可能天天上一回网去执行命令, 所以我急需一个类似于原先 Windows 里面那个”计划任务”一样的工具. 本着”知之为知之, 不知为 Google”的精神, 我自己找到了一条在 linux 下自动执行计划的命令 — crontab.

在 DH 里执行计划任务的方法有两个, 一个是通过 panel 在后台写, 另一个是用 ssh 链接服务器, 执行 crontab -e 命令(DH 用的 nano 编辑器让我又琢磨了一阵). 写 crontab 要注意的是执行的命令必须写在一行, 除非你用的是第一个方法. 我发现即使在 DH 的 panel 里把命令写成两行, 比如

cd turen007.com
/usr/bin/python2.4 planet.py gengxin/config.ini

用 ssh 在 nano 里看到的命令还是一行:

cd turen007.com \012/usr/bin/python2.4 planet.py gengxin/config.ini

换行符被 \012 代替了, 这是我原先不知道的地方, 可能正是缺少这个 \012 导致我之前的 crontab 命令始终无法执行.

不知道我的想法对不对, 请各位大侠不吝赐教 :mrgreen:
update: 原来换行键需要转义~

星球进化

Planet 是一个非常好的 RSS 聚合程序, 无论是安装还是使用都很方便. 只要你的空间支持 Python 和 SSH, 你也可以自己安装一个.

我白天跑到超市去大采购, 在超市里看到一个大大的地球仪, 突然就想起自己那个简陋的土星 :grin:
虽然累得够呛, 不过回来后还是花了几个小时装修土星, 成功把 Planet Ubuntu 的风格移植过来了.

现在土星正式进化到 2.0 版 :mrgreen:

CSS 疑问之一(已解决)

把 blog 放入二级目录后,我重新放了一个首页。虽然是个人网站,但有个索引自己用起来也方便。不过在实际应用中我发现了几个很奇怪的问题。

如果我没有在 footer 里放置网站统计 js 代码的话,在 FF2,IE6 和 IE7 里 footer 都会与文字的上下端有一定的空间,但如果我插入了网站统计代码,在 IE6 下 footer 会变得很窄,但 FF2 和 IE6 却没任何问题,除非我设置了 height,不知道这是何故。

第二,如果想定义一个层左右居中的话可以使用 margin: 0 auto; ,但如果想让这个层垂直居中的话使用 margin: auto 0; 却不可以。不知道怎样才能使层垂直居中呢,我现在只能设置一个 padding 来控制层与顶部的距离。

另外,outline: none; 对 IE 没用。

第一个问题我 google 了一圈也没发现答案,后两个问题也是没找到一个较好的解决方案,如果哪位知道请指点一下。 :smile:

update: fcicq 的 这篇文章 解释了第一个问题

update 2: charlee 的 利用CSS使Div水平垂直居中 是一个不错的方案
另附 margin 属性的相关知识: 由浅入深漫谈margin属性

至于 outline: none 在 IE 下无效的问题还是用 hidefocus="true" 解决吧

Linux 学习笔记(2)

Chapter 2 有关 Linux 主机的知识

首先声明一下,我学习 Linux 所使用的“课本”就是鸟哥所写的教材,然后把书上的要点和自己的实践经验总结成笔记,以供自己查阅。希望看到这篇笔记的你也能有所收获,大家共同进步吧。

==========================

2.1 认识主机硬件

   CPU 频率:CPU 单位时间的运算次数。
   CPU 频率 = 倍频 × 外频
   倍频:CPU 本身运算时的运算速度。
   外频:CPU 与接口设备进行数据传输/运算的速度。

2.1.2 Linux 中的硬件设备号

   在 Linux 系统中,每台设备都被当作一个文件来对待。几乎所有硬件设备都在 /dev 目录中。

linux_study_c0201

2.2 主机的一些用途

   NAT(类似 IP 共享):申请一个固定 IP,然后通过 IP 共享(IP Sharing)使整个 LAN(局域网)都能够上网。
   DHCP(自动获取 IP 地址)
   SAMBA(类似网上邻居)

==========================

   一个现在几乎用不到的 tip:

   BIOS 太老,又不想刷 BIOS,如何使用大硬盘?
   分一个 /boot 分区,设置大小为 100MB 左右,也就是将引导分区规划在小于 1024 柱面。

==========================

学习 Linux 让我有种回到过去的感觉 :mrgreen:

Linux 学习笔记(1)

我前一阵学习 Linux 操作系统做了些笔记,现在因面临考试不得不暂时中断学习。这是放假前最后一篇网志,也是学习笔记系列的第一篇。

从零开始系统学习 Linux。

Chapter 1 一些有关操作系统的知识

1.1 什么是 Linux

1.1.1 计算机主要包含以下组件

   输入单元、输出单元、中央处理器(CPU)
   中央处理器:含有算术逻辑、控制、记忆等单元。

1.1.2 有一种系统在正确控制硬件工作,该系统就称为操作系统(Operation System,OS)。

   比较完整的 OS 包含两个组件:
   ①核心与其提供的接口工具
   ②利用核心提供的接口工具所开发的软件

核心(Kernel):掌管整个硬件资源的工作状态。

   Kernel 管理的事项:
   ①系统调用接口(System Call Interface)
   ②进程控制(Process Control)
   ③内存管理(Memory Manangement)
   ④文件系统管理(File System Management)
   ⑤设备驱动程序(Device Drivers):“可加载模块”可将驱动程序编辑成模块,而无需重新编译核心。

1.1.3 操作系统的发展

   Unix
   GNU: GNU’s Not Unix ,很有趣的递归
   Minix
   386的特性——多任务(multitasking)

1.1.4 初次发布 Linux 0.02

Hello everybody out there using minix -

I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work.This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them :-)
Linus (torvalds@kruuna.helsinki.fi)

1.2 Linux 的特性

   自由与开放
   配置要求低廉
   功能强大而稳定
   独立工作

1.3 其他相关信息

Free software is a matter of liberty, not price. To understand the concept, you should think of free as in free speech, not as in free beer.

   Linux 还是 GNU/Linux?

GNU/Linux 是 GNU 计划的支持者与开发者,特别是其创立者 Richard Stallman 对于一个以 Linux 闻名的类 Unix 操作系统的称呼。

由 Linus Torvalds 及其他人士开发的 Linux 并不是一个完整的操作系统,而仅仅是一个类 Unix 内核。事实上,Linux 一开始是以完成 Minix 内核的功能为目标,Linus 想做一个“比 Minix 更好的 Minix ”。而 GNU 计划始于 1984 年,终极目标是完成一套基于自由软件的完整作业操作系统。到 1991 年 Linux 的第一个版本公开发行时,GNU 计划已经完成除了操作系统内核之外的大部分软件,其中包括了一个壳程序(shell),C语言程序库以及一个C语言编译器。Linus Torvalds 及其他早期 Linux 开发人员加入了这些工具,而完成了 Linux 操作系统。但是尽管 Linux 是在 GNU 通用公共许可证下发行,它却不是 GNU 计划的一部分。

正是由于 Linux 使用了许多 GNU 程序,Richard Stallman 认为应该将该操作系统称为「GNU/Linux」比较恰当。

有部分 Linux 套件,包括了 Debian,采用了「GNU/Linux」的称呼。但大多数商业 Linux 套件依然将操作系统称为 Linux。有些人也认为「操作系统」一词指的应该只是系统的内核,其他程序都只能算是应用软件,这么一来,该操作系统的內核应叫 Linux,而 Linux 套件是在Linux 內核的基础上加入各种 GNU 工具。

一些人拒绝使用「GNU/Linux」作为操作系统名称的人认为:1) Linux 朗朗上口;名字较短又好记;2) Richard Stallman 直到1990年代中期,Linux 开始流行后才要求更名。

大多数 GNU/Linux 套件使用 XFree86 或 X.Org 服务器作为图像系统,并使用 GNOME 和 KDE 等桌面管理器。

==========================

这是一个初次接触 Linux 操作系统的人写的笔记,所以只有概念性的东西。如果你也想自学 Linux,向你推荐一本书——《鸟哥的 Linux 私房菜》,你也可以去他的网站 vbird.org 学习。

==========================

引用内容来源:
1、LINUX’s History

2、Wikipedia 中文版

3、The Free Software Definition