<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet Trapexit - Erlang/OTP News</title>
	<link>http://planet.trapexit.org</link>
	<language>en</language>
	<description>Planet Trapexit - Erlang/OTP News - http://planet.trapexit.org</description>

<item>
	<title>Erlang Eclipse IDE: Erlide 0.3.49.200804271817</title>
	<guid>http://sourceforge.net/forum/forum.php?forum_id=816735</guid>
	<link>http://sourceforge.net/forum/forum.php?forum_id=816735</link>
	<description>* A long-time standing bug has been fixed, where the text went out of synch with the internal model and caused weird behaviour for the outline and other features.&lt;br /&gt;* The indentation code is much better, I'd say it's almost done.&lt;br /&gt;* Some stability issues have been fixed.&lt;br /&gt;&lt;br /&gt;Enjoy! (&lt;a href=&quot;http://sourceforge.net/forum/forum.php?forum_id=816735&quot;&gt;0 comments&lt;/a&gt;)</description>
	<pubDate>Sun, 27 Apr 2008 17:54:16 +0000</pubDate>
	<author>vladdu@users.sourceforge.net (Vlad Dumitrescu)</author>
</item>
<item>
	<title>Erlang Announce List: Erlang announce mailing list :: Erlang/OTP R12B-2 has been released</title>
	<guid>http://www.trapexit.org/forum/viewtopic.php?p=42858#42858</guid>
	<link>http://www.trapexit.org/forum/viewtopic.php?p=42858#42858</link>
	<description>Author: Anonymous&lt;br /&gt;
Subject: Erlang/OTP R12B-2 has been released&lt;br /&gt;
Posted: Wed Apr 09, 2008 10:35 am (GMT 0)&lt;br /&gt;
Topic Replies: 0&lt;br /&gt;&lt;br /&gt;
&lt;span class=&quot;postbody&quot;&gt;Bug fix release : otp_src_R12B-2
&lt;br /&gt;
Build date      : 2008-04-09
&lt;br /&gt;

&lt;br /&gt;
This is bug fix release 2 for the R12B release.
&lt;br /&gt;

&lt;br /&gt;
You can find the README file for the release at
&lt;br /&gt;

&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_src_R12B-2.readme&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_src_R12B-2.readme&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
The source distribution and binary distribution for Windows can be
&lt;br /&gt;
downloaded from
&lt;br /&gt;

&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_src_R12B-2.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_src_R12B-2.tar.gz&lt;/a&gt;
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_win32_R12B-2.exe&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_win32_R12B-2.exe&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Beginning with this release, the distribution can also be downloaded
&lt;br /&gt;
using the BitTorrent protocol. Use the following torrent files to
&lt;br /&gt;
download the source distribution and binary distribution for Windows:
&lt;br /&gt;

&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_src_R12B-2.tar.gz.torrent&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_src_R12B-2.tar.gz.torrent&lt;/a&gt;
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_win32_R12B-2.exe.torrent&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_win32_R12B-2.exe.torrent&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Note: To unpack the TAR archive you need a GNU TAR compatible program.
&lt;br /&gt;

&lt;br /&gt;
For installation instructions please read the README file that is part
&lt;br /&gt;
of the distribution.
&lt;br /&gt;

&lt;br /&gt;
The on-line documentation can be found at: &lt;a href=&quot;http://www.erlang.org/doc/&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/doc/&lt;/a&gt;
&lt;br /&gt;
You can also download the complete HTML documentation or the Unix manual files
&lt;br /&gt;

&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_doc_html_R12B-2.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_doc_html_R12B-2.tar.gz&lt;/a&gt;
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_doc_man_R12B-2.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_doc_man_R12B-2.tar.gz&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
We also want to thank those that sent us patches, suggestions and bug
&lt;br /&gt;
reports,
&lt;br /&gt;

&lt;br /&gt;
The OTP Team
&lt;br /&gt;
-- 
&lt;br /&gt;
Bj
&lt;/span&gt;&lt;br /&gt;</description>
	<pubDate>Wed, 09 Apr 2008 10:46:15 +0000</pubDate>
</item>
<item>
	<title>Erlang Eclipse IDE: Erlide 0.3.43</title>
	<guid>http://sourceforge.net/forum/forum.php?forum_id=806726</guid>
	<link>http://sourceforge.net/forum/forum.php?forum_id=806726</link>
	<description>Maintenance release&lt;br /&gt;* fixed an outline bug&lt;br /&gt;from 0.3.42:&lt;br /&gt;* updated a NPE when opening files&lt;br /&gt;* eclipse starts even if the erlang installation isn't properly configured (but of course the functionality isn't available). After reconfiguring, a restart is required. (&lt;a href=&quot;http://sourceforge.net/forum/forum.php?forum_id=806726&quot;&gt;0 comments&lt;/a&gt;)</description>
	<pubDate>Thu, 03 Apr 2008 08:27:40 +0000</pubDate>
	<author>vladdu@users.sourceforge.net (Vlad Dumitrescu)</author>
</item>
<item>
	<title>Erlang Eclipse IDE: Erlide 0.3.40</title>
	<guid>http://sourceforge.net/forum/forum.php?forum_id=806026</guid>
	<link>http://sourceforge.net/forum/forum.php?forum_id=806026</link>
	<description>It's been too long since last... there are many improvements, I will only name the ones I remember:&lt;br /&gt;&lt;br /&gt;* R12 should now be supported (but not for developing erlide itself)&lt;br /&gt;* console is better, and has even syntax highlighting&lt;br /&gt;* ETS tables with lexical and parsing data are removed when editor is closed &lt;br /&gt;* lexical scanning is done more lazily (saving memory)&lt;br /&gt;* caching is done for documentation and file structure (&amp;quot;go to function&amp;quot;)&lt;br /&gt;* included files are handled properly (definitions are found)&lt;br /&gt;* simple completion of module names in editor&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;br /&gt;Vlad (&lt;a href=&quot;http://sourceforge.net/forum/forum.php?forum_id=806026&quot;&gt;0 comments&lt;/a&gt;)</description>
	<pubDate>Tue, 01 Apr 2008 20:21:58 +0000</pubDate>
	<author>vladdu@users.sourceforge.net (Vlad Dumitrescu)</author>
</item>
<item>
	<title>RabbitMQ Announcements: [rabbitmq-announce] RabbitMQ 1.3.0 released</title>
	<guid>http://lists.rabbitmq.com/pipermail/rabbitmq-announce/2008-April/000010.html</guid>
	<link>http://lists.rabbitmq.com/pipermail/rabbitmq-announce/2008-April/000010.html</link>
	<pubDate>Tue, 01 Apr 2008 00:00:00 +0000</pubDate>
</item>
<item>
	<title>ErlyBird: ErlyBird 0.16.0 Released</title>
	<guid>http://sourceforge.net/forum/forum.php?forum_id=794555</guid>
	<link>http://sourceforge.net/forum/forum.php?forum_id=794555</link>
	<description>ErlyBird 0.16.0 Released - An Erlang IDE based on NetBeans&lt;br /&gt;&lt;br /&gt;I'm pleased to announce ErlyBird 0.16.0, an Erlang IDE based on NetBeans. This is an important feature release in size of 25M. If you have latest NetBeans nightly build installed, you can also install ErlyBird modules via update center.&lt;br /&gt;&lt;br /&gt;CHANGELOG:&lt;br /&gt;&lt;br /&gt;    * Project metadata file is changed, please see Notes&lt;br /&gt;    * Instant rename (put caret on variable or function name, press CTRL+R)&lt;br /&gt;    * Go-To-Declaration to macros that are defined included header files&lt;br /&gt;    * Fixed: Go-To-Declaration to -inlcudelib won't work again after this include header file was opened in editor once&lt;br /&gt;    * Fixed: syntax broken for packaged import attribute&lt;br /&gt;    * Fixed: syntax broken for wild attribute&lt;br /&gt;    * Completion suggestion will not search other projects&lt;br /&gt;    * Track GSF changes, reindex performance was improved a lot; Can live with other GSF based language support now (Ruby, Groovy etc)&lt;br /&gt;&lt;br /&gt;Java JRE 5.0+ is required.&lt;br /&gt;&lt;br /&gt;To download, please go to: &lt;a href=&quot;http://sourceforge.net/project/showfiles.php?group_id=192439&quot;&gt;http://sourceforge.net/project/showfiles.php?group_id=192439&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To install:&lt;br /&gt;&lt;br /&gt;   1. Unzip erlybird-bin-0.16.0-ide.zip to somewhere.&lt;br /&gt;   2. Make sure 'erl.exe' or 'erl' is under your environment path&lt;br /&gt;   3. For Windows user, execute 'bin/erlybird.exe'. For *nix user, 'bin/erlybird'.&lt;br /&gt;   4. Check/set your OTP path. From [Tools]-&amp;gt;[Options], click on 'Erlang', then 'Erlang Installation' tab, fill in the full path of your 'erl.exe' or 'erl' file. For instance: &amp;quot;C:/erl/bin/erl.exe&amp;quot;&lt;br /&gt;   5. The default -Xmx option for jvm is set to 256M, ErlyBird now works good with less memory, such as -Xmx128M. If you want to increase/decrease it, please open the config file that is located at etc/erlybird.conf, set -J-Xmx of 'default_options'.&lt;br /&gt;&lt;br /&gt;When run ErlyBird first time, the OTP libs will be indexed. The indexing time varies from 10 to 30 minutes deponding on your computer.&lt;br /&gt;&lt;br /&gt;Notes:&lt;br /&gt;&lt;br /&gt;   1. Since project metadata format is changed, to open old ErlyBird created project, you should modify project.xml which is located at your project folder: nbproject/project.xml, change line:&lt;br /&gt;&lt;br /&gt;      &amp;lt;type&amp;gt;org.netbeans.modules.languges.erlang.project&amp;lt;/type&amp;gt;&lt;br /&gt;&lt;br /&gt;      to:&lt;br /&gt;&lt;br /&gt;      &amp;lt;type&amp;gt;org.netbeans.modules.erlang.project&amp;lt;/type&amp;gt;&lt;br /&gt;&lt;br /&gt;   2. If you have previous version ErlyBird installed, you should delete the old cache files which are located at:&lt;br /&gt;          * *nix: &amp;quot;${HOME}/.erlybird/dev&amp;quot;&lt;br /&gt;          * mac os x: &amp;quot;${HOME}/Library/Application Support/erlybird/dev&amp;quot;&lt;br /&gt;          * windows: &amp;quot;C:\Documents and Settings\yourusername\.erlybird\dev&amp;quot; or some where&lt;br /&gt;&lt;br /&gt;The status of ErlyBird is still Alpha, feedbacks and bug reports are welcome. (&lt;a href=&quot;http://sourceforge.net/forum/forum.php?forum_id=794555&quot;&gt;0 comments&lt;/a&gt;)</description>
	<pubDate>Thu, 06 Mar 2008 07:15:45 +0000</pubDate>
	<author>dcaoyuan@users.sourceforge.net (Caoyuan Deng)</author>
</item>
<item>
	<title>ejabberd@jabber.ru: ejabberd 2.0.0: PubSub, PEP, more clustering, Proxy65, HTTP-Bind and much more</title>
	<guid>http://www.ejabberd.im/2854 at http://www.ejabberd.im</guid>
	<link>http://www.ejabberd.im/ejabberd-2.0.0</link>
	<description>&lt;p&gt;ejabberd 2.0.0 was finally released. Check the &lt;a href=&quot;http://www.process-one.net/en/news/article/ejabberd_200_has_been_released/&quot;&gt;announcement&lt;/a&gt; for details and download links.&lt;/p&gt;
&lt;p&gt;It has been 15 months since the last ejabberd release that included new features or improvements. This means that ejabberd 2.0.0 includes a large number of new features, improvements and bugfixes. Just to name a few: more clustering features, updated Pub-Sub service with PEP support, file transfer proxy, integrated HTTP file server, HTTP binding, and PAM authentication.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.ejabberd.im/ejabberd-2.0.0&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Wed, 20 Feb 2008 20:52:09 +0000</pubDate>
</item>
<item>
	<title>ejabberd@jabber.ru: Final call to translators for ejabberd 2.0.0</title>
	<guid>http://www.ejabberd.im/2846 at http://www.ejabberd.im</guid>
	<link>http://www.ejabberd.im/node/2846</link>
	<description>&lt;p&gt;&lt;strong&gt;Update 2&lt;/strong&gt;: Updated the information about complete and uncomplete translations.&lt;br /&gt;
&lt;strong&gt;Update&lt;/strong&gt;: There is also a &lt;a href=&quot;http://www.ejabberd.im/files/ejabberd/ejabberd-langs-1190.zip&quot;&gt;zip with all .translate files&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Two months ago there was a call to translators to prepare ejabberd 2.0.0. Since then, ejabberd 2.0.0-beta1 and rc1 were published, with bug fixes and small improvements. Some of those changes also added, removed or modified translatable strings.&lt;/p&gt;
&lt;p&gt;Now I call again to translators. The good news is that most languages only miss 5 or 10 strings :)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.ejabberd.im/node/2846&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Thu, 14 Feb 2008 12:50:48 +0000</pubDate>
</item>
<item>
	<title>Erlang Announce List: Erlang announce mailing list :: Erlang/OTP R12B-1 has been released</title>
	<guid>http://www.trapexit.org/forum/viewtopic.php?p=39066#39066</guid>
	<link>http://www.trapexit.org/forum/viewtopic.php?p=39066#39066</link>
	<description>Author: Anonymous&lt;br /&gt;
