<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>我是打短工</title>
    <description></description>
    <link>http://tmj.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>ROR with Lighttpd+SCGI on Windows(转)</title>
        <author>tmj</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://tmj.javaeye.com">tmj</a>&nbsp;
          链接：<a href="http://tmj.javaeye.com/blog/174174" style="color:red;">http://tmj.javaeye.com/blog/174174</a>&nbsp;
          发表时间: 2006年12月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div style="FONT-SIZE: 12px">Lighttp+SCGI是相对古老的FastCGI一样高效但是配置更简单的Rails运行环境,最近才有win32下的预编译包。白老鼠试验中，我刚装好，分享一下：<br /><br /><strong>Step 1:</strong><br />下载安装<a href="http://www.wd-39.com.nyud.net:8090/misc/lighttpd-1.4.9b-win-setup.exe" target="_blank">Lighttpd for win32</a><br />这个现在只能装在c:\lighttpd下，目录路径现在不能改(罪恶的hardcode阿)<br />然后配置c:\lighttpd\etc\lighttpd.conf文件，这个有点烦。<br /><br />
<div class="msgheader">
<div class="right"><a href="http://www.rubychina.org/viewthread.php?tid=19#" class="smalltxt" onclick="copycode($('code0'));">[Copy to clipboard]</a></div>
CODE:</div>
<div class="msgborder" id="code0">server.modules&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= (<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; "mod_rewrite",<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; "mod_redirect",<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; "mod_access",<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; "mod_accesslog",<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; "mod_status",<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; "mod_scgi")</div>
<br />找到modules这段，默认只有mod_access和mod_accesslog,按上述增加其它模块。<br /><br />
<div class="msgheader">
<div class="right"><a href="http://www.rubychina.org/viewthread.php?tid=19#" class="smalltxt" onclick="copycode($('code1'));">[Copy to clipboard]</a></div>
CODE:</div>
<div class="msgborder" id="code1">server.document-root&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= "C:/RailsApp/public" <br />server.errorlog&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; = "C:/RailsApp/log/lighttpd-errors.log" <br />accesslog.filename&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; = "C:/RailsApp/log/lighttpd-access.log" </div>
<br />找到上述三行，按你自己的rails应用路径做相应更改<br /><br />
<div class="msgheader">
<div class="right"><a href="http://www.rubychina.org/viewthread.php?tid=19#" class="smalltxt" onclick="copycode($('code2'));">[Copy to clipboard]</a></div>
CODE:</div>
<div class="msgborder" id="code2">static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".scgi" )</div>
<br />找到这行，增加.scgi后缀处理<br /><br />
<div class="msgheader">
<div class="right"><a href="http://www.rubychina.org/viewthread.php?tid=19#" class="smalltxt" onclick="copycode($('code3'));">[Copy to clipboard]</a></div>
CODE:</div>
<div class="msgborder" id="code3">server.error-handler-404&nbsp; &nbsp;= "/dispatch.scgi" </div>
<br />增加这行，注意在你的应用public目录下并不需要实际建立dispatch.scgi这个文件。这个文件是虚拟的。<br /><br />
<div class="msgheader">
<div class="right"><a href="http://www.rubychina.org/viewthread.php?tid=19#" class="smalltxt" onclick="copycode($('code4'));">[Copy to clipboard]</a></div>
CODE:</div>
<div class="msgborder" id="code4">scgi.server = ( "dispatch.scgi" =&gt; (( <br />&nbsp;&nbsp;"host" =&gt; "127.0.0.1",<br />&nbsp;&nbsp;"port" =&gt; 9999,<br />&nbsp;&nbsp;"check-local" =&gt; "disable" <br />)) )<br />scgi.debug=0</div>
<br />增加以上scgi配置段落。<br /><br /><strong>Step 2: </strong><br />下载安装<a href="http://www.zedshaw.com/downloads/scgi_rails/scgi_rails-0.4.3.gem" target="_blank">SCGI Rails Runner</a><br />这个有两个依赖库可能需要安装：<br /><br />
<div class="msgheader">
<div class="right"><a href="http://www.rubychina.org/viewthread.php?tid=19#" class="smalltxt" onclick="copycode($('code5'));">[Copy to clipboard]</a></div>
CODE:</div>
<div class="msgborder" id="code5">gem install cmdparse<br />gem install highline</div>
<br />然后<br /><br />
<div class="msgheader">
<div class="right"><a href="http://www.rubychina.org/viewthread.php?tid=19#" class="smalltxt" onclick="copycode($('code6'));">[Copy to clipboard]</a></div>
CODE:</div>
<div class="msgborder" id="code6">gem install scgi_rails-0.4.3.gem</div>
<br /><strong>Step 3:</strong><br />配置SCGI:在console里切换当前路径到c:\railsapp（你自己的rails应用路径），执行<br /><br />
<div class="msgheader">
<div class="right"><a href="http://www.rubychina.org/viewthread.php?tid=19#" class="smalltxt" onclick="copycode($('code7'));">[Copy to clipboard]</a></div>
CODE:</div>
<div class="msgborder" id="code7">scgi_ctrl config -S</div>
<br />会提示你设置密码，（大概是为了用于通过Drb远程管理吧）<br />执行完毕会在你应用目录产生\config\scgi.yaml配置文件。注意默认是production环境，如果要运行在development环境，在其中修改:env:参数。不过development环境也许存在内存泄漏问题<img smilieid="2" src="http://www.rubychina.org/images/smilies/sad.gif" border="0" alt="" /><br /><br /><strong>Step 4:</strong><br />在Rails应用根目录下建立一个启动脚本run.bat,内容如下：<br /><br />
<div class="msgheader">
<div class="right"><a href="http://www.rubychina.org/viewthread.php?tid=19#" class="smalltxt" onclick="copycode($('code8'));">[Copy to clipboard]</a></div>
CODE:</div>
<div class="msgborder" id="code8">@echo off<br />c:<br />cd C:\lighttpd\sbin<br />echo Stopping lighty...<br />process.exe -k lighttpd.exe &gt; nul<br />echo Starting lighty...<br />lighttpd.exe -f ..\etc\lighttpd.conf<br />echo Stopping SCGI_service...<br />Process.exe -k ruby.exe &gt; nul<br />cd C:\railsapp<br />echo Starting SCGI_service...<br />scgi_service</div>
<br />当然，修改其中c:\railsapp为你自己的应用目录。<br /><br />好了，大功告成，运行run.bat吧，察看你的http://localhost吧<br /><br />如果想把这个设置成service方式可以用SRVANY，具体设置参见<a href="http://support.microsoft.com/kb/q137890/" target="_blank">这个地方</a>。同时需要修改注册表<br /><br />
<div class="msgheader">
<div class="right"><a href="http://www.rubychina.org/viewthread.php?tid=19#" class="smalltxt" onclick="copycode($('code9'));">[Copy to clipboard]</a></div>
CODE:</div>
<div class="msgborder" id="code9">HKLM\SYSTEM\CurrentControlSet\Services\RailsApp\Parameters\Application = c:\railsapp\run.bat</div>
<br />SCGI Rails Runner还有些别的运行和配置，参加其<a href="http://www.zedshaw.com/projects/scgi_rails/" target="_blank">主页和文档</a>。</div>

          <br/>
          <span style="color:red;">
            <a href="http://tmj.javaeye.com/blog/174174#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 14 Dec 2006 10:59:00 +0800</pubDate>
        <link>http://tmj.javaeye.com/blog/174174</link>
        <guid>http://tmj.javaeye.com/blog/174174</guid>
      </item>
      <item>
        <title>ROR 开发准备</title>
        <author>tmj</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://tmj.javaeye.com">tmj</a>&nbsp;
          链接：<a href="http://tmj.javaeye.com/blog/174175" style="color:red;">http://tmj.javaeye.com/blog/174175</a>&nbsp;
          发表时间: 2006年12月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br />运行环境：<br />&nbsp; 1. 安装Ruby: 从<a href="http://www.ruby-lang.org/en/">http://www.ruby-lang.org/en/</a>&nbsp;下载最新的安装文件包，目前的最新版本是1.8.5,没什么好说的，一&nbsp;&nbsp; 路OK就可以。在命令提示符中输入Ruby，如果输入Ruby 出现提示，则说明安装成功。<br />&nbsp; <br />&nbsp; 2.通过 RubyGems来安装Rails<br />&nbsp;&nbsp;&nbsp; 命令：gem install rails --includ-dependencies 如果碰到选择，选Y就可以。<br />&nbsp;&nbsp;&nbsp; gem update rails 更新Rails.如果安装失败，也可以直接到(<a href="http://www.rubyonrails.org/">http://www.rubyonrails.org/</a><br />)网站上下载下来再安装.<br /><br />这样ROR的运行环境就搭建完毕.<br /><br />开发工具：<br />&nbsp;&nbsp;&nbsp; 参考了很多人的资料开发工具，我发现还是(<a href="http://www.radrails.org/)RadRails">http://www.radrails.org/)RadRails</a>最方便，虽然目前还不是成熟，但也能足够应付了。如果熟悉eclipse的朋友应该很快就能上手，用RadRails的最大好处就是避免了记忆大量的Rails命令，快速建立整个项目的框架。对.net的朋友而言，需要安装JDK才能运行RadRails.也许这也是为什么Java开发人员对ROR的热情远远超过.net的开发人员的原因之一吧（自己乱想）。

          <br/>
          <span style="color:red;">
            <a href="http://tmj.javaeye.com/blog/174175#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 13 Dec 2006 13:37:00 +0800</pubDate>
        <link>http://tmj.javaeye.com/blog/174175</link>
        <guid>http://tmj.javaeye.com/blog/174175</guid>
      </item>
      <item>
        <title>Ruby on Rails</title>
        <author>tmj</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://tmj.javaeye.com">tmj</a>&nbsp;
          链接：<a href="http://tmj.javaeye.com/blog/174176" style="color:red;">http://tmj.javaeye.com/blog/174176</a>&nbsp;
          发表时间: 2006年12月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>Ruby on Rails 去年不知道从知道了这么个概念，是个实现快速开发的MVC框架。在Java社区挺火，据说是Java开发速度的10倍，但终因对Java不胜精通而无从考证。期间断断续续也有所关注，一直没伸入下去。很想找个项目来练练手，但一直没有机会而作罢。近来工作上的事情都忙的差不多了，有时间静下心来看看这个被Java社区如此追捧的ROR到底有什么魔力！<br /><br />其实一直以来想写写东西，因文笔太差，怕被人耻笑而一直不敢下手，以至博客申请下来已一年有余，只抛出2块豆腐干，实乃惭愧。但愿从今天开始，能坚持下去。</p>

          <br/>
          <span style="color:red;">
            <a href="http://tmj.javaeye.com/blog/174176#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 13 Dec 2006 13:13:00 +0800</pubDate>
        <link>http://tmj.javaeye.com/blog/174176</link>
        <guid>http://tmj.javaeye.com/blog/174176</guid>
      </item>
      <item>
        <title>静态构造函数(摘录)</title>
        <author>tmj</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://tmj.javaeye.com">tmj</a>&nbsp;
          链接：<a href="http://tmj.javaeye.com/blog/174177" style="color:red;">http://tmj.javaeye.com/blog/174177</a>&nbsp;
          发表时间: 2005年07月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="postbody">
