<?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>OBS for Android</title>
	<atom:link href="http://obsforandroid.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://obsforandroid.wordpress.com</link>
	<description>{2011 Google Summer of Code} open source project blog</description>
	<lastBuildDate>Mon, 07 Nov 2011 03:32:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='obsforandroid.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>OBS for Android</title>
		<link>http://obsforandroid.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://obsforandroid.wordpress.com/osd.xml" title="OBS for Android" />
	<atom:link rel='hub' href='http://obsforandroid.wordpress.com/?pushpress=hub'/>
		<item>
		<title>RubyGem CI::Reporter</title>
		<link>http://obsforandroid.wordpress.com/2011/08/25/rubygem-cireporter/</link>
		<comments>http://obsforandroid.wordpress.com/2011/08/25/rubygem-cireporter/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 15:11:26 +0000</pubDate>
		<dc:creator>justineleng</dc:creator>
				<category><![CDATA[GSoC'11]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://obsforandroid.wordpress.com/?p=385</guid>
		<description><![CDATA[As I was starting the OBS webserver earlier today, I ran into a missing-gem error: Missing these required gems: ci_reporter So I installed the gem. $ sudo gem install ci_reporter Fetching: ci_reporter-1.6.5.gem (100%) Successfully installed ci_reporter-1.6.5 1 gem installed There was an error installing the documentation for ci_report: Installing ri documentation for ci_reporter-1.6.5... Invalid output [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=385&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As I was starting the OBS webserver earlier today, I ran into a missing-gem error:</p>
<pre>Missing these required gems:
  ci_reporter</pre>
<p>So I installed the gem.</p>
<pre>$ <span style="color:#008000;">sudo gem install ci_reporter</span>
Fetching: ci_reporter-1.6.5.gem (100%)
Successfully installed ci_reporter-1.6.5
1 gem installed</pre>
<p>There was an error installing the documentation for ci_report:</p>
<pre>Installing ri documentation for ci_reporter-1.6.5...

Invalid output formatter

For help on options, try 'rdoc --help'

ERROR:  While generating documentation for ci_reporter-1.6.5
... MESSAGE:   exit
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/ci_reporter-1.6.5/ri --main README.txt -SHN -f darkfish --quiet lib History.txt Manifest.txt README.txt LICENSE.txt --title ci_reporter-1.6.5 Documentation
(continuing with the rest of the installation)
Installing RDoc documentation for ci_reporter-1.6.5...

Invalid output formatter

For help on options, try 'rdoc --help'

ERROR:  While generating documentation for ci_reporter-1.6.5
... MESSAGE:   exit
... RDOC args: --op /usr/lib/ruby/gems/1.8/doc/ci_reporter-1.6.5/rdoc --main README.txt -SHN -f darkfish --quiet lib History.txt Manifest.txt README.txt LICENSE.txt --title ci_reporter-1.6.5 Documentation
(continuing with the rest of the installation)</pre>
<p>But this error didn&#8217;t interfere with my starting the web server.</p>
<p>Anyway, I was curious what ci_report was all about.</p>
<blockquote><p>CI::Reporter is an add-on to Test::Unit, RSpec and Cucumber that allows you to generate XML reports of your test, spec and/or feature runs. The resulting files can be read by a continuous integration system that understands Ant&#8217;s JUnit report XML format, thus allowing your CI system to track test/spec successes and failures.</p></blockquote>
<p>It looks like CI::Reporter works best with projects that use a <tt>Rakefile</tt> along with the standard <tt>Rake::TestTask</tt> or <tt>Spec::Rake::SpecTask/RSpec::Core::RakeTask</tt> tasks for running tests or examples, respectively. This way, it hooks into <tt>Test::Unit</tt> or <tt>RSpec</tt> using environment variables recognized by these custom tasks to inject the CI::Reporter code into the test or spec runs.</p>
<p>There isn&#8217;t a fair amount of documentation on CI::Reporter yet, except: <a href="http://caldersphere.rubyforge.org/ci_reporter/">http://caldersphere.rubyforge.org/ci_reporter/</a></p>
<p>&nbsp;</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obsforandroid.wordpress.com/385/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obsforandroid.wordpress.com/385/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obsforandroid.wordpress.com/385/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obsforandroid.wordpress.com/385/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/obsforandroid.wordpress.com/385/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/obsforandroid.wordpress.com/385/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/obsforandroid.wordpress.com/385/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/obsforandroid.wordpress.com/385/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obsforandroid.wordpress.com/385/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obsforandroid.wordpress.com/385/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obsforandroid.wordpress.com/385/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obsforandroid.wordpress.com/385/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obsforandroid.wordpress.com/385/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obsforandroid.wordpress.com/385/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=385&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obsforandroid.wordpress.com/2011/08/25/rubygem-cireporter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7ba89df62360571d84d5d1a9930cd385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">justineleng</media:title>
		</media:content>
	</item>
		<item>
		<title>Fix “rake/rdoctask is deprecated. Use rdoc/task instead”</title>
		<link>http://obsforandroid.wordpress.com/2011/08/22/fix-%e2%80%9crakerdoctask-is-deprecated-use-rdoctask-instead%e2%80%9d/</link>
		<comments>http://obsforandroid.wordpress.com/2011/08/22/fix-%e2%80%9crakerdoctask-is-deprecated-use-rdoctask-instead%e2%80%9d/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 15:10:01 +0000</pubDate>
		<dc:creator>justineleng</dc:creator>
				<category><![CDATA[GSoC'11]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Fix “rake/rdoctask is deprecated. use rdoc/task instead”]]></category>

		<guid isPermaLink="false">http://obsforandroid.wordpress.com/?p=377</guid>
		<description><![CDATA[Another problem I&#8217;ve run into while starting the obs web server after the system upgrade is: /build-service/src/webui&#62; ./script/server =&#62; Booting WEBrick =&#62; Rails 2.3.11 application starting on http://0.0.0.0:3000 No local development environment found: No such file or directory - /home/surfmonkey/branch/build-service/src/webui/config/environments/development.opensuse.rb Using global development environment /home/surfmonkey/branch/build-service/src/webui/config/environments/development_base.rb ** Erubis 2.6.6 Missing these required gems: daemons You're running: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=377&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Another problem I&#8217;ve run into while starting the obs web server after the <a href="http://obsforandroid.wordpress.com/2011/08/16/live-upgrade-opensuse-11-3-to-11-4/">system upgrade</a> is:</p>
<pre>/build-service/src/webui&gt; <span style="color:#008000;">./script/server</span>
=&gt; Booting WEBrick
=&gt; Rails 2.3.11 application starting on <a href="http://0.0.0.0:3000" rel="nofollow">http://0.0.0.0:3000</a>
No local development environment found: No such file or directory - /home/surfmonkey/branch/build-service/src/webui/config/environments/development.opensuse.rb
Using global development environment /home/surfmonkey/branch/build-service/src/webui/config/environments/development_base.rb
** Erubis 2.6.6
<span style="color:#ff0000;">Missing these required gems:</span>
<span style="color:#ff0000;"> daemons</span>  

You're running:
  ruby 1.8.7.334 at /usr/bin/ruby
  rubygems 1.5.0 at /home/surfmonkey/.gem/ruby/1.8, /usr/lib/ruby/gems/1.8

Run `rake gems:install` to install the missing gems.</pre>
<p>I don&#8217;t remember running into this problem before.</p>
<pre>$ <span style="color:#008000;">rake gem:install daemons</span>
<span style="color:#ff0000;">rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+)</span>
rake aborted!
Don't know how to build task 'gem:install'</pre>
<p>The stack traces look like the following:</p>
<pre>/usr/lib/ruby/gems/1.8/gems/rake-0.9.1/lib/rake/task_manager.rb:49:in `[]'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.1/lib/rake/application.rb:111:in `invoke_task'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.1/lib/rake/application.rb:90:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.1/lib/rake/application.rb:90:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.1/lib/rake/application.rb:90:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.1/lib/rake/application.rb:129:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.1/lib/rake/application.rb:84:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.1/lib/rake/application.rb:62:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.1/lib/rake/application.rb:129:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.1/lib/rake/application.rb:59:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.1/bin/rake:32
/usr/bin/rake:19:in `load'
/usr/bin/rake:19</pre>
<p>So I open up my Rakefile and make these lines</p>
<pre>require 'rake'
require 'rake/testtask'
<span style="color:#ff0000;">require 'rake/rdoctask'</span></pre>
<p>to</p>
<pre>require 'rake'
require 'rake/testtask'
<span style="color:#ff0000;">require 'rdoc/task'</span></pre>
<p>Supposedly, I should also add gem &#8220;rdoc&#8221; to my Gemfile:</p>
<pre>$ cat /usr/lib/ruby/gems/1.8/gems/jquery-rails-1.0.9/Gemfile
source :gemcutter
<ol>
<li>Specify your gem's dependencies in jquery-rails.gemspec</li>
</ol>

gemspec
<ol>
<li>Rails is already being pulled in through gemspec</li>
<li>gem "rails", :git =&gt; "git://github.com/rails/rails.git"</li>
</ol>

gem "rack", :git =&gt; "git://github.com/rack/rack.git"
gem "sprockets", :git =&gt; "git://github.com/sstephenson/sprockets.git"
gem "i18n", "0.6.0beta1"</pre>
<p>But I&#8217;m unable to overwrite the write permission:</p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/gemfile1.png"><img class="aligncenter size-full wp-image-378" title="Gemfile1" src="http://obsforandroid.files.wordpress.com/2011/08/gemfile1.png?w=557&#038;h=672" alt="" width="557" height="672" /></a></p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/gemfile.png"><img class="aligncenter size-full wp-image-379" title="Gemfile" src="http://obsforandroid.files.wordpress.com/2011/08/gemfile.png?w=323&#038;h=242" alt="" width="323" height="242" /></a></p>
<p>I don&#8217;t understand what&#8217;s going on. Deleting gemfile.lock wouldn&#8217;t help.</p>
<p>Someone on the web suggested adding <code>rdoc/</code> to my <code>.gitignore</code>, too.</p>
<p>Anyway, I just go ahead and install the daemons:</p>
<pre>$ <span style="color:#008000;">sudo gem install daemons</span>
Fetching: daemons-1.1.4.gem (100%)
Successfully installed daemons-1.1.4
1 gem installed
Installing ri documentation for daemons-1.1.4...
Installing RDoc documentation for daemons-1.1.4...</pre>
<p>So what are these daemons, after all?</p>
<blockquote><p>Daemons provides an easy way to wrap existing ruby scripts (for example, a self-written server) to be run as a daemon and to be controlled by simple start/stop/restart commands. You can also call blocks as daemons and control them from the parent or just daemonize the current process. Besides this basic functionality, daemons offers many advanced features like exception backtracing and logging (in case your ruby script crashes) and monitoring and automatic restarting of your processes if they crash.  &#8211; RubyGems.org</p></blockquote>
<p>Finally, I&#8217;m able to successfully start the web server:</p>
<pre>$ <span style="color:#008000;">./script/server</span>
=&gt; Booting WEBrick
=&gt; Rails 2.3.11 application starting on <a href="http://0.0.0.0:3000" rel="nofollow">http://0.0.0.0:3000</a>
No local development environment found: No such file or directory - /home/surfmonkey/branch/build-service/src/webui/config/environments/development.opensuse.rb
Using global development environment /home/surfmonkey/branch/build-service/src/webui/config/environments/development_base.rb
** Erubis 2.6.6
=&gt; Call with -d to detach
=&gt; Ctrl-C to shutdown server
[2011-08-22 16:03:59] INFO  WEBrick 1.3.1
[2011-08-22 16:03:59] INFO  ruby 1.8.7 (2011-02-18) [i586-linux]
[2011-08-22 16:03:59] INFO  WEBrick::HTTPServer#start: pid=9781 port=3000</pre>
<p>. . . . . .</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obsforandroid.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obsforandroid.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obsforandroid.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obsforandroid.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/obsforandroid.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/obsforandroid.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/obsforandroid.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/obsforandroid.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obsforandroid.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obsforandroid.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obsforandroid.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obsforandroid.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obsforandroid.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obsforandroid.wordpress.com/377/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=377&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obsforandroid.wordpress.com/2011/08/22/fix-%e2%80%9crakerdoctask-is-deprecated-use-rdoctask-instead%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7ba89df62360571d84d5d1a9930cd385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">justineleng</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/gemfile1.png" medium="image">
			<media:title type="html">Gemfile1</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/gemfile.png" medium="image">
			<media:title type="html">Gemfile</media:title>
		</media:content>
	</item>
		<item>
		<title>libxml2 problems when installing nokogiri</title>
		<link>http://obsforandroid.wordpress.com/2011/08/22/libxml2-problems-when-installing-nokogiri/</link>
		<comments>http://obsforandroid.wordpress.com/2011/08/22/libxml2-problems-when-installing-nokogiri/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 14:38:36 +0000</pubDate>
		<dc:creator>justineleng</dc:creator>
				<category><![CDATA[GSoC'11]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://obsforandroid.wordpress.com/?p=374</guid>
		<description><![CDATA[Since I upgraded openSUSE 11.3 to 11.4, the dependencies in my local buildservice repository got updated as well. When I tried to start the web server, it failed: ~/branch/build-service/src/webui&#62; ./script/server =&#62; Booting WEBrick =&#62; Rails 2.3.11 application starting on http://0.0.0.0:3000 /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require': no such file to load -- nokogiri (MissingSourceFile) Nokogiri parses and searches XML/HTML [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=374&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Since I upgraded openSUSE 11.3 to 11.4, the dependencies in my local buildservice repository got updated as well. When I tried to start the web server, it failed:</p>
<pre>~/branch/build-service/src/webui&gt; <span style="color:#008000;">./script/server</span>
=&gt; Booting WEBrick
=&gt; Rails 2.3.11 application starting on <a href="http://0.0.0.0:3000" rel="nofollow">http://0.0.0.0:3000</a>
<span style="color:#ff0000;">/usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require': no such file to load -- nokogiri (MissingSourceFile)</span></pre>
<p>Nokogiri parses and searches XML/HTML very quickly, and also provides CSS3 selector support and XPath support for document searching.</p>
<p>I installed the nokogiri parser before the system upgrade, but it might&#8217;ve gotten lost or updated during the upgrade. So I have to install nokogiri again on 11.4:</p>
<pre>~/branch/build-service/src/webui&gt; <span style="color:#008000;">sudo gem install nokogiri</span>
Fetching: nokogiri-1.5.0.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
        ERROR: Failed to build gem native extension.

        /usr/bin/ruby extconf.rb
<span style="color:#ff0000;">checking for libxml/parser.h... no</span>
-----
<span style="color:#ff0000;">libxml2 is missing.</span>  please visit <a href="http://nokogiri.org/tutorials/installing_nokogiri.html" rel="nofollow">http://nokogiri.org/tutorials/installing_nokogiri.html</a> for help with installing dependencies.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.</pre>
<p>I remember seeing this problem before. The solution is to simply install the dependencies first:</p>
<pre>$ <span style="color:#008000;">sudo zypper install libxml2</span>
Loading repository data...
Reading installed packages...
'libxml2' is already installed.
No update candidate for 'libxml2-2.7.8-16.17.1.i586'. The highest available version is already installed.
Resolving package dependencies...

Nothing to do.</pre>
<p>The trick is to install libxml-devel package instead:</p>
<pre>$ <span style="color:#008000;">sudo zypper install libxml2-devel</span>
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW packages are going to be installed:
  <span style="color:#00ccff;">libxml2-devel ncurses-devel readline-devel</span> 

3 new packages to install.
Overall download size: 2.6 MiB. After the operation, additional 18.9 MiB will be used.
Continue? [y/n/?] (y): y
Retrieving package ncurses-devel-5.7-14.1.i586 (1/3), 2.5 MiB (18.4 MiB unpacked)
Retrieving: ncurses-devel-5.7-14.1.i586.rpm [done (230.3 KiB/s)]
Retrieving package readline-devel-6.1-18.25.1.i586 (2/3), 42.0 KiB (75.0 KiB unpacked)
Retrieving: readline-devel-6.1-18.25.1.i586.rpm [done (0 B/s)]
Retrieving package libxml2-devel-2.7.8-16.17.1.i586 (3/3), 81.0 KiB (427.0 KiB unpacked)
Retrieving: libxml2-devel-2.7.8-16.17.1.i586.rpm [done (165.1 KiB/s)]
Installing: ncurses-devel-5.7-14.1 [done]
Installing: readline-devel-6.1-18.25.1 [done]
Installing: libxml2-devel-2.7.8-16.17.1 [done]</pre>
<p>Also, install libxslt-devel:</p>
<pre>$ <span style="color:#008000;">sudo zypper install libxslt-devel</span>
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW packages are going to be installed:
  <span style="color:#00ccff;">libgcrypt-devel libgpg-error-devel libxslt-devel</span> 

3 new packages to install.
Overall download size: 355.0 KiB. After the operation, additional 2.0 MiB will be used.
Continue? [y/n/?] (y): y
Retrieving package libgpg-error-devel-1.9-4.1.i586 (1/3), 47.0 KiB (216.0 KiB unpacked)
Retrieving: libgpg-error-devel-1.9-4.1.i586.rpm [done (156.2 KiB/s)]
Retrieving package libgcrypt-devel-1.4.6-3.1.i586 (2/3), 106.0 KiB (183.0 KiB unpacked)
Retrieving: libgcrypt-devel-1.4.6-3.1.i586.rpm [done (213.0 KiB/s)]
Retrieving package libxslt-devel-1.1.26-2.1.i586 (3/3), 202.0 KiB (1.6 MiB unpacked)
Retrieving: libxslt-devel-1.1.26-2.1.i586.rpm [done (228.3 KiB/s)]
Installing: libgpg-error-devel-1.9-4.1 [done]
Installing: libgcrypt-devel-1.4.6-3.1 [done]
Installing: libxslt-devel-1.1.26-2.1 [done]</pre>
<p>It looks like nokogiri needs both of these two dependencies resolved first:</p>
<pre>☑ libxml/parser.h
☑ libxslt/xslt.h</pre>
<p>Thus, the requirements for installing nokogiri are:</p>
<pre>✓ ruby 1.8 or 1.9
✓ libxml2
✓ libxml2-dev
✓ libxslt
✓ libxslt-dev</pre>
<p>Then, I&#8217;m able to install nokogiri:</p>
<pre>$ <span style="color:#008000;">sudo gem install nokogiri</span>
Building native extensions.  This could take a while...
<span style="color:#00ccff;">Successfully installed nokogiri-1.5.0</span>
1 gem installed
Installing ri documentation for nokogiri-1.5.0...
No definition for get_options
No definition for set_options
No definition for parse_memory
No definition for parse_file
No definition for parse_with
Installing RDoc documentation for nokogiri-1.5.0...</pre>
<ul>
<li>- &#8211; - &#8211; - -</li>
</ul><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obsforandroid.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obsforandroid.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obsforandroid.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obsforandroid.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/obsforandroid.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/obsforandroid.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/obsforandroid.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/obsforandroid.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obsforandroid.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obsforandroid.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obsforandroid.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obsforandroid.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obsforandroid.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obsforandroid.wordpress.com/374/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=374&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obsforandroid.wordpress.com/2011/08/22/libxml2-problems-when-installing-nokogiri/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7ba89df62360571d84d5d1a9930cd385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">justineleng</media:title>
		</media:content>
	</item>
		<item>
		<title>Live Upgrade openSUSE 11.3 to 11.4</title>
		<link>http://obsforandroid.wordpress.com/2011/08/16/live-upgrade-opensuse-11-3-to-11-4/</link>
		<comments>http://obsforandroid.wordpress.com/2011/08/16/live-upgrade-opensuse-11-3-to-11-4/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 23:19:21 +0000</pubDate>
		<dc:creator>justineleng</dc:creator>
				<category><![CDATA[GSoC'11]]></category>
		<category><![CDATA[openSUSE]]></category>

		<guid isPermaLink="false">http://obsforandroid.wordpress.com/?p=368</guid>
		<description><![CDATA[Doing a live upgrade in openSUSE to the latest version has certain advantages: You only download the packages that need to be upgraded, saving a lot of bandwidth. During the upgrade you can still use your system (although this is not recommended); the only downtime will be the reboot after the upgrade. You do not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=368&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Doing a live upgrade in openSUSE to the latest version has certain advantages:</p>
<ul>
<li>You only download the packages that need to be upgraded, saving a lot of bandwidth.</li>
<li>During the upgrade you can still use your system (although this is not recommended); the only downtime will be the reboot after the upgrade.</li>
<li>You do not have to write an ISO image to a DVD. You could also boot from 1) the Internet; or 2) a USB key, and install the rest from the Internet</li>
</ul>
<p>The disadvantages:</p>
<ul>
<li>If, for any reason, the upgrade is interrupted (e.g., power outages, network disconnect) and the process can’t continue, you could be left with a broken system (that depends on where the process stopped, of course).</li>
<li>If you have multiple systems to upgrade, you consume bandwidth each time, which is less efficient than downloading an ISO image.</li>
</ul>
<p>The upgrade can be done on the command line or via the YaST module <em>Wagon </em>(if you are on an OpenSUSE desktop). Since the <em>Wagon</em> method is less tested than the command line update, we will use the command line method here for both servers and desktops.</p>
<h3>1. Install the latest updates</h3>
<p>Before doing the distribution upgrade, install the latest updates for OpenSUSE 11.3. Open a terminal and run</p>
<pre>$ <span style="color:#008000;">sudo zypper repos --uri</span></pre>
<p>to check what repositories are used and enabled on the system.</p>
<p>Make sure that the line that contains http://download.opensuse.org/update/11.3/ in the URI column reads “Yes” in the “Enabled” column:</p>
<pre>#  | Alias                               | Name                                | Enabled | Refresh | URI
---+-------------------------------------+-------------------------------------+---------+---------+--------------------------------------------------------------------------------------------
1  | Packman Repository                  | Packman Repository                  | Yes     | Yes     | <a href="http://ftp.uni-erlangen.de/pub/mirrors/packman/suse/openSUSE_11.3" rel="nofollow">http://ftp.uni-erlangen.de/pub/mirrors/packman/suse/openSUSE_11.3</a>
<span style="color:#ff6600;">2 | Updates for openSUSE 11.3 11.3-1.82 | Updates for openSUSE 11.3 11.3-1.82 | Yes | Yes | <a href="http://download.opensuse.org/update/11.3/" rel="nofollow">http://download.opensuse.org/update/11.3/</a></span>
3  | devel_languages_ruby_extensions     | Ruby Extensions (openSUSE_11.4)     | Yes     | No      | <a href="http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_11.4/" rel="nofollow">http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_11.4/</a>
4  | google-chrome                       | google-chrome                       | Yes     | Yes     | <a href="http://dl.google.com/linux/chrome/rpm/stable/i386" rel="nofollow">http://dl.google.com/linux/chrome/rpm/stable/i386</a>
5  | openSUSE-11.3 11.3-1.82             | openSUSE-11.3 11.3-1.82             | Yes     | No      | cd:///?devices=/dev/sr0
6  | openSUSE:Tools                      | openSUSE:Tools                      | Yes     | Yes     | <a href="http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.3/" rel="nofollow">http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.3/</a>
7  | openSUSE_Tools                      | openSUSE.org tools (openSUSE_11.3)  | Yes     | No      | <a href="http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.3/" rel="nofollow">http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.3/</a>
8  | packman                             | Packman repository (openSUSE_11.3)  | Yes     | No      | <a href="http://packman.inode.at/suse/openSUSE_11.3" rel="nofollow">http://packman.inode.at/suse/openSUSE_11.3</a>
9  | repo-debug                          | openSUSE-11.3-Debug                 | No      | Yes     | <a href="http://download.opensuse.org/debug/distribution/11.3/repo/oss/" rel="nofollow">http://download.opensuse.org/debug/distribution/11.3/repo/oss/</a>
10 | repo-non-oss                        | openSUSE-11.3-Non-Oss               | Yes     | Yes     | <a href="http://download.opensuse.org/distribution/11.3/repo/non-oss/" rel="nofollow">http://download.opensuse.org/distribution/11.3/repo/non-oss/</a>
11 | repo-oss                            | openSUSE-11.3-Oss                   | Yes     | Yes     | <a href="http://download.opensuse.org/distribution/11.3/repo/oss/" rel="nofollow">http://download.opensuse.org/distribution/11.3/repo/oss/</a>
12 | repo-source                         | openSUSE-11.3-Source                | No      | Yes     | <a href="http://download.opensuse.org/source/distribution/11.3/repo/oss/" rel="nofollow">http://download.opensuse.org/source/distribution/11.3/repo/oss/</a>
13 | ruby-devel                          | ruby-devel                          | Yes     | No      | <a href="http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_11.3/" rel="nofollow">http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_11.3/</a>
14 | server-database-unstable            | server-database-unstable            | Yes     | Yes     | <a href="http://download.opensuse.org/repositories/server:/database:/UNSTABLE/openSUSE_11.3" rel="nofollow">http://download.opensuse.org/repositories/server:/database:/UNSTABLE/openSUSE_11.3</a></pre>
<p>If the line reads “No” in the “Enabled” column, enable the repository as follows:</p>
<pre>$<span style="color:#008000;"> sudo zypper modifyrepo --enable <em>#Alias_name</em></span></pre>
<p>If there’s no repository with the URI http://download.opensuse.org/update/11.3/, then add the repository:</p>
<pre>$ <span style="color:#008000;">sudo zypper addrepo --check --name 'openSUSE-11.3-Update' <a href="http://download.opensuse.org/update/11.3/" rel="nofollow"><span style="color:#008000;"><a href="http://download.opensuse.org/update/11.3/" rel="nofollow">http://download.opensuse.org/update/11.3/</a></span></a> repo-update</span></pre>
<p>Now, install the latest updates:</p>
<pre>$ <span style="color:#008000;">sudo zypper refresh</span>
Repository 'Packman Repository' is up to date.Repository 'Updates for openSUSE 11.3 11.3-1.82' is up to date.Repository 'Ruby Extensions (openSUSE_11.4)' is up to date.Repository 'google-chrome' is up to date.Repository 'openSUSE:Tools' is up to date.Repository 'openSUSE.org tools (openSUSE_11.3)' is up to date.Repository 'Packman repository (openSUSE_11.3)' is up to date.Repository 'openSUSE-11.3-Non-Oss' is up to date.Repository 'openSUSE-11.3-Oss' is up to date.Repository 'ruby-devel' is up to date.Repository 'server-database-unstable' is up to date.All repositories have been refreshed.</pre>
<p>And</p>
<pre>$ <span style="color:#008000;">sudo zypper update</span>
Loading repository data...Reading installed packages...

The following package updates will NOT be installed:
gpg2 gstreamer-0_10 gstreamer-0_10-plugin-gnomevfs gstreamer-0_10-plugins-base k3b k3b-lang kaffeine libassuan0 libgstapp-0_10-0 libgstinterfaces-0_10-0 libgstreamer-0_10-0   libmariadbclient16 libmariadbclient_r16 libmysqlclient16 libsndfile libtag-extras1 libxine1 libxine1-gnome-vfs libxine1-pulse mjpegtools perl-Try-Tiny python-numpy rubygem-actionmailer-2_3   rubygem-actionpack-2_3 rubygem-activerecord-2_3 rubygem-activeresource-2_3 rubygem-activesupport-2_3 rubygem-daemons rubygem-delayed_job rubygem-exception_notification rubygem-libxml-ruby   rubygem-rack rubygem-rails-2_3 rubygem-rails_xss rubygem-rake rubygem-sqlite3 taglib 

The following NEW packages are going to be installed:
build-mkbaselibs build-mkdrpms libreoffice-languagetool-en obs-service-download_files obs-service-format_spec_file obs-service-source_validator perl-Package-Stash-XS  rubygem-rbx-require-relative 

The following package is going to be REMOVED:
OpenOffice_org-LanguageTool-en 

The following packages are going to be upgraded:
broadcom-wl build chromium-ffmpeg cpanspec dbus-1 flash-player foomatic-filters gimp gimp-help-browser gimp-module-hal gimp-plugins-python glib2 google-chrome-stable icedtea-web  inst-source-utils iproute2 kernel-default kernel-desktop libapr1 libapr-util1 libfreetype6 libsndfile libsoup-2_4-1 libxml2 obs-api obs-productconverter obs-server obs-service-extract_file  obs-service-recompress obs-service-set_version obs-service-tar_scm obs-source_service obs-utils obs-worker osc osc-source_validator perl-BSSolv perl-Package-Stash perl-Params-Util  perl-Parse-CPAN-Packages perl-YAML permissions preload-kmp-default preload-kmp-desktop pullin-msttf-fonts rubygem-columnize rubygem-gem_plugin rubygem-linecache rubygem-mongrel  rubygem-ruby-debug rubygem-ruby-debug-base telnet udisks yast2-mail
54 packages to upgrade, 8 new, 1 to remove.Overall download size: 123.6 MiB. 

After the operation, additional 11.8 MiB will be used.Continue? [y/n/?] (y): y

In order to install 'flash-player', you must agree to terms of the following license agreement:
Do you agree with the terms of the license? [yes/no] (no): yes</pre>
<p>Then kick back, and let zypper retrieve and install / upgrade these packages.</p>
<blockquote>
<pre>There are some running programs that use files deleted by recent upgrade.
You may wish to restart some of them. Run 'zypper ps' to list these programs.</pre>
</blockquote>
<h3>2. Run the distribution upgrade</h3>
<p>Now that the latest updates are installed, disable all OpenSUSE 11.3 repositories:</p>
<pre>$ <span style="color:#008000;">sudo zypper modifyrepo --all --disable</span>
Repository 'Packman Repository' has been successfully disabled.
Repository 'Updates for openSUSE 11.3 11.3-1.82' has been successfully disabled.
Repository 'devel_languages_ruby_extensions' has been successfully disabled.
Repository 'google-chrome' has been successfully disabled.
Repository 'openSUSE-11.3 11.3-1.82' has been successfully disabled.
Repository 'openSUSE:Tools' has been successfully disabled.
Repository 'openSUSE_Tools' has been successfully disabled.
Repository 'packman' has been successfully disabled.
Nothing to change for repository 'repo-debug'.
Repository 'repo-non-oss' has been successfully disabled.
Repository 'repo-oss' has been successfully disabled.
Nothing to change for repository 'repo-source'.
Repository 'ruby-devel' has been successfully disabled.
Repository 'server-database-unstable' has been successfully disabled.</pre>
<p>And enable the OpenSUSE 11.4 repositories:</p>
<pre>$ <span style="color:#008000;">sudo zypper addrepo --name "openSUSE-11.4 OSS" <a href="http://download.opensuse.org/distribution/11.4/repo/oss/" rel="nofollow"><span style="color:#008000;"><a href="http://download.opensuse.org/distribution/11.4/repo/oss/" rel="nofollow">http://download.opensuse.org/distribution/11.4/repo/oss/</a></span></a> repo-11.4-oss</span>
Adding repository 'openSUSE-11.4 OSS' [done]
Repository 'openSUSE-11.4 OSS' successfully added
Enabled: Yes
Autorefresh: No
URI: <a href="http://download.opensuse.org/distribution/11.4/repo/oss/" rel="nofollow">http://download.opensuse.org/distribution/11.4/repo/oss/</a>

$ <span style="color:#008000;">sudo zypper addrepo --name "openSUSE-11.4 Non-OSS" <a href="http://download.opensuse.org/distribution/11.4/repo/non-oss/" rel="nofollow"><span style="color:#008000;"><a href="http://download.opensuse.org/distribution/11.4/repo/non-oss/" rel="nofollow">http://download.opensuse.org/distribution/11.4/repo/non-oss/</a></span></a> repo-11.4-non-oss</span>
Adding repository 'openSUSE-11.4 Non-OSS' [done]
Repository 'openSUSE-11.4 Non-OSS' successfully added
Enabled: Yes
Autorefresh: No
URI: <a href="http://download.opensuse.org/distribution/11.4/repo/non-oss/" rel="nofollow">http://download.opensuse.org/distribution/11.4/repo/non-oss/</a>

$ <span style="color:#008000;">sudo zypper addrepo --name "openSUSE-11.4 Updates" <a href="http://download.opensuse.org/update/11.4/" rel="nofollow"><span style="color:#008000;"><a href="http://download.opensuse.org/update/11.4/" rel="nofollow">http://download.opensuse.org/update/11.4/</a></span></a> repo-11.4-update</span>
Adding repository 'openSUSE-11.4 Updates' [done]
Repository 'openSUSE-11.4 Updates' successfully added
Enabled: Yes
Autorefresh: No
URI: <a href="http://download.opensuse.org/update/11.4/" rel="nofollow">http://download.opensuse.org/update/11.4/</a></pre>
<p>Now, the repositories look like this:</p>
<pre>$ <span style="color:#008000;">sudo zypper repos --uri</span>
<ol>
<li>| Alias                               | Name                                | Enabled | Refresh | URI</li>
</ol>

---+-------------------------------------+-------------------------------------+---------+---------+--------------------------------------------------------------------------------------------
1  | Packman Repository                  | Packman Repository                  | No      | Yes     | <a href="http://ftp.uni-erlangen.de/pub/mirrors/packman/suse/openSUSE_11.3" rel="nofollow">http://ftp.uni-erlangen.de/pub/mirrors/packman/suse/openSUSE_11.3</a>
2  | Updates for openSUSE 11.3 11.3-1.82 | Updates for openSUSE 11.3 11.3-1.82 | No      | Yes     | <a href="http://download.opensuse.org/update/11.3/" rel="nofollow">http://download.opensuse.org/update/11.3/</a>
3  | devel_languages_ruby_extensions     | Ruby Extensions (openSUSE_11.4)     | No      | No      | <a href="http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_11.4/" rel="nofollow">http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_11.4/</a>
4  | google-chrome                       | google-chrome                       | No      | Yes     | <a href="http://dl.google.com/linux/chrome/rpm/stable/i386" rel="nofollow">http://dl.google.com/linux/chrome/rpm/stable/i386</a>
5  | openSUSE-11.3 11.3-1.82             | openSUSE-11.3 11.3-1.82             | No      | No      | cd:///?devices=/dev/sr0
6  | openSUSE:Tools                      | openSUSE:Tools                      | No      | Yes     | <a href="http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.3/" rel="nofollow">http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.3/</a>
7  | openSUSE_Tools                      | openSUSE.org tools (openSUSE_11.3)  | No      | No      | <a href="http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.3/" rel="nofollow">http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.3/</a>
8  | packman                             | Packman repository (openSUSE_11.3)  | No      | No      | <a href="http://packman.inode.at/suse/openSUSE_11.3" rel="nofollow">http://packman.inode.at/suse/openSUSE_11.3</a>
<span style="color:#ff6600;">9 | repo-11.4-non-oss | openSUSE-11.4 Non-OSS | Yes | No | <a href="http://download.opensuse.org/distribution/11.4/repo/non-oss/" rel="nofollow">http://download.opensuse.org/distribution/11.4/repo/non-oss/</a>
10 | repo-11.4-oss | openSUSE-11.4 OSS | Yes | No | <a href="http://download.opensuse.org/distribution/11.4/repo/oss/" rel="nofollow">http://download.opensuse.org/distribution/11.4/repo/oss/</a>
11 | repo-11.4-update | openSUSE-11.4 Updates | Yes | No | <a href="http://download.opensuse.org/update/11.4/" rel="nofollow">http://download.opensuse.org/update/11.4/</a></span>
12 | repo-debug                          | openSUSE-11.3-Debug                 | No      | Yes     | <a href="http://download.opensuse.org/debug/distribution/11.3/repo/oss/" rel="nofollow">http://download.opensuse.org/debug/distribution/11.3/repo/oss/</a>
13 | repo-non-oss                        | openSUSE-11.3-Non-Oss               | No      | Yes     | <a href="http://download.opensuse.org/distribution/11.3/repo/non-oss/" rel="nofollow">http://download.opensuse.org/distribution/11.3/repo/non-oss/</a>
14 | repo-oss                            | openSUSE-11.3-Oss                   | No      | Yes     | <a href="http://download.opensuse.org/distribution/11.3/repo/oss/" rel="nofollow">http://download.opensuse.org/distribution/11.3/repo/oss/</a>
15 | repo-source                         | openSUSE-11.3-Source                | No      | Yes     | <a href="http://download.opensuse.org/source/distribution/11.3/repo/oss/" rel="nofollow">http://download.opensuse.org/source/distribution/11.3/repo/oss/</a>
16 | ruby-devel                          | ruby-devel                          | No      | No      | <a href="http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_11.3/" rel="nofollow">http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_11.3/</a>
17 | server-database-unstable            | server-database-unstable            | No      | Yes     | <a href="http://download.opensuse.org/repositories/server:/database:/UNSTABLE/openSUSE_11.3" rel="nofollow">http://download.opensuse.org/repositories/server:/database:/UNSTABLE/openSUSE_11.3</a></pre>
<p>Search for updated openSUSE 11.4 compatible third-party repositories that you used before and add them.</p>
<pre>$ <span style="color:#008000;">sudo zypper addrepo --name &lt;name&gt; &lt;url&gt; &lt;alias&gt;</span></pre>
<p>For example, if you used the VirtualBox repository in 11.3, you can enable the VirtualBox repository in 11.4 like this:</p>
<pre>$ <span style="color:#008000;">sudo zypper addrepo --name "VirtualBox for openSUSE 11.4" <a href="http://download.virtualbox.org/virtualbox/rpm/opensuse/11.4" rel="nofollow"><span style="color:#008000;"><a href="http://download.virtualbox.org/virtualbox/rpm/opensuse/11.4" rel="nofollow">http://download.virtualbox.org/virtualbox/rpm/opensuse/11.4</a></span></a> virtualbox-11.4</span></pre>
<p>(Use values for Name and Alias that are not in use yet.) Be aware that using third-party repositories could increase the chances that the upgrade will not complete correctly.</p>
<p>Now, run the full distribution upgrade:</p>
<pre>$ <span style="color:#008000;">sudo zypper ref</span></pre>
<p>This retrieves the metadata for the 11.4 repositories (i.e., openSUSE-11.4 Non-OSS, openSUSE-11.4 OSS, and openSUSE-11.4 Updates), and builds up caches for those repositories.</p>
<pre>Retrieving repository 'openSUSE-11.4 Non-OSS' metadata [done]
Building repository 'openSUSE-11.4 Non-OSS' cache [done]
Retrieving repository 'openSUSE-11.4 OSS' metadata [done]
Building repository 'openSUSE-11.4 OSS' cache [done]
Retrieving repository 'openSUSE-11.4 Updates' metadata [done]
Building repository 'openSUSE-11.4 Updates' cache [done]
All repositories have been refreshed.</pre>
<p>Then, do</p>
<pre>$ <span style="color:#008000;">sudo zypper dup</span></pre>
<p>This zypper command will download the required packages when it installs them. You may download all packages in advance:</p>
<pre>$ <span style="color:#008000;">zypper dup --download "in-advance"  </span></pre>
<p>The lengthy output goes like this:</p>
<pre>The following product is going to be upgraded:
  openSUSE 11.4
The following packages are going to be reinstalled:
  bind-libs bind-utils flash-player icedtea-web java-1_6_0-sun java-1_6_0-sun-devel libmariadbclient16 libmariadbclient_r16 libreoffice-branding-openSUSE mozilla-js192 mozilla-xulrunner192
  mozilla-xulrunner192-gnome perl-Algorithm-C3 perl-Class-C3 perl-Class-C3-XS perl-MRO-Compat perl-Scope-Guard timezone timezone-java 

The following packages are going to change architecture:
  ghostscript-fonts-other  i586 -&gt; noarch
  ghostscript-fonts-std    i586 -&gt; noarch
  perl-Archive-Zip         i586 -&gt; noarch
  perl-Digest-HMAC         i586 -&gt; noarch
  perl-Error               i586 -&gt; noarch
  perl-IO-Socket-INET6     i586 -&gt; noarch
  perl-IO-Socket-SSL       i586 -&gt; noarch
  perl-libwww-perl         i586 -&gt; noarch
  perl-Net-Server          i586 -&gt; noarch
  perl-Parse-RecDescent    i586 -&gt; noarch
  perl-Pod-POM             i586 -&gt; noarch
  perl-Text-Autoformat     i586 -&gt; noarch
  perl-Text-Reform         i586 -&gt; noarch
  perl-URI                 i586 -&gt; noarch
  perl-XML-Writer          i586 -&gt; noarch
  python-iniparse          i586 -&gt; noarch
. . .
1125 packages to upgrade, 74 to downgrade, 165 new, 19 to reinstall, 99 to remove, 42  to change vendor, 16 to change arch.
Overall download size: 982.3 MiB. After the operation, 27.9 MiB will be freed.
Continue? [y/n/?] (y): y
. . .</pre>
<p>Then, a bunch of license agreements come up. Press Enter to get to the bottom of the page and type “yes.”</p>
<pre>In order to install '<span style="color:#33cccc;">openSUSE 11.4</span>' (product), you must agree to terms of the following license agreement:
LICENSE AGREEMENT openSUSE® 11.4
. . .
In order to install '<span style="color:#33cccc;">fetchmsttfonts</span>', you must agree to terms of the following license agreement:
END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE
. . .
In order to install '<span style="color:#33cccc;">java-1_6_0-sun-devel</span>', you must agree to terms of the following license agreement:
Operating System Distributor License for Java version 1.1
. . .
In order to install '<span style="color:#33cccc;">java-1_6_0-sun</span>', you must agree to terms of the following license agreement:
Operating System Distributor License for Java version 1.1
. . .
In order to install '<span style="color:#33cccc;">flash-player</span>', you must agree to terms of the following license agreement:
ADOBE® SOFTWARE LICENSE AGREEMENTNOTICE TO USER
. . .</pre>
<p>You can run <code>zypper dup</code>  from time to time to ensure you have the latest available packages from the various repositories that you have enabled. YOU (<em>Yast Online Update</em>) only addresses security updates from the official repositories.</p>
<p>Lastly, reboot… and enjoy your new OpenSUSE 11.4 system!</p>
<ul>
<li>- &#8211; - &#8211; - -</li>
</ul>
<p>You can also find this post <a href="http://developify.wordpress.com/2011/08/13/live-upgrade-opensuse-11-3-to-11-4/">on my other blog</a>.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obsforandroid.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obsforandroid.wordpress.com/368/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obsforandroid.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obsforandroid.wordpress.com/368/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/obsforandroid.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/obsforandroid.wordpress.com/368/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/obsforandroid.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/obsforandroid.wordpress.com/368/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obsforandroid.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obsforandroid.wordpress.com/368/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obsforandroid.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obsforandroid.wordpress.com/368/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obsforandroid.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obsforandroid.wordpress.com/368/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=368&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obsforandroid.wordpress.com/2011/08/16/live-upgrade-opensuse-11-3-to-11-4/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7ba89df62360571d84d5d1a9930cd385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">justineleng</media:title>
		</media:content>
	</item>
		<item>
		<title>Install Broadcom STA wireless driver in openSUSE 11.4 (and other Linux distros)</title>
		<link>http://obsforandroid.wordpress.com/2011/08/16/install-broadcom-sta-wireless-driver-in-opensuse-11-4-and-other-linux-distros/</link>
		<comments>http://obsforandroid.wordpress.com/2011/08/16/install-broadcom-sta-wireless-driver-in-opensuse-11-4-and-other-linux-distros/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 23:12:16 +0000</pubDate>
		<dc:creator>justineleng</dc:creator>
				<category><![CDATA[GSoC'11]]></category>
		<category><![CDATA[openSUSE]]></category>

		<guid isPermaLink="false">http://obsforandroid.wordpress.com/?p=366</guid>
		<description><![CDATA[Broadcom is a real nag. Buying a laptop with Broadcom wireless network card never bothered me until I installed several Linux distros and things started to go less smoothly… especially when you do not have wired ethernet nearby and wireless is all you get. On the other hand, installing the Broadcom wireless driver for different [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=366&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Broadcom is a real nag. Buying a laptop with Broadcom wireless network card never bothered me until I installed several Linux distros and things started to go less smoothly… especially when you do not have wired ethernet nearby and wireless is all you get.</p>
<p>On the other hand, installing the Broadcom wireless driver for different Linux distros is a great learning experience.</p>
<p>Previously, I talked about <a href="http://developify.wordpress.com/2011/08/12/activate-broadcom-sta-wireless-driver-in-fedora-14/">how to activate the Broadcom STA wireless driver in Fedora 14</a>. It turns out the activation is slightly different in openSUSE.</p>
<p>The following works on openSUSE 11.3, 11.4, Mint 10 Julia, Ubuntu 10.x, Kubuntu 10.x, and LMDE.</p>
<p>To make Wi-Fi work in openSUSE 11.4, first download the tarball containing Broadcom’s IEEE 802.11a/b/g/n hybrid Linux device driver from <a href="http://www.broadcom.com/support/802.11/linux_sta.php" rel="nofollow">http://www.broadcom.com/support/802.11/linux_sta.php</a></p>
<pre>The cards with the following PCI Device IDs are supported with this driver.
Both Broadcom and and Dell product names are described.  Cards not listed here
may also work.

 	    BRCM		    PCI	PCI		  Dell
	    Product Name	  Vendor ID	Device ID	Product ID
          -------------	 ----------	---------   -----------
          4311 2.4 Ghz	    0x14e4	0x4311  	Dell 1390
          4311 Dualband	    0x14e4	0x4312  	Dell 1490
          4311 5 Ghz	    0x14e4      0x4313
          4312 2.4 Ghz	    0x14e4	0x4315  	Dell 1395
          4313 2.4 Ghz	    0x14e4	0x4727   	Dell 1501
          4321 Dualband	    0x14e4	0x4328  	Dell 1505
          4321 Dualband	    0x14e4	0x4328  	Dell 1500
          4321 2.4 Ghz	    0x14e4	0x4329
          4321 5 Ghz        0x14e4	0x432a
          4322 Dualband     0x14e4	0x432b  	Dell 1510
          4322 2.4 Ghz      0x14e4 	0x432c
          4322 5 Ghz        0x14e4 	0x432d
          43224 Dualband    0x14e4	0x4353  	Dell 1520
          43225 2.4 Ghz     0x14e4	0x4357
          43227 2.4 Ghz     0x14e4      0x4358
          43228 Dualband    0x14e4      0x4359          Dell 1530

To find the Device ID's of Broadcom cards on your machines do:
<ol>
<li>lspci -n | grep 14e4</pre>
</li>
</ol>
<p>Untar the package:</p>
<pre>$ <span style="color:#008000;">tar -xvf hybrid-portsrc_x86_32-v5_100_82_38.tar.gz </span></pre>
<p>And build this driver from source:</p>
<pre>$ <span style="color:#008000;">make</span>
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make: *** /lib/modules/2.6.37.6-0.7-desktop/build: No such file or directory.  Stop.
make: *** [all] Error 2</pre>
<p>Looks like you yet need to install the proper packages, which will create /lib/modules/”release”/build on your system. Take a quick check on what kernel packages you have:</p>
<pre>$<span style="color:#008000;"> rpm -qva | grep kernel</span>
kernel-desktop-2.6.37.6-0.7.1.i586
kernel-default-2.6.37.6-0.7.1.i586</pre>
<p>So, just install ‘kernel-devel’ (Development Package for building kernel modules to match the kernel):</p>
<pre>$<span style="color:#008000;"> sudo zypper install kernel-devel</span>
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW packages are going to be installed:
  kernel-default-devel kernel-desktop-devel kernel-devel 

3 new packages to install.
Overall download size: 20.9 MiB. After the operation, additional 50.0 MiB will be used.
Continue? [y/n/?] (y): y
Retrieving package kernel-devel-2.6.37.6-0.7.1.noarch (1/3), 7.2 MiB (35.2 MiB unpacked)
Retrieving: kernel-devel-2.6.37.6-0.7.1.noarch.rpm [done (66.3 KiB/s)]
Retrieving package kernel-desktop-devel-2.6.37.6-0.7.1.i586 (2/3), 7.1 MiB (7.8 MiB unpacked)
Retrieving: kernel-desktop-devel-2.6.37.6-0.7.1.i586.rpm [done (71.3 KiB/s)]
Retrieving package kernel-default-devel-2.6.37.6-0.7.1.i586 (3/3), 6.5 MiB (7.1 MiB unpacked)
Retrieving: kernel-default-devel-2.6.37.6-0.7.1.i586.rpm [done (49.2 KiB/s)]
Installing: kernel-devel-2.6.37.6-0.7.1 [done]
Installing: kernel-desktop-devel-2.6.37.6-0.7.1 [done]
Installing: kernel-default-devel-2.6.37.6-0.7.1 [done]</pre>
<p>Also, install the GNU Compiler:</p>
<pre>$ <span style="color:#008000;">sudo zypper install gcc</span>

Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW packages are going to be installed:
  binutils-gold gcc gcc45 

3 new packages to install.
Overall download size: 5.6 MiB. After the operation, additional 18.2 MiB will be used.
Continue? [y/n/?] (y): y
Retrieving package binutils-gold-2.21-13.1.i586 (1/3), 699.0 KiB (2.8 MiB unpacked)
Retrieving: binutils-gold-2.21-13.1.i586.rpm [done (36.0 KiB/s)]
Retrieving package gcc45-4.5.1_20101208-9.8.i586 (2/3), 5.0 MiB (15.4 MiB unpacked)
Retrieving: gcc45-4.5.1_20101208-9.8.i586.rpm [done (79.7 KiB/s)]
Retrieving package gcc-4.5-19.1.i586 (3/3), 4.0 KiB (0 B unpacked)
Retrieving: gcc-4.5-19.1.i586.rpm [done (0 B/s)]
Installing: binutils-gold-2.21-13.1 [done]
Installing: gcc45-4.5.1_20101208-9.8 [done]
Installing: gcc-4.5-19.1 [done]</pre>
<p>Then, run make again:</p>
<pre>$ <span style="color:#008000;">make</span>
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Entering directory `/usr/src/linux-2.6.37.6-0.7-obj/i386/desktop'
make -C ../../../linux-2.6.37.6-0.7 O=/usr/src/linux-2.6.37.6-0.7-obj/i386/desktop/.
  CC [M]  /home/surfmonkey/broadcom-wl/src/shared/linux_osl.o
  CC [M]  /home/surfmonkey/broadcom-wl/src/wl/sys/wl_linux.o
/home/surfmonkey/broadcom-wl/src/wl/sys/wl_linux.c: In function ‘wl_attach’:
/home/surfmonkey/broadcom-wl/src/wl/sys/wl_linux.c:485:3: error: implicit declaration of function ‘init_MUTEX’
<span style="color:#ff0000;">make[4]: *** [/home/surfmonkey/broadcom-wl/src/wl/sys/wl_linux.o] Error 1 make[3]: *** [_module_/home/surfmonkey/broadcom-wl] Error 2 make[2]: *** [sub-make] Error 2</span>
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.37.6-0.7-obj/i386/desktop'
make: *** [all] Error 2

$ <span style="color:#008000;">ls -l</span>
total 1184
-rw-r--r-- 1 surfmonkey users       8 Aug 13 18:22 built-in.o
-rw-r--r-- 1 surfmonkey users 1195817 Aug 13 18:11 hybrid-portsrc_x86_32-v5_100_82_38.tar.gz
drwxr-xr-x 2 surfmonkey users    4096 Dec 14  2010 lib
-rw-r--r-- 1 surfmonkey users    1134 Dec 14  2010 Makefile
drwxr-xr-x 5 surfmonkey users    4096 Dec 14  2010 src</pre>
<p>There is still an error building the driver. The expected <em>wl.ko</em> file wasn’t generated.</p>
<p>It turns out there is a compilation problem with kernel versions &gt; 2.6.37. The kernel I have falls right into that range:</p>
<pre>$ <span style="color:#008000;">uname -a</span>
Linux opensuse 2.6.37.6-0.7-desktop #1 SMP PREEMPT 2011-07-21 02:17:24 +0200 i686 i686 i386 GNU/Linux</pre>
<p>We need to apply a patch to fix the ‘init_MUTEX’ compile problem on newer (&gt; 2.6.37) kernels.</p>
<p>At the top level of the driver source folder  (where ”ls” should show at least src, lib, Makefile), create a file which I named “patch.” Fill in the following lines:</p>
<pre>--- src/wl/sys/wl_linux.c	2011-05-20 12:07:25.303356739 -0700
+++ src/wl/sys/wl_linux.c.new	2011-05-20 12:07:13.663356735 -0700
@@ -481,9 +481,9 @@
 	if (WL_ALL_PASSIVE_ENAB(wl)) {
 #ifdef WL_ALL_PASSIVE
 		spin_lock_init(&amp;wl-&gt;txq_lock);
 #endif
<ul>
<li>init_MUTEX(&amp;wl-&gt;sem);</li>
</ul>

+		sema_init(&amp;wl-&gt;sem, 1);
 	}

 	if (!(wl-&gt;wlc = wlc_attach((void *) wl, vendor, device, unit, wl-&gt;piomode,
 		osh, wl-&gt;regsva, wl-&gt;bcm_bustype, btparam, &amp;err))) {</pre>
<p>Save it, and go back to the command line:</p>
<pre>$ <span style="color:#008000;">patch -p0 &lt; patch</span>
patching file src/wl/sys/wl_linux.c
patch unexpectedly ends in middle of line
Hunk #1 succeeded at 481 with fuzz 1.</pre>
<p>Try building the driver again:</p>
<pre>$ <span style="color:#008000;">make</span>
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Entering directory `/usr/src/linux-2.6.37.6-0.7-obj/i386/desktop'
make -C ../../../linux-2.6.37.6-0.7 O=/usr/src/linux-2.6.37.6-0.7-obj/i386/desktop/.
  CC [M]  /home/surfmonkey/broadcom-wl/src/wl/sys/wl_linux.o
  CC [M]  /home/surfmonkey/broadcom-wl/src/wl/sys/wl_iw.o
  LD [M]  /home/surfmonkey/broadcom-wl/wl.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: modpost: missing MODULE_LICENSE() in /home/surfmonkey/broadcom-wl/wl.o
see include/linux/module.h for more information
  CC      /home/surfmonkey/broadcom-wl/wl.mod.o
  LD [M]  /home/surfmonkey/broadcom-wl/wl.ko
make[1]: Leaving directory `/usr/src/linux-2.6.37.6-0.7-obj/i386/desktop'</pre>
<p>Do a quick “ls” to make sure the <em>wl.ko</em> file has been successfully created.</p>
<pre>$ <span style="color:#008000;">ls -l</span>
total 8100
-rw-r--r-- 1 surfmonkey users       8 Aug 13 18:22 built-in.o
drwxr-xr-x 2 surfmonkey users    4096 Dec 14  2010 lib
-rw-r--r-- 1 surfmonkey users    1134 Dec 14  2010 Makefile
-rw-r--r-- 1 surfmonkey users      42 Aug 13 18:30 modules.order
-rw-r--r-- 1 surfmonkey users       0 Aug 13 18:30 Module.symvers
-rw-r--r-- 1 surfmonkey users     437 Aug 13 18:30 patch
drwxr-xr-x 5 surfmonkey users    4096 Dec 14  2010 src
-rw-r--r-- 1 surfmonkey users 3527159 Aug 13 18:30 wl.ko
-rw-r--r-- 1 surfmonkey users    4646 Aug 13 18:30 wl.mod.c
-rw-r--r-- 1 surfmonkey users   39660 Aug 13 18:30 wl.mod.o
-rw-r--r-- 1 surfmonkey users 3488826 Aug 13 18:30 wl.o</pre>
<p>Now, let’s do a fresh install of the wl driver, since the system was just <a href="http://developify.wordpress.com/2011/08/13/live-upgrade-opensuse-11-3-to-11-4/">upgraded live to openSUSE 11.4</a> and no previous version of the wl driver has been running.</p>
<p>First, check if there’s any other driver for Broadcom wireless device on the system:</p>
<pre>$ <span style="color:#008000;">lsmod  | grep "b43\|ssb\|wl"</span>
$ [blank]</pre>
<p>Looks good. If any of these are installed, remove them:</p>
<pre># rmmod b43
<ol>
<li>rmmod ssb</li>
<li>rmmod wl</pre>
</li>
</ol>
<p>And blacklist these drivers and prevent them from loading in the future:</p>
<pre># echo "blacklist ssb" &gt;&gt; /etc/modprobe.d/blacklist.conf
<ol>
<li>echo "blacklist b43" &gt;&gt; /etc/modprobe.d/blacklist.conf</pre>
</li>
</ol>
<p>At root,</p>
<pre># <span style="color:#008000;">cp wl.ko /lib/modules/`uname -r’/kernel/net/wireless/</span>
<ol>
<li><span style="color:#008000;">insmod wl.ko</span></li>
</ol>

insmod: can't read 'wl.ko': No such file or directory</pre>
<p>You could skip <em>insmod wl.ko</em> if it doesn’t work.</p>
<p>Make sure you’re root “<em>su -</em>“. Otherwise, you’d get this:</p>
<pre>$ <span style="color:#008000;">sudo insmod wl.ko</span>
root's password:
sudo: insmod: command not found</pre>
<p>Proceed to</p>
<pre># <span style="color:#008000;">modprobe lib80211</span>
<ol>
<li><span style="color:#008000;">depmod -a</span></li>
<li><span style="color:#008000;">modprobe wl</span></pre>
</li>
</ol>
<p>Now, check your Network Manager, and you should see wireless networks immediately.</p>
<p>In openSUSE, the module will be loaded on boot. In Mint/Ubuntu/Kubuntu/LMDE, users will need to add it manually in /etc/modules file.</p>
<ul>
<li>– &#8211; – &#8211; – &#8211; – &#8211; -</li>
</ul>
<p>You can also find this post <a href="http://developify.wordpress.com/2011/08/13/activate-broadcom-sta-wireless-driver-in-opensuse-11-4/">on my other blog</a>.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obsforandroid.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obsforandroid.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obsforandroid.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obsforandroid.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/obsforandroid.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/obsforandroid.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/obsforandroid.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/obsforandroid.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obsforandroid.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obsforandroid.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obsforandroid.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obsforandroid.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obsforandroid.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obsforandroid.wordpress.com/366/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=366&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obsforandroid.wordpress.com/2011/08/16/install-broadcom-sta-wireless-driver-in-opensuse-11-4-and-other-linux-distros/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7ba89df62360571d84d5d1a9930cd385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">justineleng</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenSUSE 11.4 Review http cristalinux blogspot com 2011&#8230;</title>
		<link>http://obsforandroid.wordpress.com/2011/08/16/opensuse-11-4-review-http-cristalinux-blogspot-com-2011/</link>
		<comments>http://obsforandroid.wordpress.com/2011/08/16/opensuse-11-4-review-http-cristalinux-blogspot-com-2011/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 22:57:09 +0000</pubDate>
		<dc:creator>justineleng</dc:creator>
				<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://obsforandroid.wordpress.com/2011/08/16/opensuse-11-4-review-http-cristalinux-blogspot-com-2011/</guid>
		<description><![CDATA[OpenSUSE 11.4 Review: http://cristalinux.blogspot.com/2011/03/opensuse-114-review.html<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=365&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>OpenSUSE 11.4 Review: <a href="http://cristalinux.blogspot.com/2011/03/opensuse-114-review.html" rel="nofollow">http://cristalinux.blogspot.com/2011/03/opensuse-114-review.html</a></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obsforandroid.wordpress.com/365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obsforandroid.wordpress.com/365/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obsforandroid.wordpress.com/365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obsforandroid.wordpress.com/365/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/obsforandroid.wordpress.com/365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/obsforandroid.wordpress.com/365/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/obsforandroid.wordpress.com/365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/obsforandroid.wordpress.com/365/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obsforandroid.wordpress.com/365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obsforandroid.wordpress.com/365/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obsforandroid.wordpress.com/365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obsforandroid.wordpress.com/365/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obsforandroid.wordpress.com/365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obsforandroid.wordpress.com/365/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=365&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obsforandroid.wordpress.com/2011/08/16/opensuse-11-4-review-http-cristalinux-blogspot-com-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7ba89df62360571d84d5d1a9930cd385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">justineleng</media:title>
		</media:content>
	</item>
		<item>
		<title>OBS Mobile: Package View</title>
		<link>http://obsforandroid.wordpress.com/2011/08/09/obs-mobile-package-view/</link>
		<comments>http://obsforandroid.wordpress.com/2011/08/09/obs-mobile-package-view/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 23:03:01 +0000</pubDate>
		<dc:creator>justineleng</dc:creator>
				<category><![CDATA[GSoC'11]]></category>

		<guid isPermaLink="false">http://obsforandroid.wordpress.com/?p=359</guid>
		<description><![CDATA[Played with Package view a little bit today. This would probably look more like what I&#8217;m heading toward: The biggest change was adding embedded collapsible buttons. I tried serializing Files and loading the list alphabetically sorted, like this: &#60;script type="text/javascript"&#62; // build up a javascript array from the file list var filelist = [ &#60;% [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=359&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Played with Package view a little bit today. This would probably look more like what I&#8217;m heading toward:</p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/pkg1.png"><img class="aligncenter size-full wp-image-360" title="pkg1" src="http://obsforandroid.files.wordpress.com/2011/08/pkg1.png?w=498&#038;h=713" alt="" width="498" height="713" /></a></p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/pkg2.png"><img class="aligncenter size-full wp-image-361" title="pkg2" src="http://obsforandroid.files.wordpress.com/2011/08/pkg2.png?w=498&#038;h=713" alt="" width="498" height="713" /></a></p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/pkg3.png"><img class="aligncenter size-full wp-image-362" title="pkg3" src="http://obsforandroid.files.wordpress.com/2011/08/pkg3.png?w=498&#038;h=713" alt="" width="498" height="713" /></a></p>
<p>The biggest change was adding embedded collapsible buttons.</p>
<p>I tried serializing Files and loading the list alphabetically sorted, like this:</p>
<pre><span style="color:#0000ff;">&lt;script type="text/javascript"&gt;</span>

<span style="color:#0000ff;"> // build up a javascript array from the file list</span>
<span style="color:#0000ff;"> var filelist = [</span>
<span style="color:#0000ff;">&lt;% @files.each do |file|</span>
<span style="color:#0000ff;"> fl = file.submit if file.has_element? :submit</span>
<span style="color:#0000ff;"> fl = file.action if file.has_element? :action</span>
<span style="color:#0000ff;"> pkg = ""</span>
<span style="color:#0000ff;"> if fl.has_element?(:pkg)</span>
<span style="color:#0000ff;"> pkg = elide(ae.pkg.package, 20)</span>
<span style="color:#0000ff;"> if fl.pkg.has_attribute?(:package)</span>
<span style="color:#0000ff;"> pkg += "/ #{elide(fl.target.package, 12)}"</span>
<span style="color:#0000ff;"> end</span>
<span style="color:#0000ff;"> end</span>
<span style="color:#0000ff;"> -%&gt;</span>
<span style="color:#0000ff;"> {"name": "&lt;%= elide(file.name, 12) %&gt;", "pkg": "&lt;%= pkg %&gt;"</span>
<span style="color:#0000ff;">&lt;% end -%&gt;</span>
<span style="color:#0000ff;"> ];</span>

<span style="color:#0000ff;"> // renders the file list</span>
<span style="color:#0000ff;"> function render_list(criteria) {</span>
<span style="color:#0000ff;"> console.debug("rendering list, ordered by: " + criteria);</span>
<span style="color:#0000ff;"> var list = $("#file_list");</span>
<span style="color:#0000ff;"> $(list).empty();</span>

<span style="color:#0000ff;"> var files = filelist.sort(function(a, b) {</span>
<span style="color:#0000ff;"> switch (criteria) {</span>
<span style="color:#0000ff;"> case 'name':</span>
<span style="color:#0000ff;"> return a.name &gt; b.name;</span>
<span style="color:#0000ff;"> }</span>
<span style="color:#0000ff;"> });</span>

<span style="color:#0000ff;"> list.append("&lt;li data-role=\"list-divider\"&gt;Files contained in this package&lt;/li&gt;");</span>
<span style="color:#0000ff;"> $.each(files, function() {</span>
<span style="color:#0000ff;"> list.append("&lt;a href='&lt;%= url_for :project =&gt; @project, :package =&gt; @package, :action =&gt; :files %&gt;/" + this.name + "'&gt;&lt;/a&gt;");</span>
<span style="color:#0000ff;"> });</span>
<span style="color:#0000ff;"> }</span>

<span style="color:#0000ff;"> // initial render after page load</span>
<span style="color:#0000ff;">$(document).ready(function(){</span>
<span style="color:#0000ff;"> render_list("name");</span>
<span style="color:#0000ff;">});</span>

<span style="color:#0000ff;">&lt;/script&gt;</span></pre>
<p>In the mobile view, I would like to have the Files loaded as a pre-sorted list:</p>
<pre><span style="color:#0000ff;">&lt;% @files.each do |file| %&gt;</span>
<span style="color:#0000ff;"> &lt;div data-role="collapsible" data-collapsed="true"&gt;</span>
<span style="color:#0000ff;"> &lt;h3&gt;&lt;%= h file %&gt; &lt;/h3&gt;</span>

<span style="color:#0000ff;"> &lt;ul data-role=”listview”&gt;</span>
<span style="color:#0000ff;"> &lt;% if @package.linkinfo %&gt;</span>
<span style="color:#0000ff;"> &lt;% if @expand &amp;&amp; @expand.to_s == "1" %&gt;</span>
<span style="color:#0000ff;"> &lt;%= link_to '(show unmerged sources)', :project =&gt; @project, :package =&gt; @package, :action =&gt; :files, :rev =&gt; params[:rev], :expand =&gt; "0" %&gt;</span>
<span style="color:#0000ff;"> &lt;% else %&gt;</span>
<span style="color:#0000ff;"> &lt;%= link_to '(show merged sources derived from linked package)', :project =&gt; @project, :package =&gt; @package, :action =&gt; :files, :rev =&gt; params[:rev], :expand =&gt; "1" %&gt;</span>
<span style="color:#0000ff;"> &lt;% end %&gt;</span>
<span style="color:#0000ff;"> &lt;% end %&gt;</span>
<span style="color:#0000ff;"> &lt;/ul&gt;</span>
<span style="color:#0000ff;">&lt;/div&gt;</span>
<span style="color:#0000ff;">&lt;% end %&gt;</span></pre>
<p>But when I compile, I get this error:</p>
<pre><span style="color:#0000ff;">[FATAL|# 8894] ActionView::TemplateError (You have a nil object when you didn't expect it!</span>
<span style="color:#0000ff;">You might have expected an instance of Array.</span>
<span style="color:#0000ff;">The error occurred while evaluating nil.each) on line #5 of app/mobile_views/package/_files.html.erb:</span>
<span style="color:#0000ff;">2: </span>
<span style="color:#0000ff;">3: // build up a javascript array from the file list</span>
<span style="color:#0000ff;">4: var filelist = [</span>
<span style="color:#0000ff;">5: &lt;% @files.each do |file|</span>
<span style="color:#0000ff;">6: fl = file.submit if file.has_element? :submit</span>
<span style="color:#0000ff;">7: fl = file.action if file.has_element? :action</span>
<span style="color:#0000ff;">8: pkg = ""</span>

<span style="color:#0000ff;"> app/mobile_views/package/_files.html.erb:5</span>
<span style="color:#0000ff;"> app/mobile_views/package/show.html.erb:21</span>
<span style="color:#0000ff;"> /server:3</span>

<span style="color:#0000ff;">[ERROR|# 8894] rescue_action: caught ActionView::TemplateError: You have a nil object when you didn't expect it!</span>
<span style="color:#0000ff;">You might have expected an instance of Array.</span>
<span style="color:#0000ff;">The error occurred while evaluating nil.each</span>
<span style="color:#0000ff;">[DEBUG|# 8894] ERROR: unknown; You have a nil object when you didn't expect it!</span>
<span style="color:#0000ff;">You might have expected an instance of Array.</span>
<span style="color:#0000ff;">The error occurred while e</span></pre>
<p>In desktop views, Files are implemented as a table and sorted with jquery.tablesorter.js. In mobile view, Files would have to be converted to an Array. I can&#8217;t quite tell what went wrong here, or how else to do it.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obsforandroid.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obsforandroid.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obsforandroid.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obsforandroid.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/obsforandroid.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/obsforandroid.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/obsforandroid.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/obsforandroid.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obsforandroid.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obsforandroid.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obsforandroid.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obsforandroid.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obsforandroid.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obsforandroid.wordpress.com/359/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=359&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obsforandroid.wordpress.com/2011/08/09/obs-mobile-package-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7ba89df62360571d84d5d1a9930cd385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">justineleng</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/pkg1.png" medium="image">
			<media:title type="html">pkg1</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/pkg2.png" medium="image">
			<media:title type="html">pkg2</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/pkg3.png" medium="image">
			<media:title type="html">pkg3</media:title>
		</media:content>
	</item>
		<item>
		<title>Sorting elements with jQuery Mobile: controlgroup buttons vs. radio buttons</title>
		<link>http://obsforandroid.wordpress.com/2011/08/08/sorting-elements-with-jquery-mobile-controlgroup-buttons-vs-radio-buttons/</link>
		<comments>http://obsforandroid.wordpress.com/2011/08/08/sorting-elements-with-jquery-mobile-controlgroup-buttons-vs-radio-buttons/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 19:43:24 +0000</pubDate>
		<dc:creator>justineleng</dc:creator>
				<category><![CDATA[GSoC'11]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://obsforandroid.wordpress.com/?p=347</guid>
		<description><![CDATA[After implementing a prototype for sorting functions in Requests, I needed to refine the UI and get the sorting buttons to work correctly with jQuery Mobile. The problem was when I clicked on a button to re-order the list of requests, the action would complete properly, but the selected button would not be highlighted. This [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=347&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After <a href="http://obsforandroid.wordpress.com/2011/08/01/implement-sorting-functions-for-requests/">implementing a prototype for sorting functions</a> in Requests, I needed to refine the UI and get the sorting buttons to work correctly with jQuery Mobile. The problem was when I clicked on a button to re-order the list of requests, the action would complete properly, but the selected button would not be highlighted.</p>
<p>This is the ideal view I would like to have:</p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/prototype.png"><img class="aligncenter size-full wp-image-348" title="prototype" src="http://obsforandroid.files.wordpress.com/2011/08/prototype.png?w=480&#038;h=622" alt="" width="480" height="622" /></a></p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/prototype3.png"><img class="aligncenter size-full wp-image-349" title="prototype3" src="http://obsforandroid.files.wordpress.com/2011/08/prototype3.png?w=480&#038;h=622" alt="" width="480" height="622" /></a></p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/prototype2.png"><img class="aligncenter size-full wp-image-350" title="prototype2" src="http://obsforandroid.files.wordpress.com/2011/08/prototype2.png?w=480&#038;h=622" alt="" width="480" height="622" /></a></p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/prototype1.png"><img class="aligncenter size-full wp-image-351" title="prototype1" src="http://obsforandroid.files.wordpress.com/2011/08/prototype1.png?w=480&#038;h=622" alt="" width="480" height="622" /></a></p>
<p>I re-examined the code in the prototype, and realized these sorting buttons were laid out as control group buttons as follows:</p>
<pre><span style="color:#0000ff;">&lt;div data-role="controlgroup" data-type="horizontal"&gt;</span>
<span style="color:#0000ff;"> &lt;a href="#" onclick="render_list('date'); $('#request_list').listview('refresh'); return false" data-role="button" data-theme="b"&gt;Date&lt;/a&gt;</span>
<span style="color:#0000ff;"> &lt;a href="#" onclick="render_list('requester'); $('#request_list').listview('refresh'); return false" data-role="button"&gt;Requester&lt;/a&gt;</span>
<span style="color:#0000ff;"> &lt;a href="#" onclick="render_list('target'); $('#request_list').listview('refresh'); return false" data-role="button"&gt;Target&lt;/a&gt;</span>
<span style="color:#0000ff;"> &lt;a href="#" onclick="render_list('state'); $('#request_list').listview('refresh'); return false" data-role="button"&gt;State&lt;/a&gt;</span>
<span style="color:#0000ff;">&lt;/div&gt;</span></pre>
<p>After some web research, I learned that control group buttons might not provide what I wanted.<span style="color:#ff0000;"> More than one button in a control group can be active at a time.</span> I also looked at the demos and examples on jQuery Mobile website. <span style="color:#ff0000;">For control group buttons, there doesn&#8217;t seem to be any highlighting for the selected button. There is a millisecond of color change when the button is being clicked. But after the clicking is finished, the buttons return to their default data-theme. </span></p>
<p>One thing I could think of to make this highlighting happen for control group buttons is to dynamically change the data-theme for each selected button, but it seems to be an overkill for this tiny issue.</p>
<p>On the other hand, radio buttons seem to perform exactly the way I wanted. <span style="color:#ff0000;">With radio buttons, the highlighting comes automatically once the button is selected (the newly selected button is added to the selector class, as the previously selected one is removed from there)</span>.</p>
<p>A second option to fix the button highlighting would be to change the control group buttons to radio buttons. A group of radio buttons always have at least one option selected, and that selected button is always highlighted. This would work perfectly on the Request view page, as requests would always display sorted by date.</p>
<p>(Check out jQuery Mobile <a href="http://jquerymobile.com/test/docs/forms/radiobuttons/events.html#/test/docs/forms/radiobuttons/index.html">documentation</a> on radio buttons)</p>
<p>Switching the UI from control group buttons to radio buttons was easy:</p>
<pre><span style="color:#0000ff;">&lt;div data-role="fieldcontain"&gt;</span>
<span style="color:#0000ff;"> &lt;fieldset data-role="controlgroup" data-type="horizontal" &gt;</span>
<span style="color:#0000ff;"> &lt;input type="radio" name="radio-choice-1" id="radio-choice-1" value="date" checked="checked" /&gt;</span>
<span style="color:#0000ff;"> &lt;label for="radio-choice-1"&gt;Date&lt;/label&gt;</span>

<span style="color:#0000ff;"> &lt;input type="radio" name="radio-choice-1" id="radio-choice-2" value="requester" /&gt;</span>
<span style="color:#0000ff;"> &lt;label for="radio-choice-2"&gt;Requester&lt;/label&gt;</span>

<span style="color:#0000ff;"> &lt;input type="radio" name="radio-choice-1" id="radio-choice-3" value="target" /&gt;</span>
<span style="color:#0000ff;"> &lt;label for="radio-choice-3"&gt;Target&lt;/label&gt;</span>

<span style="color:#0000ff;"> &lt;input type="radio" name="radio-choice-1" id="radio-choice-4" value="state" /&gt;</span>
<span style="color:#0000ff;"> &lt;label for="radio-choice-4"&gt;State&lt;/label&gt;</span>
<span style="color:#0000ff;"> &lt;/fieldset&gt;</span>
<span style="color:#0000ff;">&lt;/div&gt;</span></pre>
<p>But binding an onclick event to the radio buttons took a bit effort. The trick was to use &#8220;change&#8221; instead of &#8220;click.&#8221;</p>
<pre><span style="color:#0000ff;"> // initial render after page load</span>
<span style="color:#0000ff;">$(document).ready(function(){</span>
<span style="color:#0000ff;"> render_list("date");</span>
<span style="color:#0000ff;"> $("input[type='radio']").bind("change", function(){</span>
<span style="color:#0000ff;"> var selection=$(this).val();</span>
<span style="color:#0000ff;"> //alert("Criterion changed. Selected: "+selection);</span>
<span style="color:#0000ff;"> render_list(selection); </span>
<span style="color:#0000ff;"> $('#request_list').listview('refresh');</span>
<span style="color:#0000ff;"> })</span>
<span style="color:#0000ff;">});</span></pre>
<p>Now the buttons are correctly implemented. The final Requests views look like the following:</p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/sort11.png"><img class="aligncenter size-full wp-image-352" title="sort1" src="http://obsforandroid.files.wordpress.com/2011/08/sort11.png?w=480&#038;h=713" alt="" width="480" height="713" /></a></p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/sort21.png"><img class="aligncenter size-full wp-image-353" title="sort2" src="http://obsforandroid.files.wordpress.com/2011/08/sort21.png?w=480&#038;h=713" alt="" width="480" height="713" /></a></p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/sort31.png"><img class="aligncenter size-full wp-image-354" title="sort3" src="http://obsforandroid.files.wordpress.com/2011/08/sort31.png?w=480&#038;h=713" alt="" width="480" height="713" /></a></p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/sort41.png"><img class="aligncenter size-full wp-image-355" title="sort4" src="http://obsforandroid.files.wordpress.com/2011/08/sort41.png?w=480&#038;h=713" alt="" width="480" height="713" /></a></p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/sort51.png"><img class="aligncenter size-full wp-image-356" title="sort5" src="http://obsforandroid.files.wordpress.com/2011/08/sort51.png?w=480&#038;h=713" alt="" width="480" height="713" /></a></p>
<ul>
<li>- &#8211; - &#8211; - -</li>
</ul><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obsforandroid.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obsforandroid.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obsforandroid.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obsforandroid.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/obsforandroid.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/obsforandroid.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/obsforandroid.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/obsforandroid.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obsforandroid.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obsforandroid.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obsforandroid.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obsforandroid.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obsforandroid.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obsforandroid.wordpress.com/347/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=347&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obsforandroid.wordpress.com/2011/08/08/sorting-elements-with-jquery-mobile-controlgroup-buttons-vs-radio-buttons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7ba89df62360571d84d5d1a9930cd385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">justineleng</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/prototype.png" medium="image">
			<media:title type="html">prototype</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/prototype3.png" medium="image">
			<media:title type="html">prototype3</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/prototype2.png" medium="image">
			<media:title type="html">prototype2</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/prototype1.png" medium="image">
			<media:title type="html">prototype1</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/sort11.png" medium="image">
			<media:title type="html">sort1</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/sort21.png" medium="image">
			<media:title type="html">sort2</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/sort31.png" medium="image">
			<media:title type="html">sort3</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/sort41.png" medium="image">
			<media:title type="html">sort4</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/sort51.png" medium="image">
			<media:title type="html">sort5</media:title>
		</media:content>
	</item>
		<item>
		<title>New Features Added to Requests</title>
		<link>http://obsforandroid.wordpress.com/2011/08/05/new-features-added-to-requests/</link>
		<comments>http://obsforandroid.wordpress.com/2011/08/05/new-features-added-to-requests/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 22:40:55 +0000</pubDate>
		<dc:creator>justineleng</dc:creator>
				<category><![CDATA[GSoC'11]]></category>
		<category><![CDATA[Weekly Report]]></category>

		<guid isPermaLink="false">http://obsforandroid.wordpress.com/?p=340</guid>
		<description><![CDATA[I would like to share some exciting progress on the OBS Mobile Project: Request state has been added to each request; Sorting functions have been implemented for Requests; A search filter has been added to the Request page. Now, when the user logs into the list of requests, the user will not only be able [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=340&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I would like to share some exciting progress on the OBS Mobile Project:</p>
<ol>
<li>Request state has been added to each request;</li>
<li>Sorting functions have been implemented for Requests;</li>
<li>A search filter has been added to the Request page.</li>
</ol>
<p>Now, when the user logs into the list of requests, the user will not only be able to see the state of each request, but also sort requests based on 4 criteria:</p>
<ul>
<li>request date</li>
<li>requester&#8217;s name</li>
<li>target project/package</li>
<li>request state</li>
</ul>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/sort1.png"><img class="aligncenter size-full wp-image-341" title="sort1" src="http://obsforandroid.files.wordpress.com/2011/08/sort1.png?w=482&#038;h=713" alt="" width="482" height="713" /></a></p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/sort2.png"><img class="aligncenter size-full wp-image-342" title="sort2" src="http://obsforandroid.files.wordpress.com/2011/08/sort2.png?w=482&#038;h=713" alt="" width="482" height="713" /></a></p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/sort3.png"><img class="aligncenter size-full wp-image-343" title="sort3" src="http://obsforandroid.files.wordpress.com/2011/08/sort3.png?w=482&#038;h=713" alt="" width="482" height="713" /></a></p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/sort4.png"><img class="aligncenter size-full wp-image-344" title="sort4" src="http://obsforandroid.files.wordpress.com/2011/08/sort4.png?w=482&#038;h=713" alt="" width="482" height="713" /></a></p>
<p>The user can also filter requests by typing in a keyword:</p>
<p><a href="http://obsforandroid.files.wordpress.com/2011/08/sort5.png"><img class="aligncenter size-full wp-image-345" title="sort5" src="http://obsforandroid.files.wordpress.com/2011/08/sort5.png?w=482&#038;h=713" alt="" width="482" height="713" /></a></p>
<p>These new features have been tested in my desktop browsers and on my Android device, and they seem to be working fine.</p>
<p>Please feel free to check out the new features as soon as they are merged to the master. Feedback and comments are always welcome &amp; appreciated.</p>
<p>&nbsp;</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obsforandroid.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obsforandroid.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obsforandroid.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obsforandroid.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/obsforandroid.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/obsforandroid.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/obsforandroid.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/obsforandroid.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obsforandroid.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obsforandroid.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obsforandroid.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obsforandroid.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obsforandroid.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obsforandroid.wordpress.com/340/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=340&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obsforandroid.wordpress.com/2011/08/05/new-features-added-to-requests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7ba89df62360571d84d5d1a9930cd385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">justineleng</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/sort1.png" medium="image">
			<media:title type="html">sort1</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/sort2.png" medium="image">
			<media:title type="html">sort2</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/sort3.png" medium="image">
			<media:title type="html">sort3</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/sort4.png" medium="image">
			<media:title type="html">sort4</media:title>
		</media:content>

		<media:content url="http://obsforandroid.files.wordpress.com/2011/08/sort5.png" medium="image">
			<media:title type="html">sort5</media:title>
		</media:content>
	</item>
		<item>
		<title>jQuery Mobile Beta 2 Released http jquerymobile com&#8230;</title>
		<link>http://obsforandroid.wordpress.com/2011/08/04/jquery-mobile-beta-2-released-http-jquerymobile-com/</link>
		<comments>http://obsforandroid.wordpress.com/2011/08/04/jquery-mobile-beta-2-released-http-jquerymobile-com/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 21:00:36 +0000</pubDate>
		<dc:creator>justineleng</dc:creator>
				<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://obsforandroid.wordpress.com/2011/08/04/jquery-mobile-beta-2-released-http-jquerymobile-com/</guid>
		<description><![CDATA[jQuery Mobile Beta 2 Released! http://jquerymobile.com/blog/2011/08/03/jquery-mobile-beta-2-released/<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=339&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>jQuery Mobile Beta 2 Released! <a href="http://jquerymobile.com/blog/2011/08/03/jquery-mobile-beta-2-released/" rel="nofollow">http://jquerymobile.com/blog/2011/08/03/jquery-mobile-beta-2-released/</a></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obsforandroid.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obsforandroid.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obsforandroid.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obsforandroid.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/obsforandroid.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/obsforandroid.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/obsforandroid.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/obsforandroid.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obsforandroid.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obsforandroid.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obsforandroid.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obsforandroid.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obsforandroid.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obsforandroid.wordpress.com/339/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obsforandroid.wordpress.com&amp;blog=23725430&amp;post=339&amp;subd=obsforandroid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obsforandroid.wordpress.com/2011/08/04/jquery-mobile-beta-2-released-http-jquerymobile-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7ba89df62360571d84d5d1a9930cd385?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">justineleng</media:title>
		</media:content>
	</item>
	</channel>
</rss>
