查看详情

下等马理论

最近自己再工作悟道了一个重要的理论,去帮助大家降低工作的压力和忧虑。 我们知道 田忌赛马的典故: 齐国使者到魏国都城大梁来,孙膑以一个受过刑的罪犯的身份暗中会见了齐使,用言辞打动齐国使者,齐国使者觉得孙膑的才能奇异,就偷偷地用车把他载到齐国。齐国的将军田忌欣赏孙膑而以客礼待之。田忌多次与齐国的诸公子赛马,下很大的赌注。孙子注意到他们的马奔跑能力不相上下,并且分上、中、下三等。因此孙子对田忌说:您只管下大注,臣下必能使您获胜。田忌相信并答应了他,与齐王和诸公子用千金来赌胜,到了临比赛时,孙子说:请用您的下等乘马对付他们的上等乘马,请用您的上等乘马对付他们的中等乘马,请用您的中等乘马对付他们的下等乘马。三等乘马全部比赛完毕,结果田忌一场不胜而两场胜,终于得到王的千金之赏。所以田忌把孙子推荐给齐威王。威王向他请教兵法,因而任他为军师。 这个故事里面最重要的特征,就是有三等马。如果我们仔细想一想:下等马是这里面是非常重要一环: 下等马可以衬托上等马的优秀 下等马关键时刻是可以可以和别家的上等马进行消耗 下等马不太会主动越级不造成他人的竞争干扰 所以下等马不够优秀,但是广受欢迎。 如果我们日常生活中工作中,可以尝试将自己当做下等马。这样你就不会: 这个实现有个小bug 被发现了(下等马:嗯,这说明我们的测试很优秀) 有人在我的 PR 提出质疑了(下等马:嗯,上等马不愧是上等马,果真很厉害) 详情 »

查看详情

什么是 DRM

DRM (英语:Digital rights management,缩写为DRM)是一系列访问控制技术,通常用于控制数字内容和设备在被销售之后的使用过程[3][4][5]。DRM有时也称为拷贝保护、复制控制、技术保护措施等。许多数字出版社和软件厂商都使用了DRM,例如亚马逊、AT&T、AOL、Apple Inc等。它如今一次成为很多公司最为基本的一想服务和要求。而且在音视频,文档,电子书领域都有他的存在。这里自己主要介绍音视频中的 DRM。 如今,电视音乐已经成为我们生活的一部分。如果大家回忆历史的话,我们最初接触这些东西是通过电视,而不是 APP。那个时候大家还流行通过租借 VCD 的形式,来看成龙周星驰的电影。随着数字媒体的兴起,我们可以非常容易的在网上看到最新的电影,这给电影的制作商带来了非常大的利益损失。因此对于非常复制的盗版打击,一直都是这些从事内容提供商一直需要去处理的事情。 DVD论坛的内容扰乱系统是一个早期的DRM系统。它使用简单的加密算法,制作DVD播放器的厂商必须获得授权在产品中实现此技术,然后才能解密并播放DVD中的加密内容。授权条款规定了播放DVD内容的方式,包括输出信号的格式和方式,以保证在电视上播放时视频的加密不受破坏。 在1999年,微软发布了WMDRM,用于执行媒体文档包含的DRM指令,限制用户对媒体文档的使用。这些DRM指令可以指定文档的播放次数、是否能被备份或转发。 详情 »

查看详情

深入理解 DRM 系列

准备开始写一系列关于 DRM。由于自己主要从事流媒体工作,这里也以流媒体的内容为主。 这里大概会写几篇,代码部分会聚焦在 Web 端的内容处理。自己最近一直在从事这方面的工作,因此也希望罗列整理一些资料,分享自己在这方面的一些心得。 DRM 目前已经存在于绝大多数的服务 APP 中。最直观的体验,就是你可以尝试看一些来自 Disney 等电影公司的电影,时候你可以尝试截图试一下: 我们可以从 Bilibili 网站点击进去,发现截图的时候是黑屏。这样也是为了防止录屏将视频流出去。尽管我们有 DRM 保护技术,但是还是依旧存在严重的流媒体盗版事件。因此DRM发展依旧有很长的路。 这一些列文章,自己将从下面几个部分区介绍: 什么是 DRM 常见的流媒体DRM 方案 Web 前端如何支持 DRM 深入理解 Widevine HDCP介绍 PSSH and PSSH Box 介绍 常见的 DRM 问题 希望这一系列文章,可以帮助大家去慢慢理解 DRM 工作,并且在日常工作中有所实践。 详情 »

