Kindle 3的字体、行距、边距

  在说正文前先扯一下Kindle 3的阅读格式。在各类Kindle资源中最常见的格式有mobi, azw, pdf, txt。 Kindle对中文txt支持很不好,经常有看一半坏掉打不开的情况,所以txt先扔一边不谈。 azw一般没人生成这个当资源发布,除非是破解Amazon的书才会用这个格式,不过通过@free.kindle.com这个地址来传书的话非pdf格式最终都会被转为azw。 而mobi是Amazon官方推荐的格式,也是在Kindle上支持最好的Reflow格式。PDF在中文书资源中占了很大的一个比例,但是PDF对于电子书来说却是一个最恶劣的格式:它不能被Reflow。
  对于一台6寸600×800的手持阅读设备来说,把它用于阅读那些A4大小PDF格式的文献/论文是不明智的,A4的PDF就应该交给DXG这样的10寸设备。对于一台6寸设备,可以Reflow的文件类型才是友好的,那样才能按照自己的喜好设定字体、行距……来获得较好的阅读体验。可能因为历史原因,一开始为了让Kindle 3能够更好的阅读中文书籍,发布资源者选择了可以嵌入中文字体的PDF。但是无法改变行距、无法改变字体、甚至无法改变字体大小,再加上不知为何大部分制作资源者都选择雅黑、幼圆这类Sans-serif字体作为正文字体,让文章在Kindle上的可读性一降再降。

字体

  中文字体常用的很少,主要就是四种:宋、仿、黑、楷。现行出版的书籍正文基本上都是选用宋体,而我个人倾向也是Kindle上正文非宋体不能接受。仿宋体相对宋体没有那么方正,各大机关发文倒是向来习惯使用这个字体。楷体很好看,但是笔画的斜度和字型结构的不齐整不太适合长时间阅读,国内杂志、论文也倾向用楷体做概要和注释用字体。
  黑体比较特别,传统黑体作为各类标题非常醒目,但是在电脑屏幕上使用却有过“重”的感觉。不过以“苹果丽黑”“微软雅黑”为首的较细笔画的黑体出现后,各种需要在电脑屏幕上输出文字的内容都开始倾向使用这类黑体。这除了是因为黑体这种类似英文Sans-serif的字体作为菜单、标题时极其醒目和易于辨认外,更大的一个原因却是电脑屏幕的ppi很低。ppi(Pixel per Inch)每英寸像素数,这个数字越高图像就会更细腻。Apple iPhone 4一个重要特性就是高达326ppi的Retina屏幕;Kindle 3的ppi值是167;而传统CRT显示器的ppi值是72/80左右;现广泛使用的LCD液晶屏幕的ppi略高于CRT在96左右;即使一些14寸笔记本使用的1440高分屏也只是102ppi。低ppi的结果是像宋体这种类Serif的字体由于笔画粗细不同,笔画首尾还有小三角的字体在屏幕上变得模糊、不够醒目。而细笔画的黑体由于笔画粗细相同、没有过多修饰,特别是微软雅黑这种为低ppi优化过的字体很快被大家所接受和推崇。或许正是这种惯性导致在Kindle上很多人仍然使用各种黑体来作为正文字体。
  理论上300ppi人的肉眼在正常阅读距离已经看不到像素点,实际上对于大部分人来说200ppi已经是“很清晰”的范畴了。Kindle的167ppi虽然还没有达到书籍的单位分辨率,不过已经超过了黑白印刷报纸的单位分辨率。再有e-ink技术支持,Kindle完全应该作为一种应刷品来对待,而不是电脑屏幕。那些在电脑屏幕上模糊的宋体在Kindle上是完全可以和“清晰”划等号的。用宋体吧各位,我们不是在看大字报。

行距

  对于行距就完全是个人好恶了。像中文这样的方块字,字与字之间不如英文单词间会有空格作为一种视觉上的减缓。行距如果再近一点那就像是纸上滴了一滩墨那样难受。所以个人觉得中文行距最好留出可以塞入小1-2号的字体这样的空间,各位看官可以参照我的Blog正文行距设置加深理解。

以下是行距2,也就是Kindle默认行距的中英文观感。

以下是行距3的中英文观感。

以下是行距4的中英文观感。


  个人虽然很喜欢行距4的中文观感,但是对于英文来说有点过宽了,所以最后我折中用了行距3。

边距

  仅对于Kindle 3的默认边距来说我觉得太浪费了,6寸已经够小了,还给我弄掉两条大白边。本着能扣则扣的原则,我是把Kindle的边距设到了一个不影响观感足够小的位置。