Subject: Erlang/OTP R12B-1 has been released&lt;br /&gt;
Posted: Wed Feb 06, 2008 3:14 pm (GMT 0)&lt;br /&gt;
Topic Replies: 0&lt;br /&gt;&lt;br /&gt;
&lt;span class=&quot;postbody&quot;&gt;Bug fix release : otp_src_R12B-1
&lt;br /&gt;
Build date      : 2008-02-06
&lt;br /&gt;

&lt;br /&gt;
This is bug fix release 1 for the R12B release.
&lt;br /&gt;
You can download the full source distribution from
&lt;br /&gt;
 
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_src_R12B-1.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_src_R12B-1.tar.gz&lt;/a&gt;
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_src_R12B-1.readme&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_src_R12B-1.readme&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Note: To unpack the TAR archive you need a GNU TAR compatible program.
&lt;br /&gt;

&lt;br /&gt;
For installation instructions please read the README that is part of
&lt;br /&gt;
the distribution.
&lt;br /&gt;

&lt;br /&gt;
The Windows binary distribution can be downloaded from
&lt;br /&gt;

&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_win32_R12B-1.exe&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_win32_R12B-1.exe&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
On-line documentation can be found at &lt;a href=&quot;http://www.erlang.org/doc/.&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/doc/.&lt;/a&gt;
&lt;br /&gt;
You can also download the complete HTML documentation or the Unix manual files
&lt;br /&gt;

&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_doc_html_R12B-1.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_doc_html_R12B-1.tar.gz&lt;/a&gt;
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_doc_man_R12B-1.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_doc_man_R12B-1.tar.gz&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
We also want to thank those that sent us patches, suggestions and bug
&lt;br /&gt;
reports,
&lt;br /&gt;

&lt;br /&gt;
The OTP Team
&lt;br /&gt;

&lt;br /&gt;
-- 
&lt;br /&gt;
Bj
&lt;/span&gt;&lt;br /&gt;</description>
	<pubDate>Wed, 06 Feb 2008 15:15:40 +0000</pubDate>
</item>
<item>
	<title>ejabberd@jabber.ru: ejabberd 2.0.0-rc1 released</title>
	<guid>http://www.ejabberd.im/2796 at http://www.ejabberd.im</guid>
	<link>http://www.ejabberd.im/ejabberd-2.0.0-rc1</link>
	<description>&lt;p&gt;ejabberd 2.0.0 has been in the works since more than a year ago. This release will include an impressive amount of new features, improvements and bug fixes. Just to name two: more clustering features and updated Pub-Sub service with PEP support.&lt;/p&gt;
&lt;p&gt;Please read with detail the &lt;a href=&quot;http://svn.process-one.net/ejabberd/branches/ejabberd-2.0.x/doc/release_notes_2.0.0.txt&quot;&gt;Release Notes&lt;/a&gt; for a list of changes and important notes.&lt;/p&gt;
&lt;p&gt;But the final release of ejabberd 2.0.0 is not ready yet. Right now it's time for Release Candidate 1.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.ejabberd.im/ejabberd-2.0.0-rc1&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 18 Jan 2008 18:38:51 +0000</pubDate>
</item>
<item>
	<title>ejabberd@jabber.ru: ejabberd 2.0.0-beta1 released</title>
	<guid>http://www.ejabberd.im/2751 at http://www.ejabberd.im</guid>
	<link>http://www.ejabberd.im/ejabberd-2.0.0-beta1</link>
	<description>&lt;p&gt;ejabberd 2.0.0-beta1 has been released. Check the &lt;a href=&quot;http://www.process-one.net/en/news/article/ejabberd_200_beta1_has_been_released/&quot;&gt;announcement&lt;/a&gt; for details and download links.&lt;/p&gt;
