我可以蹲下来,陪你做一只蘑菇

有一个精神病人,以为自己是一只蘑菇,于是他每天都撑着一把伞蹲在房间的墙角里,不吃也不喝,像一只真正的蘑菇一样。  心理医生想了一个办法。有一天,心理医生也撑了一把伞,蹲坐在了病人的旁边,病人很奇怪的问:你是谁呀?医生回答:我也是一只蘑菇呀。病人点点头,继续做他的蘑菇。  过了一会儿,医生站了起来,在房间里走来走去,病人就问他:你不是蘑菇么,怎么可以走来走去?  医生回答说:蘑菇当然可以走来走去啦!病人觉得有道理,就也站起来走走。  又过了一会儿,医生拿出了一个汉堡开始吃,病人又问:你不是蘑菇么,怎么可以吃东西?医生理直气壮地回答:蘑菇当然也可以吃东西啦。病人觉得很对,于是也开始吃东西。  ……  几个星期以后,这个病人就可以像正常人一样生活了,虽然,他还是觉得自己是一只蘑菇。  其实…… 一个人可以带着过去的创伤继续,只要他把悲伤放在心里的一个圈圈里,不要让苦痛浸染了他的整个生命,他就可以像正常人一样快乐的生活。当一个人悲伤得难以自持的时候,也许,他不需要太多的劝解和安慰,训戒和指明。他需要的,只是能有一个在他身边蹲下来,陪他做一只蘑菇。  我可以蹲下来,陪你做一只蘑菇。我愿意分担你的不快乐,只是当你的世界下雨时单纯的为你撑起一把伞。请你不要封闭自己的心,一个人承受那么多。你知道的。只要你睁开眼,你从来都不是一个人。我是你的蘑菇…也希望在我无助的时候,你能蹲下来,陪我一起做一朵蘑菇。  来源:http://www.zreading.cn/archives/2982.html

电影各种版本详解

