<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" version="2.0">
   <channel>
      <title>Remove reviews</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=duu98WR83hGPulUQ_vrsUA</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=duu98WR83hGPulUQ_vrsUA&amp;_render=rss&amp;page=2" />
      <pubDate>Mon, 30 Jan 2012 19:46:37 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Hype-free" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="hype-free" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">Hype-free</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
         <title>Relaxed JSON parsing</title>
         <link>http://hype-free.blogspot.com/2011/12/relaxed-json-parsing.html</link>
         <description>&lt;p&gt;&lt;em&gt;This blogpost was originally posted to &lt;a rel="nofollow" target="_blank" href="http://www.transylvania-jug.org/archives/324"&gt;the Transylvania JUG blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;JSON is a good alternative when you need a lightweight format to specify structured data. But sometimes (for example when you want the user to specify JSON manually) you would like to relax the formalism required to specify &lt;a rel="nofollow" target="_blank" href="http://json.org/"&gt;&amp;quot;valid&amp;quot; JSON&lt;/a&gt; data. For example the following snippet is not valid as per the spec, although its intent is quite clear:&lt;/p&gt; &lt;code&gt;   &lt;pre&gt;[{ foo: 'bar' }]&lt;/pre&gt;
&lt;/code&gt;

&lt;p&gt;To make this standard compliant we would need to write it as:&lt;/p&gt;
&lt;code&gt;
  &lt;pre&gt;[{ &amp;quot;foo&amp;quot;: &amp;quot;bar&amp;quot; }]&lt;/pre&gt;
&lt;/code&gt;

&lt;p&gt;We shouldn't run out and blame the standard of course since it needs to balance many contradictory requirements (ambiguity of encoded data, ease of understanding, ease of writing parsers, etc). If you decide that you want to strike the balance differently (make the definition of valid data more relaxed) you can do this easily with the &lt;a rel="nofollow" target="_blank" href="http://jackson.codehaus.org/"&gt;Jackson parser&lt;/a&gt;:&lt;/p&gt;
&lt;code&gt;
  &lt;pre&gt;JsonParser parser = new JsonFactory()
	.createJsonParser(&amp;quot;[{ foo: 'bar' }]&amp;quot;)
		.enable(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES)
		.enable(JsonParser.Feature.ALLOW_SINGLE_QUOTES);
JsonNode root = new ObjectMapper().readTree(parser);

assertEquals(&amp;quot;bar&amp;quot;, root.get(0).get(&amp;quot;foo&amp;quot;).asText());&lt;/pre&gt;
&lt;/code&gt;

&lt;p&gt;If your tool of choice is &lt;a rel="nofollow" target="_blank" href="http://code.google.com/p/google-gson/"&gt;gson&lt;/a&gt;, it is slightly more complicated but still doable. See the &lt;a rel="nofollow" target="_blank" href="http://code.google.com/p/hype-free/source/browse/trunk/espresso-shots/src/org/transylvania/jug/espresso/shots/d20111018/TestRelaxedJSONParsing.java"&gt;linked source code&lt;/a&gt; for a complete example.&lt;/p&gt;

&lt;p&gt;JSON is a good tool for semi-structured data and using a relaxed parsing can make the programs you write easier to use.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-4115175754941851823?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=E5ki-UxcgHU:VVbKluaCB3Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=E5ki-UxcgHU:VVbKluaCB3Y:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=E5ki-UxcgHU:VVbKluaCB3Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=E5ki-UxcgHU:VVbKluaCB3Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=E5ki-UxcgHU:VVbKluaCB3Y:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-4115175754941851823</guid>
         <pubDate>Tue, 27 Dec 2011 13:40:00 +0000</pubDate>
      </item>
      <item>
         <title>Updating the root certificates for Java</title>
         <link>http://hype-free.blogspot.com/2011/10/updating-root-certificates-for-java.html</link>
         <description>&lt;p&gt;One usually thinks of SSL in the context of HTTPS, but there are also other protocols which rely on it to provide security. See &lt;a rel="nofollow" target="_blank" href="http://www.google.com/url?q=https%3A%2F%2Fssl.trustwave.com%2Fsupport%2Fsupport-how-ssl-works.php&amp;amp;sa=D&amp;amp;sntz=1&amp;amp;usg=AFrqEzcSKxikCOveGBqInQtKlIeQDxQh1A"&gt;this link&lt;/a&gt; for a short overview of SSL – it only mentions HTTPS, but the same applies for IMAPS, FTPS, etc – SSL is independent of the wrapped protocol. You can have issues with your Java programs in where the party you are communicating with provider changes their certificate and the program rejects it as invalid. The exception is something like:&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 
    PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: 
    unable to find valid certification path to requested target
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;One cause of the problem can be that the server uses an SSL provider which is based on a root certificate that wasn’t included with the particular version of Java you are using (this is especially true for really old versions like Java 1.5). The issue can be solved by updating to the latest version, but it might be that this isn't an option. Fortunately I found the following article: &lt;a rel="nofollow" target="_blank" href="http://www.google.com/url?q=http%3A%2F%2Fblogs.sun.com%2Fandreas%2Fentry%2Fno_more_unable_to_find&amp;amp;sa=D&amp;amp;sntz=1&amp;amp;usg=AFrqEzeLX1QgwCxBswOU7p3Y6eb8qpF_0g"&gt;No more ‘unable to find valid certification path to requested target’&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How to use it:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Compile the program &lt;code&gt;javac InstallCert.java&lt;/code&gt;&lt;/li&gt;

  &lt;li&gt;Run it with the target host/port. For example in our case it would be: &lt;code&gt;java InstallCert imap.mailprovider.com:993&lt;/code&gt; (993 is the port for IMAPS) &lt;/li&gt;

  &lt;li&gt;navigate trough the menus and select which certificate to import &lt;/li&gt;

  &lt;li&gt;now you have a file called &lt;code&gt;jssecacerts&lt;/code&gt;. You need to copy this to &lt;code&gt;$JAVA_HOME/jre/lib/security/cacerts&lt;/code&gt; (&lt;strong&gt;back up the existing file first!&lt;/strong&gt;) &lt;/li&gt;

  &lt;li&gt;Now the root certificate is imported (you can confirm this by rerunning InstallCert)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HTH&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-7893523570025568989?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=SVR5z2i0x60:ac7abyS_L6I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=SVR5z2i0x60:ac7abyS_L6I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=SVR5z2i0x60:ac7abyS_L6I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=SVR5z2i0x60:ac7abyS_L6I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=SVR5z2i0x60:ac7abyS_L6I:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-7893523570025568989</guid>
         <pubDate>Thu, 20 Oct 2011 15:36:00 +0000</pubDate>
      </item>
      <item>
         <title>Vagrant and VirtualBox on Windows</title>
         <link>http://hype-free.blogspot.com/2011/10/vagrant-and-virtualbox-on-windows.html</link>
         <description>&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://vagrantup.com/"&gt;Vagrant&lt;/a&gt; is a collection of scripts written in Ruby to manage VirtualBox images in a shared environment (like the QA boxes inside a company): install them, update them, etc. Unfortunately installing it under Windows is not as straight forward as one would want, so here are some useful tips:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Read the &lt;a rel="nofollow" target="_blank" href="http://vagrantup.com/docs/getting-started/setup/windows.html"&gt;Windows setup page&lt;/a&gt; and the &lt;a rel="nofollow" target="_blank" href="http://vagrantup.com/docs/getting-started/setup/windows_x64.html"&gt;Windows x64 setup page&lt;/a&gt; (if you are on 64 bit) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you are on a 64 bit Windows install:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Check out &lt;a rel="nofollow" target="_blank" href="http://hype-free.blogspot.com/2011/09/running-jruby-on-64-bit-windows.html"&gt;this post&lt;/a&gt; if your JRuby is using the 32 bit JVM on a x64 Windows setup &lt;/li&gt;    &lt;li&gt;You need to use version 4.0 of VirtualBox (rather than the latest). You can get it from &lt;a rel="nofollow" target="_blank" href="https://www.virtualbox.org/wiki/Download_Old_Builds_4_0"&gt;here&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;You need to use an older version of Vagrant: &lt;code&gt;       &lt;pre&gt;jgem install jruby-openssl jruby-win32ole
