KeePass 教程

如今,我们的生活充斥着各色各样的密码。所谓密码管理器,就是用一个主密码来保护所有其他密码。使用密码管理器,可以减轻记忆负担,而且只要在主密码不泄漏或者遗忘的情况下,我们的账户安全就能够得到保障。

本文所要介绍的 KeePass 就是一款出色的密码管理器,KeePass 具有以下优点:

  • 简单易用,易于上手。
  • 功能全面,既能保存密码,还能生成健壮的密码
  • 开源软件,安全性更高
  • 跨平台软件,支持 Windows、Linux 和 Mac 三大平台,甚至还有移动操作系统版本。
  • 移动版软件,便携绿色。

下面,我们一起来学习如何使用 KeePass。

下载安装 KeePass

KeePass 有经典版本 1.x 和专业版本 2.x 两种版本,主要有如下两点区别:

  1. KeePass 2.x 需要 .NET 2.0 以上版本(Windows Vista 以上版本已经预装)才能运行,而 1.x 不需要任何依赖。
  2. KeePass 2.x 功能更全面,例如增加了双通道自动输入混淆功能。

由于 KeePass 2.x 功能更为全面,我推荐大家选用这一版本。下文将以 KeePass 2.x 版本为例进行讲解。

访问 KeePass 官网下载页面 http://keepass.info/download.html ,左栏的 Classical Edition 为 KeePass 1.x 版本,右栏的 Professional Edition 为 KeePass 2.x 版本,每一栏中都有两个下载链接,分别是 Installer EXE for Windows 和 ZIP Package,即安装程序和移动版本,请按照自己的需要选择下载。

KeePass 的安装过程非常简单,按照提示安装即可。

安装 KeePass 完成之后,请访问 http://keepass.info/translations.html 下载中文语言包,页面中 Chinese, Simp. 即是简体中文语言包(五星红旗处),注意选择对应版本语言包。下载解压之后将 KeePass 的语言文件(*.lngx)复制到 KeePass 的安装目录。复制完成之后启动 KeePass,选择 View 菜单,点击 Change Language,在弹出的对话框中选择 Simplified Chinese,KeePass 将要求重新启动,点击 Yes 重新启动 KeePass 即可。

对于 Ubuntu 用户,请参阅如何在 Ubuntu 中安装 KeePass 2 进行安装设置。

KeePass 教程

2.1 创建密码数据库

开始使用 KeePass 之前,首先需要创建密码数据库以保存密码,步骤如下:

  1. 启动 KeePass,选择文件菜单,选择新建选项。
  2. 选择数据库文件保存路径,请将其存放在安全之处并注意备份。
  3. 选择数据库保护方式,包括以下三种类型:
    • 主密码:最为传统的保护方式,输入足够健壮而又易记的密码即可。
    • 密钥文件:保存一个密钥文件作为访问密码数据库的凭据,选择这种方式必须注意密钥文件的安全。
    • Windows 用户帐户:将密码数据库和 Windows 账户关联,只要使用当前 Windows 账户登录即可使用,但是如果重装系统的话请先导出当前账户,否则密码数据库将无法使用。

三种方式可以叠加使用,但是推荐大家使用主密码的方式进行保护。

  1. 最后对密码数据库进行设置,包括数据库名称、加密选项等等,请按照自己的需要进行设置即可。

2.2 保存密码及自动输入

此处将以 Gmail 为例讲解如何保存密码和自动输入,步骤如下:

  1. 运行 KeePass,点击添加记录(或者按下 Insert 键),弹出添加记录对话框。

  2. 在记录标签页中需要填写的项目主要有以下几项:

    • 标题:需要输入密码的窗口标题,该信息是 KeePass 在全局自动填写时用于选择帐户密码的根据。在本例中为打开 Gmail 网址后,浏览器标题栏的部分内容,比如 Gmail。
    • 用户名:在本例中为 Gmail 账号。
    • 密码:在本例中为 Gmail 的登录密码。
    • 网址:用于按下 Ctrl + U 快捷键 快速启动相关网址或程序,在本例中为 http://gmail.com 。如果需要设置程序时则输入 cmd:// 程序文件路径,或者点击工具按钮,选择其中的网址:选择程序选项。

在自动输入标签页,还可以勾选双通道自动输入混淆选项,以阻止木马通过键盘记录窃取你的密码,但是只有支持 Ctrl + V 快捷键粘贴的窗口才能使用。 设置完成之后启动浏览器(如果设置网址的话可在选中相关条目后按下 Ctrl + U 启动),按下快捷键左 Ctrl + Alt + A(注意关闭中文输入法),KeePass 将自动输入密码并登录 Gmail。除此之外还可以先选择浏览器窗口,然后调出 KeePass(快捷键左 Ctrl+Alt+K),在相应密码条目右击,选择执行自动输入,KeePass 就会自动输入账户密码,注意 KeePass 是按照前一焦点窗口的原则选择输入窗口的,所以请保证前一焦点窗口是正确的。

2.3 自定义自动输入方式

由于 KeePass 按照 {USERNAME}{TAB}{PASSWORD}{ENTER} 的序列输入密码的,一些网站或者软件不能正常登录。例如 TM 启动之后默认焦点是在密码输入框处,使用默认序列会出错。这时我们可以通过自定义自动输入序列来解决这一问题。

首先参照上述方法建立新密码条目,标题填入 TM,网址填入 CMD://”C:\Program Files\Tencent\TM2009\Bin\TM.exe”(由于目录中含有空格,因此必须包括英文双引号)。然后切换到自动输入标签页,勾选替代默认规则后,在输入框中输入以下内容:

+{TAB}{USERNAME}{TAB}{PASSWORD}{ENTER}

现在切换到 TM,按下左 Ctrl + Alt + A 即可自动登录。QQ 的设置与之类似,只要注意标题改为 QQ 即可。

下面我来介绍一下自动输入序列,默认输入序列是{USERNAME}{TAB}{PASSWORD}{ENTER},其中{USERNAME}是用户名,{PASSWORD}是密码,{TAB}是 Tab 键(用于切换焦点),{ENTER}是 Enter 键。一些特殊键的对应表可见官网文档 http://keepass.info/help/base/autotype.html#autoseq ,上面所用的 + 所对应的就是 Shift,和 Tab 组合之后可以跳到前一个输入框从而输入用户名。知道特殊键对应和写作规律之后我们也可以按照自己的情况写作特殊的自动输入序列。

2.4 生成安全密码

在新建密码条目时,点击确认密码文本框右侧的生成密码,选择打开密码生成器,就可以打开如下图所示的密码生成器。

在密码生成器中可以对密码生成方案进行配置,如密码长度、密码组成等等,设置完成后点击确定回到添加记录对话框,点击密码文本框右侧的用星号 显示 / 隐藏密码按钮,将密码复制出来用于注册,最后按照通常步骤添加密码记录即可。

上面就是使用 KeePass 的一些基本方法,除此之外,KeePass 还具有插件机制,请大家自行探索。

本文历史:

2011 年 4 月 26 日:初稿完成 2011 年 5 月 1 日:第一次修改 2011 年 8 月 11 日:将标题由“KeePass 使用全攻略”修改为“KeePass 教程”,删除“KeePass 插件使用”一节,并精简文字。

原文地址:KeePass 教程 http://terrychen.info/keepass-tutorial/


2015-05-26 encryption , KeePass , windows

使用 javadoc 自动生成 Java 文档

Java 的注释,单行,多行的语法就不在赘述了。

javadoc tags

给 Java 源码文件书写注释,使用常见的 Java 注释可以实现一些,也可以通过如下的 Javadoc 的 Tags 来实现一些特殊的比如跳转,参数返回值等特殊标记。

javadoc 标记有如下一些:

  • @author 作者名,一般不推荐使用,git blame 基本上能够找到每一行代码的作者
  • @version 版本号
  • @see 跳转到相关类或者主题
  • @param 对方法中某参数的说明
  • @return 对方法返回值的说明
  • @exception 对方法可能抛出的异常进行说明

不过已经不建议在 Java 源文件中使用 @author 标记,现代的 git 完全能够满足模块作者的追溯,甚至可以精确到每一行的作者。

@see 允许用户引用其他类的文档

  • @see classname
  • @see fully-qualified-classname
  • @see fully-qualified-classname#method

see 也可以使用一个超链接

/**
 * @see <a href="https://docs.oracle.com/en/java/">Java Dcoumentation</a>
 */

@linkinline tag

Package doc

上面的方法可以给类,方法,参数等等编写注释,如果要给一个包添加注释,就需要额外添加 package-info.java 的文件。

从 Java 1.5 版本开始可以在包下新建一个名为 package-info.java 的文件,在这个文件中可以使用标准 Java 注释来给 package 书写文档:

com/foo/package-info.java:

/**
 * com.foo is a group of bar utils for operating on foo things.
 */
package com.foo;

//rest of the file is empty

注释中的代码

如果要在 javadoc 中书写代码,尤其是想要展示一些例子的时候,不可避免的会用到 <, > 以及 @ 等等特殊的符号。Javadoc 默认是 html 的 tag 来渲染格式,所以这种情况下有 <pre><code> 选择,然后 javadoc 还提供了 {@code} 语法。这三个方式都可以用来注释代码,但各自又不相同。

使用 pre 标签

<pre> 标记是 html 默认的格式化标签,如果使用 <pre> 标签,那么所有的 html 的标记都需要转义。

/**
 * <pre>
 * public class JavadocTest {
 *   // indentation and line breaks are kept
 *
 *   &#64;SuppressWarnings
 *   public List&#60;String&#62; generics(){
 *     // '@', '<' and '>'  have to be escaped with HTML codes
 *     // when used in annotations or generics
 *   }
 * }
 * </pre>
 */
public class PreTest {}

命令行的使用

Java 安装完成之后在 Java Path 的目录中自带了 javadoc 这个命令行,如果不想使用 maven-javadoc-plugin 可以使用这个命令来生成 javadoc.

用法:

  javadoc [options] [packagenames] [sourcefiles]

选项:

  • -public 仅显示 public 类和成员
  • -protected 显示 protected/public 类和成员 (缺省)
  • -package 显示 package/protected/public 类和成员
  • -private 显示所有类和成员
  • -d 输出文件的目标目录
  • -version 包含 @version 段
  • -author 包含 @author 段
  • -splitindex 将索引分为每个字母对应一个文件
  • -windowtitle 文档的浏览器窗口标题

在 Intellij 中调整文件头

Intellij 默认会在创建文件的时候给文件添加一些注释,这些注释可以在如下的设置中修改:

File -> Setting -> Editor-> File and Code Template-> File Header

2015-05-26 javadoc , java , document

Java 内存模型

本文为《深入理解 Java 虚拟机》的笔记。

Java 虚拟机规范中定义了一种 Java 内存模型,用来规避各种硬件和操作系统的内存访问差异,让 Java 在各种平台下都能达到一致的并发效果。Java 内存模型的主要目标是定义程序中各个变量的访问规则,在 JVM 中将变量存储到内存和从内存中取出变量这样的底层细节。

Java 内存模型的目标是定义程序中各个变量的访问规则,这里的变量 Variable 包含了实例字段、静态字段和构成数组对象的元素,但是不包括局部变量和方法参数,因为后者是线程私有的,不会被共享。

Java 内存模型规定所有变量存储在主存 Main Memory 中,每个线程都有自己的工作内存 Working Memory。线程的工作内存中保存了被该线程使用到的主存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写内存中变量。不同线程无法访问对方工作内存的变量,线程间变量传递需要通过主存来完成。

内存间交互操作

主存和工作内存之间定义了如下的操作。

  • lock : 作用于主存变量,把变量标识为一条线程独占状态
  • unlock : 作用于主存变量,把处于锁定状态的变量释放
  • read : 作用于主存,把变量值从主存传输到线程的工作内存,以便 load 使用
  • load : 作用于工作内存的变量,把 read 操作从主存中得到的变量值放到工作内存的变量副本中
  • use : 作用于工作内存变量,把工作内存的变量传递给执行引擎,当虚拟机遇到一个需要使用到变量的值的字节码指令时将会执行这个操作
  • assign : 作用于工作内存的变量,把从执行引擎收到的值赋值给工作内存的变量,当虚拟机遇到一个给变量赋值的字节码指令时执行这个操作
  • store : 作用于工作内存的变量,把工作内存中的一个变量的值传送到主内存中,以便随后 write 操作使用
  • write : 作用于主内存的变量,把 store 操作从工作内存中得到的变量的值放到主内存变量

定义了这些操作之后,就有一些规则,必须满足。

  • 不允许 read, load, store, write 操作单独出现,必须组合出现
  • 不允许线程丢弃它最近的 assign 操作
  • 不允许线程无原因(无 assign 操作)将数据从线程的工作内存同步到主存中
  • 新变量只能在主存中诞生,不允许在工作内存中直接使用未被初始化 (load or assign) 的变量,对一个变量实施 use 和 store 操作之前,必须先执行过 assign 和 load 操作
  • 一个变量同一时刻只允许一条线程对其 lock 操作,但 lock 操作可以被同一条线程重复执行多次,多次执行 lock 后,只有执行相同次数的 unlock 操作变量才会解锁
  • 对一个变量执行 lock 操作,将会清空工作内存中此变量的值,在执行引擎使用这个变量前,需要重新执行 load 和 assign 操作初始化变量的值
  • 如果变量没有 lock 操作,不允许 unlock 操作,也不允许 unlock 被其他线程锁定的变量
  • 对一个变量执行 unlock 操作前,必须把变量同步回主存中(执行 store 和 write 操作)

volatile 变量的规则

volatile 是 Java 虚拟机提供的最轻量的同步机制。当变量定义成 volatile 后,具备两种特性:

  • 此变量对所有线程可见,当一条线程对变量做出修改,新值对于其他线程来说是立即得知的
  • volatile 变量第二个语义是禁止指令重排序

指令重排序

为了提升执行速度,计算机在执行代码的时候会对指令进行重排序。

包括:

  • 编译器优化重排,包括 JVM,JIT 编译器,不改变单线程语义的情况下重新安排语句执行顺序
  • 指令并行重排,现代处理器采用指令级别并行技术 (Instruction-Level Parallelism,ILP)来将多条指令重叠执行,如果不存在数据依赖问题,处理器可以改变语句顺序。

指令重排序,指的是 JVM 优化指令执行的顺序,提高程序的运行速度,在不影响单线程程序执行结果的前提下,尽可能提高并发。

在 JDK1.5 之后,使用 volatile 变量禁止指令重排序。针对 volatile 修饰的变量,在读写操作指令前后会插入内存屏障,指令重排序时不能把后面的指令重排序到内存屏

double pi = 3.14;
double r = 2.1;
double area = pi*r*r;

代码在执行时,1->2->3,或者 2->1->3 对结果并没有影响,编译和运行时可能对 1,2 语句进行重排序。

JVM 内存屏障插入策略:

  • 每个 volatile 写操作的前面插入一个 StoreStore 屏障;
  • 在每个 volatile 写操作的后面插入一个 StoreLoad 屏障;
  • 在每个 volatile 读操作的后面插入一个 LoadLoad 屏障;
  • 在每个 volatile 读操作的后面插入一个 LoadStore 屏障。

2015-05-26 java , memory-model , jvm

我的RSS阅读器

在很久之前就曾经写过文章来推荐InoReader,而我自己也已经用了很长时间 InoReader 了。最近InoReader有了一些变化,Web端增加了广告,而Android手机端也增加了广告,虽然可能有些人会自此新生痛恨,但我感觉还好。那些广告并没有影响到我的阅读,位置也并没有那么有侵入性。而我作为使用了很长时间而又没有收入不能从金钱上支持他们的用户来说,我会推荐你关闭你的广告屏蔽插件,而手机山也可以继续使用它官方的App。而如果你真的不喜欢广告,而你也能支付,你可以购买他们的付费服务,当然如果你一定要去掉广告,用Adblock,或者手机上使用Amber也能一样的使用InoReader。

今天写这篇文章并不是要推荐InoReader,而是想寻求一种方式来管理我的订阅源。经过几年的积累,陆陆续续订阅了很多博客,网站,很多源已经失效,很多个人博客也不复存在。而我的订阅源我也只是看熟悉的那些。很多内容因为更新太快,或者我对更新的内容失去了兴趣,渐渐的就忘记了他们的存在。这是问题一,而第二个问题是在长时间查看固定的订阅源时,渐渐接触的范围,了解的圈子就狭窄了。所以为了解决这些问题,我就逐渐的整理我的订阅源,整理出那些值得订阅,值得收藏的源。

每日必读

选择原则

  1. 每天适量更新的网站或者博客,每天更新数目超过20条的网站或者博客不予考虑
  2. 全文输出,或者使用其他方式将网站全文内容输出
  3. 文章质量较高,有观点,有见解

所以我在订阅这个分类时就依赖我的兴趣点、我关心的IT,时事新闻,或者偶尔更新的个人博客。保证这个分类每天更新适量,而不是一天下来1000+,并且通过观看这个分类就能基本了解行情新闻。

科技新闻

TechCrunch, Android Police, cnBeta, Solidot, Google Operating System, The Next Web…等等更新非常快的媒体博客

