时隔近3个月,我本科毕业后第一次回到了西安,见到了在本校读研的舍友们,不过主要还是来参加信息存储年会的。 会议有特邀报告、青年学者报告和优秀论文交流报告,分别是大神级的学者、大神级的青年学者和大神级的博士生进行报告,听了这些报告真的感觉到自己的差距有多么大,同时感觉不虚此行。 这是一篇我所听报告的部分内容的总结,语言从我个人理解的角度出发,信息可能不全或不准确,如有问题,欢迎讨论和指正。 阻变存储器性能优化方法的研究 冯丹教授讲的题目是“ 阻变存储器性能优化方法的研究 ”。首先RRAM(阻变式存储,Resistive Random Access Memory,ReRAM)是一种非易失性存储器(NVM),尺寸单元小,有发展潜力。冯丹教授这次的报告是比较偏硬件,但还是有很多启发。 背景: DRAM在技术上要降低能耗、提升容量越来越难,而且DRAM技术提高的速度比CPU慢,另外技术工艺达到40nm之后很难再提高。所以ReRAM代替DRAM是一种选择。 RRAM的存在的问题: 1. reset延迟和能耗代价均高于set;2. TLC的延迟大于SLC;3. 存在IR-drop的问题,离驱动电源越近,延迟越低。 几项工作: 1. 针对上述第一点问题,提出了可以将对角线上的set和reset并行,这样降低了总延迟时间。 2. 针对上述第二点问题,使用了一种“压缩率感知”的方法,利用MLC/TLC中中间几种状态慢于两边状态的特点,将中间的几个状态合并,根据压缩的工作负载的压缩率,来进行决策,重新编码存储(比如把原来MLC的4中状态中的第2、3两种合为一个状态,这样就变成了3中状态,减小了延迟和能耗)。3. 针对上边的第三点问题,用双端驱动代替单端驱动,这样处于接近电源驱动的区域就增多了,并且可以根据快慢在驱动层中区分硬件上的快慢区域,来合理使用。 半层次化的语义存储体系结构 华中科大华宇教授的报告,讲了一种” 半层次化的语义存储体系结构 “,希望将原来的存储结构(比如文件系统的目录结构)转为一种多标签的索引结构。 背景: 存储有5个趋势,分别是更大规模、智能化、一体化(计算和存储更近)、长期化和边缘化(雾计算,临近计算等)。 问题: 存储的层次化越来越明显,同时新兴的存储期间很多(PCM、SSD、DRAM、3D Xpoint……);NVM能缓解存储的压力,但是由于寿命等问题无法从根本上解决问题;对于文件系统来说,查找树不是太高就是太胖;locality的设计思想是用稀缺资源存储最热的数据,但目前的大趋势是locality正在减小;cache的适应能力弱,比如需要较强时间的预热,代价很高。 解决思路: 用语义存储带起当前的存储模式,例如:文件系统中使用扁平化的树结构,一个文件同时贴上(识别出)多种标签;有了这种模式,非精确dedulication中可以在关联数据间进行,提升效率;近似图像语义间的dedupe;data cube是对于高维查找提前做出计算的一种方法,如果基于语义,可以缩小计算范围。 数据中心驱动下KV系统的设计和实现 德州大学阿灵顿分校的Song Jiang教授主要讲了KV系统的缓存问题。 问题: 由于在分布式存储中,所有的访问都要经过metadata server(MDS),所以MDS是一个瓶颈,应用Key-Value(KV)系统就是取消了MDS的一种解决方案。KV系统是需要缓存的,怎么更高效的利用有限的缓存空间是一个问题。 思路: 可以使用更好的缓存数据替换算法,但是并没有效果太好的;可以提升内存容量,但是这会直接导致成本上升;可以利用压缩提升缓存利用率,但是解压和压缩也会导致很大的性能下降。 方法: 对实际访问trace数据分析发现,随着缓存空间的增长,缓存命中率上升到80%是很快的,但从80%上升到90%则需要更多的内存,基于这点,将cache分级,最热的数据不进行压缩,对并非太热的数据进行压缩,这就很好的平衡了压缩解压缩的延迟和缓存的利用率问题。 对于这种方法,还有一个解释,就是对cache命中,即使要进行解压缩操作,时间也远远小于访问存储服务器进行磁盘访问,这样,即使缓存利用率提升了5%,也可能带来很大的性能提升效果。Song教授解释的意思是,由于磁盘访问的速度特别慢,在命中率从90%提升到95%的情况下,更应该看到的是未命中率降低了一半(10%–>5%),而不是命中率提升了很少(90%->95%) 其他 清华的陆游游博士介绍了NVM+RDMA的分布式存储方案,有了RDMA,CPU传送所有数据的等待时间减小到传送存储地址的时间。 华科博士生左鹏飞提出了一种基于位置分享的解决哈希冲突的策略,用于NVM系统。 上海交大的博士生董明凯介绍了他发表在ATC 17上的文章Soft Updates Made Simple and […]