&lt;p&gt;It has been 15 months since the last ejabberd release that included new features or improvements. This means that the upcoming ejabberd 2.0.0 will include a large number of new features, improvements and bugfixes. &lt;/p&gt;
&lt;p&gt;The purpose of this beta release is to find bugs in the 2.0.0 code base before releasing the final version. This beta version should not be used for production servers.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.ejabberd.im/ejabberd-2.0.0-beta1&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 24 Dec 2007 19:57:04 +0000</pubDate>
</item>
<item>
	<title>ErlyBird: ErlyBird 0.15.2 released</title>
	<guid>http://sourceforge.net/forum/forum.php?forum_id=764505</guid>
	<link>http://sourceforge.net/forum/forum.php?forum_id=764505</link>
	<description>I'm pleased to announce ErlyBird 0.15.2, an Erlang IDE based on NetBeans. This is an important feature release. This release will only provide all-in-one IDE package, which is in size of 17.9M.&lt;br /&gt;&lt;br /&gt;CHANGELOG:&lt;br /&gt;&lt;br /&gt;    * Supported OTP/Erlang R12B new syntax.&lt;br /&gt;    * A new Emacs standard color theme.&lt;br /&gt;    * Fixed some formatter bugs.&lt;br /&gt;    * Better syntax error message.&lt;br /&gt;    * Various bugs fixes.&lt;br /&gt;&lt;br /&gt;To switch color theme, open [Tools]-&amp;gt;[Options], click on 'Fonts &amp;amp; Colors', choose 'Profile' drop-down box.&lt;br /&gt;&lt;br /&gt;Java JRE 5.0+ is required.&lt;br /&gt;&lt;br /&gt;To download, please go to: &lt;a href=&quot;http://sourceforge.net/project/showfiles.php?group_id=192439&quot;&gt;http://sourceforge.net/project/showfiles.php?group_id=192439&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To install:&lt;br /&gt;&lt;br /&gt;   1. Unzip erlybird-bin-0.15.2-ide.zip to somewhere.&lt;br /&gt;   2. Make sure 'erl.exe' or 'erl' is under your environment path&lt;br /&gt;   3. For Windows user, execute 'bin/erlybird.exe'. For *nix user, 'bin/erlybird'.&lt;br /&gt;   4. Check/set your OTP path. From [Tools]-&amp;gt;[Options], click on 'Erlang', then 'Erlang Installation' tab, fill in the full path of your 'erl.exe' or 'erl' file. For instance: &amp;quot;C:/erl/bin/erl.exe&amp;quot;&lt;br /&gt;   5. The default -Xmx option for jvm is set to 256M, ErlyBird now works good with less memory, such as -Xmx128M. If you want to increase/decrease it, please open the config file that is located at etc/erlybird.conf, set -J-Xmx of 'default_options'.&lt;br /&gt;&lt;br /&gt;When run ErlyBird first time, the OTP libs will be indexed. The indexing time varies from 10 to 30 minutes deponding on your computer.&lt;br /&gt;&lt;br /&gt;Notice: If you have previous version ErlyBird installed, it's recommended to delete the old cache files which are located at:&lt;br /&gt;&lt;br /&gt;    * *nix: &amp;quot;${HOME}/.erlybird/dev&amp;quot;&lt;br /&gt;    * mac os x: &amp;quot;${HOME}/Library/Application Support/erlybird/dev&amp;quot;&lt;br /&gt;    * windows: &amp;quot;C:\Documents and Settings\yourusername\.erlybird\dev&amp;quot; or some where&lt;br /&gt;&lt;br /&gt;The status of ErlyBird is still Alpha, feedbacks and bug reports are welcome. (&lt;a href=&quot;http://sourceforge.net/forum/forum.php?forum_id=764505&quot;&gt;0 comments&lt;/a&gt;)</description>
	<pubDate>Thu, 13 Dec 2007 19:30:55 +0000</pubDate>
	<author>dcaoyuan@users.sourceforge.net (Caoyuan Deng)</author>
</item>
<item>
	<title>Erlang Announce List: Erlang announce mailing list :: Erlang/OTP R12B-0 has been released</title>
	<guid>http://www.trapexit.org/forum/viewtopic.php?p=35562#35562</guid>
	<link>http://www.trapexit.org/forum/viewtopic.php?p=35562#35562</link>
	<description>Author: Anonymous&lt;br /&gt;
Subject: Erlang/OTP R12B-0 has been released&lt;br /&gt;
Posted: Wed Dec 05, 2007 8:43 am (GMT 0)&lt;br /&gt;
Topic Replies: 0&lt;br /&gt;&lt;br /&gt;
&lt;span class=&quot;postbody&quot;&gt;Major relese    : otp_src_R12B-0
&lt;br /&gt;
Build date      : 2007-12-04
&lt;br /&gt;

&lt;br /&gt;
R12B-0 is a major new release of Erlang/OTP.
&lt;br /&gt;
You can download the full source distribution from
&lt;br /&gt;
 
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_src_R12B-0.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_src_R12B-0.tar.gz&lt;/a&gt;
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_src_R12B-0.readme&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_src_R12B-0.readme&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Note: To unpack the TAR archive you need a GNU TAR compatible program.
&lt;br /&gt;

&lt;br /&gt;
For installation instructions please read the README that is part of
&lt;br /&gt;
the distribution.
&lt;br /&gt;

&lt;br /&gt;
The Windows binary distribution can be downloaded from
&lt;br /&gt;

&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_win32_R12B-0.exe&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_win32_R12B-0.exe&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
On-line documentation can be found at &lt;a href=&quot;http://www.erlang.org/doc/.&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/doc/.&lt;/a&gt;
&lt;br /&gt;
You can also download the complete HTML documentation or the Unix manual files
&lt;br /&gt;

&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_doc_html_R12B-0.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_doc_html_R12B-0.tar.gz&lt;/a&gt;
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_doc_man_R12B-0.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_doc_man_R12B-0.tar.gz&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
We also want to thank those that sent us patches, suggestions and bug
&lt;br /&gt;
reports,
&lt;br /&gt;

&lt;br /&gt;
The OTP Team
&lt;br /&gt;

&lt;br /&gt;
-- 
&lt;br /&gt;
Bj
&lt;/span&gt;&lt;br /&gt;</description>
	<pubDate>Wed, 05 Dec 2007 08:45:25 +0000</pubDate>
</item>
<item>
	<title>ejabberd@jabber.ru: Call to translators for ejabberd 2.0.0</title>
	<guid>http://www.ejabberd.im/2724 at http://www.ejabberd.im</guid>
	<link>http://www.ejabberd.im/node/2724</link>
	<description>&lt;p&gt;The messages shown by ejabberd to the users and administrators are written in English. Many people have contributed translations for &lt;a href=&quot;http://www.ejabberd.im/localization&quot;&gt;other 16 languages&lt;/a&gt;. A new version of ejabberd will be published in the following days, so it is time for a &lt;a href=&quot;http://www.process-one.net/en/blogs/article/ejabberd_20_beta_is_approaching_calling_for_translators/&quot;&gt;call to translators&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Those are the languages that still need an update, the lines that remain to be complete, and the state of the translation:&lt;/p&gt;
&lt;pre&gt;ca.msg  39 -- contacting Vicent Alberola&lt;p&gt;&lt;a href=&quot;http://www.ejabberd.im/node/2724&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;&lt;/pre&gt;</description>
	<pubDate>Tue, 04 Dec 2007 22:23:10 +0000</pubDate>
</item>
<item>
	<title>Erlang Eclipse IDE: Erlide 0.3.36</title>
	<guid>http://sourceforge.net/forum/forum.php?forum_id=759260</guid>
	<link>http://sourceforge.net/forum/forum.php?forum_id=759260</link>
	<description>Available on the update site &lt;a href=&quot;http://erlide.sourceforge.net/update&quot;&gt;http://erlide.sourceforge.net/update&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Bugfixes and new features:&lt;br /&gt;* Improved outline, less crashes and better synchronizing with the editor&lt;br /&gt;* Improved double-click and paren-matching&lt;br /&gt;* External erl-modules for navigation can be specified in project properties&lt;br /&gt;* Error- and warning-icons in navigator (&lt;a href=&quot;http://sourceforge.net/forum/forum.php?forum_id=759260&quot;&gt;0 comments&lt;/a&gt;)</description>
	<pubDate>Wed, 28 Nov 2007 15:04:09 +0000</pubDate>
	<author>jakobc@users.sourceforge.net (Jakob C)</author>
</item>
<item>
	<title>ejabberd@jabber.ru: Happy 5 Birthday, ejabberd!</title>
	<guid>http://www.ejabberd.im/2707 at http://www.ejabberd.im</guid>
	<link>http://www.ejabberd.im/birthday-5</link>
	<description>&lt;p&gt;Alexey Shchepin started ejabberd the 16th November of 2002. So, ejabberd is 5 years old. Happy birthday, ejabberd! :)&lt;/p&gt;

&lt;p&gt;To cellebrate the anniversary, I invite you to take a brief look back to ejabberd history for the last 5 years.&lt;/p&gt;

&lt;br /&gt;
&lt;h1&gt;ejabberd infancy&lt;/h1&gt;