软件及应用

曾经一段时间疯狂的寻找软件和应用,后来渐渐地就稳定了,基本需要用的那些软件也渐渐的熟悉起来,而这过程中也收藏了一些好的网站。在整理的过程中发现有些网站逐渐不更新,而有些网站更是域名都不存在了。剩下的都还是一些不错的站点。

这个分类下的网站都有以下特点:

  1. 网站主要是对软件和应用推荐
  2. 网站的每篇文章都会对推荐的软件进行详细的说明,有些网站会对同类型的软件进行横向的比较

博客

乱七八糟各种博客,但是在我整理的过程中很大部分都已经停止更新,而有些甚至域名都已经不存在了。不过好在InoReader缓存了部分博客,而Google也缓存了部分。这一部分比较杂乱继续整理中。

购物

该分类下主要是惠惠网和什么值得买这两个购物导购网站的Feed,这个分类下更新太快,我基本看不完。通过关键词过滤,找到合适的内容。


2015-05-20 inoreader

0day 和 PT 站扫盲贴

0day及高清PT站扫盲帖

  1. 0DAY 泛指所有在官方发布某作品之前或者当天,由网络上的爱好者破解发布的版本。主要涵盖了影视、软件、游戏、音乐、资料等诸多方面。
  2. 0DAY 的主要目的是交换和分享。完全非商业化、非盈利、志愿的行为。市场上的盗版光盘,其来源可能来自于0DAY,但那非0DAY的本意。
  3. 0DAY 的核心传播途径是 FTP。不是PT,也不是任何形式的P2P(电驴、BT、磁力链接等),更不是迅雷、网盘、QQ中转站等。迅雷、电驴之类的玩意儿,说白了都是靠0DAY养活的。虽然不可否认绝大多数下载者是通过迅雷和电驴获取0DAY资源的。但他们要比走FTP的人获取的时间要晚上三天甚至更多,因为他们是无法进入0DAY的FTP服务器的。
  4. 0DAY 的FTP服务器的更新速度也又千差万别,一方面是由于其本身所处的层次不高,另一方面其带宽有限。最高级别的0DAY FTP服务器,叫做topsite. 几乎所有的专业资源的源头都是这些topsite.
  5. 世界上有很多破解爱好者,他们组成一个个小组,成为0DAY的主力军。一般来说,MovieZ(包括TV)是0DAY最大的主力军,其次是MusicZ和GameZ。
  6. 各大破解小组中,一部分制作水品较高、发布速度较快的小组,被获许进入topsite,也就是说将他们的作品上传到topsite的0DAY FTP服务器上,这些小组便通过这些topsite相互交换了自己的作品。除了为数极少的topsite,还会有很多层次低一些的site,这些site 无时无刻不从topsite上下载资源,然后会有人从这些数量较多的FTP上下载作品,发布到各大PT、电驴还有迅雷等媒介上。这样,一部0DAY作品便完成了从制作到流传到大众的全过程。so,大量优秀的作品便通过一个个topsite传到了世界各地。
  7. 全球ODAY组织没有一个中央集权的统一领导,一个完整的ODAY单体组织称为topsite,领导者称为op。topsite由IRC(一种聊天程序)和FTP组成,IRC负责交流,FTP负责发布作品。进入topsite需要极严格的审查程序,包括对申请者的技术、资源甚至是人品。topsite 下属若干由admin领导的group(团队,简称grp),他们负责制作“产品”并最终汇总到topsite中进行统一发布。 topsite中,有负责提供片源的supplier、负责制作的ripper、负责在站点间传输的racer等等。
  8. 其实软件漏洞的破解是0DAY的鼻祖,也是狭义上的0DAY,但由于专业度太高,受众较小,受关注度也较小。

结合国内目前现实的影视制作分布状况,简单介绍一下目前国内影视和获取影视资源的手段及途径。

高清电影(HD Movie)

1.高清电影有两个主要来源,一个是0DAY,另一个是PT

0DAY发布

0DAY小组通过topsite FTP发布作品,虽然各大PT都有0DAY组作品的发布,但这并不是他们的原创作品,只是对0DAY作品的转载(ZZ)。想要获取第一手的0DAY高清电影,必须拥有0DAY FTP账号,并且级别越高越好,账号速度越快越好。在0DAY的FTP中,通常在目录“x264”中更新HD高清电影。高清电影中比较有名的0DAY release group有:CBGB、aAF、CTU、DIMENSION、REFiNED、REVEiLLE、SEPTiC、SiNNERS、TERRA、 AVS720、LCHD、HUBRIS、BestHD、AMIABLE、、SSF、aBD、METiS等

PT发布

高清电影由于其庞大的体积,FTP传播方式并不是十分理想,因此PT(Private Tracker)应运而生。可以说PT为高清而生,因而越来越多的PT活跃在因特网上,很多PT都是做高清起家的。这些小组通常会选择一个PT为自己的首发地,这些小组也就成了该PT的所谓“工作组”。比较有名的PT及其工作组简介如下。

HDB

全称HDBits,地址:http://hdbits.org

拥有的工作组:ESiR,CtrlHD,EbP,DON(四大“TOP组”,ESiR已经不再HDB发片,但tracker上仍有众多ESiR的种子)

简介:瑞典人开的高清PT站,也是全球最大的高清PT综合站,号称“全球第一PT“。其工作组ESiR、CtrlHD、EbP、DON也被广大高清爱好者奉为“TOP组”,压制质量非常高,收藏之首选,因为压制极为精细,故出片较慢。同时HDB也是世界上上最大的原盘基地,几乎所有站的原盘都会往HDB 发。HDB上面充斥着全球的大水管,资源丰富,几G的资源几分钟到十几分钟就可以出种,生存极难。而且从08年开始禁中国用户,只有08年以前的老账号才可以用。

HD-Torrent

地址:http://hd-torrents.org

拥有的工作组:HiDt,EuReKA

简介:一个高清站点,不允许上传非高清资源,拥有自己优秀的压片小组,及很好的优惠政策,内部小组所压制的作品都会有银币标记(银币种子为50%下载及 100%上传);当然也有很多其他的黄金种子(freeleach)。此站不仅有很丰富的高品质影视,视频资源,同时也允许上传一些高品质的音乐资源。此站有连坐制度:1,如果你邀请的人试图作弊,你将被T;2,你所邀请的人曾经拥有过帐号,那么连带你在内的及你所邀请的每一个人都会失去邀请资格,而且你本人也有可能被BAN;3,如果你所邀请的人试图交易帐号或者邀请,那么连带你在内的你所邀请的所有人都会失去邀请资格,同时你也有可能被BAN.

以上是两个比较好的国外PT站点,下面介绍国内的几个PT站点及其工作组。

HDC

全称 HDChina,地址:http://hdchina.org

拥有的工作组:SiHD

简介:前“中国高清第一站”,著名的高清组WiKi在2010年4月之前的首发站。当年称霸一方,在国际上也有直追HDB的势头。依靠国内诸多大水管以及 WiKi的优质作品而飞黄腾达,多年雄霸“中国第一高清站”宝座。2010年4月WiKi小组出走,投奔TTG的怀抱,HDC一蹶不振。不过瘦死的骆驼比马大,HDC仍然是中国目前综合规模前两位的PT站,但其工作组SiHD在国内认可度仍然很低,国际上几乎没有知名度。HDC的前景并不看好。

CHD

全称CHDBits,地址:http://chdbits.org

拥有的工作组:CHD

简介:CHD是国内最早做高清的小组,早期作品质量不敢恭维,随着时间的推移,CHD小组的作品早已是国内一流,世界知名。早期和思路、WiKi三足鼎立。后来思路分裂并且逐渐式微,CHD一度为HDC及其工作组WiKi压制。随着WiKi出走TTG,CHD趁机座上了中国第一高清站的宝座。目前,CHDBits出产的原盘无论在数量上还是速度上都可以说是国内第一,微微领先于WiKi。

TTG

全称:TorrenTGUI,地址:http://torrentgui.com

拥有的工作组:WiKi

简介:TTG的前身是游戏PT站GameGui,后来在GG老大MeGUI的“策动”下,WiKi及HDC很多发原盘的元老集体出走TTG,致使HDC元气大伤。由于获得了HDC的绝大多数精华,TTG一举成名。由于其本身丰富的游戏资源,TTG正大步迈向中国最大的综合PT站。TTG也是目前中国最具生命力的PT,也是目前唯一一个有希望挑战CHD的PT。

WiKi小组是近年来中国最成功的高清压制组,其作品流传甚广,制作标准严格,码率丰厚,出片速度足够快。早年依托HDC,现常驻于TTG,目前和CHD争霸于国内的高清重编码战场上。

