存档: 九月, 2009

训练逻辑思维的13道趣题

3 条评论 2009年9月30日

一直认为:从事计算机这一行的应该保持自己思维的活跃性,千万不能让大脑越来越懒,最终思维僵化。前两天在亚马逊看到一本《训练逻辑思维的100道趣题》,觉得会比较有趣,就买了。

拿到书后看了一下,书中的题目看似简单,但想快速得出答案可还真不容易。而且这些题目还有一个特点:它主要考查的是一个人的逻辑思维能力,所以几乎没有年龄的限制——小学生可以做,大学生也可以做;小孩子做起来不容易,大学教授也不一定能做对。

从书中摘录了几道题,大家看一下自己的逻辑思维能力怎样吧:

100三人行
安德鲁、伯纳德和克劳德,这朋友三人骑自行车出行。各人骑的是一位朋友的车,戴的又是另一位朋友的帽子。
戴了克劳德的帽子的人骑的是伯纳德的自行车。
谁骑了安德鲁的自行车?

71银行劫案
一家银行遭劫后,四名银行职员对劫匪的模样都作了一番描述。
据门卫说,他有一双蓝眼睛,高个子,戴了顶帽子,穿了件背心。
据出纳说,他有一双黑眼睛,矮个子,穿了件背心,戴了顶帽子。
据秘书说,他有一双绿眼睛,中等个子,穿了件雨衣,戴了顶帽子。
据主任说,他有一双灰眼睛,高个子,穿了件背心,没戴帽子。
后来弄清楚,每位目击证人都只是正确地描述了四个细节中的一个;而对于每个细节,至少有一位证人的描述是正确的。
对这名罪犯的正确描述应该是怎样的?

99奥运奖牌得主
一架飞机载着5位运动员从奥林匹克运动会归来。
这5位运动员在某个项目中排名第一到第五。
他们说了下面这些话:
A:“我不是最后一名。”
B:“C是第三名。”
C:“A的排名在E后面。”
D:“E是第二名”
E:“D不是第一名。”
出于谦虚或其他什么原因,金牌和银牌的得主都说了谎。那三个成绩相对较差的运动员倒说了真话。
他们的排名到底怎样?

70历史测验
一次历史测验中,有三个问题是关于美国总统的。
这里是六个学生的答案:
1. 波尔克、波尔克、泰勒
2. 泰勒、泰勒、波尔克
3. 菲尔莫尔、菲尔莫尔、波尔克
4. 泰勒、波尔克、菲尔莫尔
5. 菲尔莫尔、泰勒、泰勒
6. 泰勒、菲尔莫尔、菲尔莫尔
每个学生都至少答对了一个问题。正确的答案是什么?

60各尽职守
勒布伦、勒努瓦和勒布朗在一家商号担任会计、仓库保管员和巡回推销员(名字与职务不一定按这个顺序对应)。
推销员是单身汉,在这三人中个子最矮。
勒布伦是勒努瓦的女婿,个子比仓库保管员高。
他们各人担任的是什么职务?

57蒂莫西光顾过的旅馆
蒂莫西到国外兜了一大圈,回来后对他住过的旅馆作了如下评述:
1. 凡是伙食好的旅馆,女服务员都和蔼可亲
2. 没有一家全年迎客的旅馆会看不到海景
3. 只是某些廉价的旅馆伙食不好。
4. 凡设有游泳池的旅馆,其墙壁都被着意地覆盖上了金银花。
5. 女服务员态度冷淡的旅馆,都是那些一年中只有部分时间迎客的旅馆。
6. 没有一家廉价的旅馆允许带狗入住。
7. 不设游泳池的旅馆都看不到海景。
一位带着狗的旅客有可能在这些旅馆中的某一家入住并欣赏到金银花吗?

