自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lightserver.cn

lightserver

  • 博客(105)
  • 收藏
  • 关注

原创 Golang 拼接字符串的 5 种方法及其效率(下)

【代码】Golang 拼接字符串的 5 种方法及其效率(下)

2022-12-12 10:28:41 439 1

原创 Golang 拼接字符串的 5 种方法及其效率(上)

【代码】Golang 拼接字符串的 5 种方法及其效率(上)

2022-12-12 10:27:03 703

原创 微信小程序隐私指引完整填写范本(开发者收集你的身份证号码,用于)

开发者收集你的身份证号码,用于

2022-11-28 12:19:10 956

原创 对已经关闭的 channel 进行读写关闭操作会发生什么?

golang channel 面试题

2022-11-21 08:36:05 934

原创 Goland 编辑器:unresolved reference 错误提示

问题:Goland 编辑器在函数已经实现的情况下,提示 unresolved referenceGolang protocol buffer 同样出现类似问题解决方法执行 :file->Invalidate Caches / Restart

2021-11-18 16:15:04 1107

原创 Mac Pro 触摸板按压失效(没有按压回弹效果)

问题:测试电脑键盘使用时,胡乱按压一通。后续继续使用触摸板,功能使用正常,但是没有左右键按压效果。解决方法:Shift+Option+Contronl+关机键 20秒 释放 启动了 完成了静电释放再开机即可...

2021-07-05 13:52:57 12575 5

原创 去掉微信小程序 user agent stylesheet 样式

今天在做微信小程序开发时,设置样式,一直无法成功,打开调试器发现以下 user agent stylesheet解决办法:在 app.json 中把 "style": "v2", 去掉即可

2021-03-10 09:43:39 1539 1

原创 golang emoji表情处理

package utilimport ( "regexp" "strconv" "strings")//表情解码func UnicodeEmojiDecode(s string) string { //emoji表情的数据表达式 re := regexp.MustCompile("\\[[\\\\u0-9a-zA-Z]+\\]") //提取emoji数据表达式 reg := regexp.MustCompile("\\[\\\\u|]") src := re.FindAllStr

2021-01-19 11:33:05 1864 1

原创 Golang 统计字符串长度(含中文)

// GetStrLength 返回输入的字符串的字数,汉字、中文标点、英文和其他字符都算 1 个字数func GetStrLength(str string) float64 { var total float64 reg := regexp.MustCompile("/·|,|。|《|》|‘|’|”|“|;|:|【|】|?|(|)|、/") for _, r := range str { if unicode.Is(unicode.Scripts["Han"], r) || reg.Ma

2021-01-15 15:41:54 2573 2

原创 GoLand 编辑器代码自动换行

GoLand 编辑器,选择 preference 按照如图操作:在 soft-wrap these files 添加 ;*.go 即可

2020-12-11 16:37:00 4056

原创 Postman 导入导出 curl 命令详细步骤

在对应的请求下复制 cURL打开 postman , 点击左上角的 Import , 选择 Raw Text ,点击 Continue点击 Import点击 send 发送请求

2020-12-10 14:39:39 24359

原创 Go 常用数值比较判断

