Golang的58个坑
Golang 58个坑转自:http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/index.html#string_byte_slice_conv
前言Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。
如果花时间学习官方 doc、wiki、讨论邮件列表、 Rob Pike 的大量文章以及 Go 的源码,会发现这篇文章中的坑是很常见的,新手跳过这些坑,能减少大量调试代码的时间。
初级篇:1-341.左大括号 { 不能单独放一行在其他大多数语言中,{ 的位置你自行决定。Go比较特别,遵守分号注入规则(automatic semicolon injection):编译器会在每行代码尾部特定分隔符后加;来分隔多条语句,比如会在 ) 后加分号:
12345// 错误示例func main() { println(&q ...
Jenkins学习之使用curl命令触发任务
jenkins学习之使用curl命令触发任务Trigger parameterized build with curl12345SERVER=http://jenkins.马哥私房菜.com:8080curl -n -X POST $SERVER'/job/job_name/buildWithParameters?token=马哥私房菜&BUILD_TYPE=参数值'
这个是触发某个带参数的job注意
需要是post请求,使用-X post来表示。
账号密码 写到家目录下面的.netrc 文件里面,使用curl的参数-n。
注意多个参数使用&来分割的,注意在bash中执行要带上单引号,不然 & 会被bash解析了,bash中这个是表示让命令后台执行。特别注意。
1234$ cat ~/.netrc -n ...
Hexo个人博客搭建教程
hexo 介绍
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
超快速度 Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染。
支持 Markdown Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。
一键部署 只需一条指令即可部署到 GitHub Pages, Heroku 或其他平台。
插件和可扩展性 强大的 API 带来无限的可能,与数种模板引擎(EJS,Pug,Nunjucks)和工具(Babel,PostCSS,Less/Sass)轻易集成
374 主题 在众多美观、强大、可定制的主题中选择;使用任何兼容的模板引擎创建自己的主题。
hexo 开始使用概述安装 Hexo 只需几分钟时间,若您在安装过程中遇到问题或无法找到解决方式,请 提交问题,我们会尽力解决您的问题。
安装前提安装 Git安装 Git 博客网站内容需要用 git 来托管,有版本历史记录,内容 ...
Android下的配置管理之道之gerrit自动备份分支ref-protection插件
最近研究了一个gerrit自动备份分支的插件。Ref protection 直译过来就是 引用保护.也就是保护 git下面 refs 的一个插件
1234567891011Ref protection plugin.Protects against commits being lost by creating backups of deleted refs (or non-fast-forward commits) under the refs/backups/ namespace.Branch deletion protection can be disabled by setting plugin.ref-protection.protectDeleted false in gerrit.config. Similarly, non-fast-forward update protection can be disabled with plugin.ref-protection.protectFastForward false.Branches under refs/heads/ ...
Android下的配置管理之道之gerrit权限管理
Android下的配置管理之道之gerrit权限管理Gerrit Code Review - Access Controls
在Gerrit中访问控制是基于组的。每个用户帐户都是一个或多个组的成员,并授予这些组的访问权和特权。访问权限不能授予单个用户。
gerrit中的组
System Groups 系统组
12345678910111213 Anonymous Users 匿名用户组.所有的用户都自动属于这个组的。没有登陆的用户会属于这个组。这个组最好只设置read读的权限,其他权限不要设置!例如,一般的会给repo这个仓库设置个允许匿名访问。 Change Owner 某个提交的拥有者的一个群组。一般不使用。 Project Owners 项目,也就是某个仓库的拥有者的一个群组。一般的不使用。 Registered Users 所有的注册用户的组,这个会用到一些。一般的可以给这个组设置个Code-Review -1..+1的权限。
Predefined Groups预定义的群组
12Administrators 管理员群组,权限最大的。Non-I ...
Android下的配置管理之道之gerrit安装github插件
gerrit安装github插件
http://julien.danjou.info/blog/2013/rant-about-github-pull-request-workflow-implementationIn reality there are already OpenSource projects that have started using the two tools together:
OpenStack (https://wiki.openstack.org/wiki/GerritJenkinsGithub)
MediaWiki (http://www.mediawiki.org/wiki/Gerrit)
The reason for using GitHub and Gerrit together are: a) GitHub is widely recognised and accessible by lots of world-wide sites. b) Using a public GitHub repo allows to “off-load” ...
Android下的配置管理之道之gerrit修改project路径
gerrit修改git路径,同时也要相应的修改数据库里面的路径。1234567891011121314151617181920212223242526272829 Schema | Name | Type | Owner --------+-----------------------------+----------+--------- public | account_diff_preferences | table | gerrit2 public | account_external_ids | table | gerrit2 public | account_group_by_id | table | gerrit2 public | account_group_by_id_aud | table | gerrit2 public | account_group_id | sequence | gerrit2 public | a ...
Android下的配置管理之道之gerrit代码服务器搭建
#Android下的配置管理之道之gerrit代码服务器搭建
gerrit 代码服务器搭建 Version v2.11.5
一般参考gerrit的文档就可以了。下面大部分都是文档的,列出一些注意点,一些工具的选择取舍等。#所需环境
jdk,git 等相关的工具gerrit是一个java web 应用,所以java运行时环境是不能少的,安装jdk或jre都可以的。gerrit是基于git来管理代码的,所以git也是必不可少的。
123456789101112131415安装方法:sudo apt-get install openjdk-7-jdk git# 或者 sudo apt-get install openjdk-7-* git,# 这里星号会匹配所有的安装包,这样会安装的比较多,这是懒人的做法。# tab 键补全出来,可以看到如下的包。 #openjdk-7-dbg #openjdk-7-doc #openjdk-7-jre #openjdk-7-jre-lib #openjdk-7-sou ...
Android下的配置管理之道之gerrit代码服务器之ssh队列详解
gerrit 服务器 sshd 服务的队列详解gerrit sshd 相关的配置一般的 gerrit 会配上下面的类似的, 但是其中各个都代表什么意思呢?
123456789[sshd] listenAddress = *:29418 maxConnectionsPerUser = 128 batchThreads = 30 threads = 120 streamThreads = 30 commandStartThreads = 30
123456789101112131415161718192021222324252627简单的讲gerrit的ssh队列可以分为2个大的队列,一个是SSH-Interactive-Worker, 一个是SSH-Batch-Worker.其中的 batchThreads = 30 就是控制 SSH-Batch-Worker队列的个数的.其中使用命令 ssh gerrit.example.com gerrit show-queue -w -q ,加上-q可以按照不同队列显示Task State ...
Android下的配置管理之道之gerrit之psql数据库表介绍
gerrit 2.12.x 版本 数据库表介绍 之 postgresql下面是2.12.x版本的 数据库表
12345678910111213141516171819202122232425 List of relationsTABLE_SCHEM | TABLE_NAME | TABLE_TYPE------------+-----------------------------+-----------public | account_external_ids | TABLEpublic | account_group_by_id | TABLEpublic | account_group_by_id_aud | TABLEpublic | account_group_members | TABLEpublic | account_group_members_audit | TABLEpublic | a ...
Android下的配置管理之道之gerrit之2.15.x数据库表介绍
gerrit 2.15.x 版本 数据库表介绍 之 postgresql 数据库下面是2.15.x 版本的1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 List of relations Schema | Name | Type | Owner --------+-----------------------------+----------+-------- public | account_group_by_id | table | gerrit public | account_group_by_id_aud | table | gerrit public | account_group_id | sequence | gerrit public | account_group_members ...
Android下的配置管理之道之APKCERTS_FILE
APKCERTS_FILE123456789101112131415161718192021222324252627282930313233343536373839404142name := $(TARGET_PRODUCT)ifeq ($(TARGET_BUILD_TYPE),debug) name := $(name)_debugendifname := $(name)-apkcerts-$(FILE_NAME_TAG)intermediates := \ $(call intermediates-dir-for,PACKAGING,apkcerts)APKCERTS_FILE := $(intermediates)/$(name).txt# We don't need to really build all the modules.# TODO: rebuild APKCERTS_FILE if any app change its cert.$(APKCERTS_FILE): @echo APK certs list: $@ @mkdir -p $(dir $@) ...