47六个男人
有六个男人,简称A、B、C、D、E和F,和他们的母亲住在一个村子里。
每位母亲都不幸丧夫。但都又婚,第二任丈夫都是除了自己儿子以外的那五个男人中的一个。
D太太对C母亲说,由于这第二次婚姻,她(D太太)成了E太太的婆婆的婆婆的婆婆,A成了B的继父的继父,而F太太则是C太太的儿媳妇的儿媳妇的儿媳妇的儿媳妇。
谁嫁给了谁呢?

43国际会议
在一次国际会议上,有21个人会讲法语,21个人会讲英语,21个人会讲德语,但与会人数远小于63,因为有些人会说几种语言。事实上,所有的可能性不外乎:有些人只会说一种语言,有些人只会说两种,而有些人三种都会说。
如果把会说某种语言的人称为一个组,那么在这个组内,只会说某两种语言的人(类似地,只会说这种语言的人,三种语言都会说的人)就称为一个小组。
这里任何一个给定的组,其各小组的人数都不相同(但至少3人)。人数最多的小组是由那些只会说法语的人组成的。
会说英语和德语但不会说法语的人有多少?

38倒入游泳池的冰块
一个人坐在一只救生圈上,浮在游泳池中。他右手拿着的杯子里有一块冰块。如果他把这冰块倒入游泳池中,水位将在什么时候上升?
在这冰块掉入水中的时候?
在这冰块完全融化的时候?

26充气式游艇
一艘充气式游艇浮在游泳池里。下面哪一种方法会使水位升得更高?
把一枚硬币丢进船里,
把一枚硬币丢进水里。

14蒂莫西的领带
蒂莫西的领带架上挂着17根蓝色领带、11根黄色领带、9根橙色领带、34根绿色领带和2根紫色领带,但是它们没有按颜色分类悬挂。
灯泡坏了,蒂莫西看不出领带的颜色。
蒂莫西要拿多少根领带才能确保至少有两根领带颜色相同?

11三字母单词
找一个常用的三字母英语单词,已知:
LEG与它没有字母相同;
ERG与它有一个字母相同,但位置不对;
SIR与它有一个字母相同,而且位置也对;
SIC与它有一个字母相同,但位置不对;
AIL与它有一个字母相同,但位置不对。

34五字母单词
找一个常用的五字母英语单词,已知:
ADULT与它有两个字母相同,但位置不对;
GUSTO与它没有字母相同;
STORY与它有一个字母相同,而且位置也对;
BUILT与它有一个字母相同,而且位置也对;
DYING与它有一个字母相同,但位置不对;
BUGLE与它有两个字母相同,但只有一个位置对;
LIGHT与它没有字母相同。

有兴趣的朋友做做看吧,答案大多很简单,但惹事先知道了答案做起来就很无趣了,所以答案暂不放出,等十一之后再公布吧。

你的U、门还好用吗?

4 条评论 2009年9月26日

最近U、门等都不好用了,就连Your Freedom也时好用时不好用,跟朋友聊起这事来时,发现他那边也是这样,实在是无奈得很呀。

今天他发给我一篇上海交大某陈姓研究生的硕士论文:《FG软件的逆向分析技术研究》,看后我真得无话可说。中国自古书生多挨骂,不是没有道理的。

谁说中国只有靠思科才能筑墙?其实国内有得是想主动为建设全球最大局域网这一宏伟目标而奉献一生的人才。只靠秦始皇一人是不可能焚书坑儒、修筑长城的,要有一批削尖了脑袋想往上爬的弄臣谋士为他出谋划策、敲定技术细节,方能实现这一宏伟目标。

话不在多,言多有失,各位还是意会吧。在此谨代表墙内部分网民对该生全家致以最崇高的敬意、问候!

看不懂我的呓语的朋友请飘过~

知道我在说什么的朋友留言的话也请含蓄一些,谢谢合作!

附《F(ree)G(ate)软件的逆向分析技术研究》论文下载:(阅读时可直接从第三章开始)

推荐个Flash游戏:MotherLoad(附本地运行破解)

3 条评论 2009年9月25日

其实是个几年前的老游戏了,只不过前天找东西时又翻了出来,一口气玩儿到大关底,结果发现竟然还有两个大Boss,玩起来还是蛮有意思的。

