Created with Sketch.
Created with Sketch.
首页
发现
小书
登录
注册
×
注册小专栏
通过微信登录
通过微博登录
通过Github登录
通过邮箱
注册
、
登录
友情提示
Login FAQ
.
×
邮箱登录
通过微信、微博、Github 登录
登录
×
邮箱注册
通过微信、微博、Github 登录
注册
icon_photo_1
Created with Sketch.
Catch
我是曾海涵,博客:http://catchzeng.com/
100 / 140
我是曾海涵,博客:http://catchzeng.com/
关注 2
被关注 68
获得赞 150
Created with Sketch.
Created with Sketch.
+ 关注
取消
确定
个人书籍
个人专栏
基于 Go 的微服务实践
专栏简介: 分享基于 Go 的微服务实践。在这里你可以了解到什么微服务,为什么越来越多企业使用它。在实践中也能了...
已发表 4
订阅数 0
Go web编程
专栏简介: 分享 Go web 编程。在这里你可以了解到什么是 Go,为什么越来越多人喜欢它。在实践中也能了解到...
已发表 7
订阅数 13
CatchZeng的技术博客
专栏简介: 本专栏主要分享我在工作、学习上的所见所闻。本专栏不同于本人博客的是,更新较快,内容较全。 订阅的用...
已发表 18
订阅数 299
被轻视的持续集成
专栏简介: 分享持续集成的理论和实践。在这里你可以了解到什么是持续集成、持续部署、持续交付。在项目上也能从现...
已发表 9
订阅数 17
文章
订阅
回复
喜欢
Catch
in
CatchZeng的技术博客
SwiftUI - 如何创建一个强大的 Marquee(跑马灯)?
原文地址 许多 App 需要用到 Marquee(跑马灯)。在 UIKit 中我们可以使用 https://github.com/cbpowell/MarqueeLabel ,但是目前还没有成熟的 SwiftUI 库。 下面,让我们一起做一个强大的 Marquee。 什么样的 Marquee 才是...
Catch
in
CatchZeng的技术博客
打造 Mac “完美”终端(Terminal),一篇就够了
“完美”终端 安装 iTerm2 zsh Oh My Zsh Powerlevel10k 常用插件 autojump zsh-syntax-highlighting zsh-autosuggestions VSCode 配置 参考 “完美”终端 作为一个程序员,经常需要跟终端(Terminal)打交道。配置一个漂亮...
Catch
in
被轻视的持续集成
在 Jenkins Pipeline 中使用 Docker
一、前言 上一篇 我们使用 Docker&Nginx 部署 Jenkins,降低了 Jenkins 的维护成本,这让我们尝到了甜头。不禁思考如果在 Jenkins Pipeline 中也可以使用 Docker 那么那些构建、部署等所依赖的工具&环境维护起...
Catch
in
CatchZeng的技术博客
golang 钉钉机器人Docker&命令行工具&module
前言 最近在优化持续集成,之前使用 Python 写过钉钉机器人,不过随着项目往 golang 发展,于是想去掉 Python 的依赖。另外,想着如果后台服务有些重要的事项,可以通知到钉钉,也想着做个 go module 供项目...
Catch
in
被轻视的持续集成
Docker&Nginx 部署 Jenkins
一、前言 在 持续集成实例 中,我们使用 war 包的形式部署了 Jenkins。但前提是需要下载和配置 JDK 等各种依赖,重启机器后,还需要重新运行脚本才能启动 Jenkins 服务。这给 Jenkins 的维护带来不小的成本,...
Catch
in
基于 Go 的微服务实践
Docker 容器”真面目“
一、前言 在专栏的开篇互联网架构演进中我们讲到,微服务架构会把一组小服务演化成为一个单一的应用。每个应用都运行在自己的进程中,并通过轻量级的机制保持通信。这看似简单,但在实践中你也...
Catch
in
基于 Go 的微服务实践
什么是 RPC
一、前言 RPC(Remote Procedure Call)远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。下面举个简单的例子来理解 RPC。 远程过程调用相对应的就是本地过程...
Catch
in
基于 Go 的微服务实践
CAP 原则
一、前言 微服务时代,大型网站几乎都是分布式的。分布式系统的最大难点,就是各个节点状态的同步。CAP 原则正是这方面的基本原则,能帮助我们更好地理解分布式系统。 二、CAP 原则 CAP 原则又称 CAP ...
Catch
in
基于 Go 的微服务实践
互联网架构演进
一、前言 本文旨在通过介绍互联网架构的演进过程,帮助大家理解微服务的概念和出现的原因。 互联网产品往往具备用户量大、高并发、PB级别的数据存储等特点,同时还需保证系统的高可用和弹性伸缩...
Catch
in
CatchZeng的技术博客
优化安装包大小 -- AppThinning Desktop
一、前言 在文章优化安装包大小中,我们介绍了常见的优化安装包大小的方法,并写了一个脚本工具 AppThinning ,帮助自动找到大文件,然后进行图片压缩。然而,实际运用中图片的前期处理者经常是设计...
Catch
in
被轻视的持续集成
Jenkins 自动备份和恢复
一、前言 上一篇我们通过一些实例讲解了 Jenkins 多节点构建,相信大家已经不再畏惧复杂项目的集成。在实际项目中,我们还有一件非常重要的事情需要完成,那就是自动备份和恢复。 本文将围绕自动...
Catch
in
被轻视的持续集成
Jenkins 多节点(Master/Slave)构建
一、前言 上一篇我们通过一些实例讲解了 Jenkins Pipeline,相信大家已经掌握了持续集成的主要流程。在实际项目中,我们可能会遇到需要在多平台构建的项目。如下图所示,该项目便是需要在 Mac 和 Windows ...
Catch
in
CatchZeng的技术博客
图片编码探索 -- JPEG
一、前言 本文是图片编码探索的第一篇,主要介绍 JPEG 的编码,在这里你将了解到: 图片的基本概念 色彩空间转换 色彩抽样 傅里叶变换 量化矩阵 熵编码 ...... 二、基础概念 在开始探索前,先来了解...
Catch
in
CatchZeng的技术博客
DevOps 是一种怎样的体验?
一、软件开发演变史 软件行业中,每一个概念的提出都是为了解决某个特定的问题。要了解 DevOps ,就要讲下软件开发的演变史。 传统瀑布模型 <img src="https://diycode.b0.upaiyun.com/photo/2019/a9326b0d3f65f49a56fe9b5f...
Catch
in
Go web编程
使用 Docker 部署 Go 服务
更新于 2020-07-27一、前言 上一篇 我们讲解了 Go, gin, vue 创建单页应用。很多时候,我们为了开发、测试、部署环境一致,会使用 Docker 来部署应用。 二、使用 Docker 部署 Go 服务1、创建项目 创建 hello-world ...
Catch
in
Go web编程
Go, gin, vue 创建单页应用
一、前言 上一篇 我们讲解了 Go RESTful API。很多时候,我们的 RESTful API 是提供给前端使用的,本篇主要通过 Go + Vue 实现一个 Todo App 以此来介绍 Go 的前后端交互。 二、后端 开发中一般主张前后端分离,...
Catch
in
CatchZeng的技术博客
基于 Docker 部署自托管 Gitlab
一、前言 Git 无需多说,还不知道 Git 的程序猿不是好程序猿。随着 Git 的发展,诞生了许多 Git 的托管平台,比如: Github、Gitlab、oschina 等。每个平台都有各自的特点。 Github 适用于开源项目( Github flow) ...
Catch
in
Go web编程
Go RESTful API
一、前言 上一篇 我们讲解了 web 编程的文件上传。本篇主要介绍下 web 编程中的 RESTful API。通过本篇你讲了解到什么是 RESTful API、Go 操作数据库、Go ORM 等知识。 二、RESTful API RESTful 是目前最流行的 API 设...
Catch
in
CatchZeng的技术博客
Android Maven 私有库
一、前言Maven Maven 是一个项目管理和自动构建工具。Maven 包是由 POM(Project Object Model)所定义的文件包格式。Maven 包集中存放的地方,就是 Maven 仓库。这些仓库,可以是放在本地,也可以放在某个远程服...
Catch
in
Go web编程
Go 文件上传
一、前言 上一篇 我们讲解使用 gin 讲解了 web 编程基础的 GET 和 POST 请求。本篇主要介绍下 web 编程中的文件上传部分。 二、单文件上传 新建项目,并添加 main.go // main.go package main import ( "fmt" "net...
Catch
in
Go web编程
Go web 初探
一、前言 上一篇我们讲解了 Go 单元测试,有了单元测试,我们就可以写出较为可靠的代码。本篇我们开始讲解 web 编程部分,你可以了解到 Go 包管理器和 gin 的基本使用等。 二、包管理器 包管理器对开发...
Catch
in
Go web编程
Go 单元测试
一、概述 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go 是从2007年末由 Robert Griesemer, Rob Pike, Ken Thompson 主持开发,后来还加入了 Ian Lance Taylor, Russ Cox 等人,并最终于2009年11...
Catch
in
Go web编程
Go 初见
更新于 2020-07-27一、概述 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go 是从2007年末由 Robert Griesemer, Rob Pike, Ken Thompson 主持开发,后来还加入了 Ian Lance Taylor, Russ Cox 等人,...
Catch
in
被轻视的持续集成
Jenkins Pipeline 详解
一、前言 上一篇我们通过一个实例实践了持续集成,相信大家对持续集成都有一个宏观的了解。本篇文章主要讲解最核心的 Jenkins Pipeline 部分。 二、Jenkins Pipeline Jenkins Pipeline 就是一系列的插件集合,可通...
Catch
in
CatchZeng的技术博客
优化安装包大小
前言 周末跟朋友交流 app 新功能时,发现还没更新,于是打开 app store 准备更新,发现由于包太大了(下载大于 150M),无法使用蜂窝数据下载,周围又没有 WIFI,非常尴尬。这件事让我意识到包大小对 app ...
Catch
in
CatchZeng的技术博客
Learning OpenCV with iOS: 形态学--开运算、闭运算、梯度、顶帽、黑帽
一、前言 上一篇 我们讲解了OpenCV图像形态学中的膨胀和腐蚀。本篇向大家介绍下其他形态学操作。按惯例,先来看下效果图。 二、开运算 开运算,其实就是先腐蚀后膨胀的过程。开运算可以消除 “白...
Catch
in
被轻视的持续集成
持续集成实例
一、前言 上一篇我们主要讲解了持续集成与Git 工作流,阅读完的朋友可以根据自己的项目特点选择适合的Git工作流(推荐使用TBD) 。本篇文章通过实践一个 iOS 项目的持续集成,帮助大家更好地掌握持续...
Catch
in
CatchZeng的技术博客
Learning OpenCV with iOS: 形态学--膨胀与腐蚀
一、前言 上一篇 我们讲解了OpenCV图像模糊中的非线性滤波。本篇向大家介绍下形态学操作。按惯例,先来看下效果图。 二、形态学 形态学(morphology)通常表示生物学的一个分支,该分支主要研究动植...
Catch
in
CatchZeng的技术博客
Middleware(中间件)之道
一、前言 在日常开发中,我们经常遇到逻辑复杂的业务,导致代码写得又长又乱。有些逻辑像一个流程,在不同的节点需要做不同的操作。 比如,我们经常会遇到上传文件的业务。该业务要求先验证文件...
Catch
in
被轻视的持续集成
持续集成与 Git 工作流
一、前言 上一篇我们主要讲解了持续集成工具选型,阅读完的朋友可以根据自己的项目特点选择合适的工具 。工具问题解决后,我们需要优化一下“源头”。现今,有许多工作流,本文将介绍几种常见的G...
Catch
in
被轻视的持续集成
持续集成工具选型
一、前言 上一篇我们主要讲解了持续集成的理论部分,阅读完的朋友应该能了解到持续集成的重要性。 熟悉“持续集成”的朋友,一般都会同意这样的观点:“使用它已经成为一种强制”。如今有很多持...
Catch
in
CatchZeng的技术博客
Learning OpenCV with iOS: 图像模糊--非线性滤波
一、前言 上一篇我们讲解了OpenCV图像模糊中的线性滤波。本篇主要向大家介绍下非线性滤波。按惯例,先来看下效果图。 二、线性与非线性 上一篇中使用“卷积算子计算都是线性操作,所以又叫线性...
Catch
in
被轻视的持续集成
持续集成是什么?
一、前言 这几年我一直在坚持做一件事情,那就是持续集成。它给项目带来了许多好处,现在做项目已经离不开它了。我也时常与人交流持续集成,发现了解它的人非常明显地分成了两类。一类是非常了...
Catch
in
CatchZeng的技术博客
Learning OpenCV with iOS: 图像模糊--线性滤波
一、前言 上一篇我们讲解了OpenCV的图像亮度和对比度调整。本篇主要向大家介绍下图像模糊。按惯例,先来一张效果图。 二、模糊 所谓模糊,可以先简单理解为每一个像素都取周边像素的平均值。 上...
Catch
in
CatchZeng的技术博客
Learning OpenCV with iOS: 图像亮度和对比度
一、前言 上一篇我们讲解了OpenCV的图像混合与ROI。本篇主要向大家介绍下图像变换的调整亮度和对比度。按惯例,先来一张效果图。 二、图像变换算子 一般的图像处理算子都是一个函数,它接受一个或...
Catch
in
CatchZeng的技术博客
Learning OpenCV with iOS: 图像混合与ROI
一、前言 上一篇我们讲解了OpenCV的掩膜操作。本篇主要向大家介绍下图像处理中的图像混合。按惯例,先来一张效果图。 二、图片相加 要叠加两张图片,可以将Mat直接相加,相加两幅图片的形状(高度/...
Catch
in
CatchZeng的技术博客
Learning OpenCV with iOS:掩膜(mask)操作
一、前言 上一篇我们简单讲解了OpenCV的概念和基础架构。本篇主要向大家介绍下图像处理中一个比较重要的概念 -- 掩膜操作。开始前我们先看下利用矩阵掩膜操作来加强图像对比度的效果。 二、开胃菜...
Catch
in
CatchZeng的技术博客
Learning OpenCV with iOS:Hello OpenCV
一、概念介绍图像处理、计算机视觉 图像处理,用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过...
Created with Sketch.
top
Created with Sketch.