让运行(WIN+R)无所不能

在Windows系统中,运行(快捷键WIN+R)是很常用的功能,它能在不打开资源管理器的情况下,直接运行任意文件,若这个文件在C:\WINDOWSC:\WINDOWS\SYSTEM32目录下,更是不需要输入完整的文件路径,仅仅输入文件名即可。

例如我们最常用的命令提示符,输入cmd后回车即可。

2009-04-20_001808.jpg

既然运行这么方便,那我用它直接运行QQ可不可以呢?

当然是可以的。假设QQ程序(以QQ2008为例)安装在C:\Program Files\QQ2008\文件夹下,那么输入C:\Program Files\QQ2008\QQ.exe即可立即运行QQ。

这下或许你要问了:这么麻烦,还不如直接点快捷方式呢!是的,这样是相当的麻烦,但我现在只是告诉你,通过运行是可以运行任何文件夹下的程序。

前面我说过,如果文件在C:\WINDOWSC:\WINDOWS\SYSTEM32目录下,仅需要输入文件名即可直接运行程序,那如果我把C:\Program Files\QQ2008\也加入到这个查找列表下,是否就可以只输入QQ两个字母就可以运行QQ了呢?

正是如此!而这个路径的设置也相当的简单。使用快捷键WIN+Break打开”系统属性”对话框,选择”高级”标签页,再点击”环境变量”按钮,这时候打开了”环境变量”设置对话框,在下面的”系统变量”列表中找到”Path”一行,是不是看到了如上面所说的两个目录C:\WINDOWSC:\WINDOWS\SYSTEM32

2009-04-20_002855.jpg

双击Path或选中Path行后点击下面的”编辑”按钮后进入Path变量编辑状态,在其最后加上”C:\Program Files\QQ2008\“(注意:每个目录之间需要用半角分号[;]分隔),保存后重启计算机(注销并重新登陆系统也可生效),再在运行中输入”QQ”,是不是就能打开QQ了!

恭喜你!到这里,你已经掌握了这个小技巧的第一步:使用环境变量

QQ是能通过运行来打开了,但每加一个软件都需要改环境变量然后重启电脑么?

当然不用这么麻烦!既然你已经知道了怎么使用环境变量来快速打开文件,那么我们为什么不让所有我们想要快速运行的程序都放在某个文件夹下呢?对!使用快捷方式!

跟我来,一步步打造万能的运行!

首先,我们要新建一个放置快捷方式的文件夹D:\QuickRun,如上面的操作方法,将D:\QuickRun加入到Path变量中。重启电脑。再将QQ的快捷方式放入D:\QuickRun,这时候再在运行中输入QQ是不是也能打开?举一反三,其他程序也可以这么做。

或许到这里你又会有疑问:为什么要用运行来打开QQ呢?直接点快捷方式不是更方便?

是的,在这里只是以QQ为例介绍如何让运行支持更多程序。

在日常使用中,可以设定一些文件夹的快捷方式:例如建立一个名为works的快捷方式,运行works,直接打开工作文档目录,这样是不是很高效?

小技巧开篇语

从94年开始接触计算机起到现在,也已经有十多个年头了,各类计算机、数码、软硬件捣腾得也不少。在捣腾的过程中,也摸索出了一条属于自己的”道”,如何让科技更加方便地为己所用的”道”。

但是,我的”道”是否是适合你的”道”?我不知道,但希望我的”道”,能为大家更快的找到属于自己的”道”,提供一条捷径。

今后在”小技巧”这个栏目中,我会不定期的介绍一些我在IT产品(包括但不限于计算机,数码,软件,硬件等)方面的经验和技巧,与大家分享。

小i入手

PHP autoload与include性能比较

自PHP5后,官方大大丰富了对面向对象的支持,其中有个重要改变:引入了__autoload()函数,从此不再需要在php脚本的header写一堆的require或include了,用PHP函数手册中的话说:”它会在试图使用尚未被定义的类时自动调用”。

这一机制大大减轻了开发人员的负担,只要在架构初期考虑好了目录结构和命名规范,在开发过程中,需要再为代码中要用到的类分别去require相应的文件,减少了大量代码。