MotherLoad(Flash游戏)

MotherLoad(Flash游戏)

MotherLoad到达大关底前

MotherLoad到达大关底前

MotherLoad关底BOSS

MotherLoad关底BOSS

游戏的主要情节是你驾驶一个采矿机器人到某星球采矿,似乎整个星球上就只有你自己 :Q,另外还有四个自助商店及一个存盘机器。而你的任务就是不断向地下掘进,最终挖到一件终极宝藏(?我没找到)并干掉最终的大BOSS。

同其它Flash游戏一样,MotherLoad的操作还是比较简单的,ASDF或上下左右就可以控制采矿机器人的行动了。不过,需要注意的是六种特殊装备在使用时全是靠快捷键的,一定要记清楚是哪几个键,否则就白买了。

游戏中几个建筑

从左侧数起,第一个是加油站,没什么好说的,每次过来都加满就是了。

第二个是卖矿石的地方,也没什么好说的,每次进来把身上的矿石全卖掉,否则留着矿石一点其它用途没有。

第三个是装备店,里面卖的几样东西看图片就基本知道是做什么用的了,点击后会有相应的简单介绍:

  • 钻头 Drill – 加快钻地速度
  • 外壳 Hull – 增加护甲硬度
  • 引擎 Engine – 增加引擎性能
  • 油箱 Fuel Tank – 增加油箱储量
  • 风扇 Radiator – 提高散热性能
  • 储物箱 Cargo Bay – 增大储物箱容量

第四个则是维修站及特殊物品商店,采矿机器人受损后可到此维修,并且可以买一些特殊备件(当掘进到几千英尺之下后这些备件可是相当有用的):

  • Reserve Fuel Tank 备用油箱 – 每次加25升 价格:2000 快捷键:F
  • Hull Repair Nanobots 修复机器人 – 每次恢复30HP 价格:7500 快捷键:R
  • Dynamite 炸药 – 小范围爆破 价格:2000 快捷键:X
  • Plastic Explosives 强力炸药 – 大范围爆破 价格:5000 快捷键:C
  • Quantum Teleporter 量子传送器 – 返回地表(不稳定)价格:2000 快捷键:Q
  • Matter Transmitter 物质传送器 – 返回地表(稳定)价格:10000 快捷键:M

几个小技巧

  1. 不要在浅层恋战,越往下的矿越值钱,所以要可能地向下挖。我的做法是在加油站旁边那一格开始往下挖,一直挖到底。
  2. 赚了钱就去买装备,不要做守财奴
  3. 大约在1600-2400深度时会开始在下潜的路上遇到第一块不能钻的石头,尽量用炸药把它炸掉,而不是绕开。这样下次加油后直接让它往下掉就行了,不用担心路上不断摔着。
  4. 挖到4000ft左右时记得多买炸药跟备用油箱,如非必要尽量不要上去,否则上下一次太浪费时间了。只要钻石,其它的原则上不要。
  5. 不要太贪心,钻石很重的,采得太多了后会飞不起来了……
  6. 记得准备一个物质传送器,万一储物箱里全是值钱的钻石却又飞不动了,可以直接传送上去。
  7. 实在没有传送器的话,按I,从储物箱里扔掉几块便宜的矿石就能飞了,只不过飞得会很慢,有一次我从-4000ft飞到地面用了四个备用油箱……
  8. 到了-6000ft至-7000ft时至少要准备50+的备用油箱跟50+的炸药&50+的修复机器人,这才能保证工作效率
  9. 前期不要太担心钱,等到后来下去一次就能采数百万,买什么都够了。
  10. 保存后得分会被清0,如果你很在意分数的话,就要时刻注意你的油&外壳破损程度。

在线游戏

游戏的开发网站XGen Studios可以玩儿

在MiniClip也可以玩儿到

当然,在本页也可以玩儿到:D

或者点此链接,在新窗口中打开,然后按F11全屏玩儿

本地运行

