Skeleton

Mini-project 3: TCP Chat Client

牧云@^-^@ 提交于 2021-02-03 09:06:12
2019/5/17 Mini-project 3: TCP Chat Client https://canvas.du.edu/courses/78542/assignments/585615 1/2 Mini-project 3: TCP Chat Client Due No Due Date Points 40 Overview This mini project exercises your TCP network programming skills to implement the client side protocols for a chat room. This TCP chat room contains three components (not because it's the best way to do it, but because it's relatively easy to keep the code separated this way). Component 1, which you do not need to implement (yet), is the chat server. This server handles messages from the other two components, and send messages as

React 16

我们两清 提交于 2021-01-17 14:51:39
一.特性 fragment 模版支持fragment和string类型,对应ReactElement数组和字符串 v16.2.0还提供了JSX的fragment支持:<></> error boundary 组件级错误处理,支持捕获子组件树内部异常,UI层的兜底方案 portal 允许组件树与DOM树结构不一致,用于hovercards,tooltips等场景 例如tooltip在DOM结构上target与tip一般是兄弟关系(布局需要),而逻辑上tip是属于target的,是父子关系,portals特性用来处理这种场景 特殊的,事件冒泡经过处理,portals组件的父组件仍然能接到冒泡通知(React 16之前就内置了用来抹平DOM事件冒泡差异的事件系统,这里顺便支持拐弯冒泡 示例) support for custom DOM attributes 之前内置了HTML/SVG属性名白名单,自定义属性会被拦截并忽略掉,React 16去掉了这个限制 去掉该限制有2个原因,其一,这层内置的属性过滤对于非标准的(比如proposal阶段的)新属性和其它库/框架(比如Angular、Polymer)很不友好;其二,bundle里要内置一份体积不小的属性白名单,维护起来还挺麻烦 improved server-side rendering 号称比React 15快3倍

百度小程序性能优化

♀尐吖头ヾ 提交于 2021-01-14 16:32:31
引子 : 一个指标引发的血案 https://www.cnblogs.com/Sherlock09/p/11726885.html 性能优化 进入移动互联网时代,传统Web开发技术(HTML,CSS,JavaScript)风光不再,客户端技术(iOS以及Android)依靠良好的体验重新崛起。但是客户端技术的开发效率始终无法与Web技术抗衡,同时会受到诸多平台层面的限制。在这一大背景下,小程序独特的架构诞生了,它将Web前端技术与传统的客户端技术结合在一起,其目的是在开发效率上超过传统的客户端技术,在使用体验上超越传统的Web前端技术。由于小程序的架构区别于传统的Web前端技术,开发者在开发过程可能会遇到一些性能上的问题。本文旨在介绍百度小程序一些实现原理和优化手段,帮助开发者优化自己的小程序。 一 小程序运行时简介 在传统的Web前端项目中,所有代码全部运行在浏览器中。而小程序提供的运行环境有两种,分为逻辑层和视图层。假设现在开发者的小程序项目中有两个页面 pages/index和pages/home ,那么逻辑层代码指的是 app.js 与 pages/index/index.js 还有 pages/home/home.js ,视图层代码指的是 pages/index/index.swan 和 pages/home/home.swan

用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍

≯℡__Kan透↙ 提交于 2021-01-10 15:00:09
你有没有过这种体验,拍照时对着镜头,脑子一片空白、表情僵硬、手和脚无处安放,最后拍出来的照片很是奇怪。拍照软件中的固定姿势抓拍功能可以帮助你:选择一个你想要的姿势模板,当你摆出同款姿势时,软件会进行自动抓拍,完美避开拍照时的尴尬。本文详细介绍了华为HMS ML kit人体骨骼识别技术的集成过程,该技术精准定位了14个骨骼点,可以轻松实现固定姿势抓拍。 人体骨骼检测功能开发实战 做了一个视频流骨骼识别小demo,做一次实战演练, Github demo源码: https://github.com/HMS-Core/hms-ml-demo/tree/master/Skeleton-Camera 1. 开发前准备 您需要完成必要的开发准备工作,同时请确保您的工程中已经配置HMS Core SDK的Maven仓地址,并且完成了本服务的SDK集成。 1.1 在项目级build.gradle文件中配置maven仓地址。 buildscript { repositories { google() jcenter() maven { url 'https://developer.huawei.com/repo/' } } //配置AGC插件 dependencies { classpath "com.android.tools.build:gradle:3.3.2" } } allprojects