这是今天早上突然想到的。因为最近一下电影网站恶意混淆各种版本,比如拿个枪版就说个DVD,骗下载量。特此找到此文。分享之。国内作者太无良啊。转载从来不注明出处。找原始出处花了一些时间。原文非常乱。音视频格式也交错着介绍。我删掉了。想看的去原文看吧。 1.CAM(枪版)——珍爱生命,远离枪版 CAM通常是用数码摄像机从电影院盗录。有时会使用 小三角架,但大多数时候不可能使用,所以摄像机会抖动。因此我们看到画面通常偏暗人物常常会失真,下方的字幕时常会出现倾斜。 由于声音是从摄像机自带的话筒录制,所以经常会录到观众的笑声等声音。因为这些因素,图象和声音质量通常都很差。 举例说明:Journey.To.The.Center.Of.The.Earth.CAM.XViD-CAMERA(地心游记3D枪版) 2.TS——只比枪版好一点 TS 与CAM版的标准是相同的。 但它使用的是外置音源(一般是影院座椅上为听力不好的人设的耳机孔)这个音源不能保证是好的音源,因为受到很多背景噪音的干扰。TS是在空的影院或是用专 业摄像机在投影室录制,所以图象质量可能比CAM好。但画面的起伏很大。常出现的有一般TS版和经过修复清晰TS版。 举例说明:Iron.Man.PROPER.TS.XviD-iLG(钢铁侠TS版) 3.TC——基本也可以忽略 TC使用电视电影机从胶片直接数字拷贝。画面质量还不错,但亮度不足,有些昏暗。很多时候制作TC使用的音源来自TS,因此音质很差,但画面质量远好过TS。如果不是太讲究的话TC版还是不错的选择。 举例说明:Madagascar.2005.TC.XviD.AC3.avi(马达加斯加TC版) 4.DVDSCR——最差也要看这个 预 览版的或者是测试版的DVD,非正式出版的版本。从预览版 DVD 中获取,通过mpeg-4技术进行高质量压缩的视频格式。能比DVDRip早发布,但画质稍差。(经常有一些不在黑边里在屏幕下方滚动的消息,包含版权和 反盗版电话号码 ,会影响观看。)如果没有严格的划分它的画质应与TC版差不多。 举例说明:Quantum.of.Solace.REPACK.DVDSCR.XviD-COALiTiON.avi(007大破量子危机DVDSCR版) 5.DVDRIP——比较理想的版本 DVDRIP是从最终版的DVD转制。质量应该是最好的。将DVD的视频、音频、字幕剥离出来,再经过压缩或者其他处理,然后重新合成成多媒体文件。一般来说,DVDrip由影音文件(后缀为avi)和字幕文件组成。 举例说明:Pineapple.Express.2008.DVDRip.XviD-ARROW.avi(菠萝快车DVDRip版) 6.HR-HDTV——不错的选择 HR-HDTV是用DivX/XviD/x264等MPEG4压缩技术对HDTV的视频图像进行高质量压缩,然后将视频、音频部分封装成一个.avi或.mkv文件,最后再加上外挂的字幕文件而形成的视频格式。 画面清晰度更高。 7.HDRIP——BD之下,万人之上 HDRIP=HD-DVD Rip,即HD-DVD高清转制,效果好于一般的高清转制。 举例说明:Stardust.2007.HDRip.x264.a720.AC3-C@SiLU.mkv(星尘HDrip版) 8.BDRIP——高清之下,普通清晰度的王者 BDrip = Blue-ray Disc Rip,即蓝光高清转制,效果比HDRIP还要好。 举例说明:Awake.2007.BDRip.X264-TLF.mkv(夺命手术BDrip版) 9.R5——心急的您可以看这个 R5一般大都是俄罗斯5区版,由于北美大片在俄罗斯发行的语种经常配音为俄罗斯语,因此网络上会出现采用R5的视频+枪版TS的英语原声音频=合成版本(所以音效差),当然,也经常有未配音过音效好的R5,遇到合成版本,在发布时会特别注明音效。 举例说明:Get.Smart.R5.LINE.XViD-mVs.avi(糊涂侦探R5版) 10、BD(蓝光版) BD是Blue Disk的简称,翻译成中文是“蓝光影碟”的意思。就是从蓝光影碟转录的视频和音频,画面清晰度很高。 11.TVRIP——TV转制 所谓TVRip是从电视(最好是从数码有线电视/卫星电视捕捉)转制的电视剧及接收卫星接收到的节目,然后通过电视卡进行捕捉,压缩成文件,我们看的很多综艺及体育节目都是TVRip。有些电视剧也会使用TVRip的方式进行发布。 12.720P 720P 是美国电影电视工程师协会(SMPTE)制定的最高等级高清数字电视的格式标准,有效显示格式为:1280×720.SMPTE(美国电影电视工程协会) 将数字高清信号数字电视扫描线的不同分为1080P、1080I、720P(i是interlace,隔行的意思,p是Progressive,逐行的意 思)。720P是一种在逐行扫描下达到1280×720的分辨率的显示格式。是数字电影成像技术和计算机技术的融合。这是高清视频的最低标准。 举例说明:Le.Fabuleux.Destin.d'Amélie.Poulain.2001.Blu-ray.720p.x264.DD51-HiS@SiLUHD.mkv(天使爱美丽720P) 13.1080I 即1080线隔行扫描,分辨率为1920×1080,仅次于1080P 举例说明:close.encounters.of.the.third.kind.1080i.disk1.ts(第三类接触1080i版本) 14.1080P 1080P是美国电影电视工程师协会(SMPTE)制定的最高等级高清数字电视的格式标准,有效显示格式为:1920×1080,像素数达到207.36万。 1080P带来的高画质给消费者带来的是真正的家庭影院的视听享受,由于它向下全面兼容其它高清格式,通用性非常强,保证了在未来十几年的时间里产品不会过时,具有很好的超前性。随着1080P片源的不断涌现,1080P产品的优势已经显现出来。 举例说明:Resident.Evil.HD.DVD.REMUX.1080p.MPEG-2.DTS-HD.F@Silu.disk1.ts(生化危机1,1080P版本) 15.REPACK——重新打包版 如果发布组织发布了一个坏的版本,他们会发布REPACK来解决这些问题。 举例说明:The.Eye.2008.REPACK.BDRip.X264-TLF-cd1.mkv(美版见鬼,repack版本) 16.REMUX——无损版 Remux的意思是无损的提取出HD-DVD 和 BluRay-DVD里面的视频数据和音频数据,封装到我们熟悉的TS或者AVI文件中。 HD- DVD和 Blu-Ray Rip、Re都是把原始的高清数据进行压缩和重编码,从1080P压缩到720P, 20G左右的片子压缩到了4.3G. 可在19、20、22寸的宽屏上看,但是上到大尺寸高分辩率的显示设备就能明显的看出区别了。大屏幕的朋友还是建议购买原始编码的Remux。 举例说明:The.Patriot.Extended.Cut.Blu-ray.REMUX.H264.1080P.DTS.LPCM.DD51.Fanxy@Silu.DISK1.ts(爱国者remux版本) 17. Extended——加长版 情形和导演剪辑版类似,很多的加长版是用来圈钱的,有的干脆就是把花絮里的删除段落直接加进去,也就长了几分钟而已。也有很厚道的,比如指环王的加长版,一部就加长了近50分钟,肯定对剧情有影响的。 举例说明:The.Lord.Of.The.Rings-Return.Of.The.King.EXTENDED.EDITION.DVDRip.XViD-ALLiANCE.avi(指环王3:王者归来加长版) 来源: http://blog.sina.com.cn/s/blog_486387300102dxo1.html http://blog.sina.com.cn/renli