不管如何,在线的玩儿起来就是不爽,我更喜欢把Flash下到本地硬盘上再玩儿。不过,这个开发商对这个游戏做了限制,只能放在xGenStudio或MiniClip网站上可以玩儿。想要下载到硬盘上玩儿的话就得动点脑筋了:

  1. 首先下载一个FlashGameMaster V2.8(最新版本是V3.1,不过不要用,广告太多,玩儿的时候不断弹广告,根本没法用)
  2. 右键点此链接,选“另存为”,把游戏保存到你的硬盘上
  3. 运行FlashGameMaster,把下载的MotherLoad.swf拖到程序的窗口上
  4. 等一分钟左右,让FlashGameMaster把想弹的广告全弹完,然后关闭所有的广告窗口(不要理会软件的升级提示)
  5. FlashGameMaster的菜单中“编辑-强制跳帧”,填入3,点击“跳转
  6. FlashGameMaster菜单中“显示-全屏
  7. OK,玩吧!

附:

MotherLoad正式版下载

FlashGameMaster V28下载

视频:狗狗的爱情

3 条评论 2009年9月23日

一直觉得身边接触得最多的动物中狗是最聪明的,很多狗能懂人的感情,自然狗之间也会有他们自己的感情。当灾难袭来时,人可能“各自飞”,也可能“相濡以沫”,其实狗也会,尤其对于不知死亡为何物的狗来说,这种感情会更感人:

人与人之间可能会有感情之外的各种纷扰,但狗与狗之间则只有纯粹的感情,绝无经济利益或其它的任何非感情因素。

我是从优酷看到这段视频的,本只是想收藏到del.icio.us的,但不喜欢发布者取的名字(“好一对狗男女”),所以就直接把视频转过来了。

小兔看猪流感(H1N1爆发期间的全国计算机等级考试)

6 条评论 2009年9月18日

写在文前:首先声明,我近期一直没有收到ICP或网监或其它部门的相关通知,在搜索引擎上搜索“大学 H1N1 确诊”等词也没有被GFW,所以我暂且认为这不是一个敏感话题,可以在BLOG上公开讨论。如果我的理解是错误的,请通知我一下,我会自行删除,请不要请我去网监处喝茶,也不要采取拔服务器网线、封IP、停域名解析等极端措施。

这篇文章我想写很久了,但因为当前是敏感时期(十一),而且猪流感似乎也成了一个政治事件了,所以一直没敢动笔。不过现在看来似乎可以讨论的样子,而且明天就是计算机等级考试了,所以还是说几句吧。

先说明天的考试吧,全国计算机等级考试明天开考,这在高校里是人群相当集中的时刻了,全校很大一部分人都要在一天半的时间内到那么几个机房内呆一个多小时,对于传染病——特别是H1N1这样的靠空气都可以传染的传染病来说,这可以相当危险的。

为什么说高校呢?这是因为目前来说高校是发病率最高的群体,当各高校军训前几天省军区紧急把各校的军官撤回时,我还觉得有些小题大作了,但接下来几周时间内看各高校相继因为发现确诊的病例而停课、封校,我才觉得事件大了。有的学校甚至规定:封校期间离开校园的直接给予留校查看处分。各封校的学校都拿出几座特定的宿舍楼来做隔离区,而被隔离的宿舍楼内有些心理承受能力较差的学生甚至有些抓狂了。

既然形式这么严峻,为什么还要组织如此大规模的考试呢?什么,因为是全国性考试?这不是理由,即便是全国性的,遇到这样大规模的疫情也可以申请缓考什么的吧?而且各地都有禁止举办大型室内集会活动的规定——这还是没有发现确诊病例的学校,已发现的就更应该自觉了吧?其实,听说有的学校还真的向上级申请缓考来着,但就今天的情况来看,上面可能是没批。

