<?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>Technical Details &#187; Uncategorized</title>
	<atom:link href="http://techdetails.agwego.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://techdetails.agwego.com</link>
	<description>Software this and that</description>
	<lastBuildDate>Wed, 14 Sep 2011 04:42:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>VMWare Server 2 on Fedora Core 14</title>
		<link>http://techdetails.agwego.com/2011/09/14/217/</link>
		<comments>http://techdetails.agwego.com/2011/09/14/217/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 04:42:58 +0000</pubDate>
		<dc:creator>techdetails</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://techdetails.agwego.com/?p=217</guid>
		<description><![CDATA[I gave up on Fedora Core 15 (for now)
Prerequisites:

Fedora Core 14 (no updates)
VMware-server-2.0.2-203138
Radu Cotescu&#8217;s patch script
Ramon de Carvalho Valle&#8217;s patch #2

Install Fedora, I use the Software Developer version with the Fedora Packager.
Unpack raducotescu-vmware-server-linux-2.6.3x-kernel-release-1.6-0-gbb26dce.zip, copy VMware-server-2.0.2-203138-update-2.patch into raducotescu-vmware-server-linux-2.6.3x-kernel-e26b34e, you can either overwrite the original vmware-server-2.0.2-203138-update.patch file or update vmware-server-2.0.x-kernel-2.6.3x-install.sh to use the patch-2 file.
Disable selinux
Update /etc/services [...]]]></description>
			<content:encoded><![CDATA[<p>I gave up on Fedora Core 15 (for now)</p>
<p>Prerequisites:</p>
<ul>
<li><a href="http://fedoraproject.org/en/get-fedora">Fedora Core 14</a> (no updates)</li>
<li><a href="https://www.vmware.com/tryvmware/p/activate.php?p=server20&amp;lp=1">VMware-server-2.0.2-203138</a></li>
<li>Radu Cotescu&#8217;s <a href="http://radu.cotescu.com/how-to-install-vmware-server-2-0-x-on-ubuntu-9-10-karmic-koala/">patch script</a></li>
<li>Ramon de Carvalho Valle&#8217;s <a href="http://www.bbok.org/8th/Blog/8280">patch #2</a></li>
</ul>
<p>Install Fedora, I use the Software Developer version with the Fedora Packager.</p>
<p>Unpack raducotescu-vmware-server-linux-2.6.3x-kernel-release-1.6-0-gbb26dce.zip, copy VMware-server-2.0.2-203138-update-2.patch into raducotescu-vmware-server-linux-2.6.3x-kernel-e26b34e, you can either overwrite the original vmware-server-2.0.2-203138-update.patch file or update vmware-server-2.0.x-kernel-2.6.3x-install.sh to use the patch-2 file.</p>
<p>Disable selinux</p>
<p>Update /etc/services so that 902 reads as follows:</p>
<pre>vmware-authd    902/tcp</pre>
<p>Create a link to the kernel headers:</p>
<pre>ln -s "/usr/src/kernels/$(uname -r)" /usr/src/linux</pre>
<p>Add UTS_RELEASE to /usr/src/linux/include/linux/version.h (see <a href="https://blog.tuinslak.org/vmware-server-and-kernel-2-6-33">https://blog.tuinslak.org/vmware-server-and-kernel-2-6-33</a>):</p>
<pre>echo "#define UTS_RELEASE \"$(uname -r)\"" &gt;&gt; /usr/src/linux/include/linux/version.h</pre>
<p>Finally run Radu&#8217;s script giving it the directory of your vmwarer server 2.0.2 archive.</p>
<pre>./vmware-server-2.0.x-kernel-2.6.3x-install.sh /PATH/TO/VMware-server-2.0.2-203138.x86_64.tar.gz</pre>
<p>If all goes well you will have completed your install without error.</p>
<p>A couple of final cleanup issues you will need to rename libxml2.so.2 for vmware to something else (see <a href="http://communities.vmware.com/message/1670144#1670144">http://communities.vmware.com/message/1670144#1670144</a>)</p>
<pre>mv /usr/lib/vmware/lib/libxml2.so.2/libxml2.so.2 /usr/lib/vmware/lib/libxml2.so.2/SKIP.libxml2.so.2</pre>
<p>And finally update /etc/init.d/vmware script so it starts after networking has properly started, the default configuration doesn&#8217;t do this on my machine.</p>
<p>Update the chkconfig line to read:</p>
<pre># chkconfig: 35 35 20</pre>
<p>Make sure the init scripts are properly linked:</p>
<pre>chkconfig --del vmware</pre>
<pre>chkconfig --add vmware</pre>
<pre>chkconfig --level 35 vmware on # for good measure</pre>
<p>Reboot your machine.</p>
<p>Depending on your configuration you may also have to update your iptables rules.</p>
]]></content:encoded>
			<wfw:commentRss>http://techdetails.agwego.com/2011/09/14/217/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Outlook is a massive POS</title>
		<link>http://techdetails.agwego.com/2011/06/07/215/</link>
		<comments>http://techdetails.agwego.com/2011/06/07/215/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 22:29:15 +0000</pubDate>
		<dc:creator>techdetails</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://techdetails.agwego.com/?p=215</guid>
		<description><![CDATA[This is why the machines will never win the coming Judgement Day, Microsoft Outlook and circular logic 101:
The e-mail address for the sender (ABC@theYYYgroup.com) is internal to your organization and cannot be added to the Safe Senders list. E-mail from senders in your organization will never be treated as junk e-mail.

So the email from the [...]]]></description>
			<content:encoded><![CDATA[<p>This is why the machines will never win the coming Judgement Day, Microsoft Outlook and circular logic 101:</p>
<p style="padding-left: 30px;"><em>The e-mail address for the sender (ABC@theYYYgroup.com) is internal to your organization and cannot be added to the Safe Senders list. E-mail from senders in your organization will never be treated as junk e-mail.</em></p>
<ol>
<li>So the email from the internal sender was flagged as junk</li>
<li>And the sender cannot be added to the white list because the sender is internal</li>
<li>If the sender is internal and always trusted how did the email get flagged as junk.</li>
<li>Reductio ad absurdum</li>
</ol>
<p>Doesn&#8217;t Microsoft test their software?</p>
]]></content:encoded>
			<wfw:commentRss>http://techdetails.agwego.com/2011/06/07/215/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solving the Android R.java problem</title>
		<link>http://techdetails.agwego.com/2010/08/31/201/</link>
		<comments>http://techdetails.agwego.com/2010/08/31/201/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 18:00:30 +0000</pubDate>
		<dc:creator>techdetails</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[AndroidManifest.xml]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[R.java]]></category>

		<guid isPermaLink="false">http://techdetails.agwego.com/?p=201</guid>
		<description><![CDATA[R.java is one of the most annoying things I&#8217;ve come across recently. If you want to create and deploy multiple android apps from the same source, it must be done with each app having a unique package name, and there in lies the rub. A unique package name means a unique R.java with the same [...]]]></description>
			<content:encoded><![CDATA[<p>R.java is one of the most annoying things I&#8217;ve come across recently. If you want to create and deploy multiple android apps from the same source, it must be done with each app having a unique package name, and there in lies the rub. A unique package name means a unique R.java with the same package name for each instance, but your source want&#8217;s to use a single R.java, and you certainly don&#8217;t want to be changing all your source to update the package name every time you release a different version of your app, for example a free trial vs. the paid version.</p>
<p>So the solution is to create two R.java files, one with your internal package name and the other with the package name of the release which comes from AndroidManifest.xml, at this point I would point out that you should probably generate your AndroidManifest.xml.</p>
<p>To generate the required R.java files, you must customize the Google Ant build scripts,  copy android_rules.xml from the SDK into your project. The second exec stanza generates the internal R.java which you specify with the property &#8220;package.internal&#8221;</p>
<pre>&lt;!-- Generates the R.java file for this project's resources. --&gt;
 &lt;target name="-resource-src" depends="-dirs"&gt;
 &lt;echo&gt;Generating R.java / Manifest.java from the resources for ${package.destination}&lt;/echo&gt;
 &lt;exec executable="${aapt}" failonerror="true"&gt;
 &lt;arg value="package" /&gt;
 &lt;arg line="${v.option}" /&gt;
 &lt;arg value="-m" /&gt;
 &lt;arg value="-J" /&gt;
 &lt;arg path="${gen.absolute.dir}" /&gt;
 &lt;arg value="-M" /&gt;
 &lt;arg path="AndroidManifest.xml" /&gt;
 &lt;arg value="-S" /&gt;
 &lt;arg path="${resource.absolute.dir}" /&gt;
 &lt;arg value="-I" /&gt;
 &lt;arg path="${android.jar}" /&gt;
 &lt;arg value="--custom-package" /&gt;
 &lt;arg value="${package.destination}" /&gt;
 &lt;/exec&gt;

 &lt;echo&gt;Generating R.java / Manifest.java from the resources for ${package.internal}&lt;/echo&gt;
 &lt;exec executable="${aapt}" failonerror="true"&gt;
 &lt;arg value="package" /&gt;
 &lt;arg line="${v.option}" /&gt;
 &lt;arg value="-m" /&gt;
 &lt;arg value="-J" /&gt;
 &lt;arg path="${gen.absolute.dir}" /&gt;
 &lt;arg value="-M" /&gt;
 &lt;arg path="AndroidManifest.xml" /&gt;
 &lt;arg value="-S" /&gt;
 &lt;arg path="${resource.absolute.dir}" /&gt;
 &lt;arg value="-I" /&gt;
 &lt;arg path="${android.jar}" /&gt;
 &lt;arg value="--custom-package" /&gt;
 &lt;arg value="${package.internal}" /&gt;
 &lt;/exec&gt;        
 &lt;/target&gt;</pre>
<p>In your build file, tweak the android setup as follows</p>
<pre>&lt;setup import="false" /&gt;
&lt;import file="${basedir}/build/android_rules.xml"/&gt;</pre>
<p>import false says don&#8217;t use the standard android_rules and the following import references your custom rules.</p>
<p>A good reference, but didn&#8217;t go far enough: <a href="http://java.dzone.com/articles/building-two-versions-same?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+javalobby/frontpage+%28Javalobby+/+Java+Zone%29">http://java.dzone.com/articles/building-two-versions-same?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+javalobby/frontpage+(Javalobby+/+Java+Zone)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://techdetails.agwego.com/2010/08/31/201/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Code Coverage</title>
		<link>http://techdetails.agwego.com/2010/04/20/197/</link>
		<comments>http://techdetails.agwego.com/2010/04/20/197/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 13:49:56 +0000</pubDate>
		<dc:creator>techdetails</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://techdetails.agwego.com/?p=197</guid>
		<description><![CDATA[I haven&#8217;t done an exhaustive analysis by any stretch of the imagination, but after trying out EMMA &#8211; http://emma.sourceforge.net/ and Cobertura &#8211; http://cobertura.sourceforge.net/index.html 
The clear winner is Cobertura for the following reasons:

Ant targets are easier to use and don&#8217;t generate errors in Intellij (a minor thing but highly annoying)
It is much easier to exclude test [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t done an exhaustive analysis by any stretch of the imagination, but after trying out EMMA &#8211; <a href="http://emma.sourceforge.net/">http://emma.sourceforge.net/</a> and Cobertura &#8211; <a href="http://cobertura.sourceforge.net/index.html">http://cobertura.sourceforge.net/index.html </a></p>
<p>The clear winner is Cobertura for the following reasons:</p>
<ul>
<li>Ant targets are easier to use and don&#8217;t generate errors in Intellij (a minor thing but highly annoying)</li>
<li>It is much easier to exclude test classes</li>
<li>The output generated is vastly superior if not more voluminous</li>
<li>Better but still sparse documentation</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://techdetails.agwego.com/2010/04/20/197/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sun&#8217;s Java VisualVM</title>
		<link>http://techdetails.agwego.com/2009/11/06/189/</link>
		<comments>http://techdetails.agwego.com/2009/11/06/189/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 15:01:41 +0000</pubDate>
		<dc:creator>techdetails</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[techdetails]]></category>

		<guid isPermaLink="false">http://techdetails.agwego.com/?p=189</guid>
		<description><![CDATA[VisualVM is an interesting tool, and the fact you don&#8217;t have to instrument your applications to use it is rather nice. Real-time monitoring of you application is very nice and the ability to take snapshots or heap dumps is also very useful, but their heap analysis tool needs some work.
Compared to some other heap analysis [...]]]></description>
			<content:encoded><![CDATA[<p>VisualVM is an interesting tool, and the fact you don&#8217;t have to instrument your applications to use it is rather nice. Real-time monitoring of you application is very nice and the ability to take snapshots or heap dumps is also very useful, but their heap analysis tool needs some work.</p>
<p>Compared to some other heap analysis tools I&#8217;ve used VisualVM needs a lot of work. Having said that being able to take heap dumps as you manipulate a system in real-time is very useful, and then using another analysis tool seems like the best option (note I haven&#8217;t tried using another analyzer with visualVM&#8217;s heap dump.)</p>
]]></content:encoded>
			<wfw:commentRss>http://techdetails.agwego.com/2009/11/06/189/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Technical Details has moved&#8230;</title>
		<link>http://techdetails.agwego.com/2009/09/22/167/</link>
		<comments>http://techdetails.agwego.com/2009/09/22/167/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 01:03:43 +0000</pubDate>
		<dc:creator>techdetails</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[blogmatrix]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://techdetails.agwego.com/?p=167</guid>
		<description><![CDATA[As we&#8217;ve been slowly winding down BlogMatrix for sometime, I decided to move my own blogs to my own domain and server. Having access to everything allowed me to write a BlogMatrix to Wordpress converter.
I also had the relevant addresses redirected to my server, so techdetails.blogmatrix.com -&#62; techdetails.agwego.com, which posed an issue with respect to [...]]]></description>
			<content:encoded><![CDATA[<p>As we&#8217;ve been slowly winding down BlogMatrix for sometime, I decided to move my own blogs to my own domain and server. Having access to everything allowed me to write a BlogMatrix to Wordpress converter.</p>
<p>I also had the relevant addresses redirected to my server, so techdetails.blogmatrix.com -&gt; techdetails.agwego.com, which posed an issue with respect to permalinks, so with a little Wordpress hacking I was able to write a pseudo BlogMatrix to Wordpress permalink converter so most links will now work as expected. I have a complete duplicate site setup at home replete with DNS for testing purposes.</p>
<p>I&#8217;m still getting use to Wordpress but so far it&#8217;s not too bad.</p>
<p>My other blog <a title="What's for dinner" href="http://dinner.agwego.com/" target="_blank">http://dinner.agwego.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://techdetails.agwego.com/2009/09/22/167/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