但这样一来,也容易出现运行一个程序,某个类文件被include多次,例如有以下四个脚本:

1
2
3
#file:include1.php 
include 'include2.php'; 
//@todo something
1
2
#file:include2.php 
//@todo something
1
2
3
#file:script1.php 
include 'include2.php'; 
//@todo something
1
2
3
4
#file:script2.php 
include 'include1.php'; 
include 'script1.php' 
//@todo something

当执行script1.php时, include ‘include2.php’; 这行代码被执行了一次。而执行script2.php时,这行代码被执行了两次。

这里只是一个简单的例子,在实际的项目中,include2.php被include的次数可能更多。这样反复的include,是否会影响性能呢?为此我写了个脚本来测试。

1
2
3
4
5
6
#file:SimpleClass.php
class SimpleClass {
        public function __construct() {
                echo get_time() . "\r\n";
        }
}
1
2
3
4
5
#file:php_include.php
for($i  = 0;$i < $loop;$i++) {
        include_once "SimpleClass.php";
        new SimpleClass();
}

当$loop值为1时,脚本耗时约0.00018906593322754秒,当$loop为1000时,脚本耗时约0.076701879501343秒。

如果我们用autoload实现呢?

1
2
3
4
5
6
7
8
#file:php_autoload.php
function __autoload($class_name) {
        include_once $class_name . '.php';
}
 
for($i  = 0;$i < $loop;$i++) {
        new SimpleClass();
}

在这段代码中,我定义了__autoload函数,几乎一样的脚本,当$loop为1时,耗时0.0002131462097168秒,而当$loop为1000时,耗时仅为前面代码的1/7,0.012391805648804秒。

但请注意看SimpleClass的代码,其中输出了一行字符串,如果去掉这行输出后再比较,会是什么样的结果呢?

在$loop同为1000的情况下,前者耗时0.057836055755615秒,而使用了autoload后,仅仅0.00199294090271秒!效率相差近30倍!

从上面的测试可以看出,当文件仅仅被include一次,autoload会消耗稍微多一点的时间,但如果在文件被反复include的情况下,使用autoload则能大大提高系统性能。

至于是否要使用autoload来解放程序员,这就仁者见仁,智者见智了。在我看来,条件允许的前提下,牺牲这一点性能(某些情况下,可能是提升性能),换来更为便捷的开发,是值得的。

附:本文测试脚本下载

春运有感

《有钱没钱,回家过年》,记得去年有这么一部以春运回家为背景的电影,深刻反映了春运期间一票难求的情况,而今年由于受金融危机的影响,这个问题显得更加突出和严重。

今年是毕业后在外工作的第一个年头,往年这个时候都已经在长沙的家中和同学朋友们闹了,但工作了就不再有那么长的假期,只有短短的7天日子可以用来挥霍。

以往都是学校给统一订票,虽然基本都是硬座,但好歹是不愁回家的票。而走出校园后就不再这么舒服了,凡事都得靠自己。每天早上上班的路上,经过一个个订票点,总能看到长达数十米的购票大队;临近年关的这今天,公司里讨论最多的话题也是火车票,一边骂票贩子缺德,一边在网站上查转让信息打电话咨询,往往在打了多个电话无果后,却又希望能找到一个真正的票贩子。

公司是做分类信息网站,自然火车票也是近期的一大热门板块,在春运期间,为网站带来了不少流量。但今天中午后,却收到了有关部门(话说这是中国最神秘,最NB的部门了)的通知,停止火车票转让信息的发布和展示,据说是为了打击票贩子。

囧,看看日历,今天已经19号了,距离大年三十也只有5天时间而已,这时候打击,受影响的其实仅仅是一些小票贩子,都不知道已经是第几手的票贩子了,对于黄牛票的源头,可以说是无关痛痒了,该卖的票都已经卖的差不多了。而更受影响的,则是一些确实手中有多余票想转让和一些求购者,这下可好,本来还有希望找个票贩子,现在连票贩子都找不着了,存心不让人回家了……

天气预报V2隆重上线测试

相关链接:老版系统 新版系统

