October 2007

喜欢的东西

铁三角 A900 监听耳机。 型号类别 密闭动圈型 单元直径 53 mm 驱动单元 钕磁铁 耳机壳 高强度铝 频率响应 5 – 40,000Hz 最大功率 2,000mW(JEITA) 输出声压 101 dB/mW 阻抗 40 ohms 重量 350 g 导线 裹布/ Hi-OFC 3.0m(单侧导线) 插头 标准/迷你兼容镀金立体声 价格1500RMB。 ============================== PIMP JLR7GR\ JLR7BL 新款LED 腕表 价格1700RMB。

学校生活

今天借来的2本摄影。图书馆不限定结束次数。 近期学习摄影及后期处理。 前2个礼拜买来的装CD箱子。也可以和首饰一起装。 礼拜4去一个下沙的破地方烧烤。图为玉米。 开学不久数学课上随便排的一张。

CFosSpeed 网络流量工具

CFosSpeed 网络流量工具

Frequently asked questions (FAQ) What is the difference between cFosSpeed and cFos? Is there any 64bit (x64) version of cFos or cFosSpeed? Traffic Shaping What is Traffic Shaping? How can I test the effect of Traffic Shaping? How can I determine the benefits of cFos Traffic Shaping myself? How do...

最难汉字

最难汉字

      “是不是‘壶’的异体字?”蒋先生拿着最左的字条时猜说。而他猜最右的字条时即说:“是不是跟招财进宝有关系?”(图1,图片来源:香港明报)   (图2,图片来源:香港明报)     身为中国人,就应该懂中文字,你又认得几多个?据香港明报报道,有网民在网上搞“最难汉字”评选活动,选出21个一般人不认识的生字候选,个个令人摸不着头脑。     发起评选的英文网站“Hardest Chinese Ever”选了21个字供网友投票,其中解“驱魔”的字,暂时得票最多。     在众多生字中,有一字(图1中第3个字) 被使用至今,是陕西一种特色面食,普通话读“biang”第二声,关于其来历则有多种民间流传版本,其中之一是秦始皇有一日吃厌了山珍海味,太监到街上买了这碗平民小吃,反令他胃口大开,他觉得既然已成为“御用”食物,再也不能令平民如此轻易吃到,就御赐一个字形复杂的名,有意令平民难以写出此字。关于此字的写法,亦有口诀可记:“一点一横长,言字当中梁,两边水袅袅,中间一匹马在扛;东边长,西边长,心作底,月搭墙,关公出来踢一脚,婆婆出来戳一刀,一个小孩飞上墙。”     面对21个“最难汉字”,就连汉字学专家、香港中文大学中国语言及文学系语文导师张锦少亦只懂表中第14个字,其它均需查字典。他说,众字中不少是生僻字、古字,即是日常生活不常用的汉字,“这些字不用太考究,因为认识也没有用,日常根本不会用”。     张锦少说,至今无正式统计共有多少汉字,国内较通行的大型字典《汉语大字典》收录5.4万字,《中华字海》更达8.5万个。根据中大人类认知跨科比较研究室的“现代汉语常用字频率统计”,80至90年代两岸三地常用汉字约有4600至4900个。香港前教育署编制的《常用字字形表》则收字共4759个,综观中小学生所识的汉字约应有3000至4500个。     香港浸会大学中文系系主任周国正也表示,虽然世上有6万至8万汉字,但多为不常用的,“好多字,除了在字典之外,你一生都不会遇到”。他说,一般人至中学毕业时虽仅认识3000多个汉字,但已够看懂一般书刊98%内容。     周国正说,中文需要不同词语组合表达,故学懂字,不代表中文运用能力高,懂得造词才是重要。他说:“例如‘素服’一词,并非指朴实的服装,而是指孝服。我们不可以只凭字,就解释其意思。”又说,有些字是以前王帝的名字,其臣民不能用,有些艰深的字则来自乐谱,在岁月流逝下,均已流失于日常生活。(林迎、曾媚、彭碧珊)

服务器又被机房的人弄坏

