<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
<title type="text">Matteo Magni</title>
<generator uri="https://github.com/jekyll/jekyll">Jekyll</generator>
<link rel="self" type="application/atom+xml" href="https://magni.me/feed.xml" />
<link rel="alternate" type="text/html" href="https://magni.me" />
<updated>2022-11-22T08:27:51+00:00</updated>
<id>https://magni.me/</id>
<author>
  <name>Matteo Magni</name>
  <uri>https://magni.me/</uri>
  <email>matteo@magni.me</email>
</author>


<entry>
  <title type="html"><![CDATA[Introduction to DevOps with Ansible]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2016/12/16/introduction-to-devops-with-ansible/" />
  <id>https://magni.me/2016/12/16/introduction-to-devops-with-ansible</id>
  <published>2016-12-16T00:00:00+00:00</published>
  <updated>2016-12-16T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;Nell’ambito del progetto &lt;a href=&quot;http://officina-linux.it&quot;&gt;Officina Linux&lt;/a&gt; ho tenuto un webinar su come fare DevOps con Ansible.
Ecco il video del webinar:&lt;/p&gt;

&lt;iframe src=&quot;https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2FOfficinaLinux%2Fvideos%2F349633172084818%2F&amp;amp;show_text=0&amp;amp;width=560&quot; width=&quot;560&quot; height=&quot;315&quot; style=&quot;border:none;overflow:hidden&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Le slide invece sono visibili a questo indirizzo:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://magni.me/Introduction-to-DevOps-with-Ansible/&quot;&gt;http://magni.me/Introduction-to-DevOps-with-Ansible/&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href=&quot;https://magni.me/2016/12/16/introduction-to-devops-with-ansible/&quot;&gt;Introduction to DevOps with Ansible&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on December 16, 2016.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Lavorare con Grunt e Sass]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2014/04/29/lavorare-con-grunt-e-sass/" />
  <id>https://magni.me/2014/04/29/lavorare-con-grunt-e-sass</id>
  <published>2014-04-29T00:00:00+00:00</published>
  <updated>2014-04-29T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;Lavorando con &lt;strong&gt;&lt;a href=&quot;http://sass-lang.com/&quot; target=&quot;_blank&quot;&gt;Sass&lt;/a&gt;&lt;/strong&gt; si sente subito l’esigenza di avere un tool che ci generi in automatico i file .css, le possibilità sono tante, una di queste può essere l’uso di &lt;strong&gt;&lt;a href=&quot;http://gruntjs.com/&quot; target=&quot;_blank&quot;&gt;Grunt&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://magni.me/wp-content/uploads/2014/04/grunt-logo-1.png&quot;&gt;&lt;img src=&quot;http://magni.me/wp-content/uploads/2014/04/grunt-logo-1.png&quot; alt=&quot;grunt-logo-1&quot; width=&quot;250&quot; height=&quot;333&quot; class=&quot;aligncenter size-full wp-image-987&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Per iniziare installiamo &lt;em&gt;NodeJs&lt;/em&gt;:&lt;br /&gt;
&lt;em&gt;su Ubuntu&lt;/em&gt;&lt;/p&gt;

&lt;pre class=&quot;lang:sh decode:true &quot;&gt;$ apt-get install python-software-properties
 $ apt-add-repository ppa:chris-lea/node.js
 $ apt-get update
 $ apt-get install nodejs
&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;su OSx&lt;/em&gt;&lt;/p&gt;

&lt;pre class=&quot;lang:sh decode:true &quot;&gt;$ brew install node&lt;/pre&gt;

&lt;!--more--&gt;

&lt;p&gt;Poi dobbiamo configurare le dipendenze npm:&lt;/p&gt;

&lt;pre class=&quot;lang:sh decode:true &quot;&gt;$ npm init
$ npm install grunt --save-dev
$ npm install grunt-contrib-sass --save-dev
$ npm install grunt-contrib-watch --save-dev
&lt;/pre&gt;

&lt;p&gt;A questo punto avremo un &lt;em&gt;packeage.json&lt;/em&gt; simile a questo:&lt;/p&gt;

&lt;pre class=&quot;lang:js decode:true &quot;&gt;{
  &quot;name&quot;: &quot;my-project&quot;,
  &quot;version&quot;: &quot;0.0.1&quot;,
  &quot;devDependencies&quot;: {
    &quot;grunt&quot;: &quot;^0.4.4&quot;,
    &quot;grunt-contrib-sass&quot;: &quot;~0.7.3&quot;,
    &quot;grunt-contrib-watch&quot;: &quot;~0.6.1&quot;
  }
}
&lt;/pre&gt;

&lt;p&gt;Per usare grunt da riga di comando dobbiamo installare &lt;em&gt;Grunt Cli&lt;/em&gt;&lt;/p&gt;

&lt;pre class=&quot;lang:sh decode:true &quot;&gt;$ sudo npm install -g grunt-cli
&lt;/pre&gt;

&lt;p&gt;Installiamo &lt;em&gt;Sass&lt;/em&gt; (necessità di Ruby installato)&lt;/p&gt;

&lt;pre class=&quot;lang:sh decode:true &quot;&gt;$ sudo gem install sass
&lt;/pre&gt;

&lt;p&gt;Configuriamo &lt;em&gt;Grunt&lt;/em&gt; creando un &lt;em&gt;Gruntfile.js&lt;/em&gt; così:&lt;/p&gt;

&lt;pre class=&quot;lang:js decode:true &quot;&gt;module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        sass: {
            dist: {
                files: {
                    'styles/style.css' : 'sass/style.scss',
                    'styles/style-ie.css' : 'sass/style-ie.scss',
                }
            }
        },
        watch: {
            css: {
                files: '**/*.scss',
                tasks: ['sass']
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-sass');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.registerTask('default',['watch']);
}
&lt;/pre&gt;

&lt;p&gt;A questo punto quando lavoriamo ci basterà lanciare grunt ed avremo il watch sui sass che, appena modificati, verranno compilati dalla cartella sass e spostati nella cartella styles.&lt;/p&gt;

&lt;pre class=&quot;lang:sh decode:true &quot;&gt;$ grunt
&lt;/pre&gt;

&lt;div class=&quot;kindleWidget kindleLight&quot;&gt;

&lt;/div&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2014/04/29/lavorare-con-grunt-e-sass/&quot;&gt;Lavorare con Grunt e Sass&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on April 29, 2014.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Forzare git ad utilizzare https]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2013/10/10/forzare-git-ad-utilizzare-https/" />
  <id>https://magni.me/2013/10/10/forzare-git-ad-utilizzare-https</id>
  <published>2013-10-10T00:00:00+00:00</published>
  <updated>2013-10-10T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;Nel caso si voglia forzare git ad utilizzare sempre la connessione https, quando utilizza &lt;a href=&quot;http://github.com/ilbonzo&quot; target=&quot;_blank&quot;&gt;github&lt;/a&gt;, possiamo impostarlo attraverso questo comando.&lt;/p&gt;

&lt;pre class=&quot;lang:sh decode:true &quot; title=&quot;Forzare git ad usare https&quot;&gt;git config --global url.https://github.com/.insteadOf git://github.com/&lt;/pre&gt;

&lt;div class=&quot;kindleWidget kindleLight&quot;&gt;

&lt;/div&gt;

  &lt;p&gt;&lt;a href=&quot;https://magni.me/2013/10/10/forzare-git-ad-utilizzare-https/&quot;&gt;Forzare git ad utilizzare https&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on October 10, 2013.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[San Zvan &#8211; Round Town | San Giovanni in Persiceto]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2013/09/23/san-zvan-round-town-san-giovanni-in-persiceto/" />
  <id>https://magni.me/2013/09/23/san-zvan-round-town-san-giovanni-in-persiceto</id>
  <published>2013-09-23T00:00:00+00:00</published>
  <updated>2013-09-23T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p style=&quot;text-align: center;&quot;&gt;
  &lt;a href=&quot;http://app.sanzvan.it&quot;&gt;&lt;img class=&quot;size-medium wp-image-952 aligncenter&quot; alt=&quot;qr-logo&quot; src=&quot;http://magni.me/wp-content/uploads/2013/09/qr-logo-300x300.png&quot; width=&quot;300&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Vivo a &lt;a href=&quot;https://it.wikipedia.org/wiki/San_Giovanni_in_Persiceto&quot;&gt;San Giovanni in Persiceto&lt;/a&gt; ormai da un anno, ed ho subito cominciato a sentire l’esigenza di conoscere quali sono le molte realtà presenti sul territorio. Per fare ciò ho pensato potesse essere utile utilizzare le informazioni che, attraverso i vari social network, erano già presenti sul web.&lt;br /&gt;
Cominciare a seguire i vari profili pubblici poteva essere un inizio, ma mi è sembrato che potesse essere più interessante sviluppare una piccola WebApp che mi aiutasse ad aggregare tutte queste informazioni.&lt;br /&gt;
Ovviamente questa è stata un ottima scusa per mettere le mani su alcune tecnologie interessanti.&lt;br /&gt;
Per la parte &lt;a href=&quot;https://github.com/ilbonzo/RoundTown&quot;&gt;Web App&lt;/a&gt; ho utilizzato:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://phonegap.com/&quot;&gt;Phonegap&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://backbonejs.org/&quot;&gt;Backbone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.requirejs.org/&quot;&gt;Requirejs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://jquerymobile.com&quot;&gt;jQueryMobile&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La parte &lt;a href=&quot;https://github.com/ilbonzo/RoundTownWs&quot;&gt;Web Service&lt;/a&gt; invece è sviluppata con:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://silex.sensiolabs.org/&quot;&gt;Silex&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.mongodb.org/&quot;&gt;MongoDB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://eden.openovate.com/&quot;&gt;Eden PHP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Al momento l’applicazione è utilizzabile da web o installandola dal Google Play.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://app.sanzvan.it&quot;&gt;http://app.sanzvan.it&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Il codice è disponibile su &lt;a href=&quot;https://github.com/ilbonzo/RoundTown&quot;&gt;github&lt;/a&gt; ed è rilasciato sotto licenza &lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.html&quot;&gt;GNU General Public License, Version 2.0&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Nel caso qualcuno volesse fare suggerimenti o contribuire al progetto può contattarmi a &lt;em&gt;sanzvan(@)magni.me&lt;/em&gt;.&lt;/p&gt;

&lt;div class=&quot;kindleWidget kindleLight&quot;&gt;

&lt;/div&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2013/09/23/san-zvan-round-town-san-giovanni-in-persiceto/&quot;&gt;San Zvan &#8211; Round Town | San Giovanni in Persiceto&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on September 23, 2013.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Aggiungere un proprio namespace in Silex]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2013/08/12/aggiungere-un-proprio-namespace-in-silex/" />
  <id>https://magni.me/2013/08/12/aggiungere-un-proprio-namespace-in-silex</id>
  <published>2013-08-12T00:00:00+00:00</published>
  <updated>2013-08-12T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;&lt;img class=&quot;alignnone size-full wp-image-919 aligncenter&quot; alt=&quot;silex&quot; src=&quot;http://magni.me/wp-content/uploads/2013/08/silex.jpg&quot; width=&quot;202&quot; height=&quot;202&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Se vogliamo aggiungere un nostro namespace personalizzato potendo caricare le classi attraverso l’autoloader dei Silex dobbiamo seguire questa procedura.&lt;/p&gt;

&lt;p&gt;Creiamo la cartella per le nostre classi:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ cd my-silex-project/src
$ mkdir NewNamespace
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Creiamo la classe che vogliamo caricare:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ vi src/NewNamespace/MyClass.php
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Nella classe mettiamo il codice per registrare il nuovo namespace:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;namespace NewNamespace;
class MyClass {
    public function __construct() {
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Aggiungiamo il nostro namespace al &lt;em&gt;composer.json&lt;/em&gt; in modo che l’autoloader di &lt;strong&gt;Silex&lt;/strong&gt; possa utilizzarlo:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;{
  &quot;require&quot;: {
      &quot;silex/silex&quot;: &quot;1.0.*@dev&quot;
  },
  &quot;autoload&quot;: {
      &quot;psr-0&quot;: {
          &quot;NewNamespace&quot;: &quot;src/&quot;
      }
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Lanciamo* composer* update&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ composer update
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Ora possiamo utilizzare le classi del nostro namespace nel progetto &lt;strong&gt;Silex&lt;/strong&gt;.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;use Silex\Application;
use NewNamespace\MyClass;
require_once __DIR__.'/../vendor/autoload.php';
$app = new Application();
//add myclass
$app['myclass'] = function () {
    return new MyClass();
};
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;kindleWidget kindleLight&quot;&gt;

&lt;/div&gt;

  &lt;p&gt;&lt;a href=&quot;https://magni.me/2013/08/12/aggiungere-un-proprio-namespace-in-silex/&quot;&gt;Aggiungere un proprio namespace in Silex&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on August 12, 2013.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Aggiornare il fork di un repository github dal repository originale]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2013/08/09/aggiornare-il-fork-di-un-repository-github-dal-repository-originale/" />
  <id>https://magni.me/2013/08/09/aggiornare-il-fork-di-un-repository-github-dal-repository-originale</id>
  <published>2013-08-09T00:00:00+00:00</published>
  <updated>2013-08-09T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p style=&quot;text-align: left;&quot;&gt;
  &lt;img class=&quot;size-medium wp-image-907 aligncenter&quot; alt=&quot;fork&quot; src=&quot;http://magni.me/wp-content/uploads/2013/08/fork-300x165.png&quot; width=&quot;300&quot; height=&quot;165&quot; /&gt;&lt;br /&gt; Se abbiamo fatto un fork di un repository su &lt;a href=&quot;https://github.com/ilbonzo&quot;&gt;github&lt;/a&gt; e vogliamo aggiornare il nostro repo con le modifiche fatte anche sul repo originale dobbiamo eseguire le seguenti operazioni:
&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Aggiungiamo l’url del repository originale nei remote&lt;/em&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ git remote add --track master openovate https://github.com/Openovate/eden.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Verifichiamo che il repo sia stato aggiunto&lt;/em&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ git remote
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Eseguiamo il fetch del repository originale, questo creerà un branch chiamato openovate/master&lt;/em&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ git fetch openovate
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Eseguiamo il merge con il nostro master&lt;/em&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ git merge openovate/master
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Mandiamo al nostro origin le nuove modifiche&lt;/em&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ git push origin master
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2013/08/09/aggiornare-il-fork-di-un-repository-github-dal-repository-originale/&quot;&gt;Aggiornare il fork di un repository github dal repository originale&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on August 09, 2013.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Gestione dei processi di Windows da command line]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2013/07/05/gestione-dei-processi-di-windows-da-command-line/" />
  <id>https://magni.me/2013/07/05/gestione-dei-processi-di-windows-da-command-line</id>
  <published>2013-07-05T00:00:00+00:00</published>
  <updated>2013-07-05T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p style=&quot;text-align: left;&quot;&gt;
  &lt;img class=&quot;size-thumbnail wp-image-896 aligncenter&quot; alt=&quot;ps&quot; src=&quot;http://magni.me/wp-content/uploads/2013/07/ps-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;br /&gt; Ecco alcuni comandi utili per fermare/gestire i processi su macchine &lt;strong&gt;windows&lt;/strong&gt; attraverso la command line, in modo simile a come si fa abitualmente su &lt;em&gt;linux&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ottenere la lista dei processi:&lt;/em&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;tasklist /v
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Fermare un processo in base al PID:&lt;/em&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;taskkill /f /pid 1234
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Fermare un processo in base al nome:&lt;/em&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;taskkill /f /im java*
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;L’opzione /f serve per forzare l’interruzione del processo.&lt;/p&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2013/07/05/gestione-dei-processi-di-windows-da-command-line/&quot;&gt;Gestione dei processi di Windows da command line&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on July 05, 2013.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Installare Apache Ant su Windows]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2013/06/26/installare-apache-ant-su-windows/" />
  <id>https://magni.me/2013/06/26/installare-apache-ant-su-windows</id>
  <published>2013-06-26T00:00:00+00:00</published>
  <updated>2013-06-26T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;&lt;img src=&quot;http://magni.me/wp-content/uploads/2013/06/554px-Apache-Ant-logo.svg_-300x185.png&quot; alt=&quot;554px-Apache-Ant-logo.svg&quot; width=&quot;300&quot; height=&quot;185&quot; class=&quot;aligncenter size-medium wp-image-886&quot; /&gt;&lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;http://ant.apache.org/&quot; title=&quot;apache Ant&quot;&gt;Apache Ant&lt;/a&gt;&lt;/strong&gt; è un software molto utile per lo sviluppo in &lt;em&gt;Java&lt;/em&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Apache Ant è un software per l’automazione del processo di build. È simile a make ma scritto in Java ed è principalmente orientato allo sviluppo Java. Ant è un progetto Apache, open source, ed è rilasciato sotto licenza Apache.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Per lo sviluppo su &lt;em&gt;Android&lt;/em&gt; per esempio viene utilizzato Ant per gestire la build, ecco come installarlo su &lt;em&gt;Windows&lt;/em&gt;:&lt;br /&gt;
&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;Installare il Java Development Kit &lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/downloads/index.html&quot;&gt;http://www.oracle.com/technetwork/java/javase/downloads/index.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aggiungere la variabile di ambiente JAVA_HOME, ad esempio&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;C:\Program Files\Java\jdk1.7.0_25
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Aggiungere la variabile alla variabile di Ambiente PATH il percorso dei binari&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;%JAVA_HOME%\bin
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Sacricare &lt;strong&gt;ANT&lt;/strong&gt; in versione binaria &lt;a href=&quot;http://ant.apache.org/bindownload.cgi&quot;&gt;http://ant.apache.org/bindownload.cgi&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Estrarre lo zip in una cartella, esempio&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;C:\Ant
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Impostare la variabile di ambiente ANT_HOME inserendo il percorso dove abbiamo scompattato &lt;strong&gt;ANT&lt;/strong&gt;, esempio&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;C:\Ant
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;A questo punto per verificare che sia tutto ok apriamo una riga di comando e diamo il comando ant -version:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;C:\Users\magnim&amp;gt;ant -version
Apache Ant(TM) version 1.9.1 compiled on May 15 2013
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Se l’output non da errori vuol dire che Ant è installato correttamente.&lt;/p&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2013/06/26/installare-apache-ant-su-windows/&quot;&gt;Installare Apache Ant su Windows&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on June 26, 2013.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Reimpostare la password di root in Mysql]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2013/06/20/reimpostare-la-password-dellutente-root-in-mysql/" />
  <id>https://magni.me/2013/06/20/reimpostare-la-password-dellutente-root-in-mysql</id>
  <published>2013-06-20T00:00:00+00:00</published>
  <updated>2013-06-20T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p style=&quot;text-align: center;&quot;&gt;
  &lt;a href=&quot;http://magni.me/wp-content/uploads/2013/06/mysql_logo.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-844 aligncenter&quot; alt=&quot;mysql_logo&quot; src=&quot;http://magni.me/wp-content/uploads/2013/06/mysql_logo-300x155.png&quot; width=&quot;300&quot; height=&quot;155&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Nel caso si voglia reimpostare la password dell’utente root di &lt;strong&gt;&lt;a href=&quot;http://www.mysql.com/&quot; title=&quot;MySQL&quot;&gt;Mysql Server&lt;/a&gt;&lt;/strong&gt; abbiamo due metodi:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Primo metodo&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;mysqladmin -u root -p password secret
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;secret&lt;/em&gt; sarà la nostra nuova password.&lt;br /&gt;
Per fare la modifica ci verrà però chiesta l’attuale password di root, quindi è necessario conoscerla.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Secondo metodo&lt;/strong&gt;&lt;br /&gt;
Se ci fossimo dimenticati la password di root precedentemente impostata, la procedura da seguire è invece questa:&lt;/p&gt;

&lt;p&gt;Prima di tutto dobbiamo fermare il servizio &lt;em&gt;mysql&lt;/em&gt;.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;service mysqld stop
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Ora dobbiamo avviare il servizio, disabilitando i sistemi di autenticazione&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;mysqld --skip-grant-tables &amp;amp;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Aggiungendo l’opzione –skip-networking possiamo disabilitare l’accesso da remoto per evitare che qualcuno sfrutti questa temporanea apertura.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;mysqld --skip-grant-tables --skip-networking &amp;amp;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Ora possiamo accedere a Mysql senza password:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;mysql -u root mysql
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Entrati nella shell di mysql settiamo la nuova password di root:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;UPDATE user SET password=PASSWORD(&quot;newpassword&quot;) WHERE User='root';
FLUSH PRIVILEGES;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Ora riavviamo il processo mysql ed avremo la possibilità di accedere con la nuova password&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;service mysqld restart
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2013/06/20/reimpostare-la-password-dellutente-root-in-mysql/&quot;&gt;Reimpostare la password di root in Mysql&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on June 20, 2013.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Installare Compass su Windows per utilizzare Sass]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2013/06/03/installare-compass-su-windows-per-utilizzare-sass/" />
  <id>https://magni.me/2013/06/03/installare-compass-su-windows-per-utilizzare-sass</id>
  <published>2013-06-03T00:00:00+00:00</published>
  <updated>2013-06-03T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;&lt;a href=&quot;http://magni.me/wp-content/uploads/2013/06/sass-compass.png&quot;&gt;&lt;img src=&quot;http://magni.me/wp-content/uploads/2013/06/sass-compass-300x148.png&quot; alt=&quot;sass-compass&quot; width=&quot;300&quot; height=&quot;148&quot; class=&quot;alignleft size-medium wp-image-825&quot; /&gt;&lt;/a&gt;Da poche settimane ho la “fortuna” di dover lavorare in ambiente Windows, quindi mi sto scontrando con la configurazione dell’ambiente di lavoro.&lt;/p&gt;

&lt;p&gt;Ecco un piccolo howto per configurare &lt;strong&gt;&lt;a href=&quot;http://compass-style.org/&quot; title=&quot;Compass Style&quot;&gt;Compass&lt;/a&gt;&lt;/strong&gt; su windows al fine di lavorare con &lt;strong&gt;&lt;a href=&quot;http://sass-lang.com/&quot; title=&quot;Sass&quot;&gt;Sass&lt;/a&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Installare Ruby sulla macchina:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;http://rubyinstaller.org/downloads/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Aprire il prompt di MS-DOS con Ruby&lt;/p&gt;

&lt;p&gt;Installare le gemme&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ gem update --system
$ gem install compass
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Verificare che compass sia installato correttamente lanciare il comando&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ruby 2.0.0p195 (2013-05-14) [i386-mingw32]
C:\Users\magnim&amp;gt;compass -v
Compass 0.12.2 (Alnilam)
Copyright (c) 2008-2013 Chris Eppstein
Released under the MIT License.
Compass is charityware.
Please make a tax deductable donation for a worthy cause: http://umdf.org/compass
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;L’installazione è completa.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compilare i .scss&lt;/strong&gt;&lt;br /&gt;
Per generare i css lanciare da riga di comando:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;C:\Users\magnim&amp;gt;compass compile --config compass.config.rb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Compass in background&lt;/strong&gt;&lt;br /&gt;
Per avere compass che in background genera i css che vengono modificati lanciare da riga di comando:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;C:\Users\magnim&amp;gt;compass watch --config compass-config.rb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2013/06/03/installare-compass-su-windows-per-utilizzare-sass/&quot;&gt;Installare Compass su Windows per utilizzare Sass&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on June 03, 2013.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Migrare un repository da Svn a Git mantenendone la history dei commit]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2013/05/02/migrare-un-repository-da-svn-a-git-mantenendone-la-history-dei-commit/" />
  <id>https://magni.me/2013/05/02/migrare-un-repository-da-svn-a-git-mantenendone-la-history-dei-commit</id>
  <published>2013-05-02T00:00:00+00:00</published>
  <updated>2013-05-02T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;&lt;img src=&quot;http://magni.me/wp-content/uploads/2013/05/img0372-300x225.jpg&quot; alt=&quot;IMG_0372&quot; width=&quot;300&quot; height=&quot;225&quot; class=&quot;alignleft size-medium wp-image-795&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Nel caso si voglia portare un repository &lt;a href=&quot;http://it.wikipedia.org/wiki/Subversion&quot;&gt;&lt;strong&gt;svn&lt;/strong&gt;&lt;/a&gt; su &lt;a href=&quot;http://it.wikipedia.org/wiki/Git_(software)&quot;&gt;&lt;strong&gt;git&lt;/strong&gt;&lt;/a&gt; mantenendone la history dei vari commit si può seguire questa procedura.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installare git svn:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ sudo aptitude install git-svn
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Importare il &lt;em&gt;trunk&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Clonare con git il repo svn:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ git svn clone -s http://url.com/myrepos
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;L’opzione -s va usata per specificare che il repo svn ha la struttura [trunk/branches/tags]&lt;/p&gt;

