2008年4月23日星期三
新的Linux Flash Player
仅仅安装Adobe的flash-plugin不能保证新的Linux Flash Player工作,还需要安装libflashsupport。最简单的办法是到Adobe的下载网站使用YUM for Linux。
Labels:
Linux
2008年4月20日星期日
新安装Fedora 9 Preview
KDE4一开始不太适应,过了一段时间觉得还不错。不知道什么原因,每次log out之后,键盘就不管用了,用鼠标restart X就没有问题了,大概是kdm的bug。可以设置kdmrc让kdm每次log out后重启X。在kdmrc中
[X-*-Core]后面增加一行:
TerminateServer=true
Labels:
Linux
2007年12月7日星期五
矢量绘图语言Asymptote(一)
Asymptote是从MetaPost扩展而来的矢量数学绘图语言。它使用浮点数运算,支持三维图形,使用类似C++语法。Asymptote的很多语法和MetaPost类似,但是也有不同。下面简单介绍它的使用方法。假设Asymptote命令存在文件test.asy中,则执行下面的命令可以生成eps文件:
asy -V test其中-V参数会自动打开一个PostScript浏览窗口,这样可以立即浏览生成的图形。
- 简单直线图形
- 曲线图形
- graph module
2007年11月13日星期二
2007年9月3日星期一
在Fedora 7下安装LaTeX CJK
LaTeX CJK的安装一向都很麻烦,主要是字体安装和配置不容易。这里主要根据Edward Lee的Blog(http://blog.bs2.to/post/EdwardLee/7672)里的方法进行配置。
- 下载安装CJK包 到http://cjk.ffii.org/下载CJK扩展包,解压缩到“$HOME/texmf/tex/latex/CJK/”。这里不准备修改系统文件,所以只安装到用户目录。
- 生成Type1字体和配置文件 这里使用CJK自带的FontForge脚本文件subfonts.pe生成Type1字体。 首先建一个目录,例如$HOME/song/,我们就在这个目录里生成字体。把我们想要的TrueType字体拷贝到这个目录中,我这里使用的是Fedora自带的文鼎Unicode字体uming.ttf。再把CJK包utils里面的subfonts.pe拷贝到这个目录。最后到http://delloye.free.fr/Unicode.sfd下载Unicode.sfd文件到同一个目录。执行下面的命令:
- 把生成文件拷贝到相应目录 把生成文件拷贝到下面的目录:
- 生成ls-R数据库 执行
- 更新字体map
- 测试 可以编辑下面的文件进行测试。
fontforge -script subfonts.pe uming.ttf song Unicode.sfd这个命令执行的时间比较长。执行完之后,还在该目录执行下面命令生成map文件:
for i in *.tfm
do
cat >> song.map << EOF
${i%.tfm} ${i%.tfm} < ${i%.tfm}.pfb
EOF
done按照Edward Lee的方法,还需要生成fd文件。但是我们给字体起的名字song和CJK自带的c70song.fd文件冲突了,如果用Edward Lee的方法反倒会出问题。我们有个更简单的解决办法,直接把c70song.fd修改一下。CJK自带的c70song.fd文件在$HOME/texmf/tex/latex/CJK/texinput/UTF8/目录下,内容如下:% This is the file c70song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg我们只要把其中的cyberb改作song就可以了。% % Version 4.7.0 (17-Oct-2006) \def\fileversion{4.7.0} \def\filedate{2006/10/17} \ProvidesFile{c70song.fd}[\filedate\space\fileversion] % character set: Unicode U+0080 - U+FFFD % font encoding: Unicode \DeclareFontFamily{C70}{song}{\hyphenchar \font\m@ne} \DeclareFontShape{C70}{song}{m}{n}{<-> CJK * cyberb}{} \DeclareFontShape{C70}{song}{bx}{n}{<-> CJKb * cyberb}{\CJKbold} \endinput
$HOME/texmf/fonts/map/dvips/CJK/song.map $HOME/texmf/fonts/tfm/CJK/song/*.tfm $HOME/texmf/fonts/type1/CJK/song/*.pfb如果目录不存在,自己建立一下。
texhash
updmap --enable Map song.map
\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK}{UTF8}{song}
\LaTeX CJK 测试。
\end{CJK}
\end{document}
2007年3月30日星期五
如何使用Maxima(三)
- 复数运算 代数运算:
- 方程数值解 找出方程f(x)=0在[a, b]范围内的数值解:
(%i1) a:2-3*%i$ (%i2) b:5+4*%i$ (%i3) a+b; (%o3) %i + 7 (%i4) a*b; (%o4) (2 - 3 %i) (4 %i + 5)上面%i1和%i2结尾用$而不是分号;表示不输出结果。 实部和虚部:
(%i5) expand(%); (%o5) 22 - 7 %i (%i6) realpart(%); (%o6) 22 (%i7) imagpart(%o5); (%o7) - 7绝对值和幅角:
(%i8) abs(%o5);
(%o8) sqrt(533)
(%i9) carg(%o5);
7
(%o9) - atan(--)
22
复数形式和直角形式:(%i10) polarform(%o5);
- %i atan(7/22)
(%o10) sqrt(533) %e
(%i11) rectform(%);
7 7
(%o11) sqrt(533) cos(atan(--)) - sqrt(533) %i sin(atan(--))
22 22
(%i12) %,numer;
(%o12) 22.0 - 7.0 %i
find_root(f(x), x, a, b);
2006年11月28日星期二
在线收听古典音乐频道
WCPE古典音乐频道,位于Rolesville,NC,24小时播音。这里是在线收听地址:
http://audio-ogg.ibiblio.org:8000/wcpe.ogg.m3u
Labels:
音乐
2006年10月26日星期四
Linux下复制Video DVD
首先制作iso镜像文件:
mkisofs -dvd-video -o dvd.iso /media/dvd刻录DVD:
growisofs -dvd-compat -Z /dev/hdc=dvd.iso
Labels:
Linux
2006年9月11日星期一
Gnuplot的Palette Map作图
例子(TEM22高斯型光束强度分布存在gaussian_profile文件中):
gnuplot> set view map gnuplot> unset surface gnuplot> set style data pm3d gnuplot> set style function pm3d gnuplot> set pm3d at b gnuplot> set palette gray gnuplot> set size square gnuplot> splot "gaussian_profile"生成的图像:
2006年8月17日星期四
从YouTube,Google Video等站点下载视频
YouTube,Google Video等网站利用新的FLV(Flash Video)流媒体视频技术允许用户在互联网上传播录像,但有时候我们希望把录像保存到自己电脑上,而不是仅仅在网上浏览。Firefox的扩展工具VideoDownloader能够让用户把这些录像下载到本地。下载之后的文件是FLV格式,如果想在一般媒体播放器里看,可以在Linux下用ffmpeg把FLV文件转化成MPG或其他格式:
ffmpeg -i video.flv -ab 128 -ar 44100 -b 200 -s 320x240 video.mpg上面命令中,-b表示视频比特率,-ab表示音频比特率,-ar表示音频取样率,-s表示视频画面大小(宽x高)。
Labels:
网页
2006年8月13日星期日
学用绘图工具MetaPost(二)
- 线性方程 MetaPost可以解线性方程。处于从z1到z2之间1/3位置的点z3可以表示为:
- 图像里插入文字和符号 用label可以在图像里插入文字,后缀lft|rt|top|bot|ulft|urt|llft|lrt分别表示左、右、上、下、左上、右上、左下和右下。另外,通过btex...etex还可以插入LaTeX公式命令。
- 用gnuplot和xfig输出MetaPost文件 常用绘图工具gnuplot和xfig都可以输出MetaPost文件,然后就可以手工编辑,加入LaTeX公式等效果。xfig只要export成MetaPost文件就可以了。gnuplot可以用
z3=1/3[z1,z2]过z1和z2两点的直线上任意一点可以表示为:
whatever[z1,z2]点z1也可以用分量表示:(x1,y1)。下面是寻找两直线交点的例子:
| MetaPost代码 | 生成的图像 |
|---|---|
beginfig(7); z1=(-1.5cm,0); z2=(-3.2cm,-2cm); z3=(2cm,0); z4=(3cm,-2cm); z5=whatever[z1,z2]=whatever[z3,z4]; draw z2--z1--z5; draw z4--z3--z5; pickup pencircle scaled 4pt; draw z1; draw z2; draw z3; draw z4; draw z5; endfig; | ![]() |
beginfig(8);
a=.8in; b=.6in;
z0=(0,0);
z1=-z3=(a,0);
z2=-z4=(0,b);
draw z1..z2..z3..z4..cycle;
draw z1--z0--z2;
label.top("a", .5[z0,z1]);
label.lft("b", .5[z0,z2]);
dotlabel.bot("(0,0)", z0);
endfig; | ![]() |
beginfig(9);
numeric u;
u=1cm;
draw (0,2u)--(0,0)--(4u,0);
pickup pencircle scaled 1pt;
draw (0,0){up}
for i=1 upto 8: ..(i/2,sqrt(i/2))*u endfor;
label.lrt(btex $\sqrt x$ etex, (3,sqrt 3)*u);
label.bot(btex $x$ etex, (2u,0));
label.lft(btex $y$ etex, (0,u));
endfig; | ![]() |
set terminal mp set output "filename.mp"输出为MetaPost文件。
2006年8月11日星期五
学用绘图工具MetaPost(一)
MetaPost是贝尔实验室的John Hobby基于Knuth的METAFONT设计的一种绘图语言。它适于绘制精确的数学图形,可以方便的生成EPS文件,供插入到LaTeX文档中。
Linux下可以用mpost命令处理编辑好的MetaPost文件,生成EPS文件。生成的EPS文件可以作为图片插入到LaTeX文件中,但是没办法直接用gv等PostScript浏览器直接观看,这里有关于这个问题的讨论和解决办法。另外,可以用mptopdf命令代替mpost,可以解决这个问题,而且可以直接生成PDF文件。
下面是MetaPost的简介。beginfig...endfig之间是绘图命令。实际使用中,好几个beginfig...endfig可以放在一个文件里,文件最后需要有一个end命令。
Linux下可以用mpost命令处理编辑好的MetaPost文件,生成EPS文件。生成的EPS文件可以作为图片插入到LaTeX文件中,但是没办法直接用gv等PostScript浏览器直接观看,这里有关于这个问题的讨论和解决办法。另外,可以用mptopdf命令代替mpost,可以解决这个问题,而且可以直接生成PDF文件。
下面是MetaPost的简介。beginfig...endfig之间是绘图命令。实际使用中,好几个beginfig...endfig可以放在一个文件里,文件最后需要有一个end命令。
- 画直线和曲线
- 表示方向的dir和用于循环的for dir a提供了与x轴夹角为a度的单位矢量。dir 0相当于right,dir 90相当于up,类似的方向矢量还有left和down。
- 改变画笔粗细
| MetaPost代码 | 生成的图像 |
|---|---|
beginfig(1); z0=(0,0); z1=(3cm,2cm); z2=(2cm,4.5cm); z3=(0.5cm,3.5cm); z4=(1.5cm,2.5cm); draw z0--z1--z2--z3--z4; endfig; | ![]() |
beginfig(2); u=1cm; z0=(0,0); z1=(3u,2u); z2=(2u,4.5u); z3=(0.5u,3.5u); z4=(1.5u,2.5u); draw z0..z1..z2..z3..z4; endfig; | ![]() |
beginfig(3); z0=(0,0); z1=(3cm,2cm); z2=(2cm,4.5cm); z3=(0.5cm,3.5cm); z4=(1.5cm,2.5cm); draw z0..z1..z2..z3--z4--cycle; endfig; | ![]() |
beginfig(4);
draw (
for i=0 upto 7:
80dir (135i)--
endfor
cycle);
endfig; | ![]() |
beginfig(5);
for a=0 upto 7:
draw (0,0){dir 45}..{dir 10a}(6cm,0);
endfor
endfig; | ![]() |
beginfig(6); u=1cm; draw (-u,0)--(u,0); draw (0,-u)--(0,u); pickup pencircle scaled 3; draw (-u,u)--(u,u)--(u,-u)--(-u,-u)--cycle; endfig; | ![]() |
2006年5月19日星期五
pdf文件处理工具:pdftk
pdftk是一个处理pdf文件的小工具,可以进行合并pdf文档,提取其中几页成为新pdf文件,加密解密等操作。
合并多个pdf文件
pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf
提取文件某几页合成为新文件
pdftk A=one.pdf B=two.pdf cat A1-7 B1-5 A8 output combined.pdf
128位加密文件
pdftk mydoc.pdf output mydoc.128.pdf owner_pw foo user_pw baz
加密但是允许打印
pdftk mydoc.pdf output mydoc.128.pdf owner_pw foo user_pw baz allow printing
解密文件
pdftk secured.pdf input_pw foopass output unsecured.pdf
Labels:
Linux
2006年5月5日星期五
如何使用Maxima(二)
三角函数变换
常用的三角函数变换有下面几种:- trigexpand
- 利用和差化积公式展开
- trigreduce
- 利用积化和差等公式变成sin或cos的和
- trigsimp
- 利用sin2(x) + cos2 = 1等公式简化
- trigrat
- 简化分数形式
(%i1) sin(2*x)/cos(x)+cos(2*x); sin(2 x) (%o1) -------- + cos(2 x) cos(x) (%i2) trigexpand(%o1); 2 2 (%o2) - sin (x) + 2 sin(x) + cos (x) (%i3) trigreduce(%o1); (%o3) sec(x) sin(2 x) + cos(2 x) (%i4) trigsimp(%o1); sin(2 x) + cos(x) cos(2 x) (%o4) -------------------------- cos(x) (%i5) trigrat(%); (%o5) cos(2 x) + 2 sin(x)微积分
微分:(%i1) f: sqrt(x-1)*exp(2*x^2); 2 2 x (%o1) sqrt(x - 1) %e (%i2) diff(f, x); 2 2 2 x 2 x %e (%o2) 4 sqrt(x - 1) x %e + ------------- 2 sqrt(x - 1) (%i3) diff(sin(x)*exp(x^2), x, 2); 2 2 2 2 x x x (%o3) 4 x %e sin(x) + %e sin(x) + 4 x %e cos(x)不定积分:(%i4) integrate(%o2, x); 2 log(x - 1) 2 x - ---------- 2 (%o4) (x - 1) %e定积分: 从这个例子可以看出,maxima是一个很聪明的代数系统,它不会像其他数学程序那样想当然的默认一个结果,而是主动问你必要的条件,然后给出正确的结果。(%i5) integrate(exp(-a*x^2), x, 0, inf); Is a positive, negative, or zero? positive; sqrt(%pi) (%o5) --------- 2 sqrt(a)泰勒展开: 这个例子给出函数g的前三阶泰勒展开。(%i6) g: sin(2*x)*exp(a*x); a x (%o6) %e sin(2 x) (%i7) taylor (g, x, 0, 4); 2 3 3 4 2 (3 a - 4) x (a - 4 a) x (%o7)/T/ 2 x + 2 a x + ------------- + ------------- + . . . 3 3
2006年5月4日星期四
2006年5月3日星期三
如何使用Maxima(一)
Maxima是一个优秀的开放源代码代数运算系统,符号运算能力可以和著名商业数学软件Mathematica相媲美。这里是它的使用方法的一个简介。
运行和退出
运行:maxima
进入maxima环境后,会看到开始处有(%i1),这是行标。%i表示输入行,%o表示输出行,后面的数字表示第几个输入或输出。 退出:quit();
可以看出,maxima语法和C语言类似,语句结束需要加分号。maxima里面是要区分大小写的。算术运算
符号+, -, *, /, ^分别表示加、减、乘、除、乘方。maxima是一个精确计算的代数系统,例如分数,开方等运算会保持符号形式,不会被自动转化为小数。(%i1) 2/5+3/4; 23 (%o1) -- 20如果要输出小数,可以用numer命令:(%i2) %,numer; (%o2) 1.15
百分号%代表最后一次输出的结果。另外,可以用bfloat输出任意精确度的小数,有效数字位数由变量fpprec控制,默认是16位。(%i3) fpprec:100; (%o3) 100 (%i4) bfloat(%pi); (%o4) 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068b0
(%i3)中的冒号表示赋值。代数运算
多项式展开:(%i5) (x^2+2*x*y+3*y^2)^3; 2 2 3 (%o5) (3 y + 2 x y + x ) (%i6) expand(%); 6 5 2 4 3 3 4 2 5 6 (%o6) 27 y + 54 x y + 63 x y + 44 x y + 21 x y + 6 x y + x等量代换:(%i7) %o6, x=2/z; 5 4 3 2 108 y 252 y 352 y 336 y 192 y 64 6 (%o7) ------ + ------ + ------ + ------ + ----- + -- + 27 y z 2 3 4 5 6 z z z z z提取公分母:(%i8) ratsimp(%); 6 6 5 5 4 4 3 3 2 2 27 y z + 108 y z + 252 y z + 352 y z + 336 y z + 192 y z + 64 (%o8) ----------------------------------------------------------------------- 6 z因式分解:(%i9) factor(%); 2 2 3 (3 y z + 4 y z + 4) (%o9) ---------------------- 6 z解非线性方程组:(%i10) a+b+2*c=0; (%o10) 2 c + b + a = 0 (%i11) 2*a-b=1; (%o11) 2 a - b = 1 (%i12) a-2*b*c=5; (%o12) a - 2 b c = 5 (%i13) solve([%o10,%o11,%o12],[a,b,c]); sqrt(7) + 1 2 sqrt(7) - 1 sqrt(7) - 14 (%o13) [[a = -----------, b = -------------, c = -------------], 3 3 4 sqrt(7) - 2 sqrt(7) - 1 2 sqrt(7) + 1 sqrt(7) + 14 [a = - -----------, b = - -------------, c = -------------]] 3 3 4 sqrt(7) + 2
2006年4月24日星期一
反驳对Linux的两种无知的指责
经常听到对Linux有若干指责,其实完全是无知的表现。
第一,说“用Linux有法律隐患”。其实,目前针对Linux的法律起诉非常少,而且据我所知,Linux还没有一起败诉的。相反,Microsoft招致的起诉远远多于Linux,而且很多以败诉告终。以今天的软件复杂度,有知识产权纠纷是非常正常的,可以说任何一个软件企业都有陷入法律纠纷的可能,单单指责Linux是没有道理的,更何况Linux根本不是一个企业。Windows和MS Office都有败诉的例子,而人们还在使用他们,这些人凭什么去指责Linux有法律问题。
第二,说“Linux版本众多,相互不兼容”。Linux下绝大部分软件是以源代码形式发布的,安装时根据不同的平台进行编译,兼容众多的硬件平台,绝对比只运行在PC上Windows兼容性强。为了大家方便,也有很多编译后的二进制代码以软件包的形式发布。虽然Linux有很多版本,但是软件包的管理方式主要有两种:一种是Red Hat的rpm,一种是Debian的dpkg。通过alien软件,这两种包可以互相转换,所以不存在不兼容的问题。一些硬件厂商以Linux版本多,支持起来不容易为由拒绝为Linux提供驱动,就更是可笑了。他们只要提供内核级的驱动支持就可以了,Linux发行版再多跟他们也没关系。有些人抱怨Linux支持的硬件少,这是因果颠倒,他们应该去抱怨这些硬件厂商不支持Linux。
Labels:
随想
2006年4月18日星期二
Monte Carlo方法
The Review of Particle Physics有一篇关于Monte Carlo方法的Review,在Mathematical Tools里面,介绍了Monte Carlo方法和任意分布随机数的生成,地址是
http://pdg.lbl.gov/2005/reviews/monterpp.pdf。
另外还有一些关于概率和统计的Review,对进行计算机模拟实验很有帮助。
Labels:
数学
2006年4月14日星期五
谈谈Super64吧
生日礼物耶!我不太舍得买,但是很仰慕这把琴(或者说比较仰慕Franz Chmel),经常念叨,结果老婆就作为生日礼物送给我,很惊喜啊。现在把玩了有一段时间了,谈谈感受吧。体积:
的确比12孔口琴大了不少,也重了一些,但是在乐器中仍然属于非常小巧的,所以没什么抱怨了。前些时候跟一个邻居介绍口琴有三到四个八度的音域,他还很吃惊。他虽然不精通音乐,但是也玩过很多乐器,所以对乐器有些了解,知道一般管乐器没有这么大的音域。这一点小小口琴的确挺让人吃惊的。吹嘴:
非常顺滑。一开始感觉比270吹嘴厚,但是习惯之后觉得比270更容易含多孔演奏八度和声,大概是因为形状更符合人体工程学吧。吹快速的曲子时比较容易感觉嘴唇粘连,似乎吹嘴有吸水效果似的,大概和镀银有关。但是如果稍微有点水,就会变得非常滑溜。至于圆形吹孔,我并没有感觉和方形的有太大不同,因为我很少真的把舌头贴在吹孔上的,除了极少数吹和声的时候。孔距比270略大一些,虽然差别不大,但是我需要花一段时间去适应。盖板:
以前觉得Super64外观不如270好看,但是真的拿到手,觉得还是很不错的。尤其是新琴,外壳很亮,造型很有现代感,这点和新的270Deluxe比较相似,和270的古典美不一样。拿给一位学小提琴的朋友看,他一个劲的夸漂亮。外壳似乎比较薄,捏起来像日本汽车外壳的感觉,比较软。难道是我手劲太大了?按键:
比270行程长,比255行程短。弹簧没有270那么硬,花了一段时间去适应。新琴按键声音比较大,拆开后在按键推杆边缘抹了一点点半固态的润唇膏,声音小了许多。这个用量一定要小,用手指头沿着边缘抹一点点就好,多了就容易沾灰了。簧片:
明显比270容易驱动,同样的力度变化,在Super64上显的更容易一些。270上发音略微滞后的现象没有了,用老婆的话说,就是听我吹曲子“不赶了”。高音比270省力,低音比270容易发声,多出的低音四孔需要点功力驱动。有少数几个簧片发音有问题。例如多出的低音四孔里有个别簧片有颤音,但是吹了一段时间后好了些。高音有些音发音不通畅,需要重新调整一下簧片和面板间距。有一个c音至今仍然有问题,吹起来似乎有关风薄膜被粘住那种“扑扑”声,但是明显不是薄膜的问题。快速或大力的吹没问题,但是温柔一点的吹问题就来了。我估计是簧片平直度的问题,但是因为在内侧,不太好调整,我也不希望把新琴弄坏,反正同样音高的c有好几个呢,就这样吧。音色:
和270比较,270明亮中略带沙哑,Super64深沉饱满,类似于单簧管。感觉270比较有激情,Super64婉约一些。这一点上不同的人可能有不同的喜好,我老婆喜欢Super64的音色。不管他人如何看法,我觉得琴格材料对音色影响还是满大的。
Labels:
口琴
订阅:
博文 (Atom)

















