自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 资源 (7)
  • 论坛 (1)
  • 收藏
  • 关注

原创 一图看尽 Go 1.16 变更

工具链 go mod GO11MODULE 环境变量从默认 auto 改成了 on mod 功能从1.11以来终于彻底成熟了 //go:embed 通过 //go:embed 注解的方式内嵌文件 go-bindata 的活被干了 通过在变量上方添加注解来实现内嵌文件 一个文件 //go:embed hello.txt 支持变量类型 string []b.

2021-03-06 13:23:35 141

原创 Ubuntu 多网卡阻止Netplan在每个接口上绑定默认网关

问题现象当ubuntu服务器配置两个网卡 ens33 和 ens38 ,比如说 ens33 用于内部本地网络通信,ens38 是与ISP到Internet的外网连接。当你将ens33 配置为静态,不设默认网关,ens38 通过 DHCP 获取配置信息时不会出问题。/etc/netplan/00-installer-config.yamlnetwork: version: 2 renderer: networkd ethernets: ens33: dhcp4: n

2021-02-20 12:32:36 264

原创 kubernetes 源码解析,kubelet pod 变更事件处理逻辑整理

代码划分由于 kubelet 代码还是比较复杂的,下面是我整理的自己对kubelet的代码功能划分,可以先通过下面的描述在脑海里构造一个大致的框架,这样看到具体代码逻辑大致能知道属于哪一部分负责什么逻辑,理解会轻松一些。根据整理代码,目前我将kubelet和POD相关的代码划分为3大部分。事件源 - POD变更事件产生抽象层 - 一些中间逻辑抽象,以及对很多特性的支持执行层 - 负责POD真正的创建,修改,删除关键路径下面这张图不是完整的调用层级,因为完整的调用层级比较深,所以对于不太重

2021-01-04 19:12:15 101

原创 kubelet 指标监控,/metrics 接口暴露出来的指标列表和说明,

现状这段时间在研究 kubernetes 的性能测试,需要观察当前 kubernetes 的各种运行指标,但是苦于英语渣,百度又找不到别人的分享,或者搜索词不对。目标没有办法,硬着头皮使用 Goole 翻译加上看代码对 kubelet 的指标内容进行了翻译,所以整理一下,希望可以帮到有需要的人。结果// 审计事件生成并发送到审计后端的数量# HELP apiserver_audit_event_total [ALPHA] Counter of audit events generated and

2020-12-30 11:16:11 763 1

原创 配置OpenLDAP主从复制模式

https://lework.github.io/2019/07/21/ldap-master-slave/cat > loglevel.ldif << EOFdn: cn=configchangetype: modifyreplace: olcLogLevelolcLogLevel: statsEOFldapmodify -Y EXTERNAL -H ldapi:/// -f loglevel.ldifcat > rpuser.ldif <<EOF

2020-11-05 17:44:21 104

原创 使用 Docker 搭建 PostgreSQL 12 主从环境

mkdir -p /data/psql/{master,slave,repl}chown 999:999 /data/psql/{master,slave,repl}docker run --name "psql-master" -d -e "POSTGRES_PASSWORD=postgres" -v /data/psql/master:/var/lib/postgresql/data postgres:12docker exec -ti psql-master psql -U postgres -

2020-11-03 17:44:08 186

原创 LDAP 如何修改条目的对象类,避免修改对象类时提示 “structural object class modification from X to Y not allowed“

问题现象由于LDAP 没有在单个事务中执行两个操作的标准化方法,因此中间目录状态(在删除之后,在添加之前)对于其他客户端是可见的, 这可能导致不良的客户端行为。基于这个考虑早期 LDAP 没有提供修改条目对象类的功能。当你尝试修改条目的对象类的时候会提示你structural object class modification from X to Y not allowed,具体提示如下:[core@localhost tmp]$ ldapmodify -h home.coocn.cn -D "c

2020-10-16 15:20:18 134

原创 对视频声音,音频进行音量标准化和响度均化,归一化的标准,原理以及具体操作