比较HE和Think Aloud可用性测试

首先,HE和Think Aloud 都是两用可用性测试的方法,HE,也就是这个启发式评估可以在设计的早期阶段(比如草稿)就开始使用,并且不需要太多的其他步骤。而Think Aloud则更多建立在已经设计出来的原型系统上。需要更多的步骤。这两个各有利弊。互相协作。才能更好嘛,有些问题,HE可以发现,有些则只有Think Aloud可以发现。 1.Many Usability Aspects Identified in HE are Confirmed in Think-Aloud Usability Tests 许多可用性方面的问题可以在HE中识别。然后在Think Aloud测试中被确认。 2.When HE Predictions are not Confirmed by Think-Aloud Usability Tests 当HE预测了问题但是Think Aloud中,并没有发现。这种情况下。请相信Think Aloud测试。因为用户是王道。数据比预测更准确。 3.“False Alarms” vs. True Problems 假警告vs真问题,这个举个例子,在对话框中,有三个按钮。OK ,Apply和Cancel ,虽然HE规则预测了这个迷惑性。但是进行Think Aloud测试的时候,并没有这个问题,原因是用户就没想过这个事,他只按ok,但这并不能避免问题,或者说似乎这个问题并不是个问题,还有一种情况,比如HE规则中的文档帮助的问题,可能用户在测试的时候就没打开文档。这就需要HE来评估了。所以,这种情况下,还是应该好好分析一下HE给出的评估来改进系统。 4.Think-Aloud Usability Tests Can Show Things HEs Can't Show Think Aloud测试可以展示HE没有发现的问题。 HE规则因为是建立在早期草稿原型上的。并不是真实情况,他只是在早期给出设计上的问题,他不能预测真实系统的问题,比如程序运行速度非常慢,以至于用户难以忍受。这就需要Think Aloud才能发现了。  基本上SSD4就讲了这么些东西了。四篇文章四点写到7点。。基本上算是写完了。工科男求安慰。。

Think-Aloud 可用性测试介绍

