扎克伯格最近几周的日子显然不好过。作为元宇宙首批公开发布的图像,扎克伯格的新头像已经成为人们找乐子的好素材。但Meta似乎不为所动,坚持把元宇宙视为所谓Facebook 2.0,号称将打造一个能够承载社交、协作和未来工作的完全沉浸式VR体系。但人们对元宇宙的担忧在于,万一它只是Facebook套上层VR外皮,那世界人民岂不要彻底沦为扎克伯格的家奴?而很明显,这位CEO公布的新头像丝毫没能打消人们的焦虑。相较于支持,元宇宙计划招来的似乎更多是嘲笑和冷漠,这自然也沉重打击着扎克伯格的信心。据报道,就连Meta公司也在担心自己无限憧憬的这一VR社交网络可能既不够社交、也不够虚拟。而解决这个问题的关键,也许应该从《堡垒之夜》(Fortnite)这款红遍全球的游戏找起。
用免费电子游戏加上虚拟化来重塑整个线上交互体系,这似乎并不是特别靠谱的思路。然而有专家指出,《堡垒之夜》确实实现了Meta还远未能达成的目标。人们实际上就是沉浸于《堡垒之夜》,而且深深为之着迷。这就是Meta版元宇宙的两大核心诉求所在。更有趣的是,《堡垒之夜》从来没强调过自己有什么革命性。它的“大逃杀”玩法能让用户在这里快速度过第一个11小时,而且虽然作为射击游戏本身并不算成功,但《堡垒之夜》仍然在全球范围内掀起了热潮。如今,它已经建立起蓬勃发展的数字社区。所以,《堡垒之夜》的发展轨迹也许能为元宇宙指明前进的方向。全球合作创意空间已经存在了几十年,但迄今为止仍然脱离不了封装游戏的范畴。《我的世界》(Minecraft)随后依靠无压力协作和无限制游戏内容的设置,在整整六年中持续领先于时代。类似的社区,现在在《Roblox》中也能见到,甚至开始出现在索尼的《Dreams》及其所谓“Dreamverse”当中。但这些只能算是后起之秀。稍微年长些的读者应该还记得2003年亮相的《第二人生》(Second Life),接过“再造一个世界”大旗的《魔兽世界》(World of Warcraft)和《EVE Online》等MMO游戏也包含大量创意和协作内容。就连纯浏览器游戏《憎恨王国》(Kingdom of Loathing)这种粗糙的项目都有自己的铁杆粉丝。ASCII的忠实拥护者也继续在玩MUD和MUCK游戏。不管大家信不信,从《堡垒之夜》到上世纪九十年代的线上文字冒险,都做对了一件Meta到现在也没做到的事情。
但元宇宙计划的惨淡经历让我们看到,Meta还没能做到这个基本前提。目前,关于Meta元宇宙的共识在于,它仅仅只是人们在现实世界中已经实现的创作/协作的VR版本。而元宇宙费尽心力想要重现的运动控制和身临其境的图像,其实在现实当中不用什么成本就能获得。回顾历史,只有带来超越现实的体验,虚拟社区才有可能获得成功。在《我的世界》中重塑世界,在《第二人生》中定制生活,在《堡垒之夜》中尽享赛季,成功的虚拟社区就是要做人们在现实世界里做不到的事情。所以在Meta也能拿出超越现实的成果之前,我们对扎克伯格的元宇宙计划只能继续抱怀疑态度。 我有一个服务模型/表及其注册表。在表单中,我几乎拥有服务的所有字段,但我想在验证服务对象之前自动设置其中一些值。示例:--服务Controller#创建Action:defcreate@service=Service.new@service_form=ServiceFormObject.new(@service)@service_form.validate(params[:service_form_object])and@service_form.saverespond_with(@service_form,location:admin_services_path)end在验证@ser
我的模型有defself.empty_building//stuffend我怎样才能对这个现有的进行rspec?,已经尝试过:describe"empty_building"dosubject{Building.new}it{shouldrespond_to:empty_building}endbutgetting:Failure/Error:it{shouldrespond_to:empty_building}expected#torespondto:empty_building 最佳答案 你有一个类方法self.empty_bu
我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?
在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.
有几种方法:first_or_create_by、find_or_create_by等,它们的工作原理是:与数据库对话以尝试找到我们想要的东西如果我们找不到,就自己做保存到数据库显然,并发调用这些方法可能会使两个线程都找不到它们想要的东西,并且在第3步中一个线程会意外失败。似乎更好的解决方案是,创建或查找即:提前在您的数据库中创建合理的唯一性约束。如果你想保存一些东西,就保存它如果有效,那就太好了。如果它因为RecordNotUnique异常而无法工作,它已经存在,太好了,加载它那么在什么情况下我想使用Rails内置的东西而不是我自己的(看起来更可靠)create_or_find?
是否可以在所有delayed_job任务之前运行一个方法?基本上,我们试图确保每个运行delayed_job的服务器都有我们代码的最新实例,所以我们想运行一个方法来在每个作业运行之前检查它。(我们已经有了“check”方法并在别处使用它。问题只是关于如何从delayed_job中调用它。) 最佳答案 现在有一种官方方法可以通过插件来做到这一点。这篇博文通过示例清楚地描述了如何执行此操作http://www.salsify.com/blog/delayed-jobs-callbacks-and-hooks-in-rails(本文中描述
考虑这个,它工作正常::>.to_proc.curry(2)[9][8]#=>true,because9>8然而,即使>是一个二元运算符,如果没有指定的元数,上面的代码将无法工作::>.to_proc.curry[9][8]#=>ArgumentError:wrongnumberofarguments(0for1)为什么两者不等价?注意:我特别想用提供的一个参数创建中间柯里化(Currying)函数,然后然后调用然后用第二个参数调用它。 最佳答案 curry必须知道传入的过程的数量,对吧?:-1来自arity的负值令人困惑,但基本上
我无法从for循环中获取变量。似乎i(var)是稍后计算的,而不是我完全需要的类定义。ree-1.8.7-2010.02>classPatree-1.8.7-2010.02?>foriin39..47ree-1.8.7-2010.02?>define_method("a#{i}".to_sym)doree-1.8.7-2010.02>putsiree-1.8.7-2010.02?>endree-1.8.7-2010.02?>endree-1.8.7-2010.02?>end#=>39..47ree-1.8.7-2010.02>p=Pat.new#=>#ree-1.8.7-2010.02
是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案
当且仅当模型存在时,我才尝试更新模型的值。如果没有,我什么都不做。搜索似乎只返回更新或创建问题/答案,但我不想创建。我知道我可以用一个简单的方法来做到这一点:found=Model.find_by_id(id)iffoundupdatestuffend但是,我觉得有一种方法可以在一次调用中完成此操作,而无需分配任何临时本地值或执行if。如果记录不存在,我该如何编写一个Rails调用来更新记录而不出现嘈杂错误?最新的Rails3.x 最佳答案 您可以使用try在对find_by_id或where的结果调用update_attribut