分叉即自由

区块链、电子游戏和操作系统有什么共同点?

通常当一个电子游戏的创造者改变游戏规则时,用户不能怎么样。但在“网络创世纪”(Ultima Online)中,用户决定撸起袖子创建了他们自己的游戏服务器。当Android着手创建一个新的操作系统的时候,他们并没有从头开始,而是分叉Linux。比特币有一大批拥趸,但社区无法就如何扩展交易达成一致,所以向比特币现金这样的组织已经涌现出来,增加了核心社区没有同意的新功能。

分叉是使用户摆脱暴政,开创自己社区的基本机制。分叉就是指当一个组织不同意中央控制结构时,决定分开走自己的路。

无论何时,当一件事情都由单一一个实体来控制时,权力的集中最终会伤害到用户。

以太坊的创造者Vitalik Buterin,在“魔兽世界”的制作者暴雪娱乐改变了他“心爱的术士的生命虹吸”的那天晚上心碎暴哭。从那之后,他意识到集中服务的恐怖,决定退出。

著名的分叉

阿瑟龙的召唤的最后一刻

“阿瑟龙的召唤”(Asheron’s Call)是一款在线很长的时间的RPG游戏,但去年停服了。阿瑟龙的召唤运行了超过12年,而且到最后还是有一个非常强大的社群。

当工作室强行关闭了游戏时,一组人聚在一起并开始记录所有的游戏包。他们捕获了超过1.32亿个数据包,包含超过2.24亿条游戏信息。他们不得不从这些数据中艰难地重新创建游戏服务器,就像是试图通过墙上地文字重新创建古埃及语言一样。

如果这是在区块链上运行,社群估计已经分叉了数据。只要社群还存在,游戏就会在。

这个社群用捕获的超过1.32亿个数据包中包含的超过2.24亿条游戏信息来重新创建游戏。

Dread Lord - 网络创世纪

“网络创世纪”(Ultima Online)是一款从1998年开始一直在运行的在线多人RPG(MMORPG)游戏。早期他们有Dread Lord,作为邪恶的角色,当你离开城市的时候,恐吓普通玩家。

随着时间的推移,他们为了噱头,改变了游戏玩法方面。玩家因此反抗并创造了他们自己游戏世界的“碎片”,或分叉。

然而,由于他们无法访问游戏服务器,就像“阿瑟龙的召唤”一样,他们不得不从头开始重建整个游戏服务器。幸运的是,他们能够重新使用客户端和游戏资产。

Linux被分叉了比你能想象的还要多次,就连Android开始也是作为一个Linux的分叉。Linus Torvalds是主要Linux链的最终仲裁者,但是没有什么能阻止Redhat占属于自己的一份,又名Ubuntu。这给了用户自由,继续为老的过时的计算机运行代码,又或者在Android的情况,添加无法进入主线的实验性功能。


“比特币叉”

像比特币现金、比特币Segwit2x这样的比特币分叉清楚地表明,在比特币世界中,核心参与者之间没有强烈的共识。我认为这些分叉的存在是非常健康的,因为它们允许在较小的环境中尝试新的功能,并使一个小团体不能控制区块链的未来。

游戏经济

游戏最大的问题之一就是游戏资产,比如黄金,盔甲和稀有物品在供应方面并不固定。 即使在物品稀少的情况下,代码更改和bug也会随时改变这种稀缺性。

在“暗黑破坏神2”(Diablo2)中,有一种被称为“约旦之石”(Stone of Jordan)的珍贵物品被用作货币,因为它很少见。 然而,有人发现了一个物品复制的bug,并创造了成吨的“约旦之石”。 开发人员也能简单地改变创建这些物品的算法,市场可以在瞬间被破坏。

对此的解决方案就是让其运行在可以分叉的区块链上。 如果有一个bug改变了比特币的供应,只要社区同意,一个分叉就可以解决这个问题。 如果比特币的开发者明天想要提供更多的比特币,他们将不得不说服每一个节点去运行他们的新软件。

此外,通过将这些资产置于区块链中,我们可以追踪游戏中的所有物品,并允许它们在不受原始作者影响的“交易所”进行交易。

现在我们在游戏中获得的钱币可以永远被稀释。 我们花了几个小时努力得到的盔甲,可以在一瞬间被拿走。 当一家公司运营时,审查频繁发生。 如果提供新的物品对公司来说有利可图,他们就会这样做。

我们需要把权力交还给用户

解刨一个分叉

让我们用一个游戏作为开始。一个分叉中包含了哪些元素?

  1. 游戏客户端
  2. 客户端视觉资产,如美工
  3. 客户端/服务器协议
  4. 服务器代码
  5. 用户和人物的数据库
  6. 可收藏的物品、剑、盾、魔法