中文是指出声思考:出声思考。可用性测试中常用也很有用的一个数据收集方法,来改善产品。要求被测试者把在测试过程中即时的把自己的想法大声说出来。比如,你说我不知道干什么,这个好像有点问题,等等。然后有人来记录。 SSD4给出的具体步骤翻译添加解释如下: Define the study's framework, 定义该测试报告的框架。比如系统准备解决什么问题,适合什么类型的用户,希望评估首次使用还是其他什么,希望最终的目标是什么,比如希望90%的用户可以初次顺利使用。 Choose what to observe, 选择打算观察测试者的什么行为,比如用户如何打开,先干了什么 Prepare for the think-aloud usability test, 为测试做准备,比如模拟真实情景,写个流程。开个会,招募实验人员。 Introduce the participants to the observation procedure, 给实验人员介绍步骤。抚慰一下他们的情绪。告诉他们目的,并且希望他们think aloud。 Conduct the observation, 进行观察 Analyze the observation, 分析观察结果 。 Find possible redesigns, 找到可能需要进行重新设计的地方 Write a report. 写个总结报告出来。完成 这不也就这样嘛。

UAR报告的简单说明

UAR报告由以下几个部分构成。就这个例子简单说一下。 Example UAR — Time Zone ListBox Is Not Good //标题 UAR Identifier //问题编号,从1开始,每个问题都这样的格式来说明,就构成了UAR报告 HE18—Problem //后面这个problem表示有问题,也可以是Good,表示这部分很好。没问题。 Succinct description: //简短的描述 Time Zone pull-down ListBox provides too much irrelevant information. Evidence for the aspect: //违反了哪条规则,共有十条规则。 Heuristic: Aesthetics and minimalist design **Interface aspect: ** The pull-down ListBox has 50 lines of information—in very small font. There are many competing items of information to visually search, the vast majority of which are irrelevant to any one user's particular task of finding a single desired time zone  The presentation of this structured information violates the aesthetics and minimalist design heuristic because the structure is not preserved visually from item to item. For example, the words are not always lined up vertically; see the entries for: [GMT -01:00] Azores, Cape Verdi Is.[GMT] Greenwich Mean Time; Dublin, Edinburgh, London, Lisbon[GMT] Monrovia, Casablanca[GMT +01:00] Berlin, Stockholm, Rome, Bern, Brussels, ViennaExplanation of the aspect: //详细解释,说明问题 There are about 30 distinct time zones in the world (one for each of the regular 24 hours, plus several others either with offsets that include an additional half hour or that follow daylight savings time differently than neighboring zones).

10条可用性准则(Heuristics)

SSD4第二单元其实就讲了这么一点东西,包括一点VB的控件常识 可用性测试(Usability testing),是一项通过用户的使用来评估产品的技术,由于它反应了用户的真实使用经验,所以可以视为一种不可或缺的可用性检验过程[1]。也就是说,可用性测试是指让用户使用产品(服务)的设计原型或者成品,通过观察,记录和分析用户的行为和感受,以改善产品(服务)可用性的一系列方法。它适用于产品(服务)前期设计开发,中期改进和后期维护完善的各个阶段,是用户中心设计的思想的重要体现。 10条可用性准则(Heuristics) These are ten general principles for user interface design. They are called “heuristics” because they are more in the nature of rules of thumb than specific usability guidelines. 1.Visibility of system status——系统状态的可见性 The system should always keep users informed about what is going on, through appropriate feedback within reasonable time. 系统应该始终在合理的时间以适当的反馈信息让用户知道系统正在做什么。 2.Match between system and the real world——系统和现实世界之间的吻合 The system should speak the users’ language, with words, phrases and concepts familiar to the user, rather than system-oriented terms. Follow real-world conventions, making information appear in a natural and logical order. 系统应该用用户熟悉的词,短语和概念来说用户的语言,而不是用面向系统的术语。遵循现实世界中的惯例,让信息以自然的合乎逻辑的次序展现在用户面前。 3.User control and freedom——用户控制和自由 Users often choose system functions by mistake and will need a clearly marked “emergency exit” to leave the unwanted state without having to go through an extended dialogue. Support undo and redo. 用户经常错误地选择系统功能,所以在不需要查看由于误操作而延伸出来地对话的情况下有一个明显地标志为“紧急退出”的操作来离开不想要的状态。另外,系统需要支持“撤销操作”和“重做”的功能。 4.Consistency and standards——一致性和标准 Users should not have to wonder whether different words, situations, or actions mean the same thing.