前端骨架屏

戏子无情 提交于 2020-12-24 19:04:08
骨架屏 最近在项目不时有用到骨架屏的需求,所以抽时间对骨架屏的方案作了一下调研,骨架屏的实践已经有很多了,也有很多人对自己的方案作了介绍.在这里按照个人的理解做了一个汇总和分类,分享给大家. 关于骨架屏(简介) 骨架屏就是在页面数据尚未加载前先给用户展示出页面的大致结构,直到请求数据返回后再渲染页面,补充进需要显示的数据内容。常用于文章列表、动态列表页等相对比较规则的列表页面。 很多项目中都有应用:ex:饿了么h5版本,知乎,facebook等网站中都有应用。 借个图举例如下: 两类用途 简介中作了关于用途的说明,但是仍然可以继续细分: 作为spa中路由切换的loading,结合组件的生命周期和ajax请求返回的时机来使用. 作为首屏渲染的优化. 第一类用途 第一类用途需要自己编写骨架屏,推荐两个成熟方便定制的svg组件定制为骨架屏的方案 react-content-loader vue-content-loader 作为首屏渲染(自动化方案) 该方案是饿了么在骨架屏的实践中总结出的一套方案: 骨架屏的dom结构和css通过离线生成后构建的时候注入模板中的节点下面. 原理相关 eleme骨架屏插件实现原理 方案的项目地址: page-skeleton-webpack-plugin 使用时候的注意点: cssUnit的配置: 需要使用自适应的单位,按照文档给出的选择范围选,直接用

【转载】Linux设备树(Device Tree)机制

时间秒杀一切 提交于 2020-11-26 16:50:08
转:Linux设备树(Device Tree)机制 目录 1. 设备树(Device Tree)基本概念及作用 2. 设备树的组成和使用   2.1. DTS和DTSI   2.2. DTC   2.3. DTB   2.4. Bootloader 3. 设备树中dts、dtsi文件的基本语法   3.1. chosen node   3.2. aliases node   3.3. memory node   3.4. 其他节点     3.4.1. Reg属性     3.4.2. Compatible属性     3.4.3. Interrupts属性     3.4.4. Ranges属性 4. DTB相关结构   4.1. Header   4.2. 字符串块   4.3. memory reserve map 5. 解析DTB的函数及相关数据结构   5.1. machine_desc结构   5.2. 设备节点结构体   5.3. 属性结构体   5.4. uboot下的相关结构体 6. DTB加载及解析过程 7. OF的API接口 1. 设备树(Device Tree)基本概念及作用 在内核源码中,存在大量对板级细节信息描述的代码。这些代码充斥在/arch/arm/plat-xxx和/arch/arm/mach-xxx目录,对内核而言这些platform设备

了解REST:动词,错误代码和身份验证

☆樱花仙子☆ 提交于 2020-10-04 03:49:26
问题: I am looking for a way to wrap APIs around default functions in my PHP-based web applications, databases and CMSs. 我正在寻找一种在基于PHP的Web应用程序,数据库和CMS中将API围绕默认功能包装的方法。 I have looked around and found several "skeleton" frameworks. 我环顾四周,发现了几个“骨架”框架。 In addition to the answers in my question, there is Tonic , a REST framework I like because it is very lightweight. 除了我的问题的答案外,还有 Tonic ,我喜欢它是REST框架,因为它非常轻巧。 I like REST the best for its simplicity, and would like to create an API architecture based on it. 我最喜欢REST的原因在于它的简单性,并希望基于它创建一个API架构。 I'm trying to get my head around the basic principles and

如何在微信小程序中使用骨架屏

