急求有 husonmdt 部署 视频相关文档或者视频

《Python 自动化运维:技术与最佳实践》 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
已注册用户请 &
推荐学习书目
Python Sites
值得关注的项目
Python 编程
Sponsored by
100offer 程序员拍卖,让不缺工作机会的优秀程序员,安全匿名的在一个月内拿到 10 - 15 个优质面试机会,从而拥有一份激(shou)动(ru)人(geng)心(gao)的事业。
Promoted by
《Python 自动化运维:技术与最佳实践》
· 40 天前 · 2061 次点击
第一部分 基础篇
第1章 系统基础信息模块详解 2
1.1 系统性能信息模块psutil 2
1.1.1 获取系统性能信息 3
1.1.2 系统进程管理方法 6
1.2 实用的IP地址处理模块IPy 7
1.2.1 IP地址、网段的基本处理 8
1.2.2 多网络计算方法详解 9
1.3 DNS处理模块dnspython 11
1.3.1 模块域名解析方法详解 11
1.3.2 常见解析类型示例说明 12
1.3.3 实践:DNS域名轮循业务监控 14
第2章 业务服务监控详解 17
2.1 文件内容差异对比方法 17
2.1.1 示例1:两个字符串的差异对比 17
2.1.2 生成美观的对比HTML格式文档 19
2.1.3 示例2:对比Nginx配置文件差异 19
2.2 文件与目录差异对比方法 21
2.2.1 模块常用方法说明 21
2.2.2 实践:校验源与备份目录差异 25
2.3 发送电子邮件模块smtplib 27
2.3.1 smtplib模块的常用类与方法 27
2.3.2 定制个性化的邮件格式方法 28
2.3.3 定制常用邮件格式示例详解 29
2.4 探测Web服务质量方法 34
2.4.1 模块常用方法说明 35
2.4.2 实践:实现探测Web服务质量 36
第3章 定制业务质量报表详解 39
3.1 数据报表之Excel操作模块 39
3.1.1 模块常用方法说明 41
3.1.2 实践:定制自动化业务流量报表周报 48
3.2 Python与rrdtool的结合模块 50
3.2.1 rrdtool模块常用方法说明 51
3.2.2 实践:实现网卡流量图表绘制 53
3.3 生成动态路由轨迹图 56
3.3.1 模块常用方法说明 56
3.3.2 实践:实现TCP探测目标服务路由轨迹 57
第4章 Python与系统安全 60
4.1 构建集中式的病毒扫描机制 60
4.1.1 模块常用方法说明 61
4.1.2 实践:实现集中式的病毒扫描 61
4.2 实现高效的端口扫描器 64
4.2.1 模块常用方法说明 64
4.2.2 实践:实现高效的端口扫描 66
第二部分 高级篇
第5章 系统批量运维管理器pexpect详解 70
5.1 pexpect的安装 70
5.2 pexpect的核心组件 71
5.2.1 spawn类 71
5.2.2 run函数 74
5.2.3 pxssh类 75
5.3 pexpect应用示例 76
5.3.1 实现一个自动化FTP操作 76
5.3.2 远程文件自动打包并下载 77
第6章 系统批量运维管理器paramiko详解 79
6.1 paramiko的安装 79
6.2 paramiko的核心组件 81
6.2.1 SSHClient类 81
6.2.2 SFTPClient类 82
6.3 paramiko应用示例 85
6.3.1 实现密钥方式登录远程主机 85
6.3.2 实现堡垒机模式下的远程命令执行 85
6.3.3 实现堡垒机模式下的远程文件上传 88
第7章 系统批量运维管理器Fabric详解 91
7.1 Fabric的安装 91
7.2 fab的常用参数 92
7.3 fabfile的编写 93
7.3.1 全局属性设定 93
7.3.2 常用API 94
7.3.3 示例1:查看本地与远程主机信息 95
7.3.4 示例2:动态获取远程目录列表 96
7.3.5 示例3:网关模式文件上传与执行 97
7.4 Fabric应用示例 98
7.4.1 示例1:文件打包、上传与校验 98
7.4.2 示例2:部署LNMP业务服务环境 99
7.4.3 示例3:生产环境代码包发布管理 101
第8章 从“零”开发一个轻量级WebServer 104
8.1 Yorserver介绍 104
8.1.1 功能特点 104
8.1.2 配置文件 105
8.2 功能实现方法 106
8.2.1 HTTP缓存功能 107
8.2.2 HTTP压缩功能 111
8.2.3 HTTP SSL功能 111
8.2.4 目录列表功能 114
8.2.5 动态CGI功能 114
第9章 集中化管理平台Ansible详解 118
9.1 YAML语言 119
9.1.1 块序列描述 120
9.1.2 块映射描述 120
9.2 Ansible的安装 121
9.2.1 业务环境说明 121
9.2.2 安装EPEL 122
9.2.3 安装Ansible 122
9.2.4 Ansible配置及测试 122
9.2.5 配置Linux主机SSH无密码访问 123
9.3 定义主机与组规则 124
9.3.1 定义主机与组 124
9.3.2 定义主机变量 125
9.3.3 定义组变量 125
9.3.4 分离主机与组特定数据 126
9.4 匹配目标 127
9.5 Ansible常用模块及API 127
9.6 playbook介绍 132
9.6.1 定义主机与用户 132
9.6.2 任务列表 133
9.6.3 执行playbook 134
9.7 playbook角色与包含声明 135
9.7.1 包含文件,鼓励复用 135
9.7.2 角色 136
9.8 获取远程主机系统信息:Facts 141
9.9 变量 142
9.9.1 Jinja2过滤器 143
9.9.2 本地Facts 143
9.9.3 注册变量 144
9.10 条件语句 145
9.11 循环 146
9.12 示例讲解 147
第10章 集中化管理平台Saltstack详解 155
10.1 Saltstack的安装 156
10.1.1 业务环境说明 156
10.1.2 安装EPEL 156
10.1.3 安装Saltstack 156
10.1.4 Saltstack防火墙配置 157
10.1.5 更新Saltstack配置及安装校验 157
10.2 利用Saltstack远程执行命令 158
10.3 Saltstack常用模块及API 161
10.4 grains组件 166
10.4.1 grains常用操作命令 167
10.4.2 定义grains数据 167
10.5 pillar组件 170
10.5.1 pillar的定义 171
10.5.2 pillar的使用 173
10.6 state介绍 174
10.6.1 state的定义 174
10.6.2 state的使用 175
10.7 示例:基于Saltstack实现的配置集中化管理 177
10.7.1 环境说明 177
10.7.2 主控端配置说明 177
10.7.3 配置pillar 179
10.7.4 配置state 180
10.7.5 校验结果 183
第11章 统一网络控制器Func详解 185
11.1 Func的安装 186
11.1.1 业务环境说明 186
11.1.2 安装Func 186
11.2 Func常用模块及API 189
11.2.1 选择目标主机 190
11.2.2 常用模块详解 190
11.3 自定义Func模块 194
11.4 非Python API接口支持 198
11.5 Func的Facts支持 199
第12章 Python大数据应用详解 202
12.1 环境说明 202
12.2 Hadoop部署 203
12.3 使用Python编写MapReduce 207
12.3.1 用原生Python编写MapReduce详解 208
12.3.2 用Mrjob框架编写MapReduce详解 212
12.4 实战分析 216
12.4.1 示例场景 216
12.4.2 网站访问流量统计 217
12.4.3 网站HTTP状态码统计 219
12.4.4 网站分钟级请求数统计 220
12.4.5 网站访问来源IP统计 221
12.4.6 网站文件访问统计 222
第三部分 案例篇
第13章 从零开始打造B/S自动化运维平台 226
13.1 平台功能介绍 226
13.2 系统构架设计 227
13.3 数据库结构设计 228
13.3.1 数据库分析 228
13.3.2 数据字典 228
13.3.3 数据库模型 229
13.4 系统环境部署 230
13.4.1 系统环境说明 230
13.4.2 系统平台搭建 230
13.4.3 开发环境优化 233
13.5 系统功能模块设计 235
13.5.1 前端数据加载模块 235
13.5.2 数据传输模块设计 237
13.5.3 平台功能模块扩展 240
第14章 打造Linux系统安全审计功能 245
14.1 平台功能介绍 245
14.2 系统构架设计 246
14.3 数据库结构设计 247
14.3.1 数据库分析 247
14.3.2 数据字典 247
14.4 系统环境部署 248
14.4.1 系统环境说明 248
14.4.2 上报主机配置 248
14.5 服务器端功能设计 252
14.5.1 Django配置 252
14.5.2 功能实现方法 253
第15章 构建分布式质量监控平台 256
15.1 平台功能介绍 256
15.2 系统构架设计 257
15.3 数据库结构设计 258
15.3.1 数据库分析 258
15.3.2 数据字典 258
15.3.3 数据库模型 259
15.4 系统环境部署 260
15.4.1 系统环境说明 260
15.4.2 数据采集角色 260
15.4.3 rrdtool作业 261
15.5 服务器端功能设计 263
15.5.1 Django配置 263
15.5.2 业务增加功能 264
15.5.3 业务报表功能 266
第16章 构建桌面版C/S自动化运维平台 269
16.1 平台功能介绍 269
16.2 系统构架设计 270
16.3 数据库结构设计 271
16.3.1 数据库分析 271
16.3.2 数据字典 272
16.3.3 数据库模型 272
16.4 系统环境部署 273
16.4.1 系统环境说明 273
16.4.2 系统环境搭建 273
16.5 系统功能模块设计 274
16.5.1 用户登录模块 274
16.5.2 系统配置功能 275
16.5.3 服务器分类模块 277
16.5.4 系统升级功能 280
16.5.5 客户端模块编写 284
16.5.6 执行功能模块 287
16.5.7 平台程序发布 289
第 1 条附言 &·& 39 天前
《Python自动化运维:技术与最佳实践》附带示例及案例源码感谢 @
24 回复 &| &直到
17:00:18 +08:00
& &40 天前 via Android
好大一个坑。用了下ruby那边的cap和mina感觉比大python差远啦
& &40 天前
在 ansible 和 saltstack 中纠结了好久
& &40 天前
昨晚刚买了这本
& &40 天前
@ 最后那?
& &40 天前
还是非常牛逼的!
& &40 天前
@ 我果断选了ansible
& &40 天前
& &40 天前
这么复杂~~
& &40 天前
ansible 不支持 Windows。saltstack windows minion 的升级太麻烦了。真希望来个 golang 版的,加支持自动升级。
& &40 天前
& &40 天前
早上刚下单这本书。。
& &40 天前
我也支持了一下
& &40 天前 via iPhone
适合零基础的人用吗,英语不认识一个的那种
& &40 天前
@ 建议学习英语
& &40 天前
这书很好么?
& &40 天前
@ 只是分享发现,好坏不知。
& &40 天前
这种书挺实用的,我学python就是为了做些工具,免除手动敲那些命令的繁复无聊
& &39 天前
salt用了感觉还不错,其他的暂时还没有试过
& &39 天前
& &39 天前
& &39 天前
@ 选了 Ansible, 感觉 agentless 更清爽一些
& &39 天前
@ 我是因为 Ansible 的无 agent 选了它,你呢
& &39 天前
已下单 谢谢楼主
& &39 天前
@ 不错,正想找~
& · & 701 人在线 & 最高记录 1194 & · &
创意工作者们的社区
Lovingly made by OLIVIDA
VERSION: 3.7.0 · 35ms · UTC 06:11 · PVG 14:11 · LAX 22:11 · JFK 01:11? Do have faith in what you're doing.当前位置: >
> maven+hudson+git继续集成
maven+hudson+git继续集成
wen_bo & at
maven+hudson+git持续集成  Maven &hudson git的安装非常简单 & 这里就不一一介绍了  直接从huson系统配置讲起1.huson系统配置  1.1JDK设置  这里不要点自动安装,直接指定目录  1.2Maven设置  与第一条一样,直接指定目录  2新建任务2.1构建策略  旧的构建只保存8份,防止空间不足  2.2git设置  填好git库地址,并指定分支,本例子是托管在github上的  2.3构建频率  例子中是10分钟一次  2.4构建命令  可以根据实际情况进行部署  3开始构建3.1立即构建  点击立即构建按钮  3.2构建历史  点击上图的构建历史中其中一项可进去某次构建  4.常用界面4.1命令行输出  命令行是构建时的输出  4.2工作区  工作区可以看到源码    4.3变更历史  可以看到构建源代码变更历史,也就是git版本变化  
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-配置huson执行分布式任务 - 阿里巴巴一个测试架构师 - 51Testing软件测试网 51Testing软件测试网-中国软件测试人的精神家园 - Powered by X-Space
淘宝商城(天猫)高级技术专家.3年研发+3年性能测试调优/系统测试+4年团队管理与测试架构、研发系统实践. 新舞台新气象, 深化测试基础架构及研发架构,希望能在某个技术领域成为真正的技术大牛。欢迎荐才/viewthread.php?tid=120496&extra=&page=1 .邮件: jianzhao.liangjz@,MSN:.微博:.cn/
配置huson执行分布式任务
& 13:12:41
/ 个人分类:
&&&&&http://wiki.hudson-ci.org/display/HUDSON/Distributed+builds&mastermasterslavejobsHudsonslavehudsonmasterslavemasterslave&http://wiki.hudson-ci.org/display/HUDSON/Cppcheck+Plugincppcheck.hpicppcheckhudson(master)xenwindowsmasterslavewindows上打开浏览器,输入http://192.168.56.101:8080/hudson/computer/&windows_node_cppcheck_parser,选择Dumb Slave&namewindows_node_cppcheck_parserRemote fs root: d:/cppcheckxml&-----------------slaveslaveUsage : leave this machine for tied jobs onlyLaunch methodlaunch slave agents via jnlpsave&slave连接方式页面。&launch图标,可以下载slave.jar包。launch建立windows机器和Hudson master&slave.jarwindows和Hudson master -jar-jnlpUrl&可以看到windows宿主机环境信息。&可以看到slave概要信息slavejobs新建一个 a free-style. software project&的c 任务。.&tie this project to a node绑定到刚才的windows_node_cppcheck_parser节点。&&publish cppcheck results,输入*cppcheck*.xml.&Parsing has been canceled. No cppcheck
report file(s) were found with the pattern '*cppcheck*.xml' relative to 'd:\cppcheckxml\workspace\c'.&windows宿主机的d:\cppcheckxml\workspace\ccppcheckcppchecktestcppcheck1.xmltestcppcheck2.xmlcppcheck&可看到Building remotely on windows_node_cppcheck_parser字样。&slave&&ps:图片偶就不贴了,麻烦介绍使用几种工具,改善我们的代码。...
如何生成进程进程之间的通信如何向进程发消息应用...
Create a Neo4j Graph Database Using the REST API
A CRM with Neo4j and REST
neo4j 是用Java实现的图形化的数据库,跟关系型数据库不同的是,Graph database更注重于关系查询。比如查询朋友的朋友的朋友的朋友的四层关系,用关系型数据库查询会使用大量的Join,会有性能问题,如果用Gr...
如何快速开发出一个 漂亮,稳定,可扩展, 可移植,可替换的现代的web 网站?
关键点是: 界面要漂亮(UI),系统要稳定(良好的测试), 可扩展和移植(组件之间依赖最少), 速度快(可以使用缓存)
我的思路是 前后端的完全分离,别用后端语言 写前段 view
基本的技术栈是: 
UI: bootstrap + AngularJS
Server: Railsapi
数据库层...
qwandry 是一个快速打开我们指定文件夹的工具,比如快速打开rails, activerecord等目录。
/adamsanderson/qwandry
gem install qwandry
# opens ruby's matrix class in your editor
EventMachine
本文主要是
EventMachine如何建一个简单的Echo服务器post_init, unbind, receive_date 方法
EchoServer
如下代码,是建立一个简单的EchoServer
#!/usr/bin/env rubyrequire 'rubygems'require 'eventmachine' class Ech...
本文首先发布在
CSDN的文章编辑器实在太烂了,建议大家用Cmd Markdown。它不但支持markdown,还支持VIM模式。
智能化的命令行工具-betty
betty tool command ruby
betty 是一个用Ruby实现的非常简单,好玩的智能化命令行提示工具。主要解决的问题是将英文翻译成机器可以理解的unix命令。在它的官方文...
TracePoint是一款跟踪Ruby代码的工具,可以细粒度的监控Ruby程序,但是只支持2.0.
一个简单的例子
非tracepoint的例子
tracer = lambda do |event, file, line, id, binding, klass| 
  to_display = [event, File.basename(file), line, klass,...
Desc: 如何在自动生成一个简单的Range范围的随机数
rand(10) + 10
rand(10...20)
Random.new.rand(10...20)
awesoome_print
Desc: 能格式化JSON,HASH的输出
gem install awesome_print
require 'ap'
ap [1,2,3]
文本解析Gem: parslet
简单的Ruby Lib,用于构建私人的解析器
require 'parslet'
include Parslet
# Constructs a parser using a Parser Expression Grammar
str('&') &&
tree 命令挺有用的,能看到一个文件夹下的所有文件的目录, 在mac下,可以使用 brew 安装
tree some_
强大的前端插件管理系统,使我们安装插件非常的快。
install命令
brew install -g bower
安装jquery的命令是
bower install jq...
Rails项目中,如何有效的组织测试用例? 个人的一些经验总结在此。
1. 可读性和可维护性是最重要的。
2. 层级和逻辑一定要清楚。
3. context 和 describe 描述一定要清晰....
项目膨胀以后,调试变得非常困难。尤其是javascript。
Javascript 的事件绑定可以发生在代码的任何地方,当项目中的JS代码超过10万行后,想从代码中找到元素的事件绑定,非常的困难。
灵活带来的维护的困难。
JQuery的data(&events&)方法给我们带来了便利
$(&name&).data(&events&)['click']...
在工作中遇到了一个比较诡异的问题,在dev模式下,A类中的类变量a 等于nil,但是在production环境下, 类变量a 是true.
这个问题是因为 类变量的诡异造成的。
Ruby中的类变量是会在 继承树 中共享的。
在我的实例中, A 的父类 是B , B 的子类是 C 。 我在C 中定义了 类变量a 等于true 。在production环境下,是会对所有B的子类都有...
联想的自带linux的 thinkpad e430c, 误修改 sudoers 文件后,无法使用sudo命令 ,并且不知道 root 用户的密码?该如何恢复?
#linux 误修改 /etc/sudoers 的恢复办法
* 启动电脑,按住 shift, 进入引导选项
* 可以看到引导选项列表中,有一项的末尾括号里是这样的(recovery mode),也就是恢复模式,选择这项,回车继...
不管如何,vim真的很强大。虽然现在在mac上一直用 sublime text。 但是有点时候还是需要vim: 方便,简单。
管理vim的工具
/gmarik/vundle
vim运行ruby命令
/tpope/vim-dispatch
有详细的说明,不详说了。
vim-dispatch 很强大...
GemLou.pe:
View The Dependency Tree for Any Ruby Gem
Using the provided bookmarklet, you can go to a gem's page on rubygems.org and then see an interesting view of the dependencies for that gem....
公司买了RubyMotion,今天试玩了一下。安装过程记录在下。
Xcode的安装就多说了。
具体的安装流程可以参考: /developer-center/guides/getting-started/#_prerequisites
值得说一下的是,由于Xcode版本的问题,在运行 RubyMotion 的 rake 任务的时候,出现...
Sublime text2是一个编辑神器,这是毋容置疑的。从vim转到sublime text2后,我感觉更为轻松了。当然,我也喜欢vim。所以,我喜欢把我的sublime text2设置成vim模式。
这样,就可以结合vim和sublime text2的优点了。本文,我做一些简单的总结,希望对大家有所帮助。
虽然,现在已经有sublime text3了,但是还是喜欢 sublime text2。:-) 本文是介绍sublime text2 。...
持续集成工具
代码检查工具
http://metric-fu.rubyforge.org/
/episodes/166-metric-fu...
常常需要开发一些script,需要引用Rails的model
ENV['RAILS_ENV'] ||= 'production'
require File.dirname(__FILE__) + &/../config/environment&
还有一些需要直接查数据的操作
可以使用Mysql2
require 'mysql2'
client = Mysql2::Client...
足够的测试和持续的集成...
常使用ubuntu的源
deb /ubuntu/ oneiric main universe restricted multiverse
deb-src /ubuntu/ oneiric main universe restricted multiverse
deb http://mirrors.163....
第一次使用Mac Book,记录于此。
1, 需要按照xcode
xcode 4.2以上的需要安装 command line xxx
打开 xcode -& open develop tools -& more xxxx
2, 将 /Applications/Xcode.app/Contents/Developer/usr/bin  放到 $PATH
修改 ~/.bash_profi...
对 csdn 提供的 limiter gem 比较感兴趣,想研究一下。可惜它的文档不是很全,说的也不够的详尽,所以,只能自己摸索了。
limiter gem 的作用:
Rack middleware for rate-limiting incoming HTTP requests with black_list and white_list support.
大体意思是, 通过白名单 和...
首先,需要注册!
http://rubygems.org/sign_up
其次,生成gem文件
gem build xmpp_server.gemspec
gem push xmpp_server-0.0.1.gem
如下是我的gem
https://rubygems.org/gems/xmpp_server
Rails3中,可以使用Railtie的方式,将rake 任务 放到 Rails 项目中
lib/your_gem/railtie.rb
require 'your_gem'
require 'rails'
module YourGem
class Railtie & Rails::Railtie
rake_tasks do
load 'path/to/rake.r...
require 'thread'
q = Queue.new
producter = Thread.new {
10.times { |i|
q.push nil
consumer = Thread.new {
break if i == nil
自己写的一个简单的xmpp服务的中转站
require 'drb/drb'
require 'xmpp4r/client'
include Jabber
= &druby://localhost:8787&
= Queue.new
ip_addr = &server地址&
server_str = &tester001@#{ip_addr}/testing&...
ActiveSupport::Notifications   是Rails3提供的 Rails系统的事件提醒通知机制, 非常强大。 我们可以非常容易的捕捉到 系统运行的各个状态时的参数,时间等。
一个简单的可以查看其功能的例子
新建/config/initializers/notifications.rb
ActiveSupport::Notifications.subscr...
当我们有这样的需求:一个或者更多的类 拥有同样的行为, 那么可以使用Rspec的 可分享的实例组(a shared example group). 关键词是
shared_examples_for 和  it_should_behave_like
shared_examples_for &Any Pizza& do
it &should taste really good& do
项目地址:
/chucai/rest_prev
用于手机客户端程序的接口开发,能有效分离手机客户端与服务器开发的耦合问题。...
我使用的场景是 Rails 3.2.6
1, 增加Gem
# Bootstrap
gem 'anjlab-bootstrap-rails', '&= 2.1', :require =& 'bootstrap-rails'
gem 'bootstrap-will_paginate', '0.0.3'
gem 'bootstrap_helper', &2.0.0.1&...
Rspec非常的强大,一旦用上,在也舍不得换了。 不过每次集成Rspec都比较麻烦,因为相关的Gem比较多,而且需要修改一些配置文件。本文记录下我集成Rspec集成过程。
 增加Gem
group :development, :test do
gem 'database_cleaner'
gem 'factory_girl'
gem 'factory_girl_...
1, 需要先安装checkinstall
wget .mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz
tar zxf checkinstall-xxx
make install
2, FFmpeg安装qt-faststart
make tools/qt...
在项目开发的过程中,我们会遇到这种情况: 部署服务器上,我们需要welcome/index 对应默认的 views/welcome/index.html.erb页面。
但是在开发的过程中,我们有新的页面。如何在不修改默认的 welcome/index.html.erb页面的情况下,能让welcome/index 访问我们指定的views 呢?
重新定义views_path
self.vi...
使用Rails开发 Json接口,很简单,也会遇到一些问题。
我开发的很多项目,大部分都是基于 devise . 不讨论一些 基于grape的情况
JSON接口 的认证使用 token  
参考文章:
http://blog.csdn.net/hexudong08/article/details/7744474
一个比较诡异的问题
post 或者put,或者delete 方...
在Rest接口定义中,删除数据都是使用delete方法请求,但大部分浏览器并不支持该方法请求,该如何做?
Rails使用的方法使用Post模拟delete方法
delete 方法其实是post 方法,不过在传递参数的时候,需要增加如下的字段
_method: delete
所以,不要使用get请求 delete方法,需要使用post,并且带上一个额外的参数 _method=dele...
RubyChina有一个喜欢功能,具体的表现可以查看每一个帖子的页面
http://ruby-china.org/topics/5272
实现的代码解析如下:
在topics/show.html.erb页面中, 有如下代码
likeable_tag 是定义在/app/helpers/likes_helper.rb中的helper方法
具体代码如下
以前都是手动部署,特别麻烦,而且非常的累。现在尝试自动部署方案。
使用的自动部署方案是:capistrano
gem install capistrano
在Rails项目执行
写配置文件
部署使用的配置文件是 config/deploy.rb
如下两篇文件是可以参考的
require 'bundler/capistrano'
# requi...
gem 'thin'
运行rackup
rackup config.ru
当然,需要设置环境变量为 production
set :environment, :production
启动命令的复杂形式
rackup -s thin config.ru
-P tmp/rack.pid
-E production -D
可以写一个rake来做这些事情
不算系统的介绍吧,因为网上有很多的教程了,可以大概的了解一些Backbone的基本结构。
主要是记录下比较关键和学习的资源。
1, backbone的官方例子, todos
/backbone/examples/todos/index.html
2, 官方例子的参考讲解
http://documentcloud.github....
http://ihower.tw/rails3/deployment.html
关于日志文件的处理:
處理Log檔案
網站持續運作,log目錄下的production.log可是會越長越肥,因此需要定期整理備份,這裡有幾種方法,一種是修改config/environments/production.rb的設定:
config.logger = Logger.new(conf...
:start =& &nohup npm start juggernaut &&,
=& &ps aux | grep npm&
while true
result = `#{cmd[:ps]}`.split(&\n&).select { |line| line unless line =~ /grep/ }
if result.size & 1...
1, 下载eclipse,java 略
2, 下载Android ADK
download from this page:     /sdk/index.html
tools/android update --no-ui
配置环境地址
    修改~/.bashrc文件,加入android sdk与eclip...
需要在公司的产品首页添加一个悬浮的广告框,做了一个链接,链到了土豆网。(关于我们公司的一个产品的电视报道)
如下是我所做的代码记录
实例参考:
具体代码如下
#flow-image {
备份MySQL数据库的命令
mysqldump -hhostname -uusername -ppassword databasename & backupfile.sql
备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername...
具体参考文章
/2009/02/testing-rake-tasks-with-rspec.html...
具体使用参考:
/michelson/lazy_high_charts
但是它不提供ajax加载的图标方式
因为生成的js代码,实在 window.onload方法中运行的
增加新的ajax 代码
# -*- encoding: utf-8 -*-
module LazyHighCharts
module LayoutH...
-m /RailsApps/rails3-application-templates/master/rails3-haml-html5-template.rb--old-style-hash--skip-bundle--skip-test-unit...
这是一个常见的需求,有时候我们有手机拍摄的图片,在网页上显示,会倒立。所以,需要将图片旋转90度。
比较常用的一种方案是:exiftool
http://www.sno.phy.queensu.ca/~phil/exiftool/#top
http://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-8.98....
下载Jquery ui 的主题
将css文件复制到  vender/assets/stylesheets下面
命名为 jquery-ui.css
引入application.css.scss文件中
 @import &jquery-ui&;
将images复制到 vender/assets/images下面
修改jqu...
apt-get install ack-grep
sudo ln -s `which ack-grep` /bin/ack
ack --help-types|less
可以直接使用:
ack -a hello
ack --js hello
ack --nojs hello
vim 下载ack插件http://www.vim.org/scripts/script...
最近的一个产品用thin部署,在启动的时候,服务器总是会短暂停几秒种。这对一个上线的产品来说,是不可以接受的。passenger重启非常的简单,也不会终端服务。thin 稍微复杂一点。
在重启thin的时候,指定端口号
sudo thin restart -C thin.yml -o 3001分别启动 对应的端口
onebyone启动的命令
thin restar...
Rack作为Ruby web服务的中间介,在整个开发中是非常重要的。很多框架的基础服务都是基于Rack的。本文做一个简单的hello world。
1, 基本介绍
很简单,Rack只需要一个简单的ruby类,方法,Proc, lamba 等,只要能调用 call方法的代码片段都行
基本的模式
def call(env)
[status, [headers], body]
在model层新建一个Module
# coding: utf-8
module Mongoid
module SoftDelete
extend ActiveSupport::Concern
included do
field :deleted_at, :type =& DateTime
default_scope where(:de...
紧接着上一篇文章
http://blog.csdn.net/hexudong08/article/details/7744597
如何实现一个简单的认证系统,不用devise?
这个项目使用了一个简单的用户认证系统,清爽,不许要devise那么多的功能。很简单。
具体的代码分析如下》
1, 用户注册
def create...
这个项目是
   /chucai/Ruby-on-Rails-Tutorial-by-Michael-Hartl--v3.2-
  
  有比较网站的Rails测试代码,项目比较小,只有三张表,但是代码结构简单,思路清晰,有非常多的值得借鉴和学习的地方。 
  所有做了这个研究笔记。
  
1.   实现的功能有:
   o 集成了cucumber...
1.  修改配置文件  config/initializers/devise.rb
   config.token_authentication_key = :auth_token
   
2. 修改controller action
  class Users::SessionsController 
  def create
    resource = warden.au...
Rails的assets部署成production的时候,总是会提示:
ActionView::Template::Error (android.js isn't precompiled):
这个问题的解决方案是
在application.rb文件中
config.assets.precompile += %w(application_mobile.css application_m...
打算以后使用rspec 就行测试开发,由于第一次在项目中使用,所以,记录再次,便于以后查询
本文的记录参考了开源软件 angle-nest 和 Ruby-China源码
 安装gem
group :development,
gem 'cucumber-rails', :require =& false
gem 'database_cleaner'
set debug output
http = Net::HTTP.new(&&, 80)
http.set_debug_output($stdout)
这样就可以在post的时候显示传输的内容,便于调试。
使用nc监视http请求数据
浏览器请求数据可以通过firebug等工具查看,但是有时候需要自己的程序去请求其他应用,这样调试起来很不方便。
一直在研究Ruby-China的源代码,RC中使用的是Mongodb. 我也准备尝试一下mongodb。
 新建项目
rails new mongodb --skip-active-record生成一个叫mongodb的项目,并且移除active-record的代码
修改Gemfile文件
gem 'mongoid', '3.0.0.rc'
安装需要的库文件
Install and start Redis, MongoDB, memcached, Python,Pygments
redis       http://blog.csdn.net/hexudong08/article/details/7561904
mongodb      http://blog.csdn.net/hexudong08/article/detail...
安装easy_install
下载 egg 文件
http://pypi.python.org/pypi/setuptools#files
下载以后运行
sudo sh setupxxxxx
参考:http://pypi.python.org/pypi/setuptools#cygwin-mac-os-x-linux-other
 安装 pygments
easy_install...
本文的例子参考 The Cucumber Book
以前一直做单元测试,虽然不够彻底,但是一直有些坚持。在实践单元测试的过程中,总是会有一种感觉,无法从需要和总体上做程序,流程总是不顺畅。也许是我实践的办法不对吧。总是无法将测试驱动开发进行到底。在追赶的项目进度面前,早点搞定,成了我的座右铭。但是项目快结束后,看着自己的代码,我总有一种欲哭无泪的感觉,总想重构代码。但不敢下手,也无从下手。谁...
& add by me
set dictionary+=/usr/share/dict/words
set isk+=-
ctrl+x+k  能自动提示补全单词
增加语言支持ruby, html, css, php 等
if has(&autocmd&)
filetype plugin indent on
ctrl+x+o  能提示补全代码,...
1, 运行如下命令
sudo apt-key adv --keyserver
--recv 7F0CEB10
2, 新建如下文件
sudo vim /etc/apt/sources.list.d/10gen.list
写入如下代码
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstar...
1, /josevalim/rails-footnotes
rails-footnotes 是开发必加套件啊
非常的强大,可以显示出 完整的 controller , sessions, cookie等信息,对于开发来说,不可多的
安装特别简单
group :development do
gem 'rails-footnotes'...
非常强大。可以非常容易的查看源代码和debug
以前一直使用ruby-debug,现在有了pry更为方便了。
如下是几个常用的命令
cd Article
ls Array -M
show-doc Article...
写api接口的时候,nginx默认会返回chunked编码的html数据。抓包后,会出现额外的字符串。
问题是这样的
我写了一个api接口,如 /api/upload.json ,用于上传文件
上传文件成功后,我会返回一个json字符串,提示上传成功。字符串的形式如下:
{&token&:&3985qh1qer4yn&,&url&:&http://xxxxxxx:port/39...
/collectiveidea/awesome_nested_set
修改Gemfile
gem 'awesome_nested_set'
1, 生成对应的文件
rails g scaffold category name:string parent_id:integer lft:integer rgt:integer depth...
1, 安装apach2
sudo apt-get install apache2
2,  安装php5解释器
sudo apt-get install php5
3, 安装php5-mysql, php4-gd
sudo apt-get install php5-mysql
sudo apt-get install php5-gd
4,   安装phpmyadmi...
1, 查找指定目录下的文件,并且替换文件中的字符串。
sed -i &s/zhangsan/lisi/g& `grep zhangsan -rl .`
-i 表示 修改文件
&s/zhangsan/lisi/g& 类似于vim的正则匹配g 表示全局替换
grep 是查找命令
-rl  r表示递归 l  表示输出文件名
2, 删除文件夹下的所有svn目录
find . -t...
总是提示我:
Start moving any remaining Rails 2.3-style vendor/plugins/*. These are finally deprecated!
解决办法:
以mobile-fu 为例
1, 将vender/plugins/mobile-fu 移到 lib目录下
mv vender/plugins/mobile-fu
rvm  SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
echo insecure && ~/.curlrc
curl -L https://get.rvm.io | bash -s stable
rvm is not a function 的错误
安装rvm成功,rvm -v...
有两个办法
第一, 使用linux的split命令,分割文件,然后在逐个读取文件
#first cut file into 50k byte (51200) slice, then send each slice using resume
# we accept file max size 500M now. should we support larger file, c...
非常强大,这个可以有。地址如下, 其他的不多说了。 谁用谁知道。呵呵
/cherrytree/...
ActiveSupport::Concern 用于模块的引用,具体有两个应用:
  简化 self.included 方法
  用于模块之间方法的相互调用
1, 简化 self.included 方法
def self.included(base)
base.class_eval do
def self.method_m...
网页的长度等于整个屏幕,手动不能使网页左右滑动
然后,设置每个div的宽度不能超过 98%, width 我一般 设置是 320px
隐藏地址栏目
var hideUrlBar = function(){if (window.pageYOffset &= 0){window.scrollTo(0,1);}};
window.addE...
ActiveRecord 的 connection_poll 使用了 Monit
      class Reaper
attr_reader :pool, :frequency
def initialize(pool, frequency)
@frequency = frequency...
具体的功能要求是这样的:
有一个div块,应该随着鼠标向下拉,向下
#floating-box{
margin-left:720
margin-right:10
z-index:1;
//avoid conflict with other...
在实际的项目中,经常会遇到这种情况
每隔一段时间,遍历某个Model表,并修改对应的数据。经常使用的代码是
Model.all.each do |obj|
obj.do_something
这段代码的意思是,将所有的数据一次性加载到内存中处理。但是当我们的Model中table数据过多时,会引起程序崩溃。所以,find_each 方法应运而生。
find_each方法,是一...
问题描述:
输入 一个字符串,如 &THis is my string.&
应该返回 “4 2 2 7”
问题解答:
方法就不写了,只写出最关键的几段代码
最常用的是
str.split(& &).map { |s| s.length }.join & &
str.split.map(&:length).join ' '
str.gsub /\S+/...
修改Gemfile
group :assets do
gem 'sass-rails' # if running rails 3.1 or greater
gem 'compass-rails', '1.0.1'
bundle install
bundle exec compass init --using blueprint
修改application.css...
/janl/mustache.js
开发网站的过程中,经常需要生成动态的html代码。mustache.js非常的强大,很合适这类需求。
使用特别简单
var view = {
title: &Joe&,
calc: function () {
return 2 + 4;
var output = Must...
用户认证是一个整体的模块,如何快速集成devise,能极高的提高我们的程序开发速度。
 Gemfile
gem &devise&, '2.1.0'
bundle install
rails generate devise:install
安装提示,写入相应的代码
rails generate devise  user
rake db:migrate...
我做了一些修改,支持 ucweb, ucweb7, qq的识别
/chucai/mobile-fu
原项目地址:
/brendanlim/mobile-fu...
前一篇文章,简单的介绍了faye push js到web端执行的情况,但是大部分的场景,faye都是push json 数据到client比较合适。比如与Android, IPhone等手机客户端通信,JSON数据能合适更多情况。
如下,是我写的一个Faye Push JSON数据到客户端的类
#提供faye server的服务,发送消息, 生成频道
module FayeSe...
meta http-equiv='refresh' content='5;url=/vod/27f6facdd3bdf?referer='/&
qik的手机页面刷新办法
Rails 中获取 Location的方法
response.location...
我做了一些修改,以支持中文,地址如下
/chucai/feedback_popup
该gem主要用于收集用户的反馈...
feedback_popup:
title: &意见反馈&
send_button: &提交&
message_sent: &谢谢!&
subject: &意见反馈的消息&
activemodel:
feedback_popup/message: '消息'
attributes:...
如下,是我的一段操作代码,可以供以后查看命令
git branch
git branch hello
git checkout hello
... #write some code
git status
git commit -m &来自hello的修改&
git checkout master #change branch
git merge hello
git push...
gem install thin运行:
thin start 测试是否能运行
生成配置文件
thin config -C myapp.yml -s3 -p 3000
thin start -C myapp.yml
配置nginx.conf文件
upstream mongrel {
server 127.0.0.1:3001;
intstall as plugin:
ruby script/plugin install git:///dchelimsky/rspec.git -r 'refs/tags/1.2.9'
ruby script/plugin install git:///dchelimsky/rspec-rails.git -r 'refs/tags/1.2.9'
具体需求是这样的:
字符串 cmd = &ls ? grep ?&  这是一个shell命令,最后需要执行(system cmd), 先需要替换?为具体的值
有很多的办法,参考一下rails的conditions 实现的办法
/rails/rails/blob/ceb33fb61aac62e5e71fd087ab65ed/activ...
PIDFILE=./resque.pid QUEUE=file_serve rake environment resque:work
railscasts视频
/episodes/271-resque?autoplay=true
/defunkt/resque
gem 're...
上文中提到了 nginx upload module的安装方法,http://blog.csdn.net/hexudong08/article/details/7575545
关于nginx upload module协议的两个重要地方:
http://www.grid.net.ru/nginx/upload.en.html
http://www.grid.net.ru/nginx/resu...
项目地址: /jnicklas/carrierwave
gem 'carrierwave', &0.6.2&
bundle install
rails generate uploader Video
生成uploader文件
如果需要处理图片,可增加Minimagick gem
gem 'mini_magick', &3.3&...
1,  下载nginx
wget http://nginx.org/download/nginx-1.3.0.tar.gz
2, 下载nginx upload module模块
wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.2.0.tar.gz解压
安装之前,也许需要安装 pcre
redis 是非常强大的key-value数据库,性能特别高,适合大规模数据处理。不过,据说其数据存在在内存中,所以,还是尽量的少放些数据到其中吧。最好只放一个id号。
下载安装redis
http://redis.io/download
安装命令,大同小异
curl -O /files/redis-2.2.2.tar.gz...
cancan是一款rails的权限认证gem,非常的强大和灵活。权限可以定义在代码中,也可以定义到数据库中。 与分级插件awesome_nested_set配合能完成非常复杂的用户权限控制。
 安装
config.gem &cancan&
gem 'cancan'
生成验证文件
rails2 需要自己增加
app/model/ability.rb...
如何做一个无限循环,直到指定的条件满足,才就行其他的操作。问题的具体描述是这样的:现在需要判断一个文件是否存在,知道文件,才就行一些操作。
Thread.new {
until File.exist?(File.join(Rails.root, &public&, &video&, pre_img))
sleep 1...
真实情况是这样的:
我有一个多态类  Channel, 定义如下
belongs_to :channelable, :polymorphic =& true
然后有3个类: User, Activity,  Video 均会引用  channel, 其中 Video的定义如下:
has_one :channel, :as =& :channelable
使用   channel....
1, 一种方案
构造form表单, 这个很典型,不过会有些小问题。
2, base64编码
参考如下的类
class Album
has_attached_file :cover_image, :storage =& :s3
attr_accessor :cover_image_data
before_validation :decode_cover_image_dat...
配置文件非常重要,很多参数都需要写在配置里面,这样,以后修改比较容易,而且不会污染代码。
比较常见的定义是
development:
可以重用的定义形式
defaults: &defaults
host: '127.0.0.1'
port: 6379
redis_search_nam...
每次都需要输入服务器密码,挺麻烦的。现在配置一下,即可实现不需要输入密码就可登录。
感谢ruby-china.org热心的兄弟们~
1, client端
1.1 生成id_isa.pub文件
ssh-keygen -t rsa
1.2 将id_rsa.pub上传到服务器上
scp .ssh/id_rsa.pub remote:/path/
2, 服务器端配置
script/plugin install
/jackdempsey/acts_as_commentable.git -r 2.x...
有这样的一个需求:
需要取得网站所有的在线用户的session, 并且能通过session_id 找到对应的用户
  session保存到数据库中
修改配置文件
config.action_controller.session_store = :active_record_store运行
rake db:sessions:create
如何从数据库中取得session,并...
事情白板,能让我们把事情列在上面,并分为三个部分:将要做的,正在做的,已经完成的
GTD和番茄时间管理方法...
/scaling-rails
如下代码可以生成嵌套resources,但是不是很好
ruby script/generate scaffold post title:string doc:text
ruby script/generate scaffold comment post:references doc:text
Map.resources :posts :has_many=&:comments...
参考如下文章做了一片,挺好的,此处做个备份。
http://ruby-china.org/topics/2990
  init project
rails new appname --skip-test-unit --skip-bundle
update Gemfile
source 'http://ruby.taobao.org/'
gem 'rails', '3.2.3'...
修改devise.rb文件
config.authentication_keys = [ :phone ]
修改user.rb , 注释掉
:validatable
devise :registerable, :database_authenticatable, :recoverable,
:rememberable, :trackable #, :valid...
直接看代码吧
config.threadsafe!...
为了使开发更简单,使用web service 与 rails 通信,详见如下:
   gem url
/paulasmuth/openfire_api
gem &openfire_api&, :git =& &git:///paulasmuth/openfire_api.git&gem说明提供的不对,需使用...
也就是服务器端的开发,扩展的协议,需要在服务器端处理。比如送礼物的协议,需要保存用户发送礼物的记录,并且判断用户是否有足够的礼物发送。部分代码记录如下。
扩展IQHandler的模板
package com.xxxx.openfire.
import java.awt.TrayIcon.MessageT
import org.jivesoftware.ope...
好吧,因为要测试,所以,需要用xmpp4r写一些测试代码, 也能更深入的了解xmpp的协议
1, 如何加入一个群组
       xmpp4r 群组定义的类是 MUCClient.rb,位于 'xmpp4r/muc/helper/mucclient'  当然,它的子类 simplemuclient更强大,可以使用它。
      1.1 先连接xmpp server...
Openfire插件开发环境已经搭建起来了,现在开始开发了。
技术:xmpp4r, java, openfire, xmpp,jabber
需求定义:
1,用户注册的时候,需要定义一些新的字段: age, gender, mood等
2,用户可以修改个人的信息和心情(mood)
3,用户可以给指定的用户发送礼物
开发过程:
xmpp的关键节点
presence: 控制...
开发环境准备
1,下载eclipse javaee 3.7
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/SR2/eclipse-jee-indigo-SR2-linux-gtk.tar.gz
2,  安装svn for eclipse
这几天一直在看candy的代码,因为我们有一个项目需要基于xmpp。candy是现成的可以运行的程序,所以,基于candy上的开发可以省下前期不少的工作。但正因为如此,后期的工作会特别的繁重。因为,不但需要懂xmpp,而且还必须动candy,这两天我研究了一些candy的代码,记录如下。
 candy如何取得当前当前的房间
Candy.View.getCurrent().roomJ...
需要跟他们的客服联系
转换页面是:
/wiki/static/map/API/examples/?v=1.2&0_6#0&6...
推荐使用taobao_fu的sdk
地址如下:
/why404/taobao_fu
我 fork的地址是
/chucai/taobao_fu
但是无法直接使用,现在我总结一下我修改的地方。
1, for rails2.3.8
修改lib/rest.rb文件
require 'net/http'...
关于jsjas的配置网上的资料并不多,我在配置jajac的过程中,总是提示如下错误:
Type: cancel
Condition: service-unavailable
后来终于解决了,这是关于 nginx 的问题proxy代理设置有问题, 先将测试流程记录如下:
安装openfire
http://blog.csdn.net/hexudong08/ar...
直播系统之实时实现方案
  技术
    Juggernaut
      /maccman/juggernaut
      使用node技术
      实时服务器
    redis
      数据存储服务器
      操作
        启动: src/redis-server
        客户端: src/redis-cli...
xmpp4r实现了xmpp协议,使rails与openfire通信成为可能。废话不多少,看代码吧。
安装xmpp4r
gem install xmpp4r
# -*- encoding : utf-8 -*-
#该程序主要是向openfire发送信息
#用户已经在openfire注册了,测试帐号是:tester001,密码是123456
#接受信息帐号:tester002...
Could not find a JavaScript runtime
需要安装nodejs
sudo apt-get install nodejs...
简单的介绍
rails 的cms,不支持ie6, 其他的都挺好的
基于cms开发网站,能极大的提高效率,所以,我想研究一下。目前还在研究阶段,其他的cms都得看一看。
安装refinerycms gem install refinerycms
refinerycms使用了一些非常优秀的gem ,如下是一个参考列表
Successfully installed acts_as_in...
工作需要,搭建一个openfire的服务器,非常简单,先将步骤记录如下。我使用的是ubuntu 11.04
项目首页:http://www.igniterealtime.org
  下载
选择自己需要的平台下载
http://www.igniterealtime.org/downloads/index.jsp
下载openfire 和 sparkweb
源代码下载如下:ht...
由于后台的m3u8文件,需要8秒后才生成,所以,我需要手机客户端在8秒后才执行如下函数
function generate_video_html(data){
var html = &&;
html += '';
html += '
html += '';
$(&.video_pane&).html(html);
$(&#tid&).val...
这几天,看了几页&,有些收获。书很薄,代码比较少,都是些代码片段。但都比较经典,各个方面都有涉及,尽管是点到即止。我现在先总结的东西放到blog里。
1, linux系统提供的time命令
time ruby -e '100_000.times {|i| i*i }'用来测试一条语句,挺管用的
2, benchmark
require 'benchmark'
有这样的一个需求:
需要从一个flv文件中,截取图片,不通过ffmpeg,而是需要用户通过web操作,就能截取。
jwplayer有一个plugin,可以实现该功能
注意:因为snapshot只支持5.2以下版本,所以,请不要使用过高的版本,如最新版本5.9
我所使用的是jwplayer 4.2
1,view 层代码如下...
参考使用  Octopress
地址是:  http://octopress.org...
1, 安装Mysql
yum install mysql
yum install mysql-devel
yum install mysql-server
2, 设置mysql
chgrp -R mysql /var/lib/mysql
chmod -R 770 /var/lib/mysql
service mysqld start
3, 安全设置命令
/usr/bin...
批量查询的问题
    friends = []
Network.transaction do
fids[&ids&].each do |fid|#所有跟随的用户的ID号
nw = Network.find_by_uuid(fid)
friends && nw.user if nw
end从数据库表中,取得...
RVM is not a function
rvm alias create default 1.9.2
source ~/.bash_profile
vim ~/.bash_profile
[[ -s &$HOME/.rvm/scripts/rvm& ]] && . &$HOME/.rvm/scripts/rvm& # Load RVM function
ruby 安...
如何通过日志文件分析出哪一个action使用的时间最多?
cat log/development.log | awk '/Completed/ { print &[& $3 &] - & $0 }' | sort -nr
如何过滤pasword, 适合rails 2.x
application_controller.rb
filter_parameter_logging :pass...
做好自己的web开发
关注产品和细节
做好与其他同事的工作协调和沟通,把握产品的研发进度和方向...
1, gzip压缩
gzip_min_length
gzip_buffers
gzip_types
text/javascript text/plain application/x-javascript text/css application/
2, 浏览器缓存
passenger_en...
我所使用的技术是: jquery mobile, jwplayer(因为需要播放视频文件)
需要做的页面分析:
1,一个视频的列表页面
2, 单个视频的播放页面
先准备一个固定的模板
酷拍手机视频聊天
酷拍手机视频聊天...
这个问题非常常见,我们经常需要将rails 中的数据传递到js变量中,然后在呈现在web页面上。前几天我就遇到了这个需求。
问题描述:我需要使用Hightcharts呈现数据,所以,我需要将数据存在在js的数组里。当时我的办法是
在application_helper.erb中新增如下方法
rarray_to_js(arr)
if arr.first.is_a? Integer...
新增render, application_helper.erb
class BootstrapLinkRenderer & ::WillPaginate::LinkRenderer
def initialize
#@gap_marker = @template.content_tag :li, @template.content_tag(:link(super, '#')), :c...
1, keywords, description要做好
2, 每个不同的页面,title要精确
3, 内容为王
4, img 的alt属性
5, 网站的加载速度和 js 的延时解析(应该将js文件放到最后)
6, 网站的连接最好不要带 ? 动态参数,可以是 /x/x/x
7, 需要做一个网站地图  /sitemap.xml
Js开发必备
icon下载网站
问题描述:
在使用google map2的时候,需要给一个display属性为none的div 初始化一个地图,但是这个地图无法居中,该如何做呢?
div的属性不要设置display为none, 应该使用如下的定义
left: -10000
要显示的时候,将left:0; 即可...
1, Could not find a JavaScript runtime. See /sstephenson/execjs for a list of available runtimes.
update Gemfile文件
gem 'execjs'
gem 'therubyracer'
bundle install
can't c...
首先,应该有一个好的服务器。这是根本要素。如果在这个基础上谈提升网页的加载速度应该如何做呢?
1,选取一款测试网页加载速度的工具
firefox 的插件 page speed
/intl/zh-CN/speed/page-speed/
2, 根据page speed的建议操作,如下是我的一些总结
2.1 首先做rails的页面缓存
monit是一款功能非常强大的服务器监控软件,如下是我实践部署的经验。
1, 下载软件,并安装
wget /monit/dist/monit-5.2.5.tar.gz
tar zxvf monit-5.2.5.tar.gz
./configure
make install
2, 查看Monit的程序路径
which  monit
1, 如何checkout heroku上的代码,修改并提交
git clone git://heroku的地址
git remote add heroku :newname.git
然后运行如下命令
git push heroku master
2, 使用heroku初始化项目的步骤
有一个gem可以给所有的文件加#encoding: utf-8
gem install magic_encodings
magic_encoding...
/players/将jwplayer.js 和 player.swf 文件复制到 public 目录下
cp jwplayer.js to  javascripts/
cp player.swf to  public/jwplayer
code  加载jwplayer文件
简单的启动代码如下
jwplayer(&co...
1, 下载node.js
wget http://nodejs.org/dist/v0.6.7/node-v0.6.7.tar.gz
2, install nodejs
make install
查看是否安装成功
3, install coffeescript
npm install -g coffee-script...
这篇可以说是我做的一个笔记,原文如下。
.cn/article/details/918
第一,资源载入和双缓存的问题
我们一般写画图的代码:
var ctx = mycanvas.getContext('2d');
var img = new image();
img.src=”1.png”;
ctx.drawImage(img);在实际应用...
接着上一篇文章来
http://blog.csdn.net/hexudong08/article/details/7205728
现在图片能够轮换,现在我想对图片加些特效,该怎么办呢?
特效需要使用jquery 的animate方法
具体参考:
.cn/jquery/effect_animate.asp
接着写代码
问题:如何实现图片的轮换效果?如 首页的图片轮换
问题解答:
1, 先准备dom结构
用一个div#imgPlay包着ul,并且固定div的高度和宽度,设置overflow:这样,下面的ul就通过轮换来显示效果。
2,css样式
div#imgPlay{width:707overf...
在IE9下,使用jquery的dialog,弹出框无法居中,总是偏向右边, left = 0
问题解决:
这不是jquery 的bug,是因为css引起的。 如下css会引起该问题。
padding: 0;
debug jquery ui 的时候,有一部分代码
判断元素是否可见
压力测试工具  
http://home.tiscali.cz/~cz210552/webbench.html  
可以参考的文档: /post/288/...
1,如何深度复制一个对象?
def self.copy_object(object)
    Marshal.load(Marshal.dump(object))
  end
2, faye如何查看定义日志级别
faye开发的时候,需要查看faye的日志,通过看它的源文件,我们可以定义faye的日志级别
/faye/faye/blob/mas...
使用如下命令:
tcpdump tcp port 80 -s 256 -w /root/upload_file.pcap
如何查看flv文件的基本信息
ffprobe   filename
查看文件的基本信息
查看history 命令
svn 设置ignore目录和文件 【忽略tmp 和 tmp...
如何绑定 live 和 toggle 方法
无法直接使用,只能使用   $(yourhtml).is(&:visiable&)  来判断,如下是我的一个程序的一部分代码
//get comments for video
$(&.message_list&).live(&click&, function(){
var vid = $(this).attr(&ref&);...
不能存在两处或以上一样代码的地方,所以,如果你在copy代码,请重构 方法不能太长(超过10行?),一个方法,只能干一件事情 对象和类不能太大(属性可以重构到一个类中?方法可以重构到其他类或对象中?)方法参数太多(Shotgun surgery) 需要修改很多代码,才能完成一次小的功能修改
(Divergent change)一处代码修改,引起很多出代码需要修改(feature envy)功能或...
rails 性能调优记录,主要涉及如下几个方面:1, 如何测试性能,基准测试  等工具;2,rails应用程序的性能调优;3,web前端的性能优化;4,其他(如服务器优化,数据库优化,硬件等)
性能测试工具
1.1 Benchmark 和 Profile工具
rails自带的测试工具
1.2 query_reviewer
/nesque...
taobao rubygems 镜像
http://ruby.taobao.org/
ruby的gems库中心
http://rubygems.org/
rails视频学习中心
不错的railser的blog
http://hisea.me/
/jquery/cycle/
/s3slider/demonstration.html
http://tympanus.net/Tutorials/PhotoStack/
/danielstocks/jQuery-Placeholder   实现了placeh...
这几天一直在做jquery validate的前端验证,现做一下小小的总结。
项目地址:
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
全部代码如下:
$(&form&).validate({
&user[password]&:{
问题描述:
在构建数据库的时候,应该注意的问题
问题解答:
1, 数据库表应该添加 index 索引 , 并且要限制索引的length , 如下:
add_index :channels, :token, :length =& 10
2, 在model层中,不需要查数据库,尽量不要查数据库,比如有如下一种情况:
用户不管登录与否,都能发表评论。 在comment表里有一个...
问题描述:
comments 是一个集合,有多个comment, 在视图层渲染的时候,我把单个的评论放在一个view里面,起名为 _comment_li.html.erb
view层代码如下:
comment %&
系统所用的渲染时间为
如何减少渲染时间?
问题解决:
将comment_li中的代码移到 主页面出,不要使用:partia...
现象描述:
现在我有三个对象:channel(频道) 1 -&  video(视频) 1 -& comment(评论)N -& user, 给你一个关于channel的token字段的值,请用最少次数的查询查出于token对应的channel频道
的所有video 和 comment 
涉及四个model,如何用最优的查询方案查出结果。 因为comment实在太多了,所以,...
提示信息需要统一(错误, 通知等)
 流程上,同一个场景,应该有相同的结果
 操作次序应该不能影响结果
 断网环境下的测试和使用
 空间不足的情况的测试
 有无SD卡的情况的测试
 不同网络环境下的测试(3G,wifi,cdma, wcdma2000等)
用户使用流程和体验的测试
可用性测试
安全测试...
最近几天一直在整合代码,让我感觉闷得慌。尤其是整合前端css的代码和js代码,感觉很难受。这能算产品代码么?但又感到力不从心。项目有进度,人员水平参差不齐,命名千奇百怪。看这样的代码,真是一种受罪。为了解决这个问题,我务必将代码规范化和自动化。先记录如下
 css 代码标准和命名规范javascript代码标准和命名规范ruby 代码标准和命名规范
参考资料如下
如题, 这里要记录的是 使用 gem 开发index
/eladmeidar/rails_indexes
 installscript/plugin install git:///eladmeidar/rails_indexes.git
rake db:index_migration
ruby script...
元编程是动态语言特别重要的特性之一。掌握元编程很重要,这样能写出非常优雅的代码,也是理解很多架构的基础。ruby的元编程能力很强。此处我做一个小小的记录。以后会慢慢的补充更多。
Object 和 Class
如何给一个已经定义了得Class增加方法
class String
def to_alphanumeric
gsub /[^\w\s]/, ''
require,load用于包含文件;include,extend则用于包含模块
require加载文件一次,load加载文件多次
require加载文件时可以不加后缀名,load加载文件时必须加后缀名
require一般情况下用于加载库文件,而load用于加载配置文件
ruby 只支持单层继承,但可以通过max-in模块来实现类似于多层继承的功能
ruby可以给具体实力对象添加方法,我...
帖子地址:/topic/1118420
简要说明一下,就是写一个javascript的方法(扩展Array的方法),用于消除array的重复元素
一般方法,复杂度为o(n^2)
Array.prototype.distinct = function() {
var ret = [];
for (va...
相关文章:  
rails开发利器之插件开发-migrations
http://blog.csdn.net/hexudong08/article/details/7023990
详细记录generator的开发流程
1,查看所有的generator
ruby script/generator2,generator的一般文件结构
generators
--gener...
 css滑动门
1.1 构造两个元素(如a, span ), 其中一个元素包含另外一个元素
测试1.2 定义a , span 的样式,背景图片, 并使用伪类 hover a{
background: url(&img_url&) no-repeat scroll lef
color: #666666;
cursor: po...
代码重构是一项非常重要的工作。 要想提高水平,先重构代码。不然,我们只是一直在重复开发一些简单逻辑的代码。真正的程序员,需要不断的提高自己的代码质量,提升开发的效率和速度。否则,不这样做的话,就会成为“码农”。所以,我最近一年的工作计划是:1,提升开发效率;2,提高代码质量。
    
       提升开发效率的办法是将我开发的项目中一些比较核心的代码重构成插件,以后开发的时候,直接可以拿...
我需要新建如下几张表:
video , channel, flow_media, soft_version
新建表的migration应该集成到插件中
新建generators 和 文件夹
generators
--diaoduapi
   --templates
      --migration.rb
   --diaoduapi_generator.rb
需要为model层建立acts_as的扩展,这样,就能将代码脱离单个的model(如user)限制,在不同的Model中可以重用。我遇到的情况是,我有一个user的model,里面有很多关于流媒体服务器的方法(类方法和对象方法),我现在需要将其独立成一个acts_as_xxxx, 然后放入user model中
新建lib/diaoduapi/acts_as_flow.rb文件,...
有好的产品,好的技术,没有市场,是空中楼阁。创业不是做慈善,也不是做项目,而是为了满足用户的需求。市场是由用户构成的。市场往往是一个概括性的词语,我以前理解的很虚。但是你要想生存,要想创业成功,不能理解成虚的。它是实实在在存在的实体。但是你看不见,摸不着。怎么办?该如何做市场呢?
        连接市场与产品的桥梁就是渠道!甚至可以说,市场就是渠道。
        我们公司的产品主要是面向...
新建route.rb文件
lib/flowmediaserver/routing.rb
并将routing.rb加入lib库中
require &flowmediaserver/routing&增加Module
module Flowmediaserver #nodoc
  module Routing #nodoc
    module MapperExtensions...
Purpose: 为苹果的app - push message . 使用苹果的 push 服务器
rails 的插件:apple_push_notification
URL: /samsoffes/apple_push_notification
install plugin apple_push_notification
script/plugin...
如何判断flash的版本
var flashVersion = swfobject.getFlashPlayerVersion();
var flash_file = &vchat.swf&;
if(flashVersion['major'] & 10 || (flashVersion['major'] & 9 && flashVersion['minor'] & 2) ){...
一直使用linux默认的vim编辑器,感觉使用起来不是很流畅。今天打算弄一弄vim编辑器与ruby整合的事情,提高开发效率。网上找了资料,但都不是很好。现在总结在这里,希望能一次完全的成功。 my vim version :  vim 7.0 
vimrc的配置问题 vim ~/.vimrc
& Source the vimrc fil...
以后开发一定要测试先行!坚持TDD和BDD开发方法,不能贪容易,贪快。
后期代码的维护和测试,升级,都需要依赖Test Case!
不测试,不编程!...
exception_notification
rails 2.3.8 /smartinez87/exception_notification/tree/2-3-stable
rails 3 /rails/exception_notification
 install plugin
ruby script/p...
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address =& &&,
:port =& 587,
:authentication =& :plain,
:enable_starttls_auto =& true,...
rails3, jquery, faye,jquery-rails, nofity-generator
/jcoglan/faye
/episodes/260-messaging-with-faye
function getAddress(){
geocoder = new GClientGeocoder();
geocoder.getLocations(latlng, showAddress);
function showAddress(response){
if (!response || response.Status.code != 200) {...
安装git略cd ~/.ssh备份以前的ssh key
mkdir key_backup
cp id_rsa* key_backup
rm id_rsa*生成新的ssh key
ssh-keygen -t rsa -C &your_&将ssh key 加入
On the GitHub site Click “Account...
For: rails2.3.8  
因为我的项目是基于rails2.3.8的,以后在做rails3.0的plugin的名称是 video_player, 新建plugin
script/generate plugin video_player --with-generator
重新组织我的文件目录
新建video_player和rails文件夹,新建rails/init.rb...
will_paginate
Fuction: 
代码如下:
open_flash_chart
URL: /pullmonkey/open_flash_chart
DEMO:/projects/open_flash_chart2/
Fuction: 能非常的...
访问:114017次
积分:3137
积分:3137
排名:第3977名
原创:189篇
评论:33条
阅读:4078
(2)(3)(2)(1)(3)(1)(2)(1)(2)(1)(6)(1)(11)(15)(14)(23)(26)(7)(14)(15)(8)(19)(15)}

我要回帖

更多关于 系统部署文档 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信