&lt;p&gt;Creare il repository git remoto (per esempio su &lt;a href=&quot;http://bitbucket.org/ilbonzo&quot;&gt;bitbucket&lt;/a&gt; o &lt;a href=&quot;http://github.com/ilbonzo&quot;&gt;github&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Aggiungere il repository remoto:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ git remote add origin https://ilbonzo@bitbucket.org/ilbonzo/myrepos.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Fare push di tutto su origin:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ git push -u --all origin
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Gestione dei &lt;em&gt;branches&lt;/em&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Lista dei branches importati da svn&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ git branch -r
FirstBranch
SecondBranch
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Diciamo a git di tenere traccia di quei branch&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ git branch --track FirstBranch
$ git branch --track SecondBranch
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Inviamo i branch sul repo remoto&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ git push -u --all origin
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Finalmente il nostro codice è su &lt;strong&gt;git&lt;/strong&gt; con tutti i vantaggi del caso.&lt;/p&gt;

&lt;div id=&quot;pdrp_endAttribution&quot;&gt;
  photo by: &lt;a href=&quot;http://flickr.com/41894185093@N01/16372763&quot; target=&quot;_blank&quot; class=&quot;pdrp_link pdrp_attributionLink&quot;&gt; Jon_Aquino&lt;/a&gt;
&lt;/div&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2013/05/02/migrare-un-repository-da-svn-a-git-mantenendone-la-history-dei-commit/&quot;&gt;Migrare un repository da Svn a Git mantenendone la history dei commit&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on May 02, 2013.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Passare a Partita IVA, al @pugBologna]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2013/02/21/passare-a-partita-iva-al-pugbologna/" />
  <id>https://magni.me/2013/02/21/passare-a-partita-iva-al-pugbologna</id>
  <published>2013-02-21T00:00:00+00:00</published>
  <updated>2013-02-21T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;&lt;a href=&quot;http://magni.me/wp-content/uploads/2013/02/piva-hh.png&quot;&gt;&lt;img class=&quot;alignleft size-medium wp-image-761&quot; alt=&quot;Perché hai aperto la partita iva&quot; src=&quot;http://magni.me/wp-content/uploads/2013/02/piva-hh-300x163.png&quot; width=&quot;300&quot; height=&quot;163&quot; /&gt;&lt;/a&gt;Ecco le slide del talk fatto ieri sera al &lt;a href=&quot;http://bologna.grusp.org&quot;&gt;PugBologna&lt;/a&gt; da&lt;a href=&quot;http://huynh.cc/&quot;&gt; Hoang C. Huynh&lt;/a&gt; (&lt;a href=&quot;https://twitter.com/Aetheros&quot;&gt;@Aetheros&lt;/a&gt;) a cui ho partecipato come caso “umano” portando la mia esperienza di quattro anni di partita iva.&lt;/p&gt;

