工具 - webdancer's Blog
pages or is-programmer, it is a question
从今年7月份,我将blog由is-programmer平台转到了github的pages平台。转向pages的理由很简单,静态blog很简洁,再加上Scturtle写了一个静态blog生成器。但是用了一段时间以后,我还是决定再转回is-programmer。
什么是Pages?
Github Pages are public webpages freely hosted and easily published through our site. You can publish online using the Automatic Page Generator. If you prefer to work locally you can use the GitHub for Mac and Windows apps, or the command line.
pages or is-programmer, it is a question
到底选择那个平台,仁者见仁,智者见智。不过,现阶段我还是选择is-programmer吧,这是我的菜。将来,谁知道?不过我的确喜新厌旧,呵呵。
ubuntu下安装与使用vim-latex suite
- 解压下载的压缩包到~/.vim目录。
- 设置vimrc。详细参见:http://vim-latex.sourceforge.net/documentation/latex-suite/recommended-settings.html
- 安装help文件。helptags ~/.vim/doc
- 设置Vim-latex-suite。使用xelatex命令进行文档的编译,利用evince浏览生成的pdf文档。可以通过修改~/.vim/ftplugin/latex-suite/texrc完成这些操作。
#第88到92行,我进行了如下修改,就是让tex总是被编译成pdf 88 if has('macunix') 89 TexLet g:Tex_DefaultTargetFormat = 'pdf' 90 else 91 TexLet g:Tex_DefaultTargetFormat = 'pdf' 92 endif #第117行修改,使用xelatex完成 tex -> pdf 的编译 114 " ways to generate pdf files. there are soo many... 115 " NOTE: pdflatex generates the same output as latex. therefore quickfix is 116 " possible. 117 TexLet g:Tex_CompileRule_pdf = 'xelatex -interaction=nonstopmode $*' 修改147行,指定用evince程序打开pdf文档 144 elseif has('macunix') 145 " Let the system pick. If you want, you can override the choice here. 146 TexLet g:Tex_ViewRule_ps = '' 147 TexLet g:Tex_ViewRule_pdf = 'evince
系统迁移
话说在我的t60上跑win7还是有点吃力,感觉最近用的软件好像linux下几乎都有,干脆直接割掉win,转到linux单系统。反正实验有win7,如果需要就远程登录吧。
前期准备:
- 网络设置。不知道unbutu里面的network-manager-gnome怎么又抽风了,反正没能设置成功,删了。那只能手动设置interfaces和resolv.conf,气人的是ubuntu的dns设置更改了,那只能通过resolvconf工具来改了。
- vim。由于我的vim插件是直接从win拷过来的,很多插件提示,多余的M结尾符,通过set ff=unix解决。
- tex。在win下面,使用的是ctex,由于对中文支持较好,转到ubuntu下面,使用texlive,集成了xetex,加上vimlatex感觉够用了。
- 看球。由于以前在win下用pplive看球,现在只能上pptv.com上看了,不过有些节目不能直播,比较悲剧。不知道为什么不能看北邮的iptv,这点悲剧了。。。。
#转帖#版本控制入门简介
版本控制已经出现有些年头了。然而,我还是会被人问起一些,诸如版本控制是什么或者它是如何工作的,这样基础的问题。本文会概括地解释版本控制解决的重要问题,本文使用的场景针对的是源代码版本控制。
目前有很多不同类型的版本控制系统(Version Control System, VCS)。一些VCS,比如Subversion和CVS,以中央仓库(repository)为中心进行架构。此外,还有分布式的VCS(Distributed VCS,DVCS), Git 和 Mercurial 是两个新近出现的DVCS。然而,在上述两种类型的环境中,通常会有一个“指定的”中央仓库。对应地,比如一个Subversion服务器或者一个GitHub仓库。下面会基于这个场景进行图示说明。那么让我们开始吧。
在开发者拷贝到本机之前,服务器需要创建一个仓库。创建初始仓库会由于产品不同而有所差别。从现在起,你所要知道的就是,在服务器上有一个初始空间。我把这个版本称作版本“A”。
现在,每个开发者(开发者1和开发者2)都会拷贝版本“A”到他们本地电脑。再一次地,从服务器拷贝的过程会由于产品不同采用的技术会有所差别。
每个开发者会在他们的本地拷贝上进行开发。他们的本地拷贝基于版本“A”。然而,由于他们应该不会做同样的开发,因而他们的版本会有所差别。因此,会有2个以上的版本会同时被创建,比如版本“B”和版本“C”。
开发者1首先完成了她的工作并提交到服务器。服务器上的当前版本被更新成版本“B”。
开发者2现在完成了他的工作并试图提交到服务器。然而,这是服务器告知他基于开发的版本已经发生改变。这也是为什么采取版本控制的首要原因之一。这个特性是对网络共享代码然后由开发者手动更新的一个跨越式发展,这确保了之前的编辑没有被新的修改覆盖。
开发者2必须首先获得所有版本“B”的变化,并合并到他的修改中,然后才可以提交到服务器。这个过程听起来有些复杂。然而,大多数现代的版本控制系统十分高级,能够自动在开发者的本地拷贝上完成合并。有几种情况会产生冲突(例如:开发者1和开发者2同时修改了同一个文件的同一行)。这就是一些VCS产品比其他更高级的地方。不论如何完成合并,现在开发者2在他们的本地系统上同时混合了版本B和版本C。
这是一个版本控制的基础。通过注意观察图中服务器的连线可以发现版本控制的原理。服务器记录了所有先前的版本包括发生的变化,什么时候发生以及由谁进行修改。当需要进行代码回溯或者引入其他bug时,这个记录能够解除困境。
我希望本文能够为版本控制系统提供一个基础的介绍。如果你有任何疑问,请就你问题发表评论。
archlinux入门--设置时钟
如果你的机器是windows7和arch双启动的系统,可能windows与arch时间上出现不同步的问题。这是由于windows与linux对待硬件时钟不一致,即每次操作系统启动时读取硬件时钟,计算系统时间的方法不一致。这里介绍两个概念,
*硬件时钟是bois中的时间;
*系统时间是操作系统kernel中的时间。
下面介绍操作系统计算出自身系统时间的两种方式:
*把系统硬件时间当作本地时间(local time),即操作系统中显示的时间跟BIOS中显示的时间是一样的
*把硬件时间当作 UTC,操作系统中显示的时间是硬件时间经过换算得来的
注:协调世界时,又称世界标准时间或世界协调时间,简称UTC,在中国大陆的本地时间比UTC快8小时,就会写作UTC+8。
有了以上基础,就可以设置windows7和arch3了,两个系统必须使用相同的方式,要么是UTC,要么是localtime。
1.windows 和arch 均采用UTC。
arch设置:在/etc/rc.conf里面设置:
HARDWARECLOCK="UTC" TIMEZONE="Shanghai/Asia"
windows设置:新建chTimetoUTC.reg,输入以下内容,运行。
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001
然后,在bios里面设置正确的硬件时钟就okay了。
2.windows和arch均采用localtime设置。
arch设置:在/etc/rc.conf里面设置:
HARDWARECLOCK="UTC" TIMEZONE="Shanghai/Asia"
windows设置:windows默认采用,不用设置。
注:*RealTimeIsUniversal = 0 Windows使用本地时间。 *RealTimeIsUniversal = 1 Windows使用UTC时间。
选择使用那种设置,取决于我们自己,在arch wiki里面建议使用UTC,对localtime的描述为:
Warning: 使用 localtime 将导致很多已知的不可修复的BUG.尽管,没有计划放弃对localtime的支持。
我自己的观点是:在系统安装时选择localtime会省去很多的麻烦。
参考:
【1】http://forum.ubuntu.org.cn/viewtopic.php?t=256151
【2】http://space.itpub.net/23137730/viewspace-661609
【3】https://wiki.archlinux.org/index.php/Beginners%27_Guide/Preface
archlinux入门--软件管理
ABS:arch build system , a port-like system.
ABS-----------|ABS tree :ABS的目录结构
|PKGBUILDS :bash脚本,包含了软件代码的URL
|makepkg :根据PKGBUILDS,产生二进制的安装包pkg.tar.gz
|pacman : 包管理
|AUR :用户软件仓库
1.ABS的安装
#pacman -S abs
2.ABS的配置
#vim /etc/abs.conf
3.建ABS tree
#abs
4.建build目录
$mkdir -p $HMOE/abs
5.ABS方式编译软件, 举例,安装gksu为例
复制port 到Build目录
$ sudo cp -r /var/abs/extra/gksu ~/abs
写PKGBUILD文件
$ vim PKGBUILD
产生可安装的二进制文件
$ makepkg -s
root安装产生的二进制文件
# pacman -U gksu-2.0.2-3-i686.pkg.tar.xz
------------------------------------------------------------------------------------------------------------------------
pacman : arch的包管理软件。
配置位置:/etc/pacman.conf
使用:
1.安装
# pacman -S package_name1 package_name2 …
2.卸载
# pacman -R package_name
3.升级软件包
# pacman -Syu
4.查询
从库查询软件: $ pacman -Ss string1 string2 …
从本地查询软件: pacman -Qs string1 string2 …
5.安装本地包
# pacman -U /path/to/package/package_name-version.pkg.tar.xz
详细的使用说明:man pacman
------------------------------------------------------------------------------------------------------------------------
yaourt:是pacman的一个外壳,而且支持AUR。
yaourt的使用与pacman的用法基本相同。
archlinux入门--安装
archlinux的详细安装过程,在这里就不赘述了,在https://wiki.archlinux.org/index.php/Beginners%27_Guide有详细的描述,在这里记录一下自己安装过程出现的问题。
1.我使用的U 盘安装,使用了×nix的方式:
# dd if=archlinux-2010.05-{core|netinstall}-{i686|x86_64|dual}.iso of=/dev/sdx
要注意:是sdx,而不是sdx1.[wiki中特别提到]。当时看着手机,漏了一些文字。
2.安装过程中的分区。
根据不同的用户机器情况,分区也不不同。wiki中提到了四种方式,特别注意:
Warning: 磁盘分区会毁掉原分区内的数据。强烈建议先备份重要的数据
我使用了第三种方式,由于原来的分区是安装fedora的,我还以为只是简单的把分区挂到对应的目录。没想到都给我格式化了,所以分区要注意,避免自己的数据遗失。
3.安装grub。
由于以前安装的fedora没有卸载,在fedora上覆盖安装arch,发现grub没有正确的安装。建议先保存文件,格式化一下分区,这样应该不容易出问题。如果因为因为没有正确的安装grub,导致grub无法引导系统启动,可参考https://wiki.archlinux.org/index.php/Grub,应该可以修复。
在安装arch的过程中出现了上面的问题,其中(2)影响最大,导致我在暑假的时候做的很多东西都没了;(3)顺道学了一下grub的知识。只要仔细的阅读文档,安装arch并不是很困难,不要想我这种小白犯了这么多错。
4.安装显卡。
机子是N卡,我安装了nvidia的私有驱动。https://wiki.archlinux.org/index.php/Nvidia。过程并不困难,可以直接用pacman安装。
5.gnome3安装。
在这里,犯了一个很fool的错误:以为只安装gnome-exra就好了。唉!没有安装gnome软件包,导致gnome启动不了,郁闷了很久。
6.日期和时间设置。
选择UTC还是localtime呢?推荐UTC,还是要仔细的设置一下,我设置成了UTC,但是在双系统下时间并不同步呀。
7.安装networkmanager,yaourt
参考英文wiki
git基础
一、构建git仓库。
有两种取得 Git 项目仓库的方法。第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来。下面尝试第一种方法:
在项目目录下:
git init
二、构建更新到仓库。
1.查看状态:
git status
刚新建的仓库是没有任何文件被跟踪的:
# On branch master # # Initial commit # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # __init__.py # __init__.pyc # apache/ # bookmark_base/ # manage.py # media/ # settings.py # settings.pyc # template/ # urls.py # urls.pyc nothing added to commit but untracked files present (use "git add" to track)
2.跟踪新文件
git add XXX
3.提交
git commit -m ""
三、远程仓库。
git remote add origin git@github.com:username/Hello-World.git git push origin master
文章来源:《pro git》作者:Scott Chacon