- 博客(246)
- 资源 (1)
- 收藏
- 关注
原创 ffmpeg 音视频处理神器
ffmpeg是一套用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它包含了非常先进的音频/视频编解码库libavcodec,提供了录制、转换以及流化音视频的完整解决方案。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目名称来自,前面的"FF"代表"Fast Forward",即Fast forword mpeg,音视频转换器。
2023-06-23 16:24:11 325
原创 Go mod 依赖管理
1 go modGo.mod是Golang1.11版本新引入的官方包管理工具,用于解决记录依赖包具体版本的问题,方便依赖管理,类似于(composer.json 和composer.lock文件)2 使用go mod//linuxvim /etc/profileexport GO111MODULE=on source /etc/profile//windows 建议用cmd管理员身...
2020-04-04 09:58:16 2189
原创 域名解析与记录
(Canonical Name Record,别名记录)是将一个域名解析为另一个域名。例如,一个网站可能有多个别名,CNAME记录允许将这些别名指向同一个IP地址。CNAME记录的好处是当需要修改域名到ip到映射时,只需要修改一个,即www.111.com,否则任何配置了www.111.com的地方都要修改。是将域名转换为IP的过程,使得人们能够直接通过域名访问网站,而不用记繁琐的IP地址信息。总的来说,CNAME记录和A记录都是域名解析中的重要记录类型,它们的主要区别在于。是两个不同的记录类型。
2023-10-22 21:07:06 255
原创 Python切词
如果jieba分词不能识别一些专有名词或新词,可以手动添加自定义词典。自定义词典的格式为:每行一个词,每行分三部分:词语、词频、词性,用空格隔开。# 添加自定义词典text = "Python编程真好玩"其中,my_dict.txt是自定义词典文件。如果有多个词典文件,可以使用;
2023-10-20 14:26:29 158
原创 MySQL CDC技术方案梳理
本篇主要探讨MySQL数据同步的各类常见技术方案及优劣势对比分析,从而更加深层次的理解方案,进而在后续的实际业务中,更好的选择方案。
2023-07-09 10:58:24 3251
原创 docker原理及服务编排
Docker 是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google公司推出的Go语言实现。项目后来加入了Linux基金会,遵从了Apache 2.0协议,项目代码在GitHub上进行维护。Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker的基础是Linux容器(LXC)等技术。相对于虚拟机,更加原生和高性能。
2022-12-19 11:03:08 572 1
原创 数据库及程序日常开发命名实践【四期】
本篇继续整理日常项目中语义化命名(变量、类、常量、函数、接口、属性等)的一些实践工作,原则上尽量避免用一些生僻词。
2022-11-05 15:19:46 255
原创 opencv图像加法
灰度图像的像素数据就是一个矩阵,矩阵的行对应图像的高(单位为像素),矩阵的列对应图像的宽(单位为像素),矩阵的元素对应图像的像素,矩阵元素的值就是像素的灰度值。当一个图被放大到一定倍数,就能看到像素点。
2022-09-26 06:00:00 163
原创 图像的表示方法
在RGB色彩空间里,存在R、G、B三个通道,每个色彩通道值的范围都在[0, 255]之间,我们用这三个色彩通道组合表示颜色。:视网膜上有三种不同的颜色感受器,能感受三种不同的颜色:红绿蓝,即三基色,自然界中常见的各种色光都可以通过将三基色按一定比例混合构成。比二值图像表现出更丰富的细节信息,灰度图像在黑色与白色之间还有许多级的颜色深度,计算机会将灰度处理为256个灰度等级,用数值区间。二值图像是指仅仅包含黑色和白色两种颜色的图像,在计算机中,通过一个数据集矩阵来表示和处理图像,每个矩阵点就是一个。
2022-09-20 06:34:59 1599
原创 如何做代码评审(code review)
Code Review 即日常所说的代码评审或代码回顾,主要是在软件开发的过程中,对功能源代码进行评审,其目的是找出并修正软件开发过程中出现的错误的过程,提高和改进代码质量的过程。
2022-08-27 13:26:00 5779
原创 【深度】延时任务调度技术方案
1 背景在实际的业务开发过程中,经常会遇到任务需要延时执行,这和定时执行有区别,定时强调的是在指定的时间点执行,延时强调的是延迟一段时间后执行,本文主要讲一下定时和延时任务的常用方案。常见应用场景:1 订单30分钟未支付则自动取消2 店铺3天未上新则发送消息提醒3 购物车里的商品降价通知4 预订会议室,开始前10分钟提醒5 用户注册后,3天内完善用户信息提醒…2 定时任务Linux* * * * *- - - - -| |
2022-05-01 13:38:00 517
原创 Golang GMP调度模型
1. 背景单进程时代每个程序就是一个进程,一个程序运行完,才能进行下一个进程,串行化执行,当一个进程被IO阻塞时,CPU只能等待IO事件就绪继续执行,而不能切换到其他进程执行,造成CPU资源的浪费。多进程时代后来操作系统具备了最早的并发能力:多进程并发,当一个进程阻塞的时候,切换到其他等待的进程执行,这样就减少了CPU资源的浪费。调度cpu的算法可以保证在运行的进程都可以被分配到CPU的运行时间片。宏观上看,似乎多个进程同时运行。但新的问题就又出现了,进程拥有太多的资源,进程的创建、切换、销
2022-04-24 21:47:09 783
原创 【算法】二叉树层序遍历(go)
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */func levelOrder(root *TreeNode) [][]int { data := make(.
2022-04-17 14:35:19 821
原创 Go map底层结构实现原理
map结构是一种比较常用的数据结构,存储k/v映射关系集合,根据key能够快速的查找对应的v。go的map是基于hashtable实现,冲突解决采用拉链法map 底层实现结构包含hmap和bmap两个,下面详细说一下(注go.1.17.1版本)hmap结构// A header for a Go map.type hmap struct { count int //元素个数 flags uint8 //状态标记 B uint8 .
2022-01-24 11:15:33 1213
原创 数据库及程序日常开发命名实践【三期】
中文英文中文英文中文英文阶段phase讨论discuss挂载安装mount数量amount法律 定律law标签tag拒绝refuse工具箱toolbox utils崩溃crash访问access人工智能ai本地的local保留的reserve翻译translate拆分split切片slice提供provide图图表graph男性male女性female公开的...
2022-01-09 17:28:43 250
原创 数据库及程序开发日常命名实践【二期】
本篇继续整理日常项目中语义化命名(变量、类、常量、函数、接口、属性等)的一些实践工作,原则上尽量避免用一些生僻词。中文英文中文英文中文英文协作teamwork奖品award年度的annual时刻moment限制limit员工employee赝品fake答复answer,reply协议protocol津贴bonus物联网IOT排查check尝试attempt安装install通过via占位符plac
2021-12-02 22:28:34 3136
原创 数据库及程序开发日常命名实践【一期】
本篇主要记录日常项目中语义化命名(变量、类、常量、函数、接口、属性等)的一些实践工作。中文英文中文英文中文英文视图view字段field服务器server加载loading行row列column集群cluster别名alias操作operation控制control危机danger信用credit贷款loan热修复hotfix仓库repository镜像image异常exception包
2021-11-07 19:37:51 753
原创 linux rsync 工具
1 rsync简介一种远程同步工具,实现了一种高效的文件同步算法,具体可以搜索相关论文研究学习,可以实现文件增量、全量同步,删除等操作,是一种用途广泛的运维工具2 安装下载目录 https://download.samba.org/pub/rsync/src/wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gztar -zxvf rsync-3.1.2.tar.gzcd rsync-3.1.2./configure -
2021-11-06 14:00:41 473
原创 Docker 容器化技术初探
本文主要从以下几个方面简要介绍一下docker以及简单demo使用,并不会深入分析docker的原理等内容。一、什么是dockerDocker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包其应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,实现了应用程序与基础设施的隔离,使应用程序能够从一个计算环境快速可靠地运行到另一个计算环境,达到快速交付、测试和部署。二、docker解决什么问题
2021-10-11 21:48:53 150
原创 【算法】N叉树层序遍历
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。/** * Definition for a Node. * class Node { * public $val = null; * public $children = null; * function __construct($val = 0) { * $this->val = $val; * $this->children = array();.
2021-09-19 11:56:22 193
原创 【算法】二叉树层序从叶子到根反向输出
给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)/** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * public $right = null; * function __construct($val = 0, $left = null, $.
2021-09-19 11:27:20 194
原创 【算法】堆排序
初始化堆(大顶堆/小顶堆),从而进行堆排序<?phpfunction heapify(&$arr, $n, $i) { if ($i >= $n) return; $c1 = 2 * $i + 1; $c2 = 2 * $i + 2; $max = $i; if ($c1 < $n && $arr[$c1] > $arr[$max]) $max = $c1; if ($c2 <.
2021-08-31 19:43:33 63
原创 【算法】两数之和等于target,返回索引
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标,假设每种输入只会对应一个答案。class Solution { /** * @param Integer[] $nums * @param Integer $target * @return Integer[] */ function twoSum($nums, $target) { .
2021-08-22 14:46:11 239
原创 【算法】有序数组中,两数和为指定值的数
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释: 2 与 7 之和等于目标数 9 。因此 index1 = 1, index2 = 2.
2021-06-16 23:01:44 318 2
原创 【算法】三数之和等于指定值
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。解题思路1 暴力,三层循环2 在1的基础上,把内两层的循环开始从0变成从外层的i+13 往两数之和的方案上靠(代码如下),几个continue的点比较重要class Solution { /** * @param Integer[] $nums * @ret.
2021-06-13 22:57:24 1139
原创 【设计模式】工厂模式
一般地,很多技术人员在工作前期,很少关注代码结构,每次来一个需求,就是在现有代码的基础上增加新代码实现,这样并没有错,只不过长久下去,会导致代码的可维护性非常差(项目中,大函数常常遇到),比如,一个项目交接多次后,很多的业务逻辑很难梳理清楚,为了增加代码的可维护性,那么应该怎么办呢?可以看出,当抽象的层次越高,开发量越大,文件越多,但结构更加清晰明了,所以有利有弊,任何一种模式,只要被合适的场景下使用,就是好的代码实践,切勿为了使用而使用。当有新的鼠标生产商出现时,需要创建新的。以不同厂商生产鼠标为例。..
2021-05-31 09:45:46 66
原创 【算法】二叉树锯齿层序输出
思路:层序的思路即queue实现bfs,然后就锯齿形的输出,只需在每层节点收集时,是前插入收集列表,还是后插入收集列表即可。/** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * public $right = null; * function __construct($val = 0, $left = n
2021-05-29 08:39:27 92
原创 【算法】二叉树层序遍历
层序,即按层,从左到右输出,思路是queue实现bfs即可/** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * public $right = null; * function __construct($val = 0, $left = null, $right = null) { *
2021-05-06 09:35:07 64
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人