&lt;div style=&quot;margin-bottom: 5px;&quot;&gt;
  &lt;strong&gt; &lt;a title=&quot;Passare a Partita IVA, al PUGBO&quot; href=&quot;http://www.slideshare.net/Aetheros/hh-pugbo-passareapiva&quot; target=&quot;_blank&quot;&gt;Passare a Partita IVA, al PUGBO&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;http://www.slideshare.net/Aetheros&quot; target=&quot;_blank&quot;&gt;Hoang C. Huynh&lt;/a&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;div class=&quot;kindleWidget kindleLight&quot;&gt;

&lt;/div&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2013/02/21/passare-a-partita-iva-al-pugbologna/&quot;&gt;Passare a Partita IVA, al @pugBologna&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on February 21, 2013.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[PHP 5.3/5.4 features @pugBologna]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2013/02/18/php-53-54-features-pugbologna/" />
  <id>https://magni.me/2013/02/18/php-53-54-features-pugbologna</id>
  <published>2013-02-18T00:00:00+00:00</published>
  <updated>2013-02-18T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;Ecco le slide del mio speech fatto al &lt;a href=&quot;http://bologna.grusp.org&quot; title=&quot;Pug Bologna&quot;&gt;pugBo&lt;/a&gt; di gennaio sulle novità introdotte in PHP 5.3/5.4.&lt;/p&gt;

