<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ミ安之偌素]]></title><description><![CDATA[いちごいちえ]]></description><link>https://blog.youkuaiyun.com/lissdy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lissdy]]></copyright><item><title><![CDATA[解决MySQL Specified key was too long； max key length is 767 bytes]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/116333649</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/116333649</guid><author>lissdy</author><pubDate>Sat, 01 May 2021 21:49:41 +0800</pubDate><description><![CDATA[最近在给QA测试环境数据表的一个的**varchar(255)**类型字段添加索引时遇到了错误Specified key was too long; max key length is 767 bytes，奇怪的是同样的创建索引命令是可以在开发环境执行成功的。
我们知道InnoDB引擎索引字段长度不能超过767，所以在排查问题时，我的第一反应是数据表的字符集配置有问题。
utf8mb4 字符集是 1个字符=4个字节， varchar255字节长度 = 255 * 4=1020字节
utf8 字符集是 1个]]></description><category></category></item><item><title><![CDATA[Golang：数组与切片的复制]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/106650481</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/106650481</guid><author>lissdy</author><pubDate>Tue, 09 Jun 2020 20:41:52 +0800</pubDate><description><![CDATA[在Golang中，数组是值类型而切片是引用类型。因此值的复制与切片的复制并不相同。
数组的复制
对于值类型的数组来说，变量指向的并不是第一个元素的指针，而是整个数组。以下情况会发生数组的复制：

将数组变量赋值给另一个数组变量
将数组变量作为参数传递给方法
举个栗子：

package main

import "fmt"

func main() {
    sample1 := [2]string{"a", "b"}
    fmt.Printf("Sample1 Before: %v\n", samp]]></description><category></category></item><item><title><![CDATA[Istio的安装与部署]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/106392727</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/106392727</guid><author>lissdy</author><pubDate>Wed, 27 May 2020 22:56:27 +0800</pubDate><description><![CDATA[安装步骤

准备Kubernetes环境
下载Istio
安装Istio

准备Kubernetes环境
根据Istio官网给出的信息，当前最新的Istio1.5支持以下多种平台的Kubernetes环境（1.14~1.16），我本地安装的是docker-desktop，安装方法参考https://github.com/AliyunContainerService/k8s-for-docker-desktop
下载Istio
curl -L https://istio.io/downloadIstio | ]]></description><category></category></item><item><title><![CDATA[使用Sonar分析Golang代码]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/104802064</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/104802064</guid><author>lissdy</author><pubDate>Wed, 11 Mar 2020 17:59:40 +0800</pubDate><description><![CDATA[为了保证项目代码质量，需要控制每个Pull Request的代码单元测试覆盖率。翻看了Sonar文档，发现Sonar是一款保证代码质量的工具，可以满足此类需求。
下面就用一个Demo来体验一下Sonar的功能。
安装SonarQube

以Docker容器运行：

docker run -d --name sonarqube -p 9000:9000 sonarqube


访问http://lo...]]></description><category></category></item><item><title><![CDATA[Golang：map的比较]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/104801989</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/104801989</guid><author>lissdy</author><pubDate>Wed, 11 Mar 2020 17:56:06 +0800</pubDate><description><![CDATA[在提交Leetcode 242. 有效的字母异位词代码时碰到了如下编译错误：

map can only be compared to nil


查看文档发现Golang中要比较两个map实例需要使用reflect包的DeepEqual()方法。如果相比较的两个map满足以下条件，方法返回true：

Map values are deeply equal when all of the fol...]]></description><category></category></item><item><title><![CDATA[使用graphviz图形化rails项目的gem依赖树]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/103736176</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/103736176</guid><author>lissdy</author><pubDate>Fri, 27 Dec 2019 17:38:45 +0800</pubDate><description><![CDATA[graphviz是一个开源的图片显示软件，本文描述如何利用graphviz将rails项目中gem的依赖树以图的形式展示出来。

首先安装graphviz，我的系统是MacOS，可以用brew来安装

brew install graphviz


安装graphviz的ruby客户端

gem install ruby-graphviz


执行bundle viz生成依赖树图



...]]></description><category></category></item><item><title><![CDATA[Golang Cobra的使用]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/103544800</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/103544800</guid><author>lissdy</author><pubDate>Sat, 14 Dec 2019 23:51:50 +0800</pubDate><description><![CDATA[在阅读Docker源码时发现，Docker命令行是使用cobra库创建的，为了更好的理解源码，先来熟悉一下Cobra。
Cobra既是一个用来创建强大的现代命令行应用的库，又是一个用来生成应用和命令文件的脚手架。
很多流行的Go项目都使用Cobra，例如Kubernetes,&nbsp;Hugo,&nbsp;rkt,&nbsp;etcd,&nbsp;Moby (former Docker),&nb...]]></description><category></category></item><item><title><![CDATA[Golang设置国内代理]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/103487440</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/103487440</guid><author>lissdy</author><pubDate>Wed, 11 Dec 2019 10:05:54 +0800</pubDate><description><![CDATA[Golang V1.13之后支持通过设置变量GOPROXY来修改代理地址，默认的代理服务器
https://proxy.golang.org在国内访问经常出现timeout

可以通过设置国内代理来加速下载
详见：https://github.com/goproxy/goproxy.cn/blob/master/README.zh-CN.md
在终端执行即可
go env -w GOPROXY=h...]]></description><category></category></item><item><title><![CDATA[Golang为什么没有整型的max/min方法]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/103438899</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/103438899</guid><author>lissdy</author><pubDate>Sat, 07 Dec 2019 19:55:48 +0800</pubDate><description><![CDATA[作为有一些经验的Golang开发者，你可能意识到了Golang并没有max/min方法来返回给定的两个或多个整型数值中的最大值或最小值。其他语言通常会在核心库中提供这类方法。 你有没有想过为什么Golang没有这么做？
Golang确实在math包中提供了max/min方法，但是仅用于对比float64类型。方法的签名如下：
math.Min(float64, float64) float64
m...]]></description><category></category></item><item><title><![CDATA[为Docker镜像加入可信任证书]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/103164392</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/103164392</guid><author>lissdy</author><pubDate>Wed, 20 Nov 2019 15:43:28 +0800</pubDate><description><![CDATA[在使用容器访问一个自签名证书站点的时候碰到如下报错：

curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy ...]]></description><category></category></item><item><title><![CDATA[goland中运行debug go程序报错]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/103132830</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/103132830</guid><author>lissdy</author><pubDate>Mon, 18 Nov 2019 22:11:17 +0800</pubDate><description><![CDATA[goland中运行debug go程序报错
could not launch process: debugserver or lldb-server not found: install XCode's command line tools or lldb-server


如出错提示，安装XCode命令行工具即可
xcode-select --install


...]]></description><category></category></item><item><title><![CDATA[区块链技术基础—Merkel树]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/90733285</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/90733285</guid><author>lissdy</author><pubDate>Sat, 01 Jun 2019 20:46:34 +0800</pubDate><description><![CDATA[哈希算法
哈希算法是一种重要的计算机算法，可以将任意长度的二进制值串以不可逆的方式转化为较短的固定长度二进制值串，这个映射后的值称为哈希值。
一个优秀的哈希算法需要满以下特点：

逆向困难：从哈希值难以逆推出原始明文；
输入敏感：原始数据的任何修改都会导致最后得到的哈希值大不相同；
冲突概率小：两端不同内容的明文，产生相同哈希值的概率非常小。
计算高效：可以在有限时间的时间和资源下快速计算出明文对...]]></description><category></category></item><item><title><![CDATA[Ruby驼峰命名转蛇足命名 - underscore]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/89465766</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/89465766</guid><author>lissdy</author><pubDate>Tue, 23 Apr 2019 09:17:15 +0800</pubDate><description><![CDATA["CamelCasedName".underscore

Result:
camel_cased_name


]]></description><category></category></item><item><title><![CDATA[在Android Studio中运行App报错：transformClassesWithInstantRunForA_googleplayDebug]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/89450045</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/89450045</guid><author>lissdy</author><pubDate>Mon, 22 Apr 2019 13:30:06 +0800</pubDate><description><![CDATA[解决：Disable Instant Run


]]></description><category></category></item><item><title><![CDATA[使用Prometheus监控Docker[macOS Mojave]]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/89363891</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/89363891</guid><author>lissdy</author><pubDate>Wed, 17 Apr 2019 20:20:17 +0800</pubDate><description><![CDATA[Prometheus是一个开源的系统监控报警工具。本文示例将Docker作为其监控目标的配置方法。
配置Docker

在daemon.json加入如下配置后重启docker。
//指定metrics采集端口
{
  "metrics-addr" : "127.0.0.1:9323",
  "experimental" : true
}

配置和启动Prometheus


创建docker sw...]]></description><category></category></item><item><title><![CDATA[maven基本概念]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/88842578</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/88842578</guid><author>lissdy</author><pubDate>Wed, 27 Mar 2019 13:36:39 +0800</pubDate><description><![CDATA[Maven是基于项目对象模型(POM)，可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
安装
http://maven.apache.org/download.cgi

groupId的值就是项目的包名
artifactId是模块/项目名
mvn常用命令
mvn compile  对项目进行编译
mvn test 测试
mvn package 打jar包
mvn clean...]]></description><category></category></item><item><title><![CDATA[rm -rf / 会发生什么？]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/88421398</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/88421398</guid><author>lissdy</author><pubDate>Tue, 12 Mar 2019 15:16:04 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[在SUSE SLE 12上安装docker（二进制安装docker）]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/88396962</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/88396962</guid><author>lissdy</author><pubDate>Mon, 11 Mar 2019 16:28:19 +0800</pubDate><description><![CDATA[对于13.2之后的版本，因为docker已经被添加到了suse仓库中，直接使用sudo zypper install docker即可。
但是当前手上的机器是suse12.3，不支持以安装包的方式安装docker。本文记录在该环境上（SUSE SLE 12）以二进制方式安装docker的过程。

下载wget https://download.docker.com/linux/static/sta...]]></description><category></category></item><item><title><![CDATA[使用rails new生成指定版本的项目]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/88086440</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/88086440</guid><author>lissdy</author><pubDate>Sun, 03 Mar 2019 11:59:04 +0800</pubDate><description><![CDATA[默认情况下，使用rails new &amp;lt;PEOJECT_NAME&amp;gt;时会基于最新版本的rails生成项目。当需要生成指定rails版本的项目时，可以按照以下步骤做：
本文中，我需要基于rails 4.1.16生成新的项目

执行gem list | grep rails查看当前安装的rails版本

需要的4.1.16已经被安装
尝试直接执行rails _4.1.16_ new &amp;lt;P...]]></description><category></category></item><item><title><![CDATA[使用OpenTracing对ruby应用进行分布式链路追踪]]></title><link>https://blog.youkuaiyun.com/lissdy/article/details/84395896</link><guid>https://blog.youkuaiyun.com/lissdy/article/details/84395896</guid><author>lissdy</author><pubDate>Fri, 23 Nov 2018 15:53:07 +0800</pubDate><description><![CDATA[使用OpenTracing对ruby应用进行分布式链路追踪OpenTracing，一套平台无关的追踪API准备工作安装Jaeger All-in-oneSinatra App No. 1: &amp;amp;quot;Hello&amp;amp;quot;收集第一条链路信息Sinatra App No. 2: &amp;amp;quot;Hello World&amp;amp;quot;分布式链路追踪是如何工作的？总结
原文：Tutorial: Distributed Tracing in Ruby...]]></description><category></category></item></channel></rss>