jgem install --version '=0.7.8' vagrant&lt;/pre&gt;
    &lt;/code&gt;&lt;/li&gt;

  &lt;li&gt;If the vagrant box download stops around 4G, check that you have a NTFS filesystem (rather than FAT) and deactivate any &amp;quot;network&amp;quot; scanning capabilities of installed security software (I had problems with NOD32 particularly)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HTH&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-8421625943848937955?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=FKnvIm9tV_o:c2v07-9QZOE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=FKnvIm9tV_o:c2v07-9QZOE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=FKnvIm9tV_o:c2v07-9QZOE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=FKnvIm9tV_o:c2v07-9QZOE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=FKnvIm9tV_o:c2v07-9QZOE:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-8421625943848937955</guid>
         <pubDate>Thu, 20 Oct 2011 15:27:00 +0000</pubDate>
      </item>
      <item>
         <title>Another friend blogging</title>
         <link>http://hype-free.blogspot.com/2011/10/another-friend-blogging.html</link>
         <description>&lt;p&gt;Another friend &lt;strike&gt;bit the dust&lt;/strike&gt; started blogging: &lt;a rel="nofollow" target="_blank" href="http://cleonte.github.com/"&gt;Cleonte's GitHub blog&lt;/a&gt; - bookmarks at the moment but looking forward to more involved posts :-).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-5536018271772784303?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=v65yn6s5O14:s_2XjjMN0UI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=v65yn6s5O14:s_2XjjMN0UI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=v65yn6s5O14:s_2XjjMN0UI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=v65yn6s5O14:s_2XjjMN0UI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=v65yn6s5O14:s_2XjjMN0UI:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-5536018271772784303</guid>
         <pubDate>Thu, 13 Oct 2011 18:20:00 +0000</pubDate>
      </item>
      <item>
         <title>Using Jython from Maven</title>
         <link>http://hype-free.blogspot.com/2011/10/using-jython-from-maven.html</link>
         <description>&lt;p&gt;&lt;em&gt;This blogpost was originally posted to &lt;/em&gt;&lt;a rel="nofollow" target="_blank" href="http://www.transylvania-jug.org/archives/303"&gt;&lt;em&gt;the Transylvania JUG blog&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;On the surface it looks simple: just add the dependency and you can run &lt;a rel="nofollow" target="_blank" href="http://www.jython.org/archive/21/docs/embedding.html"&gt;the example code&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;However what the &lt;code&gt;jython&lt;/code&gt; artifact doesn’t get you are the standard python libraries like &lt;code&gt;re&lt;/code&gt;. This means that as soon as you try to do something like the code below, it will error out:&lt;/p&gt;  &lt;pre&gt;PythonInterpreter interp = new PythonInterpreter();
try {
  interp.exec(&amp;quot;import re&amp;quot;);
} 
catch (PyException ex) {
  ex.printStackTrace();
}&lt;/pre&gt;

&lt;p&gt;The solution? Use the &lt;code&gt;jython-standalone&lt;/code&gt; artifact which includes the standard libraries. An other advantage is that it has the latest release (2.5.2) while &lt;code&gt;jython&lt;/code&gt; lags two minor revisions behind (2.5.0) in Maven Central. A possible downside is the larger size of the jar.&lt;/p&gt;

&lt;pre&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.python&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;jython-standalone&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;2.5.2&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-4135628696788373182?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=cdPIvh2Aj6g:iw5xKi1FFso:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=cdPIvh2Aj6g:iw5xKi1FFso:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=cdPIvh2Aj6g:iw5xKi1FFso:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=cdPIvh2Aj6g:iw5xKi1FFso:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=cdPIvh2Aj6g:iw5xKi1FFso:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-4135628696788373182</guid>
         <pubDate>Thu, 13 Oct 2011 18:16:00 +0000</pubDate>
      </item>
      <item>
         <title>How to post high-quality videos to Google Video</title>
         <link>http://hype-free.blogspot.com/2011/10/how-to-post-high-quality-videos-to.html</link>
         <description>&lt;p&gt;If you have Google Apps for Business, Google Video is still the preferred method of storing videos &amp;quot;in the cloud&amp;quot;: it is easier to embed into Google Docs and probably more importantly - it can be truly private (you can only access it if you are logged in with the correct account - as opposed to YouTube where you can &amp;quot;hide&amp;quot; the video, but still anyone with the link can access it).&lt;/p&gt;  &lt;p&gt;To post a high quality video to Google Video you only have to do:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Upload the video&lt;/li&gt;    &lt;li&gt;Wait&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I kid you not :-). While initially the uploaded video is of poor quality, apparently it gets processed in the background and later on (in my experience: it takes around 30 minutes to process 1 hour of uploaded video) a high quality version will be available.&lt;/p&gt;  &lt;p&gt;HTH&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-8474915666532093134?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=WD2_JSEnDgg:ERXPQqgq2sM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=WD2_JSEnDgg:ERXPQqgq2sM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=WD2_JSEnDgg:ERXPQqgq2sM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=WD2_JSEnDgg:ERXPQqgq2sM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=WD2_JSEnDgg:ERXPQqgq2sM:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-8474915666532093134</guid>
         <pubDate>Tue, 11 Oct 2011 11:58:00 +0000</pubDate>
      </item>
      <item>
         <title>Integrating Maven with Ivy</title>
         <link>http://hype-free.blogspot.com/2011/10/integrating-maven-with-ivy.html</link>
         <description>&lt;p&gt;&lt;em&gt;This post was originally published on the &lt;a rel="nofollow" target="_blank" href="http://www.transylvania-jug.org/archives/272"&gt;Transylvania JUG blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;The problem: you have some resources in an Ivy repository (and only there) which you would like to use in a project based on Maven. Possible solutions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Migrate the repository to Maven (Nexus for example) since Ivy can easily use Maven-style repositories (so your Ivy clients can continue to use Ivy with some slight configuration changes and Maven clients will also work – also the push-to-repo process needs to be changed) &lt;/li&gt;    &lt;li&gt;Try JFrog Artifactory since it &lt;a rel="nofollow" target="_blank" href="http://blogs.jfrog.org/2010/03/building-enterprise-repository-with.html"&gt;reportedly can serve the same resources to both Ivy and Maven&lt;/a&gt; (disclaimer: I haven’t tried to use it actually and I don’t know if the Open Source version includes this feature or not) &lt;/li&gt;    &lt;li&gt;or read on…&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;My goal for the solution (as complex as it may be) was:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;It should be as simple and self-explanatory as possible &lt;/li&gt;    &lt;li&gt;It should respect the DRY principle (Don’t Repeat Yourself) &lt;/li&gt;    &lt;li&gt;It shouldn’t have other dependencies than Maven itself&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The solution looks like the following (for the full source check out &lt;a rel="nofollow" target="_blank" href="http://code.google.com/p/hype-free/source/browse/trunk/java-maven-ivy/pom.xml"&gt;the code-repo&lt;/a&gt;):&lt;/p&gt;  &lt;p&gt;Have two Maven profiles: &lt;code&gt;ivy-dependencies&lt;/code&gt; activates when the dependencies have already been downloaded and &lt;code&gt;ivy-resolve&lt;/code&gt; when there are yet to download. This is based on checking the directory where the dependencies are to be copied ultimately:&lt;/p&gt;  &lt;pre&gt;...
