H5多媒体标签

H5多媒体标签 在 HTML5 之前,如果想在网页上播放音频和视频,则需要安装第三方插件,常用的是 Flash 。使用插件有以下几方面缺点:第一,比较繁琐;第二,容易出现安全性问题;第三,大部分情况下只能在计算机上使用。传统的HTML在播放 HTML5 DOM 为 和 元素提供了方法、属性和事件。这些方法、属性和事件允许使用 JavaScript 来操作 和 元素。下面对这两个标签分别讲解。 audio标签(音频播放) 本标签主要在页面中加载音频,进行播放,但是播放格式是有限制的。如下表: 格式IE9+Firefox3.5Opera11.5Chrome 4.0safari 4.0Ogg×√√√×Wav×√√×√Mp3√××√√ 本标签属性名及属性说明如下表: 属性名称属性说明audioTracks返回表示可用音频轨道的 AudioTrackList 对象。autoplay设置或返回是否在加载完成后随即播放音频/视频。buffered返回表示音频/视频已缓冲部分的 TimeRanges 对象。controller返回表示音频/视频当前媒体控制器的 MediaController 对象。controls设置或返回音频/视频是否显示控件(比如播放/暂停等)。crossOrigin设置或返回音频/视频的 CORS 设置。currentSrc返回当前音频/视频的 URL。currentTime设置或返回音频/视频中的当前播放位置(以秒计)。defaultMuted设置或返回音频/视频默认是否静音。defaultPlaybackRate设置或返回音频/视频的默认播放速度。duration返回当前音频/视频的长度(以秒计)。ended返回音频/视频的播放是否已结束。error返回表示音频/视频错误状态的 MediaError 对象。loop设置或返回音频/视频是否应在结束时重新播放。mediaGroup设置或返回音频/视频所属的组合(用于连接多个音频/视频元素)。muted设置或返回音频/视频是否静音。networkState返回音频/视频的当前网络状态。paused设置或返回音频/视频是否暂停。playbackRate设置或返回音频/视频播放的速度。played返回表示音频/视频已播放部分的 TimeRanges 对象。preload设置或返回音频/视频是否应该在页面加载后进行加载。readyState返回音频/视频当前的就绪状态。seekable返回表示音频/视频可寻址部分的 TimeRanges 对象。seeking返回用户是否正在音频/视频中进行查找。src设置或返回音频/视频元素的当前来源。startDate返回表示当前时间偏移的 Date 对象。textTracks返回表示可用文本轨道的 TextTrackList 对象。videoTracks返回表示可用视频轨道的 VideoTrackList 对象。volume设置或返回音频/视频的音量。 下面对部分属性进行代码讲解。 <!--controls属性控制播放(音乐播放控制器面板) --> <audio src="http://mp3.9ku.com/mp3/550/549564.mp3" controls></audio> <!--autoplay 加载之后自动播放(谷歌、ie)、火狐尝试不好用--> <audio src="http://mp3.9ku.com/mp3/550/549564.mp3" autoplay></audio> <!--preload :文件比较大时候用这个,三个值 none:不进行缓存 auto:默认,选择性的缓存 metadata:只缓存文件原信息 --> <audio src="http://mp3.9ku.com/mp3/550/549564.mp3" preload="none"></audio> <!--muted静音的属性 --> <audio src="http://mp3.9ku.com/mp3/550/549564.mp3" muted></audio> <!--oog文件: ie和safari不支持 在多媒体标签内加入source标签,用来指定多个播放路径, 当第一个如今出错时。自动切换到第二个 source:当浏览器支持的格式文件不一样时,我们在添加音频资源的时候需要考虑到浏览器时候致辞。 可以准备多个格式的音频文件供浏览器选择,当第一个source标签的路径出错时,自动会切换到第二个source标签 (下属代码不能够直接使用,记得选中自己的文件) --> <audio> <source src="

微信html5程序,H5跳转微信小程序

