<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Sascha&#039;s Hideout</title>
	<atom:link href="http://saschpe.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://saschpe.wordpress.com</link>
	<description>A site about open source and personal opinion.</description>
	<lastBuildDate>Wed, 18 Jan 2012 14:29:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='saschpe.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Sascha&#039;s Hideout</title>
		<link>http://saschpe.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://saschpe.wordpress.com/osd.xml" title="Sascha&#039;s Hideout" />
	<atom:link rel='hub' href='http://saschpe.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Git: Only push some commits upstream</title>
		<link>http://saschpe.wordpress.com/2012/01/18/git-only-push-some-commits-upstream/</link>
		<comments>http://saschpe.wordpress.com/2012/01/18/git-only-push-some-commits-upstream/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 14:29:26 +0000</pubDate>
		<dc:creator>saschpe</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://saschpe.wordpress.com/?p=696</guid>
		<description><![CDATA[To me it happens quite frequently that I have several local commits (in a private Git checkout), of which I only want to push some upstream. One option is to use cherry-pick and extra branches. Today I found a more straightforward solution: git push origin $SHA_OF_LAST_COMMIT:master Git only pushes the commit specified by it&#8217;s hash [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=696&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>To me it happens quite frequently that I have several local commits (in a private Git checkout), of which I only want to push some upstream. One option is to use cherry-pick and extra branches. Today I found a more straightforward solution:</p>
<blockquote><p>git push origin $SHA_OF_LAST_COMMIT:master</p></blockquote>
<p>Git only pushes the commit specified by it&#8217;s hash sum and all it&#8217;s ancestors (on the current local branch) that aren&#8217;t yet upstream (on the <em>master</em> branch of the <em>origin</em> remote). Finally, <em>git rebase -i</em> can be used to consecutively rearrange the (local) commits you want to push. Much easier, no?</p>
<br />Filed under: <a href='http://saschpe.wordpress.com/category/opensource/'>OpenSource</a> Tagged: <a href='http://saschpe.wordpress.com/tag/git/'>Git</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saschpe.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saschpe.wordpress.com/696/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saschpe.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saschpe.wordpress.com/696/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saschpe.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saschpe.wordpress.com/696/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saschpe.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saschpe.wordpress.com/696/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saschpe.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saschpe.wordpress.com/696/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saschpe.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saschpe.wordpress.com/696/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saschpe.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saschpe.wordpress.com/696/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=696&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saschpe.wordpress.com/2012/01/18/git-only-push-some-commits-upstream/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2b23ead4e919c8310a4fb6fbd00a959c?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">saschpe</media:title>
		</media:content>
	</item>
		<item>
		<title>Two little Firefox search helpers</title>
		<link>http://saschpe.wordpress.com/2011/06/20/two-little-firefox-search-helpers/</link>
		<comments>http://saschpe.wordpress.com/2011/06/20/two-little-firefox-search-helpers/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 12:04:30 +0000</pubDate>
		<dc:creator>Sascha Peilicke</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[SUSE]]></category>
		<category><![CDATA[Bugzilla]]></category>
		<category><![CDATA[Fate]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Seach]]></category>

		<guid isPermaLink="false">http://saschpe.wordpress.com/?p=678</guid>
		<description><![CDATA[One thing I missed after switching from rekonq to Firefox are KDE&#8217;s web shortcuts. It turns out that Firefox allows something similar, you can set shortcuts for your registered search engines: Nothing new so far, it turned out that the only thing I missed was a search for Novell Bugzilla entries and for openSUSE&#8217;s feature [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=678&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One thing I missed after switching from <a href="http://rekonq.kde.org/">rekonq</a> to Firefox are KDE&#8217;s <a href="http://konqueror.kde.org/features/browser.php">web shortcuts</a>. It turns out that Firefox allows something similar, you can set shortcuts for your registered search engines:</p>
<p><a href="http://saschpe.files.wordpress.com/2011/06/kwscts.png"><img class="aligncenter size-full wp-image-679" title="Keyword shortcuts" src="http://saschpe.files.wordpress.com/2011/06/kwscts.png?w=497&#038;h=261" alt="" width="497" height="261" /></a></p>
<p>Nothing new so far, it turned out that the only thing I missed was a search for <a href="http://bugs.novell.com/">Novell Bugzilla</a> entries and for openSUSE&#8217;s feature database <a href="https://features.opensuse.org/">openFATE</a>:</p>
<ul>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/openfate/">openSUSE Features Search</a></li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/novell-bugzilla/">Novell Bugzilla Search</a></li>
</ul>
<p>When adding them to Firefox, you should set appropriate keyword shortcuts like in the above screenie. Then you can simply type &#8216;bnc 1&#8242; or &#8216;fate 10000&#8242; in the address bar and save some time <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />Filed under: <a href='http://saschpe.wordpress.com/category/opensource/'>OpenSource</a>, <a href='http://saschpe.wordpress.com/category/opensource/suse/'>SUSE</a> Tagged: <a href='http://saschpe.wordpress.com/tag/bugzilla/'>Bugzilla</a>, <a href='http://saschpe.wordpress.com/tag/fate/'>Fate</a>, <a href='http://saschpe.wordpress.com/tag/firefox/'>Firefox</a>, <a href='http://saschpe.wordpress.com/tag/seach/'>Seach</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saschpe.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saschpe.wordpress.com/678/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saschpe.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saschpe.wordpress.com/678/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saschpe.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saschpe.wordpress.com/678/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saschpe.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saschpe.wordpress.com/678/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saschpe.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saschpe.wordpress.com/678/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saschpe.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saschpe.wordpress.com/678/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saschpe.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saschpe.wordpress.com/678/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=678&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saschpe.wordpress.com/2011/06/20/two-little-firefox-search-helpers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a454b467e144836f9ef0d743d518f53d?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">saschpe</media:title>
		</media:content>

		<media:content url="http://saschpe.files.wordpress.com/2011/06/kwscts.png" medium="image">
			<media:title type="html">Keyword shortcuts</media:title>
		</media:content>
	</item>
		<item>
		<title>The times they are a changin&#8217;</title>
		<link>http://saschpe.wordpress.com/2011/05/30/669/</link>
		<comments>http://saschpe.wordpress.com/2011/05/30/669/#comments</comments>
		<pubDate>Mon, 30 May 2011 10:17:00 +0000</pubDate>
		<dc:creator>Sascha Peilicke</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[SUSE]]></category>
		<category><![CDATA[changelog]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[Packaging]]></category>
		<category><![CDATA[Spec file]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://saschpe.wordpress.com/?p=669</guid>
		<description><![CDATA[Everything changes, so do our packages. But change needs to be explained in order to become relevant. Regarding packaging, this involves the art of writing good changelog entries. Here is an example from an otherwise very capable packager: Spec files updates: Changes in License. Updates in Group:, Summary: and %description entries. Updates in %build section [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=669&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Everything changes, so do our packages. But change needs to be explained in order to become relevant. Regarding packaging, this involves the art of writing good changelog entries. Here is an example from an otherwise very capable packager:</p>
<ul>
<li>Spec files updates:</li>
<ul>
<li>Changes in License.</li>
<li>Updates in Group:, Summary: and %description entries.</li>
<li>Updates in %build section for lib64 compilation.</li>
<li>Minor other updates.</li>
</ul>
</ul>
<p>More often, a reviewer stumbles upon those classics:</p>
<ul>
<li>Fixed build</li>
<li>Fixed dependencies</li>
<li>Changed license to $FOO</li>
</ul>
<p>These lines surely took some time to write but they explain only what was changed, not why. The &#8216;what&#8217; is easily visible from the diff of the old and new package version (kindly provided by the Open Build Service), but it&#8217;s the &#8216;why&#8217; that matters. Your benevolent Factory review team kindly overlooks such insignificant matters most of the time, but you may leave your users baffled. Changelogs usually serve a purpose, for the package reviewer it&#8217;s &#8216;Why should I take the time to look at this at all and why does it belong into Factory?&#8217;. For the user it&#8217;s simply, &#8216;Dang, yet another update, why&#8217;s that for?&#8217;. You better provide some good answers for those questions or your carefully crafted fix may remain misjudged. As a reference you may use guides that others have written. They&#8217;re mostly about VCS commit messages, but it&#8217;s the same thing:</p>
<ul>
<li><a href="http://who-t.blogspot.com/2009/12/on-commit-messages.html">http://who-t.blogspot.com/2009/12/on-commit-messages.html</a></li>
<li><a href="http://lbrandy.com/blog/2009/03/writing-better-commit-messages/">http://lbrandy.com/blog/2009/03/writing-better-commit-messages</a></li>
</ul>
<p>Happy changelog writing!</p>
<br />Filed under: <a href='http://saschpe.wordpress.com/category/opensource/'>OpenSource</a>, <a href='http://saschpe.wordpress.com/category/opensource/suse/'>SUSE</a> Tagged: <a href='http://saschpe.wordpress.com/tag/changelog/'>changelog</a>, <a href='http://saschpe.wordpress.com/tag/opensuse/'>openSUSE</a>, <a href='http://saschpe.wordpress.com/tag/packaging/'>Packaging</a>, <a href='http://saschpe.wordpress.com/tag/spec-file/'>Spec file</a>, <a href='http://saschpe.wordpress.com/tag/writing/'>writing</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saschpe.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saschpe.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saschpe.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saschpe.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saschpe.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saschpe.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saschpe.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saschpe.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saschpe.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saschpe.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saschpe.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saschpe.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saschpe.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saschpe.wordpress.com/669/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=669&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saschpe.wordpress.com/2011/05/30/669/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a454b467e144836f9ef0d743d518f53d?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">saschpe</media:title>
		</media:content>
	</item>
		<item>
		<title>Importing Amarok statistics into Clementine</title>
		<link>http://saschpe.wordpress.com/2011/04/27/importing-amarok-statistics-into-clementine/</link>
		<comments>http://saschpe.wordpress.com/2011/04/27/importing-amarok-statistics-into-clementine/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 18:30:20 +0000</pubDate>
		<dc:creator>Sascha Peilicke</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Amarok]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Clementine]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Qt4]]></category>
		<category><![CDATA[Shell Script]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[sqlite3]]></category>

		<guid isPermaLink="false">http://saschpe.wordpress.com/?p=658</guid>
		<description><![CDATA[Recently, I switched from Amarok to Clementine for my daily music needs. Clementine is basically a port of the old Amarok 1.4 to Qt4 with some fancy features added. However, my old Amarok database is full of playcounts, scores and ratings for my music, so I wrote this little shell script to import it into Clementine&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=658&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently, I switched from <a href="http://amarok.kde.org/">Amarok</a> to <a href="http://www.clementine-player.org/">Clementine</a> for my daily music needs. Clementine is basically a port of the old Amarok 1.4 to Qt4 with some fancy features added. However, my old Amarok database is full of playcounts, scores and ratings for my music, so I wrote this little shell script to import it into Clementine&#8217;s <a href="http://sqlite.org/">SQLite</a> database:  <a href="https://github.com/saschpe/amarok2clementine">https://github.com/saschpe/amarok2clementine</a></p>
<p>It updates (i.e. overwrites) both scores and ratings and adds your old (Amarok) playcounts to the playcounts in Clementine. Note that it is not particularly fast as it uses neither MySQL&#8217;s nor SQLite&#8217;s C/C++ library interface but the respective command line tools instead. In case anything goes wrong, you will find a backup of your Clementine database in <em>/tmp/clementine.db.backup</em>. Enjoy!</p>
<br />Filed under: <a href='http://saschpe.wordpress.com/category/opensource/'>OpenSource</a> Tagged: <a href='http://saschpe.wordpress.com/tag/amarok/'>Amarok</a>, <a href='http://saschpe.wordpress.com/tag/bash/'>Bash</a>, <a href='http://saschpe.wordpress.com/tag/clementine/'>Clementine</a>, <a href='http://saschpe.wordpress.com/tag/git/'>Git</a>, <a href='http://saschpe.wordpress.com/tag/mysql/'>MySQL</a>, <a href='http://saschpe.wordpress.com/tag/qt4/'>Qt4</a>, <a href='http://saschpe.wordpress.com/tag/shell-script/'>Shell Script</a>, <a href='http://saschpe.wordpress.com/tag/sqlite/'>SQLite</a>, <a href='http://saschpe.wordpress.com/tag/sqlite3/'>sqlite3</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saschpe.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saschpe.wordpress.com/658/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saschpe.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saschpe.wordpress.com/658/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saschpe.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saschpe.wordpress.com/658/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saschpe.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saschpe.wordpress.com/658/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saschpe.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saschpe.wordpress.com/658/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saschpe.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saschpe.wordpress.com/658/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saschpe.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saschpe.wordpress.com/658/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=658&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saschpe.wordpress.com/2011/04/27/importing-amarok-statistics-into-clementine/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a454b467e144836f9ef0d743d518f53d?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">saschpe</media:title>
		</media:content>
	</item>
		<item>
		<title>Summer of Code approaches</title>
		<link>http://saschpe.wordpress.com/2011/02/21/summer-of-code-approaches/</link>
		<comments>http://saschpe.wordpress.com/2011/02/21/summer-of-code-approaches/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 17:22:53 +0000</pubDate>
		<dc:creator>Sascha Peilicke</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[SUSE]]></category>
		<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[Build Service]]></category>
		<category><![CDATA[FreeNode]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[IRC]]></category>
		<category><![CDATA[OBS]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[Pardus]]></category>
		<category><![CDATA[Summer of Code]]></category>

		<guid isPermaLink="false">http://saschpe.wordpress.com/?p=654</guid>
		<description><![CDATA[As in the past years, Google&#8217;s Summer of Code is going to happen again and we&#8217;re currently collecting ideas for openSUSE. So if you want to support your favorite distribution or seek a way to getting involved more deeply, be sure to check out our GSoC info page. Or, if you want it cross-distro, the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=654&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As in the past years, Google&#8217;s <a href="http://code.google.com/soc/">Summer of Code</a> is going to happen again and we&#8217;re currently collecting ideas for <a href="http://www.opensuse.org/en/">openSUSE</a>. So if you want to support your favorite distribution or seek a way to getting involved more deeply, be sure to check out our <a href="http://en.opensuse.org/openSUSE:GSOC_2011">GSoC info page</a>.</p>
<p>Or, if you want it cross-distro, the awesome <a href="http://en.wikipedia.org/wiki/OpenSUSE_Build_Service">Build Service</a> always needs some helping hands that are curious on how to expand it&#8217;s massive feature set <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . This includes adding support for currently unsupported distros like <a href="http://www.archlinux.org/">Arch Linux</a> or <a href="http://www.pardus.org.tr/eng/">Pardus</a> as well as making it&#8217;s web user interface more social.</p>
<p>Feel free to add you ideas to <a href="http://en.opensuse.org/openSUSE:GSOC_2011_Ideas">our list</a> and discuss them on our IRC channel (#opensuse-project on FreeNode).</p>
<br />Filed under: <a href='http://saschpe.wordpress.com/category/opensource/'>OpenSource</a>, <a href='http://saschpe.wordpress.com/category/opensource/suse/'>SUSE</a> Tagged: <a href='http://saschpe.wordpress.com/tag/arch-linux/'>Arch Linux</a>, <a href='http://saschpe.wordpress.com/tag/build-service/'>Build Service</a>, <a href='http://saschpe.wordpress.com/tag/freenode/'>FreeNode</a>, <a href='http://saschpe.wordpress.com/tag/gsoc/'>GSoC</a>, <a href='http://saschpe.wordpress.com/tag/irc/'>IRC</a>, <a href='http://saschpe.wordpress.com/tag/obs/'>OBS</a>, <a href='http://saschpe.wordpress.com/tag/opensuse/'>openSUSE</a>, <a href='http://saschpe.wordpress.com/tag/pardus/'>Pardus</a>, <a href='http://saschpe.wordpress.com/tag/summer-of-code/'>Summer of Code</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saschpe.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saschpe.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saschpe.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saschpe.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saschpe.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saschpe.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saschpe.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saschpe.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saschpe.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saschpe.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saschpe.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saschpe.wordpress.com/654/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saschpe.wordpress.com/654/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saschpe.wordpress.com/654/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=654&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saschpe.wordpress.com/2011/02/21/summer-of-code-approaches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a454b467e144836f9ef0d743d518f53d?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">saschpe</media:title>
		</media:content>
	</item>
		<item>
		<title>I can haz groups in deh Build Service!</title>
		<link>http://saschpe.wordpress.com/2011/02/18/i-can-haz-groups-in-deh-build-service/</link>
		<comments>http://saschpe.wordpress.com/2011/02/18/i-can-haz-groups-in-deh-build-service/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 10:07:12 +0000</pubDate>
		<dc:creator>Sascha Peilicke</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[SUSE]]></category>
		<category><![CDATA[Build Service]]></category>
		<category><![CDATA[OBS]]></category>
		<category><![CDATA[openSUSE]]></category>

		<guid isPermaLink="false">http://saschpe.wordpress.com/?p=647</guid>
		<description><![CDATA[A new feature of the upcomming openSUSE Build Service release is the revised role management for users and groups in the web user interface: As you can see, all the available roles are now directly exposed, allowing you to manage all users and groups for your project or package in one place. Currently, group creation [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=647&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A new feature of the upcomming openSUSE Build Service release is the revised role management for users and groups in the web user interface:</p>
<p><a href="http://saschpe.files.wordpress.com/2011/02/group-feature-1.png"><img class="aligncenter size-full wp-image-649" title="group-feature-1" src="http://saschpe.files.wordpress.com/2011/02/group-feature-1.png?w=497&#038;h=288" alt="" width="497" height="288" /></a>As you can see, all the available roles are now directly exposed, allowing you to manage all users and groups for your project or package in one place. Currently, group creation is reserved to administrators, but that is likely to change soon. So for now you have to bug your local OBS admin if you need a new group.</p>
<br />Filed under: <a href='http://saschpe.wordpress.com/category/opensource/'>OpenSource</a>, <a href='http://saschpe.wordpress.com/category/opensource/suse/'>SUSE</a> Tagged: <a href='http://saschpe.wordpress.com/tag/build-service/'>Build Service</a>, <a href='http://saschpe.wordpress.com/tag/obs/'>OBS</a>, <a href='http://saschpe.wordpress.com/tag/opensuse/'>openSUSE</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saschpe.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saschpe.wordpress.com/647/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saschpe.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saschpe.wordpress.com/647/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saschpe.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saschpe.wordpress.com/647/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saschpe.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saschpe.wordpress.com/647/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saschpe.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saschpe.wordpress.com/647/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saschpe.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saschpe.wordpress.com/647/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saschpe.wordpress.com/647/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saschpe.wordpress.com/647/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=647&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saschpe.wordpress.com/2011/02/18/i-can-haz-groups-in-deh-build-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a454b467e144836f9ef0d743d518f53d?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">saschpe</media:title>
		</media:content>

		<media:content url="http://saschpe.files.wordpress.com/2011/02/group-feature-1.png" medium="image">
			<media:title type="html">group-feature-1</media:title>
		</media:content>
	</item>
		<item>
		<title>On splitting strings</title>
		<link>http://saschpe.wordpress.com/2011/02/17/on-splitting-strings/</link>
		<comments>http://saschpe.wordpress.com/2011/02/17/on-splitting-strings/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 13:26:57 +0000</pubDate>
		<dc:creator>Sascha Peilicke</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://saschpe.wordpress.com/?p=637</guid>
		<description><![CDATA[Splitting strings is cool, but most languages have their subtle differences in how it is done. The three contenders are JavaScript, Python and Ruby. As an example, suppose you&#8217;re getting a string in the form &#8220;type_role_name&#8221; and you want to split it into type, role, name. The little twist here is that &#8216;name&#8217; can also [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=637&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Splitting strings is cool, but most languages have their subtle differences in how it is done. The three contenders are <a href="http://en.wikipedia.org/wiki/Javascript">JavaScript</a>, <a href="http://python.org/">Python</a> and <a href="http://www.ruby-lang.org/en/">Ruby</a>. As an example, suppose you&#8217;re getting a string in the form &#8220;type_role_name&#8221; and you want to split it into type, role, name. The little twist here is that &#8216;name&#8217; can also contain underscores. Let&#8217;s start reversed, it&#8217;s an easy job in Ruby:<br />
<code><br />
irb&gt; type,role,name = "user_admin_john_doe".split('_', 3)<br />
=&gt; ["user", "admin", "john_doe"]<br />
</code></p>
<p>Ruby&#8217;s split method want&#8217;s to know how much <strong>pieces</strong> you want.  Onwards with Python:<br />
<code><br />
&gt;&gt;&gt; type,role,name = 'user_admin_john_doe'.split('_', 2)<br />
('user', 'admin', 'john_doe')<br />
</code></p>
<p>I prefer this style slightly, as you have to express how many <strong>splits</strong> you want. The mindset here is that when you&#8217;re saying <em>&#8216;split twice&#8217;</em>, you&#8217;re expecting that the last element may contain the remainder of the string. By contrast, when saying, <em>&#8216;give me three pieces&#8217;</em>, it is unclear whether you want the remainder or not. Besides that, both are equally cool. Last but not least, how to do it in JavaScript? Well, turns out it&#8217;s rather messy:</p>
<p>&#8220;user_admin_john_doe&#8221;.split(&#8216;_&#8217;, 3)<br />
["user", "admin", "john"]</p>
<p>Altough this is somewhat similar to Ruby (i.e. <em>&#8216;gimme three pieces&#8217;</em>), it continues to split and discards the remaining stuff. Furthermore, JavaScript doesn&#8217;t support <em>multiple assigment</em> (could also be called <em>iterable unpacking</em>), so you have to store the result into an array first and assign individually. But more importantly, how to get &#8220;john_doe&#8221;? Turns out that you have to fiddle with splitting off substrings:<br />
<code><br />
str = "user_admin_john_doe"<br />
type = str.slice(0, str.indexOf('_'));<br />
str = str.slice(str.indexOf('_') + 1);<br />
role = str.slice(0, str.indexOf('_'));<br />
str = str.slice(str.indexOf('_') + 1);<br />
name = str<br />
</code></p>
<p>Not exactly what I would call elegant but it does the trick. I&#8217;d say, it&#8217;s a draw game between Python and Ruby, whereas JavaScript failed big time <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />Filed under: <a href='http://saschpe.wordpress.com/category/opensource/'>OpenSource</a> Tagged: <a href='http://saschpe.wordpress.com/tag/javascript/'>JavaScript</a>, <a href='http://saschpe.wordpress.com/tag/python/'>Python</a>, <a href='http://saschpe.wordpress.com/tag/ruby/'>Ruby</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saschpe.wordpress.com/637/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saschpe.wordpress.com/637/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saschpe.wordpress.com/637/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saschpe.wordpress.com/637/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saschpe.wordpress.com/637/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saschpe.wordpress.com/637/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saschpe.wordpress.com/637/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saschpe.wordpress.com/637/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saschpe.wordpress.com/637/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saschpe.wordpress.com/637/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saschpe.wordpress.com/637/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saschpe.wordpress.com/637/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saschpe.wordpress.com/637/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saschpe.wordpress.com/637/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=637&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saschpe.wordpress.com/2011/02/17/on-splitting-strings/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a454b467e144836f9ef0d743d518f53d?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">saschpe</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting the sources of your RPMs</title>
		<link>http://saschpe.wordpress.com/2011/02/17/getting-the-sources-of-your-rpms/</link>
		<comments>http://saschpe.wordpress.com/2011/02/17/getting-the-sources-of-your-rpms/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 08:45:30 +0000</pubDate>
		<dc:creator>Sascha Peilicke</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[SUSE]]></category>
		<category><![CDATA[Build Service]]></category>
		<category><![CDATA[Disturl]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[OBS]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[Source]]></category>

		<guid isPermaLink="false">http://saschpe.wordpress.com/?p=622</guid>
		<description><![CDATA[According to the GPL, you have to provide the source code of any (GPL-licensed) software you distribute (i.e. package and publish). Traditionally, this is satified by Linux distributions in several ways. Like any other package management system, RPM metadata contains the URL of the upstream project that created the software. This is where the (unmodified) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=622&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>According to the <a href="http://www.gnu.org/licenses/gpl.html">GPL</a>, you have to provide the source code of any (GPL-licensed) software you distribute (i.e. package and publish). Traditionally, this is satified by Linux distributions in several ways. Like any other package management system, RPM metadata contains the URL of the upstream project that created the software. This is where the (unmodified) source code can be retrieved.</p>
<p>But, packaging almost always means modifying the original sources. This could be in order to add patches or to make it conform better to certain (distro-specific) conventions. Therefore, distros offer a download repository where you can fetch source RPMs, i.e. packages which distribute the modified sources (containing the spec file, patches and additional files).</p>
<p>However, out of curiosity or to contribute back, you may want to know where exactly your package is maintained and developed. Luckily, packages that originate from one of the many Build Service instances (like <a href="https://build.opensuse.org/">build.opensuse.org</a>, <a href="http://packman.links2linux.com/">packman.links2linux.com</a> or <a href="http://build.meego.com/">build.meego.com</a>) have that information:</p>
<p><code>% rpm -q --qf "%{DISTURL}\n" bash   obs://build.opensuse.org/openSUSE:Factory/standard/fd6e76cd402226c76e65438a5e3df693-bash</code></p>
<p>Now you can copy this URL into your browser, replace &#8216;obs:&#8217; with &#8216;http:&#8217; and you should see something interesting <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Well, this is gonna be part of the next OBS release, for now you have to modify the URL slightly further to use the OBS test instance (stage):</p>
<p><a href="https://build.opensuse.org/stage/openSUSE:Factory/standard/fd6e76cd402226c76e65438a5e3df693-bash">https://build.opensuse.org/stage/openSUSE:Factory/standard/fd6e76cd402226c76e65438a5e3df693-bash</a></p>
<p>Additionally, you could simply put the disturl into the <a href="https://build.opensuse.org/stage/search">Build Service search</a> and it will come up with the same results. Now you can inspect the development history (revisions) of the package, see who did it and become a part of it! The only thing that is left would be a RPM patch allowing a saner syntax, like:</p>
<p><code>% rpm -q --disturl bash</code></p>
<br />Filed under: <a href='http://saschpe.wordpress.com/category/opensource/'>OpenSource</a>, <a href='http://saschpe.wordpress.com/category/opensource/suse/'>SUSE</a> Tagged: <a href='http://saschpe.wordpress.com/tag/build-service/'>Build Service</a>, <a href='http://saschpe.wordpress.com/tag/disturl/'>Disturl</a>, <a href='http://saschpe.wordpress.com/tag/gpl/'>GPL</a>, <a href='http://saschpe.wordpress.com/tag/obs/'>OBS</a>, <a href='http://saschpe.wordpress.com/tag/opensuse/'>openSUSE</a>, <a href='http://saschpe.wordpress.com/tag/rpm/'>RPM</a>, <a href='http://saschpe.wordpress.com/tag/source/'>Source</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saschpe.wordpress.com/622/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saschpe.wordpress.com/622/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saschpe.wordpress.com/622/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saschpe.wordpress.com/622/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saschpe.wordpress.com/622/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saschpe.wordpress.com/622/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saschpe.wordpress.com/622/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saschpe.wordpress.com/622/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saschpe.wordpress.com/622/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saschpe.wordpress.com/622/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saschpe.wordpress.com/622/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saschpe.wordpress.com/622/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saschpe.wordpress.com/622/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saschpe.wordpress.com/622/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=622&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saschpe.wordpress.com/2011/02/17/getting-the-sources-of-your-rpms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a454b467e144836f9ef0d743d518f53d?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">saschpe</media:title>
		</media:content>
	</item>
		<item>
		<title>Reclaim me blocks!</title>
		<link>http://saschpe.wordpress.com/2010/12/20/reclaim-me-blocks/</link>
		<comments>http://saschpe.wordpress.com/2010/12/20/reclaim-me-blocks/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 22:26:19 +0000</pubDate>
		<dc:creator>Sascha Peilicke</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[SUSE]]></category>
		<category><![CDATA[df]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[tune2fs]]></category>

		<guid isPermaLink="false">http://saschpe.wordpress.com/?p=606</guid>
		<description><![CDATA[Ever wondered why your filesystems fill up so quickly and why those new discs aren&#8217;t as big as advertised? While the latter may have several reasons (measuring units, the metric system or just damn lies), it may also be just an overly precautious default filesystem setting. On Linux, every filesystem gets some 5% of the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=606&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ever wondered why your filesystems fill up so quickly and why those new discs aren&#8217;t as big as advertised? While the latter may have several reasons (measuring units, the metric system or just damn lies), it may also be just an overly precautious default filesystem setting. On Linux, every filesystem gets some 5% of the available blocks reserved for the root user. This way, you can still work on your machine even if you forgot to rotate your log files Changing this default to something more realistic on today&#8217;s big hard discs may come with a nice surprises. Here&#8217;s my laptops root partition before:<br />
<code><br />
saschpe@minime:~% df -h<br />
Filesystem            Size  Used Avail Use% Mounted on<br />
/dev/sda1              168G  144G   16G  91% /<br />
</code></p>
<p>Now let&#8217;s do a courageous tune2fs changing this to 0.2% (more than enough to be able to login and remove logfiles):<br />
<code>sudo tune2fs -m 0.2 /dev/sda1</code></p>
<p>And check again:<br />
<code><br />
saschpe@minime:~/download% df -h<br />
Filesystem            Size  Used Avail Use% Mounted on<br />
/dev/sda1              168G  144G   24G  86% /<br />
</code><br />
How neat,  8 fresh new gigs of storage <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />Filed under: <a href='http://saschpe.wordpress.com/category/opensource/'>OpenSource</a>, <a href='http://saschpe.wordpress.com/category/opensource/suse/'>SUSE</a> Tagged: <a href='http://saschpe.wordpress.com/tag/df/'>df</a>, <a href='http://saschpe.wordpress.com/tag/filesystem/'>filesystem</a>, <a href='http://saschpe.wordpress.com/tag/tune2fs/'>tune2fs</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saschpe.wordpress.com/606/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saschpe.wordpress.com/606/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saschpe.wordpress.com/606/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saschpe.wordpress.com/606/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saschpe.wordpress.com/606/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saschpe.wordpress.com/606/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saschpe.wordpress.com/606/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saschpe.wordpress.com/606/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saschpe.wordpress.com/606/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saschpe.wordpress.com/606/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saschpe.wordpress.com/606/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saschpe.wordpress.com/606/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saschpe.wordpress.com/606/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saschpe.wordpress.com/606/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=606&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saschpe.wordpress.com/2010/12/20/reclaim-me-blocks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a454b467e144836f9ef0d743d518f53d?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">saschpe</media:title>
		</media:content>
	</item>
		<item>
		<title>Braindead Python packaging</title>
		<link>http://saschpe.wordpress.com/2010/12/12/braindead-python-packaging/</link>
		<comments>http://saschpe.wordpress.com/2010/12/12/braindead-python-packaging/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 15:58:04 +0000</pubDate>
		<dc:creator>Sascha Peilicke</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[SUSE]]></category>
		<category><![CDATA[darix]]></category>
		<category><![CDATA[distutils]]></category>
		<category><![CDATA[egg2spec]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[openSUSE Build Service]]></category>
		<category><![CDATA[osc]]></category>
		<category><![CDATA[py2pack]]></category>
		<category><![CDATA[PyPI]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[python-py2pack]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[SPEC]]></category>

		<guid isPermaLink="false">http://saschpe.wordpress.com/?p=586</guid>
		<description><![CDATA[As you all know, distributing and building packages with the openSUSE Build Service is easy and fun. The only party pooper is that you have to write a spec file to get your RPMs out there. Thanks to darix, we have a decent solution at least for Ruby packages: gem2rpm, a script which auto-generates RPM [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=586&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As you all know, distributing and building packages with the <a href="https://build.opensuse.org/">openSUSE Build Service</a> is easy and fun. The only party pooper is that you have to write a spec file to get your RPMs out there. Thanks to <a href="http://nordisch.org/">darix</a>, we have a decent solution at least for Ruby packages: <em>gem2rpm</em>, a script which auto-generates RPM spec files for Ruby gems. Ever wondered why we don&#8217;t have something similar for Python? Well, I did so too. Thus, after a half a week of hackery, I&#8217;d like to introduce <a href="http://pypi.python.org/pypi/py2pack">py2pack</a>, my take on braindead Python packaging. Here&#8217;s how it goes:</p>
<p>Lets suppose you want to package <a href="http://pypi.python.org/pypi/zope.interface">zope.interface</a> and you don&#8217;t know how it is named exactly or where to download from. First of all, you can search for it and download the source tarball automatically if you found the correct module:</p>
<p><code><br />
$ py2pack search zope.interface<br />
searching for module zope.interface...<br />
found zope.interface-3.6.1<br />
$ py2pack fetch zope.interface<br />
downloading package zope.interface-3.6.1...<br />
from http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.6.1.tar.gz<br />
</code></p>
<p>As a next step you may want to generate a package recipe for your distribution. For RPM-based distributions (let&#8217;s use openSUSE as an example), you want to generate a spec file named<em> python-zopeinterface.spec</em>:</p>
<p><code><br />
$ py2pack generate zope.interface -t opensuse.spec -f python-zopeinterface.spec<br />
</code></p>
<p>The above command has the parameter &#8220;-t opensuse.spec&#8221;, which is also the default (and thus optional). Well, this seems to imply that you can generate other files (and rumor has it that Debian support is on the way, too) <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Back to the topic, the source tarball and package recipe is all you need to generate the RPM file. This final step may depend on which distribution you use. Again, for openSUSE (and by using the openSUSE Build Service), the complete recipe becomes:</p>
<p><code><br />
$ osc mkpac python-zopeinterface<br />
$ cd python-zopeinterface<br />
$ py2pack fetch zope.interface<br />
$ py2pack generate zope.interface -f python-zopeinterface.spec<br />
$ osc build<br />
$ osc vc<br />
$ osc commit<br />
</code></p>
<p>The first line uses <a href="http://en.opensuse.org/Build_Service/CLI">osc</a>, the Build Service command line tool to generate a new package (preferrably in your Build Service home project).  The <em>py2pack</em> steps are known already. Finally, the package is tested (built locally), a changes (package changelog) file is generated (with &#8216;osc vc&#8217;) and the result is sent back to the Build Service for public consumption. However, depending on the Python module, you may have to adapt the generated spec file slightly. Py2pack is quite clever and tries to auto-generate as much as it can, but it depends on the metadata that the module provides. Thus, bad metadata implies mediocre results. To get further help about py2pack usage, issue the following command:</p>
<p><code><br />
$ py2pack help<br />
</code></p>
<p>To demonstrate its capabilities, I re-packaged some Python packages that are in devel:languages:python. <a href="https://build.opensuse.org/stage/project/monitor?package=&amp;project=home%3Asaschpe">As you can see</a> (when logged in to the Build Service), those package now build for all RPM-based distros we currently offer in the Build Service. Currently, you can download <em>py2pack</em> from the <a href="http://pypi.python.org/pypi/py2pack/">Python Package Index</a> or install the package <em>python-py2pack</em> from the <a href="http://download.opensuse.org/repositories/devel:/languages:/python/openSUSE_11.3/">devel:languages:python</a> repository.</p>
<p>Happy Python packaging!</p>
<br />Filed under: <a href='http://saschpe.wordpress.com/category/opensource/'>OpenSource</a>, <a href='http://saschpe.wordpress.com/category/opensource/suse/'>SUSE</a> Tagged: <a href='http://saschpe.wordpress.com/tag/darix/'>darix</a>, <a href='http://saschpe.wordpress.com/tag/distutils/'>distutils</a>, <a href='http://saschpe.wordpress.com/tag/egg2spec/'>egg2spec</a>, <a href='http://saschpe.wordpress.com/tag/fedora/'>Fedora</a>, <a href='http://saschpe.wordpress.com/tag/mandriva/'>Mandriva</a>, <a href='http://saschpe.wordpress.com/tag/opensuse/'>openSUSE</a>, <a href='http://saschpe.wordpress.com/tag/opensuse-build-service/'>openSUSE Build Service</a>, <a href='http://saschpe.wordpress.com/tag/osc/'>osc</a>, <a href='http://saschpe.wordpress.com/tag/py2pack/'>py2pack</a>, <a href='http://saschpe.wordpress.com/tag/pypi/'>PyPI</a>, <a href='http://saschpe.wordpress.com/tag/python/'>Python</a>, <a href='http://saschpe.wordpress.com/tag/python-py2pack/'>python-py2pack</a>, <a href='http://saschpe.wordpress.com/tag/rpm/'>RPM</a>, <a href='http://saschpe.wordpress.com/tag/ruby/'>Ruby</a>, <a href='http://saschpe.wordpress.com/tag/spec/'>SPEC</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saschpe.wordpress.com/586/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saschpe.wordpress.com/586/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saschpe.wordpress.com/586/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saschpe.wordpress.com/586/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saschpe.wordpress.com/586/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saschpe.wordpress.com/586/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saschpe.wordpress.com/586/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saschpe.wordpress.com/586/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saschpe.wordpress.com/586/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saschpe.wordpress.com/586/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saschpe.wordpress.com/586/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saschpe.wordpress.com/586/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saschpe.wordpress.com/586/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saschpe.wordpress.com/586/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saschpe.wordpress.com&amp;blog=3216416&amp;post=586&amp;subd=saschpe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saschpe.wordpress.com/2010/12/12/braindead-python-packaging/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a454b467e144836f9ef0d743d518f53d?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">saschpe</media:title>
		</media:content>
	</item>
	</channel>
</rss>
