<?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>coffeecoders.de &#187; coding</title>
	<atom:link href="http://coffeecoders.de/tag/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://coffeecoders.de</link>
	<description>professional devs at work</description>
	<lastBuildDate>Tue, 13 Sep 2011 16:34:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Using GitHub as a personal maven repository</title>
		<link>http://coffeecoders.de/2011/09/using-github-as-a-personal-maven-repository/</link>
		<comments>http://coffeecoders.de/2011/09/using-github-as-a-personal-maven-repository/#comments</comments>
		<pubDate>Sun, 11 Sep 2011 01:24:53 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[daily tasks]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=294</guid>
		<description><![CDATA[This article will show you how to setup a public GitHub repository as a personal maven repository. Following these steps you will be able to serve any artifact by just added a few lines into your pom.xml. <a href="http://coffeecoders.de/2011/09/using-github-as-a-personal-maven-repository/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sometime you are in need for a maven repository accessible from the net which is under your control. Reasons might be:</p>
<ul>
<li>a 3rd-party lib is not on Maven central or the desired version is missing</li>
<li>you built modules/libraries which will be included in your other projects</li>
<li>&#8230;</li>
</ul>
<p>With the following steps you will be able to serve <em>any </em>artifact from a public GitHub repository by just added a few lines into your <strong>pom.xml</strong>. I personally wasted quite an amount of time on this topic so I guess I&#8217;ll save it here &#8211; for you <strong>and</strong> me.</p>
<p><span id="more-294"></span>Ready? Let&#8217;s start!</p>
<p>In our example we&#8217;ll use our GitHub repository to server a file which is not available at Maven Central as the time of writing.</p>
<h2>1. Creating the GitHub repository</h2>
<p>Follow <a title="Create a public repository on GitHub" href="https://github.com/repositories/new" target="_blank">this link</a> and create a new repository named <code>mavenrepo</code>.</p>
<p>You could as well choose a different name but then you will have to change every occurance in the following steps. Your call.</p>
<h2>2. Creating the content for this repository</h2>
<p>Change into the folder where the new repository will be lying on your disk. From here you will be able to push changes into your remote repository and thus update your artifacts.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p294code1'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2941"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code" id="p294code1"><pre class="bash" style="font-family:monospace;">~<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">cd</span> dev
~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #c20cb9; font-weight: bold;">mkdir</span> mavenrepo
~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">cd</span> mavenrepo
~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #c20cb9; font-weight: bold;">git</span> init
~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #c20cb9; font-weight: bold;">git</span> remote add origin <span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:YOURUSERNAME<span style="color: #000000; font-weight: bold;">/</span>mavenrepo.git
~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #c20cb9; font-weight: bold;">mkdir</span> releases snapshots
<span style="color: #666666; font-style: italic;">#empty dirs can't be added to git</span>
~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #c20cb9; font-weight: bold;">touch</span> releases<span style="color: #000000; font-weight: bold;">/</span>README
~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #c20cb9; font-weight: bold;">touch</span> snapshots<span style="color: #000000; font-weight: bold;">/</span>README
~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #c20cb9; font-weight: bold;">git</span> add .
~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #c20cb9; font-weight: bold;">git</span> commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Initial setup&quot;</span>
<span style="color: #666666; font-style: italic;">#update the GitHub repo just for kicks</span>
~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #c20cb9; font-weight: bold;">git</span> push origin master</pre></td></tr></table></div>

<p>Cool, your local maven repository is waiting for it&#8217;s first artifact.</p>
<h2>3. Creating the first artifact</h2>
<p>Now you have to change to the location of your artifact-to-be.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p294code2'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2942"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td class="code" id="p294code2"><pre class="bash" style="font-family:monospace;">~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">cd</span> ..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>downloads<span style="color: #000000; font-weight: bold;">/</span>GoogleAnalyticsAndroid_1.3.1
~<span style="color: #000000; font-weight: bold;">/</span>downloads<span style="color: #000000; font-weight: bold;">/</span>GoogleAnalyticsAndroid_1.3.1<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #c20cb9; font-weight: bold;">ls</span>
libGoogleAnalytics.jar sample ReadMe.txt
<span style="color: #666666; font-style: italic;">#explanation below</span>
~<span style="color: #000000; font-weight: bold;">/</span>downloads<span style="color: #000000; font-weight: bold;">/</span>GoogleAnalyticsAndroid_1.3.1<span style="color: #000000; font-weight: bold;">&gt;</span>mvn deploy:deploy-file <span style="color: #660033;">-DgroupId</span>=com.google.android.apps <span style="color: #660033;">-DartifactId</span>=analytics <span style="color: #660033;">-Dversion</span>=1.3.1 <span style="color: #660033;">-Dpackaging</span>=jar <span style="color: #660033;">-Dfile</span>=<span style="color: #ff0000;">&quot;libGoogleAnalytics.jar&quot;</span> <span style="color: #660033;">-Durl</span>=<span style="color: #c20cb9; font-weight: bold;">file</span>:..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">/</span>releases
&nbsp;
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span> Scanning <span style="color: #000000; font-weight: bold;">for</span> projects...
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #660033;">------------------------------------------------------------------------</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span> Building Maven Stub Project <span style="color: #7a0874; font-weight: bold;">&#40;</span>No POM<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000;">1</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #660033;">------------------------------------------------------------------------</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #660033;">---</span> maven-deploy-plugin:<span style="color: #000000;">2.5</span>:deploy-file <span style="color: #7a0874; font-weight: bold;">&#40;</span>default-cli<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">@</span> standalone-pom <span style="color: #660033;">---</span>
Uploading: <span style="color: #c20cb9; font-weight: bold;">file</span>:..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">/</span>releases<span style="color: #000000; font-weight: bold;">/</span>com<span style="color: #000000; font-weight: bold;">/</span>google<span style="color: #000000; font-weight: bold;">/</span>android<span style="color: #000000; font-weight: bold;">/</span>apps<span style="color: #000000; font-weight: bold;">/</span>analytics<span style="color: #000000; font-weight: bold;">/</span>1.3.1<span style="color: #000000; font-weight: bold;">/</span>analytics-1.3.1.jar
Uploaded: <span style="color: #c20cb9; font-weight: bold;">file</span>:..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">/</span>releases<span style="color: #000000; font-weight: bold;">/</span>com<span style="color: #000000; font-weight: bold;">/</span>google<span style="color: #000000; font-weight: bold;">/</span>android<span style="color: #000000; font-weight: bold;">/</span>apps<span style="color: #000000; font-weight: bold;">/</span>analytics<span style="color: #000000; font-weight: bold;">/</span>1.3.1<span style="color: #000000; font-weight: bold;">/</span>analytics-1.3.1.jar <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">43</span> KB at <span style="color: #000000;">751.5</span> KB<span style="color: #000000; font-weight: bold;">/</span>sec<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Uploading: <span style="color: #c20cb9; font-weight: bold;">file</span>:..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">/</span>releases<span style="color: #000000; font-weight: bold;">/</span>com<span style="color: #000000; font-weight: bold;">/</span>google<span style="color: #000000; font-weight: bold;">/</span>android<span style="color: #000000; font-weight: bold;">/</span>apps<span style="color: #000000; font-weight: bold;">/</span>analytics<span style="color: #000000; font-weight: bold;">/</span>1.3.1<span style="color: #000000; font-weight: bold;">/</span>analytics-1.3.1.pom
Uploaded: <span style="color: #c20cb9; font-weight: bold;">file</span>:..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">/</span>releases<span style="color: #000000; font-weight: bold;">/</span>com<span style="color: #000000; font-weight: bold;">/</span>google<span style="color: #000000; font-weight: bold;">/</span>android<span style="color: #000000; font-weight: bold;">/</span>apps<span style="color: #000000; font-weight: bold;">/</span>analytics<span style="color: #000000; font-weight: bold;">/</span>1.3.1<span style="color: #000000; font-weight: bold;">/</span>analytics-1.3.1.pom <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">400</span> B at <span style="color: #000000;">24.4</span> KB<span style="color: #000000; font-weight: bold;">/</span>sec<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Downloading: <span style="color: #c20cb9; font-weight: bold;">file</span>:..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">/</span>releases<span style="color: #000000; font-weight: bold;">/</span>com<span style="color: #000000; font-weight: bold;">/</span>google<span style="color: #000000; font-weight: bold;">/</span>android<span style="color: #000000; font-weight: bold;">/</span>apps<span style="color: #000000; font-weight: bold;">/</span>analytics<span style="color: #000000; font-weight: bold;">/</span>maven-metadata.xml
Uploading: <span style="color: #c20cb9; font-weight: bold;">file</span>:..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">/</span>releases<span style="color: #000000; font-weight: bold;">/</span>com<span style="color: #000000; font-weight: bold;">/</span>google<span style="color: #000000; font-weight: bold;">/</span>android<span style="color: #000000; font-weight: bold;">/</span>apps<span style="color: #000000; font-weight: bold;">/</span>analytics<span style="color: #000000; font-weight: bold;">/</span>maven-metadata.xml
Uploaded: <span style="color: #c20cb9; font-weight: bold;">file</span>:..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">/</span>releases<span style="color: #000000; font-weight: bold;">/</span>com<span style="color: #000000; font-weight: bold;">/</span>google<span style="color: #000000; font-weight: bold;">/</span>android<span style="color: #000000; font-weight: bold;">/</span>apps<span style="color: #000000; font-weight: bold;">/</span>analytics<span style="color: #000000; font-weight: bold;">/</span>maven-metadata.xml <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">307</span> B at <span style="color: #000000;">23.1</span> KB<span style="color: #000000; font-weight: bold;">/</span>sec<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #660033;">------------------------------------------------------------------------</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span> BUILD SUCCESS
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #660033;">------------------------------------------------------------------------</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span> Total <span style="color: #000000; font-weight: bold;">time</span>: 1.121s
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span> Finished at: Sun Sep <span style="color: #000000;">11</span> 01:05:09 CEST <span style="color: #000000;">2011</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span> Final Memory: 3M<span style="color: #000000; font-weight: bold;">/</span>77M
<span style="color: #7a0874; font-weight: bold;">&#91;</span>INFO<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #660033;">------------------------------------------------------------------------</span></pre></td></tr></table></div>

<p>That&#8217;s (almost) it. Wait, what? No worries, I will explain the whole line for you so you can easily adjust it to your needs.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p294code3'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2943"><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code" id="p294code3"><pre class="bash" style="font-family:monospace;">mvn deploy:deploy-file 
		<span style="color: #666666; font-style: italic;">#this specifies the artificat and will (=should) match with your dependency-declaration in pom.xml	</span>
		<span style="color: #660033;">-DgroupId</span>=com.google.android.apps <span style="color: #660033;">-DartifactId</span>=analytics <span style="color: #660033;">-Dversion</span>=1.3.1 \ 
		<span style="color: #660033;">-Dpackaging</span>=jar \ <span style="color: #666666; font-style: italic;">#deploy as jar </span>
		<span style="color: #660033;">-Dfile</span>=<span style="color: #ff0000;">&quot;libGoogleAnalytics.jar&quot;</span> \ <span style="color: #666666; font-style: italic;">#source file to deploy</span>
		<span style="color: #660033;">-Durl</span>=<span style="color: #c20cb9; font-weight: bold;">file</span>:..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">/</span>releases <span style="color: #666666; font-style: italic;">#target folder to deploy</span></pre></td></tr></table></div>

<p>For 3rd-party-libraries which aren&#8217;t subject to change (i.e. no snapshots) use the releases folder for your own snapshots use &#8211; you guessed it &#8211; the snapshots folder.</p>
<p>Your maven repository is almost ready to serve.</p>
<h2>4. Online artifacts!</h2>
<p>Let&#8217;s change back to the maven repository. To make everything world accessible we have to commit and push the files.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p294code4'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2944"><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code" id="p294code4"><pre class="bash" style="font-family:monospace;">~<span style="color: #000000; font-weight: bold;">/</span>downloads<span style="color: #000000; font-weight: bold;">/</span>GoogleAnalyticsAndroid_1.3.1<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">cd</span> ..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo
<span style="color: #666666; font-style: italic;"># add everything which has changed or is new</span>
~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #c20cb9; font-weight: bold;">git</span> add .
<span style="color: #666666; font-style: italic;"># commit everything into the git-repo</span>
~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #c20cb9; font-weight: bold;">git</span> commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Add Google Analytics library 1.3.1&quot;</span>
<span style="color: #666666; font-style: italic;"># push it to GitHub</span>
~<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>mavenrepo<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #c20cb9; font-weight: bold;">git</span> push origin master</pre></td></tr></table></div>

<p>So cool,eh? You can jump online to your GitHub repository to check if they&#8217;re there as expected. Aaalmost done.</p>
<h2>5. Using your new maven repository</h2>
<p>There are two ways to make maven aware of new repositories besides the pre-configured one. Either in <code>~/.m2/repositories/settings.xml</code> which would be global for every repository but just for your user account. Or you can add the information into the <code>pom.xml</code> of your project. Since we want all developers for this project to easily use the new repository we will use the later.</p>
<p>Open your pom.xml and add the following lines for our example. Of course you have to edit the group-id, artifact and version according to your lib.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://coffeecoders.de/wp-content/plugins/wp-codebox/wp-codebox.php?p=294&amp;download=pom.xml">pom.xml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2945"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
</pre></td><td class="code" id="p294code5"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;project</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://maven.apache.org/POM/4.0.0&quot;</span> <span style="color: #000066;">xmlns:xsi</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span> <span style="color: #000066;">xsi:schemaLocation</span>=<span style="color: #ff0000;">&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;modelversion<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>4.0.0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/modelversion<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #808080; font-style: italic;">&lt;!-- ... more project definition --&gt;</span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependencies<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.google.android.apps<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>analytics<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.3.1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #808080; font-style: italic;">&lt;!-- more dependecies... --&gt;</span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependencies<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #808080; font-style: italic;">&lt;!-- build config etc. ... --&gt;</span>
&nbsp;
    	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;repositories<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>YOURUSERNAME-snapshots<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>https://raw.github.com/YOURUSERNAME/mavenrepo/master/snapshots<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>false<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;updatepolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>always<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/updatepolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;checksumpolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>warn<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/checksumpolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;updatepolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>never<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/updatepolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;checksumpolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>fail<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/checksumpolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>YOURUSERNAME-releases<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;updatepolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>always<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/updatepolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;checksumpolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>fail<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/checksumpolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>false<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;updatepolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>always<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/updatepolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;checksumpolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>warn<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/checksumpolicy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>https://raw.github.com/YOURUSERNAME/mavenrepo/master/releases<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repositories<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/project<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>That&#8217;s it! </p>
<h2>6. Final: See it in action</h2>
<p>Now we can start up maven to make use of the new configuration.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p294code6'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2946"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p294code6"><pre class="bash" style="font-family:monospace;">mvn clean package</pre></td></tr></table></div>

<p>If everything went well you should see &#8220;BUILD SUCCESS&#8221; and if you scroll up a bit you should see some Download-lines regarding your new repository. Maven will now try to load every new dependency from your GitHub-maven-repo so you can always decide if you want to host it yourself for some reason.</p>
<p>If you encountered errors along the way please let me know. This post is the result of several hours of trail and error and you should be fine following it. But of course it&#8217;s always possible you&#8217;ll run into problems. </p>
<p><strong>Update:</strong>I noticed that I used the wrong group-id for my example. Normally it doesn&#8217;t hurt but it confuses everyone and so to be perfect added &#8220;.apps&#8221; to every occurance of this package-name.</p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=294&amp;md5=60e7748ea983eddf8145a77b385f36ab" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2011/09/using-github-as-a-personal-maven-repository/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make your bash-prompt git-aware</title>
		<link>http://coffeecoders.de/2011/09/make-your-bash-prompt-git-aware/</link>
		<comments>http://coffeecoders.de/2011/09/make-your-bash-prompt-git-aware/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 16:41:46 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[daily tasks]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=284</guid>
		<description><![CDATA[This post shows you how to make git status-info show up in your bash prompt. So you will always know which status the current git-repo has and which branch you're on. Sweet! <a href="http://coffeecoders.de/2011/09/make-your-bash-prompt-git-aware/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today a friend of mine shared a very nice piece of configuration for using git with me.</p>
<p><code>stevie@box:~/dev/myproject/common [<span style="color: #3333FF;">master</span>]$<br />
</code></p>
<p>If you add the following lines into your <strong>~/.bashrc</strong> you&#8217;ll always know which branch you are on.</p>
<p>Additionally you&#8217;ll be informed if the remote branch (if any) has been changed by adding &#8220;*&#8221; to the branches name. <em>How cool is that?</em></p>
<p><code>stevie@box:~/dev/myproject/common [<span style="color: #3333FF;">master *</span>]$<br />
</code></p>
<p>Here are the lines to add which will do the magic for you:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p284code7'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2847"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p284code7"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">GIT_PS1_SHOWDIRTYSTATE</span>=<span style="color: #c20cb9; font-weight: bold;">true</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">GIT_PS1_SHOWUNTRACKEDFILES</span>=<span style="color: #c20cb9; font-weight: bold;">true</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">GIT_PS1_SHOWSTASHSTATE</span>=<span style="color: #c20cb9; font-weight: bold;">true</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PS1</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${PS1::$((${#PS1}</span>-3))}<span style="color: #000099; font-weight: bold;">\$</span>(__git_ps1 ' [\[\e[34;1m\]%s\[\e[0m\]]')<span style="color: #000099; font-weight: bold;">\$</span> &quot;</span></pre></td></tr></table></div>

 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=284&amp;md5=dfcd0a8b28c63f41407c9af93b8555b1" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2011/09/make-your-bash-prompt-git-aware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to pretty-print a SimpleXmlObject in php</title>
		<link>http://coffeecoders.de/2011/03/how-to-pretty-print-a-simplexmlobject-in-php/</link>
		<comments>http://coffeecoders.de/2011/03/how-to-pretty-print-a-simplexmlobject-in-php/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 12:29:56 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=277</guid>
		<description><![CDATA[Today I had to find a simple way to format a parsed xml-string into a pretty looking output for a file and the screen. My search on Google return this stackoverflow-comment which helped me out. I thought I&#8217;d share it &#8230; <a href="http://coffeecoders.de/2011/03/how-to-pretty-print-a-simplexmlobject-in-php/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I had to find a simple way to format a parsed xml-string into a pretty looking output for a file and the screen. My search on Google return <a href="http://stackoverflow.com/questions/798967/php-simplexml-how-to-save-the-file-in-a-formatted-way">this stackoverflow-comment</a> which helped me out.</p>
<p>I thought I&#8217;d share it with the world.<br />
<span id="more-277"></span></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p277code9'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2779"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code" id="p277code9"><pre class="php" style="font-family:monospace;">  <span style="color: #009933; font-style: italic;">/**
   * formats the xml output readable
   *
   * @param $simpleXmlObject instance of SimpleXmlObject to pretty-print
   * @return string of indented xml-elements
   */</span>
  <span style="color: #000000; font-weight: bold;">function</span> format<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span><span style="color: #000088;">$simpleXmlObject</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span> <a href="http://www.php.net/is_object"><span style="color: #990000;">is_object</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$simpleXmlObject</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
      	<span style="color: #666666; font-style: italic;">//Format XML to save indented tree rather than one line</span>
  	<span style="color: #000088;">$dom</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DOMDocument<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'1.0'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  	<span style="color: #000088;">$dom</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">preserveWhiteSpace</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
  	<span style="color: #000088;">$dom</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">formatOutput</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
  	<span style="color: #000088;">$dom</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">loadXML</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$simpleXmlObject</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">asXML</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$dom</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">saveXML</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>PS: In case you don&#8217;t know how to get a <a href="http://de.php.net/manual/en/ref.simplexml.php">SimpleXml-Object</a>.</p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=277&amp;md5=c7eca7794a6f84384ffad5d40e438b65" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2011/03/how-to-pretty-print-a-simplexmlobject-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mouse-less Eclipse</title>
		<link>http://coffeecoders.de/2009/08/mouse-less-eclipse/</link>
		<comments>http://coffeecoders.de/2009/08/mouse-less-eclipse/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 16:31:12 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[cheat sheet]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[daily tasks]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=238</guid>
		<description><![CDATA[In his blog Andy Maleh posted a number of brilliant keyboard-shortcuts to ease the use of eclipse and greatly improve your programming experience. I just love it. Thank you so much! Link: Andy Maleh &#8211; Code Painter: Mouse-less Eclipse]]></description>
			<content:encoded><![CDATA[<p>In his blog Andy Maleh posted a number of brilliant keyboard-shortcuts to ease the use of eclipse and greatly improve your programming experience.</p>
<p>I just love it. Thank you so much!</p>
<p>Link: <a href="http://andymaleh.blogspot.com/2009/07/mouse-less-eclipse.html">Andy Maleh &#8211; Code Painter: Mouse-less Eclipse</a></p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=238&amp;md5=0869995eacbddbc5c9afeaa9bb74c262" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/08/mouse-less-eclipse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Website Optimization Best Practices</title>
		<link>http://coffeecoders.de/2009/06/website-optimization-best-practices/</link>
		<comments>http://coffeecoders.de/2009/06/website-optimization-best-practices/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 11:25:33 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[webdevelopment]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=232</guid>
		<description><![CDATA[Many new projects grow from a small base to a full blown app in time. Besides the pride of the accomplishments the developer now has to care about behind-the-scenes-stuff like page load, caching and effective webdesign to keep or improve &#8230; <a href="http://coffeecoders.de/2009/06/website-optimization-best-practices/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Many new projects grow from a small base to a full blown app in time. Besides the pride of the accomplishments the developer now has to care about behind-the-scenes-stuff like page load, caching and effective webdesign to keep or improve the current speed when using the project.</p>
<p>Speed &#8211; or to be more precise the lack of it &#8211; is one of the major annoyances and a main reason for users to not come back. So it is in your own best interest to reach the best possible speed.</p>
<p>I found a <em>very </em>extensive list of website optimization techniques which I wanted to share with you (and to keep a link for future references). I can&#8217;t really say that by now I even follow half the list of improvements but I will certainly try to make the next app better than the one before &#8211; as always.</p>
<p>Link: <a href="http://www.chazzuka.com/blog/?p=175">www.chazzuka.com: Website Optimization Best Practices, speed up your website load</a></p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=232&amp;md5=cc90b27f4d123001f7101365ec98b412" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/06/website-optimization-best-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIR on Linux: Adobe wants beta testers</title>
		<link>http://coffeecoders.de/2009/05/air-on-linux-adobe-wants-beta-testers/</link>
		<comments>http://coffeecoders.de/2009/05/air-on-linux-adobe-wants-beta-testers/#comments</comments>
		<pubDate>Sat, 09 May 2009 17:20:23 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[adobe air]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=227</guid>
		<description><![CDATA[Adobe&#8217;s AIR is plattform intented to distribute Flash based applications as desktop programs. Now Adobe&#8217;s looking for developers using linux to test a new release and report bugs and other problems with the new package. To check if you&#8217;re a &#8230; <a href="http://coffeecoders.de/2009/05/air-on-linux-adobe-wants-beta-testers/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Adobe_air">Adobe&#8217;s AIR</a> is plattform intented to distribute Flash based applications as desktop programs.</p>
<p>Now Adobe&#8217;s looking for developers using linux to test a new release and report bugs and other problems with the new package. To check if you&#8217;re a fit for this job Adobe has outlined a few key questions you have to check before applying for the job.</p>
<p>If you are interested and applying you have all the best wishes from me.</p>
<p>Link: <a href="http://blogs.adobe.com/ashutosh/2009/04/adobe_air_on_linux_call_for_pr_1.html">Adobe AIR on Linux: Call for Pre-Release Users</a></p>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/05/air-on-linux-adobe-wants-beta-testers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learn Java by camp fire stories</title>
		<link>http://coffeecoders.de/2009/04/learn-java-by-camp-fire-stories/</link>
		<comments>http://coffeecoders.de/2009/04/learn-java-by-camp-fire-stories/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 14:43:34 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[beginner]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=215</guid>
		<description><![CDATA[Certainly there are many many ways out there on how to learn a programming language. But did you ever hear about learning a new language by hearing (ie. reading) a camp fire story? No? Sure you didn&#8217;t! The guys of &#8230; <a href="http://coffeecoders.de/2009/04/learn-java-by-camp-fire-stories/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Certainly there are many many ways out there on how to learn a programming language. But did you ever hear about learning a new language by hearing (ie. reading) a camp fire story? No? Sure you didn&#8217;t!</p>
<p><span id="more-215"></span>The guys of <a href="http://www.javaranch.com/">JavaRanch.com</a> try to accomplish just that:</p>
<blockquote><p><em><span style="color: #804000;">Grab your marshmallows and a stick and gather &#8217;round the campfire for some Java stories. The Ranch writers won&#8217;t be winnin&#8217; any literary prizes, that&#8217;s fer sure. But ya still might learn a thing or two.</span></em></p></blockquote>
<p>I find this approach very refreshing and I&#8217;m sure some of you dealing with certain more technical description will enjoy the casual written, funny illustrated yet informing stories.</p>
<p>So hop on your horse, ride on over to the ranch and give it a read @<br />
<a href="http://www.javaranch.com/campfire.jsp">JavaRanch Campfire &#8211; Getting in Touch with your Inner Class</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/04/learn-java-by-camp-fire-stories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web browser capabilities revisited</title>
		<link>http://coffeecoders.de/2009/02/web-browser-capabilities-revisited/</link>
		<comments>http://coffeecoders.de/2009/02/web-browser-capabilities-revisited/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 23:40:04 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=178</guid>
		<description><![CDATA[As a web developer you always have to keep in mind that what looks great on your box not always looks that good on your client&#8217;s or on some random visitor&#8217;s screen. This is mostly because of the different browser &#8230; <a href="http://coffeecoders.de/2009/02/web-browser-capabilities-revisited/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As a web developer you always have to keep in mind that what looks great on your box not always looks that good on your client&#8217;s or on some random visitor&#8217;s screen. This is mostly because of the different browser engines and versions.</p>
<p>With this in mind you might tend to avoid any newer techniques, features or elements just to be on the safe side. But this also keeps you from using shortcuts and often results in worse quality.<br />
<span id="more-178"></span><br />
If you planning to use a newer feature it might help if you knew which users won&#8217;t be able to enjoy your work to the full extend. To help everyone with this problem <em>Alexis Deveria</em> compiled a long list of the features and how are they supported by Internet Explorer, Firefox, Safari, Chrome and Opera. This list is even searchable and customizable to your needs (e.g. exclude browsers).</p>
<p>I can&#8217;t thank him enough for going through all that trouble finding these information and I am certain that this list will have a top spot in my future bookmarks and maybe in your&#8217;s too.</p>
<p>Link: <a href="http://a.deveria.com/caniuse/#agents=All&amp;cats=All&amp;eras=All&amp;statuses=All">When can I use&#8230; &#8211; a huge, searchable list of browser capabilities</a></p>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/02/web-browser-capabilities-revisited/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Checkout a project from svn &#8211; the right way</title>
		<link>http://coffeecoders.de/2009/02/checkout-a-project-from-svn-the-right-way/</link>
		<comments>http://coffeecoders.de/2009/02/checkout-a-project-from-svn-the-right-way/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 02:42:39 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[daily tasks]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=147</guid>
		<description><![CDATA[Do you use eclipse? Do you use svn? Did you ever checked out a new project into your workspace? If you could answer all these questions with a &#8220;yes&#8221; you might have noticed afterwards that you can&#8217;t do anything with &#8230; <a href="http://coffeecoders.de/2009/02/checkout-a-project-from-svn-the-right-way/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Do you use eclipse? Do you use svn? Did you ever checked out a new project into your workspace?</p>
<p>If you could answer all these questions with a &#8220;yes&#8221; you might have noticed afterwards that you can&#8217;t do anything with this project because eclipse created it as &#8220;general project&#8221;, meaning no java, php or anything other specialized nature. This results in certain functions like <em>Run as Java application</em> not being accessable.</p>
<p>There are several solutions to that problem &#8211; but most of them are really ugly, imho. But since I don&#8217;t want to keep anything from you I will explain these methods too. So let&#8217;s get started&#8230;</p>
<p><span id="more-147"></span></p>
<h2>The wrong way</h2>
<p>The intuitive way you propably would start the task &#8220;to checkout a new project from SVN&#8221; might be &#8220;File -&gt; New -&gt; Project -&gt; Others&#8230;-&gt; Checkout a project from SVN&#8221;. In the result you&#8217;d have the previously mentioned &#8220;general project&#8221; which is pretty useless.</p>
<h3>solution #1: edit .project</h3>
<p>After the creation of the new project you quit eclipse, browse to the project folder in your file system and open the .project-file in a editor.</p>
<p>You&#8217;ll find these lines:</p>
<blockquote><p>&lt;natures&gt;<br />
&lt;/natures&gt;</p></blockquote>
<p>Change it to match:</p>
<blockquote><p>&lt;natures&gt;<br />
&lt;nature&gt;org.eclipse.jdt.core.javanature&lt;/nature&gt;<br />
&lt;/natures&gt;</p></blockquote>
<p>Save the file and fire up eclipse again, you will have your svn-project recognized as Java-project. This solution might be quick but the drawbacks are the quit/edit/start-sequence outside of eclipse and the necessity to find the right &#8220;nature&#8221; for your svn project.</p>
<h3>solution #2: delete and recreate</h3>
<p>After having completed the checkout you will delete your project. Yes, you read right. (I told you these methods are ugly! <img src='http://coffeecoders.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) But when deleting be sure you <strong>don&#8217;t check </strong>the box for physically deletion of the files (so they&#8217;ll remain inside your workspace).</p>
<p>When you finished deleting the project you create a new project for the kind of project the svn project should represent (i.e. java, php etc.). While in the creation wizard be sure you select the same folder where the svn project has been checked out into.</p>
<p>The newly created project will have the right project type and will contain all files from the repository. Sometimes it is necessary to refresh the workspace (windows: hit F5 on the project).</p>
<p>Although this method also results in having the right data with the correct project type it has a bad taste jumping through these hoops in order to finish a simple task like that.</p>
<p>Since I wasn&#8217;t pleased with all those solutions I kept on looking. Finally I found&#8230;</p>
<h2>The right way</h2>
<p>Besides the following solution is the one most hoopless (no pun intended) the claim &#8220;right&#8221; is justified because it seems that this is the way the eclipse devs want us to check out a project.</p>
<p>In order to accomplish the task at hand you have to</p>
<ul>
<li>open the <em>SVN Exploring</em>-perspective<br />
( Windows -&gt; Open Perspective -&gt; Other&#8230; -&gt; SVN Exploring)</li>
<li>create a new repository location or select the desired source</li>
<li>browse to the parent folder of your new project (e.g. trunk)</li>
<li>right click on the folder, choose <em>Checkout&#8230;</em></li>
<li>in the new dialogue you will have the chance to select <em>Check out as a project configured using the New Project Wizard</em>, take that chance, fill out the rest as you please and hit <em>Finish</em></li>
<li>in the new project wizard which will open next you can choose your desired project type (e.g. java) and set up everything like you would in a normal project (e.g. compliler compliance level, JRE, related projects etc.)</li>
<li>after hitting this finish button you will notice that the svn is queried to retrieve the code</li>
<li>and you&#8217;re done!</li>
</ul>
<p>In my opinion this way is the most hazzle-free way to check out a new project though I love to see it the other way around too (New-&gt;Project-&gt;New Project from SVN -&gt; yada yada yada -&gt; &#8220;Please select a project type or press OK to let it remain a generel project.&#8221;). Until this is implemented I will go with the second best solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/02/checkout-a-project-from-svn-the-right-way/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Subversion and TortoiseSVN tips and tricks</title>
		<link>http://coffeecoders.de/2009/02/subversion-and-tortoisesvn-tips-and-tricks/</link>
		<comments>http://coffeecoders.de/2009/02/subversion-and-tortoisesvn-tips-and-tricks/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 01:18:29 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[daily tasks]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=145</guid>
		<description><![CDATA[David Vidmar has collected a very interesting list of commands, tricks and tips which will certainly help you dealing with very common problems using TortoiseSVN or any other subversion client. Have a good look a the compiled list and be &#8230; <a href="http://coffeecoders.de/2009/02/subversion-and-tortoisesvn-tips-and-tricks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span class="small"> David Vidmar has collected a very interesting list of commands, tricks and tips which will certainly help you dealing with very common problems using <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a> or any other subversion client.</span></p>
<p><span class="small">Have a good look a the compiled list and be sure to bookmark it for the next crisis with TSVN&#8230;<br />
</span></p>
<p>Link: <a href="http://vidmar.net/weblog/archive/2007/12/11/subversion-and-tortoisesvn-tips-and-tricks.aspx">Subversion and TortoiseSVN tips and tricks</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/02/subversion-and-tortoisesvn-tips-and-tricks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Swing and JDK 7: Sun keeps it going</title>
		<link>http://coffeecoders.de/2009/02/swing-and-jdk-7-sun-keeps-it-going/</link>
		<comments>http://coffeecoders.de/2009/02/swing-and-jdk-7-sun-keeps-it-going/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 10:59:42 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=136</guid>
		<description><![CDATA[Danny Coward posted a statement regarding the future of the swing package in later releases of the JDK. According to him, Sun will continue the work on Swing and even more try to ease the development and enhance the deployment &#8230; <a href="http://coffeecoders.de/2009/02/swing-and-jdk-7-sun-keeps-it-going/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Danny Coward posted a statement regarding the future of the swing package in later releases of the JDK.</p>
<p>According to him, Sun will continue the work on Swing and even more try to ease the development and enhance the deployment and runtime performance.</p>
<p>The whole post sounds very convincing that Sun hasn&#8217;t given up and that Swing will become more and more useful (again).</p>
<p>Danny also mentioned new components in JDK7 like the <a href="https://jcalendar.dev.java.net/">DatePicker</a> and  <a href="https://javacss.dev.java.net/">CSS styling</a> &#8211; both are very attractive to me and I can&#8217;t wait to use them in the next project.</p>
<p>Read the whole post at: <a href="http://blogs.sun.com/theplanetarium/entry/the_future_of_swing">Swing and JDK 7 : The Planetarium</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/02/swing-and-jdk-7-sun-keeps-it-going/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS-Reset &#8211; minimizing browser rendering problems</title>
		<link>http://coffeecoders.de/2009/02/css-reset-minimizing-browser-rendering-problems/</link>
		<comments>http://coffeecoders.de/2009/02/css-reset-minimizing-browser-rendering-problems/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 09:52:51 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=134</guid>
		<description><![CDATA[If you have just a little experience on creating web designs you might have stumbled upon the differences between the browser engines. Till now you might have tried to fix every render bug after another hoping that you still can &#8230; <a href="http://coffeecoders.de/2009/02/css-reset-minimizing-browser-rendering-problems/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you have just a little experience on creating web designs you might have stumbled upon the differences between the browser engines.</p>
<p>Till now you might have tried to fix every render bug after another hoping that you still can finish in time.</p>
<p>Eric Meyer, yes <em>the </em>Eric Meyer, was tired of this problem too and created a template to reset all the common differences to a certain standard. If you start your webdesign based on this stylesheet, your design should yield much fewer rendering errors and you won&#8217;t have to worry that much about the creepy IE6 or some less common browsers.</p>
<p>Link: <a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/">Eric&#8217;s Archived Thoughts: Reset Reloaded</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/02/css-reset-minimizing-browser-rendering-problems/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Silverlight Controls for developers</title>
		<link>http://coffeecoders.de/2009/01/silverlight-controls-for-developers/</link>
		<comments>http://coffeecoders.de/2009/01/silverlight-controls-for-developers/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 09:55:37 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[silverlight]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=117</guid>
		<description><![CDATA[I personally didn&#8217;t have the time or the need to use Silverlight in a project yet although it is very tempting to try. For those of you who are already in the business with Silverlight Tim Heuer collected a list &#8230; <a href="http://coffeecoders.de/2009/01/silverlight-controls-for-developers/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I personally didn&#8217;t have the time or the need to use Silverlight in a project yet although it is very tempting to try.</p>
<p>For those of you who are already in the business with Silverlight <a href="http://timheuer.com/blog/">Tim Heuer</a> collected a list of controls useable for Silverlight. The list seems to be very long but he added some comments to help you find your way through it. The user comments below contain additional tips, too.</p>
<p>So, if you ever are afraid of losing control in your Silverlight app &#8211; Tim is the man to visit <img src='http://coffeecoders.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Link: <a href="http://timheuer.com/blog/archive/2009/01/28/comprehensive-list-of-silverlight-controls.aspx">A comprehensive list to Silverlight Controls for developers</a></p>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/01/silverlight-controls-for-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why use version control for solo developers or small teams</title>
		<link>http://coffeecoders.de/2009/01/why-use-version-control-for-solo-developers-or-small-teams/</link>
		<comments>http://coffeecoders.de/2009/01/why-use-version-control-for-solo-developers-or-small-teams/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 22:35:01 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[daily tasks]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=113</guid>
		<description><![CDATA[Since I started using version control systems like CVS and later on SVN I can&#8217;t remember how I could possibly work before. You might remember sentences like &#8220;But it worked yesterday!&#8221; or &#8220;Why the hell did I change that and &#8230; <a href="http://coffeecoders.de/2009/01/why-use-version-control-for-solo-developers-or-small-teams/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since I started using version control systems like CVS and later on SVN I can&#8217;t remember how I could possibly work before.</p>
<p>You might remember sentences like &#8220;But it worked yesterday!&#8221; or &#8220;Why the hell did I change that and when?&#8221; which were common companions when I looked at code I wrote a while back.</p>
<p>To avoid situations like this, a version control system could be a valid solution with more benefits than just less confusion.</p>
<p>Ernie Leseberg made the effort to collect most of the reasons I could think of on why to use a VCS with a small team or even if you are working alone.</p>
<p>If you don&#8217;t use a VCS yet give the article below a read and hopefully you will change your mind.</p>
<p>Link: <a href="http://devreview.com/version-control-for-solo-developers/">Why use version control for solo developers or small teams</a></p>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/01/why-use-version-control-for-solo-developers-or-small-teams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JBoss releases RESTEasy</title>
		<link>http://coffeecoders.de/2009/01/jboss-releases-resteasy/</link>
		<comments>http://coffeecoders.de/2009/01/jboss-releases-resteasy/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 11:45:23 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=98</guid>
		<description><![CDATA[JBoss released a project named &#8220;RESTEasy&#8221; which provides  help to build RESTful web services and RESTful Java applications. It is useable in any servlet container but &#8211; as you might already expected &#8211; it is built to work tighter with &#8230; <a href="http://coffeecoders.de/2009/01/jboss-releases-resteasy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jboss.org/">JBoss</a> released a project named <a href="http://www.jboss.org/resteasy/">&#8220;RESTEasy&#8221;</a> which provides  help to build RESTful web services and RESTful Java applications.</p>
<p>It is useable in any servlet container but &#8211; as you might already expected &#8211; it is built to work tighter with <a href="http://www.jboss.org/jbossas/">JBoss Application Server</a>.<br />
<span id="more-98"></span><br />
The features list provided on the front page shows very interesting details about the project. It supports various techniques and connection types. It looks worth checking out for the next java based project.</p>
<p>Do you have any experience with <em>RESTEasy</em>? What&#8217;s your favorite for implementing web services? Any comments on the featured project?</p>
<p>Links:</p>
<ul>
<li><a href="http://www.jboss.org/resteasy/">jboss.org: RESTEasy</a></li>
<li><a href="http://bill.burkecentral.com/category/rest/">Bill Burke&#8217;s blog about REST</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/01/jboss-releases-resteasy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using PHP5&#8242;s XMLWriter</title>
		<link>http://coffeecoders.de/2009/01/using-php5s-xmlwriter/</link>
		<comments>http://coffeecoders.de/2009/01/using-php5s-xmlwriter/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 18:04:58 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=95</guid>
		<description><![CDATA[The Class library of PHP5 offers a possibility to easily generate valid XML-files. Sadly the documentation and the usage examples are very poor on this topic so PHPBuilder Forum member iceomnia decided to do something about it and wrote a &#8230; <a href="http://coffeecoders.de/2009/01/using-php5s-xmlwriter/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The Class library of PHP5 offers a possibility to easily generate valid XML-files.</p>
<p>Sadly the documentation and the usage examples are very poor on this topic so <a href="http://www.phpbuilder.com/board/index.php">PHPBuilder Forum</a> member <a href="http://www.phpbuilder.com/board/member.php?u=189469">iceomnia</a> decided to do something about it and wrote a quick howto on this subject.</p>
<p>With that information you can jump right into the code and generate your own XML files within minutes. Have fun&#8230;</p>
<p>Link: <a href="http://www.phpbuilder.com/columns/iceomnia_20090116.php3">PHPBuilder.com, the best resource for PHP tutorials, templates, PHP manuals, content management systems, scripts, classes and more.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/01/using-php5s-xmlwriter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction into &#8220;Cloud-Computing&#8221;</title>
		<link>http://coffeecoders.de/2009/01/introduction-into-cloud-computing/</link>
		<comments>http://coffeecoders.de/2009/01/introduction-into-cloud-computing/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 12:27:11 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[link]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=91</guid>
		<description><![CDATA[If you never heard of Cloud Computing or always wanted to look into it, Robert Mühsig posted a detailed introduction into this topic filled with examples and links to dive deeper into this topic. Note: The article mentioned here is &#8230; <a href="http://coffeecoders.de/2009/01/introduction-into-cloud-computing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you never heard of <span class="linkle_link" link_type="wiki" link_term="Cloud Computing" link_text="Cloud Computing"><a title="Search Wikipedia for 'Cloud Computing'" href="http://www.wikipedia.org/search-redirect.php?language=en&amp;go=go&amp;search=Cloud+Computing">Cloud Computing</a></span> or always wanted to look into it, Robert Mühsig posted a detailed introduction into this topic filled with examples and links to dive deeper into this topic.</p>
<p>Note: The article mentioned here is in German. Sorry if you can&#8217;t read it. Maybe <a href="http://keenpath.com/articles/brief-introduction-to-cloud-computing/">this article</a> could be a start for you though.</p>
<p>Link: <a href="http://code-inside.de/blog/2009/01/15/howto-einstieg-in-cloud-computing/">Code-Inside Blog: HowTo: Einstieg in &#8220;Cloud-Computing&#8221;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/01/introduction-into-cloud-computing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zend Framework Book: Surviving The Deep End</title>
		<link>http://coffeecoders.de/2009/01/zend-framework-book-surviving-the-deep-end/</link>
		<comments>http://coffeecoders.de/2009/01/zend-framework-book-surviving-the-deep-end/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 19:17:39 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=86</guid>
		<description><![CDATA[For all those who always wanted to try out Zend&#8217;s Framework for PHP or just struggle with the usage of it, Pádraic Brady published an Open Book about that topic named &#8220;Surviving The Deep End&#8220;. Maybe it&#8217;ll help you through &#8230; <a href="http://coffeecoders.de/2009/01/zend-framework-book-surviving-the-deep-end/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For all those who always wanted to try out <a title="Homepage of the Zend Framework" href="http://framework.zend.com/">Zend&#8217;s Framework for PHP</a> or just struggle with the usage of it, Pádraic Brady published an Open Book about that topic named &#8220;<em>Surviving The Deep End</em>&#8220;.</p>
<p>Maybe it&#8217;ll help you through the hard time figuring out the basics or solving specific issues.</p>
<p>Link: <a href="http://www.survivethedeepend.com/">Zend Framework Book: Surviving The Deep End</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/01/zend-framework-book-surviving-the-deep-end/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TOP 25 Most Dangerous Programming Errors</title>
		<link>http://coffeecoders.de/2009/01/top-25-most-dangerous-programming-errors/</link>
		<comments>http://coffeecoders.de/2009/01/top-25-most-dangerous-programming-errors/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 11:11:30 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=79</guid>
		<description><![CDATA[I recently found a document, stating it contains the most dangerous programming errors. The layout of this article is very &#8230; let&#8217;s say technical so I was about to close this one because it&#8217;s not very much fun to read &#8230; <a href="http://coffeecoders.de/2009/01/top-25-most-dangerous-programming-errors/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I recently found a document, stating it contains the most dangerous programming errors. The layout of this article is very &#8230; let&#8217;s say technical so I was about to close this one because it&#8217;s not very much fun to read it. But the first few lines took me in and I read the whole thing. I wonder if it has the same impact on you:</p>
<p><span id="more-79"></span></p>
<blockquote><p>Today in Washington, DC, experts from more than 30 US and international cyber security organizations jointly released the consensus list of the 25 most dangerous programming errors that lead to security bugs and that enable cyber espionage and cyber crime. Shockingly, most of these errors are not well understood by programmers; their avoidance is not widely taught by computer science programs; and their presence is frequently not tested by organizations developing software for sale.</p>
<p>The impact of these errors is far reaching. Just two of them led to more than 1.5 million web site security breaches during 2008 &#8211; and those breaches cascaded onto the computers of people who visited those web sites, turning their computers into zombies.</p>
<p>[...much more...]</p></blockquote>
<p>If you are a programmer and have the urge to make a perfect application you have to admit that this excerpt teases you. You want to know if you are better than these guys who messed up epically.</p>
<p>Let&#8217;s see, which errors could you have made?</p>
<p>Well, of course, we have the three regulars <strong>SQL Injection</strong>, <strong>Cross Site Scripting</strong> and <strong>OS Command Injection</strong>. These three are still very common although there are a various number of best practises available to prevent them.</p>
<p>So if you have one of these in your application you would be in good company but you will have ignored some basic rules like &#8220;<em>Don&#8217;t trust user input!</em>&#8220;.</p>
<p>Ok, moving on. What else is there password- and cryptographie-related errors are often a source of fun or blank horror. There are the ones where you should have watched the newspages like &#8220;<strong>Use of a Broken or Risky Cryptographic Algorithm</strong>&#8220;, things you should know to avoid like &#8220;<strong>Hard-Coded Password</strong>&#8221; and &#8220;<strong>Client-Side Enforcement of Server-Side Security</strong>&#8221; and things you could have tested properly like &#8220;<strong>Execution with Unnecessary Privileges</strong>&#8221; or &#8220;<strong>Improper Access Control (Authorization)</strong>&#8220;.</p>
<p>I know, i know &#8211; you would have done (or not done) all these things if you just had enough time for it. Well, I know the clients and I know that they don&#8217;t have the feeling for tasks like &#8220;testing&#8221;. They can&#8217;t possibly understand why such a task is taking so much time. But as reality shows it is wise to invest a big chunk of your development time into it.</p>
<p>So it is <em>your</em> tasks to make sure the client (or your boss for that matter) understands the need for testing and making &#8220;unnecessarry&#8221; code for checking user input etc. It is in both his/her interest and yours to produce an application holding up against real world scenarios and bored high school kids.</p>
<p>Link: <a href="http://www.sans.org/top25errors/#s4">SANS Institute &#8211; CWE/SANS TOP 25 Most Dangerous Programming Errors</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/01/top-25-most-dangerous-programming-errors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