为什么上面会没批呢?猜测,仅是照常理猜测了,大家可以忽略本段内容。先假设我是学校领导,自己学校确诊人数或疑似人数明显高于兄弟院校的话,似乎不太好看,反正虽说要求零报告,但报错了也不会象非典时那样直接丢掉位子,所以嘛,我不是不报,只是报的会不太准确而已——只要我最终能把形势控制住;再假设我是上级领导,如果我知道下面报的数据不对而不去管自然是犯错误,但如果我不知道他们报的数据错误,那只是失查而已了,性质完全不一样,反正现在的数据全省、全国比较起来不会让我们市、省做出头鸟,而且万一被人捅出来,也可以推到下面的人身上,何乐而不为呢,让香港澳门傻呼呼地在疫情榜上风光去吧;最后假设我是主管全国计算机等级考试的官员,看一下各省市的疫情统计,一共没几个确诊的,而且各地疫情控制地也很好,为什么要为此延缓考试呢?

有些出现疫情的高校好象在免费发放根据各种防甲流药方配的中药,今天朋友在gTalk上告诉我说北京有些学校强制学生喝“有免疫功效”的中药,必须当面喝完,这可有些过了,当朋友又把方舟子的药方评论时可真的吓了一跳:但愿大部分学生喝的不是这样药方,否则用来做心理安慰的药真害了人的话反而是得不偿失了。

附上WHO对流行病划分的六个阶段,大家自己比较一下看看当前应该定为几级:



最后,提供几个大站的H1N1专题链接:

另外,不知道为什么百度的猪流感专题早就停止更新了,所以就不列出了。

批量禁用DHCP环境下客户端的RAS服务

2 条评论 2009年9月18日

朋友来信说他们的网络中客户机的RAS服务占用了大量DHCP自动分配的地址,问有没有什么办法解决一下。

放狗一搜,发现网上的方法全是手工禁用客户端的”Routing and Remote Access”服务,没有从服务器端的解决办法,朋友他们的网络中有数百台机器,总不能一台一台地去禁呀,而我今天请假在家,手边也没有DHCP服务器可供测试,想来想去,只好想了个“馊主意”:

写个关RAS服务的脚本放网站上,

让每个客户端下载后运行一下:

sc config “Routing and Remote Access” start= disabled

同时在网上通知说,某月某日网调整,请在此日之前运行一下此脚本,否则将导致不能上网云云……  (到那一天后保证还有没运行过的机器,先从DHCP服务器上禁用一部分得到多个IP的机器,他们就会打电话来问了,告诉他们临时给他们解开,解开后请第一时间运行该脚本。然后再在网上发一个“紧急通知”,考虑到有的机器还没运行该脚本,暂时把新功能启用时间后延两天,请两天内一定运行…… 这样一来大部分机器就都会搞定了,即使有剩下的也是小部分了)

至于服务器什么的,可以写个通过IPC$来禁用服务的脚本:

net use \\192.168.0.111 def /user:abc
sc \\192.168.0.111 config “Routing and Remote Access” start= disabled

其中192.168.0.111为目标服务器的IP地址,abc为服务器的用户名,def为密码。

可以在一个脚本中把所有的服务器都写进来,每个服务器两行,然后双击一起运行,一起禁止。

这样一来,虽然有些麻烦,但总算比手工挨个去禁要快一点点~

IE“自动代理脚本”的函数说明与应用

没有评论 2009年9月13日

从Windows 98时代就知道IE有个“自动代理脚本”的功能,而且听说还跟FireFox通用,但就是从来没用过,所以也就从来不知道怎么写。直到今天在“生命在于静止”的Blog看到了这个功能的详细说明,一激动之下就把全文COPY过来,做个备份,以备后用:

自动代理脚本的函数说明与应用

本文献给那些对自动代理脚本有兴趣、想自己写的朋友。

1、什么是代理脚本(PAC)
一个PAC文件其实就是一个文本文件,最简单的格式就是包含一个叫FindProxyForURL的
JScript函数,IE通过传入两个变量来调用这个函数,一个是用户浏览的地址URL全路经,
一个是这个URL中的主机名部分(host)。这个FindProxyForURL函数有三种可能的字符串
返回值,一是”DIRECT”,就是直接连接,不通过代理;二是”PROXY proxyaddr:port”,
其中proxyaddr和port分别是代理的地址和代理的端口;三是”SOCKS socksaddr:port”,
其中socksaddr和port分别是socks代理的地址和端口,一个自动代理文件可以是多个
选择的组合,其中用分号(;)隔开,如:

function FindProxyForURL(url,host)
{
if (host == “www.mydomain.com”)
return “DIRECT”;

return “PROXY myproxy:80;
PROXY myotherproxy:8080;
DIRECT”;
}

2、下面是代理脚本可能用到的函数和说明:
PAC Helper Functions

dnsDomainIs(host, domain)              Returns true if the host is part of the
specified domain, false otherwise.

isInNet(hostname,                      Resolves the hostname and subnet IP,
subnet mask) returns true if the
hostname is within the subnet specified
by the IP address and the subnet mask,
false otherwise.

isPlainHostName(host)                  Returns true if there are no dots in the
hostname, false otherwise.

isResolvable(host)                     Internet Explorer tries to resolve the
hostname through DNS and returns true if
successful, false otherwise.

localHostOrDomainIs                    Returns true if the host matches (host,
domain) the host portion of the domain,
or if the host matches the host and
domain portions of the domain, false
otherwise. (Executed only for URLs in
the local domain.)

dnsDomainLevels(host)                  Returns the number of dots in the
hostname.

dnsResolve(host)                       Returns a string containing the IP
address of the specified host.

myIPAddress( )                         Returns a string containing the local
machine’s IP address.

shExpMatch(url, shexp)                 Returns true if the supplied URL matches
&nbsp
;                              the specified shell expression, false
otherwise.

dateRange(parmList)                    Returns true if the current date falls
within the dates specified in parmList,
false otherwise.

timeRange(parmList)                    Returns true if the current time falls
within the times specified in parmList,
false otherwise.

weekdayRange(parmList)                 Returns true if today is within the days
of the week specified in parmList, false
otherwise.

3、下面是各个函数应用的例子:
a、isPlainHostName(host),本例演示判断是否为本地主机,如http://myservername/
的方式访问,如果是直接连接,否则使用代理
function FindProxyForURL(url, host)
{
if (isPlainHostName(host))
return “DIRECT”;
else
return “PROXY proxy:80″;
}

b、dnsDomainIs(host, “”)、localHostOrDomainIs(host, “”),本例演示判断访问主机
是否属于某个域和某个域名,如果属于.company.com域的主机名,而域名不是
www.company.com和home.company.com的直接连接,否则使用代理访问。
function FindProxyForURL(url, host)
{
if ((isPlainHostName(host) ||
dnsDomainIs(host, “.company.com”)) &&
!localHostOrDomainIs(host, “www.company.com”) &&
!localHostOrDomainIs(host, “home.company.com”))

return “DIRECT”;
else
return “PROXY proxy:80″;
}

c、isResolvable(host),本例演示主机名能否被dns服务器解析,如果能直接访问,否
则就通过代理访问。
function FindProxyForURL(url, host)
{
if (isResolvable(host))
return “DIRECT”;
else
return “PROXY proxy:80″;
}

d、isInNet(host, “”, “”),本例演示访问IP是否在某个子网内,如果是就直接访问,
否则就通过代理,例子演示访问清华IP段的主页不用代理。
function FindProxyForURL(url, host)
{
if (isInNet(host, “166.111.0.0″, “255.255.0.0″))
return “DIRECT”;
else
return “PROXY proxy:80″;
}

e、shExpMatch(host, “”),本例演示根据主机域名来改变连接类型,本地主机、*.edu、
*.com分别用不同的连接方式。
function FindProxyForURL(url, host)
{
if (isPlainHostName(host))
return “DIRECT”;
else if (shExpMatch(host, “*.com”))
return “PROXY comproxy:80″;
else if (shExpMatch(host, “*.edu”))
return “PROXY eduproxy:80″;
else
return “PROXY proxy:80″;
}