如题,最近有项目需要H5跳转到微信小程序,之前的认知中,跳转到微信小程序只有通过公众号、小程序、扫码这几种方式。终于H5支持跳转小程序了,废话不多说直接贴代码 1、需要微信公众号,并且是已经认证过的服务号。文档链接:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html,这个和获取微信公众号个人信息接口有点类似。 wx.config({ // debug: false, // 调试时可开启 appId: jsonData.content.appId, // timestamp: jsonData.content.timestamp, // 必填,填任意数字即可 nonceStr: jsonData.content.nonceStr, // 必填,填任意非空字符串即可 signature: jsonData.content.signature, // 必填,填任意非空字符串即可 jsApiList: jsonData.content.jsApiList, // 必填,随意一个接口即可 openTagList: ['wx-open-launch-weapp'], // 填入打开小程序的开放标签名 }) 唯一不同的是添加了:openTagList开放列表。这个接口是需要从服务器请求的,jsondata是服务器返回的数据信息。 2、H5中需要加入标签: 打开小程序 以上就是所需参数:小程序原始ID和小程序的页面路径,需要注意的地方:template 标签必须有,它所包含的标签设置样式的话要直接写在标签里面,要不然不起作用。如果使用微信浏览器直接点开就可以跳转小程序, 如果是使用手机浏览器的话需要小程序生成URL Scheme,进入小程序点击工具 最后把生成的url scheme 放到H5里面,代码如下:window.location.href = "weixin://dl/business/?t=arfgrpQvnWt";就可以完成浏览器跳转小程序了。 3、记得实现引入jssdk.js. 以上就可以完成从H5跳转微信小程序了,如有不懂评论区留言。

鸿蒙pc系统镜像,鸿蒙系统有pc版么_鸿蒙系统有pc版安装方法

鸿蒙系统作为华为推出的一款操作系统,它跟其他安卓ios系统还是有很大区别的接。但是华为除了有手机还有电视使用鸿蒙系统之外电脑也是华为手机不可缺少的一款。那鸿蒙系统pc版怎么下载呢? 1.鸿蒙系统pc版安装方法 首先在电脑上插入U盘,然后打开制作软件“rufus 3.1”。 随后选择其中的华为鸿蒙系统镜像文件,其他默认并点击开始。 点击是进行链接的下载,勾选以ISO镜像模式写入。 点击OK,等待U盘启动制作并写入华为鸿蒙系统。 将制作好的U盘插入电脑开机启动按F12,选择U盘启动。 从U盘中启动后选择“start newstart dev”进入安装。 此时会进入安装界面,点击“安装系统”开始安装。 选择鸿蒙系统所在的硬盘分区再点击下一步。 设置管理员密码后点击开始安装。 进入安装后等待十分钟左右即可完成安装。 安装成功后点击重启即可进入登录界面,创建用户和密码登录后即可体验。 2.鸿蒙系统目标 有时候想想2020年华为确实让人有非常惋惜之情,因为芯片事件直接让品牌差不多沉寂了一年,虽然期间华为也有新机更替,但是我跟你说这期间新机更替讲道理不算什么正常操作,用我之前的观点就是“华为是做着一阳来复的事情,一阳来复来自易经的第二十四卦”大致意思就是遇到挫折没有关系,但是万事万物都要经历复兴之路 所以2020年芯片事件之后,华为的所有新机都是为了“复兴之路”而出来的,没有什么值得质疑、吐槽、夸赞的,但是我们要有一颗静观其变的心,然而今天,没错就是今天,华为终于走出了复兴之路,鸿蒙一出代表着什么?没错,就是全新的华为来了,那么作为花粉的你怎么看呢? . 那么所谓鸿蒙系统究竟是什么呢?首先我们普通用户要明白的是华为全新鸿蒙发布时间是6月2日晚上20点“手打滑稽正好是黄金时间”,其实对于鸿蒙系统,教主曾经有过这样的猜想,那就是鸿蒙绝对不会像目前安卓系统和IOS系统一样,它表面是一个系统OS没错,但是实际上确实代表了手机系统的一个生态结构 而曾经华为大佬任正非说过,为什么华为没有和谷歌、苹果竞争的资格。其实技术倒是全部具备,但是华为唯一欠缺的就是没有一个良好且完美的生态系统,而鸿蒙或许就一个技术和生态结构样样具备的系统OS,所以我个人认为鸿蒙虽然表面上是一个系统,但是实际上已经超越了手机系统的档次,反正不管怎么样,得看今晚华为鸿蒙系统发布后究竟怎么样? 3.总结 鸿蒙系统还是非常的不错的,在pc端也能正式的好好使用,小伙伴们如果心动了就赶快行动吧。

html中批量上传图片插件,轻量级图片批量上传JS插件(可选择多图)

【实例简介】 插件功能 1、批量选择图片,限制限制图片的类型 (通过限制file的accept) 默认:accept="image/gif,image/jpeg,image/jpg,image/png,image/svg" 2、可以自定义限制选择图片的数量,默认5张 3、可以自定义限制图片的最大宽度和最大高度,默认都是10000px 4、可以自定义限制图片的单文件大小,默认是4MB 【实例截图】 【核心代码】 var imgFile ; $(function () { imgFile = new ImgUploadeFiles('.review_img', function (e) { this.init({ MAX: 6, //Limit the number of images FileSize: 1024 * 1024 * 4,//单文件限制4MB(注意:单位KB) callback: function (arr) { console.log(arr) } }); }); });

小米怎么卸载html,小米11内容中心有什么用?怎么关闭和卸载呢

小米11内容中心是什么,这是很多小米11用户所不了解的,很多人会发现在没有任何设置的情况下,上滑搜索功能被换成了内容中心。那小米11内容中心怎么关闭和卸载呢?下面,小编就来跟大家详细介绍一下。 小米11内容中心有什么用? 其实小米11内容中心有点类似于华为的负一屏,在小米11内容中心可以看热榜、看视频等等,内容丰富,但并不是每一个人都喜欢这个东东,下面我们来提供关闭的方法。 小米11内容中心怎么关闭和卸载 1、首先这个内容中心是无法卸载的,但我们可以关闭它,先进入小米11的手机设置,点击“桌面”。如下图所示: 2、然后,我们再选择“桌面上滑”。如下图所示: 3、接下来,我们可以勾选“无”,即可关闭内容中心,当然也可以勾选“搜索”,就表示上划出现快捷搜索了。 4、小米11内容中心关闭完成之后,返回手机桌面之后,我们在桌面按住上滑,查看就没有内容中心了。 另外,如果你是老版本的MIUI,则需要进入设置 -> 关于 -> 关闭内容中心即可。 上述就是小米11内容中心有什么用?怎么关闭和卸载的全部方法了,更多技巧,尽在智能手机网相关文章! 文章来源:https://www.znsjw.com/app/14659.html

数据存储之HBase的RowKey设计

HBase的RowKey设计需要根据具体的数据进行设计,一般来说需要依据的设计原则有三个: 长度原则:避免没有必要的资源消耗散列原则:避免热点问题,也是RowKey设计主要考虑的地方唯一原则:保证RowKey不重复 RowKey长度原则 RowKey的长度一般设计为定长,越短越好。如果RowKey设计得过长容易引发以下问题: 第一、RowKey太长容易过多占用memorystore和磁盘空间,导致我们需要存储的数据使用的资源减少 第二、RowKey过长Client缓存元数据的条数会变少,导致需要频繁请求读取元数据 RowKey散列原则 如果单纯使用时间或有规律的字符串作为RowKey,往往容易使资源集中存储在单个或少数几个RegionServer中,在大量数据需要被访问时,单个RegionServer响应不过来,就会造成检索效率降低。所以在设计RowKey时,我们常常使用一些方法将RowKey尽量均匀的分布在每一个RegionServer中,具体的方法列举以下几个: 1.预分区+加盐 不设置预分区就默认只有一个region,我们可以在建表时设置预分区,并指定每个region的rowkey范围。 所谓加盐,就是给rowkey添加随机数前缀,预分区时就将产生随机数的范围按照每个region平均划分,使每个rowkey对应的数据去到每个region的概率一样 2.字符串反转 将时间或者数字等前面不改变后面几位经常改变的rowkey进行反正,使这种大量连续的rowkey不会被分到同一个region中 3.hash 哈希会使同一行永远用一个前缀散列。哈希也可以使负载分散到整个集群,但是读却是可以预测的。 使用确定的哈希可以让客户端重构完整的rowkey,可以使用get操作准确获取某一个行数据 RowKey唯一原则 每条数据的RowKey不能重复 RowKey是每一条数据的唯一标志,Hbase检索数据只能通过三种方式: 第一、单个rowkey检索 第二、rowkey range检索 第三、全表检索 所以我们必须保证rowkey设计时的唯一性

通过哪些方法可以获取页面的html元素,JavaScript获取页面元素的常用方法详解

1、通过标签获取元素,返回一个数组 var li = document.getElementsByTagName('li');//标签获取元素 li[0].innerHTML;// 查看获取元素的内容 li[0].innerHTML = "content";//修改获取到标签中的内容 2、通过id获取页面元素 var header = document.getElementById("header");//id获取元素 3、通过class名字获取页面元素 var list = document.getElementsByClassName('list');//返回一个数组,通过下标访问文本 4、通过CSS选择符方式获取页面元素 //querySelector:返回符合条件的第一个 var str = document.querySelector('li'); var str1 = document.querySelectorAll('li');//全部返回,每个li都是一个对象 JavaScript获取页面的常用方法 // 1、通过标签获取元素,返回一个数组 var li = document.getElementsByTagName('li'); //2、通过id获取页面元素 var header = document.getElementById("header"); // 3、通过class名字获取页面元素 var list = document.getElementsByClassName('list');//返回一个数组,通过下标访问文本 // 4、通过CSS选择符方式获取页面元素 //querySelector:返回符合条件的第一个 var str = document.querySelector('li'); // querySelectorAll:返回符合条件的每一个 var str1 = document.querySelectorAll('li'); JavaScript学习 HTMLjQueryJavaScript HTMLjQueryJavaScript 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

HTTP状态码、请求及响应

文章目录 1.HTTP状态码2.HTTP请求报文由3部分组成(请求行+请求头+请求体)1)请求行:2)请求头 3.HTTP的响应报文也由三部分组成(响应行+响应头+响应体) 1.HTTP状态码 状态码:由3位数字组成,第一个数字定义了响应的类别 1xx:指示信息,表示请求已接收,继续处理 2xx:成功,表示请求已被成功接受,处理。 200 OK:客户端请求成功204 No Content:无内容。服务器成功处理,但未返回内容。一般用在只是客户端向服务器发送信息,而服务器不用向客户端返回什么信息的情况。不会刷新页面。206 Partial Content:服务器已经完成了部分GET请求(客户端进行了范围请求)。响应报文中包含Content-Range指定范围的实体内容 3xx:重定向 301 Moved Permanently:永久重定向,表示请求的资源已经永久的搬到了其他位置。302 Found:临时重定向,表示请求的资源临时搬到了其他位置303 See Other:临时重定向,应使用GET定向获取请求资源。303功能与302一样,区别只是303明确客户端应该使用GET访问307 Temporary Redirect:临时重定向,和302有着相同含义。POST不会变成GET304 Not Modified:表示客户端发送附带条件的请求(GET方法请求报文中的IF…)时,条件不满足。返回304时,不包含任何响应主体。- 虽然304被划分在3XX,但和重定向一毛钱关系都没有 4xx:客户端错误 400 Bad Request:客户端请求有语法错误,服务器无法理解。401 Unauthorized:未授权。请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。403 Forbidden:服务器收到请求,但是拒绝提供服务404 Not Found:请求资源不存在。比如,输入了错误的url415 Unsupported media type:不支持的媒体类型 5xx:服务器端错误,服务器未能实现合法的请求。 500 Internal Server Error:服务器发生不可预期的错误。503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常502 Bad Gateway:网关错误。作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。504 Gateway Time-out:网关响应超时。作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。 2.HTTP请求报文由3部分组成(请求行+请求头+请求体) 1)请求行: 例如:POST /chapter17/user.html HTTP/1.1 格式:请求方式 资源路径 协议/版本 请求行必须在http请求格式的第一行。 get请求: 将请求参数追加在url后面,不安全 url长度限制get请求方式数据的大小 没有请求体 一般的HTTP请求大多都是GET。 常见get请求: 地址栏直接访问、<a href="">、<img src="">等 post请求: 请求参数在请求体处,较安全。 请求数据大小没有显示 只有表单设置为method=“post”才是post请求,其他都是get请求

2-1 组合优化问题

1. 组合优化问题 组合数学(Combinatorics)是数学的一个分支,主要研究有限的或者可数的离散结构的存在性、计数和构造问题。 组合优化(也叫离散优化)指在有限个可能解的集合中找出最优解的优化问题。 1.1 组合优化问题定义 首先,我们通过定义对实例和问题做一个区分: 定义1.1(最优化问题的实例) 一个最优化问题的一个实例是一个二元组 ( F , c ) (F,c) (F,c),其中 F F F 是一个集合, c c c 是代价函数,从 F F F 映射到实数集合。要求找出一个 f ∈ F f\in F f∈F,使得对所有的 y ∈ F y\in F y∈F,都有 c ( f ) ≤ c ( y ) c(f)\le c(y) c(f)≤c(y) ,则 f f f 称为最优解。 定义1.2(最优化问题) 一个最优化问题包含该问题的所有实例。 简单来说,一个实例是给定了输入数据的特定问题,一个问题是所有实例的集合。 定义1.3(组合优化问题) 从一个包含有限对象的集合中,找出一个最优化的对象。 组合优化问题研究的对象是离散的,有限的。 1.2 组合优化问题举例 典型的组合优化问题包括旅行商问题、调度问题、背包问题、装箱问题、最大团问题、聚类问题、图着色问题等。下面我们简单描述一下这些问题,以增强理解。 例1. 旅行商问题(Traveling Salesman Problem, TSP) 给定一个带权无向图 G = ( V , E ) G=(V,E) G=(V,E),找出图中一条权值最小的哈密顿回路。哈密顿回路是指从图中某个点出发,经过图中所有节点并回到出发点的路。图中所有顶点必须经过且只能经过一次。

html5页面的dtd定义是,html基本概念

HTML是前端开发最基本的语言,也是最重要的语言之一,我们在浏览网页时做看到的内容是最直接的表现形式就是HTML代码。 一个完整的网页需要几个组成部分:也就是说我们一个网页的基本骨架中的组成部分。 以下代码片段就是最基本的html骨架: HTML文件标题 HTML头信息 HTML内容信息 Html基本概念的详解: 一个html骨架包含文档类型声明,html标签,head标签,body标签 ①HTML文档 首先要声明一个文档类型(也叫DTD),也就是上面例子第一行(http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> ),该网页定义了XHTML1.1文档类型(文档类型是为了说明这个html页面使用了哪种HTML规则)。 ②标签 Html标签是一对双标签,由开始标签和结束标签组成。表示HTML文档的开始与结束,也是HTML文档的根元素。除了文档类型外的所有页面内容,都包括在html元素中。表示整个网页页面。HTML标签中主要分为头部信息(head)与内容信息(body)。 ③head标签 Head标签也是一对双标签,由开始标签 和结束标签组成。Head标签是书写头部信息的部分。 Head标签书写文档的HTML相关信息,比如标题title,页面的语言与文字类型,css样式,javascript代码,简短描述,关键词等内容,是用户无法直接在网页中看到的。 ④body标签 Body标签也是一对双标签,也是由开始标签 和结束标签组成的。Body标签内部书写是网页的主体部分,是用户可以看到的全部内容。比如段落,超级链接,表格,表单等。书写代码时一定要有层次感(注意标签之间的嵌套关系,有嵌套关系的标签要有缩进),head标签和body标签都是在html标签中的,再写子元素标签时,应使用tab键,使子元素产生缩进,这样代码会更有层次感。

html5页面的dtd定义是,关于html5 dtd/schema的另一个问题

Quentin.. 6 如果没有DTD或模式来验证H5文档,我们应该如何进行文档验证? 使用专门的HTML5验证器,而不是通用的SGML或XML验证器. 显然,由于规范仍处于草案形式,现有的工具尚不成熟,可能已过时或过时. 当然,W3C有一个在线工具可以验证各个页面.但是,如果我正在创建大量页面(数百,比方说)并且我想以某种批处理模式验证它们,那么确保有效结构和语法的可接受方法是什么? 使用不同的工具或下载W3C验证器并运行本地副本.它有一个SOAP API,因此编写批处理验证工具并不困难. 自定义标签怎么样? HTML5不允许自定义元素. 标签属性怎么样? HTML5中唯一的自定义属性是data-*属性,因此HTML 5验证器可以识别它们. 好像W3C在这里稍微偏冷了我们. 您似乎期望HTML 5(未完成)的QA工具的状态达到与HTML 4(十多年前)相同的标准.这不是一个现实的期望. 也许最好的答案可以在HTML编辑器中找到.但是你得到了DTD /模式碎片.每个编辑器供应商都会提出自己的有效结构. 即使没有以DTD或模式的形式表达,规范也很清楚(虽然不断变化).如果每个编辑器对什么是有效的有不同的想法,那么它们中的大部分或全部将会过时或者只是错误. 也许答案是"等待HTML5成为官方".但我真的不能等待.我现在需要开始创建和验证内容.我有想要发布的应用程序,只能用html5完成. 如果你需要生活在最前沿,那么你必须接受这样做的限制和风险.

html5开车的动画效果,运用HTML5实现超赞的单车动画效果

运用HTML5实现超赞的单车动画效果_网页代码站(www.webdm.cn) var framecounter = 800;//为了完成作业,无耻了点,在这里设置变量…… var direction = "left"; function drawBikeBody () { var canvas = document.getElementById('diagonal'); var context = canvas.getContext('2d'); context.lineWidth = 3; context.beginPath(); context.moveTo(0,0); context.lineTo(150,0); context.lineTo(100,100); context.closePath(); context.moveTo(100,100); context.lineTo(200,75);//后轮轴承点 context.lineTo(150,0); //下面那个一个脚踏 context.moveTo(100,100); context.lineTo(110,120); context.lineTo(120,120); context.moveTo(110,120); context.lineTo(100,120); //另一个脚踏 context.moveTo(100,100); context.lineTo(90,80); context.lineTo(100,80); context.moveTo(90,80); context.lineTo(80,80); //座包 context.moveTo(150,0); context.lineTo(160,-20); context.lineTo(175,-20); context.moveTo(160,-20); context.lineTo(135,-20); //扶手 context.moveTo(0,0); context.lineTo(15,-30); context.lineTo(10,-35); context.lineTo(20,-40); context.lineTo(40,-40); //前轮轴承 context.moveTo(0,0); context.lineTo(-35.5,75);//前轮轴承点 //前轮 context.moveTo(75-35.5,75);//去掉这个目测不行啊,貌似context.arc()方法里有lineTo context.arc(-35.5,75,75,0,Math.PI*2,true); //后轮 context.moveTo(200+75,75); context.arc(200,75,75,0,Math.PI*2,true); } function drawForcePiece1(){ var canvas = document.

html5开车的动画效果,html5 canvas制作仪表盘动画特效

特效描述:html5 canvas制作 仪表盘动画特效。html5 canvas制作仪表盘动画特效 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 radial radial-component linear-component issue-63 async scripted Animate Stop animation data-min-value="0" data-max-value="360" data-major-ticks="N,NE,E,SE,S,SW,W,NW,N" data-minor-ticks="22" data-ticks-angle="360" data-start-angle="180" data-stroke-ticks="false" data-highlights="false" data-color-plate="#222" data-color-major-ticks="#f5f5f5" data-color-minor-ticks="#ddd" data-color-numbers="#ccc" data-color-needle="rgba(240, 128, 128, 1)" data-color-needle-end="rgba(255, 160, 122, .9)" data-value-box="false" data-value-text-shadow="false" data-color-circle-inner="#fff" data-color-needle-circle-outer="#ccc" data-needle-circle-size="15" data-needle-circle-outer="false" data-needle-type="line" data-needle-start="75" data-needle-end="99" data-needle-width="3" data-borders="true" data-border-inner-width="0" data-border-middle-width="0" data-border-outer-width="10" data-color-border-outer="#ccc" data-color-border-outer-end="#ccc" data-color-needle-shadow-down="#222" data-animation-target="plate" data-animation-duration="1500" data-animation-rule="linear" data-width="300" data-height="300" data-units="ᵍ" data-value="0" > data-width="300" data-height="300" data-min-value="0" data-max-value="360"

实训中学到的HTML基础知识(2)

今天是实训的第三天,是正式上课的第二天,今天学习到的知识是HTML里的表单标签和CSS样式表。 一、表单 表单是一个包含表单元素的区域,表单元素允许用户在表单(比如文本域、下拉列表、单选框、复选框等等)输入信息的元素。 form 表单标签 <form> 定义供用户输入的表单 <input> 定义输入域 <textarea> 定义文本域 (一个多行的输入控件) <label> 定义了 <input> 元素的标签,一般为输入标题 <fieldset> 定义了一组相关的表单元素,并使用外框包含起来 <legend> 定义了 <fieldset> 元素的标题 <select> 定义了下拉选项列表 <optgroup> 定义选项组 <option> 定义下拉列表中的选项 <button> 定义一个点击按钮 <datalist>New 指定一个预先定义的输入控件选项列表 <keygen>New 定义了表单的密钥对生成器字段 <output>New 定义一个计算结果 输入元素 文本域 text 密码字段 password 复选框 checkboxes 单选按钮 radio buttons 提交按钮 submit 属性 value:提交数据到服务器的值(后台程序PHP使用) name:为控件命名,以备后台程序 ASP、PHP 使用 checked:当设置 checked="checked" 时,该选项被默认选中 selected:使此选项成为默认选项。 disabled:使此选项无法点击。 style="display:none":使此选项不在旧版浏览器中显示。 hidden:使此选项不显示在下拉列表中。 二、CSS样式表 CSS 选择器 标签选择器 HTML标签名(元素)作为选择器名称,如:div 、h1 、p … 类选择器

数字电子时钟设计

文章目录 目的仿真视频讲解其他资料注意事项 目的 使用4511、4060、等芯片实现一个数字电子时钟,要求: 有时、分、秒正常显示、进位能够实现分钟加、小时加有一键清零功能 关于时钟设计资料仿真讲解比较少,所以在博客上做一个备份,希望能够帮到同学。 仿真 ps:这里下面的寄存器是无效的,后面视频有讲解 视频讲解 数字电子时钟讲解 其他资料 4511和74ls47互替代 4518 电路仿真图纸质版(和实际仿真有出入,仅参考) 器件表 电子时钟图片版仿真(电子发烧友资源) 没有一键清零 有一键清零 注意事项 建议大家仿真时多用网络标号,这样可以不用画那么大而且比较清晰,但不要有漏线等情况。CD4081BD是CMOS器件,工作电源电压是 3V ~ 18V。TTL元件74LS08工作电源电压是5V。两种芯片都是2输入端四与非门。但引脚引出排列不一样。最开始用示波器观察进位二极管之前的波形发现脉冲电压是2v多,4081输出最低电压3v,二极管0.7,进位脉冲过不去,然后换了高电压的与门。

cocos2dx -- 坐标转换出错

1:坐标转换问题 之前在Node的生命周期onEnter做坐标转换,发现加了适配widget,转换的坐标有问题 换到onEnterTransitionFinish就正常了,估计是因为在onEnter坐标还没最终设置完成。 virtual void onEnter(); //被添加到场景中的节点时调用 virtual void onEnterTransitionDidFinish(); //被添加到场景中的节点完成时调用 virtual void onExitTransitionDidStart(); //开始从场景中的节点移除时调用 virtual void onExit(); //从场景中的节点移除完成后调用 virtual void cleanup(); //停止在场景中运行的所有节点状态

基于高德地图导航的路径爬取

打中青杯的时候写的路径爬取小程序~~ 高德地图的API种类很多,这里选用路径导航来做路线爬取~ 先用pyhon通过高德地图的API爬取起始点到终点的经纬度坐标,并绘制,代码如下: ​ import requests import json import pandas as pd import matplotlib.pyplot as plt #输入起始地址和城市,终点地址和城市 start=input("start:") start_city=input("start_city:") end=input("end:") end_city=input("end_city:") #获取起点和终点的经纬度坐标 start=requests.get('https://restapi.amap.com/v3/geocode/geo?key=<在高德地图上申请的key>&address=%s&city=%s'%(start,start_city)) end=requests.get('https://restapi.amap.com/v3/geocode/geo?key=<在高德地图上申请的key>&address=%s&city=%s'%(end,end_city)) start_j=json.loads(start.text) end_j=json.loads(end.text) start=start_j["geocodes"][0]["location"] end=end_j["geocodes"][0]["location"] #获取导航信息 url='https://restapi.amap.com/v3/direction/driving?key=<在高德地图上申请的key>&origin=%s&destination=%s&originid=&destinationid=&extensions=base&strategy=0&waypoints=&avoidpolygons=&avoidroad='%(start,end) r=requests.get(url) j=json.loads(r.text) #处理导航信息 s="" for i in range(len(j["route"]["paths"][0]["steps"])): s=s+";" + j["route"]["paths"][0]["steps"][i]["polyline"] new_s="jingdu,weidu" for i in range(len(s)): if s[i]==";": new_s+="\n" else: new_s+=s[i] with open('result.csv','w') as f: f.write(new_s) f.flush() data=pd.read_csv('result.csv') #画出路线 plt.plot(data.values[:,0],data.values[:,1]) plt.show() ​ 其中,高德地图的key获取方式如下: 到官网:高德开放平台 | 高德地图API (amap.com) 然后右上角登陆 右上角,控制台

java stream collect方法详解

jdk 1.8版本中stream的collect方法 <R> R collect(Supplier<R> supplier, BiConsumer<R, ? super T> accumulator, BiConsumer<R, R> combiner); stream.collect() 的本质由三个参数构成, Supplier 新建对象, 用来返回的最终结果 BiConsumer accumulator 累加器直接取,将流中每个被遍历的元素添加到新建对象中 BiConsumer combiner 合并器, 在有并行流的时候才会有用, 一个流时代码不会走到这里 举例说明,这里使用方法注释中的例子来说明,代码如下 String concat = stringStream.collect(StringBuilder::new, StringBuilder::append, StringBuilder::append) .toString(); 改造一下,增加日志,使用map来体验collect方法 Map<String, Object> map = new HashMap<>(16); map.put("name", "飒飒飒"); map.put("sex", "帅哥"); map.put("age", "18"); for (Map.Entry<String, Object> s : map.entrySet()) { log.info("{}", s); } String concat = map.entrySet().stream().collect(StringBuilder::new, (stringBuilder, entry) -> { log.info("开始利用新建的对象进行累加原始串:{}, 待累加的值:{}", stringBuilder, entry); stringBuilder.

Xshell连接时显示“服务器发送了一个意外的数据包。received:3,expected:20“问题的解决方法

一、问题描述 最近在大数据服务器上安装了openbsd6.7版本,安装完后通过xshell连接,弹出一个错误对话框,提示“服务器发送了一个意外的数据包。received:3,expected:20”的错误信息。 检查sshd服务是正常开启的,防火墙也没阻止,可能是sshd可能与xshell存在兼容性问题。因为我在其他unix系统下通过ssh是可以正常连上的。但是在堡垒机上,是可以登录连接的,但是打开xftp会提示“服务器发送了断开连接数据包。[USM] 'sftp' userauth failed, please check root@娉拌开淳中暄鎂缥箄鑾~ 10.16.15.17:22"'s password (code: 11)”的错误信息。 这样对于习惯用xshell的人来说很不方便,尽管已经装了SecureCRT 8.1。 二、解决方法 使用别的连接工具或者堡垒机上操作,在/etc/ssh/sshd_config最后增加以下一行(别选错了,不是ssh_config): KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1 然后重启sshd服务或者重载服务配置文件,命令如下: systemctl restart sshd 如果提示“-bash: systemctl: command not found”信息,则使用如下命令: service sshd restart 重启运行结果。 问题解决,尝试重新使用Xshell连接服务器。 文章未经博主同意,禁止转载!

FCOS代码复现错误集合

在我复现无锚框检测神网络-FCOS时,官方代码—FCOS-master令我头疼不已,现将问题总结如下,仅供参考: 1.from fcos_core import _C 遇到这个问题抓耳挠腮了好久,尝试过各种方法,最后不得已,在文件所在目录下重新执行: python setup.py build develop --no-deps 再次运行的时候,没有出现这个报错。 2.cv2.error: OpenCV(4.5.1) /tmp/pip-install-2f1_c8js/Opencv-python/opencv/modules/highgui/src/window.cpp:651: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function ‘cvShowImage’ 尝试了好几种解决方式,目前无解 File “/home/damon/anaconda3/lib/python3.7/site-packages/yacs/config.py”, line 211, in merge_from_file with open(cfg_filename, “r”) as f: FileNotFoundError: [Errno 2] No such file or directory: ‘’ 错误出现在train——net代码121行,没有放置相应的文件。

数据存储之HBase数据读写流程

HBase写数据流程 写数据流程: client访问zookeeper,获取元数据表位于哪个regionserver前往目标regionserver,拿到元数据表并根据rowkey等信息查询出数据应该位于哪个regionserver的哪一个region中,并将这个表的region信息以及meta表的位置信息缓存在客户端的meta cache,以便下次访问与目标regionserver通信将写入操作顺序写入(追加)到WAL将数据写入对应的memstore,数据会在memstore中进行排序向客户端发送ack,告知写入成功等待到了memstore的刷写时机后,将数据刷写到storeFile中 HBase读数据流程 读数据流程: client先访问zookeeper,获取元数据表位于哪个regionserver前往目标regionserver,拿到元数据表并根据rowkey等信息查询出数据应该位于哪个regionserver的哪一个region中,并将这个表的region信息以及meta表的位置信息缓存在客户端的meta cache,以便下次访问与目标regionserver通信按顺序去Block Cache(读缓存)、memstore和HFile中查询目标数据,并且将查到的所有数据进行合并。此处所有数据指的是同一条数据的不同版本(timestamp)或者不同操作类型将从文件中查询到的数据块(Block:HFile数据存储单元,默认大小为64kb)缓存到Block cache将合并后的结果返回给客户端

实训中学到的HTML基础知识(1)

今天是实训的第一天上课,老师给我们上了简单的html基础,也和同学们愉快地探讨了关于HTML的相关知识,所以用CSDN来记录一下今日所学所感。 一、HTML基础 HTML就是超文本标记语言的缩写,它的重点是标签,由各种通过<>包裹的标签组成,它简易性好,可扩展性强,且与平台无关。 1.<html>......</html>部分 强调HTML标签都以“< >”开始、“</ >”结束 说明网页基本结构中这几个标签的用法 网页中所有的内容都放在<body>和</body>之间 2.<meta>部分 meta 标签描述了一些见面的基本的元数据。这些元数据不会显示在页面上,但会被浏览器解析。 <meta> 一般放置于 <head> 区域 二、HTML元素 标准文档流构成:块级元素/行级(行内)元素 块级元素( block ) ü <div> 、 <h1> 、 <h6> 、<p>… 块级元素 “ 独占一行 ” 显示,通常用来当作容器使用, 制作 页面布局 v 行级元素( inline ) ü <a> 、 <span> 、 < img > 、<strong>… 行级元素:宽高就是内容的宽度,行内元素不能容纳块级元素 其它行级元素:textarea、button 等

centos7 设置 查看 开机 启动项(自启项)

查看启动项命令 systemctl list-unit-files 左边是服务名称,右边是状态,enabled是开机启动,disabled是开机不启动 [root@39 ~]# systemctl list-unit-files UNIT FILE STATE proc-sys-fs-binfmt_misc.automount static dev-hugepages.mount static dev-mqueue.mount static proc-sys-fs-binfmt_misc.mount static sys-fs-fuse-connections.mount static sys-kernel-config.mount static sys-kernel-debug.mount static tmp.mount disabled brandbot.path disabled systemd-ask-password-console.path static systemd-ask-password-plymouth.path static systemd-ask-password-wall.path static session-1.scope static session-2.scope static session-3.scope static aliyun.service disabled arp-ethers.service disabled AssistDaemon.service enabled atd.service enabled auditd.service enabled autovt@.service enabled blk-availability.service disabled brandbot.service static chrony-dnssrv@.service static chrony-wait.service disabled chronyd.service disabled cloud-config.service enabled cloud-final.service enabled cloud-init-local.service enabled cloud-init-upgrade.

JAVA携带参数(带有请求参数,请求头参数)直接发送POST请求

package com.test; import org.apache.http.HttpEntity; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import java.util.ArrayList; import java.util.List; public class Test { public static void main(String[] args) { sendPost(); } public static void sendPost(){ String value="12222"; //创建post请求对象 HttpPost post = new HttpPost("http://localhost:8080/test"); try { //创建参数集合 List<BasicNameValuePair> list = new ArrayList<BasicNameValuePair>(); //添加参数 list.add(new BasicNameValuePair("key", value)); list.add(new BasicNameValuePair("releaseDate","2020-07-14 09:55:20")); //把参数放入请求对象,,post发送的参数list,指定格式 post.setEntity(new UrlEncodedFormEntity(list, "UTF-8")); //添加请求头参数 post.addHeader("timestamp","1594695607545"); CloseableHttpClient client = HttpClients.

多线程-RGB_LED闪烁灯

目录 线程RTX Thread API实验:RGB灯闪烁准备配置线程编译运行 其他multiple instances(多个实例)joinable Thread(可接合线程) 小结参考资料 开始学习线程之前,你可能需要复习: ☞为什么使用RTOS? ☞RTX系统移植 如果准备就绪,那么,进入正题! 线程 线程概念 In CMSIS-RTOS2, the basic unit of execution is a “Thread”. A Thread is very similar to a ‘C’ procedure but has some very fundamental (根本的)differences. An RTOS program is made up of a number of threads, which are controlled by the RTOS scheduler. 线程是程序执行的基本单元。我们可以将程序分解为多个功能相对独立的子任务(类似C函数模块化调用),然后为每个子任务分配一个线程,而RTOS负责子任务之间的调度,从而实现多线程的"并行",提高程序的实时性和效率。 unsigned int procedure(void){ // C function ... return (ch); } void thread(void* arg){ // thread while(1){ .

do.....while(0)用法

在c中,我们遇到的有三种循环语句:for, while和do…while,最近在看一些别人写的代码时候,遇到了do…while(0),当时十分不理解,为什么要这样子做。 下面说一下为什么要用到do…while(0) 消除代码的冗余避免使用goto语句 解释1: 我们在写程序的时候,在一个函数中如果遇到需要判断情况的,有时动不动需要判断几个参数,或者我们的代码像下面这样子。 bool Execute() { // 分配资源 int *p = new int; bool bOk(true); // 执行并进行错误处理 bOk = func1(); if(!bOk) { delete p; p = NULL; return false; } bOk = func2(); if(!bOk) { delete p; p = NULL; return false; } bOk = func3(); if(!bOk) { delete p; p = NULL; return false; } // .......... // 执行成功,释放资源并返回 delete p; p = NULL; return true; } 这个例子最大的问题就是代码十分的冗余,而且不利于后续的扩展,每一次工程师加一个情况就需要加几个判断情况,这时候有人可能想到goto语句;程序就变成下面;

asp.net GridView列宽度设置(横向滚动条)

1.GridView显示数据时,我们要控制每列显示的宽度,可是有时候我们发现,它的显示并没有按照我们设置的像素显示,要么有的列变宽了,要么有的列变窄了. GridView是会自动给各列分配宽度像素的,所以,除非你设置的各列宽度刚好等于这个GridView的总宽度,否则它就不会根据你想的来设置各列的宽度. 解决的办法就是,留着最后一列不设置宽度,在设置了其他列宽度的情况下,GridView自然会把所有剩下的宽度像素分配给这个没有设置宽度的列.这样一来,其他的列就是你要的显示宽度了。 2. <asp:BoundField DataField="Memo" HeaderText="备注" > <ItemStyle Width="20%" Wrap="True" /> </asp:BoundField> 3. <asp:GridView ID="gv1" runat="server" AutoGenerateColumns="false" AllowPaging="True" BorderColor="Silver" BorderStyle="Solid" BorderWidth="1px" EmptyDataText="没有数据记录!!" AllowSorting="True" Height="200px" Width="400px"> <Columns> <asp:BoundField DataField="Work_group_name" FooterText="信息" HeaderText="信息2" HtmlEncode="False" SortExpression="信息" ItemStyle-Width ="400px"/> </Columns> <AlternatingRowStyle BackColor="#E0E0E0" /> </asp:GridView> 效果图如下:

element-ui table 点击某行(修改该行背景色)

<template> <el-table :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" @row-click="rowClick" :row-style="selectedstyle" > <el-table-column prop="date" label="日期" width="180"> </el-table-column> <el-table-column prop="name" label="姓名" width="180"> </el-table-column> <el-table-column prop="address" label="地址"> </el-table-column> </el-table> </template> <script> export default { data() { return { getIndex: null, tableData: [ { date: "2016-05-02", name: "王小虎", address: "上海市普陀区金沙江路 1518 弄", }, { date: "2016-05-04", name: "王小虎", address: "上海市普陀区金沙江路 1517 弄", }, { date: "2016-05-01", name: "王小虎", address: "上海市普陀区金沙江路 1519 弄", }, { date: "

一个由java.util.ConcurrentModificationException引起的血案

线上跑的一个flink任务突然报了异常,话不多,先把异常发出来 最近在做一个flink项目时遇到了一个线上报错,话不多说,先上代码,其中用到的第三方封装的flink sdk隐去了包前缀,不会影响分析。 Caused by: java.util.ConcurrentModificationException at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1388) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at com.jd.uifs.operators.JimDBBatchSinkFunction.process(JimDBBatchSinkFunction.java:84) at xxx.flink.sdk.batchsink2.AbstractBatchSinkFunction$BatchProcessRunnable.run(AbstractBatchSinkFunction.java:218) at xxx.flink.sdk.batchsink2.AbstractBatchSinkFunction.processBatch(AbstractBatchSinkFunction.java:190) at xxx.flink.sdk.batchsink2.AbstractBatchSinkFunction.lambda$resetBatch$0(AbstractBatchSinkFunction.java:173) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 根据错误的提示,找到BatchSinkFunction的84行,为了方便大家了解上下文,把整段代码贴出来,同时注明84行所在位置 @Override public void process(List<Tuple3<String, String,String>> inputs, IBatchProcessCallBack callBack) { if(inputs.size() == 0 ) { return; } Map<String,Map<String,Tuple2<Long,Integer>>> map1 = inputs.stream() 84行所在位置 .collect(Collectors.toMap( tuple3 -> (tuple3.f0) ,tuple3 -> { Long timeStamp = LocalDateTime.

2021-05-31 sql count(*) join慢查询优化

同样两张表join,结果也都是三百万量级的,但是为什么A j B 就是10s,B j C就是0.7s呢? select count() from A join B on A.id = B.aId; select count() from B join C on B.pId = C.pId; 后面explain 发现他们的rows差别很大,一个是2852831,1;另一个是4613,884; 所以原因应该就是A- B是一一对应的,表的大小都是三百万,而B- C是多对一关系,C的量级只有5000,所以join起来快很多。核心问题还是join的表大小不同,难怪那么奇怪同样是join差别这么大。 select count() from A join B on A.id = B.aId join C on B.pId = C.pId; 这玩意就非常慢,所以根据where条件来决定优化,如果没有需要用到B、C表的where条件,那么由于上述的对应关系,我只需要使用select count() from A (+where xx) 就可以得到结果,这样显然很快,如果有用到B、C表的where条件,那么才全部join起来计算,这时候由于有where筛选所以也会达到可以接受的速度。

C++ boost库分类

按照实现的功能,Boost可为大致归入以下20个分类,在下面的分类中,有些库同时归入几种类别。 文章目录 字符串和文本处理库容器库迭代器库算法库函数对象和高阶编程库泛型编程库模板元编程预处理元编程库并发编程库数学和数字库排错和测试库数据结构库图像处理库输入输出库跨语言混合编程库内存管理库解析库编程接口库综合类库编译器问题的变通方案库 字符串和文本处理库 Conversion库:对C++类型转换的增强,提供更强的类型安全转换、更高效的类型安全保护、进行范围检查的数值转换和词法转换。Format库:实现类似printf的格式化对象,可以把参数格式化到一个字符串,而且是完全类型安全的。IOStream库 :扩展C++标准库流处理,建立一个流处理框架。Lexical Cast库:用于字符串、整数、浮点数的字面转换。Regex 库:正则表达式,已经被TR1所接受。Spirit库:基于EBNF范式的LL解析器框架String Algo库:一组与字符串相关的算法Tokenizer库:把字符串拆成一组记号的方法Wave库:使用spirit库开发的一个完全符合C/C++标准的预处理器Xpressive 库:无需编译即可使用的正则表达式库 容器库 Array 库:对C语言风格的数组进行包装Bimap 库:双向映射结构库Circular Buffer 库:实现循环缓冲区的数据结构Disjoint Sets库 :实现不相交集的库Dynamic Bitset 库:支持运行时调整容器大小的位集合GIL 库:通用图像库Graph 库:处理图结构的库ICL 库:区间容器库,处理区间集合和映射Intrusive 库:侵入式容器和算法Multi-Array 库:多维容器Multi-Index 库:实现具有多个STL兼容索引的容器Pointer Container 库:容纳指针的容器Property Map 库:提供键/值映射的属性概念定义Property Tree 库:保存了多个属性值的树形数据结构Unordered 库:散列容器,相当于hash_xxxVariant 库:简单地说,就是持有string, vector等复杂类型的联合体 迭代器库 GIL 库:通用图像库Graph 库:处理图结构的库Iterators 库:为创建新的迭代器提供框架Operators 库:允许用户在自己的类里仅定义少量的操作符,就可方便地自动生成其他操作符重载,而且保证正确的语义实现Tokenizer 库:把字符串拆成一组记号的方法 算法库 Foreach库:容器遍历算法GIL库:通用图像库Graph库:处理图结构的库Min-Max库:可在同一次操作中同时得到最大值和最小值Range库:一组关于范围的概念和实用程序String Algo库:可在不使用正则表达式的情况下处理大多数字符串相关算法操作Utility库:小工具的集合 函数对象和高阶编程库 Bind库:绑定器的泛化,已被收入TR1Function库:实现一个通用的回调机制,已被收入TR1Functional库:适配器的增强版本Functional/Factory库:用于实现静态和动态的工厂模式Functional/Forward库:用于接受任何类型的参数Functional/Hash库:实现了TR1中的散列函数Lambda库:Lambda表达式,即未命名函数Member Function库:是STL中mem_fun和mem_fun_ref的扩展Ref库:包装了对一个对象的引用,已被收入TR1Result Of库:用于确定一个调用表达式的返回类型,已被收入TR1Signals库:实现线程安全的观察者模式Signals2库:基于Signal的另一种实现Utility库:小工具的集合Phoenix库:实现在C++中的函数式编程。 泛型编程库 Call Traits库:封装可能是最好的函数传参方式Concept Check库:用来检查是否符合某个概念Enable If库:允许模板函数或模板类在偏特化时仅针对某些特定类型有效Function Types库:提供对函数、函数指针、函数引用和成员指针等类型进行分类分解和合成的功能GIL库:通用图像库In Place Factory, Typed In Place Factory库:工厂模式的一种实现Operators库:允许用户在自己的类里仅定义少量的操作符,就可方便地自动生成其他操作符重载,而且保证正确的语义实现Property Map库:提供键值映射的属性概念定义Static Assert库:把断言的诊断时刻由运行期提前到编译期,让编译器检查可能发生的错误Type Traits库:在编译时确定类型是否具有某些特征TTI库:实现类型萃取的反射功能。 模板元编程 Fusion库:提供基于tuple的编译期容器和算法MPL库:模板元编程框架Proto库:构建专用领域嵌入式语言Static Assert库:把断言的诊断时刻由运行期提前到编译期,让编译器检查可能发生的错误Type Traits库:在编译时确定类型是否具有某些特征 预处理元编程库 Preprocessors库:提供预处理元编程工具 并发编程库 Asio库:基于操作系统提供的异步机制,采用前摄设计模式实现了可移植的异步IO操作Interprocess库:实现了可移植的进程间通信功能,包括共享内存、内存映射文件、信号量、文件锁、消息队列等MPI库:用于高性能的分布式并行开发Thread库:为C++增加线程处理能力,支持Windows和POSIX线程Context库:提供了在单个线程上的协同式多任务处理的支持。该库可以用于实现用户级的多任务处理的机制,比如说协程coroutines,用户级协作线程或者类似于C#语言中yield关键字的实现。[1]Atomic库:实现C++11样式的atomic<>,提供原子数据类型的支持和对这些原子类型的原子操作的支持。Coroutine库:实现对协程的支持。协程与线程的不同之处在于,协程是基于合作式多任务的,而多线程是基于抢先式多任务的。Lockfree库:提供对无锁数据结构的支持。 数学和数字库 Accumulators库:用于增量计算的累加器的框架Integer库:提供一组有关整数处理的类Interval库:处理区间概念的数学问题Math库:数学领域的模板类和算法Math Common Factor库:用于支持最大公约数和最小公倍数Math Octonion库 :用于支持八元数Math Quaternion库:用于支持四元数Math/Special Functions库:数学上一些常用的函数Math/Statistical Distributions库:用于单变量统计分布操作Multi-Array库:多维容器Numeric Conversion库:用于安全数字转换的一组函数Operators库:允许用户在自己的类里仅定义少量的操作符,就可方便地自动生成其他操作符重载,而且保证正确的语义实现Random库:专注于伪随机数的实现,有多种算法可以产生高质量的伪随机数Rational库:实现了没有精度损失的有理数uBLAS库:用于线性代数领域的数学库Geometry库:用于解决几何问题的概念、原语和算法。Ratio库:根据C++ 0x标准N2661号建议,实现编译期的分数操作。Multiprecision库:提供比C++内置的整数、分数和浮点数精度更高的多精度数值运算功能。Odeint库:用于求解常微分方程的初值问题。 排错和测试库 Concept Check库 :用来检查是否符合某个概念Static Assert库 :把断言的诊断时刻由运行期提前到编译期,让编译器检查可能发生的错误Test库:提供了一个用于单元测试的基于命令行界面的测试套件 数据结构库 Any库:支持对任意类型的值进行类型安全的存取Bimap库:双向映射结构库Compressed Pair库:优化的对pair对象的存储Fusion库:提供基于tuple的编译期容器和算法ICL库:区间容器库,处理区间集合和映射Multi-Index库:为底层的容器提供多个索引Pointer Container库:容纳指针的容器Property Tree库:保存了多个属性值的树形数据结构Tuple库:元组,已被TR1接受Uuid库:用于表示和生成UUIDVariant库:有类别的泛型联合类Heap库:对std::priority_queue扩展,实现优先级队列。Type Erasure: 实现运行时的多态。 图像处理库 GIL库:通用图像库 输入输出库 Assign库:用简洁的语法实现对STL容器赋值或者初始化Format库:实现类似printf的格式化对象,可以把参数格式化到一个字符串,而且是完全类型安全的IO State Savers库:用来保存流的当前状态,自动恢复流的状态等IOStreams库:扩展C++标准库流处理,建立一个流处理框架Program Options库:提供强大的命令行参数处理功能Serialization库:实现C++数据结构的持久化 跨语言混合编程库 Python库:用于实现Python和C++对象的无缝接口和混合编程 内存管理库 Pool库:基于简单分隔存储思想实现了一个快速、紧凑的内存池库Smart Ptr库:智能指针Utility库:小工具的集合 解析库 Spirit库:基于EBNF范式的LL解析器框架 编程接口库 Function库:实现一个通用的回调机制,已被收入TR1Parameter库:提供使用参数名来指定函数参数的机制 综合类库 Compressed Pair库:优化的对pair对象的存储CRC库:实现了循环冗余校验码功能Date Time 库:一个非常全面灵活的日期时间库Exception库:针对标准库中异常类的缺陷进行强化,提供<<操作符重载,可以向异常传入任意数据Filesystem库:可移植的文件系统操作库,可以跨平台操作目录、文件,已被TR2接受Flyweight 库:实现享元模式,享元对象不可修改,只能赋值Lexical Cast 库:用于字符串、整数、浮点数的字面转换Meta State Machine库:用于表示UML2有限状态机的库Numeric Conversion 库:用于安全数字转换的一组函数Optional 库:使用容器的语义,包装了可能产生无效值的对象,实现了未初始化的概念Polygon 库:处理平面多边形的一些算法Program Options库:提供强大的命令行参数处理功能Scope Exit库:使用preprocessor库的预处理技术实现在退出作用域时资源自动释放Statechart库:提供有限自动状态机框架Swap库:为交换两个变量的值提供便捷方法System库:使用轻量级的对象封装操作系统底层的错误代码和错误信息,已被TR2接受Timer库:提供简易的度量时间和进度显示功能,可以用于性能测试等需要计时的任务Tribool库:三态布尔逻辑值,在true和false之外引入indeterminate不确定状态Typeof库:模拟C++0x新增加的typeof和auto关键字,以减轻变量类型声明的工作,简化代码Units库:实现了物理学的量纲处理Utility库:小工具集合Value Initialized库:用于保证变量在声明时被正确初始化Chrono库:实现了C++ 0x标准中N2661号建议[2] 所支持的时间功能。Log库:实现日志功能。Predef库:提供一批统一兼容探测其他宏的预定义宏。[5] 编译器问题的变通方案库 Compatibility库:为不符合标准库要求的环境提供帮助Config库:将程序的编译配置分解为三个部分:平台、编译器和标准库,帮助库开发者解决特定平台特定编译器的兼容问题

iterm2 快捷使用及连接远程服务器

1. iterm2 安装 下载地址:https://iterm2.com/downloads.html iTerm2 官网:https://iterm2.com/ iTerm2 是一款完全免费,专为 Mac OS 用户打造多命令行应用。 安装完成后,在/bin目录下会多出一个zsh的文件。 Mac系统默认使用dash作为终端,可以使用命令修改默认使用zsh:chsh -s /bin/zsh 如果想修改回默认dash,同样使用chsh命令即可:chsh -s /bin/bash Zsh 是一款强大的虚拟终端,既是一个系统的虚拟终端,也可以作为一个脚本语言的交互解析器。 2. iTerm2操作快捷键 command + t:新建窗口 command + d:垂直分屏, command + shift + d:水平分屏。 command + ] 和command + [ 在最近使用的分屏直接切换. command + alt + 方向键:切换到指定位置的分屏。 command + 数字:切换标签页。 command + 方向键:按方向切换标签页。 shift + command + s:保存当前窗口快照。 command + alt + b:快照回放。很有意思的功能,你可以对你的操作根据时间轴进行回放。可以拖动下方的时间轴,也可以按左右方向键 3. Oh My Zsh 介绍 Oh My Zsh 官网:https://ohmyz.

Linux(Ubuntu18)安装php环境

测试环境为Ubuntu18.04遇到的问题:软件包 php5-mysql/ php5-curl没有可安装候选分析:官网给出的参考命令是安装指定版本php5解决方案:去掉指定版本,直接装最新的。本文安装的是最新版本(目前是php7) 最终版本的安装命令如下,debian系的linux发行版可以直接copy,安装之前最好先sudo apt update更新一下源。 1 安装 Apache 2 的 PHP 模块以及所有依赖的库 sudo apt install php-common libapache2-mod-php php-cli 2 安装完 PHP 后重启 Apache sudo apt service apache2 restart 3 安装 PHP 的 MySQL 和 cURL 支持 sudo apt install php-mysql php-curl

为Element框架的<el-select/>组件添加输入校验

为Element框架的组件添加输入校验 需求分析: <el-select filterable>...</el-select>组件为可输入搜索字段的选择框,但组件知道的@change事件并不会为输入进行事件触发,但需求需要为其进行输入校验。 解决方法: 首先找到组件里面的<input>元素。 然后为其只读属性设置为false。 最后为其添加input事件,并设置执行函数。 代码展示: <template> <div class="countries-select"> <el-select filterable > </el-select> </div> </template> <script> export default { mounted() { const countriesSelect = document.querySelector('.countries-select input'); countriesSelect.readOnly = false; countriesSelect.addEventListener('input', (val) => { if (val.target.value.search(/[^a-zA-Z0-9-_\/ ]/g) !== -1) { val.target.value = val.target.value.substr(0, val.target.value.length - 1); } }) } } </script>

vimdiff解决git merge冲突

GIT 合并时,顺利的话皆大欢喜,如果碰到冲突真是件痛苦的事。本文本描述怎样利用vimdiff这一强大的工具解决冲突。 配置git 的merge工具 git 配置文件为~/.gitconfig 执行以下命令: git config --global merge.tool vimdiff git config --global merge.conflictstyle diff3 git config --global mergetool.prompt false #让git mergetool不再生成备份文件(*.orig) git config --global mergetool.keepBackup false 解决冲突 git mergetool filename 文件名参数是可选的。如果不传文件名,那么将会自动挨个打开有冲突的文件。界面如下: 上一层三个小窗口分别对应: LOCAL buffer: 当前分支BASE buffer: 两个分支共同祖先,代表两个分支修改前REMOTE buffer: 需要合并到当前分支的分支 下层窗口为: MERGED buffer: 合并后的,即有冲突的 vimdiff使用 鼠标移动到MERGED窗口(CTRL-w切换窗口), :diffget REMOTE # 获取REMOTE的修改到MERGED文件, 忽略大小写 :diffg BASE # get from base :diffg LOCAL # get from local 注意:通过diffget只能选取local, base, remote三种的一种,要想都需要3种或者两种,只能通过修改MERGED文件 修改完成后, 保存

大数据之Hive:hive中的if函数

目录 1.语法2.基本实例在mysql中在hive中 3.实战3.1:数据准备3.2:需求一:得到临时拉链表 dwd_dim-user_info_his_tmp, 2019-01-023.2:需求二:得到临时拉链表 dwd_dim-user_info_his_tmp, 2019-01-02 1.语法 语法: if(boolean testCondition, T valueTrue, T valueFalseOrNull) 说明: 当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull 2.基本实例 在mysql中,hive中基本一致 在mysql中 select source,if(source='猎聘',1,2) as flag from t_cal_dowell_resume 在hive中 select a,b,c,if(b='上帝',1,2) as bb from tmp.csv_t1 3.实战 3.1:数据准备 表1:拉链表 dwd_dim_user_info_his ,2019-01-01 用户ID姓名开始时间结束时间1张三2019-01-019999-99-992李四2019-01-019999-99-993王五2019-01-019999-99-99 表2:用户变化表 ods_user_info ,2019-01-02 用户ID姓名1张三2李小四3王五4赵六5田七 3.2:需求一:得到临时拉链表 dwd_dim-user_info_his_tmp, 2019-01-02 如下图 用户ID姓名开始时间结束时间1张三2019-01-019999-99-992李四2019-01-012019-01-012李小四2019-01-029999-99-993王五2019-01-019999-99-99 SQL如下: select uh.id, uh.name, uh.start_date, if(ui.id is not null and uh.end_date='9999-99-99', date_add(ui.dt,-1), uh.end_date) end_date from dwd_dim_user_info_his uh left join ( select * from ods_user_info where dt='2019-01-02' ) ui on uh.

html5在线表格生成器,js简单实现自动生成表格功能示例

本文实例讲述了js简单实现自动生成表格功能。分享给大家供大家参考,具体如下: JS实现自动生成表格 由于自己的算法8太行,所以只能尽量用简单点的方法实现效果 下面直接上代码 姓名年龄身高 .del{ cursor: pointer; color: blue; } var tableInfo = [ { 姓名: '张三', 年龄: 20, 身高: 160 }, { 姓名: '李四', 年龄: 18, 身高: 158 }, { 姓名: '王二麻子', 年龄: 19, 身高: 180 }, { 姓名: '孙悟空', 年龄: 100, 身高: 150 }, { 姓名: '猪八戒', 年龄: 100, 身高: 155 }, { 姓名: '龟龟', 年龄: 200, 身高: 0.5 } ] var tr = document.createElement('tr'); var tdName = document.

html 生成表单自动合并,使用JavaScript实现动态创建含合并单元格(行)的表单

基于浏览器展现HTML网页中的表(是指Table),普遍用于数据展现和录入,其中数据分类又常用合并单元格。 在HTML DOM中,Table中的行数据是可以通过JavaScript的函数方法insertRow(index)动态增加的,通过insertCell(index)增加单元格。 其中,比较麻烦的是合并单元格,这里以行合并为例,使用rowspan属性的设置来实现,关键点是insertRow(index)和insertCell(index)中index值,也就是合并单元格的时候,index顺序发生的变化。 首先,先分析HTML中合并单元格的代码,如下图所示: insertCell(index)中index变化规则如下: 如果当前行前一列(设为第一列)是合并单元格(行),首先index=0,此行后续的单元格顺序为1,2,… 后续合并单元格(行)所包含的行,实际是从第二列开始,但是,index是从0开始,以此后续为1,2,… insertRow(index)中index变化规则如下: index=当前累计增加行数 - 当前合并单元格(行)的rowspan; 对应代码片段:var rownumfirst = rownum - parseInt(rowspan); 代码实现效果如下图所示: 相关简明代码如下所示: //显示所有回写数据 function showAllElem(){ var ret_json = ""; //定义返回JSON数据字符串 ret_json ="{\"names\":\"党风廉政建设责任制民主测评票(班子)\",\"rvsn_number\":\"DFLZJS\",\"tableid\":\"DFLZJS_BZCP\",\"level\":\"2\",\"firstitems\":["; ret_json = ret_json + "{\"classa\":\"加强作风建设的情况\",\"rowspana\":\"3\",\"seconditems\":["; ret_json = ret_json + "{\"content\":\"落实中央“八项规定”,杜绝奢侈浪费、公车私用、公款消费的情况情况\",\"orderby\":\"1\",\"datastyle\":\"0\"},"; ret_json = ret_json + "{\"content\":\"关心员工利益,密切联系群众的情况\",\"orderby\":\"2\",\"datastyle\":\"0\"},"; ret_json = ret_json + "{\"content\":\"班子团结、相互协作的情况\",\"orderby\":\"3\",\"datastyle\":\"0\"}"; ret_json = ret_json + "]},"; ret_json = ret_json + "{\"classa\":\"廉洁自律的情况\",\"rowspana\":\"4\",\"seconditems\":["; ret_json = ret_json + "{\"content\":\"遵守国有企业领导人员廉洁自律若干规定的情况\",\"orderby\":\"1\",\"datastyle\":\"0\"},"; ret_json = ret_json + "

WPF编程基础入门 ——— 第三章 布局(七)布局面板Grid

WPF布局——布局面板Grid WPF——Grid布局控件Grid简单实例——按钮排列Grid简单实例——登录界面Grid特征——从结构中分离布局Grid特征——尺寸模型Grid特征——共享尺寸组Grid特征——跨越行和列Grid特征——GridSplitter 本章小结 WPF——Grid布局控件 尽管上一篇讲解的UniformGrid能够布局统一单元格,但是很多布局中需要构建单元格大小不等,具有跨越式单元格(Span Cells) 和空白列等功能。而Grid能实现上述这些功能,它是一个使用灵活、能构建复杂UI的布局控件。 Grid最简单的用法是通过设置RowDefinitions和ColumnDefinitions属性定义单元格的总数。其中,RowDefinitions指行数,ColumnDefinitions指列数。添加子元素时,使用Grid.Row和Grid.Column附加属性设定子元素在单元格中的位置。 Grid简单实例——按钮排列 此例设计要求:现在使用Grid布局控件来布局6个Button,单元格排列3行2列。 说了好多实例了,这次总算可以用默认的Grid布局了 依旧是在解决方案WpfApp3新建项目:命名项目名字GridButton6。 XAML代码如下: <Window x:Class="GridButton6.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:GridButton6" mc:Ignorable="d" Title="MainWindow" Height="270" Width="480"> <Grid Background="YellowGreen"> <Grid.RowDefinitions> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <Button Grid.Row="0" Grid.Column="0" Margin="2">One</Button> <Button Grid.Row="0" Grid.Column="1" Margin="2">Two</Button> <Button Grid.Row="1" Grid.Column="0" Margin="2">Three</Button> <Button Grid.Row="1" Grid.Column="1" Margin="2">Four</Button> <Button Grid.Row="2" Grid.Column="0" Margin="2">Five</Button> <Button Grid.Row="2" Grid.Column="1" Margin="2">Six</Button> </Grid> </Window> 效果图 此例中,调节窗口大小时,Button大小随着窗口的变化而变换。 Grid简单实例——登录界面 在很多应用程序中都会有登录页面的设计,在此,作为一个Grid实例。 设计要求:现在使用Grid布局控件来设计一个简单的登录界面,使用多种控件。 依旧是在解决方案WpfApp3新建项目:命名项目名字GridLogin。 XAML代码如下: <Window x:Class="

Vue 08上

Vue 08 Webpack 基本介绍 webpack是一个现代JavaScript应用程序的静态模拟打包器 webpack用于上线之前的代码打包(编译、文件的压缩、合并等操作) 编译:把Vue、js、less等相关的代码转换为浏览器能认识的原生代码 压缩:代码中的空格、回车换行、注释、变量名称等信息的优化,优化之后代码体积变小,提高网络传输效率 合并:多个文件合并成一个,减少网络请求的次数 初始化项目 index.html src/js/index.js src/js/common.js 基于命令行用法 初始化项目 npm init -y 安装依赖包 npm install webpack webpack-cli -D 判断安装成功的标注 .\node_modules\.bin\webpack -v npx webpack -v 打包 .\node_modules\.bin\webpack --entry 要打包的文件名称 -o 打包后的文件路径 // 或者(npx是node环境自带的命令,作用是:自动从当前项目的跟目录中的node_modules\.bin目录中查找要执行的命令) npx webpack --entry 要打包的文件名称 -o 打包后的文件路径 npx webpack --entry ./src/js/index.js -o ./src/js/ 思考: webpack打包和Vue脚手架打包(npm run build)之间是什么关系? Vue脚手架打包的底层过程其实是使用的是webpack(脚手架打包依赖的webpack),只不过Vue脚手架封装了webpack的打包过程,我们看不到而已 为什么要封装webpack的打包过程? 因为封装之后用起来非常简单 为什么要学习webpack打包过程? 理解Vue脚手架内部的实现原理 基于配置文件用法 入口文件和出口文件 加载器 插件 入口文件和出口文件配置 在项目的根路径中创建一个配置文件 webpack.config.js 使用配置文件 –config可以指定配置文件的名称(默认名称是webpack.config.js) 如果配置文件名称不是webpack.config.js,必须指定(–config配置文件名称)

LeetCode 算法 每日一题 231.2的幂

231.2的幂 题目描述 给你一个整数n,请你判断该整数是否是 2 的幂次方。如果是,返回true;否则,返回false。 如果存在一个整数x使得n == 2x,则认为 n 是 2 的幂次方。 示例1 输入:n = 1 输出:true 解释:20 = 1 示例2 输入:n = 16 输出:true 解释:24 = 16 示例3 输入:n = 3 输出:false 示例4 输入:n = 4 输出:true 示例5 输入:n = 5 输出:false 提示 -231 <= n <= 230 - 1你能够不使用循环/递归解决此问题吗? 十进制二进制十进制二进制十进制二进制(计算机负数:补码形式)200000 000120 - 10000 0000-201111 1111210000 001021 - 10000 0001-211111 1110220000 010022 - 10000 0011-221111 1100230000 100023 - 10000 0111-231111 1000240001 000024 - 10000 1111-241111 0000 2的n次幂在二进制中就是其中的1左移n位,题目最大范围为230,可以得出

UML期末大作业——《UML系统分析与设计》

在写UML期末大作业过程中,emmmmm,熬夜,掉头发,visio图,word,pdf,… 大半夜三点多,大作业即将截止日期,我还在敲键盘,打字,画图(只是,忍不住吐槽一下下,宣泄劳累和疲惫;但是看完 “老婆” 的照片,瞬间好开心,作业什么的都不是事,哈哈哈…) 步入正题,简单介绍一下自己的UML期末作业: 作业要求: (这是本小白UML期末大作业的要求,不过,好像不同的老师有不同的要求…) 内容 以一个实际的应用系统为对象,完成以下内容: 对系统进行概述 该系统是什么该系统的功能包含哪些你为什么要选择该系统作为分析对象 对系统进行用例建模 主用例的个数不少于 4 个每个主用例对应的可替换用例的个数不少于 2 个包含用例的包含关系、扩展关系每个用例给出用例描述、绘制出用例图给出必要的文字描述 对系统进行静态建模 给出系统在问题域的静态模型对系统进行系统上下文建模:给出类图对系统进行软件系统上下文建模:给出类图给出必要的文字描述 对系统进行动态交互建模 在上述建模的基础上,给出对应的状态图在用例建模的基础上,给出对应的通信图在用例建模的基础上,给出对应的顺序图给出必要的文字描述 对该系统的一个子系统进行软件体系结构设计 给出该子系统的软件体系结构(面向对象的体系结构,客户端/服务器软件体系结构,或者面向服务的软件体系结构等)画出相应的示例图给出必要的文字叙述 要求 2.1 排版 以××××大学《本科毕业论文格式》为模板,编排文字。 模板下载网址: ×××××× 首页标明姓名、学号、班级等关键信息。 2.2 总字数 不少于 3000 字。 2.3 参考文献 给出必要的参考文献,不少于 10 篇。参考文献格式符合《本科毕业论文格式》的要求。计分 • 大作业的初始成绩以百分制计算,最高 100 分,最低 0 分。 • 课程的期末总成绩计算公式为: 期末总成绩 = 大作业的初始成绩 × 70% + 平时成绩 × 30% • 其中,平时成绩根据平时作业表现和上课考勤确定,按百分制计分。提交 • 请将作业生成 PDF 文档,上传到×××系统 • 请在 ×× 年 ×× 月 ×× 日之前提交作业反剽窃

2020-2021年的心得

文章目录 20202021 2020 在过去的2020年,我发生了很大的转变,工作上的内容和阅历直接影响了我的生活,向成熟责任上的转变。 2020年之前,我的工作从一个研发到研发负责人,增加和管理的经验,但是思想上还是研发,还是更理性的感觉这个世界,理性的对待家庭。 2020年,我上升到 YY ToB 上海的负责人,当我们从 0 开始搭建 ToB 平台,从研发到管理到拜访客户,和客户,研发,产品,测试,商务,高层的沟通上,更能感觉到沟通的乐趣,与人打交道真的其乐无穷。 作为研发,我们的思想还是固定要技术,需求和成本上。但作为 ToB 的管理者,要着重于客户,资源的协调,用于承担责任,敢打敢拼的精神,着重于全国的市场情况,着重于商务和售前的构建,集中几点去弯道超车,怎么有效沟通,怎么背锅,怎么挡在最前面去保护后端的产研,学问真的很大。 接受这个工作后,家里是比以前更和睦了。以前还是研发的思想,有时候交流的确不会换位思考,不会换位思考,就代表你根本不知道对方在想些什么,不知道对方需要什么,现在更多的是先换位思考,知道为什么后,在去解决。很多的时候,家里面没有和睦的信息,更多的时候沟通不及时,事情没有说清楚,总是以自我为中心去想让别人谅解,但大家都这样,事情就没有办法正常的交流沟通。多为对方着想下,真多没那么多事情,大家能够在一起,总归是一开始就互相欣赏的,多沟通,问题都会解决的。 2020年,是个辛苦年,去广州的那段时间,几乎就没怎么休息过,天天上班,是的,天天上班,1个半月,480个小时,真的是很累,这一年有2.5年的工作经验了。ToB 很累,从0开始就更累了,真的不知道自己怎么挺过来的,老婆也好,孩子也好,真的是不容易,非常感谢她们。成绩是有了,但公司不做ToB了,我们整体被裁掉,我们当时求爷爷求奶奶的,为了整个团队未来去奔波 ,最后去了Bigo,因为Bigo 也是欢聚旗下的,要做 ToB,平级转过去对我们可能是最大的争取了。 2021 2021年,在Bigo工作了一段时间后,我就换了工作,我像了可能会和上一个工作是类似的,但是很多时候都不一样,这边有更加大的部门,划分更多的职责,但是部门关系和部门强也更高,客户也更多,关系也更复杂。学习了更多东西。 因为涉及到现在的工作,不变多说,但真的很棒,我们有非常好的团队,非常好的伙伴,非常好的管理体系。我会在明年把新的体会写上的。 今年开始学习理财,现在在买一些股票,基金,基本面分析,技术分析。我希望能简单的入门就可以,都不奢望能够赚钱,这个也是为了以后能够有个保障吧。 2021加油!!!

esp8266 android源码,物联网基础项目——基于ESP8266,STM32,Android的家具控制

【实例简介】 物联网基础项目——基于ESP8266,STM32,Android的家具控制配套代码。 【实例截图】 【核心代码】 物联网基础项目——基于ESP8266,STM32,Android的家具控制 └── 物联网基础项目——基于ESP8266,STM32,Android的家具控制 ├── 手机端 │ ├── AndroidManifest.xml │ ├── bin │ │ ├── AndroidManifest.xml │ │ ├── classes │ │ │ └── xyz │ │ │ └── tulling │ │ │ ├── assist │ │ │ │ ├── IOTCommand$LED.class │ │ │ │ ├── IOTCommand.class │ │ │ │ └── IOTMessage.class │ │ │ ├── listener │ │ │ │ ├── LinkThread.class │ │ │ │ └── SwitchListener.

推荐一款非常好用的:Windows 虚拟网卡接口驱动

前一段时间,一直在找寻windows操作系统上的虚拟网卡接口,主要是为了搭建隧道使用。但是windows操作系统不像Linux操作系统,它的代码不开源,导致这方面的资料很少,因此花费了较长时间来寻找相关实现框架,最终找到了两款开源项目的虚拟接口驱动: Wireguard项目的Wintun接口OpenVPN的Tap接口 这两个项目都是非常出名的搭建隧道的开源V.P.N项目。由于目前对openVPN项目不太了解,也没有适配Tap接口,因此这里重点介绍下WinTun接口。此接口实现我是非常非常的喜欢,喜欢到简直不要不要的。 1.简介 说到Wintun项目,就不得不说到它的父亲:WireGuard项目(以下简称WG)。Github传送门 WG项目作为开源V.P.N项目,不同于OpenVPN, Openswan, Strongswan等,它的实现非常简介,Linux内核代码实现不到4000行。相对于上述的三个“按行收费”的项目(代码10万行起步),它简直是太简洁了。故而得到了众多好评,其中就包括Linux鼻祖:Linus Torvalds。他的评价如下: Btw, on an unrelated issue: I see that Jason actually made the pull request to have wireguard included in the kernel. Can I just once again state my love for it and hope it gets merged soon? Maybe the code isn’t perfect, but I’ve skimmed it, and compared to the horrors that are OpenVPN and IPSec, it’s a work of art.

fj543-第13关

第13关地址:http://www.fj543.com/hack/?level=13sql 根据提示,访问:http://www.fj543.com/hack/13sql.asp 看起来是一个可以调用到SQL的输入框。 很自然的……这个接口是有注入漏洞的,它能反馈出3种状态。 1、没有找到此ID对应的内容。(Nothing found) 2、数据库中有这条信息,但我不能直接告诉你密码。(The data exists.But I can't show you the password) 3、网页出错。请与系统管理员联系。 猜测密码字段名: 0 or password is not null(出错) 0 or pwd is not null(有数据) 密码字段名为pwd。 猜测字段类型: 0 or pwd <> 0(出错) 0 or pwd <> ''(有数据) pwd字段名为字符串。 猜测字段长度(大概用的是MSSQL数据库): 514 and len(pwd) > 6(无数据) 514 and len(pwd) > 4(有数据) 514 and len(pwd) = 5(有数据) 密码是5个字符。 猜测密码(二分查找): 514 and pwd > 'm'(有数据) 514 and pwd > 't'(无数据)

fj543-第12关

第12关地址:http://www.fj543.com/hack/?level=g1228286704 下载认证软件……下不动,下了1个钟。 解压后运行level12.exe(需要以管理员身份运行,不然起不来)。 点击身份验证,下方的框中说明验证分两个阶段。 用抓包Fiddler软件看看它干了啥。 发起了两个HTTP请求,分别是step1和step2,code用URL编码了一下。 仔细观察,step1的code是271,但是step2的code是316,这个step2的code是哪里来的? 网页临时ID只有一个708,最多是step1的code。 本来想找一个文本框解锁工具,但是没找到,想起了游戏修改器Cheat Engine。 用字符串搜索,临时ID,将它改为708,点击申请身份验证。 嘿嘿,通过抓包,果然得到了想要的东西。 http://www.fj543.com/hack/?act=step1&code=%37%30%38 http://www.fj543.com/hack/?act=step2&code=%37%37%35 在浏览器的另一个标签,按照顺序访问这两个地址,通关。 收获:没有用上反编译、跟踪、生成算法破解等高级手段,是因为我不会……见识越多,解法越多。

fj543-第11关

第11关地址:http://www.fj543.com/hack/?level=lv11 好吧,这个表情肯定有内情。 把它下载下来,直接用记事本打开。 上面一段是gif,下面一段是wav。 好吧,把wav另存为文件。 由于使用的电脑听不到声音……于是找了个语言转换文本的网站(还好多找了一个,不然就会漏掉“一”)。 语音的内容是。 表情加上三七二一。 表情……是啥数字?是QQ表情吗? 可能是35吧……35 + 3721 = 3756。 并不是……试来试去都不对,看看别人攻略,发现是英文加数字? 然后,cry3721、crying3721、sob3721、sobbing3721、wail3721、wailing3721、shout3721、shouting3721……崩溃了。 刷了一天后,表情终于换了。 同样的操作,音频是5858,密码是:smile5858。 收获:语音转文字引擎有缺陷,表情数字编号有可能更变,尽量先不要采取不可靠的方案。

魅蓝e2 android n,魅族Flyme公布近期更新预告 用户体验仍是发力重点

Flyme总裁杨颜在今年的926非正式会谈上表示,Flyme 有自己的研发节奏,不会单纯地追求更大的“版本号”,而只会以内容和体验作为标准,来衡量是否发布更新换代的大版本。 对于外界盛传的Flyme 7,从魅族Flyme近期在其官方论坛公布的更新预告来看,应该会晚点和大家见面。虽然没有大版本发布,但Flyme接下来的更新迭代动作,仍然值得期待。 Android N体验版更新:游戏模式新增三大功能 11月28日,魅族Flyme将发布全新体验版。针对基于Android N底层的MX6/PRO 5/PRO 6/PRO 6s/PRO 6 Plus/魅蓝 Note3/魅蓝 Note5/魅蓝 E/魅蓝 Max/PRO 7/PRO 7 高配版/PRO 7 Plus等机型带来了「Meizu Pay」,支持绑定支付宝进行扫码付款,付款更便捷。 同时,该体验版还修复了上个版本中存在问题,并给游戏模式带来新的优化,新增悬浮球选项和游戏过程中陌生来电标记,以及短信智能提取关键字展示信息列表,给已经无比体贴的游戏体验再次升级。 此外,针对魅蓝 X和魅蓝 E2还做了短信方面的优化,新增短信智能提取关键字展示信息列表和通知栏回复短信支持滑动查看详细内容。 魅蓝 Note6:支持「应用分身2.0」 魅蓝 Note 6稳定版预计在12月中旬发布,将适配「应用分身2.0」,除此之外,系统的稳定性、流畅性、功耗表现等方面也会有所提升。如果想提前尝鲜,大家可以关注再次开启的内测招募活动,报名参加内测。 另外,Flyme 6.1.4.5A 解决了光感调节和音量大小等异常现象,目前已开放 OTA 检测,大家可以进入 「系统更新」APP 中检测更新,获取更好的操作体验。 Android M/L稳定版更新,适配「应用分身2.0」「安全家庭」 目前Flyme正在为 Android M/L 机型适配「应用分身2.0」和「安全家庭」,魅蓝 X/魅蓝 E2适配「游戏模式2.0」的工作也已经启动。由于这些功能涉及的开发量大,稳定版将延迟至2018年1月底发布。按惯例稳定版发布前将陆续开放各机型的内测通道,想要尝鲜的魅友们可以留意后续官方信息。 Android N机型迭代计划:将相继发布两个稳定版 为了让魅友们尽快用上更加完善的 Android N,Flyme预计在2017年12月底和2018年1月底各发布一个稳定版,二者会着重提升系统稳定性、流畅性和功耗表现,也会在更新 Android 补丁的同时解决 Wi-Fi 安全等问题,同时通话质量也会大幅改善。 魅族手机操作系统Flyme,以其强大的功能、超高的颜值、人性化的用户体验而广受魅友们欢迎。Flyme 6.2版本首创的游戏模式2.0和安全家庭功能自发布后就好评不断,尤其在安卓阵营同质化的大环境下,魅族Flyme这种创新驱动型的产品精神就更显稀缺和珍贵。精益求精的Flyme不断优化用户体验,为用户打磨更流畅更好用的系统,期待Flyme带来更多的惊喜。