HDR 和 HDS

全称:HDRoad、HDStar

地址:http://hdroad.org http://www.HDStar.org

拥有的工作组:MySiLU、SILUHD

简介:这两家PT的前生都是思路高清,后来思路分裂,各自仍自称“思路”,但小组名为一个叫SiLUHD,一个叫“MySiLU”。两家PT目前人气都不怎么样,无论种子数目还是下载速度。分裂前思路早期的重编码作品在质量上是要优于老对手CHD的,但后来分家后,两家思路无论在出片速度还是压制质量上都落后于CHD。看来,窝里斗还是中国人的几百年不变的劣根所在啊。这也告诉我们,肢解敌人的最好办法就是挑起他们内部的“窝里斗”。开个玩笑,哇咔咔~ 不过不得不提HDR的源盘质量确实是首屈一指的!

综上所述,想获取第一手的HD资源,要么混0DAY,要么混PT。永远不要考虑电驴啦,迅雷啦,更不要考虑网盘啦,QQ啦。。。那些东西不仅下载慢,发布就比别人慢几天。两者相叠。。自己算吧

TLF影视论坛

【地址链接】 http://www1.eastgame.org:8088/ 旧版论坛:http://pw.eastgame.org:8088/ (老资源帖仍可以访问,但无更新)

【主打格式】 MiniSD、MiniHD、TLF-iNT

【论坛综述】

1.TLF论坛是大陆老牌资源论坛,这些年虽然有些落寞,但其核心产品仍然很具有竞争力,论坛目前可以注册。 2.TLF目前主推的视频媒介为MiniSD,MiniSD定位于“桌面高清”,即小高清。横向分辨率800-864,体积平均每部800M,片源多数采用BD720p,少数采用BD1080p、DVD9,或者HDTV片源,压制规范、精益求精。TLF期望用RMVB的体积,获取超过DVD,逼近高清的 “桌面高清”效果。事实证明,TLF制作的MiniSD流传甚广,的确做到了“小体积,高画质”的典范。 3.MiniHD是定位于MiniSD之上,720P之下的一种BDRip,横向分辨率1280,体积平均1.9G。MiniHD片源至少采用重编码 BD1080p,少数优秀影片用原盘压制。MiniHD定位“低码720p”,即“准高清”,画质已经非常接近BluRay 720p的效果,而体积只有720p的1/3-1/2。非常适合希望欣赏高清画质又不想下载4-6G体积高清片的朋友。 4.TLF-iNT是TLF数年来雷打不动的核心产品,片源一律采用BD/HDDVD原盘,并用极限参数压制,试图在有限的码率下将画质提升到最高。 TLF-iNT的体积一般为1.37GB或者2.05GB,平均每部1.7GB左右。由于iNT压制组人员缺乏,TLF-iNT最近产量持续下降,但对于一些经典片,TLF-iNT不失为一种高性价比的收藏媒介。

【下载攻略】

1.MiniSD的发布方式一般为115网盘、RayFile网盘、QQ中转站/QQ公共邮箱。除了RayFile网盘速度比较2,QQ和115都是非常适合BIT网络的网盘分享途径。 2.MiniHD的发布方式基本为115网盘,偶尔会有RF(RayFile)的分流。 3.iNT主要通过FTP发布,通过RF网盘分流。但想要第一时间获取TLF-iNT,必须前往FTP服务器下载。【TLF论坛】初级会员/活跃会员都可以找到合适的FTP服务器下载iNT,速度100k. 4.IPV6 PT上也有不少TLF的作品,有条件的可以去淘一淘。

【推荐指数】 ★ ★ ★ ★ ★

XTM影视论坛

【地址链接】 http://xtmhd.com 【花花世界】:http://www.playmov.com/ (此站位XTM的马甲站,专门用来放广告和逃避风险用)

【主打格式】 HALFCD2、XTM-480p、0DAY-DVDRip

【论坛综述】 1.XTM源自TLF,这一切都起因于2年前的一场动荡,导致TLF相当一部分主力军独自成了XTM。此话不多谈。 2.所谓的HALFCD2,其实就是HALFCD,XTM在后面加了个2,无非就是想把自己和老TLF划清界限却又舍不得放HALFCD而已。 HALFCD2是一种体极小,画质尚可的视频媒介,mkv封装,分辨率一般640线以下,体积品均每部350M左右。HALFCD可以用移动传媒播放,用显示器播放HALFCD确实够呛,更不用说高清电视了。 3.XTM-480p,发布有一阵没一阵的,更新很不规律,压制质量也很一般,不过管理员要是闲着,出片速度还是很快的,一般比蓝光片源晚1、2天出。一般体积在1.5G左右。 4.毫无疑问,XTM的核心产品非0DAY-DVDRip莫属。目前cn(大陆)地区最强悍的0DAY小组非XTM莫属了,事实上整个cn除了XTM再也早不到第二家像样的0DAY小组。因此6区DVD基本也被XTM通吃。基本上所有大陆发行的新碟,XTM会第一时间放出0DAY rls. 5.XTM人称“小太妹”,或者“洗头妹”,这点作为cn地区的0DAY常识是必须牢记在心的。 6.XTM及其马甲站广告之多,前无古人,后无来者。。。

【下载攻略】

1.HALFCD2和480p最前会在【花花视界】中以【快车下载链接】的形式放出。注意允许IE“运行当前加载项”,否则无法弹出快车链接。现在HALFCD2基本靠这一种方式分流,北理校园网并不是很方便。

2.XTM有非常强大的FTP服务中心,拥有国内更新速度极其快捷的site,还有自称“200TB+”的FTP仓库(我没进去看过,不可考证),如果你能混进XTM的工作组,那你将拥有在各大PT首发所有0DAY rls的能力。不过XTM的0DAY site不是那么好进的,需要努力为之干活才行。

3.当然了,不出意外,国内所有的0DAY site都会有XTM的0DAY rls更新,只不过更新速度好坏不等。能够进任何一个site,你都能获取第一手的XTM 0DAY rls,时间也就差半个小时到两个小时左右。不过能不能在各大PT抢到首发,就看你的运气了。

【推荐指数】 ★ ★ ★ ★ ★

人人影视YYeTs

【地址链接】 http://yyets.net

【主打格式】 HR-HDTV、RMVB

【论坛综述】

1.国内目前几个比较好的字幕组之一,不仅字幕做的不错。FTP中心也很强大。能够混进YYeTs的0DAY site,你将有跟XTM的人抢首发的能力。

2.HR-HDTV是目前出片量比较大也是比较快的一种Rip,下载途径也比较多,一般有磁力下载、电驴、快车、BT发布等。出快车外校园网用迅雷都会有一些速度,如果你有米,迅雷离线将是非常适合【人人影视YYeTs】的下载的。迅雷离线可以迅速的将资源下载到迅雷的服务器上,然后你再从从迅雷服务器下载到本机。

3.HR-HDTV片源采用720P,压出的片子为mkv封装,x264+AC3编码,分辨率固定为1024*576,体积平均1.7G左右,画质良好。

4.HR-HDTV使用YYeTs字幕组原创字幕,翻译质量优秀,但压制的时候将字幕压进了视频中,无法消除,称“硬字幕”。字幕双语双排,占用比较大的画面,不MiniSD/MiniHD方便。

5.人人影视发布的RMVB可以说是缩小版的HR-HDTV,除了压制方案改为了RMVB+AAC,是目前网上比较优秀的RMVB。

【下载攻略】

1.快车发布的影片,可以尝试“快车+搜狗浏览器代理”的方案。利用搜狗浏览器的代理进程,快车可以得到很理想的速度(此方案经常会抽风,不过仅靠正常的外网下快车速度绝对是零)。

2.磁力链接/电驴/BT发布的影片,推荐用迅雷离线。迅雷的下载服务器之强大不必多余,由于在教育网有分流节点,当你从迅雷服务器往本地下载的时候会有相当满意的速度。QQ中转站发布的资源可以直接高速HTTP下载。

3.IPV6 PT上也有不少人人影视的作品,有条件的可以去淘一淘。

【推荐指数】 ★ ★ ★ ★

圣城家园

【地址链接】 http://bbs.cnscg.com/

【主打格式】 低码720p(其实更应该叫伪720P)MKV、720p RMVB、高码率MKV

【论坛综述】

1.圣城家园的字幕组还是相当不错的。

2.伪720P是圣城最拿手的活,不过对于这种拿重编码RERiP的720P的行为实在不敢恭维。标准720P片源压制480P左右分辨率差不多,720P压制720P实在是有点。。。急功近利了。虽然对外圣城官方宣称是拿1080P做片源压制720P,不过根据实际出片时间判断,其实是拿 720P压的720P。

