Oct 20

转自:https://gist.github.com/2686973

# /etc/nginx/sites-available/blog.shellexy.info
server {
  resolver 8.8.8.8;
  listen 80;
  server_name blog.shellexy.info;
  #access_log off; 
  access_log  /var/log/nginx/blog.shellexy.info.access.log;
  location / {
    #避免远方启用压缩导致无法替换纯文本
    proxy_set_header Accept-Encoding "";
    #按需替换为您的 blogger
    proxy_pass $scheme://shellexy.wordpress.com$request_uri;
    sub_filter http://shellexy.wordpress.com http://blog.shellexy.info;
    #替换全文所有文本
    sub_filter_once off;
  }
}
Oct 20

Windows、Macintosh、Linux平台:
http://www.adobe.com/support/flashplayer/downloads.html

另附一个Adobe常用软件的FTP:
ftp://ftp.adobe.com/pub/adobe/

Adobe Flash Player Support Center
http://www.adobe.com/support/flashplayer/downloads.html

Flash Player for ActiveX (Internet Explorer)
Flash Player Plug-in (All other browsers)

Oct 19

转自:http://wsong83.wordpress.com/2011/07/08/一些latex的小问题/

1. hyperref
曾经认为只有使用pdflatex才能使用hyperref包来生成超级连接和pdf的目录搜索页。现在发现这是个误解。
hyperref包的默认pdf生成工具是pdflatex,但它也支持latex+dvipdf/dvipdfm的方式。只不过需要配置一下。
在我的博士论文当中,hyperref包的使用如下:

usepackage[
dvipdfm,
pdftitle={thesistitle},
pdfauthor={thesisauthor},
colorlinks=true,
linkcolor=black,
breaklinks=true,
urlcolor=blue,
citecolor=black
]{hyperref}

其中第一行dvipdfm则告诉hyperref最终的pdf生成工具是dvipdfm。hyperref会在生成的dvi文件中插入dvipdfm能够正确识别的注释符。
pdftitle和pdfauthor将会改变生成的pdf文件的标签页中的文件标题和作者。
colorlinks=true表明使用颜色来表示所有的链接(默认为不使用)
linkcolor=black设定内部链接使用黑色文本(默认为难看的红色)
breakline=true允许将长的url拆成多行(默认为禁止,长url将在一行显示,无论多长)
urlcolor=blue使用蓝色显示url(默认为粉色,??不符合一般网页定义)
citecolor=black引用用黑色显示(默认为绿色)
其他参数参看http://mirror.ctan.org/macros/latex/contrib/hyperref/doc/manual.pdf

2. booktabs
Latex传统的表格已经过时了。为了让表格更加美观,现在有了一个新的表格包— booktabs
这个包将覆盖原有的table关键字,基本上原有的tabular命令都可以使用,不过booktabs提供了一些新的命令,比如toprule,middlerule和bottomrule。两种表格的风格比较参见http://en.wikibooks.org/wiki/LaTeX/Tables中的Proffessional tables小节

3. 显示源代码
有时候我们希望在文本中加入源代码。源代码和普通文本不同,代码往往用等宽字符显示才美观,而文本字体往往会使用非等宽字体来隐藏难看的字符间的不等空隙。
Latex本身就自带了一种等宽显示模式(verbatim),所有在begin{verbatim}和end{verbatim}之间显示的问题都将使用等宽字符显示。不过,所用的字体看起来就像原来的DOS的控制行显示字体,好像叫terminal字体。更令人抓狂的是,所有的加粗,斜体,颜色等等命令在verbatim环境中都会失效。也就是说,尽管代码能用等宽字体显示了,不过你也别想加粗关键字和用颜色显示注释。
其实,listings包提供了代码显示的支持。我所使用的配置如下:

usepackage{listings}
lstset{
  language=Verilog,
  basicstyle=ttfamilyscriptsize
}

其中Verilog就表明了将显示的代码是Verilog HDL,这样listing能自动识别关键字并使用不同的格式显示。不过我的ttfamily好像还是覆盖了关键字显示。仍然只能有一种字体格式。不过注释现在能自动斜体显示了。稍微有一点点遗憾。具体配置请参看http://mirror.ctan.org/macros/latex/contrib/listings/listings.pdf

