<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d4684235500622716427\x26blogName\x3dCaiwangqin\x27s+blog\x26publishMode\x3dPUBLISH_MODE_HOSTED\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttp://blog.caiwangqin.com/search\x26blogLocale\x3dzh_CN\x26v\x3d2\x26homepageUrl\x3dhttp://blog.caiwangqin.com/\x26vt\x3d3393395200455623441', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

Caiwangqin's blog

Focus on Life, Cloud Service, Smart Hardware, Architecture, Technic and beyond…

ROR初学者培训活动

2007年7月30日星期一

ROR初学者培训活动已于昨天举行了一期, 我因事没有参去, 看到了活动照片资料整理.组织者和讲师很认真, 希望学习ROR的朋友可以参与, 这篇BLOG是对活动的广告.



先来段广告词煽煸情
——————————–


你想…
掌握时下流行的新技术
做网站创业,实现财务自由
重拾编码的乐趣
为将来找一份好的工作而准备


但是…
没时间看书
经验少,看书理解太费力
自己学要走很多弯路,费精力、不系统、也不能坚持下来
还想得到一线资深人士的经验


号外,号外~


拟计划在北京组织一个针对ror初学者的培训,由于每个人的基础和期望不同,下面是活动提案和学员调查表,请大家积极参与意见。我们会综合大家的意见和情况,尽快确认时间地点,启动这一计划。


最新战况:已有几位资深人士(十分)乐于承当讲师。也有数位初学的朋友对这个培训计划表现了浓厚的兴趣。


注意:在北京举办


背景:ruby/ror这门优秀的技术,经过社区和先行者们的努力,在国内迅速升温。同时,一大批做其它技术的软件工程师,或刚进入软件行业的人,急切期望能快速掌握这个东西。
目标:希望拉到一些技术先行者,面向ruby/ror初学者,定期举行内容有规划的基础知识培训,为该技术深入普及创造环境。长期来看,可以组织其它活动,如发起开源项目等。
形式:讲师教授学员式为主,大家讨论交流式为辅。
面向人群:依赖调查结果。初步定在ruby/ror学习经验小于3个月者。
课题内容:依赖调查结果。提议以rails为主线,普及ruby/rails的基础知识,穿插小范围的专题和基础性的实践。
时间:依赖调查结果。提议每周六下午,三四个小时。
地点:北京投影等设备齐全的咖啡厅(会馆、展馆或高校教室等),每次具体地点依调查结果和组织者预约而定
人数:依赖调查结果。提议最多30(也是待议的,面向小众还是大众等全部待议)


组织结构:核心成员、学员,统称成员。
成员权责
核心成员中的组织者:为保证活动正常进行,在网络上积极组织、管理活动。义工。现场举行活动时,设立一名主持人,并负责杂务。
核心成员中的讲师:提前备课,准备PPT、范例,自带笔记本等设施。
学员:在每次活动发布后的指定网址报名,听课,支付约定的费用。


核心成员变迁:
核心成员采用推荐制,所有关注这个活动的人均可推荐人来。核心团队成员在网上公布。


活动官方地址:
http://groups.google.com/group/ror-training
所有报名、文件共享、讨论、信息公布、调查都在这个上面。
QQ讨论群:ROR自发组织培训(群号 8463282)


收费方式和标准(依赖调查结果):
提议:每次人到场时签到,培训结束时按签到名单进行收费,交付费用的包括到场的每个人,除本次主持人和参与授课的讲师外。
费用包括两部份:成本费 + 活动经费。成本费指场地费、租用设备费、饮品费等。活动经费指为激励讲师及组织者而设立的小额补贴。
每次交费前,主持人通报大家应收每人多少成本费。活动经费按事先约定的金额收(这个标准依赖调查结果),试行阶段按每人20元(算一算跟没收差不多了),正式阶段可能适度调高或调低这个数字。
因此,最终每人每次需交纳: 全部必须费用/人数 + 活动经费。


流程:
* 核心成员约好讲师、预定场地
* 通报活动,包括时间、地点、主持人、讲师及课程概要。
* 网上报名登记
* 举行活动
* 签到
* 讲师授课、讨论
* 活动结束,主持人收银子
* 核心成员对讲义等进行整理,发布在网上,管理技术讨论等活动