&amp;lt;id&amp;gt;ivy-dependencies&amp;lt;/id&amp;gt;
&amp;lt;activation&amp;gt;
  &amp;lt;activeByDefault&amp;gt;false&amp;lt;/activeByDefault&amp;gt;
  &amp;lt;file&amp;gt;
    &amp;lt;exists&amp;gt;${basedir}/ivy-lib&amp;lt;/exists&amp;gt;
  &amp;lt;/file&amp;gt;
&amp;lt;/activation&amp;gt;
...
&amp;lt;id&amp;gt;ivy-resolve&amp;lt;/id&amp;gt;
&amp;lt;activation&amp;gt;
  &amp;lt;activeByDefault&amp;gt;false&amp;lt;/activeByDefault&amp;gt;
  &amp;lt;file&amp;gt;
    &amp;lt;missing&amp;gt;${basedir}/ivy-lib&amp;lt;/missing&amp;gt;
  &amp;lt;/file&amp;gt;
&amp;lt;/activation&amp;gt;
...&lt;/pre&gt;

&lt;p&gt;Unfortunately there is a small repetition here, since Maven doesn’t seem to expand user-defined properties like &lt;code&gt;${ivy.target.lib.dir}&lt;/code&gt; in the profile activation section. The profiles also serve an other role: to avoid the consideration of the dependencies until they are actually resolved.&lt;/p&gt;

&lt;p&gt;When the build is first run, it creates the target directory, writes the files needed for an Ivy build there (&lt;code&gt;ivy.xml&lt;/code&gt;, &lt;code&gt;ivysettings.xml&lt;/code&gt; and &lt;code&gt;build.xml&lt;/code&gt; – for this example I’ve used some parts from corresponding files of &lt;a rel="nofollow" target="_blank" href="http://code.google.com/p/red5/source/browse/java/server/trunk/"&gt;the Red5 repo&lt;/a&gt;), runs the build and tries to clean up after itself. It also creates a&lt;code&gt;dependencies.txt&lt;/code&gt; file containing the chunck of text which needs to be added to the dependencies list. Finally, it bails out (fails) instructing the user to run the command again.&lt;/p&gt;

&lt;p&gt;On the second (third, fourth, etc) run the dependencies will already be present, so the resolution process won’t be run repeteadly. This approach was chosen instead of running the resolution at every build because – even though the resolution process is quick quick – it can take tens seconds in some more complicated cases and I didn’t want to slow the build down.&lt;/p&gt;

&lt;p&gt;And, Ivy, the Apache BSF framework, etc are fetched from the Maven central repository, so they need not be preinstalled for build to complete successfully.&lt;/p&gt;

&lt;p&gt;A couple of words about choosing &lt;code&gt;${ivy.target.lib.dir}&lt;/code&gt;: if you choose it inside your Maven tree (like it was chose in the example), you will receive warnings from Maven that this might not be supported in the future. Also, be sure to add the directory to the ignore mechanism of your VCS (&lt;code&gt;.gitignore&lt;/code&gt;, &lt;code&gt;.hgignore&lt;/code&gt;, &lt;code&gt;.cvsignore&lt;/code&gt;, &lt;code&gt;svn:ignore&lt;/code&gt;, etc), as to avoid accidentally committing the libraries to VCS.&lt;/p&gt;

