开源,自由,平等,共享,包容,沟通

2008年12月29日星期一

mimeTeX 快速开始

 
(针对 mimeTeX 版本 1.70)





点击

  完整的 mimeTeX 手册
  下载 mimeTeX
  更多范例...

公告

  如果 LaTeX 已经安装在你的服务器上,请参阅 mathTeX,mimeTeX 是它的继承者。
  mathTeX 是基于真正的 LaTeX,并且比 mimeTeX 渲染更高清的图像。
  如果 LaTeX 在你的服务器上不可用,请继续使用 mimeTex。

目录

  (a) 介绍
  (b) 快速开始
  (c) 范例
  (d) 快速建立
  (e) GPL 许可

相关页面

  LaTeX 指南
  mimeTeX 修改日志
  mimeTeX 手册

快速开始摘要

  安装

    下载 mimetex.zip 然后输入 unzip mimetex.zip 和 cc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi。
    现在只需要 mv mimetex.cgi 到你的 cgi-bin/ 目录,设置必要的权限,即可。

  用法

    想要查看图像:



    只需要写入:

<img src="/cgi-bin/mimetex.cgi?x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}">

(a) 介绍

  mimeTeX 基于 GPL 许可协议,让你很容易地嵌入 LaTeX 数学公式到你的页面。
  它解析 LaTeX 数学表达式,并立即发送出相应的 gif 图像,这要优于 TeX dvi。
  并且 mimeTeX 是一个完全分离出来的小程序,它不会以任何方式使用 TeX 及其字体。
  它仅仅是一个 cgi,你可以把它放在 cgi-bin/ 目录,并不需要其它的依靠。
  因此,mimeTeX 非常易于安装。
  并且使用同样也很简单。
  只需要放置一个 HTML <img /> 标签在你想要看见相应 LaTeX 表达式的文档中的位置上。
  例如

<img src="../cgi-bin/mimetex.cgi?f(x)=\int_{-\infty}^xe^{-t^2}dt" alt="" border=0 align=middle>

会飞一样的立即产生相应的 gif 图像,在你放置 <img /> 标签的位置上显示



图像。
  mimeTeX 并不需要中间件 dvi 到 gif 的转换,当然也不会针对每个表达式创建分开的 gif 图像。
  但是如果你需要缓存图像,请查阅 mimeTeX 的 -DCACHEPATH=\"path/\" 编译选项。

mimeTeX 插件

  这里没有固定的需要像上面插图那样去重复书写笨重的 <img /> 标签。
  你可以写上自定义的标签,或者为 mimeTeX 写上封装了的脚本来简单地进行标记。

  例如,下面的 JavaScript 代码片段(基于 mathtran 的 mathtran_img.js)让你只需要键入 <img alt="mimetex:c=\sqrt{a^2+b^2}" />,就能在你想要看到的地方显示



图片,代码如下:

<script type="text/javascript">
<!--
// Create a namespace to hold variables and functions
mimetex = new Object();
// Change this to use your server
mimetex.imgSrc = "http://www.yourdomain.com/cgi-bin/mimetex.cgi?";
// Transform the whole document: add src to each img with
// alt text starting with "mimetex:", unless img already has a src.
mimetex.init = function () {
if (! document.getElementsByTagName) return;
var objs = document.getElementsByTagName("img");
var len = objs.length;
for (i=0; i<len; i++) {
var img = objs[i];
if (img.alt.substring(0,8) == 'mimetex:')
if (!img.src) {
var tex_src = img.alt.substring(8);
img.src = mimetex.imgSrc + encodeURIComponent(tex_src);
// Append TEX to the class of the IMG.
img.className +=' tex'; }
}
mimetex.hideElementById("mimetex.error"); }
// Utility function
mimetex.hideElementById = function (id) {
var obj = document.getElementById(id);
if (obj) obj.style.display = 'none'; }
// resolve a cross-browser issue (see CBS events)
mimetex.addEvent = function (obj, evType, fn, useCapture) {
if (obj.addEventListener) { //For Mozilla.
obj.addEventListener(evType, fn, useCapture);
return true; }
else if (obj.attachEvent) { //For Internet Explorer.
var r = obj.attachEvent("on"+evType, fn);
return r; }
}
// Initialize after entire document is loaded
mimetex.addEvent(window, 'load', mimetex.init, false);
-->
</script>

  告示牌、Wiki 等,也能够通过短小的脚本合成 mimeTeX 图像。
  例如,如果你使用 phpBB2,Jameson 贡献了下面典型的单行模板,让你键入 [tex]c=\sqrt{a^2+b^2}[/tex] 以获得同上面插图一样的



图像,代码如下:

#--------[open]-----------------------------------------------------
/includes/bbcode.php
#--------[find]-----------------------------------------------------
// Remove our padding from the string..
#--------[before, add]----------------------------------------------
$text = preg_replace('/\[tex\](.*?)\[\/tex\]/ie', "'<img src=\"/cgi-bin/mimetex.cgi?'.rawurlencode('$1').'\" align=\"middle\" />'", $text);

  如果你使用 phpBB3,模式甚至是不需要的。
  仅仅从管理员控制面板上点击相应的按钮,然后添加自定义的 BBCode 代码 [tex]{TEXT}[/tex],这些代码将被 HTML 替换为 <img src="/cgi-bin/mimetex.cgi?{TEXT}" align=middle />。

  类似的,PmWiki 也有 mimeTeX 插件,它让你只输入 {$f(x)=\int_{\infty}^xe^{-t^2}dt$} 来获得与上面相同的图像。
  其它一些包也有类似的 mimeTeX 插件,包括:

PackagePlugin
PmWikimimeTeX plugin
WikimediamimeTeX alternative
PunBBmimeTeX plugin
Movable TypemimeTeX plugin
WordPressmimeTeX plugin
JoomlamimeTeX plugin
MambomimeTeX bot

  注意

    如果你为 mimeTeX 编写属于自己的插件,请在编写 PHP 代码时不要使用 system() 函数,或其它任何外壳转码机制,只需要缓存图像即可。
    使用 mimeTeX 的 -DCACHEPATH=\"path/\" 编译选项来替代。
    system() 函数会提高安全问题,无论是真的还是大意使用,或者是因为系统管理员的意识。
    总之,我已经收到了很多电子邮件,由于系统管理员的安全意识,不必要的 system() 函数调用被禁止了,所以人们无法使用 mimeTeX。
    若 mimeTeX 按照上面的插图使用,自身只会有很小的风险,但是你自己需要对围绕它编写的插件或封装的脚本负责。

竖直对齐

  一个像这样的



图像看起来没有同样的



图像好,那是与它周围的文字和垂直对齐有关。
  与一些 HTTP 头字段一起,mimeTeX 也发送一个特别的 Vertical-Align:-nn 头字段,其中 -nn 是像素值(通常是如图所示的负值),它是 <img /> 标签中 style="Vertical-Align:-nn px" 属性所必须的,被用来渲染表达式。

  但是 mimeTeX 特殊的 Vertical-Align: 头字段是不被你的浏览器承认的,浏览器会忽略它。
  你不得不获取头字段,解释它,并且写出相应的 <img /> 标签。
  要完成这一切,可能的方式是使用脚本语言。
  本页面使用如下相当幼稚的 PHP 代码:

<?php
$mimetexurl = "http://www.yourdomain.com/cgi-bin/mimetex.cgi?";
function verticalalign( $expression ) {
global $mimetexurl;
// note: curl_init() stops at the first whitespace char in $url argument
$expression = ereg_replace(" ","~",$expression); // so remove whitespace
$url = $mimetexurl . $expression;
$valign = "0";
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_HEADER, true );
$gif = curl_exec( $ch );
$errno = curl_errno( $ch );
curl_close( $ch );
if ( $errno == 0 ) {
$fields = explode("Vertical-Align:",$gif);
$vfield = trim($fields[1]);
$fldlen = strspn($vfield,"+-0123456789");
$valign = substr($vfield,0,$fldlen); }
return $valign;
}
function mimetextag( $expression ) {
global $mimetexurl;
$valign = verticalalign($expression);
$url = $mimetexurl . $expression;
echo ' <img src="',$url,'" ';
echo ' style="Vertical-Align:',$valign,'px" ';
echo ' alt="" border=0>', "\n";
}
?>

  现在,你可以在你想要看到图像