———————————————-
一点解释:活动经费的提出,是为了给讲师和组织者一点补贴,以产生一定的激励作用,使活动能持续开展下去。学员和讲师们的热情都很高,但讲师事前事后要做大量的工作,没有物质上激励性措施,很难平衡这种付出而使活动长期办下去。
当然,活动经费不会太多,所以大家对培训的质量和内容都有绝对的发言权,但不要太苛求其水准和适应每个人的程度。
一位资深人士说,没有报酬,我也很乐意分享在工作中的经验和知识,结识大家。如果钱很多,就意味着责任很大。 如果钱少,就意味着可以轻松一些。
但是如果想做成一个长期的business的话,可能需要考虑的东西会很多。这也道出了我的心声。希望大家理解,提出你的看法和期望。


—————————————————-


再次说明:
http://groups.google.com/group/ror-training


联系人 刘松
电话: 13269332210,可直接电话或短信联系我
email/gtalk : liusong1111@gmail.com
msn: liusong1111@hotmail.com



网上报名地址:
http://www.oecac.com






标签:

posted by Caiwangqin, 01:27 | Permalink | 0 comments |

北京理工大学Ruby on Rails讲座后记

2007年7月25日星期三

今天上午到北京理工大学做了一次Working with Rails讲座,教室很大,学生们坐的稀里哗啦的,我从讲台上面看没几个人,据他们统计有50多个。


可能是听讲已经听得麻木了,没有人主动提问,坐前排的学生还不错。这一批是大三的学生,我提了几个问题,其中有3人使用过Linux, 2人知道Rails, 1人听说过Web 2.0.


分享几张照片:


P7250008 P7250003


P7250004 P7250002


P7250001 P7250005


标签:

posted by Caiwangqin, 07:16 | Permalink | 0 comments |

Presentation of Working with Rails

2007年7月24日星期二

posted by Caiwangqin, 15:10 | Permalink | 0 comments |

测试 ScribeFire


看到石头写了一篇BLOG ScribeFire Sucks?,想起我也是在这个软件叫Performanceing的时候使用过,后来换了Zoundry,感觉这个软件的界面太丑,忍了一段时间后出现了Windows Live Writer, 一直都很喜欢,重新安装系统后,安装Windows Live Writer时说要提前安装.Net Framework,于是放弃了Writer又使用Zoundry.


现在测试 ScribeFire, 感觉ScribeFire这个聚积蟹式的软件界面比以前好看了很多了 :)



Powered by ScribeFire.


标签:

posted by Caiwangqin, 01:03 | Permalink | 0 comments |

QQ原来是这样被盗的

2007年7月23日星期一

在网络上混久了,经常可以看到一些骗财骗色的事。其实很多时候强盗的技术手段并不是很高明,比如刚才我遇到的一个骗局,就是直接问你要密码,看你给不给。


有些私人的东西,比如网上密码,银行密码什么的,是不能告诉别人的,即使他/她在你面前。更何况你根本不知道和你聊天的是谁?



标签:

posted by Caiwangqin, 11:53 | Permalink | 0 comments |

为find_by_sql增加paginate功能

2007年7月13日星期五

在RubyonRails编程时,很多时候为find_by_sql增加paginate功能显得很有用,BOGLE已经实现了一个无关数据库的paginate_by_sql for Rails, 试用后感觉不错。代码如下:



# paginate by sql
# added support for sql with arguments
# added a :count option for passing in either a Integer count
# or count query.
module ActiveRecord
class Base
def self.find_by_sql_with_limit(sql, offset, limit)
sql = sanitize_sql(sql)
add_limit!(sql, {:limit => limit, :o ffset => offset})
find_by_sql(sql)
end

def self.count_by_sql_wrapping_select_query(sql)
sql = sanitize_sql(sql)
count_by_sql(”select count(*) from (#{sql})”)
end
end
end

class ApplicationController < ActionController::Base
def paginate_by_sql(model, sql, per_page, options={})
if options[:count]
if options[:count].is_a? Integer
total = options[:count]
else
total = model.count_by_sql(options[:count])
end
else
total = model.count_by_sql_wrapping_select_query(sql)
end

object_pages = Paginator.new self, total, per_page,
@params[’page’]
objects = model.find_by_sql_with_limit(sql,
object_pages.current.to_sql[1], per_page)
return [object_pages, objects]
end
end



在Controller中的使用如下:



sql = "select j.id, j.name,c.name as company_name from jobs j
inner join companies on j.company_id=c.id
order by j.activated_date DESC”
@job_pages, @jobs = paginate_by_sql Job, sql, 20

在View中使用如下:



<%= pagination_links @job_pages %>
<% for job in jobs %>
<%= job.name %> <%= job.company_name %> <br>
<% end %>






Del.icio.us :


标签:

posted by Caiwangqin, 13:04 | Permalink | 0 comments |