<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Good News &#8212; Mnesia Unlimited!</title>
	<atom:link href="http://erlang-china.org/news/mnesia_unlimited.html/feed" rel="self" type="application/rss+xml" />
	<link>http://erlang-china.org/news/mnesia_unlimited.html</link>
	<description>erlang 中文社区</description>
	<lastBuildDate>Tue, 09 Mar 2010 05:28:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: jackyz</title>
		<link>http://erlang-china.org/news/mnesia_unlimited.html/comment-page-1#comment-13728</link>
		<dc:creator>jackyz</dc:creator>
		<pubDate>Tue, 04 Aug 2009 04:08:27 +0000</pubDate>
		<guid isPermaLink="false">http://erlang-china.org/news/mnesia_unlimited.html#comment-13728</guid>
		<description>&lt;blockquote cite=&quot;#commentbody-13722&quot;&gt;
&lt;strong&gt;&lt;a href=&quot;#comment-13722&quot; rel=&quot;nofollow&quot;&gt;fsong&lt;/a&gt; :&lt;/strong&gt;
...erlang产品还有秘密吗,估计产品很容易被逆向工程出来吧,这恰恰不符合”工业标准”,呵呵~~乱弹一番...
&lt;/blockquote&gt;

真的是“乱弹一番”，～此言差亦。

如果说“工业标准”和“程序员数量”或者“应用规模”、“教学语言”之类的因素挂上钩，那还算靠点谱。但如果认为“工业标准”和“逆向工程”之类的因素相关，那么，我个人实在无法认同。

作为“工业标准”的 C (包括ASM)的程序被反向工程的例子实在太多，已经举不胜举。就算是“相对独立的软硬件一体化系统”，比如 iPhone 和 XBox 360 之类，还不是一样被破掉了么？只是多费了一些时间而已。

这个世界上从来就没有过密不透风的墙(将来恐怕也不会有)。有差别的只是突破这堵墙所花的代价会有多高，是否合算而已。只要是被认为具有“破解的价值”，那么无论采用什么技术来做，区别其实不大。以此作为“工业标准”的考量因素，又是从何说起？

虽如此，但在“反逆向工程”上 Erlang 还是有经过精心设计的源代码保护机制，你可以对外发布加密过调试信息的字节码(RSA)(对此，本站另有文章介绍，感兴趣请自行搜索)。虽说这个机制并不一定意味着彻底避免被逆向工程，但无疑是增加了难度——至少不会出现“装个软件源代码就全部被还原”的尴尬情况。单就这一点而言，已经比同样是 ByteCode 的 Java 和 .NET 要强上很多了。