&lt;p&gt;vedi le &lt;a href=&quot;http://matteomagni.net/presentation-pugbo-php54/&quot;&gt;slide su github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Le slide sono fatte in HTML5 con il template di &lt;a href=&quot;http://code.google.com/p/html5slides/&quot; title=&quot;HTML5 google slide&quot;&gt;Google&lt;/a&gt;&lt;/p&gt;

&lt;div class=&quot;kindleWidget kindleLight&quot;&gt;

&lt;/div&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2013/02/18/php-53-54-features-pugbologna/&quot;&gt;PHP 5.3/5.4 features @pugBologna&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on February 18, 2013.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Playlist 2012]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2013/01/14/playlist-2012/" />
  <id>https://magni.me/2013/01/14/playlist-2012</id>
  <published>2013-01-14T00:00:00+00:00</published>
  <updated>2013-01-14T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;Preso direttamente da &lt;a href=&quot;http://www.lastfm.it/user/ilbonzo_org&quot; title=&quot;Last.fm&quot; target=&quot;_blank&quot;&gt;Lastfm&lt;/a&gt; ecco l’elenco dei brani che ho ascoltato di più nel 2012.&lt;/p&gt;

&lt;p&gt;1 Placebo – Running Up That Hill 102&lt;br /&gt;
2 The Cure – Just Like Heaven 95&lt;br /&gt;
3 The Cure – Lullaby 93&lt;br /&gt;
4 Alter Bridge – Watch Over You Ft. Cristina Scabbia 80&lt;br /&gt;
5 Social Distortion – California (Hustle And Flow) 73&lt;br /&gt;
6 The Cure – Friday I’m in Love 71&lt;br /&gt;
7 Alter Bridge – Broken Wings 67&lt;br /&gt;
8 Alter Bridge – Before Tomorrow Comes 66&lt;br /&gt;
9 Alter Bridge – Brand New Start 65&lt;br /&gt;
10 Alice in Chains – Nutshell 64&lt;br /&gt;
11 Alter Bridge – Come To Life 62&lt;br /&gt;
12 The Cure – Pictures of You 60&lt;br /&gt;
12 Seether – Fine Again 60&lt;br /&gt;
14 Alter Bridge – Open Your Eyes 56&lt;br /&gt;
15 The Cure – Boys Don’t Cry 53&lt;br /&gt;
16 The Cure – Close To Me 52&lt;/p&gt;