今天,老师给实验室发的邮件中有一条建议说,我们应该将工作数据任何时候都保存多于一份,来避免丢失: 在该页面还有一个同步软件,请一并下载,使用该软件每天将工作文件夹分别同步到U盘(或移动硬盘)和电脑硬盘中,保证任何时候都有至少两份,因为目前的设备特别是硬盘容易损坏,避免关键数据丢失 其实说到这个问题,我也有一很多相关的想法,找不到人去说,干脆写个博客吧,反正微博那么短,也不适合我叨叨。。。 多份好于一份 对于重要信息,放到电脑里就安全了吗?当然不是,设想最极端的情况,你的电脑被人偷走了。。。 好吧,那我放一份到移动硬盘里怎么样?再设想一种情况:你去某个地方需要带电脑和移动硬盘,你把移动硬盘和笔记本电脑放在了一个书包里,你的书包被人偷走了。。。 我的做法:把重要信息存到电脑一份、存到移动硬盘一份,再存到某个网盘一份(上传前最好加密,对于代码工程还可以开源到github)。 数据的历史 有些数据是慢慢变化的,比如毕业论文、代码文件等,它们都在不断改进、增删。有时候,我们想找回几分钟前删除的一段文字/代码,但是发现删除之后已经点了保存键,岂不是追悔莫及? 我的做法:为了留有余地,对于论文等文字创作,每隔完成一次重要的创作,都存一次副本;对于代码文件,没做一次可行的修改,就用git系统进行一次commit。甚至如果对于论文,也可以使用git进行版本控制,我还曾经想过用git保存我的minecraft游戏存档,一边我可以随时在“我的世界”里进行“时光穿梭”。。。 控制权应该在我手中 这点是还不能令我完全睡好觉的一个点。 社交网络 例如,我从10年左右,就注册了微博,然后现在微博两千多条了,可是新浪微博却无法导出我的所有微博(除非用手去复制粘贴或用爬虫强行去扒),类似的当然还有朋友圈或者qq空间,这些可都是没有导出功能的。 然而,和新浪微博相比,twitter就可以下载自己所发过的所有推文,仅此一点,微博在我心中就无法和twitter相比。 我的做法:对于只能在墙中生活的我,不找到一个好点的爬虫爬下我发过的大部分微博,我是完全无法睡个好觉的,谁知道微博哪天会倒闭(或是微博的数据库管理员哪天会突然删数据库跑路?) 聊天记录 最容易想到的,手机QQ是无法导出聊天记录的,电脑qq和微信虽然能,但是一定要再导进软件才能看,所以如果哪天腾讯倒闭了,可能聊天记录就再也回不来了,而这些记录里面可能有重要的信息。 我的想法:虽然暂时摆脱不了腾讯qq和微信的“魔爪”,但是我还是认为邮件是比较可靠的,它有开方的协议,而且方便随时下载保存本地。 引申 数据越来越重要,我们不希望重要数据的丢失,就像不希望丢钱一样。对于金钱来说,它是无法像数据一样进行复制的,放在手里可能被偷,放在股市可能赔死,放在银行还可能倒闭;但是数据可以有副本。也就是说数据的安全相对于财产的安全,更容易让我们睡好觉。想到这里,我不禁又想到了比特币。。。

