- 博客(259)
- 资源 (35)
- 收藏
- 关注
原创 解决MySQL Specified key was too long; max key length is 767 bytes
最近在给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个
2021-05-01 21:49:41
1363
原创 Golang:数组与切片的复制
在Golang中,数组是值类型而切片是引用类型。因此值的复制与切片的复制并不相同。数组的复制对于值类型的数组来说,变量指向的并不是第一个元素的指针,而是整个数组。以下情况会发生数组的复制:将数组变量赋值给另一个数组变量将数组变量作为参数传递给方法举个栗子:package mainimport "fmt"func main() { sample1 := [2]string{"a", "b"} fmt.Printf("Sample1 Before: %v\n", samp
2020-06-09 20:41:52
2788
原创 Istio的安装与部署
安装步骤准备Kubernetes环境下载Istio安装Istio准备Kubernetes环境根据Istio官网给出的信息,当前最新的Istio1.5支持以下多种平台的Kubernetes环境(1.14~1.16),我本地安装的是docker-desktop,安装方法参考https://github.com/AliyunContainerService/k8s-for-docker-desktop下载Istiocurl -L https://istio.io/downloadIstio |
2020-05-27 22:56:27
2591
原创 使用Sonar分析Golang代码
为了保证项目代码质量,需要控制每个Pull Request的代码单元测试覆盖率。翻看了Sonar文档,发现Sonar是一款保证代码质量的工具,可以满足此类需求。下面就用一个Demo来体验一下Sonar的功能。安装SonarQube以Docker容器运行:docker run -d --name sonarqube -p 9000:9000 sonarqube访问http://lo...
2020-03-11 17:59:40
2019
原创 Golang:map的比较
在提交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...
2020-03-11 17:56:06
2974
原创 使用graphviz图形化rails项目的gem依赖树
graphviz是一个开源的图片显示软件,本文描述如何利用graphviz将rails项目中gem的依赖树以图的形式展示出来。首先安装graphviz,我的系统是MacOS,可以用brew来安装brew install graphviz安装graphviz的ruby客户端gem install ruby-graphviz执行bundle viz生成依赖树图...
2019-12-27 17:38:45
235
原创 Golang Cobra的使用
在阅读Docker源码时发现,Docker命令行是使用cobra库创建的,为了更好的理解源码,先来熟悉一下Cobra。Cobra既是一个用来创建强大的现代命令行应用的库,又是一个用来生成应用和命令文件的脚手架。很多流行的Go项目都使用Cobra,例如Kubernetes, Hugo, rkt, etcd, Moby (former Docker),&nb...
2019-12-14 23:51:50
843
原创 Golang设置国内代理
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...
2019-12-11 10:05:54
10792
原创 Golang为什么没有整型的max/min方法
作为有一些经验的Golang开发者,你可能意识到了Golang并没有max/min方法来返回给定的两个或多个整型数值中的最大值或最小值。其他语言通常会在核心库中提供这类方法。 你有没有想过为什么Golang没有这么做?Golang确实在math包中提供了max/min方法,但是仅用于对比float64类型。方法的签名如下:math.Min(float64, float64) float64m...
2019-12-07 19:55:48
3840
2
原创 为Docker镜像加入可信任证书
在使用容器访问一个自签名证书站点的时候碰到如下报错:curl: (60) SSL certificate problem: unable to get local issuer certificateMore details here: https://curl.haxx.se/docs/sslcerts.htmlcurl failed to verify the legitimacy ...
2019-11-20 15:43:28
4540
原创 goland中运行debug go程序报错
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...
2019-11-18 22:11:17
736
原创 区块链技术基础—Merkel树
哈希算法哈希算法是一种重要的计算机算法,可以将任意长度的二进制值串以不可逆的方式转化为较短的固定长度二进制值串,这个映射后的值称为哈希值。一个优秀的哈希算法需要满以下特点:逆向困难:从哈希值难以逆推出原始明文;输入敏感:原始数据的任何修改都会导致最后得到的哈希值大不相同;冲突概率小:两端不同内容的明文,产生相同哈希值的概率非常小。计算高效:可以在有限时间的时间和资源下快速计算出明文对...
2019-06-01 20:46:34
1605
原创 Ruby驼峰命名转蛇足命名 - underscore
"CamelCasedName".underscoreResult:camel_cased_name
2019-04-23 09:17:15
1078
原创 在Android Studio中运行App报错:transformClassesWithInstantRunForA_googleplayDebug
解决:Disable Instant Run
2019-04-22 13:30:06
328
原创 使用Prometheus监控Docker[macOS Mojave]
Prometheus是一个开源的系统监控报警工具。本文示例将Docker作为其监控目标的配置方法。配置Docker在daemon.json加入如下配置后重启docker。//指定metrics采集端口{ "metrics-addr" : "127.0.0.1:9323", "experimental" : true}配置和启动Prometheus创建docker sw...
2019-04-17 20:20:17
2006
3
原创 maven基本概念
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。安装http://maven.apache.org/download.cgigroupId的值就是项目的包名artifactId是模块/项目名mvn常用命令mvn compile 对项目进行编译mvn test 测试mvn package 打jar包mvn clean...
2019-03-27 13:36:39
293
原创 在SUSE SLE 12上安装docker(二进制安装docker)
对于13.2之后的版本,因为docker已经被添加到了suse仓库中,直接使用sudo zypper install docker即可。但是当前手上的机器是suse12.3,不支持以安装包的方式安装docker。本文记录在该环境上(SUSE SLE 12)以二进制方式安装docker的过程。下载wget https://download.docker.com/linux/static/sta...
2019-03-11 16:28:19
4157
原创 使用rails new生成指定版本的项目
默认情况下,使用rails new <PEOJECT_NAME>时会基于最新版本的rails生成项目。当需要生成指定rails版本的项目时,可以按照以下步骤做:本文中,我需要基于rails 4.1.16生成新的项目执行gem list | grep rails查看当前安装的rails版本需要的4.1.16已经被安装尝试直接执行rails _4.1.16_ new <P...
2019-03-03 11:59:04
1170
翻译 使用OpenTracing对ruby应用进行分布式链路追踪
使用OpenTracing对ruby应用进行分布式链路追踪OpenTracing,一套平台无关的追踪API准备工作安装Jaeger All-in-oneSinatra App No. 1: &quot;Hello&quot;收集第一条链路信息Sinatra App No. 2: &quot;Hello World&quot;分布式链路追踪是如何工作的?总结原文:Tutorial: Distributed Tracing in Ruby...
2018-11-23 15:53:07
548
原创 使用Postman发送数组
日常开发中常有要向POST/PUT API发送数组参数的需求,使用Postman时可以这样传递数组参数:后台接收
2018-06-05 14:37:05
39547
2
原创 清除所有<none>镜像 Remove all <none> Docker images
docker rmi $(docker images -f "dangling=true" -q)
2018-05-30 11:04:23
1949
原创 Could not find proper version of rubocop (0.41.2) in any of the sources
安装rubocop后,为atom-beautify进行ruby相关配置如下:保存代码后报错如下:Could not find proper version of rubocop (0.41.2) in any of the sources解决方法: Setting => Executables => Rubocop 将/Users/XXX/.rvm/gem...
2018-04-23 17:59:01
1408
原创 使用Conda安装TensorFlow(OS X)
在工作中通常需要使用Conda创建环境以隔离项目,本文记录使用Conda安装TensorFlow的方法。 - 下载安装Anaconda - 运行下列命令来配置开发环境#-n tensorflow设置环境名称为tensorflow, 指定python版本3.5 conda create -n tensorflow python=3.5# 进入环境(离开环境是source deactiva...
2018-04-15 20:50:58
989
原创 Hyperledger Fabric1.1 网络启动与链码调用
环境:macOS High Sierra(Version 10.13.3) 参考:Hyperledger Fabric SamplesFabric官方提供了一个示例项目fabric-samples,本文通过运行该项目来展示fabric的搭建与链码的安装调用。1. 克隆项目克隆hyperledger提供的fabric-samples项目git clone https://g...
2018-03-23 22:46:34
3136
原创 Hyperledger Fabric排序服务的集群配置
Bringing up a Kafka-based Ordering Service排序服务需要处理fabirc网络中的所有交易消息,是全网的关键所在。Fabric目前(2018/01)支持两种排序类型:solo和kafka。在生成环境下,Orderer节点需要采用kafka集群进行排序,以提高其可靠性。本文就介绍排序节点基于kafka的配置方式。我们要配置的网络的拓扑结构与Buildin
2018-01-18 20:28:11
2757
原创 Hyperledger Fabric:cryptogen
cryptogen可以快速地根据配置自动批量生成所需要的密钥和证书文件。生成组织关系和身份证书与配置文件crypto-config.yaml结合使用,通过如下命令生成组织关系和结构证书,结果保存在crypto-config目录下cryptogen generate --config=./crypto-config.yaml配置文件crypto-config.yaml示例如
2018-01-18 20:25:56
910
原创 opencv-python实现图像的读取,显示与写入
以下代码以灰度模式读取图像,并进行展示与保存。# -*- coding: utf-8 -*-import numpy as npimport cv2# imread 用来读取图像# 第二个参数表明如何读取:# 1. v2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略(默认参数)# 2. cv2.IMREAD_GRAYSCALE:以灰度模式读入图像# 3. cv2.IM
2017-11-02 22:08:56
963
原创 opencv-python绘制图形
参考: Drawing Functions in OpenCVcv2.line() 绘制直线# -*- coding: utf-8 -*-# numpy 是非常有名的python科学计算工具包import numpy as npimport cv2# 创建一张黑色图像img = np.zeros((512,512,3),np.uint8)# 以5px绘制一条蓝色直线# 参数# i
2017-11-02 22:08:00
673
原创 opencv-python几何变换
Geometric Transformations of Images扩展缩放cv2.resize()# -*- coding: utf-8 -*-# 改变图像尺寸import cv2import numpy as npimg=cv2.imread('demo.jpg')# src 输入图像# dsize 输出图像的尺寸,为空时的计算逻辑是 Size(round(fx*src.co
2017-11-02 21:59:07
705
原创 将函数作为参数传递(Javascript/Ruby/Golang)
本文展示了在Javascript和Ruby中方法是如何作为参数被传递的。Javascriptfunction sayHello(name) { console.log("Hello, I am " + name);}function execute(someFunction, value) { someFunction(value);}execute(sayHello, "Lisa")
2017-10-07 22:55:47
2011
1
原创 Elasticsearch在linux下的重启
最近一台测试机因为磁盘空间不足,导致运行在上面的elasticsearch宕机。 下面列出的是重启过程中用到的几个命令:首先查看操作系统版本cat /proc/version使用如下命令启动down掉的服务/etc/init.d/elasticsearch start类似的,停止和重启服务的命令分别为/etc/init.d/elasticsearch stop和/etc/init.d/elasti
2017-09-06 14:35:05
20967
原创 Rails的模型自关联
关于Rails的模型自关联有一个非常有意思的题目,大概是这样的:lisa = Person.create(name:'Lisa')tom = Person.create(name:'Tom',parent_id:lisa.id)andy = Person.create(name:'Andy',parent_id:lisa.id)tom.parent.name => 'Lisa'lisa.ch
2017-07-29 04:29:23
1195
原创 Linux系统升级node与npm
查看Linux系统版本cat /etc/issue需求:将该机器上的node升级至V7,同时升级npm下载安装包curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -安装sudo apt-get install -y nodejs完成之后使用npm -vnode -v查看版本已更新。参考:https://askubuntu
2017-07-25 14:59:39
2212
翻译 Rails之关于时间(时区)
It’s About Time (Zones)这是时间系列的第一篇文章。第二篇的主题是 a case study in multiple time zones。Ruby提供了两个类来管理时间:Time和DateTime。Ruby1.9.3之后两者之间的区别越来越小。鉴于Time包含闰秒和夏令时的概念。本文中,我们将使用Time来举例。 TZInfo是一个时区库,提供不同时区的夏令时转换。它被封装成
2017-06-28 14:50:48
2597
翻译 Rails使用has_secure_password进行身份验证
原文:has_secure_password with Rails 4.1我刚刚用Rails 4.1创建了一个新项目,并且试用了has_secure_password,很酷的功能呢。 但愿你没有在数据库里直接存储明文密码!为了防治密码被窃取,数据库中存储的始终应该是某种形式的哈希值,而非明文密码。 有几个很棒的教程讲述如何以安全的方式哈希和存储密码。我自己用Ruby实现过几次。 更复杂一点的解
2017-06-27 12:24:47
2362
翻译 Ruby中的nil?,empty?与Rails中的blank?,present?
[A concise explanation of nil v. empty v. blank in Ruby on Rails](https://stackoverflow.com/questions/885414/a-concise-explanation-of-nil-v-empty-v-blank-in-ruby-on-rails).nil?可以用在一切对象上,当对象为nil时,返回true
2017-06-22 15:31:22
1660
翻译 译:使用ActiveRecord Enums创建简单易读的属性
Creating Easy, Readable Attributes With ActiveRecord Enums设想一个问题的状态可能为“暂停”,“通过”或“标注”。或者一个电话号码可能是“家庭号码”,“办公号码”,“手机号码”或者“传真号码”(1982年的话) 有些模块需要这种类型的数据:只对应少许值的属性,并且这些值几乎永远不会改变。 如果使用纯Ruby的话,可以通过使用symbol来解
2017-06-14 14:01:58
460
ARM嵌入式LINUX应用实例开发高清电子书
2011-10-03
ARM嵌入式Linux设备驱动实例开发高清电子书
2011-10-02
ARM9微控制器与嵌入式无线网络实战
2011-10-02
微型计算机原理及应用(第三版)
2011-10-01
linux内核编程指南第3版
2011-10-01
mfc深入浅出
2011-09-30
C++编程思想
2011-09-30
软件需求电子书
2011-09-30
嵌入式面试集合
2011-09-29
[Flash.CS4.Pro宝典].Flash.CS4.Professional.Bible(英文版)
2011-09-28
《ARM嵌入式系统》赵宏伟老师课件
2011-09-28
LINUX开发工具箱:项目开发的最有效途径
2011-10-16
SHELL脚本学习指南
2011-10-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人