&lt;p&gt;Per le statistiche grazie a lastfm, che purtroppo chiuderà in italia.&lt;/p&gt;

&lt;div class=&quot;kindleWidget kindleLight&quot;&gt;

&lt;/div&gt;

  &lt;p&gt;&lt;a href=&quot;https://magni.me/2013/01/14/playlist-2012/&quot;&gt;Playlist 2012&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on January 14, 2013.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[HTML5 e Css3 – WebMaster e WebDesigner]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2012/12/21/html5-css3-webmaster-e-webdesigner/" />
  <id>https://magni.me/2012/12/21/html5-css3-webmaster-e-webdesigner</id>
  <published>2012-12-21T00:00:00+00:00</published>
  <updated>2012-12-21T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;Queste solo le slide per il modulo su &lt;a href=&quot;http://it.wikipedia.org/wiki/HTML5&quot; title=&quot;HTML5 su Wikipedia&quot;&gt;HTML5&lt;/a&gt; e &lt;a href=&quot;http://it.wikipedia.org/wiki/Css&quot;&gt;Css3&lt;/a&gt; utilizzate al corso per WebMaster e WebDesigner che sto tenendo in Synergia a Bologna.&lt;/p&gt;

&lt;div style=&quot;width:422px;margin:auto;&quot;&gt;
  &lt;div style=&quot;font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;text-align:left;&quot;&gt;
    &lt;a title=&quot;SlideShare&quot; href=&quot;http://www.slideshare.net/?src=multiwidget&quot;&gt;&lt;img src=&quot;http://static.slidesharecdn.com/swf/logo_embd.png&quot; style=&quot;border:0px none;margin-bottom:-5px&quot; alt=&quot;SlideShare&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.slideshare.net/widgets/playlist&quot; title=&quot;Get your SlideShare Playlist&quot;&gt;Get your SlideShare Playlist&lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;kindleWidget kindleLight&quot;&gt;

