<?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 for Code by Martin</title>
	<atom:link href="http://martin.elwin.com/blog/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://martin.elwin.com/blog</link>
	<description>Words about stuff...</description>
	<lastBuildDate>Fri, 29 May 2009 17:27:13 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Compressed and Encrypted Backup with SquashFS and LUKS by Dion Stempfley</title>
		<link>http://martin.elwin.com/blog/2008/05/backups-with-squashfs-and-luks/comment-page-1/#comment-6086</link>
		<dc:creator>Dion Stempfley</dc:creator>
		<pubDate>Fri, 29 May 2009 17:27:13 +0000</pubDate>
		<guid isPermaLink="false">http://martin.elwin.com/blog/?p=20#comment-6086</guid>
		<description>Great article.  It got me thinking and I wrote a general purpose luks file wrapper.  

You made one mistake that I can see.  The difference in blocksize between the original file and the mapped device is not from a rounding error.  When you create cryptbackupluks.img you use the seek option for dd.  Using seek steps you forward a certain number of blocks.  This means that when skip=100 your resulting file will have 101 blocks.  To resolve this you should use count, which takes little longer because it writes zeros in every block, or use seek=$(( fileblocks + headersize - 1 )).

Otherwise thanks for this it was a big help.

/Dion</description>
		<content:encoded><![CDATA[<p>Great article.  It got me thinking and I wrote a general purpose luks file wrapper.  </p>
<p>You made one mistake that I can see.  The difference in blocksize between the original file and the mapped device is not from a rounding error.  When you create cryptbackupluks.img you use the seek option for dd.  Using seek steps you forward a certain number of blocks.  This means that when skip=100 your resulting file will have 101 blocks.  To resolve this you should use count, which takes little longer because it writes zeros in every block, or use seek=$(( fileblocks + headersize &#8211; 1 )).</p>
<p>Otherwise thanks for this it was a big help.</p>
<p>/Dion</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML Use Case Diagrams &amp; Graphviz by bousch</title>
		<link>http://martin.elwin.com/blog/2008/05/uml-use-case-diagrams-graphviz/comment-page-1/#comment-6043</link>
		<dc:creator>bousch</dc:creator>
		<pubDate>Thu, 28 May 2009 09:38:37 +0000</pubDate>
		<guid isPermaLink="false">http://martin.elwin.com/blog/?p=8#comment-6043</guid>
		<description>Your graph will look better if the arrow between admin and user is between the clusters instead of between nodes. You can do this by setting compound=true on the graph and change admin-&gt;user to admin-&gt;user [lhead=clusterUser, ltail=clusterAdmin];

I&#039;ve drawn my stick figure with pic2plot from plotutils. The pic/gpic code for a stickfigure is:
.PS
down; circle; line .2;
{line right}
{line left}
line .6
{line down left;}
line down right
.PE</description>
		<content:encoded><![CDATA[<p>Your graph will look better if the arrow between admin and user is between the clusters instead of between nodes. You can do this by setting compound=true on the graph and change admin-&gt;user to admin-&gt;user [lhead=clusterUser, ltail=clusterAdmin];</p>
<p>I&#8217;ve drawn my stick figure with pic2plot from plotutils. The pic/gpic code for a stickfigure is:<br />
.PS<br />
down; circle; line .2;<br />
{line right}<br />
{line left}<br />
line .6<br />
{line down left;}<br />
line down right<br />
.PE</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Clustering Scala Actors with Oracle Coherence for Fun and Profit by Brian Oliver</title>
		<link>http://martin.elwin.com/blog/2008/06/clustering-scala-actors-with-oracle-coherence/comment-page-1/#comment-4832</link>
		<dc:creator>Brian Oliver</dc:creator>
		<pubDate>Thu, 23 Apr 2009 05:52:53 +0000</pubDate>
		<guid isPermaLink="false">http://martin.elwin.com/blog/?p=26#comment-4832</guid>
		<description>Hi Kirk,

Coherence out-of-the box provides resilience across the cluster.  If you don&#039;t run a cluster (ie: a single server) then loss of that machine will obviously lose data (if it&#039;s only stored in memory).  You can, like Terracotta configure Oracle&#039;s Berkley DB to resolve this issue (and many others with Coherence), but as soon as you add more server instances (at run time without needing to go to a console or repartition your application), you automatically get resilience.  If TC you have to configure all of this yourself.  If you want to run in striped mode, you *have* to pay for the commercial edition (ie: no longer open source).

With Coherence (even standard edition), you can continue to scale out, at run-time, to hundreds or thousands of servers, without reconfiguring your application.  You can also kill (like kill -( any server while it&#039;s running and not lose information - this is without using Oracle BDB (or other storage).

Coherence is like RAID for an application, in the application teir.  Terracotta is network attached storage, and it seems you have to treat it like a manually partitioned device.  Both have their advantages and disadvantages, but in terms of reliability and scalability, I&#039;ve not seen anything like it, no matter how much people try to compare other products to it (which is obviously nice).

-- Brian</description>
		<content:encoded><![CDATA[<p>Hi Kirk,</p>
<p>Coherence out-of-the box provides resilience across the cluster.  If you don&#8217;t run a cluster (ie: a single server) then loss of that machine will obviously lose data (if it&#8217;s only stored in memory).  You can, like Terracotta configure Oracle&#8217;s Berkley DB to resolve this issue (and many others with Coherence), but as soon as you add more server instances (at run time without needing to go to a console or repartition your application), you automatically get resilience.  If TC you have to configure all of this yourself.  If you want to run in striped mode, you *have* to pay for the commercial edition (ie: no longer open source).</p>
<p>With Coherence (even standard edition), you can continue to scale out, at run-time, to hundreds or thousands of servers, without reconfiguring your application.  You can also kill (like kill -( any server while it&#8217;s running and not lose information &#8211; this is without using Oracle BDB (or other storage).</p>
<p>Coherence is like RAID for an application, in the application teir.  Terracotta is network attached storage, and it seems you have to treat it like a manually partitioned device.  Both have their advantages and disadvantages, but in terms of reliability and scalability, I&#8217;ve not seen anything like it, no matter how much people try to compare other products to it (which is obviously nice).</p>
<p>&#8211; Brian</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML Use Case Diagrams &amp; Graphviz by Tobin Harris</title>
		<link>http://martin.elwin.com/blog/2008/05/uml-use-case-diagrams-graphviz/comment-page-1/#comment-4572</link>
		<dc:creator>Tobin Harris</dc:creator>
		<pubDate>Tue, 14 Apr 2009 22:05:50 +0000</pubDate>
		<guid isPermaLink="false">http://martin.elwin.com/blog/?p=8#comment-4572</guid>
		<description>For those that are interested, I also found another resource too:

http://www.iua.upf.edu/~dgarcia/Codders/DotUmlUseCases.html</description>
		<content:encoded><![CDATA[<p>For those that are interested, I also found another resource too:</p>
<p><a href="http://www.iua.upf.edu/~dgarcia/Codders/DotUmlUseCases.html" rel="nofollow">http://www.iua.upf.edu/~dgarcia/Codders/DotUmlUseCases.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML Use Case Diagrams &amp; Graphviz by Tobin Harris</title>
		<link>http://martin.elwin.com/blog/2008/05/uml-use-case-diagrams-graphviz/comment-page-1/#comment-4571</link>
		<dc:creator>Tobin Harris</dc:creator>
		<pubDate>Tue, 14 Apr 2009 21:59:24 +0000</pubDate>
		<guid isPermaLink="false">http://martin.elwin.com/blog/?p=8#comment-4571</guid>
		<description>That&#039;s tres cool, cheers for sharing.</description>
		<content:encoded><![CDATA[<p>That&#8217;s tres cool, cheers for sharing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Hitchhiker&#8217;s Guide to an Ioke Dev Env From Source (part 5: Ioke and the REPL) by Blog &#124; Rubyyot :: Baby steps with Ioke</title>
		<link>http://martin.elwin.com/blog/2009/01/the-hitchhikers-guide-to-an-ioke-dev-env-from-source-part-5/comment-page-1/#comment-3531</link>
		<dc:creator>Blog &#124; Rubyyot :: Baby steps with Ioke</dc:creator>
		<pubDate>Thu, 19 Feb 2009 04:23:25 +0000</pubDate>
		<guid isPermaLink="false">http://martin.elwin.com/blog/?p=148#comment-3531</guid>
		<description>[...] If you would like to install it for yourself and try it out too, you can follow the instructions or follow the Hitchhiker&#8217;s Guide.  I used the instructions for a vanilla install, but it looks like the Hitchhiker&#8217;s Guide [...]</description>
		<content:encoded><![CDATA[<p>[...] If you would like to install it for yourself and try it out too, you can follow the instructions or follow the Hitchhiker&#8217;s Guide.  I used the instructions for a vanilla install, but it looks like the Hitchhiker&#8217;s Guide [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Hitchhiker’s Guide to an Ioke Dev Env From Source (part 1: Git) by Martin</title>
		<link>http://martin.elwin.com/blog/2009/01/the-hitchhikers-guide-to-an-ioke-dev-env-from-source-part-1/comment-page-1/#comment-2946</link>
		<dc:creator>Martin</dc:creator>
		<pubDate>Tue, 13 Jan 2009 15:02:03 +0000</pubDate>
		<guid isPermaLink="false">http://martin.elwin.com/blog/?p=74#comment-2946</guid>
		<description>The good thing with installing into ~/opt/ in dedicated directories for each piece of software is that we can just delete the complete directory from there - no need to do anything else as the normal environment isn&#039;t affected.

For instance, to remove Git, just do:

$ rm -rf ~/opt/git-1.6.1 ~/bin/git

And if you also want to remove the source we used:

$ rm -rf ~/work/git-1.6.1

That&#039;s it!

Kindly,

/M</description>
		<content:encoded><![CDATA[<p>The good thing with installing into ~/opt/ in dedicated directories for each piece of software is that we can just delete the complete directory from there &#8211; no need to do anything else as the normal environment isn&#8217;t affected.</p>
<p>For instance, to remove Git, just do:</p>
<p>$ rm -rf ~/opt/git-1.6.1 ~/bin/git</p>
<p>And if you also want to remove the source we used:</p>
<p>$ rm -rf ~/work/git-1.6.1</p>
<p>That&#8217;s it!</p>
<p>Kindly,</p>
<p>/M</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Hitchhiker’s Guide to an Ioke Dev Env From Source (part 1: Git) by slavof</title>
		<link>http://martin.elwin.com/blog/2009/01/the-hitchhikers-guide-to-an-ioke-dev-env-from-source-part-1/comment-page-1/#comment-2945</link>
		<dc:creator>slavof</dc:creator>
		<pubDate>Tue, 13 Jan 2009 14:58:19 +0000</pubDate>
		<guid isPermaLink="false">http://martin.elwin.com/blog/?p=74#comment-2945</guid>
		<description>Thanks, Martin!

OK. That works fine!

I am looking forward to next part.

btw, I don&#039;t know if it a good idea, but it would be very nice to have also &quot;remove&quot; script/procedure, that clean things up from HOME dir and from other places where we put something that we install manually (i.e. not by apt-get/aptitude).

thanks again,
Slavo.</description>
		<content:encoded><![CDATA[<p>Thanks, Martin!</p>
<p>OK. That works fine!</p>
<p>I am looking forward to next part.</p>
<p>btw, I don&#8217;t know if it a good idea, but it would be very nice to have also &#8220;remove&#8221; script/procedure, that clean things up from HOME dir and from other places where we put something that we install manually (i.e. not by apt-get/aptitude).</p>
<p>thanks again,<br />
Slavo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Hitchhiker’s Guide to an Ioke Dev Env From Source (part 1: Git) by Martin</title>
		<link>http://martin.elwin.com/blog/2009/01/the-hitchhikers-guide-to-an-ioke-dev-env-from-source-part-1/comment-page-1/#comment-2943</link>
		<dc:creator>Martin</dc:creator>
		<pubDate>Tue, 13 Jan 2009 14:03:39 +0000</pubDate>
		<guid isPermaLink="false">http://martin.elwin.com/blog/?p=74#comment-2943</guid>
		<description>Oops! A small mistake there. The command you should run to install Git should be:

make prefix=~/opt/git-1.6.1 install install-doc install-html install-info

Not &quot;sudo make prefix=/usr install install-doc install-html install-info&quot;.

The &quot;make&quot; and &quot;make install&quot; must use the same prefix, otherwise some of the Git commands will get confused, since they won&#039;t be able to find themselves or necessary data.

Hope that helps.

Kindly,

/M</description>
		<content:encoded><![CDATA[<p>Oops! A small mistake there. The command you should run to install Git should be:</p>
<p>make prefix=~/opt/git-1.6.1 install install-doc install-html install-info</p>
<p>Not &#8220;sudo make prefix=/usr install install-doc install-html install-info&#8221;.</p>
<p>The &#8220;make&#8221; and &#8220;make install&#8221; must use the same prefix, otherwise some of the Git commands will get confused, since they won&#8217;t be able to find themselves or necessary data.</p>
<p>Hope that helps.</p>
<p>Kindly,</p>
<p>/M</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Hitchhiker’s Guide to an Ioke Dev Env From Source (part 1: Git) by slavof</title>
		<link>http://martin.elwin.com/blog/2009/01/the-hitchhikers-guide-to-an-ioke-dev-env-from-source-part-1/comment-page-1/#comment-2942</link>
		<dc:creator>slavof</dc:creator>
		<pubDate>Tue, 13 Jan 2009 13:49:03 +0000</pubDate>
		<guid isPermaLink="false">http://martin.elwin.com/blog/?p=74#comment-2942</guid>
		<description>Hi!

Great write up. Thank you very much for this. I am a little new to linux and git, so I have a question. 

I tried your steps, everything went ok (I assume that C-compiler warning about various file handling related functions like &quot;ignoring return value of ‘ftruncate’, declared with attribute warn_unused_result&quot; are ok), but install step (&quot;sudo make prefix=/usr install install-doc install-html install-info&quot;) ends with:  

===
if test -r /usr/share/info/dir; then \
	  install-info --info-dir=/usr/share/info git.info ;\
	  install-info --info-dir=/usr/share/info gitman.info ;\
	else \
	  echo &quot;No directory found in /usr/share/info&quot; &gt;&amp;2 ; \
	fi

No `START-INFO-DIR-ENTRY&#039; and no `This file documents&#039;.
install-info(git.info): unable to determine description for `dir&#039; entry - giving up

No `START-INFO-DIR-ENTRY&#039; and no `This file documents&#039;.
install-info(gitman.info): unable to determine description for `dir&#039; entry - giving up
make[1]: *** [install-info] Error 1
make[1]: Leaving directory `/home/slavof/gitcore/git-1.6.1/Documentation&#039;
make: *** [install-info] Error 2

===

after this it looks like that git 1.6. works normally.

Is everything ok? Do you know what caused error described above?

I tried this on fresh installation of Ubuntu 8.10. 

thanks is advance,
Slavo.</description>
		<content:encoded><![CDATA[<p>Hi!</p>
<p>Great write up. Thank you very much for this. I am a little new to linux and git, so I have a question. </p>
<p>I tried your steps, everything went ok (I assume that C-compiler warning about various file handling related functions like &#8220;ignoring return value of ‘ftruncate’, declared with attribute warn_unused_result&#8221; are ok), but install step (&#8221;sudo make prefix=/usr install install-doc install-html install-info&#8221;) ends with:  </p>
<p>===<br />
if test -r /usr/share/info/dir; then \<br />
	  install-info &#8211;info-dir=/usr/share/info git.info ;\<br />
	  install-info &#8211;info-dir=/usr/share/info gitman.info ;\<br />
	else \<br />
	  echo &#8220;No directory found in /usr/share/info&#8221; &gt;&amp;2 ; \<br />
	fi</p>
<p>No `START-INFO-DIR-ENTRY&#8217; and no `This file documents&#8217;.<br />
install-info(git.info): unable to determine description for `dir&#8217; entry &#8211; giving up</p>
<p>No `START-INFO-DIR-ENTRY&#8217; and no `This file documents&#8217;.<br />
install-info(gitman.info): unable to determine description for `dir&#8217; entry &#8211; giving up<br />
make[1]: *** [install-info] Error 1<br />
make[1]: Leaving directory `/home/slavof/gitcore/git-1.6.1/Documentation&#8217;<br />
make: *** [install-info] Error 2</p>
<p>===</p>
<p>after this it looks like that git 1.6. works normally.</p>
<p>Is everything ok? Do you know what caused error described above?</p>
<p>I tried this on fresh installation of Ubuntu 8.10. </p>
<p>thanks is advance,<br />
Slavo.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