当这其中任何一个是闭源代码时,应用程序的用户必须重新构建整个游戏。 有时候这是不可能的。

一个非常极端的例子就是任天堂的Satellaview游戏。他们直接通过卫星传输电子游戏,并将它们下载到盒式磁带的内存中。你只能玩这个游戏30分钟,然后它就消失了。幸运的是,有人制作了一些通关视频,以便其他人可以对游戏重新编码。曾经有特别的Legend of Zelda游戏也就这样消失了。

取决于人们多有激情,他们会重新创建上面列出的一个或多个元素。

在未来,我们可以迫使游戏创作者将所有这些资产存储在区块链中以延长使用寿命。

区块链游戏

为什么区块链可以解决这些问题

最近CryptoKitties在以太坊区块链上引入了一个叫ERC721代币的特别的小东西。这些代币不能被复制,并且是唯一的。用户可以分叉区块链并创建自己的副本。用户构建游戏add-ons的时候可以检查游戏的完整状态。

再举一个例子,如果我们看一下SteemIt区块链,它基本上是一个在区块链上运行的Reddit克隆。 任何人都可以克隆整个区块链中的所有评论和帖子,然后在其基础上创建有趣的应用程序。难怪尽管没有那么受欢迎,Steem有比其他区块链更多的add-ons。

如果我们可以在像“魔兽世界”这样的游戏中,制作整个游戏数据库的副本呢? 我们可以建立新的任务。 我们可以建立公会管理工具。 我们可以花十年时间来定制和发展游戏,远超原作者的想象。

但是,这仍然不是完全没有问题。 我们如何才能将区块链中的十亿字节的游戏资产保留下来? 是用IPFS或Bittorent,还是我们只接受集中式解决方案,并将散列存储在区块链上? 我们将在以后的文章中进一步探讨这个问题。

总结

我们已经看到很多公司在停止盈利时放弃产品的例子,或者有时会改变游戏动态去取悦某一些人。 在未来,游戏将运行在区块链之上,因此用户可以像使用Linux的人那样,体验相同的自由。

那将会是什么样子? 我们会把所有可收藏的物品存放在以太坊或侧链上吗? 我们可以在区块链上运行MMORPG吗? 我们会在以后的同系列文章中讨论细节。

为什么阿里系的APP都这么无耻

阿里系的APP一向以无耻著称。特别是在较为开放的Android平台上。

其淘宝、天猫APP, 启动时候会关联一大堆其他APP启动。而读取权限更是几乎每个都要读取。

以菜鸟裹裹为例,本来快递箱取快件就是对用户的不尊重了,各大快递都是承诺送货上门的,但是由于送件时间等因素,现在绝大多数快递员都选择投放快递箱。

这对用户来说也还算方便,凭借短信验证码,可以随时取件。

但是慢慢阿里系的包裹开始强制使用菜鸟裹裹发送验证码,取消了短信验证码。

然后这个菜鸟裹裹会读取包括联系人、短信、通话记录、安装应用列表等信息,会调用录音、摄像、位置等功能。其中摄像和位置可以理解为其用来扫码取件、一键开箱等功能。那么其他的呢?用来做什么?

我取个快递,还要被你读取这么多隐私信息,要不要脸了?

战地1最后一个DLC:Apocalypse (启示录)一些细节曝光

2016年10月底,战地1发布。此后在2017年间,EA相继发布了战地1的两个DLC誓死坚守和以沙皇之名。在刚刚发布了12月底和2018年1月将发布力挽狂澜的消息后,紧接着发布了其第四个也是最后一个DLC的消息。

这张烧焦的防毒面具颇有一些世界末日的意味

虽然关于此DLC更多细节还都未正式发布,但是DICE也确认了其中一些内容。

– 发布时间:DICE的说法是“2018年早些时候”。 根据其以往的发布规律,每个DLC之间至少有三四个月的间隔,而力挽狂澜将在1月份发布。因此启示录估计最早也要到18年6月份才会发布。

-如何提前体验:之前的DLC均在CTE(Community Test Environment,社区测试环境)中提前发布供公测了,因此如果你有高级通行证,应该也能提前在CTE中体验这个版本。

-主题:根据DICE对此DLC定义的slogan“一战中最臭名昭著的战役”来看,很有可能是萨姆河战役——一战历史中规模最大的一次战役。(这一战役有英法联军和德军参战,伤亡约达134万人。文末有介绍)。

-其他新的内容: 必然是新的武器,新的模式和一些新改进的小细节。比如下面这些武器看着就挺新奇的:

Darne Model 1918

 

不过战地1作为战地系列中作弊器最为横行的一代产品,至今官方也并未出什么很有效的遏制手段。未知其是否会因为作弊器成为联网战斗体验最差和最短命的一代呢。

维基时间:

索姆河战役

索姆河战役(英语:Battle of Somme,法语:Bataille de la Somme,德语:Schlacht an der Somme)是第一次世界大战中规模最大的一次会战,时间发生在1916年7月1日到11月18日间,英、法两国为突破德军防御并将其击退到法德边境,于是在位于法国北方的索姆河区域实施作战。双方伤亡共130万人,是一战中最惨烈的阵地战,也是人类历史上第一次把坦克投入实战中。

Mark 1战车

这场战役是协约国在1916年总战略进攻计划的一部分。计划拟定的内容是:在福煦将军的统一指挥下,法国法约勒将军的第6集团军和英国罗林森将军的第4集团军,负责突破囤驻在富科库尔、埃比泰讷(40公里)地区的德国冯·贝洛将军之第2集团军的防御阵地;并运用骑兵兵团向法军负责的佩罗讷、莫伯日和英军负责的巴波姆、康布雷等地打开突破口。英、法联军共有32个步兵师和6个骑兵师,2189门火炮,门迫击炮,约300架飞机;德国第2集团军则有 个步兵师,62门火炮,门迫击炮和114架飞机。德军防御由30道阵地组成,全纵深为7至8公里。

1916年6月24日,英军经过充足的准备下,先出动了约1400门火炮,对德军阵地进行一周的的猛烈炮击(6月24日—7月1日),共发射了约150亿发炮弹。英军希望透过炮火轰击,达到消灭德军战壕的目的。但事实上德军只有些微死伤,炮火不足以摧毁战壕,其中约1000门是野战炮,对战事并无多大作用。[3]。7天的炮击,虽然几乎完全摧毁德军第一阵地,部分摧毁第二阵地,但失去了进攻作战在战术上应保持的主动性。

7月1日,英国第4集团军(由罗林森将军指挥)从马里库尔至埃比泰恩25公里正面向巴波姆方向实施主要突击,由英国第3集团军第7军在其左翼掩护;法国第6集团军(由法约勒将军指挥)从罗西耶尔以北索姆河两岸向佩罗讷方向实施辅助突击。当日,法军和英军右翼突破德军第一道阵地,但英军左翼为德军壕沟阵地所阻。英军采用密集队形突击, 遭德军MG-08的强大火力杀伤,损失近57,000人[3]

7月2—3日,英军右翼和法军攻占德军第二道阵地,法军一度占领巴尔勒、比阿什等德军防御要地。此后数日,由于德军投入预备部队以及英、法联军本身在突破战术和指挥调度方面存在着严重缺点(对各地区的突击规定繁琐,限制了军队的主动性等),以致推进缓慢。

英军进攻路线

7月19日,德军指挥部又投入新一波预备部队,为便于指挥,将第2集团军分编为由贝洛将军指挥的第1集团军和加尔维茨将军指挥的第2集团军。并在防御上加长纵深,构筑了补充防御地区。

7月中旬,英、法联军仅向前推进数公里,未达成作战的预期目标。而又损失了不少部队

7月底至8月中旬,英、法联军将其部队增强至51个师、飞机增加至509架;而德军增加到31个师、飞机增到300架,由于作战的迟缓、胶着,遂转变成为消耗战。

9月3日起,法国米舍莱将军的第10集团军、英国加夫将军的第5集团军分别投入战斗,战场正面范围扩大到50公里宽的战线。德军增强至40个师,又不停加强阵地的防御工事。因此英、法军队的推进速度平均每昼夜仅有150至200米。

9月15日,英军第一次使用新式兵器——MarkI坦克(共49辆坦克,实际参战仅18辆),配合步兵进攻,推进了4至5公里。这是战争史上第一次使用坦克,对守备方的德国步兵产生了心理震撼,使他们放弃阵地不战自退。但由于坦克的技术与装备尚未完善,加上战线宽广(10公里18辆坦克),仍然没有达成打开突破口的作战目标。战术层级的运用成功并未能引导作战胜利。虽然英军后来又使用了两次坦克,同样收效不大,倒让德军开始学习如何对付敌方这个庞然巨物。[4][5]

进入秋季后,气候开始恶化,由于阴雨连绵、道路泥泞,战斗渐渐平息,到了11月完全停止,英、法两国的作战计划宣告失败。

微信公众平台“发生未知错误”的解决方法之一

最近想玩微信公众平台开发。
在填写服务器配置的时候,点击提交总也不通过,显示“发生未知错误,请重试”(大意如此);
搜了半天也没得到什么有用的东西,有很多答案居然是换个浏览器就可以了。然而我从Chrome到Firefox到Edge甚至IE都换过了,依然没有解决。

随后读了一下文档,猜想,该不是在提交配置的时候微信公众平台就要测试吧?
就快速写了一个客户端。按照文档方法加密验证签名。果然提交成功。

