摘要:
1. 前言 做了两年Chromium相关的开发,最近项目遇到瓶颈,自己有点迷茫。回顾之前做的工作,发现对chromium的认识还停留在非常表面的水平。因此,一直想对之前做的做个总结,只有总结反思才能提高。 2. 编译环境 Label | 推荐配置 | 系统版本 | Ubuntu 18.04 64bi 阅读全文
摘要:
如果使用QT,那么创建一个OpenGL渲染窗口其实很容易,不过出于初学的角度,使用GLFW库来创建新窗口。 1. 下载并配置GLFW GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口,并且支持跨平台。 首先,我们需要先从它的官网上下载:https://www.g 阅读全文
摘要:
一不小心win10自动更新了,打开wireshark发现它无法发现本地的网络接口。 其实解决的办法很简单,就是卸载npcap,安装Win10Pcap即可解决。 阅读全文
摘要:
1. 使用 io_service::work 实现 io_service 无任务时不退出 正常情况下向io_service抛任务,它执行完成后就会自动退出,而要实现那种chromium那种的循环队列,没有任务就等待任务的效果,可以使用io_service初始化一个 io_service::work 阅读全文
摘要:
1. 普通断点 根据代码行数设置断点是最常见的一种方式,在debug程序运行前就可以进行断点的配置。如: 当程序执行到 文件的第127行时就会出发断点。 2. 条件断点 顾名思义,这种断点是当满足一定条件时才会触发,比较适合进行异常排查。设置方式 , 如: 3. 数据断点 就是根据地址来进行设置断点 阅读全文
摘要:
select 优点: 能同时监听多个描述符,一旦每个描述符就绪,就能够通知应用程序进行响应的读写操作。 缺点: 1. 每次调用都需要将fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大; 2. 每次调用select都需要遍历所有fd,当fd集合很大时开销很大; 3. select支持的文件描述 阅读全文
摘要:
[toc] 注:本文主要引用自https://www.cnblogs.com/hbccdf/p/introduction_of_cmake.html 1. 设置cmake最小版本 2. 设置项目名称 3. 设置编译目标类型 :生成可执行文件 :生成库文件 默认生成静态库,可以显示指定生成库的类型: 阅读全文
摘要:
写了点Qt界面程序,然而发现很难移植到其他没有安装Qt环境的电脑上运行。查资料了解到,在windows上有windeployqt程序,linux上有linuxdeployqt可以帮助我们快速打包。 1. 配置Qt环境 首先,我们先把Qt环境配置好,在 中加入: 其中 目录要根据自己电脑上安装的Qt路 阅读全文
摘要:
直播系统最简单地包括推流和拉流,在这里先使用nginx rtmp module作为流媒体服务器。 流媒体服务器搭建 1. nginx rtmp module下载和安装 源码地址:https://github.com/arut/nginx rtmp module 使用git命令下载:git clone 阅读全文
摘要:
安装及配置Rabbitmq 1. 安装: 2. 启动web管理插件 然后你就可以访问 ,账号和密码默认是 . 安装golang环境 安装成功后就可以通过以下命令查看当前的安装的版本: 由于Go代码必须存放在一个workspace工作区中,因此创建一个目录,假如是 ,并将这个目录设置成环境变量: 最后 阅读全文
摘要:
1.简介 MQ全程Message Queue,用于应用程序和应用程序间进行通信。RabbitMQ采用Erlang编写,实现了AMQP(高级消息队列)协议,跨平台,支持各种主流的操作系统和多种客户端。 RabbitMQ相比其他同类型的消息队列,最大的特点在保证可观的单机吞吐量的同时,延时方面非常出色。 阅读全文
摘要:
按照正常流程安装好mingw和cmake后,仍然是无法直接使用cmake编译处MakeFile文件的,我们需要在CMakeLists.txt中做一些配置。 首先,在PROJECT之前,设置: 注意按实际安装情况更换gcc和g++的位置。 修改完后,使用cmake仍然会报错。这是因为默认生产的Make 阅读全文
摘要:
1. 如何保证消息尽量发送成功? 问题描述: 如果没有启动消费者,重启了RabbitMQ服务,队列和消息都会丢失。 解决方案: 针对这个问题,有以下几个机制可以解决: 1. 生产者确认; 2. 持久化; 3. 手动ACK。 生产者确认 首先,我们要确保生产者能成功地将消息发送到RabbitMQ服务器 阅读全文
摘要:
在上一篇文章中,我们部署了Shipyard来管理docker集群,总体比较简单,而且Shipyard界面风格很简约,还是比较喜欢的,但是正如提出的node节点无法显示bug,以及该项目早已停止维护,让我不得不在另寻可靠的工具。搜索发现,Portainer是一个轻量级的管理工具,很符合的要求。 首先, 阅读全文
摘要:
使用k8s对于我这种新人来说,难度有点大。遂尝试使用Shipyard这个docker web ui工具来进行管理,以方便入门。 首先,我们还是需要在我们的主机上安装docker。 然后官方提供了自动安装脚本和手动安装两种方式,这里我们采用手动安装的方式。 主节点 1.安装Datastore 2.安装 阅读全文
摘要:
K8S Dashboard是官方的一个基于WEB的用户界面,专门用来管理K8S集群,并可展示集群的状态。K8S集群安装好后默认没有包含Dashboard,我们需要额外创建它。 首先我们执行命令: 我们需要对kubernetes dashboard.yaml进行一些用户权限修改,否则默认情况登录进入会 阅读全文
摘要:
1. 关闭swap并关闭防火墙 首先,我们需要先关闭swap和防火墙,否则在安装Kubernetes时会导致不成功: 2.配置阿里源 然后更新下: 如果遇到以下问题: 可以记下提示的PUBKEY的最后8位,这里是BA07F4FB,然后执行: 3. 安装组件 4. 配置kubelet的cgroup d 阅读全文
摘要:
1. 查看当前的容器和images 1.创建新的容器 2.保存容器为镜像 3.标记tag 更多操作待续 阅读全文
摘要:
可以使用物理机,也可以使用虚拟机。 首先参考https://docs.docker.com/install/linux/docker ce/ubuntu/ 官方文档学会安装docker。 1.首先移除之前旧版本的docker: 更新软件源: 2.执行: 安装https证书。 添加Docker的官方G 阅读全文
摘要:
题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 代码 需要注意的是指数可能会是负数,在做的时候需要小心。 阅读全文
摘要:
题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 代码 减1的话一定会导致原数据有一位上的1变成0,直接取与操作会将该位置0. 阅读全文
摘要:
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 代码: 思路就是先遍历一遍,确定替换之后的字符串长度,然后再从右往左遍历字符串,按位移动,遇到空格,就连续插入三个字符. 阅读全文
摘要:
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 代码: 阅读全文
摘要:
给模板传递了一个字典,却发现无法在模板中直接通过key获得value. 查阅资料后,这个问题可以通过添加自定义的filter来解决. 首先在app目录下创建一个templatetags目录,并在它的下面创建一个__init__.py和dict_get_item.py文件,其中__init__py文件 阅读全文
摘要:
题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快 阅读全文
摘要:
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。 代码: class Solution { public: vector FindNumbersWithS 阅读全文
摘要:
1. 为什么常常需要对数值型数据的特征做归一化? 为了消除数据特征之间的量纲影响,使不同指标之间具有可比性。数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。 归一化的方法主要有:(1)线性函数归一化; (2)零均值归一化(标准化)。 如果对输出结果范围有要求,或者数据较为稳定 阅读全文
摘要:
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 代码: class Solution { public: string PrintMinNumber(vecto 阅读全文
摘要:
题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6, 3, 2,7, 15,1 阅读全文
摘要:
题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 代码: 只是快排是能够解决这个问题的,不过这里对快排进行了一点更改,减小了时间复杂度. 阅读全文
摘要:
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 代码: // 至少三种方法 // 1. 遍历统计每个数字次数(O(n^2)) 阅读全文
摘要:
需要使用到django_apscheduler模块,因此先安装: 然后在工程的 文件中的 模块加入: 然后在app的 文件中实现调用的函数: 然后还需要在工程的 文件中引入该app: 最后运行整个项目: 这样在启动服务时这个定时任务就会运行,可以为我们的工程提供后台运行服务支撑. ps: 如果想让d 阅读全文
摘要:
模板 前面的例子中,我们是直接将HTML写在了Python代码中,这种写法并不可取。我们需要使用模板技术将页面设计和Python代码分离。 模板通常用于产生HTML,但是Django的模板也能产生任何基于文本格式的文档。 参考http://djangobook.py3k.cn/2.0/chapter 阅读全文
摘要:
服务器配置 安装django 安装mysql(可选) 也可以直接使用sqlite 测试项目Hello World 在我们的项目根目录下执行: HelloWorld即是我们的项目名称。截图后的目录结构: 各个文件的作用: HelloWorld: 项目的容器 manage.py: 命令行工具,用于和Dj 阅读全文
摘要:
买了个TL WDN5200H无线usb网卡,但是发现它居然不支持Linux,但是我有时需要在Linux上使用,这就尴尬了.于是到网上搜索资料,终于解决了这个问题. 1. 首先编译安装:https://github.com/whitebatman2/rtl8821CU 根据它的README文档,Ubu 阅读全文
摘要:
"http://coliru.stacked crooked.com/" "https://gcc.godbolt.org/" 阅读全文
摘要:
上标 使用 AT` 显示效果就是 AT 。 下标 使用 At` 显示效果就是 At 。 阅读全文
摘要:
关于数据集的介绍 top N 正确率指的是图像识别算法给出前N个答案中有一个是正确的概率。 在图像识别方面,基于卷积神经网络的图像识别算法给图像识别问题带来了质的飞跃,从2013年之后,基本上所有的研究都集中到了深度学习算法上。 卷积神经网络的结构 前面所介绍的神经网络的每两层之间的所有结点都是有边 阅读全文
摘要:
假设我的Ubuntu用户名:myname 1. 安装和卸载samba: 2. 建立samba访问目录,并增加目录的权限 3. 添加用户并设置密码 4. 配置smb.conf 在文件的最后添加: 5. 支持软链接访问(可选) 在/etc/samba/smb.conf的“[global]”节的最后,加上 阅读全文
摘要:
1.介绍 代理模式:为其他对象提供一种代理以控制对这个对象的访问。这样实现了业务和核心功能分离。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式的优点:1.职责清 阅读全文