<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>logicLAB.org &#187; WWW::Mechanize</title>
	<atom:link href="http://logiclab.org/wordpress/tag/wwwmechanize/feed/" rel="self" type="application/rss+xml" />
	<link>http://logiclab.org/wordpress</link>
	<description>logicLAB Open Source Activities and Projects</description>
	<lastBuildDate>Wed, 14 Mar 2012 10:46:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>CPAN Release WWW::DanDomain 0.02, now with caching of retrieved data</title>
		<link>http://logiclab.org/wordpress/2009/08/20/cpan-release-wwwdandomain-002-now-with-caching-of-retrieved-data/</link>
		<comments>http://logiclab.org/wordpress/2009/08/20/cpan-release-wwwdandomain-002-now-with-caching-of-retrieved-data/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 20:33:06 +0000</pubDate>
		<dc:creator>jonasbn</dc:creator>
				<category><![CDATA[Releases]]></category>
		<category><![CDATA[cpan]]></category>
		<category><![CDATA[Github]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[Test::Prereq]]></category>
		<category><![CDATA[WWW::DanDomain]]></category>
		<category><![CDATA[WWW::Mechanize]]></category>
		<category><![CDATA[WWW::Mechanize::Cached]]></category>

		<guid isPermaLink="false">http://logiclab.org/wordpress/2009/08/20/cpan-release-wwwdandomain-002-now-with-caching-of-retrieved-data/</guid>
		<description><![CDATA[The latest release of WWW::DanDomain has just been uploaded to PAUSE. The release is a feature release and the main improvement is caching. As described earlier, when announcing the release of version 0.01, the module is used to handle a lot of data streams and some of them even rely on the same foundation. So [...]]]></description>
			<content:encoded><![CDATA[<p>The latest release of <a href="http://search.cpan.org/~jonasbn/WWW-DanDomain/">WWW::DanDomain</a> has just been uploaded to PAUSE. The release is a feature release and the main improvement is caching.</p>
<p>As described earlier, when announcing the release of version 0.01, the module is used to handle a lot of data streams and some of them even rely on the same foundation. So caching seemed like a sane idea instead of building a multiplexer, which would fetch the data and then process the data for the different targets. The latter in general a sane solution, but implementing caching was both easy and seemed like good first shot at a solution.</p>
<p>The lucky thing was really that <a href="http://search.cpan.org/~petdance/WWW-Mechanize/">WWW::Mechanize</a> the core module we use in <a href="http://search.cpan.org/~jonasbn/WWW-DanDomain/">WWW::DanDomain</a> has a cousin <a href="http://search.cpan.org/~oalders/WWW-Mechanize-Cached/">WWW::Mechanize::Cached</a>, which implements the same interface and therefor was easy to plug in.</p>
<p>In addition to the caching, the distribution now utilized Test::Prereq as part of its test suite. Unfortunately I again released a distribution (version 0.01), which did not have all requirements specified properly. This can be see from the smoke tests. Please see the blog entry on the same topic for another distribution for a more thorough explanation, there is no need to repeat it here.</p>
<p>I would much rather raise the attention to brian d foy’s <a href="http://search.cpan.org/~bdfoy/Test-Prereq/">Test::Prereq</a>. This marvelous module actually assists me in not making this mistake again. So release 0.02 of <a href="http://search.cpan.org/~jonasbn/WWW-DanDomain/">WWW::DanDomain</a> now contains a test, which check all requirements listed in the source code.</p>
<p>The only problem I have with <a href="http://search.cpan.org/~bdfoy/Test-Prereq/">Test::Prereq</a> is its speed. It is quite slow, which btw. it quite understandable if you consider what it does. So instead of using it as part of the normal test suite, which I try to run as frequently as possible when developing, I classified the test as an author test.</p>
<p>The author test concept is using for special tests, which are used by CPAN contributors. The normal things is simply to let a some of the tests be controlled by an environment variable namely TEST_AUTHOR.</p>
<p>These tests only make sense to run for the author. So smoke testers and end-users do not need to run these, since the remaining test suites and build tools will make sure that the requirements are met or at least tested.</p>
<p>I sent a patch to brian d foy, via <a href="http://github.com/briandfoy/test-prereq/tree/master">Github, where Test::Prereq</a> is hosted and it was applied. But for those of you who cannot wait for brian d foy’s next release I will visualize my little contribution right here.</p>
<div><div class="wp-synhighlighter-expanded"><a name="#codesyntax1"></a><a style="wp-synhighlighter-title" href="#codesyntax1"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Code</a></div><div class="wp-synhighlighter-inner"><pre class="perl" style="font-family:monospace;"><ol><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;"># http://search.cpan.org/~bdfoy/Test-Prereq/lib/Build.pm</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;"># $Id: prerequisites.t 6328 2009-08-16 11:51:16Z jonasbn $</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">use</span> strict<span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">use</span> warnings<span style="color: #339933;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">use</span> Test<span style="color: #339933;">::</span><span style="color: #006600;">More</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><a href="http://perldoc.perl.org/functions/eval.html"><span style="color: #000066;">eval</span></a> “<span style="color: #000000; font-weight: bold;">use</span> Test<span style="color: #339933;">::</span><span style="color: #006600;">Prereq</span><span style="color: #339933;">::</span><span style="color: #006600;">Build</span>”<span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$msg</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$@</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0000ff;">$msg</span> <span style="color: #339933;">=</span> ‘Test<span style="color: #339933;">::</span><span style="color: #006600;">Prereq</span><span style="color: #339933;">::</span><span style="color: #006600;">Build</span> required to test dependencies’<span style="color: #339933;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #b1b100;">not</span> <span style="color: #0000ff;">$ENV</span><span style="color: #009900;">&#123;</span>TEST_AUTHOR<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0000ff;">$msg</span> <span style="color: #339933;">=</span> ‘Author test.  Set <span style="color: #0000ff;">$ENV</span><span style="color: #009900;">&#123;</span>TEST_AUTHOR<span style="color: #009900;">&#125;</span> to a true value to run.’<span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #009900;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">plan skip_all <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$msg</span> <span style="color: #b1b100;">if</span> <span style="color: #0000ff;">$msg</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">prereq_ok<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></li></ol></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://logiclab.org/wordpress/2009/08/20/cpan-release-wwwdandomain-002-now-with-caching-of-retrieved-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CPAN Release WWW::DanDomain 0.01, for manipulation and filtering logic on top of your DanDomain exports</title>
		<link>http://logiclab.org/wordpress/2009/06/15/cpan-release-wwwdandomain-001-for-manipulation-and-filtering-logic-on-top-of-your-dandomain-exports/</link>
		<comments>http://logiclab.org/wordpress/2009/06/15/cpan-release-wwwdandomain-001-for-manipulation-and-filtering-logic-on-top-of-your-dandomain-exports/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 13:40:31 +0000</pubDate>
		<dc:creator>jonasbn</dc:creator>
				<category><![CDATA[Releases]]></category>
		<category><![CDATA[cpan]]></category>
		<category><![CDATA[dandomain]]></category>
		<category><![CDATA[itzy-bitzy]]></category>
		<category><![CDATA[logu]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[WWW::Mechanize]]></category>

		<guid isPermaLink="false">http://logiclab.org/wordpress/?p=3</guid>
		<description><![CDATA[For my long term clients Itzy-Bitzy Communications and LOGU I have developed and maintained a set of tools for working with their DanDomain web shop solution. The DanDomain web shop offers a set of partner programmes, in the shape of product exports aimed at different external sites and services like: - EDBpriser - Gate2Prices - [...]]]></description>
			<content:encoded><![CDATA[<p>For my long term clients Itzy-Bitzy Communications and LOGU I have developed and maintained a set of tools for working with their DanDomain web shop solution. The DanDomain web shop offers a set of partner programmes, in the shape of product exports aimed at different external sites and services like:</p>
<p>- EDBpriser<br />
- Gate2Prices<br />
- Tradedoubler<br />
- Kelkoo<br />
- Partner-ads.com<br />
- Pricerunner<br />
- Din Pris<br />
- Forbrugerliv.dk<br />
- Spar30.dk</p>
<p>The tool implemented in Perl takes the existing exports and does manipulation and filtering on them for finer control and application of certain business rules to improve and optimize the output.</p>
<p>The tools have grown over the years and in the spring of 2009 a lot of new feeds were added to the existing suite of tools. This indicated a long awaited refactoring of the code base, which had grown organically with the requirements from Itzy-Bitzy Communications and LOGU.</p>
<p>One of the things that came out of that refactoring was WWW::DanDomain a class based on Andy Lesters marvelous <a href="http://search.cpan.org/~petdance/WWW-Mechanize/lib/WWW/Mechanize.pm">WWW::Mechanize</a> a Perl module, assisting the developer in creating an HTTP client for accessing and retrieving data via HTTP.</p>
<p>WWW::DanDomain is for now pretty slim, but it is the core foundation in the tools created for accessing DanDomain web based administrative interface.</p>
<p>The idea behind the class, it to sub-class it and overwrite the processor method, which is the place to hook in, in order to get access to the product export data.</p>
<p>Currently we have implementations doing the following:</p>
<p>- Converting to XML from CSV<br />
- Merging of data from two different exports<br />
- Conversion from ISO-8859-1 to UTF-8<br />
- Complex business rules changed single fields in export<br />
- Creation of exports for service providers not supported by DanDomain (see the list above)<br />
- Cleaning of exported data</p>
<p>WWW::DanDomain is the first open source project from logicLAB, which is developed on our Atlassian Jira Studio solution, so things might change overtime as we get more into using Jira Studio for both closed and open source projects, for now the following resources are available from our WWW::DanDomain project web site (<a href="http://logicLAB.jira.com/browse/DAND">http://logicLAB.jira.com/browse/DAND</a>):</p>
<p>- Wiki<br />
- SCM, Subversion, readonly<br />
- Bug/Issue tracking, requires account for now, but we are working on that</p>
<p>WWW::DanDomain is distributed under the Artistic License and can be downloaded from your local CPAN mirror or via: <a href="http://search.cpan.org/~jonasbn/WWW-DanDomain/">search.cpan.org</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://logiclab.org/wordpress/2009/06/15/cpan-release-wwwdandomain-001-for-manipulation-and-filtering-logic-on-top-of-your-dandomain-exports/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