<p>静态构造函数主要用来初始化静态变量的值.<br />这种函数只执行一次,在第一次创建类的对象的时候,就会自动调用它.<br />可以参考一下下面的代码.</p>
<p>using System;</p>
<p>class Welcome<br />{<br />public Welcome()<br />{<br />Console.WriteLine("构造函数 Welcome()");<br />}</p>
<p>static Welcome()<br />{<br />Console.WriteLine("构造函数 static Welcome()");<br />}</p>
<p>static void Main()<br />{<br />new Welcome();<br />new Welcome();<br />Console.ReadLine();<br />}<br />}</p>
<p>执行结果:<br />构造函数 static Welcome()<br />构造函数 Welcome()<br />构造函数 Welcome()</p>
<p><br />又比如下面的代码</p>
<p>public class User<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;static private int count;<br />&nbsp;&nbsp;&nbsp;static public int Count<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;get<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return count;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;public User() <br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;count++;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;static User()<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;count = 0;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;private void Page_Load(object sender, System.EventArgs e)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;// 在此处放置用户代码以初始化页面<br />&nbsp;&nbsp;&nbsp;Response.Write("User Count = " + User.Count);<br />&nbsp;&nbsp;&nbsp;Response.Write("&lt;hr/&gt;Creating User Alex.");<br />&nbsp;&nbsp;&nbsp;User Alex = new User();<br />&nbsp;&nbsp;&nbsp;Response.Write("&lt;br/&gt;User Count = " + User.Count);<br />&nbsp;&nbsp;&nbsp;Response.Write("&lt;hr/&gt;Creating User Rob.");<br />&nbsp;&nbsp;&nbsp;User Rob = new User();<br />&nbsp;&nbsp;&nbsp;Response.Write("&lt;br/&gt;User Count = " + User.Count);<br />&nbsp;&nbsp;&nbsp;Response.Write("&lt;hr/&gt;Creating User Jake.");<br />&nbsp;&nbsp;&nbsp;User Jake = new User();<br />&nbsp;&nbsp;&nbsp;Response.Write("&lt;br/&gt;User Count = " + User.Count);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;}</p>
<p>这段代码的执行结果是：<br />User Count = 0<br />----------------------------------------------------------------------</p>
<p>----------<br />Creating User Alex.<br />User Count = 1<br />----------------------------------------------------------------------</p>
<p>----------<br />Creating User Rob.<br />User Count = 2<br />----------------------------------------------------------------------</p>
<p>----------<br />Creating User Jake.<br />User Count = 3 </p>
<p><br />如果一些操作只希望被执行一次。这时候就可以考虑使用静态构造函数。当然如果设计的面向对象一些的话，那就是使用单件模式了。</p>
<p><br />静态构造函数可以在第一次调用静态类的任何方法、属性时自动调用，所以在静态构造函数里抛出的异常捕获比较麻烦。<br /><br />静态构造函数自动被调用，不能被显式调用。虽然提供了许多约束条件，但是静态构造函数执行的确切时间和顺序是不确定的：<br />一个类的静态构造函数在这个类的任何实例被创建前执行。<br />一个类的静态构造函数在类的任何静态成员被引用前执行。<br />一个类的静态构造函数在它的所有派生类的静态构造函数执行之后执行。<br />一个类的静态构造函数从不会被执行一次以上。<br /></p></div>
          <br/>
          <span style="color:red;">
            <a href="http://tmj.javaeye.com/blog/174177#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 28 Jul 2005 13:54:00 +0800</pubDate>
        <link>http://tmj.javaeye.com/blog/174177</link>
        <guid>http://tmj.javaeye.com/blog/174177</guid>
      </item>
      <item>
        <title>潜水了一年了，昨天提早了申请，想不到这么快就批了下来，高兴中。。。</title>
        <author>tmj</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://tmj.javaeye.com">tmj</a>&nbsp;
          链接：<a href="http://tmj.javaeye.com/blog/174178" style="color:red;">http://tmj.javaeye.com/blog/174178</a>&nbsp;
          发表时间: 2005年07月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="COLOR: red">纪念下，<img src="/Emoticons/emsmile.gif" border="0" align="absMiddle" /> ，争取早日发表自己的处女作。</span>
          <br/>
          <span style="color:red;">
            <a href="http://tmj.javaeye.com/blog/174178#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 18 Jul 2005 20:44:00 +0800</pubDate>
        <link>http://tmj.javaeye.com/blog/174178</link>
        <guid>http://tmj.javaeye.com/blog/174178</guid>
      </item>
  </channel>
</rss>