的地方写上代码

<?php mimetextag('\frac12\left(a^2+b^2\right)'); ?>

并正确地对齐。
  该代码两次调用 mimeTeX 来渲染表达式,一次是获取 Vertical-Align: 头字段来建立 <img /> 标签,接着再次渲染该标签。
  如果你是一个非常好的 PHP 程序员并且写了更好的代码,请将代码副本发送到我的电子邮件。

  如果你使用 mimeTeX 的 -DCACHEPATH=\"path/\" 编译选项,请以 % 开头作为 path/ 的前缀,并写出 -DCACHEPATH=\"%path/\" 来代替。
  开头的 % 将不会成为你缓存目录 path/ 的一部分,但是它会给 mimeTeX 发送信号,与每张图像一起缓存头字段。
  否则,Vertical-Align: 信息将会丢失,并且试图对齐缓冲的图像会失败。

不同的解决方案




原版英文:http://www.forkosh.dreamhost.com/source_mimetex.html
 

2008年12月24日星期三

Tablecloth 中文文档

 
  Tablecloth 是轻量的,它使用简单的方式将样式和行为添加到你的 HTML 表格元素中。
  在你的 HTML 页面中简单地添加两行代码,你就可以得到样式化和可活动的表格,你的浏览用户将会喜欢它。

概览

  表格通常被没有标准概念的开发者所滥用,并且在表格布局编码者和标准化之间已经形成了相关理论的课题。
  HTML 中表格的重要性是它们所扮演的角色 - 显示列表数据。
  Tablecloth 是只专门让表格的用法更适当的。
  利用基于表格的布局将引起更多头痛的问题,因为它会自己布局。
  在使用 Tablecloth 之前,请确认你没有使用表格在其它任何地方,除了列表数据。

特征

  Tablecloth 用来显示格式正确的表格,并将样式和行为应用在其上。
  它将搜索 HTML 源代码中的表格元素,并处理找到的每一个表格。
  对了,这里不需要硬编码类名和 IDs,Tablecloth 将会自动添加。
  然而,如果你愿意,你可以应用你自己的类名。

  01. 添加偶数或奇数类名到行。
  02. 为鼠标经过和移出状态添加经过和移出类名。
  03. 如果设置为 True,Tablecloth 将高亮显示行或列(或者两者都显示)。
  04. 如果设置为 True,Tablecloth 在鼠标点击时将添加选择状态;基于偏好选择行或列(或者两者都选择);不选择只需要在页面任何地方点击一下即可。
  05. Tablecloth 为你的升级留了余地;它可简单的进行编辑,在你点击表格单元格时,你可以使用你自己的代码。

用法

  使用 Tablecloth 你需要格式正确的表格。
  你的表格代码可能会像这样:

<table cellspacing="0" cellpadding="0">
<tr>
<th>Title</th>
<th>Title</th>
<th>Title</th>
<th>Title</th>
</tr>
<tr>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
</table>

  下载 .zip 文件,解压并将名叫“tablecloth”的文件夹放在你的网站根目录下。
  添加下面两行代码到你的 <head /> 标签内:

<link href="tablecloth/tablecloth.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="tablecloth/tablecloth.js"></script>

修改

  外观修改在 CSS 文件 tablecloth.css 中进行。
  Tablecloth 允许你为表格元素(th 和 td)设计偶数或奇数行、经过、移出、点击和选择状态的样式。
  分别地,你可以选择是否高亮显示行、列或全部高亮,并且如果你可以让元素在点击时被选中。
  完成这些只需要修改 3 个变量(highlightRows、highlightCols、selectable),它们在 tablecloth.js 文件中可以被找到。
  设置值为 true 或 false。

官方网站:http://cssglobe.com/lab/tablecloth/
 

2008年12月21日星期日

公元 2008 年 05 月 12 日,中国四川汶川 8.0 地震

 
余震地点示意图(2008 年 05 月 25 日)


台湾专家分析的四川强震成因


四川汶川 5.12 特大地震


空中看地震后的汶川县映秀镇

 

2008年12月19日星期五

Iconize Textlinks with CSS 0.5 中文文档

 
用 CSS 展示超链接提示

如果链接带我到外链、打开窗口或者链接到文件(就像到另一个 HTML 页面),我喜欢使用小的靠近链接的图标来显示。
这里给出了怎样实现它的一种方法,并且支持 IE7、Firefox 和 Safari。

下载 ZIP

图像

首先,找到一些好看的 GIF 小图标(或更好的,或你自己创建它们),用来显示。
最好它们全部都是相同的大小(下面的都是 14 x 16 像素的),并且背景都是透明的。

链接到弹出窗口
链接到外部站点
表示一个邮件链接
链接到 PDF 文件
链接到 Word 文件
链接到 Excel 文件

范例 1 - 链接到 PDF 文件 - HTML

就像这个例子,我们开始链接到 PDF 文件。
看一看下面的 HTML 代码:

<a href="files/holidays.pdf">View Holidays</a>

链接产生的效果如下:

注意,这里没有“类”“ID”等东西辨别该链接来自哪里。
我们唯一知道它引导我们到 PDF 文件的原因是在 href 属性值最后几位的“.pdf”。

使用一些支持 IE7、Firefox 和 Safari 的 CSS 选择器,你可以应用样式声明到以标签属性为基础的值中。

范例 1 - 链接到 PDF 文件 - CSS

如果我们应用样式到上面的 HTML 代码:

a[href $='.pdf'] {
padding-right: 18px;
background: transparent url(icon_pdf.gif) no-repeat center right;
}

我们将得到像下面这样的:

它是怎么工作的?

上面的 CSS 规则将寻找所有 href 属性中以“.pdf”结束的 a 标签,然后给予该链接右侧一些额外的填充以让出足够的空间,来将小的 PDF 图标固定为背景图像。
美元符号表示结束。
因为 HTML 的 href 有一个“files/holidays.pdf”值,它将匹配上面的 CSS 声明,一个小的 PDF 图标将被显示在靠近链接的位置上。

范例 2 - mailto: 链接

足够简单。
现在,什么是 mailto: 链接呢?
看看下面的 HTML 代码:

<a href="mailto:billg@microsoft.com">Contact Me</a>

并应用下面的样式:

a[href ^="mailto:"] {
padding-right: 20px;
background: transparent url(icon_mail.gif) no-repeat center right;
}

注意规则中的脱字符号(^)。
脱字符号和等号表示“以什么开始”。
规则将寻找所有 href 属性以“mailto:”开始的 a 标签,然后给予链接右侧一些额外的填充,用来显示小的邮件图标的背景图像。

下面是显示的结果:

范例 3 - 链接到弹出窗口

开发者以一个非常标准的 Web 流行行为来区分标记 - 在链接中使用一些像“popup”的值来替代“类”或“ref”属性。
就像:

<a class="popup" href="help.html">Help Page</a>

使用同样的“类”或“ref”来显示我们的小图标。

a[class ="popup"] {
padding-right: 18px;
background: transparent url(icon_popup.gif) no-repeat center right;
}

规则将寻找所有 class 属性被设置为“popup”的 a 标签,然后给予链接右侧一些额外的填充,来显示弹出图标的背景图像。

寻找多个值中的一个

但是,如果我们的 class 或 ref 属性中有多个值呢?
链接如下 HTML 代码:

<a class="popup specialstyle" href="help.html">View Help</a>

现在,class 属性不等于“popup”,而被替代为“popup specialstyle”。
因此,规则将无法工作。
它看起来好像被空格所分隔。
你可以使用如下:

a[class ~="popup"] {
padding-right: 18px;
background: transparent url(icon_popup.gif) no-repeat center right;
}

波浪线(在大多数键盘的左上角被找到,需要 shift 键)和等号一起表示“寻找以空格分隔单词组出来的该单词”。
它将完美地尝试去匹配多个值中的一个。

摘要

这些选择器都不是新的,并且在这里提及的内容远远不够全面。
在 IE7 中有什么新的?因此我挑选了一些能在 IE7 和其它流行的浏览器中能够工作的 CSS 选择器,并且我知道它们在上面的效果中都是有用的。
如果它能帮助你查阅代码和使用一些图片进行显示,你可以 下载 ZIP(它包含了一些样例)。

原版英文:http://www.askthecssguy.com/2006/12/showing_hyperlink_cues_with_cs_1.html
 

SyntaxHighlighter 1.5.1 中文文档

 
概览
SyntaxHighlighter 概况

介绍

SyntaxHighlighter 背后的想法是,在不依赖任何服务器端脚本的情况下,允许在页面上插入着色的代码片段。

它为谁设计?

主要的目的是在于博客。
然而,我曾经看见一些源码站点使用它,主要用来显示源代码。

它不为谁设计?

SyntaxHighlighter 不是为那些寻找有能力编辑高亮代码的。
SyntaxHighlighter 不允许你编辑源代码,它现在不允许,将来也不打算允许。

性能

SyntaxHighlighter 使用正则表达式解析文本。
它并不是非常快,实际上,它是很缓慢的。
如果你尝试高亮显示几行代码,它将不会出现问题。
尝试高亮显示 10KB 左右的文本将会失败,因为 JavaScript 会执行一个漫长的时间。

HighlightAll 函数
dp.SyntaxHighlighter.HighlightAll()。

dp.SyntaxHighlighter.HighlightAll()

这是一个全局性的函数,它将找到网页上的所有代码块并转换为高亮显示的代码块。

参数

function dp.SyntaxHighlighter.HighlightAll(name, [showGutter], [showControls], [collapseAll], [firstLine], [showColumns])

name必须<pre /> 和 <textarea /> 元素使用的名字
showGutter可选打开或关闭全部已处理代码块的边沟
showControls可选打开或关闭全部已处理 <pre > 元素的控制
collapseAll可选打开或关闭全部已处理 <pre > 元素的折叠;如果 showControls 参数为 false,该值将被忽略
firstLine可选允许从线数开始的地方指定第一行;如果你想举例说明代码块位于相关的文件,这是很有用的
showColumns可选在第一行显示行列

任何值传送给 HighlightAll 调用将会覆写相应的配置选项。

剪贴板
复制到剪贴板。

复制到剪贴板

版本 1.5 建立了“复制到剪贴板”功能,可以用于所有支持 Flash 的浏览器。
它使用了 1x1 Flash 视频来复制代码到用户的剪贴板。

启用该功能,你必须设置 ClipboardSwf 变量为本地的 clipboard.swf 文件。
这些操作必须在调用 HighlightAll 函数之前完成。

<script class="javascript">
dp.SyntaxHighlighter.ClipboardSwf = '/flash/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script>

编程语言
支持的编程语言列表。

支持的编程语言

这里是一个支持的编程语言及它们的别名的列表。

编程语言别名
C++cpp, c, c++
C#c#, c-sharp, csharp
CSScss
Delphidelphi, pascal
Javajava
Java Scriptjs, jscript, javascript
PHPphp
Pythonpy, python
Rubyrb, ruby, rails, ror
SQLsql
VBvb, vb.net
XML/HTMLxml, html, xhtml, xslt

查阅用法页面以了解怎样使用别名。

特征
特征摘要

SyntaxHighlighter 特征

  01. 100% 客户端脚本,与服务器无关
  02. 多种编程语言的支持
  03. 简单使用和部署,只需要复制文件和连接它们到你的模板
  04. 多浏览器支持
  05. 非常轻量,压缩过的核心库只有 11KB,可添加你需要的任何 Brushes

Brushes
Brushes。

它们是什么?

Brushes,是我编制的为自己的编程语言调用高亮显示脚本的条款。
SyntaxHighlighter 使用模块化的方法,由核心库 shCore.js 和许多像 shBrushXml.js、shBrushCss.js 等的组成。

它们是怎样工作的?

每个 Brush 描述了一套特殊语言的规则。
规则基于关键字、正则表达式和 CSS 样式。
大多数语言都是用同样的语法并且以同样的方式进行解析,只要你提供一些基本的规则,如解析字符串、注释等。

你可以自定义编写一个完整的 Brush 并实现你自己的解析。
例如 shBrushXml.js。
它提供了对 XML/HTML 代码的格式化,这不同于 C# 或 Java 的样式。

用法
怎样使用 SyntaxHighlighter。

放置代码

放置你的代码到页面上并被包围在 <pre /> 标签中。
设置 name 属性为 code,而 class 属性设置为你希望使用的编程语言的别名。

<pre name="code" class="c-sharp">
... 一些代码 ...
</pre>

注意: 一个重要的事情要特别注意是开头的三角括号 <。它必须全部被替换为与 HTML 等价的 &lt;。操作失败的话,它不会打破页面,而会打破源代码的显示。

一个替代 <pre /> 的是使用 <textarea /> 标签。
它不会出现上面 < 字符的问题。
最主要的问题是它看起来效果没有 <pre /> 标签好,因为 JavaScript 一些时候不能工作(例如在 RSS 聚合中)。

<textarea name="code" class="c#" cols="60" rows="10">
... 一些代码 ...
</textarea>

扩展配置

这里给出一种方法来传递一些配置选项给代码块。
它由冒号分隔参数。

<pre name="code" class="html:collapse">
... 一些代码 ...
</pre>

让它工作起来

最后,要让所有东西适当的渲染在页面上,你必须给该页面添加 JavaScript 代码。

<link type="text/css" rel="stylesheet" href="css/SyntaxHighlighter.css"></link>
<script language="javascript" src="js/shCore.js"></script>
<script language="javascript" src="js/shBrushCSharp.js"></script>
<script language="javascript" src="js/shBrushXml.js"></script>
<script language="javascript">
dp.SyntaxHighlighter.ClipboardSwf = '/flash/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script>

对于最理想的效果,放置这些代码在你页面的最后。
检查 HighlightAll 函数以获得更多关于功能方面的详情。

<pre /> 和 <textarea />
关于 <pre /> 和 <textarea /> 的技术详情。

问题描述

使用 <pre /> 最基本的问题是无法向里面简单地复制和粘贴代码。
特别是把这些应用在 XML/HTML。

<pre /> 的问题是,浏览器会解析它里面的 HTML 代码,而在 <textarea /> 中的代码却不会被解析。
例如:

<pre><b>Hello</b></pre>

将会渲染 Hello,就像:

<textarea><b>Hello</b></textarea>

将会渲染:

<b>Hello</b>

如果你尝试使用 innerHTML 属性从 <pre /> 中取得 HTML,它将不会像你最初提供的 HTML 文件。
然而使用 <textarea />,属性值将返回你原先提供的内容。

结论

它让我想到了最后一点。
使用 <textarea />,你可以复制和粘贴源代码而不需要任何装饰修改。

使用 <pre />,你必须确认你的源代码不会被认为是 HTML,意思是你必须替换每个开头的三角括号 < 为 HTML 编码版的 &lt;。这足够让 <pre /> 标签良好工作。

Blogger 模式
Blogger 模式

Blogger 有一个恶劣的习惯,它会替换所有新行为 <br /> 标签,这让它不能提交代码为片段。

按照“Blogger 模式”准备的 1.5.1 版本环境,启用时需要在调用 HighlightAll() 函数之前调用 BloggerMode() 函数,如下面的例子:

dp.SyntaxHighlighter.BloggerMode();
dp.SyntaxHighlighter.HighlightAll('code');