3.另外,圣城把字幕弄进mkv文件中,虽然这样做无可厚非,但把字幕弄成那么个特效确实有点让人难受。虽然可能很多人觉得看着还挺习惯。

4.将2.35:1的片子认为放大到16:9添加黑边着实是一种及其浪费码率的愚蠢行为。

5.虽然片子本身质量不高,但圣城的发布速度和分流途径却非常棒。只要是已经有了的HD高清电影,圣城一定会在第二天推出相应的720p RERIP rls.

6.圣城家园的所谓“高码率MKV”虽说在片源和码率上达到了标准720P的水准,但由于依靠外部原盘片源,跟新速度很慢,只能做老片,很少有更新新片。并且片子做的也很不专业。至于圣城的720P分辨率的RMVB,在业界还是有一定地位的。

【下载攻略】

1.圣城家园的分流方式主要BT、QQ、迅雷、快车。QQ和迅雷可以直接用校园网获取高速,BT则可以利用迅雷离线下载,快车可以利用搜狗代理。

2.IPV6 PT上圣城的伪720P成堆。。不过不推荐大量转载。

【推荐指数】 ★ ★ ★

CHD 480p

【地址链接】 http://www.chdtv.net

【主打格式】 480p(这里不提及CHD的高清)

【论坛综述】

1.CHD的480p格式及命名方式传承高清的标准,不愧高清站点风范。体积上采用的0DAY规范,以CD的整数倍出现,一般1.4BG(2CD)2.1GB(3CD)。

2.480p永远分辨率只有两种:848352、848480,分辨率和720p、1080p一样规范。

3.CHD 480p的片源为自家产的CHD 720p,事实上这个分辨率用720p做片源已经基本够了,虽然少数TLF fan依然坚定地认为CHD 480p属于垃圾rls,理由是不像TLF-iNT那样采用原盘做片源压制(其实我就是其中一个 - -)。个人偏好可以理解,但客观事实也不可否认:CHD 480p的压制质量总体良好。

4.视频码率一般在1200k-2000k,音频基本上是整齐的384k AC3。

5.两个主要的分流途径:RayFile网盘、VeryCD。

【下载攻略】

1.对于RayFile网盘,速度极其不稳定是他的最大弱点,并且事实证明CHD的480p在RF上的保留时间并不长,RF保源好的优点被无视了。VC上表情电影基本上已近被CHD所独霸,VC速度相当客观,BIT的同学二可以尝试用迅雷连接emule任务。迅雷离线在此同样可以大发淫威。

2.IPV6 PT上有相当数量的CHD 480p资源。

【推荐指数】 ★ ★ ★ ★

单纯地从0DAY影视(0DAY MovieZ)专业名词角度了解一下0DAY的细节。

常见0DAY名词解释

  • DVDRip:由DVD压制而来,最常见的影片来源。
  • CAM:来源于摄影机拍摄影院银幕和录制音频,往往带有影院杂声。
  • TS/Telesync:来源于摄影机拍摄影院银幕,音频从影院放映机直接接线输出。CAM和TS中国统称枪版。
  • TC/Telecine:胶片版,直接从电影胶片转制
  • DVDScr/DVDSCREENER:来自于用于观摩或展示的DVD
  • SCR/SCREENER:来自于用于观摩或展示录影带 上面两个在美国通常用于促销目的,一般会带有一些额外的标记之类,在制作时只好用黑斑遮掉。
  • WP/WORKPRINT:来自于工作录影带 有时是导演最终剪接版,有时是未完成版本,留有一些额外镜头。
  • R5:几大电影制片厂都先在俄罗斯发布DVD零售版。他们以此防范盗版TC(此现象过去相当普遍)的传播。此后,市面上就很少有真正的TC版,所见的TC 版大多数实际上是R5(5区)的零售版。R5是由制片厂制作的,为了和盗版竞争,在画面加工中并不十分清晰。所以,与盗版TC相比,R5的主要区别就是,它是由专业人士在专业制作室内使用专业设备完成的。R5的质量几乎可以媲美DVDScr。
  • PROPER:完美版 强调优于早期另一个 Group 出的版本。
  • R-RATE:有删节
  • UNRATE:未删节 通常也用于强调,与 R-RATE 对比。
  • Director.Cut/DC:导演剪接版 一般正式上映版还要通过审查剪辑,哪个国家都有这个程序。
  • WITH.EXTRAS:带花絮
  • WITH.OST:带原声音乐CD
  • REPACK:修正版本
  • RECODE:对另一个Group已经发布的版本进行修正的版本 较少见,因为 MovieZ一般鼓励自己寻找片源,有时候也写成REPACK。
  • Dual.Audio/Dual-Audio:双语版
  • Tri-Audio:三语版
  • WS:Wide Screen:16:9宽屏幕版本的影片,推荐WS版本,因为FS是从WS中截下来的。
  • FS:Full Screen:4:3 全屏幕版本的影片 有些影片DVD同时有WS和FS两种版本,DVDRip也会有两种)。
  • SUBBED:画面内有不能消去的字幕
  • UNSUBBED:没有内嵌字幕 与 SUBBED 对比
  • DVDR:由DVD直接复制而来,没有经过压缩,保留原始 MPEG2 视频编码。
  • DivX:视频编码为DivX 3.11 alpha DivX 4/5为利用法律漏洞在自由软件 DivX 3.11 alpha 基础上发行的商业软件,被 TDX 抛弃。
  • XviD:XviD是一个开放源码的MPEG-4 多媒体解码器,它是基于OpenDivX而编写的。XviD是由一群原OpenDivX义务开发者在OpenDivX于2001年7月停止开发后自行开发的。XviD支持多种编码模式,量化 (Quantization) 方式和范围控,运动侦测 (Motion Search) 和曲线平衡分配 (Curve),动态关键帧距 (I-frame interval),心理视觉亮度修正,演职员表选项,外部自定义控制,运动向量加速 (Hinted Me) 编码,画面优化解码等众多编码技术,对用户来说功能十分强大。这也是目前被Riper使用最为广泛的编码技术。
  • SVCD:视频编码为MPEG2,且帧率和长宽比符合 SVCD 标准 SVCD刻录到普通 CD 光盘介质上可以用家用 SVCD 或 DVD 播放机播放。
  • AC3:音频编码为AC3 默认音频编码为MP3
  • DTS: DTS为Digital Theatre System 的缩写,即数码影院系统。它是1996年底推出的一种源自剧院模式开发的数码环绕声系统。DTS系统不仅具有AC3相似功能,更加强了其纵深定位交叉效果。DTS芯片容量为 1536kbps,压缩传输比为 4:1;而 AC3 芯片容量为 448kbps,压缩比为 10:1。正是由于DTS信息容量的增加,音色更加优美,不但可以聆听Hi-Fi音乐,同时也可以欣赏爆棚影视软件。
  • X264:X264是一个基于h.264的免费开源的视频Codec,属于后起之秀,已经受到众多Riper的青睐,但是与Xvid相比,其在解码时对硬件的要求更高。
  • H.264:H.264是由国际电信联盟(ITU-T)所制定的新一代的视频压缩格式。H.264最具价值的部分无疑是更高的数据压缩比。在同等的图像质量条件下,H.264的数据压缩比能比当前DVD系统中使用的 MPEG-2高2-3倍,比MPEG-4高1.5-2倍。正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。在 MPEG-2需要6Mbps的传输速率匹配时,H.264只需要1Mbps-2Mbps的传输速率。
  • HDRIP:HDRip是HDTVRip的缩写,是用DivX/XviD/x264等MPEG4压缩技术对HDTV的视频图像进行高质量压缩,然后将视频、音频部分封装成一个.avi或.mkv文件,最后再加上外挂的字幕文件而形成的视频格式。实际上是对HDTV的2次压缩,将原来的MPEG2编码重编码为MPEG4编码。制作的HDRIP遵循严格的制作标准,尽力在文件大小和画质之间取得最佳平衡点(通常控制在一部电影4.2GB左右,正好相当于一张 DVD-R的容量,以便保存)。
  • HALFCD:HALFCD是TLF论坛提出的一种新的视频封装方法的名称,也可缩写为HFCD。 一部通常的电影的文件总大小约为350M,即半张CD的容量,所以称为HALFCD. 视频采用先进的X264编码技术,音频采用先进的HE-AAC+PS编码技术,某些较长的影片如超过2小时,会采用500M容量;超过3小时,采用 700M容量,以保证画面质量。 在极低的码率下可以得到非常优秀的画面。
  • BDRIP:BD是Blue Disk的简称,翻译成中文是“蓝光影碟”的意思。DVD的激光头现在用的是橙红色,兰光的波长更小,也就是在碟片上的聚焦点更小,这样就能把更多的数据储存在同样大小的碟片上,这就是蓝光的基本原理了,一张碟片好像是能储存50G的内容。
  • NUKED:画质太差或有其他严重问题,被Top Site FTP管理员废除掉 别人加的标记,但有可能是发行Group主动要求的
  • Bad IVTC:帧率错误,画面有不可去除的拉丝。
  • BAD A/R/Bad Aspt:画面比例不正常
  • INTERLACED:隔行(可看见横的扫描线)