“时间”和“空间”,在小的时候对我来说只是两个词语,没有什么实质的领悟;后来知道了霍金曾写《时间简史》来讨论时间,到现在也没读完过,估计读完也懂不了;貌似爱因斯坦还说过时间是现实世界的第四个维度?但时间对于人来说总是有别于空间的,但时间总是感觉很特别,感觉不应该和空间统一起来,我想两者应该是个对等的关系;再后来,相见别离,让我明白了时间的意义,房价飙涨,也让我了解了空间的残酷(2333…)。 倒是从大学后的一些课程开始,我对这两个概念有了更加现实的理解。比如,数据结构这门课貌似从第一节就让我们求一段程序的空间复杂度和时间复杂度,有些算法是用时间换空间(牺牲更多计算时间,减少存储空间),有些是用空间换时间。加上后来的各种经历和获得的知识,让我觉得,信息的存在需要空间和时间,而随着人类的发展,各种信息所需要的时间和空间之间可以互相转换替代。 生活中的信息和时间/空间 如果对算法复杂度一窍不通,我们也能在生活中找到一些例子。比如街上的小店铺门前挂的LED电子屏幕,上面可能滚动着各种最新的促销信息,如果你碰巧感兴趣,就需要驻足等所有字幕滚动一遍。看完你可能觉得很烦:“为什么字幕滚动这么慢,促销又这么没有诚意,完全是在浪费时间…”,这说明你的阅读速度很快,老板也许还想让更多心不在焉的人感受到他跳楼甩卖之决心呢。我们考虑这样一个问题,如果放到没有LED屏的30年前,也许把整个店铺的店面用横幅盖住也写不下这么多的字吧。这里,LED电子屏减小了店铺广告的空间,却增加了展示同样多信息的时间(不考虑人的阅读速度,时间由零秒变为字幕滚动所需的数秒)。 类似还有很多例子。我还可以想到电子书和纸质书,一个iPad可能可以存下原来一个图书馆的书籍,空间大大减小。但是要展示所有的书籍的信息,iPad却必须花时间:设想我们有足够的空间的话,可以把图书馆所有的书的每一页都撕下来摊开放在地上,所有信息展示的时间为零,而iPad只有一个屏幕,我们无法在一个时刻翻完所有的信息(假设屏幕帧率为100Hz,我们一秒最多翻100页)。再例如,如果你喜欢电子读物,只需要一个MP3和一个耳机,甚至连ipad的大屏幕都不需要,空间又减小了,但由于说话速度小于阅读速度,展示完所有信息需要的时间却又增加了。这里当然是把人接收书中信息的速度忽略不计了,因为有人会把音频书加快3倍听,而另一些人可能看文字书一目十行。 更接近信息本质的思考 在通信和计算机系统中,信息的传递和存储都是需要编码的,这些编码的过程就是对信息进行表示和压缩的过程。 莫尔斯码也许是为人熟知的系统,这种电码和现代计算机系统类似,最小的通信单元也是两种状态:长、短。长短电报音的各种组合就能表示各种各样不同的信息。最早的电报是需要电报员的,他只能戴上耳机,处于紧张的接收状态。设想如果我们是21世纪的操纵古老电报机的电报员,我们可能会想出各种办法把这种音频记录通过模式识别之类的手段存储起来,然后用Python写一个解码器就直接将翻译过来了。我们不考虑翻译过程的话,我们的“现代做法”便是用存储空间换取了持续在线接收的时间,或者说这是一种带不带“缓冲区”的区别。 数据压缩的概念也很常见,我们从网上下载的很多文件,格式都是rar或zip的,这时如果你想使用它,就必须用压缩软件解压。而这个解压速度,主要取决于你CPU的计算性能。很简单的道理:解压和压缩虽然都需要消耗时间,但可以节省更多的空间。这就是信息在时间和空间的一种转换。 信息的成本和价值 “时间就是金钱”。我认为,之所以人们经常那这句话提醒自己,肯定是因为通常金钱并不经常和时间有一个公认的“汇率”。也许空间就不一样了,在北京的房子可能需要10万一平米,其他有些地方的房子可能只要1千元一平米,大家都觉得很合理;一块普通硬盘可能需要5毛钱1GB的成本,可能固态硬盘就要5块钱1GB,大家也认为很合理,空间总有个价格。 …… 如果我假设,信息的产生、获取或者存储可以用存储空间和计算时间来度量,同时计算时间和存储空间之间又存在某种公认的价格(比如云计算–明码标价的计算能力和存储能力),那么也许时间就是真的可以用金钱来衡量了。而信息这种依赖时间和空间的产物,也便产生了其必然的价值。那么到了那个时候,时间就是金钱,金钱就是信息。 …… 最后要说明: 这篇博客并没有投入很多时间深入思考,只是最近偶然冒出的一些想法。在我看来,人生的意义很大程度上在于了解自己和自己之外的东西,这些想法也许有用也许没用,也许深奥也许通俗,但以我的角度,都是自己所学所见的一些积累所导致,所以对我来说都是值得记录的。谢谢大家的关注。

原文出处:QEMU当前的文档 qemu/docs/devel/tracing.txt 一、介绍 这篇文档描述了QEMU追踪的整体架构和如何使用追踪功能来进行debug、性能分析或者监测运行状况。 二、快速开始 步骤1. 编译QEMU时带上’simple’trace追踪后端: ./configure –enable-trace-backends=simple make 步骤2. 创建一个写有你想追踪的事件(events)的文件 echo memory_region_ops_read >/tmp/events 步骤3. 运行虚拟机来产生一个追踪文件 qemu -trace events=/tmp/events … #加上其他你需要的qemu选项参数 步骤4. 以美观的形式打印出二进制的追踪文件Pretty-print the binary trace file: ./scripts/simpletrace.py trace-events-all trace-* #用QEMU的进程号(pid)来代替”*” 三、Trace events 1. 设置子文件夹 Sub-directory setup 在源码目录的每个文件夹中都可以在trace-events文件中声明一组静态的trace events。所有包含有trace-events文件的子文件夹必须被列在源码根目录Makefile.objs的trace-events-subdirs项中。这样在编译时,被列出的子文件夹的trace-events文件就会被tracetool脚本处理来生成相关的追踪代码。 单独的trace-events文件会被merged到一个trace-events-all文件中,trace-events-all文件也将会被安装到/usr/share/qemu目录中,并改名为trace-events,这个文件最终会被simpletrace.py脚本用作simpletrace数据格式的追踪分析。 在子文件夹中,以下的文件会被自动生成 trace.c – the trace event state declarations trace.h – the trace event enums […]

