<?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>Cinq Software</title>
	<atom:link href="http://cinq.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://cinq.com</link>
	<description>my code</description>
	<lastBuildDate>Tue, 27 Jul 2010 18:30:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>How to do a SVN Dump from a remote repo</title>
		<link>http://cinq.com/2010/07/27/how-to-do-a-svn-dump-from-a-remote-repo/</link>
		<comments>http://cinq.com/2010/07/27/how-to-do-a-svn-dump-from-a-remote-repo/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 18:08:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[hack]]></category>

		<guid isPermaLink="false">http://cinq.com/?p=97</guid>
		<description><![CDATA[Found this great article on how to hack your way to do a SVN dump from a remote repo. I had never use the svnsync command but this allows you to make the remote repo a local one and you can easily use it to create your dump file. Very useful when you have lost [...]]]></description>
			<content:encoded><![CDATA[<p>Found this great <a href="http://pogopixels.com/blog/dumping-a-svn-repository-from-a-remote-url/">article on how to hack your way to do a SVN dump from a remote repo</a>. I had never use the svnsync command but this allows you to make the remote repo a local one and you can easily use it to create your dump file. Very useful when you have lost admin access to the original server and you need to migrate to a new SVN server.</p>
<p>Quick command list:</p>
<ul>
<li>svnadmin create temprepo</li>
<li>echo &#8216;#!/bin/sh&#8217; &gt; temprepo/hooks/pre-revprop-change</li>
<li>chmod +x temprepo/hooks/pre-revprop-change</li>
<li>svnsync init file://temprepo https://server/svn/origrepo</li>
<li>svnsync sync temprepo</li>
<li>svnadmin dump temprepo &gt; dumpfile</li>
</ul>
<p>Copy the dump file over to the new SVN server and on it:</p>
<ul>
<li>svnadmin load reponame &lt; dumpfile</li>
</ul>
<p>A quick word of warning because the UUID will change with this process so doing &#8220;svn sw&#8221; on existing working copy might prove to be challenging.</p>
]]></content:encoded>
			<wfw:commentRss>http://cinq.com/2010/07/27/how-to-do-a-svn-dump-from-a-remote-repo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to find the jdk version used to compile a java class</title>
		<link>http://cinq.com/2010/07/23/how-to-find-the-jdk-version-used-to-compile-a-java-class/</link>
		<comments>http://cinq.com/2010/07/23/how-to-find-the-jdk-version-used-to-compile-a-java-class/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 20:35:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://cinq.com/?p=95</guid>
		<description><![CDATA[I spent a little bit of time to figure out how to find the jdk version used to compile a java class. On the site stackoverflow they have a great example of java code that can get this information. Unfortunately that did not resolve my problem so I will have to hunt down a bit [...]]]></description>
			<content:encoded><![CDATA[<p>I spent a little bit of time to figure out how to find the jdk version used to compile a java class. On the <a href="http://stackoverflow.com/questions/1293308/java-api-to-find-out-the-jdk-version-a-class-file-is-compiled-for">site stackoverflow they have a great example of java code</a> that can get this information. Unfortunately that did not resolve my problem so I will have to hunt down a bit more on why I get this:</p>
<p>Exception in thread &#8220;main&#8221; java.lang.UnsupportedClassVersionError: Bad version number in .class file<br />
at java.lang.ClassLoader.defineClass1(Native Method)<br />
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)<br />
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)<br />
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)<br />
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)<br />
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)<br />
at java.security.AccessController.doPrivileged(Native Method)<br />
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)<br />
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)<br />
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)<br />
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)<br />
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)</p>
]]></content:encoded>
			<wfw:commentRss>http://cinq.com/2010/07/23/how-to-find-the-jdk-version-used-to-compile-a-java-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Networking Mysteries</title>
		<link>http://cinq.com/2010/07/21/networking-mysteries/</link>
		<comments>http://cinq.com/2010/07/21/networking-mysteries/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 14:56:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[network]]></category>
		<category><![CDATA[pcap]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[tcp]]></category>
		<category><![CDATA[tcpdump]]></category>

		<guid isPermaLink="false">http://cinq.com/?p=91</guid>
		<description><![CDATA[I am troubleshooting this mysterious networking issue and I was looking for way that you can overwrite tcp packets information to send it to the wrong place. I found this link for a tool that can do some of that. It cannot be used on live traffic as we are experiencing it but it is [...]]]></description>
			<content:encoded><![CDATA[<p>I am troubleshooting this mysterious networking issue and I was looking for way that you can overwrite tcp packets information to send it to the wrong place. I found this link for a tool that can do some of that. It cannot be used on live traffic as we are experiencing it but it is very interesting so I did not want to lose the information about this <a href="http://tcpreplay.synfin.net/wiki/tcprewrite">tcprewrite</a> tool.</p>
]]></content:encoded>
			<wfw:commentRss>http://cinq.com/2010/07/21/networking-mysteries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Quality: Code Coverage</title>
		<link>http://cinq.com/2010/06/22/code-quality-code-coverage/</link>
		<comments>http://cinq.com/2010/06/22/code-quality-code-coverage/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 18:17:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cinq.com/?p=87</guid>
		<description><![CDATA[I was reading this article about code coverage and found it quite interesting. I have certainly seen the water cooler back patting attitude and have heard a few people worried about that attitude. In pursuit of code quality: Don&#8217;t be fooled by the coverage report The main thing that I will take out of this [...]]]></description>
			<content:encoded><![CDATA[<p>I was reading this article about code coverage and found it quite  interesting. I have certainly seen the water cooler back patting  attitude and have heard a few people worried about that attitude.</p>
<p><a title="In pursuit of code quality: Don't be fooled by the coverage  report" href="http://www.ibm.com/developerworks/java/library/j-cq01316/">In  pursuit of code quality: Don&#8217;t be fooled by the coverage report</a></p>
<p>The main thing that I will take out of this article is that code  coverage shows you what you are not covering. It won&#8217;t tell you how well  you are covering.</p>
]]></content:encoded>
			<wfw:commentRss>http://cinq.com/2010/06/22/code-quality-code-coverage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How bad is it?</title>
		<link>http://cinq.com/2010/04/15/how-bad-is-it/</link>
		<comments>http://cinq.com/2010/04/15/how-bad-is-it/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 00:28:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://cinq.com/?p=84</guid>
		<description><![CDATA[Laziness is quite the creative motivator sometimes. So I have this application that accepts syslog messages and process them to generate daily stats. The glitch with the current way the code works is that it has hard coded separator for the messages. Just one hard coded separator. It may have worked somewhat fine for a [...]]]></description>
			<content:encoded><![CDATA[<p>Laziness is quite the creative motivator sometimes.</p>
<p>So I have this application that accepts syslog messages and process  them to generate daily stats.</p>
<p>The glitch with the current way the code works is that it has hard  coded separator for the messages. Just one hard coded separator. It may  have worked somewhat fine for a period of time but since I have been  monitoring the situation I can say that it is dropping quite a few  messages every day because of that limitation.</p>
<p>While looking at the code to determine the scope of the change I was  getting less enthusiastic to address the issue as I was discovering more  and more places with the hard coded value.</p>
<p>I put that aside and found something more fun to do for a few  moments.</p>
<p>Then I started to get motivated by laziness&#8230;</p>
<p>So the current idea is to parse the syslog messages that it gets and  replace the different seperator by the one that is hard coded. This  requires the least amount of energy to get it fixed. What I am not sure  is how much technical debt am I accumulating with this idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://cinq.com/2010/04/15/how-bad-is-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The cloud and good programming</title>
		<link>http://cinq.com/2010/03/26/the-cloud-and-good-programming/</link>
		<comments>http://cinq.com/2010/03/26/the-cloud-and-good-programming/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 11:01:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[optimization]]></category>

		<guid isPermaLink="false">http://cinq.com/?p=82</guid>
		<description><![CDATA[I am reading these articles about cloud infrastructure and how much ondemand power you can get for your application and batch processing. So easy and convenient. Does this raw power at pennies make the programmers less efficient? Lazy? Does it matter? I will answer yes to both questions. I think that it makes programmers lazy [...]]]></description>
			<content:encoded><![CDATA[<p>I am reading these articles about cloud infrastructure and how much ondemand power you can get for your application and batch processing. So easy and convenient.</p>
<p>Does this raw power at pennies make the programmers less efficient? Lazy?</p>
<p>Does it matter?</p>
<p>I will answer yes to both questions. I think that it makes programmers lazy because you don&#8217;t have to face the consequences of your laziness. What does it matter that it takes 10% more time because you did not optimize every line? 50%? 90% when the cost is a couple of dollars a day?</p>
<p>Yes it does matter. I inherited an application that the previous programmer did a very good job at putting up and maintaining while he was with us. Now that I took over I have a hard time seeing all the moving parts but as I have to fix and change things I can see wholes in certain places. Lately I have found the code that produces the last 6 months quick view of performance. It goes through the last 6 months of data and does a daily average. Every day. So the code needs the last 6 months of data to be present on the server to go through it over and over to produce a single file that has a 2 lines difference from the previous day. I takes 4 to 5 hours each day. Can it get any funnier? The management answer to this issue was to throw more disk space at the issue since the batch processing is done at night and does not impact the system. Hard disks are cheap.</p>
<p>Imagine this application in the cloud and management asks for a 12 months history view. Everyone would have said no problem we need to provision an other 300 to 400 Gb of space and change 1 configuration file. The cost is minimal.</p>
<p>I personally want to address it in the code and get this optimized. Do you think I am getting any time dedicated to this issue? I am too costly for that option to make sense.</p>
<p>Because I am on physical hardware in our own data center it does matter and it will get addressed by fixing the application. We are restricted since we can&#8217;t had any drive to the server. If this application was in the cloud it would not get any attention?</p>
<p>I can see both sides of the coin and the reasons for the business to make the choice it would but I still think that fixing the application is what need to be done. The technical debt that this has cannot simply be ignored.</p>
]]></content:encoded>
			<wfw:commentRss>http://cinq.com/2010/03/26/the-cloud-and-good-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rhn_register erroring out</title>
		<link>http://cinq.com/2010/03/23/rhn_register-erroring-out/</link>
		<comments>http://cinq.com/2010/03/23/rhn_register-erroring-out/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 19:21:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[CIS]]></category>
		<category><![CDATA[haldaemon]]></category>
		<category><![CDATA[rhn_register]]></category>

		<guid isPermaLink="false">http://cinq.com/?p=80</guid>
		<description><![CDATA[It took me over an hour to figure out why it was failing like this: An error has occurred: exceptions.TypeError See /var/log/up2date for more information In the log you would get this explaination: ﻿﻿[Tue Mar 23 11:30:43 2010] rhn_register There was an error while reading the hardware info from the bios. Traceback: [Tue Mar 23 [...]]]></description>
			<content:encoded><![CDATA[<p>It took me over an hour to figure out why it was failing like this:</p>
<p>An error has occurred:<br />
exceptions.TypeError<br />
See /var/log/up2date for more information</p>
<p>In the log you would get this explaination:</p>
<p>﻿﻿[Tue Mar 23 11:30:43 2010] rhn_register There was an error while reading the hardware info from the bios. Traceback:</p>
<p>[Tue Mar 23 11:30:43 2010] rhn_register<br />
Traceback (most recent call last):<br />
File &#8220;/usr/share/rhn/up2date_client/tui.py&#8221;, line 1510, in _activate_hardware<br />
hardwareInfo = hardware.get_hal_system_and_smbios()<br />
File &#8220;/usr/share/rhn/up2date_client/hardware.py&#8221;, line 863, in get_hal_system_and_smbios<br />
props = computer.GetAllProperties()<br />
File &#8220;/usr/lib64/python2.4/site-packages/dbus/proxies.py&#8221;, line 25, in __call__<br />
ret = self._proxy_method (*args, **keywords)<br />
File &#8220;/usr/lib64/python2.4/site-packages/dbus/proxies.py&#8221;, line 102, in __call__<br />
reply_message = self._connection.send_with_reply_and_block(message, timeout)<br />
File &#8220;dbus_bindings.pyx&#8221;, line 455, in dbus_bindings.Connection.send_with_reply_and_block<br />
dbus_bindings.DBusException: The name org.freedesktop.Hal was not provided by any .service files</p>
<p>[Tue Mar 23 11:30:43 2010] rhn_register<br />
Traceback (most recent call last):<br />
File &#8220;/usr/sbin/rhn_register&#8221;, line 82, in ?<br />
app.run()<br />
File &#8220;/usr/share/rhn/up2date_client/rhncli.py&#8221;, line 65, in run<br />
sys.exit(self.main() or 0)<br />
File &#8220;/usr/sbin/rhn_register&#8221;, line 64, in main<br />
ui.main()<br />
File &#8220;/usr/share/rhn/up2date_client/tui.py&#8221;, line 1721, in main<br />
tui.run()<br />
File &#8220;/usr/share/rhn/up2date_client/tui.py&#8221;, line 1608, in run<br />
if self._show_subscription_window() == False:<br />
File &#8220;/usr/share/rhn/up2date_client/tui.py&#8221;, line 1562, in _show_subscription_window<br />
self.password)<br />
File &#8220;/usr/share/rhn/up2date_client/rhnreg.py&#8221;, line 588, in getRemainingSubscriptions<br />
smbios)<br />
File &#8220;/usr/share/rhn/up2date_client/rhnserver.py&#8221;, line 50, in __call__<br />
return rpcServer.doCall(method, *args, **kwargs)<br />
File &#8220;/usr/share/rhn/up2date_client/rpcServer.py&#8221;, line 199, in doCall<br />
ret = method(*args, **kwargs)<br />
File &#8220;/usr/lib64/python2.4/xmlrpclib.py&#8221;, line 1096, in __call__<br />
return self.__send(self.__name, args)<br />
File &#8220;/usr/share/rhn/up2date_client/rpcServer.py&#8221;, line 38, in _request1<br />
ret = self._request(methodname, params)<br />
File &#8220;/usr/lib/python2.4/site-packages/rhn/rpclib.py&#8221;, line 314, in _request<br />
request = self._req_body(params, methodname)<br />
File &#8220;/usr/lib/python2.4/site-packages/rhn/rpclib.py&#8221;, line 222, in _req_body<br />
return xmlrpclib.dumps(params, methodname, encoding=self._encoding)<br />
File &#8220;/usr/lib64/python2.4/xmlrpclib.py&#8221;, line 1029, in dumps<br />
data = m.dumps(params)<br />
File &#8220;/usr/lib64/python2.4/xmlrpclib.py&#8221;, line 603, in dumps<br />
dump(v, write)<br />
File &#8220;/usr/lib64/python2.4/xmlrpclib.py&#8221;, line 615, in __dump<br />
f(self, value, write)<br />
File &#8220;/usr/lib64/python2.4/xmlrpclib.py&#8221;, line 619, in dump_nil<br />
raise TypeError, &#8220;cannot marshal None unless allow_none is enabled&#8221;<br />
exceptions.TypeError: cannot marshal None unless allow_none is enabled</p>
<p>I also tried the rhnreg_ks utility with the &#8211;nohardware argument and that is when it gave me more information about the error:</p>
<p>[Tue Mar 23 15:18:39 2010] up2date Warning: haldaemon or messagebus service not running. Cannot probe hardware and DMI information.</p>
<p>I started the haldaemon process and I could then rhn_register my host.</p>
<p>Why did we disable the haldaemon process? It is part of the CIS recommendation to disable that startup service.</p>
<p>You learn the side effect of security as you go try things.</p>
]]></content:encoded>
			<wfw:commentRss>http://cinq.com/2010/03/23/rhn_register-erroring-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven on Mac OSX</title>
		<link>http://cinq.com/2010/02/14/maven-on-mac-osx/</link>
		<comments>http://cinq.com/2010/02/14/maven-on-mac-osx/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 02:37:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cinq.com/?p=78</guid>
		<description><![CDATA[I was reading these different articles on how to install Maven on Mac OSX and I had to create the /usr/local directory, check the md5sum, untar and then modify my profile. All this to realize that Maven is already installed on my Mac by default. It is version 2.2.0 and not the latest 2.2.1 but [...]]]></description>
			<content:encoded><![CDATA[<p>I was reading these different articles on how to install Maven on Mac OSX and I had to create the /usr/local directory, check the md5sum, untar and then modify my profile.</p>
<p>All this to realize that Maven is already installed on my Mac by default. It is version 2.2.0 and not the latest 2.2.1 but for the book I am reading this is perfect.</p>
<p>A little bit of testing before starting to do all sort of crazy things would have simplified my life.</p>
<p>I installed the m2eclipse plugin in my Eclipse so I can get ready to see how it simplifies my life by not having to write the pom.xml.</p>
<p>http://m2eclipse.sonatype.org/installing-m2eclipse.html</p>
]]></content:encoded>
			<wfw:commentRss>http://cinq.com/2010/02/14/maven-on-mac-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Synergy+ not ready for prime time</title>
		<link>http://cinq.com/2010/02/11/synergy-not-ready-for-prime-time/</link>
		<comments>http://cinq.com/2010/02/11/synergy-not-ready-for-prime-time/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 16:23:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cinq.com/?p=75</guid>
		<description><![CDATA[When you look at the synergy+ page it does say that it is beta and mostly stable in most cases so all the warnings are there to inform you that it may not work perfectly. I have no problem with them but I do with CentOS 5. When I did the upgrades this morning it [...]]]></description>
			<content:encoded><![CDATA[<p>When you look at the synergy+ page it does say that it is beta and mostly stable in most cases so all the warnings are there to inform you that it may not work perfectly. I have no problem with them but I do with CentOS 5. When I did the upgrades this morning it upgraded my synergy to synergy+ and caused me all sorts of issue for most of the morning. CentOS on the workstation in question is installed to be a stable system and not a system that installs beta software. If I want cutting and bleeding edge I will play with Fedora.</p>
<p>After reverting everything back to synergy I am back to a productive environment.</p>
]]></content:encoded>
			<wfw:commentRss>http://cinq.com/2010/02/11/synergy-not-ready-for-prime-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New career as a programmer</title>
		<link>http://cinq.com/2010/02/09/new-career-as-a-programmer/</link>
		<comments>http://cinq.com/2010/02/09/new-career-as-a-programmer/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 21:18:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cinq.com/?p=73</guid>
		<description><![CDATA[I read this blog post this morning and taught that it was giving good advices: Five tips for starting a programming career http://blogs.techrepublic.com.com/programming-and-development/?p=2231&#38;tag=nl.e055 The tip to work on more projects and getting involved with an existing project are ones I will put in practice in the coming days. I am expecting that it will make [...]]]></description>
			<content:encoded><![CDATA[<p>I read this blog post this morning and taught that it was giving good advices:</p>
<p>Five tips for starting a programming career</p>
<p>http://blogs.techrepublic.com.com/programming-and-development/?p=2231&amp;tag=nl.e055</p>
<p>The tip to work on more projects and getting involved with an existing project are ones I will put in practice in the coming days. I am expecting that it will make life a bit harder but I am certainly ready to learn a lot from this.</p>
]]></content:encoded>
			<wfw:commentRss>http://cinq.com/2010/02/09/new-career-as-a-programmer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