注:所有没有英语配音而在后期使用英语配音来同步的R5零售版将被标记为R5.LINE。过去这类版本曾被标记为TC。


2015-05-17 pt , 0day , download

Linux notes

ssh keys

An SSH key allows you to establish a secure connection between your computer and server

ssh-keygen -t rsa -C "example@gmail.com"

show the public key

cat ~/.ssh/id_rsa.pub

Copy the key

Windows:

clip < ~/.ssh/id_rsa.pub

Mac:

pbcopy < ~/.ssh/id_rsa.pub

GNU/Linux(requires xclip)

xclip -sel clip < ~/.ssh/id_rsa.pub

参考:https://gitlab.com/help/ssh/README

screen

常用命令

screen -S name    启动
screen -ls        查看screen列表
screen -r name    恢复
  • GNU’s Screen 官方站点:http://www.gnu.org/software/screen/
  • 更多内容参考:http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html

命令参数

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]
参数说明
-A  将所有的视窗都调整为目前终端机的大小。
-d <作业名称>  将指定的screen作业离线。
-h <行数>  指定视窗的缓冲区行数。
-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称>  恢复离线的screen作业。
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s  指定建立新视窗时,所要执行的shell。
-S <作业名称>  指定screen作业的名称。
-v  显示版本信息。
-x  恢复之前离线的screen作业。
-ls或--list  显示目前所有的screen作业。
-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

一些网站

开源世界旅行手册


2015-05-17 linux , notes

ASCII Unicode GBK UTF-8 字符编码的区别与联系

很久很久以前,有一群人,他们决定用 8 个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到 8 个开关状态是好的,于是他们把这称为”字节“。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为”计算机“。

开始计算机只在美国用。八位的字节一共可以组合出 256(2 的 8 次方)种不同的状态。 他们把其中的编号从 0 开始的 32 种状态分别规定了特殊的用途,一但终端、打印机遇上约定好的这些字节被传过来时,就要做一些约定的动作。遇上 0x10, 终端就换行,遇上 0x07, 终端就向人们嘟嘟叫,例好遇上 0x1b, 打印机就打印反白的字,或者终端就用彩色显示字母。他们看到这样很好,于是就把这些 0×20 以下的字节状态称为”控制码”。他们又把所有的空 格、标点符号、数字、大小写字母分别用连续的字节状态表示,一直编到了第 127 号,这样计算机就可以用不同字节来存储英语的文字了。大家看到这样,都感觉 很好,于是大家都把这个方案叫做 ANSI 的”Ascii”编码(American Standard Code for Information Interchange,美国信息互换标准代码)。当时世界上所有的计算机都用同样的 ASCII 方案来保存英文文字。

后来,就像建造巴比伦塔一样,世界各地的都开始使用计算机,但是很多国家用的不是英文,他们的字母里有许多是 ASCII 里没有的,为了可以在计算机保存他们的文字,他们决定采用 127 号之后的空位来表示这些新的字母、符号,还加入了很多画表格时需要用下到的横线、竖线、交叉等形状,一直把序号编到了最后一个状态 255。从 128 到 255 这一页的字符集被称”扩展字符集“。从此之后,贪婪的人类再没有新的状态可以用了,美帝国主义可能没有想到还有第三世界国家的人们也希望可以用到计算机吧!

等中国人们得到计算机时,已经没有可以利用的字节状态来表示汉字,况且有 6000 多个常用汉字需要保存呢。但是这难不倒智慧的中国人民,我们不客气地把那些 127 号之后的奇异符号们直接取消掉,规定:一个小于 127 的字符的意义与原来相同,但两个大于 127 的字符连在一起时,就表示一个汉字,前面的一个字节(他称之为高字节)从 0xA1 用到 0xF7,后面一个字节(低字节)从 0xA1 到 0xFE,这样我们就可以组合出大约 7000 多个简体汉字了。在这些编码里,我们还把数学符号、罗马希腊的字母、日文的假名们都编进去了,连在 ASCII 里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的”全角”字符,而原来在 127 号以下的那些就叫”半角”字符了。 中国人民看到这样很不错,于是就把这种汉字方案叫做 “GB2312“。GB2312 是对 ASCII 的中文扩展。

但是中国的汉字太多了,我们很快就就发现有许多人的人名没有办法在这里打出来,特别是某些很会麻烦别人的国家领导人。于是我们不得不继续把 GB2312 没有用到的码位找出来老实不客气地用上。 后来还是不够用,于是干脆不再要求低字节一定是 127 号之后的内码,只要第一个字节是大于 127 就固定表示这是一个汉字的开始,不管后面跟的是不是扩展字符集里的内容。结果扩展之后的编码方案被称为 GBK 标准,GBK 包括了 GB2312 的所有内容,同时又增加了近 20000 个新的汉字(包括繁体字)和符号。 后来少数民族也要用电脑了,于是我们再扩展,又加了几千个新的少数民族的字,GBK 扩成了 GB18030。从此之后,中华民族的文化就可以在计算机时代中传承了。 中国的程序员们看到这一系列汉字编码的标准是好的,于是通称他们叫做 “DBCS“(Double Byte Charecter Set 双字节字符集)。在 DBCS 系列标准里,最大的特点是两字节长的汉字字符和一字节长的英文字符并存于同一套编码方案里,因此他们写的程序为了支持中文处理,必须要注意字串里的每一个字节的值,如果这个值是大于 127 的,那么就认为一个双字节字符集里的字符出现了。那时候凡是受过加持,会编程的计算机僧侣 们都要每天念下面这个咒语数百遍: “一个汉字算两个英文字符!一个汉字算两个英文字符……”

因为当时各个国家都像中国这样搞出一套自己的编码标准,结果互相之间谁也不懂谁的编码,谁也不支持别人的编码,连大陆和台湾这样只相隔了 150 海里,使用着同一种语言的兄弟地区,也分别采用了不同的 DBCS 编码方案——当时的中国人想让电脑显示汉字,就必须装上一个”汉字系统”,专门用来处理汉字的显示、输入的问题,但是那个台湾的愚昧封建人士写的算命程序就必须加装另一套支持 BIG5 编码的什么”倚天汉字系统”才可以用,装错了字符系统,显示就会乱了套!这怎么办?而且世界民族之林中还有那些一时用不上电脑的穷苦人民,他们的文字又怎么办? 真是计算机的巴比伦塔命题啊!

正在这时,大天使加百列及时出现了——一个叫 ISO (国际标谁化组织)的国际组织决定着手解决这个问题。他们采用的方法很简单:废了所有的地区性编码方案,重新搞一个包括了地球上所有文化、所有字母和符号 的编码!他们打算叫它”Universal Multiple-Octet Coded Character Set”,简称 UCS, 俗称 “unicode“。 unicode 开始制订时,计算机的存储器容量极大地发展了,空间再也不成为问题了。于是 ISO 就直接规定必须用两个字节,也就是 16 位来统一表示所有的字符,对于 ASCII 里的那些“半角”字符,unicode 包持其原编码不变,只是将其长度由原来的 8 位扩展为 16 位,而其他文化和语言的字符则全部重新统一编码。由于”半角”英文符号只需要用到低 8 位,所以其高 8 位永远是 0,因此这种大气的方案在保存英文文本时会多浪费一倍的空间。

这时候,从旧社会里走过来的程序员开始发现一个奇怪的现象:他们的 strlen 函数靠不住了,一个汉字不再是相当于两个字符了,而是一个!是的,从 unicode 开始,无论是半角的英文字母,还是全角的汉字,它们都是统一的”一个字符“!同时,也都是统一的”两个字节“,请注意”字符”和”字节”两个术语的不同,“字节”是一个 8 位的物理存贮单元,而“字符”则是一个文化相关的符号。在 unicode 中,一个字符就是两个字节。一个汉字算两个英文字符的时代已经快过去了。

unicode 同样也不完美,这里就有两个的问题,一个是,如何才能区别 unicode 和 ascii?计算机怎么知道三个字节表示一个符号,而不是分别表示三个符号呢?第二个问题是,我们已经知道,英文字母只用一个字节表示就够了,如果 unicode 统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是 0,这对于存储空间来说是极大的浪费,文本文件的大小会因此大出二三倍,这是难以接受的。