↘锁芯ラ 提交于 2020-08-11 02:37:40
先上效果图 ​ 骨架屏主要起到占位作用,向用户说明该区域有内容,有一定的心理准备。 聊聊背景:刚上线一款小程序,随着上架的东西越来越多,微信小程序加载越来越慢,会出现一段时间的白屏(大概2-3s),这对用户体验上来讲特别不友好。所以在网上开始找这方面的资料,骨架屏主要分为两种方案,下面来说说这两种方案。 1、为每个需要使用骨架屏的页面定制一套静态页面。 这种方法缺点很明显,需要为每个页面单独定制,布局如果修改则需要同时修改两个页面,增加了维护成本。但这种特别适用于长列表,只需要做用户可见的部分,可在一定程度上增加响应速度。 2、利用工具渲染页面 , 获取指定的DOM节点和对应样式,生成灰色块覆盖在原来的样式结构上,从而实现骨架屏。这种方式简单易用好维护,个人感觉不太适合在长列表页面。https://github.com/jayZOU/skeleton 这款骨架屏组件轻量、方便、快捷,里面有教程,强烈推荐。 使用哪一种方案,就要根据自己的项目情况来进行选择了。我采用的是第一种,因为这个页面加载的DOM节点太多了。从获取到数据后到渲染到页面这段时间有骨架屏做缓冲,效果倍棒。 实现方法: 1、根据原有页面的结构,在重写一个静态页面,把原来用来显示图片、文字的地方替换成有灰色背景色的块。 <!--骨架屏 --> <view class="sort" wx:if="{

Interactive Structure-aware Blending of Diverse Edge Bundling Visualizations

霸气de小男生 提交于 2020-08-07 02:21:38
论文传送门 视频 论文主页 作者 山东大学 Yunhai Wang Mingliang Xue Yanyan Wang Xinyuan Yan 北京大学 Baoquan Chen 香港中文大学 Chi-Wing Fu 法国国立民航大学 Christophe Hurter 摘要 存在许多边捆绑技术(即简化数据以支持数据可视化和决策),但是它们不能直接应用于任何类型的数据集,并且它们的参数通常过于抽象并且难以设置。结果,这阻碍了用户创建有效的聚合可视化效果的能力。为了解决这一问题,我们研究了一种以任务驱动和以用户为中心的方法来处理视觉聚合的新颖方法。给定一个图形,我们的方法将产生一个杂乱的视图,如下所示:首先,用户研究不同的边绑定结果,并指定某些边绑定技术将提供用户所需结果的区域。其次,我们的系统然后计算这些指定区域之间的平滑且结构保留的过渡。最后,用户可以使用直接操作技术进一步微调全局可视化效果,以消除局部歧义并应用不同的视觉变形。在本文中,我们提供了设计原理和实现的详细信息。此外,我们展示了与当前的边捆绑技术相比,我们的算法如何提供更合适的结果,最后,我们提供了用法的具体实例,其中算法结合了各种边绑定结果以支持各种数据探索和可视化。 Introduction Edge bundling methods Force-Directed Edge Bundling Skeleton

linux usb usbip驱动详解(二)

可紊 提交于 2020-08-06 03:28:15
终于来到usbip驱动代码分析了! 我们在做产品时,通常是先讨论方案、制定协议、编码和测试。 usbip的方案是行得通的,它是从URB对象获取信息,然后从tcp发送出去的,URB是linux usb子系统里面用于抽象usb通信而精心设计的对象,只要server和client两边在恰当的时机分别隔断各自系统的usb通信流程,然后巧妙地交换数据,各自系统都察觉不到,就像黑客利用钩子函数做rookit。如果server和client都是linux系统,就很容易理解了,毕竟部门内的兄弟好说话,跨部门沟通就没那么好了。譬如是linux和windows的话,那么linux的urb就需要转换为windows那边能辨认的的“urb”了,它们的结构体成员肯定不一样,毕竟操作系统都不一样,不过够信息组包就好了。 usbip有一套协议,用于解决上述问题。 协议文档在kernel源码根目录下的drivers/usb/usbip/ usbip_protocol.txt ,比较新的版本在Documentation/usb/usbip_protocol.txt 在描述usbip原理前,我们先回顾下usb主机控制器和usb驱动(接口驱动)的关系。可以通过阅读usb-skeleton.c代码来学习USB设备驱动是怎么写的。简单来说,当主机控制器驱动里的hub.c检测到root hub的port有插入设备