&lt;/div&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2012/12/21/html5-css3-webmaster-e-webdesigner/&quot;&gt;HTML5 e Css3 – WebMaster e WebDesigner&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on December 21, 2012.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[jQuery – WebMaster e WebDesigner]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2012/11/06/jquery-webmaster-e-webdesigner/" />
  <id>https://magni.me/2012/11/06/jquery-webmaster-e-webdesigner</id>
  <published>2012-11-06T00:00:00+00:00</published>
  <updated>2012-11-06T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;Queste solo le slide per il modulo su &lt;a href=&quot;http://it.wikipedia.org/wiki/jQuery&quot;&gt;jQuery&lt;/a&gt; utilizzate al corso per WebMaster e WebDesigner che sto tenendo in &lt;a href=&quot;http://www.synergia.it/&quot;&gt;Synergia&lt;/a&gt; a Bologna.&lt;/p&gt;

&lt;div style=&quot;width:422px;margin:auto;&quot;&gt;
  &lt;div style=&quot;font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;text-align:left;&quot;&gt;
    &lt;a title=&quot;SlideShare&quot; href=&quot;http://www.slideshare.net/?src=multiwidget&quot;&gt;&lt;img src=&quot;http://static.slidesharecdn.com/swf/logo_embd.png&quot; style=&quot;border:0px none;margin-bottom:-5px&quot; alt=&quot;SlideShare&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.slideshare.net/widgets/playlist&quot; title=&quot;Get your SlideShare Playlist&quot;&gt;Get your SlideShare Playlist&lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;kindleWidget kindleLight&quot;&gt;

&lt;/div&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2012/11/06/jquery-webmaster-e-webdesigner/&quot;&gt;jQuery – WebMaster e WebDesigner&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on November 06, 2012.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Javascript – WebMaster e WebDesigner]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2012/10/23/javascript-webmaster-e-webdesigner/" />
  <id>https://magni.me/2012/10/23/javascript-webmaster-e-webdesigner</id>
  <published>2012-10-23T00:00:00+00:00</published>
  <updated>2012-10-23T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;Queste solo le slide per il modulo su &lt;a href=&quot;http://it.wikipedia.org/wiki/javascript&quot;&gt;Javascript&lt;/a&gt; utilizzate al corso per WebMaster e WebDesigner che sto tenendo in &lt;a href=&quot;http://www.synergia.it/&quot;&gt;Synergia&lt;/a&gt; a Bologna.&lt;/p&gt;