&lt;p&gt;The &lt;a href=&quot;https://forge.process-one.net/changelog/ejabberd/?cs=2&quot;&gt;first commit&lt;/a&gt; to ejabberd's CVS had only those files:
&lt;pre&gt;/src/Makefile
/src/ejabberd.hrl
/src/ejabberd.erl
/src/ejabberd_c2s.erl
/src/ejabberd_listener.erl
/src/expat_erl.c
/src/xml_stream.erl
&lt;/pre&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.ejabberd.im/birthday-5&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Thu, 22 Nov 2007 22:32:04 +0000</pubDate>
</item>
<item>
	<title>Erlware: Announcing Erlware</title>
	<guid>tag:blogger.com,1999:blog-4167999740082219489.post-5546963107735460860</guid>
	<link>http://erlware.blogspot.com/2007/07/announcing-erlware.html</link>
	<description>Announcing Erlware! A set of OTP applications for building and distributing Erlang projects. Featuring build system, Sinan, and our package management tool, Faxien. We just released our beta so feel free to jump in and help us ferret out issues!

is our flagship build system. It is a build system designed expressly for Erlang OTP projects and unsurprisingly enough it is a %100 OTP project itself.</description>
	<pubDate>Thu, 01 Nov 2007 23:28:41 +0000</pubDate>
</item>
<item>
	<title>Erlang Announce List: Erlang announce mailing list :: Erlang/OTP R11B-5 has been released</title>
	<guid>http://www.trapexit.org/forum/viewtopic.php?p=28353#28353</guid>
	<link>http://www.trapexit.org/forum/viewtopic.php?p=28353#28353</link>
	<description>Author: Anonymous&lt;br /&gt;
Subject: Erlang/OTP R11B-5 has been released&lt;br /&gt;
Posted: Wed Jun 13, 2007 2:15 pm (GMT 0)&lt;br /&gt;
Topic Replies: 0&lt;br /&gt;&lt;br /&gt;
&lt;span class=&quot;postbody&quot;&gt;Bug fix release : otp_src_R11B-5
&lt;br /&gt;
Build date      : 2007-06-12
&lt;br /&gt;

&lt;br /&gt;
This is bug fix release 5 for the R11B release.
&lt;br /&gt;
You can download the full source distribution from
&lt;br /&gt;
 
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_src_R11B-5.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_src_R11B-5.tar.gz&lt;/a&gt;
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_src_R11B-5.readme&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_src_R11B-5.readme&lt;/a&gt; (this file)
&lt;br /&gt;

&lt;br /&gt;
Note: To unpack the TAR archive you need a GNU TAR compatible
&lt;br /&gt;
program. For instance, on MacOS X before 10.3 you must use the 'gnutar' command;
&lt;br /&gt;
you can't use the 'tar' command or StuffIt to unpack the sources.
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
For installation instructions please read the README that is part of
&lt;br /&gt;
the distribution.
&lt;br /&gt;

&lt;br /&gt;
The Windows binary distribution can be downloaded from
&lt;br /&gt;

&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_win32_R11B-5.exe&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_win32_R11B-5.exe&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
On-line documentation can be found at &lt;a href=&quot;http://www.erlang.org/doc/.&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/doc/.&lt;/a&gt;
&lt;br /&gt;
You can also download the complete HTML documentation or the Unix manual files
&lt;br /&gt;

&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_doc_html_R11B-5.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_doc_html_R11B-5.tar.gz&lt;/a&gt;
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_doc_man_R11B-5.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_doc_man_R11B-5.tar.gz&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
We also want to thank those that sent us patches, suggestions and bug
&lt;br /&gt;
reports,
&lt;br /&gt;

&lt;br /&gt;
The OTP Team
&lt;br /&gt;
-- 
&lt;br /&gt;
Bj
&lt;/span&gt;&lt;br /&gt;</description>
	<pubDate>Sun, 28 Oct 2007 10:46:47 +0000</pubDate>
</item>
<item>
	<title>Erlang Announce List: Erlang announce mailing list :: Erlang/OTP R11B-4 has been released</title>
	<guid>http://www.trapexit.org/forum/viewtopic.php?p=25872#25872</guid>
	<link>http://www.trapexit.org/forum/viewtopic.php?p=25872#25872</link>
	<description>Author: Anonymous&lt;br /&gt;
Subject: Erlang/OTP R11B-4 has been released&lt;br /&gt;
Posted: Wed Mar 28, 2007 1:57 pm (GMT 0)&lt;br /&gt;
Topic Replies: 0&lt;br /&gt;&lt;br /&gt;
&lt;span class=&quot;postbody&quot;&gt;Bug fix release : otp_src_R11B-4
&lt;br /&gt;
Build date      : 2007-03-28
&lt;br /&gt;

&lt;br /&gt;
This is bug fix release 4 for the R11B release.
&lt;br /&gt;
You can download the full source distribution from
&lt;br /&gt;
 
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_src_R11B-4.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_src_R11B-4.tar.gz&lt;/a&gt;
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_src_R11B-4.readme&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_src_R11B-4.readme&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Note: To unpack the TAR archive you need a GNU TAR compatible
&lt;br /&gt;
program. For instance, on MacOS X before 10.3 you must use the 'gnutar' command;
&lt;br /&gt;
you can't use the 'tar' command or StuffIt to unpack the sources.
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
For installation instructions please read the README that is part of
&lt;br /&gt;
the distribution.
&lt;br /&gt;

&lt;br /&gt;
The Windows binary distribution can be downloaded from
&lt;br /&gt;

&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_win32_R11B-4.exe&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_win32_R11B-4.exe&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
On-line documentation can be found at &lt;a href=&quot;http://www.erlang.org/doc.html.&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/doc.html.&lt;/a&gt;
&lt;br /&gt;
You can also download the complete HTML documentation or the Unix manual files
&lt;br /&gt;

&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_doc_html_R11B-4.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_doc_html_R11B-4.tar.gz&lt;/a&gt;
&lt;br /&gt;
  &lt;a href=&quot;http://www.erlang.org/download/otp_doc_man_R11B-4.tar.gz&quot; target=&quot;_blank&quot;&gt;http://www.erlang.org/download/otp_doc_man_R11B-4.tar.gz&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
We also want to thank those that sent us patches, suggestions and bug
&lt;br /&gt;
reports,
&lt;br /&gt;

&lt;br /&gt;
The OTP Team
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
--- HIGHLIGHTS ------------------------------------------------------------
&lt;br /&gt;

&lt;br /&gt;
    OTP-6505  There is a new escript program that can be used for writing
&lt;br /&gt;
              scripts in Erlang. Erlang scripts don't need to be compiled
&lt;br /&gt;
              and any arguments can be passed to them without risk that
&lt;br /&gt;
              they are interpreted by the Erlang system.
&lt;br /&gt;

&lt;br /&gt;
    OTP-6546  Dialyzer (in the modes where either source or BEAM code which
&lt;br /&gt;
              contains debug_info is analyzed) spits out line information
&lt;br /&gt;
              for all discrepancies. This has been a major change, worth of
&lt;br /&gt;
              increasing the version number.
&lt;br /&gt;

&lt;br /&gt;
              We warn users that *considerably* more discrepancies are
&lt;br /&gt;
              identified by this version of Dialyzer compared with previous
&lt;br /&gt;
              ones and applications. If, for some reason, warnings
&lt;br /&gt;
              generated by previous versions of Dialyzer are preferable,
&lt;br /&gt;
              the command line option --old_style can be employed.
&lt;br /&gt;

&lt;br /&gt;
-- 
&lt;br /&gt;
Bj
&lt;/span&gt;&lt;br /&gt;</description>
	<pubDate>Sun, 28 Oct 2007 10:46:47 +0000</pubDate>