&lt;p&gt;If you need to add a new (Ivy) dependency to the project, the steps are as follows:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Delete the current &lt;code&gt;${ivy.target.lib.dir}&lt;/code&gt; directory &lt;/li&gt;

  &lt;li&gt;Update the part of your &lt;code&gt;pom.xml&lt;/code&gt; which writes out the &lt;code&gt;ivy.xml&lt;/code&gt; file to include the new dependency &lt;/li&gt;

  &lt;li&gt;Run a build and watch the new dependency being resolved &lt;/li&gt;

  &lt;li&gt;Update the dependencies section of the &lt;code&gt;ivy-dependencies&lt;/code&gt; profile to include the new dependency (possibly copying from &lt;code&gt;dependencies.txt&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One drawback of this method is the fact that advanced functionalities of systems based on Maven will not work with these dependencies (for example dependency analisys / graphing plugins, automated downloading of sources / javadocs, etc). A possible workaround (and a good idea in general) is to use this method for the minimal subset – just the jars which can’t be found in Maven central. All the rests (even if they are actually dependencies of the code fetched from Ivy) should be declared as a normal dependency, to be fetched from the Maven repository.&lt;/p&gt;

&lt;p&gt;Finally I would like to say that this endeavour once again showed me how flexible both Maven and Ivy/Ant can be and clarified many cornercases (like how we escape &lt;code&gt;]]&lt;/code&gt; inside of CDATA – we split it in two). And it can also be further tweaked (for example: adding a clean target to the ivy-resolve profile, so you can remove the directory with &lt;code&gt;mvn clean -P ivy-resolve&lt;/code&gt; or re-jar-ing all the downloaded jars into a single one for example &lt;a rel="nofollow" target="_blank" href="http://stackoverflow.com/questions/1821803/creating-a-bundle-jar-with-ant"&gt;like this&lt;/a&gt;, thus avoiding the need to modify the pom file every time the list of Ivy dependencies gets changed – then again signed JARs can’t be re-jarred so it is not an universal solution either).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-4359351488095248071?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=_tLUfWkBTSY:0kJZeG_gygM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=_tLUfWkBTSY:0kJZeG_gygM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=_tLUfWkBTSY:0kJZeG_gygM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=_tLUfWkBTSY:0kJZeG_gygM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=_tLUfWkBTSY:0kJZeG_gygM:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-4359351488095248071</guid>
         <pubDate>Tue, 11 Oct 2011 11:18:00 +0000</pubDate>
      </item>
      <item>
         <title>Upgrading the Options (GlobeTrotter) GI515m</title>
         <link>http://hype-free.blogspot.com/2011/10/upgrading-options-globetrotter-gi515m.html</link>
         <description>&lt;p&gt;Recently I needed to install an Options (GlobeTrotter) GI515m 3G USB modem on a machine which previously used an older version of the modem (the iCON 225). This seems a pretty common scenario (an existing user getting an update), however the process seems less-than-straight forward:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Get a second computer with the same operating system version which didn't have a 3G modem installed (for example if your target system is running Windows 7 64 bit you need a second system with Windows 7 64 bit - different skews like Home vs Ultimate are ok, but the version and &amp;quot;bitness&amp;quot; must coincide - you could also try using a virtual machine for the second machine which supports USB forwarding like VirtualBox or VMWare) &lt;/li&gt;    &lt;li&gt;Plug in the modem in the second machine. First it will recognize it as an USB stick / CD-ROM. Copy all the files from it to a separate folder (you should see files like &amp;quot;&lt;code&gt;setup.exe&lt;/code&gt;&amp;quot;). &lt;/li&gt;    &lt;li&gt;Let the setup complete. Now copy the installed drivers to the same place you've saved setup file. Under Windows 7 you would find them in the location &lt;code&gt;C:&amp;#92;Windows&amp;#92;System32&amp;#92;DriverStore&amp;#92;FileRepository&amp;#92;&lt;/code&gt; in several folders starting with &amp;quot;gth&amp;quot; (like &lt;code&gt;gthsubus_64.inf_amd64_neutral_4810563f34b37ef5&lt;/code&gt;), but here is the generic way to identify the folder:       &lt;ol&gt;       &lt;li&gt;Start Device Manager &lt;/li&gt;        &lt;li&gt;Look for one of the devices associated with the modem (you will find actually several, like GlobeTrotter GI515M - Modem Interface, Network Interface and so on) &lt;/li&gt;        &lt;li&gt;Properties -&amp;gt; Driver -&amp;gt; Driver Details. Note the name of the driver for which the provider is Option (for example &lt;code&gt;gtuhsser.sys&lt;/code&gt;)&lt;/li&gt;        &lt;li&gt;Now search your Windows folder for files ending in .inf which contain the name of driver from the previous step. This will point you to the right folders&lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;On the first computer (the one you actually want to install the modem on) remove all previous versions of the software using the Add-Remove Programs facility (you will see two-three entries but they can be easily identified by the same orange icon). Restart the computer for good measure.&lt;/li&gt;    &lt;li&gt;Copy over the setup program and the drivers from the second computer. Plug in the modem to the first computer, install the application (using the setup file captured on the second computer). Go into the device manager and look for &amp;quot;Unknown device&amp;quot;s (you should see four of them). Use the drivers captured on the second computer to resolve these issues.&lt;/li&gt;    &lt;li&gt;Unplug and replug the modem - it now should work!&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;A couple more talking points:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;don't use &amp;quot;driver manager&amp;quot; type software - they very rarely (read: never) seem to work&lt;/li&gt;    &lt;li&gt;a symptom that you've hit this problem is when the management interface (dialer / &amp;quot;Internet Everywhere&amp;quot;) for the modem starts but it gets stuck in the &amp;quot;Initializing&amp;quot; phase when you connect the modem and consumes CPU (from what I've seen with a debugger it seems to be looking for the installed device in a loop)&lt;/li&gt;    &lt;li&gt;the modem seems to be prone to overheating if the signal-strength is low (around two bars) and in this case it shuts down after ~10 minutes (I assume that this is some kind of thermal protection). You can check if this is the case by putting your hand on the bottom side of the modem. I couldn't find and solution for this, other than looking for a spot which has better signal. Using the modem in EDGE rather than 3G mode also seems to do the trick, but it has lower speeds and I don't know of any reliable method to make the modem use EDGE if 3G is also available.&lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-2975813309367234653?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=T07yHNxXgZ0:ukyrY7lmByY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=T07yHNxXgZ0:ukyrY7lmByY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=T07yHNxXgZ0:ukyrY7lmByY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=T07yHNxXgZ0:ukyrY7lmByY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=T07yHNxXgZ0:ukyrY7lmByY:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-2975813309367234653</guid>
         <pubDate>Sat, 08 Oct 2011 15:55:00 +0000</pubDate>
      </item>
      <item>
         <title>Getting the most out of your audio recording with Audacity</title>
         <link>http://hype-free.blogspot.com/2011/10/getting-most-out-of-your-audio.html</link>
         <description>&lt;p&gt;This article aims to show you some &lt;em&gt;simple&lt;/em&gt; techniques to improve the quality of your voice recording quickly and cheaply (for free actually). But first things first:&lt;/p&gt;  &lt;p&gt;The best audio is the one you don’t have to improve. Some simple steps you can perform in advance to maximize quality:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Use quality equipment. &lt;a rel="nofollow" target="_blank" href="http://www.joelonsoftware.com/articles/PodcastEquipment.html"&gt;Here&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://twit.tv/podcastequipment"&gt;are&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://www.pwop.com/podcastingkit.aspx"&gt;some&lt;/a&gt;&amp;#160;&lt;a rel="nofollow" target="_blank" href="http://nerds-central.blogspot.com/2011/09/good-quality-youtube-posts-with-cheep.html"&gt;articles&lt;/a&gt; about the equipment great-sounding podcasters use. You don’t have to spend a lot of money, but definitely stay away from the built-in laptop microphone &lt;/li&gt;    &lt;li&gt;Eliminate ambient noise as much as possible (close windows, draw the blinds, stop other electronic equipment in the room, etc) &lt;/li&gt;    &lt;li&gt;Record each person on a separate channel - if possible on a computer local to them (avoid recording trough Skype, GoToMeeting or other VoIP solutions) &lt;/li&gt;    &lt;li&gt;Try keeping the recording volume for each microphone at the optimal level – not too low, but also avoiding clipping &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;After you have the audio recording there is still a lot you can do, but it is preferable to start out with the best source material. For the example below I’ll be using the raw recordings from a recent &lt;a rel="nofollow" target="_blank" href="http://www.se-radio.net/"&gt;SE Radio podcast&lt;/a&gt;:&lt;/p&gt; &lt;a rel="nofollow" target="_blank" href="http://lh4.ggpht.com/-pxj_nuiaWgo/TpApn9YkG2I/AAAAAAAAEVA/m8V9P5DsdTY/s1600-h/tmp9FD15.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="tmp9FD1" border="0" alt="tmp9FD1" src="http://lh6.ggpht.com/-Th92EbElRnQ/TpAppSbw3XI/AAAAAAAAEVE/SbttRJPwSPY/tmp9FD1_thumb2.png?imgmax=800" width="640" height="126"/&gt;&lt;/a&gt;   &lt;p&gt;The situation with this recording is as follows:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;There are separate audio tracks for the interviewer and interviewee (good) &lt;/li&gt;    &lt;li&gt;There is background noise on the tracks (easily correctable) &lt;/li&gt;    &lt;li&gt;Both persons were picked up by both microphones (correctable) &lt;/li&gt;    &lt;li&gt;The interviewer has some clipping (partially correctable – luckily it’s not the interviewee who has clipping) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The steps to improve the quality of this recording are as follows:&lt;/p&gt;  &lt;p&gt;First, install the &lt;a rel="nofollow" target="_blank" href="http://wiki.audacityteam.org/wiki/Nyquist_Effect_Plug-ins#Noise_Gate"&gt;Noise Gate plugin&lt;/a&gt; for Audacity, since it requires program restart (under Windows you have to copy the downloaded &lt;code&gt;noisegate.ny&lt;/code&gt; to &lt;code&gt;C:&amp;#92;Program Files (x86)&amp;#92;Audacity 1.3 Beta (Unicode)&amp;#92;Plug-Ins&lt;/code&gt; or to a similar location, under Linux you have to place it in &lt;code&gt;/usr/share/audacity&lt;/code&gt;). After copying the file you have to close and restart Audacity. To verify that the plugin was properly installed check in the Effect menu – you should see an entry title “Noise gate”.&lt;/p&gt;  &lt;p&gt;Now that we have Audacity all set up and the plugin installed, first split the stereo track into mono tracks, since they don’t actually represent left-right channels but rather two speakers which will be mixed together at the end. For this click on the arrow after the filename in the track and select “Split Stereo to Mono”. Sidenote: some people will prefer to mix different speakers in podcasts with different panning (that is to the left or to the right). I would advise against this: it is distracting if you are doing something else while listening to the podcast (like walking / jogging / riding a bike / etc). It can also backfire if for some reason the listening device is missing one of the channels (the “damaged headphone” scenario).&lt;/p&gt;  &lt;p&gt;The first thing will be to remove the constant background noise (like AC hum for example). To do this zoom in (Ctrl + 1) and look for low volume zones. Select those zones and go to Effects –&amp;gt; Noise Removal –&amp;gt; Get Noise Profile. Now select a zone where the noise is mixed with speech and test out the settings (Effect –&amp;gt; Noise Removal –&amp;gt; Ok). After the test you can use Undo (Ctrl + Z) to roll back the changes. You should watch for the noise being removed but also the natural sound of the voice being preserved (too aggressive of a noise removal can lead to a “robot voice” effect). If you are satisfied, you can go ahead and apply it to the entire track. Also, since the noise source might change during the recording, you should at least do a quick scroll to check for other low-volume zones which can be a sign of noise. If you find noise from other sources, you can use the same steps to remove it.&lt;/p&gt;  &lt;p&gt;Now that you have removed the noise, the next step would be to remove the voices from the channels they don’t belong to. This is where we’ll be using the Noise Gate plugin: since there is a considerable level difference between the wanted audio and the unwanted audio on each channel, we can just declare everything below a certain volume “noise” and use the plugin to silence it. A couple of tips:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;This needs to be done separately for each channel, since the cutoff volume will be different &lt;/li&gt;    &lt;li&gt;You can use the “Analyse Noise Level” function of the plugin to gauge the approximate level of the cutoff volume – this will only give you an estimate and you will have to play around with the settings a little bit to find the optimal volume &lt;/li&gt;    &lt;li&gt;Use a “Level reduction” of –100 dB to completely filter out the sound and an “Attack/Decay” of 1000 milliseconds to avoid false positives &lt;/li&gt;    &lt;li&gt;As with all the steps, you can experiment on a smaller portion of the audio file (since it is much quicker) to fine tune the settings by repeatedly applying the effect with different parameters and undoing (Ctrl+Z) the result after evaluation. When the parameters seem right, just select the entire track and press Ctrl+R (Repeat last effect)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;After we’ve finished with both tracks, we have a better situation:&lt;/p&gt;  &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://lh6.ggpht.com/-bQuXJCuceZk/TpAprrOXcqI/AAAAAAAAEVI/8Pz8XHdC1KA/s1600-h/tmpA9355.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="tmpA935" border="0" alt="tmpA935" src="http://lh4.ggpht.com/-UBD2l2IuZ6M/TpApsxxchEI/AAAAAAAAEVM/OvfXFt8SFdc/tmpA935_thumb2.png?imgmax=800" width="640" height="127"/&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now we will fix the clipping as much as possible (a perfect fix isn’t possible since clipping means that information got lost and all the plugins can do is to “guess” what the information might have looked like). First we reduce the aplification of the second track (the one which contains the clipping) by 10 dB as the Clip Fix plugin suggests (Effect –&amp;gt; Aplify –&amp;gt; –10 dB) after which we use the Clip Fix plugin. Unfortunately this plugin runs very slowly if we would to apply it to the entire track at once. Fortunately we have a reasonable workaround: select portions of the track and apply the plugin to them individually. After the first application you can use the “Repeat last effect” shortcut (Ctrl+R) to speed up the operation. Sidenote: it is a good habit to use the “Find Zero Crossing” function whenever you do a selection (the shortcut is Z – so whenever you select a portion, just press Z afterwards). This eliminates some weird artifacts when cutting / pasting / silencing part of the audio and it might even help when applying different effects. The fixed audio looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://lh6.ggpht.com/-OTPZJgmoVZE/TpApuBGpFbI/AAAAAAAAEVQ/R0cNJMaawGw/s1600-h/tmpA4D3%25255B5%25255D.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="tmpA4D3" border="0" alt="tmpA4D3" src="http://lh4.ggpht.com/-Tl2basYoDrQ/TpApvWB-svI/AAAAAAAAEVU/K3KxlkOfjw0/tmpA4D3_thumb%25255B2%25255D.png?imgmax=800" width="640" height="125"/&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now, that all the cleanup steps have been performed, there is one last step which is as important as the cleanup: maximizing the audible volume without introducing clipping. This is very important because all devices can &lt;em&gt;reduce&lt;/em&gt; volume but few of them can &lt;em&gt;increase&lt;/em&gt; it (some exceptions being: the Linux audio stack and VLC). The easiest way to do this is by using the Levelator (note: while the Levelator is free – as in beer – and does not restrict what you can do with the output, it is not free as in freedom if this is a consideration for you).&lt;/p&gt;  &lt;p&gt;To do this, export the audio to WAV (make sure that all tracks are unmuted during export) and run the Levelator on it. The end result will look like the following:&lt;/p&gt;  &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://lh3.ggpht.com/-J5yUvt9KAgc/TpApwQStEeI/AAAAAAAAEVY/0weSgZTtRYc/s1600-h/tmpC726%25255B5%25255D.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" title="tmpC726" border="0" alt="tmpC726" src="http://lh6.ggpht.com/-N4ISXjxSgWA/TpApxE1lutI/AAAAAAAAEVc/W1Ncs98kSmo/tmpC726_thumb%25255B2%25255D.png?imgmax=800" width="640" height="63"/&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Of course the Levelator isn’t magic pixie dust either, so here are a couple of things to check after it has been run:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Did it amplify some residual noise which wasn’t available in the initial audio? (if so, you should remove it using the Noise Removal plugin)&lt;/li&gt;    &lt;li&gt;Did it miss segments? (it is rare, but it happens – those segments need to be amplified manually)&lt;/li&gt;    &lt;li&gt;It results in “weird” sounding audio if the recording has been preprocessed by a dynamic compressor – for example GoToMeeting has an option to improve sound quality which uses dynamic compression and thus makes the recording unsuitable for the use with Levelator&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;That’s it for this rather long article. Don’t be discouraged by the length of the article: after going over the steps a couple of times, it shouldn’t take longer than 15 minutes to process a 2 hour interview (excluding the cutting / pasting / moving parts around) and you will gain listeners because of the higher production value.&lt;/p&gt;  &lt;p&gt;A final note on the output formats: while during processing you should always use lossless formats, the final output format I recommend is: MP3 at 64 kbps CBR, Joint Stereo, 22050 MHz sampling rate. I found that this is the best balance between quality, file size and compatibility with the most playback devices out there.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-2434566662458314586?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=7mWOYrUkee0:O3O00h3wnCU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=7mWOYrUkee0:O3O00h3wnCU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=7mWOYrUkee0:O3O00h3wnCU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=7mWOYrUkee0:O3O00h3wnCU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=7mWOYrUkee0:O3O00h3wnCU:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-2434566662458314586</guid>
         <pubDate>Sat, 08 Oct 2011 13:45:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://lh6.ggpht.com/-Th92EbElRnQ/TpAppSbw3XI/AAAAAAAAEVE/SbttRJPwSPY/s72-c/tmp9FD1_thumb2.png?imgmax=800" width="72" />
      </item>
      <item>
         <title>More videos</title>
         <link>http://hype-free.blogspot.com/2011/09/more-videos.html</link>
         <description>&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://vimeo.com/11693318"&gt;Two inches to the right&lt;/a&gt; via &lt;a rel="nofollow" target="_blank" href="http://www.room362.com/mubixlinks/2010/7/11/2-inches-to-the-right.html"&gt;mubix&lt;/a&gt;:&lt;/p&gt;

