<?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>HM2K.com</title>
	<atom:link href="http://www.hm2k.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.hm2k.com</link>
	<description>The research of an internet entrepreneur and IT consultant</description>
	<lastBuildDate>Thu, 25 Feb 2010 22:02:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Universal Currency Converter TCL for Eggdrop</title>
		<link>http://www.hm2k.com/posts/universal-currency-converter-tcl-for-eggdrop</link>
		<comments>http://www.hm2k.com/posts/universal-currency-converter-tcl-for-eggdrop#comments</comments>
		<pubDate>Thu, 25 Feb 2010 14:41:31 +0000</pubDate>
		<dc:creator>hm2k</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[IRC]]></category>
		<category><![CDATA[converter]]></category>
		<category><![CDATA[currency]]></category>
		<category><![CDATA[eggdrop]]></category>
		<category><![CDATA[TCL]]></category>
		<category><![CDATA[ucc]]></category>
		<category><![CDATA[xe.com]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://www.hm2k.com/?p=602</guid>
		<description><![CDATA[<p>This is a currency converter written in TCL for Eggdrop, which is similar to the ucc.mrc I wrote for mIRC.</p>
<p>I used to use the <a href="http://members.dandy.net/~fbn/xeucc.tcl.txt">xeucc.tcl</a>, but that script no longer works and hasn&#8217;t been updated since 2008.</p>
<blockquote><p>&gt; !ucc 9 usd gbp<br />
&lt;Bot&gt; Could not obtain results from XE.com, sorry!</p></blockquote>
<p><span id="more-602"></span>Further more xeucc.tcl uses the XE.com website to gather the information, however they don&#8217;t like us doing this, and have since added the following message:</p>
<blockquote><p>WARNING: Automated extraction of rates is prohibited under the Terms of Use.</p></blockquote>
<p>Other scripts such as Incith&#8217;s Exchange also use a website. This one uses Yahoo Finance. The problem is that this website is subject to change at any time without prior notice.</p>
<p>Parsing a website that is subject to change is not always a good idea. Instead what is needed is an API which is easy to parse and extract the data and also unlikely to change formatting.</p>
<p>Although XE.com does have an API, but it is not free. This is no good.</p>
<p>I have decided instead to use the <a href="http://developer.yahoo.com/">Yahoo Developer Network</a> Currency Converter API, which is much easier to parse and permits this kind of usage.</p>
<p>There is a choice of two URLs which you can call to get the data:</p>
<blockquote><p><a href="http://finance.yahoo.com/d/quotes.csv?e=.csv&amp;f=sl1d1t1&amp;s=USDGBP=X">http://finance.yahoo.com/d/quotes.csv?e=.csv&amp;f=sl1d1t1&amp;s=USDGBP=X</a></p>
<p><a href="http://download.finance.yahoo.com/d/?f=sl1d1t1&amp;s=USDGBP=X">http://download.finance.yahoo.com/d/?f=sl1d1t1&amp;s=USDGBP=X</a></p></blockquote>
<p>Both examples should provide you with a csv file to download which will contain the currency information.</p>
<p>I have used the second URL in my script.</p>
<p><strong>Usage</strong></p>
<blockquote><p>&gt; .ucc<br />
&lt;Bot&gt; Usage: .ucc &lt;amount&gt; &lt;from&gt; &lt;to&gt;<br />
&gt; .ucc 9 usd gbp<br />
&lt;Bot&gt; HM2K, * UCC: 9 USD is 5.8905 GBP as of 2/25/2010 9:22am</p></blockquote>
<p><strong>Download</strong></p>
<ul>
<li>Download <a href="http://hm2k.googlecode.com/svn/trunk/code/tcl/ucc.tcl">ucc.tcl</a></li>
</ul>
<p>If you like it, or even if you don&#8217;t, please leave a comment below. Thanks.</p>
]]></description>
			<content:encoded><![CDATA[<p>This is a currency converter written in TCL for Eggdrop, which is similar to the ucc.mrc I wrote for mIRC.</p>
<p>I used to use the <a href="http://members.dandy.net/~fbn/xeucc.tcl.txt">xeucc.tcl</a>, but that script no longer works and hasn&#8217;t been updated since 2008.</p>
<blockquote><p>&gt; !ucc 9 usd gbp<br />
&lt;Bot&gt; Could not obtain results from XE.com, sorry!</p></blockquote>
<p><span id="more-602"></span>Further more xeucc.tcl uses the XE.com website to gather the information, however they don&#8217;t like us doing this, and have since added the following message:</p>
<blockquote><p>WARNING: Automated extraction of rates is prohibited under the Terms of Use.</p></blockquote>
<p>Other scripts such as Incith&#8217;s Exchange also use a website. This one uses Yahoo Finance. The problem is that this website is subject to change at any time without prior notice.</p>
<p>Parsing a website that is subject to change is not always a good idea. Instead what is needed is an API which is easy to parse and extract the data and also unlikely to change formatting.</p>
<p>Although XE.com does have an API, but it is not free. This is no good.</p>
<p>I have decided instead to use the <a href="http://developer.yahoo.com/">Yahoo Developer Network</a> Currency Converter API, which is much easier to parse and permits this kind of usage.</p>
<p>There is a choice of two URLs which you can call to get the data:</p>
<blockquote><p><a href="http://finance.yahoo.com/d/quotes.csv?e=.csv&amp;f=sl1d1t1&amp;s=USDGBP=X">http://finance.yahoo.com/d/quotes.csv?e=.csv&amp;f=sl1d1t1&amp;s=USDGBP=X</a></p>
<p><a href="http://download.finance.yahoo.com/d/?f=sl1d1t1&amp;s=USDGBP=X">http://download.finance.yahoo.com/d/?f=sl1d1t1&amp;s=USDGBP=X</a></p></blockquote>
<p>Both examples should provide you with a csv file to download which will contain the currency information.</p>
<p>I have used the second URL in my script.</p>
<p><strong>Usage</strong></p>
<blockquote><p>&gt; .ucc<br />
&lt;Bot&gt; Usage: .ucc &lt;amount&gt; &lt;from&gt; &lt;to&gt;<br />
&gt; .ucc 9 usd gbp<br />
&lt;Bot&gt; HM2K, * UCC: 9 USD is 5.8905 GBP as of 2/25/2010 9:22am</p></blockquote>
<p><strong>Download</strong></p>
<ul>
<li>Download <a href="http://hm2k.googlecode.com/svn/trunk/code/tcl/ucc.tcl">ucc.tcl</a></li>
</ul>
<p>If you like it, or even if you don&#8217;t, please leave a comment below. Thanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hm2k.com/posts/universal-currency-converter-tcl-for-eggdrop/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to convert an image to greyscale using PHP</title>
		<link>http://www.hm2k.com/posts/how-to-convert-an-image-to-greyscale-using-php</link>
		<comments>http://www.hm2k.com/posts/how-to-convert-an-image-to-greyscale-using-php#comments</comments>
		<pubDate>Thu, 10 Dec 2009 14:39:30 +0000</pubDate>
		<dc:creator>hm2k</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[conver]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[gray]]></category>
		<category><![CDATA[grayscale]]></category>
		<category><![CDATA[grey]]></category>
		<category><![CDATA[greyscale]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[imagefilter]]></category>
		<category><![CDATA[IMG_FILTER_GRAYSCALE]]></category>

		<guid isPermaLink="false">http://www.hm2k.com/?p=583</guid>
		<description><![CDATA[<p>I was trying to find a neat way to grey out some &#8220;powered by&#8221; logos for a website I&#8217;m developing.</p>
<p>I remembered reading about this very thing in <a href="http://en.wikipedia.org/wiki/.net_%28magazine%29">.net magazine</a>/<a href="http://www.badassideas.com/downloads/net191swarren.pdf">august 2009 (i191,p100)</a>, which said:</p>
<blockquote><p><em>&#8220;Sponsor and associate logos can be a challenge for a designer who is making a valiant attempt to create a cohesive website layout. Logos can be contrasting colour schemes and can be displayed at a wide range of different aspect ratios. When faced with this challenge, I recommend greying out the logos and having them appear in their respective colours upon mouse-over. When placing logos next to each other, I’d consider using visual weight versus actual size to determine spacing.&#8221;</em></p>
<p>- <a href="http://badassideas.com/">Samantha Warren @ badassideas.com</a></p></blockquote>
<p>So, sure we&#8217;ve established that it&#8217;s a good idea, the question is how to achieve it&#8230;</p>
<p><span id="more-583"></span>It&#8217;s really quite simple, there&#8217;s two parts:</p>
<ol>
<li>Convert the image to greyscale using PHP.</li>
<li>Write HTML and javascript that will change the image source on mouseover.</li>
</ol>
<p>Before I get started, I need to point out that because I&#8217;m British, I use &#8220;Grey&#8221;, instead of the American &#8220;Gray&#8221;, apart from in the actual code.</p>
<p>I very quickly discovered a number of ways to convert an image from colour to greyscale, however the easiest way appeared to be using the <a href="http://php.net/manual/en/function.imagefilter.php">imagefilter()</a> function with the IMG_FILTER_GRAYSCALE greyscale filter which produced the results I was looking for. I found you can also very <a href="http://www.talkincode.com/add-effects-to-images-using-image-filters-with-php-266.html">easily add all sorts of effects to images using PHP</a>.</p>
<p>I kept it simple and wrote a function that would convert an image from jpeg, gif or png to a png greyscale image. I called it <a href="http://hm2k.googlecode.com/svn/trunk/code/php/functions/imagegray.php">imagegray()</a>.</p>
<p>It&#8217;s very easy to use, you just pass the filename to the function and it will display the image in greyscale. For example:</p>
<blockquote><p>&lt;?php</p>
<p>$i=isset($_REQUEST['i'])?$_REQUEST['i']:&#8221;;<br />
if ($i) { imagegrey($i); }</p>
<p>?&gt;</p></blockquote>
<p>Next, it&#8217;s onto the HTML, which although isn&#8217;t exactly difficult, you may stumble if you&#8217;re unsure&#8230;</p>
<blockquote><p>&lt;img onmouseover=&#8221;this.src=&#8217;image.jpg&#8217;&#8221; onmouseout=&#8221;this.src=&#8217;imagegrey.php?i=image.jpg&#8217;&#8221; src=&#8221;imagegrey.php?i=image.jpg&#8221; alt=&#8221;image&#8221; border=&#8221;0&#8243;&gt;</p></blockquote>
<p>That&#8217;s it, that&#8217;s all there is to it.</p>
<p>If you run a large site, for scalability reasons you may wish to involve caching, but for most small sites, this method is quick and effective.</p>
<p>Enjoy!</p>
]]></description>
			<content:encoded><![CDATA[<p>I was trying to find a neat way to grey out some &#8220;powered by&#8221; logos for a website I&#8217;m developing.</p>
<p>I remembered reading about this very thing in <a href="http://en.wikipedia.org/wiki/.net_%28magazine%29">.net magazine</a>/<a href="http://www.badassideas.com/downloads/net191swarren.pdf">august 2009 (i191,p100)</a>, which said:</p>
<blockquote><p><em>&#8220;Sponsor and associate logos can be a challenge for a designer who is making a valiant attempt to create a cohesive website layout. Logos can be contrasting colour schemes and can be displayed at a wide range of different aspect ratios. When faced with this challenge, I recommend greying out the logos and having them appear in their respective colours upon mouse-over. When placing logos next to each other, I’d consider using visual weight versus actual size to determine spacing.&#8221;</em></p>
<p>- <a href="http://badassideas.com/">Samantha Warren @ badassideas.com</a></p></blockquote>
<p>So, sure we&#8217;ve established that it&#8217;s a good idea, the question is how to achieve it&#8230;</p>
<p><span id="more-583"></span>It&#8217;s really quite simple, there&#8217;s two parts:</p>
<ol>
<li>Convert the image to greyscale using PHP.</li>
<li>Write HTML and javascript that will change the image source on mouseover.</li>
</ol>
<p>Before I get started, I need to point out that because I&#8217;m British, I use &#8220;Grey&#8221;, instead of the American &#8220;Gray&#8221;, apart from in the actual code.</p>
<p>I very quickly discovered a number of ways to convert an image from colour to greyscale, however the easiest way appeared to be using the <a href="http://php.net/manual/en/function.imagefilter.php">imagefilter()</a> function with the IMG_FILTER_GRAYSCALE greyscale filter which produced the results I was looking for. I found you can also very <a href="http://www.talkincode.com/add-effects-to-images-using-image-filters-with-php-266.html">easily add all sorts of effects to images using PHP</a>.</p>
<p>I kept it simple and wrote a function that would convert an image from jpeg, gif or png to a png greyscale image. I called it <a href="http://hm2k.googlecode.com/svn/trunk/code/php/functions/imagegray.php">imagegray()</a>.</p>
<p>It&#8217;s very easy to use, you just pass the filename to the function and it will display the image in greyscale. For example:</p>
<blockquote><p>&lt;?php</p>
<p>$i=isset($_REQUEST['i'])?$_REQUEST['i']:&#8221;;<br />
if ($i) { imagegrey($i); }</p>
<p>?&gt;</p></blockquote>
<p>Next, it&#8217;s onto the HTML, which although isn&#8217;t exactly difficult, you may stumble if you&#8217;re unsure&#8230;</p>
<blockquote><p>&lt;img onmouseover=&#8221;this.src=&#8217;image.jpg&#8217;&#8221; onmouseout=&#8221;this.src=&#8217;imagegrey.php?i=image.jpg&#8217;&#8221; src=&#8221;imagegrey.php?i=image.jpg&#8221; alt=&#8221;image&#8221; border=&#8221;0&#8243;&gt;</p></blockquote>
<p>That&#8217;s it, that&#8217;s all there is to it.</p>
<p>If you run a large site, for scalability reasons you may wish to involve caching, but for most small sites, this method is quick and effective.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hm2k.com/posts/how-to-convert-an-image-to-greyscale-using-php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP OpenSRS Client</title>
		<link>http://www.hm2k.com/posts/php-opensrs-client</link>
		<comments>http://www.hm2k.com/posts/php-opensrs-client#comments</comments>
		<pubDate>Wed, 25 Nov 2009 13:42:50 +0000</pubDate>
		<dc:creator>hm2k</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Domains]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[opensrs]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[tucows]]></category>

		<guid isPermaLink="false">http://www.hm2k.com/?p=579</guid>
		<description><![CDATA[<p>This is only a quick message to say that I am now developing the <em>PHP OpenSRS Client project</em>.</p>
<p>OpenSRS-PHP is a PHP-based client class that communicates with the TuCows OpenSRS Domain Name Registry System via an API.</p>
<p>I have just released version 2.8.1 with many long awaited fixes.</p>
<ul>
<li><a href="http://opensrs-php.sourceforge.net/">Website</a></li>
</ul>
<p>Enjoy!</p>
]]></description>
			<content:encoded><![CDATA[<p>This is only a quick message to say that I am now developing the <em>PHP OpenSRS Client project</em>.</p>
<p>OpenSRS-PHP is a PHP-based client class that communicates with the TuCows OpenSRS Domain Name Registry System via an API.</p>
<p>I have just released version 2.8.1 with many long awaited fixes.</p>
<ul>
<li><a href="http://opensrs-php.sourceforge.net/">Website</a></li>
</ul>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hm2k.com/posts/php-opensrs-client/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>worldtime.tcl</title>
		<link>http://www.hm2k.com/posts/worldtime-tcl</link>
		<comments>http://www.hm2k.com/posts/worldtime-tcl#comments</comments>
		<pubDate>Fri, 20 Nov 2009 10:04:23 +0000</pubDate>
		<dc:creator>hm2k</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[IRC]]></category>
		<category><![CDATA[eggdrop]]></category>
		<category><![CDATA[TCL]]></category>
		<category><![CDATA[timezones]]></category>
		<category><![CDATA[worldtime]]></category>
		<category><![CDATA[zoneinfo]]></category>

		<guid isPermaLink="false">http://www.hm2k.com/?p=573</guid>
		<description><![CDATA[<p>Sometimes you need to know the time somewhere else in the world. I find it useful to get my eggdrop to return the time of another timezone&#8230;</p>
<blockquote>
<pre>&gt; .tz london
&lt;Bot&gt; HM2K, The time for the london timezone is Fri Feb 13 23:31:30 2009</pre>
</blockquote>
<p>However, much like my old weather.tcl, I realised that my worldtime.tcl had passed it&#8217;s sell by date and had now expired.</p>
<p>My old worldtime.tcl which was based on a script by Murf which used worldtimeserver.com to gather it&#8217;s data had stopped working.</p>
<p>It would seem that worldtimeserver.com had changed their markup which meant that it was no longer possible to parse the correct data from the HTML.</p>
<p>Never mind, I thought, there must be a better way, that doesn&#8217;t need to use a third party website, that won&#8217;t stop working.</p>
<p>After all operating systems have worldtime build in without using a website, so how do they do it?</p>
<p>So, I did some investigation&#8230;</p>
<p><span id="more-573"></span></p>
<p>I discovered that on Linux based systems (including FreeBSD) the time zone information was stored locally.</p>
<blockquote><p>/usr/share/zoneinfo/</p></blockquote>
<p>Using a bit of Google magic, I managed to locate a few pre-made procedures to help me read the time zone information.</p>
<ul>
<li><a href="http://alice.wu-wien.ac.at:8000/xowiki/load-timezones.tcl">load-timezones.tcl</a>
<ul>
<li>get_tz_names</li>
<li>get_tz_rules</li>
</ul>
</li>
</ul>
<p>Using these functions I was able to find the right timezone and get the GMT offset which allowed me to work out the time in that timezone using the unix ticks.</p>
<p>At the moment, because it reads the time zone files that are only available on Linux based systems, it will not work on windrops.</p>
<p>However, what I may do next time is build a function that saves the timezone information into a database file which can be used on windows systems and will also give the Linux systems a cache file to make it respond quicker.</p>
<p>So now you&#8217;ll probably want to download it&#8230;</p>
<ul>
<li><a href="http://hm2k.googlecode.com/svn/trunk/code/tcl/worldtime.tcl">Download worldtime.tcl</a></li>
</ul>
<p>Hope it works for you.</p>
<p>Enjoy!</p>
<p>Note: If you find this useful, or have an issue with the script, please add a comment below. Thanks.</p>
]]></description>
			<content:encoded><![CDATA[<p>Sometimes you need to know the time somewhere else in the world. I find it useful to get my eggdrop to return the time of another timezone&#8230;</p>
<blockquote>
<pre>&gt; .tz london
&lt;Bot&gt; HM2K, The time for the london timezone is Fri Feb 13 23:31:30 2009</pre>
</blockquote>
<p>However, much like my old weather.tcl, I realised that my worldtime.tcl had passed it&#8217;s sell by date and had now expired.</p>
<p>My old worldtime.tcl which was based on a script by Murf which used worldtimeserver.com to gather it&#8217;s data had stopped working.</p>
<p>It would seem that worldtimeserver.com had changed their markup which meant that it was no longer possible to parse the correct data from the HTML.</p>
<p>Never mind, I thought, there must be a better way, that doesn&#8217;t need to use a third party website, that won&#8217;t stop working.</p>
<p>After all operating systems have worldtime build in without using a website, so how do they do it?</p>
<p>So, I did some investigation&#8230;</p>
<p><span id="more-573"></span></p>
<p>I discovered that on Linux based systems (including FreeBSD) the time zone information was stored locally.</p>
<blockquote><p>/usr/share/zoneinfo/</p></blockquote>
<p>Using a bit of Google magic, I managed to locate a few pre-made procedures to help me read the time zone information.</p>
<ul>
<li><a href="http://alice.wu-wien.ac.at:8000/xowiki/load-timezones.tcl">load-timezones.tcl</a>
<ul>
<li>get_tz_names</li>
<li>get_tz_rules</li>
</ul>
</li>
</ul>
<p>Using these functions I was able to find the right timezone and get the GMT offset which allowed me to work out the time in that timezone using the unix ticks.</p>
<p>At the moment, because it reads the time zone files that are only available on Linux based systems, it will not work on windrops.</p>
<p>However, what I may do next time is build a function that saves the timezone information into a database file which can be used on windows systems and will also give the Linux systems a cache file to make it respond quicker.</p>
<p>So now you&#8217;ll probably want to download it&#8230;</p>
<ul>
<li><a href="http://hm2k.googlecode.com/svn/trunk/code/tcl/worldtime.tcl">Download worldtime.tcl</a></li>
</ul>
<p>Hope it works for you.</p>
<p>Enjoy!</p>
<p>Note: If you find this useful, or have an issue with the script, please add a comment below. Thanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hm2k.com/posts/worldtime-tcl/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Gmail needs an API</title>
		<link>http://www.hm2k.com/posts/gmail-needs-an-api</link>
		<comments>http://www.hm2k.com/posts/gmail-needs-an-api#comments</comments>
		<pubDate>Fri, 13 Nov 2009 16:05:06 +0000</pubDate>
		<dc:creator>hm2k</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[google mail]]></category>
		<category><![CDATA[wave]]></category>

		<guid isPermaLink="false">http://www.hm2k.com/?p=570</guid>
		<description><![CDATA[<p>Yesterday I spent some time investigating Google Wave. A very interesting new product from Google. Not only that but an interesting protocol.</p>
<p>If you think about it, Google has mostly only used other protocols for communication in the past, now it&#8217;s creating it&#8217;s own. They clearly want to create a completely new protocol that will effectively be the future of these old primitive protocols.</p>
<p>For this to catch on, it will either have to run directly along side smtp and xmmp or layer on top of them.</p>
<p>We&#8217;re going to need a way to pass requests over http to smtp or pop3/imap, and what better way to do it than with gmail?</p>
<p>Sure, but there&#8217;s no API&#8230;</p>
<p><span id="more-570"></span></p>
<p>It&#8217;s argued that all you need to do is roll your own &#8220;api&#8221; or library class to use smtp and imap server provided by Google Mail (gmail) to send and receive emails.</p>
<p>The problem with this is that you&#8217;re forced to hand the app your username and password. Naturally this raises security concerns.</p>
<p>Of course this isn&#8217;t a big problem if you only use your own username and password and manage to store it on your server security.</p>
<p>The problem comes when others want to use their gmail accounts with your web app. They have not choice but to hand over their username and password. What can possibly go wrong?</p>
<ul>
<li>Their username and password gives you FULL access to their account, including account actions such as changing passwords.</li>
</ul>
<p>My proposal would be for an API that allowed you to interface with gmail, in particular to send emails (which has the biggest scope here).</p>
<p>To access the API you could generate an API Key from within gmail that would allow you to interface with gmail, but limited to mailing functions, rather than account settings.</p>
<p>An alternative to this is similar to the &#8220;GoogleCode.com Password&#8221;, used by project members when checking out or committing source code changes, or when using command-line tools to upload files to the project &#8220;Downloads&#8221; tab.</p>
<p>If you could set a &#8220;Google Mail SMTP Password&#8221; or similar, which would only permit you to access the gmail SMTP server, but not gmail itself, this would also allow you to overcome the security issues mentioned above.</p>
<p>However, this alternative wouldn&#8217;t help towards integration with Google Wave as much as an api would.</p>
<p>In summary, to resolve the security issue an API is an option, but for Google Wave integration too, it&#8217;s essentially a must.</p>
<p>I hope someone at Google reads this and agrees with me, for that matter, I hope you or anyone reading this agrees with me.</p>
]]></description>
			<content:encoded><![CDATA[<p>Yesterday I spent some time investigating Google Wave. A very interesting new product from Google. Not only that but an interesting protocol.</p>
<p>If you think about it, Google has mostly only used other protocols for communication in the past, now it&#8217;s creating it&#8217;s own. They clearly want to create a completely new protocol that will effectively be the future of these old primitive protocols.</p>
<p>For this to catch on, it will either have to run directly along side smtp and xmmp or layer on top of them.</p>
<p>We&#8217;re going to need a way to pass requests over http to smtp or pop3/imap, and what better way to do it than with gmail?</p>
<p>Sure, but there&#8217;s no API&#8230;</p>
<p><span id="more-570"></span></p>
<p>It&#8217;s argued that all you need to do is roll your own &#8220;api&#8221; or library class to use smtp and imap server provided by Google Mail (gmail) to send and receive emails.</p>
<p>The problem with this is that you&#8217;re forced to hand the app your username and password. Naturally this raises security concerns.</p>
<p>Of course this isn&#8217;t a big problem if you only use your own username and password and manage to store it on your server security.</p>
<p>The problem comes when others want to use their gmail accounts with your web app. They have not choice but to hand over their username and password. What can possibly go wrong?</p>
<ul>
<li>Their username and password gives you FULL access to their account, including account actions such as changing passwords.</li>
</ul>
<p>My proposal would be for an API that allowed you to interface with gmail, in particular to send emails (which has the biggest scope here).</p>
<p>To access the API you could generate an API Key from within gmail that would allow you to interface with gmail, but limited to mailing functions, rather than account settings.</p>
<p>An alternative to this is similar to the &#8220;GoogleCode.com Password&#8221;, used by project members when checking out or committing source code changes, or when using command-line tools to upload files to the project &#8220;Downloads&#8221; tab.</p>
<p>If you could set a &#8220;Google Mail SMTP Password&#8221; or similar, which would only permit you to access the gmail SMTP server, but not gmail itself, this would also allow you to overcome the security issues mentioned above.</p>
<p>However, this alternative wouldn&#8217;t help towards integration with Google Wave as much as an api would.</p>
<p>In summary, to resolve the security issue an API is an option, but for Google Wave integration too, it&#8217;s essentially a must.</p>
<p>I hope someone at Google reads this and agrees with me, for that matter, I hope you or anyone reading this agrees with me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hm2k.com/posts/gmail-needs-an-api/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PlusFM Track Feed</title>
		<link>http://www.hm2k.com/posts/plusfm-track-feed</link>
		<comments>http://www.hm2k.com/posts/plusfm-track-feed#comments</comments>
		<pubDate>Thu, 12 Nov 2009 15:18:53 +0000</pubDate>
		<dc:creator>hm2k</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[audioscrobbler]]></category>
		<category><![CDATA[foobar2000]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[lastfm]]></category>
		<category><![CDATA[plusfm]]></category>
		<category><![CDATA[winamp]]></category>

		<guid isPermaLink="false">http://www.hm2k.com/?p=567</guid>
		<description><![CDATA[<p>Recently an online radio station I listen to called PlusFM stopped displaying track titles on their stream. This was a pain for quickly displaying the current track you were listening to, however I did figure out a work around&#8230;</p>
<p><span id="more-567"></span>Here&#8217;s my setup&#8230;</p>
<p>I have two machines in my office, one has a hifi system attached, the other does not.</p>
<p>I use the lightweight media player <a href="http://en.wikipedia.org/wiki/Foobar2000">Foobar2000</a> (foobar2000.org), developed by Peter Pawlowski, a former freelance contractor for Nullsoft. So you know it&#8217;s a good alternative to Winamp.</p>
<p>In Foobar2000 I add the location for PlusFM&#8217;s stream:</p>
<blockquote><p><a href="http://91.121.48.90">http://91.121.48.90</a></p></blockquote>
<p>I then use the last.fm plugin for audio scrobbling in Foobar2000 (<a href="http://www.mp3tag.de/en/fb2k.html">foo_audioscrobbler.dll</a>).</p>
<p>This allows me to feed the track I&#8217;m listening to the last.fm API.</p>
<p>I can then call their API and display the current track I&#8217;m playing on any device, anywhere in the world.</p>
<p>I currently use it in combination with my &#8220;last.fm&#8221; mIRC script, which calls the API, reads the currently playing track, then displays it on screen when you trigger it using the /amp command.</p>
<p>This mean that when I hear a song I like, I could display it to share it with others, or just display it for my own interest.</p>
<p>This was great, until recently, when plusFM changed, and decided to stop displaying the track names on their feed&#8230;</p>
<blockquote><p>* +HM2K is listening to www.plusfm.net &#8211; current track available on www.plusfm.net &lt;www.last.fm/user/hm2k&gt;</p></blockquote>
<p>I understand that you guys want more hits to your site, but you&#8217;re messing up my last.fm feed.</p>
<p>Perhaps PlusFM could sign up to last.fm and feed the audio scrobbler, then I can simply read it from there!</p>
<p>Or perhaps I could read it directly from your site&#8230;</p>
<p>So it turns out there&#8217;s a feed on the site I can read from instead&#8230;</p>
<blockquote><p><a href="http://www.plusfm.net/titre_plusfm.php">http://www.plusfm.net/titre_plusfm.php</a></p></blockquote>
<p>So I wrote a little script for it called plusfm.mrc&#8230;</p>
<ul>
<li>Download <a href="http://hm2k.googlecode.com/svn/trunk/code/mirc/plusfm.mrc">plusfm.mrc</a></li>
<li>Usage: /plusfm</li>
</ul>
<blockquote><p>[12:16:48 pm] * HM2K now playing Justice &#8211; Genesis &lt;www.plusfm.net&gt;</p></blockquote>
]]></description>
			<content:encoded><![CDATA[<p>Recently an online radio station I listen to called PlusFM stopped displaying track titles on their stream. This was a pain for quickly displaying the current track you were listening to, however I did figure out a work around&#8230;</p>
<p><span id="more-567"></span>Here&#8217;s my setup&#8230;</p>
<p>I have two machines in my office, one has a hifi system attached, the other does not.</p>
<p>I use the lightweight media player <a href="http://en.wikipedia.org/wiki/Foobar2000">Foobar2000</a> (foobar2000.org), developed by Peter Pawlowski, a former freelance contractor for Nullsoft. So you know it&#8217;s a good alternative to Winamp.</p>
<p>In Foobar2000 I add the location for PlusFM&#8217;s stream:</p>
<blockquote><p><a href="http://91.121.48.90">http://91.121.48.90</a></p></blockquote>
<p>I then use the last.fm plugin for audio scrobbling in Foobar2000 (<a href="http://www.mp3tag.de/en/fb2k.html">foo_audioscrobbler.dll</a>).</p>
<p>This allows me to feed the track I&#8217;m listening to the last.fm API.</p>
<p>I can then call their API and display the current track I&#8217;m playing on any device, anywhere in the world.</p>
<p>I currently use it in combination with my &#8220;last.fm&#8221; mIRC script, which calls the API, reads the currently playing track, then displays it on screen when you trigger it using the /amp command.</p>
<p>This mean that when I hear a song I like, I could display it to share it with others, or just display it for my own interest.</p>
<p>This was great, until recently, when plusFM changed, and decided to stop displaying the track names on their feed&#8230;</p>
<blockquote><p>* +HM2K is listening to www.plusfm.net &#8211; current track available on www.plusfm.net &lt;www.last.fm/user/hm2k&gt;</p></blockquote>
<p>I understand that you guys want more hits to your site, but you&#8217;re messing up my last.fm feed.</p>
<p>Perhaps PlusFM could sign up to last.fm and feed the audio scrobbler, then I can simply read it from there!</p>
<p>Or perhaps I could read it directly from your site&#8230;</p>
<p>So it turns out there&#8217;s a feed on the site I can read from instead&#8230;</p>
<blockquote><p><a href="http://www.plusfm.net/titre_plusfm.php">http://www.plusfm.net/titre_plusfm.php</a></p></blockquote>
<p>So I wrote a little script for it called plusfm.mrc&#8230;</p>
<ul>
<li>Download <a href="http://hm2k.googlecode.com/svn/trunk/code/mirc/plusfm.mrc">plusfm.mrc</a></li>
<li>Usage: /plusfm</li>
</ul>
<blockquote><p>[12:16:48 pm] * HM2K now playing Justice &#8211; Genesis &lt;www.plusfm.net&gt;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.hm2k.com/posts/plusfm-track-feed/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>weather.tcl</title>
		<link>http://www.hm2k.com/posts/weather-tcl</link>
		<comments>http://www.hm2k.com/posts/weather-tcl#comments</comments>
		<pubDate>Thu, 05 Nov 2009 00:37:14 +0000</pubDate>
		<dc:creator>hm2k</dc:creator>
				<category><![CDATA[IRC]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[eggdrop]]></category>
		<category><![CDATA[eggtcl]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[TCL]]></category>
		<category><![CDATA[weather]]></category>
		<category><![CDATA[weather.tcl]]></category>

		<guid isPermaLink="false">http://www.hm2k.com/?p=560</guid>
		<description><![CDATA[<p>Today, after I decided to hang out in #eggtcl on EFnet, someone asked the following:</p>
<blockquote><p>&lt;daILLeST&gt; anyine know of a weather tcl that actually works? All the ones I find are outdated, or in another language&#8230;</p></blockquote>
<p>I decided it was time that I updated my old weather.tcl based on a script by Ycarus for eggdrop bots.</p>
<p><span id="more-560"></span>Before, many scripts used weather underground (wunderground.com) to gather their feed.</p>
<p>I believe this is because there were many existing TCL based software that used this site to gather their data via telnet.</p>
<p>Telnet access to their server stopped working correctly, so scripts began using their http site to gather data. This too eventually stopped working as once they changed their site, the scripts could no longer parse the html for the data.</p>
<p>Enter Google.</p>
<p>Google has a weather API that they use for their &#8220;<a href="http://www.google.com/ig">iGoogle</a>&#8220;, which is very handy.</p>
<p>Although it appears to be undocumented by Google, working with the API is easy enough&#8230;</p>
<blockquote><p><a href="http://www.google.com/ig/api?weather=london&amp;hl=en">http://www.google.com/ig/api?weather=london&amp;hl=en</a></p></blockquote>
<p>The query string contains a &#8220;weather&#8221; parameter, which is generally city or postcode and the &#8220;hl&#8221; parameter which is the language.</p>
<p>This will return an XML formatted result for the city of &#8220;London, England&#8221;.</p>
<p>We can then parse the data we want from this and return it accordingly.</p>
<p>So, put it all together, a bit of TCL care (get it?), and we&#8217;re done&#8230;</p>
<ul>
<li>Download <a href="http://hm2k.googlecode.com/svn/trunk/code/tcl/weather.tcl">weather.tcl</a></li>
</ul>
<p>It works well, and returns a result similar to this:</p>
<blockquote><p>&gt; .wz london<br />
&lt;Bot&gt; HM2K, * Weather: London, England: Mostly Cloudy, 8ºC Humidity: 87% Wind: W at 9 mph</p></blockquote>
<p>Hope you find this useful.</p>
<p>What I may do next time&#8230;</p>
<p>Since Google&#8217;s Weather API is completely officially undocumented it&#8217;s worth noting that in future it may be wise to use <a href="http://developer.yahoo.com/weather/">Yahoo&#8217;s weather API</a>, which is fully and officially documented.</p>
]]></description>
			<content:encoded><![CDATA[<p>Today, after I decided to hang out in #eggtcl on EFnet, someone asked the following:</p>
<blockquote><p>&lt;daILLeST&gt; anyine know of a weather tcl that actually works? All the ones I find are outdated, or in another language&#8230;</p></blockquote>
<p>I decided it was time that I updated my old weather.tcl based on a script by Ycarus for eggdrop bots.</p>
<p><span id="more-560"></span>Before, many scripts used weather underground (wunderground.com) to gather their feed.</p>
<p>I believe this is because there were many existing TCL based software that used this site to gather their data via telnet.</p>
<p>Telnet access to their server stopped working correctly, so scripts began using their http site to gather data. This too eventually stopped working as once they changed their site, the scripts could no longer parse the html for the data.</p>
<p>Enter Google.</p>
<p>Google has a weather API that they use for their &#8220;<a href="http://www.google.com/ig">iGoogle</a>&#8220;, which is very handy.</p>
<p>Although it appears to be undocumented by Google, working with the API is easy enough&#8230;</p>
<blockquote><p><a href="http://www.google.com/ig/api?weather=london&amp;hl=en">http://www.google.com/ig/api?weather=london&amp;hl=en</a></p></blockquote>
<p>The query string contains a &#8220;weather&#8221; parameter, which is generally city or postcode and the &#8220;hl&#8221; parameter which is the language.</p>
<p>This will return an XML formatted result for the city of &#8220;London, England&#8221;.</p>
<p>We can then parse the data we want from this and return it accordingly.</p>
<p>So, put it all together, a bit of TCL care (get it?), and we&#8217;re done&#8230;</p>
<ul>
<li>Download <a href="http://hm2k.googlecode.com/svn/trunk/code/tcl/weather.tcl">weather.tcl</a></li>
</ul>
<p>It works well, and returns a result similar to this:</p>
<blockquote><p>&gt; .wz london<br />
&lt;Bot&gt; HM2K, * Weather: London, England: Mostly Cloudy, 8ºC Humidity: 87% Wind: W at 9 mph</p></blockquote>
<p>Hope you find this useful.</p>
<p>What I may do next time&#8230;</p>
<p>Since Google&#8217;s Weather API is completely officially undocumented it&#8217;s worth noting that in future it may be wise to use <a href="http://developer.yahoo.com/weather/">Yahoo&#8217;s weather API</a>, which is fully and officially documented.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hm2k.com/posts/weather-tcl/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The specified network name is no longer available samba</title>
		<link>http://www.hm2k.com/posts/the-specified-network-name-is-no-longer-available-samba</link>
		<comments>http://www.hm2k.com/posts/the-specified-network-name-is-no-longer-available-samba#comments</comments>
		<pubDate>Tue, 03 Nov 2009 13:02:14 +0000</pubDate>
		<dc:creator>hm2k</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[smb]]></category>

		<guid isPermaLink="false">http://www.hm2k.com/?p=218</guid>
		<description><![CDATA[<p>I keep getting this error:</p>
<blockquote><p>Error Copying File or Folder</p>
<p>Cannot copy xxx: The specified network name is no longer available.</p></blockquote>
<p>Why?</p>
<p><span id="more-218"></span></p>
<p>Well, I&#8217;m trying to copy a folder from my Windows XP SP2 Pro workstation onto my network share drive, which in fact is a samba (smb) server running on my &#8220;CentOS release 4.6 (Final)&#8221; box.</p>
<p>First thing to do is to check the error logs (generally) at &#8220;/var/log/samba&#8221;&#8230;</p>
<blockquote>
<pre id="codemain" class="code">Sep  8 16:26:13 blade smbd[5913]: [2008/09/08 16:26:13, 0] lib/util_sock.c:read_data(534)
Sep  8 16:26:13 blade smbd[5913]:   read_data: read failure for 4 bytes to client 192.168.0.3. Error = Connection reset by peer
Sep  8 16:26:14 blade smbd[5914]: [2008/09/08 16:26:14, 0] lib/util_sock.c:set_socket_options(237)
Sep  8 16:26:14 blade smbd[5914]:   Unknown socket option TCP_NODELAY_SO_RCVBUF
Sep  8 16:26:14 blade smbd[5914]: [2008/09/08 16:26:14, 0] lib/util_sock.c:set_socket_options(237)
Sep  8 16:26:14 blade smbd[5914]:   Unknown socket option SO_SNBUF</pre>
</blockquote>
<p>Doesn&#8217;t seem very helpful&#8230;</p>
<p>I can&#8217;t work out why I&#8217;m getting these errors, why is the peer being reset?</p>
<p>I <a href="http://www.mail-archive.com/samba@lists.samba.org/msg91461.html">learned that the peer</a> is the client machine that the server is peering to, which means the problem is that my workstation is disconnecting me.</p>
<p>I checked my Event Viewer (%SystemRoot%\system32\eventvwr.msc), which said:</p>
<blockquote><p>NetBT failed to process a request because it encountered OutOfResources exception(s) in the last 1 hour. Event ID: 4322</p></blockquote>
<p>I might have known that the problem would be with windows and not linux.</p>
<p>However, maybe I spoke too soon, as a quick search lands me on the <a href="http://rhn.redhat.com/errata/RHBA-2008-0711.html">redhat site</a>, which states:</p>
<blockquote><p>* when Windows® clients performed file operations on files stored on a<br />
Samba share, various error messages popped-up, and the &#8220;Event ID: 4322&#8243;<br />
error was logged on the Windows® clients:</p>
<p>NetBT failed to process a request because it encountered OutOfResources<br />
exception(s) in the last 1 hour.</p></blockquote>
<p>Which does describe the problem I&#8217;m having exactly, although i&#8217;ve only been experiencing this recently&#8230;</p>
<p>On the other hand the Microsoft site suggests I should <a href="http://technet.microsoft.com/en-us/library/cc727761.aspx">Disable then Enable the network adapter</a>&#8230;</p>
<p>I tried this, and it appeared to work&#8230; At least for now&#8230;</p>
<p>Low and behold I soon got this error a short time later. Now what?</p>
<p>I decided to take a look into the <a href="https://bugzilla.samba.org/show_bug.cgi?id=4796">samba bug</a> mentioned above. Apparently the problem is seen in Samba 3.0.25 and 3.0.25a, but not Samba 3.0.24. I am running 3.0.25b-1.el4_6.5 (smbd &#8211;version).</p>
<p>After investigating my yum log (/var/log/yum.log) I see the following&#8230;</p>
<blockquote><p>Jul 08 01:38:04 Updated: samba-common.i386 3.0.25b-1.el4_6.5<br />
Jul 08 01:39:11 Updated: samba.i386 3.0.25b-1.el4_6.5<br />
Jul 08 01:39:17 Updated: samba-client.i386 3.0.25b-1.el4_6.5</p></blockquote>
<p>This means that it&#8217;s not very likely to be that as I&#8217;ve been running it for more than two months, and i&#8217;ve only recently switched to this workstation (after an uber hardware failure).</p>
<p>I tried from another machine, and I can copy anything without seeing these errors&#8230; The plot thickens&#8230;</p>
<p>I&#8217;m now convinced that the problem is with my workstation and not the server. Now what?</p>
<p>I <a href="http://groups.google.com/group/linux.samba/browse_thread/thread/3dca4ea0d4e7ef9a/9d9832a09a83ae54">noticed a thread by a guy</a> who mentioned that his machine (like mine) was up to date, SP2, but did not have IE7, unlike my other machines. This interested me. Maybe his <a href="https://bugzilla.samba.org/show_bug.cgi?id=4796">bug isn&#8217;t fixed</a> in the version I&#8217;m using? I think it is, it&#8217;s quite old&#8230;</p>
<p>However, it seems his solution was to upgrade to 3.0.25c and/or change the connection from &#8220;netbios-ssn&#8221; (port 139) to &#8220;microsoft-ds&#8221; (port 445)&#8230; somehow. I checked on both ends, and appears I&#8217;m already using &#8220;microsoft-ds&#8221; on this machine anyway&#8230;</p>
<p>Frustration is starting to kick in&#8230;</p>
<p>I&#8217;m out of ideas, perhaps I should roll back to an older version, see if that helps? My logs report this as been the previous version:</p>
<blockquote><p>Jun 07 17:01:55 Updated: samba-common.i386 3.0.10-1.4E.12.2<br />
Jun 07 17:04:29 Updated: samba-client.i386 3.0.10-1.4E.12.2<br />
Jun 07 17:07:44 Updated: samba.i386 3.0.10-1.4E.12.2</p></blockquote>
<p>I had second thoughts about this when reading the samba change log (rpm -q &#8211;changelog samba). There seems to be quite a few security fixes that I&#8217;d rather keep&#8230;</p>
<p>I&#8217;m totally out of ideas&#8230; &#8220;yum remove samba&#8221; it is&#8230; However, apparently to install an old version I have to first install a plugin called &#8220;yum-allowdowngrade&#8221;.</p>
<p>This is getting complicated, especially when it probably isn&#8217;t a problem with the server.</p>
<p>I decided to try an updated version instead&#8230;</p>
<blockquote><p>yum remove samba<br />
yum remove samba-common<br />
rpm -i http://charliebrady.org/samba/samba-common-3.0.30-0.i386.rpm</p>
<p>rpm -i ftp://ftp.pbone.net/mirror/www.startcom.org/AS-4.0.0/os/i386/StartCom/RPMS/perl-Convert-ASN1-0.18-3.noarch.rpm<br />
rpm -i http://charliebrady.org/samba/samba-3.0.30-0.i386.rpm<br />
service samba start</p></blockquote>
<p>It&#8217;s installed, and it started, however I appear to have lost my settings.</p>
<blockquote><p>mv /etc/samba/smb.conf /etc/samba/smb.conf.recent<br />
mv /etc/samba/smb.conf.rpmsave /etc/samba/smb.conf<br />
service smb restart</p></blockquote>
<p>Testing, and so far so good!</p>
<p>In summary, when I was convinced it was the silly windows based client workstation, instead it was the insanely overly complex linux server. This could all be avoided if redhat/centos wasn&#8217;t so keen on <a href="http://www.redhat.com/security/updates/backporting/?sc_cid=3093">backporting</a> and I had the latest version in the first place.</p>
<p>I look forward to the updates.</p>
]]></description>
			<content:encoded><![CDATA[<p>I keep getting this error:</p>
<blockquote><p>Error Copying File or Folder</p>
<p>Cannot copy xxx: The specified network name is no longer available.</p></blockquote>
<p>Why?</p>
<p><span id="more-218"></span></p>
<p>Well, I&#8217;m trying to copy a folder from my Windows XP SP2 Pro workstation onto my network share drive, which in fact is a samba (smb) server running on my &#8220;CentOS release 4.6 (Final)&#8221; box.</p>
<p>First thing to do is to check the error logs (generally) at &#8220;/var/log/samba&#8221;&#8230;</p>
<blockquote>
<pre id="codemain" class="code">Sep  8 16:26:13 blade smbd[5913]: [2008/09/08 16:26:13, 0] lib/util_sock.c:read_data(534)
Sep  8 16:26:13 blade smbd[5913]:   read_data: read failure for 4 bytes to client 192.168.0.3. Error = Connection reset by peer
Sep  8 16:26:14 blade smbd[5914]: [2008/09/08 16:26:14, 0] lib/util_sock.c:set_socket_options(237)
Sep  8 16:26:14 blade smbd[5914]:   Unknown socket option TCP_NODELAY_SO_RCVBUF
Sep  8 16:26:14 blade smbd[5914]: [2008/09/08 16:26:14, 0] lib/util_sock.c:set_socket_options(237)
Sep  8 16:26:14 blade smbd[5914]:   Unknown socket option SO_SNBUF</pre>
</blockquote>
<p>Doesn&#8217;t seem very helpful&#8230;</p>
<p>I can&#8217;t work out why I&#8217;m getting these errors, why is the peer being reset?</p>
<p>I <a href="http://www.mail-archive.com/samba@lists.samba.org/msg91461.html">learned that the peer</a> is the client machine that the server is peering to, which means the problem is that my workstation is disconnecting me.</p>
<p>I checked my Event Viewer (%SystemRoot%\system32\eventvwr.msc), which said:</p>
<blockquote><p>NetBT failed to process a request because it encountered OutOfResources exception(s) in the last 1 hour. Event ID: 4322</p></blockquote>
<p>I might have known that the problem would be with windows and not linux.</p>
<p>However, maybe I spoke too soon, as a quick search lands me on the <a href="http://rhn.redhat.com/errata/RHBA-2008-0711.html">redhat site</a>, which states:</p>
<blockquote><p>* when Windows® clients performed file operations on files stored on a<br />
Samba share, various error messages popped-up, and the &#8220;Event ID: 4322&#8243;<br />
error was logged on the Windows® clients:</p>
<p>NetBT failed to process a request because it encountered OutOfResources<br />
exception(s) in the last 1 hour.</p></blockquote>
<p>Which does describe the problem I&#8217;m having exactly, although i&#8217;ve only been experiencing this recently&#8230;</p>
<p>On the other hand the Microsoft site suggests I should <a href="http://technet.microsoft.com/en-us/library/cc727761.aspx">Disable then Enable the network adapter</a>&#8230;</p>
<p>I tried this, and it appeared to work&#8230; At least for now&#8230;</p>
<p>Low and behold I soon got this error a short time later. Now what?</p>
<p>I decided to take a look into the <a href="https://bugzilla.samba.org/show_bug.cgi?id=4796">samba bug</a> mentioned above. Apparently the problem is seen in Samba 3.0.25 and 3.0.25a, but not Samba 3.0.24. I am running 3.0.25b-1.el4_6.5 (smbd &#8211;version).</p>
<p>After investigating my yum log (/var/log/yum.log) I see the following&#8230;</p>
<blockquote><p>Jul 08 01:38:04 Updated: samba-common.i386 3.0.25b-1.el4_6.5<br />
Jul 08 01:39:11 Updated: samba.i386 3.0.25b-1.el4_6.5<br />
Jul 08 01:39:17 Updated: samba-client.i386 3.0.25b-1.el4_6.5</p></blockquote>
<p>This means that it&#8217;s not very likely to be that as I&#8217;ve been running it for more than two months, and i&#8217;ve only recently switched to this workstation (after an uber hardware failure).</p>
<p>I tried from another machine, and I can copy anything without seeing these errors&#8230; The plot thickens&#8230;</p>
<p>I&#8217;m now convinced that the problem is with my workstation and not the server. Now what?</p>
<p>I <a href="http://groups.google.com/group/linux.samba/browse_thread/thread/3dca4ea0d4e7ef9a/9d9832a09a83ae54">noticed a thread by a guy</a> who mentioned that his machine (like mine) was up to date, SP2, but did not have IE7, unlike my other machines. This interested me. Maybe his <a href="https://bugzilla.samba.org/show_bug.cgi?id=4796">bug isn&#8217;t fixed</a> in the version I&#8217;m using? I think it is, it&#8217;s quite old&#8230;</p>
<p>However, it seems his solution was to upgrade to 3.0.25c and/or change the connection from &#8220;netbios-ssn&#8221; (port 139) to &#8220;microsoft-ds&#8221; (port 445)&#8230; somehow. I checked on both ends, and appears I&#8217;m already using &#8220;microsoft-ds&#8221; on this machine anyway&#8230;</p>
<p>Frustration is starting to kick in&#8230;</p>
<p>I&#8217;m out of ideas, perhaps I should roll back to an older version, see if that helps? My logs report this as been the previous version:</p>
<blockquote><p>Jun 07 17:01:55 Updated: samba-common.i386 3.0.10-1.4E.12.2<br />
Jun 07 17:04:29 Updated: samba-client.i386 3.0.10-1.4E.12.2<br />
Jun 07 17:07:44 Updated: samba.i386 3.0.10-1.4E.12.2</p></blockquote>
<p>I had second thoughts about this when reading the samba change log (rpm -q &#8211;changelog samba). There seems to be quite a few security fixes that I&#8217;d rather keep&#8230;</p>
<p>I&#8217;m totally out of ideas&#8230; &#8220;yum remove samba&#8221; it is&#8230; However, apparently to install an old version I have to first install a plugin called &#8220;yum-allowdowngrade&#8221;.</p>
<p>This is getting complicated, especially when it probably isn&#8217;t a problem with the server.</p>
<p>I decided to try an updated version instead&#8230;</p>
<blockquote><p>yum remove samba<br />
yum remove samba-common<br />
rpm -i http://charliebrady.org/samba/samba-common-3.0.30-0.i386.rpm</p>
<p>rpm -i ftp://ftp.pbone.net/mirror/www.startcom.org/AS-4.0.0/os/i386/StartCom/RPMS/perl-Convert-ASN1-0.18-3.noarch.rpm<br />
rpm -i http://charliebrady.org/samba/samba-3.0.30-0.i386.rpm<br />
service samba start</p></blockquote>
<p>It&#8217;s installed, and it started, however I appear to have lost my settings.</p>
<blockquote><p>mv /etc/samba/smb.conf /etc/samba/smb.conf.recent<br />
mv /etc/samba/smb.conf.rpmsave /etc/samba/smb.conf<br />
service smb restart</p></blockquote>
<p>Testing, and so far so good!</p>
<p>In summary, when I was convinced it was the silly windows based client workstation, instead it was the insanely overly complex linux server. This could all be avoided if redhat/centos wasn&#8217;t so keen on <a href="http://www.redhat.com/security/updates/backporting/?sc_cid=3093">backporting</a> and I had the latest version in the first place.</p>
<p>I look forward to the updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hm2k.com/posts/the-specified-network-name-is-no-longer-available-samba/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scan to Excel</title>
		<link>http://www.hm2k.com/posts/scan-to-excel</link>
		<comments>http://www.hm2k.com/posts/scan-to-excel#comments</comments>
		<pubDate>Sat, 24 Oct 2009 12:11:04 +0000</pubDate>
		<dc:creator>hm2k</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[accountancy]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[document scanner]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[ocr]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[scan]]></category>
		<category><![CDATA[tif]]></category>
		<category><![CDATA[tiff]]></category>

		<guid isPermaLink="false">http://www.hm2k.com/?p=546</guid>
		<description><![CDATA[<p>This week I&#8217;ve mostly been trying to figure out a way to digitalise some of my bank statements to make accountancy and archiving easier.</p>
<p>I figured there must be a way to scan them in using a document scanner, then use OCR software to render the data into Excel.</p>
<p>Of course, nothing does this natively, but there are ways to do it.</p>
<p><span id="more-546"></span></p>
<p>There are three parts to this process&#8230;</p>
<ol>
<li>Document scanning</li>
<li>Data format conversion</li>
<li>Optical character recognition (OCR)</li>
</ol>
<p>For the scanning part I used a Ricoh Aficio MP C4500, which not only acts as a Photocopier, but as a fax machine, network printer and network scanner.</p>
<p>The main part is it&#8217;s ability to scan with <a href="http://en.wikipedia.org/wiki/Image_scanner#Document_processing">document processing</a>. This means (once configured) that it would only take a few minutes to scan a few hundred pages, rather than a few hours using a conventional scanner.</p>
<p>This device has the ability to save scanned documents as PDF or TIF. I decided to use the more versatile TIF image format.</p>
<p>I figured it would be easier to convert a standard image format than the proprietary PDF format. I very quickly discovered that it wasn&#8217;t that simple.</p>
<p>To begin with I had heard good things about two leading OCR software packages&#8230;</p>
<ul>
<li>ABBYY FineReader 9.0</li>
<li>Able2Extract Pro 5.0</li>
</ul>
<p>I found that neither of these software packages would accept TIF files, so I converted each directory of TIF files into a single PDF file using the <a href="http://www.dreamsyssoft.com/tiff-to-pdf/">DreamSys Tiff to PDF Converter</a>, which was a very quick and effective command-line tool for doing the task.</p>
<p>I started trying out Able2Extract as I&#8217;d not used it before and I had read good things about it&#8217;s PDF to Excel conversion. The problem was it kept throwing up a &#8220;Fatal Internal Error #24&#8243; error which I was unable to work around.</p>
<p>I had used ABBYY in the past and it turned out to be very good OCR software for converting to Word at least, however trying to configure it to scan the areas I wanted into Excel seemed almost impossible and took forever.</p>
<p>I decided to go back to the drawing board&#8230;</p>
<p>I quickly realised that there were a few &#8220;web 2.0&#8243; software as a service tools out there that could assist me&#8230;</p>
<ul>
<li><a href="http://www.finereaderonline.com/">ABBYY FineReader Online</a> (10 pages a day for free)</li>
<li>NitroPDF <a href="http://www.pdftoexcelonline.com/">PDF to Excel</a> (free)</li>
</ul>
<p>There&#8217;s many universal &#8220;online document converters&#8221;, a few include&#8230;</p>
<ul>
<li><a href="http://www.zamzar.com/">Zamzar</a></li>
<li><a href="http://www.cometdocs.com/">cometdocs</a></li>
</ul>
<p>My issue with most of these is that they would recognise the PDF, but not the images inside the PDF and use OCR to render them. They are only designed to take the text found in a PDF file and extract that to Excel.</p>
<p>I also came across a few other software packages that will also convert from PDF files to Excel&#8230;</p>
<ul>
<li>deskUNPDF Professional by docudesk</li>
<li>PDF2XL Enterprise by cogniview</li>
<li>ExpressConversion Server by adlibsoftware</li>
<li>PDF To XLS by verypdf</li>
<li>Solid Converter PDF by soliddocuments</li>
<li>TotalPDFConverter by coolutils</li>
</ul>
<p>With all this available proprietary software for converting from PDF to Excel (XLS or CSV) its obvious that it&#8217;s a service definitely in demand.</p>
<p>So far I&#8217;m waiting on the following:</p>
<ul>
<li>Zamzar and others to email me their conversion of the PDF file I uploaded to them.</li>
<li>Able2Extract&#8217;s support team to get back to me with regards to the error.</li>
<li>For Cogniview PDF2XL Enterprise to download.</li>
</ul>
<p>Let&#8217;s see what gets the job done best, first, if any&#8230;</p>
<p>Zamzar is unable to convert from PDF to XLS, directly or indirectly. While finereaderonline will only accept images, not PDF files, which is OK, but may take some time, especially at only 10 pages per day.</p>
<p>Able2Extract were unable to help me with the error unless I sent them the PDF, which I can&#8217;t do due to it&#8217;s content.</p>
<p>I sent DreamSys an email asking them to send these guys a sample output PDF instead, but I&#8217;ve heard nothing back as of yet.</p>
<p>Able2Extract recommended I use their Sonic PDF Creator product to convert the original scanned TIFF files to a PDF which they claim their Able2Extract product will be able to read.</p>
<p>I had a play with Sonic PDF Creator and appeared to be unable to import a directory of TIF files, just each TIF file individually. This seemed like a painstaking process.</p>
<p>I needed to merge the TIF files together into 1 file to make it easier. PTGui Pro is able to stitch TIF files together, however it gave me an error saying:</p>
<p>Error loading TIFF file: Unsupported number of bits per sample (only 8, 16 or 32 are supported) or unsupported sample format. Useless.</p>
<p>Back to square one.</p>
<p>I decided to try my luck with PDF2XL, which after a little teething problem getting a working copy to begin with seemed to be quite a neat package.</p>
<p>PDF2XL was able to detect that the PDF I had given it (the one I created using Tiff 2 PDF) was a scanned document and began performing OCR on the file.</p>
<p>The results were almost prefect, VERY impressive. It seems that PDF2XL is able to do what nothing else could, not even Able2Extract. Don&#8217;t waste your time with anything else. It seems that <a href="http://www.cogniview.com/pdf2xl.php">PDF2XL</a> is all you need.</p>
<p>The only thing I will say is I had to tweak the OCR settings a little bit to get it to render the page correctly.</p>
<p>Just when I thought everything was going great, I discovered another issue I had completely overlooked. The output was not in the correct order. I took a look at the original PDF and soon discovered that the images in the PDF were not in the correct order either.</p>
<p>First off, I decided that I should rename all the images based on the sheet number, that way I could be sure that they were correctly ordered. I created a batch file to preview and rename the images, called &#8220;<a href="http://hm2k.googlecode.com/svn/trunk/code/batch/imgrename.bat">imgrename.bat</a>&#8220;. I was also able to use this to rename an entire directory at a time.</p>
<p>I tried rebuilding the PDF using <em>DreamSys Tiff to PDF Converter</em> which I had used to create the PDF file in the first place, only to find that it was still out of order and I couldn&#8217;t influence the sorting. I had to find something else to do the job&#8230;</p>
<p>Enter <a href="http://www.remotesensing.org/libtiff/">libtiff</a> and it&#8217;s windows counterpart <a href="http://gnuwin32.sourceforge.net/packages/tiff.htm">Tiff for Windows by GnuWin32</a>. Once I had a copy of this I was able to write another batch file that would not only combine the TIFF files (with pages) into a single TIFF file (using tiffcp.exe) but I was able to convert that into a PDF using (tiff2pdf.exe). I called this script &#8220;<a href="http://hm2k.googlecode.com/svn/trunk/code/batch/tiff2pdf.bat">tiff2pdf.bat</a>&#8220;.</p>
<p>Bingo!</p>
<p>All was successful&#8230;</p>
<p>The next task is to firstly, cleanup anything bad in the CSV file left by OCR (cleancsv.bat) then to &#8220;normalise&#8221; the data&#8230;</p>
<p>But that&#8217;s another story for another time. We&#8217;ve done what we set out to do which was to scan to excel and all is well on that front.</p>
<p>Hope you find this useful. Enjoy!</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 880px; width: 1px; height: 1px;"><a class="NoDecorationRed" href="http://www.cogniview.com/pdf2xl-enterprise.php">PDF2XL Enterprise</a></div>
]]></description>
			<content:encoded><![CDATA[<p>This week I&#8217;ve mostly been trying to figure out a way to digitalise some of my bank statements to make accountancy and archiving easier.</p>
<p>I figured there must be a way to scan them in using a document scanner, then use OCR software to render the data into Excel.</p>
<p>Of course, nothing does this natively, but there are ways to do it.</p>
<p><span id="more-546"></span></p>
<p>There are three parts to this process&#8230;</p>
<ol>
<li>Document scanning</li>
<li>Data format conversion</li>
<li>Optical character recognition (OCR)</li>
</ol>
<p>For the scanning part I used a Ricoh Aficio MP C4500, which not only acts as a Photocopier, but as a fax machine, network printer and network scanner.</p>
<p>The main part is it&#8217;s ability to scan with <a href="http://en.wikipedia.org/wiki/Image_scanner#Document_processing">document processing</a>. This means (once configured) that it would only take a few minutes to scan a few hundred pages, rather than a few hours using a conventional scanner.</p>
<p>This device has the ability to save scanned documents as PDF or TIF. I decided to use the more versatile TIF image format.</p>
<p>I figured it would be easier to convert a standard image format than the proprietary PDF format. I very quickly discovered that it wasn&#8217;t that simple.</p>
<p>To begin with I had heard good things about two leading OCR software packages&#8230;</p>
<ul>
<li>ABBYY FineReader 9.0</li>
<li>Able2Extract Pro 5.0</li>
</ul>
<p>I found that neither of these software packages would accept TIF files, so I converted each directory of TIF files into a single PDF file using the <a href="http://www.dreamsyssoft.com/tiff-to-pdf/">DreamSys Tiff to PDF Converter</a>, which was a very quick and effective command-line tool for doing the task.</p>
<p>I started trying out Able2Extract as I&#8217;d not used it before and I had read good things about it&#8217;s PDF to Excel conversion. The problem was it kept throwing up a &#8220;Fatal Internal Error #24&#8243; error which I was unable to work around.</p>
<p>I had used ABBYY in the past and it turned out to be very good OCR software for converting to Word at least, however trying to configure it to scan the areas I wanted into Excel seemed almost impossible and took forever.</p>
<p>I decided to go back to the drawing board&#8230;</p>
<p>I quickly realised that there were a few &#8220;web 2.0&#8243; software as a service tools out there that could assist me&#8230;</p>
<ul>
<li><a href="http://www.finereaderonline.com/">ABBYY FineReader Online</a> (10 pages a day for free)</li>
<li>NitroPDF <a href="http://www.pdftoexcelonline.com/">PDF to Excel</a> (free)</li>
</ul>
<p>There&#8217;s many universal &#8220;online document converters&#8221;, a few include&#8230;</p>
<ul>
<li><a href="http://www.zamzar.com/">Zamzar</a></li>
<li><a href="http://www.cometdocs.com/">cometdocs</a></li>
</ul>
<p>My issue with most of these is that they would recognise the PDF, but not the images inside the PDF and use OCR to render them. They are only designed to take the text found in a PDF file and extract that to Excel.</p>
<p>I also came across a few other software packages that will also convert from PDF files to Excel&#8230;</p>
<ul>
<li>deskUNPDF Professional by docudesk</li>
<li>PDF2XL Enterprise by cogniview</li>
<li>ExpressConversion Server by adlibsoftware</li>
<li>PDF To XLS by verypdf</li>
<li>Solid Converter PDF by soliddocuments</li>
<li>TotalPDFConverter by coolutils</li>
</ul>
<p>With all this available proprietary software for converting from PDF to Excel (XLS or CSV) its obvious that it&#8217;s a service definitely in demand.</p>
<p>So far I&#8217;m waiting on the following:</p>
<ul>
<li>Zamzar and others to email me their conversion of the PDF file I uploaded to them.</li>
<li>Able2Extract&#8217;s support team to get back to me with regards to the error.</li>
<li>For Cogniview PDF2XL Enterprise to download.</li>
</ul>
<p>Let&#8217;s see what gets the job done best, first, if any&#8230;</p>
<p>Zamzar is unable to convert from PDF to XLS, directly or indirectly. While finereaderonline will only accept images, not PDF files, which is OK, but may take some time, especially at only 10 pages per day.</p>
<p>Able2Extract were unable to help me with the error unless I sent them the PDF, which I can&#8217;t do due to it&#8217;s content.</p>
<p>I sent DreamSys an email asking them to send these guys a sample output PDF instead, but I&#8217;ve heard nothing back as of yet.</p>
<p>Able2Extract recommended I use their Sonic PDF Creator product to convert the original scanned TIFF files to a PDF which they claim their Able2Extract product will be able to read.</p>
<p>I had a play with Sonic PDF Creator and appeared to be unable to import a directory of TIF files, just each TIF file individually. This seemed like a painstaking process.</p>
<p>I needed to merge the TIF files together into 1 file to make it easier. PTGui Pro is able to stitch TIF files together, however it gave me an error saying:</p>
<p>Error loading TIFF file: Unsupported number of bits per sample (only 8, 16 or 32 are supported) or unsupported sample format. Useless.</p>
<p>Back to square one.</p>
<p>I decided to try my luck with PDF2XL, which after a little teething problem getting a working copy to begin with seemed to be quite a neat package.</p>
<p>PDF2XL was able to detect that the PDF I had given it (the one I created using Tiff 2 PDF) was a scanned document and began performing OCR on the file.</p>
<p>The results were almost prefect, VERY impressive. It seems that PDF2XL is able to do what nothing else could, not even Able2Extract. Don&#8217;t waste your time with anything else. It seems that <a href="http://www.cogniview.com/pdf2xl.php">PDF2XL</a> is all you need.</p>
<p>The only thing I will say is I had to tweak the OCR settings a little bit to get it to render the page correctly.</p>
<p>Just when I thought everything was going great, I discovered another issue I had completely overlooked. The output was not in the correct order. I took a look at the original PDF and soon discovered that the images in the PDF were not in the correct order either.</p>
<p>First off, I decided that I should rename all the images based on the sheet number, that way I could be sure that they were correctly ordered. I created a batch file to preview and rename the images, called &#8220;<a href="http://hm2k.googlecode.com/svn/trunk/code/batch/imgrename.bat">imgrename.bat</a>&#8220;. I was also able to use this to rename an entire directory at a time.</p>
<p>I tried rebuilding the PDF using <em>DreamSys Tiff to PDF Converter</em> which I had used to create the PDF file in the first place, only to find that it was still out of order and I couldn&#8217;t influence the sorting. I had to find something else to do the job&#8230;</p>
<p>Enter <a href="http://www.remotesensing.org/libtiff/">libtiff</a> and it&#8217;s windows counterpart <a href="http://gnuwin32.sourceforge.net/packages/tiff.htm">Tiff for Windows by GnuWin32</a>. Once I had a copy of this I was able to write another batch file that would not only combine the TIFF files (with pages) into a single TIFF file (using tiffcp.exe) but I was able to convert that into a PDF using (tiff2pdf.exe). I called this script &#8220;<a href="http://hm2k.googlecode.com/svn/trunk/code/batch/tiff2pdf.bat">tiff2pdf.bat</a>&#8220;.</p>
<p>Bingo!</p>
<p>All was successful&#8230;</p>
<p>The next task is to firstly, cleanup anything bad in the CSV file left by OCR (cleancsv.bat) then to &#8220;normalise&#8221; the data&#8230;</p>
<p>But that&#8217;s another story for another time. We&#8217;ve done what we set out to do which was to scan to excel and all is well on that front.</p>
<p>Hope you find this useful. Enjoy!</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 880px; width: 1px; height: 1px;"><a class="NoDecorationRed" href="http://www.cogniview.com/pdf2xl-enterprise.php">PDF2XL Enterprise</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.hm2k.com/posts/scan-to-excel/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>mydigitallife.info stole my code</title>
		<link>http://www.hm2k.com/posts/mydigitallife-info-stole-my-code</link>
		<comments>http://www.hm2k.com/posts/mydigitallife-info-stole-my-code#comments</comments>
		<pubDate>Wed, 14 Oct 2009 14:02:06 +0000</pubDate>
		<dc:creator>hm2k</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[mydigitallife.info]]></category>
		<category><![CDATA[oga]]></category>
		<category><![CDATA[removeoga]]></category>
		<category><![CDATA[removeoga.bat]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.hm2k.com/?p=541</guid>
		<description><![CDATA[<p>I wrote a little script for an article on fixr.co.uk entitled &#8220;<a href="http://www.fixr.co.uk/2009/10/09/remove-oga-notifier/">Remove OGA Notifier</a>&#8220;.</p>
<p>Today I discovered that <a href="http://whoisx.co.uk/mydigitallife.info"><em>mydigitallife.info</em></a> had clearly taken details from my batch file code and used it without giving me or fixr.co.uk any credit at all.</p>
<p><span id="more-541"></span></p>
<p>Just compare the actual functions in my <a href="http://hm2k.googlecode.com/svn-history/r40/trunk/code/batch/removeoga.bat">removeoga.bat</a> to their <a href="http://depositfiles.com/files/l4w52gsjv">RemoveOGA.bat</a>, you can clearly see it&#8217;s the same, yet no credit is given at all.</p>
<blockquote><p>mydigitallife.info is LAME.</p>
<p><em>- HM2K<br />
</em></p></blockquote>
<p>Taking someone else&#8217;s code and not giving any credit for it is LAME, yes <em>mydigitallife.info</em> is <strong>lame</strong> and I will be boycotting your site until further notice.</p>
<blockquote><p>@ECHO off<br />
TITLE mydigitallife.info Boycott<br />
ECHO mydigitallife.info Boycott because they stole my code without giving me credit.<br />
ECHO.<br />
ECHO This will bind mydigitallife.info and www.mydigitallife.info to 0.0.0.0<br />
PAUSE<br />
ECHO 0.0.0.0 www.mydigitallife.info &gt;&gt; %systemdrive%\windows\system32\drivers\etc\hosts<br />
ECHO 0.0.0.0 mydigitallife.info &gt;&gt; %systemdrive%\windows\system32\drivers\etc\hosts</p></blockquote>
<p>Simply copy this into a notepad window, and save as &#8220;mydigitallife_boycott.bat&#8221;, then run it.</p>
<p>Anyway, I&#8217;ve since improved my batch file to support more versions and languages, so if you copy that too, I&#8217;ll be on to you!</p>
<p>Thanks.</p>
<p><em>Note: If you were to clearly give me and fixr.co.uk credit, I may remove this post.</em></p>
]]></description>
			<content:encoded><![CDATA[<p>I wrote a little script for an article on fixr.co.uk entitled &#8220;<a href="http://www.fixr.co.uk/2009/10/09/remove-oga-notifier/">Remove OGA Notifier</a>&#8220;.</p>
<p>Today I discovered that <a href="http://whoisx.co.uk/mydigitallife.info"><em>mydigitallife.info</em></a> had clearly taken details from my batch file code and used it without giving me or fixr.co.uk any credit at all.</p>
<p><span id="more-541"></span></p>
<p>Just compare the actual functions in my <a href="http://hm2k.googlecode.com/svn-history/r40/trunk/code/batch/removeoga.bat">removeoga.bat</a> to their <a href="http://depositfiles.com/files/l4w52gsjv">RemoveOGA.bat</a>, you can clearly see it&#8217;s the same, yet no credit is given at all.</p>
<blockquote><p>mydigitallife.info is LAME.</p>
<p><em>- HM2K<br />
</em></p></blockquote>
<p>Taking someone else&#8217;s code and not giving any credit for it is LAME, yes <em>mydigitallife.info</em> is <strong>lame</strong> and I will be boycotting your site until further notice.</p>
<blockquote><p>@ECHO off<br />
TITLE mydigitallife.info Boycott<br />
ECHO mydigitallife.info Boycott because they stole my code without giving me credit.<br />
ECHO.<br />
ECHO This will bind mydigitallife.info and www.mydigitallife.info to 0.0.0.0<br />
PAUSE<br />
ECHO 0.0.0.0 www.mydigitallife.info &gt;&gt; %systemdrive%\windows\system32\drivers\etc\hosts<br />
ECHO 0.0.0.0 mydigitallife.info &gt;&gt; %systemdrive%\windows\system32\drivers\etc\hosts</p></blockquote>
<p>Simply copy this into a notepad window, and save as &#8220;mydigitallife_boycott.bat&#8221;, then run it.</p>
<p>Anyway, I&#8217;ve since improved my batch file to support more versions and languages, so if you copy that too, I&#8217;ll be on to you!</p>
<p>Thanks.</p>
<p><em>Note: If you were to clearly give me and fixr.co.uk credit, I may remove this post.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hm2k.com/posts/mydigitallife-info-stole-my-code/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
