自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ミ安之偌素

いちごいちえ

  • 博客(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 1184

原创 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 2679

原创 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 2324

原创 使用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 1876

原创 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 2834

原创 使用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 199

原创 Golang Cobra的使用

在阅读Docker源码时发现,Docker命令行是使用cobra库创建的,为了更好的理解源码,先来熟悉一下Cobra。Cobra既是一个用来创建强大的现代命令行应用的库,又是一个用来生成应用和命令文件的脚手架。很多流行的Go项目都使用Cobra,例如Kubernetes, Hugo, rkt, etcd, Moby (former Docker),&nb...

2019-12-14 23:51:50 767

原创 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 10474

原创 Golang为什么没有整型的max/min方法

作为有一些经验的Golang开发者,你可能意识到了Golang并没有max/min方法来返回给定的两个或多个整型数值中的最大值或最小值。其他语言通常会在核心库中提供这类方法。 你有没有想过为什么Golang没有这么做?Golang确实在math包中提供了max/min方法,但是仅用于对比float64类型。方法的签名如下:math.Min(float64, float64) float64m...

2019-12-07 19:55:48 3256 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 4279

原创 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 638

原创 区块链技术基础—Merkel树

哈希算法哈希算法是一种重要的计算机算法,可以将任意长度的二进制值串以不可逆的方式转化为较短的固定长度二进制值串,这个映射后的值称为哈希值。一个优秀的哈希算法需要满以下特点:逆向困难:从哈希值难以逆推出原始明文;输入敏感:原始数据的任何修改都会导致最后得到的哈希值大不相同;冲突概率小:两端不同内容的明文,产生相同哈希值的概率非常小。计算高效:可以在有限时间的时间和资源下快速计算出明文对...

2019-06-01 20:46:34 1462

原创 Ruby驼峰命名转蛇足命名 - underscore

"CamelCasedName".underscoreResult:camel_cased_name

2019-04-23 09:17:15 1021

原创 在Android Studio中运行App报错:transformClassesWithInstantRunForA_googleplayDebug

解决:Disable Instant Run

2019-04-22 13:30:06 280

原创 使用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 1900 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 259

原创 rm -rf / 会发生什么?

2019-03-12 15:16:04 3089 2

原创 在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 4034

原创 使用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 1040

翻译 使用OpenTracing对ruby应用进行分布式链路追踪

使用OpenTracing对ruby应用进行分布式链路追踪OpenTracing,一套平台无关的追踪API准备工作安装Jaeger All-in-oneSinatra App No. 1: "Hello"收集第一条链路信息Sinatra App No. 2: "Hello World"分布式链路追踪是如何工作的?总结原文:Tutorial: Distributed Tracing in Ruby...

2018-11-23 15:53:07 490

原创 使用Postman发送数组

日常开发中常有要向POST/PUT API发送数组参数的需求,使用Postman时可以这样传递数组参数:后台接收

2018-06-05 14:37:05 39156 2

原创 清除所有<none>镜像 Remove all <none> Docker images

docker rmi $(docker images -f "dangling=true" -q)

2018-05-30 11:04:23 1901

原创 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 =&gt; Executables =&gt; Rubocop 将/Users/XXX/.rvm/gem...

2018-04-23 17:59:01 1351

原创 使用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 927

原创 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 3076 1

原创 查看Linux系统版本

cat /etc/*-release

2018-02-23 20:13:09 347

原创 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 2711 1

原创 Hyperledger Fabric:cryptogen

cryptogen可以快速地根据配置自动批量生成所需要的密钥和证书文件。生成组织关系和身份证书与配置文件crypto-config.yaml结合使用,通过如下命令生成组织关系和结构证书,结果保存在crypto-config目录下cryptogen generate --config=./crypto-config.yaml配置文件crypto-config.yaml示例如

2018-01-18 20:25:56 839

原创 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 893

原创 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 623

原创 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 648

原创 将函数作为参数传递(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 1948 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 20792

原创 Linux:查看目录下文件大小

命令:du -hs *

2017-08-14 11:21:13 477

原创 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 1145

原创 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 2158

翻译 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 2487

翻译 Rails使用has_secure_password进行身份验证

原文:has_secure_password with Rails 4.1我刚刚用Rails 4.1创建了一个新项目,并且试用了has_secure_password,很酷的功能呢。 但愿你没有在数据库里直接存储明文密码!为了防治密码被窃取,数据库中存储的始终应该是某种形式的哈希值,而非明文密码。 有几个很棒的教程讲述如何以安全的方式哈希和存储密码。我自己用Ruby实现过几次。 更复杂一点的解

2017-06-27 12:24:47 2264

翻译 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 1594

翻译 译:使用ActiveRecord Enums创建简单易读的属性

Creating Easy, Readable Attributes With ActiveRecord Enums设想一个问题的状态可能为“暂停”,“通过”或“标注”。或者一个电话号码可能是“家庭号码”,“办公号码”,“手机号码”或者“传真号码”(1982年的话) 有些模块需要这种类型的数据:只对应少许值的属性,并且这些值几乎永远不会改变。 如果使用纯Ruby的话,可以通过使用symbol来解

2017-06-14 14:01:58 421

ARM嵌入式LINUX应用实例开发高清电子书

基于ARM和嵌入式Linux的开发环境 Qtopia Core编程基础 命令行截屏工具 简单的时钟程序 拼图小游戏 嵌入式桌面管理器 嵌入式数据库 嵌入式Web服务器 嵌入式Linux调试技术 嵌入式Linux性能优化

2011-10-03

ARM嵌入式Linux设备驱动实例开发高清电子书

嵌入式linux设备驱动开发基础 按键设备驱动程序 触摸屏设备驱动程序 MMC/SD卡设备驱动程序 网卡设备驱动程序 Framebuffer设备驱动程序 USB设备驱动程序 NAND flash设备驱动程序 PCI设备驱动程序 调试技术

2011-10-02

Android应用开发详解

分为基础篇 技术篇 应用篇 应用篇中有四个应用分别为:无线警务通,雷电游戏,备忘录,无线点餐系统。

2011-10-02

ARM9微控制器与嵌入式无线网络实战

第1章 ARMRF912-W-Z系统 第2章 STR912微控制器 第3章 ARM912主板高级应用 。。。 第6章 无线传感器网络实验 第7章 ARM潜入无线蓝牙网络 第8章 ARM嵌入式GSM/GPRS 共八章

2011-10-02

微型计算机原理及应用(第三版)

电子教案(14章)PPT 正文图表 第1章 计算机基础知识 第2章 微型计算机的基本组成电路 第3章 微型计算机的基本工作原理 第4章 16位微处理器 第5章 86系列微型计算机的指令系统 第6章 微型计算机的程序设计 第7章 微型计算机汇编语言及汇编程序 第8章 输入/输出接口 第9章 中断控制器、计数/定时控制器及DMA控制器 第10章 A/D及D/A转换器 第11章 32位微处理器 第12章 PC总线及整机结构 第13章 MCS-51单片计算机 第14章 微型计算机在自动控制系统中的应用

2011-10-01

linux内核编程指南第3版

Linux操作系统简介 编译内核 内核入门 内存管理 进程间的通信 Linux文件系统 Linux下的设备驱动程序 网络实现方式 模块和调试 多重处理

2011-10-01

嵌入式C精华

嵌入式C/C++精华文章集锦: C语言高效编程的几招 C语言嵌入式系统编程修炼。。。

2011-09-30

华为C++内部培训材料

华为C++内部培训材料: C++中级培训胶片 C++中级培训教材

2011-09-30

mfc深入浅出

1_MFC概述 2_MFC和Win32 3_CObject类 4_消息映射的实现 5_MFC对象的创建 6_应用程序的退出 7_MFC的DLL 8_MFC的进程和线程

2011-09-30

C++编程思想

本书作者根据自己学习C++的亲身体会及多年教学经验,用简单的例子和简练的叙述讲解C++编程,别具特色。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流介绍、常量、内联函数、命名控制、引用和拷贝构造函数、运算符重载、动态对象创建、继承和组合、多态和虚函数、模板和包容器类、多重继承、异常处理和运行时类型识别。 本书作为正式教材和自学用书均非常优秀,作为程序设计者的参考用书亦极为合适。

2011-09-30

软件需求电子书

本书讲述了软件开发中一个至关重要的问题—软件需求问题。软件开发人员及用户往往容易忽略信息沟通,导致软件开发出来后,不能很好地满足用户的需要。而返工则不仅在技术上给开发人员带来巨大的麻烦,而且软件性能深受影响且造成人力、物力的浪费。所以在开发周期早期提高项目需求分析的质量,减少重复劳动,通过控制项目范围的扩展及需求变更来达到按计划完成预定目标是当前我国软件业急需解决的问题—这也是本书讨论的主要内容。

2011-09-30

C_C++指针经验总结

一篇关于C_C++指针的总结,写的挺好,大家看看

2011-09-30

清华大学ARM培训教材

清华大学ARM培训教材 一.嵌入式系统的硬件构成 二.操作系统 三.嵌入式Linux 四.交叉编译 五.嵌入式Linux的软件开发环境 六.设备驱动程序

2011-09-30

《C程序设计》(第三版)+及答案+课件

《C程序设计》(第三版)+及答案+课件 电子书、课件、答案

2011-09-30

嵌入式面试集合

C-C++程序员应聘常见面试题深入剖析 考查嵌入式C开发人员的最好的0x10道题 如何进入到嵌入式系统开发行业 如何写一份好的工程师简历 如何准备软件工程师的面试

2011-09-29

[Flash.CS4.Pro宝典].Flash.CS4.Professional.Bible(英文版)

[Flash[1].CS4.Pro宝典].Flash.CS4.Professional.Bible英文版

2011-09-28

《ARM嵌入式系统》赵宏伟老师课件

嵌入式系统(第1章 嵌入式系统概述) 嵌入式系统(第2章 ARM微处理器硬件结构) 嵌入式系统(第3章 ARM寻址方式与指令系统 上) 嵌入式系统(第3章 ARM寻址方式与指令系统 下) 嵌入式系统(第4章 汇编语言程序设计) 嵌入式系统(第5章 ARM接口设计技术上) 嵌入式系统(第5章 ARM接口设计技术下) 嵌入式系统(第6章 嵌入式系统设计技术)

2011-09-28

cgilib-0.5.tar.gz

cgilib-0.5.tar.gz

2013-09-07

rrdtool-1.4.8.tar.gz

rrdtool-1.4.8.tar.gz

2013-09-07

ASP.NET项目开发案例全程实录(第2版)》所有案例源码

ASP.NET项目开发案例全程实录(第2版)》所有案例源码

2013-01-19

jbpm-gpd-site.zip jbpm4.4 for eclipse插件

jbpm-gpd-site.zip jbpm4.4 for eclipse插件

2012-12-27

Android页面切换动画

11种页面动画切换效果,总有一款你需要!

2012-12-24

深入浅出Servlets.and.JSP第二版]英文版

深入浅出Servlets.and.JSP第二版]英文版

2012-04-15

Axure快速原型设计中文版详细说明

Axure快速原型设计中文版详细说明

2012-04-14

《Head First 设计模式》附书源码(Java版)

《Head First 设计模式》附书源码(Java版)

2012-04-11

《Head First 设计模式》附书源码(C#版)

《Head First 设计模式》附书源码(C#版)

2012-04-11

SQL Server2008驱动包

SQL Server2008驱动包

2012-03-20

二层交换机测试方案

基本功能测试 管理功能测试 Vlan测试 端口限速功能 保护Vlan功能

2011-12-26

LINUX开发工具箱:项目开发的最有效途径

开源工具的下载和安装 从源代码构架 查找帮助 编辑和保存源文件 开发者必备内核知识 进程 进程通信 使用shell调试IPC 性能优化 调试

2011-10-16

SHELL脚本学习指南

一.背景知识 二.入门 三.查找和替换 四.文本处理工具 五.管道的神奇魔力 六.变量、判断、重复动作 七.输入输出、文件与命令执行 八.产生脚本 九.awk的惊人表现 十.文件处理 。。。

2011-10-15

程序员面试宝典高清电子书

第一部分:求职过程 第二部分:C/C++程序设计 第三部分:数据结构和设计模式 第四部分:操作系统、数据库和网络 第五部分:综合面试题

2011-10-14

LINUX操作系统原理与应用

操作系统概述 内存寻址 进程 内存管理 中断和异常 系统调用 内核中的同步 文件系统 设备驱动 陈莉君 康华著

2011-10-12

汇编语言程序设计

第一部分 汇编语言程序设计环境基础 第二部分 汇编语言程序设计基础 第三部分 高级汇编语言技术 共十七章 Richard Blum著 马朝晖译

2011-10-10

嵌入式LINUX内存使用与性能优化高清电子书

内存的测量 进程内存优化 系统内存优化 内存泄露 性能优化的流程 进程启动速度 性能优化的方法 代码优化的境界 系统性能优化

2011-10-07

空空如也

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

TA关注的人

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