`
文章列表
利用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/my​site.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; ...
  最近有幸得到一本修炼内功的书<遇见未知的自己>,作者是先前台湾著名主持--张德芬。   由于我正处于职业生涯的重规划期,这个时侯得到此书可以说正是时侯--多谢朋友!   遂拜读,将有共鸣的部分摘抄如下: 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 ...
Global site tag (gtag.js) - Google Analytics