<?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>Andrea Grandi &#187; Ubuntu (EN)</title>
	<atom:link href="http://www.andreagrandi.it/category/ubuntu-en/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.andreagrandi.it</link>
	<description>Software engineer, Qt Ambassador and Ubuntu member.</description>
	<lastBuildDate>Thu, 02 May 2013 15:09:57 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>How to fix pip under Debian 6.0 (squeeze): ImportError: cannot import name parser</title>
		<link>http://www.andreagrandi.it/2013/05/02/how-to-fix-pip-under-debian-6-0-squeeze-importerror-cannot-import-name-parser/</link>
		<comments>http://www.andreagrandi.it/2013/05/02/how-to-fix-pip-under-debian-6-0-squeeze-importerror-cannot-import-name-parser/#comments</comments>
		<pubDate>Thu, 02 May 2013 15:09:57 +0000</pubDate>
		<dc:creator>Andrea Grandi</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ubuntu (EN)]]></category>

		<guid isPermaLink="false">http://www.andreagrandi.it/?p=798</guid>
		<description><![CDATA[The pip utility distributed with Debian 6.0 has a bug once you upgrade it with pip install -U pip. You will easily get this error when you try to install a new package with it: Luckly there is a very easy workaround: Reference: http://blog.102web.ru/tag/virtualenvs/]]></description>
				<content:encoded><![CDATA[<p>The <strong>pip</strong> utility distributed with Debian 6.0 has a bug once you upgrade it with <strong>pip install -U pip</strong>. You will easily get this error when you try to install a new package with it:</p>
<pre class="brush: plain; title: ; notranslate">
root@worker2:~# pip install setproctitle
Traceback (most recent call last):
File &quot;/usr/bin/pip&quot;, line 8, in &lt;module&gt;
from pip.baseparser import parser
ImportError: cannot import name parser
</pre>
<p>Luckly there is a very easy workaround:</p>
<pre class="brush: plain; title: ; notranslate">
easy_install pip
rm /usr/bin/pip
ln -sv /usr/local/bin/pip-2.6 /usr/bin/pip
pip install pip --upgrade
</pre>
<p>Reference: <a href="http://blog.102web.ru/tag/virtualenvs/">http://blog.102web.ru/tag/virtualenvs/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andreagrandi.it/2013/05/02/how-to-fix-pip-under-debian-6-0-squeeze-importerror-cannot-import-name-parser/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using virtualenv to manage multiple Python/Django environments in the same machine</title>
		<link>http://www.andreagrandi.it/2013/04/25/using-virtualenv-to-manage-multiple-pythondjango-environments-in-the-same-machine/</link>
		<comments>http://www.andreagrandi.it/2013/04/25/using-virtualenv-to-manage-multiple-pythondjango-environments-in-the-same-machine/#comments</comments>
		<pubDate>Thu, 25 Apr 2013 21:58:16 +0000</pubDate>
		<dc:creator>Andrea Grandi</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ubuntu (EN)]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[virtualenv]]></category>

		<guid isPermaLink="false">http://www.andreagrandi.it/?p=795</guid>
		<description><![CDATA[Developing Python applications sometimes it's useful to be able to test the code with different environments, for example a particular version of Python or a specific Django version etc... Setting up many different virtual machines would be really too much work and even using a chroot environment is not what you need in some cases. [...]]]></description>
				<content:encoded><![CDATA[<p>Developing Python applications sometimes it's useful to be able to test the code with different environments, for example a particular version of Python or a specific Django version etc... Setting up many different virtual machines would be really too much work and even using a chroot environment is not what you need in some cases. Thanks to <a href="https://github.com/pypa/virtualenv"><strong>virtualenv</strong></a> is it possible to create a self contained Python environment with all the specific libraries you may need. Using virtualenv is very easy:</p>
<ul>
<li>Creating the virtual environment: <strong>virtualenv myenv --no-site-packages</strong></li>
<li>Entering the virtual environment: <strong>source myenv/bin/activate</strong></li>
<li>Deactivating the virtual environment: <strong>deactivate</strong></li>
</ul>
<p>That's it! Once you're inside the virtual environment you will be using the Python libraries inside it. I suggest you to install all the Python libraries you need using <a href="https://pypi.python.org/pypi/pip"><strong>pip</strong></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andreagrandi.it/2013/04/25/using-virtualenv-to-manage-multiple-pythondjango-environments-in-the-same-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UDS happening online only: pros and cons</title>
		<link>http://www.andreagrandi.it/2013/03/05/uds-happening-online-only-pros-and-cons/</link>
		<comments>http://www.andreagrandi.it/2013/03/05/uds-happening-online-only-pros-and-cons/#comments</comments>
		<pubDate>Tue, 05 Mar 2013 00:09:55 +0000</pubDate>
		<dc:creator>Andrea Grandi</dc:creator>
				<category><![CDATA[Ubuntu (EN)]]></category>
		<category><![CDATA[UDS]]></category>
		<category><![CDATA[Canonical]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[meeting]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.andreagrandi.it/?p=788</guid>
		<description><![CDATA[When last week Canonical announced the usual UDS was not going to happen I was a bit shocked and disappointed: starting from the next UDS (that is going to happen tomorrow!) the event will be online only and every 3 months. During these days I've been thinking a lot about this move and I will [...]]]></description>
				<content:encoded><![CDATA[<p>When last week <a href="http://fridge.ubuntu.com/2013/02/26/ubuntu-developer-summits-now-online-and-every-three-months/">Canonical announced</a> the usual UDS was not going to happen I was a bit shocked and disappointed: starting from the next UDS (that is going to happen tomorrow!) the event will be <strong>online only</strong> and <strong>every 3 months</strong>. During these days I've been thinking a lot about this move and I will tell you what are the pros and cons, in my opinion, followed by some final thoughts.</p>
<h2>Pros</h2>
<p>Having 4 UDS every year, instead of 2, is surely a better thing. I'm a big fan of Scrum methodology, so I think that <strong>iterating more often is better</strong> than iterating less. If there are any mistakes you can correct them and iterating again before releasing the final product.</p>
<p>Potentially <strong>more people can partecipate</strong> to the event (even the opposite is true and I will explain why). People won't need to move from home, travel, pay any expense etc... they just need a computer and a good Internet connection.</p>
<p>It's <strong>cheaper for everyone</strong>: I can just imagine how expensive could be for Canonical to organize a similar event. Booking a big hotel, paying travel and expenses to near one houndred of community people. People who didn't get any sponsorization had to pay all the travel expenses to attend the event.</p>
<h2>Cons</h2>
<p>Potentially <strong>less people can partecipate</strong> to the event. Yes, like I said before even this sentence is true and I will explain why. First of all, using Google+ there are at least three countries that will be cut out: <strong>China</strong>, <strong>Thailand</strong> and <strong>Vietnam</strong>. Google+ is not available in those countries.</p>
<p>Are you sure that special people will be able to follow the event? For example <strong>blind people</strong> won't be able to chat or to ask question in the chat.</p>
<p><strong>Only 10 people</strong> will be able to talk. In normal UDS sessions more people could raise the hand and ask a question or interact with the track leaders. Who will choose the 10 people with audio+video streaming rights?</p>
<p>We will <strong>completly miss the social aspect</strong> of the UDS. If you think this was only a secondary part, please go on. I felt more committed to work and collaborate with people I met in person than with someone I've never met before.</p>
<p>Announcing an event, even if online, just <strong>one week before</strong> it happens. Really? Some people had already taken vacation from work, booked flights etc... not counting many people that can't take 2 days off from work just with 1 week notice period. It's also almost impossible that community members have the time to schedule a blueprint and be able to discuss about a subject.</p>
<h2>Final thoughts</h2>
<p>From a <strong>cutting costs</strong> point of view I really can't say anything. Organizing UDS was surely very expensive for Canonical and nobody can blame them if they decided to spend those money in a different way.</p>
<p>What really concerns me: is UDS still useful? My opinion is that at least since latest 2 or 3 UDS the presence of the Community was not so relevant, because I had <strong>the clear sensation that the most important decisions were made by Canonical before the UDS</strong> and then there was just some details tuning. Another proof of my thoughts is the today announcement: <strong>despite the fact that I 100% agree with Unity switching to Qt/QML</strong> (I already proposed this 2 years ago during Budapest UDS, but nobody listened to me) <strong>I completly disagree with the way the decision was made</strong>: not a single involvement or discussion with the community.</p>
<p>I would apreaciate <strong>more openness and honesty</strong> from Canonical. Do you want to take all the decisions? That's fine, but at least state it clearly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andreagrandi.it/2013/03/05/uds-happening-online-only-pros-and-cons/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using Twitter Bootstrap with Node.js, Express and Jade</title>
		<link>http://www.andreagrandi.it/2013/02/24/using-twitter-bootstrap-with-node-js-express-and-jade/</link>
		<comments>http://www.andreagrandi.it/2013/02/24/using-twitter-bootstrap-with-node-js-express-and-jade/#comments</comments>
		<pubDate>Sun, 24 Feb 2013 20:05:39 +0000</pubDate>
		<dc:creator>Andrea Grandi</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Ubuntu (EN)]]></category>
		<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Express]]></category>
		<category><![CDATA[Jade]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[NodeJs]]></category>
		<category><![CDATA[npm]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.andreagrandi.it/?p=778</guid>
		<description><![CDATA[I've decided to write this post as a note to myself. I'm still learning Node.js and digging into Express/Jade, but I've read many people using the nice Twitter Bootstrap and I was wondering if there was a way to integrate all these technologies. The short answer is: yes, we can! Note: once again, I'm not [...]]]></description>
				<content:encoded><![CDATA[<p>I've decided to write this post as a note to myself. I'm still learning Node.js and digging into Express/Jade, but I've read many people using the nice <a href="http://twitter.github.com/bootstrap/"><strong>Twitter Bootstrap</strong></a> and I was wondering if there was a way to integrate all these technologies. The short answer is: yes, we can!</p>
<p><strong>Note:</strong> once again, I'm not a Node.js expert and surely there are other ways to achieve this task (for example there is a Node.js module called <a href="https://npmjs.org/package/twitter-bootstrap"><strong>twitter-bootstrap</strong></a>, but I haven't tried it). This tutorial is based on another tutorial I found, but it was not very updated and it had a more complicated way to install Bootstrap, so I decided to write a new one basing it on the original <a href="http://www.rs.au.com/31/how-to-install-bootstrap-v2-0-2-in-expressjs-v3-0-0">http://www.rs.au.com/31/how-to-install-bootstrap-v2-0-2-in-expressjs-v3-0-0</a></p>
<h2>Preparing the environment</h2>
<p>I will assume that you're running any Linux distribution (in my case I'm using Ubuntu 12.10, but feel free to use your own distribution). Be sure to have installed a recent version of <strong>nodejs</strong> and <strong>npm</strong> packages (I'm using Node.js 0.8.20 and npm 1.2.11).</p>
<h3>Create a project folder and install the required dependencies</h3>
<p><code>mkdir node-bootstrap<br />
cd node-bootstrap<br />
npm install express<br />
npm install jade</code></p>
<h2>Create the basic project structure with Express</h2>
<p><code>andrea@andrea-Inspiron-660:~/Documents/sviluppo/nodejs/node-bootstrap$ node_modules/express/bin/express nodebootstrap</p>
<p>create : nodebootstrap<br />
create : nodebootstrap/package.json<br />
create : nodebootstrap/app.js<br />
create : nodebootstrap/public<br />
create : nodebootstrap/public/javascripts<br />
create : nodebootstrap/public/images<br />
create : nodebootstrap/public/stylesheets<br />
create : nodebootstrap/public/stylesheets/style.css<br />
create : nodebootstrap/routes<br />
create : nodebootstrap/routes/index.js<br />
create : nodebootstrap/routes/user.js<br />
create : nodebootstrap/views<br />
create : nodebootstrap/views/layout.jade<br />
create : nodebootstrap/views/index.jade</p>
<p>install dependencies:<br />
$ cd nodebootstrap &amp;&amp; npm install</p>
<p>run the app:<br />
$ node app</code></p>
<p>You should already have installed all the needed dependencies, even without executing <strong>npm install</strong>, anyway executing it won't hurt.</p>
<h2>Download and install Bootstrap</h2>
<p>Download Twitter Boostrap from the official website <a href="http://twitter.github.com/bootstrap/assets/bootstrap.zip">http://twitter.github.com/bootstrap/assets/bootstrap.zip</a> and unzip it under the <strong>nodebootstrap/public</strong> folder.</p>
<h2>Bootstrap integration with Jade template system</h2>
<p>At this point you need to edit the <strong>views/layout.jade</strong> file and include the references to Bootsrap</p>
<pre class="brush: jscript; title: ; notranslate">
!!!
html
  head
    title= title
    link(rel='stylesheet', href='/bootstrap/css/bootstrap.min.css')
    link(rel='stylesheet', href='/bootstrap/css/bootstrap-responsive.min.css')
    link(rel='stylesheet', href='/stylesheets/style.css')
    script(src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js')
    script(src='/bootstrap/js/bootstrap.min.js')
  body
    block content
</pre>
<p>Test the Bootstrap integration</p>
<p>At this point we will modify <strong>views/index.jade</strong> that is the default template used to render the index</p>
<pre class="brush: jscript; title: ; notranslate">
extends layout

block content
  div.top
    form.form-horizontal(method=&quot;post&quot;, id=&quot;loginForm&quot;)
      label Username
      input.span3(id=&quot;username&quot;, type=&quot;text&quot;, name=&quot;User&quot;, placeholder=&quot;Enter your username&quot;)
      label Password
      input.span3(id=&quot;password&quot;, type=&quot;password&quot;, name=&quot;Password&quot;)
      input.btn(type=&quot;submit&quot;, value=&quot;Log In&quot;)
  div.container
    div.content
      table.table.table-striped
        thead
          tr
            th Table
            th Heading
        tbody
          tr
            td Blah
            td Test
          tr
            td Hello
            td World

  div.footer
</pre>
<p>Now go back to the terminal and execute the app:</p>
<p><code>andrea@andrea-Inspiron-660:~/Documents/sviluppo/nodejs/node-bootstrap/nodebootstrap$ node app.js<br />
Express server listening on port 3000</code></p>
<p>Open your favourite browse and visit <a href="http://localhost:3000">http://localhost:3000</a> to see your first Bootstrap + Node.js application app and running.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andreagrandi.it/2013/02/24/using-twitter-bootstrap-with-node-js-express-and-jade/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to install latest stable Node.js on Ubuntu</title>
		<link>http://www.andreagrandi.it/2013/02/08/how-to-install-latest-stable-node-js-on-ubuntu/</link>
		<comments>http://www.andreagrandi.it/2013/02/08/how-to-install-latest-stable-node-js-on-ubuntu/#comments</comments>
		<pubDate>Fri, 08 Feb 2013 18:36:36 +0000</pubDate>
		<dc:creator>Andrea Grandi</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Ubuntu (EN)]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[NodeJs]]></category>

		<guid isPermaLink="false">http://www.andreagrandi.it/?p=769</guid>
		<description><![CDATA[If you develop with Node.js and you want to be sure to have the latest stable version, luckly there is a PPA for it. All you need is to follow these instructions: sudo apt-get install python-software-properties python g++ make sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get install nodejs npm That's it! Reference: https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager]]></description>
				<content:encoded><![CDATA[<p>If you develop with <a href="http://nodejs.org"><strong>Node.js</strong></a> and you want to be sure to have the latest stable version, luckly there is a PPA for it. All you need is to follow these instructions:</p>
<p><code>sudo apt-get install python-software-properties python g++ make<br />
sudo add-apt-repository ppa:chris-lea/node.js<br />
sudo apt-get update<br />
sudo apt-get install nodejs npm</code></p>
<p>That's it!</p>
<p>Reference: <a href="https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager">https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andreagrandi.it/2013/02/08/how-to-install-latest-stable-node-js-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using QtCreator to deploy and run a Qt application to a remote Linux device</title>
		<link>http://www.andreagrandi.it/2013/01/17/using-qtcreator-to-deploy-and-run-a-qt-application-to-a-remote-linux-device/</link>
		<comments>http://www.andreagrandi.it/2013/01/17/using-qtcreator-to-deploy-and-run-a-qt-application-to-a-remote-linux-device/#comments</comments>
		<pubDate>Thu, 17 Jan 2013 17:49:37 +0000</pubDate>
		<dc:creator>Andrea Grandi</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Ubuntu (EN)]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[QtCreator]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.andreagrandi.it/?p=747</guid>
		<description><![CDATA[QtCreator is a very flexible IDE and can really be adapted for a lot of things. I usually use it to develop mobile applications for Nokia N9 and BlackBerry 10, but it can be used for more generic tasks. In my case I wanted to be able to develop a Qt application using my desktop [...]]]></description>
				<content:encoded><![CDATA[<p>QtCreator is a very flexible IDE and can really be adapted for a lot of things. I usually use it to develop mobile applications for Nokia N9 and BlackBerry 10, but it can be used for more generic tasks. In my case I wanted to be able to develop a Qt application using my desktop PC, deploy it and run on a remote (actually it's on the same desk) Linux machine running Xubuntu.</p>
<p>Doing this is quite easy and you don't need any specific plugin on QtCreator, but be sure to have at least version 2.6.x. Other than QtCreator you also need two Linux based PC (I used Ubuntu 12.10 for my development machine and Xubuntu 12.10 for the remote netbook) and an SSH account on the remote PC.</p>
<h2 style="text-align: left;">Add the remote device to QtCreator</h2>
<p style="text-align: center;"><img class="aligncenter  wp-image-748" alt="QtCreatorDevice" src="http://www.andreagrandi.it/wp-content/uploads/2013/01/QtCreatorDevice.png" width="488" height="282" /></p>
<p style="text-align: left;">To add the remote Linux device on QtCreator, use the <strong>Tools-&gt;Options</strong> menu and click on "<strong>Devices</strong>" item. At this point click on "<strong>Add</strong>" button and fill the fields using values similar to the screenshot. In particular specify a <strong>name</strong> for the device, the <strong>IP</strong> of the remote machine and a <strong>username</strong> and <strong>password</strong> that must already exist (I just created the user "andrea" on the Xubuntu machine and used the same password). I also had to set the <strong>timeout</strong> to 20 seconds, because I had some connection problems and the connection kept dropping after 10 seconds trying. To verify if everything is working fine, just click on <strong>Test</strong> button.</p>
<h2>Add a specific Qt version</h2>
<p><a href="http://www.andreagrandi.it/wp-content/uploads/2013/01/QtCreatorQtVersion.png"><img class="aligncenter size-full wp-image-754" alt="QtCreatorQtVersion" src="http://www.andreagrandi.it/wp-content/uploads/2013/01/QtCreatorQtVersion.png" width="488" height="282" /></a></p>
<p>To write your application you may need a specific Qt version that is different from the one distributed by your Linux distribution. There's no problem, QtCreator let you add different Qt versions without any conflict. In my case I installed the Qt5 version distributed by <strong>Canonical Qt5 Edgers Team</strong>: <a href="https://launchpad.net/~canonical-qt5-edgers">https://launchpad.net/~canonical-qt5-edgers</a><br />
Once it's installed, just click on "<strong>Add</strong>" button and select the qmake specific to the version you want to add (in my case it was in <strong>/opt/qt5/bin/qmake</strong> ).</p>
<h2>Add a Qt Kit</h2>
<p><a href="http://www.andreagrandi.it/wp-content/uploads/2013/01/QtCreatorQtKits.png"><img class="aligncenter size-full wp-image-757" alt="QtCreatorQtKits" src="http://www.andreagrandi.it/wp-content/uploads/2013/01/QtCreatorQtKits.png" width="488" height="282" /></a></p>
<p>QtCreator permits to add new <strong>Kit</strong> (development configurations) and these kits are used during project creation to specify what you want to target. In my example I added a new kit choosing an appropriate <strong>name</strong> "Qt5 Ubuntu", the <strong>device type</strong>, the actual <strong>device</strong> previously configured and finally the <strong>Qt version</strong> that we added before. With a kit I have a complete "toolchain" that allow me to write applications for a particular device, with a specific Qt version.</p>
<h2>Putting the pieces together</h2>
<p>At this point you just have to create a new "<strong>Qt Quick 2</strong>" application, and select the new kit you just created instead of the "Desktop" one. <strong>Please note</strong> that there is a little problem that I haven't fixed yet (but I'm working on it): if you create, for example, a project named "QtTest1" it will be deployed to the folder /opt/QtTest1/ on the remote machine. By default your user doesn't have read+write permissions for that folder so I manualy created the folder and I gave a chmod 777 on it, just for testing. There are two possible ways to fix this: you could create a specific user that has read+write permissions on /opt/ or you could modify the deployment configuration to have the app deployed to the user /home (I will investigate on this possibility and I will write something in one of the next posts).</p>
<h2>Final thoughts</h2>
<p>What all of this could be useful for? Well, do 2+2 and you'll easily guess <img src='http://www.andreagrandi.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  In the next weeks I will post more specific informations and I will update everyone with my progresses. Any comment is welcome! If you want to contribute to this you're welcome too of course.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andreagrandi.it/2013/01/17/using-qtcreator-to-deploy-and-run-a-qt-application-to-a-remote-linux-device/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Spotify 0.8.8 for Linux crashes if it cannot connect to Internet: how to fix it</title>
		<link>http://www.andreagrandi.it/2013/01/06/spotify-0-8-8-for-linux-crashes-if-it-cannot-connect-to-internet-how-to-fix-it/</link>
		<comments>http://www.andreagrandi.it/2013/01/06/spotify-0-8-8-for-linux-crashes-if-it-cannot-connect-to-internet-how-to-fix-it/#comments</comments>
		<pubDate>Sun, 06 Jan 2013 19:57:48 +0000</pubDate>
		<dc:creator>Andrea Grandi</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu (EN)]]></category>

		<guid isPermaLink="false">http://www.andreagrandi.it/?p=741</guid>
		<description><![CDATA[If you upgrade Spotify for Linux to 0.8.8.x version and you have some network connection problems (for example you're behind a company firewall and need to set a proxy...) the application will crash/hang without letting you doing anything (neither setting Proxy informations) This is caused by a deadlock in the GUI and you can view [...]]]></description>
				<content:encoded><![CDATA[<p>If you upgrade Spotify for Linux to 0.8.8.x version and you have some network connection problems (for example you're behind a company firewall and need to set a proxy...) the application will crash/hang without letting you doing anything (neither setting Proxy informations)</p>
<p style="text-align: center;"><a href="http://www.andreagrandi.it/wp-content/uploads/2013/01/Screenshot-from-2013-01-06-185615.png"><img class="size-medium wp-image-742 aligncenter" alt="Screenshot from 2013-01-06 18:56:15" src="http://www.andreagrandi.it/wp-content/uploads/2013/01/Screenshot-from-2013-01-06-185615-300x187.png" width="300" height="187" /></a></p>
<p>This is caused by a deadlock in the GUI and you can view the complete debugging informations here <a href="http://pastebin.com/zcKgXEqz">http://pastebin.com/zcKgXEqz</a><br />
To fix this, you just need to open this file <strong>~/.config/spotify/prefs</strong> and add these two lines:</p>
<pre class="brush: plain; title: ; notranslate">
network.proxy.addr=&quot;123.123.123.123:1234@https&quot;
network.proxy.mode=2
</pre>
<p>of course substituting <strong>123.123.123.123:1234</strong> with your <em>proxyip:proxyport</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andreagrandi.it/2013/01/06/spotify-0-8-8-for-linux-crashes-if-it-cannot-connect-to-internet-how-to-fix-it/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using Cloud9 IDE to develop Django applications</title>
		<link>http://www.andreagrandi.it/2013/01/05/using-cloud9-ide-to-develop-django-applications/</link>
		<comments>http://www.andreagrandi.it/2013/01/05/using-cloud9-ide-to-develop-django-applications/#comments</comments>
		<pubDate>Sat, 05 Jan 2013 14:20:13 +0000</pubDate>
		<dc:creator>Andrea Grandi</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ubuntu (EN)]]></category>

		<guid isPermaLink="false">http://www.andreagrandi.it/?p=733</guid>
		<description><![CDATA[Django is becoming very popular for dynamic websites development (actually it already is) so I decided to start learning it, with the help of a good book. To develop Django web applications you need a good IDE and an environment that support at least Python and a database (SQL Lite, MySQL etc...). If you have [...]]]></description>
				<content:encoded><![CDATA[<p><a href="https://www.djangoproject.com/">Django</a> is becoming very popular for dynamic websites development (actually it already is) so I decided to start learning it, with the help of a <a href="http://www.apress.com/9781430219361">good book</a>. To develop Django web applications you need a good IDE and an environment that support at least Python and a database (SQL Lite, MySQL etc...). If you have multiple machines and you alternate from multiple operating systems, the best thing is using an environment that you can use everywhere, from your favourite browser.</p>
<p>Here comes <a href="https://c9.io"><strong>Cloud9</strong></a>, a very nice service that you could define as the "Google Docs" for developers. C9 offers you a shared, always available on the cloud, environment to write your code. They also offer access to a Linux terminal (so you can install applications, like Django) and your websites are istantly available online for remote testing.</p>
<p style="text-align: center;"><a href="http://www.andreagrandi.it/wp-content/uploads/2013/01/c9ide_django.png"><img class="aligncenter  wp-image-734" alt="c9ide_django" src="http://www.andreagrandi.it/wp-content/uploads/2013/01/c9ide_django.png" width="469" height="345" /></a></p>
<p>Installing and using Django on C9 is very easy. You just need to open a new terminal tab (ALT+T) in C9 and execute these commands</p>
<pre class="brush: plain; title: ; notranslate">
easy_install django
python ./../bin/django-admin.py startproject myproject
python ./myproject/manage.py runserver $OPENSHIFT_INTERNAL_IP:$PORT
</pre>
<p>After these commands, your Django website will be live and accessible using <strong>http://projectname.username.c9.io</strong> (where <em>projectname</em> is the name of the project you just created and <em>username</em> is your C9 user name).</p>
<p>source: <a href="http://support.cloud9ide.com/entries/21830983-django-development-in-c9">http://support.cloud9ide.com/entries/21830983-django-development-in-c9</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andreagrandi.it/2013/01/05/using-cloud9-ide-to-develop-django-applications/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Leaving Finland (and Nokia), coming back to Italy!</title>
		<link>http://www.andreagrandi.it/2012/09/13/leaving-finland-and-nokia-coming-back-to-italy/</link>
		<comments>http://www.andreagrandi.it/2012/09/13/leaving-finland-and-nokia-coming-back-to-italy/#comments</comments>
		<pubDate>Thu, 13 Sep 2012 15:46:10 +0000</pubDate>
		<dc:creator>Andrea Grandi</dc:creator>
				<category><![CDATA[Maemo (EN)]]></category>
		<category><![CDATA[Ubuntu (EN)]]></category>

		<guid isPermaLink="false">http://www.andreagrandi.it/?p=706</guid>
		<description><![CDATA[After a very pleasant experience in Finland (Tampere), I've finally come back to Italy. I had the opportunity to work for three months in Nokia as "Qt Expert" in "Nokia Developer Forum" and it's been an amazing job! To be more precise I left Finland on August 31th, but I didn't have much time to [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft  wp-image-707" title="Tampere2" src="http://www.andreagrandi.it/wp-content/uploads/2012/09/Tampere2.jpg" alt="" width="269" height="202" /></p>
<p>After a very pleasant experience in <strong>Finland (Tampere)</strong>, I've finally come back to Italy. I had the opportunity to work for three months in <strong>Nokia</strong> as "<em>Qt Expert</em>" in "<em>Nokia Developer Forum</em>" and it's been an amazing job!</p>
<p>To be more precise I left Finland on August 31th, but I didn't have much time to blog about this. Finally I can use my desktop PC again and I'm not anymore limited to my small netbook. Trust me... spending 3 months with a 11'' netbook and pretending to work normally is really frustrating.</p>
<p>Now I have more spare time (too much :\ ) to contribute to Ubuntu and to play with some new technologies: I'm working on a project that uses <strong>Arduino</strong>, <strong>Android</strong> and some "robotic" parts, with people of <a href="http://www.ptlug.org"><strong>Pistoia Linux User Group</strong></a> and it's really an amazing learning experience!</p>
<p>Talking about Ubuntu, if you have never contributed to it and you would like to start with something easy, I suggest you this interesting initiative <a href="https://wiki.ubuntu.com/UbuntuDevelopment/BugFixingInitiative">https://wiki.ubuntu.com/UbuntuDevelopment/BugFixingInitiative</a></p>
<p>In the mean time I'm also looking for new opportunities and challenges (aka = looking for a new job), so if you think you may be interested in me, take a couple of minutes to give a look to my LinkedIn profile <a href="http://www.linkedin.com/in/andreagrandi">http://www.linkedin.com/in/andreagrandi</a></p>
<p>I will attend next <strong>UDS</strong> in <strong>Copenaghen</strong> (99% sure) and I already have a couple of topics I would like to work with, but I will talk about these later, first I want to properly create a blueprint in Launchpad so we will have a starting point.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andreagrandi.it/2012/09/13/leaving-finland-and-nokia-coming-back-to-italy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ubuntu Release Sprint: calling for feedback!</title>
		<link>http://www.andreagrandi.it/2012/08/17/ubuntu-release-sprint-calling-for-feedback/</link>
		<comments>http://www.andreagrandi.it/2012/08/17/ubuntu-release-sprint-calling-for-feedback/#comments</comments>
		<pubDate>Fri, 17 Aug 2012 11:28:05 +0000</pubDate>
		<dc:creator>Andrea Grandi</dc:creator>
				<category><![CDATA[Ubuntu (EN)]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[meeting]]></category>
		<category><![CDATA[sprint]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[UDS]]></category>

		<guid isPermaLink="false">http://www.andreagrandi.it/?p=702</guid>
		<description><![CDATA[During the last UDS party, I had an idea to improve Ubuntu development, but I didn't know if it could be a good idea or a stupid one, so I talked to Daniel Holbach and David Planella about it and they were happy to hear about it and Daniel told me to talk about this directly to Mark (and [...]]]></description>
				<content:encoded><![CDATA[<p>During the last UDS party, I had an idea to improve Ubuntu development, but I didn't know if it could be a good idea or a stupid one, so I talked to <strong>Daniel Holbach</strong> and <strong>David Planella</strong> about it and they were happy to hear about it and Daniel told me to talk about this directly to <strong>Mark</strong> (and I did it).</p>
<p>Let's explain the basic idea.</p>
<p>From an UDS and the next one, it would be useful to have a development sprint where people can talk about assigned UDS blueprints, at which point they are on their tasks, if they have any problems and if they will finish them within the next UDS.</p>
<p>Of course Canonical cannot organize another meeting, it would be very expensive, so the idea is: why don't we use <strong>Google Hangout</strong> to organize the sprint? I has a limit of 10 people, I know, but we could select (for example) 5 from the community and 5 from Canonical. There would be parallel meeting and tracks, we would use the same blueprints used during the last UDS and we would add further notes. The attendees would be able to listen and watch the stream and make questions through the available chat.</p>
<p>I've also created a <strong>wiki</strong> page with more informations and you can find it here: <a href="https://wiki.ubuntu.com/UbuntuReleaseSprint">https://wiki.ubuntu.com/UbuntuReleaseSprint</a></p>
<p>What do you think about? I know that Canonical is already organizing sprints and this could be a way to involve more the Ubuntu Community. Maybe we should schedule a session <strong>at next UDS</strong> to talk about this?</p>
<p>I hope to get some <strong>feedback</strong> from you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andreagrandi.it/2012/08/17/ubuntu-release-sprint-calling-for-feedback/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
