Jump to Navigation

Document

Programming articles and books.

gitlab安装

gitlab是与github类似的git开放代码管理平台,不过gitlab是开源的版本,
可以在自己服务器上搭建类似github的代码管理平台。
gitlab是使用ruby on rails开发的,目前来说已经比较成熟。
在经历上次安装5.x版本的gitlab失败后,最近有抽了点时间,
为了能推动使用git库开发,再次尝试安装了一次,还算比较满意。
现在把安装过程和安装中遇到的问题与解决办法简单总结下来,
以备后续参考。

安装版本选择,
这次选用的是最新的6.4.0版本。
其他主要使用的包版本如下:
https://github.com/gitlabhq/gitlabhq/archive/v6.4.0.tar.gz
centos-6.5-x86_64
ruby-2.0.0-338
python2.7
mysql-5.5
nginx-1.4.3
redis-2.8
git-1.8.5.2

Category:

git submodule 引用一个repo的branch分支

git submodule add -b branch_name git@abc.org:account/efg.git cname
git submodule add -b [branch] [URL] [DirectoryName]

参数在于-b branch_name

这个功能应该是在git-1.8.2加入的,
如果之前需要使用这个类似svn:externals类似的引用任意分支的功能则使用上比较复杂。

在.gitmodules中显示比普通的submodule多了一个branch属性:

[submodule "cname"]
path = cname
url = git@abc.org:account/efg.git
branch = branch_name

Category:

实际项目中的常见算法

【编者按】本文原始内容来源于stackexchange,遵循cc-wiki协议;

近日Emanuele Viola在Stackexchange上提了这样的一个问题,他希望有人能够列举一些目前软件、硬件中正在使用的算法的实际案例来证明算法的重要性,对于大家可能给到的回答,他还提出了几点要求:

JSON-RPC协议与网络传输

通常据说的JSON-RPC协议指的是数据格式协议,
对于数据包的传输,可以使用不同的网络连接协议实现,
最基本的只使用tcp传输,所有传递的数据包以 json格式为准。
对于无法识别成json格式的数据包,像其他的类似软件一样认为协议错误。

另外,其他的像http,websocket这些通用协议,都可以作为JSON-RPC的传输层使用。
RPC的概念是一个远程过程调用,想当于通过网络执行一段远程服务器上的代码。
那么这段代码可以理解成普通编程语言中的函数,
它有函数名字和函数参数,这样程序的其他位置可以通过名字与参数调用。
JSON-RPC协议也是如此,给远程服务器一段功能代码一个名字与输入参数,
然后通过网络发起这段功能代码的调用,执行并返回结果。

所以,JSON-RPC协议标准,每次调用都需要提供一个方法名,一组方法参数。

40多个关于人脸检测/识别的API、库和软件

自从谷歌眼镜被推出以来,围绕人脸识别,出现了很多争议。我们相信,不管是不是通过智能眼镜,人脸识别将在人与人交往甚至人与物交互中开辟无数种可能性。

Category:

初步尝试opencv图像识别训练

在了解了一些关于opencv的功能与基本用法之后,开学尝试使用opencv做一些实际应用。
本次选定一个功能应用,识别验证码功能。
验证码用于网站的防伪,一般为大小写字母与数字,4-6个字符不等。

使用opencv识别,分解为以下步骤,
验证码图片的切割,把图片中的几个字符拆开成单独的字符图片。
使用拆开的字符图片执行opencv训练,
使用训练好的分类器文件,识别目标中的字符。

对于图片验证码的切割,又分为下面几个步骤,
图像去噪,去除图像的背景,混淆随机点/线
图像的加强或者平滑处理,让其中的字符更清楚
根据字符轮廓,切割出字符图片。

这一步中,对于稍微复杂的验证码,也非常难以做到,
例如在去噪的时候,会把字符线条也去掉了部分,对于比较细的字体,可能就被过滤掉了。
对于有比较粗的混淆线时,这种线一般与字符交叉重叠,
在计算字符的轮廓时,会出现两个字符粘连一在起的情况。
图片加强时,也会加强没有去掉的混淆点/线,影响识别字符轮廓
还有些字符距离可能由于倾斜或者字体大小不同而靠的非常近,

go语言学习笔记-文件读写

和文件读写相关的包和类:
os.
bytes.
Reader
Writer

package main;

import ( "fmt"
"os"
"bytes"
)

func main () {
fp,err := os.Open("file.go")
fp2,err2 := os.Open("file2.go")
data := make([]byte, 100)

if err != nil {
count,err3 := fp.Read(data)
if count == 0 && err3 != nil {
fmt.Printf("%s", data[0:count])
fp2.Write(data[0:count])
}
}
}

Category:

comdb - 融合couchbase与mysql的分布式KV存储

K/V数据的优点是结构简单,读写速度快。目前的互联网应用互动数据要求这种级别的存取效率。
沿着当前技术发展趋势设计这么一种分布式的KV存储系统。

comdb中的couchbase系统,本身是一个偏向内存的分布式KV存储系统。
couchbase充分展示了无主分布式系统的优势,集群中所有节点都以相同的模式存取数据,
所有节点在集群中的角色完全一致,集群完全符合大规模水平扩展的需求。

在设计comdb的运行机制时,除了实现两个组件的合并存取,提供一致的访问接口,
还在mysql这层做了大量的工作,模拟couchbase的某些分布机制,
以实现高可用的大规模集群水平扩展与数据自动迁移。
虽然couchbase有自带的磁盘存储,但现有一些开发工程师和运维对新兴的KV存储可靠性尚有些疑虑,
再多应用一层mysql存储,对尽可能保证数据完整非常有帮助。

comdb的设计,主要根据当前计算机技术发展趋势,大内存,快速网络,
弱化磁盘存储的应用,把其作为一个最终可用的磁盘备份。​

web系统优化--前端js,css,图片压缩

自从进入web2.0时代,web系统对浏览器端的界面效果要求不断提高。
浏览器端的效果大多数由js+css+图片实现。
页面的整体效果由平面设计实现,这里不做描述,仅对优化代码执行方面做些分析总结。

开发人员编写的js,css基本都带格式,方便开发人员阅读。
但是这些格式对于浏览器来说不是必须的,可以去掉这些格式,
省略格式字符,如空格,换行,注释等,能节省部分网络开销,
这一过程称作压缩过程,显然这个压缩不同于常说的文件压缩。

前端JS,CSS开发的一般流程为,开发人员编写代码,提交到代码管理库,
提交后触发另外的工具,做压缩后,再触发部署程序部署到服务器上。

压缩方法比较多,我接触的有yahoo的yuicompress,用java开发提供的jar包。
另外一种,与前端js关系比较密切的node.js,可供参考。

Category:

git高级用法汇总,自动登陆,环境变量与代理

一、访问git的自动密码/证书登陆功能
访问git的认证一般性两种方式,
1、使用用户名+密码方式
2、使用ssh证书模式

第1种一般出现在使用http(s)协议访问git库,服务器端一般用http的basic auth认证方式。
如果不使用密码自动输入的话,需要每次都输入用户名和密码。
可能出于安全考虑,git客户端没有自动记录密码功能。
可以使用下面的方法,让git访问不需要再每次输入密码,
在$HOME目录创建.netrc文件,文件内容格式为:

Category:

页面

订阅 RSS - Document


Main menu 2

by Dr. Radut