<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments for Denis Hennessy</title>
	<link>http://hennessynet.com</link>
	<description>Musings on Software Development</description>
	<pubDate>Sat, 05 Jul 2008 20:25:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.2</generator>

	<item>
		<title>Comment on Installing MacPorts and MySQL on Leopard by Miao Wang</title>
		<link>http://hennessynet.com/index.php/2008/01/15/installing-macports-and-mysql-on-leopard/#comment-19</link>
		<author>Miao Wang</author>
		<pubDate>Tue, 08 Apr 2008 11:25:06 +0000</pubDate>
		<guid>http://hennessynet.com/index.php/2008/01/15/installing-macports-and-mysql-on-leopard/#comment-19</guid>
		<description>Very good instruction. 
One suggestion here for mysql: by default the mysql database is not transactional. To make the tables be able to support ACID transactional feature, you need to configure the default_storage_engine, otherwise, you have to explicitly specify the engine for each table.

Making Mysql use InnoDB by default, you need to add the following to /etc/my.cnf (In this case, I think it will be /opt/local/etc/mysql5/my.cnf)
# mysqld configuration file for InnoDB tables
#
[mysqld]
default-table-type=InnoDB
default-storage-engine=InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_lock_wait_timeout=0
innodb_data_home_dir = /usr/local/mysql/data

Restart the Mysql and login, run "show engines" you should see the InnoDB is marked as default (Before it would be MYISAM which is not transactional)

