<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>epic fail!</title>
	<atom:link href="http://blog.simpsus.de/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.simpsus.de</link>
	<description>9 and 9 is 12. There are more than 10 kinds of people.</description>
	<pubDate>Tue, 13 Apr 2010 16:18:27 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Database abstraction in python applications</title>
		<link>http://blog.simpsus.de/?p=20</link>
		<comments>http://blog.simpsus.de/?p=20#comments</comments>
		<pubDate>Tue, 13 Apr 2010 16:18:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[(k)ubuntu]]></category>

		<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://blog.simpsus.de/?p=20</guid>
		<description><![CDATA[<br/>When it comes to application development, almost every time there is the need to store data persistently between application launches. Setting up a relational database schema is one thing, but maintaining the relation between the python objects and the database tables is a serious task. Luckily for me being a opportunistic developer, there are many [...]]]></description>
			<content:encoded><![CDATA[<br/><p>When it comes to application development, almost every time there is the need to store data persistently between application launches. Setting up a relational database schema is one thing, but maintaining the relation between the python objects and the database tables is a serious task. Luckily for me being a <a href="https://wiki.ubuntu.com/UbuntuOpportunisticDeveloperWeek">opportunistic developer</a>, there are <a href="http://wiki.python.org/moin/HigherLevelDatabaseProgramming">many frameworks</a> which aim at scratching that itch. In fact there are so many that I am having trouble chosing.</p>
<p>I tried <a href="http://elixir.ematia.de/trac/wiki">one</a> or two, but always found myself somewhat constrained, especially when it comes to schema evolution or trying to trigger gui updates from data events. So a little search over google code tells me that basically all the projects that make use of these frameworks are web applications. Canonical even developed <a href="https://storm.canonical.com/FrontPage">their own</a> for the use with <a href="https://launchpad.net/">launchpad</a> et all.</p>
<p>So my question to the world is twofold:</p>
<p>1) What do existing python desktop applications use? Do they all take care of the &#8220;M&#8221; in the MVC themselves? I find that hard to believe. It appears to me as I take one step back that actually I do not a database. I need persistent objects. <a href="http://www.exaile.org/">Exaile</a> uses <a href="http://docs.python.org/library/shelve.html">shelve</a>, but is does not look <a href="http://bazaar.launchpad.net/~exaile-devel/exaile/exaile-0.3.x/annotate/head:/xl/trax/trackdb.py">very handy to use</a>.</p>
<p>2) What shall I as an opportunistic developer use? Well&#8230; the opportunistic echo is <a href="http://couchdb.apache.org/index.html">couchDB</a>, but even in the projects <a href="http://couchdb.apache.org/docs/intro.html">intro page</a> it says quite clearly that it is not what I want.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.simpsus.de/?feed=rss2&amp;p=20</wfw:commentRss>
		</item>
		<item>
		<title>ChromeOS</title>
		<link>http://blog.simpsus.de/?p=19</link>
		<comments>http://blog.simpsus.de/?p=19#comments</comments>
		<pubDate>Thu, 09 Jul 2009 08:46:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[(k)ubuntu]]></category>

		<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://blog.simpsus.de/?p=19</guid>
		<description><![CDATA[<br/>It hasn&#8217;t gotten much attention in the ubuntu universe yet, but Google announced ChromeOS. The sparse information available tells you that it will be a google chrome browser running on top of a linux kernel running webapps. It will be free. As in speech.
It is targetet towards netbooks and &#8220;web oriented use&#8221;. All the apps [...]]]></description>
			<content:encoded><![CDATA[<br/><p>It hasn&#8217;t gotten much attention in the ubuntu universe yet, but Google announced<a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html"> ChromeOS</a>. The sparse <a href="http://chrome.blogspot.com/2009/07/google-chrome-os-faq.html">information</a> available tells you that it will be a google chrome browser running on top of a linux kernel running webapps. It will be free. As in speech.</p>
<p>It is targetet towards netbooks and &#8220;web oriented use&#8221;. All the apps will not be tied to the chrome browser, but will run in any other standard conformant browser.</p>
<p>Now we all know that google has already a decent set of web applications that mean to replace long existing tools (Office, webmail, calendar, instant messaging). The (german) online media sees this as the next big attack on microsoft, targeting windows.</p>
<p>This is where they lose me. For ChromeOS to replace windows (or any other currently used desktop OS), it either has to offer the same set of applications or all the users will use their PCs &#8220;web oriented&#8221; exclusivley in the future. I don&#8217;t see any of this happening.</p>
<p>So what is in it for &#8220;us&#8221;? Just some additional webapps that we can use or not? A fast OS that we can run on our netbooks? A new approach to computing that will make our current OS obsolete?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.simpsus.de/?feed=rss2&amp;p=19</wfw:commentRss>
		</item>
		<item>
		<title>Rotating UbuntuOne Logo</title>
		<link>http://blog.simpsus.de/?p=18</link>
		<comments>http://blog.simpsus.de/?p=18#comments</comments>
		<pubDate>Mon, 22 Jun 2009 22:31:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[(k)ubuntu]]></category>

		<category><![CDATA[(k)ub]]></category>

		<guid isPermaLink="false">http://blog.simpsus.de/?p=18</guid>
		<description><![CDATA[<br/>Is it just me or does the rotating logo jump one pixel to the left each 90 degrees??
]]></description>
			<content:encoded><![CDATA[<br/><p>Is it just me or does the rotating logo jump one pixel to the left each 90 degrees??</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.simpsus.de/?feed=rss2&amp;p=18</wfw:commentRss>
		</item>
		<item>
		<title>Empathy, antipathy and Instant Messaging</title>
		<link>http://blog.simpsus.de/?p=17</link>
		<comments>http://blog.simpsus.de/?p=17#comments</comments>
		<pubDate>Fri, 19 Jun 2009 10:15:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[(k)ubuntu]]></category>

		<guid isPermaLink="false">http://blog.simpsus.de/?p=17</guid>
		<description><![CDATA[<br/>It is not news that Empathy will replace Pidgin in Karmic. I do not want to comment on the decision, that has all been laid out epically. I want to join in the good spirit and try to get the best out of it. There is a PPA you can use to get the latest [...]]]></description>
			<content:encoded><![CDATA[<br/><p>It is not news that Empathy will replace Pidgin in Karmic. I do not want to comment on the decision, that has all been laid out epically. I want to <a href="http://pinstack.blogspot.com/2009/06/empathy-will-replace-pidgin-and-ekiga.html">join in the good spirit</a> and try to get the best out of it. There is a <a href="https://launchpad.net/~telepathy/+archive/ppa">PPA</a> you can use to get the latest release (I still don&#8217;t get the meshwork of Telepathy, Empathy, Gossip. Who is the specification reference implementation of whose UI taken frontend, backend protocol library multiprotocol instant messenger for gnome??)</p>
<p>My first impression: Slick, but how do I group the different accounts of one person?</p>
<p>Slightly after that: Oh, I can&#8217;t. Well, this is clearly a feature that should not be so hard to accomplish and is such an obvious disadvantage against pidgin that the devs will implement this soonish because it would be such easy karma from the users. Right? Epic NO!</p>
<p>There is a <a href="http://bugzilla.gnome.org/show_bug.cgi?id=460647">bug report</a> since 2 years. Over a dozen other bugs have been marked as duplicates, so there seems to be user attention for this. Throughout the bug report several things get clear:</p>
<ul>
<li>Implementing &#8220;Persons&#8221; in the right way across the whole bubble persons interact in is not trivial.</li>
<li>This Bug is far from beeing fixed, or even triaged</li>
<li>There is no clear drive (in terms of roadmap, responsibility)</li>
<li>There is no effort or aim to provide a workaround to &#8220;provide&#8221; this feature. Pidgin doesn&#8217;t have what the people project talks about either. But in pidgin I can group one person into one contact. I know that empathy is not a rewrite of pidgin. I know that empathy does not try to substitute pidgin 1:1</li>
</ul>
<p>So I kind of wonder? What can we do?</p>
<p>Accept that it will probably not be available for a long time? Of course, if it bugs me, I can fix it myself. As I am neither experienced nor know anything about this project, that is not the option?</p>
<p>But I want to come back to the spirit. What is the best way to hug Empathy so hard it will fix this bug?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.simpsus.de/?feed=rss2&amp;p=17</wfw:commentRss>
		</item>
		<item>
		<title>Releasing Software is hard&#8230;</title>
		<link>http://blog.simpsus.de/?p=15</link>
		<comments>http://blog.simpsus.de/?p=15#comments</comments>
		<pubDate>Sat, 17 Jan 2009 18:54:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[(k)ubuntu]]></category>

		<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://blog.simpsus.de/?p=15</guid>
		<description><![CDATA[<br/>The coders among us geeks will probably agree: The fuel that gets us going is the passion the create something new and see something grow that I created myself. Fuelled by that energy, you forget time, space and basic human needs while hacking on a cool feature. One catchy thing about passion is that it [...]]]></description>
			<content:encoded><![CDATA[<br/><p>The coders among us geeks will probably agree: The fuel that gets us going is the passion the create something new and see something grow that I created myself. Fuelled by that energy, you forget time, space and basic human needs while hacking on a cool feature. One catchy thing about passion is that it cannot be forced or bought. That is why software development for a commercial product is often not as fulfilling as hacking at home, in your private space and by your rules. What is the consequence of this?</p>
<p>You only contribute your time to the area that you enjoy most, maximizing the scratch for your geek itch. The outcome?</p>
<p>You start <a href="https://launchpad.net/pytower">several</a> <a href="https://launchpad.net/stocktracker">promosing</a> <a href="https://launchpad.net/blam">projects</a>, only to find yourself switching to the next one when your previous milestone has been reached or simply another topic offers something more &#8220;sexy&#8221; to work on than your current one. This behavior is perfectly okay. You don&#8217;t get paid, you do it in your free time and for fun. So if you maximize your fun, you use coding exactly in the way you wanted to, you have the most fun possible.</p>
<p>So by this you get to know new technology, your software design skills emerge and you replenish your energy with rewarding &#8220;it works!!&#8221; moments. Unfortunately, this does not ultimately lead to better software, because good software is far more than coded features.<br />
You have to do <a href="http://epydoc.sourceforge.net/">documentation</a>, bug triaging (filing first would be good), give some love to your release page/space.. Oh, no, wait! I went too fast. *Before* doing all that you need to define release critical milestones, agree on a common goal for your release and drive the development into a road where it is actually targeted towards your release milestones, i.e. not working on features that are for the next release (because they are so big they essentially break the whole functionality until they are finished). And there is our main point! You have to *drive* the development. That means, restraining it from its pure hedonistic purpose of maximizing the fun of the coder towards getting the coder to code something that is not in his focus of interest.</p>
<p>Now you could argue that the focus of the coder is to produce quality software that people can use, but out of my experience I have to say that this is too optimistic. You want fast and sexy results, rushes of adrenaline and &#8220;whuhuuu!&#8221; moments rather than editing 200 docstrings or writing an tutorial on how to use a special function.</p>
<p>So why am I whining about this? The reason is that I have hit rock-bottom with<a href="https://launchpad.net/pytower"> my dearest pet project</a>. It started of quick and we could &#8220;release&#8221; <a href="http://launchpad.net/pytower/0.1/0.1pre/+download/pyTower_0.1pre1_src.tar.gz">0.1</a> quite early. The reason for that is that it was clear that the choices where either to redesign the codebase of stop doing it. We did the former and were quickly back to what 0.1 provided with beeing able to extend it so easily and really &#8220;get going&#8221;. It was then that there was a magical moment where the enthusiasm just faded. We were near to getting 0.2 ready, but deep inside i wanted to start hacking on post 0.2 features rather than finishing up that release. On the other hand it was clear that <a href="http://blog.red-bean.com/sussman/?p=96">&#8220;release early, release often&#8221;</a> (metalink <img src='http://blog.simpsus.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) is not just phrase, but a necessity if you want to draw peoples attention to what we are doing. Especially if we are talking about a framework.<br />
So i tried *really* hard to get to the point:</p>
<ul>
<li> I created <a href="https://bugs.launchpad.net/pytower/+bugs?search=Search&amp;field.status=New&amp;field.status=Incomplete&amp;field.status=Confirmed&amp;field.status=Triaged&amp;field.status=In+Progress&amp;field.status=Fix+Committed">bug reports</a> for the 2 main showstopper bugs</li>
<li> I set up a <a href="http://pytower.simpsus.de">webpage</a> for the project</li>
<li> I wrote <a href="http://pytower.simpsus.de/tutorial/">tutorials</a>, documented the code, posted <a href="http://pytower.simpsus.de/screenshots/">screenshots</a>, I even <a href="http://pytower.simpsus.de/download/">released</a> the thing although I know that there is still much work to be done.</li>
</ul>
<p>Now I just don&#8217;t know what else to do. When you browse the intarwebs you often come along webistes of projects that are deprecated or no longer beeing developed. But they were active once. They had a (vibrant) community around them pushing the next release.</p>
<p>I want to learn something out of this:<br />
What can you do to prevent this? I mean there are many examples where small groups of people or even<a href="http://albertomilone.com/projects.html"> single persons</a> are producing great software for many release cycles.<br />
How do you actually drive the release of an starting open source project? There is no pressure. There is no way telling people what to do.<br />
Are the great projects that we see and use every day really just the gems that survived the strong selection of time and motivation? That would be a hard lesson for me to learn&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.simpsus.de/?feed=rss2&amp;p=15</wfw:commentRss>
		</item>
		<item>
		<title>Get to know a loco meme</title>
		<link>http://blog.simpsus.de/?p=16</link>
		<comments>http://blog.simpsus.de/?p=16#comments</comments>
		<pubDate>Tue, 13 Jan 2009 08:45:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[(k)ubuntu]]></category>

		<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://blog.simpsus.de/?p=16</guid>
		<description><![CDATA[<br/>Normally I don&#8217;t like those memes because they don&#8217;t deliver any valuable information, but that&#8217;s not my point. This one is different because you can look at the very recently taken photos of the people and compare them to their hackergotchi on the planet. We notice a few things:
Richard Johnson apparently never smiles.
Greg Grossmeier apparently [...]]]></description>
			<content:encoded><![CDATA[<br/><p>Normally I don&#8217;t like those memes because they don&#8217;t deliver any valuable information, but that&#8217;s not my point. This one is different because you can look at the very recently taken photos of the people and compare them to their hackergotchi on the planet. We notice a few things:</p>
<p><a href="http://blog.nixternal.com/2009.01.12/ubuntu-chicago/">Richard Johnson</a> apparently never smiles.<br />
<a href="http://blog.grossmeier.net/2009/01/12/ubuntu-michigan/">Greg Grossmeier</a> apparently only owns one wool cap.</p>
<p>What else do you notice?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.simpsus.de/?feed=rss2&amp;p=16</wfw:commentRss>
		</item>
		<item>
		<title>python docstrings</title>
		<link>http://blog.simpsus.de/?p=14</link>
		<comments>http://blog.simpsus.de/?p=14#comments</comments>
		<pubDate>Sun, 30 Nov 2008 10:57:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[(k)ubuntu]]></category>

		<category><![CDATA[Allgemein]]></category>

		<category><![CDATA[Tag hinzufügen]]></category>

		<guid isPermaLink="false">http://blog.simpsus.de/?p=14</guid>
		<description><![CDATA[<br/>[Update]I just figured out I had a terrible bug in the gedit plugin which caused the wizardy to work only once. This should be fixed now in 1.0b2[Update]
[Update]I find this script useful enough, so I created a gedit plugin for it and hosted is on google code[Update]
I work on a few little projects. When I [...]]]></description>
			<content:encoded><![CDATA[<br/><p>[<strong>Update</strong>]I just figured out I had a terrible bug in the gedit plugin which caused the wizardy to work only once. This should be fixed now in <a href="http://docstringwizard.googlecode.com/files/docstringWizard_1.0b2.tar.gz">1.0b2</a>[<strong>Update</strong>]</p>
<p>[<strong>Update</strong>]I find this script useful enough, so I created a gedit plugin for it and hosted is on <a href="http://code.google.com/p/docstringwizard/">google code</a>[<strong>Update</strong>]</p>
<p>I work on a <a href="https://launchpad.net/pytower">few little</a><a href="https://launchpad.net/stocktracker"> projects</a>. When I get going I focus solely on the new feature or on squashing that bug, but not on publishable code. This is a flow in my working process but just who I am. The consequence of that behavior is: I neglect proper documentation. And by proper documentation I mean <a href="http://epydoc.sourceforge.net/">epydoc</a> conforming docstrings.</p>
<p>When the time comes and you want to release something, especially when you want people to look at your code and work with it, you realise that you need proper documentation. So I sat down and started to write the docstrings. Writing documentation can actually be fun! What certainly is NO fun is writing the overhead: &#8220;&#8221;" to start the docstring and end it and @param and @type for each variable. There must be a way to avoid this boring and purely repetitive task. So I searched the intarwebs and, to my surprise, found nothing. While I still refuse to believe that everybody writes their docstrings on the fly, or uses an IDE das generates the stubs, my buddy and me also refused to write all the donkey code ourselves. So we started what I want to share with you:</p>
<p>A python script that inserts docstring stubs into a file. We used the oppurtunity to revive our<a href="http://xkcd.com/208/"> regular expression skills</a>. (Kudos to <a href="http://kodos.sourceforge.net/">Kodos</a>! If you want to develop a regex on the fly, Kodos is for you&#8230;).</p>
<p>So here goes:</p>
<pre lang="python" line=1>
import re

# fileNames to process
baseFile = "Game.py"
outputFile = "Game_enhanced.py"

# configuration parameters
# method parameters to skip
skip = ["self"]
# number of spaces to insert for identation
ident = 4

# we have to keep track of how many chars we already inserted because
# we are modifying the string while processing it
inserted = 0

def insert(original, new, pos):
    &#8220;&#8221;"
    inserts new into original at pos
    @type original: string
    @type new: string
    @type pos: integer
    &#8220;&#8221;"
    return original[:pos] + new + original[pos:]

def newline(current_ident):
    &#8220;&#8221;"
    returns \n with current_ident + global ident spaces attached
    @type current_ident: integer
    @param current_ident: the identation of the line we are wrapping
    &#8220;&#8221;"
    global ident
    res = &#8220;&#8221;
    for i in range(0,current_ident + ident):
        res += &#8221; &#8221;
    return &#8220;\n&#8221; + res

# regular expressions
method_pattern = re.compile(&#8217;.*def .*.&#8217;)
variable_pattern = re.compile(&#8217;[(].*[)]&#8216;)
variable_name_pattern = re.compile(&#8217;,')
docstring_pattern = re.compile(&#8217;\s*&#8221;"&#8221;&#8216;)

# read in the file to be processed
f = open(baseFile, &#8220;r&#8221;)
text = f.read()

# find all methods
method_iter = method_pattern.finditer(text)

# process each method
for item in method_iter:
    # the position of the docstring
    # here we have to take into account what has already been inserted
    pos = item.end() + inserted
    # the identation of the method is the distance from the beginning of the
    # line till the &#8220;d&#8221;
    current_ident = item.group().find(&#8221;d&#8221;)
    # test if there already is a docstring: the next non-whitespace should be &#8220;&#8221;"
    if docstring_pattern.match(text[pos:]):
        # debug/info notice on the konsole
        #print item.group(), &#8221; already has a docstring&#8221;
        pass
    else:
        variables = []
        #search vor the (&#8230;) section
        vars = variable_pattern.search(item.group())
        vars = vars.group()
        # get rid of the paranthesis
        vars = vars.replace(&#8217;(',&#8221;)
        vars = vars.replace(&#8217;)',&#8221;)
        # split the variables by commata
        for var in variable_name_pattern.split(vars):
            # get rid of spaces
            var = var.strip()
            # and use only the first word, we get rid of standard values
            var = var.partition(&#8221; &#8220;)[0]
            # test for exclusion
            if not var in skip:
                variables.append(var)
        # generate the docstring
        docstring = newline(current_ident) + &#8216;\&#8221;\&#8221;\&#8221;&#8216; + newline(current_ident)\
                    + &#8216;FIXME&#8217; + newline(current_ident)
        # add the @ lines
        for var in variables:
            docstring += &#8216;@param &#8216;+var+&#8217;:&#8217; + newline(current_ident)\
                        +&#8217;@type &#8216;+var+&#8217;:&#8217; + newline(current_ident)
        # close it
        docstring += &#8216;\&#8221;\&#8221;\&#8221;&#8216;

        #insert the docstring into the text
        text = insert(text, docstring, pos)
        # record how many chars have been inserted
        inserted += len(docstring)

# open the output file
fo = open(outputFile, &#8216;w&#8217;)
# write the output
fo.write(text)</pre>
<p>Now the trained eye notices a couple of things:</p>
<ul>
<li>It is neither very clever or complicated. All it does is search for a method declaration, check if a docstring is present, parse the variable names (stripping of keywords), generate a docstring with @param and @type lines and paste it to the text.</li>
<li>It completely ignores @return and @rtype stuff because when considering nested functions we quickly came to the insight that detecting returns is not trivial. The &#8220;return&#8221; of a function does neither have to be before the next &#8220;def&#8221; nor does the identation give any sufficient info. As this is the only information our script gives us, we skipped that. In order to properly detect the return stuff we would have to parse the whole method body (including any inner methods, i.e. we would have to parse everything till the ident matches the ident of the def again) and make a judgement which return belongs to which def based on all the idents in between those two. If between a def and a return there is another def, then the return belongs to the first if the ident of the return is lower than the ident of the second def.</li>
<li>It uses spaces and no tabs to do idents</li>
<li>It is not a usable module. Ideally, the thing would be a module which would provides a method to pass a list of files and some configuration stuff to.</li>
<li>Again: It&#8217;s simple!</li>
</ul>
<p>Comments and suggestions are very welcome. And I would love to have a &#8220;D&#8217;Oh!!&#8221; moment when somebody points me to where we could have achieved that in 5 minutes time&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.simpsus.de/?feed=rss2&amp;p=14</wfw:commentRss>
		</item>
		<item>
		<title>Denied by reign!</title>
		<link>http://blog.simpsus.de/?p=13</link>
		<comments>http://blog.simpsus.de/?p=13#comments</comments>
		<pubDate>Wed, 22 Oct 2008 08:18:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[(k)ubuntu]]></category>

		<category><![CDATA[Tag hinzufügen]]></category>

		<guid isPermaLink="false">http://blog.simpsus.de/?p=13</guid>
		<description><![CDATA[<br/>In case someone has not already heard it. Jono Bacon (our ubuntu community manager) released the first album of Severed Fifth, named &#8220;Denied by reign&#8221;.
As Jono has blogged before several times, this album is not just a  normal record, but the start of a new and exciting project.
I generally am into this kind of music, [...]]]></description>
			<content:encoded><![CDATA[<br/><p>In case someone has not already <a href="http://www.severedfifth.com/news/2008/10/denied-by-reign-now-available/">heard it</a>. <a href="http://www.jonobacon.org/">Jono Bacon</a> (our ubuntu community manager) released the first album of <a href="http://www.severedfifth.com">Severed Fifth</a>, named &#8220;Denied by reign&#8221;.</p>
<p>As Jono has blogged before several times, this album is not just a  normal record, but the start of a new and exciting project.</p>
<p>I generally am into this kind of music, and I must say I totally love the album. In terms of professionality and &#8220;sound&#8221; it is (at least to my ears) totally in sync with todays standards. What marks its style for me is the mix of &#8220;machine gun like double bass&#8221; and in contrast the clear and not so exagurated vocals. The result is a very smooth but never boring or soft sounding atmosphere.</p>
<p>And if you now bear in mind, that all instruments, vocals, writing, recording, mixing and producing where done by one guy, you can only say &#8220;wow&#8221;!</p>
<p>Rock on, Jono!</p>
<p>The only flaw for me: I generally don&#8217;t think that music should include statements on politics.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.simpsus.de/?feed=rss2&amp;p=13</wfw:commentRss>
		</item>
		<item>
		<title>GIMP 2.6</title>
		<link>http://blog.simpsus.de/?p=12</link>
		<comments>http://blog.simpsus.de/?p=12#comments</comments>
		<pubDate>Wed, 01 Oct 2008 16:55:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[(k)ubuntu]]></category>

		<guid isPermaLink="false">http://blog.simpsus.de/?p=12</guid>
		<description><![CDATA[<br/>GIMP 2.6 was released. It is all over the planet.
I found a link to a ppa for intrepid in the forum and I (as the guys in this thread) doubt that it will hit any official repo soon.
So, still waiting for the hardy deb&#8230;
]]></description>
			<content:encoded><![CDATA[<br/><p><a href="http://gimp.org/release-notes/gimp-2.6.html">GIMP 2.6 was released</a>. It is all over the <a href="http://planet.ubuntulinux.org">planet</a>.</p>
<p>I found a link to a <a href="https://launchpad.net/~c-korn/+archive">ppa for intrepid</a> in the <a href="http://ubuntuforums.org/showthread.php?p=5888118">forum</a> and I (as the guys in this thread) doubt that it will hit any official repo soon.</p>
<p>So, still waiting for the hardy deb&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.simpsus.de/?feed=rss2&amp;p=12</wfw:commentRss>
		</item>
		<item>
		<title>OpenGL WINE Games in hardy</title>
		<link>http://blog.simpsus.de/?p=11</link>
		<comments>http://blog.simpsus.de/?p=11#comments</comments>
		<pubDate>Sun, 07 Sep 2008 21:50:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[(k)ubuntu]]></category>

		<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://blog.simpsus.de/?p=11</guid>
		<description><![CDATA[<br/>I like to play an occasional game of dota, the famous Warcraft III - The Frozen Throne mod, with my friends. It works perfectly with wine since I can remember (so, probably feisty). You don&#8217;t even have to install it using wine, just launch your windows installation and your fine. In fact, I kept my [...]]]></description>
			<content:encoded><![CDATA[<br/><p>I like to play an occasional game of <a href="http://www.getdota.com/">dota</a>, the famous <a href="http://eu.blizzard.com/de/war3/">Warcraft III</a> - The Frozen Throne mod, with my friends. It works perfectly with <a href="http://appdb.winehq.org/objectManager.php?sClass=application&amp;iId=897">wine</a> since I can remember (so, probably feisty). You don&#8217;t even have to install it using wine, just launch your windows installation and your fine. In fact, I kept my initial Warcraft III installation all the time in my ~/.wine directory and never had any problems.</p>
<p>Yesterday, <a href="http://www.ktb-blogs.com/">a buddy of mine</a> asked me to play a round. Not to note that my perfomance would be rusty at best, upon starting up the game my screen went black and told me it was &#8220;out of range&#8221;. This usually happens when the refresh rate is higher than the monitor can handle. I tried several tweaks in the registry, but no luck. I then stumbled upon <a href="https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/202208">this bug</a> in launchpad against xorg that is excactly the same problem.</p>
<p>This is where I get confused: This bug has been openend quite some time ago and also some people have said that they are experiencing the same problem. Yet, the bug is in status &#8220;incomplete&#8221;. I commented that I have the same issue and attached my XOrg log. Now my question: Is that all I can do? What is the normal lifecycle of a bug? Is this problem just too uncommon, too little? What could I (as an unexperienced &#8220;bug triager&#8221;) do to help?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.simpsus.de/?feed=rss2&amp;p=11</wfw:commentRss>
		</item>
	</channel>
</rss>
