grep --color=auto -Pr '[^\x00-\x7f]+' src/
只列出文件名,去除重复项:
grep --color=auto -Pr '[^\x00-\x7f]+' src/ | awk -F: '{print $1}' | sort | uniq | sort
事实上,正则表达式(Perl) [^\x00-\x7f]+ 可以匹配任何非 ASCII 字符,不止中文字符,日文,韩文等非 ASCII 字符一样可以匹配。
yaoms
grep --color=auto -Pr '[^\x00-\x7f]+' src/
grep --color=auto -Pr '[^\x00-\x7f]+' src/ | awk -F: '{print $1}' | sort | uniq | sort
#!/usr/bin/env python
from urllib2 import urlopen
from urllib import urlencode
import simplejson
import sys
# The google translate API can be found here:
# http://code.google.com/apis/ajaxlanguage/documentation/#Examples
target=sys.argv[1]
text=' '.join(sys.argv[2:])
base_url='https://www.googleapis.com/language/translate/v2?'
params=urlencode( (('key', 'AIzaSyCTMQYOQUQdWSAJ478lI-peSVelazL_iCQ'),
('target', target),
('q', text), ) )
url=base_url+params
response=urlopen(url)
jsonObject = simplejson.load(response)
print "from:%s; %s" % (jsonObject['data']['translations'][0]['detectedSourceLanguage'],jsonObject['data']['translations'][0]['translatedText'].encode('utf-8'))
#!/bin/bash
# depend on xsel, libnotify-bin, translate.py
WORD=`/usr/bin/xsel -o`
TEXT=`translate.py zh """$WORD"""`
DISPLAY=:0.0 notify-send -i /usr/share/pixmaps/gdict.xpm -u normal -t 8000 来自谷歌翻译: """$TEXT"""
以上三条命令中的 <guestname> 是要链接的虚拟系统的名字。$ VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
$ VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
$ VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
Configutarion error: Failed to get "MAC" value
(VERR_CFGM_VALUE_NOT_FOUND)Unknown error creating VM (VERR_CFGM_VALUE_NOT_FOUND)
Result code: E_FAIL (0×80004005)
Component: Console
Interface: IConsole ("Some HEX code")
VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort"
VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort"
VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol"
VBoxManage setextradata <guestname> "VBoxInternal/Devices/e1000/0/LUN#0/Config/ssh/HostPort" 2222
VBoxManage setextradata <guestname> "VBoxInternal/Devices/e1000/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata <guestname> "VBoxInternal/Devices/e1000/0/LUN#0/Config/ssh/Protocol" TCP
android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web /email/phone/map/all)
android:autoText如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。
android:bufferType指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符,也就是说getText后可调用append方法设置文本内容。spannable 则可在给定的字符区域使用样式,参见这里1、这里2。
android:capitalize设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见EditView此属性说明。
android:cursorVisible设定光标为显示/隐藏,默认显示。
android:digits设置允许输入哪些字符。如“1234567890.+-*/% ()”
android:drawableBottom在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。
android:drawableLeft在text的左边输出一个drawable,如图片。
android:drawablePadding设置text与drawable(图片)的间隔,与drawableLeft、 drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。
android:drawableRight在text的右边输出一个drawable。
android:drawableTop在text的正上方输出一个drawable。
android:editable设置是否可编辑。
android:editorExtras设置文本的额外的输入数据。
android:ellipsize设置当文字过长时,该控件该如何显示。有如下值设置:”start”—?省略号显示在开头;”end” ——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)
android:freezesText设置保存文本的内容以及光标的位置。
android:gravity设置文本位置,如设置成“center”,文本将居中显示。
android:hintText为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。此属性在 EditView中使用,但是这里也可以用。
android:imeOptions附加功能,设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。这个在EditView中再详细说明,此处无用。
android:imeActionId设置IME动作ID。
android:imeActionLabel设置IME动作标签。
android:includeFontPadding设置文本是否包含顶部和底部额外空白,默认为true。
android:inputMethod为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。
android:inputType设置文本的类型,用于帮助输入法显示合适的键盘类型。在EditView中再详细说明,这里无效果。
android:linksClickable设置链接是否点击连接,即使设置了autoLink。
android:marqueeRepeatLimit在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为 marquee_forever时表示无限次。
android:ems设置TextView的宽度为N个字符的宽度。这里测试为一个汉字字符宽度
android:maxEms设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。
android:minEms设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。
android:maxLength限制显示的文本长度,超出部分不显示。
android:lines设置文本的行数,设置两行就显示两行,即使第二行没有数据。
android:maxLines设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。
android:minLines设置文本的最小行数,与lines类似。
android:lineSpacingExtra设置行间距。
android:lineSpacingMultiplier设置行间距的倍数。如”1.2”
android:numeric如果被设置,该TextView有一个数字输入法。此处无用,设置后唯一效果是TextView有点击效果,此属性在EdtiView将详细说明。
android:password以小点”.”显示文本
android:phoneNumber设置为电话号码的输入方式。
android:privateImeOptions设置输入法选项,此处无用,在EditText将进一步讨论。
android:scrollHorizontally设置文本超出TextView的宽度的情况下,是否出现横拉条。
android:selectAllOnFocus如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。 TextView中设置后无效果。
android:shadowColor指定文本阴影的颜色,需要与shadowRadius一起使用。
android:shadowDx设置阴影横向坐标开始位置。
android:shadowDy设置阴影纵向坐标开始位置。
android:shadowRadius设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。
android:singleLine设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。如android:text="test_ singleLine "
android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行
android:text设置显示文本.
android:textAppearance设置文字外观。如 “?android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。可设置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse
android:textColor设置文本颜色
android:textColorHighlight被选中文字的底色,默认为蓝色
android:textColorHint设置提示信息文字的颜色,默认为灰色。与hint一起使用。
android:textColorLink文字链接的颜色.
android:textScaleX设置文字之间间隔,默认为1.0f。
android:textSize设置文字大小,推荐度量单位”sp”,如”15sp”
android:textStyle设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开
android:typeface设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]
android:height设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)
android:maxHeight设置文本区域的最大高度
android:minHeight设置文本区域的最小高度
android:width设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米),与layout_width 的区别看这里。
android:maxWidth设置文本区域的最大宽度
android:minWidth设置文本区域的最小宽度
今天突然从遥远的国度传来震撼性消息,OpenOffice.org 社区的一群开发者宣布建立 Document Foundation (文档基金会?)组织,并且宣布建立一个新的 OpenOffice.org 分支——LibreOffice。建立新品牌的目的是为了避免以后和原来的 OpenOffice.org 之间可能存在的商标纠纷。新的基金会欢迎任何组织和个人参与推广 LibreOffice,他们特别欢迎 OpenOffice.org 的开发者参与,共同创造一个世界领先的开源办公软件。
说起来真是突然,不过这个新项目得到了众多重量级的组织支持,比如 FSF、Google、Red Hat、Novell、Canonical、GNOME 基金会。支持者列表:http://www.documentfoundation.org/supporters/
至于 Oracle 自家的 OpenOffice.org,那它自己看着办吧。Document Foundation 已经邀请 Oracle 参与新基金会,现在等待 Oracle 的回复。
LibreOffice 已经提供下载了,有 Windows、Linux 32-bit、Linux 64-bit 和 Mac 版本的下载,并且提供了源代码下载。当前版本是 3.3.0 Beta。下载地址:http://www.documentfoundation.org/download/
Document Foundation 的官方公告:http://www.documentfoundation.org/contact/tdf_release.html
分类: Apps, Office Suite | 永久链接 | 收藏到 del.icio.us | Email 给好友 | 28 评论 | 捐助本站
01.
public
static
void
checkNetworkType(Context ctx) {
02.
ConnectivityManager connectivity =
03.
(ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
04.
if
(connectivity ==
null
) {
05.
Log.e(Constants.TAG,
"获取网络类型失败"
);
06.
return
;
07.
}
else
{
08.
NetworkInfo info = connectivity.getActiveNetworkInfo();
09.
if
(info ==
null
) {
10.
Log.e(Constants.TAG,
"获取网络类型失败"
);
11.
return
;
12.
}
13.
if
(info.getType() == ConnectivityManager.TYPE_MOBILE) {
14.
TelephonyManager tm = (TelephonyManager)
15.
ctx.getSystemService(Context.TELEPHONY_SERVICE);
16.
int
type = tm.getNetworkType();
17.
switch
(type) {
18.
case
TelephonyManager.NETWORK_TYPE_EDGE:
19.
Log.d(Constants.TAG,
"网络类型为EDGE"
);
20.
break
;
21.
case
TelephonyManager.NETWORK_TYPE_GPRS:
22.
Log.d(Constants.TAG,
"网络类型为GPRS"
);
23.
break
;
24.
case
TelephonyManager.NETWORK_TYPE_UMTS:
25.
Log.d(Constants.TAG,
"网络类型为UMTS"
);
26.
break
;
27.
case
TelephonyManager.NETWORK_TYPE_UNKNOWN:
28.
Log.d(Constants.TAG,
"网络类型未知"
);
29.
break
;
30.
}
31.
}
else
if
(info.getType() == ConnectivityManager.TYPE_WIFI){
32.
Log.d(Constants.TAG,
"网络类型为WIFI"
);
33.
}
34.
}
35.
}
谷嘀下载器是一款面向开发者的下载工具,如果您的程序需要下载功能,则可以使用谷嘀下载器来轻松下载.
在Android 系统内部有个下载管理器,例如 内置的浏览器下载文件就是通过内置的下载管理器下载的. 在下载的过程中有Notification提示
下载完也有提示. 如果我们想在自己的程序中也是用这样的下载功能,可惜google并没有开放使用接口. 虽然通过其他方式也可以使用
但是使用起来总是不那么方便,并且将来Android系统升级也有可能修改这些非公开API的实现方式. 谷嘀下载器就是根据这种情况开发的.
在Android原有代码基础上做了简单修改. 如果您的程序需要下载功能.现在使用谷嘀下载器简单帮你搞定.
使用文档 请参考: http://code.google.com/p/goodev/wiki/GDM
截图
IntentTestActivity --> SecondActivity --> ThirdActivity --> SecondActivity --> IntentTestActivity 输出结果
File apkFile = new File("/sdcard/download/myapp.apk");
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(apkFile),
"application/vnd.android.package-archive");
context.startActivity(intent);
作者:guolurenss(天涯)
在国观,看见了不少人对比中国和印度软件贴子,发觉大部分都不是IT人经历的人写的,错误百出。所以来写一篇 一个IT人来谈中国与印度软件, 为什么不说 一个IT人来谈中国与印度软件的差距呢? 这样的说法就是根本性的错误,中国软件和印度软件只有差别,要衡量差距,那是关公战秦琼,无从衡量。
我本人就是从事IT行业的,从业10年。刚开始做ERP两三年,后来从事个人认为是技术和业务要求都是非常高的行业:
投资管理与证券交易软件。
天涯股民多,很多人认为证券交易软件就是通达信、大智慧、核新、同花顺,手机炒股,网上交易,电话交易等等,只能算说对了一半,这些都只能算证券交易的外围,所有这些交易方式都连接到证券公司的交易核心程序,最后申报到交易所,我从事的就是 这核心的开发,会和股民用到的所有系统有接口。
接下来开始谈正文:
一。首先谈盗版
虽然个人是从事IT行业的,盗版是IT人员最后成为IT民工的重要原因之一,但个人觉得到目前为止盗版对中国的发展还是利大于弊,
说到软件盗版,中国人都盗版什么呢?
1。操作系统 windows ,
2. 办公软件 oa系统 ,office,Notes,图象处理PS等
3. 数据库 主要是中小型的数据库(sql server,免费MySql),但大型的oracle等,都是大企业用的,能用的起当然就不缺钱,别人自然能抓到你在用,能找你收钱。
4。开发工具 c, delphi, .net ,java 我们这些开发软件的公司基本上都没有怎么花钱买开发工具。
5。企业级商用中间件 (Weblogic ,websphere,Tuxedo)等
6。其他的通用性应用软件,譬如杀毒,网络安全
7.个人电脑所使用的软件几乎全是盗版或者免费(免费居多)
windows,office,影声播放,
QQ、邮箱、支付宝、淘宝、阿里旺旺、飞信、百度、迅雷、PPS、PPlive、CNTV、360、、翻译软件、通行情软件、
8。中国最大的盗版行业是 游戏,电影
中国的网民从看电影和玩游戏角度来说,是世界上最幸福的,
我可以肯定的说,中国很多网民看过的美国电影数量都超过不少美国人。。远超其他国家的人
中国网民庞大,会有一部分人将世界上的优秀的影片引入到到这个体系(世界上最大的局域网)中来
由于中国的视频共享网站,其供应商都是中国本土的,
外国只有叫嚷的份,说到处理侵权,实际上能作的事情很少。
不要小看了盗版的作用,它让中国以比较低的成本融入了信息化社会,开阔了视野,这也是为什么中国人对外国人的了解 远胜于外国人对中国人的了解。
二。金山公司不是中国软件业的代表
大家看清楚了,中国人盗版的行业基本上都是外国的垄断的行业,
中国人奉行的原则是: 能用假就不用真的,能用盗版的就不用正版的,还有就是没有市场的东西不做, 目前中国人做的软件是什么行业呢,中国人只做不会被轻易盗版的行业。
国产软件被盗用的主要是在
通用性应用软件,譬如杀毒,网络安全,媒体播放
代表作:金山词霸,影音风暴,瑞星,天网之类.
很多人就把金山公司当作了中国软件业的代表,说中国软件的代表是金山词霸和wps,实际大错特错。
三。中国软件业特点
中国的二三产业规模,产值数倍于印度,同时各行各业的信息化程度远高于印度。 中国的这么多行业,几乎每个行业都有自己的行业软件,这些软件是无法盗版,因为和业务相联系的,脱离了业务,
换了一个行业,代码就成了一堆垃圾,所以没有人会去盗版,
1。你每天做工交车,地铁,其收费,控制系统(控制系统里面有部分是外国的程序,是和硬件结合的)
2。每天买东西,吃饭 收银系统
3。医院, 医院管理系统
4,证券交易系统 ,这个不用说了
5。中国最为发达的制造业,从进货-销售-财务-库存,这个链条,都是中国人开发的软件来管理的
6。你每天都是在上网,估计没有一个中国网站是外国人来编写程序建立起来的吧,就象天涯。。
7.还有一块,就是象华为一样,软硬结合,主要是嵌入式开发,
8。。。
看清楚了吗? 中国人就是做的这些东西,做来是给自己用的,而印度人是做软件来给外国人用的。 还有一点,这些软件盗版有用吗? 比如你盗版了一个证券交易软件,有证券公司敢用的你软件吗? 所有这些软件除了业务上面的关联,还有一个就是后续需求变更,升级服务,不是一锤子买卖。
四。印度软件的特点
可以和印度软件业相比较的是,中国的低端制造业务,譬如衣服,鞋子,玩具,箱包。 已经做到了高度的市场化,分工合理化,中国形成了领带,纽扣,拉链。。。等各种门类齐全, 零件生产流水线,产量大,生产成本低。
对应到印度软件,就是其流程清晰,管理严格。从需求分析-系统设计-功能设计-开发-测试,环环相扣, 每一个环节的流程监督和质量控制都做到位。
同时印度的软件公司更象软件工厂,几千上万人的软件公司不在少数。一年产值几亿几十亿美圆。
五。形成中国和印度软件特征的原因
中国和印度软件只有差别,没有办法比较差距。
因为两者是完全不同的模式
有一句话是很适用的,经济基础决定上层建筑
印度软件的项目来源:外包
特点:需求明确,功能明确,时间进度要求明确。
客户素质:高,管理规范
中国软件的项目来源:内需,遍地开花。
客户素质:参差不齐,管理不规范
特点:需求,功能,时间进度好象都可以随时在变
在中国,软件公司当然是属于弱势一方,客户就是上帝,有了这样的客户,你还寄希望于软件公司管理能规范吗?
从软件工程的角度来说:
项目失败的原因多是 1。需求分析不到位,设计偏差
2。进度控制不力,未按时完成
3。软件质量不稳定,无法上线等等
在中国,一个软件项目失败最多的原因却是
需求不可控。
你无法阻止客户不断提需求,变更需求,变更流程。
在这样的情况下面。如果你能够把这一点控制的稍微好一点,
项目成功可能性就比较大。
而在中国,怎么达到需求可以控制呢
1。大软件企业,处于行业垄断
2。贿赂客户公司领导
3。行业自身特点形成的需求约束
4。最后才是和客户沟通。
一般小软件公司做大项目,基本没有好事,最后的结果多半是自己被客户无限制变更的需求压的喘不过气,最后客户也丧失信心了,项目被终止。
六。中国和印度两种模式的后果
1。中国人把软件做成了劳动密集型产业,遍地开花,印度人把它做成了技术密集型企业, 在中国,IT行业的人都成了IT民工,尽管印度的人均GDP低于中国,但IT人员的 收入远高于中国。 另外一方面,中国的软件产值早已经超过了印度,在世界上面居于美国,欧盟,日本之后。
2。中国的软件企业成了血汗工厂,为中国各行各业信息化铺路了。
一个最简单的例子,一个几十人的工厂,是不会大型的软件企业为其开发软件的, 这个工厂也买不起这样的软件,而在中国,很多软件企业只有几个人,就会这样的小工厂服务, 他们没有任何规范的软件工程流程,所见即所得,赚到一点算一点。其他任何行业中,只要能 利用到软件,可以提供商机的都有人来涉足。譬如小区监控,家庭智能控制等等。
另一方面大软件公司提供的软件同样非常便宜,因为盗版的缘故,中国人忽略了软件的价值, 导致中国的软件价格普通很低,按照个人的衡量,中国软件公司的开发出来的软件 应该按照美圆来计算,
在中国,一个大型的软件只值100万元,而在印度,它也至少值100万美圆。。 在外国,一个企业软硬件的投入至少应该是1:2左右,在中国人们只知道硬件是需要花钱,认为软件是非常容易的开发的,不需要花钱。
3。中国有非常完整的行业软件供应商,并且在各自行业形成了初步垄断 证券,保险,银行,医疗,财务,交通,服装。。。还有很多形形色色的ERP。 在这些行业,都有一些出色的软件公司,规模中等,所做的产品符合该行业的业务需求, 在这些行业,竞争力非常强,外国软件基本没有空间。 在这些行业里面,我们几乎不 把微软,IBM当作竞争对手。微软,IBM做的东西一样会被客户换掉。
4.IT人员出路渺茫,最后都被迫转型,IT行业成为了年轻人的行业.很多的IT人员从软件公司 流动了其服务的客户企业中,结果变成了在中国,最资深,最有经验的IT人员基本都在客户公司里面 吃老本过日子。
当然中国的好的企业大多有自己开发团队,这些东西本身并不计算入中国的软件产值。
七 发展前景
1。印度软件外包遇到了和中国制造业出口相同的局面,就是外来订单减少,用工成本增加。 印度的IT人员成本是高于中国的,随着IT人员工资的逐步增加,利润减少,出现了发展困境。
中国还说产业升级,而印度连软件内需都不大,如何升级?
2。中国的软件业将高速发展,但IT人需要好自为之。
前景一片大好,软件应用无孔不入,但IT人的生存环境却不会好转,需要找准自己的方向, 软件企业的血汗工厂特点将会更加明显。 在中国,很多城市都在借鉴印度的外包模式,希望从国际外包市场上面分一杯羹, 我觉得这是方向性的错误,中国学印度模式没有任何优势,只有死路一条。
从事IT的人,要在中国的环境中生存,不要在外包企业中呆的时间过长,那样的话,将无法适应 中国残酷的环境,因为外包企业本身也不是能够提供你一份长久稳定的工作。
产品策划经理: 既要想象,又要实干 |
产品策划经理既然挂上了经理的头衔,就已经清晰地说明了这个职位的定位和职责范围。经理必须懂得经营和管理,在手机终端这样一个吃“技术饭”的领域,对专业知识的掌握也必不可少,更由于工作重心落在策划上,因此对求职者的产品营销知识和市场敏感度也提出了要求。 |
本文将提供一种一劳永逸的翻墙方式(ssh -D),实施之后,那道墙――对你来说――将从此透明。 本文面向的用户:使用Windows作为操作系统并且使用Firefox作为常用浏览器。 第一步:免费获取拥有SSH权限的帐号和密码。默认的免费获取方式:将本文转载到你自己的博客上,将转载后的文章网址发送到。 转载方式:拷贝文章代码至博客后台HTML编辑器中,直接发布即可,文章标题自拟,可在前后文插入自己的评论。 经过人工审核,你将收到一封附有五个拥有SSH权限的帐号和密码的电子邮件,你可以将它们赠与你自己的读者。 更多获取方式将在今后陆续激活,请关注帐号配送中心:https://friendfeed.com/rooms/fuckgfw-for-free 第二步:配置MyEntunnel软件下载并安装MyEntunnel,该软件全名为My Encrypted Tunnel。 一键下载:https://dl.getdropbox.com/u/398/myentunnel.exe 按照上图将第一步收到的帐号信息填写到相应的地方后,点击按钮,再点击按钮。 第一次连接过程中会出现一个认证对话框,按照提示确认即可。以后的自动连接中将不再出现此认证对话框。 最后点击按钮,使对话框隐藏到系统任务栏中。 提示: 为MyEntunnel创建一个快捷方式,将其复制到系统的【启动】(C:Documents and Settings当前用户名(需要修改成你自己的)「开始」菜单程序启动)文件夹中,今后开机便可自动启动软件,并自动连接服务器。
绿色代表连接成功且稳定;黄色代表正在连接或重新连接;红色代表连接失败。 第三步:配置Firefox浏览器假设你正使用Firefox浏览器阅读本文。 一键安装:https://dl.getdropbox.com/u/398/autoproxy.xpi 点击立即安装,安装后,重新启动Firefox。然后你会看到如下对话框,选择gfwlist (P.R.China)后,点击确定。 接着你会看到Firefox主界面右上角出现有一个"福"字图案,点击"福"。 点击"代理服务器――编辑代理服务器"。 随即出现如下画面,你会看到如GAppProxy、Tor和Your Freedom这样一系列代理服务器名称。 将GAppProxy一栏的参数修改为如下图所示。
修改完毕后,点击确定。至此配置已全部就绪。 获取更多帮助,请参与反馈:https://friendfeed.com/rooms/fuckgfw-feedback 第四步:支持fuckGFW获取详情,请关注捐赠与推广中心:https://friendfeed.com/rooms/fuckgfw-donation-and-marketing 版权信息:您可以自由复制、传播、演绎本作品且无需署名、无需注明原始出处。 |
不知道各位读者是否听说过DD-WRT?是否自己亲自将无线路由器刷新成DD-WRT无线设备?相信真正的无线设备爱好者一定对DD-WRT非常熟悉,我们通过给无线路由器刷新DD-WRT驱动程序后就可以让自己的设备发挥更多原先没有的功能。笔者将通过多篇文章为大家呈现DD-WRT相关的内容,希望各位IT168的读者可以从零起步了解DD-WRT的来龙去脉,了解如何刷新DD-WRT驱动,如何实现功能的提升。 一、什么是DD-WRT: 首先我们来了解下DD-WRT的基础概念,在介绍他之前先举一个例子进行比较方便我们理解。众所周知我们最常用的操作系统是windows,大家使用windows系统已经习以为常,但是他的全部源代码是没有对外公布的,因此一些编程爱好者就愿意使用开放源代码的linux类操作系统。在linux操作系统上我们可以根据自己的喜好以及实际需要来编写,在实际应用上更加灵活。 反观我们经常使用的无线路由器,实际上每台无线路由器也都有一个操作系统OS,每个厂家的无线路由器操作系统都不相同,而且也没有对外公布代码,这就类似于windows操作系统,虽然我们可以正常使用这些无线设备,但是由于他的OS是不能够自己修改的,所以难免在实际使用上存在这样或那样的不足,可能不适合自己使用。在这种环境下DD-WRT驱动应运而生。 DD-WRT是一个“第三方”固件,他广泛的应用于Linksys WRT54G/GS/GL或其他基于Broadcom参考设计的802.11g无线路由器,他的本质是一个linux操作系统。当然网上众多高手在逐步完善和增加DD-WRT的驱动功能,所以现在我们使用的DD-WRT固件驱动实际上已经和起初存在很大的区别了。( 二、给无线路由器刷DD-WRT固件的好处: 如果说一台无线路由器的操作系统OS相当于他的大脑,那么我们把给这个无线路由器刷新DD-WRT固件就意味着给此设备洗脑。经过洗脑操作后我们的无线设备将发挥更好的作用,所支持的功能更多,运行更加稳定。 说白了刷DD-WRT就是将原来设备的OS抛弃,更换一个新的OS,多多少少有点类似于硬件爱好者常用的“超频”操作。 一般情况下我们称那些刷新了DD-WRT固件的无线设备为DD-WRT无线路由器,这种无线路由器在以下几个方面存在着很大的优势,功能更多,相比传统无线路由器来说,DD-WRT无线路由器功能更强大,支持的应用更多。 (1)支持3322.ORG的DDNS,支持花生壳的DDNS。 (2)可以利用QoS、限速、限连接数等设置来优化带宽。 (3)支持VPN的PPTP客户端和PPTP服务端设置,可以提供VPN接入。 (4)可以轻松实现无线的定时开关。 (5)可以通过配置轻松管理各种网络应用,例如彻底封杀BT,电驴,迅雷。 (6)支持UPNP和端口映射功能。 (7)支持语言种类很多,可以搭配802.1x (EAP(Extensible Authentication Protocol)-局域网上扩展认证协议封装)来增加网络认证应用。 (8)IPV6支持,SNMP协议支持,SSH服务支持等。( 三、能够刷新DD-WRT固件的设备型号: 很多读者也许都听说过Linux操作系统,知道它是和Windows抗衡的另一大流派的操作系统。但大家也许不知道,Linux极其灵活,不仅可以运行在大型服务器、台式机之上,也可以运行在各种小型终端设备,这其中就包括无线路由器。DD-WRT其实就是一个供无线路由器使用的嵌入版Linux,它可以在普通的家用无线路由器实现数千元的商用无线路由器功能,不仅如此,对于高手它甚至可以允许自行编译程序,自由扩展无线路由器功能。 DD-WRT的起源要追溯到2003年,当时Cisco/Linksys发售了WRT54G无线路由器,它支持当时最高54Mbps的连接速度。同年有爱好者发现WRT54G的IOS固件是基于Linux的(IOS就是Cisco对于自己网络设备操作系统的称呼),然而使用Linux作为操作系统的一个基础条件就是必须把原代码公开,这件事传开之后,本来Cisco 拒绝公开源代码,但最后迫于公众压力,2003年三月份,Cisco公开了WRT54G的源代码。这一下可是打开了一个大宝库,众多基于此源代码的第三方固件纷纷出台,其中DD-WRT就是最出彩的一个。 。 使用DD-WRT的好处很多,它具有友好的配置界面,支持多语言(包括简体中文),可以让无线路由器支持QoS宽带设置、QoS L7过滤,优化带宽并限制最大上行、下行速度和最大连接数等,并可以封杀或者加速BT、电驴下载。支持多种客户端连接模式,如网桥、中继、客户端等模式。支持数种安全机制,支持客户WPA模式、VLAN、WPA2等安全模式和机制。还支持花生壳的DDNS,方便建立个人网站。它甚至有改造后的直接BT下载功能。这么强大的DD-WRT是完全免费的。 当然并不是所有的路由器都可以刷新DD-WRT的,毕竟它运行的是Linux系统,需要比较完善的硬件支持,现在可以刷新为DD-WRT的路由器都是基于Broadcom的CPU的系统,并且对内存和存放固件的Flash闪存容量也有一定要求。Flash闪存容量至少4MB,而所有的WRT54GS v4.0版本之前的型号都拥有8MB的Flash闪存容量,而也有部分路由器(包括WRT54G和WRT54GS的v5.0型号)仅有2MB的Flash。需要大家注意的是:DD-WRT的完整版(Standard Vision)和迷你版(Mini vision)的安装都需要4MB的Flash,而2MB Flash容量的路由器只能使用微型版(Micro Vision)。 在此笔者推荐一些适合刷新DD-WRT的经典无线路由器,它们要么价格便宜,要么性能最强,兼容性也都是最好的。其中包括Buffalo WHR G54s、Buffalo WHR G54s、Asus WL 500G Deluxe以及Motorola WR850G这几个产品,当然也包括WRT54G拥有8MB Flash的产品。 DD-WRT刷机 我们首先要到DD-WRT的官方网站http://www.dd-wrt.com/下载固件,现在它共有五个版本,普通用户使用完整版和迷你版即可,它们的最大区别在于完整版支持kaid功能,方便游戏机的无线联网对战。需要注意的是,最好不要追求最新版本,稍老一些的版本反而因为经过了众多用户的除错,会更加稳定。这里推荐v23 sp1及v23 sp2。 下面以价格较低的Buffalo WHR G54s的产品为例介绍一下如何刷新DD-WRT固件。为保证顺利升级,必须先将路由器恢复到出厂设置,按住路由器的复位按钮并保持至少30秒,拔下路由器电源。然后将计算机的ip地址设置到192.168.11.x的网段内,这也是WHR G54s的默认网段。将计算机与路由器中任意一个LAN口相连,使用交叉网线与直连网线均可。 接着在Windows XP中通过“开始/运行/cmd”打开命令行窗口,假设固件在c盘根目录下,就先进入c盘根目录,并输入“tftp -i 192.168.11.1 PUT dd-wrt.v23_generic.bin”这里是要利用tftp将固件上传至路由器,此处的192.168.11.1 为WHR G54s 的ip地址,dd-wrt.v23_generic.bin为下载的固件名称。注意,此时先不要按下回车键。 下面,需要对设备进行操作。给路由器接通电源,此时所有的路由器Led指示灯都会被点亮,约一秒钟以后,此时除了计算机所连路由器端口对应的指示灯之外所有的端口指示灯均会熄灭,我们需要马上按下回车键,进行传输。这里不需要紧张,即使得到一个“Time Occurred”的超时提示也不要紧,重复上面的操作即可。如果我们输入及时,文件开始传输,那么接着WHR G54s的LAN指示灯会经过大约6秒钟的频繁闪动之后,将得到一个类似于:Transfer successful: 3502080 bytes in 5 seconds, 700000 bytes/s的输入成功提示。最后在bridge/diagnostic指示灯熄灭之后路由器将重新启动DD-WRT。此时WHR G54s已经刷新成功,它的地址为192.168.1.1,路由器默认的登陆的用户名为'root',密码为'admin'。 DD-WRT的特色应用 首先我们要登录DD-WRT设备,由于它的初始IP一般为192.168.1.1,所以我们要将本机地址设置为同一网段,比如192.168.1.2就可以直接在浏览器中输入http://192.168.1.1进入DD-WRT设备控制界面。默认用户名为root,默认密码是admin,登录完毕后就可以看到DD-WRT无线设备的管理界面了(如图1)。由于功能强大,所以DD-WRT管理界面上的设置很多,从左到右依次为“设置、无线、安全、访问限制、应用程序&游戏、管理、状态”,每个页面又下分多个子项,选项是非常之多。 1.定时开关无线信号 很多用户都有定时开关无线信号的需要。比如很多家庭用户在晚上休息时并不需要开启无线信号,还可以减少无线信号对人的影响,此外在单位常常需要限制用户在夜晚或者节假日这些非工作时段使用无线网络,这就可以使用DD-WRT的定时开关无线功能,比单独使用它的访问控制要方便安全得多。 首先需要进入“高级无线设置”页面。我们可以看到Radio Time Restrictions的字样,它的初始默认状态是禁用,这里我们将其更改为“启用”。然后会出现24个方块图标分别代表一天的24小时(如图2),其中绿色代表开启无线,红色代表关闭无线,我们就可以自由设定每天的那些时间开启无线,那些时间关闭无线信号。 3.手动更改无线信号强度 我们在市面上买到的无线路由器的功率是固定的,个人想去改变它基本是不可能完成的任务。但在实际使用中往往会遇到需要增大无线功率而提高一些传输距离或者穿墙能力的情况,尤其是在就差一堵墙就可以实施成功的时候,信号强度问题的确是能急死人。而DD-WRT设备就拥有调整无线信号发射功率的功能,可以在一定范围内自定义设备的发射功率。 同样是在“高级无线设置”页面,其中有一个Xmit功率选项,它就是调节无线功率的地方(如图3),范围在0~251毫瓦之间,默认是28毫瓦。如果我们觉得自己的无线网络不太稳定,或者就差不远就可以达到自己的理想距离我们可以在这里进行调解,经过试验,这项功能的作用还是很明显的。不过笔者提醒大家不要一味的去增大功率,毕竟高功率设备可能对人体有害。其实我们也可以反其道而行之,对于无线信号十分良好的用户,可以适当降低无线信号的发射功率,以便将它对身体的影响降到最低。 4.封杀BT,电驴等P2P软件 现在P2P下载软件已经成为事实上的最大下载来源了,但同时它的多并发、大流量的特点也占用了大量带宽资源,使得局域网其它用户网速变慢,严重的甚至造成网络设备死机或使整个网络瘫痪。在Windows系统上封杀P2P下载软件相对复杂,但通过于DD-WRT就可以方便地实现,而且可以直接使用图形界面进行设置。首先需要进入“访问限制”页面(如图4),这里不仅可以封杀P2P等软件还可以按时间、网址、关键字直接控制不允许上网的时间和不允许访问的网站。 我们需要在这里建立一个访问策略来控制P2P软件,先允许使用策略,然后把策略名字命名为“禁止P2P”,在“编辑PC列表”中可以直接按照PC的MAC地址或者IP或者网段来指定这条策略对那些PC起作用。允许访问互联网的日期和时间大家可以根据自己的情况设置,可以指定每周的那一天可以访问,也同时可以设定每天那个时段才可以访问,相当之强大。 接下来就是最重要的“被封禁的服务”这里了,这里可以指定禁止那些网络服务,可绝对不仅仅是P2P软件,近乎包括当前所有流行的网络应用,甚至包括流行的网络对战游戏,比如《战地》、《魔兽世界》等。在这里我们需要把“捕获所有P2P协议”打钩,在下面的应用程序栏选上“bittorrent”和“edonkey”,甚至对于“讯雷”在列表中都已经存在。如果你要禁止的服务在列表中并没有显示,这时就要使用自定义设置。 点击“添加编辑服务”,在这里我们可以对自行添加的服务命名、选择协议类型,最后再设定它使用的端口就可以了(如图5)。其实从上面的说明大家可以看出DD-WRT的访问控制可不仅仅是仅仅供我们封杀P2P这么简单,它几乎可以实现对任意主机在任意时间进行任意网络访问的控制。 5.用命令行限制网络连接数 当然也许有些场合不能公开限制P2P软件的使用,但网络现状又使得限制成为一种必要,这时就可以利用限制连接数来限制P2P软件的使用,来达到即允许你使用,但又实际无法占用大量带宽的目的。此时,我们要在图形界面中使用Linux命令。进入“管理”页面,在其子页面中有一个“诊断”选项。在“诊断”中一个命令外壳,有点类似于Windows中的DOS命令窗口(如图6),在这里可以输入linux命令。如果我们要限制局域网内每个用户的连接数为20,就输入: iptables -I FORWARD -p tcp -m connlimit --connlimit-above 20 -j REJECT 如果要限制指定的局域网用户的连接数为20,比如为192.168.0.123,就输入: iptables -I FORWARD -p tcp -s 192.168.0.123 -m connlimit --connlimit-above 20 -j REJECT 最后是限制除指定用户以外的IP连接数为20,比如仍为192.168.0.123,则输入: iptables -I FORWARD -p tcp -s !192.168.0.123 -m connlimit --connlimit-above 50 -j REJECT 将这些命令填入命令窗口,点运行命令运行即可。 6.QoS分配网络带宽使用优先权,优化特定服务 这里要先解释一个名词服务质量QoS,它的意思是根据服务的级别来分配网络带宽使用优先权,一般来说QoS服务质量都是在高端路由交换设备才支持的,但我们的DD-WRT也支持哦,很多用户就是冲着QoS来购买DD-WRT设备的。比如我们家中或者小区、单位中有人在下载,有人在游戏,有人在浏览网页,这时就需要用QoS配置服务的优先级,限制或降低不希望运行程序的优先级,这样就可以让这些高占用带宽的程序为带宽敏感的网络游戏让步了。 QoS位于“应用程序&游戏”页面的QoS子页面下。首先要将QoS设置为允许,然后根据自己的网络情况填写网络参数,包括上行速度和下行速度等,上行速度设置为自己的总上行限制的80%~95%,下行速度设置为自己的总下行限制的80%~100%。要是游戏爱好者的话当然要选中“为游戏优化”(如图7)。 最后要在“服务优先级”处设置不同网络应用的优先级,比如这里设置为《魔兽世界》的优先级最高,这样网络中其他的用户都要给这个游戏的带宽利用让路。同时和上面一样我们也可以利用“添加编辑服务”按钮来任意添加自己所要使用的服务。 由于篇幅限制,还有动态域名系统、端口绑定提速、开启SNMP协议、DHCP转发功能、动态路由协议、划分VLAN、WDS中继服务等等众多的特色功能没有介绍。但笔者希望抛砖引玉的介绍能够引起大家对DD-WRT无线路由器的兴趣,选择DD-WRT无线路由器没错的。 附:支持DD-WRT固件的无线路由器 Allnet:All0277 Askey:RT210W Asus: Asus WL-500G deluxe Asus WL-500G premium Asus WL-300G Belkin: F5D7130/7330 (2mb flash) F5D7230-4 v1000, v1010, v1111 F5D7230-4 v1444 (2mb flash) Buffalo: WHR-G54S WHR-HP-G54 WHR-HP-G54S WZR-RS-G54 WBR-G54 WBR2-G54 WBR2-G54s WLA-G54 Linksys: WRT54G v1.0, v1.1, v2.0, v2.2, v3.0, v3.1, v4.0, v5.0 (2mb flash) WRT54GL v1.0, v1.1 WRT54GS v1.0, v1.1, v2.0, v2.1, v3.0, v4.0, v5.0 (2mb flash) WRTSL54GS v1.0 Motorola : WR850G Ravo: W54-RT Siemens: Gigaset SE505 Gigaset SX550i |