服务器又被机房的人弄坏

  3天无法访问。因为机房的几个小P孩,乱扔服务器,还说启动不起来了。本人一到现场,服务器自己就好了。   换了CPU风扇。但是出风口2个小风扇已经变形。那机房简直,冷气少的可怜,全是热气。   破机房。

计划杭电寝室应急电力设备

计划杭电寝室应急电力设备

  听说杭州电子科技大学到了冬天寝室11点之后就断电。有时候需要作一些事情,没有电力是不行的。又因为,断电情况下网络及网线的电源是电信部门负责的,不会被切断,所以笔记本电脑仍然可以使用网络。   因此,计划应急电力设备。   使用UPS紧急供电系统可以解决,但是成本太高。没有找到能持续2小时或者以上的家庭专用的UPS供电系统。商业的价格上4位数。   解决方案:   如果只使用笔记本,可以用电瓶。神舟L720T本人使用笔记本是19V输出,4.74A的电源。理论上12V电瓶可以为其提供电力并正常启动。比较好的电瓶充电器价格在160RMB,12V7AH电瓶为55-120RMB。合计215-280RMB。  使用电瓶时去掉笔记本充电反馈电路,关闭USB及光驱电源,理论上4小时没有问题,如果加上本身电池1个多小时。5个小时可以持续使用。   如果使用台灯,PC等220V用电器,则需要逆变器。  12V7AH的电瓶,逆变为220V300W,300W消耗的话,理论上可以有15分钟以上的持续时间。  用电器仅为路由器,台灯,笔记本电源,有25分钟以上的持续时间。   以上纯属理论及计划。收集足够资料后开始实施。

将普通的MFC程序作为系统服务程序

将普通的MFC程序作为系统服务程序