</item>
<item>
	<title>ErlyBird: ErlyBird 0.15.1 released</title>
	<guid>http://sourceforge.net/forum/forum.php?forum_id=740331</guid>
	<link>http://sourceforge.net/forum/forum.php?forum_id=740331</link>
	<description>I'm pleased to announce ErlyBird 0.15.1, an Erlang IDE based on NetBeans. This is a performance improvement release. This release will only provide all-in-one IDE package, which is in size of 18.3M.&lt;br /&gt;&lt;br /&gt;CHANGELOG:&lt;br /&gt;&lt;br /&gt;    * Performance improvement.&lt;br /&gt;    * Integrated with NetBeans' Common Scripting Framework. Thanks Tor.&lt;br /&gt;    * Fix a bug related to occurrences mark on built-in functions.&lt;br /&gt;    * Fix bug of wrong formatting multiple-lines string.&lt;br /&gt;    * Supports &amp;quot;-module(x.y.z)&amp;quot; syntax.&lt;br /&gt;    * Various bugs fixes.&lt;br /&gt;&lt;br /&gt;Java JRE 5.0+ is required.&lt;br /&gt;&lt;br /&gt;To download, please go to: &lt;a href=&quot;http://sourceforge.net/project/showfiles.php?group_id=192439&quot;&gt;http://sourceforge.net/project/showfiles.php?group_id=192439&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To install:&lt;br /&gt;&lt;br /&gt;   1. Unzip erlybird-bin-0.15.1-ide.zip to somewhere.&lt;br /&gt;   2. Make sure 'erl.exe' or 'erl' is under your environment path&lt;br /&gt;   3. For Windows user, execute 'bin/erlybird.exe'. For *nix user, 'bin/erlybird'.&lt;br /&gt;   4. Check/set your OTP path. From [Tools]-&amp;gt;[Options], click on 'Erlang', then 'Erlang Installation' tab, fill in the full path of your 'erl.exe' or 'erl' file. For instance: &amp;quot;C:/erl/bin/erl.exe&amp;quot;&lt;br /&gt;   5. The default -Xmx option for jvm is set to 256M, ErlyBird now works good with less memory, such as -Xmx128M. If you want to increase/decrease it, please open the config file that is located at etc/erlybird.conf, set -J-Xmx of 'default_options'.&lt;br /&gt;&lt;br /&gt;When run ErlyBird first time, the OTP libs will be indexed. The indexing time varies from 10 to 30 minutes deponding on your computer.&lt;br /&gt;&lt;br /&gt;Notice: If you have previous version of ErlyBird 0.12.0+ installed, you can keep your old cache files, otherwise, please delete the old cache files which are located at:&lt;br /&gt;&lt;br /&gt;    * *nix: &amp;quot;${HOME}/.erlybird/dev&amp;quot;&lt;br /&gt;    * mac os x: &amp;quot;${HOME}/Library/Application Support/erlybird/dev&amp;quot;&lt;br /&gt;    * windows: &amp;quot;C:\Documents and Settings\yourusername\.erlybird\dev&amp;quot; or some where&lt;br /&gt;&lt;br /&gt;The status of ErlyBird is still Alpha, feedbacks and bug reports are welcome. (&lt;a href=&quot;http://sourceforge.net/forum/forum.php?forum_id=740331&quot;&gt;0 comments&lt;/a&gt;)</description>
	<pubDate>Sun, 30 Sep 2007 20:50:12 +0000</pubDate>
	<author>dcaoyuan@users.sourceforge.net (Caoyuan Deng)</author>
</item>
<item>
	<title>RabbitMQ Announcements: [rabbitmq-announce] RabbitMQ 1.2.0 released</title>
	<guid>http://lists.rabbitmq.com/pipermail/rabbitmq-announce/2007-September/000009.html</guid>
	<link>http://lists.rabbitmq.com/pipermail/rabbitmq-announce/2007-September/000009.html</link>
	<pubDate>Thu, 27 Sep 2007 00:00:00 +0000</pubDate>
</item>
<item>
	<title>Erlang Eclipse IDE: Erlide 0.3.33</title>
	<guid>http://sourceforge.net/forum/forum.php?forum_id=739014</guid>
	<link>http://sourceforge.net/forum/forum.php?forum_id=739014</link>
	<description>Available on the update site &lt;a href=&quot;http://erlide.sourceforge.net/update&quot;&gt;http://erlide.sourceforge.net/update&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Offers the following features:&lt;br /&gt;    * Sort function in Outline.&lt;br /&gt;    * Hyperlink style navigation.&lt;br /&gt;    * Improved logging output &amp;amp; API.&lt;br /&gt;    * Improved IBackend RPC API, now using automatic conversions from Java types.&lt;br /&gt;    * Fixed:&lt;br /&gt;          o parsing of -ifdef(Var).&lt;br /&gt;          o problems reported by FindBugs.&lt;br /&gt;          o editor menu.&lt;br /&gt;          o problem when copy a source .erl file to an erlang project.&lt;br /&gt;          o [ 1631936 ] Eclipse hangs on loading org.erlide.ui.&lt;br /&gt;          o [ 1782905 ] go to definition of io:format.&lt;br /&gt;          o [ 1788266 ] Toggle Comment do it wrong.&lt;br /&gt;          o [ 1796993 ] Update erl_parse and erl_scan to R11B-5.&lt;br /&gt;          o [ 1797944 ] Paren matching works badly.&lt;br /&gt;          o [ 1797954 ] Scanner problems.&lt;br /&gt;&lt;br /&gt;Source code available as archive from &lt;a href=&quot;http://erlide.sourceforge.net/drops/erlide_0.3.33.zip&quot;&gt;http://erlide.sourceforge.net/drops/erlide_0.3.33.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;/Tomas (&lt;a href=&quot;http://sourceforge.net/forum/forum.php?forum_id=739014&quot;&gt;0 comments&lt;/a&gt;)</description>
	<pubDate>Tue, 25 Sep 2007 13:26:20 +0000</pubDate>
	<author>daatomas@users.sourceforge.net (TomasD)</author>
</item>
<item>
	<title>ErlyBird: ErlyBird 0.15.0 released</title>
	<guid>http://sourceforge.net/forum/forum.php?forum_id=737746</guid>
	<link>http://sourceforge.net/forum/forum.php?forum_id=737746</link>
	<description>I'm pleased to announce ErlyBird 0.15.0, an Erlang IDE based on NetBeans. &lt;br /&gt;&lt;br /&gt;This is a major features release. This release will only provide all-in-one IDE package, which is in size of 17.6M.&lt;br /&gt;&lt;br /&gt;CHANGELOG:&lt;br /&gt;&lt;br /&gt;* Pretty formatter (Ctrl+Shift+F).&lt;br /&gt;* Variables and functions occurrences mark.&lt;br /&gt;* Better brace matching highlighting, such as for 'try-catch-end', 'if-end' etc.&lt;br /&gt;* &amp;quot;-import&amp;quot; syntax now works in all cases, that means RabbitMQ's code will be parsed correctly.&lt;br /&gt;* Various bugs fixes.&lt;br /&gt;&lt;br /&gt;As NetBeans 6.0 beta1 was just released, I hope ErlyBird has got more stable also.&lt;br /&gt;&lt;br /&gt;Java JRE 5.0+ is required.&lt;br /&gt;&lt;br /&gt;To download, please go to: &lt;a href=&quot;http://sourceforge.net/project/showfiles.php?group_id=192439&quot;&gt;http://sourceforge.net/project/showfiles.php?group_id=192439&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To install:&lt;br /&gt;&lt;br /&gt;1. Unzip erlybird-bin-0.15.0-ide.zip to somewhere. &lt;br /&gt;2. Make sure 'erl.exe' or 'erl' is under your environment path.&lt;br /&gt;3. For Windows user, execute 'bin/erlybird.exe'. For *nix user, 'bin/erlybird'.&lt;br /&gt;4. Check/set your OTP path. From [Tools]-&amp;gt;[Options], click on 'Erlang, then 'Erlang Installation' tab, fill in the full path of your 'erl.exe' or 'erl' file. For instance: &amp;quot;C:/erl/bin/erl.exe&amp;quot;&lt;br /&gt;5. The default -Xmx option for jvm is set to 256M, ErlyBird now works good with -Xmx128M. If you want to increase/decrease it, please open the config file that is located at etc/erlybird.conf, set -J-Xmx of 'default_options'.&lt;br /&gt;&lt;br /&gt;When you run ErlyBird first time, the OTP libs will be indexed. The indexing time varies from 10 to 30 minutes deponding on your computer.&lt;br /&gt;&lt;br /&gt;Notice: If you have previous version of ErlyBird 0.12.0+ installed, you can keep your old cache files, otherwise, please delete the old cache files which are located at:&lt;br /&gt;&lt;br /&gt;*nix: &amp;quot;${HOME}/.erlybird/dev&amp;quot;&lt;br /&gt;mac os x: &amp;quot;${HOME}/Library/Application Support/erlybird/dev&amp;quot;&lt;br /&gt;windows: &amp;quot;C:\Documents and Settings\yourusername\.erlybird\dev&amp;quot; or some where&lt;br /&gt;&lt;br /&gt;The status of ErlyBird is still Alpha, feedback and bug report are welcome. (&lt;a href=&quot;http://sourceforge.net/forum/forum.php?forum_id=737746&quot;&gt;0 comments&lt;/a&gt;)</description>
	<pubDate>Fri, 21 Sep 2007 07:36:33 +0000</pubDate>
	<author>dcaoyuan@users.sourceforge.net (Caoyuan Deng)</author>
</item>
<item>
	<title>ejabberd@jabber.ru: ejabberd's home page and Community Site</title>
	<guid>http://www.ejabberd.im/2616 at http://www.ejabberd.im</guid>
	<link>http://www.ejabberd.im/node/2616</link>
	<description>&lt;p&gt;This website has served the ejabberd project since the late 2004.&lt;/p&gt;

&lt;p&gt;I want to announce three important changes as of November 2007, explained in &lt;a href=&quot;http://www.ejabberd.im/evolution-home-page&quot;&gt;Evolution of ejabberd home page&lt;/a&gt;:
&lt;ol&gt;
&lt;li&gt;This site changes its address from ejabberd.jabber.ru to www.ejabberd.im.&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;
&lt;li&gt;Since now, this website is no longer considered ejabberd home page. Instead, this site is the &lt;b&gt;ejabberd Community Site&lt;/b&gt;. 
&lt;li&gt;The official ejabberd home page from now on is considered &lt;a href=&quot;http://www.process-one.net/en/ejabberd/&quot;&gt;http://www.process-one.net/en/ejabberd/&lt;/a&gt;.
&lt;/li&gt;&lt;/li&gt;