&lt;center&gt;&lt;/center&gt; 

&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://vimeo.com/19084266"&gt;Jane Austen's Fight Club&lt;/a&gt; via &lt;a rel="nofollow" target="_blank" href="http://wondermark.com/check-out-jane-austens-fight-club/"&gt;Wondermark&lt;/a&gt;:&lt;/p&gt;

&lt;center&gt;&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://vimeo.com/19084266"&gt;Jane Austen's Fight Club&lt;/a&gt; from &lt;a rel="nofollow" target="_blank" href="http://vimeo.com/keithpaugh"&gt;Keith Paugh&lt;/a&gt; on &lt;a rel="nofollow" target="_blank" href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;/center&gt;

&lt;p&gt;Sink The Bismarck:&lt;/p&gt;

&lt;center&gt;&lt;/center&gt; 

&lt;p&gt;Storm - a beat poem:&lt;/p&gt;

&lt;center&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-2220467468177564559?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=vtsgYgd1M5A:NXowZwUxEnI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=vtsgYgd1M5A:NXowZwUxEnI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=vtsgYgd1M5A:NXowZwUxEnI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=vtsgYgd1M5A:NXowZwUxEnI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=vtsgYgd1M5A:NXowZwUxEnI:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-2220467468177564559</guid>
         <pubDate>Thu, 22 Sep 2011 23:23:00 +0000</pubDate>
      </item>
      <item>
         <title>Of maps and men</title>
         <link>http://hype-free.blogspot.com/2011/09/of-maps-and-men.html</link>
         <description>&lt;p&gt;A very cool &lt;a rel="nofollow" target="_blank" href="http://migrationsmap.net/#/JPN/departures"&gt;visualization of the imigration / emigration data&lt;/a&gt;:&lt;/p&gt;