4. 单位符号
为了统一各种单位的显示,比如byte/s等等,我使用了SIunits包。该包定义了大部分的单位并用统一的格式显示单位和其数值。使用该包后,24 mm^2将写作unit{24}{millisquarenmetre},然后latex就能正确显示。不过该包重定义了square,和数学包中的square冲突。配置SIunits使用squaren将迫使SIunits定义平方符号为squaren
我的使用配置如下:

usepackage[binary,squaren]{SIunits}

其中binary告诉SIunit支持和byte,bit相关的单位。如果有没有定义的单位,比如MByte/Node/s中的node就没有定义。可以直接在unit代码中写文字(megabyteperNodepersecond)。

5. 对某些文字使用不同字体。
我们经常希望某些文字用不同的字体显示,比如说标题和页眉。Latex往往使用全局配置控制字体,换字体往往意味着换环境,比如进入数学模式。换字体在latex还真不是很容易。
我在我的论文中定义了一个新命令:

newcommand{arial}[1]{{fontencoding{T1}usefont{T1}{phv}{m}{n}{#1}}}

这样we arial{are} human.中are就会使用arial显示。linux下面没有arial,而叫做Helvetica,一个瑞士人发明的。其实Arial反而是后来的,只不过我们windows用多了,不知道其实微软copy了Helvetica而已。我的命令中phv就是Helvetica。T1说明使用T1字体。字体是一个很复杂的问题,我自己还没太搞清楚。。。。在使用新字体的时候,准备好latex会爆出一大堆缺少文件,缺少map或字体不识别的问题。

6. 图片的多行标题显示
从没有想到原来多行显示图片标题居然会是个问题。在默认环境下,使用caption包,短于一行的标题会居中显示,长于一行的标题将会沾满整行然后在行尾断行。这都没有问题。不过,要是想在某个地方人为断行,这个就难了。比如说下面:

Assuming
this
is a Figure
Fig. The figure
caption

人为在figure后加上\断行后,单行标题变成多行标题,所有行都会顶在行左,就出现了这种难看的样子。到现在我也没有发现有什么办法告诉Latex去居中显示整个标题块,好象是因为latex并不知道标题块有多宽。
这种的办法是配置caption包。我最终的配置:

usepackage{caption}
captionsetup{margin=20pt,format=hang,justification=justified}

其中margin告诉latex在标题块的两边都留20pt的空白,如果标题超长,至少多行不会直接顶在最左边。现在是有了20pt的整体缩进。后面的hang是告诉caption允许多行标题,如果出现多行,按照正常的多段文本处理(默认标题只有一段文字,禁止多段文字)。然后justified确定使用默认的问题对齐方式(两端对齐加短行靠左)。不过,这些特性仅仅在新的caption包中才支持。Fedora自带的texlive-2007不支持,需要单独安装最新的caption。后面再说这个问题。

7. 超长行的自动换行
以前没有注意到,原来latex的自动拆单词换行是依靠字典的。如果遇到latex不认识的单词,他就不会换行了。我就遇到如下的问题:

This is a dummy sentence.
I am going to show a longsentence
that latex does not recogn-
ise correctly and does not
how to hyphen it. It is left th-
ere as a super long line.

其中longsentence是一个latex不认识的单词,他就不会拆了(很愚蠢!)解决这种问题,需要两步:
1. 使用usepackage[british]{babel}告诉latex用正确的字典去查单词,比如我就使用英式英语而非美式(默认)。然后对于长的自造单词,使用hyphenation告诉latex如何拆:

hyphenation{long-sen-ten-ce net-works semi-conduc-tor meta-sta-bi-lity MU-TEX pi-pe-line}

8. 不想显示章节号的章节
我们往往会希望有些章节没有章节号,比如备注或者致谢。在我的论文中,我有备注。我希望备注和正文直接有一页纸显示备注,但是不希望该页成为论文的第四个部分(论文正文有三个部分了)。简单的将章节号去除,latex将认为该章节不存在,所以目录中就不会显示了,但这又是我不希望看到的。我希望有一个没有编号的第4部分,同时在目录中显示。以下的代码就能做到这点:

appendix
part*{Appendix}label{part_appendix}
addcontentsline{toc}{part}{Appendix}

appendix显示备注开始,part*{Appendix}定义了一个没有编号的部分,会以单独的一页纸显示Appendix的开始。不过该部分并不被latex认为是一个部分。所以后面的addcontentsline重新一部分的方式将Appendix加入目录。(不过,hyperref在pdf中的标签导航还是显示整个Appedix属于第3部分而不是单独的一个部分,不知道怎么搞。)

9. 孤行控制
在Word中我们只要选中孤行控制,Word就不会将一段的第一行或者最后一行放在不同的页面。Latex中好像没有相应的命令。Latex只是尽量防止孤行,当避免孤行会导致大量的页面空白的时候,Latex会放弃避免孤行。我们可以改变孤行的惩罚权重来告诉Latex我们更在乎孤行。有两个参数控制这些:

widowpenalty=4000
clubpenalty=4000

其中widowpentalty是出现尾行分页所产生的惩罚值,clubpenalty是出现首行分页的惩罚值。默认是150。我把他们都设成4000,就是告诉latex要更努力的减少孤行。如果设定惩罚为10000,就会完全的避免孤行,但是排版会很难看,因为latex会放弃一切的去排除孤行。

10. Tex-live 2011
Fedora的默认latex是tex-live 2007包,也就是说所有的包都是2007年之前的,已经很落后了。从Fedora 13开始,Fedora提供了tex-live 2011和tex-live 2010的开发包支持。参看http://fedoraproject.org/wiki/Features/TeXLive,那里提供了更新到tex-live新版本的rpm yum升级包。安装之后就可以使用yum来自动更新所有的tex-live包。我个人一直在fedora 14上使用tex-live 2011,除了有时候yum 升级会出现版本冲突问题(他们一直在更新,所以难免会有版本冲突,往往过几天就没了,继续升级就好),没有发现有什么问题,一切OK。非常推荐升级TexLive。

Oct 19

转自:http://www.busfly.net/post/452.html

以前一直都是在虚机上跑Linux,眼看着磁盘空间越来越小,速度越来越慢。正好手头有个16G的U盘,就琢磨把Ubuntu装到U盘里面去, 制作一个便携的Linux系统,下面是具体攻略,用的是Ubuntu9.10系统。(本攻略是在U盘完整安装Ubuntu,创建LiveCD请直接跳转到 尾部。此攻略也适用于将Ubuntu安装到移动硬盘)。
1. 下载Ubuntu CD镜像,刻盘。

2. 开机,光盘启动到Ubuntu,选择Try Ubuntu without change ….

3. 进去光盘系统后,插入U盘,用System->gParted给U盘分区,具体如下:
3.1 桌面右击U盘图标, Unmount之。
3.2 启动gParted,选中U盘,在我机器上硬盘式sda,U盘是sdb,注意千万不要误选原来的硬盘。
3.3 删除已有分区。
3.4 新建一个Extended分区sdb,直接OK。
3.5 sdb下新建一个Logical分区sdb1,FAT32格式,设了2G给Windows下继续当U盘用,也可以避免误把U盘格掉。
3.6 sdb下新建一个Logical分区sdb2,选ext3或者ext4格式,用来安装Ubuntu。
3.7 因为有2G内存,不打算建SWAP分区了,如果以后要用,可以挂载swap文件。

4. 分区完毕,可以开始安装了(跑到Windows下看了下,FAT32分区可用)。

5. 点击桌面的安装图标,开始安装Ubuntu了,选择语言,时区,键盘。

6. 开始选择磁盘了,这一步万分忐忑,生怕不小心把硬盘上的系统给搞崩溃了,选高级,自己指定分区。

7. 选择刚才创建的用来安装sdbx分区(奇怪,在gParted里面U盘第二个分区是sdb2, 现在变成了sdb6),点下面的Change按钮,在这个分区挂载根目录/,格式选ext3或ext4。

8. 谨慎点击Next,设置姓名密码之类的,一直到最后一步显示安装概要的时候,点击右下角的Advanced按钮,设置将Loader安装到U盘sdb(将Grub装到U盘上,不要碰原来硬盘,不然有啥闪失就亏大了)。

9. 漫长的等待,跑去洗了个澡,吃了些东西,上了会儿网,看了会儿书。终于到了100%了,”copying installation logs”,居然挂在那儿不动了。这是Ubuntu的一个BUG,不用管,直接重启。

10.BIOS设置U盘启动,开机即可进去Ubuntu了,注意还有事情要做。因为U盘频繁读写会严重影响U盘寿命,所以需要把一些目录挂在到RAM盘中去。
10.1 sudo gedit /etc/fstab。
10.2 在fstab尾部添加一行:”none tmpfs /tmp size=200m 0 0″ 给了200M空间。
10.3 我把/home/myname/Downloads也给挂进去了,其他常读写的地方可能还有/var/tmp等。

11 保存fstab文件,重启,添加速度快的源,安装Ubuntu Tweak,更新,安装各种软件,够折腾的了。

Ubuntu支持直接用U盘制作LiveCD,LiveCD可以理解成U盘光碟,能够启动,但是不能在U盘写入内容,无法安装软件。具体创建方法是
a. 虚机加载Ubuntu ISO镜像(或者刻盘,光盘启动)
b. 插入USB
c. 运行System->Administer->LiveCD USB Creator

Oct 19

转自:http://blog.csdn.net/vah101/article/details/6117563

最近突发奇想,打算定制一个Ubuntu 10.10桌面最小系统,并且将其制成LiveCD。以下是我的制作过程。

1.首先要下载ubuntu-10.10-alternate-i386.iso和ubuntu-10.10-desktop-i386.iso镜像,之所以要用2个镜像是因为需要通过ubuntu-10.10-alternate-i386.iso来安装命令行系统,再在命令行的基础上安装X11环境和GNOME环境,而ubuntu-10.10-desktop-i386.iso则是用来制作LiveCD。alternate版和desktop版的区别在http://www.linuxdiyf.com/bbs/thread-64198-1-1.html有详细的介绍,主要就是安装原理的不同desktop版相当于一个LiveCD,安装时就是从光盘将Ubuntu系统“恢复”到硬盘,而alternate版才是真正意义上的安装程序,并且可以只安装命令行系统。

2.用ubuntu-10.10-alternate-i386.iso引导开机,选择好语言后,按F4选择安装模式为“安装命令行系统”,再按“安装Ubuntu”,就可以开始了。

3.安装完,重启后执行 $sudo apt-get update 更新源下载文件,再执行

$sudo apt-get install openssh-server

安装ssh server,

4.下载并安装X-window环境,执行

$sudo apt-get install x-window-system-core

5.再就要安装显卡驱动了,由于我用的VMWare虚拟机的显卡驱动已经被Ubuntu集成了,所以这一步可以跳过

6.安装GNOME桌面环境

$sudo apt-get install gnome-core

安装gnome-core需要的包较多,可能会下载比较长的时间

7.安装Compiz窗口管理器

$sudo apt-get install compiz

按道理这个不需要装的,但是不安装的话,ubuntu新开窗口不能移动,缩放。

8.安装输入法管理器与小企鹅输入法

$sudo apt-get install im-switch
$sudo apt-get install fcitx

某些情况下可能,在安装了fcitx输入法以后可能会出现和SCIM并存的问题,只要用im-switch把默认输入法改成fcitx就可以了:

$sudo im-switch -a fcitx
$im-switch -a fcitx

9.设置英语界面中文输入环境,如果不需要输入汉字的话,8、9两步可以省略

$sudo vim.tiny /etc/environmont

添加:

LC_CTYPE=zh_CN.UTF-8

10.安装中文字体(如果执行了第8步,这一步可以省略)

$sudo apt-get install ttf-arphic-uming

11.现在运行$sudo startx就可以进入Ubuntu的图形界面了。第一次进入界面,会看到”OAFILD:Gnome_FastUserSwitch Applet”的出错窗口,这实际上是一个快速切换用户的功能包,要解决的话,要执行

$sudo apt-get install indicator-applet-session

12.再安装gdm这样下次重启就能直接进入GNOME界面了,

$sudo apt-get install gdm

也可以把startx写到/etc/rc.d/local下

13.执行$sudo apt-get clean,再执行df -h可以看到装完整个系统用了大约1.2G的空间。

安装系统到此可以告一段落了,下面就可以开始制作LiveCD了。前文已经说过,ubuntu-10.10-desktop-i386.iso实际上就是一个现成的LiveCD,我们只要利用它的结构,就可以方便快捷的生成自己的最小系统LiveCD了。这里主要做的事情是首先将已安装操作系统上的文件备份成一个squashfs归档文件,然后将ubuntu-10.10-desktop-i386.iso里的内容拷贝出来,用新的squashfs文件替换掉里面已有的文件,再调整一些配置,然后将其生成新的ISO文件,再将其刻录成CD或者制成USB引导盘,这个过程就算大功告成了。

1.将当前操作系统备份成squashfs归档文件,有很多工具,其中最简便的就数国内某大牛写的Live Ubuntu Backup V2.2了,尤其是它还支持中文提示,在http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=206287 可以看到使用说明。这是一个shell脚本写成的Ubuntu备份工具,直接运行即可。

将lub拷贝到/home下,$sudo chmod 777 /home/lub 然后执行$sudo /home/lub -b,然后按e或c来选择是英文提示,还是中文提示。第一次执行时,可能会提示需要安装lupin-casper和squashfs-tools,其中lupin-casper可以忽略,而squashfs-tools必须安装,运行$sudo apt-get install squashfs-tools即可。

之后再次运行$sudo /home/lub -b,依提示运行,就能在用户文件夹下生成一个backup-2011.01.05的目录了,其中有的backup-2011.01.05.squashfs文件就是我们想要的。

2.再将ubuntu-10.10-desktop-i386.iso拷贝到用户目录下,比如/home/jxg/下,

创建一个目录,用来挂载ubuntu-10.10-desktop-i386.iso

$sudo mkdir /home/jxg/mnt ,

将ISO挂载到/home/jxg/mnt下

$sudo mount -o loop /home/jxg/ubuntu-10.10-desktop-i386.iso /home/jxg/mnt

创建一个livecd的工作目录

$sudo mkdri /home/jxg/livecd

将mnt目录下casper/filesystem.squashfs以外的内容,同步的livecd工作目录上

$sudo rsync --exclude=/home/jxg/mnt/casper/filesystem.squashfs -a /home/jxg/mnt/ /home/jxg/livecd

下面,我们要对/home/jxg/livecd/casper/目录下的filesystem.squashfs、filesystem.manifest、filesystem.manifest-desktop这三个文件进行操作,由于它们只有读权限,所以先执行

$sudo chmod o+w /home/jxg/livecd/casper/filesystem.*

将刚才lub生成的那个backup-2011.01.05.squashfs文件,拷贝成/home/jxg/livecd/casper/filesystem.squashfs

执行:

$sudo cp /home/jxg/backup-2011.01.05/backup2011.01.05.squashfs /home/jxg/livecd/casper/filesystem.squashfs

此外,还要更新/home/jxg/livecd/casper/目录下的filesystem.manifest和filesystem.manifest-desktop,这两个文件实际上是LiveCD系统内所装包的列表,通过以下方式更新

$sudo dpkg -l | grep ii | awk '{print $2,$3}' > /home/jxg/livecd/casper/filesystem.manifest
$sudo dpkg -l | grep ii | awk '{print $2,$3}' > /home/jxg/livecd/casper/filesystem.manifest-desktop

实际上filesystem.manifest-desktop和filesystem.manifest是有所不同的,主要是少了ubiquity casper live-initramfs user-setup discover1 xresprobe os-prober libdebian-installer4这几个包,这里我将其忽略了。

3.退回的LiveCD的工作目录 /home/jxg/livecd 下,执行

$cd /home/jxg/livecd
$sudo rm md5sum.txt
$find -type f -print0 | sudo xargs -0 md5sum | grep -v ./isolinux/ | grep -v ./md5sum.txt | sudo tee md5sum.txt

更新原有的md5sum

4.将工作目录下的内容打包成ISO
安装ISO打包工具

$sudo apt-get install mkisofs

将livecd内的内容打成ISO包,执行

$sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-jxg-test.iso .

这个一定要在工作目录的跟下执行,并且命令最后的 . 一定不要忘记。命令完成后,就可以在上一级的目录下发现ubuntu-jxg-test.iso文件了,大小为407MB

总结,实际上我的制作过程中,对包的选择比较粗放,很多包比如 indicator-applet-session 、 gdm 、fcitx包都可以不装,并且对linux的内核也没有裁剪,限于时间所限,目前只能做到这一步了,其实还有Ubuntu精简还有很大的潜力。我使用LXDE替代GNOME制作了一个LiveCD包,只有350多M,过程参见 基于LXDE的Ubuntu桌面最小系统LiveCD

参考文档:
最小化定制Ubuntu
http://keqi360.blog.163.com/blog/static/636039142009221112144993/
制作自己的Ubuntu安装盘
http://upc.gg.blog.163.com/blog/static/297984982010930644120/
从零开始构建Ubuntu LiveCD
http://shenqiubufu.blog.163.com/blog/static/1627924942010814101024134/
Live Ubuntu Backup V2.2,备份你的 ubuntu 为可启动的 squashfs 文件
http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=206287