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

<channel>
	<title>stick&#039;s corner &#187; buildservice</title>
	<atom:link href="http://stick.gk2.sk/blog/tag/buildservice/feed/" rel="self" type="application/rss+xml" />
	<link>http://stick.gk2.sk</link>
	<description>All composite phenomena are impermanent. All contaminated things and events are unsatisfactory.</description>
	<lastBuildDate>Wed, 01 Feb 2012 17:58:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Open Build Service &#8211; Introducing Download Page</title>
		<link>http://stick.gk2.sk/blog/2012/02/open-build-service-download-page/</link>
		<comments>http://stick.gk2.sk/blog/2012/02/open-build-service-download-page/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 16:12:16 +0000</pubDate>
		<dc:creator>Pavol Rusnak</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[buildservice]]></category>
		<category><![CDATA[opensuse]]></category>

		<guid isPermaLink="false">http://stick.gk2.sk/?p=2012</guid>
		<description><![CDATA[This is something I should&#8217;ve blogged about some time ago, but we wanted to make it a part of a bigger announcement, which did not happen so &#8230; here goes. One of the ideas how to help with Open Build Service adoption was to create some kind of download widget that would be possible to [...]]]></description>
			<content:encoded><![CDATA[<p>This is something I should&#8217;ve blogged about some time ago, but we wanted to make it a part of a bigger announcement, which did not happen so &#8230; here goes.</p>
<p>One of the ideas how to help with <a href="http://openbuildservice.org/">Open Build Service</a> adoption was to create some kind of download widget that would be possible to embed into upstream projects&#8217; download pages. After a few days of work I ended up with the page that is now available from this URL:</p>
<p><code>http://software.opensuse.org/download?project=PROJECT&amp;package=PACKAGE</code></p>
<p>It contains instructions for all distributions (like adding repo and installing the package), provides direct link to packages (which I recommend using only as a last resort solution), and for SUSE/openSUSE there are One-Click-Install buttons. The page also automatically preselects your distribution (if it&#8217;s possible to guess from user agent).</p>
<p>Go to <a href="http://software.opensuse.org/download?project=openSUSE:Tools&amp;package=osc">http://software.opensuse.org/download?project=openSUSE:Tools&amp;package=osc</a> to see the page in action. You can also embed the page using slightly modified URL into your download page:</p>
<p><code>&lt;iframe src="http://software.opensuse.org/download/iframe?project=openSUSE:Tools&amp;package=osc"&gt;&lt;/iframe&gt;</code></p>
<p><iframe width="600" height="600" src="http://software.opensuse.org/download/iframe?project=openSUSE:Tools&amp;package=osc"></iframe></p>
<p>If you want to modify the default color theme just use the following GET attributes (<code>acolor</code> &#8211; link color, <code>bcolor</code> &#8211; background color, <code>fcolor</code> &#8211; foreground color, <code>hcolor</code> &#8211; headers color). They accept standard HTML color values like 123 or 112233 (without the #).</p>
<p>PS: Some projects (like for example <a href="http://www.geogebra.org/cms/en/installers">Geogebra</a>) are already using this, although it was not yet properly announced. Feel free to join them if you think it&#8217;s a good idea!</p>
]]></content:encoded>
			<wfw:commentRss>http://stick.gk2.sk/blog/2012/02/open-build-service-download-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Version sorting in Ruby</title>
		<link>http://stick.gk2.sk/blog/2011/07/version-sorting-in-ruby/</link>
		<comments>http://stick.gk2.sk/blog/2011/07/version-sorting-in-ruby/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 13:59:53 +0000</pubDate>
		<dc:creator>Pavol Rusnak</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[buildservice]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[opensuse]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://stick.gk2.sk/?p=1923</guid>
		<description><![CDATA[Today I needed to implement &#8220;human sort&#8221; for a list of distributions we support in the Open Build Service. I wanted to sort them alphabetically but at the same time the newest ones at the top. I ended up with the following code: module Enumerable def version_sort sort_by { &#124;key,val&#124; key.gsub(/_SP/,'.').gsub(/_Factory/,'_100').split(/_/) \ .map { &#124;v&#124; [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Today I needed to implement &#8220;human sort&#8221; for a list of distributions we support in the <a href="http://openbuildservice.org/">Open Build Service</a>. I wanted to sort them alphabetically but at the same time the newest ones at the top. I ended up with the following code:</p>
<pre>module Enumerable
  def version_sort
    sort_by { |key,val|
       key.gsub(/_SP/,'.').gsub(/_Factory/,'_100').split(/_/) \
          .map { |v| v =~ /\A\d+(\.\d+)?\z/ ? -(v.to_f) : v.downcase }
    }
  end
end

@distros = [
  'openSUSE_Factory_PPC',
  'CentOS_6',
  'openSUSE_11.4',
  'RHEL_4',
  'Mandriva_2010',
  'RHEL_5',
  'Debian_5.0',
  'SLE_10',
  'Ubuntu_9.04',
  'Fedora_14',
  'RHEL_6',
  'Ubuntu_11.04',
  'SLE_11',
  'Mandriva_2009.1',
  'CentOS_5',
  'openSUSE_11.3',
  'Debian_6.0',
  'openSUSE_11.1_Evergreen',
  'Ubuntu_10.04',
  'ScientificLinux_6',
  'openSUSE_Factory',
  'Ubuntu_10.10',
  'SLE_11_SP1',
  'Fedora_15',
  'Ubuntu_8.04',
  'Ubuntu_9.10',
  'Mandriva_2010.1',
]

@distros.version_sort.each{ |v|
  puts v
}</pre>
<p style="text-align: justify;">which produces this list:</p>
<pre>CentOS_6
CentOS_5
Debian_6.0
Debian_5.0
Fedora_15
Fedora_14
Mandriva_2010.1
Mandriva_2010
Mandriva_2009.1
openSUSE_Factory
openSUSE_Factory_PPC
openSUSE_11.4
openSUSE_11.3
openSUSE_11.1_Evergreen
RHEL_6
RHEL_5
RHEL_4
ScientificLinux_6
SLE_11_SP1
SLE_11
SLE_10
Ubuntu_11.04
Ubuntu_10.10
Ubuntu_10.04
Ubuntu_9.10
Ubuntu_9.04
Ubuntu_8.04</pre>
<p style="text-align: justify;">Nifty, right? <img src='http://stick.gk2.sk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  The idea is simple. I use the <code>sort_by</code> function which pre-computes the values that are later compared. I replace some special values like &#8220;_Factory&#8221; or &#8220;_SP&#8221;, because I want &#8220;Factory&#8221; to be the newest (100 is higher than any other openSUSE version) and &#8220;11_SP1&#8243; to behave exactly like &#8220;11.1&#8243;. Then I split the key using the &#8220;_&#8221; delimiter and turn any string in form &#8220;digit&#8221; or &#8220;digit.digit&#8221; to float number. I change the sign, because I want versions to be sorted in the reverse direction. Good thing is that Ruby operator <code>&lt;=&gt;</code> works on arrays also, so I&#8217;m done with key modifications and the sort does the rest &#8230;</p>
<p style="text-align: justify;">PS: I used <code>|key,val|</code> in <code>sort_by</code> block because I want to use this function also to sort hashes by their key. This way it works both for arrays and hashes with any further modifications.</p>
]]></content:encoded>
			<wfw:commentRss>http://stick.gk2.sk/blog/2011/07/version-sorting-in-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Failgeeko</title>
		<link>http://stick.gk2.sk/blog/2010/05/failgeeko/</link>
		<comments>http://stick.gk2.sk/blog/2010/05/failgeeko/#comments</comments>
		<pubDate>Fri, 14 May 2010 08:32:11 +0000</pubDate>
		<dc:creator>Pavol Rusnak</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[buildservice]]></category>
		<category><![CDATA[geeko]]></category>
		<category><![CDATA[opensuse]]></category>

		<guid isPermaLink="false">http://stick.gk2.sk/?p=1391</guid>
		<description><![CDATA[Today morning I was working on some packages in openSUSE Build Service when suddenly OSC started to throw 403/503 error messages. I went to http://build.opensuse.org/ site to see this: Then it occurred to me &#8211; it would be much better if we had some funny image on this page to cheer user up, something like [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Today morning I was working on some packages in openSUSE Build Service when suddenly OSC started to throw 403/503 error messages. I went to <a href="http://build.opensuse.org/">http://build.opensuse.org/</a> site to see this:</p>
<p><a href="http://stick.gk2.sk/blog/wp-content/uploads/2010/05/outage.png"  rel="lightbox[1391]"><img class="aligncenter size-full wp-image-1392" style="margin: 16px;" title="outage" src="http://stick.gk2.sk/blog/wp-content/uploads/2010/05/outage.png" alt="" width="567" height="251" /></a></p>
<p style="text-align: justify;">Then it occurred to me &#8211; it would be much better if we had some funny image on this page to cheer user up, something like <a href="http://franciemedia.files.wordpress.com/2009/04/twitter_fail_whale.jpg"  rel="lightbox[1391]">twitter failwhale</a> or the one <a href="http://jimmac.musichall.cz/log/?p=798">Jimmac made for SUSE Studio</a>. I started Inkscape and after a couple of minutes I created this one:</p>
<p><a href="http://stick.gk2.sk/blog/wp-content/uploads/2010/05/failgeeko.png"  rel="lightbox[1391]"><img class="aligncenter size-full wp-image-1393" title="Failgeeko" src="http://stick.gk2.sk/blog/wp-content/uploads/2010/05/failgeeko.png" alt="" width="480" height="480" /></a></p>
<p style="text-align: justify;">I know it is far from perfect (I&#8217;m no artist), but feel free to grab the <a href="http://stick.gk2.sk/blog/wp-content/uploads/2010/05/failgeeko.svg">original SVG</a> and create a better one! We&#8217;ll include it in the 2.0 release of Build Service which will be using Bento theme by Robert. <img src='http://stick.gk2.sk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://stick.gk2.sk/blog/2010/05/failgeeko/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>openSUSE Xfce Live CDs</title>
		<link>http://stick.gk2.sk/blog/2010/03/opensuse-xfce-live-cds/</link>
		<comments>http://stick.gk2.sk/blog/2010/03/opensuse-xfce-live-cds/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 11:45:17 +0000</pubDate>
		<dc:creator>Pavol Rusnak</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[buildservice]]></category>
		<category><![CDATA[opensuse]]></category>
		<category><![CDATA[xfce]]></category>

		<guid isPermaLink="false">http://stick.gk2.sk/?p=1206</guid>
		<description><![CDATA[Yesterday Andrea aka anubisg1 announced the Live CDs for LXDE, which he built in Build Service with the help of Dmitry Serpokryl. It was a very easy task for me to replace LXDE packages with Xfce ones in kiwi definition, so I can present you the Xfce Live CDs! I&#8217;ve created an entry in our [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1207" style="margin-right: 8px; margin-bottom: 8px;" title="Xfce CD" src="http://stick.gk2.sk/blog/wp-content/uploads/2010/03/xfce_cd.png" alt="" width="128" height="128" /></p>
<p style="text-align: justify;">Yesterday Andrea aka anubisg1 <a href="http://lizards.opensuse.org/2010/03/13/opensuse-lxde-live-cds/">announced the Live CDs for LXDE</a>, which he built in Build Service with the help of Dmitry Serpokryl. It was a very easy task for me to replace LXDE packages with Xfce ones in kiwi definition, so I can present you <strong>the Xfce Live CDs</strong>!</p>
<p style="text-align: justify;">I&#8217;ve created an entry in our <a href="http://en.opensuse.org/Derivatives#Unofficial_updated_Xfce_live_CDs">Derivates</a> page and you can download the images from <a href="http://download.opensuse.org/repositories/X11:/xfce/images/iso/">this location</a>. The default user is <strong>linux</strong> with no password, user <strong>root</strong> uses the same empty password.</p>
<p style="text-align: justify;">I&#8217;ve tested the 32-bit image in VirtualBox and hit some issues (see below), the 64-bit image is untested at the moment. There&#8217;s where I would like you to ask for testing both images. Some points first:</p>
<ul>
<li>currently the Qt YaST is used (I had some issues with GTK one)</li>
<li>after the login a warning message is shown (about putting &#8220;linux&#8221; into /etc/hosts)</li>
<li>you can install the system to hard drive using the Live Installer icon on the desktop
<ul>
<li>unfortunately this blocks us from enabling autologin (installed system expects &#8220;linux&#8221; user which is present only on Live CD and login ends in loop, the bug in YaST is being worked on)</li>
<li>also some message dialogs about locked storage subsystem are shown during the installation steps</li>
</ul>
</li>
</ul>
<p style="text-align: justify;">If you hit a new issue, please report it to me. Also if you know how to fix any existing ones, please don&#8217;t hesitate as well! Thank you!</p>
]]></content:encoded>
			<wfw:commentRss>http://stick.gk2.sk/blog/2010/03/opensuse-xfce-live-cds/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Avatars in openSUSE Build Service</title>
		<link>http://stick.gk2.sk/blog/2009/12/avatars-in-opensuse-build-service/</link>
		<comments>http://stick.gk2.sk/blog/2009/12/avatars-in-opensuse-build-service/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 13:53:36 +0000</pubDate>
		<dc:creator>Pavol Rusnak</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[avatar]]></category>
		<category><![CDATA[buildservice]]></category>
		<category><![CDATA[opensuse]]></category>

		<guid isPermaLink="false">http://stick.gk2.sk/?p=972</guid>
		<description><![CDATA[Thanks to Tom we now have avatars in openSUSE Build Service, so e.g. Involved Users list looks like this: If you have a shady man instead of your nice photo, go to gravatar.com and setup your own one. Don&#8217;t forget to add the email address you are using in the Build Service!]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Thanks to <a href="http://digitalflow.de/">Tom</a> we now have avatars in openSUSE <a href="http://en.opensuse.org/Build_Service">Build Service</a>, so e.g. Involved Users list looks like this:</p>
<p><img class="aligncenter size-full wp-image-973" title="involved-users" src="http://stick.gk2.sk/blog/wp-content/uploads/2009/12/involved-users.png" alt="involved-users" width="190" height="534" /></p>
<p style="text-align: justify;">If you have a shady man instead of your nice photo, go to <a href="http://gravatar.com/">gravatar.com</a> and setup your own one. Don&#8217;t forget to add the email address you are using in the Build Service!</p>
]]></content:encoded>
			<wfw:commentRss>http://stick.gk2.sk/blog/2009/12/avatars-in-opensuse-build-service/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Handling requests directly in the Build Service web client</title>
		<link>http://stick.gk2.sk/blog/2009/11/handling-requests-directly-in-the-build-service-web-client/</link>
		<comments>http://stick.gk2.sk/blog/2009/11/handling-requests-directly-in-the-build-service-web-client/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 13:58:35 +0000</pubDate>
		<dc:creator>Pavol Rusnak</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[buildservice]]></category>
		<category><![CDATA[opensuse]]></category>

		<guid isPermaLink="false">http://stick.gk2.sk/?p=845</guid>
		<description><![CDATA[We had a listing of pending requests in the Build Service for a while. Unfortunately, it was mashed together with &#8220;My Projects&#8221; view and one couldn&#8217;t do anything with them. Few days ago, Jan Loeser added support for handling these requests directly in the web client. I liked the idea, so I decided to spend [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">We had a listing of pending requests in the Build Service for a while. Unfortunately, it was mashed together with &#8220;My Projects&#8221; view and one couldn&#8217;t do anything with them. Few days ago, Jan Loeser added support for handling these requests directly in the web client. I liked the idea, so I decided to spend some time on it, too. I moved the request listing to a separate page and added some nifty <a href="http://tango.freedesktop.org/">Tango icons</a> for the actions, so they wouldn&#8217;t take too much of the precious space. Also, the design doesn&#8217;t use tables-in-table anymore. You can view the result on the following image or directly in the <a href="https://build.opensuse.org/">Build Service</a>.</p>
<p style="text-align: center;"><a href="http://stick.gk2.sk/blog/wp-content/uploads/2009/11/listreq.png"  rel="lightbox[845]"><img class="size-medium wp-image-846 aligncenter" title="listreq" src="http://stick.gk2.sk/blog/wp-content/uploads/2009/11/listreq-300x293.png" alt="Handle requests in web client" width="300" height="293" /></a></p>
<p style="text-align: justify;">PS: The page still looks like it was designed by programmers, but as usual you are welcome to help us! <img src='http://stick.gk2.sk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://stick.gk2.sk/blog/2009/11/handling-requests-directly-in-the-build-service-web-client/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Daisy Plasmoid &#8211; A dock for KDE 4</title>
		<link>http://stick.gk2.sk/blog/2009/08/daisy-plasmoid-a-dock-for-kde-4/</link>
		<comments>http://stick.gk2.sk/blog/2009/08/daisy-plasmoid-a-dock-for-kde-4/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 23:38:28 +0000</pubDate>
		<dc:creator>Pavol Rusnak</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[buildservice]]></category>
		<category><![CDATA[daisy]]></category>
		<category><![CDATA[dock]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac os x]]></category>
		<category><![CDATA[opensuse]]></category>
		<category><![CDATA[plasmoid]]></category>

		<guid isPermaLink="false">http://stick.gk2.sk/?p=606</guid>
		<description><![CDATA[From time to time I use Mac OS X and I really like the application management with its dock. I came across several different implementations for KDE 4, but they were usually too immature and not very pretty. I was very surprised when I finally found a decent implementation called Daisy. I immediately dropped the [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">From time to time I use Mac OS X and I really like the application management with its <a href="http://en.wikipedia.org/wiki/Dock_(Mac_OS_X)">dock</a>. I came across several different implementations for KDE 4, but they were usually too immature and not very pretty. I was very surprised when I finally found a decent implementation called <a href="http://daisyplasma.freehostia.com/">Daisy</a>. I immediately dropped the default KDE taskbar and started to use Daisy in conjunction with desktop effects &#8220;Box Switch&#8221; and &#8220;Present Windows&#8221; a.k.a Exposé. You can look at my setup here (only bottom 64 pixels are shown, the rest is usually occupied with maximized application):</p>
<p><a href="http://stick.gk2.sk/blog/wp-content/uploads/2009/08/daisytray.jpg"  rel="lightbox[606]"><img class="aligncenter size-thumbnail wp-image-607" title="Daisy + Tray" src="http://stick.gk2.sk/blog/wp-content/uploads/2009/08/daisytray-512x55.jpg" alt="Daisy + Tray" width="512" height="55" /></a></p>
<p style="text-align: justify;">Daisy detects running instances of applications by Window Class, so it doesn&#8217;t try to start another instance, it rather activates the already running one. The experience is very similar to the Mac OS X one, but still, there are three problems:</p>
<ul>
<li>I still have to use the panel for Battery Monitor and Device Notifier widgets
<ul>
<li>Daisy could act as a host for other widgets and show them as icons</li>
</ul>
</li>
<li>Applications started manually (e.g. with KRunner) do not appear in the dock
<ul>
<li>Daisy could act as a taskbar and show icons of all running windows</li>
</ul>
</li>
<li>Applications like instant messengers or IRC clients use tray for notifications
<ul>
<li>Daisy could act as a tray and replace the launcher icon with the one added to tray by application after its start (so it will flash in the dock)</li>
</ul>
</li>
</ul>
<p style="text-align: justify;">Once these three points are met, Daisy will become a complete counterpart of Mac OS X dock. I&#8217;ve already written these suggestions to Lechio (upstream developer), but I&#8217;m not sure if this is the direction he wants to go and whether it is possible to do without any extra hacks at the KDE/Plasma side. (I&#8217;m sure that Lechio will accept any help <img src='http://stick.gk2.sk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ) Anyway, have a look at the <a href="http://daisyplasma.freehostia.com/">project page</a>, <a href="http://www.kde-look.org/content/show.php/Daisy?content=102077">KDE-Look page</a> or try the plasmoid from the Build Service. The package is called <code>plasmoid-daisy</code> and is present in <a href="http://download.opensuse.org/repositories/KDE:/KDE4:/Community/">KDE:KDE4:Community</a> project.</p>
]]></content:encoded>
			<wfw:commentRss>http://stick.gk2.sk/blog/2009/08/daisy-plasmoid-a-dock-for-kde-4/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Hackweek: Game Store</title>
		<link>http://stick.gk2.sk/blog/2009/07/hackweek-gamestore/</link>
		<comments>http://stick.gk2.sk/blog/2009/07/hackweek-gamestore/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 23:33:28 +0000</pubDate>
		<dc:creator>Pavol Rusnak</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[buildservice]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[gamestore]]></category>
		<category><![CDATA[opensuse]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[tryme]]></category>

		<guid isPermaLink="false">http://stick.gk2.sk/?p=565</guid>
		<description><![CDATA[This week we had Hack Week event when everyone was welcome to use Innovation time on FOSS projects or even start the new one! I spent most of the time on hacking the Game Store, which I introduced in my previous blogpost. The package is now ready for you in the Build Service. Simply use [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-578" title="hackweek4" src="http://stick.gk2.sk/blog/wp-content/uploads/2009/07/hackweek4.jpg" alt="hackweek4" width="125" height="125" /></p>
<p style="text-align: justify;">This week we had <a href="http://news.opensuse.org/2009/07/08/hack-week-iv-approaches/">Hack Week</a> event when everyone was welcome to use Innovation time on FOSS projects or even start the new one! I spent most of the time on hacking the <a href="http://en.opensuse.org/GameStore">Game Store</a>, which I introduced in my <a href="http://stick.gk2.sk/blog/2009/07/gamestore/">previous blogpost</a>. The package is now ready for you in the Build Service.</p>
<p style="text-align: justify;">Simply use the following One Click Install files (<a href="http://software.opensuse.org/ymp/games/openSUSE_11.0/gamestore.ymp">openSUSE 11.0</a>, <a href="http://software.opensuse.org/ymp/games/openSUSE_11.1/gamestore.ymp">openSUSE 11.1</a> and <a href="http://software.opensuse.org/ymp/games/openSUSE_Factory/gamestore.ymp">openSUSE Factory</a>) or add the <code>games</code> repository and install the <code>gamestore</code> package manually. Game Store uses this repository to download the games, so you should stay subscribed to it after the installation too.</p>
<p>As a bonus I created a very simple One Click Install files catalog which imitates the Game Store look. It is available at <a href="http://gamestore.gk2.sk/">gamestore.gk2.sk</a>.</p>
<p style="text-align: justify;">The screenshots for both versions (left Qt, right web) are here so you get the idea how it looks, but the best thing is to try it on your own! <img src='http://stick.gk2.sk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: center;"><a href="http://stick.gk2.sk/blog/wp-content/uploads/2009/07/gamestore-qt.png"  rel="lightbox[565]"><img class="size-thumbnail wp-image-566" title="GameStore (Qt)" src="http://stick.gk2.sk/blog/wp-content/uploads/2009/07/gamestore-qt-150x150.png" alt="GameStore (Qt)" width="150" height="150" /></a> <a href="http://stick.gk2.sk/blog/wp-content/uploads/2009/07/gamestore-web.png"  rel="lightbox[565]"><img class="size-thumbnail wp-image-567" title="GameStore (Web)" src="http://stick.gk2.sk/blog/wp-content/uploads/2009/07/gamestore-web-150x150.png" alt="GameStore (Web)" width="150" height="150" /></a></p>
<p style="text-align: justify;">Big thanks go to randy-sk who helped me with harvesting of icons and screenshots of the games. I am already looking for your feedback! <img src='http://stick.gk2.sk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://stick.gk2.sk/blog/2009/07/hackweek-gamestore/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Game Store</title>
		<link>http://stick.gk2.sk/blog/2009/07/gamestore/</link>
		<comments>http://stick.gk2.sk/blog/2009/07/gamestore/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 08:58:54 +0000</pubDate>
		<dc:creator>Pavol Rusnak</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[buildservice]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[gamestore]]></category>
		<category><![CDATA[opensuse]]></category>

		<guid isPermaLink="false">http://stick.gk2.sk/?p=535</guid>
		<description><![CDATA[I was adding some new packages to our games repository in openSUSE Build Service, when I realized that we have over 150 games at this one centralized place! Wouldn&#8217;t it be great if there was an application which would allow users to browse through games, filter them by genres or names, view the screenshots and [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I was adding some new packages to our <a href="http://download.opensuse.org/repositories/games/">games</a> repository in openSUSE Build Service, when I realized that we have over 150 games at this one centralized place! Wouldn&#8217;t it be great if there was an application which would allow users to browse through games, filter them by genres or names, view the screenshots and read the information about the games? Players usings Windows can already use  &#8220;Games for Windows&#8221; or &#8220;Steam&#8221; from Valve, but they also have to pay for the majority of the games. All games in our repository are free and just one click away! I started to hack an application with pretty concrete idea in my mind. You can look at the result of my efforts below (left Games for Windows, right Game Store):
<p style="text-align: center;"><a href="http://stick.gk2.sk/blog/wp-content/uploads/2009/07/games_for_windows.jpg"  rel="lightbox[535]"><img class="size-thumbnail wp-image-536" title="Games for Windows" src="http://stick.gk2.sk/blog/wp-content/uploads/2009/07/games_for_windows-150x150.jpg" alt="Games for Windows" width="150" height="150" /></a> <a href="http://stick.gk2.sk/blog/wp-content/uploads/2009/07/gamestore.jpg"  rel="lightbox[535]"><img src="http://stick.gk2.sk/blog/wp-content/uploads/2009/07/gamestore-150x150.jpg" alt="Game Store" title="Game Store" width="150" height="150" class="size-thumbnail wp-image-538" /></a></p>
<p style="text-align: justify;">As you can see, Game Store is at the moment quite immature Qt application (actually it is my first Qt app, so my Qt skills suck pretty much right now <img src='http://stick.gk2.sk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ), but it is already able to load locally stored XML together with game icons, screenshots and descriptions. User can install new games (using our great One Click Install feature) and launch the installed ones. Later I want to add the ability to synchronize your games settings (configuration + saved games) with Game Store server, so you can have these on any computer and the server could create a hi-score charts for every supported game. There is a long way ahead to go, but I wanted to approach you very early, so you could be involved too. Even if you don&#8217;t speak C++ or Qt, you can help us with filling the missing descriptions, gathering game icons and screenshots. Just read the <a href="http://en.opensuse.org/GameStore">GameStore</a> wiki page to get the idea what needs to be done or clone the <a href="http://gitorious.org/opensuse/gamestore">git repo</a> and start hacking right away! <img src='http://stick.gk2.sk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Thank you and I hope that GameStore will be a great addition to other openSUSE applications and tools we already have!</p>
<p style="text-align: justify;"><strong>Update:</strong> See the <a href="http://stick.gk2.sk/blog/2009/07/hackweek-gamestore/">next blogpost</a> for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://stick.gk2.sk/blog/2009/07/gamestore/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>OSC under Windows and Mac OS X</title>
		<link>http://stick.gk2.sk/blog/2009/05/osc-under-windows-and-mac-os-x/</link>
		<comments>http://stick.gk2.sk/blog/2009/05/osc-under-windows-and-mac-os-x/#comments</comments>
		<pubDate>Fri, 15 May 2009 12:34:26 +0000</pubDate>
		<dc:creator>Pavol Rusnak</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[buildservice]]></category>
		<category><![CDATA[mac os x]]></category>
		<category><![CDATA[opensuse]]></category>
		<category><![CDATA[osc]]></category>
		<category><![CDATA[tryme]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://stick.gk2.sk/blog/?p=335</guid>
		<description><![CDATA[Few months ago I tried to use OSC &#8211; our command-line client to BuildService under Windows. I failed because of the hard-coded dependency on python-rpm module, which is (of course) not present in Python package for Windows. Today I saw Feature #306354, so I decided to give it a try again. Fortunately, the recent code [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-356" title="osc-win" src="http://stick.gk2.sk/blog/wp-content/uploads/2009/05/osc-win.png" alt="osc-win" width="128" height="128" /></p>
<p style="text-align: justify;">Few months ago I tried to use <a href="http://en.opensuse.org/Build_Service/CLI">OSC</a> &#8211; our command-line client to <a href="http://en.opensuse.org/Build_Service">BuildService</a> under Windows. I failed because of the hard-coded dependency on python-rpm module, which is (of course) not present in Python package for Windows.</p>
<p style="text-align: justify;">Today I saw <a href="https://features.opensuse.org/306354">Feature #306354</a>, so I decided to give it a try again. Fortunately, the recent code changes made this task a lot easier! <img src='http://stick.gk2.sk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  I still had to create some fixes and hacks, but they are now commited to OSC subversion and shouldn&#8217;t cause problems anymore.</p>
<p>There are two ways how to use OSC in Windows:</p>
<ul>
<li>download <a href="http://stick.gk2.sk/blog/wp-content/uploads/2009/05/osc.zip">this archive</a> (or click on the openSUSE/Windows icon above),<br />
unpack it and use <code>osc.exe</code> binary without installing the whole python distribution<br />
(this <strong>does not need</strong> administrator rights) (<strong>Obsolete!</strong> see Update #3 below)</li>
<li>install python and use osc directly from its sources<br />
(this <strong>needs</strong> administrator rights if the python is not installed)</li>
</ul>
<p>Most of the features like checkouts, checkins, editing metadata should work, but there are some osc features that are unusuable (yet) under Windows:</p>
<ul>
<li>osc build &#8211; local building of the packages</li>
<li>osc vc &#8211; automated editing of changes file &#8211; you have to change the changelogs manually</li>
</ul>
<p>If you plan to use the binary package (option 1) you don&#8217;t need to read further. However, if you are interested in how I created the package or you want to use osc directly from its sources, keep reading!</p>
<p>Follow these steps if you want to build your own Windows build of osc:</p>
<ol>
<li>install the latest <a href="http://python.org/">python</a> (I used <a href="http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi">python-2.6.2.msi</a> installer and kept the default path<br />
<code>C:\Python26</code>)</li>
<li>install the latest <a href="http://www.py2exe.org/">py2exe</a> (I used <a href="http://dl.sourceforge.net/sourceforge/py2exe/py2exe-0.6.9.win32-py2.6.exe">py2exe-0.6.9.win32-py2.6.exe</a>, it should find your python distribution installed in previous step)</li>
<li>install the latest <a href="http://subversion.tigris.org/">subversion</a> client (I used the build from sliksvn.com: <a href="http://www.sliksvn.com/pub/Slik-Subversion-1.6.2-win32.msi">Slik-Subversion-1.6.2-win32.msi</a>)</li>
<li>change into your working directory and checkout the latest osc from subversion:
<pre>svn co https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice/src/clientlib/python/osc</pre>
</li>
<li>change into <code>osc</code> directory</li>
<li>run py2exe:
<pre>C:\Python26\python.exe setup.py py2exe</pre>
</li>
<li>compress all files in directory <code>dist</code> into <code>osc.zip</code> and you are done! enjoy!</li>
</ol>
<p>If you want to use osc directly from its sources, just follow the steps 1, 3, 4, 5 and run:</p>
<pre>C:\Python26\python.exe osc-wrapper.py</pre>
<p>(You can save typing if you add path <code>C:\Python26</code> into your <code>%PATH%</code> variable.</p>
<p>That&#8217;s it!</p>
<p><strong>Update #1:</strong> I found out that something very similar could be acheived on Mac OS X using <a href="http://svn.pythonmac.org/py2app/py2app/trunk/doc/index.html">py2app</a> and by calling <code>python setup.py py2app</code>. However, this is usually not needed, because Mac OS X already ships with python (2.4.2 in Tiger and 2.5.1 in Leopard if I recall correctly &#8211; these are older, but running osc with them should be just fine).</p>
<p><strong>Update #2:</strong> Michael E. Brown and Shalonda Matthews from Dell reported two bugs in my build. They were caused by different behaviour of <code>mmap.mmap</code> function under Unix and Windows and the fact that function <code>os.path.sametime</code> isn&#8217;t available under Windows at all. Both problems are fixed in SVN now and I have also rebuild the <code>osc.zip</code> archive.</p>
<p><strong>Update #3:</strong> The zip archive is not maintained. Build Service requires quite new build of osc, therefore I recommend creating your own executable by following the steps described above.</p>
<p><strong>Update #4:</strong> The code has moved from Subversion to <a href="http://www.gitorious.org/opensuse/osc">Gitorious</a>. You need to install Git and run <code>git clone git://gitorious.org/opensuse/osc.git</code> instead of points #3 and #4.</p>
]]></content:encoded>
			<wfw:commentRss>http://stick.gk2.sk/blog/2009/05/osc-under-windows-and-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