&lt;div class="separator" style="clear:both;text-align:center;"&gt;
&lt;a rel="nofollow" target="_blank" href="http://migrationsmap.net/#/JPN/departures" style="margin-left:1em;margin-right:1em;"&gt;&lt;img border="0" height="174" width="320" src="http://2.bp.blogspot.com/-Dwdqbim7Fm4/Tnn4P5DPHZI/AAAAAAAAEU0/iLOqw-j2zU8/s320/migrationsmap.png"/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;To remember: the relative sizes of countries / continents on most maps is not representative of the true ratios, because most &lt;a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Map_projection"&gt;map projections&lt;/a&gt; were not meant for that. If you want to play around with different projections, here is &lt;a rel="nofollow" target="_blank" href="http://demonstrations.wolfram.com/WorldMapProjections/"&gt;a nice page from Wolfram&lt;/a&gt; (unfortunately you have to install a ~100MB plugin to get it to work). If you need the raw data, just &lt;a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/List_of_countries_by_total_area_(graphical)"&gt;go to Wikipedia&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Finally, here is a good essay from Asimov (from 1989) about the scientific process: &lt;a rel="nofollow" target="_blank" href="http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm"&gt;The Relativity of Wrong&lt;/a&gt; - small nitpick: it would have been even better if it had used the metric system or at least it didn't switch from miles to inches in he middle of the essay.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-565843440058996087?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=Bz7PY-0-5wE:UeMme6UW1pE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=Bz7PY-0-5wE:UeMme6UW1pE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=Bz7PY-0-5wE:UeMme6UW1pE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=Bz7PY-0-5wE:UeMme6UW1pE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=Bz7PY-0-5wE:UeMme6UW1pE:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-565843440058996087</guid>
         <pubDate>Wed, 21 Sep 2011 17:53:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/-Dwdqbim7Fm4/Tnn4P5DPHZI/AAAAAAAAEU0/iLOqw-j2zU8/s72-c/migrationsmap.png" width="72" />
      </item>
      <item>
         <title>Informative videos about copyright and remixing issues</title>
         <link>http://hype-free.blogspot.com/2011/09/informative-videos-about-copyright-and.html</link>
         <description>&lt;p&gt;Walking on Eggshells: Documentary about Remix Culture - via &lt;a rel="nofollow" target="_blank" href="http://comixtalk.com/walking_eggshells_documentary_about_remix_culture"&gt;the comixtalk blog&lt;/a&gt;:&lt;/p&gt;

&lt;center&gt;&lt;/center&gt; 

&lt;p&gt;Internet is Freedom - a speech given by Lawrence Lessig at the Italian Parlament - via &lt;a rel="nofollow" target="_blank" href="http://blog.security4all.be/2010/03/three-strike-law-threatening-belgium.html"&gt;the Security4All blog&lt;/a&gt;:&lt;/p&gt;

&lt;center&gt;&lt;/center&gt; 

&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://www.pbs.org/independentlens/copyright-criminals/"&gt;PBS: Copyright Criminals&lt;/a&gt; - while the video is not online, you can watch the trailer and listen to some &lt;a rel="nofollow" target="_blank" href="http://ccmixter.org/copyrightcriminals/view/contest/winners"&gt;remixes inspired by it&lt;/a&gt; which are under a CC license.&lt;/p&gt;

&lt;p&gt;And just as a bonus: a cynical video about filtering the Internet - via &lt;a rel="nofollow" target="_blank" href="http://www.tjmcintyre.com/2010/05/for-safer-and-cleaner-internet.html"&gt;the IT Law in Ireland blog&lt;/a&gt;:&lt;/p&gt;

&lt;center&gt;&lt;/center&gt; 

&lt;p&gt;&lt;em&gt;Update&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;The History of Copyright Law - via &lt;a rel="nofollow" target="_blank" href="http://laughingsquid.com/the-history-of-copyright-law/"&gt;the laughing squid&lt;/a&gt;:&lt;/p&gt;

&lt;center&gt;&lt;/center&gt; 

&lt;p&gt;TED Johanna Blakley: Lessons from fashion's free culture&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update&lt;/em&gt;: it seems that &lt;a rel="nofollow" target="_blank" href="http://hype-free.blogspot.com/2010/06/copyright-is-not-theft.html"&gt;I already posted&lt;/a&gt; the last video - admittedly I'm becoming senile with the advance of the years :-)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-8033129525163711312?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=CQ1JuUCcFUU:JghyIaq4KfQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=CQ1JuUCcFUU:JghyIaq4KfQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=CQ1JuUCcFUU:JghyIaq4KfQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=CQ1JuUCcFUU:JghyIaq4KfQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=CQ1JuUCcFUU:JghyIaq4KfQ:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-8033129525163711312</guid>
         <pubDate>Wed, 21 Sep 2011 17:02:00 +0000</pubDate>
      </item>
      <item>
         <title>Recording test performance with Jenkins</title>
         <link>http://hype-free.blogspot.com/2011/09/recording-test-performance-with-jenkins.html</link>
         <description>&lt;p&gt;In many (most?) systems performance is an important non-functional requirement. And even if you attained the required performance, it is useful to keep an eye on it to detect if a codechange involuntarily deteriorates it. Enter the &lt;a rel="nofollow" target="_blank" href="https://wiki.jenkins-ci.org/display/JENKINS/Performance+Plugin"&gt;Performance plugin&lt;/a&gt; for &lt;a rel="nofollow" target="_blank" href="http://jenkins-ci.org/"&gt;Jenkins&lt;/a&gt;. Using it you can record the performance (as in: speed of execution) of your test runs and set alter thresholds which cause the build to fail. Also it can generate graphs like the one below:&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://www.transylvania-jug.org/wp-content/uploads/2011/09/respondingTimeGraph.png"/&gt;&lt;/p&gt;  &lt;p&gt;To do this:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Have Jenkins installed &lt;/li&gt;    &lt;li&gt;Intstall the Performance plugin (or upgrade to the latest version, since there was &lt;a rel="nofollow" target="_blank" href="https://issues.jenkins-ci.org/browse/JENKINS-9655"&gt;a bug&lt;/a&gt; in earlier versions which prevented the parsing of the JUnit reports) &lt;/li&gt;    &lt;li&gt;For your build check “Publish Performance test result report” and add locations where the reports should be collected from. &lt;/li&gt;    &lt;li&gt;That’s it! Future builds will collect the performance data and you can access it using the “Performance Trend” link (at the job level) or the “Performance Report” link (at the build level) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;More details / caveats:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The paths are defined as ANT file expressions (that is you can use “**” to specify an arbitrary level of directories, for example: &lt;code&gt;target/surefire-reports/**/TEST*.xml&lt;/code&gt;) &lt;/li&gt;    &lt;li&gt;JUnit performance is grouped at the test-class level, thus it probably makes sense create separate project / module which group the performance test cases. &lt;/li&gt;    &lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://www.transylvania-jug.org/archives/174"&gt;Benchmarking is hard&lt;/a&gt; and JUnit doesn’t give you any provisions to do warmup or to repeat the tests multiple times. To make your test as relevant as possible you should do this manually (warmup code can be placed in the @Before method for example). A properly set up JMeter task accounts for this already. &lt;/li&gt;    &lt;li&gt;TestNG tests can also be parsed as long as the test run is set to produce a JUnit compatible report. &lt;/li&gt;    &lt;li&gt;Slightly off-topic: to integrate a JMeter run into your maven build, you can use the &lt;a rel="nofollow" target="_blank" href="http://maven.apache.org/plugins/maven-antrun-plugin/"&gt;AntRun &lt;/a&gt;plugin:&lt;code&gt;        &lt;pre&gt;&amp;lt;build&amp;gt;
 &amp;lt;plugins&amp;gt;
  &amp;lt;plugin&amp;gt;
   &amp;lt;artifactId&amp;gt;maven-antrun-plugin&amp;lt;/artifactId&amp;gt;
   &amp;lt;version&amp;gt;1.6&amp;lt;/version&amp;gt;
   &amp;lt;executions&amp;gt;
    &amp;lt;execution&amp;gt;
     &amp;lt;phase&amp;gt;test&amp;lt;/phase&amp;gt;
     &amp;lt;configuration&amp;gt;
      &amp;lt;target&amp;gt;
       &amp;lt;taskdef name=&amp;quot;jmeter&amp;quot; classpath=&amp;quot;C:&amp;#92;work&amp;#92;ant&amp;#92;lib&amp;#92;ant-jmeter-1.1.0.jar&amp;quot;
        classname=&amp;quot;org.programmerplanet.ant.taskdefs.jmeter.JMeterTask&amp;quot;/&amp;gt;
       &amp;lt;jmeter jmeterhome=&amp;quot;C:&amp;#92;jakarta-jmeter-2.5&amp;#92;&amp;quot;
        testplan=&amp;quot;${basedir}/src/test/resources/example.jmx&amp;quot;
        resultlog=&amp;quot;${basedir}/target/JMeterResults.jtl&amp;quot;/&amp;gt;
      &amp;lt;/target&amp;gt;
     &amp;lt;/configuration&amp;gt;
     &amp;lt;goals&amp;gt;
      &amp;lt;goal&amp;gt;run&amp;lt;/goal&amp;gt;
     &amp;lt;/goals&amp;gt;
    &amp;lt;/execution&amp;gt;
   &amp;lt;/executions&amp;gt;
  &amp;lt;/plugin&amp;gt;
 &amp;lt;/plugins&amp;gt;
