一君 的个人资料RNX Studio™照片日志列表更多 ![]() | 帮助 |
|
2009/6/27 最喜欢的季节,《菊次郎的夏天》又到了七月,暑假的开始~ 今年是第3个没有假期的夏天~ 是的,我工作快3年了。 要说最爱的季节,就要算是夏季了,夏天的声音~夏天的味道~夏天的伙伴~ 要说开始喜欢上夏天,是因为一次小时候的寄宿制度假,小学时我们家楼下有位外地搬来借住的邻居,和我父母的关系很和谐,家里的孩子也和我一般大,我还记得他的名字,叫马飞浩,他父亲有一年夏天把我带去了他们在外地农村的家,一整个月,都在和村里的孩子们疯玩,第一次看母猪生仔,第一次用井水洗澡,第一次帮助农忙,第一次吃用井水冻凉的西瓜,第一次晒谷子,第一次在小河里游泳,第一次爬树,第一次在田野里便便~呃~ 然后,每年的夏天,都很期待,都很精彩,要说近两年,我觉得最难忘的就是去年,虽然已经工作,但自己给自己放了个10天的短假,和hin一起度过了那个开心的夏天。 夏天又来了,今年,你会和我一起度过吗? 今晚,看了一直想看但没时间看的《菊次郎的夏天》,穿插全剧的主题曲,非常应景,特别导入RNXStudio,那种悠闲轻快的感觉,真好,仿佛又回到,那年的夏天。 《菊次郎的夏天》剧情介绍九岁的小男孩正男,从小就失去了父亲,母亲也远至丰桥工作,正男平日与年迈的祖母相依为命,虽然也曾有感到寂寞的时候,但懂事的正男都尽量坚强忍受。可是当暑假到来,正男发现一个个好友都兴高采烈的与家人到各地去度假,他平日努力隐藏的孤独终于崩溃决堤,小小的正男趁祖母出外工作时,偷偷打破自己的存钱罐,拿出母亲从外地寄回的信,背上自己的小背包,准备一个人去丰桥看望自己的母亲。 于是,正男背上行囊出发去寻找住在丰桥的母亲。邻居的阿姨发现后,叫丈夫菊次郎(北野武饰)与之同行。生性游手好闲的菊次郎拉着正男去玩轮转赌,输掉了身上的钱,两人只好搭顺风车前往目的地。于是,就发生了一系列可笑又让人落泪的事情。 一路上惹了不少麻烦后,菊次郎终于带着正男到了他母亲的家。而看到已经建立起新家庭的母亲十分幸福的样子,正男变得十分沮丧。菊次郎努力安慰他,和他一起踏上了归途。途中两人一起野营,过得十分愉快。而菊次郎也想起了住在附近敬老院的自己母亲,默默地前去探望。夏天就要结束,两人终于回到了浅草,分别之际,菊次郎与正男约定,下次再去探望母亲。 2009/6/23 Windows Mobile安装包制作首先新建一个Win32项目,想把一个EXE文件打包,DLL文件、或者空文件(比如仅仅想修改目标设备的注册表)打包过程都是一样的:现在在原来的项目上添加一个智能设备CAB项目: 文件系统中选择需要将你的EXE或者DLL文件放到目标设备的哪个文件夹上。如果需要在目标设备“Program Files”文件夹上再新建个文件夹,则在“Program Files”上右击添加文件夹: 这里我们想把项目生成的EXE程序放到Windows文件夹上,则删除“Program Files文件夹”,新建个“Windows文件夹”,并在上面添加项目输出: 我们现在不光要把EXE文件添加到目标设备,还要修改目标设备的注册表,现在先切换到注册表试图: 可以新建,可以导入(导入现有的REG文件,一般是从模拟器中的注册表保存得到的): 我常习惯直接修改CAB的项目配置文件,此处注意这个文件只支持ASCII码,当里面有汉字时(当你的机器名是中文时,或者前面的添加注册表键值时可能造成),编译时会出错,提示Unicode转换ASCII码错误: 这里就是从注册表试图中添加的配置信息: OK,下面点击生成吧。在开发中,如果我们想看DLL运行时的效果时,常常需要这样制作CAB包。 最后你的Cab包可能需要代码签名,否则一些像服务这样的DLL文件如果本身也没有签名的话将不能正常运行。 下面介绍的是如何在手机“程序”一栏中添加快捷方式: 将\windows\start menu\programs下的一个快捷方式拷贝到PC上修改成:21#MyApplication.exe,修改完毕后,保存,并把此快捷方式改名,拷贝到手机的\windows\start menu(“开始”菜单)\programs(程序)目录下。将MyApplication.exe拷贝到Windows目录下,此时你就会发现Program下有你的应用程序了。这些操作可以使用上面介绍的CAB包实现。 踏踏实实做人,踏踏实实做技术。 2009/6/15 Bluetooth Service UUID List(转载)今天找了一下 關於 Bluetooth 的標準 Service/Profile 的 UUID ,但是看了一下 Specification Doucments 都只有 16bits 長,這是所謂的UUID16格式後來才了解,原來Bluetooth 將UUID 的部份固定,只取16bits 作為各種 Service 的區分,這樣可以節省分析 SDP Record and 與程式空間,避免增加 Bluetooth Device 的成本。 底下的值可以從 windows XP or Server 2003 SDK 的 bt_sdp.h or BlueZ 的 sdp.h(UUID16) 中找到定義,可以觀察出 下列的固定序列除了替換 XXXX部份 '{0000xxxx-0000-1000-8000-00805F9B34FB}',而XXXX 部份就是 所謂的 UUID16 定義。 Protocols UUID http://www.bluetooth.org/assigned-numbers/sdp.htmBASE UUID 00000000-0000-1000-8000-00805F9B34FB SDP_PROTOCOL_UUID = '{00000001-0000-1000-8000-00805F9B34FB}'; UDP_PROTOCOL_UUID = '{00000002-0000-1000-8000-00805F9B34FB}'; RFCOMM_PROTOCOL_UUID = '{00000003-0000-1000-8000-00805F9B34FB}'; TCP_PROTOCOL_UUID = '{00000004-0000-1000-8000-00805F9B34FB}'; TCSBIN_PROTOCOL_UUID = '{00000005-0000-1000-8000-00805F9B34FB}'; TCSAT_PROTOCOL_UUID = '{00000006-0000-1000-8000-00805F9B34FB}'; OBEX_PROTOCOL_UUID = '{00000008-0000-1000-8000-00805F9B34FB}'; IP_PROTOCOL_UUID = '{00000009-0000-1000-8000-00805F9B34FB}'; FTP_PROTOCOL_UUID = '{0000000A-0000-1000-8000-00805F9B34FB}'; HTTP_PROTOCOL_UUID = '{0000000C-0000-1000-8000-00805F9B34FB}'; WSP_PROTOCOL_UUID = '{0000000E-0000-1000-8000-00805F9B34FB}'; BNEP_PROTOCOL_UUID = '{0000000F-0000-1000-8000-00805F9B34FB}'; UPNP_PROTOCOL_UUID = '{00000010-0000-1000-8000-00805F9B34FB}'; HID_PROTOCOL_UUID = '{00000011-0000-1000-8000-00805F9B34FB}'; HCCC_PROTOCOL_UUID = '{00000012-0000-1000-8000-00805F9B34FB}'; HCDC_PROTOCOL_UUID = '{00000014-0000-1000-8000-00805F9B34FB}'; HN_PROTOCOL_UUID = '{00000016-0000-1000-8000-00805F9B34FB}'; AVCTP_PROTOCOL_UUID = '{00000017-0000-1000-8000-00805F9B34FB}'; AVDTP_PROTOCOL_UUID = '{00000019-0000-1000-8000-00805F9B34FB}'; CMPT_PROTOCOL_UUID = '{0000001B-0000-1000-8000-00805F9B34FB}'; UDI_C_PLANE_PROTOCOL_UUID = '{0000001D-0000-1000-8000-00805F9B34FB}'; L2CAP_PROTOCOL_UUID = '{00000100-0000-1000-8000-00805F9B34FB}'; Ref. Service class IDs http://www.bluetooth.org/assigned-numbers/sdp.htm ServiceDiscoveryServerServiceClassID_UUID = '{00001000-0000-1000-8000-00805F9B34FB}'; BrowseGroupDescriptorServiceClassID_UUID = '{00001001-0000-1000-8000-00805F9B34FB}'; PublicBrowseGroupServiceClass_UUID = '{00001002-0000-1000-8000-00805F9B34FB}'; SerialPortServiceClass_UUID = '{00001101-0000-1000-8000-00805F9B34FB}'; LANAccessUsingPPPServiceClass_UUID = '{00001102-0000-1000-8000-00805F9B34FB}'; DialupNetworkingServiceClass_UUID = '{00001103-0000-1000-8000-00805F9B34FB}'; IrMCSyncServiceClass_UUID = '{00001104-0000-1000-8000-00805F9B34FB}'; OBEXObjectPushServiceClass_UUID = '{00001105-0000-1000-8000-00805F9B34FB}'; OBEXFileTransferServiceClass_UUID = '{00001106-0000-1000-8000-00805F9B34FB}'; IrMCSyncCommandServiceClass_UUID = '{00001107-0000-1000-8000-00805F9B34FB}'; HeadsetServiceClass_UUID = '{00001108-0000-1000-8000-00805F9B34FB}'; CordlessTelephonyServiceClass_UUID = '{00001109-0000-1000-8000-00805F9B34FB}'; AudioSourceServiceClass_UUID = '{0000110A-0000-1000-8000-00805F9B34FB}'; AudioSinkServiceClass_UUID = '{0000110B-0000-1000-8000-00805F9B34FB}'; AVRemoteControlTargetServiceClass_UUID = '{0000110C-0000-1000-8000-00805F9B34FB}'; AdvancedAudioDistributionServiceClass_UUID = '{0000110D-0000-1000-8000-00805F9B34FB}'; AVRemoteControlServiceClass_UUID = '{0000110E-0000-1000-8000-00805F9B34FB}'; VideoConferencingServiceClass_UUID = '{0000110F-0000-1000-8000-00805F9B34FB}'; IntercomServiceClass_UUID = '{00001110-0000-1000-8000-00805F9B34FB}'; FaxServiceClass_UUID = '{00001111-0000-1000-8000-00805F9B34FB}'; HeadsetAudioGatewayServiceClass_UUID = '{00001112-0000-1000-8000-00805F9B34FB}'; WAPServiceClass_UUID = '{00001113-0000-1000-8000-00805F9B34FB}'; WAPClientServiceClass_UUID = '{00001114-0000-1000-8000-00805F9B34FB}'; PANUServiceClass_UUID = '{00001115-0000-1000-8000-00805F9B34FB}'; NAPServiceClass_UUID = '{00001116-0000-1000-8000-00805F9B34FB}'; GNServiceClass_UUID = '{00001117-0000-1000-8000-00805F9B34FB}'; DirectPrintingServiceClass_UUID = '{00001118-0000-1000-8000-00805F9B34FB}'; ReferencePrintingServiceClass_UUID = '{00001119-0000-1000-8000-00805F9B34FB}'; ImagingServiceClass_UUID = '{0000111A-0000-1000-8000-00805F9B34FB}'; ImagingResponderServiceClass_UUID = '{0000111B-0000-1000-8000-00805F9B34FB}'; ImagingAutomaticArchiveServiceClass_UUID = '{0000111C-0000-1000-8000-00805F9B34FB}'; ImagingReferenceObjectsServiceClass_UUID = '{0000111D-0000-1000-8000-00805F9B34FB}'; HandsfreeServiceClass_UUID = '{0000111E-0000-1000-8000-00805F9B34FB}'; HandsfreeAudioGatewayServiceClass_UUID = '{0000111F-0000-1000-8000-00805F9B34FB}'; DirectPrintingReferenceObjectsServiceClass_UUID = '{00001120-0000-1000-8000-00805F9B34FB}'; ReflectedUIServiceClass_UUID = '{00001121-0000-1000-8000-00805F9B34FB}'; BasicPringingServiceClass_UUID = '{00001122-0000-1000-8000-00805F9B34FB}'; PrintingStatusServiceClass_UUID = '{00001123-0000-1000-8000-00805F9B34FB}'; HumanInterfaceDeviceServiceClass_UUID = '{00001124-0000-1000-8000-00805F9B34FB}'; HardcopyCableReplacementServiceClass_UUID = '{00001125-0000-1000-8000-00805F9B34FB}'; HCRPrintServiceClass_UUID = '{00001126-0000-1000-8000-00805F9B34FB}'; HCRScanServiceClass_UUID = '{00001127-0000-1000-8000-00805F9B34FB}'; CommonISDNAccessServiceClass_UUID = '{00001128-0000-1000-8000-00805F9B34FB}'; VideoConferencingGWServiceClass_UUID = '{00001129-0000-1000-8000-00805F9B34FB}'; UDIMTServiceClass_UUID = '{0000112A-0000-1000-8000-00805F9B34FB}'; UDITAServiceClass_UUID = '{0000112B-0000-1000-8000-00805F9B34FB}'; AudioVideoServiceClass_UUID = '{0000112C-0000-1000-8000-00805F9B34FB}'; PnPInformationServiceClass_UUID = '{00001200-0000-1000-8000-00805F9B34FB}'; GenericNetworkingServiceClass_UUID = '{00001201-0000-1000-8000-00805F9B34FB}'; GenericFileTransferServiceClass_UUID = '{00001202-0000-1000-8000-00805F9B34FB}'; GenericAudioServiceClass_UUID = '{00001203-0000-1000-8000-00805F9B34FB}'; GenericAudioServiceClass_UUID = '{00001203-0000-1000-8000-00805F9B34FB}'; GenericTelephonyServiceClass_UUID = '{00001204-0000-1000-8000-00805F9B34FB}'; UPnPServiceClass_UUID = '{00001205-0000-1000-8000-00805F9B34FB}'; UPnPIpServiceClass_UUID = '{00001206-0000-1000-8000-00805F9B34FB}'; ESdpUPnPIpPanServiceClass_UUID = '{00001300-0000-1000-8000-00805F9B34FB}'; ESdpUPnPIpLapServiceClass_UUID = '{00001301-0000-1000-8000-00805F9B34FB}'; EdpUPnpIpL2CAPServiceClass_UUID = '{00001302-0000-1000-8000-00805F9B34FB}'; Technorati tags: Bluetooth, SDP, UUID, UUID16, Protocol 久别重逢的少年伙伴其实今年年初的时候,就在开心网上找到了菊香,我的一个初中同学,但是因为工作太忙,而一直没说过什么话。今天下午老板领导们都在橱窗里,总算闲了些,和菊香聊了会儿。我说,菊香,“我在初中阶段最怀念的就只有两个人,一个成了我现在的兄弟,另一个就是你”。她说,“不会吧~” 呵呵,今天有点小发春~ 说到菊香,为什么令我那么怀念,是因为那时候的友善~ 小时候家里拆迁,搬到现在住的住宅小区,当然学校也要转,那个夏天,我正好升初一~ 那个新加入的班级,好像对新生都有一种看不起又不敢小视的态度,感觉就像有个日剧叫《女王的教室》里的那种,人人的神经都绷的很紧,都暗暗的较着劲~ 生怕我这个新来的fish要抢了他们那无聊的名次排位一般,我的第一个同桌,应该就是菊香了。 新家要装修,所以便和父母住在一个简陋的临时小区,就和那《功夫》里面的那种差不多,离学校很远(要翻过2座大桥,一条大河),放学后,谁都不熟的我,一个人走回去~ 突然有一次,在那个小区里碰见个熟人,菊香~ 之后就记得我们天天一起上学一起放学的模糊画面~jfksaljro2jok4nj21j4oiu x9fiu9-2q934nfmua8-732 过了几个月,新家装修好了,我也搬出了那个临时小区。后来,菊香也莫名其妙的消失在我每日的生活中了~ 很久很久以后,我才知道,原来,她转学了~ 现在回忆起来,好像,那个时候,也算是我朦胧的初次暗恋吧~ Big-endian & little-endian 大尾和小尾(转载)Big-endian和little-endian是描述排列存储在计算机内存里的字节序列的术语。 Big-endian是一种大值的一端(序列中更典型值)存在前面(在最小的存储地址)的顺序。Little-endian是一种小值的一端(序列中较不典型的值)存储在前的顺序。比如,在Big-endian的电脑中,需要两个字节把十六位数4F52当作4F52存在存储器中(如果4F存在存储地址1000中,比如说,52将存在1001中)。在little-endian系统里,将被存为524F(52存在存储地址1000中,比如说,4F将存在1001中)。 IBM的370主机,多数基于RISC计算机,和Motorola的微处理器使用big-endian方法。TCP/IP也使用big-endian方法(因此big-endian方法也叫做网络编码)。对于人来说我们的语言都是从左到右的习惯方式。这看上去似乎被认为是自然的存储字符和数字方式-你同样也希望以同样的方式出现在你面前。我们总的许多人因此也会认为big-endian是流行的存储方式,正如我们平时所读到的。另一个方面说,Intel处理器(CPUs)和DEC Alphas和至少一些在他们的平台的其他程序都是little-endian的。 有个关于little-endian的争议是如果你增加数字的值,你可能在左边增加数字(高位非指数函数需要更多的数字)。因此,经常需要增加两位数字并移动存储器里所有Big-endian顺序的数字,把所有数向右移。使用little-endian的存储器中不重要的字节可以存在它原来的位置,新的数可以存在它的右边的高位地址里。这就意味着有些计算机的运作可以变得简单和快速。 语言编译器比如说Java或FORTRAN必须明确他们开发的目标代码使用的是什么存储方式。有必要的话可以使用转换器可以用来转换存储顺序。 注意在使用big-endian和little-endian字节顺序中,一个位里面都是使用big-endian。也就是说,在存储的字节里一个位串代表的给定数没有big-endian和little-endian之分。比如说,有个十六位数4F放在一个给定的字节地质前面或者后面,在这个字节的这一位的里的顺序是: 01001111 从这一位的顺序来看有可能是big-endian也可能是little-endian,但是CPUs和程序几乎都是设计成big-endian位序的。尽管如此在数据的交换中它有可能其中的一种顺序。 Eric Raymond评述说Internet域名地址和e-mail地址是little-endian的。比如我们的网址用big-endian来表述是com.whatis.www。 Big-endian和little-endian来自于Jonathan Swift的Gulliver's Travels ,Big-endian是那个大鸡蛋是打破大头的那个政治派别,而反对派Lilliputian King要求他的国民打鸡蛋的时候用小的那一头。 目前的存储器,多以byte为访问的最小单元,当一个逻辑上的整理必须分割为物理上的若干单元时就存在了先放谁后放谁的问题,于是endian的问题应运而生了。对于不同的存储方法,就有Big-endian和Little-endian两个描述。(这两个术语来自于 Jonathan Swift 的《《格利佛游记》其中交战的两个派别无法就应该从哪一端--小端还是大端--打开一个半熟的鸡蛋达成一致。在那个时代,Swift是在讽刺英国和法国之间的持续冲突,Danny Cohen,一位网络协议的早期开创者,第一次使用这两个术语来指代字节顺序,后来这个术语被广泛接纳了。) 存在“如果说"跟word或者说字长根本就没关系",假设有一数据文件里面有N多数顺序排布,如果想以Little-Endian format 读入内存某区域,那么应该怎么读?怎么排?”这样的问题是由于对于endian的实质理解的偏差,endian指的是当物理上的最小单元比逻辑上的最小单元小时,逻辑到物理的单元排布关系。这里的“有一数据文件里面有N多数顺序排布”,这个“有一数据”显然不是逻辑上的最小单元,而其中的“N多数”的一个才是逻辑最小单元,于是可应用楼主表格中的原则排列,而“N多数”之间的顺序则是由这“N多数”的宿主决定的,比如是你写的程序,这个顺序由你决定。 刚才谈到了,endian指的是当物理上的最小单元比逻辑上的最小单元小时,逻辑到物理的单元排布关系。咱们接触到的物理单元最小都是byte,在通信领域中,这里往往是bit,不过原理也是类似的。 实践可以给你更多的经验,比如在一个嵌入式系统的通信协议中,从底层射频驱动到上层的协议栈全部需要实现,那么很可能遇到多个endian的问题,底层的bit序、协议层的byte序、应用层的byte序,这些都是不同的概念。 Big-Endian 和 Little-Endian 字节排序 一个例子: 除了moto的68K系列和dec的sparc是big endian外,常见的cpu都是little endian。ARM同时支持 big和little,实际应用中通常使用little endian。 2009/6/13 2009年招录老婆 全国统一考试试卷试卷 姓名: 2009/6/5 善用80/20法则做好工作取舍大家都晓得时间管理的第一法则就是善用80/20法则,了解百分之八十的成果是来自少数百分 2009/6/2 1点58分6月 5日 晴的好难受 |
|
|