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

<channel>
	<title>Collogue</title>
	<atom:link href="http://marcopg.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://marcopg.org</link>
	<description></description>
	<lastBuildDate>Sun, 13 Nov 2011 14:54:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Building gtk3 sugar on Fedora 16</title>
		<link>http://marcopg.org/2011/11/13/building-gtk3-sugar-on-fedora-16/</link>
		<comments>http://marcopg.org/2011/11/13/building-gtk3-sugar-on-fedora-16/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 14:53:29 +0000</pubDate>
		<dc:creator>marcopg</dc:creator>
				<category><![CDATA[Sugar]]></category>

		<guid isPermaLink="false">http://marcopg.org/?p=509</guid>
		<description><![CDATA[I wrote a simple makefile which clones the required modules as git submodules and builds them. It works like this git clone git://github.com/marcopg/sugar-build.git make bootstrap make build make run It&#8217;s pretty quick because it only builds the sugar modules and pygobject (the current version in fedora is not new enough, I&#8217;ll drop that as soon [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote a simple makefile which clones the required modules as git submodules and builds them. It works like this</p>
<pre>
git clone git://github.com/marcopg/sugar-build.git

make bootstrap
make build
make run
</pre>
<p>It&#8217;s pretty quick because it only builds the sugar modules and pygobject (the current version in fedora is not new enough, I&#8217;ll drop that as soon as it&#8217;s fixed).</p>
<p>This is not yet how I would like sugar to be built, but I hope it&#8217;s a step in the right direction.</p>
]]></content:encoded>
			<wfw:commentRss>http://marcopg.org/2011/11/13/building-gtk3-sugar-on-fedora-16/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GObject Introspection for node.js</title>
		<link>http://marcopg.org/2011/09/12/gobject-introspection-from-node-js/</link>
		<comments>http://marcopg.org/2011/09/12/gobject-introspection-from-node-js/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 13:27:25 +0000</pubDate>
		<dc:creator>marcopg</dc:creator>
				<category><![CDATA[Sugar]]></category>

		<guid isPermaLink="false">http://marcopg.org/?p=504</guid>
		<description><![CDATA[I run across a very interesting project which should make the whole GNOME platform accessible from node.js. That&#8217;s something I was dreaming of when I experimented with HTML activities. Maybe I should pick that experiment up again some time&#8230;]]></description>
			<content:encoded><![CDATA[<p>I run across a very interesting <a href="https://github.com/creationix/node-gir">project</a> which should make the whole GNOME platform accessible from node.js. That&#8217;s something I was dreaming of when I experimented with <a href="http://marcopg.org/2011/06/12/html-activities/">HTML activities</a>. Maybe I should pick that experiment up again some time&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://marcopg.org/2011/09/12/gobject-introspection-from-node-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building sugar from git on F15</title>
		<link>http://marcopg.org/2011/09/06/building-sugar-from-git-on-f15/</link>
		<comments>http://marcopg.org/2011/09/06/building-sugar-from-git-on-f15/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 16:45:12 +0000</pubDate>
		<dc:creator>marcopg</dc:creator>
				<category><![CDATA[Sugar]]></category>

		<guid isPermaLink="false">http://marcopg.org/?p=487</guid>
		<description><![CDATA[I wanted to build the sugar shell on F15. I tried sugar-jhbuild and it didn&#8217;t work out of the box, so I thought I&#8217;d just do it manually. It was pretty painful, I&#8217;m sharing it in case someone tries to do the same. First I installed a few dependencies. I was starting from a clean [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to build the sugar shell on F15. I tried sugar-jhbuild and it didn&#8217;t work out of the box, so I thought I&#8217;d just do it manually. It was pretty painful, I&#8217;m sharing it in case someone tries to do the same.</p>
<p>First I installed a few dependencies. I was starting from a clean Fedora 15 livecd install.</p>
<pre>
sudo yum install gcc intltool libtool glib2-devel python-devel \
    pygobject2-devel pygtk2-devel alsa-lib-devel libSM-devel \
    gnome-common icon-naming-utils xcursorgen GConf2-devel \
    hippo-canvas-python python-cjson python-dateutil \
    pygtksourceview gnome-python2-rsvg vte
</pre>
<p>Then I checked out from <a href="http://git.sugarlabs.org">git.sugarlabs.org</a> the following modules:</p>
<pre>
sugar-base
sugar-toolkit
sugar-artwork
sugar-datastore
sugar-shell
</pre>
<p>I built each of them in that order with</p>
<pre>
./autogen.sh --prefix=~/Development/sugar/build
make
make install
</pre>
<p>I manually installed the schemas in the system prefix, I&#8217;m not sure if there is a better solution these days, even with jhbuild.</p>
<pre>
sudo GCONF_CONFIG_SOURCE=xml:merged:/etc/gconf/gconf.xml.defaults \
    gconftool-2 --makefile-install-rule \
    ~/Development/sugar/sugar-shell/data/sugar.schemas
</pre>
<p>I created a script exporting various environment variables and sourced it</p>
<pre>
export PATH=~/Development/sugar/build/bin:$PATH
export PYTHONPATH=~/Development/sugar/build/lib/python2.7/site-packages
export XDG_DATA_DIRS=~/Development/sugar/build/share
export GTK_PATH=~/Development/sugar/build/lib/gtk-2.0
export GTK_DATA_PREFIX=~/Development/sugar/build
</pre>
<p>Running sugar-emulator in GNOME was crashing with weird errors for some reason, but it works from a basic X session with just a gnome-terminal in it. </p>
]]></content:encoded>
			<wfw:commentRss>http://marcopg.org/2011/09/06/building-sugar-from-git-on-f15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML activities</title>
		<link>http://marcopg.org/2011/06/12/html-activities/</link>
		<comments>http://marcopg.org/2011/06/12/html-activities/#comments</comments>
		<pubDate>Sun, 12 Jun 2011 13:32:59 +0000</pubDate>
		<dc:creator>marcopg</dc:creator>
				<category><![CDATA[Sugar]]></category>

		<guid isPermaLink="false">http://marcopg.org/?p=466</guid>
		<description><![CDATA[One of the limitations with the current Sugar architecture is that GTK isn&#8217;t really a good toolkit to be creative with. I would like to write activities in HTML but still be able to access services like the icon theme, the datastore and the presence service. When I wrote hulahop I had this also in [...]]]></description>
			<content:encoded><![CDATA[<p>One of the limitations with the current Sugar architecture is that GTK isn&#8217;t really a good toolkit to be creative with. I would like to write activities in HTML but still be able to access services like the icon theme, the datastore and the presence service. When I wrote hulahop I had this also in mind.</p>
<p>Years passed and I think we might now have the blocks to build something better. So I made a little experiment. I wrote a toy text editor. A really simple one, it can only save to a single file. But I hope it shows a possible way to tackle the issue. Anyway, code first (but not so much of it, don&#8217;t hold your breath)!</p>
<p>The engine, a web server, based on <a href="http://nodejs.org/">nodejs</a>. It&#8217;s using http but I&#8217;d have probably used web sockets if I could get them to work. We will certainly need bidirectional communication. The example has load and save methods, the idea is that system services are exposed to applications at this level.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> http <span style="color: #339933;">=</span> require<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;http&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> fs <span style="color: #339933;">=</span> require<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'fs'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> static <span style="color: #339933;">=</span> require<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'node-static'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> savedPath <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;/home/marcopg/Development/tmp/saved&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> load<span style="color: #009900;">&#40;</span>request<span style="color: #339933;">,</span> response<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    response.<span style="color: #660066;">end</span><span style="color: #009900;">&#40;</span>fs.<span style="color: #660066;">readFileSync</span><span style="color: #009900;">&#40;</span>savedPath<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;binary&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> save<span style="color: #009900;">&#40;</span>request<span style="color: #339933;">,</span> response<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    data <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
    request.<span style="color: #660066;">setEncoding</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;binary&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    request.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;data&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>chunk<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        data <span style="color: #339933;">+=</span> chunk<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
&nbsp;
    request.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;end&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        fs.<span style="color: #660066;">writeFileSync</span><span style="color: #009900;">&#40;</span>savedPath<span style="color: #339933;">,</span> data<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;binary&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> file <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span><span style="color: #009900;">&#40;</span>static.<span style="color: #660066;">Server</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;./apps&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
http.<span style="color: #660066;">createServer</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>request<span style="color: #339933;">,</span> response<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>request.<span style="color: #660066;">url</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;/save&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        save<span style="color: #009900;">&#40;</span>request<span style="color: #339933;">,</span> response<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>request.<span style="color: #660066;">url</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;/load&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        load<span style="color: #009900;">&#40;</span>request<span style="color: #339933;">,</span> response<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
        file.<span style="color: #660066;">serve</span><span style="color: #009900;">&#40;</span>request<span style="color: #339933;">,</span> response<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">listen</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">8080</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;localhost&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Server running at http://localhost:8080'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Then the editor application. Some trivial HTML And bits of javascript to talk to the server. On startup we load the current text by making an XMLHttpRequest to the engine. Similarly, when the &#8220;Save&#8221; button is pressed we send it to the server with a POST request.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;html<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;head<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;script</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;editor.js&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/head<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;body</span> <span style="color: #000066;">onLoad</span>=<span style="color: #ff0000;">&quot;load();&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;form<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;textarea</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;textArea&quot;</span> <span style="color: #000066;">rows</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">cols</span>=<span style="color: #ff0000;">&quot;50&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/textarea<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;p<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;button&quot;</span> <span style="color: #000066;">onClick</span>=<span style="color: #ff0000;">&quot;save();&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Save&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/form<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/body<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/html<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> load<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> xhr <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> XMLHttpRequest<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    xhr.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;GET&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;load&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    xhr.<span style="color: #660066;">send</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    xhr.<span style="color: #660066;">onreadystatechange</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>aEvt<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>xhr.<span style="color: #660066;">readyState</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #003366; font-weight: bold;">var</span> textArea <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;textArea&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            textArea.<span style="color: #660066;">value</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">responseText</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> save<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> textArea <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;textArea&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003366; font-weight: bold;">var</span> xhr <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> XMLHttpRequest<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    xhr.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;POST&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;save&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    xhr.<span style="color: #660066;">send</span><span style="color: #009900;">&#40;</span>textArea.<span style="color: #660066;">value</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Finally a viewer, based on <a href="http://trac.webkit.org/wiki/WebKit2">WebKit2</a>. As you can see their new API is pretty nice, it&#8217;s all C and it&#8217;s supposed to be stable. It should be a lot less painful to maintain than hulahop.</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;WebKit2/WebKit2.h&gt;</span>
<span style="color: #339933;">#include &lt;gtk/gtk.h&gt;</span>
&nbsp;
<span style="color: #339933;">#define HOME_URL &quot;http://localhost:8080/editor.html&quot;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>argv<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    GtkWidget <span style="color: #339933;">*</span>window<span style="color: #339933;">;</span>
    GtkWidget <span style="color: #339933;">*</span>box<span style="color: #339933;">;</span>
    WKViewRef web_view<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>g_thread_supported<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        g_thread_init<span style="color: #009900;">&#40;</span>NULL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    gtk_init<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>argc<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>argv<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    window <span style="color: #339933;">=</span> gtk_window_new<span style="color: #009900;">&#40;</span>GTK_WINDOW_TOPLEVEL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    box <span style="color: #339933;">=</span> gtk_vbox_new<span style="color: #009900;">&#40;</span>FALSE<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    gtk_container_add<span style="color: #009900;">&#40;</span>GTK_CONTAINER<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> box<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    gtk_widget_show<span style="color: #009900;">&#40;</span>box<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    web_view <span style="color: #339933;">=</span> WKViewCreate<span style="color: #009900;">&#40;</span>WKContextGetSharedProcessContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    gtk_box_pack_start<span style="color: #009900;">&#40;</span>GTK_BOX<span style="color: #009900;">&#40;</span>box<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> GTK_WIDGET<span style="color: #009900;">&#40;</span>web_view<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> TRUE<span style="color: #339933;">,</span> TRUE<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    gtk_widget_show<span style="color: #009900;">&#40;</span>GTK_WIDGET<span style="color: #009900;">&#40;</span>web_view<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    WKPageLoadURL<span style="color: #009900;">&#40;</span>WKViewGetPage<span style="color: #009900;">&#40;</span>web_view<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                  WKURLCreateWithUTF8CString<span style="color: #009900;">&#40;</span>HOME_URL<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    gtk_widget_show<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    gtk_window_fullscreen<span style="color: #009900;">&#40;</span>GTK_WINDOW<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    gtk_main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>A few advantages over the standard activities framework are pretty obvious.</p>
<ul>
<li>You can be as creative as you like by writing the UI in HTML (and related web technologies).</li>
<li>The activity is sandboxed by default, it only has access to the services exposed by the engine.</li>
<li>You could run the same application on other platforms, as long as you have a viewer and an engine for it.</li>
</ul>
<p>As I said this was just an experiment. I&#8217;m not sure I will have time to work on it again, but if I do these are the things I would probably be working on first.</p>
<ul>
<li>Write instructions on how to build and run the thing.</li>
<li>Hack a Sugar HIG compliant UI. I will need to figure out how to share widgets and artwork between applications.</li>
<li>Expose activity metadata in the viewer, so that it actually integrates with the Sugar shell.</li>
<li>Add a datastore interface to the engine in place of the toy load/save methods.</li>
</ul>
<p>The code is in a <a href="https://github.com/marcopg/sugar-web">git repository</a> if you want to play with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://marcopg.org/2011/06/12/html-activities/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Making it easy to build sugar from source</title>
		<link>http://marcopg.org/2010/08/23/making-it-easy-to-build-sugar-from-source/</link>
		<comments>http://marcopg.org/2010/08/23/making-it-easy-to-build-sugar-from-source/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 10:27:11 +0000</pubDate>
		<dc:creator>marcopg</dc:creator>
				<category><![CDATA[Sugar]]></category>

		<guid isPermaLink="false">http://marcopg.org/?p=458</guid>
		<description><![CDATA[I want sugar to be a lot easier to build from source. It&#8217;s slow and fragile right now and I suspect it&#8217;s one of the basic bottlenecks to contributions. I started by documenting what I would like it to be. I worked on it during the weekend and achieved my first goal. It builds flawlessly [...]]]></description>
			<content:encoded><![CDATA[<p>I want sugar to be a lot easier to build from source. It&#8217;s slow and fragile right now and I suspect it&#8217;s one of the basic bottlenecks to contributions. I started by documenting <a href="http://sugar.marcopg.org/intro.html#build-from-source-code">what I would like it to be</a>.</p>
<p>I worked on it during the weekend and achieved my first goal. It builds flawlessly on a clean Lucid virtual machine. It just required to merge the git modules, the various configure.ac and trivial changes to each module. As you might have guessed this is heavily inspired by Michael Stone <a href="http://dev.laptop.org/git/users/mstone/sugar/tree/">omnibus sugar repository</a>, credits and thanks to him.</p>
<p>Goal for this week, make it actually run <img src='http://marcopg.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://marcopg.org/2010/08/23/making-it-easy-to-build-sugar-from-source/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Talking vs doing</title>
		<link>http://marcopg.org/2010/08/08/talking-vs-doing/</link>
		<comments>http://marcopg.org/2010/08/08/talking-vs-doing/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 20:37:08 +0000</pubDate>
		<dc:creator>marcopg</dc:creator>
				<category><![CDATA[Sugar]]></category>

		<guid isPermaLink="false">http://www.marcopg.org/2010/08/08/talking-vs-doing/</guid>
		<description><![CDATA[My mail vs code ratio is incredibly bad these days. Next thing I&#8217;m going to do is to to setup a dev environment]]></description>
			<content:encoded><![CDATA[<p>My mail vs code ratio is incredibly bad these days. Next thing I&#8217;m going to do is to to setup a dev environment <img src='http://marcopg.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://marcopg.org/2010/08/08/talking-vs-doing/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Malaga</title>
		<link>http://marcopg.org/2010/07/25/malaga/</link>
		<comments>http://marcopg.org/2010/07/25/malaga/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 00:21:10 +0000</pubDate>
		<dc:creator>marcopg</dc:creator>
				<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://www.marcopg.org/?p=446</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[
<a href='http://marcopg.org/2010/07/25/malaga/img_4828-2/' title='IMG_4828'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_48281-150x150.jpg" class="attachment-thumbnail" alt="IMG_4828" title="IMG_4828" /></a>
<a href='http://marcopg.org/2010/07/25/malaga/img_4836-2/' title='IMG_4836'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_48361-150x150.jpg" class="attachment-thumbnail" alt="IMG_4836" title="IMG_4836" /></a>
<a href='http://marcopg.org/2010/07/25/malaga/img_4842-2/' title='IMG_4842'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_48421-150x150.jpg" class="attachment-thumbnail" alt="IMG_4842" title="IMG_4842" /></a>

]]></content:encoded>
			<wfw:commentRss>http://marcopg.org/2010/07/25/malaga/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cadiz and Puerto de Santa Maria</title>
		<link>http://marcopg.org/2010/07/25/cadiz-and-puerto-de-santa-maria/</link>
		<comments>http://marcopg.org/2010/07/25/cadiz-and-puerto-de-santa-maria/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 00:04:30 +0000</pubDate>
		<dc:creator>marcopg</dc:creator>
				<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://www.marcopg.org/?p=434</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[
<a href='http://marcopg.org/2010/07/25/cadiz-and-puerto-de-santa-maria/img_4810/' title='IMG_4810'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4810-150x150.jpg" class="attachment-thumbnail" alt="IMG_4810" title="IMG_4810" /></a>
<a href='http://marcopg.org/2010/07/25/cadiz-and-puerto-de-santa-maria/img_4813/' title='IMG_4813'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4813-150x150.jpg" class="attachment-thumbnail" alt="IMG_4813" title="IMG_4813" /></a>

]]></content:encoded>
			<wfw:commentRss>http://marcopg.org/2010/07/25/cadiz-and-puerto-de-santa-maria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seville</title>
		<link>http://marcopg.org/2010/07/23/seville/</link>
		<comments>http://marcopg.org/2010/07/23/seville/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 11:48:09 +0000</pubDate>
		<dc:creator>marcopg</dc:creator>
				<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://www.marcopg.org/?p=395</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[
<a href='http://marcopg.org/2010/07/23/seville/img_4794/' title='IMG_4794'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4794-150x150.jpg" class="attachment-thumbnail" alt="IMG_4794" title="IMG_4794" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4793/' title='IMG_4793'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4793-150x150.jpg" class="attachment-thumbnail" alt="IMG_4793" title="IMG_4793" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4784/' title='IMG_4784'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4784-150x150.jpg" class="attachment-thumbnail" alt="IMG_4784" title="IMG_4784" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4781/' title='IMG_4781'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4781-150x150.jpg" class="attachment-thumbnail" alt="IMG_4781" title="IMG_4781" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4780/' title='IMG_4780'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4780-150x150.jpg" class="attachment-thumbnail" alt="IMG_4780" title="IMG_4780" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4778/' title='IMG_4778'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4778-150x150.jpg" class="attachment-thumbnail" alt="IMG_4778" title="IMG_4778" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4775/' title='IMG_4775'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4775-150x150.jpg" class="attachment-thumbnail" alt="IMG_4775" title="IMG_4775" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4774/' title='IMG_4774'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4774-150x150.jpg" class="attachment-thumbnail" alt="IMG_4774" title="IMG_4774" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4773/' title='IMG_4773'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4773-150x150.jpg" class="attachment-thumbnail" alt="IMG_4773" title="IMG_4773" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4761/' title='IMG_4761'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4761-150x150.jpg" class="attachment-thumbnail" alt="IMG_4761" title="IMG_4761" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4753/' title='IMG_4753'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4753-150x150.jpg" class="attachment-thumbnail" alt="IMG_4753" title="IMG_4753" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4745/' title='IMG_4745'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4745-150x150.jpg" class="attachment-thumbnail" alt="IMG_4745" title="IMG_4745" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4744/' title='IMG_4744'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4744-150x150.jpg" class="attachment-thumbnail" alt="IMG_4744" title="IMG_4744" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4743/' title='IMG_4743'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4743-150x150.jpg" class="attachment-thumbnail" alt="IMG_4743" title="IMG_4743" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4734/' title='IMG_4734'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4734-150x150.jpg" class="attachment-thumbnail" alt="IMG_4734" title="IMG_4734" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4733/' title='IMG_4733'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4733-150x150.jpg" class="attachment-thumbnail" alt="IMG_4733" title="IMG_4733" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4721/' title='IMG_4721'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4721-150x150.jpg" class="attachment-thumbnail" alt="IMG_4721" title="IMG_4721" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4720/' title='IMG_4720'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4720-150x150.jpg" class="attachment-thumbnail" alt="IMG_4720" title="IMG_4720" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4719/' title='IMG_4719'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4719-150x150.jpg" class="attachment-thumbnail" alt="IMG_4719" title="IMG_4719" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4721-2/' title='IMG_4721'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47211-150x150.jpg" class="attachment-thumbnail" alt="IMG_4721" title="IMG_4721" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4733-2/' title='IMG_4733'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47331-150x150.jpg" class="attachment-thumbnail" alt="IMG_4733" title="IMG_4733" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4734-2/' title='IMG_4734'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47341-150x150.jpg" class="attachment-thumbnail" alt="IMG_4734" title="IMG_4734" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4743-2/' title='IMG_4743'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47431-150x150.jpg" class="attachment-thumbnail" alt="IMG_4743" title="IMG_4743" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4744-2/' title='IMG_4744'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47441-150x150.jpg" class="attachment-thumbnail" alt="IMG_4744" title="IMG_4744" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4745-2/' title='IMG_4745'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47451-150x150.jpg" class="attachment-thumbnail" alt="IMG_4745" title="IMG_4745" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4753-2/' title='IMG_4753'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47531-150x150.jpg" class="attachment-thumbnail" alt="IMG_4753" title="IMG_4753" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4761-2/' title='IMG_4761'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47611-150x150.jpg" class="attachment-thumbnail" alt="IMG_4761" title="IMG_4761" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4773-2/' title='IMG_4773'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47731-150x150.jpg" class="attachment-thumbnail" alt="IMG_4773" title="IMG_4773" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4774-2/' title='IMG_4774'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47741-150x150.jpg" class="attachment-thumbnail" alt="IMG_4774" title="IMG_4774" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4775-2/' title='IMG_4775'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47751-150x150.jpg" class="attachment-thumbnail" alt="IMG_4775" title="IMG_4775" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4778-2/' title='IMG_4778'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47781-150x150.jpg" class="attachment-thumbnail" alt="IMG_4778" title="IMG_4778" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4780-2/' title='IMG_4780'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47801-150x150.jpg" class="attachment-thumbnail" alt="IMG_4780" title="IMG_4780" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4781-2/' title='IMG_4781'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47811-150x150.jpg" class="attachment-thumbnail" alt="IMG_4781" title="IMG_4781" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4784-2/' title='IMG_4784'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47841-150x150.jpg" class="attachment-thumbnail" alt="IMG_4784" title="IMG_4784" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4793-2/' title='IMG_4793'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47931-150x150.jpg" class="attachment-thumbnail" alt="IMG_4793" title="IMG_4793" /></a>
<a href='http://marcopg.org/2010/07/23/seville/img_4794-2/' title='IMG_4794'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_47941-150x150.jpg" class="attachment-thumbnail" alt="IMG_4794" title="IMG_4794" /></a>

]]></content:encoded>
			<wfw:commentRss>http://marcopg.org/2010/07/23/seville/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Barcelona</title>
		<link>http://marcopg.org/2010/07/23/barcelona/</link>
		<comments>http://marcopg.org/2010/07/23/barcelona/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 10:35:36 +0000</pubDate>
		<dc:creator>marcopg</dc:creator>
				<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://www.marcopg.org/?p=368</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[
<a href='http://marcopg.org/2010/07/23/barcelona/img_4426/' title='IMG_4426'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4426-150x150.jpg" class="attachment-thumbnail" alt="IMG_4426" title="IMG_4426" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4428/' title='IMG_4428'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4428-150x150.jpg" class="attachment-thumbnail" alt="IMG_4428" title="IMG_4428" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4431/' title='IMG_4431'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4431-150x150.jpg" class="attachment-thumbnail" alt="IMG_4431" title="IMG_4431" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4435/' title='IMG_4435'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4435-150x150.jpg" class="attachment-thumbnail" alt="IMG_4435" title="IMG_4435" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4441/' title='IMG_4441'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4441-150x150.jpg" class="attachment-thumbnail" alt="IMG_4441" title="IMG_4441" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4448/' title='IMG_4448'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4448-150x150.jpg" class="attachment-thumbnail" alt="IMG_4448" title="IMG_4448" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4451/' title='IMG_4451'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4451-150x150.jpg" class="attachment-thumbnail" alt="IMG_4451" title="IMG_4451" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4454/' title='IMG_4454'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4454-150x150.jpg" class="attachment-thumbnail" alt="IMG_4454" title="IMG_4454" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4461/' title='IMG_4461'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4461-150x150.jpg" class="attachment-thumbnail" alt="IMG_4461" title="IMG_4461" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4466/' title='IMG_4466'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4466-150x150.jpg" class="attachment-thumbnail" alt="IMG_4466" title="IMG_4466" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4479/' title='IMG_4479'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4479-150x150.jpg" class="attachment-thumbnail" alt="IMG_4479" title="IMG_4479" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4484/' title='IMG_4484'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4484-150x150.jpg" class="attachment-thumbnail" alt="IMG_4484" title="IMG_4484" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4490/' title='IMG_4490'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4490-150x150.jpg" class="attachment-thumbnail" alt="IMG_4490" title="IMG_4490" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4494/' title='IMG_4494'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4494-150x150.jpg" class="attachment-thumbnail" alt="IMG_4494" title="IMG_4494" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4522/' title='IMG_4522'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4522-150x150.jpg" class="attachment-thumbnail" alt="IMG_4522" title="IMG_4522" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4530/' title='IMG_4530'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4530-150x150.jpg" class="attachment-thumbnail" alt="IMG_4530" title="IMG_4530" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4533/' title='IMG_4533'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4533-150x150.jpg" class="attachment-thumbnail" alt="IMG_4533" title="IMG_4533" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4539/' title='IMG_4539'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4539-150x150.jpg" class="attachment-thumbnail" alt="IMG_4539" title="IMG_4539" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4551/' title='IMG_4551'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4551-150x150.jpg" class="attachment-thumbnail" alt="IMG_4551" title="IMG_4551" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4554/' title='IMG_4554'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4554-150x150.jpg" class="attachment-thumbnail" alt="IMG_4554" title="IMG_4554" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4559/' title='IMG_4559'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4559-150x150.jpg" class="attachment-thumbnail" alt="IMG_4559" title="IMG_4559" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4560/' title='IMG_4560'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4560-150x150.jpg" class="attachment-thumbnail" alt="IMG_4560" title="IMG_4560" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4582/' title='IMG_4582'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4582-150x150.jpg" class="attachment-thumbnail" alt="IMG_4582" title="IMG_4582" /></a>
<a href='http://marcopg.org/2010/07/23/barcelona/img_4583/' title='IMG_4583'><img width="150" height="150" src="http://marcopg.org/wp-content/uploads/2010/07/IMG_4583-150x150.jpg" class="attachment-thumbnail" alt="IMG_4583" title="IMG_4583" /></a>

]]></content:encoded>
			<wfw:commentRss>http://marcopg.org/2010/07/23/barcelona/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