当初做RSS天气预报纯属兴趣,完全没有想到提供服务后如此受欢迎,在2008一年时间内,访问量超过千万,平均每日4万多次。这套系统完全没有做过任何宣传,仅仅靠网友们的口碑相传就能达到这么多的访问量,远远超过我的意料之外。另外据我简单的来源统计,至少有3-4款手机客户端软件使用了raychou的RSS作为数据源。

raychou.com里和天气预报程序有关的文章:

网络/网友相关介绍

程序发布2年多,期间重写过一次,再应网友要求增加了ICAL输出,但当时由于GG日历对于外部ICAL中文支持的问题,一直无法在GG日历中完美显示中文,很长一段时间内都是以拼音代替中文输出,以满足网友们利用Google日历的免费短信提醒功能接受天气预报。这一问题在新版系统中也终于得到解决。

随着访问量的上升,以及众多网友在Blog上留言对现有系统的各种不满,利用周末的时间重写了全部代码,并于今天正式对外测试(新版系统网址:http://weather.raychou.com)。新的架构实现了多数据源采集,多格式输出,能够非常方便的进行输出源的扩展,目前已完成RSS和ICAL格式的输出,计划中还有HTML,WAP,Mobile,iPhone等输出格式以满足各类网友的需求。

希望使用老版数据源的用户尽快转到新版,针对v1,v2做了如下改进:

  • 进入系统会自动根据用户ip来源显示当地天气情况
  • 可使用汉字或拼音快速搜索指定地区
  • RSS输出兼容Google阅读器抓虾等主流RSS阅读器
  • ICAL输出完美兼容Google日历

计划中要推出的功能

  • widget,用户可在论坛签名档,blog侧边栏,网站首页等等区域调用代码,实现为访客显示当地天气预报
  • 丰富的输出格式

更多功能期待您的建议,有任何想法欢迎联系我,联系方式请看这里

PS:一如既往,这套系统任然会提供免费下载,我将会第一时间在Blog公布。

我的2008

2008,对于中国人来说是不平凡、不平静的一年,太多的事情值得我们去记忆。

2008,对于我来说也是不同寻常的一年,在这一年,我毕业了,工作了,重返北京了。

2月 三宝殿正式上线,怀胎数月,终于分娩。

5月 俺自己电子杂志网迫于成本压力,上线一年半后,正式关站。

6月 领到了奋斗了5年的毕业证,意料之中的获得了优秀论文和毕设,意外之外的没有任何奖金。

7月 重新回到北京,经过了短暂的内蒙之旅后,开始寻找工作机会。

8月 开始了第一份工作,就职于某分类信息网站。

9月 观看了几场奥运比赛。

10月 工作后的第一次长假,回了一趟家,感觉很不一样了,似乎再次回到这个生活了20多年的城市,我却感觉是个客人。

12月 开始迎接2009

入手铁三角EQ700

飞利浦SHS4700NOKIA BH-320和记Arrow Lite之后,今天又入手了铁三角EQ700

入手EQ700的理由很简单,SHS4700不能收线,每次使用前都要花好几分钟来缕线,尤其在外面使用时很不方便。

一天在网上闲逛的时候意外发现原来厂家已经考虑到这种情况,市面上已经有可以自动收线的耳机,当耳机不使用时,可以自动吧线收入耳机中,需要使用时才抽出来,很是方便。

于是在网上简单搜了搜”收线耳挂耳机“(为什么选择耳挂式?因为觉得耳挂的小巧,比起头戴式耳机,更加方便携带,佩戴也较为舒适),经过一番比较,最后看中了EQ700。

最后在淘宝以188的价格成交(日行盒装),不得不说下EQ700设计上的一个小问题,左右耳机中的收线开关很灵活,按下立刻自动收线,但耳机插孔的收线开关却显得非常生涩,按了半天也收不进去,于是以为卖家发的货有问题,于是联系了卖家上门换货,结果才知道,需要吧耳机插口插到耳机上,再按收线开关就能自动收线了……

客串了一把职场侩子手

周末帮朋友公司面试了几个PHPer,临时赶制了一份笔试题,头一次做面试官。

自己觉得比较基础的东西,却问倒了一多半的人。

挺爽的,下回还要做。