查看详情

分享十件让自己愉悦的事情

现在年轻人,都非常忙碌, 工作压力巨大,因此大家都在寻求一些让人可以短暂放松的方式。这里分享五件自己觉得还不错的方式,可以让人获得短暂的愉悦心情; 跑完步后逛超市 自己觉得每次跑完步后,大汗淋漓。然后去 711 或者盒马,逛一圈。跑完步后,大脑处在一个兴奋的状态,看看展示柜里琳琅满目的各式各样饮料,挑一瓶合意的,也算是开心的事情。 去看一部喜欢的电影 周末无聊的时候,自己最近几年会尝试挑一部经典的电影。完全看心情,有时候会看喜剧,有的时候会看有历史痕迹的电影。又或者跟着某位明星看。自己去年喜欢两个系列,一个跟着范伟老师看的,拍了很多类型,喜剧,文艺片都有。而且评价还挺好。然后是看了几部很早的差不多九几年到新千年的电影,主打一个中国传统的官场文化,人情世故。我觉得这件事情也是非常容易做,也不会有太多压力的。 Citywalk 如果你希望长时间一点的话,可以尝试一次无拘无束的漫步。不用太在意去哪里,就是从某个点到某个点,走上半天或者一天,累了就休息休息,饿了就看看周边有什么食物。这样的话,既有身体的运动,也有脑海的放空,效果还是挺不错的。 删照片 现在好多人相册里肯定有很多照片,有重复拍摄的,有很多时候是交流截图,因此花些时间清理下照片,也是非常不错的事情。可以很好的治愈和解压。看着照片数量的优化, 详情 »

查看详情

Typesctip unknown vs any

Typescript 如今已经成为非常火的开发语言,很多公司都将它作为首要的项目搭配。自己也是在使用中,发现了国外工程师非常严苛的要求用对 unknown 和 any。 unknown 类型,顾名思义:任何值都可以分配给unknown类型,但如果没有类型断言,unknown则不能分配给除自身和any类型之外的任何值。unknown同样,如果没有首先断言或将其限制为更精确的类型,则不允许对类型设置为 as 的值进行任何操作。 any 则是当变量的类型未知或变量的类型尚未定义时使用的泛型类型 其实我们看一段代码就很好理解了: let vAny: any = 10; // We can assign anything to any let vUnknown: unknown = 10; // We can assign anything to unknown just like any let s1: string = vAny; // Any is assignable to anything let s2: 详情 »

查看详情

使用 DOMParser 解析 XML 文件

