<?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>HagelBlog&#187; Programming</title>
	<atom:link href="http://www.hagelnx.com/category/prog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.hagelnx.com</link>
	<description>An American in Bulgaria</description>
	<lastBuildDate>Mon, 17 May 2010 11:37:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Maven-shade-plugin and Spring: Unable to locate Spring NamespaceHandler for XML schema namespace</title>
		<link>http://www.hagelnx.com/prog/814</link>
		<comments>http://www.hagelnx.com/prog/814#comments</comments>
		<pubDate>Mon, 17 May 2010 11:30:51 +0000</pubDate>
		<dc:creator>Kevin  Hagel</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://www.hagelnx.com/?p=814</guid>
		<description><![CDATA[I&#8217;m using the maven-shade-plugin to build a standalone spring-based java application. Have you ever seen this complaint from spring: Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace &#91;http://www.springframework.org/schema/util&#93; Well, here&#8217;s the thing. Inside all those spring jars, in the META-INF directory you&#8217;ll see a file META-INF/spring.handlers and another file [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m using the <a href="http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html" target="_blank">maven-shade-plugin</a> to build a standalone spring-based java application.<br />
Have you ever seen this complaint from spring:</p>
<div class="codecolorer-container bash default" style="border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to <span style="color: #c20cb9; font-weight: bold;">locate</span> Spring NamespaceHandler <span style="color: #000000; font-weight: bold;">for</span> XML schema namespace <span style="color: #7a0874; font-weight: bold;">&#91;</span>http:<span style="color: #000000; font-weight: bold;">//</span>www.springframework.org<span style="color: #000000; font-weight: bold;">/</span>schema<span style="color: #000000; font-weight: bold;">/</span>util<span style="color: #7a0874; font-weight: bold;">&#93;</span></div></div>
<p>Well, here&#8217;s the thing.  Inside all those spring jars, in the META-INF directory you&#8217;ll see a file</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">META-INF/spring.handlers</div></div>
<p>and another file</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">META-INF/spring.schemas</div></div>
<p><span id="more-814"></span></p>
<p>Everyone of the spring jars, spring-core and spring-context and spring-aop and so on contains a directory META-INF which contains spring.handlers and spring.schemas files.  Most or all of them also have the particular schema file contained as well &#8212; this lets you have your spring contexts validated even if you&#8217;re running offline.</p>
<p>Here&#8217;s what the spring.schemas file looks like if you open up spring-aop-3.0.2.RELEASE.jar and have a look:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">http\://www.springframework.org/schema/aop/spring-aop-2.0.xsd=org/springframework/aop/config/spring-aop-2.0.xsd<br />
http\://www.springframework.org/schema/aop/spring-aop-2.5.xsd=org/springframework/aop/config/spring-aop-2.5.xsd<br />
http\://www.springframework.org/schema/aop/spring-aop-3.0.xsd=org/springframework/aop/config/spring-aop-3.0.xsd<br />
http\://www.springframework.org/schema/aop/spring-aop.xsd=org/springframework/aop/config/spring-aop-3.0.xsd</div></div>
<p>Notice you do NOT see anything about spring-context or spring-util or spring-task &#8230; and so on.</p>
<p>Now the maven-shade-plugin basically expands the jars and rewrites them into the work directory before jarring everything back up again.  This normally works fine when you don&#8217;t have naming and pathing COLLISIONS, like you do with these schema files.  So whichever spring jar was processed last by maven-shade will have its META-INF/* contents written into the final jar you&#8217;re creating, overwriting any other content with the same name.</p>
<p>So if you&#8217;re using a spring context file that looks something like this:</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;beans</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/beans&quot;</span></span><br />
<span style="color: #009900;"> &nbsp;<span style="color: #000066;">xmlns:xsi</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span></span><br />
<span style="color: #009900;"> &nbsp;<span style="color: #000066;">xmlns:context</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/context&quot;</span></span><br />
<span style="color: #009900;"> &nbsp;<span style="color: #000066;">xmlns:util</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/util&quot;</span></span><br />
<span style="color: #009900;"> &nbsp;<span style="color: #000066;">xsi:schemaLocation</span>=<span style="color: #ff0000;">&quot;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd</span><br />
<span style="color: #009900;"> &nbsp; &nbsp;http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd</span><br />
<span style="color: #009900;"> &nbsp; &nbsp;http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;context</span> :annotation-config <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
<br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;util</span> :properties <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;defaultProperties&quot;</span> </span><br />
<span style="color: #009900;"> &nbsp; &nbsp;<span style="color: #000066;">location</span>=<span style="color: #ff0000;">&quot;classpath:/spring/defaultScraperExecution.properties&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
<br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/beans<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p>&#8230;you will get the complaint mentioned in the title of this blog entry.   Spring can&#8217;t find the namespace handler for &#8220;util&#8221;, because it is not mentioned in the META-INF/spring.schemas that result in the final product.</p>
<p>Here&#8217;s the solution &#8211; you need to take advantage of the example in the <a href="http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html" target="_blank" title="Will open in a new window/tab">maven-shade-plugin</a> page and do this in your configuration section:</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;transformers<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- </span><br />
<span style="color: #808080; font-style: italic;"> &nbsp;must be SURE to do this with both spring.handlers and spring.schemas. otherwise</span><br />
<span style="color: #808080; font-style: italic;"> &nbsp;you won't be able to use them in the spring config files. </span><br />
<span style="color: #808080; font-style: italic;"> &nbsp; --&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;transformer</span> <span style="color: #000066;">implementation</span>=<span style="color: #ff0000;">&quot;org.apache.maven.plugins.shade.resource.AppendingTransformer&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;resource<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>META-INF/spring.handlers<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/resource<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/transformer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;transformer</span> <span style="color: #000066;">implementation</span>=<span style="color: #ff0000;">&quot;org.apache.maven.plugins.shade.resource.AppendingTransformer&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;resource<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>META-INF/spring.schemas<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/resource<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/transformer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/transformers<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p>The maven-shade-plugin will append the contents of all META-INF/spring.schemas and META-INF/spring.handlers files it finds during the expansion.</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2F814&amp;linkname=Maven-shade-plugin%20and%20Spring%3A%20Unable%20to%20locate%20Spring%20NamespaceHandler%20for%20XML%20schema%20namespace" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2F814&amp;linkname=Maven-shade-plugin%20and%20Spring%3A%20Unable%20to%20locate%20Spring%20NamespaceHandler%20for%20XML%20schema%20namespace"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hagelnx.com/prog/814/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>gettext &#8211; .po vs .pot</title>
		<link>http://www.hagelnx.com/prog/782</link>
		<comments>http://www.hagelnx.com/prog/782#comments</comments>
		<pubDate>Tue, 02 Feb 2010 09:57:08 +0000</pubDate>
		<dc:creator>Kevin  Hagel</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.hagelnx.com/?p=782</guid>
		<description><![CDATA[What is the difference between a .po and .pot file? Here&#8217;s a quote from the GNU gettext utilities page: After preparing the sources, the programmer creates a PO template file. This section explains how to use xgettext for this purpose. xgettext creates a file named domainname.po. You should then rename it to domainname.pot. (Why doesn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>What is the difference between a .po and .pot file?</p>
<p>Here&#8217;s a quote from the <a href="http://www.gnu.org/software/gettext/manual/gettext.html" target="_blank">GNU gettext utilities page</a>:</p>
<blockquote><p>After preparing the sources, the programmer creates a PO template file. This section explains how to use xgettext for this purpose.</p>
<p>xgettext creates a file named domainname.po. You should then rename it to domainname.pot. (Why doesn&#8217;t xgettext create it under the name domainname.pot right away? The answer is: for historical reasons. When xgettext was specified, the distinction between a PO file and PO file template was fuzzy, and the suffix ‘.pot’ wasn&#8217;t in use at that time.) </p></blockquote>
<p>So that&#8217;s it.  It&#8217;s the same file, with a different name.  Just thought I&#8217;d mention that, considering how much time I pissed off trying to find the answer!</p>
<p>[edit]<br />
It looks like WordPress sees this a little differently.  the POT file, the &#8220;PO&#8221; Template, is the raw output from the xgettext, untranslated.  the PO file is the text-editable and edited pot file with the translations.  the MO file is built with msgfmt (among others) and is what is actually used by php&#8217;s gettext.</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2F782&amp;linkname=gettext%20%26%238211%3B%20.po%20vs%20.pot" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2F782&amp;linkname=gettext%20%26%238211%3B%20.po%20vs%20.pot"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hagelnx.com/prog/782/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internationalization, Localization, gettext, php &#8211; a beginning.</title>
		<link>http://www.hagelnx.com/prog/753</link>
		<comments>http://www.hagelnx.com/prog/753#comments</comments>
		<pubDate>Fri, 29 Jan 2010 10:32:54 +0000</pubDate>
		<dc:creator>Kevin  Hagel</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.hagelnx.com/?p=753</guid>
		<description><![CDATA[I&#8217;m beginning a new effort these days, that of internationalisation and localisation of the php coding I&#8217;ve been doing lately. GNU &#8216;gettext&#8217; Utilities These docs for gettext are C-oriented, but the associated tools such as xgettext are easily used by PHP, so let&#8217;s not get too excited about the C. And I&#8217;m going to assume [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m beginning a new effort these days, that of internationalisation and localisation of the php coding I&#8217;ve been doing lately.</p>
<p><a href="http://www.gnu.org/software/gettext/manual/gettext.html" target="_blank">GNU &#8216;gettext&#8217; Utilities</a></p>
<p>These docs for gettext are C-oriented, but the associated tools such as xgettext are easily used by PHP, so let&#8217;s not get too excited about the C.<br />
And I&#8217;m going to assume you have installed GNU&#8217;s gettext on your system.  I&#8217;m pretty sure it arrives by default with your ubuntu or other linux installation.  Mac and Windows you&#8217;re going to have to find for yourself <img src='http://www.hagelnx.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Edited:  download <a href="http://gnuwin32.sourceforge.net/downlinks/gettext.php" target="_blank">GetText for Windows here</a></p>
<p>There&#8217;s also a lot of emacs crap in this doc, which I&#8217;m also going to ignore.  We&#8217;re going to use tools like poedit, gtranslator for what we need &#8230; coming posts.</p>
<p>on my ubuntu 9.10 box the following command installs the php-gettext stuff in /usr/share/php/php-gettext</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> php-gettext</div></div>
<p>and includes these three files:</p>
<ul>
<li>gettext.inc</li>
<li>gettext.php</li>
<li>streams.php</li>
</ul>
<p>I&#8217;m not going to deal with the internals of these files here in this post.</p>
<p>What I do is copy these into my working project somewhere, say in a subdirectory named &#8220;library&#8221;, &#8220;lib&#8221;, &#8220;i18n&#8221; &#8230; etc.  I&#8217;m going to call it ./library/i18n just for this.</p>
<p><strong>.po, .pot, .mo files &#8211; what are these?</strong><br />
<a href="http://www.gnu.org/software/gettext/manual/gettext.html#Files" target="_blank"></p>
<p>http://www.gnu.org/software/gettext/manual/gettext.html#Files</a></p>
<p>That&#8217;s about all for now, sorry I couldn&#8217;t be more helpful in this post.  This is just the setup stuff I&#8217;ve done for my new entry into this world of Internationalisation (i18n), Localisation (l10n), and Native Language Support (NLS) &#8212; see <a href="http://www.gnu.org/software/gettext/manual/gettext.html#Concepts" target="_blank">Concepts</a>.</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2F753&amp;linkname=Internationalization%2C%20Localization%2C%20gettext%2C%20php%20%26%238211%3B%20a%20beginning." title="Facebook" rel="nofollow" target="_blank"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2F753&amp;linkname=Internationalization%2C%20Localization%2C%20gettext%2C%20php%20%26%238211%3B%20a%20beginning."><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hagelnx.com/prog/753/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Plugin Review: Code Colorer</title>
		<link>http://www.hagelnx.com/prog/wordpress/696</link>
		<comments>http://www.hagelnx.com/prog/wordpress/696#comments</comments>
		<pubDate>Fri, 11 Dec 2009 23:58:01 +0000</pubDate>
		<dc:creator>Kevin  Hagel</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugin review]]></category>

		<guid isPermaLink="false">http://www.hagelnx.com/?p=696</guid>
		<description><![CDATA[Code Colorer I used WP-SyntaxHighlighter, I tried some others, but the simplest and most expedient plugin I found for highlighting code in my blogs comes from Dmytro Shteflyuk&#8217;s Code Colorer. Like most of them it&#8217;s based on the Geshi Generic Syntax Highlighter &#8230; much easier syntax. I recommend this one for bloggers who wish to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://kpumuk.info/projects/wordpress-plugins/codecolorer/" target="_blank">Code Colorer</a></p>
<p>I used WP-SyntaxHighlighter, I tried some others, but the simplest and most expedient plugin I found for highlighting code in my blogs comes from Dmytro Shteflyuk&#8217;s Code Colorer.<br />
Like most of them it&#8217;s based on the <a href="http://qbnz.com/highlighter/" target="_blank">Geshi Generic Syntax Highlighter</a> &#8230; much easier syntax.</p>
<p>I recommend this one for bloggers who wish to include code in their posts.</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2Fwordpress%2F696&amp;linkname=Plugin%20Review%3A%20Code%20Colorer" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2Fwordpress%2F696&amp;linkname=Plugin%20Review%3A%20Code%20Colorer"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hagelnx.com/prog/wordpress/696/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress plugins don&#8217;t commonly use classes, why?</title>
		<link>http://www.hagelnx.com/prog/wordpress/658</link>
		<comments>http://www.hagelnx.com/prog/wordpress/658#comments</comments>
		<pubDate>Fri, 11 Dec 2009 14:59:45 +0000</pubDate>
		<dc:creator>Kevin  Hagel</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.hagelnx.com/?p=658</guid>
		<description><![CDATA[I&#8217;m learning how to write wordpress plugins, I&#8217;ve said that before here in my blog.  One of the ways I&#8217;m doing it is by downloading/installing existing plugins I see out there which may be interesting to me &#8211; they provide actions and capabilities to do things I want my plugin(s) to do &#8230; on a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m learning how to write wordpress plugins, I&#8217;ve said that before here in my blog.  One of the ways I&#8217;m doing it is by downloading/installing existing plugins I see out there which may be interesting to me &#8211; they provide actions and capabilities to do things I want my plugin(s) to do &#8230; on a more general scale.</p>
<p>One thing I have noticed &#8211; almost all of these plugin authors do NOT use classes in their design.  Their .php files are full of functions, most of the time written without the</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'my_function'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">function</span> my_function<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// and so on</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>or</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'my_function'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">function</span> my_function<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// and so on</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span></div></div>
<p>How do they expect to avoid naming collisions?  If they <em>have</em> to have a function by a certain name which probably exist in some other plugin developer&#8217;s file somewhere, then even if they use this <em>!function_exists</em> business they&#8217;ll end up getting the other author&#8217;s behavior for that function.</p>
<p>Why don&#8217;t these people just use classes!  I know I&#8217;m coming at this from the java world where you <em>have to</em> use classes for everything, and there&#8217;s packaging to avoid naming collisions, but still &#8211; this seems like an obvious question to me.  Do the modern php programmers have <strong><em>no</em></strong> experience with a real class-oriented language?</p>
<p>Here&#8217;s a silly example I&#8217;m doing.  I have a plugin I&#8217;m developing to allow Zlatina&#8217;s web administrators to deal with their database of students and contacts.  It&#8217;s called Bcc DBManager.<br />
I created a subdirectory  wp-content/plugins/bcc-dbmanager, with a file named bcc-dbmanager.php &#8230; duh.  I want to hook into the activate_${plugin} (<a href="http://adambrown.info/p/wp_hooks/hook/activate_%7B$plugin%7D" target="_blank">see this link for an explanation of that</a>).  Here&#8217;s a partial &#8230;</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <br />
<span style="color: #666666; font-style: italic;">/* <br />
Plugin Name: Bcc DBManager <br />
Description: Blah blah <br />
*/</span> <br />
<span style="color: #000088;">$bccDBManager</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> BCC_DBmanager<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'activate_bcc-dbmanager/bcc-dbmanager.php'</span><span style="color: #339933;">,</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span><span style="color: #000088;">$bccDBManager</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'_activate'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
<br />
<span style="color: #000000; font-weight: bold;">class</span> BCC_DBmanager <span style="color: #009900;">&#123;</span> &nbsp; <br />
&nbsp; <span style="color: #000000; font-weight: bold;">function</span> _activate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> &nbsp;<span style="color: #009900;">&#123;</span> &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// do stuff &nbsp; &nbsp; </span><br />
&nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">very_common_function_name</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// or this way</span><br />
&nbsp; &nbsp; BCC_DBmanager<span style="color: #339933;">::</span><span style="color: #004000;">very_common_function_name</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #666666; font-style: italic;">## function with a very common name<br />
</span> &nbsp;<span style="color: #000000; font-weight: bold;">function</span> very_common_function_name<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// do stuff</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></div>
<p>How hard is that?  I certainly don&#8217;t know much about plugin development at this point.  But I would have to describe the use of functions rather than class instances and methods as Code Smell.</p>
<p>[Edit] Since I wrote this post I found this link on Nerdaphernalia:<a rel="nofollow" target="_blank" href="http://striderweb.com/nerdaphernalia/2008/07/use-classes-in-your-wordpress-plugins/"> Use Classes in your WordPress plugins to increase code portability and reduce name conflicts</a></p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2Fwordpress%2F658&amp;linkname=WordPress%20plugins%20don%26%238217%3Bt%20commonly%20use%20classes%2C%20why%3F" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2Fwordpress%2F658&amp;linkname=WordPress%20plugins%20don%26%238217%3Bt%20commonly%20use%20classes%2C%20why%3F"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hagelnx.com/prog/wordpress/658/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ubuntu 9.10 apache2 php5 How to get apache to see index.php first</title>
		<link>http://www.hagelnx.com/uncategorized/615</link>
		<comments>http://www.hagelnx.com/uncategorized/615#comments</comments>
		<pubDate>Fri, 04 Dec 2009 13:30:55 +0000</pubDate>
		<dc:creator>Kevin  Hagel</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.hagelnx.com/?p=615</guid>
		<description><![CDATA[After you&#8217;ve installed apach2, php5, mysql, etc, you test it with http://localhost and all you get is this &#8220;It Works!&#8221; crap.  You can actually create an index.php page that looks like: &#60;?php &#160; phpinfo&#40;&#41;; ?&#62; and you can actually type in http://localhost/index.php and get your phpinfo page coming out.  But it seems nowhere in the [...]]]></description>
			<content:encoded><![CDATA[<p>After you&#8217;ve installed apach2, php5, mysql, etc, you test it with http://localhost and all you get is this &#8220;It Works!&#8221; crap.  You can actually create an index.php page that looks like:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
&nbsp; <span style="color: #990000;">phpinfo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></div>
<p>and you can actually type in http://localhost/index.php and get your phpinfo page coming out.  But it seems nowhere in the docs can you find out how to get apache2 to recognize index.php as the first page to deliver.</p>
<p>So, I found out where, finally.  In your WAMP environment there&#8217;s only the http.conf file, you look for the DirectoryIndex, and move index.php or insert &#8220;index.php&#8221; to the front of the line.  In this ubuntu 9.10 LAMP setup, where the hell is the file?</p>
<p><strong> /etc/apache2/mods-available/dir.conf</strong></p>
<p>That&#8217;s where it is.  open the file, it looks like this after your normal lamp setup in this environment</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ifmodule</span> mod_dir.c<span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp;DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm<br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ifmodule<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p>Notice the &#8220;index.php&#8221; somewhere in the DirectoryIndex list &#8230; move that to the front of the list as in</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ifmodule</span> mod_dir.c<span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp;DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm<br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ifmodule<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Funcategorized%2F615&amp;linkname=ubuntu%209.10%20apache2%20php5%20How%20to%20get%20apache%20to%20see%20index.php%20first" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Funcategorized%2F615&amp;linkname=ubuntu%209.10%20apache2%20php5%20How%20to%20get%20apache%20to%20see%20index.php%20first"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hagelnx.com/uncategorized/615/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configuring NetBeans Project For WordPress</title>
		<link>http://www.hagelnx.com/prog/575</link>
		<comments>http://www.hagelnx.com/prog/575#comments</comments>
		<pubDate>Sat, 28 Nov 2009 18:17:35 +0000</pubDate>
		<dc:creator>Kevin  Hagel</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.hagelnx.com/?p=575</guid>
		<description><![CDATA[ConfiguringNetBeansProjectForWordPress Since I am working on wordpress plugins and themes, using a NetBeans environment on Ubuntu 9.10 &#8230; I just thought I&#8217;d pass along that link.  You can use this setup to debug your wordpress project without affecting your actual wordpress blog on your website &#8211; of course, we&#8217;re assuming you have your own server [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wiki.netbeans.org/ConfiguringNetBeansProjectForWordPress" target="_blank">ConfiguringNetBeansProjectForWordPress</a><br />
Since I am working on wordpress plugins and themes, using a NetBeans environment on Ubuntu 9.10 &#8230; I just thought I&#8217;d pass along that link.  You can use this setup to debug your wordpress project without affecting your actual wordpress blog on your website &#8211; of course, we&#8217;re assuming you have your own server with your own ip address &#8230; whether remote hosted or on a server in your own home.</p>
<p><a href="http://www.packtpub.com/wordpress-plug-in-development" target="_blank">WordPress Plugin Development: Beginner&#8217;s Guide</a></p>
<p>I also purchased this eBook, for €19.99</p>
<p>Now remember, you want to be developing on localhost if you can.  You can always upload your &#8220;finished&#8221; plugin to your site wherever it is.  I have a windows box for www.hagelnx.com, I have a linux box for developing my plugins.  Do NOT waste your time trying to develop on windows if you can help it.  The apache2-php-mysql .. LAMP setup for ubuntu, just as an example, works really well with apt-get installing all the modules you need.  All the config files are updated without your having to edit them, both php ini files and apache2 ini files.</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2F575&amp;linkname=Configuring%20NetBeans%20Project%20For%20WordPress" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2F575&amp;linkname=Configuring%20NetBeans%20Project%20For%20WordPress"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hagelnx.com/prog/575/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress iphone plugin experiment</title>
		<link>http://www.hagelnx.com/prog/wordpress/570</link>
		<comments>http://www.hagelnx.com/prog/wordpress/570#comments</comments>
		<pubDate>Fri, 27 Nov 2009 10:59:10 +0000</pubDate>
		<dc:creator>Kevin  Hagel</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.hagelnx.com/prog/wordpress/570</guid>
		<description><![CDATA[I&#8217;m attempting to upload a photo from my iPhone in this post. This photo was taken in Nesebar during a visit there the previous weekend. Did it work?]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m attempting to upload a photo from my iPhone in this post. This photo was taken in Nesebar during a visit there the previous weekend. Did it work?</p>
<p><a href="http://www.hagelnx.com/wordpress/wp-content/uploads/2009/11/l_1600_1200_E542A2A0-DC25-4109-BF92-A0401002512D.jpeg"><img src="http://www.hagelnx.com/wordpress/wp-content/uploads/2009/11/l_1600_1200_E542A2A0-DC25-4109-BF92-A0401002512D.jpeg" alt="" width="300" height="225" class="alignnone size-full wp-image-364" /></a></p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2Fwordpress%2F570&amp;linkname=WordPress%20iphone%20plugin%20experiment" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2Fwordpress%2F570&amp;linkname=WordPress%20iphone%20plugin%20experiment"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hagelnx.com/prog/wordpress/570/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux, NetBeans, PHP &#8230; XDebug, WordPress</title>
		<link>http://www.hagelnx.com/prog/561</link>
		<comments>http://www.hagelnx.com/prog/561#comments</comments>
		<pubDate>Wed, 25 Nov 2009 23:18:01 +0000</pubDate>
		<dc:creator>Kevin  Hagel</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.hagelnx.com/?p=561</guid>
		<description><![CDATA[So I&#39;ve cranked up the linux box for sandbox development of wordpress themes and plugins.&#160; Sounds interesting, doesn&#39;t it? Well, for a hard-core java programmer moving back into PHP doesn&#39;t immediately seem like a step up, but here we are, eh dear reader?&#160; And this may be where the business is in Bulgaria these days [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#39;ve cranked up the linux box for sandbox development of wordpress themes and plugins.&nbsp; Sounds interesting, doesn&#39;t it? Well, for a hard-core java programmer moving back into PHP doesn&#39;t immediately seem like a step up, but here we are, eh dear reader?&nbsp; And this may be where the business is in Bulgaria these days &#8230;. WordPress is a perfectly good Content Management System (CMS), and It&#39;s likely that skills in this CMS will prove useful in this country at this time. I installed NetBeans, the latest version.&nbsp; Installed apache2, php, all that good stuff with apt-get and aptitutude.&nbsp; And finally I went to<a href="http://netbeans.org/kb/docs/php/wordpress-screencast.html  " target="_blank"> http://netbeans.org/kb/docs/php/wordpress-screencast.html </a>for a quick tutorial on how to setup a wordpress plugin project. Good stuff, eh?&nbsp; Let&#39;s see where this goes. If you&#39;re interested, I can write a post on the setup procedures which got me here.&nbsp; Just try and get XDebug and all this running on windows, pee-yew.</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2F561&amp;linkname=Linux%2C%20NetBeans%2C%20PHP%20%26%238230%3B%20XDebug%2C%20WordPress" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2F561&amp;linkname=Linux%2C%20NetBeans%2C%20PHP%20%26%238230%3B%20XDebug%2C%20WordPress"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hagelnx.com/prog/561/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Starting up the linux box</title>
		<link>http://www.hagelnx.com/prog/559</link>
		<comments>http://www.hagelnx.com/prog/559#comments</comments>
		<pubDate>Wed, 25 Nov 2009 02:37:29 +0000</pubDate>
		<dc:creator>Kevin  Hagel</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.hagelnx.com/?p=559</guid>
		<description><![CDATA[I have kubuntu installed on my linux box, I&#8217;m going to get another static ip address for it pretty soon for the hagelbg.com domain. I installed kubuntu last summer &#8230;. I think, but I recently insisted that it use the gnome desktop. I installed a new dvd r/wr drive on my windows box &#8230; or [...]]]></description>
			<content:encoded><![CDATA[<p>I have kubuntu installed on my linux box, I&#8217;m going to get another static ip address for it pretty soon for the hagelbg.com domain.   I installed kubuntu last summer &#8230;. I think, but I recently insisted that it use the gnome desktop.</p>
<p>I installed a new dvd r/wr drive on my windows box &#8230; or rather a friend of ours Dimitar (Mitko) installed it for me <img src='http://www.hagelnx.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   It is good to know people who know hardware, I could not survive as a software developer on this planet without people like that.  It&#8217;s good to know that there are people like Mitko here in Bulgaria.</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2F559&amp;linkname=Starting%20up%20the%20linux%20box" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.hagelnx.com%2Fprog%2F559&amp;linkname=Starting%20up%20the%20linux%20box"><img src="http://www.hagelnx.com/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.hagelnx.com/prog/559/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
