- 浏览: 51223 次
- 性别:
- 来自: 北京
最新评论
文章列表
利用Git提供的git-http-backend可以很方便的提供HTTP服务,因为是CGI方式,所以最直接的就是用Apache来部署,详见这里 。
但是,因为很多时候都会用Nginx作为伺服(效率考虑),为了资源更绿色地利用,特地奉上通过FastCGI的方式来搭建Git HTTP服务的方式。另外,为了方便灵活的授权支持,本文将提供每个git库单独授权的示例。
准备好环境:
ubuntu server: 14.04
git:1.9.1
fcgiwrap :1.1.0-2
nginx:1.4.6
安装没有什么好说的,就是要注意一下nginx运行的用户和组,git目标库, ...
【独立博客无力维护,博文搬到此处】
Redmine是非常好用的开源项目管理系统。公司的开发基本使用Python,所以选择了Trac。前一段时间接触Rails之后,发现Rails的部署也十分的简便,所以就抽空试用了一下垂涎已久的Redmine。
本文关注的是Unicorn和Nginx的部署方式,附件是最早的apache+passenger方式的部署。
安装ruby环境
1、下面是直接用Ubuntu提供的安装包来安装Ruby,不建议使用,产品环境下应该看这里:
apt-get install ruby rubygems
2、对比ruby与gem的版本满足Redmi ...
重要:本文描述的不是越狱IOS设备如何安装破解ipa文件的问题,本文旨在为内部测试人员提供测试包的安装指导。
前提:开发人员打包的时候选择了包含测试设备UUID的证书。
好吧,测试人员拿到ipa文件后,如何安装呢?
1. 打开iTunes(本文的版本是11.2.2)并连接IOS设备,如图所示:
2. 点击顶部按钮中的【应用】,如下图所示:
3. 双击你的ipa文件,步骤2中左边的应用列表里面就出现了,如果出现一个弹出框问你是否要覆盖,就选【是】,表示覆盖之前安装的这个应用;
4. 点击应用列表中对应应用后面的【安装】按钮,再点击下面 ...
Trac安装2 - 账户管理中我们可以看到,Trac中可以很方便的进行账户管理,包括用户建立(甚至可注册)、账户信息更改等。搭建Git Http服务器告诉我们如何搭建一个Git的http服务托管。现在,如果能把Trac中的账户信息用作Git Http服务的认证该多好啊:给新人开一个Trac账户,指定相应的授权,那么他就可以检出/更新Git库了!下面就来实现这个想法吧。
原理
Trac的账户信息是存储在DB中的(比如MySQL),实际上,我们需要Apache2利用DB中存储的信息来做授权。
Apache的MySQL认证 告诉我们,这很还是简单的(遗憾的是目前只能用MySQL)。
...
Git是很流行很好用的版本控制器,但是仅仅依靠强大的console管理并不能完全满足项目管理的需要:
1. Leader们希望能更直观的看到代码的更新和足迹,比如通过Wed UI界面。这时,把Git整合到项目管理系统中(比如Trac)是一个很不错的方式,例如这里。当然,我们也可以很方便的搭建专门的Git服务,见方式一。
2. 我们需要通过比SSH更“酷”的方式来clone代码库,比如通过http。这时,你居然想不到Git自带的backend就可以轻易的解决这个问题,详见方式二。
一、通过Gitweb提供代码浏览服务
注意,Gitweb仅仅提供基于浏览 ...
Trac有非常丰富的插件,这里列出几个我用到的:
一、工作时间相关:
1. http://trac-hacks.org/wiki/TimingAndEstimationPlugin
2. http://trac-hacks.org/wiki/WorkLogPlugin
二、自动补全用户名:
3. http://trac-hacks.org/wiki/AutocompleteUsersPlugin
三、子Ticket管理:
4. http://trac-hacks.org/wiki/SubticketsPlugin
四、重定向错误页面 ...
Trac可以很方便的和现下各种流行的VCS进行集成(通过插件的方式),这里以Git为例。
Trac中通过GitPlugin来实现与Git的集成,首先安装它,我选择的是: 0.12.0.5dev。下面进行假单的配置:
进入admin的插件配置,激活GitConnector(我只激活了它)
repositories菜单中配置Git库,注意用绝对路径,比如/home/your_name/repos/mysite.git
设置Git库的权限,比如更改用户为www-data(我的Trac在apache2上)
这样就可通过Browser Source菜单看到代码了!并且,提交 ...
上一篇中已经搭建了一个可用的Trac系统,本文记录了Trac中账户管理功能的集成。
一、激活Admin管理页面
1. 用命令行为项目指定一个管理员:
sudo trac-admin /var/lib/trac/YourProject permission add fake_admin TRAC_ADMIN
2. 用htpasswd命令(apache2附带工具)生成密码文件:
sudo htpasswd -c trac.htpasswd fake_admin
3. 配置apache中的basic授权:
<LocationMatch "/trac ...
——昨天trac集成账户管理和git的时候出现了麻烦,所以记录在此,以防后患。
假设已经安好:某数据库,apache2,python-setuptool。先准备好数据库:
#创建数据库,默认UTF8编码
CREATE DATABASE trac DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
#授权访问数据库
GRANT ALL ON trac.* TO trac_user@localhost IDENTIFIED BY 'yourpassword';
1. 安装babel: sudo easy_inst ...
总觉得基础还是很不好,于是再回过头来查看文档......
1、条件运算符号:
这一直是我觉得python很不到位的一个地方,社区给的解释是:不需要。
这次看到条件表达式,猛然发现2.5之后的一个特殊表达式:
x = a if a>b else b
没错,这就是pythonic的“三目运算”了。
从现在开始,忘记以下两种方式:
x = a>b and a or b # wrong way
{True:a, False:b}.get(a>b) # hack way
参考:PEP308
2、内部函数的定义:
也有人把这个成为 ...
以前用过jquery的shortcut插件,感觉不错。现在发现dojo也可以轻而易举的实现常用快捷键,如shift,alt以及ctrl形成的组合键。
dojo.addOnLoad(
//利用dojo的事件挂接方法来处理键盘事件,用户按下任意键值,都将出发onKeyPress方法
function(){
dojo.connect(document, "onkeydown", "onkey");
});
function onkey(evt){
var key ...
情景:迭代一个元素列表,为其绑定事件。
JS做法:
var nodes = getSomeNodes();
for (var i=0; i<nodes.length; i++){
nodes[i].onclick = function(){
/* find the index, or the i below will always be the last node's index
for(var j=nodes.length; j>=0; j--){
if(this == nodes[j])
break;
...
<遇见未知的自己>读后感
- 博客分类:
- life & career
最近有幸得到一本修炼内功的书<遇见未知的自己>,作者是先前台湾著名主持--张德芬。
由于我正处于职业生涯的重规划期,这个时侯得到此书可以说正是时侯--多谢朋友!
遂拜读,将有共鸣的部分摘抄如下:
0 自我认知--人所有受苦的根源就是来自于不清楚自己是谁,而盲目地去攀附、追求那些不能代表我们的东西
1 吸引法则--物以类聚,人以群分:乐观/积极能产生共鸣
2 没有吃过冰激凌的人不会对冰激凌有欲望--我们所追求/渴望的东西,往往是我们增经拥有的
3 潜意识--潜意识往往不被我们发觉和重视,却影响着我们的人生方向
4 身体--身体是“革命”的本钱
5 能量定律--担 ...
为了让自己编写的python更美更规范,特地整理如下:
模块文件结构:
================
1.注释,如
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
2.模块文档字符,用三引号
3. import 语句
4. 全局变两声名
5. 类/函数定义
6. 测试函数
====================
缩进:
四个空格,使用编辑器自动缩进功能的请确保不以tab缩进
空行:
在上述文件结构中每个模块之间空一行;在控制结构(尤其是复杂的)前后各留一个空行
续行:
定义字符串时尽量避免用 ' \ ' 来表 ...
花了两周时间浏览了djangobook,于是抽空做个练习实践实践。
记下网页中引入项目静态资源的方法(这里只引用css)。
场景:在基础模板base.html中引入layout.css,继承base.html的网页均可引用。
1. 在项目settings中增加静态资源的路径,比如: PEOJECT_MEDIA_ROOT = 'medias',这里的路径是相对项目路径的,建议用绝对路径代替。
2. 在项目urls中添加css请求的响应路径,如:
(r'^/wchat_media/(?P<path>.*)$', 'django.v ...