<?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/" version="2.0">

<channel>
	<title>Florian Salbrechter @ caffeinated</title>
	
	<link>http://www.caffeinated.at</link>
	<description />
	<lastBuildDate>Thu, 17 Sep 2009 18:43:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/caffeinatedFlo" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="caffeinatedflo" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Visual Indicating Constraints in Grails View Generation</title>
		<link>http://www.caffeinated.at/2009/09/visual-indicating-constraints-in-grails-view-generation/</link>
		<comments>http://www.caffeinated.at/2009/09/visual-indicating-constraints-in-grails-view-generation/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 18:43:18 +0000</pubDate>
		<dc:creator>Flo</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.caffeinated.at/?p=137</guid>
		<description><![CDATA[There was thread in the gr8forum recently regarding assigning css classes on property input fields depending on associated constraints. I think this is a nice idea and played around a bit and it turned out that this is quite simple. Here is my solution without changing grails source code.
At first you have to install Artifact [...]]]></description>
			<content:encoded><![CDATA[<p>There was thread in the <a href="http://gr8forums.org/viewtopic.php?f=12&amp;t=22">gr8forum</a> recently regarding assigning css classes on property input fields depending on associated constraints. I think this is a nice idea and played around a bit and it turned out that this is quite simple. Here is my solution without changing grails source code.</p>
<p>At first you have to install <a href="http://grails.org/Artifact+and+Scaffolding+Templates">Artifact and Scaffolding Templates</a> using:</p>
<p><code>grails install-templates</code></p>
<p>This will install the templates that will be used for static scaffolding to <em>src\templates</em>.<br />
Now you can customize them by simply editing the appropriate file, e.g., <em>\src\templates\scaffolding\Controller.groovy</em> if you want to change the Controller template.</p>
<p>At first I define for which Constraints I care, e.g.,</p>
<pre class="brush: java;">
def iCareAbout = [org.codehaus.groovy.grails.validation.ConstrainedProperty.BLANK_CONSTRAINT, org.codehaus.groovy.grails.validation.ConstrainedProperty.NULLABLE_CONSTRAINT]
</pre>
<p>A property with constraints applied is represented as <a href="http://grails.org/doc/1.1.1/api/org/codehaus/groovy/grails/validation/ConstrainedProperty.html">ConstrainedProperty</a>. There is a method name called getAppliedConstraints where you get a Map of applied constraints to that property. Then you need to filter out the ones you care about.</p>
<p>Base class for all Constraints is <a href="http://grails.org/doc/1.1.1/api/org/codehaus/groovy/grails/validation/AbstractConstraint.html">AbstractConstraint</a> but there are subclasses for special constraints like <a href="http://grails.org/doc/1.1.1/api/index.html?org/codehaus/groovy/grails/validation/AbstractVetoingConstraint.html">AbstractVetoingConstraint</a> for nullable and blank and <a href="http://grails.org/doc/1.1.1/api/index.html?org/codehaus/groovy/grails/orm/hibernate/validation/AbstractPersistentConstraint.html">AbstractPersistentConstraint</a> for unique constraint that may need access to database (for generating id on some databases).</p>
<p>Alltogether this looks like:</p>
<pre class="brush: java;">
cp.getAppliedConstraints().findAll{i -&gt; iCareAbout.contains(i.name) }.each { it.each { print it.constraintParameter?&quot; &quot; + it.name:&quot; not&quot; + it.name } }
</pre>
<p>This iterates over the constraints you care about and looks at the constraintParameter, which is a Boolean (at least for blank and nullable), is set. If it is set it prints the name of the constraint, if not it prints &#8220;not&#8221; + the name.</p>
<p>This enables you to style the elements later through css classes.</p>
<pre class="brush: java;">
&lt;tr class=&quot;prop&lt;% cp.getAppliedConstraints().findAll{i -&gt; iCareAbout.contains(i.name) }.each { it.each { print it.constraintParameter?&quot; &quot; + it.name:&quot; not&quot; + it.name } } %&gt;&quot;&gt;
	...
&lt;/tr&gt;
</pre>
<p>The full file can be downloaded <a href="http://www.caffeinated.at/wp-content/uploads/2009/09/create.gsp">here</a>.</p>
<p>For a Domain class like</p>
<pre class="brush: java;">
class Book {
	String name
	Boolean inLibrary

	static constraints = {
		name(blank: false, matches:&quot;[a-zA-Z]+&quot;)
		inLibrary(nullable: false)
		}

}
</pre>
<p>The output would look like:</p>
<pre class="brush: xml;">
&lt;tr class=&quot;prop notblank notnullable&quot;&gt;
	&lt;td valign=&quot;top&quot; class=&quot;name&quot;&gt;
		&lt;label for=&quot;name&quot;&gt;Name:&lt;/label&gt;
	&lt;/td&gt;
	...
&lt;/tr&gt; 

&lt;tr class=&quot;prop notnullable&quot;&gt;
	&lt;td valign=&quot;top&quot; class=&quot;name&quot;&gt;
		&lt;label for=&quot;inLibrary&quot;&gt;In Library:&lt;/label&gt;
	&lt;/td&gt;
	...
&lt;/tr&gt;
</pre>
<p>Notice the not nullable constraints applied automatically and the matches constraint is not taken into account.</p>
<p>BTW: There is also a open issue in the JIRA about that <a href="http://jira.codehaus.org/browse/GRAILS-270">http://jira.codehaus.org/browse/GRAILS-270</a> so if you are interested then you can watch and vote it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caffeinated.at/2009/09/visual-indicating-constraints-in-grails-view-generation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clearing Console in Cygwin</title>
		<link>http://www.caffeinated.at/2009/09/clearing-console-in-cygwin/</link>
		<comments>http://www.caffeinated.at/2009/09/clearing-console-in-cygwin/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 18:58:28 +0000</pubDate>
		<dc:creator>Flo</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[linux howto cygwin clear]]></category>

		<guid isPermaLink="false">http://www.caffeinated.at/?p=136</guid>
		<description><![CDATA[Just a short one but hopefully helpful!
I&#8217;m working a lot on Windows at the moment but I have Cygwin installed as Unix environment, e.g., for working with git scm.
One thing I thing I was missing is that I could not clear the console with &#8220;cls&#8221; which was pretty annoying.
After doing a little research I figured [...]]]></description>
			<content:encoded><![CDATA[<p>Just a short one but hopefully helpful!</p>
<p>I&#8217;m working a lot on Windows at the moment but I have Cygwin installed as Unix environment, e.g., for working with git scm.<br />
One thing I thing I was missing is that I could not clear the console with &#8220;cls&#8221; which was pretty annoying.</p>
<p>After doing a little research I figured out how to fix that.</p>
<p>1. using CTRL &#8211; L<br />
2. defining an alias like </p>
<p><code>alias clear='cmd /c cls'</code></p>
<p>If you just type it in a cygwin shell it will only be available for the current session. </p>
<p>If you want to make this alias persistent you need to edit ~/.bashrc with your favourite editor and add it. </p>
<p>You will also find many other predefined aliases there which are commented out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caffeinated.at/2009/09/clearing-console-in-cygwin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ClipX Clipboard Manager</title>
		<link>http://www.caffeinated.at/2009/09/clipx-clipboard-manager/</link>
		<comments>http://www.caffeinated.at/2009/09/clipx-clipboard-manager/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 18:57:43 +0000</pubDate>
		<dc:creator>Flo</dc:creator>
				<category><![CDATA[programs]]></category>

		<guid isPermaLink="false">http://www.caffeinated.at/?p=77</guid>
		<description><![CDATA[I&#8217;d like to introduce you to my favourite program today!
I pretty use the clipboard a lot as a temporary storage. Unfortunately the default clipboard is limited to one entry.
There&#8217;s an really awesome program out there called ClipX.
ClipX is a tiny clipboard history manager. It is sweet, it is free, use it.
So how does it work? [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d like to introduce you to my favourite program today!</p>
<p>I pretty use the clipboard a lot as a temporary storage. Unfortunately the default clipboard is limited to one entry.<br />
There&#8217;s an really awesome program out there called <a href="http://www.bluemars.org/clipx/">ClipX</a>.</p>
<blockquote><p>ClipX is a tiny clipboard history manager. It is sweet, it is free, use it.</p></blockquote>
<p>So how does it work? The good thing is that basically everything stays the same. You keep using STRG C and STRG V for default copy &#038; paste.<br />
But you can define an alternative paste combination (I used STRG SHIFT V) to get that small popup menu and see a history of the last 10 entries, but you can configure that.<br/><br/></p>
<p><img src="http://www.bluemars.org/clipx/clipx-inplace.png" alt="ClipX in Action (http://www.bluemars.org/)" /><br />
<br/><br/><br />
Once used to it&#8217;s really a great helper and I could not imagine working without this little friend. You can also save and preview multiple pictures.</p>
<p>There is also a plugin system but I did not use it very much, I only got one plugin to have sticky notes. There are also hotkeys to quickly do a google search.<br/><br/></p>
<p><a href="http://www.caffeinated.at/2009/09/clipx-clipboard-manager/clipxsettings/" rel="attachment wp-att-126"><img src="http://www.caffeinated.at/wp-content/uploads/2009/09/clipxsettings.PNG" alt="clipxsettings" title="clipxsettings" width="522" height="533" class="aligncenter size-full wp-image-126" /></a></p>
<p>Download it at at <a href="http://www.bluemars.org/clipx/">http://www.bluemars.org/clipx/</a> and give it a try, I&#8217;m sure you&#8217;ll love it!<br />
FYI: I stumbled upon it <a href="http://www.codinghorror.com/blog/archives/001041.html">Jeff Atwood&#8217;s excellent Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caffeinated.at/2009/09/clipx-clipboard-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unit Testing Delete Actions in Grails</title>
		<link>http://www.caffeinated.at/2009/09/unit-testing-delete-actions-in-grails/</link>
		<comments>http://www.caffeinated.at/2009/09/unit-testing-delete-actions-in-grails/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 18:57:27 +0000</pubDate>
		<dc:creator>Flo</dc:creator>
				<category><![CDATA[grails]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[unit]]></category>

		<guid isPermaLink="false">http://www.caffeinated.at/?p=80</guid>
		<description><![CDATA[I&#8217;m quite new in Groovy and Grails and wanted to share some of my lessons learned while
writing my first unit tests in Grails.
Fortunately at the time I started unit testing in Grails the Testing Plugin had already moved into Grails core.
The documentation is quite good so it&#8217;s a good idea to start there.
Today I had [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m quite new in Groovy and Grails and wanted to share some of my lessons learned while<br />
writing my first unit tests in Grails.</p>
<p>Fortunately at the time I started unit testing in Grails the <a href="http://www.grails.org/Testing+Plugin">Testing Plugin</a> had already moved into Grails core.<br />
The documentation is quite good so it&#8217;s a good idea to start there.</p>
<p>Today I had a little problem testing the delete method on a Controller. Let&#8217;s say I have a Domain class Song which looks like</p>
<pre class="brush: java;">
//  Song.groovy
class Song {
    String name =&quot;&quot;
}
</pre>
<p>I have a method in my Controller that deletes a Song like the delete action from static scaffolding. After calling the action I want to make sure that my count of Songs has decreased.<br />
My first attempt looked like:</p>
<pre class="brush: java;">
// SongTests.groovy
class SongTests extends GrailsUnitTestCase {

    def testSongs
    Song s1, s2

    protected void setUp() {
        super.setUp()
        s1 = new Song(name: &quot;Song 1&quot;)
        s2 = new Song(name: &quot;Song 2&quot;)
        testSongs = [s1, s2]
        mockDomain(Song, testSongs)
    }

    void testDelete() {
        int oldSize = testSongs.size()
        s1.delete() // Note: Normally this would happen somewhere in the controller action.
        assertEquals oldSize - 1, testSongs.size()
    }
}
</pre>
<p>But this test struggles to pass. I did some <em>println</em>&#8217;s and looked at the <em>testSongs</em> List and noticed that it did not change. After doing some research I found the cause of my problem in MockUtils.groovy</p>
<pre class="brush: java;">
//  MockUtils.groovy
....
    static GrailsDomainClass mockDomain(Class clazz, Map errorsMap, List testInstances = []) {

        ....
        def rootInstances = testInstances.findAll { clazz.isInstance(it) } // findAll creates a new List!!!
        def childInstances = testInstances.findAll { clazz.isInstance(it) &amp;&amp; it.class != clazz }.groupBy { it.class }

        TEST_INSTANCES[clazz] = rootInstances
        addDynamicFinders(clazz, rootInstances)
        addGetMethods(clazz, dc, rootInstances)
        addCountMethods(clazz, dc, rootInstances)
        addListMethod(clazz, rootInstances)
        addValidateMethod(clazz, dc, errorsMap, rootInstances)
        addDynamicInstanceMethods(clazz, rootInstances)
        addOtherStaticMethods(clazz, rootInstances)
...
}

private static void addDynamicInstanceMethods(Class clazz, List testInstances) {
...
        // Add delete() method.
        clazz.metaClass.delete = { Map args = [:] -&gt;
            for (int i in 0..&lt;testInstances.size()) {
                if (testInstances[i] == delegate) {
                    testInstances.remove(i)
                    break;
                }
            }
        }
...
}
</pre>
<p>The problem was, that findAll creates a new list. Since delete just removes the element from the internal list, the original list keeps passed in as second parameter to the <em>mockFor</em> method stays<br />
untouched.</p>
<p>With this in mind the updated test looked like:</p>
<pre class="brush: java;">
    void testDelete() {
        int oldSize = Song.count()
        s1.delete()
        assertEquals oldSize - 1, Song.count()
    }
</pre>
<p>Which works perfectly.<br />
If you are just getting started too I would recommend you the following sites which give a good introduction to this topic:</p>
<p>The Definitive Guide to Grails Book from Graeme Rocher and Jeff Brown:<br />
<a href="http://www.amazon.de/Definitive-Guide-Grails-Experts-Voice/dp/1590597583">http://www.amazon.de/Definitive-Guide-Grails-Experts-Voice/dp/1590597583</a></p>
<p>Glen Smith&#8217;s Blog &#8211; MockFor(March) Series:<br />
<a href="http://blogs.bytecode.com.au/glen/2008/03/04/mockfor-march---overcoming-grails-testing-inertia.html">http://blogs.bytecode.com.au/glen/2008/03/04/mockfor-march&#8212;overcoming-grails-testing-inertia.html</a><br />
<a href="http://blogs.bytecode.com.au/glen/2008/03/07/mockfor-march---unit-testing-grails-taglibs.html">http://blogs.bytecode.com.au/glen/2008/03/07/mockfor-march&#8212;unit-testing-grails-taglibs.html</a><br />
<a href="http://blogs.bytecode.com.au/glen/2008/03/12/mockfor-march---unit-testing-grails-controllers.html">http://blogs.bytecode.com.au/glen/2008/03/12/mockfor-march&#8212;unit-testing-grails-controllers.html</a><br />
<a href="http://blogs.bytecode.com.au/glen/2008/03/27/mockfor-march---unit-testing-grails-services.html">http://blogs.bytecode.com.au/glen/2008/03/27/mockfor-march&#8212;unit-testing-grails-services.html</a></p>
<p>Groovy Testing guide:<br />
<a href="http://docs.codehaus.org/display/GROOVY/Testing+Guide">http://docs.codehaus.org/display/GROOVY/Testing+Guide</a></p>
<p>Make.Go.Now &#8211; Ode to MockFor(March)<br />
<a href="http://www.make-go-now.com/2009/03/05/ode-to-mockformarch-part-1-testing-constraints/">http://www.make-go-now.com/2009/03/05/ode-to-mockformarch-part-1-testing-constraints/</a><br />
<a href="http://www.make-go-now.com/2009/04/17/ode-to-mockformarch-part-2-mockdomain/">http://www.make-go-now.com/2009/04/17/ode-to-mockformarch-part-2-mockdomain/</a></p>
<p>IBM developerWorks:<br />
<a href="http://www.ibm.com/developerworks/java/library/j-grails10148/index.html">Mastering Grails: Testing your Grails application</a><br />
<a href="http://www.ibm.com/developerworks/views/java/libraryview.jsp?search_by=mastering+grails">Mastering Grails Series</a></p>
<p>Delicous in general and my stream<br />
<a href="http://delicious.com/">http://delicious.com/</a><br />
<a href="http://delicious.com/fsalbrechter">http://delicious.com/fsalbrechter</a></p>
<p>If you have any suggestions or found an error I&#8217;d be happy if you drop me a line.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caffeinated.at/2009/09/unit-testing-delete-actions-in-grails/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Restore Last Viewed Page in Adobe Reader and Foxit Reader</title>
		<link>http://www.caffeinated.at/2009/08/restore-last-viewed-page-in-adobe-reader-and-foxit-reader/</link>
		<comments>http://www.caffeinated.at/2009/08/restore-last-viewed-page-in-adobe-reader-and-foxit-reader/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 15:06:21 +0000</pubDate>
		<dc:creator>Flo</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[foxit]]></category>
		<category><![CDATA[last]]></category>
		<category><![CDATA[page]]></category>
		<category><![CDATA[restore]]></category>

		<guid isPermaLink="false">http://www.caffeinated.at/?p=71</guid>
		<description><![CDATA[Have you ever had the problem that you can&#8217;t remember at which page you stopped reading a PDF?
There&#8217;s a nice option in Acrobat Reader:
Edit -&#62; Preferences -&#62; check Restore last view settings when reopening documents
Some other settings like zoom are also restored.
This feature can be activated in Foxit Reader too:
Edit -&#62; Preferences -&#62; General -&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever had the problem that you can&#8217;t remember at which page you stopped reading a PDF?</p>
<p>There&#8217;s a nice option in Acrobat Reader:</p>
<p><strong>Edit -&gt; Preferences -&gt; check Restore last view settings when reopening documents</strong></p>
<p>Some other settings like zoom are also restored.</p>
<p>This feature can be activated in Foxit Reader too:</p>
<p><strong>Edit -&gt; Preferences -&gt; General -&gt; History Group -&gt; check Restore last view settings when reopening</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caffeinated.at/2009/08/restore-last-viewed-page-in-adobe-reader-and-foxit-reader/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Disabling MySQL Foreign Key Constraints Checks</title>
		<link>http://www.caffeinated.at/2009/08/disabling-mysql-foreign-key-constraints-checks/</link>
		<comments>http://www.caffeinated.at/2009/08/disabling-mysql-foreign-key-constraints-checks/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 14:29:15 +0000</pubDate>
		<dc:creator>Flo</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.caffeinated.at/?p=60</guid>
		<description><![CDATA[Disabling Foreign Key Constraints Check]]></description>
			<content:encoded><![CDATA[<p>Today I had to update lots of rows in a table with a lot of foreign key constraints. The first try was to delete all records and insert the updated data resulting in:<br/><br />
<code>Cannot delete or update a parent row: a foreign key constraint fails (`foo/bar`, CONSTRAINT `FKED8DCCEF810F075A` FOREIGN KEY (`widget_id`) REFERENCES `widget` (`id`))</code><br/><br />
Instead of dropping all constraints, inserting the data and adding them again afterwards, there&#8217;s another more convenient method:</p>
<p>You can disable the foreign key checks with:</p>
<p><code>SET FOREIGN_KEY_CHECKS = 0</code></p>
<p>Enabling them again afterwards:</p>
<p><code>SET FOREIGN_KEY_CHECKS = 1</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caffeinated.at/2009/08/disabling-mysql-foreign-key-constraints-checks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A2D2 Vienna</title>
		<link>http://www.caffeinated.at/2009/05/a2d2-vienna/</link>
		<comments>http://www.caffeinated.at/2009/05/a2d2-vienna/#comments</comments>
		<pubDate>Wed, 13 May 2009 10:07:46 +0000</pubDate>
		<dc:creator>Flo</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[a2d2]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.caffeinated.at/?p=57</guid>
		<description><![CDATA[Last Thursday (7. May) I attended the A2D2 in Vienna, a conference for developers of Android.
Overall the conference was organized well and it was great fun and experience listening to the speakers. Android has some very nice features, like integrated SQLite database. Android also makes it possible to program in Java, although their bytecode is [...]]]></description>
			<content:encoded><![CDATA[<p>Last Thursday (7. May) I attended the A2D2 in Vienna, a conference for developers of Android.</p>
<p>Overall the conference was organized well and it was great fun and experience listening to the speakers. Android has some very nice features, like integrated SQLite database. Android also makes it possible to program in Java, although their bytecode is not compatible to the official Java VM, but you can use good old eclipse through plugins.</p>
<p>Fotos are available at <a title="http://www.flickr.com/photos/37929751@N07/" href="http://www.flickr.com/photos/37929751@N07/">http://www.flickr.com/photos/37929751@N07/</a><br />
SDK and Eclipse Plugin available at <a title="http://code.google.com/android/" href="http://code.google.com/android/">http://code.google.com/android/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caffeinated.at/2009/05/a2d2-vienna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brother HL 2030 on Ubuntu Intrepid</title>
		<link>http://www.caffeinated.at/2009/03/brother-hl-2030-ubuntu-intrepid/</link>
		<comments>http://www.caffeinated.at/2009/03/brother-hl-2030-ubuntu-intrepid/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 09:42:01 +0000</pubDate>
		<dc:creator>Flo</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[brother]]></category>
		<category><![CDATA[HL-2030]]></category>
		<category><![CDATA[hl1250]]></category>
		<category><![CDATA[hpijs]]></category>
		<category><![CDATA[printer]]></category>
		<category><![CDATA[problem]]></category>

		<guid isPermaLink="false">http://www.caffeinated.at/?p=51</guid>
		<description><![CDATA[I recently had problems with printing. The printer stopped after each page for a short period and started printing the next page after a short delay. This slowed down printing a lot and was very annoying. I use Ubuntu 8.10 and Brother HL-2030.
You can use the HL-2060 printer driver, but he automatic installation choses Brother [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had problems with printing. The printer stopped after each page for a short period and started printing the next page after a short delay. This slowed down printing a lot and was very annoying. I use Ubuntu 8.10 and Brother HL-2030.</p>
<p>You can use the HL-2060 printer driver, but he automatic installation choses Brother <strong>HL-2060 Foomatic/hpijs</strong>. I found a description of this driver at <a title="http://www.linuxprinting.org/show_driver.cgi?driver=hpijs" href="http://www.linuxprinting.org/show_driver.cgi?driver=hpijs">http://www.linuxprinting.org/show_driver.cgi?driver=hpijs</a>, which says that it&#8217;s a HP driver.</p>
<p>After switching to <strong>Brother HL-2060 Foomatic/hl1250</strong> as recommended, the printing works as expected.</p>
<p>This is a documented bug as well see e.g.: <a title="https://bugs.launchpad.net/ubuntu/+source/foomatic-db/+bug/137580" href="https://bugs.launchpad.net/ubuntu/+source/foomatic-db/+bug/137580">https://bugs.launchpad.net/ubuntu/+source/foomatic-db/+bug/137580</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caffeinated.at/2009/03/brother-hl-2030-ubuntu-intrepid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>T61p Ubuntu Enable Trackpoint Scrolling</title>
		<link>http://www.caffeinated.at/2009/03/t61p-ubuntu-enable-trackpoint-scrolling/</link>
		<comments>http://www.caffeinated.at/2009/03/t61p-ubuntu-enable-trackpoint-scrolling/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 16:28:18 +0000</pubDate>
		<dc:creator>Flo</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.caffeinated.at/?p=43</guid>
		<description><![CDATA[Nach kurzem Arbeiten mit Ubuntu habe ich festgestellt, dass mein geliebter Trackpoint nicht ganz so funktioniert.
Leider kann man standardmäßig nicht mit der dritten Maustaste + Trackpoint scrollen.
Nach kurzer Recherche hier die Lösung: http://www.thinkwiki.org/wiki/Installing_Ubuntu_6.04_on_a_ThinkPad_X41
]]></description>
			<content:encoded><![CDATA[<p>Nach kurzem Arbeiten mit Ubuntu habe ich festgestellt, dass mein geliebter Trackpoint nicht ganz so funktioniert.</p>
<p>Leider kann man standardmäßig nicht mit der dritten Maustaste + Trackpoint scrollen.</p>
<p>Nach kurzer Recherche hier die Lösung: <a title="http://www.thinkwiki.org/wiki/Installing_Ubuntu_6.04_on_a_ThinkPad_X41" href="http://www.thinkwiki.org/wiki/Installing_Ubuntu_6.04_on_a_ThinkPad_X41">http://www.thinkwiki.org/wiki/Installing_Ubuntu_6.04_on_a_ThinkPad_X41</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caffeinated.at/2009/03/t61p-ubuntu-enable-trackpoint-scrolling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu wiederherstellen</title>
		<link>http://www.caffeinated.at/2009/03/ubuntu-wiederherstellen/</link>
		<comments>http://www.caffeinated.at/2009/03/ubuntu-wiederherstellen/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 16:20:36 +0000</pubDate>
		<dc:creator>Flo</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.caffeinated.at/?p=37</guid>
		<description><![CDATA[Als bei meinem Versuch die IBM Recovery Suite zu installieren mein System aufeinmal nicht mehr bootete habe ich es klassisch mit fixmbr wiederhergestellt.
Leider ging dabei auch mein GRUB bootloader verloren. Es gibt aber einen einfachen und sicheren Weg das wiederherzustellen: https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows
]]></description>
			<content:encoded><![CDATA[<p>Als bei meinem Versuch die IBM Recovery Suite zu installieren mein System aufeinmal nicht mehr bootete habe ich es klassisch mit <strong><em>fixmbr</em></strong> wiederhergestellt.</p>
<p>Leider ging dabei auch mein GRUB bootloader verloren. Es gibt aber einen einfachen und sicheren Weg das wiederherzustellen:<a title="https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows" href="https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows"> https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caffeinated.at/2009/03/ubuntu-wiederherstellen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
