Posted on 29-04-2011
Filed Under (软件) by waterlin

VirtualBox 是程序员做测试、模拟的好方式,它的连网方式总体来说有四种

Network Address Translation (NAT) 是最简单的方式,缺点是外面的机器找不到你这台机器。你可以把用这种方式上网的虚拟机,当作一个应用程序好了。

Bridged networking 的方式,可以让局域网里的其它机器访问你的虚拟机,它也可以访问你局域网里的其它机器,但是你的虚拟机却没有办法 ping 通你自己的宿主电脑或其它局域网里的机器。

Internal networking 的方式,和 Bridged networking 类似的方式,具体区别没有仔细研究。

Host-only Adapter,虚拟机只可以和主机通讯,主机里可以找到类似下面的内网IP地址:

通过这个 IPv4 的地址就可以和虚拟机里的主机通讯。

如果你想让你的主机和虚拟机组成一个互通的网络机器来做测试,则需要使用 Host-only Adapter 的方式。

(1) Comment    Read More   
Posted on 29-04-2011
Filed Under (软件) by waterlin

以前都是用 SVN 在办公室的局域网里面架一个中心服务器,来保存备份自己的一些文档及代码。定期把笔记本里的内容提交到中心服务器里,通过这种方式,有效地备份文档,同时,也减少了大量文档、代码同步的麻烦。可是这样做有几点比较痛苦:

  1. 在出差的时候,没有办法提交代码,而 SVN 客户端也不方便做本地备份;
  2. 要是中心服务器坏了或是重装中心服务器了,又得重新配一下 SVN 服务器,比较麻烦,主要是时间上不一定有空;没有时间配置中心服务器,也就没有办法备份,导致内心极度不踏实。

最近尝试了用 Hg 来构建本地代码分支,还是蛮方便的,这种分布式的版本管理系统特别方便在不同的机器里同步文件。

使用 Hg 来做本地文档管理的主要步骤如下:

  1. 安装 TortoiseHg
  2. 创建本地分支
  3. 如需要拷贝到其它电脑的时候,在 TortoiseHg 里选择 Web Server(用命令的话是 $hg serve),默认地址为 http://localhost:8000
  4. 在其它机器上 clone http://your\_IP:8000 的文档下来即可。

这个方法简单易用,但是缺点也很明显:没有访问权限控制,没有办法控制访问用户的授权问题(即用户名和密码校验),所以,在不需要的时候,赶紧关掉服务功能,免得被别人误检文档出来。由于这个服务的特殊性,在不安全的局域网里,最好不要开启本服务。

用这个方法,也可以很方便地 clone 代码到移动硬盘里作为备份,比你全新拷贝一份要快捷多了。

(2) Comments    Read More   
Posted on 15-04-2011
Filed Under (技术) by waterlin

因为我用公司的 SVN ,最近改的代码比较多,但是还没有到能提交的地步,这么多问题的代码一提交估计别人都要发飚了。

但是辛辛苦苦写了几天的代码,还没提交或是备份,心里很不踏实;弄 SVN 分支也太麻烦了一些,于是就想用 Hg 在本地 clone 一个分支出来,弄个本地版本慢慢改,自己随时可以提交版本,要备份也只要到其它机器上 clone 一个。理想是美好的,操作是方便的!

上网找了找,安装 hgsubversion 插件后,可以从 SVN 里检出文档和代码,我用的是如下命令:

很奇怪的是,在检出历史版本信息后即提示获取文件已经完成,可是 localtest 目录下只有 .hg 目录,怎么会没有源代码目录呢?看来,过程是曲折嘀~~

是我漏掉了某一步没有做么?可是按照手册上的说明,我明明已经做完了所有的事情。

最后,反复 Google 及提问后,终于在 StackOverflow 上问到了答案

  • 原来 Hg 对 utf8 字符串的支持并不好,如果你的 SVN 目录里有中文文件名的话,则需要安装 fixutf8 插件来解决这个问题。

采用 Hg 的插件安装方法,即可安装 fixutf8 插件,不过要注意的是,在配置这个插件到 Hg 的配置文件时,一定要像下面这样写全引用 fixutf8.py 脚本的路径:

这样,你就可以把 SVN 里的文件全部导出,在本地建一个 Hg 分支,为所欲为了。

PS: Hg 怎么会不认得 utf-8 编码的文件名呢?都什么年代了,sign~~~因为这个问题,浪费了我差不多一下午的时间~~

(3) Comments    Read More   
Posted on 08-04-2011
Filed Under (技术) by waterlin

用 Emacs Org 和 Muse 记了一大堆的笔记,分散在很多目录及很多文件里,当要找一个以前的笔记时,怎么样才能快速、有效地搜索到目标文件呢?下面就探讨一下几种常用的方法:

  1. 利用 Emacs 本身的搜索功能进行搜索

    在 agenda 里用 M-x org-agenda RET s 进行搜索;

    当然,也可以直接用 Org 的 occur-tree 功能;

    如果你想使用原生态的 Emacs 搜索功能,可以进入 dired 模式到你待搜索的目录里,用命令 M-x grep-find RET 进行本地全文搜索。

  2. Windows7 自带的搜索功能

    Windows7 自带的搜索功能,也有预先进行检索收录的功能,所以,如果是对文本文件或是 html 文件进行本地搜索,也是想当的方便的。

  3. Google 桌面搜索

    下载一个 Google 桌面搜索,可以把你的 Org 或是 Muse 笔记的发布路径添加进去,从而对这部分内容进行快速检索。

    并且这个产品的好处,是通过浏览器访问,像我们这种用 org 建工程写了一大堆 html 笔记的人,只要轻轻一点链接,就可以在浏览器里打开相应的笔记,真方便!

    我习惯于让 Google Desktop 只检索我的笔记目录,整个硬盘都开放给第三方软件搜索,感觉实在不太爽。

  4. 百度本地搜索

    百度也有类似 Google Desktop 的搜索工具,使用方法类似,百度桌面搜索安装后,可以通过以下网址来访问本地的搜索页面:

    http://127.0.0.1:7887/&s=200566888

    这基本上是唯一让我觉得满意的百度产品,也基本上唯一是我还可能会用的百度产品。

  5. 利用其它文本编辑器进行本地搜索

    其它文本编辑器基本上都有从目录里搜索的功能,你可以利用这种方法对你的笔记目录进行搜索。当然,并不推荐使用这种方法,吃力不讨好,看起来还特山寨~~

还有其它更好的方法吗?欢迎大家补充。

(2) Comments    Read More   
Posted on 05-04-2011
Filed Under (生活) by waterlin

记得以前很想体验一下《魔兽世界》这个大名鼎鼎的网游,看看这个风靡全球的游戏,魅力究竟在哪里!

以前没有跑得起的电脑,今年过年的时候家里有了新电脑,在家里想下载下来玩,可是直接连在网易的服务器上,下载速度太慢了,起码得下三天三夜。于是放弃,这个游戏的门槛就这么高,哈?

呵,现在公司给配了新电脑,又碰上清明三天假期(平时只有一天休息,这三天显得特别长),真是想再试一下。经过好几次的下载与折腾,浏忙绪绪我终于摸索出一个《魔兽世界》新手装机的法则。

最好的方法,当然是拿硬盘去朋友那里拷。如果不具备这个条件,自己安装的话,步骤如下:

  1. 从新浪或是腾讯下载离线版的 3.2.2 安装包,下载后直接解压即可;千万不要直接从网易的在线服务器上下载,那样太慢了。
  2. 运行 Launcher.exe,按提示进行升级操作,我一看,要下载七百多M的东西,要下到什么时候了?别急,我们还有办法可以用,即离线下载升级包,VISTA/WIN7 系统默认设置下,把补丁放到

    文件夹下。Windows XP系统下,补丁将存放在魔兽世界文件夹下的 Updates 文件夹中。

  3. 再次打开 Launcher.exe,会自动安装升级包,安装完后即可玩这个大作了。

如果你下载前面十几G的压缩包的时候,碰到了解压后文件损坏等情况,可以在魔兽目录下运行 Repair.exe 来进行修复,修复程序会自动下载更新你缺失或是损坏的文件。

简单试玩了一下,暂时对这个游戏还没有太多感觉,以后有啥心得我还会再发上来。教育网的用户们辛苦了,不管用啥服务,都需要用 VPN 代理,就这样只让学生们上国内的垃圾网站,中国的工业水平怎么提高?

另外,现在招行推出了《魔兽世界》联名信用卡,刷卡积分可以换取魔兽世界的点卡,呵,发烧友可以试一下,反正信用卡积分也没有什么其它太大用处。

(0) Comments    Read More   
Posted on 04-04-2011
Filed Under (技术) by waterlin

今天早上碰到一个很奇怪的事情,昨天明明还能在 Visual Studio 2008 里顺利编译的代码,今天编译的时候,就提示如下错误:

用英文版的 Visual Studio 2008 应该是显示类似如下的错误信息:

这是怎么回事呢?原因我不是很清楚,但是可以用下面的方法来解决:

右键点击工程,选“属性”==>“配置属性”==>“清单工具”==>“输入和输出”==> “嵌入清单”设为“否”

英文版的 Visual Studio 2008 应该是如下路径:

Properties ==> Configuration Properties ==> Manifest Tool ==> Input and Output ==> Embeded Manifest, set it to No.

知其然更要知其所以然,有谁知道原因的?

(0) Comments    Read More