关键点在下面:

开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

参数
描述
signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串

开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

1)将token、timestamp、nonce三个参数进行字典序排序

2)将三个参数字符串拼接成一个字符串进行sha1加密

3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

简单来说就是验证一下服务器。在提交服务器设置的时候你可以不用管这个验证过程,直接返回echostr即可。等配置提交完成了再实现也没问题。

 

所以微信你可否给一些更友好一点的错误提示呢?诸如“未能连接到你的服务器”?

迄今为止最便捷的免费SSL证书服务:腾讯云

现在都用SSL了。 这段时间一直在折腾启用这个网站的SSL,前后试过Let’s encrypt 和StartSSL两个服务,均出现各种问题,配置过程也比较繁琐。耗费掉数十个小时不说,也有些备受打击。

而且StartSSL据称被著名流氓公司奇虎360收购了。对于Let’s encrypt,Chrome和iOS似乎对个人签署的证书也不友好,经常显示不信任。

辗转搜索,有人推荐用腾讯云提供的免费个人证书服务,试用下来步骤非常简单,配置也相当傻瓜化,几分钟即可完成。

这里粗略记录一下。

腾讯云SSL服务地址是:https://console.qcloud.com/ssl

若你还未注册,则需要用QQ或者微信登录,然后通过手机号进行简单的注册。

要申请证书,还需要使用真实姓名和身份证号进行实名认证。填入后若正确可即时通过认证,无需上传照片。

然后点击申请证书, 选择左侧的免费证书即可(也可在右侧购买收费证书) Read More

iPhone 6S 自动关机问题可能比苹果想象的要严重

在中消协发出查询函以后,苹果对iPhone 6S 近期大量出现的自动关机问题给出的回复是, 电池相关的某个部件在组装前由于长时间暴露在受控环境空气中的时间过长。导致装有这批电池的6S会出现在较寒冷温度下自动关机的问题。

苹果定义的是“一小批”在2015年9月和10月出产的手机会有这样的问题, 并提供了查询网页让消费者查询自己的手机是否在这“一小批”中。符合此条件的手机将可以免费更换电池,若此前已经付费更换电池的用户,则可以报销费用。

我本人的6S也不幸中招,然而并非苹果说的较寒冷的温度下。根据我的使用记录,在室温14度左右下,依然出现电量高达40%以上的时候关机,室温6度左右的时候,出现电量迅速消耗的情况,大约每一分钟掉2%左右的电量,而我仅仅是在浏览文字网页。

而根据我加的几个相关QQ群内的反应,很多并非2015年9月、10月生产的iPhone也有相应的问题,型号从5到6 PLUS都有。而在其他社交媒体上抱怨自己手机这一问题的也很多,遍布全球。因此有理由相信,这并非苹果说的一小批。

其实去年我的一部5C也出现一样的情况,好在当时在保,苹果给换机了事。可惜后来不就这部5C就丢了。

虽然之前给出了免费更换电池的解决措施,然而很多用户反应,即使在更换新电池以后,依然会出现自动关机现象,有些人在更换电池以后这一问题虽然得以缓解,但并未完全解决。不少用户猜测问题可能出在主板上。出于此原因,我一直未去更换自己电池。

苹果说本周推出的iOS10系统更新将包含可以更有效诊断这一问题的内容,期待苹果能给出一个满意的解答。

 

KickAssTorrent is down… for a stupid mistake

The world’s biggest torrent sharing website KickAssTorrent was shutdown at 22/7/2016.

This is what happens:

  • An undercover agent of FBI contacted the owner of kickass for advertisement, got his email ID
  • The Owner then purchased something with same email ID in Apple’s store
  • Got exposed. The police arrested him in Poland
  • KickAssTorrent website was shutdown

He hided so many years for running this website, how comes he use the same email to purchase in Apple store and contact with others?

So stupid.

Google will shut down Google Code

Well, Google said, there are more great services like Github and Bitbucket, so Google code is not needed any more,  it will shut down Google code service soon. And there is some tools to export your projects to other platform like Github, Bitbucket or SourceForge.

The shut down schedule is:

  • March 12, 2015 – New project creation disabled.
  • August 24, 2015 – The site goes read-only. You can still checkout/view project source, issues, and wikis.
  • January 25, 2016 – The project hosting service is closed. You will be able to download a tarball of project source, issues, and wikis. These tarballs will be available throughout the rest of 2016.

At the same time, Google says it will continue serve some projects like Android and Chrome so that user can continue git them. And also will continue maintaining  mirrors for projects like Eclipse kenel.

Google also gives an export tool to export your project to Github.  And also here is another tool to export any of your projects to Github/Bitbucket/SourceForge.

SourceForge also supplies an import tool to import Google code project.