Cheers,
Miao</description>
		<content:encoded><![CDATA[<p>Very good instruction.<br />
One suggestion here for mysql: by default the mysql database is not transactional. To make the tables be able to support ACID transactional feature, you need to configure the default_storage_engine, otherwise, you have to explicitly specify the engine for each table.</p>
<p>Making Mysql use InnoDB by default, you need to add the following to /etc/my.cnf (In this case, I think it will be /opt/local/etc/mysql5/my.cnf)<br />
# mysqld configuration file for InnoDB tables<br />
#<br />
[mysqld]<br />
default-table-type=InnoDB<br />
default-storage-engine=InnoDB<br />
innodb_data_file_path = ibdata1:10M:autoextend<br />
innodb_lock_wait_timeout=0<br />
innodb_data_home_dir = /usr/local/mysql/data</p>
<p>Restart the Mysql and login, run &#8220;show engines&#8221; you should see the InnoDB is marked as default (Before it would be MYISAM which is not transactional)</p>
<p>Cheers,<br />
Miao</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Using capistrano for static sites by Chris Roos</title>
		<link>http://hennessynet.com/index.php/2008/02/14/using-capistrano-for-static-sites/#comment-17</link>
		<author>Chris Roos</author>
		<pubDate>Sat, 22 Mar 2008 09:12:52 +0000</pubDate>
		<guid>http://hennessynet.com/index.php/2008/02/14/using-capistrano-for-static-sites/#comment-17</guid>
		<description>That's pretty useful thanks Denis.  I'm in the process of moving a couple of static sites over to a new host and figured it'd be a good time to get Capistrano configured to deploy them.  Being lazy, I thought I'd check if someone else had any info and subsequently found your site.</description>
		<content:encoded><![CDATA[<p>That&#8217;s pretty useful thanks Denis.  I&#8217;m in the process of moving a couple of static sites over to a new host and figured it&#8217;d be a good time to get Capistrano configured to deploy them.  Being lazy, I thought I&#8217;d check if someone else had any info and subsequently found your site.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Using capistrano for static sites by Marek Janukowicz</title>
		<link>http://hennessynet.com/index.php/2008/02/14/using-capistrano-for-static-sites/#comment-5</link>
		<author>Marek Janukowicz</author>
		<pubDate>Wed, 19 Mar 2008 10:08:12 +0000</pubDate>
		<guid>http://hennessynet.com/index.php/2008/02/14/using-capistrano-for-static-sites/#comment-5</guid>
		<description>Denis,

thanks for your helpful instructions. Additionaly I had to create empty deploy:restart task, otherwise deployment failed when trying to run reaper (which of course does not exist):

deploy.task :restart do
  # do nothing
end</description>
		<content:encoded><![CDATA[<p>Denis,</p>
<p>thanks for your helpful instructions. Additionaly I had to create empty deploy:restart task, otherwise deployment failed when trying to run reaper (which of course does not exist):</p>
<p>deploy.task :restart do<br />
  # do nothing<br />
end</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Unit testing Spring/Hibernate code using JMock by admin</title>
		<link>http://hennessynet.com/index.php/2008/02/27/unit-testing-springhibernate-code-using-jmock/#comment-4</link>
		<author>admin</author>
		<pubDate>Wed, 27 Feb 2008 23:17:42 +0000</pubDate>
		<guid>http://hennessynet.com/index.php/2008/02/27/unit-testing-springhibernate-code-using-jmock/#comment-4</guid>
		<description>@Steve: Thanks for the comments. The example Shipper class is just made up to illustrate the use of JMock - the original version just calculated and returned the weight. That was a cleaner design but I wanted to show some database access as well as Spring wiring.

I also agree about using stubs vs constraints on calls that don't have a side effect. I wanted to show that part of your test could be that a mock object was called in a particular way, rather than simply relying on assert() calls after the test.

Cheers, Denis</description>
		<content:encoded><![CDATA[<p>@Steve: Thanks for the comments. The example Shipper class is just made up to illustrate the use of JMock - the original version just calculated and returned the weight. That was a cleaner design but I wanted to show some database access as well as Spring wiring.</p>
<p>I also agree about using stubs vs constraints on calls that don&#8217;t have a side effect. I wanted to show that part of your test could be that a mock object was called in a particular way, rather than simply relying on assert() calls after the test.</p>
<p>Cheers, Denis</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Unit testing Spring/Hibernate code using JMock by Steve Freeman</title>
		<link>http://hennessynet.com/index.php/2008/02/27/unit-testing-springhibernate-code-using-jmock/#comment-3</link>
		<author>Steve Freeman</author>
		<pubDate>Wed, 27 Feb 2008 22:39:12 +0000</pubDate>
		<guid>http://hennessynet.com/index.php/2008/02/27/unit-testing-springhibernate-code-using-jmock/#comment-3</guid>
		<description>Thanks for writing up the example, you make some good points. There are a few adjustments that strike me as worth thinking about.

Shipper is doing two things at once, calculating the shipment and managing the database. Would it be worth extracting out the database stuff into some kind of helper object?

My preference here would be to stub the calls to getWeight(), rather than assert them. Our convention is to stub queries that don't change the state of the outside world. Ironically, in the example, the only change that affects a neighbour is to set the shipment weight, which is just a value object. It would be interesting to see an interface for something that receives an update from the Shipper, something like a ShipmentUpdateListener, for example.

A habit I've got into is to set up as many values, including mocks, as possible as final field initialisations. It cuts down the syntax noise and helps me clarify the dependencies between instances.</description>
		<content:encoded><![CDATA[<p>Thanks for writing up the example, you make some good points. There are a few adjustments that strike me as worth thinking about.</p>
<p>Shipper is doing two things at once, calculating the shipment and managing the database. Would it be worth extracting out the database stuff into some kind of helper object?</p>
<p>My preference here would be to stub the calls to getWeight(), rather than assert them. Our convention is to stub queries that don&#8217;t change the state of the outside world. Ironically, in the example, the only change that affects a neighbour is to set the shipment weight, which is just a value object. It would be interesting to see an interface for something that receives an update from the Shipper, something like a ShipmentUpdateListener, for example.</p>
<p>A habit I&#8217;ve got into is to set up as many values, including mocks, as possible as final field initialisations. It cuts down the syntax noise and helps me clarify the dependencies between instances.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on About by Lar Brophy</title>
		<link>http://hennessynet.com/index.php/about/#comment-2</link>
		<author>Lar Brophy</author>
		<pubDate>Mon, 25 Feb 2008 09:15:12 +0000</pubDate>
		<guid>http://hennessynet.com/index.php/about/#comment-2</guid>
		<description>Good luck with the blog. It's all a bit too technical for me at the moment, any simple suggestions on how to reduce energy usage to the minimum on my laptop?

Ta</description>
		<content:encoded><![CDATA[<p>Good luck with the blog. It&#8217;s all a bit too technical for me at the moment, any simple suggestions on how to reduce energy usage to the minimum on my laptop?</p>
<p>Ta</p>
]]></content:encoded>
	</item>
</channel>
</rss>