unicode 在很长一段时间内无法推广,直到互联网的出现,为解决 unicode 如何在网络上传输的问题,于是面向传输的众多 UTF(UCS Transfer Format)标准出现了,顾名思义,UTF-8 就是每次 8 个位传输数据,而 UTF-16 就是每次 16 个位。UTF-8 就是在互联网上使用最广的一种 unicode 的实现方式,这是为传输而设计的编码,并使编码无国界,这样就可以显示全世界上所有文化的字符了。

UTF-8 最大的一个特点,就是它是一种变长的编码方式。它可以使用 1~4 个字节表示一个符号,根据不同的符号而变化字节长度,当字符在 ASCII 码的范围时,就用一个字节表示,保留了 ASCII 字符一个字节的编码做为它的一部分,注意的是 unicode 一个中文字符占 2 个字节,而 UTF-8 一个中文字符占 3 个字节)。从 unicode 到 uft-8 并不是直接的对应,而是要过一些算法和规则来转换。

Unicode 符号范围 (十六进制) UTF-8 编码方式(二进制)
0000 0000-0000 007F 0xxxxxxx
0000 0080-0000 07FF 110xxxxx 10xxxxxx
0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

之前一直对字符编码很模糊,网查资料被忽悠地晕头转向,看完这篇风趣的文章,把之前模糊的知识点串联起来,并稍加总结,我和我的小伙伴们都明白了!

转载自:http://dengo.org/archives/901

更多中文编码知识请看:中文编码


2015-05-17 encoding , 编码 , unicode , utf8 , ascii

字库格式介绍

Bitmap 字库

点阵字库 (Bitmap) 是最早被采用的一种数字化字库的格式,每个字形以黑白像素点阵矩阵组成。但是随着字号变大,数据量会呈几何级数增长,所以不适于复杂的大字号中文字形显示。但它在描述小字号时有明显的优势,可以加入人工的笔画取舍、合并和变形,使得字形尽可能地清楚展示。

随着显示设备分辨率和处理器性能的提高,点阵字已被曲线字所取代,或部分嵌入在曲线字中以提高小字的清晰度。它更多的应用是在低分辨率的设备上,例如老旧的手机、掌上电脑、仪器仪表、数码相机、收款机、银行或者邮局的票据打印机等。

PostScript 字库

PostScript 是美国 Adobe 公司发展的一种页面描述语言。所谓页面描述语言,实际上是一种专门的计算机语言用来描述和记录版面上的内容和结构。它以精确的坐标数据,精密的数学公式和规定的格式来定义页面上的各种元素,如文字、色彩、图形图像的位置、形状等等。

PostScript 字形描述技术是用美国 Adobe 公司的 PostScript 页面描述语言来描述字形的一种技术。 CID 字库是美国 Adobe 公司发表的最新字库格式,所有字形描述都采用 PostScript Type 1 格式,他具有易扩充、速度快、兼容性好、简便、灵活等特点,这种标准格式保证了跨平台的高质量输出。

CID 字库

CID (character identifier) 字符识别码,总字符集包括了一种特定语言中所有常用的字符,把这些字符排序,他们在总字符集中排列的次序号就是各个字符的 CID 标识码。CMap(character Map)字符映射文件,将字符的编码映射到字符的 CID 标识码,再用 CID 标识码从 CIDFont 文件中取到字形信息。 CIDFont 文件中不仅存储了字库中所有字符的描述,还包含了字体的提示(HINT)信息,它既能控制笔画的粗细,还能控制笔画之间空白,使解释器在字体比较小,设备分辨率低的情况下,得到细小清晰的笔画复杂的中日韩文字形。

TrueType

常见的 ttf 文件,就是 TrueType 字库文件。

TrueType 是由美国苹果公司和微软公司联合提出的一种用数学函数描述电脑字体轮廓的技术。TrueType 采用几何学中二次 B 样条曲线及直线来描述字体的外形轮廓,含有字形构造、颜色填充、数学描述函数、流程条件控制、栅格处理控制、附加提示控制等指令。

TrueType 字体的主要特点在于它所见即所得。由于 TrueType 字体是由指令对字形进行描述,因此它与分辨率无关,均以设备的分辨率输出,既可以屏幕显示,又可以打印输出,无论放大缩小,字符总是光滑的,不会有锯齿出现。但是相对 PostScript 字体来说,特别是在文字太小时,其表现质量要差一些。

OpenType 字库

常见的 otf 字体文件,就是 OpenType Font 字库文件。

OpenType 字库是美国微软公司与 Adobe 公司联合开发的用来替换 TrueType 字型的数字化曲线轮廓字库格式。OpenType 字库采用 Unicode 编码,是 TrueType 格式的扩展延伸,扩展了 Adobe CID-Keyed font 技术。它在继承了 TrueType 格式的基础上增加了对 PostScript 字型数据的支持,所以 OpenType 字体中的字型轮廓数据既可以选择在‘glyf’表中 TrueType 格式轮廓,也可以选择在‘CFF’表中的 CFF(压缩字体格式,Compact Font Format)格式轮廓。

OpenType 字库信息小,字形可以所以缩放、变形(旋转、倾斜、弯曲)而不失真,具有很强的兼容性及独特丰富的排版特性。

总结

经过几十年时间的演变,目前市场已经被 OTF, TTF 统治。基本上桌面平台,移动平台,大部分的系统都能兼容这两个字体。


2015-05-16 font , code , information , opentype , truetype

Vim 窗口使用

之前的文章讲过 Vim Buffer 的管理 这使得工作可以在 Vim 中持续进行,而不需要退出然后重新载入文件。但是如果 Buffer 只能填满一个 Vim 窗口,假如想要在 Vim 中实现分屏,那么就必须要依赖于 Vim 的 Window。又因为 Vim 的 Windows 经常用来做分屏,又有的时候被称为 splits

Windows

Vim 在启动时只会打开单个窗口,可以使用 Ctrl-w s 来水平分隔窗口,或者使用 Ctrl-w v 来垂直分隔窗口。

在 Vim 中有很多方式打开 Windows

命令 解释
<C-w>s 水平切分窗口,新窗口显示当前缓冲区
<C-w>v 垂直切分窗口,新窗口显示当前缓冲区
:sp[lit] { filename } 水平切分窗口,并在新窗口载入{filename} 文件
:vsp[lit] { filename } 垂直切分窗口,并在新窗口载入{filename} 文件
:new [filename] 在当前 window 下方新建 window
:vnew [filename] 在当前 window 旁新建 window

窗口间切换

命令 解释
<C-w>w 窗口间循环切换
<C-w>h 切换到左窗口
<C-w>j 切换到下窗口
<C-w>k 切换到上窗口
<C-w>l 切换到右窗口

关闭窗口

Ex 命令 普通模式命令 解释
:clo[se] <C-w>c 关闭活动窗口
:on[ly] <C-w>o 只保留活动窗口,关闭其他所有窗口

2015-05-15 vim , linux , editor , vim-window , vim-buffer

中文字符编码

总结一下常用的中文编码。

Unicode 编码

Unicode 是基于国际标准化组织(International Organization for Standardization,简称 ISO)所制定的 ISO/IEC 10646 ,即通用字符集(Universal Character Set,简称 UCS)的标准来发展,在 1991 年首次以书本的形式(The Unicode Standard)对外发布。

Unicode 的编码方式与 ISO 10646 的通用字符集(UCS)概念相对应,使用 16 位编码空间。16 位 Unicode 字符构成基本多文种平面(Basic Multilingual Plane,简称 BMP),最多可以表示 65536 个字符。基本满足各种语言的使用。最新的 Unicode 版本定义了 16 个辅助平面,两者合起来达到 32 位编码空间,可以涵盖一切语言所用的符号。目前辅助平面的工作主要集中在第二和第三平面的中日韩统一表意文字中。

Unicode 只与 ASCI I 兼容(更准确地说,是与 ISO-8859-1 兼容),与 GB 码不兼容。例如“汉”字的 Unicode 编 码是 6C49,而 GB 码是 BABA。

以上都是废话,下面重点:

  • 设计目的是为了表达任意语言的任意字符
  • 使用 4 字节来表示,被几种语言共用的字符通常使用相同的数字来编码
  • 每个编码数字对应一个字符

理想是好的,一种编码解决所有问题。但是问题随即出现,对于英语这样的语言,1 个字节都不需要即可表达所有字符,而每个字符都需要 4 个字节的 Unicode 编码有些浪费空间。

UTF-16 编码