话又说回来，对于我们程序员而言，如果程序真的达到“极具破解价值”的水准，那又何尝不是一种荣誉。</description>
		<content:encoded><![CDATA[<blockquote cite="#commentbody-13722"><p>
<strong><a href="#comment-13722" rel="nofollow">fsong</a> :</strong><br />
&#8230;erlang产品还有秘密吗,估计产品很容易被逆向工程出来吧,这恰恰不符合”工业标准”,呵呵~~乱弹一番&#8230;
</p></blockquote>
<p>真的是“乱弹一番”，～此言差亦。</p>
<p>如果说“工业标准”和“程序员数量”或者“应用规模”、“教学语言”之类的因素挂上钩，那还算靠点谱。但如果认为“工业标准”和“逆向工程”之类的因素相关，那么，我个人实在无法认同。</p>
<p>作为“工业标准”的 C (包括ASM)的程序被反向工程的例子实在太多，已经举不胜举。就算是“相对独立的软硬件一体化系统”，比如 iPhone 和 XBox 360 之类，还不是一样被破掉了么？只是多费了一些时间而已。</p>
<p>这个世界上从来就没有过密不透风的墙(将来恐怕也不会有)。有差别的只是突破这堵墙所花的代价会有多高，是否合算而已。只要是被认为具有“破解的价值”，那么无论采用什么技术来做，区别其实不大。以此作为“工业标准”的考量因素，又是从何说起？</p>
<p>虽如此，但在“反逆向工程”上 Erlang 还是有经过精心设计的源代码保护机制，你可以对外发布加密过调试信息的字节码(RSA)(对此，本站另有文章介绍，感兴趣请自行搜索)。虽说这个机制并不一定意味着彻底避免被逆向工程，但无疑是增加了难度——至少不会出现“装个软件源代码就全部被还原”的尴尬情况。单就这一点而言，已经比同样是 ByteCode 的 Java 和 .NET 要强上很多了。</p>
<p>话又说回来，对于我们程序员而言，如果程序真的达到“极具破解价值”的水准，那又何尝不是一种荣誉。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: fsong</title>
		<link>http://erlang-china.org/news/mnesia_unlimited.html/comment-page-1#comment-13722</link>
		<dc:creator>fsong</dc:creator>
		<pubDate>Tue, 04 Aug 2009 01:43:22 +0000</pubDate>
		<guid isPermaLink="false">http://erlang-china.org/news/mnesia_unlimited.html#comment-13722</guid>
		<description>&quot;...Ericsson 又转回去用 C 写交换机了，别让我猜中是因为公司政治...&quot;
我看重要的一点还是因为C是工业标准,E3不想惹起太多纠纷,它只是卖产品的,不是卖软件的.
erlang产品还有秘密吗,估计产品很容易被逆向工程出来吧,这恰恰不符合&quot;工业标准&quot;,呵呵~~乱弹一番</description>
		<content:encoded><![CDATA[<p>&#8220;&#8230;Ericsson 又转回去用 C 写交换机了，别让我猜中是因为公司政治&#8230;&#8221;<br />
我看重要的一点还是因为C是工业标准,E3不想惹起太多纠纷,它只是卖产品的,不是卖软件的.<br />
erlang产品还有秘密吗,估计产品很容易被逆向工程出来吧,这恰恰不符合&#8221;工业标准&#8221;,呵呵~~乱弹一番</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jackyz</title>
		<link>http://erlang-china.org/news/mnesia_unlimited.html/comment-page-1#comment-12234</link>
		<dc:creator>jackyz</dc:creator>
		<pubDate>Thu, 26 Mar 2009 01:36:18 +0000</pubDate>
		<guid isPermaLink="false">http://erlang-china.org/news/mnesia_unlimited.html#comment-12234</guid>
		<description>&lt;a href=&quot;#comment-12205&quot; rel=&quot;nofollow&quot;&gt;@mryufeng&lt;/a&gt;，是，仔细看 mnesia 的文档，就会发现，它的确是提到了这一点。实际上，更确切地说(原始意义上的) mnesia 是 Erlang 这个 FP (无共享内存语言)的一个 “共享内存” 方案。而且，比起 ETS ，它具有分布式和高可用性的特性。

但，在另一方面，对很多 “头一次听说 Erlang 的人” 来说，这个 mnesia 又是被当作 “Erlang 内置的一个数据库” 来介绍的。所以，在他们在探索和学习的路上，必然地发现这个 4G 限制的时候，自然也会产生想象与现实的 “落差” 感。

要解决这种落差，要么是再明确地提供一个真正意义上的 DataBase ，比如说，象 CounchDB 这样的东西。要么是在介绍 mnesia 的时候，就在更显著的地方明确的指出它和数据库之间的差异，提供清晰的信息，以供作出判断。

对于前者，我觉得必要性其实并不高，相反地，像这篇文章中 mnesia unlimit 的做法，我觉得是可取的。因为 mnesia 的 api 设计得相当精巧，尤其是它 qlc 的部分，非常符合 FP 的习惯风格。我在这篇文章后面的 blah 中也提到，某种意义上，不妨将 mnesia 看作是一个类似于 ODBC/JDO/Hibernate 这样的 api 层面的东西。具体要怎样去接驳后端的存储实现，是 DETS/ETS ，又或者是 Memcached/Tokoyo Carbinet，提供选项，让你照自己的喜欢去配置就好。实际上 mnesia 本身在代码之中就留有替换 “存储实现” 的空间(比如，在 ETS 和 DETS 之间选择“存储实现”)，因而这并非不可能完成的任务。Joel Reymont 就是通过 Hack mnesia 自身的代码(其实只能算是少量的 Hack)来做到这一点。倒是 mnesia team 应该考虑如何增加可配置的 API，让这些扩展变得更加容易。</description>
		<content:encoded><![CDATA[<p><a href="#comment-12205" rel="nofollow">@mryufeng</a>，是，仔细看 mnesia 的文档，就会发现，它的确是提到了这一点。实际上，更确切地说(原始意义上的) mnesia 是 Erlang 这个 FP (无共享内存语言)的一个 “共享内存” 方案。而且，比起 ETS ，它具有分布式和高可用性的特性。</p>
<p>但，在另一方面，对很多 “头一次听说 Erlang 的人” 来说，这个 mnesia 又是被当作 “Erlang 内置的一个数据库” 来介绍的。所以，在他们在探索和学习的路上，必然地发现这个 4G 限制的时候，自然也会产生想象与现实的 “落差” 感。</p>
<p>要解决这种落差，要么是再明确地提供一个真正意义上的 DataBase ，比如说，象 CounchDB 这样的东西。要么是在介绍 mnesia 的时候，就在更显著的地方明确的指出它和数据库之间的差异，提供清晰的信息，以供作出判断。</p>
<p>对于前者，我觉得必要性其实并不高，相反地，像这篇文章中 mnesia unlimit 的做法，我觉得是可取的。因为 mnesia 的 api 设计得相当精巧，尤其是它 qlc 的部分，非常符合 FP 的习惯风格。我在这篇文章后面的 blah 中也提到，某种意义上，不妨将 mnesia 看作是一个类似于 ODBC/JDO/Hibernate 这样的 api 层面的东西。具体要怎样去接驳后端的存储实现，是 DETS/ETS ，又或者是 Memcached/Tokoyo Carbinet，提供选项，让你照自己的喜欢去配置就好。实际上 mnesia 本身在代码之中就留有替换 “存储实现” 的空间(比如，在 ETS 和 DETS 之间选择“存储实现”)，因而这并非不可能完成的任务。Joel Reymont 就是通过 Hack mnesia 自身的代码(其实只能算是少量的 Hack)来做到这一点。倒是 mnesia team 应该考虑如何增加可配置的 API，让这些扩展变得更加容易。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mryufeng</title>
		<link>http://erlang-china.org/news/mnesia_unlimited.html/comment-page-1#comment-12205</link>
		<dc:creator>mryufeng</dc:creator>
		<pubDate>Tue, 24 Mar 2009 16:26:54 +0000</pubDate>
		<guid isPermaLink="false">http://erlang-china.org/news/mnesia_unlimited.html#comment-12205</guid>
		<description>其实mnesia的文档以及写的很清楚它要解决的问题的目标 不是设计来用来做大规模存储器的 所以在容量上没有考虑。</description>
		<content:encoded><![CDATA[<p>其实mnesia的文档以及写的很清楚它要解决的问题的目标 不是设计来用来做大规模存储器的 所以在容量上没有考虑。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jackyz</title>
		<link>http://erlang-china.org/news/mnesia_unlimited.html/comment-page-1#comment-12193</link>
		<dc:creator>jackyz</dc:creator>
		<pubDate>Tue, 24 Mar 2009 02:38:10 +0000</pubDate>
		<guid isPermaLink="false">http://erlang-china.org/news/mnesia_unlimited.html#comment-12193</guid>
		<description>&lt;a href=&quot;#comment-12170&quot; rel=&quot;nofollow&quot;&gt;@mryufeng&lt;/a&gt; 
本来就是一个很无厘头的 4G 限制(看见过官方解释，忘了)，偏偏要让使用者去想法子来绕过去，它自己解决好不就结了么。况且官方的方案让人觉得很不完美：

local_content table 需要自己对数据进行分区
fragmented table 用起来则实在是有那么一点…… tricky...

问题是——凭什么啊？作为使用者，选择一个存储机制，当然是希望它越透明越好，如若不然，自然就会考虑其他的选择，比如，自己去架个 couchdb/kai/scalaris 来用。而这些项目的蓬勃发展，正好证明了 mnesia 的这个限制是多么的让人不爽。对于这个问题 otp team 确实需要加以重视，并好好的解决一下。</description>
		<content:encoded><![CDATA[<p><a href="#comment-12170" rel="nofollow">@mryufeng</a><br />
本来就是一个很无厘头的 4G 限制(看见过官方解释，忘了)，偏偏要让使用者去想法子来绕过去，它自己解决好不就结了么。况且官方的方案让人觉得很不完美：</p>
<p>local_content table 需要自己对数据进行分区<br />
fragmented table 用起来则实在是有那么一点…… tricky&#8230;</p>
<p>问题是——凭什么啊？作为使用者，选择一个存储机制，当然是希望它越透明越好，如若不然，自然就会考虑其他的选择，比如，自己去架个 couchdb/kai/scalaris 来用。而这些项目的蓬勃发展，正好证明了 mnesia 的这个限制是多么的让人不爽。对于这个问题 otp team 确实需要加以重视，并好好的解决一下。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mryufeng</title>
		<link>http://erlang-china.org/news/mnesia_unlimited.html/comment-page-1#comment-12170</link>
		<dc:creator>mryufeng</dc:creator>
		<pubDate>Mon, 23 Mar 2009 09:37:24 +0000</pubDate>
		<guid isPermaLink="false">http://erlang-china.org/news/mnesia_unlimited.html#comment-12170</guid>
		<description>看这篇文章 http://mryufeng.javaeye.com/blog/352508 
这个问题可以很好的绕过去的  比较这个patch靠不靠谱  而且不能被官方接受的patch使用起来很大麻烦！</description>
		<content:encoded><![CDATA[<p>看这篇文章 <a href="http://mryufeng.javaeye.com/blog/352508" rel="nofollow">http://mryufeng.javaeye.com/blog/352508</a><br />
这个问题可以很好的绕过去的  比较这个patch靠不靠谱  而且不能被官方接受的patch使用起来很大麻烦！</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: refactor</title>
		<link>http://erlang-china.org/news/mnesia_unlimited.html/comment-page-1#comment-6072</link>
		<dc:creator>refactor</dc:creator>
		<pubDate>Thu, 18 Sep 2008 16:46:50 +0000</pubDate>
		<guid isPermaLink="false">http://erlang-china.org/news/mnesia_unlimited.html#comment-6072</guid>
		<description>第一段话有点问题，mnesia数据库的每个表是一个dets文件，而dets文件的大小不能超过2GB，所以每张表的大小超不过2GB，但是如果数据库有100张表，那么mnesia数据库的容量就是200GB了。dets文档中原文是
The size of Dets files cannot exceed 2 GB. If larger tables are needed, Mnesia&#039;s table fragmentation can be used.</description>
		<content:encoded><![CDATA[<p>第一段话有点问题，mnesia数据库的每个表是一个dets文件，而dets文件的大小不能超过2GB，所以每张表的大小超不过2GB，但是如果数据库有100张表，那么mnesia数据库的容量就是200GB了。dets文档中原文是<br />
The size of Dets files cannot exceed 2 GB. If larger tables are needed, Mnesia&#8217;s table fragmentation can be used.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ShiningRay</title>
		<link>http://erlang-china.org/news/mnesia_unlimited.html/comment-page-1#comment-5411</link>
		<dc:creator>ShiningRay</dc:creator>
		<pubDate>Fri, 08 Aug 2008 08:51:30 +0000</pubDate>
		<guid isPermaLink="false">http://erlang-china.org/news/mnesia_unlimited.html#comment-5411</guid>
		<description>就是啊，要全部开源，也许erlang就是下一个java了</description>
		<content:encoded><![CDATA[<p>就是啊，要全部开源，也许erlang就是下一个java了</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: refactor</title>
		<link>http://erlang-china.org/news/mnesia_unlimited.html/comment-page-1#comment-5401</link>
		<dc:creator>refactor</dc:creator>
		<pubDate>Thu, 07 Aug 2008 14:34:13 +0000</pubDate>
		<guid isPermaLink="false">http://erlang-china.org/news/mnesia_unlimited.html#comment-5401</guid>
		<description>这个，好像不支持最新的R12,(mnesia 4.4)</description>
		<content:encoded><![CDATA[<p>这个，好像不支持最新的R12,(mnesia 4.4)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jackyz</title>
		<link>http://erlang-china.org/news/mnesia_unlimited.html/comment-page-1#comment-5147</link>
		<dc:creator>jackyz</dc:creator>
		<pubDate>Mon, 14 Jul 2008 03:55:42 +0000</pubDate>
		<guid isPermaLink="false">http://erlang-china.org/news/mnesia_unlimited.html#comment-5147</guid>
		<description>@马天一

对于 Erlang 来说，如果只是存储和读取(不做分隔和解析的话)字符集问题其实并无大碍，因为对于 mnesia 来说它存的只是一个 list 它原样存，原样取，在外面你想怎么用就怎么用，爱怎么转换就怎么转换(这就好比，在 java 里面，用 gbk 的 mysql 一样可以处理 utf-8 的字符串)。并无妨碍。</description>
		<content:encoded><![CDATA[<p>@马天一</p>
<p>对于 Erlang 来说，如果只是存储和读取(不做分隔和解析的话)字符集问题其实并无大碍，因为对于 mnesia 来说它存的只是一个 list 它原样存，原样取，在外面你想怎么用就怎么用，爱怎么转换就怎么转换(这就好比，在 java 里面，用 gbk 的 mysql 一样可以处理 utf-8 的字符串)。并无妨碍。</p>
]]></content:encoded>
	</item>
</channel>
</rss>