&amp;lt;/build&amp;gt;&lt;/pre&gt;
    &lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Article originally posted to the &lt;a rel="nofollow" target="_blank" href="http://www.transylvania-jug.org/archives/241"&gt;Transylvania JUG blog&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-6734979337484887682?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=8keg7Tqqx4Y:LPLOemhJAG0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=8keg7Tqqx4Y:LPLOemhJAG0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=8keg7Tqqx4Y:LPLOemhJAG0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=8keg7Tqqx4Y:LPLOemhJAG0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=8keg7Tqqx4Y:LPLOemhJAG0:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-6734979337484887682</guid>
         <pubDate>Tue, 20 Sep 2011 19:16:00 +0000</pubDate>
      </item>
      <item>
         <title>Audio quality redux</title>
         <link>http://hype-free.blogspot.com/2011/09/audio-quality-redux.html</link>
         <description>&lt;p&gt;Yet an other example for how &lt;a rel="nofollow" target="_blank" href="http://hype-free.blogspot.com/2011/03/audio-quality.html"&gt;simple steps&lt;/a&gt; can improve the audio quality considerably. The clip below is taken from &lt;a rel="nofollow" target="_blank" href="http://garry.posterous.com/how-steve-jobs-handles-trolls-wwdc-1997"&gt;this blogpost&lt;/a&gt; (which I originally found trough &lt;a rel="nofollow" target="_blank" href="http://news.ycombinator.com/item?id=2944579"&gt;Hacker News&lt;/a&gt;). You can find the processed version &lt;a rel="nofollow" target="_blank" href="http://www.youtube.com/watch?v=lQadOr9B7Qc"&gt;here&lt;/a&gt;, or use the controls below to do a quick A/B comparison of the two. The processing was very simple (1. noise removal and 2. running trough the Levelator) and quick.&lt;/p&gt;

  
  
  
  
  &lt;style&gt;
#vplayerWrapper {
width:424px;
height:315px;
}

.vplayer {
overflow:hidden;border:1px solid black;}

#firstVPlayer {
float:left;}

#secondVPlayer {
float:right;}

.vplayerContainer {
width:420px;
height:315px;
}
&lt;/style&gt;


&lt;div id="vplayerWrapper"&gt;
  &lt;div id="firstVPlayer" class="vplayer"&gt;
    &lt;div id="firstVPlayerContainer" class="vplayerContainer"&gt;
      &lt;div id="firstVPlayerTarget"&gt;&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div id="secondVPlayer" class="vplayer"&gt;
    &lt;div id="secondVPlayerContainer" class="vplayerContainer"&gt;
      &lt;div id="secondVPlayerTarget"&gt;&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;input type="button" id="play"&gt;
Position:
&lt;div id="video-position" style="margin:10px;width:420px;"&gt;&lt;/div&gt;
Volume:
&lt;div id="video-volume" style="margin:10px;width:100px;"&gt;&lt;/div&gt;
Crossfade (Original - New):
&lt;div id="video-crossfade" style="margin:10px;width:100px;"&gt;&lt;/div&gt;

 

&lt;p&gt;PS: For people reading the post trough an RSS reader: you probably need to click trough &lt;a rel="nofollow" target="_blank" href="http://hype-free.blogspot.com/2011/09/audio-quality-redux.html"&gt;to the site&lt;/a&gt; to see the comparison in action, since most (all?) RSS readers filter out javascript for security reasons.&lt;/p&gt;

&lt;p&gt;PS: If you are interested in the simple script which was use to interact with the two youtube players, you can find it in &lt;a rel="nofollow" target="_blank" href="http://code.google.com/p/hype-free/source/browse/trunk/youtube_mix/youtube_mix.html"&gt;my code repository&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-1824526701307803176?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=KkOfrLNaAZI:vBf-t5EHGo4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=KkOfrLNaAZI:vBf-t5EHGo4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=KkOfrLNaAZI:vBf-t5EHGo4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=KkOfrLNaAZI:vBf-t5EHGo4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=KkOfrLNaAZI:vBf-t5EHGo4:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-1824526701307803176</guid>
         <pubDate>Tue, 20 Sep 2011 15:20:00 +0000</pubDate>
      </item>
      <item>
         <title>Power Line Humm Removal With Audacity</title>
         <link>http://hype-free.blogspot.com/2011/09/power-line-humm-removal-with-audacity.html</link>
         <description>&lt;p&gt;As a response to George Starcher's &lt;a rel="nofollow" target="_blank" href="http://www.youtube.com/watch?v=u14m99vFcE4"&gt;Removing Power Line Hum from Audio with GarageBand&lt;/a&gt; I would like to post a quick tutorial on how to do the same with &lt;a rel="nofollow" target="_blank" href="http://audacity.sourceforge.net/"&gt;Audacity&lt;/a&gt;:&lt;/p&gt;

&lt;center&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-3991939076216254144?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=h7qfWAdoIpM:8h1cvn7KnkA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=h7qfWAdoIpM:8h1cvn7KnkA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=h7qfWAdoIpM:8h1cvn7KnkA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=h7qfWAdoIpM:8h1cvn7KnkA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=h7qfWAdoIpM:8h1cvn7KnkA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-3991939076216254144</guid>
         <pubDate>Sun, 18 Sep 2011 16:45:00 +0000</pubDate>
      </item>
      <item>
         <title>Running JRuby on 64 bit Windows</title>
         <link>http://hype-free.blogspot.com/2011/09/running-jruby-on-64-bit-windows.html</link>
         <description>&lt;p&gt;Usually it is as simple as: download, install, run. You can run into problems however if you have both the 32 bit and 64 bit JVMs installed (which is quite often) because it will try to use the 32 bit JVM. You can check which JVM is being used from the command line:&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;
