存档

‘技术’ 分类的存档

MyEnTunnel 代理共享

2010年4月28日 337 views 没有评论

MyEnTunnel 这款软件很不错,但是默认只支持本机使用。

其实要想让其他机器也可以使用这个代理也很简单,只要把端口改成成 0.0.0.0: <Port> 的形式就可以了。

原理是让传给 plink 的参数从 -D <Port> 改为 -D 0.0.0.0:<Port>。

(参考阅读:A short guide to SSH port forwarding)

MyEtunnel 代理设置


p.s.

网上有很多文章说 Tunnelier 的速度比 MyEnTunnel 更快,其实是因为 MyEnTunnel 所用的 0.60 版的 plink 问题,现在最新版本的 plink 速度并不比 Tunnelier 慢,只要去官方网站下载一个最新的 plink,然后替换 MyEnTunnel 安装目录下的相应文件就可以了。

我实验的结果是比之前要快一些,具体快多少可能因人而异了。plink 的另一个好处是用其做代理, IE 里面也可以用,而 Tunnelier 则不行。虽然问题不大,IE 平时用的也不多,但有些时候还是会觉得不便的。

相关文章参考: 提高你的ssh翻墙速度之MyEnTunnel/PuTTY/Plink速度之谜MyEnTunnel 官方网站声明



分类: 技术 标签: ,

Windows7 优化两则

2010年3月29日 167 views 没有评论

一、解除32位 Windows 7 的4G内存限制

微软官方有关于各个不同版本 Windows 内存限制(链接)的说明,其中 32 位 Windows 7 最多也就支持 4G 的内存(链接)。这个对于目前内存白菜价,4G 及以上内存很普遍的情况下,无疑是一个很大的遗憾。好比一个人力气很大,但就是使不上劲。但是我们都知道 32 位的 Linux 可以通过 PAE (Physical Address Extension) 的技术使用 4G 以上的内存,那 Windows 7 是不是也可以呢?答案是肯定的(链接),貌似是俄罗斯的黑客提供了破解(感谢伟大的俄罗斯国家及政府),在网上用 “ReadyFor4GB Windows 7″ 作为关键字,能找到很多的结果。应用这个 Patch 以后,就可以使用4G以上的内存了,经本人试用完全可行。这个很 NB 的 patch 说是可以使用高达 128G 的内存,这个我就没有条件试验是否属实了。以下为打上 patch 以后机器的截屏:

4G memory - Windows 7

这里给出 patch 的下载链接,解压缩以后右键 AddBootMenu.cmd,然后“以管理员的身份运行”,结束以后重启就可以了。

其他相关的文章推荐阅读:The 4GB Windows Memory Limit: What does it really mean?, 为何系统不识别4GB内存终极解迷


二、允许多个用户同时使用同一台 Windows 7 机器

*nix 系统一直都是多用户多任务操作系统,而 Windows 虽然也是号称多用户多任务,但一直都不能允许多个用户登录同时使用同一台机器。这个限制也被突破了(链接),从前面链接的文章来看,这个破解最早由一个叫 sunmorgus 的黑客在 thegreenbutton.com 的论坛一篇帖子里提出的,对象是 Windows Vista。这个破解是可以让用户在其他的机器上用 RDP 远程登录本机的 Windows 7 系统,而不会导致本机正在登录的用户被强制退出。这样,同一台 Windows 7 的机器也能实现真正的多用户多任务啦!

这里也给出这个patch的下载链接,解压缩以后右键 install.cmd,然后“以管理员的身份运行”,耐心的等待几分钟直到结束,然后重启机器应该就可以了。


分类: 技术 标签: ,

Eclipse 在 jdk1.6.0_14 下加断点调试经常停不下来

2010年3月23日 156 views 没有评论
前阵碰到这个问题,一开始还以为是 Eclipse 的bug,导致调试无法进行,不知问题出在哪里。