尽管有 Unicode 字符非常多,但是实际上大多数人不会用到超过前 65535 个以外的字符。因此有了 UTF-16 (2 字节)编码,UTF-16 编码最明显的优点就是空间效率要比 Unicode 编码高两倍(除去 65535 意外的字符,每个字符只需要 2 个字节)

UTF 的字节序和 BOM

UTF-8 以字节为编码单元,没有字节序的问题。UTF-16 以两个字节为编码单元,在解释一个 UTF-16 文本前,首先要弄清楚每个编码单元的字节序。例如“奎”的 Unicode 编码是 U+594E, “乙”的 Unicode 编码是 U+4E59。如果我们收到 UTF-16 字节流“594E”,那么这是“奎” 还 是“乙”?

Unicode 规范中推荐的标记字节顺序的方法是 BOM。BOM 不是“Bill Of Material”的 BOM 表,而是 Byte Order Mark,他是一个特殊的非打印字符,可以把它包含在文档的开头用来指示所使用的字节顺序。对于 UTF-16 字节顺序的标记为 U+FEFE。

在 UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是 FEFF。而 FFFE 在 UCS 中是不存在的字符,所以不应该出现在实际传输中。UCS 规范建议我们在传输字节流 前,先传输字符”ZERO WIDTH NO-BREAK SPACE”。

这样如果接收者收到 FEFF,就表明这个字节流是 Big-Endian 的;如果收到 FFFE,就表明这 个字节流是 Little-Endian 的。因此字符”ZERO WIDTH NO-BREAK SPACE”又被称作 BOM。UTF-8 不需要 BOM 来表明字节顺序,但可以用 BOM 来表明编码方式。字符”ZERO WIDTH NO-BR EAK SPACE”的 UTF-8 编码是 EF BB BF。

UTF-8

UTF-16 不够完美,不是所有字符都能够使用 2 个字节长来表达,所以要在常数时间内定位到第 N 个字符,就不得不维护另外的索引,也就影响了编码本身的设计目的。所以就有了 UTF-8 编码,它是一种可变长度编码,可以用来表示 Unicode 标准中的任意字符。UTF-8 是一种前缀码,什么是前缀码:

  • 对于 UTF-8 编码中的任意字节 B,如果 B 的第一位为 0,则 B 独立的表示一个字符 (ASCII 码);
  • 如果 B 的第一位为 1,第二位为 0,则 B 为一个多字节字符中的一个字节(非 ASCII 字符);
  • 如果 B 的前两位为 1,第三位为 0,则 B 为两个字节表示的字符中的第一个字节;
  • 如果 B 的前三位为 1,第四位为 0,则 B 为三个字节表示的字符中的第一个字节;
  • 如果 B 的前四位为 1,第五位为 0,则 B 为四个字节表示的字符中的第一个字节;

因此,对 UTF-8 编码中的任意字节,根据第一位,可判断是否为 ASCII 字符;根据前二位,可判断该字节是否为一个字符编码的第一个字节;根据前四位(如果前两位均为 1),可确定该字节为字符编码的第一个字节,并且可判断对应的字符由几个字节表示;根据前五位(如果前四位为 1),可判断编码是否有错误或数据传输过程中是否有错误。

编码对应 Unicode 和 UTF-8 转换关系

位数 字节序列 byte 1 byte 2 byte 3 byte 4 byte 5 byte 6
7 U+0000 U+007F 1 0xxxxxxx          
11 U+0080 U+07FF 2 110xxxxx 10xxxxxx        
16 U+0800 U+FFFF 3 1110xxxx 10xxxxxx 10xxxxxx      
21 U+10000 U+1FFFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx    
26 U+200000 U+3FFFFFF 5 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx  
31 U+4000000 U+7FFFFFFF 6 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx  

GB2312 编码

GB 2312-80 编码是中华人民共和国国家标准汉字信息交换用编码,全称《信息交换用汉字编码字符集基本集》标准号为 GB 2312-80(GB 是“国标”二字的汉语拼音缩写),由中华人民共和国国家标准总局发布,1981 年 5 与 1 号发布,1981 年 10 月 1 日实施。它是一个简化字汉字的编码,通行于中国大陆地区及海外使用简体中文的地区(如新加坡等)。

GB 2312-80 收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母、共 7445 个图形字符。其中汉字以外的图形字符 682 个,汉字 6763 个。

GB 2312-80 把收录的汉字分成两级。第一级汉字是常用汉字,计 3755 个,置于 16~55 区,按汉语拼音字母 / 笔形顺序排列;第二级汉字是次常用汉字,计 3008 个,置于 56~87 区,按部首 / 笔画顺序排列。字音以普通话审音委员会发表的《普通话异读词三次审音总表初稿》(1963 年出版)为准,字形以中华人民共和国文化部、中国文字改革委员会公布的《印刷通用汉字字形标》(1964 年出版)为准。

GBK 编码

GBK 编码标准,全称《汉字内码扩展规范》(GBK),英文名称 Chinese Internal Code Specification,中华人民共和国全国信息技术标准化技术委员会 1995 年 12 月 1 日制定,国家技术监督局标准化司、电子工业部科技与质量监督司 1995 年 12 月 15 日联合以技监标函 [1995]229 号文件的形式,将它确定为技术规范指导性文件,发布和实施。这一版的 GBK 规范为 1.0 版。GB 即“国标”,K 是“扩展”的汉语拼音第一个字母。

GBK 向下与 GB 2312 编码兼容,向上支持 ISO 10646.1 国际标准,是前者向后者过度过程中的一个承上启下的标准。GBK 共收录 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。

GB2312 的 code page 是 CP20936,GBK 的 code page 是 CP936。GB18030 支持的字符数更多。GB2312、GBK、GB18030 均为双字节。从 ASCII、GB2312、GBK 到 GB18030 的编码方法是向下兼容的。

举一个最简单的例子,比如 字,在 GB 2312 解码时可能就是乱码,而 CP936 并不会。

GB 18030 编码

GB 18030 有两个版本:GB 18030-2000 和 GB 18030-2005. GB 18030-2000 是 GBK 的取代版本,它的主要特点是在 GBK 的基础上增加了 CJK 统一汉字扩充 A 的汉字,GB 18030-2005 的主要特点是在 GB 18030-2000 基础上增加了 CJK 统一汉字扩充 B 的汉字。

GB 18030-2000,全称《信息技术 信息交换用汉字编码字符集 基本集的扩充》,中华人民共和国信息产业部电子工业标准化研究所起草,由国家质量技术监督局于 2000 年 3 月 17 号发布。GB 18030-2000 共收录 27533 个汉字。

GB 18030,全称:国家标准 GB 18030-2005《信息技术 中文编码字符集》,是中华人民共和国现在最新的内码字符集,是 GB 18030-2000 的修订版。GB18030-2005 共收录汉字 70244 个。现行版本为国家质量监督检验总局和中国国家标准化管理委员会于 2005 年 11 月 8 日发布,2006 年 5 月 1 日实施。此规格为在中国境内所有软件产品支持的强制规格。

BIG 5 字符集

BIG-5 码是通行于台湾、香港地区的一个繁体字编码方案,俗称“大五码”。

BIG-5 码收录 13468 个符号和汉字,符号 408 个,汉字 13060 个,分为常用字和次常用字两部分,各部分中的汉字按照笔画 / 部首排列。其中:常用字 5401 个,次常用字 7659。

GB/T 12345 编码

GB/T 12345-90 编码全称《信息交换用汉字编码字符集 辅助集》,标准号为 GB/T 12345-90,1990 年 6 月 13 日发布,1990 年 12 月 1 日实施,是一个关于繁体字的编码标准。所谓“辅助集”,是与“基本集”(GB2312-80)相对应而言。即:GB/T 12345 是与 GB2312 相对应的图形字符集。原则上,本字符集是将 GB2312 中的简化字用相应的繁体字替换而成。因此,这些替代的繁体字具有与被替代的简化字相同的编码;未曾简化的汉字以及非汉字图形字符,仍是 GB2312 中的汉字和图形字符,并具有与之相同的编码。 GB/T 12345-90 共收录 7583 个图形字符。汉字以外的图形字符 716 个,汉字 6866 个,其中一级汉字 3755 个,二级汉字 3008 个,增补汉字 103 个。 关于繁体字替换简化字的原则,GB/T 12345 注明:“本标准原则上按照《简化字总表》中所列繁体字与简化字的对应关系进行替换。”《简化字总表》由中国文字改革委员会 1964 年 5 月发表,后经国家语言文字工作委员会作个别修改,国务院 1986 年 6 月 4 号批准发表。

748 编码

748 编码仅用于方正软件和系统,不做介绍


2015-05-15 encoding , chinese

电子书

本站提供服务

最近文章