<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>小树的技术备忘录——简约便是美</title>
    <description></description>
    <link>http://yyquick.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>如何在ActionMailer的View模板文件中使用helper函数</title>
        <author>yyquick</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yyquick.javaeye.com">yyquick</a>&nbsp;
          链接：<a href="http://yyquick.javaeye.com/blog/146828" style="color:red;">http://yyquick.javaeye.com/blog/146828</a>&nbsp;
          发表时间: 2007年12月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这个标题很拗口。<br />其实意思就是说，如果我用rails的ActionMailer发邮件，那么可以很方便的写个rhtml作为邮件的模板。但是这个模板在缺省状态下是不能调用你的rails工程中的helper函数的。<br />那么怎么解决这个问题呢？<br />我google了一下，发现居然加一句话就可以了：<br /><br /><pre name="code" class="ruby">
class YourEmailer &lt; ActionMailer::Base
  helper :application
  ...
end
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://yyquick.javaeye.com/blog/146828#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><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>Sat, 08 Dec 2007 04:40:52 +0800</pubDate>
        <link>http://yyquick.javaeye.com/blog/146828</link>
        <guid>http://yyquick.javaeye.com/blog/146828</guid>
      </item>
      <item>
        <title>D语言学习笔记（1）——编译和运行环境和hello程序</title>
        <author>yyquick</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yyquick.javaeye.com">yyquick</a>&nbsp;
          链接：<a href="http://yyquick.javaeye.com/blog/143497" style="color:red;">http://yyquick.javaeye.com/blog/143497</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近在CSDN上看到有提到一个D语言，仔细看了一下网上的资料之后，发现这个确实是个好东西！ 这个语言集合了C、java和一些脚本语言如ruby的很多优点，同时抛弃了很多C++的缺点。感觉最直接的，一个是彻底抛弃C/C++的include 头文件，而采用了类似java的包管理机制，另外一个是彻底抛弃了C/C++的宏替换和源代码预处理过程，使得编译的速度大大提高而且减少了由于不正确使 用宏替换带来的隐患。这两个地方是我用c++以来感觉最不爽的地方了。此外，D语言还带来了很多新的特性，比如说GC（垃圾收集机制）、mixin等等现 代高级语言所拥有的功能。而且其提供的基本库phobos提供了stl所有的功能而且还加了很多像ruby这样的脚本语言才提供的函数，使得编程变得更加 的容易，代码量大大减少。更让人感到兴奋的是，D语言支持同步互斥变量和函数的声明，使得编写多线程程序的时候不再很麻烦的为每一个同步变量加锁和解锁 了。所以，我觉得D语言是一个很有前途的语言。<br />
<br />
废话就说到这，现在开始说正事。<br />
<br />
<span style="font-weight: bold;"><strong>编译和运行环境（linux下）：</strong><br />
<br />
</span>在<a href="http://www.digitalmars.com/d">http://www.digitalmars.com/d</a>这个网站下载D语言的编译包dmd.zip。解压出来之后会发现有dmd/bin这个目录，把环境变量PATH加上这个目录，就可以随时随地编译D语言的程序了。好像挺简单的。<br />
<br />
其实深究起来，无非是跟一个配置文件dmd.conf有关。这个文件在dmd/bin目录下，和编译程序dmd在同一个目录。缺省情况下，dmd.conf是这样的：<br />
<br />
[Environment]<br />
DFLAGS=-I%@P%/../src/phobos -L-L%@P%/../lib<br />
<br />
跟gcc的参数很像，-I后面接着的是源代码包的路径，-L后面接的是库文件的路径。而%@P%指代的是编译程序dmd所在的路径。<br />
<br />
<span style="font-weight: bold;">第一个程序，hello.d：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span class="keyword">import</span><span>&nbsp;std.stdio;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">int</span><span>&nbsp;main(</span><span class="keyword">char</span><span>[][]&nbsp;args)<br />
    </span></span></li>
    <li class=""><span>{&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;writefln(<span class="string">&quot;Hello&nbsp;World!&nbsp;&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<br />
</span>写好程序之后，运行dmd hello.d。之后就生成了可执行文件hello。运行hello，可以看见输出了&ldquo;Hello World!&rdquo;这个字符串，并换行了。<br />
<br />
对 比一下我们用C写的相同程序，发现有个区别，就是main函数的参数改变了。变成了char[][] args。这是一个更好用的结构。运行的程序坐在目录和程序名存放在args[0]，第一个命令行参数放在args[1]，第二个命令行参数放在args [2]，以此类推&hellip;&hellip;<br />
<br />
<strong>Windows下的编译环境：<br />
</strong><br />
第一步还是需要下载dmd.zip这个文件而且解压到合适的位置。<br />
在Windows下比较方便的编译环境目前我只发现是visual studio 2005的一个支持D语言的插件<a href="http://svn.dsource.org/projects/vsplugind/downloads/">VSpluginD</a><br />
装上之后可以在VS2005上创建D语言的工程，并且带有可以自动帮你生成包和模块的模板。不过目前还不支持变量和函数自动补全的功能。还需要说明的是，必须在Tools -&gt; Options -&gt; Projects and Solutions -&gt; VSpluginD Settings上面设置dmd.exe和link.exe存放的目录。<br />
把编译器dmd的目录设置好之后，就可以正常的编译和运行D语言的工程了。<br />
这个插件除了没有代码补全功能之外，还不能设断点跟踪这个缺点。<br />
毕竟是一个比较新的语言，当然没有目前的成熟C++编译环境那么好用。不过D语言本身比C++所具有的优势足以让你去暂时忍受目前这些编译环境的不足。<br />
<br />
刚才又看到站内一个朋友的blog文章（<a href="http://h-rain.javaeye.com/blog/65825">在Windows下配置Code::Blocks+DMD进行D编程</a>），发现Code::Blocks下面已经可以支持加断点调试。这样一来，就方便多了。
          <br/>
          <span style="color:red;">
            <a href="http://yyquick.javaeye.com/blog/143497#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 01:44:07 +0800</pubDate>
        <link>http://yyquick.javaeye.com/blog/143497</link>
        <guid>http://yyquick.javaeye.com/blog/143497</guid>
      </item>
  </channel>
</rss>