在一段时间之后,终于忍受不了,google 了一把,找到了原因,是 jdk1.6.0_14 的bug导致的。
还比较复杂,大致Eclipse 在调试的过程中,假定已经创建好的线程ID是不变的,断点也绑定于某个线程,但是在 jdk1.6.0_14 中,这个ID值会被不可预知的改变,从而导致断点失效。

当时还没有修复,只好退回了 jdk1.6.0_13。

现在 jdk1.6.0_16 发布了,从release notes 来看,是专门解决这个问题的。记录之。

问题的相关链接:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=279137
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6862295
http://java.sun.com/javase/6/webnotes/6u16.html
http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/2b4230d1e589


注:去年在 javaeye 写的一篇文章,搬到这里来。


分类: 技术 标签: , ,

Visual Studio 2008 打开”设计”界面就挂起的问题解决

2010年3月22日 300 views 没有评论

从前两天开始,在 Visual Studio 2008 里面选中一个 aspx 的页面在编辑器里面打开之后,点击“设计”或是“拆分”按钮,就会导致整个 VS2008 挂起,屡试不爽,最后只能通过任务管理器强行结束。

试过把 VS 2008 SP1 重新安装了一遍,问题依旧。

Google 了下,找到这篇文章,讲同一个问题的。按照里面说的一种修改注册表的办法修改了之后就好了。

这里再把具体的步骤写下:

打开注册表编辑器,找到
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{F5078F18-C551-11D3-89B9-0000F81FE221}\5.0\0\win32,点右侧的默认值,改成原来的msxml5.dll文件,一般在安装有office的机器上(我的是office 2003)时这个文件的路径为:

C:\Program Files\Common Files\Microsoft Shared\OFFICE11\msxml5.dll

这里具体需要根据你机器的实际情况修改路径,总之要指向ms官方的这个msxml5.dll文件。

估计是因为上周想用 Office 2003 打开 2007 的文档,就装了个微软的补丁(Microsoft Office Compatibility Pack),结果不但还是打不开2007的Office文件,还导致了这个问题。


分类: 技术 标签:

Windows 7 下 Media Player 12 没有声音解决之道

2010年3月18日 373 views 没有评论

Windows 7 的 Media Player 12 播放器还是不错的,尤其是发现播放 MTS 的视频,KMPlayer 下画面都是很糊的,而 Media Player 中播放则画面很好。只是有一个很大的问题,就是没有声音,包括播放有些 avi 文件也是。光有画面没有声音的话那还有什么用呢?

今天上网搜了下,原来是因为缺少编码 codec 导致的。于是下载了一个,安装好,再试就好了。

文件下载链接如下:Codec Pack All-In-1 6.0.3.0

顺便推荐一下 FileHippo.com。这个站点有很多的免费软件可以下载,包括 Google Chrome 离线安装包等,不过想找商业软件的可能会失望了。该站点上的软件最大的一个好处是上面的软件都很干净,没有额外的病毒什么的让人不放心,很不错。


分类: 技术 标签: ,

IXWebHosting 试用退款经过

2010年3月16日 286 views 5 条评论

几个月前看到新闻说 IXWebHosting 支持支付宝付款,就留意了这个美国的空间提供商,看介绍(链接)貌似还是不错的,价格不高,有独立IP,可以免费注册一个域名,并且不限制空间和流量,非常的诱人。


但是最近的注册经历却非常的不愉快,写出来,也给其他人提个醒:买 IXWebHosting 的空间,需要慎重!


IXWebHosting 的 Hosting Plan 共分三种,分别是 Expert, Business, Unlimited Pro,其中 Expert 是入门的一款,可以提供一个免费域名的注册,2个独立的IP地址,首次注册两年以上$3.95/月,还可以打八折,应该说还是不错的,我注册的也正是这款。


注册的过程都还算顺利,在最后付款的时候,跳到了支付宝的界面,付完款成功以后,跳转到一个20s就会自动刷新的一个页面,说很快就会开通了。但是刷新了几次以后,碰到了第一个问题,说开通碰到点麻烦,请耐心等待,会在12小时之内开通成功。那也没办法,等吧。差不多8个小时以后,那个页面刷新的结果终于说已经开通了。