以下是Kindle 3的默认行距边距,修改后的情况可以见上几张图。

JUSTIFICATION

  JUSTIFICATION特性在英文电子排版里用的比较多,这个特性为了保证两端尽量对齐会微调各字符间距。对于纯中文文章来说这个特性并没有任何影响,方块字每个字大小都是相同的。但是碰到中英文混排如果遇到较差的JUSTIFICATION实现,就会遇到中文字符被拉的很开的情况。不过Kindle的JUSTIFICATION实现在中英文混排的时候效果也不错,所以最后我还是选择了默认的JUSTIFICATION FULL对齐,这样文章看起来左右都很漂亮。

迁移iTunes文件的存放位置

  最近我把MacBook的硬盘换成了SSD,这也是近年来唯一一次效果明显的硬件升级。不过SSD价格仍然偏贵,所以最后购入了硬盘容量是120G,这样的大小无法满足存放音乐和照片的需要。而像Apple4us那两篇(12)所提到的拆掉光驱使用大容量的机械硬盘来存放数据的做法我又不是很情愿,因为更换成SSD除了速度提高外另一个目的是为了把MacBook里的机械部分减少到最小,这样平时使用时才不用去担心俺的奇怪体位造成机械硬盘的损坏。所以我把音乐和照片的原数据全部转移到了NAS上,而本地保留Library库文件。由此造成的一些问题和解决方案在此记下,这篇先讲音乐部分。
  我是用iTunes全权负责我的音乐管理,并且打开了“保持有序”和“复制文件到iTunes Media目录”两个选项来用于整理存放我的音乐文件。iTunes的Library文件位置一般来说是在

/Users/[username]/Music/iTunes/iTunes Library

这个文件不要去动它。iTunes里的那些数据文件,包括音乐、视频、APP、书籍⋯⋯所有你在iTunes里看到的数据都是存放在

/Users/[username]/Music/iTunes/iTunes Music

我要移动的就是这个目录。
  iTunes => Preferences => Advanced,默认情况下应该是下图这样:

  更改”iTunes Media folder location”的位置,也就是iTunes所有原数据文件的新存放位置,也是以后新加入文件的存放位置。

  按了OK出来,以后新加入的数据就会自动复制到新位置,但是这个时候旧数据并不会复制过去。这个时候需要整理Library,”File => Library => Organize Library”

在弹出的对话框上勾选”Consolidate files”

点击OK后就等着吧,iTunes会把旧数据全部复制到新位置。要注意的是整理完毕后需要手工删除原有位置文件,iTunes不会自动删除旧数据。
  这样做缺点也比较明显,在播放、同步iTunes内容的时候一定要在可以连接到NAS的环境,当然如果是放在移动硬盘上倒是没这个问题。

OpenVPN 101 简明教程

  本指南仅仅是保证OpenVPN服务能够正常运作起来,并打开Internet转发,文末附送iPhone OS使用OpenVPN简短指南。

安装 OpenVPN
  我使用的是系统是GNU/Linux Debian,所以以下安装方式和一些配置文件位置并不能应用在所有Linux系统上,不过既然大家都自己搭VPS了,装个软件包找个配置文件应该不在话下了。

apt-get update

对于Debian来说,这个是每次安装前必做的事情。

apt-get install openvpn udev

除了安装openvpn外,我们还需要添加tun设备,所以装个udev比较方便。

Read More… »

VPS建站LAMP 101

自从跑到Linode上买了VPS,建站就得自己从零开始,这里写点基本建站的过程。

  • 以下内容是标准而又基础的LAMP搭建,不涉及ngix, lighttpd这些服务。
  • 以下内容非特别注明都在root权限下执行。
  • 以下内容使用的操作系统是Debian 5.0 (Lenny) 64bit,不过只要是Debian Like(比如 Ubuntu)的系统应该是通用的。
  • 由于各家VPS提供商的基础系统安装步骤各不相同,文章内容并不涉及到系统安装和域名设置。

设置时区
  系统安装完毕后,最好先设置一下时区。一般来说大部分发行版本默认的时区设置是UTC,个人建议还是把它设置成自己的当前时区比较好。

dpkg-reconfigure tzdata


设置HostName
  HostName设置成自己喜欢的就行,不过有些系统保留的名字不要用。

echo “youlikename” > /etc/hostname
hostname -F /etc/hostname

  设置完HostName后,继续让这个名字和Linode分配给你的公网ip地址相关联。
修改/etc/hosts:

127.0.0.1 localhost
12.34.56.78 youlikename

