<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>Recent Posts in 'E is for excellent: Appendix E' | Pragmatic Forums</title>
    <link>http://fora.pragprog.com/forums/27/topics/347</link>
    <language>en-us</language>
    <ttl>60</ttl>
    <description></description>
    <item>
      <title>E is for excellent: Appendix E posted by Alain O'Dea @ Wed, 02 Apr 2008 02:41:37 -0000</title>
      <description>&lt;p&gt;Don&amp;#8217;t forget to read Appendix E. It explains many of the tools that come with Erlang like Code Coverage, Profiler, and Cross-reference analyzers.&lt;/p&gt;


	&lt;p&gt;It also gives a quick overview of the Debugger and debugging technique, provides some explanation of the errors the Compiler generates, and explains how to use the Tracing tool.&lt;/p&gt;


	&lt;p&gt;Seriously, read Appendix E. It takes Erlang programming from a design exercise to a seriously pragmatic and productive endeavor. I went from running mind-experiments of my code to doing unit testing with coverage analysis within an hour of skimming over Appendix E.&lt;/p&gt;


	&lt;p&gt;These tools are all invoked using Erlang code. This makes automating workflows that use them surprisingly easy and convenient.&lt;/p&gt;


	&lt;p&gt;A module called project which I created to handle builds and coverage for a game server I am writing:&lt;br /&gt;&lt;pre&gt;-module(project).
-author('alain.odea').
-license('http://opensource.org/licenses/afl-3.0.php').
-export([make/0, cover/0]).

each(Fun) -&amp;gt;
    lists:map(Fun, [actor, escrow, game, hex, inner_perimeter, 
                    intersection, outer_perimeter, path, player,
                    server, status, stockpile, test_game]).

make() -&amp;gt;
    each(fun(Mod) -&amp;gt; shell_default:c(Mod, [debug_info]) end).

cover() -&amp;gt;
    cover:start(),
    each(fun cover:compile/1),
    test_game:run(),
    each(fun cover:analyse_to_file/1).
&lt;/pre&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 02 Apr 2008 02:41:37 -0000</pubDate>
      <guid isPermaLink="false">fora.pragprog.com:27:347:2521</guid>
      <author>Alain O'Dea</author>
      <link>http://fora.pragprog.com/forums/27/topics/347</link>
    </item>
  </channel>
</rss>
