2012年7月25日星期三

LaTex中使用BibTex插入Reference

改论文时老板对文献格式大有意见,小菜鸟我只好折腾了一下,用比较正规的插入格式如下:

1.在文章末尾\end{document}之前加入以下三行:
\renewcommand\refname{Reference}
\bibliographystyle{plain}
\bibliography{Thesis}
其中第一行是参考文献的标题,标题是Reference;第二行是格式,还有其他格式见此处,这里用plain;第三行是一个bib格式文件的名字,最好和tex文件名称一致,编译起来方便一些。
(有一点小小要注意的地方:最常见的引用格式是plain,它是按作者字母排序的,如果要按引用顺序来排序,推荐用格式unsrt)

2.建立一个.bib文件,如Thesis.bib。如果只引用文章和书,可以用以下模板:
@book{Landau,
title = "Fluid Mechanics",
author = "L. D. Landau and E. M. Lifschitz",
publisher = "Pergamon Press, Oxford",
year = "1987"
}

@Article{Cattaneo,
author = {F. Cattaneo, T. Emonet, and N. Weiss},
journal = "Astrophys. J.",
year = {2003},
volume = {588},
pages = {1183},
}
还有其他各种格式模板见此处

3.在.tex文件中正文里引用某些文章或书的地方加入一句\cite{},例如上面的book已经被命名为Landau,于是在引Landau这本书时就插一句\cite{Landau}.

4.运行.tex文件,生成一个.pdf文件的同时会生成.aux文件,这个.aux文件就是引用文献的关键。运行.tex文件可以在Tex编译器中,也可以用命令行pdflatex Thesis

5.运行.bib文件,这里会用到步骤4中生成的.aux文件,所以一定要先4再5哦。运行.tex文件可以在Bib编译器中,也可以用命令行bibtex Thesis

6.再运行两遍.tex文件。运行两遍的原因是第一遍是插入,第二遍是排序。

2012年7月14日星期六

Draw 9-patch的用法——入门级教学

Draw 9-patch是一个在android开发中非常好用的图像处理工具,它的想法很简单,将一张图片用四条线分成九个格子,就可以简单地控制它的大小和覆盖内容的位置。

这里有个android官方版的教程,写得简单明了,不过有些细节不够清楚。所以这里我把我的使用方法记下来。

1.在文件夹中打开android-sdks -> tools,找到文件夹中的一个叫做draw9patch的shell脚本文件,点击运行它。

2.你会发现这个程序的界面实在太简单了,所有的菜单里面的选项只有:打开一个9patch类型的图像,保存一个9patch类型的图像,退出。那么,要创建新的图像,你只能把你待处理的图片拖曳到这个程序的窗口里去。

3.为了方便操作,把下面的三个选项里“是否显示xxx”都给勾上,调整zoom到一个合适的视角。结果如下:

4.下面开始画线。在你拖进去的图片的边缘处,你会发现一些灰白相间的小格子,这就是画线的地方,鼠标单击就可以画黑线了。注意,这时候最好放大很多倍,可以看得比较清楚,细节如下:

5.按照步骤4在四周分别画上四条黑线,这样就把图片分成九份了。就是下图这个样子:


6.点击File -> Save 9-patch,然后就可以把这个图像保存成名为aaa.9.png的格式了。

7.将这个图像放在你的App project的res -> drawable的文件夹里,注意,在xml的文件中引用这个图像时id应为drawable/aaa,而不是aaa.9,所以,drawable文件夹里也不可以同时放aaa.9.png 和 aaa.png!

8.完成上述步骤后,你就可以把这个图像设为某个模块的背景,这个模块的内容就会显示在九部份中正中的那一个部分中了(如上图灰色部分)~

有趣得很吧~

Hack test Level 4-6 傻瓜的继续

刚过了前三关,再写写接下来三关,依然是基本知识。

Level 4:
1.如果继续按之前的做法,查看源代码,会发现什么也找不到。。。
2.其实呢,直接在浏览器设置里禁掉javascript就行了,以我的chrome为例方法如下:
工具->设置->高级选项->隐私设置->内容设置->JavaScript->不允许任何网站运行JavaScript.
3.设置好了之后再点击这一关中的Click here,就到第五关了,记得到第五关之后再设置回允许javascript哦。

Level 5:
1.查看源代码,找到如下语句:

if (pass=="SAvE-as hELpS a lOt") {
window.location.href="save_as.htm";
i=4;
}else {alert("Try again");
window.location.href="abrae.htm";}
2.都过到这里了,密码是什么就不用我多说了吧。

Level 6:
1.查看源代码,会发现密码其实隐藏在另一个javascript文件里,线索在此:
<SCRIPT SRC="psswd.js" LANGUAGE="JavaScript" type="text/javascript">
2.打开这个js文件,你会发现:

<!--
var pass;
pass=prompt("Password:","");
if (pass=="streetzkornerz") {
window.location="included.htm";
}else 
alert("Try again...");
//-->

3.呵呵,这是躲猫猫呢~

Hack-test Level 1-3 傻瓜攻略

最近发现一个挺好玩的网站,是一个给黑客们挑战通关的游戏,叫做测试黑客

网站说明上写一共有二十关,是测试大家网页技术用的。由衷地再次赞叹一下Geek们的世界是多么有趣,这下有的玩的了,o(∩∩)o...哈哈~

先说一下前三关是怎么过的,可以说是too simple, sometimes naive,如下:

Level 1:
1.鼠标右键,显示网页源代码。
2.Ctrl+F找到password,可以看到这样一行代码:
</font><font size="2" face="Tahoma">Password:</font><form name="a" action="javascript:check()">
3.现在可以看到这个action指向check()这个函数。
4.再次Ctrl+F找到function check(),发现是个判断语句如下:
function check() {
if (document.a.c.value == a)   {
    document.location.href="/"+document.a.c.value+".htm";
}
else  {
   alert ("Try again");

}
5.在这个函数上面找到a的值:
var a="null"; 
6.不用我多说了,这个null就是密码了。

Level 2:
1.解开第一关之后就又立即跳入了输入密码的框框,这个时候是解不了的,随便输个,错误,跳入Level 2的页面。
2.同样在源代码中找到password,这一次是一个prompt了:
pass=prompt("Please enter password!","");
if (pass=="l3l") { window.location.href="./"+pass+".htm";
i=4; }
3.这个太明显了,密码就是l3l,重刷一次Level 2的页面输入密码就可以了。 Level 3:
1.跟前两关步骤差不多,我们可以找到这样几行代码:
function pass()
{
var pw, Eingabe;
pw=window.document.alinkColor;
Eingabe=prompt ("Please enter password");
if (Eingabe==pw)
{
window.location.href=String.fromCharCode(97,98,114,97,101)+".htm";
}
else
{
alert("Try again");
}
}
2.那么关键就是这个
window.document.alinkColor
到底是什么。
3.我们需要打开这个html源码中的
<link rel="stylesheet" title="default" href="default.css" type="text/css">
css文件。
4.点击上面一行中default.css的链接,看见css的源码,我们就找到了这个alinkColor,原来你在这里:
a:link, a:visited, a:active
{
 text-decoration: none;
 color: 000000;
 font-size: 10px;
 font-family: Verdana, Arial, Helvetica, sans-serif;
 font-weight: plain;
}
5.这样,密码就是黑色的代码#000000咯~

这样,前三关就完了。

2012年7月6日星期五

如何设置多个显示器的相对位置(适用Ubuntu)

X RandR是Ubuntu下一个非常好用的命令,用于一台主机连接的调节多个屏幕。

接好显示器后,首先在命令行里敲入:xrandr -q
就会显示出连接中的显示器,比如我的:

VGA1 connected 1600x900+1366+0 (normal left inverted right x axis y axis) 443mm x 249mm
   1600x900       60.0*+   60.0  
   1280x1024      75.0     60.0  
   1152x864       75.0  
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 294mm x 166mm
   1366x768       60.0*+
   1360x768       59.8  
   800x600        60.3  
   640x480        59.9  

根据以上的名称和位置模式等,就可以调整它们了。

先试试关掉其中一个:xrandr --output LVDS1 --off

再把它打开,放在另一个的左边:xrandr --output LVDS1 --auto --left-of VGA1

现在是可以在不同显示器之间自由拖曳窗口,两个显示器的位置是自动的,并不重叠。

如果要调整位置,可以根据上面显示的属性来设置,比如说:

xrandr --output LVDS1 --mode 1366x768 --pos 0x0 --output VGA1 --mode 1600x900 --pos 1200x0

因为第一个显示器的宽度是1366,第二个显示器的位置只向移了1200,现在就有重叠部分了。