&lt;div style=&quot;width:422px;margin:auto;&quot;&gt;
  &lt;div style=&quot;font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;text-align:left;&quot;&gt;
    &lt;a title=&quot;SlideShare&quot; href=&quot;http://www.slideshare.net/?src=multiwidget&quot;&gt;&lt;img src=&quot;http://static.slidesharecdn.com/swf/logo_embd.png&quot; style=&quot;border:0px none;margin-bottom:-5px&quot; alt=&quot;SlideShare&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.slideshare.net/widgets/playlist&quot; title=&quot;Get your SlideShare Playlist&quot;&gt;Get your SlideShare Playlist&lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;kindleWidget kindleLight&quot;&gt;

&lt;/div&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2012/10/23/javascript-webmaster-e-webdesigner/&quot;&gt;Javascript – WebMaster e WebDesigner&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on October 23, 2012.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Web Usability – WebMaster e WebDesigner]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2012/10/05/web-usability-webmaster-e-webdesigner/" />
  <id>https://magni.me/2012/10/05/web-usability-webmaster-e-webdesigner</id>
  <published>2012-10-05T00:00:00+00:00</published>
  <updated>2012-10-05T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;Queste solo le slide per il modulo sulla &lt;a href=&quot;http://it.wikipedia.org/wiki/Usabilit%C3%A0_del_web&quot;&gt;Web Usability&lt;/a&gt; utilizzate al corso per WebMaster e WebDesigner che sto tenendo in &lt;a href=&quot;http://www.synergia.it/&quot;&gt;Synergia&lt;/a&gt; a Bologna&lt;/p&gt;

&lt;div style=&quot;width:422px;margin:auto;&quot;&gt;
  &lt;div style=&quot;font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;text-align:left;&quot;&gt;
    &lt;a title=&quot;SlideShare&quot; href=&quot;http://www.slideshare.net/?src=multiwidget&quot;&gt;&lt;img src=&quot;http://static.slidesharecdn.com/swf/logo_embd.png&quot; style=&quot;border:0px none;margin-bottom:-5px&quot; alt=&quot;SlideShare&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.slideshare.net/widgets/playlist&quot; title=&quot;Get your SlideShare Playlist&quot;&gt;Get your SlideShare Playlist&lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;kindleWidget kindleLight&quot;&gt;

&lt;/div&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2012/10/05/web-usability-webmaster-e-webdesigner/&quot;&gt;Web Usability – WebMaster e WebDesigner&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on October 05, 2012.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[Scrivere un plugin per Trac]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2012/07/20/scrivere-un-plugin-per-trac/" />
  <id>https://magni.me/2012/07/20/scrivere-un-plugin-per-trac</id>
  <published>2012-07-20T00:00:00+00:00</published>
  <updated>2012-07-20T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;&lt;a href=&quot;http://magni.me/wp-content/uploads/2012/07/trac_logo.png&quot;&gt;&lt;img src=&quot;http://magni.me/wp-content/uploads/2012/07/trac_logo-150x73.png&quot; alt=&quot;&quot; title=&quot;trac_logo&quot; width=&quot;150&quot; height=&quot;73&quot; class=&quot;aligncenter size-thumbnail wp-image-659&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Recentemente mi sta capitando spesso di dover mettere le mani su &lt;a href=&quot;http://trac.edgewall.org/&quot; title=&quot;Trac Project Management&quot; target=&quot;_blank&quot;&gt;Trac&lt;/a&gt;, il gestore di progetti scritto in &lt;em&gt;Python&lt;/em&gt;.&lt;br /&gt;
Ecco quindi un piccolo tutorial su come scrivere un plugin per questo sistema.&lt;/p&gt;

&lt;p&gt;Creiamo le directory che conterranno il codice:&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;&gt;$ mkdir bonzo-plugin/
$ mkdir bonzo-plugin/bonzo/
&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Scriviamo il primo file, il quale conterrà il codice principale del plugin:&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;&gt;$ vim bonzo-plugin/bonzo/bonzo.py&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Ecco il cuore del nostro plugin che semplicemente genera una nuova voce di menu “bonzo” che permette di aprire una nuova pagina di url [/bonzo].&lt;/p&gt;

&lt;pre class=&quot;brush:python&quot;&gt;# Bonzo plugin
import re
from genshi.builder import tag
from trac.core import *
from trac.web import IRequestHandler
from trac.web.chrome import INavigationContributor, ITemplateProvider
class BonzoPlugin(Component):
    implements(INavigationContributor, IRequestHandler, ITemplateProvider)
    # INavigationContributor methods
    def get_active_navigation_item(self, req):
        return 'Bonzo'
    def get_navigation_items(self, req):
        if 'TRAC_ADMIN' in req.perm: #QUESTO PERMETTE DI GESTIRE I PERMESSI DI QUESTO MENU
            yield ('mainnav', 'bonzo',
                tag.a('Bonzo', href=req.href.bonzo()))
    # IRequestHandler methods
    def match_request(self, req):
	if 'TRAC_ADMIN' in req.perm: #QUESTO PERMETTE DI GESTIRE I PERMESSI DI QUESTa pagina
        	return re.match(r'/bonzo(?:_trac)?(?:/.*)?$', req.path_info)
    def process_request(self, req):
        data = {}
        # This tuple is for Genshi (template_name, data, content_type)
        # Without data the trac layout will not appear.
        return 'bonzo.html', data, None
    # ITemplateProvider methods
    # Used to add the plugin's templates and htdocs
    def get_templates_dirs(self):
        from pkg_resources import resource_filename
        return [resource_filename(__name__, 'templates')]
    def get_htdocs_dirs(self):
        return []