jruby --version
jruby 1.6.3 (ruby-1.8.7-p330) (2011-07-07 965162f) (Java HotSpot(TM) 64-Bit Server VM 1.7.0) [&lt;strong&gt;Windows 7-amd64-java&lt;/strong&gt;] # 64 bit
jruby 1.6.3 (ruby-1.8.7-p330) (2011-07-07 965162f) (Java HotSpot(TM) Client VM 1.6.0_26) [Windows 7-x86-java] # 32 bit
&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;To work around this issue, specify the JVM to use in your jruby.bat (or other batch files installed by gems like vagrant.bat) explicitly. Example jruby.bat:&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;
@ECHO OFF
java -Djruby.home=C:&amp;#92;jruby-1.6.3 -jar  -jar "C:&amp;#92;jruby-1.6.3&amp;#92;lib&amp;#92;jruby.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;Example vagrant.bat&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;
@ECHO OFF
java -Djruby.home=C:&amp;#92;jruby-1.6.3 -jar "C:&amp;#92;jruby-1.6.3&amp;#92;lib&amp;#92;jruby.jar" "C:/jruby-1.6.3/bin/vagrant" %1 %2 %3 %4 %5 %6 %7 %8 %9
&lt;/pre&gt;&lt;/code&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-4958252057276111290?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=tjtY6eq2q0I:ueEzQ6tOaZk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=tjtY6eq2q0I:ueEzQ6tOaZk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=tjtY6eq2q0I:ueEzQ6tOaZk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=tjtY6eq2q0I:ueEzQ6tOaZk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=tjtY6eq2q0I:ueEzQ6tOaZk:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-4958252057276111290</guid>
         <pubDate>Tue, 13 Sep 2011 19:33:00 +0000</pubDate>
      </item>
      <item>
         <title>Using less with syntax highlight</title>
         <link>http://hype-free.blogspot.com/2011/09/using-less-with-syntax-highlight.html</link>
         <description>&lt;p&gt;You can use vim as your pager and obtain two benefits: syntax highlight and access to all the advanced commands (like search). You can do this under ubuntu by adding the following line to your &lt;code&gt;~/.bashrc&lt;/code&gt;:&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;
alias less='/usr/share/vim/vimcurrent/macros/less.sh'
&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;Note:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You have to have vim installed (which doesn't come by default, but it is as simple as &lt;code&gt;sudo apt-get install vim-nox&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;It supports viewing directly bz2 and gz archives as well as pipe input from stdin (but in that case it fails sometime to highlight)&lt;/li&gt;
&lt;li&gt;Edit commands (like dd) are disabled, so you can't accidentally modify the file you are viewing&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-929451609337105561?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=4hT-dhI3rxI:dohQnGZ3W9k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=4hT-dhI3rxI:dohQnGZ3W9k:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=4hT-dhI3rxI:dohQnGZ3W9k:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=4hT-dhI3rxI:dohQnGZ3W9k:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=4hT-dhI3rxI:dohQnGZ3W9k:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-929451609337105561</guid>
         <pubDate>Tue, 13 Sep 2011 19:14:00 +0000</pubDate>
      </item>
      <item>
         <title>Link love</title>
         <link>http://hype-free.blogspot.com/2011/09/link-love.html</link>
         <description>&lt;p&gt;Here are a couple of close friends' blogs. They are just starting out writing, but hopefully giving them some link love will encourage them to write even more great content. Without further ado, in no particular order:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://nosuchhost.blogspot.com/"&gt;No Such Host&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://www.scientixs.com/"&gt;Scienti-XS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://vtopan.wordpress.com/"&gt;VTopan&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-1187035165233071601?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=HJbwRmyXc2M:Skgl9PeF89Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=HJbwRmyXc2M:Skgl9PeF89Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=HJbwRmyXc2M:Skgl9PeF89Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=HJbwRmyXc2M:Skgl9PeF89Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=HJbwRmyXc2M:Skgl9PeF89Q:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-1187035165233071601</guid>
         <pubDate>Fri, 09 Sep 2011 18:23:00 +0000</pubDate>
      </item>
      <item>
         <title>100 years of style</title>
         <link>http://hype-free.blogspot.com/2011/09/100-years-of-style.html</link>
         <description>&lt;p&gt;A very entertaining video in the style of &lt;a rel="nofollow" target="_blank" href="http://www.youtube.com/watch?v=dMH0bHeiRNg"&gt;Evolution of Dance&lt;/a&gt;:&lt;/p&gt;

&lt;center&gt;&lt;/center&gt; 

&lt;p&gt;Hattip to &lt;a rel="nofollow" target="_blank" href="http://refresh.ro/2011/09/100-de-ani-de-moda-londoneza/"&gt;refresh.ro&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-2017888586301986059?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=64ByBjEklcM:dQ6FIut78Zs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=64ByBjEklcM:dQ6FIut78Zs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=64ByBjEklcM:dQ6FIut78Zs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=64ByBjEklcM:dQ6FIut78Zs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=64ByBjEklcM:dQ6FIut78Zs:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-2017888586301986059</guid>
         <pubDate>Tue, 06 Sep 2011 13:15:00 +0000</pubDate>
      </item>
      <item>
         <title>Quick'n'dirty Mediawiki file crawler</title>
         <link>http://hype-free.blogspot.com/2011/09/quickm.html</link>
         <description>&lt;code&gt;&lt;pre&gt;
URL='http://10.0.0.1' MIME='image/jpeg' &amp;#92;
  bash -c 'wget -q -O - "$URL/wiki/index.php?title=Special:MIMESearch&amp;mime=$MIME&amp;limit=500&amp;offset=0" &amp;#92;
  | grep -Po "&amp;#92;/wiki&amp;#92;/images[^&amp;#92;"]+" &amp;#92;
  | xargs -n1 -I {} wget "$URL{}"'
&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;What it does: it uses the "MIME search" functionality on the wiki to locate files of a certain mime type and then xargs+wget each of them.&lt;/p&gt;

&lt;p&gt;Limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A maximum of 500 files are downloaded&lt;/li&gt;
&lt;li&gt;Downloads are not parallelized, thus slower than they could be&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-6506121011140571629?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=4EzJ6L5B8Z8:SR1PWqpEw00:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=4EzJ6L5B8Z8:SR1PWqpEw00:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=4EzJ6L5B8Z8:SR1PWqpEw00:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=4EzJ6L5B8Z8:SR1PWqpEw00:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=4EzJ6L5B8Z8:SR1PWqpEw00:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-6506121011140571629</guid>
         <pubDate>Tue, 06 Sep 2011 12:36:00 +0000</pubDate>
      </item>
      <item>
         <title>Creating a non-MAC bound CentOS 6 machine</title>
         <link>http://hype-free.blogspot.com/2011/09/creating-non-mac-bound-centos-6-machine.html</link>
         <description>&lt;p&gt;I was building VMs to be deployed with &lt;a rel="nofollow" target="_blank" href="http://vagrantup.com/"&gt;Vagrant&lt;/a&gt; / &lt;a rel="nofollow" target="_blank" href="http://www.virtualbox.org/"&gt;Virtualbox&lt;/a&gt; for our QAs and discovered that on new instantiations of the machine the networking interface wasn't coming up. The problem was that Virtualbox was assigning a random MAC address to the NIC (and rightly so, to avoid conflicts). I used the following steps to solve this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Remove the HWADDR line from &lt;code&gt;/etc/sysconfig/network-scripts/ifcfg/eth0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Delete the file &lt;code&gt;/etc/udev/rules.d/70-persistent-net.rules&lt;/code&gt; (&lt;a rel="nofollow" target="_blank" href="http://bachem.wordpress.com/2010/08/27/udev-renamed-network-interface-eth0-to-eth5/"&gt;hat tip&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These two steps are specific to CentOS 6 (on 5.x the first step is sufficient). Also, the second if is recreated at the next boot, thus after rm-ing it, you should shut down the machine and package it (not start it again, or if you do, you should remove the file again).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35005627-5570665330165213031?l=hype-free.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=0x01FlVYsOo:HmKzva6ATZA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=0x01FlVYsOo:HmKzva6ATZA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=0x01FlVYsOo:HmKzva6ATZA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?i=0x01FlVYsOo:HmKzva6ATZA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Hype-free?a=0x01FlVYsOo:HmKzva6ATZA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Hype-free?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>Attila-Mihaly Balazs</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-35005627.post-5570665330165213031</guid>
         <pubDate>Mon, 05 Sep 2011 10:04:00 +0000</pubDate>
      </item>
   </channel>
</rss><!-- fe4.yql.bf1.yahoo.com compressed/chunked Mon Jan 30 19:46:37 UTC 2012 -->