第一篇和第二篇文章中,我们分别从差异化定价和虚拟交易两个方面揭露了一下Steam的坑钱大法。今天要讲一下游戏内容了,毕竟人们来Steam主要是想玩游戏的。 任何一款游戏发售之前,开发商都应该是设定好了游戏道具、游戏方式、各种参数等一切正常游戏进行需要的游戏内容。但是随着游戏时间加长,总有一天,游戏内容被玩家慢慢“消费”完,如果能减慢游戏内容的消耗时间,就能延长一款游戏的寿命,使游戏获得更多人认可。 从红警2说起 红色警戒2并没有在Steam上,但我感觉其很有代表性。可能大家首先想到的是,红警2是一款即时战略类游戏,想到玩家需要扮演”commander”来建造和指挥部署各种兵种、建筑。但其实这款红警2,就涵盖了大多数游戏所具有的两种游戏模式的:剧情模式和回合模式(遭遇战)。 在红警2剧情模式中,敌我的兵力及其分布都是事先设定的,不可以自由建造,又设定了一些游戏剧情和目标(比如摧毁敌军基地,拯救xxx。杀死xxx等),玩家达成目标后就能进入下一关。当玩家通关的那一刻,剧情游戏的游戏内容便被消耗完了。热衷这款游戏的玩家可能会去选择开始二周目,或者选择厂商提供的更高难度再次进行挑战,但最后几乎没有人会一直玩下去。 而在回合制的遭遇战模式中,玩家需要选定自己和敌方的国家,双方都从零开始建造军队,最后将敌方所有单位摧毁的一方取胜。这种模式就更像“电子竞技”了,因为双方起点相同,真人玩家也可以网络对战,相对也就更耐玩一些。但是总共也就几十种兵种,随着更新一代的游戏的退出,老游戏的剩下的可能只有死忠粉了。 DLC 在以前,若一款游戏的取得很大成功,很多游戏厂商会发布游戏资料片(Expansion Pack)。游戏资料片一般并不改变游戏模式或者画面,更多的来扩充原来游戏的剧情,加入一些新的游戏内容。来用较小的投资成本,获得更多的利润。 《尤里的复仇》就是红警2推出的一款资料片,资料片的画面或者音效可以说没有变化。但是增加了很多新的游戏内容,游戏厂商Westwood为红警2加入了全新的剧情,并在遭遇战中加入了一种拥有全新兵种的阵营。 我们无法判断发布资料片是既定战略,还是顺势而为。也许厂商对一个游戏本身充满自信,认为只先放出50%的内容,就可以占领90%的潜在市场,那么剩下的50%分几个资料片放出来,显然是可以延长游戏在市场上的寿命,卖更多的钱的。也可能是因为原来游戏出乎意料的火,开发商想在原来的游戏框架下加点剧情再卖一波。 但无疑,资料片增加了游戏内容,提升了一款游戏带来的利润。Steam也觉得这是一个好的概念,于是想将这种发行形式发扬光大,于是给了资料片取一个新名字:DLC(Downloadable Content)。 Workshop 另一个很好玩的现象,红警2在十几年前的中国是相当火的。但是流行于中国的红警2并不是原版,而是称为《共和国之辉》的修改版本(游戏Mod)。这个Mod并没有加入太多新的兵种,也没有新的剧情,最大的特点是将原版没有的中国添加了进去,而且中国的兵种都是其他几国的兵种随机凑在一起的,并且无耻的将中国兵种的属性调强数倍。。。几乎毁掉了这个游戏的平衡性。但就是这款被很多人鄙视的Mod,在中国无法被否定地火过了原版红警2。一切都是因为这款Mod加入了符合特定玩家喜好的元素(虽然并没有实质改变),其实就是抓住了广大中国玩家的“爱国”心理。可见,玩家自制的内容可能不够严谨,但可能广受追捧,因为制作者就是玩家们自己。 和红警2一样,由于很多游戏都留有二次开发的接口或者方便替换、增加的游戏文件格式,它们都是有很多Mod的。但在由于Mod是非官方的游戏改版,玩家开发者只能在非官方的渠道传播,并且玩家一般要去必须主动寻找,十分不便;更重要的,游戏厂商并不能利用Mod这些玩家开发游戏内容进行宣传和销售。Steam看到了商机,开发了Workshop平台改变了这一局面,这是一个游戏Mod平台,玩家创建的Mod、游戏地图等内容也可以在每款游戏对应的Workshop中上架和被购买游戏的玩家下载,Workshop方便了Mod开发者和爱好者之间的Mod共享,也以廉价的方式为游戏带来了可以说是无限的游戏内容扩展。 三篇短文写完,我只能说,对于Steam这些“手段”,我是不得不佩服:Steam不成功,谁成功? 参考 [1] 红色警戒2-维基百科, https://zh.wikipedia.org/wiki/%E5%91%BD%E4%BB%A4%E4%B8%8E%E5%BE%81%E6%9C%8D%EF%BC%9A%E7%BA%A2%E8%89%B2%E8%AD%A6%E6%88%922 [2] DLC-维基百科, https://zh.wikipedia.org/wiki/%E8%BF%BD%E5%8A%A0%E4%B8%8B%E8%BD%BD%E5%86%85%E5%AE%B9 [3] Is there a difference between expansion pack and downloadable contenthttps://gaming.stackexchange.com/questions/95370/is-there-a-difference-between-expansion-pack-and-downloadable-content [4] 《虚拟经济学》, https://book.douban.com/subject/26418114/