环境:Windows 2003,VC 6.0 摘要:从建立一个COM服务程序入手,然后将一个MFC项目改造成服务程序,最后让这一程序在启动时可以显示图形界面。 关键字:windows服务程序 COM服务程序 开机前启动 NT服务 与桌面交互 一、什么是windows的服务程序? 可以使用下面的几种方法看到它。 打开控制面板,然后是管理工具,里面有一个“服务”,双击后打开; 或者是通过输入命令的方式,打开开始菜单,点击运行,输入mmc services.msc(mmc可省略),也可打开;   我们会在打开的页面中看到一个大的列表,标题栏上包含有名称、描述、状态、启动类型、登录身份等项。其中在状态一栏中显示为“已启动”的是系统中已经启动了的服务。我们先看一下服务的属性。举个例子,找到Print Spooler这一名称,然后用右键在上面点击,选择“属性”,可以看到它所执行的命令行是C:\WINDOWS\system32\spoolsv.exe,按下停止后,任务管理器中spoolsv.exe进程退出。我们所见到的这个列表就是服务程序的集中地,每一项就是一个服务程序。 上面这些标为自启动的服务程序随系统一起启动。它与一些修改注册表: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run  项,及类似注册表项的程序不同的是,即使用户没有登录到系统中,它们也是会运行的,或者说它们在系统登录前运行。 二、怎么建立自己的服务程序?   每一个服务程序对应注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下的一个子项。因此我们可以通过增加注册表项的方式增加服务程序。比如,我现在要增加一个test1服务程序,对应的可执行文件是c:\test1.exe。那么我要增加如下注册表项: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\]下增加子项test1; test1下增加: 字符串型:"Description"="测试服务1" 字符串型:"DisplayName"="test1-displayname" DWORD型:"ErrorControl"=dword:00000001 可扩充字符串值(即文件所在路径): "ImagePath"=hex(2):43,00,3a,00,5c,00,74,00,65,00,73,00,74,00,31,00,2e,00,65,00,\ 78,00,65,00,00,00 字符串型:"ObjectName"="LocalSystem" DWORD型,值为3表示是手动:"Start"=dword:00000003 DWORD型:"Type"=dword:00000020 test1下增加子项: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\test1\Security] 里面的键值从其他的服务程序注册表值中复制。   如果test1这一程序只是一个普通的win32程序,那么这样做了之后还是不行,服务程序有它自己的一些结构特点。那么怎么编写这些服务程序?  建立一个服务程序的最简单的方法是用VC中的ATL COM向导。主菜单中选择新建,然后选Projects中的ATL COM AppWizard,输入一个项目名,选择了所在目录后,点OK按钮,在出现的对话框中选择Service(EXE),点Finish即可。然后编译生成test1.exe。  运行test1.exe /regserver可以注册程序为服务,test1.exe /unregserver是取消注册。test1.exe运行时的参数是在:Project->Settings->Debug->Program arguments中设置。 三、怎么在建立的服务程序中加入自己的代码? 我们看一下刚才生成的test1项目的结构。   我们看到test1有一个类CServiceModule和一些Globals的内容。Globals包括一个_tWinMain函数,也就是程序的入口,其中使用了FindOneOf这一与分析命令行有关的函数,还剩下一个全局变量_Module。  _tWinMain函数中,_Module初始化并设置m_bService为TRUE,在一些分析命令行和判断是否为服务的代码之后,使用_Module.Start()进入主要的执行部分。CServiceModule::Start()中,结构体SERVICE_TABLE_ENTRY建立了服务名与相应处理函数的映射。在这里,如果m_bService为TRUE,则调用StartServiceCtrlDispatcher进入一种类似win32程序的消息处理的过程,用SERVICE_TABLE_ENTRY中的处理函数让程序执行下去。如果m_bService不为TRUE,则直接执行Run()函数。  在SERVICE_TABLE_ENTRY中,我们看到服务处理函数为_ServiceMain,继续跟踪下去,发现是ServiceMain函数。在ServiceMain中又调用RegisterServiceCtrlHandler为服务增加了一个_Handler函数。对服务程序来说,我们可以在前面打开的服务列表中对它们进行“启动”,“停止”,“暂停”,“恢复”等操作。这实际上是由_Handler来处理不同的信号。_Handler内部调用Handler,在Handler中,对传入的dwOpcode参数作出处理。比如如果是SERVICE_CONTROL_STOP,也就是我们“停止”服务时,将使用PostThreadMessage对主线程发出一个退出的信号。回到ServiceMain函数,在里面同样是在调用Run()函数。也就是说程序以服务身份和非服务身份运行时,区别在于以服务身份运行时多了一个Handler函数,处理用户对服务程序发出的一些信号。  需要注意的是,这个程序注册为服务时并不是直接写注册表,而是在Install中使用了OpenSCManager,CreateService等函数来完成的任务。显然,这比直接写注册表要好一些,因为有时候我们并不太清楚要怎么去修改注册表项的值来适应不同的服务程序配置,而这些函数有参数可以做到。 说到这里,就涉及到我们自己编写的代码了。比如现在我们已经建立了一个MFC的程序,想让它成为一个服务程序,那要怎么做呢?我现在建立一个MFC EXE的项目mfc1,基于对话框。那么把它变为一个服务程序的最简单的方法就是把CServiceModule给拿过来使用。因为我们已经看到CServiceModule类已经把安装服务,卸载服务,运行服务这些操作封装得很好。打开test1的stdafx.h文件,复制CServiceModule的声明及相关头文件和变量到mfc1的stdafx.h中。然后是把test1的test1.cpp中对CServiceModule类的实现,复制到mfc1中的mfc1.cpp中。在stdafx.h中CServiceModule类声明前加上#include <winsvc.h>,它里面是对结构体SERVICE_STATUS_HANDLE的声明。编译后出现以下类似错误: D:\vc6_test\mfc1\mfc1.cpp(52) :...

迷你代理服务器 多线程与异步版 下载

迷你代理服务器 多线程与异步版 下载

两个只有6k左右文件的代理服务器,采用命令行。 某些场合非常有用。M开头的代理为多线程,一个连接一个线程。A开头的文件为异步连接。 可以在User以及Guest权限下运行。 解压密码 www.nov30th.com 下载地址 本地下载