&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Per poter visualizzare la pagina dobbiamo scriver il nostro template che utilizza &lt;a href=&quot;http://genshi.edgewall.org/&quot; title=&quot;Genshi template languige&quot; target=&quot;_blank&quot;&gt;Genshi&lt;/a&gt; come template language.&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;&gt;$ vim bonzo-plugin/bonzo/templates/bonzo.html&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;pre class=&quot;brush:php&quot;&gt;
&amp;lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;
      xmlns:py=&quot;http://genshi.edgewall.org/&quot;
      xmlns:xi=&quot;http://www.w3.org/2001/XInclude&quot;&amp;gt;
  &amp;lt;xi:include href=&quot;layout.html&quot; /&amp;gt;



    &lt;div id=&quot;ctxtnav&quot; class=&quot;nav&quot;&gt;

&lt;/div&gt;



&lt;div id=&quot;content&quot; class=&quot;helloworld&quot;&gt;
  &lt;h1&gt;
    Bonzo
  &lt;/h1&gt;

&lt;/div&gt;

&amp;lt;/html&amp;gt;
&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;A questo punto dobbiamo inserire il tutto in un modulo e per ciò ci basta fare un semplice file di una riga.&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;&gt;$ vim /bonzo-plugin$ vim bonzo/__init__.py&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;pre class=&quot;brush:python&quot;&gt;# Bonzo module
from bonzo import *
&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Finito, ora non ci resta che fare deploy del plugin.&lt;br /&gt;
Creiamo il file di setup dove andiamo a mettere il nome del Plugin, la sua versione e andiamo ad settare quale sarà la directory contenente i templates.&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;&gt;$ vim bonzo-plugin/setup.py &lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;pre class=&quot;brush:python&quot;&gt;from setuptools import find_packages, setup

# name can be any name.  This name will be used to create the .egg file.
# name that is used in packages is the one that is used in the trac.ini file.
# use package name as entry_points
setup(
    name='TracBonzo', version='0.1',
    packages=find_packages(exclude=['*.tests*']),
    entry_points = &quot;&quot;&quot;
        [trac.plugins]
        bonzo = bonzo
    &quot;&quot;&quot;,
    package_data={'bonzo': ['templates/*.html']},
)
&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Diamo il seguente comando per creare l’egg.&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;&gt;$ python setup.py bdist_egg&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Se non ci sono errori ci ritroviamo una directory /dist con dentro un file .egg&lt;br /&gt;
Ora abbiamo due strade:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Installare direttamente il plugin nella istanza di trac&lt;/li&gt;
  &lt;li&gt;installare il plugin a livello di environment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Per il primo caso ci basta copiare il file .egg dentro la directory /plugins dell’istanza di Trac e riavviare il webserver.&lt;br /&gt;
Nel secondo caso, per installarlo nel virtual env posizionato in /var/trac-env, possiamo dare i seguenti comandi:&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;&gt;sudo mkdir /var/trac-env
cd /var/trac-env/
sudo virtualenv python
sudo /var/trac-env/python/bin/easy_install   http://svn.edgewall.org/repos/trac/tags/trac-0.11
sudo /var/trac-env/python/bin/easy_install dist/TracBonzo-0.1-py2.6.egg&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Dopo aver riavviato il web server il plugin è disponibile nell’enviroment e basta attivarlo attraverso l’admin plugin.&lt;/p&gt;

&lt;div class=&quot;kindleWidget kindleLight&quot;&gt;

&lt;/div&gt;


  &lt;p&gt;&lt;a href=&quot;https://magni.me/2012/07/20/scrivere-un-plugin-per-trac/&quot;&gt;Scrivere un plugin per Trac&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on July 20, 2012.&lt;/p&gt;</content>
</entry>


<entry>
  <title type="html"><![CDATA[SEO e Web Marketing &#8211; WebMaster e WebDesigner]]></title>
  <link rel="alternate" type="text/html" href="https://magni.me/2012/07/17/seo-e-web-marketing-webmaster-e-webdesigner/" />
  <id>https://magni.me/2012/07/17/seo-e-web-marketing-webmaster-e-webdesigner</id>
  <published>2012-07-17T00:00:00+00:00</published>
  <updated>2012-07-17T00:00:00+00:00</updated>
  <author>
    <name>Matteo Magni</name>
    <uri>https://magni.me</uri>
    <email>matteo@magni.me</email>
  </author>
  <content type="html">&lt;p&gt;Queste solo le slide per il modulo su &lt;a href=&quot;http://it.wikipedia.org/wiki/Ottimizzazione_(motori_di_ricerca)&quot; title=&quot;wikipedia SEO&quot; target=&quot;_blank&quot;&gt;SEO&lt;/a&gt; e &lt;a href=&quot;http://it.wikipedia.org/wiki/Webmarketing&quot; title=&quot;web marketing su wikipedia&quot; target=&quot;_blank&quot;&gt;Web Marketing&lt;/a&gt; utilizzate al corso per WebMaster e WebDesigner che sto tenendo in &lt;a href=&quot;http://www.synergia.it/&quot; title=&quot;Synergia&quot; target=&quot;_blank&quot;&gt;Synergia&lt;/a&gt; a Bologna&lt;/p&gt;

&lt;div style=&quot;width:422px;margin:auto;&quot;&gt;
  &lt;div style=&quot;font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;text-align:left;&quot;&gt;
    &lt;a title=&quot;SlideShare&quot; href=&quot;http://www.slideshare.net/?src=multiwidget&quot;&gt;&lt;img src=&quot;http://static.slidesharecdn.com/swf/logo_embd.png&quot; style=&quot;border:0px none;margin-bottom:-5px&quot; alt=&quot;SlideShare&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.slideshare.net/widgets/playlist&quot; title=&quot;Get your SlideShare Playlist&quot;&gt;Get your SlideShare Playlist&lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;kindleWidget kindleLight&quot;&gt;

&lt;/div&gt;

  &lt;p&gt;&lt;a href=&quot;https://magni.me/2012/07/17/seo-e-web-marketing-webmaster-e-webdesigner/&quot;&gt;SEO e Web Marketing &#8211; WebMaster e WebDesigner&lt;/a&gt; was originally published by Matteo Magni at &lt;a href=&quot;https://magni.me&quot;&gt;Matteo Magni&lt;/a&gt; on July 17, 2012.&lt;/p&gt;</content>
</entry>

</feed>