&lt;p&gt;&lt;a href=&quot;http://www.ejabberd.im/node/2616&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Wed, 19 Sep 2007 16:10:45 +0000</pubDate>
</item>
<item>
	<title>ejabberd@jabber.ru: Evolution of ejabberd home page</title>
	<guid>http://www.ejabberd.im/2614 at http://www.ejabberd.im</guid>
	<link>http://www.ejabberd.im/evolution-home-page</link>
	<description>&lt;h1&gt;Brief history of ejabberd&lt;/h1&gt;

&lt;p&gt;
Alexey Shchepin started ejabberd the 16th November of 2002, 
and published the source code in the &lt;a href=&quot;http://www.jabber.ru/&quot;&gt;Jabber.Ru&lt;/a&gt; CVS server (cvs.jabber.ru).
Later when that machine had technical problems, the development code was moved to JabberStudio CVS.
The &lt;a href=&quot;http://www.ejabberd.im/mlist&quot;&gt;ejabberd mailing list&lt;/a&gt; was set up in August 2003 and hosted by Jabber.Ru.
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.ejabberd.im/evolution-home-page&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 18 Sep 2007 08:02:18 +0000</pubDate>
</item>
<item>
	<title>Erlang Eclipse IDE: Erlide 0.3.32</title>
	<guid>http://sourceforge.net/forum/forum.php?forum_id=730035</guid>
	<link>http://sourceforge.net/forum/forum.php?forum_id=730035</link>
	<description>An Eclipse plugin providing IDE support for Erlang (&lt;a href=&quot;http://www.erlang.org&quot;&gt;http://www.erlang.org&lt;/a&gt;), a concurrency-oriented language developed by Ericsson.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This release includes the reworked RPC mechanism. It may still have some rough edges. There are no direct user-visible changes, but I would be glad to know if there are any crashes/bugs/errors.&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Vlad (&lt;a href=&quot;http://sourceforge.net/forum/forum.php?forum_id=730035&quot;&gt;0 comments&lt;/a&gt;)</description>
	<pubDate>Tue, 28 Aug 2007 17:51:24 +0000</pubDate>
	<author>vladdu@users.sourceforge.net (Vlad Dumitrescu)</author>
</item>
<item>
	<title>The Erlane Project: From Java to Erlang, or How to Structure an Erlang Process</title>
	<guid>tag:blogger.com,1999:blog-7895735736405728812.post-2710585365615613831</guid>
	<link>http://feeds.feedburner.com/~r/erlane-project/~3/144720706/from-java-to-erlang-or-how-to-structure.html</link>
	<description>We are Java programmers, and to develop using Erlang/OTP, we need to make at least two paradigm shifts:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;From imperative programming to functional programming,&lt;/li&gt;&lt;li&gt;From objects to processes.&lt;/li&gt;&lt;/ul&gt;The first part is not quite easy, altough it is certainly the funnier one. No more &lt;tt&gt;for&lt;/tt&gt; loops, just using recursive (and even tail-recursive) functions; mastering guards and pattern matching instead of &lt;tt&gt;if&lt;/tt&gt;. But even when these changes are understood, we must adapt to data structures: no more array, only lists, tuples and records. This leads to such errors as &lt;a href=&quot;http://ruslanspivak.wordpress.com/2007/08/15/my-erlang-binary-search/&quot;&gt;persistently and repeatedly&lt;/a&gt; implementing a &lt;a href=&quot;http://erl.nfshost.com/wordpress/2007/08/11/binary-search/&quot;&gt;binary search in a list&lt;/a&gt;, even though it is &lt;a href=&quot;http://erlane-project.blogspot.com/2007/08/binary-search-ultimate-test.html&quot;&gt;totally inefficient&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The second part is trickier, but it can become very simple if we can map OO-concepts to OTP.&lt;br /&gt;A &lt;a href=&quot;http://en.wikipedia.org/wiki/Class_%28computer_science%29&quot;&gt;class&lt;/a&gt; is generally defined as a construct that has a state (represented by instance variables) and behaviours (represented by methods). In Erlang, a state can be represented as a record, and methods can be mapped to functions that modifies this record, and have the following form:&lt;br /&gt;&lt;pre&gt;{tag, Reply, NewState} = method(Request, CurrentState).&lt;/pre&gt;where:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;tt&gt;tag&lt;/tt&gt; is an atom, like &lt;tt&gt;ok&lt;/tt&gt;, or &lt;tt&gt;error&lt;/tt&gt;, or for &lt;tt&gt;gen_server&lt;/tt&gt;, &lt;tt&gt;reply&lt;/tt&gt; or &lt;tt&gt;no_reply&lt;/tt&gt;, &lt;/li&gt;&lt;li&gt;&lt;tt&gt;Reply&lt;/tt&gt; is the reply to the &lt;tt&gt;Request&lt;/tt&gt;, &lt;/li&gt;&lt;li&gt;&lt;tt&gt;NewState&lt;/tt&gt; is the state of the process after the method call, &lt;/li&gt;&lt;li&gt;&lt;tt&gt;CurrentState&lt;/tt&gt; is the state of the process before the method call.&lt;/li&gt;&lt;/ul&gt;The most common way to implement a process in Erlang/OTP is to use a &lt;tt&gt;gen_server&lt;/tt&gt; behaviour. An OTP behaviour defines a set of callback functions that a process must implement, the &lt;tt&gt;gen_server&lt;/tt&gt; defines the following set:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;tt&gt;init(Args)&lt;/tt&gt;, which acts as a constructor with arguments, and must return &lt;tt&gt;{ok, InitialState}&lt;/tt&gt;,&lt;/li&gt;&lt;li&gt;&lt;tt&gt;handle_call(Request, From, State)&lt;/tt&gt;, which must dispatch call to a method, and sends back &lt;tt&gt;{reply, Reply, NewState}&lt;/tt&gt;,&lt;/li&gt;&lt;li&gt;&lt;tt&gt;handle_cast(Request, State)&lt;/tt&gt;, which must dispatch call to a method, but in this case the calling process does not wait for a reply, so it must answer &lt;tt&gt;{noreply, NewState}&lt;/tt&gt;,&lt;/li&gt;&lt;li&gt;&lt;tt&gt;terminate(Reason, State)&lt;/tt&gt;, which acts as a destructor, and is called when the process must be ended.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The calling process of a &lt;tt&gt;gen_server&lt;/tt&gt; must call the following functions:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;tt&gt;gen_server:start_link(Module, Args, Options)&lt;/tt&gt; to build a new process, it returns &lt;tt&gt;{ok, Pid}&lt;/tt&gt; where &lt;tt&gt;Pid&lt;/tt&gt; is a reference of the process,&lt;/li&gt;&lt;li&gt;&lt;tt&gt;gen_server:call(Pid, Request)&lt;/tt&gt;, to send a request to the process and waits for a reply,&lt;/li&gt;&lt;li&gt;&lt;tt&gt;gen_server:cast(Pid, Request)&lt;/tt&gt;, to send a request without waiting for a reply.&lt;/li&gt;&lt;/ul&gt;Note that a process built with a &lt;tt&gt;gen_server&lt;/tt&gt; behaviour doest not provide an Application Programming Interface, but a message-based interface (exactly like a network protocol). Anything can be put as a request. So, it is good practice to provide an API in the module that is in charge to provide more friendly function calls and transforms API calls to tagged message passing calls. For instance, for the constructor in the module &lt;tt&gt;eane_tcp&lt;/tt&gt;:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;start(ClientHash, ClientPort) -&gt;&lt;br /&gt;   gen_server:start_link(eane_tcp_cs, [ClientHash, ClientPort], []).&lt;br /&gt;&lt;/pre&gt;A &lt;tt&gt;gen_server&lt;/tt&gt; process that provides a way to connect to an eDonkey server, sends an hello to it, and is able to make a search files request, could be built this way:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;-module(eane_tcp_cs).  % The name of the module&lt;br /&gt;&lt;br /&gt;% It implements a gen_server behaviour&lt;br /&gt;-behaviour(gen_server).&lt;br /&gt;&lt;br /&gt;% API Functions exported&lt;br /&gt;-export([start/2, connect/3, hello/1, search_files/2]).&lt;br /&gt;&lt;br /&gt;% gen_server callbacks&lt;br /&gt;-export([init/1, handle_call/3, handle_cast/2, terminate/2]).&lt;br /&gt;&lt;br /&gt;% definition of the internal state&lt;br /&gt;-record(tcp_state, { socket,&lt;br /&gt;                    client_hash,&lt;br /&gt;                    client_id,&lt;br /&gt;                    port }).&lt;br /&gt;&lt;br /&gt;% External API&lt;br /&gt;% (?MODULE is a built-in macro for the name of the current module)&lt;br /&gt;&lt;br /&gt;start(ClientHash, ClientPort) -&gt;&lt;br /&gt;   gen_server:start_link(?MODULE, [ClientHash, ClientPort], []).&lt;br /&gt;&lt;br /&gt;hello(Pid) -&gt;&lt;br /&gt;   gen_server:cast(Pid, {hello}).&lt;br /&gt;&lt;br /&gt;connect(Pid, Host, Port) -&gt;&lt;br /&gt;   gen_server:call(Pid, {connect, [Host, Port]}).&lt;br /&gt;&lt;br /&gt;search_files(Pid, Query) -&gt;&lt;br /&gt;   gen_server:call(Pid, {search, Query}).&lt;br /&gt;&lt;br /&gt;% gen_server behaviour callbacks&lt;br /&gt;&lt;br /&gt;init(Args) -&gt;&lt;br /&gt;   [ClientHash, ClientPort] = Args,&lt;br /&gt;   {ok, #tcp_state {client_hash = ClientHash, port = ClientPort}}.&lt;br /&gt;&lt;br /&gt;handle_call({connect, [Host, Port]}, _From, TcpState) -&gt;&lt;br /&gt;   {ok, NewState} = connect_server(Host, Port, TcpState),&lt;br /&gt;   {reply, ok, NewState};&lt;br /&gt;&lt;br /&gt;handle_call({search, Name}, _From, TcpState) -&gt;&lt;br /&gt;   {ok, Reply, NewState} = send_search(Name, TcpState),&lt;br /&gt;   {reply, Reply, NewState}.&lt;br /&gt;&lt;br /&gt;handle_cast({hello}, TcpState) -&gt;&lt;br /&gt;   {ok, NewState} = send_hello(TcpState),&lt;br /&gt;   {noreply, NewState}.&lt;br /&gt;&lt;br /&gt;terminate(Reason, TcpState) -&gt;&lt;br /&gt;   close_socket(TcpState),&lt;br /&gt;ok.&lt;br /&gt;&lt;br /&gt;% Internal functions:&lt;br /&gt;%   connect_server, send_search, send_hello, close_socket&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Note that Erlang/OTP has no direct equivalent of inheritance and polymorphism, although they can be mimicked (for instance, polymorphism can be mimicked by processes having the same interface).&lt;img src=&quot;http://feeds.feedburner.com/~r/erlane-project/~4/144720706&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 16 Aug 2007 12:46:42 +0000</pubDate>
	<author>noreply@blogger.com (The Erlane Project Team)</author>
</item>
<item>
	<title>The Erlane Project: Binary Search: The Ultimate Test</title>
	<guid>tag:blogger.com,1999:blog-7895735736405728812.post-496434774871509651</guid>
	<link>http://feeds.feedburner.com/~r/erlane-project/~3/143583383/binary-search-ultimate-test.html</link>
	<description>&lt;a href=&quot;http://erl.nfshost.com/wordpress&quot;&gt;Half-baked Ideas&lt;/a&gt; presents a very nice &lt;a href=&quot;http://erl.nfshost.com/wordpress/2007/08/11/binary-search/&quot;&gt;binary search algorithm written in Erlang&lt;/a&gt;. It has been thoroughly tested, and is absolutely correct. Except for one thing: it is far slower than a simple linear search.&lt;br /&gt;&lt;br /&gt;The only reason to use a binary search instead of a simpler linear search is because it is far faster. The number of comparisons of two elements in a binary search is at most log2(n). For a 1,000,000 items list, this means at most 20 comparisons, instead of at most 1,000,000 for a linear search. So, let's try.&lt;br /&gt;&lt;br /&gt;First, let's code the linear search function:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;linear_search(K, L) -&gt;&lt;br /&gt;    linear_search(K, L, 1).&lt;br /&gt;&lt;br /&gt;linear_search(_, [], _) -&gt;&lt;br /&gt;    -1;&lt;br /&gt;linear_search(K, [K | _], N) -&gt;&lt;br /&gt;    N;&lt;br /&gt;linear_search(K, [_ | T], N) -&gt;&lt;br /&gt;    linear_search(K, T, N + 1).&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Then, measure the performance, using the test functions defined in the binary search algorithm, and &lt;tt&gt;timer:tc/3&lt;/tt&gt;, an OTP function which measures the time of a function call in microseconds:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;perftest(N) -&gt;&lt;br /&gt;    List = rlist(N), %% Generate a list of n items&lt;br /&gt;    Value = lists:max(List) + 1, %% Search for max + 1, to be in the worst case&lt;br /&gt;    { BinarySearchTime, BinarySearchResult } = timer:tc(bs, search, [Value, List]),&lt;br /&gt;    { LinearSearchTime, LinearSearchResult } = timer:tc(bs, linear_search, [Value, List]),&lt;br /&gt;    io:format(&quot;Binary search time: ~w (~w)~n&quot;, [BinarySearchTime, BinarySearchResult]),&lt;br /&gt;    io:format(&quot;Linear search time: ~w (~w)~n&quot;, [LinearSearchTime, LinearSearchResult]).&lt;br /&gt;&lt;/pre&gt;The results are astonishing:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;2&gt; bs:perftest(1000000).&lt;br /&gt;Binary search time: 547000 (-1)&lt;br /&gt;Linear search time: 31999 (-1)&lt;br /&gt;ok&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The binary search should be 50,000 times faster, it is 17 times slower! Why? Time to play with the Erlang profiler &lt;tt&gt;fprof&lt;/tt&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;profile(N) -&gt;&lt;br /&gt;    List = rlist(N),&lt;br /&gt;    Value = lists:max(List) + 1,&lt;br /&gt;    fprof:apply(bs, search, [Value, List]),&lt;br /&gt;    fprof:profile(),&lt;br /&gt;    fprof:analyse().&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This gives the following result:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;4&gt; bs:profile(1000).&lt;br /&gt;Reading trace data...&lt;br /&gt;.........&lt;br /&gt;End of trace!&lt;br /&gt;Processing data...&lt;br /&gt;Creating output...&lt;br /&gt;%% Analysis results:&lt;br /&gt;{  analysis_options,&lt;br /&gt; [{callers, true},&lt;br /&gt;  {sort, acc},&lt;br /&gt;  {totals, false},&lt;br /&gt;  {details, true}]}.&lt;br /&gt;&lt;br /&gt;%                                               CNT       ACC       OWN        &lt;br /&gt;[{ totals,                                     9279,   33.266,   33.007}].  %%%&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;%                                               CNT       ACC       OWN        &lt;br /&gt;[{ &quot;0.29.0&gt;&quot;,                                 9279,undefined,   33.007}].   %%&lt;br /&gt;&lt;br /&gt;{[{undefined,                                     0,   33.266,    0.002}],     &lt;br /&gt; { {fprof,apply_start_stop,4},                    0,   33.266,    0.002},     %&lt;br /&gt; [{{bs,search,2},                                 1,   33.264,    0.001},      &lt;br /&gt;  {suspend,                                       1,    0.000,    0.000}]}.    &lt;br /&gt;&lt;br /&gt;{[{{fprof,apply_start_stop,4},                    1,   33.264,    0.001}],     &lt;br /&gt; { {bs,search,2},                                 1,   33.264,    0.001},     %&lt;br /&gt; [{{bs,search,4},                                 1,   33.263,    0.002}]}.    &lt;br /&gt;&lt;br /&gt;{[{{bs,search,2},                                 1,   33.263,    0.002},      &lt;br /&gt;  {{bs,search,4},                                10,    0.000,    0.019}],     &lt;br /&gt; { {bs,search,4},                                11,   33.263,    0.021},     %&lt;br /&gt; [{{lists,nth,2},                                10,   33.240,    0.010},      &lt;br /&gt;  {{bs,failure,0},                                1,    0.001,    0.001},      &lt;br /&gt;  {suspend,                                       1,    0.001,    0.000},      &lt;br /&gt;  {{bs,search,4},                                10,    0.000,    0.019}]}.    &lt;br /&gt;&lt;br /&gt;{[{{bs,search,4},                                10,   33.240,    0.010},      &lt;br /&gt;  {{lists,nth,2},                              8996,    0.000,   32.972}],     &lt;br /&gt; { {lists,nth,2},                              9006,   33.240,   32.982},     %&lt;br /&gt; [{suspend,                                     258,    0.258,    0.000},      &lt;br /&gt;  {{lists,nth,2},                              8996,    0.000,   32.972}]}.    &lt;br /&gt;&lt;br /&gt;{[{{lists,nth,2},                               258,    0.258,    0.000},      &lt;br /&gt;  {{bs,search,4},                                 1,    0.001,    0.000},      &lt;br /&gt;  {{fprof,apply_start_stop,4},                    1,    0.000,    0.000}],     &lt;br /&gt; { suspend,                                     260,    0.259,    0.000},     %&lt;br /&gt; [ ]}.&lt;br /&gt;&lt;br /&gt;{[{{bs,search,4},                                 1,    0.001,    0.001}],     &lt;br /&gt; { {bs,failure,0},                                1,    0.001,    0.001},     %&lt;br /&gt; [ ]}.&lt;br /&gt;&lt;br /&gt;{[ ],&lt;br /&gt; { undefined,                                     0,    0.000,    0.000},     %&lt;br /&gt; [{{fprof,apply_start_stop,4},                    0,   33.266,    0.002}]}.    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Done!&lt;br /&gt;ok&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;tt&gt;search/4&lt;/tt&gt; is called 11 times, as expected, but the most consuming function is &lt;tt&gt;list:nth/2&lt;/tt&gt;. It is called 9,006 times, and is responsible for almost all the time of the search! Why?&lt;br /&gt;&lt;br /&gt;Because finding the nth element of a list is not a constant time function, like finding the nth element in an array. A list cannot be accessed randomly, but only sequentially. The code for &lt;tt&gt;list:nth/2&lt;/tt&gt; shows that clearly:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;nth(1, [H|_]) -&gt; H;&lt;br /&gt;nth(N, [_|T]) when N &gt; 1 -&gt;&lt;br /&gt;    nth(N - 1, T).&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Applied to a 1000-item list, the algorithm first search for the 500th item (500 calls to nth), then for the 750th, then for the 875th, etc..., resulting eventually in 9,606 calls to &lt;tt&gt;lists:nth/2&lt;/tt&gt;!&lt;br /&gt;&lt;br /&gt;As Alberto Savoia points it out in the chapter 7 of &lt;a href=&quot;http://www.amazon.com/Beautiful-Code-Leading-Programmers-Practice/dp/0596510047/ref=pd_bbs_sr_1/002-5473367-5440828?ie=UTF8&amp;s=books&amp;qid=1186994119&amp;sr=8-1&quot;&gt;Beautiful Code&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Here's my initial testing strategy (or team of tests):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Start with smoke tests.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add some boundary value tests.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Continue with various thorough and exhaustive types of tests.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;Finally, add some &lt;/span&gt;&lt;span&gt;performance &lt;/span&gt;&lt;span&gt;tests.&lt;/span&gt; &lt;span&gt;(emphasis is mine)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Testing that a function performs correctly is of course necessary, but when performance is part of the specification (as it is the case for the binary search), then performance must also be tested carefully.&lt;br /&gt;&lt;br /&gt;This is also a funny case where a traditional imperative programming technique does not work as expected in a functional context.&lt;img src=&quot;http://feeds.feedburner.com/~r/erlane-project/~4/143583383&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 13 Aug 2007 12:08:44 +0000</pubDate>
	<author>noreply@blogger.com (The Erlane Project Team)</author>
</item>
<item>
	<title>The Erlane Project: The Erlane Project</title>
	<guid>tag:blogger.com,1999:blog-7895735736405728812.post-708236376727231309</guid>
	<link>http://feeds.feedburner.com/~r/erlane-project/~3/143288706/erlane-project.html</link>
	<description>The Erlane Project is aimed at creating an Erlang/OTP client for the eDonkey/eMule protocol. The name is a portmanteau for &lt;span&gt;Erlang&lt;/span&gt; and &lt;span&gt;âne&lt;/span&gt;, which is the French word for donkey.&lt;br /&gt;We are developers, and as every developer, we like learning new languages and techniques, so we decided to have a look at Erlang. The best way to learn a new language is to build something with it. As Erlang is very network-oriented, we thought it would be a good exercise to implement a peer-to-peer protocol client.&lt;br /&gt;This blog is the story of this project, it will contain posts about Erlang, the Open Telecom Platform, the eDonkey protocol, and also maybe about the Mac.&lt;img src=&quot;http://feeds.feedburner.com/~r/erlane-project/~4/143288706&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 12 Aug 2007 11:48:50 +0000</pubDate>
	<author>noreply@blogger.com (The Erlane Project Team)</author>
</item>
<item>
	<title>The Erlane Project: Designing an Erlang Application</title>
	<guid>tag:blogger.com,1999:blog-7895735736405728812.post-4248989835166429616</guid>
	<link>http://feeds.feedburner.com/~r/erlane-project/~3/143288703/designing-erlang-application.html</link>
	<description>The Erlane client should be able to implement a subpart of eDonkey protocol, as defined in this &lt;a href=&quot;http://www.cs.huji.ac.il/labs/danss/presentations/emule.pdf&quot;&gt;introduction to the eDonkey/eMule protocol&lt;/a&gt;. The first problem to solve is how to design an Erlang application and how to use effectively the new notions (at least, new for me!) introduced by the support of concurrency, like processes and behaviours. The documentation which comes with Erlang contains a document about &lt;a href=&quot;http://www.erlang.org/doc/design_principles/part_frame.html&quot;&gt;OTP Design Principles&lt;/a&gt; and how to structure an application in terms of processes, modules and even directories.&lt;br /&gt;&lt;br /&gt;I tried to make the exercise to apply these principles to the case of Erlane, and it gives the following big picture in terms of processes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Basic worker processes will handle the connections towards the servers and the other peers. These processes implements a gen_server behaviour, and are in modules erlane_tcp_cs, erlane_udp_cs, erlane_tcp_p2p, erlane_udp_p2p.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A set of processes are responsible for maintaining different lists, such as the list of servers, the list of peers (with ID, client hash, credits, rating, etc), the list of files (MD4 hash, name, size, location, etc). These are gen_server processes relying on ets for data storage. They are named erlane_peers_data, erlane_servers_data, erlane_files_data. Maybe other data processes will be necessary later, for the different queues,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A supervisor for all the different processes which maintain data, name erlane_data_sup,&lt;/li&gt;&lt;li&gt;A supervisor for the client/server communications erlane_tcp_cs and erlane_udp_cs,&lt;/li&gt;&lt;li&gt;A supervisor for the peer/peer communications,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A gen_server worker process for user interface named erlane_ui,&lt;/li&gt;&lt;li&gt;A supervisor for the whole set of processes (i.e. other supervisors and UI),&lt;br /&gt;&lt;/li&gt;&lt;li&gt;An application process for launching the whole set of supervisor, named erlane_app,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A set of modules for low-level functions (such as erlane_codec for basic packet coding/decoding).&lt;/li&gt;&lt;/ul&gt;This architecture will certainly evolve, but it is a good start. I begin with the TCP client/server communication, this means the erlane_tcp_cs process, the erlane_servers_data, the corresponding supervisors, a first version of the erlane_ui and erlane_app, and basic packet coding/decoding.&lt;img src=&quot;http://feeds.feedburner.com/~r/erlane-project/~4/143288703&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 10 Aug 2007 12:32:18 +0000</pubDate>
	<author>noreply@blogger.com (The Erlane Project Team)</author>
</item>
<item>
	<title>Erlware: Why use a standard builsystem? (Well structured OTP applications)</title>
	<guid>tag:blogger.com,1999:blog-4167999740082219489.post-2152596836902283929</guid>
	<link>http://erlware.blogspot.com/2007/03/why-use-standard-builsystem-well.html</link>
	<description>Why use a standard build system?   Over here at Erlware we have been using Erlang for quite some time now.  I personally was introduced to Erlang in 1999, I think the first version of ERTS that I ran was R6.  My first project was layed out according to my best guess at a good directory structure. The project contained a home grown supervisor of sorts, which if I recall correctly was about 1000+</description>
	<pubDate>Sat, 19 May 2007 09:43:52 +0000</pubDate>
</item>
<item>
	<title>Erlware: Erlware SASL and error_logger Log Rotation with fslib and G.A.S</title>
	<guid>tag:blogger.com,1999:blog-4167999740082219489.post-35011092611026048</guid>
	<link>http://erlware.blogspot.com/2006/12/erlware-sasl-and-errorlogger-log.html</link>
	<description>I have had a lot of questions on how log rotation  works with the erlware OTP Base.  People seem to have a good understanding of the OTP Base itself but not as much so with G.A.S and fslib and specifically how they are used to do log rotation.  I am going to try to clarify now.

First I would like to thank Hal Snyder(http://drxyzzy.org), mentor and friend, for coming up with the elegant method,</description>
	<pubDate>Mon, 15 Jan 2007 11:25:11 +0000</pubDate>
</item>
<item>
	<title>Erlware: Building an OTP Application</title>
	<guid>tag:blogger.com,1999:blog-4167999740082219489.post-6805037984639194328</guid>
	<link>http://erlware.blogspot.com/2007/01/building-otp-application.html</link>
	<description>Building an OTP Application Overview

Erlang is a clean, simple language, and it is easy to learn. That's Erlang, now lets talk OTP. The learning curve goes up significantly when getting into OTP. Questions arise, such as; how do I start an application, what is the function of a supervisor, and how do I make use of gen_server? That is just the beginning it gets far more confusing... &quot;what is a .</description>
	<pubDate>Mon, 15 Jan 2007 11:20:44 +0000</pubDate>
</item>

</channel>
</rss>