大家可能偶尔会有碰到在 Web 端处理 XML 的文件 Case. 之前大家可能第一时间想的是正则表达式。 我们经常用它来进行标签或者属性的匹配。 但是今天会给大家带来一种全新的思路。我们知道 XHTML 是 XML 的子集。而且很早 HTML 就开始自己自定义的标签了。因此我们可以尝试借助 DOM Node 的思想把我们的 XML 文件字符串来进行 Dom 节点的转换。 var parser, xmlDoc; var text = `<?xml version="1.0" encoding="UTF-8"?> <!--Generated with https://github.com/google/shaka-packager version v1.5.1-c540e5a-release--> < 详情 »

查看详情

记一次胃镜体验

记一次胃镜体验 这么大终于体验了一次胃镜; 之前一直对胃镜保持一种神秘感,感觉东西从嘴巴进去然后一直向里面探视,感觉怪怪的。要是自己肯定会恶心干呕的。然而这次体验却出气怪。差别非常大。 背景 先说说背景: 自己是差不多一周前,一次空腹跑完步后,回家吃完饭,第二天开始隐隐约约有些上腹胀痛。持续了四五天。才开始不太重视,因为以前觉得胀痛,一会就好了。结合去年的类似情况,去医院,医生了开了几道慢性的胃炎的药,吃了之后也好了一些。所以自己也就没当回事。 但是这次似乎有些严重,因为每次吃完饭的感觉特别明显,感觉有东西堵在那里。于是周四还是去了医院看下具体什么原因。医生第一时间还是觉得是慢性胃炎,调理一下。但是这次又觉得,结合去年情况,建议自己做个胃镜,看看究竟什么情况。可能随着癌症的案例越来越多,恐怕很多人也是会非常担心是不是会有这么个情况,因为早期的胃癌是非常难以发现的。大多确疹都是中后期了。所以患者心理特别在意,其实也可以尝试做一个。 当然如果你有补充医疗保险,其实真的可以尝试一下,而且胃镜虽然也叫侵入式手术,但是远远没有那些常规手术比较。尤其无痛胃镜,非常快,很多人说30-45分钟就完成了。如果你年龄超过30岁了,医生也是建议有条件的可以每隔2-3年做一次胃镜检查。 这里还有一个指标,就是 C14 的幽门螺旋杆菌的感染测试,如果是阴性的话,可以暂时不用做,因为从概率学上分析,幽门没有感染, 详情 »

查看详情

loadedData,loadedMetadata,canplay 什么时候播放最好

最近一直在做 MSE 相关的事情,机缘巧合下碰到了关于 ReadyState 和它有可能触发的事情的研究,于是写下这篇文章作为记录。 前面一篇文章 HTML5 Video 元素 Ready State 分析 分析了 readyState 状态的具体含义,今天则会根据状态和关键事件来进行分析。 VIdeo 关于启动播放,有下面这些事件选择: loadedmetadata: 事件在元数据(metadata)被加载完成后触发 loadeddata: 事件在媒体当前播放位置的视频帧(通常是第一帧)加载完成后触发。 canplay: 事件在终端可以播放媒体文件时(但估计还没有加载足够的数据来播放媒体直到其结束,即后续可能需要停止以进一步缓冲内容)被触发。 canplaythrough: 事件在终端可以播放媒体文件时(估计已经加载了足够的数据来播放媒体直到其结束,而不必停止以进一步缓冲内容)被触发。 我们可以看到事件先后顺序是: loadedmetadata -> loadeddata -> canplay -> canplaythrough 我们再看看 3G 网速下的测试效果: 可以看到还是 loadedmetadata -& 详情 »

查看详情

[译]提升程序员生活质量的八个建议

原文链接:https://dev.to/wraith/my-8-tips-for-a-better-life-as-a-developer-1hfg 上周在邮件推送里面看到的一篇文章,真的让我觉得应该分享给大家。中国内卷的氛围,包括非常强的竞争压力,让我们忽视了作为程序员这份工作,应该如何快乐享受它,希望这篇文章能够帮助大家解决一些忧虑。毕竟我们工作,挣钱,晋升都只是一生中的少数亮点,一生中往往更多的是平淡,如何平淡中增加些乐趣,真的很重要。 我担任软件开发人员和工程师已经有 8 年多一点了,从我自己的经验以及从一些非常有才华的人那里学到了很多东西。在这篇文章中,我想分享一些真正让我的体验变得更好、更愉快的事情。有些是技术性的,有些只是一般生活技巧。但所有这些都改善了我在软件开发方面的生活和经验,希望通过分享这些课程和技巧,我可以帮助您避免一些我为了弄清楚它们而必须经历的不愉快的时光。 找到一个你喜欢工作的地方 译者注: 工作地点真的很重要,自己公司会有居家办公策略,有时候自己回去咖啡馆,感觉哪里效率并不会差,反而会更加专注,于是乎打开北京咖啡馆办公,也是自己计划一部分 您的环境对您的生活贡献很大。它可以增加或减轻压力,帮助您集中注意力或分散注意力,让您感到安全或不安全等等。因为它在我们每个人的生活中都扮演着不可或缺的角色,所以我认为从这里开始是合适的。 无论您是在办公室还是远程工作,您很可能可以采取一些措施来找到一个让您感觉“合适”的地方。我说“对”是因为这里每个人都会有所不同。有些人想要感到舒适和“宾至如归”。其他人想要一个不太舒适的区域, 详情 »

查看详情

【译】如何轻松的在你的Oculus 设备上测试的 WebXR 项目

原文链接: https://medium.com/@lazerwalker/how-to-easily-test-your-webvr-and-webxr-projects-locally-on-your-oculus-quest-eec26a03b7ee WebXR 目前还是特别小众的项目,所以在 Oculus 上调试也是需要一些实践的,希望这篇文章可以提升这方面的效率 最近,我花了很多时间使用 Babylon.js 制作 VR 游戏原型。我喜欢 Babylon 和 WebXR API 等技术如何让我利用现代 Web 开发的快速迭代时间构建 VR 体验,而不是使用 Unity 等较慢的编译循环。 也就是说,直到最近,我的开发工作流程中有一部分让我很恼火! 我的大部分测试都是在 Oculus Quest 上进行,开发则在 Mac 上进行。WebVR 和 WebXR API 都要求您从通过 HTTPS(而不是非安全 HTTP)提供服务的网页访问它们,大多数浏览器都为localhost. 由于我使用的是 Mac,因此无法通过 Quest 详情 »