f、url.substring(),本例演示根据不同的协议来选择不同的代理,http、https、ftp、
gopher分别使用不同的代理。
function FindProxyForURL(url, host)
{
if (url.substring(0, 5) == “http:”) {
return “PROXY proxy:80″;
}
else if (url.substring(0, 4) == “ftp:”) {
return “PROXY fproxy:80″;
}
else if (url.substring(0, 7) == “gopher:”) {
return “PROXY gproxy”;
}
else if (url.substring(0, 6) == “https:”) {
return “PROXY secproxy:8080″;
}
else {
return “DIRECT”;
}
}

g、dnsResolve(host),本例演示判断访问主机是否某个IP,如果是就使用代理,否则直
接连接。
unction FindProxyForURL(url, host)
{
if (dnsResolve(host) == “166.111.8.237″) {
return “PROXY secproxy:8080″;
}
else {
return “PROXY proxy:80″;
}
}

h、myIpAddress(),本例演示判断本地IP是否某个IP,如果是就使用代理,否则直接使
用连接。
function FindProxyForURL(url, host)
{
if (myIpAddress() == “166.111.8.238″) {
return “PROXY proxy:80″;
}
else {
&nb
sp; return “DIRECT”;
}
}

i、dnsDomainLevels(host),本例演示访问主机的域名级数是几级,就是域名有几个点
如果域名中有点,就通过代理访问,否则直接连接。
function FindProxyForURL(url, host)
{
if (dnsDomainLevels(host) > 0) { // if number of dots in host > 0
return “PROXY proxy:80″;
}
return “DIRECT”;
}

j、weekdayRange(),本例演示当前日期的范围来改变使用代理,如果是GMT时间周三
到周六,使用代理连接,否则直接连接。
function FindProxyForURL(url, host)
{
if(weekdayRange(“WED”, “SAT”, “GMT”))
return “PROXY proxy:80″;
else
return “DIRECT”;
}

k、最后一个例子是演示随机使用代理,这样可以好好利用代理服务器。
function FindProxyForURL(url,host)
{
return randomProxy();
}

function randomProxy()
{
switch( Math.floor( Math.random() * 5 ) )
{
case 0:
return “PROXY proxy1:80″;
break;
case 1:
return “PROXY proxy2:80″;
break;
case 2:
return “PROXY proxy3:80″;
break;
case 3:
return “PROXY proxy4:80″;
break;
case 4:
return “PROXY proxy5:80″;
break;
}
}

利用上面的函数和例子说明,大家就可以写出比较复杂有效的自动代理脚本。
veslin@smth,enjoy it :)

再附一个其他人的例子
文件名:proxy.pac
===============
function FindProxyForURL(url, host)
{
var proxy_no = “DIRECT”;
var i=0;
var proxys=Array();
var sites=Array();

//
proxys=”";
proxys=proxys+”PROXY IP地址:端口; “;
//
i=0;
sites[i++]=”.yahoo.com”;
sites[i++]=”.php.net”;
sites[i++]=”.sun.com”;
//
for (var i = 0; i < sites.length; i++) {
if (dnsDomainIs(host, sites[i]))
{
return(proxys);
}
}
return(proxy_no);
}

自动代理配置URL:
file:///home/(用户名)/proxy.pac

PlacesCleaner:让FireFox身轻如燕的扩展

2 条评论 2009年9月12日

虽然很喜欢FireFox,但却实在爱不了它的慢,最近有愈演愈烈之势:启动FireFox得一分钟左右,关闭也得一分钟左右,就算在地址栏里想输个字母,还得卡上四五秒,硬盘狂转半天才能继续输入……

后来听说是FF保存了过多的历史记录造成的,想想也是——特别是在地址栏里输地址时巨慢,保证是这一问题造成的。

最简单的办法当然是到“工具-选项-隐私”里把保存的历史记录设为0天或合适的天数,我设的是10天,但places.sqlite这个文件依然有89M之巨……