按注册的时候的账号密码登陆以后,就到了后台管理界面。IXWebHosting 用的后台管理程序是 H-Sphere,而不是常见的 cPanel,但是基本跟 cPanel 的配置差不多,有 File Manager, Ftp, Mail, MySQL, PostgreSQL 等。从管理界面里,可以域名已经申请到了,并且分配了一个独立的IP地址,也可以看到空间下面生成了默认的网站目录。


文件管理是通过一个叫 WebShell 的应用。一进去就注意上面的菜单部分有一个 ARCHIVE,于是选中一个文件试下打包,结果报错!晕,试了好几次都是这样,不能打包要想做站点备份还是会比较麻烦的,于是在管理后台提交了一个问题(Issue Ticket),描述了碰到的这个问题。


过了会就有人回复,说有可能是我选择的文件太大或是文件太多。见鬼了,我选择一个几K的文件也会出错的。继续回复,上截屏,那边不说话了,几个小时以后,又有回复说是因为有个用户占用了太多的服务器资源,导致不能做操作,他们已经把那个用户账号停用了,并且试过 ARCHIVE 操作已经可以了。可是我试下来,仍旧不可以。继续回复,过了很久,那边说该问题已经转到技术部门去了,之后就没有下文了。


接下来发现不光是 ARCHIVE 操作不能做,我上传一个 5M 的 zip 文件,也总是失败。通过 FTP 上传下载,也同样不成功。这已经不是空间快慢的问题了,连上传下载文件这些最基本的功能都做不了的话,这个空间就废了,根本不能用啊!


于是申请退款,跟在线的客服聊了下,说可以退回到支付宝的账户,只要提交一个 Ticket。另外注册的域名是要收费的。注意在首次注册的时候,不要一起把域名注册了,等试过觉得满意以后再注册域名也是可以的,否则域名的注册是要收费的,还要转出域名,会很麻烦。


退款的申请提交了,不过迟迟没有回复;之前问的 ARCHIVE 问题也没有了更新。服务如此,真是有种上当受骗的感觉,就连我试用过的N个免费空间,都没有这么差劲的。难道 IXWebHosting 所宣称的支持支付宝,就是来中国骗钱的吗?


P.S. 在网上搜了下,也能找到其他人在抱怨同样的问题(IX是垃圾IX抽风了,  无耻的IXIXWebHosting Reviews, ),看来问题确实是存在的,也有不少人跟我一样交了学费的。而其所宣称的种种诱人的条件,只是为了引君入瓮。另外注意到同搜索引擎里大把的IX的广告贴比起来,这些反对的声音都是微不足道的,看来有可能是IX给了好处费的。


2010-03-17 更新:

IXWebHosting Reviews, 找到一个比较好玩的 Review:

We have been using IX for a long time. First thing that happended was that
they allowed my EX-Wife access to my account after we were divorced
because she has paid by her credit card at one point for one domain name. 
They changed the admin panel and allowed her full access to everything 
because she did not pay for her domain and called them! MORORNS! 
We have a pro business account and they allowed her access to customers account info, 
OMG what a night mare! Finally after getting the police involved they fixed it. 
Now 3 out of 7 of our accounts have been hacked... We have not done or changed anything, 
in fact the accounts that have been hacked are just place holders for domanins... 
I have asked it to be fixed from backup 4 times so far and as of yet nothing... 
I am just in the process of moveing everything to a new local box and say GOOD BYE loosers!



2010-03-23 更新:

差不多一周过去了,终于等来了一条回复,要我说明取消的理由才能继续。就这么个回复,居然需要一周,难道是等待排队退款的人太多了?

Before we are able to process the cancellation of your account,
we would like to get some more information from you. In order to continue
to improve our services, can you please specify for us the reason
you are canceling the hosting account? Once we have this information,
we can continue to process your request.



2010-03-26 更新:

在答复了上面的回复之后,这次过了几天就有新的回复了。说空间账户已经取消,钱会在1至9天之内打回支付宝的账户;另外域名的费用为¥19.35,仍然可以正常管理。

