查看详情

TP 50 小计

在新公司由于工程师会更多的参加到数据分析中来,因此有的术语,尤其英文环境下还是需要去了解和学习的。比如 TP 50. 自己才开始看到时候还有些差异,但是透过上下文是能猜出什么意思来的。 这个是亚马逊的测试童鞋发给我的,自己之前确实没有太多统计学的工作经验,因此记录一下。 Top percentitle, TP 是一个统计学术语,表示一组数据按照从小到大排序,并计算器累计百分位则某一百分位的值就为这百分位数。 常见的我们会听到 TP50, TP90, TP99。 比如 一组数据 [10s, 1000s, 100s, 2s] 表示请求时长。 排完序后 [2s, 10s, 100s, 1000s] TP 50 就是 Math.ceil(4 * 0.5) = 2 也就是第二位的值 10s; TP 90 就是 Math.ceil(4 * 0.9) = 4 也就是最后一个 1000s。 有的运算会更加精细, 详情 »

查看详情

HTML5 Video VideoPlaybackQuality 实现丢帧统计

在 Web 开发中,我们依赖于 Video 元素进行视频播放,相对 Android 或者 Windows 客户端程序,我们更加依赖浏览器测对 Video 元素提供了什么样的能力。 而如果我们需要对丢帧率进行统计,现在有了 VideoPlaybackQuality 来完成改功能。 目前主流浏览器都得到了支持 VideoPlaybackQuality 对象表示了一系列描述视频播放质量的指标。 可以通过 HTMLVideoElement.getVideoPlaybackQuality() 创建一个实例来获取。 里面包含下面的属性; .creationTime 一个用毫秒表示从开始页面浏览到对象创建的 DOMHighResTimeStamp 对象 .totalVideoFrames 表示相 HTMLVideoElement 自从创建起的已创建和丢弃帧数数量总和的值 .droppedVideoFrames 表示相关联的 HTMLVideoElement 自从创建起的已丢弃帧数数量值 .corruptedVideoFrames 一个表示相关联的 HTMLVideoElement 自从创建起的损坏帧数数量的值。一个损坏帧可能属于创建帧或丢弃帧 这样我们通过简单的 droppedVideoFrames / totalVideoFrames 来实现一个丢帧比例的计算,从而实现一个质量的保证。而 hls.js-fps-controller.ts 也是采用相关 API 来实现播控质量的控制。 checkFPSInterval( 详情 »

查看详情

HTML5 Video 元素 Ready State 分析

最近一直在做 MSE 相关的事情,机缘巧合下碰到了关于 ReadyState 和它有可能触发的事情的研究,于是写下这篇文章作为记录。 Video 元素维持内部几个非常重要的状态,这些都是只读的: paused 属性,你可以直接从 video elment 上读取,当你暂停视频的时候,Video 元素会讲这个属性值改为 true, 这里还有一些别的情况,我会在后面一篇文章分析 readyState 属性,当然你也可以从 Video 元素上读取,不同 readyState 意味着 video 的不同状态。 官方罗列了这些状态值: // video element ready state Enum const unsigned short HAVE_NOTHING = 0; const unsigned short HAVE_METADATA = 1; const unsigned short HAVE_CURRENT_DATA 详情 »

查看详情

对于 Web 开发者非常有用的 ADB 命令

虽然 adb 是 Android 开发的同学经常用到的命令行工具,但是对于做一些 Webview 页面的调试或者 Hybrid App 开发前端同学,可能有的时候也需要接触下,尤其进行关键日志的搜集和查找。这里罗列下自己经常会用到的,记录下。 罗列当前的包名,可以展示当前安装的包的。 adb shell cmd package list packages 进行某些包的日志输出,比如你可以换成自己的应用包名。 adb logcat --pid=`adb shell pidof -s xxx.your.pakcage.com` 显示某个包当前的一些系统信息,比如运行内存信息,关于 Android 的内存,你可以读这篇文章了解更加每个参数含义: https://developer.android.com/tools/dumpsys#meminfo adb shell dumpsys meminfo | find 'com.xxx. 详情 »

查看详情

从 Netflix A/B 测试所学到的

最近细读了 Netflix 关于 A/B 测试的分享, 系列文章链接: Part1-奈飞的决策 Part2-什么是A/B 测试 part3-解释A/B测试:假阳性和统计显著性 Part4-解释A/B测试结果:假阴性和权威 part5-建立对决策的信心 最近自己在实践中开始有一些问题或者一些困扰,但是这一些列文章很好的给出了我们一些解释; 什么是 A/B 测试 来自 WIKI的定义: A/B测试为一种随机测试,将两个不同的东西(即A和B)进行假设比较[1][2]。该测试运用统计学上的假设检定和双母体假设检定。 A/B测试可以用来测试某一个变量两个不同版本的差异,一般是让A和B只有该变量不同,再测试其他人对于A和B的反应差异,再判断A和B的方式何者较佳 Netflix 举了一个简单的例子: 比如我们想了解将电视用户界面中所有方框图翻转的体验是否对我们的会员有好处。 为了运行实验,我们选取​​成员的子集(通常是简单的随机样本),然后使用随机分配将该样本均匀地分成两组。“A 组”通常被称为“对照组”,继续获得基本的 Netflix UI 体验,而“ 详情 »

查看详情

【译】了解像素密度和视网膜分辨率,以及为什么它对 AR/VR 头显很重要

原文链接: https://www.roadtovr.com/understanding-pixel-density-retinal-resolution-and-why-its-important-for-vr-and-ar-headsets/ 虽然我们大多数人习惯于处理描述像素数的分辨率数字(即:1920×1080 显示器),但以每度像素表示的像素密度是一个更有用的数字,尤其是在处理 AR 和 VR 头显时。实现“视网膜分辨率”是耳机的最终目标,在一定的像素密度下,即使是视力完美的人也无法辨别任何额外的细节。本文探讨了这些概念,并了解了当今头戴式设备与视网膜分辨率的差距。 Yuval Boger 的客座文章 Yuval 是Sensics的首席执行官和OSVR的联合创始人。Yuval 和他的团队设计了 OSVR 软件平台并构建了 OSVR 产品的关键部分。他经常在他的博客上分享他的观点和知识。 如果人眼是一台数码相机,它的“数据表”会说它有一个能够在中央凹(视力最高的视网膜部分)检测 60 像素/度的传感器。对于视觉质量,任何超过 60 像素/度的显示器本质上都是在浪费分辨率,因为眼睛无法捕捉到更多细节。这称为视网膜分辨率或眼睛限制分辨率。 这意味着,如果有一张 3,600 详情 »

查看详情

WebXR Guide 分享

终于找到机会分享了自己最近几年一直想分享的话题,这次分享也是非常浅显,重点在于科普这个东西; 本篇文章感谢 《WebXR 入门必读》 提供的一些资料,也感谢 MDN 非常棒的文档,自己结合了去年开发 Oculus PWA 的一些探索; English Version 在分享前,我觉得我需要回顾下计算机的发展历史; 从20世纪40年代,世界诞生了第一台计算机,那个时候计算机还是一个大个子选手,界面和按键都非常粗糙;而我们只能通过各种信号灯的组合来传达具体的信息;随着技术的发展,美国各大公司进入个人计算机市场,我们熟悉的计算机模样,诞生了;我们认识到了鼠标,键盘;随着时间的推移,人们开始追求越来越轻量化,我们拥有了笔记本,用书包就能够随时随地的带着它到处办公;来了新世纪,我们拥有了触摸屏的 iPad,这是人类历史上非常伟大的发明之一;冯诺依曼模型,输入与输出完美了结合在一张显示屏上;带给了我们非常多的创新交互; 而最近十年,人类还在寻找下一代计算机通用设备;比如 Apple Meta 都花了非常多资源在 VR 设备上,所以我们也可以期待它是否可以承担起这样的角色。因为 VR 头显设备本身,具备最先进显示技术,结合它超自由度的空间交互,会给人类进行创作,娱乐, 详情 »

查看详情

Chrome 如何使用自带二维码分享

作为前端开发,大家经常开发移动页面,经常会 Chrome 调试完,然后生成二维码,让手机预览看下效果;尽管可以分享链接,但是很多时候大家都是关掉的(个人认为:不太好用); 最近无意之中,看到了 Chrome 地址栏上的 分享 功能。因为一直用的 PC 比较多,所以也没咋点击。今天意外点击发现了一个非常实用的功能: 随后就会出现二维码,你可以截图或者下载它,然后分享给你的同事。 虽迟但到,点赞 Chrome 团队。 这样大家再也不用安装第三方插件了。 详情 »

查看详情

Warp - Mac 上最好用的命令行工具之一

虽然有些标题党,但是我觉得自从使用 Warp 后确实没有再想回到使用 iTerm2 的时代。 Warp是近几年出现的一款非常火爆的命令行工具,如同它的 slogan: The terminal for the 21st century 既然到了新世纪,自然要用新世纪的工具。 Warp 是一个非常快的、基于 Rust 的终端,它使您和您的团队在运行、调试和部署代码方面更有效率。 我为什么切到 Warp 大家都懂互联网的一个现象,跳槽比较多,经常会换电脑。而每次用新电脑,都会自己装各式各样的软件,其中命令行工具也是其中一个。所以自己每次在初始化 iterm2 的时候,都会花些时间。当然也有非常多的一键式配置,但是还是觉得会比较麻烦。分享一片自己比较喜欢的配置: iTerm2 + zsh + oh-my-zsh + Material Design The Most Power Full Terminal on macOS 随后自己发现了 Warp,这张表格展示他的基本功能;而 Warp 详情 »

查看详情

AIGC 真的解决了我的痛点

最近几个月,最火的无疑是 ChatGPT; 人民很难预估到技术奇点的来临;自己才开始对人工智能的理解也还骗概念性,直到最近非常火之后,开始尝试它们是否真的可以解决自己遇到的问题; 而自己平时每次写博客都回想着封面,而自己一般会自己去 PS 一些,有一些从第三方网站找一点,然后再处理成合适的封面; AIGC 的方向有很多,比如视频,图片,新闻等;于是乎自己尝试能不能找到合适的站点省去图片制作的环节; 比较火的的平台有; nightcafe craiyon dall-e-2 而自己尝试了 fotor; 下面简单列举几张效果: 输入 Android: 输入 Headsets: 输入 Summer: 你实在不知道输入什么关键词,你直接输日期也行 输入 March 21 输入 2023 这里面你可以选择很多效果: Concept Art Anime Japanese Anime B & W 3D Psychedlic Pop Oli Painting 期待后续上新更多风格; 这次 ChatGPT 详情 »