安装配置Apache服务
  对于Debian Like用户来说安装任何东西都极其简单,使用以下命令就可安装Apache Web服务。

apt-get install apache2

  然后需要修改/etc/apache2/ports.conf,加入以下内容:

NameVirtualHost 12.34.56.78:80

  IP地址当然是VPS供应商提供给你的独立IP,如果不想站点公开化当然也可以更改80端口。
  然后需要修改默认的虚拟主机IP地址和端口,修改/etc/apache2/sites-available/default:

<VirtualHost 12.34.56.78:80>

配置虚拟主机
  Apache2开始对虚拟主机的配置基本上做到了傻瓜化,非常适合各类像我这样的新手。所有的虚拟主机配置文件被放置在:

/etc/apache2/sites-available/

  每个配置文件和域名一一对应,便于管理。比如需要设置两个站点,可以创建如下两个配置文件:site1.com; site2.org。
/etc/apache2/sites-available/site1.com

<VirtualHost *:80>
     ServerAdmin admin@site1.com
     ServerName site1.com
     ServerAlias www.site1.com
     DocumentRoot /srv/www/site1.com/public_html/
     ErrorLog /srv/www/site1.com/logs/error.log
     CustomLog /srv/www/site1.com/logs/access.log combined
</VirtualHost>

/etc/apache2/sites-available/site2.org

<VirtualHost *:80>
     ServerAdmin admin@site2.org
     ServerName site2.org
     ServerAlias www.site2.org
     DocumentRoot /srv/www/site2.org/public_html/
     ErrorLog /srv/www/site2.org/logs/error.log
     CustomLog /srv/www/site2.org/logs/access.log combined
</VirtualHost>

  然后建立相应的目录:

mkdir -p /srv/www/site1.com/public_html
mkdir -p /srv/www/site1.com/logs
mkdir -p /srv/www/site2.org/public_html
mkdir -p /srv/www/site2.org/logs

  最后启用这两个站点:

a2ensite site1.com
a2ensite site2.org

/etc/init.d/apache2 reload

  Apache2提供了两个命令来快速启用和关闭某个站点:a2ensite和a2dissite。

安装配置Mysql
  安装Mysql Server一如既往的简单:

apt-get install mysql-server

  安装完毕后我建议运行一下mysql_secure_installation来做一些基本的安全设置,它会检查root密码、移除anonymous帐号、禁止root远程登录、移除test数据库。
  使用root帐号进入mysql。

mysql -u root -p

  创建数据库。

create database site1db;

  给新创建的数据库制定一个用户和密码。

grant all on site1db.* to ‘site1dbuser’ identified by ‘site1dbpwd’;

安装配置PHP
  在Debian下安装东西实在是没啥技术含量.

apt-get install php5 php-pear php5-suhosin

  然后对php.ini做些修改,让它能在VPS有更好的性能,不过我一直牢记着这条“premature optimization is the root of all evil”,所以在这些基础的设置之外个人建议各位和我一样的新手们,咱先不要去考虑其他的优化参数。
  修改/etc/php5/apache2/php.ini:

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
display_errors = Off
log_errors = On
error_log = /var/log/php.log
max_execution_time = 300
memory_limit = 64M
register_globals = Off

  你可以把上面这些内容复制到php.ini的末尾,也可以把它们一条一条找出来,然后去掉行首的注释字符“;”。
  为了让php支持Mysql,安装下面这个包:

apt-get install php5-mysql

  101教程到此结束,基本上做完上面这些事,站点就能运转起来了。

  最后,如果你对Linode有兴趣可以用这个地址注册:http://www.linode.com/?r=2423bd4b1aea90e0163241cd71513fe1b81108d3或者在注册的referral code中填2423bd4b1aea90e0163241cd71513fe1b81108d3,大约在三个月后我能得到一些好处,当然你直接跑去注册也没问题,以上链接并不会给你带来更多的优惠(当然也没什么坏处)。我个人在这里提供一个首月返还$10的Promo Code:storecrowd,这个是实在的优惠。

如果你对Linode有兴趣可以用这个地址注册:http://www.linode.com/?r=2423bd4b1aea90e0163241cd71513fe1b81108d3或者在注册的referral code中填2423bd4b1aea90e0163241cd71513fe1b81108d3,大约在三个月后我能得到一些好处,当然你直接跑去注册也没问题,以上链接并不会给你带来更多的优惠(当然也没什么坏处)。我个人在这里提供一个首月返还$10的Promo Code:storecrowd,这个是实在的优惠。

Linode下的Apache2+Mysql+Php安装配置