一下为回复全文:

I have now canceled account as per our 30 days money back guarantee. 
The total refund amount was $56.49 and it was credited to your Alipay. 
Please allow one to nine days for the refund to show up on your statement. 
In the meantime you can review all changes in your online invoice.

Please note that as per ICANN regulations and our Terms of Service domain registration 
fees are non-refundable. The amount deducted from your refund for domain registration fees 
was $19.35. You can continue to manage and use your domain name through your control panel.

Should you have any further questions, please do not hesitate to contact us, we are available 24/7.

应该说这几天的处理反馈的速度还是比较及时的,看起来接下来的还款也只是时间问题了。如果一切都顺利,那说“IX是来中国骗钱”就言之过重了。但是总的来说,IXWebHosting 的空间确实有问题,我反映的空间不可用,没法上传下载文件过去这么多天了仍旧没有回复。所以,要是买 IX 的空间,切记不要先把免费的域名也一起买了,等试用满意以后在后台还是可以再买的。



2010-03-28 更新:

下午登录支付宝,发现退款已经成功了,总共是¥386.74。当时买空间付款是¥519.21,所以域名的费用就为¥132.47,也即是上次回复的时候所说的¥19.35。事情到此,圆满结束。

还是有点遗憾,以后不会再考虑在 IXWebHosting 购买空间了,域名接下来也要转出去的。IX 真的想要扩展业务,提高自身的产品质量才是根本啊。


分类: 技术 标签:

Eclipse 远程调试 “Failed to connect to remote vm” error

2010年3月15日 586 views 1 条评论

最近发现在 Eclipse 中进行远程调试别的主机上的应用的时候,总是连接不上调试端口,报 “Failed to connect to remote vm”, 如下图所示:

Failed to connect to remote vm

因为以前都是可以的,所以百思不得其解,Google了半天,能找到的问题一般也都是因为对方没有开启远程调试端口,所以自然连不上,但是我这里显然不是这个情况。在困惑了好久以后,突然想到会不会是受到了 Eclipse 代理设置的影响?虽然觉得不太可能,因为我的理解是那个代理只是给 Eclipse 本身用的,并不是给通过 Eclipse 启动的应用程序用的。但是结果证明是这个原因:

代理设置之前:

Network Connection is set to 'Manual'

去掉代理之后,远程调试就可以了。

Network Connection is set to 'Direct'

也许有人会觉得无聊,好好的 Eclipse 为什么要设置个代理呢。
没办法啊,两个原因,一个是公司的网络出去的话会有点困难的;另外一个就是有些Eclipse插件被墙掉了,比如Maven,所以不得已,只能设置代理来更新插件了。


分类: 技术 标签: ,

代码:比较两个版本大小

2009年12月3日 162 views 2 条评论

最近项目需要写段代码来做版本的比较,需求大致是:
版本号一般是四位,如 1.0.0.10p7(也可能会少几位),要求比较版本的 先后/大小 关系从而进行一些处理。

刚开始觉得是一个非常常用的功能,应该在很多地方都有现成实现的。但是找了一些开源的项目以后,都没有找到合适的。

像 Maven 里面是也有关于版本判断的代码,但是过于复杂,有好多个类。而我是想最好能有一个函数,把两个版本传进去,告诉我比较的结果就好了。