原文:The technology to make ‘Silicon Valley’s’ decentralized ‘new internet’ already exists( http://mashable.com/2017/04/24/is-silicon-valley-new-internet-possible-or-not/#6cEY_p263PqN ) 作者:RAYMOND WONG 时间:APR 25, 2017 “给你无限的时间和资源,你想用你的压缩算法做出什么都行……什么都行,说出来是什么,3,2,1……说!”美剧《硅谷第四季》中的“变态”亿万富翁Russ Hanneman对主角Richard Hendricks喊道。 “一个全新的互联网”,可爱的程序猿Richard说。 “我们曾用一台掌上电脑的计算能力把一个人放在月球上”,Richard继续说道,“我们现在手机上的计算能力要比那强几十万倍,但这些手机却都只是躺在口袋里什么都不做。所以我想到这个,有数十亿的手机在世界各地拥有相同的计算能力,只是闲在人们的口袋里。“ “然后我想,如果我们使用这些手机来构建一个庞大的网络呢?使用我的压缩算法来使一切数据变得很小,高效,到处传播。如果我们能做到这一点,我们可以建立一个完全去中心化的网络,那将是没有防火墙,没有收费,没有政府监管,没有间谍的互联网。信息因此在各种意义下都将是完全自由的。“ Russ不仅喜欢这个看似疯狂的想法,还答应投资。Russ还分解了Richard的数据压缩初创公司Pied Piper,迫使他退出,以便让他弄清楚如何将“新互联网”变成现实。 “我不知道是否可行”,Richard承认,“我还没有仔细去想过。” 这正是观看剧集的粉丝们一直想知道的, Richard的“新互联网”到底是真的可能呢,还是只是电视上编造的? 当今的互联网是去中心化和中心化的混合体。 任何人都可以创建一个去中心化的点对点(P2P)网络,让设备间直接连接,比如BitTorrent。同时,任何人也可以去创建一个中心式网络,通过服务器传递数据,多数大型在线服务都是如此,如Google,Facebook和Twitter。 加密的、去中心化的网络的好处是显而易见的:安全性和隐私性。 由于数据在分散的网络节点上存储和传递,没有任何在线服务或者政府可以在你不知情的情况下窥探你的数据。 Mesh Network 理论上,可以有几种方式来构建这个“新互联网”。 第一个是Mesh Network(网状网络),它是由任意数量的设备或节点组成,数据在节点之间传递。手机应用Firechat是使用mesh network的完美示例,它通过蓝牙让手机间相互连接。 事实上,一些狂热的reddit用户在《硅谷》下一集的预告视频中Richard的白板涂鸦上发现了一些线索,表明剧中他至少考虑了mesh network。使用mesh network并依赖蓝牙等无线协议的缺点当然是较小的覆盖范围和较慢的传输速度。你的设备与其他设备的连接质量要取决于各个设备的蓝牙规格。虽然你可以通过你和你要连接的设备的路径中间有其他节点“中继”来解决这个问题,但并无法保证每次都有中间节点。 另一方面,蓝牙4.0只有200英尺的范围,蓝牙5.0的新设备也能达到800英尺。此外,蓝牙5.0将带宽从4.0的25Mbps提高到50Mbps。虽然不如千兆的Wi-Fi或LTE,但嘿,隐私和安全更比速度更重要,对吧? 也就是说,剧中Richard的能“使一切都变小,高效”的超级强大的压缩算法,将是使mesh network成为可能的特殊要素。 Maidsafe & Storj Richard实现他宏伟计划的另一种可行方式,是像Maidsafe的SAFE网络或Storj的P2P网络。虽然它们仅用于去中心化的文件存储,但我并不认为像Richard那样的代码狂人无法调整这些结构。SAFE网络自称为“新的去中心化互联网”,很大程度上承诺了Richard的想法,只不过它没有使用闲置的手机计算资源,而是使用的PC。 根据该公司的说明,用户可以无须验证地创建一个帐户,然后决定贡献分配给SAFE网络的空间。 然后,Maidsafe会向贡献存储空间的用户支付“Safecoins”(一种具有真实市场价值的加密虚拟货币)。用户向“vault”贡献越多的存储空间,就会得到越多的Safecoins。Maidsafe以此来进一步激励用户加入SAFE网络。 在文件被上传之前,它被先被加密,然后分解成较小的数据包并分散到网络中去。数据存储是存在冗余的,并且在计算机打开时,文件会在网络上自主移动。简单说,“新互联网”上所有的数据都是分块、加密存储在所有设备上的。在网络上所有设备上的碎片加密件中。 当你需要访问自己的数据时,只需从其他设备下载各部分就可以了,这基本上就和BitTorrent一样了。 SAFE网络现在只是在进行alpha测试,但是更接近公开发布。 虽然它只适用于Windows/Mac/Linux,但公司未来也会考虑移动平台。去年在TechCrunch上,Maidsafe创始人David […]

上次提到了Steam通过差异化的游戏定价和频繁的打折活动,力图让最多的人以自己能接受的最高价格买走一个游戏,以此来走了最多的钱。本节我们将继续说一下集换式卡牌和社区市场这两种吸钱大法。 集换式卡牌 摘自百度百科 集换式卡牌游戏,简称CCG(Collectible card game)或TCG(Trading card game)。顾名思义,此类游戏是以收集卡牌为基础的,游戏者需要通过购买随机包装的补充包,收集卡牌,然后根据自己的策略,灵活使用不同的卡牌去构组符合规则的套牌,进行游戏。由于各人的套牌都不同,每一局抓到卡牌的次序也有不同,无穷无尽的变化由此而起。无论是准备及进行游戏的过程中,都需要玩家不断开动脑筋去思考。一般的说,这些卡牌都有一定的价值,玩家之间可以交易交换自己的卡牌。 集换式卡牌游戏线上或线下都有,不过最开始是从线下游戏发展来的,大家一定听过甚至玩过游戏王,游戏王就是典型的线下集换式卡牌游戏,在Jc小时候,游戏王可是在我们当地的小学生中风靡一时。游戏王的卡牌种类特别多,要命的是每次买卡包里面的卡都是随机的,所以要凑齐所有的卡,只能多买卡包,或者和别人换卡,厉害的卡总是很少的,而垃圾卡总是一堆堆重复,收集全很难。这也导致虽然集换式卡牌和其他卡牌游戏一样可以打牌对战,最后双方可以争个胜负,但很多人的乐趣更多在于收集卡牌。 Steam的集换式卡牌就完全抓住了部分人爱好收集卡片的心理,卡牌完全没有对战的功能,只有“集”和“换”。Steam中的卡牌是一种虚拟卡牌,也就是每张卡牌只是在你的Steam道具包中占去一个格子,产出的途径是玩游戏,任何玩家在刚买的游戏中玩几个小时就可以产出对应游戏内容的几张卡牌,同时产出的卡牌的数量和种类肯定是少于这款游戏总共可以产出的卡牌种类。于是,如果你想收集某一款游戏对应的整套卡牌,只能去Steam社区市场进行交易得到。当你收集到某一整套卡牌,就可以得到徽章、表情、背景和优惠卷等各种虚拟荣誉和优惠。 这样,我们可以分析出如下几点结论: 1. Steam集换式卡牌将实体集换式卡牌的买卡包的过程转换为花时间进行游戏,这便可以促使更多人去将时间花在Steam中,同时由于卡牌可以在社区市场中出售换“钱”,增加用户的满意度。 2. 借助Steam自带的社区市场可以进行卡牌的买卖,模拟了实体集换式卡牌的卡牌交易活动,这样,卡牌也成为下文所述的Steam社区市场的商品种类之一,Steam又可以通过社区市场的交易税,赚一上波。 3. 集齐某套卡牌后会获得各种虚拟荣誉或者优惠,为收集爱好者提供更大的收集动力。 我们可以看到,Steam集换式卡牌像是游戏外的游戏,即使你打开了Steam后没有打开任何游戏,你也可以点开Steam道具箱,来欣赏下自己所收藏的一张张可爱的、看得见摸不着的、同时却有标价的卡牌。 社区市场 Steam本身就是一个游戏交易的平台,怎么又冒出来一个社区市场,这是个什么玩意儿?其实,社区市场是供Steam用户之间交易的,玩家可以在Steam平台的游戏中获得各种游戏道具,很多道具都是支持在社区市场中进行买卖的。这个平台既为玩家之间游戏外的道具交易提供了便利和安全保证,又让Steam吸钱吸的更爽,大家都是很开心的。 虚拟商品从哪来 首先,上节所述的集换式卡牌便是虚拟商品之一,产出途径是玩家的游戏时间。 其次,各种游戏都有相应爆出可交易道具的机制。比如,CS:GO可以买钥匙开箱子,钥匙16RMB一把,开到了垃圾皮肤只能卖几毛钱,如果开到了匕首的皮肤(很稀有)就可以在社区市场卖上上千块,就问你开还是不开,如果没有开到匕首,还开不开下一个?再如,Don’t Starve Together中,玩一段时间就可能会随机送一件可交易衣服,这和卡牌类似,相当于也是用游戏时间换来的。 可以看到,类似CS:GO的抽奖机制,很多网络游戏都有,这可是利用人们侥幸心理的吸钱大法;类似Don’t Starve Together或集换式卡牌,用户越长时间在Steam进行游戏就可以吸引更多的新用户来Steam消费。 高效的交易方式 穷屌丝Jc是个穷屌,但是依旧怀揣着走上人生巅峰的梦想,于是曾拿着仅有的1000元人民币去闯大牛市,最后亏到只剩900再也不敢去赌运气了。后来Jc发现,Steam的社区市场的交易方式就和股市的交易是类似: 首先,在交易平台中,卖家和买家都可以报价的撮合式交易,这就会最终导致:卖家的最低报价应该是略低于买家的最高报价的,当某个卖家或买家报价后发生了买卖报价相等于的情况,交易便发生了,这也会导致商品价格的变动。这种交易方式买卖双方都可以了解事实供需和价格的变动,高效便捷,价格一般也总是符合当前的实际供求关系的。 Steam也是要收交易税的,税额是5%,所以没进行一笔交易,便相当于Steam“销毁了”了5%的Steam货币,但是货币被销毁Steam就不赚钱了吗?其实正是由于虚拟货币被销毁了,才会导致人们用更多的真实货币兑换成Steam虚拟货币余额,也就是说Steam的交易税,真的被Steam赚到了。 社区市场也为玩家交易提供了便利。而且,有了类似股市的社区市场,玩家也是可以像股市一样低买高卖来赚钱的,这和股市很类似,需要玩家审时度势,观察某个道具的产出因素的变化,判断道具未来的供求。但是最后获益的,肯定少不了社区市场的实际控制者Steam。 结论 通过以上两节的分析,我不得不佩服,Steam不仅仅是游戏销售平台,其本身就是一个所有用户参与的网络游戏,通过虚拟货币、虚拟道具和虚拟市场让用户间相互产生联系、让游戏间产生联系也让游戏和Steam平台产生联系,进而让更多的用户愿意花更多的时间、更多的金钱到这个平台中来,并且无法自拔。 参考 [1] Steam社区市场, http://steamcommunity.com/market/ [2] Steam官网, http://store.steampowered.com/ [3] 撮合交易, http://baike.baidu.com/link?url=whjmRJd1J2UkFyVlullmuSd-bM1MfxAZSMvKxcXcfprfHbP7w6k89qwWlZWXx4ajkcetefQ5d1vDkdxI5AoGHxnW1RSXGecnqZCey3a2ybmKSwRgAX0U9h9uxtamEKPp [4] 《虚拟经济学》, https://book.douban.com/subject/26418114/

首先,我认为这个问题应该从商业运营或经济学的角度来更加专业地解释,但作为一个资深的、从小就被各种电脑游戏坑钱的低端手残玩家,我还是要揭漏出steam的部分坑钱之道,以方便我们更好地被坑。非常希望各位有兴趣和相关专业的同学来和我讨论啊~ 什么是Steam 摘自百度百科: Steam平台是Valve公司聘请BitTorrent(BT下载)发明者布拉姆·科恩亲自开发设计的游戏平台。Steam平台目前是一款全球最大的综合性数字发行平台。玩家可以在该平台购买、下载、讨论、上传和分享游戏和软件。 其实可以简单理解为类似iPhone的app store的平台,只不过app store是卖手机应用的,而steam是卖电脑游戏的。但是Steam的吸钱手段真是了得,本次先谈一下我对游戏定价的一些理解~~后续还可能会介绍下Steam的社区市场、集换式卡牌、DLC/Workshop等吸钱大法。。。 游戏定价 steam作为一个游戏销售的平台,采取了和苹果app store类似的模式,从游戏商的收入直接抽成。 有意思的是,和app store一样,steam游戏商店也根据国家和地区分了很多区。同样的一款游戏,在不同的区购买价格是不同的。在 steamdb.info 这个网站可以查看当前某款游戏再各个国家的价格,我们可以找几款游戏观察一下:比如同样是CS:GO这个游戏,当前欧洲区要10.65美元,美国要10.04美元,香港区要8.5美元,而中国区只要4.7美元;再看H1Z1: Just Survive这个游戏,欧洲区同样最高11.35美元,中国区5美元,印度区最低只要4.37美元;Don’t Starve这个游戏,欧洲区最高的4.25美元和最便宜的中国区的0.88美元形成了鲜明对比。 个人认为,基于以下几点事实,这种现象就是可以理解的: 不同的地区的税收情况是不同的。 不同的地区的人们的版权意识或消费水平是不同的。 由于电脑游戏卖的是使用权或者说是拷贝,多卖出一份所带来的生产成本几乎为零。 基于第一点事实,不同的税率导致了如果steam想要在不同的地区获得相同的利润,就要在税率高的地方提高销售价格,比如在澳大利亚卖游戏就有高昂的税负,所以澳洲区的游戏价格相对较高。 基于后两点事实,既然生产的成本是一次性的,卖的是拷贝,那么最赚钱的方式一定是以人们心目中能借接收的最高价格卖出去,所以中国印度等发展中国家就得到了福利,欧洲美帝人民消费水平高也能接受的了较高定价。所以最后,没错,大家都高高兴兴的买了游戏去玩游戏了~steam钱顺利地吸走了最多的钱。 日常打折 是的,如果你曾经下载过steam,估计注册完账号刚登陆进去就会遇到一个大惊喜:你赶上了steam的打折!好巧啊~哇塞还是5折!是不是觉得捡到了大便宜,赶紧买一波吧~ 如果你多观察一段时间,你会发现,steam经常打折,打折分发行商打折、周中打折等日常打折,还有每年几次的大型优惠,比如黑色星期五、和现在进行的“夏日优惠”这种集中的坑钱活动。Steam真可谓打折不断,说到这里,你以为了解了这个事实就能控制住你伸向钱包宝的手吗?当然不是。。,动不动就来个7.5折、9折什么的,原价100多现在只要10几块,就问你到底买不买,于是你买了。 但Steam当然也不会因此赔本,还是基于上节的第3条事实分析,卖游戏拷贝和使用权是没有成本的,所以卖0.1元,Steam都是赚的。如果说上节所说的分区进行差异化定价可以让不同消费水平的地区的人民都把钱交给Steam,那么这种经常性的打折就可以把我等穷屌丝和高富帅马上用赤果果的金钱区分出来啊。。。 我们可以设想:高富帅小明看到了一款的射击游戏,一看价格才150块,想都没想就买了,毕竟买了马上就可以下载来玩;同一国度还住着穷屌丝jc,他看了同一款射击游戏,晃着存钱罐里的两个一块的钢镚,望着去年他妈给发的88块的微信红包,只能将这款他心目中的价值150块的史诗级巨作拉进心愿单。某天周三,穷屌丝jc突然发现这款游戏降价到了16块,于是,他望着剩下的35块的支付宝余额,怀揣着与高富帅小明同台竞技的梦想,爽快的买下了这款”史诗级”射击游戏。 哈哈,和上节说的类似,如果steam很少打折,把这款史诗级游戏定价为16,那么小明和jc都买了,Steam可能只赚了32元,或许小明还会不屑于玩如此廉价的游戏,Steam只赚了16元;如果一直定价为150,那么可能最后只有小明交出了150元;而在我们假设的情况中,steam赚了166。钱吸的漂亮!~ 参考 [1] http://www.pcgamer.com/the-weird-ecomomics-behind-steam-prices-around-the-world/ [2] https://steamdb.info/ [3] 《虚拟经济学》, https://book.douban.com/subject/26418114/ [4] Steam官网, http://store.steampowered.com/

论文原文PDF: sRoute: treating the Storage Stack Like a Network 出处:USENIX FAST 16 1. 概述 数据中心中,数据从一个应用最终到达存储服务器不仅要经过网络,还要经过很多的存储层次,这些层次可以称为存储栈(Storage stack)。对于数据中心中一个较为复杂的应用,一个IO请求甚至要经过应用缓存层、虚拟机操作系统(Guest OS)文件系统页高速缓存、Guest OS文件系统、Guest OS IO调度层、Guest OS块缓存、Guest OS块设备驱动、虚拟机管理器、宿主机操作系统(Host OS)网络驱动、缓存服务器、远程存储服务器缓存、远程存储服务器文件系统、远程存储服务器物理磁盘等多达十几层的存储阶段(Stage)。 而一般IO经过这些stage最终到达终点的路径是预先制定好的,这条路缺乏灵活性(hard-coded),即使仅想改变其中的某个stage,实际更改的时候也可能会涉及到这个stage之上和之下的多个stage。 本文仿照软件定义网络(SDN)的思想,提出了一种软件定义存储的架构sRoute,从原始的数据中心存储中心抽象出数据平面和控制平面,控制平面上的中心化controller随时可以对数据平面上的存储交换机sSwitchs安装“转发规则”,来实时控制IO路径。这样,就实现了包括改变终点、改变中间路径和将点对点路径散布为一点对多点在内的三种基本IO路径更改方法。 2. 整体设计 2.1. 数据平面和sSwitch 数据平面包括原有IO栈的各个stage和本文新加入的特殊stage sSwitch。sSwitch可以插入到IO路径的中任意的stage中,其根据当前的”IO转发规则”对IO进行转发。具体的,sSwitch会检测每个IO请求的header,根据header中包含的IO源点和目的点信息来和当前sSwtich所存的”IO转发规则”进行匹配,然后根据对应规则进行转发。 例1 把所有从VM~1~中到服务器S~1~文件X的读请求都路由到S~2~文件Y,那么VM~1~和S~2~之间的任意一个sSwitch的转发规则可以这样表示:

例子 以打印一个蓝色斜体的”hello, world“为例: C printf(“\033[3;34mhello, world\033[0m\n”); python print “\033[3;34mhello, world\033[0m” Shell echo -e ‘\033[3;34mhello, world\033[0m’ 格式 \033[Para0{;Para1…}mYOUR_TEXT\033[0m \033[Para0{;Para1…}m 表示转义开始 *033[0m 作为转义结束 Para0(1,2…) 参数可以为多个,比如上述例子*,3表示为斜体,34表示蓝色 YOUR_TEXT 在例子中就是hello, world 参数 Linux中通过man console_codes命令可查看详细的参数描述*这里写一下常用的格式和颜色: 常用格式: 参数代码 描述 0 重置所有格式 1 粗体(高亮) 2 暗色 3 斜体 4 下划线 5 闪烁 常用颜色: (前景色为30+颜色代码;背景色为40+颜色代码。) 颜色 代码 前景 背景 黑 0 30 40 红 […]