使用 go 开发时,遇到对某个数据依据某个标准规则进行对比,得出结论如:无法判断、正常、低于正常值、高于正常值。以下及实现过程,通过正则匹配对应的判断规则,从而对提供的数值进行判断compare.gopackage mainimport ( "fmt" "regexp" "strconv" "strings")const ( // 结论#0%无法判断|1%正常|2%低于正常值|3%高于正常值 ResultUnknown = iota ResultNormal Resul.

2020-12-03 10:07:14 2626

原创 git cherry-pick 教程

参考文章:git cherry-pick 教程对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。这时分两种情况。一种情况是,你需要另一个分支的所有代码变动,那么久采用合并(git merge)另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。一、基本用法git cherry-pick 命令的作用,就是将制定的提交(commit)应用于其他分支。$ git cherry-pick <commitHash>上面命令就会将指定

2020-12-01 20:18:17 924

原创 Golang 实现 protocol-buffer 转 map,解决空值处理

func Pb2Map(pb proto.Message) (map[string]interface{}, error) { _buffer := bytes.Buffer{} jsonbMarshaller := &jsonpb.Marshaler{ OrigName: true, EnumsAsInts: true, EmitDefaults: true, } jsonbMarshaller.Marshal(&_buffer, pb) jsonCnt

2020-11-18 15:15:34 3407

原创 gRPC 与 RESTful API

gRPC 与 RESTful API它们的对比如表所示。特性gRPCRESTful API规范必须.proto可选 OpenAPI协议HTTP/2任意版本的 HTTP 协议有效载荷Protobuf(小、二进制)JSON(大、易读)浏览器支持否(需要 grpc-web)是流传输客户端、服务端、双向客户端、服务端代码生成是OpenAPI + 第三方工具...

2020-10-16 21:46:15 1826

原创 Protobuf 基本数据类型

基本数据类型Protobuf 生成的数据类型与原始类型并不完全一致,以下表列举了一些常见的类型映射。.proto TypeC++ TypeJava TypeGo TypePHP Typedoubledoubledoublefloat64floatfloatfloatfloatfloat32floatint32int32intint32integerint64in64longint64integer/stringuint32

2020-10-16 21:42:40 3080 4

原创 git 解决合并冲突

合并分支(current)到目标分支(target)有冲突时解决方式从目标分支(target)新建分支(new-target)执行以下步骤Step 1. Fetch and check out the branch for this merge request# 同步远程服务器上的数据到本地git fetch origin# 新建一个新分支本地分支与远程分支关联并获取远程分支git checkout -b current origin/currentStep 2. Review th

2020-09-24 15:35:12 1382

原创 Mac 安装 Kubernetes,一直处于 Starting 状态

安装 Docker 成功后,开启 Kubernetes问题:Enable Kubernetes 开启后,Kubernetes 可能会一直 Starting 状态解决方法:git clone https://github.com/hummerstudio/k8s-docker-desktop-for-mac.gitcd k8s-docker-desktop-for-macsh ./load_images.sh重启启动 Kubernetes 即可验证开启kubectl cluster-

2020-09-21 11:24:33 1754 1

原创 PHP 多种序列化/反序列化的方式详解

文章目录序列化是将变量装换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性。serialize 和 unserialize<?php$arr = [ 'name' => '小明', 'age' => 21, 'country' => '中国',];$s = serialize($arr);$obj = unserialize($s);echo

2020-09-15 10:19:26 1530

原创 docker vpc 网络 login 失败

在进行 docker build 建立镜像的时候,利用阿里云私有镜像库,使用 vpc 时,报错Get https://registry-vpc.cn-hangzhou.aliyuncs.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)解决办法 :构建时,去掉 vpc,重新构建即可...

2020-09-08 10:38:05 513 1

原创 php-fpm 的静态 static 和动态 dynamic 执行方式比较

简介:static:直接开启指定数量的 php-fpm 进程,不再增加或者减少dynamic:php-fpm 启动时,开启一定数量的 php-fpm 进程,当请求量变大的时候,动态的增加 php-fpm 进程数到上线,当空闲的时候自动释放空闲的进程数到一个下线。涉及参数:pm:设置进程管理器如何管理子进程。可用值:static、ondemand、dynamic 三个选项,必须设置。static:子进程的数量时固定的(由 pm.max_children 决定)。ondemand:进程在有需

2020-09-07 16:37:48 1043

原创 php-fpm.conf 重要参数详解

# pid 设置,默认在安装目录中的 var/run/php-fpm.pid,建议开启pid = run/php-fpm.pid# 错误日志,默认在安装目录中的 var/log/php-fpm.logerror_log = log/php-fpm.log# 错误级别。# 可用级别为:# alert(必须立即处理)# error(错误情况)# warning(警告情况)# notice(一般重要信息)# debug(调试信息)# 默认:noticelog_level = notic

2020-09-07 16:11:28 799

原创 解决 MAC 无法打开“***”,因为无法验证开发者

当安装非信任开发者的软件时,系统提示无法打开“***”,因为无法验证开发者。我们可以按照以下方法解决打开方达,在右侧菜单栏选择应用程序找到提示无法验证的应用,右键点击打开第一次会出现以下提示,继续点击打开即可完成以上步骤,你就可以成功使用应用...

2020-09-01 09:25:34 186790 5

原创 macOS 打开软件显示已损坏或无法验证此 App 不包含恶意软件

打开、关闭安全性与隐私的任何来源# 打开:sudo spctl --master-disable# 关闭:sudo spctl --master-enable

2020-08-25 15:39:18 366

原创 安装 PHP 扩展时,解压官方 tgz 文件后,没有 configure 文件,无法进行配置编译

我们以 PHP 扩展 zip 为例访问 PHP 官方插件库 搜索我们所需要的扩展 zip,我们选择最新的 stable 版本,进行下载解压 tgz下载到本地后,使用 tar -zxvf filename.tgzcd 进入文件,我们发现并不存在 .configure 文件,用于我们进行编译这时我们使用 phpize 命令执行完成后,即可展示我们熟悉的编译内容即可进行正常的编译安装...

2020-08-25 10:07:31 1833

原创 解决 go get 访问私有仓库的问题

go get 获取私有库包时,需要验证登陆权限,无法获取成功以下是解决办法$ git config --global url."[email protected]:".insteadOf "https://github.com/"$ cat ~/.gitconfig[url "[email protected]:"] insteadOf = https://github.com/$ go get github.com/private/repo && echo Success!Success

2020-08-20 10:50:30 6808

原创 Mac 查看 php 配置相关

php -vphp -m# 查看是否安装 mongodb 扩展php -m|grep mongodbphp -i# 查看 php.ini 路径php -i|grep php.ini

2020-08-18 20:50:56 705

原创 osx 未能安装在您的电脑上 没有符合安装资格的软件包

15 款 air 重装显示 osx 未能安装在您的电脑上 没有符合安装资格的软件包 请联系软件制造商以获得打开终端输入:date 070512052018.03(这里设置一个2015年以后的时间,因为10.11发布时2015年)回车后,在终端 选择 退出终端。然后再进行安装就正常了。...

2020-08-17 17:35:15 20103 9

原创 【JetBrains 系列编辑器】代码自动换行

依次通过以下路径Goland -> Preferences -> Editor -> General找到配置项,如下图所示,保存完成即可

2020-08-14 12:10:41 1388

原创 Golang 原生实现 HTTPS POST json 请求

https 证书# 生成客户端私钥 (生成CA私钥)openssl genrsa -out ca.key 2048 # 生成CA证书openssl req -x509 -new -nodes -key ca.key -subj "/CN=tonybai.com" -days 5000 -out ca.crt# 生成服务端私钥openssl genrsa -out server.key 2048# 生成证书请求文件openssl req -new -key server.key -subj

2020-08-14 09:28:34 2238

原创 Mac 安装 Golang

下载地址:https://golang.org/dl/安装pkg 安装方式较为简单,此处不错细讲。安装目录在 /usr/local/go,这时使用 go version 并不起效,我们需要配置环境变量。配置环境echo 'export GOROOT=/usr/local/go' >> ~/.bash_profileecho 'export PATH=$PATH:$GOROOT/bin' >> ~/.bash_profilesource ~/.bash_..

2020-08-11 15:50:04 835

原创 PHP 上传报错 413 Request Entity Too Large 解决方法

解决方案找到nginx的配置文件nginx/conf/nginx.conf,在location块中添加其中的配置为:client_max_body_size 200m;

2020-08-06 10:31:33 1621

原创 MySQL Explain Type 列

Type 列访问类型——就是 MySQL 决定如何查找表中的行。下面是最重要的访问方法,依次从最差到最优ALL这就是人们所称的全表扫描,通常意味着 MySQL 必须扫描整张表,从头到尾,去找到需要的行。(这里也有个例外,例如在查询里是用来 LIMIT,或者在 Extra 列中显示 “Using distinct/not exists”。)index这个跟全表扫描一样,只是 MySQL 扫描表时按索引次序进行而不是行。它的主要优点是避免了排序;最大的缺点是要承担按索引次序读取整个表的开销。这通

2020-07-27 09:47:06 177

原创 WebSocket 的优点(与 HTTP 相比)

较少的控制开销。连接创建后,在服务器和客户端之间交换数据时,用于协议控制的数据包头部相对较小。在不包含扩展的情况下,对于服务器到客户端的内容,其头部大小只有 2 字节至 10 字节(和数据包长度有关);对于客户端到服务器的内容,此头部还需额外加上 4 字节的掩码。与每次都要携带完整头部的 HTTP 请求相比,此项开销有显著减少。更强的实时性。由于协议是全双工的,所以服务器可以随时主动给客户端下方数据。HTTP 请求需要等待客户端发起请求,服务端才能响应,与其相比,WebSocket 的延迟明显更小。即使.

2020-07-25 16:31:26 2104

原创 什么是 CI/CD

CI 即持续集成持续集成(Continuous Integration)是在源代码变更后自动检测、拉取、构建和(在大多数情况下)进行单元测试的过程。目标是快速确保开发人员新提交的变更是好的,并且适合在代码库中进一步使用。CD 可分别指代两个概念:持续交付 和 持续部署持续交付(Continuous Delivery)通常是指整个流程链(管道),它自动监测源代码变更并通过构建、测试、打包和相关操作运行他们以生产可部署的版本,基本上没有任何人为干预。持续交付在软件开发过程中的目标是自动化.

2020-07-23 15:52:36 347

原创 PHP 抽象类和接口的区别

抽象类定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。 抽象类可以没有抽象方法,但是抽象类依然不能被实例化。 被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。abstract class AbstractClass{ // 强制要求子类定义这些方法,且不能定义具体功能 注意没有大括号 {} abstract protected function getValue(); abstract protect

2020-07-16 15:22:50 202

原创 Drone untrusted repositories cannot enable privileged mode

问题:当在 Drone 的 drone.yml 配置 privileged: true,报错解决办法:回到项目配置也,SETTINGS,配置 Project visibility 勾选 Trusted 即可问题:当访问配置也没有 Trusted 选项时解决办法:在 drone-server 配置参数加上 -DRONE_USER_CREATE=username:username,admin:true然后重新构建容器构建成功后再次访问即可...

2020-07-10 10:34:02 1265

原创 Docker 容器的退出状态码及重启策略

Docker 容器的退出状态码:0:表示正常退出非 0:表示异常退出(退出状态码采用 chroot 标准)125:Docker 守护进程本身的错误126:容器启动后,要执行的默认命令无法调用127:容器启动后,要执行的默认命令不存在其他命令状态码,容器启动后正常执行命令,退出命令时该命令的返回状态码作为容器的退出状态码Docker 容器的重启策略如下:no:默认策略,在容器退出时不重启容器no-failure:在容器非正常退出时(退出状态非 0),才会重启容器no-failure:

2020-07-08 16:18:21 2063

原创 `golang` 调用 `etcdv3` 报错 `undefined: balancer.PickOptions`

错误信息:# github.com/coreos/etcd/clientv3/balancer/pickerundefined: balancer.PickOptionsundefined: balancer.PickOptions# github.com/coreos/etcd/clientv3/balancer/resolver/endpointundefined: resolver.BuildOptionundefined: resolver.ResolveNowOption解决方法

2020-07-07 15:37:16 1838

原创 使用 `Nginx` 的必备软件介绍

文章目录1. `GCC` 编译器2. `PCRE` 库3. zlib 库4. OpenSSL 开发库1. GCC 编译器GCC(GNU Compiler Collection)可用来编译 C语言程序。Nginx不会直接提供二进制可执行程序(1.2.x 版本中已经开始提供某些操作系统上的二进制安装包了)。yum install -y gcc当使用 C++ 用来编写 Nginx HTTP 模块,就需要用到 G++ 编译器。yum install -y gcc-c++2. PCRE 库PCRE(

2020-07-06 07:42:07 249

空空如也

空空如也

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

TA关注的人

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