找不到,于是自己写了个,能满足我的要求了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
	private static final Pattern PATTERN_DIGI_VERSION  = Pattern.compile("([\\d\\.]+)([abp]\\d+)?");
 
        ...
 
	/**
	 * Compare two version strings, such as 1.0.0.10p7 and 1.0.0.20
	 * 
	 * @param lv, the left version string to be compared
	 * @param rv, the right version string to be compared
	 * @return, 1 if lv>rv; 0 if lv==rv; -1 if lv<rv
	 */
	public static int compareVersion( String lv, String rv ) {
		String[] lvs = lv.split("\\.");
		String[] rvs = rv.split("\\.");
 
		int lmin = Math.min(lvs.length, rvs.length);
 
		for ( int i=0; i<lmin; i++ ) {
			Matcher lmatch = PATTERN_DIGI_VERSION.matcher(lvs[i]);
			Matcher rmatch = PATTERN_DIGI_VERSION.matcher(rvs[i]);
			if ( lmatch.matches() ) {
				int lv1 = Integer.valueOf(lmatch.group(1));
				String strlv2 = lmatch.group(2);
 
				if ( rmatch.matches() ) {
					int rv1 = Integer.valueOf(rmatch.group(1));
					String strrv2 = rmatch.group(2);
 
					if ( lv1 > rv1 ) return 1;
					else if ( lv1 < rv1 ) return -1;
					else {
						// compare to minor version, such a, b, p1, p3, etc. 
						if ( strlv2 == null || strlv2.length()==0 ) {
							if ( strrv2 != null && strrv2.length() !=0 ) return -1;
						} else {
							if ( strrv2 == null || strrv2.length() == 0 ) return 1;
							else {
								String wlv = strlv2.substring(0, 1);
								int lv2 = strlv2 == null ? -1 : Integer.valueOf(strlv2.substring(1));
 
								String wrv = strrv2.substring(0, 1);
								int rv2 = strrv2 == null ? -1 : Integer.valueOf(strrv2.substring(1));
 
								// compare small version string first, such as 'a', 'b', 'p'
								if ( wlv.compareTo(wrv) > 0 ) return 1;
								else if ( wlv.compareTo(wrv) < 0 ) return -1;
								else {
									if ( lv2 > rv2 ) return 1;
									else if ( lv2 < rv2 ) return -1;
								}
							}
						}
					}
				} else {
					return 1;
				}
			} else {
				return -1;
			}
		}
 
		if ( lmin < lvs.length ) return 1;
		else if ( lmin == lvs.length && lmin == rvs.length ) return 0;
		else return -1;
	}


分类: 技术 标签:

写测试代码的开销

2009年10月3日 235 views 没有评论

关于 TDD,总是有很多的争论,说写测试代码浪费时间等等等等。

看到一篇讨论测试代码所花时间的文章,写的很不错,文章后面的回复讨论也很有价值。

从作者的分析,他写测试代码所花费的时间只占整个开发时间的 10% 左右!

尽管关于这个时间比例回复中有不同的看法,但基本上所有的人都认同 TDD 是能带来极大的好处的。


分类: 技术 标签:

Windows XP 提示错误“内存或系统资源不足”如何解决?

2009年9月29日 566 views 没有评论

以前 bbs 里的一篇老的帖子,现在这里也保留一份。

=========================================

[Q]: 操作系统:Wiondows XP。  

现象:窗口开多了以后,经常出现这样的提示: “内存或系统资源不足。请关闭一些窗口或程序,然后再试。” 

在Google里面一搜就会找到很多的解释,比如下面的: 
http://zhidao.baidu.com/question/9054809.html?fr=qrl3

但是在我的情况中,系统有2G内存,平常使用也就用了1G~1.5G左右, 
只是窗口开的比较多,但是内存绝对是够的! 系统没有中毒,也没有安装什么特别的软件。 

一个很简单的重现这个问题的办法: 

用 “Win键 + E” 不断的打开资源管理器,会发现打开到40多个的时候,就开始出现不正常了。 
这个时候报的错误就是:“内存或系统资源不足。请关闭一些窗口或程序,然后再试。” 
其实这个时候的内存还是绰绰有余的,是双核+2G的机器。

在这里可以找到一篇文章,提到了GDI泄漏的一个bug,但是安装了该hotfix以后,问题依旧。 
http://www.cakewalk.com/Support/kb/kb2005243.asp


[A]:经高人指点,找到了问题的解释和解决方案:

http://weblogs.asp.net/…/max-num-of-open-windows-under-xp-2003-vista-resolved.aspx

注意 XP SP2 的 SharedSection 已经设成1024,3072,512了,只需要增大第二个数字就可以,另外改注册表以后要重启。 

SharedSection 的解释:http://support.microsoft.com/kb/184802/en-us


分类: 技术 标签: