<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>coffeecoders.de</title>
	
	<link>http://coffeecoders.de</link>
	<description>professional devs at work</description>
	<lastBuildDate>Tue, 13 Sep 2011 16:34:02 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/coffeecoders" /><feedburner:info uri="coffeecoders" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Using GitHub as a personal maven repository</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/ZDYpJJZ2tRk/</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><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/ZDYpJJZ2tRk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2011/09/using-github-as-a-personal-maven-repository/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2011%2F09%2Fusing-github-as-a-personal-maven-repository%2F&amp;language=en_GB&amp;category=text&amp;title=Using+GitHub+as+a+personal+maven+repository&amp;description=Sometime+you+are+in+need+for+a+maven+repository+accessible+from+the+net+which+is+under+your+control.+Reasons+might+be%3A+a+3rd-party+lib+is+not+on+Maven+central+or...&amp;tags=administration%2Ccoding%2Cdaily+tasks%2Cgit%2CGitHub%2Cmaven%2Cxml%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2011/09/using-github-as-a-personal-maven-repository/</feedburner:origLink></item>
		<item>
		<title>Make your bash-prompt git-aware</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/fk_8IGsrkOA/</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('p284code13'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p28413"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p284code13"><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><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/fk_8IGsrkOA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2011/09/make-your-bash-prompt-git-aware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2011%2F09%2Fmake-your-bash-prompt-git-aware%2F&amp;language=en_GB&amp;category=text&amp;title=Make+your+bash-prompt+git-aware&amp;description=Today+a+friend+of+mine+shared+a+very+nice+piece+of+configuration+for+using+git+with+me.+stevie%40box%3A%7E%2Fdev%2Fmyproject%2Fcommon+%5Bmaster%5D%24+If+you+add+the+following+lines+into+your+%7E%2F.bashrc+you%26%238217%3Bll+always...&amp;tags=bash%2Ccoding%2Cdaily+tasks%2Cgit%2Chowto%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2011/09/make-your-bash-prompt-git-aware/</feedburner:origLink></item>
		<item>
		<title>How to pretty-print a SimpleXmlObject in php</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/YJ-CF4tPKMY/</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('p277code16'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27716"><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="p277code16"><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><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/YJ-CF4tPKMY" height="1" width="1"/>]]></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>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2011%2F03%2Fhow-to-pretty-print-a-simplexmlobject-in-php%2F&amp;language=en_GB&amp;category=text&amp;title=How+to+pretty-print+a+SimpleXmlObject+in+php&amp;description=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...&amp;tags=coding%2Chowto%2Cphp%2Cxml%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2011/03/how-to-pretty-print-a-simplexmlobject-in-php/</feedburner:origLink></item>
		<item>
		<title>Convert a JAVA keystore from PKCS12 to JKS</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/oNE73Cza3Zc/</link>
		<comments>http://coffeecoders.de/2011/03/convert-a-java-keystore-from-pkcs12-to-jks/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 09:28:17 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[cheat sheet]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[keytool]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=272</guid>
		<description><![CDATA[Although it&#8217;s in the man page of the keytool I think it&#8217;s worth mentioning. JKS has a big advantage over the PKCS12-format: It knows trusted certificates. This way you can use certificates, normally untrusted by your application because the Certificate &#8230; <a href="http://coffeecoders.de/2011/03/convert-a-java-keystore-from-pkcs12-to-jks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Although it&#8217;s in the man page of the <strong>keytool</strong> I think it&#8217;s worth mentioning.</p>
<p>JKS has a big advantage over the PKCS12-format: It knows trusted certificates. This way you can use certificates, normally untrusted by your application because the Certificate Authority (CA) is not trusted within the default keystore.<br />
<span id="more-272"></span><br />
To convert your PKCS12-keystore to a JKS-type use the following line:</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('p272code19'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27219"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p272code19"><pre class="bash" style="font-family:monospace;"> keytool <span style="color: #660033;">-importkeystore</span> <span style="color: #660033;">-srckeystore</span> oldkeystore.pkcs <span style="color: #660033;">-srcstoretype</span> pkcs12 <span style="color: #660033;">-srcstorepass</span> oldsecret <span style="color: #660033;">-destkeystore</span> newkeystore.jks <span style="color: #660033;">-deststoretype</span> jks <span style="color: #660033;">-deststorepass</span> newsecret</pre></td></tr></table></div>

<p>After execution of this line you will have a 2nd keystore in the directory named &#8220;newkeystore.jks&#8221;.</p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=272&amp;md5=c35995ff71fd248b05cecb3f61a91066" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/oNE73Cza3Zc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2011/03/convert-a-java-keystore-from-pkcs12-to-jks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2011%2F03%2Fconvert-a-java-keystore-from-pkcs12-to-jks%2F&amp;language=en_GB&amp;category=text&amp;title=Convert+a+JAVA+keystore+from+PKCS12+to+JKS&amp;description=Although+it%26%238217%3Bs+in+the+man+page+of+the+keytool+I+think+it%26%238217%3Bs+worth+mentioning.+JKS+has+a+big+advantage+over+the+PKCS12-format%3A+It+knows+trusted+certificates.+This+way+you+can...&amp;tags=cheat+sheet%2Chowto%2Cjava%2Ckeytool%2Ctools%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2011/03/convert-a-java-keystore-from-pkcs12-to-jks/</feedburner:origLink></item>
		<item>
		<title>Bootstrapping Doctrine 1.2 and Zend 1.10/1.11 the easy way</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/ogjJuygbrKg/</link>
		<comments>http://coffeecoders.de/2010/10/bootstrapping-doctrine-1-2-and-zend-1-10-and-1-11-the-easy-way/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 17:12:13 +0000</pubDate>
		<dc:creator>Daff</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=262</guid>
		<description><![CDATA[So there seem to be many different ways to get the 1.2 version of Doctrine running with the Zend Framework (currently 1.11) but the easiest way that worked for me, after using the Zend framework command line tool to create &#8230; <a href="http://coffeecoders.de/2010/10/bootstrapping-doctrine-1-2-and-zend-1-10-and-1-11-the-easy-way/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>So there seem to be many different ways to get the <a href="http://www.doctrine-project.org/projects/orm/1.2/docs/en">1.2 version of Doctrine</a> running with the <a href="http://framework.zend.com/">Zend Framework (currently 1.11)</a> but the easiest way that worked for me, after using the Zend framework command line tool to create a new standard project, made my application bootstrap file look like this:</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('p262code24'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p26224"><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
</pre></td><td class="code" id="p262code24"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Bootstrap <span style="color: #000000; font-weight: bold;">extends</span> Zend_Application_Bootstrap_Bootstrap
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000000; font-weight: bold;">function</span> _initDoctrine<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$manager</span> <span style="color: #339933;">=</span> Doctrine_Manager<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$options</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getOption</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;doctrine&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/empty"><span style="color: #990000;">empty</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'models_path'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'models_path'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span>  APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/models'</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$options</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$key</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">'connection'</span><span style="color: #009900;">&#41;</span>
				<span style="color: #000088;">$manager</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/empty"><span style="color: #990000;">empty</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'connection'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> Exception<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;No database connection string provided!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		Doctrine_Manager<span style="color: #339933;">::</span><span style="color: #004000;">connection</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'connection'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		Doctrine<span style="color: #339933;">::</span><span style="color: #004000;">loadModels</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'models_path'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$manager</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>The application.ini configuration file then needs some of these information:</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('p262code25'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p26225"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code" id="p262code25"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">;</span> Database configuration
doctrine<span style="color: #339933;">.</span>connection <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;mysql://user:pass@localhost/database&quot;</span>
doctrine<span style="color: #339933;">.</span>models_path <span style="color: #339933;">=</span> APPLICATION_PATH <span style="color: #0000ff;">&quot;/models&quot;</span>
doctrine<span style="color: #339933;">.</span>data_fixtures_path <span style="color: #339933;">=</span> APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/data/fixtures&quot;</span>  
doctrine<span style="color: #339933;">.</span>migrations_path <span style="color: #339933;">=</span> APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/data/migrations&quot;</span>  
doctrine<span style="color: #339933;">.</span>sql_path <span style="color: #339933;">=</span> APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/data/sql&quot;</span>
doctrine<span style="color: #339933;">.</span>yaml_schema_path <span style="color: #339933;">=</span> APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/data/schema
; Options for generating models from YAML
doctrine.generate_models_options.phpDocPackage = &quot;</span>Your PHP doc package<span style="color: #0000ff;">&quot;
doctrine.generate_models_options.phpDocSubpackage = &quot;</span>Subpackage<span style="color: #0000ff;">&quot;  
doctrine.generate_models_options.baseClassName = &quot;</span>Model_<span style="color: #0000ff;">&quot;  
doctrine.generate_models_options.phpDocName = &quot;</span>Your name<span style="color: #0000ff;">&quot;  
doctrine.generate_models_options.phpDocEmail = &quot;</span>email<span style="color: #339933;">@</span>address<span style="color: #339933;">.</span>com<span style="color: #0000ff;">&quot;  
; Set this to true to generate base classes. Set to false to make autoloading easier
doctrine.generate_models_options.generateBaseClasses = false</span></pre></td></tr></table></div>

<p>The command line interface is a good way of dealing with model and database generation, this is how the PHP CLI script for Doctrin + Zend looks like (inspired by <a href="http://blog.kartaca.com/?p=344">this post</a>):</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('p262code26'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p26226"><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
</pre></td><td class="code" id="p262code26"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/php
</span><span style="color: #339933;">&lt;</span> ?php
<span style="color: #009933; font-style: italic;">/**
 * Doctrine CLI script
 */</span>
&nbsp;
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'APPLICATION_ENV'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'development'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'APPLICATION_PATH'</span><span style="color: #339933;">,</span> <a href="http://www.php.net/realpath"><span style="color: #990000;">realpath</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/dirname"><span style="color: #990000;">dirname</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/../application'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<a href="http://www.php.net/set_include_path"><span style="color: #990000;">set_include_path</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/implode"><span style="color: #990000;">implode</span></a><span style="color: #009900;">&#40;</span>PATH_SEPARATOR<span style="color: #339933;">,</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>
    <a href="http://www.php.net/realpath"><span style="color: #990000;">realpath</span></a><span style="color: #009900;">&#40;</span>APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/../library'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
    <a href="http://www.php.net/get_include_path"><span style="color: #990000;">get_include_path</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'Zend/Application.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Create application, bootstrap, and run</span>
<span style="color: #000088;">$application</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Application<span style="color: #009900;">&#40;</span>
    APPLICATION_ENV<span style="color: #339933;">,</span>
    APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/configs/application.ini'</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$application</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getBootstrap</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bootstrap</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'doctrine'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$config</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$application</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getOption</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'doctrine'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$cli</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Doctrine_Cli<span style="color: #009900;">&#40;</span><span style="color: #000088;">$config</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$cli</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">run</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'argv'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>With this you can get started to use Doctrine + Zend Framework.</p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=262&amp;md5=667b7f831c98becbb72edad02f931eab" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/ogjJuygbrKg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2010/10/bootstrapping-doctrine-1-2-and-zend-1-10-and-1-11-the-easy-way/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2010%2F10%2Fbootstrapping-doctrine-1-2-and-zend-1-10-and-1-11-the-easy-way%2F&amp;language=en_GB&amp;category=text&amp;title=Bootstrapping+Doctrine+1.2+and+Zend+1.10%2F1.11+the+easy+way&amp;description=So+there+seem+to+be+many+different+ways+to+get+the+1.2+version+of+Doctrine+running+with+the+Zend+Framework+%28currently+1.11%29+but+the+easiest+way+that+worked+for+me%2C...&amp;tags=doctrine%2Cphp%2Czend%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2010/10/bootstrapping-doctrine-1-2-and-zend-1-10-and-1-11-the-easy-way/</feedburner:origLink></item>
		<item>
		<title>Get rid off phpmail()!</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/BC46ZDJBlnY/</link>
		<comments>http://coffeecoders.de/2009/08/get-rid-off-phpmail/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 13:06:29 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=222</guid>
		<description><![CDATA[Dear sysadmins and developers, phpmail() IS OUT! Get rid off it. Now! One of the most common sources of spam are &#8220;hacked&#8221; webservers and poorly or even non-secured forms. By using phpmail the webserver must be allowed to send mails &#8230; <a href="http://coffeecoders.de/2009/08/get-rid-off-phpmail/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Dear sysadmins and developers,</p>
<p><a href="http://www.php.net/phpmail">phpmail()</a> IS OUT! Get rid off it. Now!</p>
<p>One of the most common sources of spam are &#8220;hacked&#8221; webservers and poorly or even non-secured forms. By using phpmail the webserver must be allowed to send mails without checks for a valid sender. This results &#8211; mostly on a shared web host &#8211; in having checking every clients installations for the bad script while the mailserver gets blacklisted due to the spam wave.<br />
<span id="more-222"></span><br />
There are enough possibilities out there on how to send mail without using phpmail such as <a href="http://pear.php.net/package/Net_SMTP/">PEAR Net_SMTP</a>. I even encourage every webmaster to turn off phpmail by blacklisting this function in php.ini. This way the developers would be forced to name an smtp account for sending mail which is <em>much</em> easier to track (and shut off if neccessary).</p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=222&amp;md5=db8429dcce04b6623288f00fdf172b50" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/BC46ZDJBlnY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/08/get-rid-off-phpmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F08%2Fget-rid-off-phpmail%2F&amp;language=en_GB&amp;category=text&amp;title=Get+rid+off+phpmail%28%29%21&amp;description=Dear+sysadmins+and+developers%2C+phpmail%28%29+IS+OUT%21+Get+rid+off+it.+Now%21+One+of+the+most+common+sources+of+spam+are+%26%238220%3Bhacked%26%238221%3B+webservers+and+poorly+or+even+non-secured+forms.+By...&amp;tags=administration%2Cphp%2Csecurity%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/08/get-rid-off-phpmail/</feedburner:origLink></item>
		<item>
		<title>coffeecoders gone twitter</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/iRNeyUtCrAg/</link>
		<comments>http://coffeecoders.de/2009/08/coffeecoders-gone-twitter/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 11:47:43 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[coffeecoders]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/2009/08/coffeecoders-gone-twitter/</guid>
		<description><![CDATA[Hey there, although we don&#8217;t like to blindly follow trends we decided to open up a twitter-account. You can follow us here. You can expect to be informed when a new blog post is published and we will tweet links &#8230; <a href="http://coffeecoders.de/2009/08/coffeecoders-gone-twitter/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Hey there,</p>
<p>although we don&#8217;t like to blindly follow trends we decided to open up a twitter-account.</p>
<p>You can follow us <a href="http://www.twitter.com/coffeecoders" title="coffeecoders twitter profile">here</a>. You can expect to be informed when a new blog post is published and we will tweet links and interessting stuff which would be too small for a whole article.</p>
<p>We hope you like our new way of communicating with you and would be glad if you follow us.</p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=248&amp;md5=c351cb5ce17c88c37ee381e6a38c60b2" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/iRNeyUtCrAg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/08/coffeecoders-gone-twitter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F08%2Fcoffeecoders-gone-twitter%2F&amp;language=en_GB&amp;category=text&amp;title=coffeecoders+gone+twitter&amp;description=Hey+there%2C+although+we+don%26%238217%3Bt+like+to+blindly+follow+trends+we+decided+to+open+up+a+twitter-account.+You+can+follow+us+here.+You+can+expect+to+be+informed+when+a...&amp;tags=coffeecoders%2Ctwitter%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/08/coffeecoders-gone-twitter/</feedburner:origLink></item>
		<item>
		<title>trac: upgrading trac with easy_install fails with “unexpected HTML page found”</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/NYZM0dlmNXo/</link>
		<comments>http://coffeecoders.de/2009/08/trac-upgrading-trac-with-easy_install-fails-with-unexpected-html-page-found/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 10:55:09 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=240</guid>
		<description><![CDATA[When installing or upgrading trac on a Debian-like linux machine you might want to use the easy approach of the python setuptools. Trac can be installed or upgraded by using: easy_install http://svn.edgewall.org/repos/trac/branches/0.11-stable Since the release of Subversion 1.5 the version &#8230; <a href="http://coffeecoders.de/2009/08/trac-upgrading-trac-with-easy_install-fails-with-unexpected-html-page-found/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>When installing or upgrading trac on a Debian-like linux machine you might want to use the easy approach of the python setuptools. Trac can be installed or upgraded by using:</p>
<p><code>easy_install http://svn.edgewall.org/repos/trac/branches/0.11-stable</code></p>
<p>Since the release of Subversion 1.5 the version of easy_install included in the Debian repository ran into a compatibility issue. <span id="more-240"></span>Instead of working as expected it always complained:</p>
<p><code>error: Unexpected HTML page found at http://svn.edgewall.org/repos/trac/branches/0.11-stable</code></p>
<p>The problem seems to be that the SVN-Web-Output generated by Subversion 1.5+ is not being understanded by setuptools. In the <a href="http://trac-hacks.org/ticket/5512">issue tracker</a> for the trac-plugin-project <a href="http://www.trac-hacks.org">trac-hacks.org</a> I found the easiest way to solve this problem. You will use the setuptools to update itself and then you won&#8217;t have problems anymore:</p>
<p><code>easy_install -U setuptools</code></p>
<p>PS: This problem also occured when trying to install plugins from trac-hacks.org since they also use SVN 1.5+.</p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=240&amp;md5=81fefaa5094762c4a0b3ca4a923c52ce" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/NYZM0dlmNXo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/08/trac-upgrading-trac-with-easy_install-fails-with-unexpected-html-page-found/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F08%2Ftrac-upgrading-trac-with-easy_install-fails-with-unexpected-html-page-found%2F&amp;language=en_GB&amp;category=text&amp;title=trac%3A+upgrading+trac+with+easy_install+fails+with+%26%238220%3Bunexpected+HTML+page+found%26%238221%3B&amp;description=When+installing+or+upgrading+trac+on+a+Debian-like+linux+machine+you+might+want+to+use+the+easy+approach+of+the+python+setuptools.+Trac+can+be+installed+or+upgraded+by+using%3A...&amp;tags=administration%2Cbug%2Cdebian%2Clinux%2Ctrac%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/08/trac-upgrading-trac-with-easy_install-fails-with-unexpected-html-page-found/</feedburner:origLink></item>
		<item>
		<title>Mouse-less Eclipse</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/Yr9yjQdTQvc/</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><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/Yr9yjQdTQvc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/08/mouse-less-eclipse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F08%2Fmouse-less-eclipse%2F&amp;language=en_GB&amp;category=text&amp;title=Mouse-less+Eclipse&amp;description=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...&amp;tags=cheat+sheet%2Ccoding%2Cdaily+tasks%2Ceclipse%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/08/mouse-less-eclipse/</feedburner:origLink></item>
		<item>
		<title>Using the Zend Framework 1.8 Bootstrapper and Doctrine 1.1.0</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/rd4KLaji5Oo/</link>
		<comments>http://coffeecoders.de/2009/06/using-the-zend-framework-18-bootstrapper-and-doctrine-110/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 12:59:19 +0000</pubDate>
		<dc:creator>Daff</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=221</guid>
		<description><![CDATA[I think that by now, the Zend Framework is one of the most sophisticated PHP frameworks available. Additionally I really like the idea of Object Relational Mapper tools. Unfortunately the Zend Frameworks DB and ORM capabilities didn&#8217;t convince me yet. &#8230; <a href="http://coffeecoders.de/2009/06/using-the-zend-framework-18-bootstrapper-and-doctrine-110/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I think that by now, the <a href="http://framework.zend.com/">Zend Framework</a> is one of the most sophisticated PHP frameworks available.<br />
Additionally I really like the idea of <a href="http://en.wikipedia.org/wiki/Object-relational_mapping">Object Relational Mapper</a> tools. Unfortunately the Zend Frameworks DB and ORM capabilities didn&#8217;t convince me yet. That&#8217;s where the powerful ORM tool for PHP named <a href="http://www.doctrine-project.org/">Doctrine</a> comes into play.<br />
It is fairly easy to get Doctrine and the Zend Framework (here I&#8217;m usually referring to the MVC part) working together,<br />
but in my opinion that might not use the full potential of these two Frameworks put together.<br />
So I started developing a wrapper Framework which I named &#8211; in the lack of a better name <img src='http://coffeecoders.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  &#8211; Cuckoo.<br />
At this point in developmnent it only offers ZF 1.8 bootstrap classes for Doctrine and an application wrapper which makes using Doctrine and ZF together easier. A sample application is included as well, I hope it works more or less out of the box.</p>
<p>The next steps will be a Zend Form derivate that can generate forms by using the meta information from your doctrine<br />
model but stays fully customizable as well as cool Ajax/ExtJs support.</p>
<p><a href="http://coffeecoders.de/wp-content/uploads/2009/06/cuckoo_prealpha.zip">Download 0.001 PreAlpha</a></p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=221&amp;md5=f58b2edb90bf8d2632f781587e4cde3f" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/rd4KLaji5Oo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/06/using-the-zend-framework-18-bootstrapper-and-doctrine-110/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F06%2Fusing-the-zend-framework-18-bootstrapper-and-doctrine-110%2F&amp;language=en_GB&amp;category=text&amp;title=Using+the+Zend+Framework+1.8+Bootstrapper+and+Doctrine+1.1.0&amp;description=I+think+that+by+now%2C+the+Zend+Framework+is+one+of+the+most+sophisticated+PHP+frameworks+available.+Additionally+I+really+like+the+idea+of+Object+Relational+Mapper+tools.+Unfortunately+the...&amp;tags=php%2Czend%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/06/using-the-zend-framework-18-bootstrapper-and-doctrine-110/</feedburner:origLink></item>
		<item>
		<title>Website Optimization Best Practices</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/KpPCZifIsKM/</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><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/KpPCZifIsKM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/06/website-optimization-best-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F06%2Fwebsite-optimization-best-practices%2F&amp;language=en_GB&amp;category=text&amp;title=Website+Optimization+Best+Practices&amp;description=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...&amp;tags=coding%2Chowto%2Clink%2Cwebdesign%2Cwebdevelopment%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/06/website-optimization-best-practices/</feedburner:origLink></item>
		<item>
		<title>AIR on Linux: Adobe wants beta testers</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/W4HUut5qIyg/</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>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=227&amp;md5=e9be6924aa38ff6860f0097574f19a8f" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/W4HUut5qIyg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/05/air-on-linux-adobe-wants-beta-testers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F05%2Fair-on-linux-adobe-wants-beta-testers%2F&amp;language=en_GB&amp;category=text&amp;title=AIR+on+Linux%3A+Adobe+wants+beta+testers&amp;description=Adobe%26%238217%3Bs+AIR+is+plattform+intented+to+distribute+Flash+based+applications+as+desktop+programs.+Now+Adobe%26%238217%3Bs+looking+for+developers+using+linux+to+test+a+new+release+and+report+bugs+and+other...&amp;tags=adobe+air%2Cbeta%2Ccoding%2Clink%2Csoftware%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/05/air-on-linux-adobe-wants-beta-testers/</feedburner:origLink></item>
		<item>
		<title>PostgreSQL.org Website Design Contest</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/MMcC48W2AFE/</link>
		<comments>http://coffeecoders.de/2009/05/postgresqlorg-website-design-contest/#comments</comments>
		<pubDate>Sat, 09 May 2009 17:08:34 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=223</guid>
		<description><![CDATA[Just a quick tip for all you designers out there: The team of PostgreSQL wants a redesign of their homepage and started a contest to find the new look. If you are interested to win the 2000$-prize you should visit &#8230; <a href="http://coffeecoders.de/2009/05/postgresqlorg-website-design-contest/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Just a quick tip for all you designers out there:</p>
<p>The team of PostgreSQL wants a redesign of their homepage and started a contest to find the new look. If you are interested to win the 2000$-prize you should visit the page and get involved.</p>
<p>Good luck!</p>
<p>Link: <a href="http://www.postgresql.org/about/news.1081">PostgreSQL: News: PostgreSQL.org Website Design Contest</a></p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=223&amp;md5=a3ac830aea3c761c901ccabdd2a10bea" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/MMcC48W2AFE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/05/postgresqlorg-website-design-contest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F05%2Fpostgresqlorg-website-design-contest%2F&amp;language=en_GB&amp;category=text&amp;title=PostgreSQL.org+Website+Design+Contest&amp;description=Just+a+quick+tip+for+all+you+designers+out+there%3A+The+team+of+PostgreSQL+wants+a+redesign+of+their+homepage+and+started+a+contest+to+find+the+new+look.+If...&amp;tags=link%2Cnews%2Cwebdesign%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/05/postgresqlorg-website-design-contest/</feedburner:origLink></item>
		<item>
		<title>Learn Java by camp fire stories</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/mSoVz-JJqws/</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>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=215&amp;md5=72024e3ad87e10423c691e1adcfd37cc" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/mSoVz-JJqws" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/04/learn-java-by-camp-fire-stories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F04%2Flearn-java-by-camp-fire-stories%2F&amp;language=en_GB&amp;category=text&amp;title=Learn+Java+by+camp+fire+stories&amp;description=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+%28ie.+reading%29+a...&amp;tags=beginner%2Ccoding%2Chowto%2Cjava%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/04/learn-java-by-camp-fire-stories/</feedburner:origLink></item>
		<item>
		<title>Top 10 Mistakes in Web Design</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/qZeXZUelsnY/</link>
		<comments>http://coffeecoders.de/2009/04/top-10-mistakes-in-web-design/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 12:35:41 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=213</guid>
		<description><![CDATA[Although this blog tends to be more a developer&#8217;s than a designer&#8217;s blog most of us will have to deal with GUI-design at some point. So these tips might become in handy if you have to design your next webapp &#8230; <a href="http://coffeecoders.de/2009/04/top-10-mistakes-in-web-design/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Although this blog tends to be more a developer&#8217;s than a designer&#8217;s blog most of us will have to deal with GUI-design at some point.</p>
<p>So these tips might become in handy if you have to design your next webapp or if you have to make another site more attractive for users (i.e. redesign/relaunch).</p>
<p>Enjoy.</p>
<p>Link: <a href="http://www.useit.com/alertbox/9605.html">Top 10 Mistakes in Web Design Jakob Nielsen&#8217;s Alertbox</a>.</p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=213&amp;md5=268914868b86217d045eb107b09f34a9" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/qZeXZUelsnY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/04/top-10-mistakes-in-web-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F04%2Ftop-10-mistakes-in-web-design%2F&amp;language=en_GB&amp;category=text&amp;title=Top+10+Mistakes+in+Web+Design&amp;description=Although+this+blog+tends+to+be+more+a+developer%26%238217%3Bs+than+a+designer%26%238217%3Bs+blog+most+of+us+will+have+to+deal+with+GUI-design+at+some+point.+So+these+tips+might+become...&amp;tags=link%2Cwebdesign%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/04/top-10-mistakes-in-web-design/</feedburner:origLink></item>
		<item>
		<title>Hug a developer</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/BFvyK9a-BxQ/</link>
		<comments>http://coffeecoders.de/2009/03/hug-a-developer/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 13:58:22 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=207</guid>
		<description><![CDATA[It&#8217;s been very quiet around here for the last few weeks. I guess everybody of the team has been busy &#8211; too busy to write articles at least. I know I was. Today I stumbled upon a video which imo &#8230; <a href="http://coffeecoders.de/2009/03/hug-a-developer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s been very quiet around here for the last few weeks. I guess everybody of the team has been busy &#8211; too busy to write articles at least. I know I was.</p>
<p>Today I stumbled upon a video which imo describes the situation of our daily work very well. So let&#8217;s whine a bit, then get a free hug from a colleague and after that GO BACK TO WORK! <img src='http://coffeecoders.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Enjoy&#8230;</p>
<p><span id="more-207"></span><object width="425" height="344" data="http://www.youtube.com/v/1lqxORnQARw&amp;hl=de&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/1lqxORnQARw&amp;hl=de&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>Thanks to <a href="http://m3nt0r.de/blog/2008/09/22/hug-a-developer-today/">m3nt0r</a> for the article and the other good tips posted in <a href="http://cakealot.com/">his other blog</a>. Keep it on!</p>
<p>PS: I promise to produce more content in the next few days, mainly about my current experiences with our current CakePHP project.</p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=207&amp;md5=c8e0a279d2083a4541fc37ab692927ed" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/BFvyK9a-BxQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/03/hug-a-developer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F03%2Fhug-a-developer%2F&amp;language=en_GB&amp;category=text&amp;title=Hug+a+developer&amp;description=It%26%238217%3Bs+been+very+quiet+around+here+for+the+last+few+weeks.+I+guess+everybody+of+the+team+has+been+busy+%26%238211%3B+too+busy+to+write+articles+at+least.+I+know...&amp;tags=fun%2Cvideo%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/03/hug-a-developer/</feedburner:origLink></item>
		<item>
		<title>Coder humor</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/nThHeLFeP44/</link>
		<comments>http://coffeecoders.de/2009/03/coder-humor/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 17:05:51 +0000</pubDate>
		<dc:creator>stevie</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[fun]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/2009/03/coder-humor/</guid>
		<description><![CDATA[(morganj): 0 is false and 1 is true, correct? (alec_eso): 1, morganj (morganj): bastard.]]></description>
				<content:encoded><![CDATA[<blockquote><p>
(morganj): 0 is false and 1 is true, correct?<br />
(alec_eso): 1, morganj<br />
(morganj): bastard.
</p></blockquote>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=206&amp;md5=ba96ca67985ba08033edfa7d9cdfda83" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/nThHeLFeP44" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/03/coder-humor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F03%2Fcoder-humor%2F&amp;language=en_GB&amp;category=text&amp;title=Coder+humor&amp;description=%28morganj%29%3A+0+is+false+and+1+is+true%2C+correct%3F+%28alec_eso%29%3A+1%2C+morganj+%28morganj%29%3A+bastard.&amp;tags=fun%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/03/coder-humor/</feedburner:origLink></item>
		<item>
		<title>14 Most Useful Web Design Cheat Sheets</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/J-VzKTCtO2A/</link>
		<comments>http://coffeecoders.de/2009/03/14-most-useful-web-design-cheat-sheets/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 13:11:56 +0000</pubDate>
		<dc:creator>Johannes</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[cheat sheet]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[webdevelopment]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=200</guid>
		<description><![CDATA[Have you ever had that problem: how do i do&#8230;. ? and couldn&#8217;t find the answer quick? Try one of those Cheat sheets. Print them, laminate them and put them next to your workstation. Just one quick look and you &#8230; <a href="http://coffeecoders.de/2009/03/14-most-useful-web-design-cheat-sheets/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Have you ever had that problem: how do i do&#8230;. ? and couldn&#8217;t find the answer quick? Try one of those Cheat sheets. Print them, laminate them and put them next to your workstation. Just one quick look and you remember!</p>
<p>Cheat sheets for:</p>
<ul>
<li>Photoshop (CS3 &amp; 4)</li>
<li>CSS</li>
<li>(X)HTML</li>
<li>JavaScript</li>
<li>mootools</li>
<li>PrototypeJS</li>
<li>and Flash</li>
</ul>
<p><a href="http://webdesignledger.com/resources/14-most-useful-web-design-cheat-sheets">14 Most Useful Web Design Cheat Sheets | Web Design Ledger</a>.</p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=200&amp;md5=81b0a8889b880caedcedfd6d4ec14ab7" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/J-VzKTCtO2A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/03/14-most-useful-web-design-cheat-sheets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F03%2F14-most-useful-web-design-cheat-sheets%2F&amp;language=en_GB&amp;category=text&amp;title=14+Most+Useful+Web+Design+Cheat+Sheets&amp;description=Have+you+ever+had+that+problem%3A+how+do+i+do%26%238230%3B.+%3F+and+couldn%26%238217%3Bt+find+the+answer+quick%3F+Try+one+of+those+Cheat+sheets.+Print+them%2C+laminate+them+and+put+them...&amp;tags=cheat+sheet%2Cdesign%2CJavaScript%2Cphotoshop%2Cwebdevelopment%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/03/14-most-useful-web-design-cheat-sheets/</feedburner:origLink></item>
		<item>
		<title>Adding a simple pagination to your site</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/pphePwP52rA/</link>
		<comments>http://coffeecoders.de/2009/02/adding-a-simple-pagination-to-your-site/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 02:19:28 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[beginner]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[pagination]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://coffeecoders.de/?p=184</guid>
		<description><![CDATA[or: the dangerousness of simple mathematics I guess many people had this problem before and I think everybody managed to solve this quite similar. Anyways, just in case this is useful for anybody: here&#8217;s how I added a pagination to &#8230; <a href="http://coffeecoders.de/2009/02/adding-a-simple-pagination-to-your-site/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<h3>or: the dangerousness of simple mathematics</h3>
<p>I guess many people had this problem before and I think everybody managed to solve this quite similar. Anyways, just in case this is useful for anybody: here&#8217;s how I added a pagination to a site recently.</p>
<p>Given you have an array of products for example. Or maybe search results, a list of articles&#8230; something like that. Unfortunately they are too many to display them on a single page. Well, sure, you could but let&#8217;s be honest: that isn&#8217;t an option as the page would exceed its &#8220;scrollable-with-no-harm-to-scroll-fingers&#8221; length. And you don&#8217;t want to get sued by your visitors, right <img src='http://coffeecoders.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Ok, so you&#8217;re going to add a nice pagination to your site, so that everybody is happy.<br />
What I found out to be a bit tricky was to calculate the actual number of pages. We need that number so that we know, how many page links we will show next to our current view.<br />
<span id="more-184"></span><br />
Two simple examples to illustrate the probelm:<br />
Let&#8217;s say we have <strong>8</strong> items. <strong>8 divided by 4 is 2</strong>, so we&#8217;re going to need two pages. No big deal, right?<br />
Okay then we try this with <strong>9</strong> items. <strong>9 divided by 4 gives us 2.25</strong>. So we will clearly need a 3rd page for product number 9, but how do we calculate this from our result?<br />
<code><br />
$itemcount = $res-&gt;length();<br />
$pagemin = $itemcount / 4;<br />
$pagemax = ceil($itemcount / 4);<br />
if ( $pagemax - intval($pagemin) === 1) ) {<br />
$pages = $pagemax;<br />
} else {<br />
$pages = intval($pagemin);<br />
}<br />
</code></p>
<h3>The code explained</h3>
<p>That&#8217;s why I compare two values here: the actual division result and the next bigger integer. Now we try to find out if both values differ. If they do, we have a scenario where we do want another page, so we pick the bigger result as our page number. If not we are just happy and use the smaller number.</p>
<p>So now that we know our actual page count we can do something (slightly simplified) like this:</p>
<p><code><br />
while($i = 0;$i &lt; $pages; $i++) {<br />
print '&lt;a href="?page=' . $i . '"&gt;Page ' . $i . '';<br />
}<br />
</code></p>
<figure id="attachment_192" aria-labelledby="figcaption_attachment_192" class="wp-caption aligncenter" style="width: 499px"><img class="size-full wp-image-192" src="http://coffeecoders.de/wp-content/uploads/2009/02/pagination.jpg" alt="A pagination helps to navigate through long lists of items" width="489" height="134" /><figcaption id="figcaption_attachment_192" class="wp-caption-text">A pagination helps to navigate through long lists of items</figcaption></figure>
<p>With a little bit of styling this even looks nice. And of course, this is just a start. You also might want to add &#8220;previous&#8221; and &#8220;next buttons&#8221;, or those &#8220;first page&#8221;, &#8220;last page&#8221; buttons, limit the maximum number of page links shown, or you could center the currently viewed page in the middle, hide the previous button on the first page, etc&#8230; There are a lot of fine tuning options that will improve the user experience of your pagination.</p>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=184&amp;md5=ff6141ebe168bb966231b0d6be6ccb5a" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/pphePwP52rA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/02/adding-a-simple-pagination-to-your-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F02%2Fadding-a-simple-pagination-to-your-site%2F&amp;language=en_GB&amp;category=text&amp;title=Adding+a+simple+pagination+to+your+site&amp;description=or%3A+the+dangerousness+of+simple+mathematics+I+guess+many+people+had+this+problem+before+and+I+think+everybody+managed+to+solve+this+quite+similar.+Anyways%2C+just+in+case+this+is...&amp;tags=beginner%2Chowto%2Cpagination%2Cphp%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/02/adding-a-simple-pagination-to-your-site/</feedburner:origLink></item>
		<item>
		<title>Web browser capabilities revisited</title>
		<link>http://feedproxy.google.com/~r/coffeecoders/~3/kTESDi0zE7U/</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>
 <p><a href="http://coffeecoders.de/?flattrss_redirect&amp;id=178&amp;md5=09d899c9f3c1a885298b46ab3ff6e2ff" title="Flattr" target="_blank"><img src="http://coffeecoders.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/coffeecoders/~4/kTESDi0zE7U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeecoders.de/2009/02/web-browser-capabilities-revisited/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=stefanhoth&amp;popout=1&amp;url=http%3A%2F%2Fcoffeecoders.de%2F2009%2F02%2Fweb-browser-capabilities-revisited%2F&amp;language=en_GB&amp;category=text&amp;title=Web+browser+capabilities+revisited&amp;description=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%26%238217%3Bs+or+on+some+random...&amp;tags=coding%2Ccss3%2Chtml%2Clink%2Cwebdesign%2Cblog" type="text/html" />
	<feedburner:origLink>http://coffeecoders.de/2009/02/web-browser-capabilities-revisited/</feedburner:origLink></item>
	</channel>
</rss>