备选方案
SyntaxHighlighter 备选方案。

客户端

  http://dean.edwards.name/my/examples/star-light/

服务器端

  http://qbnz.com/highlighter

痕迹
SyntaxHighlighter 在 Web 上的使用痕迹。

  Yahoo Developer Network
  Aptana

配置
代码块的配置选项。

配置选项

这些选项允许你单独设置文本选项。

nogutter将不显示边沟
nocontrols将不在顶部显示控制按钮
collapse将去除默认的块
firstline[value]将以 value 作为开始行计数,默认 value 是1
showcolumns将在首行显示行列数

这些选项将一起通过别名传递,并以冒号(:)为分隔符。

<pre name="code" class="html:nocontrols:firstline[10]">
... 一些代码 ...
</pre>


官方网站:http://code.google.com/p/syntaxhighlighter/
 

2008年12月15日星期一

Claroline 1.8.x 安装说明

 
  在你首次访问 Claroline 1.8.x 时(http://localhost/claroline1811/),将被提示一下信息:

WARNING ! SYSTEM UNABLE TO FIND CONFIGURATION SETTINGS.
If it is your first connection to your Claroline platform, read thoroughly INSTALL.txt file provided in the Claroline package.

警告!系统不能找到配置设置。
如果这是你第一次连接你的 Claroline 平台,请完全地阅读 Claroline 提供的 INSTALL.txt 文件。

  下面是对该文件的中文翻译。

Claroline 1.8

  感谢你下载 Claroline 1.8。
  该文本将通过 Claroline 1.8 基本的安装和操作来引导你。
  请确保在继续安装之前,你已经完全地阅读过。

目录

  1. 必要条件
  2. 安装步骤
    2.1 安装新的 Claroline
    2.2 在先前的 Claroline 版本上进行更新
  3. 发现并修复故障
  4. 管理

1. 必要条件

  a. 安装 Claroline 1.8 在计算机上,无论是本地还是远程,你的机器都需要以下操作系统之一:

      Linux / BSD / Unix (*)
      Windows (9x, Me, NT4, 2000, XP, Vista)
      MacOS X

    (*) 我们在 Debian、Ubuntu 和 Mandrake 发行版上彻底地进行了 Claroline 的测试,但其它 Linux 发行版也应该能够工作。
      我们已经收到用户在 Red Hat 和 Suse 上工作的明确的反馈信息。
      在遇到其它 Linux 发行版上工作的任何问题时,请不要犹豫,直接告知我们。

  b. 一个 Web 服务器(我们推荐 Apache,但其它的同样也能工作)。

  c. PHP 脚本语言(版本 4.3.10 及以上),配置一下模块:mysql, zlib, preg。
    大多数的 PHP4 编译发行版已经提供了以上模块。
    无论如何,Claroline 安装脚本将检查它们的存在。

    如果 PHP 设置没有配备:safe_mode = off,有些用户将会遇到问题。

  d. MySQL 数据库服务器(版本 4.0 及以上),外加通过帐号和密码登录来允许管理和创建至少一个数据库。

    Claroline 能够被安装于两种模式:“单一数据库”和“多数据库”。
    在“多数据库”模式中,Claroline 将为每个已经创建的课程创建一个新的数据库。
    该模式有时更适合于管理有着庞大数量的课程站点的平台。
    但是它意味着数据库账户将允许使用 Claroline 来创建和管理多个数据库。
    Claroline 默认设置将安装在“单一数据库”主机上。
    如果你想使用 Claroline 在“多数据库”模式,你必须在安装时特意地选择该项。

      警告:如果你使用“单一数据库”安装选项,它将被推荐只使用名为 Claroline 的数据库。
         如果你对其它应用程序共享了该数据库,在两个数据库的表名之间将发生干扰,会导致严重的问题。

  e. Claroline 被移动到或被解压到的 Web 目录需要 Web 写访问权限。
    在本地的 Windows 机器上,这不是个问题。
    远程地,你需要被允许通过 FTP、Telnet 或其它任何方式使用 CHMOD 命令(更改文件属性)。

  f. 邮件传输代理(MTA),这不是完全必须的。
    如果你没有提供 MTA,Claroline 一些功能将被悄悄地保留下来。
    大多数 Linux 发行版提供了 MTA(Sendmail, Qmail, PostFix...)。
    在 Windows 机器上,默认没有提供 MTA 功能。
    你可以修改 php.ini 文件来重定向邮件到一个 MTA 可用的其它机器上,或者安装 MTA 在 Claroline 服务器上。
    Windows 上有一些免费使用的 MTA(Mercury, Blat, Netmail95, WMailto, Hamster...)。

2. 安装步骤

  2.1 安装新的 Claroline

  a. 下载“claroline1811.tar.gz”。
    Windows:下载“claroline1811.zip”。

  b. 打开 Shell,来到下载目录并输入:tar -zxvf claroline1811.tar.gz。
    Windows:解压“claroline1811.zip”。

  c. 无论如何,通过 FTP 或移动将“index.php”文件和“claroline”目录放到你 Web 服务器的站点上(无论是 Web 根目录还是子目录)。
    “index.php”应该保留它原来的位置,即在“claroline”目录外面。

    Windows:如果你在本地使用 easyphp(),只需要拖放“index.php”文件和“claroline”目录到 C:\Program Files\easyphp\www\ 目录下即可。

  d. 该目录对于 everyone 要可读、可写和可运行:chmod ugo+w claroline1811/。

  e. 打开 Web 浏览器并来到:http://www.mydomain.org/mysite/mydir/claroline/install/。
    Windows:本地的 easyphp,打开:http://localhost/claroline/install/(不要忘记最后的 /)。

  f. 跟着下面的指导:

    Windows:如果你使用 easyphp 进行工作,MySQL 的帐号和密码应该保留为空。

  2.2 在先前的 Claroline 版本上进行更新

    更新工作只能从 Claroline 1.5.x、Claroline 1.6.x、Claroline 1.7.x 进行。
    更老的 Claroline 版本更新到 Claroline 1.8.x 之前,首先需要更新到 Claroline 1.5.x。

    在更新操作前,我们郑重推荐你完整备份先前的 Claroline 目录和数据库。
    如果你不确定怎样完成该操作,请询问你的主机提供商以获得建议。

  a. 下载“claroline1811.tar.gz”。
    Windows:下载“claroline1811.zip”。

  b. 打开 Shell,来到下载目录并输入:tar -zxvf claroline1811.tar.gz。
    Windows:解压“claroline1811.zip”。

  c. 使用新的“index.php”文件和“claroline”目录替换先前的内容。

      警告:在安装新的 Claroline 之前不要删除先前的目录。
         你将失去你先前的配置文件(例如“claro_main.conf.php”)。
         使用“copy”命令简单地将新的内容替换旧的目录。
         那样的话,新版本的文件将覆盖旧文件,并且完整保留其它的。

  d. 打开 Web 浏览器并来到:http://www.mydomain.org/mysite/mydir/claroline/admin/upgrade/upgrade.php。
    Windows:本地的 easyphp,打开:http://localhost/mydir/claroline/admin/upgrade/upgrade.php。

  e. 跟着下面的指导。

3. 发现并修复故障

  假设 Web 安装无法进行:

  如果必要,来到 http://www.claroline.net/ 并在支持论坛上提出问题。
  无论如何,如果这里已经对你的问题进行了解答,请查阅先前的消息。

4. 管理

  访问 Claroline 管理章节,打开 Web 浏览器并来到:http://www.mydomain.org/mysite/mydir/claroline/admin/。

欧洲,比利时,布鲁塞尔 2008 年 07 月 23 日

官方网站:http://www.claroline.net/
 

2008年12月6日星期六

NO.002 - 程序员.二进制运算规则

 
运算规则
加法(逢二进一)0 + 0 = 10 + 1 = 11 + 0 = 11 + 1 = 0(有进位)
减法(借一当二)0 - 0 = 00 - 1 = 1(有借位)1 - 0 = 11 - 1 = 0
乘法0 * 0 = 00 * 1 = 01 * 0 = 01 * 1 = 0
除法0 / 0 = 00 / 1 = 01 / 0 = 0(无意义)1 / 1 = 1

 

NO.001 - 程序员.数制及转换

 
一、基本概念

  01. 编码

  采用少量的基本符号,选用一定的组合原则,以表示大量复杂多样的信息。
  基本符号的种类和这些符号的组合规则是一切信息编码的两大要素。
 
  02. 进位记数制

  如果只用 r 个基本符号表示数值,则称为 r 进制(radix-r number system);r 称为该数制的基数(radix)。

    特点

    每一种数制都有固定的符号集;
    每一种数制都是用位置表示法(即处于不同位置的数符所代表的值不同,与它所在位置的权值有关)。

  03. 权

  各种进位记数制中的权值就是基数的某次幂。

  对任何一种进位记数制表示的数都可以写成按权展开的多项式之和。

  04. 进位数制公式

    Nr =

二、相关图表

  01. 计算机常用进位数制的表示

进位制二进制八进制十进制十六进制
规则逢二进一逢八进一逢十进一逢十六进一
基数r=2r=8r=10r=16
数符0,10,1,2,3,4,5,6,70,1,2,3,4,5,6,7,8,90,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
2i8i10i16i
表示符BODH

  二进制数中的一个 0 或 1 称为 1 比特(bit)。

  02. 二进制与八进制的对应关系

二进制八进制
0000
0011
0102
0113
1004
1015
1106
1117

  03. 二进制与十六进制的对应关系

二进制十六进制二进制十六进制
0000010008
0001110019
001021010A
001131011B
010041100C
010151101D
011061110E
011171111F

三、数制转换

  01. 二进制数 → 十进制数

  将二进制数的每一位数乘以它的权,然后将所得的全部值相加。

    (100110.101)2
   = 1*25 + 0*24 + 0*23 + 1*22 + 1*21 + 0*20 + 1*2-1 + 0*2-2 + 1*2-3
   = 32 + 0 + 0 + 4 + 2 + 0 + 0.5 + 0 + 0.125
   = (38.625)10

  02. 十进制数 → 二进制数

    a. 整数部分,除 2 取余;小数部分,乘 2 取整;然后合并。

    (37403.2134)10
   => 整数部分推导
   => 37403/2 = 18701 余 1 ↑
   => 18701/2 = 9350 余 1 ↑
   => 9350/2 = 4675 余 0 ↑
   => 4675/2 = 2337 余 1 ↑
   => 2337/2 = 1168 余 1 ↑
   => 1168/2 = 584 余 0 ↑
   => 584/2 = 292 余 0 ↑
   => 292/2 = 146 余 0 ↑
   => 146/2 = 73 余 0 ↑
   => 73/2 = 36 余 1 ↑
   => 36/2 = 18 余 0 ↑
   => 18/2 = 9 余 0 ↑
   => 9/2 = 4 余 1 ↑
   => 4/2 = 2 余 0 ↑
   => 2/2 = 1 余 0 ↑
   => 1/2 = 0 余 1 ↑(最终商为 0 时,逆序开始合并)
   => 1001001000011011
   => 小数部分推导
   => 0.2134*2 = 0.4268 整 0 ↓(顺序开始合并)
   => 0.4268*2 = 0.8536 整 0 ↓
   => 0.8536*2 = 1.7072 整 1 ↓
   => 0.7072*2 = 1.4144 整 1 ↓
   => 0.4144*2 = 0.8288 整 0 ↓
   => 0.8288*2 = 1.6576 整 1 ↓
   => 0.6576*2 = 1.3152 整 1 ↓
   => 0.3152*2 = 0.6304 整 0 ↓(需要提前设定转换精度)
   ......
   => 0.00110110...
   => 合并
   => (1001001000011011.0011011)2

    b. 把一个十进制数写成按二进制数权的大小展开的多项式,并按权值从高到低一次取各项的系数。

    (37403.2134)10
   =

  03. 二进制数 → 八进制数

  从小数点起,把二进制数每 3 位分成一组,然后写出每一组的等值八进制数,顺序排列起来就得到所要求的八进制数。

    (100101001001011101.11010100101)2
   = 100,101,001,001,011,101.110,101,001,100
   = 4 ,5 ,1 ,1 ,3 ,5 .6 ,5 ,1 ,4
   = (451135.6514)8

  04. 八进制数 → 二进制数

  将 1 位八进制数用 3 位二进制数表示。

    (6254172.117002)8
   = 110,010,101,100,001,111,010.001,001,111,000,000,010
   = (110010101100001111010.00100111100000001)2

  05. 十进制数 → 八进制数

  整数部分,除 8 取余;小数部分,乘 8 取整;然后合并。

    (38947164.183593)10
   => 整数部分推导
   => 38947164/8 = 4868395 余 4 ↑
   => 4868395/8 = 608549 余 3 ↑
   => 608549/8 = 76068 余 5 ↑
   => 76068/8 = 9508 余 4 ↑
   => 9508/8 = 1188 余 4 ↑
   => 1188/8 = 148 余 4 ↑
   => 148/8 = 18 余 4 ↑
   => 18/8 = 2 余 2 ↑
   => 2/8 = 0 余 2 ↑(最终商为 0 时,逆序开始合并)
   => 224444534
   => 小数部分推导
   => 0.183593*8 = 1.468744 整 1 ↓(顺序开始合并)
   => 0.468744*8 = 3.749952 整 3 ↓
   => 0.749952*8 = 5.999616 整 5 ↓
   => 0.999616*8 = 7.996928 整 7 ↓
   => 0.996928*8 = 7.975424 整 7 ↓
   => 0.975424*8 = 7.803392 整 7 ↓
   => 0.803392*8 = 6.427136 整 6 ↓
   => 0.427136*8 = 3.417088 整 3 ↓(需要提前设定转换精度)
   ......
   => 0.13577763...
   => 合并
   => (224444534.13577763)8

  06. 八进制数 → 十进制数

  将八进制数的每一位数乘以它的权,然后将所得的全部值相加。

    (674261.173)8
   = 6*85 + 7*84 + 4*83 + 2*82 + 6*81 + 1*80 + 1*8-1 + 7*8-2 + 3*8-3
   = 196608 + 28672 + 2048 + 128 + 48 + 1 + 0.125 + 0.109375 + 0.005859375
   = (227505.240234375)10

  07. 十进制数 → 十六进制数

  整数部分,除 16 取余;小数部分,乘 16 取整;然后合并。

    (92476318.16298)10
   => 整数部分推导
   => 92476318/16 = 5779769 余 14 => E ↑
   => 5779769/16 = 361235 余 9 => 9 ↑
   => 361235/16 = 22577 余 3 => 3 ↑
   => 22577/16 = 1411 余 1 => 1 ↑
   => 1411/16 = 88 余 3 => 3 ↑
   => 88/16 = 5 余 8 => 8 ↑
   => 5/16 = 0 余 5 => 5 ↑(最终商为 0 时,逆序开始合并)
   => 583139E
   => 小数部分推导
   => 0.16298*16 = 2.60768 整 2 => 2 ↓(顺序开始合并)
   => 0.60768*16 = 9.72288 整 9 => 9 ↓
   => 0.72288*16 = 11.56608 整 11 => B ↓
   => 0.56608*16 = 9.05728 整 9 => 9 ↓
   => 0.05728*16 = 0.91648 整 0 => 0 ↓(需要提前设定转换精度)
   ......
   => 0.29B90...
   => 合并
   => (583139E.29B9)16

  08. 十六进制数 → 十进制数

  将十六进制数的每一位数乘以它的权,然后将所得的全部值相加。

    (4DA561B.FE13A)16
   = 4*166 + D*165 + A*164 + 5*163 + 6*162 + 1*161 + B*160 + F*16-1 + E*16-2 + 1*16-3 + 3*16-4 + A*16-5
   = 4*166 + 13*165 + 10*164 + 5*163 + 6*162 + 1*161 + 11*160 + 15*16-1 + 14*16-2 + 1*16-3 + 3*16-4 + 10*16-5
   = 67108864 + 13631488 + 655360 + 20480 + 1536 + 16 + 11 + 0.9375 + 0.0546875 + 0.000244140625 + 0.0000457763671875+0.0000095367431640625
   = 81417755 + 0.9924869537353515625
   = (81417755.9924869537353515625)10

  09. 二进制数 → 十六进制数

  从小数点开始,每 4 位二进制数为一组,将每一组用相应的十六进制数符来表示。

    (1101010111000111110.110101011011001101)2
   = 0110,1010,1110,0011,1110.1101,0101,1011,0011,0100
   = 6 ,A ,E ,3 ,E .D ,5 ,B ,3 ,4
   = (6AE3E.D5B34)16

  10. 十六进制数 → 二进制数

  将 1 位十六进制数用 4 位二进制数表示。

    (AEF34B.2CD9)16
   = 1010,1110,1111,0011,0100,1011.0010,1100,1101,1001
   = (101011101111001101001011.0010110011011001)2

  11. 八进制数 → 十六进制数

  八进制数 → 二进制数 → 十六进制数

  将 1 位八进制数用 3 位二进制数表示;从小数点开始,每 4 位二进制数为一组,将每一组用相应的十六进制数符来表示。

    (7126534.1762354)8
   = 111,001,010,110,101,011,100.001,111,110,010,011,101,100
   = (111001010110101011100.0011111100100111011)2
   = 0001,1100,1010,1101,0101,1100.0011,1111,0010,0111,0110
   = 1 ,C ,A ,D ,5 ,C .3 ,F ,2 ,7 ,6
   = (1CAD5C.3F276)16

  12. 十六进制数 → 八进制数

  十六进制数 → 二进制数 → 八进制数

  将 1 位十六进制数用 4 位二进制数表示;从小数点开始,每 3 位二进制数为一组,将每一组用相应的八进制数符来表示。

    (A013F2.C9DB)16
   = 1010,0000,0001,0011,1111,0010.1100,1001,1101,1011
   = (101000000001001111110010.1100100111011011)2
   = 101,000,000,001,001,111,110,010.110,010,011,101,101,100
   = 5 ,0 ,0 ,1 ,1 ,7 ,6 ,2 .6 ,2 ,3 ,5 ,5 ,4
   = (50011762.623554)8

四、规律总结

  01. 非十进制数 → 十进制数

  将 r 进制数的每一位数乘以它的权 ri,然后将所得的全部值相加。

  02. 十进制数 → 非十进制数

  整数部分(除 r 取余)和小数(乘 r 取整)部分分别转换,然后再合并。
 

2008年12月5日星期五

NO.000 - 程序员.计算机系统概述

 
一、计算机系统的组成

计算机系统┬硬件系统┬主机┬CPU ┬运算器
     │    │  │   └控制器
     │    │  └内存储器(主存储器)
     │    └外部设备┬输入设备
     │         ├输出设备
     │         └外存储器(辅助存储器)
     └软件系统┬系统软件
          └应用软件

  01. 计算机硬件

  基本的计算机硬件系统由运算器、控制器、存储器、输入设备和输出设备五大部件组成。

  中央处理单元(Central Processing Unit,CPU):运算器、控制器。
  运算器:对数据进行加工处理,完成算术和逻辑运算。
  控制器:从主存中取出指令并进行分析,控制计算机的各个部件有条不紊地完成指令的功能。

  存储器(记忆设备)。
  内部存储器(Main Memory,MM,内存/主存):速度高、容量小,临时存放计算机运行时所需的程序、数据及中间结果。
  外部存储器(外存):容量大、速度慢,长期保存信息。
  寄存器:CPU 中的记忆设备,临时存放指令、数据及运算结果。
  与内存储器相比,寄存器的速度要快得多。

  主机:CPU 和主存储器的有机结合。

  输入/输出(或 I/O)设备:置于主机之外,是计算机系统与外界交换信息的装置。
  所谓输入/输出都是相对于主机而言的。
  输入设备:把信息转换成二进制形式输入到计算机的存储器中。
  输出设备:把运算处理结果按照人们所要求的形式输出到外部存储介质上。

  02. 计算机软件

  计算机软件:指为管理、运行、维护及应用计算机所开发的程序和相关文档的集合。

二、计算机的类型

  现代计算机所使用的关键元器件是超大规模集成电路。

  01. 按计算机的工作能力

    巨型机、大型机、小型机、微型机(台式计算机(desktop)、膝上型电脑(laptop)、笔记本电脑(notebook)、工作站(workstation)、掌上型电脑、个人数字助理(Personal Digital Assistant、PDA))。

  02. 按功能是否专一

    通用计算机、嵌入式计算机。

  03. 按计算机处理信息的特征

    单指令流单数据流计算机(SISD)、单指令流多数据流计算机(SIMD)、多指令流单数据流计算机(MISD)、多指令流多数据流计算机(MIMD)。

三、应用领域

  数值计算、数据(或信息)处理、实时控制(或过程控制)、人工智能、计算机辅助设计(CAD)、计算机辅助教学(CAI)、计算机辅助管理(CAM)。
 

2008年12月2日星期二

2008年12月1日星期一

NO.009 - HFS.菜单.虚拟文件系统菜单

 

原版英文:http://shisanfeng.blogspot.com/2008/12/no008-hfs.html
 

NO.008 - HFS.菜单.主菜单

 
菜单项

  其它选项

  上传

  开始/退出

    自动关闭

  虚拟文件系统

  限制

  Flash 工作按钮

  托盘图标

  IP 地址

  允许连接

  动态 DNS 更新器

  URL 编码

  更新

  保存选项

原版英文:http://www.rejetto.com/wiki/index.php/HFS:_Main_menu
 

2008年11月28日星期五

NO.007 - HFS.指南.用户组

 
  在 HFS 中你实际上找不到用户组,但它是帐户链接的。
  这是一种更加有用的方式,但你可能需要花几分钟来掌握如何使用它们。

获取组设置

  你可以通过帐户链接来获得一些用户组的功能。
  第一件事情就是要明白:建立用户组,首先要创建帐户。

  跟着下面的步骤:

    a. 建立一个名叫 A 的帐户。
    b. 选中“group”选项。
    c. 以后,你若是想要建立类似 A 组的所有帐号,可以在“Linked”字段填充 A。
    d. 完成。





更多内容

  如果在组中激活了“no limits”功能,链接到该组的所有帐户都将为“no limits”。

  这对于“redirection”字段也是有效的。

直达核心

  对于所有工作来说,这并不都是显而易见和容易理解的。
  在不同的情况下有不同的逻辑,因此让我们看看详细的说明。

  你可以通过任何方式链接帐户/组,该图表将给你展示:



  这些凌乱的东西的结果是什么呢?

  User1 将有用你赋予它本身的全部权限,同时也包括 group5、group3、group2 和 group1 的权限。

  User2 将拥有它本身的以及继承于 group4、group2 和 group1 的权限。

  只需记住链接只有一种方式,例如,group3 继承自 group2,而 group2 没有继承任何项目。

原本英文:http://www.rejetto.com/wiki/index.php/User_groups
 

2008年11月27日星期四

NO.006 - HFS.指南.细微改良

 
  HFS 是一个功能极端丰富的应用程序。
  本章节讲解了怎样使用最流行的功能及选项。

HTML 编辑器和模板

  警告

  一些用户已经报告了在他们的默认浏览器上显示改变了的网站所出现的问题。
  这些问题通常通过刷新浏览器缓存来得到解决(大多数系统是“F5”键)。

  尽管默认的 HFS 模板对于许多用户已经足够满意,但 HFS 给出了一个简单使用不同模板的方式以用来显著地改善感观。
  你可以随意地进行试验,因为 HFS 编辑器包含了“Restore default”功能以便导入 HFS 支持的默认 *.tpl 文件。

  例如,这里显示了在 Firefox 中“样例站点”的基本视图。



  并且这是相同站点应用不同模板的视图。



  (注意,以上图片已经被缩小和截短,因此它可以轻松地显示。
  实际上,样例“black”模板的图片在显示和工作时都非常完美。)

  修改模板

  与试图从零开始创建一个模板相比,修改现有的模板将更加简单。
  你可以在用户论坛(http://www.rejetto.com/forum/index.php?board=27.0)和该站点(http://ledufe.no-ip.info:2222/HFS-templates/)中找到一些很好的模板样例。

  你可能会意识到,一个 HFS 模板(一个 *.tpl 文件)包含了由 HFS 建立的最终 HTML 中的原始元素。
  严格来将,它不是真正的 HTML,但是你会发现,如果将上面站点中真实的 HTML 文件的扩展名改为 *.tpl,HFS 编辑器将无缝地进行处理。

  在开始之前,一个非常好的习惯是在你的“HFS”文件夹下建立一个名叫“Templates”的文件夹。
  例如,C:\HFS\Templates。

  按照下面的步骤,应用上面插图中的“black”模板。

    a. 从网站(http://ledufe.no-ip.info:2222/HFS-Templates/)中下载名叫“Beta Black Template v3.htm”的文件,并复制(或移动)到“Templates”文件夹。
    b. 在 HFS 中选择“Edit HTML template”以打开编辑器并自动加载当前模板(如果你没有做过任何改变,将会是默认的模板)。
    c. 点击“Import”,如果必要,导航到 C:\HFS\Templates 文件夹,选择“Beta Black Template v3.tpl”并点击“OK”。
    d. 当一个新的模板被加载到编辑器中,点击“Apply”,再点击“OK”(关闭编辑器)。
    e. 在 HFS 窗口,选择根目录(/),右击并选择“Browse it”,来查看你所作改变的效果;如果必要,记得刷新浏览器的缓存(大多数系统是“F5”键)。

  改变模板

  现在,你可能想对模板进行一些有选择的小改动来查看它的效果,按如下操作:

    a. 在 HFS 中选择“Edit HTML template”以打开编辑器并自动加载当前模板(如果你没有做任何改动的话,将是“Beta Black Template v3.tpl”模板)。
    b. 导航到模板的样式段落,找到这一行:“body, .row{color:#000000}”。
    c. 在 HTML 中,颜色通常是以十六进制来识别的;“OD8BE9”表现了一个典型合理的蓝色;改变上面这一行为“body, .row{color:#0D8BE9}”并点击“OK”。
    d. 回到 HFS 主窗口,选择根目录(/),右击并选择“Browser it”来查看你所作改变的效果。
    e. 你将注意到站点的这一部分项目现在已经被显示成蓝色了;如果必要,记住刷新浏览器的缓存(大多数系统是“F5”键)。
    f. 如果你希望在模板中永久保持这种改变,在 HTML 编辑器中点击“OK”,否则点击“Undo”。



  上面的插图在原则上是安全地编辑 HTML 模板的一种方式。
  另外,你可以依你的应用和确定的改变保存“Export”(导出)不同版本的模板。

  背景颜色

  一个最引人注目的视觉改变是更换背景颜色。
  这个是被样式段落中的该行代码所控制:“body{margin:0; background-color:#51595B; padding:10px; color:#FFFFFF}”。
  尝试改变颜色为“#0D8BE9”。



  不是每个人都通晓十六进制的颜色代码。
  你可以下载免费的 Pixeur 程序(http://www.veign.com/download_app.asp?app=107)。
  该“pick”工具允许你点击屏幕的任何地方,并显示对应的十六进制值(同时包含其它一些东西)。

  高级样例

  下面插图显示的模板叫做“!!!ledufe.tpl”。



  乍一看,它看起来只是对默认模板完全简洁的变动,但是它实际上使用了一些非常高级的功能。

  例如,如果你点击屏幕上指向“Google”标志的按钮,你将立即浏览到 Google 网站并能马上执行 Internet 搜索。

  本页最中心的内容是:

    a. 显示你是否已经登录到“Hamachi”网络;并且如果不在线,允许自动登录。
    b. 允许你调用和登录 Skype 消息器,并使用 Skype 电话。
    c. 让你登录到 Windows 消息器。
    d. 让你访问其它的微软服务。

  工具栏横跨顶部,允许你访问更多的功能,包括“Site”导航,进一步“Hosted Sites”,并在 HFS 浏览器中改变实际建立该网页的 CSS 类型,一个网站的“Search”框,和这个:



  这可以让你自定义“HFS Tools”,控制你的浏览器的标签或收藏夹,让你的网站访问者使用你喜欢的 MP3 播放器来接收流式音乐文件。

  在模板样例图库中有许多较好模板的样例,并连同提供它们各自的构造注释。

像 Windows 服务一样运行 HFS

  这里有数个很好的理由来像 Windows 服务一样运行 HFS。

  它确保 HFS 可以:

    a. 在登录之前即可启动,并不断地运行在多用户会话中。
    b. 对于无意或恶意的关机操作,HFS 相对是较安全的。
    c. 在失败事件发生时,能够自动重新启动。
    d. 能够在特定的时间运行。
    e. 能够根据特殊用户的权利和权限来被执行。

  这里有几种方法来取得这些。
  XP 下,最简单的方式是在 ledufe(http://www.rejetto.com/forum/index.php?action=dlattach;topic=4084.0;attach=494)直接下载该托盘图标功能组件。
  它只工作在微软的 .NET Framework 2.0 平台,在微软网站上可免费下载(http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en)。

  从 .zip 文档中解压文件到一个适当的文件夹,如:C:\HFS,双击 hfs2Service.exe,显示如下:



  你将注意到有两个文件被添加到该文件夹,名字为 HFS-Service.exe 和 HFS-Service.ini。
  点击“Create”来安装服务,然后点击“Start”。
  确认消息“RUNNING”将被显示,并且 HFS 图标被显示在通知区域。

  在 XP 中,你可以在控制面板中检查“Administrator Tools”下的“Services”来确认它是否正常工作。



更新

  新版本 HFS 的发布将是非常频繁的。
  尽管你可以在网站(http://www.rejetto.com/hfs/?f=dl)上下载最新的版本,但最简单的方式是使用“Check for news/updates”。

  你不需要停止 HFS 服务器,或是做一些任何其它的准备,然而在安装新版本之前使用“Save file system”通常是最佳的实践。
  如果存在可用的新版本,你将看到一个这样的消息框:



  点击“OK”:



  点击“Yes”启动下载和安装进程。
  一个“DOS box”将如下显示:



  在一个短暂的延迟之后,你将注意到你的服务器已经自动被停止和重启,并且新版本序号被显示在标题栏中。
  一个非常好的实践是,使用“Self Test”来检测所有工作是否正常。

  查阅 HFS 命令行参数以获取在该模式下进行 HFS 操作的更多信息。

原版英文:http://www.rejetto.com/wiki/index.php/Refinements
 

2008年11月26日星期三

NO.005 - HFS.指南.第一次配置

 
  如果你通过硬件防火墙/路由器连接 Internet,为了让 HFS 能够正确地工作,你必须要配置你的路由器。
  关键的工作被叫做“端口转换”。

  你可以在这里获取端口转换的相关帮助:http://www.portforward.com/,并且也可在 HFS 论坛上找到:http://www.rejetto.com/forum/index.php?board=27.0

  许多防火墙仍然需要你给出 HFS 的许可来发送和接收文件。

概要

  本章节讲解了你应该如何去建立一个工作良好、完全安全和受保护的 HFS 服务器。
  这些工作包括:

    a. 启动和测试。
    b. 添加上传和下载文件夹。
    c. 确认地址。
    d. 设置密码。
    e. 定义用户帐户。
    f. 保存配置。

初始化状态

  当你配置完你的路由器,双击名叫“hfs.exe”的文件以启动服务器。
  最初,它看起来像这样:



  当然,上面插图的地址栏中看到的“地址”并非是你的服务器上的。

自检

  现在,使用“Self Test”以确保你的服务器在 Internet 上是可见的。
  点击选项并跟随屏幕上的提示。
  一次成功的测试,会弹出如下内容:



  “Self Test”是一个令人惊奇而强大的 HFS 功能。
  它不仅检测在 Internet 上的可见性,并同时尝试自动修补一些常见的连接问题。

  概括地讲,如果“Self Test”成功,你几乎可以肯定服务器在 Internet 上是可见的,并且服务器已准备好接收和处理上传和下载请求。
  但同样,如果自检失败的话,你需要继续进行一些小的配置,直到解决该连接问题。
  (大多数故障只需适当地转换端口)

  你将看到原来首次显示的地址现在被改为你的正常 IP 地址。
  点击菜单“IP Address”来查阅多种可用的地址处理选项。
  但是现在不要改变它。
  你可以在这里检查你的正常 IP 地址:IP Address(http://www.whatismyipadress.com/)或 Audit PC(http://www.auditpc.com/whats-my-ip.asp)。

添加一个上传文件夹

  下一步,添加一个上传文件夹,以便你的朋友能够简单的给你发送文件。
  这必须是一个真实的文件夹(参阅 HFS 词汇表)。
  按如下操作:

    a. 使用 Windows 资源管理器在你的硬盘上建立一个新的文件夹,如:C:\Uploads。
    b. 如果你已经在 Windows 资源管理器的上下文菜单中集成了“Add to HFS”,简单地右击文件夹并选择该项;然后在产生的对话框中选择“Real Folder”即可。
    c. 另外一种方式是拖放“Uploads”文件夹到服务器窗口中左边名叫“Virtual File System”的面板中。
    d. 确定“Uploads”文件夹已被选定(也就是它已获得焦点);使用“Upload - Upload for accounts - Anyone”命令以便你的任何朋友都能访问该文件夹。
    e. 你可以对“Uploads”文件夹进行密码保护,但是大多数用户都不会这么做,以方便他们的朋友能够没有任何限制地上传文件(查阅下面的密码保护)。
    f. 你可能关心网站的用户在访问时所看到的内容,你可以在 Internet 浏览器中输入(或粘贴)http://localhost/ 来检查;也可以使用 HFS 上的“Browser”功能。

添加一个下载文件夹

  下一步,添加一个下载文件夹,以便你的朋友能够从你那里简单地下载文件。
  这可以是一个虚拟文件夹(查阅 HFS 词汇表),但第一次使用时,它可能比使用真实的文件夹更简单。
  按如下操作:

    a. 使用 Windows 资源管理器在你的硬盘上建立一个新的文件夹,如:C:\Downloads;复制一些测试文件在这里,你可以想象为你的朋友所需要的,如 .mp3 等。
    b. 如果你已经集成“Add to HFS”功能到上下文菜单,在文件夹上右击并选择该项即可;在产生的对话框中选择“Real Folder”。
    c. 另外一种方式是,拖放“Downloads”文件夹到服务器窗口中左边名叫“Virtual File System”的面板中。
    d. 你可能需要密码保护“Downloads”,但是,假设你的系统有适当的安全(也就是至少更新了防火墙),在你完成配置的过程中,可以让 HFS 在没有任何限制的情况下保持安全几分钟(查阅下面的密码保护)。
    e. 你可以在 Internet 浏览器中输入(或粘贴)http://localhost/ 来检查网站的用户在访问时所看到的内容;也可以使用 HFS 上的“Browser”功能。

  HFS 的“Virtual File System”面板现在看起来如下:



  在浏览器中输入 http://localhost/ 现在显示如下:



发布地址

  现在,你的朋友可以下载你添加到硬盘上 C:\Downloads 文件夹下的任何文件了。
  你也可以给他们网站的地址:



  或者是文件夹“Downloads”的地址:



  如果你的文件夹名称中包含空格,则地址中可能包括 % 符号和一些不想要的数字。
  为了增加地址的可读性,你可以使用 HFS 的“URL Encoding”功能(专家模式“Expert mode”下的主菜单)。
  不选“Encode spaces”选项,来去除常规表现空格时的 % 符号和多余的数字。
  地址将稍微变得清晰和可读。

  警告

  许多 HFS 用户喜欢在使用聊天或消息应用程序时,将网站地址给他们的伙伴。
  在这种情况下,如果你试图发送可读性更高的地址版本,你可能找到一些不同之处。
  (例如,消息浏览框,当它遇见没有编码的空格时,它通常会冻结。)
  一种解决办法是,右击 HFS 地址(或文件夹、或文件、或项目),使用“Copy URL”。
  你可以简单地粘贴地址到你的聊天浏览框中。

  一种简洁避免任何像这样的问题的解决办法是,只建立名称中没有包含空格的文件夹。
  例如,“Downloads”、“Mother”、“Music”、“Catherine”等等。

密码保护

  你可以指定密码来保护文件夹、文件、项目或整个站点。
  这个和建立用户帐户是不一样的(查阅下面)。

  例如,密码保护“Downloads”文件夹,点击文件夹来选择它,然后右击并选择“Set user/pass”选项。
  接着出现对话框:



  在你点击“OK”以后,只有使用正确的帐号和知道密码的用户能够访问该文件夹。
  你将在 HFS 中注意到一个锁定图标出现在相关文件夹附近。



  要移除保护,点击“Reset user/pass”即可。

密码和文件夹约束

  一些用户对于使用 HFS 的文件夹限制和“username/password”功能感到困惑。

  一个理想的可能是,获得高安全的 HFS 服务器,而根本不使用“username/password”功能。

  最好的实践是只保护你的 HFS 文件夹。
  这是 HFS 和常规文件服务器之间的最关键不同。
  许多使用过常规服务器的用户发现,你不得不拥有一个帐号,并且在登录之前你不能做任何事情。

  而 HFS 不是像这样。

  例如这个站点,“rojetto”(无论是谁)没有帐号。
  但是他可以访问“Uploads”和“4rojetto”文件夹。
  他不能访问“Downloads”文件夹(因为他不知道密码)。
  你可以看到“Downloads”文件夹有一个锁闭图标,表示它已经被锁定了:



  你也可以密码保护根目录:



  现在,“rojetto”(他依然不知道密码)能够看到这些文件夹,但是不能访问它们。

  然而,为了额外的安全,你可以建立用户帐户。

用户帐户

  使用“Restrict access”功能来建立用户帐户。



  假设之前你还没有建立任何帐户,选择“Downloads”文件夹,点击“New account”,显示如下:



  填写“Username”和“Password”并点击“OK”。

  再次点击“Restrict account”,检查刚才正确建立的帐户。

  如果你点击“All exsiting accounts”,所有拥有帐户的用户(包括你刚刚建立的那个)必须键入帐号和密码才能访问“Downloads”文件夹。

  如果你点击“No account”,你实际上移除了保护项目的全部帐号/密码。

保存你的配置

  如果你已经按照上面的提纲那样处理,你现在有了简单、方便使用 HFS 服务器并使它完全安全和受保护的方式。

  最后的任务就是使用“Save file system”功能来保存你的工作。

  你将被提示使用怎样的文件名。
  很多用户发现它使用便利的递增命名系统,例如,“01.vfs”、“02.vfs”、“03.vfs”等等。
  但是,当然,你可以采用任何你喜欢的命名系统。

  警告

  不要尝试改变默认的文件扩展名;一直是“vfs”。

  查阅细微改良以获得更多有关 HFS 包含的其它功能的按部就班的指导。

原版英文:http://www.rejetto.com/wiki/index.php/First_time_configuration