后来找到个sqlite数据库(FireFox里多是用这个格式的数据库)管理工具扩展:SQLite Manager,装上后竟然不让我的places.sqlite库结构 :Q

再搜,又找到另外一个扩展:PlacesCleaner,看原理虽然不如SQLite Manager灵活,但总是试一下吧,结果一试之下,用默认参数压缩完我的89M的places.sqlite竟然变成了4M,赶紧关FF,一秒内搞定!再开FF,用了也就四五秒!爽!

用PlacesCleaner的好处在于它可以把浏览次数低于N(默认为2)次的URL清理掉,而不象设置历史记录保存天数那样一刀切。

(设定为手动的话需要点一下FF右下角的小扫把)

又学了一招快速启动的办法

没有评论 2009年9月10日

今天一个网络工程师到我们这儿来调试网络时发现他从来不带鼠标,笔记本的触摸板让它用得那叫一个光滑呀,比他的屏幕都要亮,估计蚊子落上去都要摔跤~~

发现启动软件、打开文档时全都是用Win-R来搞定,这倒不算什么新奇的,有人写过详尽的Win-R使用说明,只不过他有自己“发明”的用法:在每个中文文件夹前都加一个字母,譬如“E:\资料”这个文件夹他存的名字是“E:\z资料”,这样他只需要输入“E:\z”就可以打开这个文件夹了,虽然比起那些高级Win-R用法甚至是各种专用快速启动工具来说差很多,但这个办法却是很聪明的,不用过多的设置,只是在命名文件夹时多加一个字母而已~

顺便说一下我的快速启动,我的开始菜单可以说是超干净的:

我的开始菜单

基本上只有“我的电脑”(常用“右键-管理”的功能)、运行、关机这三个常用图标,程序菜单也是相当精减的——基本上除了误点击不会打开“所有程序”子菜单。

至于程序的快速启动,我全是靠音速启动的:

我不是键盘控,平时还是离不开鼠标的,所以基本上不用那些专用的键盘快速启动工具,倒是音速启动这个软件让我越用越喜欢,我都记不清用了多少年了,只记得自第一次详细设置完后就对它爱不释手了——2M左右的内存占用,详细的分类(只要你善于分类,用它管理几百个软件、文档、文件夹都不是问题),支持为软件自定义热键(特别是用来调节音量的热键,让我把右下角状态栏中小喇叭的图标都省了),按使用频度排序等功能用起来实在太舒服了!

在IIS中启用PHP 5.3

5 条评论 2009年9月6日

刚配了一台服务器,装完IIS后下了个最新版的PHP,但发现PHP好象是自5.3以后不再支持IIS的ISAPI扩展了,查了一下,似乎只支持FastCGI。FastCGI对我来说还是个新玩艺儿,放狗一搜,似乎也没什么复杂的,于是下载、安装……一切顺利!

等到配置PHP时遇到麻烦了,照网上主流的说法配完后总是报如下错误:

FastCGI Error
The FastCGI Handler was unable to process the request.
——————————————————————————–

Error Details:

•Error Number: 14001 (0×800736b1).
•Error Description: 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。
HTTP Error 500 – Server Error.
Internet Information Services (IIS)

无奈之下到网上一通狂搜,把找到的办法挨个儿拿来试,结果个个不行。可怜我的新装的服务器,因为做了Raid而不能做Ghost,只好记录每一步的操作,试完不行再按笔记一步步的倒着改回去…… 苦啊~~(-_-!!!)

从下午4:30一直折腾到晚上11:30愣是没搞定,一怒之下也不管什么了,决定下载PHP的安装版(之前一直用的是免安装的ZIP压缩版,解压后手工配置),下完后SetUP,选择了几个简单选项后重启还是报错,说时区设置不正确,这个倒是好说,在php.ini中设置“date.timezone = Asia/Shanghai”后刷新,搞定~~

郁闷,学教训了,以后不要动不动就要ZIP版全手工配置,其实拿安装版来配的话,几分钟就轻松搞定的……

FastCGI官方(MS)下载
PHP 官方下载