- 博客(92)
- 资源 (8)
- 收藏
- 关注
原创 通过 Ambari 启动 Nebula Gateway 一段时间后会自动退出的问题解决
文章目录参考资料问题概述相关基础知识操作系统: stdout、stderrnebula gateway: 查询图数据逻辑golang 打印日志的目标println: stderrfmt.Println: stdoutlog.Printf / log.Println: stderrSIGPIPE定位过程打印进程详细日志原因分析问题解决小总结参考资料网络编程中的 SIGPIPE 信号SIGPIPE 引发的悲剧SIGPIPE信号详解问题概述在 Ambari 中集成了 nebula studio 1.0
2021-11-20 18:12:38
1412
原创 hexo-个人博客搭建
文章目录效果背景踩坑记 - hugo工具短暂的体验hexo 主题介绍本地搭建方式环境准备设置主题启动博客基本配置的介绍网站信息文章顶部栏部署到github站点github 创建仓库配置准备总结效果博客首页[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-47SWHRjC-1628829910035)(hexo_blog_01.png)]博客标签页[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2GjJ4o7w-1628829910036)(
2021-08-13 12:45:49
383
原创 Docker-Docker Desktop 安装教程,以及推荐Docker作为学习工具的理由
目录一、前言二、安装 docker desktop2.1 环境准备2.1.1 配置wsl2.1.2 注册一个 dockerhub 账号 和 国内云厂商 容器服务2.2 安装 Desktop2.3 Docker Desktop 的配置2.3.1 wsl 数据存储路径2.3.2 配置代理2.3.3 测试拉取并运行镜像三、后言:Docker 在现在开发的重要性文章字数:约4000阅读大约需要时间:10min一、前言博客-Docker-搭建可用SSH访问的centos镜像2年前我写了一篇 关于如何在本地安
2021-07-03 23:47:12
26077
4
原创 golang-文章翻译-go高效编程
原文地址文章目录背景格式化注释和godoc命名规范一、包命名二、getter三、Interface分号条件控制语句一、if二、再声明和再赋值(Redeclaration and Reassignment)三、for1、常见for 循环格式2、使用下划线忽略不需要关注的对象3、其他细节四、switch1、特点2、switch 中的 break3、实战:通过switch 实现更美观的字符串对比方法4、实战:type switch方法定义一、多个返回值二、返回值命名三、defer对象操作(声明、初始化等)一、n
2021-01-26 16:51:41
1225
原创 golang-性能分析(原生工具)
文章目录一、编译阶段1、 go build –race2、go vet 分析程序静态问题3、解析汇编代码二、测试阶段2.1 引入pprof2.2 使用go tool profile 分析CPU 使用情况2.2.1 基本分析2.2.2 测试频繁占用CPU 资源2.3 使用 go tool pprof 分析内存使用情况2.3.1 直接查看内存使用情况2.3.2 测试频繁申请内存场景2.3.3 两个时间段的堆内存对比2.4 goroutine 分析2.4.1 查看当前进程的 goroutine 数2.4.2 分析
2020-11-28 21:41:35
2259
原创 golang-一些常用的静态检查工具
文章目录一、背景二、gofmt2.1 参数说明2.2 go fmt (常用)三、goimports3.1 安装3.2 goland 配置3.3 手动格式化代码/项目3.4 扩展:为什么格式规范化推荐用 goimports 而不是 go fmt四、go vet (静态代码检查)4.1 执行4.2 可以修复的问题4.2.1 语法4.2.2 循环 和 goroutine/defer4.2.3 其他语法问题五、附录-其他参考文章一、背景俗话说,工欲善其事,必先利其器。go 作为一个对基础功能封装非常好的语言,对
2020-11-22 15:54:09
6135
原创 刷题-两球之间的距离最短
一、解题思路题目链接其实依然是使用二分来解,只不过这次的二分并不是数组下标的二分,而是每个桶之间距离的二分。审题后不难理解,最终答案肯定在相邻桶最短距离 ~ 两头桶之间的距离 之间。我们在这个范围进行二分即可。最后时间复杂度应该是O(Nlog(N)),严格来说是O(arrLen * log(maxDistance))二、代码1、check:负责检查指定距离是否能实现,依次遍历所有桶,看最后球是否能放满即可。func check(position []int, ballNum int, minL
2020-08-29 11:04:43
386
1
原创 golang-使用go mock编写业务测试
参考资料官方git地址和示例一、应用场景服务在进行单元测试的时候,由于测试环境和生产环境不同,可能第三方接口的返回也会不同,无法完全模拟生产环境的条件。这就需要通过模拟输入、输出来测试完整的业务逻辑了。二、基本用法1、安装 mockgen 工具Windows:SET GO111MODULE=ongo get github.com/golang/mock/mockgen@v1.4.3正常安装完成后,可在$GOPATH/bin 目录下找到 mockgen2、自动生成mock 代码只有Int
2020-08-01 21:17:40
2082
原创 git-常用语句整理
一、git 原理简单介绍详细原理可参考廖雪峰的博客,其中,关于工作区、暂存区的理解非常关键,理解它对后面理解 git 的提交、回退动作非常有帮助。工作区:通过 git add 添加的,参与状态跟踪的文件暂存区:通过commit 提交的文件和版本HEAD:git 通过commit ID 管理版本,通过HEAD “指针”管理当前版本的位置。commit之后,HEAD 会移动到下一个提交位置(图片来源:图解Git)二、常用语句整理|指令类型| 指令 | 作用 |指令类型指令作用
2020-07-25 16:59:59
389
原创 golang-使用 go test 输出单元测试覆盖率
项目示例-码云一、背景单元测试覆盖率是衡量代码质量的一个重要指标,重要的代码文件覆盖率应该至少达到80%以上。Java 可以通过JaCoCo 统计覆盖率,那么go 项目如何进行代码覆盖率测试呢?二、统计方式1、生成覆盖率报告我们知道直接执行测试代码的指令: go test 指定文件名称 -run “测试方法”。项目工程是如下架构的,可以通过这种方式生成覆盖率报告:go test -mod=vendor -covermode=count -coverprofile=coverprofile.c
2020-07-24 19:36:08
14321
12
原创 刷题-全排列
一、解法:深度遍历+剪枝题解这里写得比较清楚,其实就是在遍历过程中要避免重复的元素连续出现,只需要在遍历的时候做个标记就可以了。二、总结这种不能通过枚举解决的方法,确实只能靠深度遍历来解决代码地址...
2020-07-24 11:23:31
149
原创 刷题-盛水最多的容器
leetcode链接一、最直接的解法:n^2 循环二、O(N) 解法:双指针解法:头尾定两个指针,然后不断向内收缩,每次只将高度更低的那头收缩。那么为什么要移动高度更小的那个位置呢?这样移动真的能够让后续的解更优吗?换一种思路理解一下:如果我们移动高度更大的那个指针,由于总容量的计算公式是(两头中更小的高度 * 两头的距离),因此移动后容量只能更小,不可能更大。所以要选择移动高度更小的头。缩小范围的过程中,容量的整体趋势肯定还是变小的。只有移动高度更小的头,才能有继续增大容量的机会。三、总结
2020-07-23 16:28:25
197
原创 golang-使用 gomodule 在公共测试环境管理go的依赖
文章目录一、go 工程配置二、服务器依赖管理背景:一、go 工程配置既然是协同开发,工程我们就建议使用 go module 对依赖包进行管理了。这样大家可以把依赖都放到统一的GOPATH,如果有新增依赖,直接放到GOPATH 目录即可。二、服务器依赖管理...
2020-07-01 20:11:58
681
原创 专辑音乐合并程序
目录一、背景二、ffmpeg 指令测试1、安装ffmpeg三、效果展示四、开发过程1、爬虫获取网易云歌单中的音乐列表一、背景闲来无事,想起了自己曾经是一个B站UP主,但是距离自己上一次投稿已经是4年以前的事情了,不投点视频都快过气了。那就投吧,其实也不一定要贴真的视频,可以把自己常听的音乐剪成视频,放上去跟大家共享也可以嘛。但是我一般都是听整个专辑,或者整个歌单的内容,怎么把这些音乐都合并成...
2020-03-21 11:41:17
1639
原创 Python-实现每天获取点击量靠前的文章脚本
文章目录一、开始前准备1、windows 安装python32、国内配置pip源3、http 客户端相关模块安装二、实现方式1、http 客户端2、分页获取CSDN的首页博客列表3、获取一篇博客的title4、调用SMTP接口,发送邮件三、调试过程遇到的问题1、Python 不会自己调用父类的init 方法,需要我们自己手动调用2、公司内网访问csdn不通3、从优先队列中get 出来的数据并不是有...
2019-06-11 23:56:13
613
1
原创 mycat-centos系统环境搭建
一、下载安装包http://dl.mycat.io/1.6-RELEASE/注意:还要先安装JDK二、解压直接在工作目录解压就行三、创建MyCAT 用户groupadd mycatadduser -r -g mycat mycatchown -R mycat.mycat /usr/local/mycat //修改mycat目录所属mycat用户四、MyCAT 配置参考博客ht...
2019-06-09 23:02:55
520
1
原创 sublime安装方法
一、安装直接安装最新版本即可,可以直接百度找一个二、插件1、手动安装插件的方法① 在github 上下载想安装的软件直接下载,解压到首选项 — 插件目录即可② 检查是否安装成功重启sublime,并查看插件目录(首选项 — package settings)里面有没有刚安装的插件即可。2、文件对比工具Compare side by side3、代码编辑工具SublimeCo...
2019-06-06 23:34:12
815
3
原创 SSL理解 - 服务端和客户端建立连接的过程
参考博客:知乎-SSL协议之数据加密过程详解用自己的话表述了一下:可能会有一些出入,还请大家指正!
2019-01-06 17:54:03
2483
2
原创 生产环境调优 - 批量删除
一、问题说明某接口需要删除多条表数据,当删除的数据比较多的时候,接口响应速度非常慢。二、解决方式当前版本:MyBatis 部分,进行了串行删除的方式。也就是说:每删除一条记录,就要重新建立一次数据库连接。如果一次接口需要删除100条以上数据,接口的速度基本在10s以上。后来把delete from tableName where primaryKey = ‘xxx’ 这句SQL改成了:d...
2018-12-09 16:51:08
1027
原创 集群 - 请求转发工具
一、问题引入haproxy:可支持tcp层转发,不需要考虑https证书验证的问题;负载均衡能力较弱nginx:只能在应用层进行转发,支持证书需要配置;负载均衡能力强那么在实际的条件下,应该使用哪一种进行转发?集群后续需要做的,应该是:① 满足一般的转发需求,能够实现最基本的负载均衡算法:轮训(所以现在用了haproxy)② 能够实现限流,或者是针对部分请求URL进行限制:—>...
2018-12-08 22:13:51
528
原创 生产环境调优 - innodb buffer size
一、生产环境问题概述数据库操作多的环境,内存持续占用达到90% 以上。但是没有并发的操作,所有和数据库相关的操作都是正常速度。二、调优方式在16U32G 的机器上,将innodb_buffer_size ,从原配置(26G)减少到20G动态修改配置方式:(后续补充)三、原理解释1、innodb_buffer_size的作用对于不同的数据库链接,查询相同的数据,innodb_pool...
2018-12-07 22:44:44
2597
原创 团队与个人建设
团队与个人建设入职也过了快半年了,想把自己在团队中的一些感触写下来。有些东西真的是要到公司才能切身体会的。自己在大学里面的一些懒散的习惯,在公司里面其实都是很容易影响效率的习惯。借助这个机会,也多提醒一下自己吧。一、个人团队离不开个人,首先要个人有成长,团队才能有成长。1、平时的学习毕竟是做技术的,技术才是铁打的饭碗,不管平时有多忙,一定要抽出时间好好钻研一下技术。在我
2018-02-01 23:35:56
447
原创 soj - 1001 Alphacode
样例输入: 25114 1111111111 3333333333 0 输出: 6 89 1 乍一看这道题,好像可以用dfs解,但是结果还是体现了dfs的老问题:速度太慢,所以结果就是超时。所以后来我想到了动态规划,一下子就解决了:#include <iostream>using namespace std;int size;int arr[10000];int dp[100
2016-04-03 01:00:29
660
原创 实习 - 目录
准备实习阶段,学到的东西肯定很多,这个博客就是为了整合所有在实习前、实习中、实习后的经验和经历。 一、实习前 1、第一次被腾讯虐 二、实习中 三、实习后
2016-03-26 01:21:51
675
原创 实习 - 纪念第一次被腾讯虐
实习专题的第一篇,就是参加腾讯模拟笔试。说是笔试,其实也是要用电脑在线考试的。然而,久疏C++的我,果不其然被虐。而且是被两道C++题目虐。选择题有一道,考到了析构函数和虚函数,而且还加上了指针的知识……还有一道是大数乘法,然而我花了半个小时依然没有打完。痛定思痛,还是先总结一下犯错的知识点:
2016-03-25 23:03:19
655
原创 课程project复习 - CPU-hazard
一、什么是hazards hazards是CPU在当前周期无法获取所要取的寄存器的值的问题。出现情况主要分为以下三种: 1、一般计算 第一个ADD将和赋给gr3,第二个ADD则是要用到gr3的值。如果第二个ADD想要gr3的值,必须等到第一个ADD执行到WB阶段,才能得到gr3被更新之后的值。所以还要等3个周期。因此,中间的三个ADD其实都应该换成nop,否则gr3就是更新之前的值
2016-03-24 20:50:26
3000
原创 课程project总结 - 蚁群算法
一、解决问题:TSP(旅行商问题) 旅行商问题是这样的:给定旅行家的起始地点和终点,要求中间必须经过所有的点,求最短路径。解决算法有蚁群算法、遗传算法、分支界定算法等。 二、蚁群算法 1、算法简述 蚁群算法是由Marco Dorigo于1992年在他的博士论文中提出的,灵感来源于蚂蚁找食物。如果一群蚂蚁现在想找食物,第一只蚂蚁的路线是完全随机的,因为没有任何条件。但是这只蚂蚁会在路上
2016-03-24 10:58:26
5276
3
原创 课程project复习 - 云计算
我们这次project实现的是图片中的文字识别:首先客户端上传一张图片给云服务器,然后服务器进行OCR文字识别,再将识别的结果返回给客户端。下面就从云端部分和Android部分分析: 从云端分析:从Android活动来分析代码 一、网络连接(ConnectToCloud.java) 这个类主要用来连接云端,发送指令,然后接收返回的结果,有可能是json格式的数据,也有可能是图片。还有一个功
2016-03-22 17:59:55
498
原创 课程project总结 - CPU
这个作业是在大二下学期编写的CPU五级流水线代码。首先看看整体结构: 一、整体架构(五级流水线) 1、IF阶段: 这个阶段的工作就是控制PC(指令地址)的增长或变化。一般情况下,CPU执行的指令地址每次都加一,然后从指令内存中读取对应的指令来执行,除非执行了跳转指令,指定运行某一条指令。 2、ID阶段: 主要是赋值操作。大部分指令都需要进行计算,然后利用计算结果进行下一步操
2016-03-19 22:14:21
1774
原创 课程project总结 - 目录
上个学期做了三个project:人工智能、云计算(同移动应用开发)、移动web。一直没有时间对这些project总结一下,其实之前还写过流水线的,也没有总结,现在希望可以在翻起这些作业,好好复习一下。 移动web 人工智能 云计算
2016-03-10 10:50:50
768
原创 JavaScript学习 - 数组
① 数组的大小和下标 声明就用array = […]的方式,和字符串不同,数组是可变的,不只是元素可变,长度也可变,可以通过设置length和修改超过length范围的元素来改变数组的长度。var a = [1, 2, 3];alert(a+' '+a.length); // 1,2,3 3a.length = 6; // 直接修改数组的长度alert(a); // 1,2,3,,,v
2016-03-09 17:07:23
381
原创 JavaScript学习 - 字符串
① 字符串下标 和数组类似,字符串的下标也是从0开始,超过字符串大小范围的字符也是undefined类型。但有一点需要特别注意:字符串是不可变的var s = "Curry";s[0] = 'S';alert(s); // Curry② 字符串方法 首先,这些方法(函数)都不会修改字符串本身的值,如果涉及到对字符串的修改,只是会返回一个新的字符串。var lower = 'abc';
2016-03-09 16:41:31
303
原创 JavaScript学习 - 基本用法
1、怎么编写JavaScript代码<!-- 1_1.html --><!DOCTYPE html><html><head><script type="text/javascript">alert('Hello World!');</script><meta charset="UTF-8"><title>Insert title here</title></head><body>
2016-03-08 21:30:53
410
原创 JavaScript学习目录
前段时间一直在学习安卓,学到有点想吐了,突然觉得自己的方向优点问题,不应该只关注安卓而应该关注一下网页开发方面的技术,比如JavaScript和CSS。于是决定打开廖雪峰的网站,学习一下JavaScript。 目录: 基本语法
2016-03-08 11:07:50
449
原创 Hack3 - 创建定制的ViewGroup
现在如果要我们设计这样的布局: 有人会说,用RelativeLayout,然后指定每一个View的margin值。这种方法实现的代码如下:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" andro
2016-03-08 10:31:00
191
原创 Hack2 使用延迟加载以及避免代码重复
1、使用<include />标签避免代码重复 比如在我们的工程中,要经常用到一个TestView,那么可以把TextView的布局代码单独写入一个文件中,然后在其他布局中引用它就可以了。<!-- footer_with_layout_properties.xml --><?xml version="1.0" encoding="utf-8"?><TextView xmlns:androi
2016-03-07 22:54:27
431
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