VS2010 编译安装boost库

实践是最好的办法。。学习C++,想试试线程,然后打算用boost库,结果boost库编译差点吓到我。。没看到比较完整的安装教程。。一直耽搁。今天动手。完成了。方法记录如下: 1.下载boost 从boost官网( http://www.boost.org )上下载最新的boost版本,现在最新是1.49版本,解压到自定义目录(我解压到了D:/program files,最终的目录结构是D:\Program Files\boost_1_49_0) 2.编译安装 在D:\Program Files\boost_1_49_0的目录下,有一个bootstrap.bat文件,直接双击运行。就会在同目录生成b2.exe;bjam.exe两个文件。 3.设定编译环境 修改user-config.jam (D:\Program Files\boost_1_49_0\tools\build\v2\user-config.jam) 的MSVC configuration MSVC configuration Configure msvc (default version, searched for in standard locations and PATH). using msvc ; 在上面这段的下面直接添加如下的文字。 保存关闭。 4.开始编译 点击开始->所有程序->“Microsoft Visual Studio 2010”,指向“Visual Studio tools(工具)”,然后单击“Visual Studio 2010 command prompt(命令提示)” 使用cd切换到D:\Program Files\boost_1_49_0目录。这个就不说了 然后输入如下的代码:  解释一下命令的意思: 1.toolset:表示编译器工具,我安装的是VS2010,所以是msvc-10(如果你是VS2005,可以使用msvc-8.0 VS2008是msvc-9.0) 2.architecture:表示架构,也就是你的CPU架构,x86,x64,因为我安装的是win7 32位,所以使用了x86的架构 3.instruction-set:表示指令集,依然是8086指令集 4.address-model:表示地址长度为32位 5.link:表示生成动态/静态链接库,动态链接库是shared,静态链接库是static,一般都会编译成静态库,因为给出程序的时候打包boost的库会非常庞大 6.variant:表示生成的Debug或者release版本,一般情况下会两种版本都会编译出来的 7.threading:表示单/多线程编译,一般我们的程序都会用到多线程,所以选择了multi 8.runtime-link:表示动态/静态链接C/C++运行时库(C/C++ Runtime),我们选择了动态链接 9.without/with:表示不需要编译/需要编译哪些库,一些自己不用的库可以无需编译 10.stage/install:stage表示只生成库文件(DLL和Lib),install还会生成包含头文件的include目录,推荐使用stage,因为boost_1_49\boost中就是boost库完整的头文件,所以无需再拷贝一份出来。编译出来的库会放在stage文件夹中 这样一份完整的boost库就生成了,剩下就是直接使用到项目中了。 其实编译的具体命令都是可以自己写的。如果你需要编译所有。只需要使用下面的这行代码 b2 –toolset=msvc-10.0 –build-type=complete 就可以了。 不出问题的话。就开始编译了。。登个半个多小时吧。就会完成了。 5.设置vs 打开vs,新建一个工程。然后工程属性。配置属性->C/C++ ,附加包含目录 填上 D:\Program Files\boost_1_49_0;%(AdditionalIncludeDirectories) 这个是最终的结果,你也可以手动添加 在左侧选择链接器->附加库目录,填上 D:\Program Files\boost_1_49_0\stage\lib;%(AdditionalLibraryDirectories) 就可以了。 6.测试 在你新建的工程里输入如下的代码。运行成功就说明可以了  参考: http://www.cppfans.org/1317.html http://www.cnblogs.com/ComputerG/archive/2011/03/10/1979730.html http://www.cppblog.com/shaker/archive/2011/11/30/33583.html

C++ 独立引用,为什么?

问题: I read in some good C++ tutorial that independent references do exist, and act like aliasing. 我读了一些好的C++文章,发现独立引用确实存在,并且很像别名。 But… I wonder what it is made for. 但是,,,我想知道他适用于什么情况。 Why should one want to use aliasing.Besides, some piece of code that is not clear to me: 为什么有人想使用别名呢,另外,下面这段代码我不太清楚。 First, ref is a ‘reference’ to a.I understand from second line of code that address for ref (hence the ampershead) is 首先,ref是一个对a的引用,从第二行代码那我认为ref的地址也就是a,(括号里面不清楚什么意思。貌似是作者写错了) a. Then, integer ref is assigned the value of b (19). First cout returns a and ref, both equal to 19. 然后呢,整数ref被b(19)被赋值,第一次输出a和ref,都是19, Why? Isn't integer a the address for ref? Then, decrements ref, and last cout gives two times 18. a and ref where decremented. 为什么,难道整数a不是给ref的地址?然后ref自减,最后输出了2个18,a和ref都减少了。 Only strange possible interpretation of mystery: here int&; is a type in itself, ‘independent reference to an integer’, 唯一可能的解释就是:在这里,int& 是一个类型,表示对一个整数的独立引用。 and this type means aliasing. Then whatever you do to ref, the same is done to a.

c & c++中sizeof返回值不同?

问题: A character array is defined globally and a structure with same name is defined within a function. 一个字符数组被定义为全局变量,一个相同名字的结构体被定义在一个函数内部。 Why sizeof operator returns different values for c & c++ ? 为什么sizeof操作符对于C和C++返回了不同的值呢? 答案: Because in C++, the struct you defined is named S, while in C, 因为在C++中,你定义的结构体的名称是S,而在C中, it's named struct S (which is why you often see typedef struct used in C code). 他叫做struct S(这也是为什么我们可以经常看到typedef struct 被用在C代码中)。 In C, to refer to the struct type, you need to say struct S. Therefore, sizeof(S) refers to the array. 在C中,引用一个结构类型的时候,你必须说struct S,因此,sizeof(S)调用的是数组S。 In C++, struct is unnecessary. So the local S hides the global S. 在C++中,struct这个字不是必需的,所以局部变量S隐藏了全局变量S。 If you were to change the code to the following, you would get the expected results: 如果你把代码改成下面的样子,你就能得到你期望的结果了。 原文:http://stackoverflow.com/q/10670261/764869

为什么sizeof(str.substr(0,3).c_str())=8?

问题: string str = "abcdefgdcb"; cout < < sizeof(str.substr(0,3).c_str()); For some reason, the above string is giving me 8. I assumed c_str() returns a null string, 由于某些原因,上面的这个字符串得到的结果是8,我估计c_str()返回了一个null, and sizeof uses the null to determine the size of the string. 并且sizeof函数使用这个null来定义这个字符串的大小。 答案: Because sizeof doesn't give you the length of a string, 因为sizeof给你的不是一个字符串的长度, it gives you the size of the type (const char * in this case). Try strlen. 他给你的是这个类型的大小(这种情况下的类型是c_str()返回的const char*类型),想要得到正确的结果,试试strlen函数吧。 On your system, sizeof (const char ) == 8, like any other pointer. 在你的系统上,sizeof(const char)=8,和其他所有的指针类型一样。 8 is the size of a pointer on your machine (64-bit) 8是在你的64位电脑上一个指针的大小 There's your problem. sizeof tells you the size of a variable, 别乱假设,sizeof告诉你一个变量的大小, which has nothing to do with the value inside the variable, ever. 他不会进入变量里面对变量做任何改变的。。永远不会。 问题:http://stackoverflow.com/q/10668764/764869