一. 数据的传输形态 -数据信号和时钟信号同步波特率: 每秒钟传送的码元符号的个数,是衡量数据传送速率的指标。
我们在以太网的电信号传输过程中,以一个时钟周期的上升沿 代表 1, 一个时钟周期的下降沿 代表0.
为什么要用上升沿 下降沿 而不是一个高电平状态和低电平状态代表0 和 1?
因为哪怕我们在不同主机之间,通过连接额外的时钟同步线缆来进行时钟同步,尤其是带宽比较高(带宽高 意味着在一秒内传输的数据更多,代表时钟周期更短,可能每个时钟周期只有纳秒级的间隔,如果只使用高低电平来进行编码,会导致容错率低。一点点点的时钟偏移都不行,都会导致误差。)
时钟偏移:上面代表数据 下面代表时...
前言在读apue第八章进程控制时, 看到一段很有意思的代码:
“如果一个进程fork一个子进程,但不要他等待子进程终止,也不希望子进程处于僵死状态知道父进程终止,实现这一要求的诀窍是调用fork两次。”
实例代码如下:
12345678910111213141516171819202122232425262728#include"apue.h"//通过调用fork()函数两次来解决僵尸进程的出现int main(void){ pid_t pid; if((pid=fork())<0) err_sys("fork error"); else if(pid==0) ...
本文基于macos 10.13.6 ,采用vim+go插件的方式,包括了配置vim语法高亮,自动补全等设置。
一、安装Golang1.官网地址下载pkg文件 双击安装默认安装位置在
1/usr/local/go/bin
2.配置环境变量1export PATH=$PATH:/usr/local/go/bin
3.终端输入12go versiongo version go1.11.4 darwin/amd64
即表示安装成功
二、配置vim1.安装vim (已安装的可跳过)1brew install vim
mac 默认安装位置在
1/usr/local/bin/vim
可以通过
1whi...
#Code Generator Plugin for IDEA
一、概述这是一个基于Velocity(VM 模板)语法 和 Groovy 脚本语法,通过自定义脚本文件 和一个抽象的 contextClass概念 来完成模板代码自动生成的 IDEA/AndroidStudio 插件。
它通过内置的Converter, 将 VirtualFile (IDEA的api提供的对文件系统的抽象)或者是PsiClass(IDEA提供的对class对象的抽象)转化为统一的ClassStruct(一种对Java文件结构的抽象)对象, 这个VirtualFile对象可以是文本文件、excel表格、通过文件...
本博是吴恩达DeepLearning.ai 的学习笔记
本博是吴恩达DeepLearning.ai 的学习笔记
改善深层神经网络: 超参调试、正则化以及优化训练集 开发集 测试集 的划分假设所有的训练数据如下一个典型的数据划分:
即:一部分作为 训练集一部分作为 简单交叉验证集/验证集一部分作为 测试集
具体的流程是 在训练集上 对各模型运行训练算法 将训练完成的模型 带入 交叉验证集 选择出最佳模型然后带入测试集对神经网络做出无偏评估
小数据量的时候,一般会将数据划分为 训练集(70%) 测试集(30%)或者训练集(60%)、验证集(20%、测试集(20%)。在大数据量(百万级)时,验证集 测试集的数据量和小数据量的情况差不多,仍然可能需要...
人工智能、机器学习、深度学习三者的关系:人工智能/AI:这是对高级计算智能的最宽泛的说法。1956年,在达特茅斯人工智能大会上,该技术被描述为:“原则上,学习的每一个方面或任何其他智能特征都可以精确描述,并且一台机器可以模拟它。”。AI 可以分为大致三个种类: 狭义AI、通用AI、超AI。狭义AI 就类比与深蓝计算机以及AlphaGO,只在特定领域表现出色,而通用AI则彼此更高一层,成为与人类大脑具有相同本质的智慧体从而具有解决一系列问题的能力。超AI则是目前人工智能科学家的终极梦想,此时的机器具备观察和感知的能力,具备超越人类的创造力。
机器学习/ML: 一种实现人工智能的方法机器学习...
下个阶段的学习计划整理基础知识
YUV RGB的图像表示方式
PCM音频数据处理
H.264 编码格式
android平台的MediaCodec
AAC音频流
视频的几种封装格式
传输协议
UDP/RTP 协议
框架
FFmpeg
要看的书
音视频开发进阶指南
机械工程出版社 展晓凯 著
博客好久没更新了,把最近总结的一些零星知识点汇总一下吧。
view 绘制流程相关:如何在activity中正确获取view的宽高:
activity/view onwindowFocusChanged()
view.post(new Runnable{})
ViewTreeObserver.addOnGlobalLayoutListener();
手动调用view.measure();
setWillNotDraw()如果view不需要绘制任何内容,设置这个标记为true后系统会对其进行优化,默认View是没有启用的,但是viewGroup会默认启用,当我们开发的自定义控件继承view...
概述本文是看完邓凡平的《深入理解android卷1》第六章的binder篇后,在此基础上的一些个人理解。上文从驱动角度解释了binder通讯机制的底层运行原理,我们知道android系统中,binder是采用CS架构来设计的,除了binderDriver之外,还需要client server 以及serviceManager 三个角色,才能完整实现一套CS架构的跨进程通讯机制。
从上图可以看到,一次完整的IPC 至少需要这么几个步骤
Server 通过serviceManager 注册服务
Client 通过ServiceManager 查询服务
Client 获取到Server端的服...