为什么要做音频(音量)标准化( Audio normalization)?当我们在网上寻找音频时,由于制作标准等其他方面影响,会发现下载到的音频声音有的大有的小,比如音乐,这就会导致我们在听的时候需要根据不同的文件调整不同的音量大小,要不然可能在切换到下一首时音量能直接把你震晕或者查找我们在网上寻找音频素材,在使用时素材声音忽大忽小会严重影响成品质量。因此需要对视频中的音频进行标准化,避免声音忽大忽小。Audio normalization 是什么?目前音频标准化主要分为两种做法Peak (lev

2020-10-16 11:46:44 4799

原创 使用Rust编写 Windows dll 并注入进第三方进程后对 Windows API MessageBoxW 进行 Hook

hook 方式这里采用编译成 dll 后注入,这里有两点需要注意:目标程序为 32/64 位 rust 编译工具链也需要对应 32/64 位编译需要用 release 模式,防止注入编译器在 debug 下为了调试附加的数据Cargo.toml 中需要说明将其编译为库且类型为动态的,如果编译时显示找不到编译目标则手动添加一行路径:[lib]crate-type = ["dylib"]path = "src/lib.rs"当然你还可以通过创建远程线程来 hook,不过过程比较繁琐这里就提

2020-09-30 13:58:00 1402 2

原创 解决 ffmpeg 开启 mp3 解码器时提示 mp3_decoder because some selected dependency is unsatisfied: mpegaudio

问题编译iOS平台的FFmpeg,编译完成后,使用 avcodec_find_decoder(AV_CODEC_ID_MP3) 结果找不到AAC解码器编译配置关于解码器的编译配置是 --disable-decoders --encoder-decoder=mp3问题排查查看编译过程,发现有一个警告WARNING: Disabled mp3_decoder because some selected dependency is unsatisfied: mpegaudio解决需要添加以下两个

2020-09-27 15:58:22 109

原创 解决 ffmpeg 开启 acc 解码器时提示 some selected dependency is unsatisfied: adts_header mdct15 mdct sinewin

问题编译iOS平台的FFmpeg,编译完成后,使用 avcodec_find_decoder(AV_CODEC_ID_AAC) 结果找不到AAC解码器编译配置关于解码器的编译配置是 --disable-decoders --encoder-decoder=aac问题排查查看编译过程,发现有一个警告WARNING: Disabled aac_decoder because some selected dependency is unsatisfied: adts_header mdct15 mdc

2020-09-27 15:57:25 71

原创 win10+cuda10+tensorflow+tensorflow -gpu 安装教程,解决cuda10国内下载文件大小只有42b

背景简介作为一个对深度学习极其富有好奇心,但一直不得入门的小白来说,前几天终于看到了 《深度学习之TensorFlow:入门、原理与进阶实战 》这本书,通过这本书算是终于看懂了一些,于是准备用自己电脑实地操练一番。需要安装的软件此处假设当前机器是全新机器!!!AnacondaTensorflow && Tensorflow-gpu (由于书籍上面的示例多数是v1版本的,所以此处安装 v1.15)CUDA 10.0CUDNNAnaconda下载地址:https://rep

2020-09-13 19:23:45 725

原创 让genymotion支持直接在vscode中用F5运行flutter的项目

起因手机连接电脑VS Code能识别到设备,说明驱动是正常的VS Code的插件也是安装好了的;然而开启Genymotion,VS Code 检测不到设备,命令行跑adb advices或flutter advices或flutter doctor都检测不到;解决方法如下:vs和as都是ide,以下方法通用1. 点击左上角进入settings2. 点击ADB3. 选择Use custom Android SDK tools,选择你当前Android SDK的位置(我的在D盘下的An

2020-08-31 16:29:53 200

原创 flutter安装程序和依赖包国内镜像以及下载地址集合

现象国内下载flutter和安装依赖实在是太太太太太慢了!!!简直无法忍受!!!解决方案下面是国内几个镜像,PUB_HOSTED_URL是Dart依赖包地址,FLUTTER_STORAGE_BASE_URL是Flutter依赖文件地址。下载安装包要手动下载最新版本的flutter SDK包,可以访问FLUTTER_STORAGE_BASE_URL 地址,然后进入/flutter_infra/releases/目录下载(这个方式Flutter社区不可用)。比如使用腾讯云开源镜像站// 所有稳定版

2020-08-31 14:26:43 1083 1

转载 将所有 Git 远程仓库 URL 从 HTTPS 替换成 SSH

自从年初的时候入手了 Yubikey 之后,就在 Github 上配置了安全密匙,随之而来的是在 push 到 Github 的时候不知道自己的密码到底是什么了(直接输入密码会报错),为了掩盖自己是一个垃圾的事实,便想到了让所有的 git 都走 SSH 而不是 HTTPS 的方法解决方法此处以 Github 为例,在命令行中输入以下内容即可 (替换所有的 HTTPS 为 SSH)git config --global url.ssh://git@github.com/.insteadOf https:

2020-08-28 23:18:28 395

原创 一种简单的 Golang 项目目录结构划分

简介当时在公司内部做分享画的PPT,介绍之前公司使用的项目目录结构划分。目录结构应用接口层业务模型层数据模型层项目规划示例

2020-08-18 10:01:35 1254

原创 分享一款免费网易云,QQ音乐,虾米音乐,酷狗,酷我加密格式批量转换MP3格式的网站

转换网站也不知道是谁带的头,网易云,QQ音乐,虾米音乐,酷狗,酷我现在下载的音乐全都是自有的加密方式,恶心的一批。这里分享一款在线界面网站,可以在线将加密格式转成正常的音乐格式。网址:http://www.coocn.cn/music/decode/网站截图...

2020-08-01 19:04:58 1558

原创 阿里人机检测验证码的自动化操作尝试

1. 通过检测浏览器状态来进行人机检测使用selenium打开浏览器通过 selenium 打开的浏览器是出于测试状态的,和正常的浏览器不太一样。通过 selenium 打开的浏览器哪怕人工手动拖动验证码也会被判断出来是机器操作并显示"出错了"。通过查阅资料发现阿里人机交互会检查window.navigator.webdriver 是否为空,通过代码处理后可以绕过。正常打开window.navigator.webdriver值:> window.navigator.webdrive

2020-07-20 09:26:11 885

原创 Golang 根据 interface 接口定义直接生成空白实现代码和注释,避免大量的复制粘贴

说明implgen 用于通过 interface 定义生成 Go 接口空白实现代码的工具。用于减少开发人员工作量,将机械式的复制粘贴代码交由工具来实现,提升工作效率。安装说明1. 通过源码安装执行命令通过源码安装:go get github.com/ssoor/implgen执行命令检查输出来验证安装结果:implgen --help2. 使用 gex 安装gex 是用来管理项目工具类依赖项的工具。通过使用 gex 可以清晰的说明代码都依赖于哪些工具,并在使用时自动拉取和

2020-06-28 12:14:19 461

原创 解决 VMWare 虚拟机中无法 使用 kata-containers,提示 vhost_vsock: Device or resource busy

问题现象在 VMWare 中的 linux 虚拟机中安装 kata-containers 运行 sudo kata-runtime kata-check 检查环境时出现如下提示:ore@ubuntu20-dev:~$ sudo kata-runtime kata-checkWARN[0000] modprobe insert module failed: modprobe: ERROR: could not insert 'vhost_vsock': Device or resource busy

2020-06-27 19:10:56 1047

原创 解决 AMD CPU 使用 VMWare 在嵌套虚拟化中用 qemu 启动虚拟机提示 Assertion ret == cpu-kvm_msr_buf-nmsrs failed

问题现象在 AMD CPU上通过VMWare 虚拟出来的虚拟机中继续通过 qemu 进行嵌套启动虚拟机时报错,报错信息如下:core@ubuntu20-dev:~$ sudo qemu-system-x86_64 -cpu "host,pmu=off" -enable-kvmMoTTY X11 proxy: Unsupported authorisation protocolUnable to init server: Could not connect: Connection refusedqe

2020-06-27 18:55:13 2250 1

原创 关闭 CentOS 的后台更新服务 dnf makecache 停止系统在后台跑流量

现象新创建的一台服务器并关联了一个流量包,因为有其他事单个了就啥都没装,结果第二天发现流量包被消耗了1个G。原因经过查看系统日志发现,dnf-makecache.service服务一直定期的更新元数据导致消耗流量。不太能理解的是 dnf 命令执行的时候每次都强制更新,为什么还要有个计划任务一直跑~Fri 2020-06-19 01:55:13 CST dev-node init.scope[1]: Starting dnf makecache...Fri 2020-06-19 01:55:1

2020-06-19 18:02:25 1886

原创 Hyper-V 在 AMD 处理器上开启嵌套虚拟化

问题现象Hyper-V 之前一直不支持在 AMD 平台开启嵌套虚拟化,但最近的 win10 build 19640 更新对 AMD 平台上的嵌套虚拟化提供了支持。所以,Windows 10 现在 AMD 平台也可以开启嵌套虚拟化了。解决方案必须使用Powershell使用以下方法创建计算机:PS C:\Users\Administrator> New-VM -Name "S2019 Nested Test" -Version 9.3 -Generation 2如果不提供版本的话会创建 9

2020-06-08 14:42:49 3693

原创 解决文件权限正确,但 systemd 服务仍然提示没有权限,启动失败。提示信息:service: Failed to execute command: Permission denied

现象文件权限正确,但是通过 ·systemd· 启动时仍然报 Permission denied 错误。文件权限:[core@localhost ~]$ ll /usr/local/bin/total 192512-rwxrwxr-x. 1 core core 39813120 Jun 6 09:00 kubeadm-rwxrwxr-x. 1 core core 44032000 Jun 6 09:00 kubectl-rwxrwxr-x. 1 core core 113283800

2020-06-06 19:17:58 5202

原创 解决 Fedora CoreOS 执行 ‘systemctl enable kubelet.service’ 时提示 ‘Failed to enable unit: Access denied’

# 现象我在 `Fedora CoreOS` 上安装 `kubernetes` 进行到创建 `kubelet` 服务设置开机启动时执行 `systemctl enable kubelet` 结果出现错误:```[core@localhost ~]$ sudo systemctl enable /usr/local/lib/systemd/system/kubelet.serviceFailed to enable unit: Access denied```我勒个去!这搞毛啊。我可是

2020-06-06 19:02:36 2278

原创 重置 systemd 失败列表,让 CoreOS 和 Fedora CoreOS 登录时不要显示 [systemd] Failed Units。

现象CoreOS 和 Fedora CoreOS 系统中,如果 systemd 检测到有服务启动失败,当用户登录进 shell 的时候就会将出问题的服务在 mean 消息时显示出来。mean 消息如下:......[systemd]Failed Units: 1 NetworkManager-wait-online.service[core@localhost ~]$ 解决方案首先,我肯可以通过下面的命令来查看更多信息:$ systemctl --failed$ systemd

2020-06-06 17:10:59 158

转载 概念数据模型(CDM)、逻辑数据模型(LDM)、物理数据模型(PDM)区别以及哪些适合需求分析阶段的数据建模

在工作中,关于概念数据模型(Concept Data Model)、逻辑数据模型(Logical Data Model)、物理数据模型(Physical Data Model)三个数据模型的探讨中,发现大家都有自己的见解,但是却没有一个人能真正的说清楚这三个模型的涵义与差异。虽说由于这三个模型在软件开发的过程中,由于其功能与作用的差异,结合项目规模等实际情况,不一定会全部使用以节省项目时间(有时候直接设计物理模型),但我认为不应该被冠以“大家对这个概念的理解不同”不同之名而歪曲数据模型的定义。事实上,

2020-06-02 15:02:22 789

转载 搜索和筛选有什么区别?顺丰 UED 的总结!

本文作者将从用户诉求、信息层级、界面表现三个层次上,试图对搜索和筛选两者的边界进行理清,并分别给出一些设计切入点。一、问题产生一次设计评审会上,作为设计师的我们和研发方针对「搜索和筛选到底是不是一回事?」这一问题产生了认知差异。核心分歧点在于:研发哥哥认为从数据层面来讲,搜索和筛选是一回事。而从用户的感知来看,我们认为两者是不同的。剖析字面意:搜索是寻求,搜查,发现之意;而筛选则是对分离的两种或两种以上物质按照某种特性进行选择的操作过程。显而易见,两者性质不同。而在产品设计中,两者的差异从哪些细节中体

2020-06-02 09:35:31 420

原创 Golang 常见面试考点汇总及原理解析(2) - map, slice 考点

Slice 切片slice 的考点一般围绕着 len,cap,append 进行考察,我这里整理了一道面试题,基本覆盖了 slice 中的大多数考点。题目:下面这段代码的输出结果是什么?package mainimport "fmt"func sliceAppend(slice []int,v int) []int { return append(slice, v)}func ...

2020-04-19 11:58:35 405

原创 Golang 常见面试考点汇总及原理解析(1) - defer 机制考点

defer 机制defer 机制一般有两个考点,第一个是多defer的执行顺序,第二个就是defer func(){...}() 和 defer func(a) {...}(a) 的区别。1.1 执行顺序题目:下面这段代码的输出结果是什么?package mainimport "fmt"func out(str string) { fmt.Println(str)...

2020-04-19 10:32:22 125

原创 修复 docker 挂载 volume 提示 Permission denied 的所有方法,包括不关闭 SELinux

现象将主机上的目录挂载到docker容器中后,访问挂载的文件出现如下的提示:[root@localhost ~]#docker run --rm -ti -v /root/.ssh/:/root/.ssh/ alpine/ # ls ~/.ssh/ls: can't open '/root/.ssh/': Permission denied原因当使用SELinux 来控制容器中的进程...

2020-04-15 12:27:54 390

原创 单体仓库与多仓库都有哪些优势劣势,微服务选择哪种方案比较好?
原力计划

我在去年和前年主导了公司两个产品后端的技术选型和整体架构,并分别尝试了两种源码组织模式:多仓库和单体仓库。对两种仓库的利弊也有了很大程度上的感受,基于这个前提对这两种模式做个总结。阅读本文后你会明白:什么是单体仓库?为什么 Google 采用单体仓库?单体应用和微服务应用在介绍单体仓库和多仓库前,先来说说什么叫单体应用和微服务应用。微服务相比单体应用最大的好处是可以独立的开发测试部署和...

2020-03-24 10:37:22 2341

原创 1条命令解决使用kubeadm安装 kubernetes 从 k8s.gcr.io 拉取镜像失败的问题

原因由于 kubernetes 安装时需要从 k8s.gcr.io 拉取镜像,但是该网站被我国屏蔽了,国内没法正常访问导致没法正常进行kubernetes正常安装。这里通过介绍从Docker官方默认镜像平台拉取镜像并重新打tag的方式来绕过对 k8s.gcr.io 的访问。解决方案通过执行 kubeadm config images list 获取到需要拉取的镜像列表,并通过 sed 格式...

2020-03-23 11:03:13 1328 1

原创 Linux模块加载流程及如何让系统开机自动加载模块

Linux模块加载Linux系统加载哪些内核模块,和配置文件有关系。模块保存在/lib/modules/下。/etc/modprobe.d/下配置模块加载时的一些参数,也可以利用blacklist来屏蔽模块的自动加载。例如,在安装NVIDIA显卡驱动时,需要屏蔽开源的nouveau驱动,就可以将其加入blacklist。如何添加一个自己编译的模块将编译好的.ko模块放到目录/lib/mod...

2020-03-22 20:11:37 2200

原创 socket 调用对应 TCP 包对应关系,以及TCP包状态的详细介绍

TCP 状态有几种?说的 TCP 包状态实际上是 TCP 标志位,主要以下有6种:名称英文中文详细说明SYNsynchronous同步建立连接,同步状态ACKacknowledgement确认确认上一个包已收到(确认收到)PSHpush推发送数据FINfinish结束连接结束,不需要发送数据了RSTreset重置重置...

2020-03-16 10:29:26 371

原创 在 git clone 时添加了 --depth 后,如何重新拉取所有全部的历史来获取完整的仓库

现象由于众所周知的原因,国内在拉 https://github.com/xxx/xxx.git 的时候速度特别慢,所以呢吗,有时我们为了加快 clone 的速度会使用 --depth 参数,比如:git clone https://github.com/xxx/xxx.git --depth 1但是这么拉下来之后呢,会有一个问题,就是执行 git log 的时候会显示只有一条提交记录。r...

2020-03-04 17:44:06 4346

原创 setlocale(LC_ALL,"") 中的 LC_* 是什么意思,以及 LANGUAGE/LANG 都是些啥?

这些都是个啥?上面提到的种种,实际上都是 区域 设置相关的东西,因此今天我们所提到的东西都和区域有关。setlocale(...) 是啥?setLocale(...) 是C库中的一个设置地域化信息的C函数。函数原型为:char *setlocale(int category, const char *locale)参数解释:category – 这是一个已命名的常量,指定了受区域...

2020-03-03 11:57:18 1454

原创 Linux内核的文件预读机制详细详解

Linux文件预读算法磁盘I/O性能的发展远远滞后于CPU和内存,因而成为现代计算机系统的一个主要瓶颈。预读可以有效的减少磁盘的寻道次数和应用程序的I/O等待时间,是改进磁盘读I/O性能的重要优化手段之一。本文作者是中国科学技术大学自动化系的博士生,他在1998年开始学习Linux,为了优化服务器的性能,他开始尝试改进Linux kernel,并最终重写了内核的文件预读部分,这些改进被收录到Lin...

2020-03-02 21:17:25 1034

原创 Linux buffer/cache 内存占用过高的原因以及解决办法

表现现象在Linux系统中,我们经常用free命令来查看系统内存的使用状态。在一个 CoreOS 的系统上,free命令的显示内容大概是这样一个状态:core@localhost ~ $ free total used free shared buff/cache availableMem: 8145320...

2020-03-02 20:59:22 9043 2

原创 在 linux 下用 docker 的方式编译 Unity 并和CI进行集成

原因由于公司专用的CI服务器时linux的,导致 unity 相关的CI任务无法在CI服务器上执行,所有专门找了个Windows 的机器来执行unity 相关CI任务,但是那台Windows 机器配置比较低,再加上我记得Unity是有linux版本的,所以受不了等待的我开始折腾如何在Linux上执行Unity CI任务。技术方案通过使用 ssoor/unity3d:2017.4.8f1-an...

2020-03-02 18:36:51 398 6

CI/CD 自动部署落地方案分享

CI/CD 自动部署落地方案分享

2019-03-14

微服务架构及弱网优化方案.pptx

微服务架构及弱网优化方案

2019-05-29

项目目录结构.pptx

Golang 项目目录结构

2020-08-18

WinHex_v19.8_KM.rar.7z

Winhex 19.8 keygen;

2019-12-10

微服务概念及优缺点.docx

通常而言,微服务架构是一种架构模式或者说是一种架构风格。 它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。 服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API) 。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。

2019-05-29

HIPS源码,可以用于学习

系统防火墙,是Delphi爱好者的必须学习的源码,学习后就能对注册表监视.文件监视的掌握了类似360的程序

2014-01-25

自动打包脚本.zip

Unity SVN Git 自动拉取源码自动打包脚本

2019-09-24

openstack 创建后无法连接外网...

发表于 2016-11-16 最后回复 2016-11-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除