2021-05-07 16:30:00 ~ 2021-05-08 16:30:00
本文不会给出一套通用的 IM 方案,也不会评判某种架构的好坏,而是讨论设计 IM 系统的常见难题跟业界的解决方案。因为也没有所谓的通用方案,不同的解决方案都有其优缺点,只有最满足业务的系统才是一个好的系统。而且,在有限的人力、物力跟时间资源下,通常需要做出很多权衡,此时,一个能够快速迭代、方便扩展的系统才是一个好的系统。
语雀编辑器遇到了什么样的问题以及技术上的思考。
从在地图上回放共享骑行,到实时解决物理安全问题,到管理成千上万的自行车和滑板车车队,再到查看自动驾驶汽车的轨迹,Lyft的前端服务支持大量不同的用例。
随着Lyft在过去十年的发展,我们的业务需求也变得越来越复杂。然而,满足这些不同需求的一个核心要求是必须要有高性能的网络应用。
我们与熟悉Lyft前端工程历史的高级工程师和员工坐下来,了解我们是如何应对性能挑战,并建立一个生态系统来支持需要高性能网络应用的无数使用案例的。通过回顾我们在Lyft构建100多个高性能前端微服务的历程,我们已经将我们的经验提炼成我们所说的网络性能需求层次,这是一个可以战略性地识别构建网络应用的组织中最有影响的性能需求的系统。
在Airbnb,我们依靠数据为我们的关键决策提供信息。我们通过随机对照实验来验证产品理念,并严格跟踪我们的业务表现,以确保我们为利益相关者实现价值最大化。为了实现这些目标,我们需要建立一个强大的数据平台,为内部用户的端到端需求服务。
虽然我们之前已经分享了我们如何将数据摄入我们的数据仓库,以及如何让用户利用上下文数据进行自己的分析,但我们还没有讨论过中间层:如何正确建模并将数据转化为准确的、可分析的数据集。
在这篇文章中,我们将分享我们建立Minerva的历程,Minerva是Airbnb的计量平台,被整个公司用作分析、报告和实验的单一真实来源。具体来说,我们将介绍我们为什么要建立这个平台,描述它的核心功能和它所支持的工具生态系统,并强调它对Airbnb的影响。在接下来的文章中,我们将深入研究Minerva背后的技术,并分享我们一路走来的经验教训。通过发布这个系列,我们希望我们的读者能够欣赏像Minerva这样的系统的力量,并受到启发,为他们的组织创造类似的东西。
在Uber,运营的实时监控和自动化对于维护市场健康、保持可靠性和获得市场效率至关重要。根据 "实时 "一词的含义,这种监控需要显示现在正在发生的事情,及时获取新鲜数据,并能够根据这些数据建议适当的行动。Uber的数据平台提供自我服务工具,使运营团队能够建立自己的实时监控工具,并通过建立丰富的解决方案来支持他们的区域团队。
在这个项目中,我们的要求是提供商户层面的监控,并处理复杂的内部市场管理工具所不能解决的边缘情况。我们使用了Uber的各种实时数据平台组件,建立了一个名为Charon的工具,以减少市场可靠性差对商户的影响。
在2020年初推出的Charon最终非常有效,它使在COVID-19封锁期间关闭的餐馆和其他商户只需提供送货服务。在这篇文章中,我们以Charon COVID-19的用例来说明Uber的数据平台是如何赋予团队更快建立和适应的。
减少洲际文件传输的延时
想象一下,你正在与全球各地的人进行重要的视频通话,但是当你开始说话的时候,你的队友在你的线路上只听到一个破碎的机器人声音。遇到这种情况,对你和电话另一端的人来说是多么令人沮丧?
这些抖动或延迟问题对我们来说并不陌生。它们甚至可能与底层软件无关,而更多的是与网络的设置方式有关。
在PayPal,由于我们总是希望以最高的质量提供最好的客户体验,我们通过使用CDN和边缘计算优化网络设置,解决了相当多的延迟问题。我们现在在全球各地设置了边缘服务器,以低延迟的方式提供网页。
这篇文章涵盖了PayPal DropZone,一个安全的文件传输平台,如何使用现有的PayPal Edge基础设施改善文件传输的延迟和可用性。
Airbnb的使命是 "创造一个任何人都可以属于任何地方的世界"。这一信息通过市场营销传递给世界各地的人们,例如:"看到什么是可能的,当它是由房东实现的。它帮助Airbnb把客人和房东联系起来,建立一个强大的社区,无疑为公司的惊人增长做出了贡献。
Airbnb的营销是令人兴奋的--它在许多方面都提出了挑战,其中之一是在不同的广告平台上核算活动跟踪(见图1)。跟踪使营销团队有充分的能力来分析活动的表现和影响,然后进一步优化这些活动,以最小的预算实现其目标。
在这篇博文中,我们将讨论Airbnb如何建立一个统一的跟踪测量系统,通过引入C参数跟踪以及分析和增长评估系统来支持营销活动。
在这篇文章中,我们将介绍Netflix Drive,一个用于媒体资产的云驱动器,并对它的一些功能和界面做一个高度概括。我们打算把这篇文章作为介绍Netflix Drive的系列文章中的第一篇文章。在未来的文章中,我们将对Netflix Drive的几个组件进行架构上的深入研究。
假设你拥有一个已经运行得相当好的生产型ML模型。你知道在你的模型中添加相关的和不同的信号源是提高性能的一个可靠方法,但是找到能够真正提高性能的新功能可能是一个缓慢而乏味的试验和错误过程。
在搜索之初,你可能会寻求重新使用为其他项目开发的功能,或者你可能会选择你怀疑会对你的模型有益的新功能的原型。无论哪种情况,都可能有成百上千个潜在的新功能需要探索,其中许多是常见主题的轻微变化。根本的问题是,不清楚这些功能中的哪一个(如果有的话)会真正改善你的模型的性能。绝大多数的新功能将与已有的功能部分重叠(如果不是完全重叠的话)。
你可以尝试一次加入一个或一小组,以评估个别的影响,但这需要时间,而且这种方式很难发现不同功能之间的协同作用。
观点、情感以及与之相关的许多概念,如评价、态度、感情和心情,与我们主观的感觉和感受密切相关。我们对于现实世界的感知和感受,包括我们做出的任何选择,也很大程度上受到他人对于当前世界的洞察和观点的影响。情感分析伴随着网络社会媒体(如评论、论坛、微博、新闻资讯网站)的兴起而快速发展。这些也被称为用户生成内容(ugc)的社会媒体数据,社会媒体中用户生成内容蕴含了大量的用户观点信息,要从中挖掘有用知识需要对情感计算与观点挖掘问题进行研究。自2000年来年初以来,情感计算已称为自然语言处理领域最活跃的研究问题之一。情感计算系统几乎在每一个企业、卫生机构、政府乃至整个社会都有广泛应用。
在现有的计算机中,二进制常常以字节数组的形式存在于程序当中。例如在C#里面,就用byte[],标准C里面没有byte类型,但可以通过typedef把byte定义为unsigned char的别名,效果是一样的。JS设计之初似乎就没想过要处理二进制,对于字节的概念可以说是非常非常的模糊。如果要表达字节数组,那么似乎只能用一个普通数组来表示。
然而随着业务需求的逐渐发展,出现了WebGL这样的技术。所谓WebGL,就是指浏览器与显卡之间的通信接口。为了满足JavaScript与显卡之间大量的、实时的数据交换,它们之间的数据通信必须是二进制的,而不能是传统的文本格式。类型化数组(Typed Array)就是在这种背景下诞生的。而类型化数组是建立在ArrayBuffer对象的基础上的。下面介绍一下Arraybuffer。
LRC 是一种常见的歌词保存格式, 使用文本的形式保存。
关注公众号
接收推送