
<?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>Traffyk - I'm driving crazy &#187; Programming</title>
	<atom:link href="http://www.traffyk.com/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.traffyk.com</link>
	<description>Una volta davo consigli e risorse per blog.. ora invece booh quello che mi pare :p</description>
	<lastBuildDate>Fri, 09 Dec 2011 19:22:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>WordPress plugin: Custom Fields Translate, collega gli articoli tradotti italiano/inglese di due blog automaticamente</title>
		<link>http://www.traffyk.com/2007/11/28/wordpress-plugin-custom-fields-translate-collega-gli-articoli-tradotti-italianoinglese-di-due-blog-automaticamente/</link>
		<comments>http://www.traffyk.com/2007/11/28/wordpress-plugin-custom-fields-translate-collega-gli-articoli-tradotti-italianoinglese-di-due-blog-automaticamente/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 18:23:14 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/11/28/wordpress-plugin-custom-fields-translate-collega-gli-articoli-tradotti-italianoinglese-di-due-blog-automaticamente/</guid>
		<description><![CDATA[Ho realizzato un plugin per rendere automatico il collegamento tra gli articoli del blog in lingua italiana e quello del blog in lingua inglese. Il plugin in pratica sfrutta i campi personalizzati di WordPress (Custom Fields sul Codex), questi campi sono molto sottovalutati in WordPress e molte persone sicuramente non hanno ancora capito la potenza [...]]]></description>
			<content:encoded><![CDATA[<p>Ho realizzato un plugin per rendere automatico il collegamento tra gli articoli del blog in lingua italiana e quello del blog in lingua inglese. Il plugin in pratica sfrutta i campi personalizzati di WordPress (<a href="http://codex.wordpress.org/Using_Custom_Fields">Custom Fields</a> sul Codex), questi campi sono molto sottovalutati in WordPress e molte persone sicuramente non hanno ancora capito la potenza di questa funzionalit tale che la documentazione al riguardo  davvero molto scarsa e mi piacerebbe in qualche modo poterla ampliare, inoltre ancora pi scarsa  la disponibilit di plugin che utilizza questa funzione.</p>
<div align="center"><a href='http://www.traffyk.com/2007/11/28/wordpress-plugin-custom-fields-translate-collega-gli-articoli-tradotti-italianoinglese-di-due-blog-automaticamente/custom_fields_2/' rel='attachment wp-att-1123' title='custom_fields_2'><img src='http://www.traffyk.com/blog/wp-content/uploads/2007/11/custom_fields_2.jpg' alt='custom_fields_2' /></a></div>
<p>I campi personalizzati in WordPress si trovano nella pagina di scrittura articolo, o pagina, e servono per condividere dati sotto una chiave comune tra pi articoli&#8230;</p>
<div align="center"><a href='http://www.traffyk.com/2007/11/28/wordpress-plugin-custom-fields-translate-collega-gli-articoli-tradotti-italianoinglese-di-due-blog-automaticamente/custom_fields_1/' rel='attachment wp-att-1122' title='custom_fields_1'><img src='http://www.traffyk.com/blog/wp-content/uploads/2007/11/custom_fields_1.jpg' alt='custom_fields_1' /></a></div>
<p>Grossomodo riportando l&#8217;esempio del Wiki di WordPress Italy, <a href="http://www.wordpress-it.it/wiki/Main/UsoCampiPersonalizzati">uso dei campi personalizzati</a>,  possibile creare una chiave del tipo &#8220;Libri che sto leggendo&#8221; e il rispettivo, o i rispettivi valori, &#8220;Libro 1&#8243;, &#8220;Libro 2&#8243; e cos via. Queste informazioni vengono chiamate <strong>meta-dati</strong> e possono essere aggiunte nei nostri post tramite una breve riga di codice all&#8217;interno del <a href="http://www.wordpress-it.it/wiki/Main/IlLoop">loop</a> prima o dopo il proprio articolo<span id="more-1121"></span>:</p>
<p> <code>&lt;?php the_meta(); ?&gt;</code></p>
<p>Per farvi un esempio pi concreto, possiamo ad esempio creare una chiave <strong>Musica in ascolto</strong> e poi aggiungere di volta in volta ad ogni post che scriviamo il titolo della canzone che stiamo ascoltando o il nostro stato d&#8217;animo.</p>
<p>Finita questa breve introduzione ai Custom Fields posso finalmente introdurre il mio vero articolo e spiegarvi come funziona il mio plugin, sinceramente dei meta dati, del libro che leggo e della musica che ascolto non mi frega nulla, questa funzionalit pu esserci utile per cose molto migliori come risparmiarci di dover creare di volta in volta i collegamenti manualmente tra i nostri articoli tradotti in bilingue (nel mio caso inglese, italiano, ma sarebbe possibile utilizzare un numero infinito di lingue apportando piccole modifiche al codice).</p>
<p>Il plugin sfrutta due chiavi dei campi personalizzati, &#8220;<strong>title</strong>&#8221; e &#8220;<strong>translation</strong>&#8220;, baster quindi aggiungere tali chiavi una prima volta rispettivamente nei 2 blog e installare il plugin ed attivarlo su entrambi. In title andr messo il titolo dell&#8217;articolo tradotto e in translation invece l&#8217;url dell&#8217;articolo, poi non bisogner fare pi nulla il plugin inserir direttamente i meta-dati nel vostro articolo come potete vedere dalla prima foto di questo articolo.<br />
Vediamo un esempio di inserimento valori:</p>
<p><strong>Blog italiano:<br /></strong></p>
<div align="center"><a href='http://www.traffyk.com/2007/11/28/wordpress-plugin-custom-fields-translate-collega-gli-articoli-tradotti-italianoinglese-di-due-blog-automaticamente/custom_fields_3/' rel='attachment wp-att-1124' title='custom_fields_3'><img src='http://www.traffyk.com/blog/wp-content/uploads/2007/11/custom_fields_3.jpg' alt='custom_fields_3' /></a></div>
<p><strong>Blog inglese:<br /></strong></p>
<div align="center"><a href='http://www.traffyk.com/2007/11/28/wordpress-plugin-custom-fields-translate-collega-gli-articoli-tradotti-italianoinglese-di-due-blog-automaticamente/custom_fields_4/' rel='attachment wp-att-1125' title='custom_fields_4'><img src='http://www.traffyk.com/blog/wp-content/uploads/2007/11/custom_fields_4.jpg' alt='custom_fields_4' /></a></div>
<p><strong>E questo il risultato (naturalmente equivalente anche nella versione inglese):<br /></strong></p>
<div align="center"><a href='http://www.traffyk.com/2007/11/28/wordpress-plugin-custom-fields-translate-collega-gli-articoli-tradotti-italianoinglese-di-due-blog-automaticamente/custom_fields_2/' rel='attachment wp-att-1123' title='custom_fields_2'><img src='http://www.traffyk.com/blog/wp-content/uploads/2007/11/custom_fields_2.jpg' alt='custom_fields_2' /></a></div>
<p>Il plugin potete scaricarlo liberamente, l&#8217;ho chiamato Custom Fields Translate, potete farne ci che volete e analizzarlo per comprendere meglio il funzionamento dei meta-dati, ho inserito all&#8217;interno anche l&#8217;immagine della bandierina e il pezzetto di codice dello stile da aggiungere in fondo al vostro foglio di stile. L&#8217;immagine dovreste inserirla nella cartella images del vostro template.</p>
<p>Scarica qui: <a href='http://www.traffyk.com/blog/wp-content/uploads/2007/11/customfieldstranlate10.rar' title='CustomFieldsTranlate1.0.rar'>CustomFieldsTranlate1.0.rar</a></p>
<p><strong>Immagine:<br />
<img height="34" alt="it-en" src="http://www.traffyk.com/blog/wp-content/uploads/2007/11/it-en.gif" width="50" /></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/11/28/wordpress-plugin-custom-fields-translate-collega-gli-articoli-tradotti-italianoinglese-di-due-blog-automaticamente/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>WordPress Plugin: aggiungere una barra di amministrazione nella testata del blog</title>
		<link>http://www.traffyk.com/2007/11/13/wordpress-plugin-aggiungere-una-barra-di-amministrazione-nella-testata-del-blog/</link>
		<comments>http://www.traffyk.com/2007/11/13/wordpress-plugin-aggiungere-una-barra-di-amministrazione-nella-testata-del-blog/#comments</comments>
		<pubDate>Tue, 13 Nov 2007 17:27:29 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Computer - Internet]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/11/13/wordpress-plugin-aggiungere-una-barra-di-amministrazione-nella-testata-del-blog/</guid>
		<description><![CDATA[Vi segnalo questo interessantissimo plugin che da qualche giorno mi sta facilitando davvero l&#8217;accesso alla sezione amministrativa dei miei blog. In pratica questo plugin crea una barra di collegamenti nella testata del vostro blog WordPress (volendo possibile posizionarlo nel punto in cui meglio crediamo visto che bisogner aggiungere una piccola riga di codice nella nostra [...]]]></description>
			<content:encoded><![CDATA[<p>Vi segnalo questo interessantissimo plugin che da qualche giorno mi sta facilitando davvero l&#8217;accesso alla sezione amministrativa dei miei blog. In pratica questo plugin crea una barra di collegamenti nella testata del vostro blog WordPress (volendo  possibile posizionarlo nel punto in cui meglio crediamo visto che bisogner aggiungere una piccola riga di codice nella nostra template).</p>
<p>Per chi volesse vederlo all&#8217;opera ho preparato questi due screenshot per mostrarvi concretamente come viene posizionato nei vostri temi grafici.</p>
<div align="center"><a href='http://www.traffyk.com/2007/11/13/wordpress-plugin-aggiungere-una-barra-di-amministrazione-nella-testata-del-blog/wp-admin-bar-traffykjpg/' rel='attachment wp-att-1102' title='wp-admin-bar-traffyk.jpg'><img src='http://www.traffyk.com/blog/wp-content/uploads/2007/11/wp-admin-bar-traffyk.jpg' alt='wp-admin-bar-traffyk.jpg' /></a><br />
<a href='http://www.traffyk.com/2007/11/13/wordpress-plugin-aggiungere-una-barra-di-amministrazione-nella-testata-del-blog/wp-admin-bar-unitribujpg/' rel='attachment wp-att-1103' title='wp-admin-bar-unitribu.jpg'><img src='http://www.traffyk.com/blog/wp-content/uploads/2007/11/wp-admin-bar-unitribu.jpg' alt='wp-admin-bar-unitribu.jpg' /></a></div>
<p><span id="more-1104"></span></p>
<p>Il plugin si chiama <a href="http://onemansblog.com/2007/04/08/wordpress-plugin-wp-admin-bar-reloaded/">Wp Admin Bar Reloaded</a> ed entrer in funzione sul blog solo ad accesso effettuato dell&#8217;amministratore quindi rester del tutto invisibile all&#8217;utente finale ne influenzer in alcun tipo la presentazione delle pagine a quest&#8217;ultimo.</p>
<p>Il codice da inserire per far apparire la barra in questione  questo:</p>
<p><code>&lt;?php if(function_exists('wp_admin_bar')) wp_admin_bar(); ?&gt;</code></p>
<p>Va messo subito dopo il tag &lt;body&gt; se volete farlo apparire nel punto pi alto della pagina altrimenti potete posizionarlo dove meglio credete. Nel caso inoltre doveste avere problemi nella visualizzazione della barra dovuta ad un foglio di stile non compatibile potete inserire questo codice direttamente nel vostro foglio di stile per integrare perfettamente la barra:</p>
<p><code>#wp-admin-bar {margin:0; padding:5px; background:#f9f9f9; border:1px solid #666; clear:both; text-align:center}<br />
#wp-admin-bar ul {margin:0; padding:0}<br />
#wp-admin-bar ul li {list-style-type:none; display:inline; margin:0 10px; padding:0}</code></p>
<p>Naturalmente a voi la scelta di personalizzare o meno i parametri impostati <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/11/13/wordpress-plugin-aggiungere-una-barra-di-amministrazione-nella-testata-del-blog/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Tipi di dati astratti: la coda (queue) e algoritmo in Java 5.0</title>
		<link>http://www.traffyk.com/2007/10/03/tipi-di-dati-astratti-la-coda-queue-e-algoritmo-in-java-50/</link>
		<comments>http://www.traffyk.com/2007/10/03/tipi-di-dati-astratti-la-coda-queue-e-algoritmo-in-java-50/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 20:39:17 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/10/03/tipi-di-dati-astratti-la-coda-queue-e-algoritmo-in-java-50/</guid>
		<description><![CDATA[Secondo capitolo della puntata algoritmi e strutture dati la coda. Un coda una struttura dati molto semplice, segue il principio FIFO, First In First Out, il primo ad entrare il primo ad uscire.. o potremmo dire chi primo arriva meglio alloggia!:P Oggi non posso spiegarvi tutto, come sempre confido nei vostri commenti e richieste di [...]]]></description>
			<content:encoded><![CDATA[<p>Secondo capitolo della puntata <a href="http://www.traffyk.com/tag/algoritmi-e-strutture-dati/">algoritmi e strutture dati</a> la <a href="http://it.wikipedia.org/wiki/Coda_%28informatica%29">coda</a>.</p>
<div align="center"><img height="236" alt="coda-queue" src="http://www.traffyk.com/blog/wp-content/uploads/2007/10/coda-queue.png" width="444" /></div>
<p>Un coda  una struttura dati molto semplice, segue il principio <a href="http://it.wikipedia.org/wiki/FIFO">FIFO</a>, First In First Out, il primo ad entrare  il primo ad uscire.. o potremmo dire chi primo arriva meglio alloggia!:P</p>
<p>Oggi non posso spiegarvi tutto, come sempre confido nei vostri commenti e richieste di informazioni specifiche per contribuire al meglio al post. Vediamo subito quali metodi ha l&#8217;interfaccia <strong>Queue</strong>:</p>
<ul>
<li><strong>enqueue(e)</strong>: accoda l&#8217;elemento <em>e</em> alla coda, in pratica posiziona dietro l&#8217;elemento;</li>
<li><strong>dequeue()</strong>: prende il primo elemento della coda, ovvero il primo ad essere entrato, lancia un&#8217;eccezione se vuota;</li>
<li><strong>front()</strong>: simile al pop dello <a href="http://www.traffyk.com/2007/10/02/tipi-di-dati-astratti-lo-stack-con-algoritmo-in-java-50/">stack</a>, legge il primo elemento della coda senza per toglierlo da essa, lancia un&#8217;eccezione se vuota;</li>
<li><strong>size()</strong>: un classico ormai, restituisce la dimensione;</li>
<li><strong>isEmpty()</strong>: booleano per sapere se la coda  vuota o occupata da elementi.</li>
</ul>
<p><strong>Vediamo quindi l&#8217;interfaccia:</strong></p>
<pre lang="java5" line="1">
package queue;

import exception.EmptyQueueException;

public interface Queue&lt;E&gt; {

 public int size();
 public boolean isEmpty();
 public E front() throws EmptyQueueException;
 public void enqueue(E element);
 public E dequeue()throws EmptyQueueException;
}
</pre>
<p><span id="more-1003"></span></p>
<p><strong>Questa  la classe della nuova eccezione che abbiamo creato:</strong></p>
<pre lang="java5" line="1">
package exception;

public class EmptyQueueException extends RuntimeException{
 /**
  *
  */
 private static final long serialVersionUID = -6005613600247835251L;

 public EmptyQueueException(String errore) {
  super(errore);
 }

}
</pre>
<p><strong>Classe ArrayQueue per implementare l&#8217;interfaccia con un array:</strong></p>
<pre lang="java5" line="1">
package queue;

import exception.EmptyQueueException;
import exception.FullQueueException;

public class ArrayQueue&lt;E&gt; implements Queue&lt;E&gt;{
 protected int capacity;
 public static final int CAPACITY = 1000;
 protected E[] Q;
 protected int f, r = 0;

 public ArrayQueue() {
  this(CAPACITY);
 }
 @SuppressWarnings("unchecked")
 public ArrayQueue(int capacity) {
  this.capacity=capacity;
  Q = (E[]) new Object[capacity];
 }
 public boolean isEmpty() {
  return (f==r);
 }
 public E dequeue() throws EmptyQueueException {
  if (isEmpty())
   throw new EmptyQueueException("Queue is empty");
  E element;
  element = Q[f];
  Q[f] = null;
  f = (f+1) % Q.length;
  return element;
 }
 public void enqueue(E element) throws FullQueueException{
  if (size() == Q.length-1)
   throw new FullQueueException("Queue is full");
  Q[r] = element;
  r = (r+1) % Q.length;
 }
 public int size() {
  return ((Q.length-f+r) % Q.length);
 }
 public E front() throws EmptyQueueException {
  if (isEmpty()) throw new EmptyQueueException("Queue is empty");
  return Q[f];
 }

}
</pre>
<p><strong>Classe dell&#8217;altra eccezione:</strong></p>
<pre lang="java5" line="1">
package exception;

public class FullQueueException extends RuntimeException{
 /**
  *
  */
 private static final long serialVersionUID = -6005613600247835251L;

 public FullQueueException(String errore) {
  super(errore);
 }

}
</pre>
<p><strong>E infine la classe di test:</strong></p>
<pre lang="java5" line="1">
package queue;

public class TestArrayQueue {
	public static void main(String[] args) {
		Queue<integer> A = new ArrayQueue</integer><integer>();
		A.enqueue(5);
		System.out.println("Enqueue 5");
		A.enqueue(3);
		System.out.println("Enqueue 3");
		System.out.println("Dequeue "+A.dequeue());
		A.enqueue(7);
		System.out.println("Enqueue 7");
		System.out.println("Dequeue "+A.dequeue());
		System.out.println("Front "+A.front());
		System.out.println("Dequeue "+A.dequeue());
		if (!A.isEmpty()) A.dequeue();
		A.enqueue(9);
		System.out.println("Enqueue 9");
		A.enqueue(7);
		System.out.println("Enqueue 7");
		System.out.println("Size :"+A.size());
		A.enqueue(3);
		System.out.println("Enqueue 3");
		A.enqueue(5);
		System.out.println("Enqueue 5");
		System.out.println("Dequeue "+A.dequeue());

	}
}
</integer></pre>
<p><strong>Buonanotte rag! <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/10/03/tipi-di-dati-astratti-la-coda-queue-e-algoritmo-in-java-50/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tipi di dati astratti: Lo Stack, con algoritmo in Java 5.0</title>
		<link>http://www.traffyk.com/2007/10/02/tipi-di-dati-astratti-lo-stack-con-algoritmo-in-java-50/</link>
		<comments>http://www.traffyk.com/2007/10/02/tipi-di-dati-astratti-lo-stack-con-algoritmo-in-java-50/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 21:59:08 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/10/01/tipi-di-dati-astratti-lo-stack-con-algoritmo-in-java-50/</guid>
		<description><![CDATA[Eccoci finalmente arrivati alla prima stuttura di dati che andremo ad analizzare, lo Stack. Prima di cominciare vorrei fare una piccola premessa, utilizzo il linguaggio Java per implementare gli algoritmi (in particolare Java 5.0), si presume (come ho citato nell&#8217;articolo precedente) che conosciate almeno in piccola parte il linguaggio Java, in particolare Classi, interfacce, Variabili [...]]]></description>
			<content:encoded><![CDATA[<p>Eccoci finalmente arrivati alla prima stuttura di dati che andremo ad analizzare, lo <strong><a href="http://it.wikipedia.org/wiki/Stack">Stack</a></strong>.</p>
<div align="center"><img src="http://www.traffyk.com/blog/wp-content/uploads/2007/10/391px-data-stack.svg-1.png" alt="391px-Data stack" height="281" width="391" /></div>
<p>Prima di cominciare vorrei fare una piccola premessa, utilizzo il linguaggio <a href="http://java.com/">Java</a> per implementare gli algoritmi (in particolare Java 5.0), si presume (come ho citato nell&#8217;articolo precedente) che conosciate almeno in piccola parte il linguaggio Java, in particolare Classi, interfacce, Variabili assegnamenti e operatori/operazioni, cicli, packages e chi pi ne ha pi ne metta. Non vorrei trattare guide riguardanti la normale programmazione in Java in quanto ci sono degli ottimi libri che permettono di superare addirittura un esame universitario (nel mio caso cos  stato <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  ), mi permetto quindi di citarvi l&#8217;ottimo <a href="http://www.java-net.it/jmonline/">Java Mattone dopo Mattone</a>, liberamente scaricabile e utilizzabile da tutti, non sar aggiornatissimo ma una volta acquisiti i fondamenti iniziali aggiornarsi alle ultime versioni di Java non sar un problema <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  .<span id="more-1001"></span></p>
<p>Uno Stack  una struttura di dati astratta, all&#8217;universit lo chiamiamo <strong>TDA</strong> (Tipo di Dati Astratto), definizione forse pi azzeccata perch una volta definita questa struttura avremo proprio un nuovo tipo di dato da poter utilizzare per i nostri programmi.</p>
<p>Il principio di funzionamento di uno Stack  semplicissimo, immaginate una pila di piatti dove l&#8217;ultimo ad essere posizionato  il primo ad uscire e cos man mano potremo prendere sempre l&#8217;ultimo piatto (elemento/oggetto). Questa tipologia di inserimento/rimozione oggetti prende il nome di <strong>last-in first-out</strong> (<strong>LIFO</strong>), in parole povere il primo ad entrare  l&#8217;ultimo ad uscire.</p>
<p>In uno stack/pila abbiamo principalmente due funzionalit che chiameremo con il nome di metodi:</p>
<ul>
<li><strong>push(e)</strong>: Inserisce l&#8217;elemento <em>e</em>, naturalmente in testa allo stack;</li>
<li><strong>pop()</strong>: pop invece non ha bisogno di argomenti/parametri perch prende, o meglio toglie, dal nostro stack l&#8217;ultimo elemento e ce lo restituisce. In questo metodo per, nel caso lo stack fosse vuoto, avremo un errore perch pop() non sar capace di prendere elementi dallo stack, gli errori in java vengono comunemente definiti come eccezioni;</li>
</ul>
<p>Inoltre ai nostri due metodi che definiscono la base di funzionamento dello stack abbiamo anche 3 metodi aggiuntivi, non saranno obbligatori ma ci permettono di gestire al meglio l&#8217;intero stack e di gestire alcune eccezioni risparmiando cos anche un po di tempo:</p>
<ul>
<li><strong>size()</strong>: ritorna il numero degli elementi nello stack;</li>
<li><strong>isEmpty()</strong>: ritorna un valore booleano (vero, falso) per indicare se lo stack  vuoto o meno;</li>
<li><strong>top()</strong>:top invece  un metodo abbastanza simile al <strong>pop()</strong> soltanto che invece di togliere l&#8217;elemento dallo stack per fornircene il contenuto si limita soltanto a leggerlo e restiturci il risultato, in questo modo naturalmente non potremo leggere il contenuto dell&#8217;elemento successivo (contenuto sotto) finch non effettueremo il <strong>pop()</strong>, anche questo metodo lancia un eccezione nel caso lo stack sia vuoto.</li>
</ul>
<p><strong>Il codice per la rispettiva interfaccia in Java 5.0 sar di questo tipo:</strong></p>
<pre line="1" lang="java5">
 package stack;

 import exception.EmptyStackException;

 public interface Stack&lt;E&gt; {
  public int size();
  public boolean isEmpty();
  public E top() throws EmptyStackException;
  public void push (E element);
  public E pop() throws EmptyStackException;
 }
</pre>
<p>Tramite l&#8217;interfaccia potremo implementare tutti gli algoritmi e definire la struttura di dati che pi ci piace senza dover per forza fornire dettagli sulle nostre implementazioni semplicemente perch dovremmo soddisfare tutti i requisiti richiesti dall&#8217;interfaccia e quindi implementare tutti i metodi. Da notare che importo da un secondo package, <strong>exception</strong>, la classe <strong>EmptyStackException</strong> che ci permetter di gestire i nostri errori di tipo <strong>Stack</strong> Vuoto, il codice  il seguente:</p>
<pre lang="java5" line="1">
package exception;

@SuppressWarnings("serial")
public class EmptyStackException extends RuntimeException{

public EmptyStackException(String exception) {
super(exception);
}

}
</pre>
<p>In questo articolo implementeremo una rudimentale struttura di dati per lo <strong>Stack</strong> grazie ad un array, come potrete ben capire da soli avremi dei problemi:</p>
<ul>
<li>Dovendo dichiarare l???array avremo una dimensione ben definita e quindi non pi modificabile (con tutti i problemi che naturalmente ne deriveranno);</li>
<li>Una volta riempito l???array il push, se eseguito ancora, lancer un???eccezione di stack pieno (<strong>FullStackException</strong>);</li>
<li>Gli elementi nell???array verranno aggiunti da destra verso sinistra;</li>
<li>Riempito l???array e quindi il push per effettuare una nuova push dovremmo per forza di cose effettuare una pop;</li>
</ul>
<p>Vediamo quindi il codice in Java 5.0:</p>
<pre lang="java5" line="1">
package stack;

import exception.EmptyStackException;
import exception.FullStackException;

public class ArrayStack&lt;E&gt; implements Stack&lt;E&gt;{
 protected int capacity;
 public static final int CAPACITY = 1000;
 protected E[] S;
 protected int top = -1;

 public ArrayStack() {
  this(CAPACITY);
 }
 @SuppressWarnings("unchecked")
 public ArrayStack(int capacity) {
  this.capacity=capacity;
  S = (E[]) new Object[capacity];
 }
 public boolean isEmpty() {
  return (top&lt;0);
 }
 public E pop() throws EmptyStackException {
  E element;
  if (isEmpty())
   throw new EmptyStackException("Lo stack e' vuoto.");
  element = S[top];
  S[top--] = null;
  return element;
 }
 public void push(E element) throws FullStackException{
  if (size() == capacity)
   throw new FullStackException("Lo stack e' pieno.");
  S[++top] = element;
 }
 public int size() {
  return top+1;
 }
 public E top() throws EmptyStackException {
  if (isEmpty()) throw new EmptyStackException("Lo stack e' vuoto.");
  return S[top];
 }
 public String toString() {
  String s;
  s = "[";
  if (size() &gt; 0) s+= S[0];
  if (size() &gt; 1)
   for (int i=1; i&lt;= size()-1; i++)
    s += ", " + S[i];
  return s+"]";
 }
 public void status(String op, Object element) {
  System.out.print("------&gt;" + op);
  System.out.println(", returns " + element);
  System.out.print("result: size = "+size() + ", isEmpty = "+ isEmpty());
  System.out.println(", stack: " + this);
 }
}
</pre>
<p>Da notare che  stata richiamata una nuova classe per le <strong>eccezioni di Stack pieno</strong>, seguendo l???esempio della prima classe di Exception  semplicissimo creare un???altra classe con nome variato, ma gia ce ce l???ho salvata in Eclipse vi copio anche questa parte <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  :</p>
<pre lang="java5" line="1">
package exception;

@SuppressWarnings("serial")
public class FullStackException extends RuntimeException{

 public FullStackException(String errore) {
  super(errore);
 }

}
</pre>
<p>Come vedrete ci sono anche alcuni metodi accessori che utilizzeremo per la nostra classe di test:</p>
<pre lang="java5" line="1">
package stack;

public class TestArrayStack {
 public static void main(String[] args) {
  Object o;
  ArrayStack&lt;Integer&gt; A = new ArrayStack&lt;Integer&gt;();
  A.status("new ArrayStack&lt;Integer&gt; A", null);
  A.push(7);
  A.status("A.push(7)", null);
  o = A.pop();
  A.status("A.pop()", o);
  A.push(9);
  A.status("A.push(9)", null);
  o = A.pop();
  A.status("A.pop()", o);
  ArrayStack&lt;String&gt; B = new ArrayStack&lt;String&gt;();
  B.status("new ArrayStack&lt;String&gt; B", null);
  B.push("Bob");
  B.status("B.push(\"Bob\")", null);
  B.push("Alice");
  B.status("B.push(\"Alice\")", null);
  o = B.pop();
  B.status("B.pop()", o);
  B.push("Eve");
  B.status("B.push(\"Eve\")", null);
 }

}
</pre>
<p>Perdonatemi se non mi dilungo a spiegare il codice pi di tanto stasera ho perso 4 ore per poter formattare il codice senza perdere validazione W3C e senza perdere alcune parti di codice di Java 5.0 incompatibili con WordPress (mi chiude i tag in automatico) e con il plugin Wp-Syntax che ho dovuto modificare per eliminare il controllo sulle identazioni e su tutti i caratteri speciali html (su quelli il controllo manuale  sempre migliore <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ), poi con l???editor avanzato sempre su ???disattivato???  chiaro <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Il libro di riferimento  <strong>Data Structures and Algorithms in Java</strong>, fourth edition.<br />
Di Michael T. Goodrich e Roberto Tamassia (in english naturalmente ehehhe ). L???algoritmo rispecchia lo stesso metodo risolutore riportato nel libro, ma il bello cominceremo a vederlo tra poco quando il libro non riporter pi degli esempi tanto carini, ma io l???anno scorso queste cose le ho fatte fino a met corso???diciamo che sono molto anticipato sul libro e sul programma ehehe <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Naturalmente qualsiasi cosa chiedete, nei limiti del possibile prover a darvi una risposta, ma sono dell???idea che questi esercizi dobbiate farveli da soli non vale la pena di copiare questi, si fa una figura di m??? all???interrogazione perch difficilmente si sapr discutere codice non commentato di altre persone ne tantomeno si sapr <strong>dove spostarsi esattamente con lo sguardo e con il ditino</strong>. Sisi mi  stato chiesto addirittura questo in un esame per verificare l???autenticit del mio codice!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/10/02/tipi-di-dati-astratti-lo-stack-con-algoritmo-in-java-50/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Implementiamo degli algoritmi e strutture di dati in Java 5.0</title>
		<link>http://www.traffyk.com/2007/10/01/implementiamo-degli-algoritmi-e-strutture-di-dati-in-java-50/</link>
		<comments>http://www.traffyk.com/2007/10/01/implementiamo-degli-algoritmi-e-strutture-di-dati-in-java-50/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 18:17:06 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/10/01/implementiamo-degli-algoritmi-e-strutture-di-dati-in-java-50/</guid>
		<description><![CDATA[Salve ragazzi oggi ricominciata l&#8217;Universit&#8230; vediamo un po se riusciamo a studiare insieme&#8230; magari bloggando le cose che faccio mi entrano meglio in testa e forse mi preparer meglio per gli esami oltre al fatto che cos dovr studiare quasi tutti i giorni per poter scrivere l&#8217;articolo Vi parler di un corso molto bello riguardante [...]]]></description>
			<content:encoded><![CDATA[<p><img height="332" alt="322px-Java Logo" src="http://www.traffyk.com/blog/wp-content/uploads/2007/10/322px-java-logo.svg-1.png" width="250" align="left" />Salve ragazzi oggi <strong> ricominciata l&#8217;Universit</strong>&#8230; vediamo un po se riusciamo a studiare insieme&#8230; magari bloggando le cose che faccio mi entrano meglio in testa e forse mi preparer meglio per gli esami oltre al fatto che cos dovr studiare quasi tutti i giorni per poter scrivere l&#8217;articolo <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Vi parler di un corso molto bello riguardante <strong>Laboratorio di</strong> <strong>Algoritmi e Strutture Dati</strong> (da ora in poi conosciuto con il tag <strong><a href="http://www.traffyk.com/tag/lasd">LASD</a></strong>) nel quale vedremo come implementare in <a href="http://www.traffyk.com/tag/java">Java</a> e in particolare in Java 5.0 con le classi generiche Algoritmi e Strutture Dati di grande utilit per i programmatori. Ma prima di tutto conosciamo meglio la definizione di Algoritmi e Strutture Dati:</p>
<blockquote>
<p>Una struttura dati  un&#8217;entit usata per organizzare un insieme di dati all&#8217;interno della <a href="http://it.wikipedia.org/wiki/RAM">memoria</a> del <a href="http://it.wikipedia.org/wiki/Computer">computer</a>, ed eventualmente per memorizzarli in una <a href="http://it.wikipedia.org/wiki/Memoria_di_massa">memoria di massa</a>. La scelta delle strutture dati da utilizzare  strettamente legata a quella degli <a href="http://it.wikipedia.org/wiki/Algoritmo">algoritmi</a>, a tal proposito, solitamente si utilizza il concetto unificato di Algoritmi e Strutture Dati.<span id="more-998"></span> La scelta della struttura dati influir inevitabilmente sull&#8217;efficienza degli algoritmi da utilizzare.</p>
<p>La struttura dati  un metodo di organizzazione dei dati, quindi prescinde dai dati effettivamente contenuti. Ciascun <a href="http://it.wikipedia.org/wiki/Linguaggio_di_programmazione">linguaggio di programmazione</a> offre strumenti, pi o meno sofisticati, per definire strutture dati, ovvero aggregare dati di tipo omogeneo o eterogeneo. Questi strumenti sono tipicamente componibili.</p>
<p>Pi formalmente, i linguaggi forniscono un insieme predefinito di <a href="http://it.wikipedia.org/wiki/Tipo_di_dato">tipi di dato</a> elementari, e le strutture dati sono strumenti per costruire tipi di dati aggregati pi complessi.</p>
<p>L&#8217;operazione di costruire una variabile di un tipo di dato complesso  detta &#8220;istanziazione&#8221;, e pu avvenire sia durante la <a href="http://it.wikipedia.org/wiki/Compilatore">compilazione</a> del programma (compile time) sia durante la sua esecuzione (runtime).</p>
<p>Le strutture di dati si differenziano prima di tutto in base alle operazioni che si possono effettuare su di esse e alle prestazioni offerte. Questo permette di creare un&#8217;astrazione dall&#8217;implementazione, dando vita al concetto di <a href="http://it.wikipedia.org/wiki/Struttura_dati_astratta">Struttura dati astratta</a> o Abstract Data Structure (ADS).</p>
</blockquote>
<p>L&#8217;articolo  stato preso da <a href="http://it.wikipedia.org/">Wikipedia</a>, per leggere la parte mancante visitate la pagina <a href="http://it.wikipedia.org/wiki/Struttura_dati">Struttura dati</a> e seguite un pochino tutti i vari collegamenti per avere maggiori informazioni.</p>
<p><strong>A breve vedremo come implentare la nostra prima struttura dati astratta,</strong> una delle pi primitive e semplici ma forse anche una delle pi importanti che  ancora oggi alla base di molte applicazioni&#8230;</p>
<p>Parler dello <strong>Stack e la sua implementazione in Java 5.0</strong> in un ArrayList a dimensione fissa, successivamente tratter un Array di tipo circolare a dimensione fissa e infine dovrei trattare uno Stack immagazzinato tramite una lista di oggetti a dimensione variabile.</p>
<p><strong>Un piccolo avvertimento per chi fosse interessato</strong>: sono necessari <a href="http://java.sun.com/javase/downloads/index.jsp">Java Se JDK 5 o superiore</a> e possibilmente un ide di programmazione java, magari <a href="http://www.eclipse.org/downloads/">Eclipse 3.2 o superiore</a> (come il nuovo Europa). Per ora  tutto comincer tra breve a pubblicare le prime risorse <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/10/01/implementiamo-degli-algoritmi-e-strutture-di-dati-in-java-50/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>WordPress 2.3, mi  passata la paura</title>
		<link>http://www.traffyk.com/2007/09/27/wordpress-23-mi-e-passata-la-paura/</link>
		<comments>http://www.traffyk.com/2007/09/27/wordpress-23-mi-e-passata-la-paura/#comments</comments>
		<pubDate>Thu, 27 Sep 2007 11:18:35 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[About Me]]></category>
		<category><![CDATA[Computer - Internet]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/09/27/wordpress-23-mi-e-passata-la-paura/</guid>
		<description><![CDATA[Mamma mia per quanto tempo ho avuto paura di aggiornare WordPress all&#8217;ultima versione 2.3. Le mie modifiche apportate al template hanno resistito bene a parte i tag di Ultimate Tag Warrior e alcuni errori di programmazione corretti. Per tutte le novit su WordPress 2.3 visitate questa pagina. Ed ora parliamo del mio aggiornamento. Sinceramente mi [...]]]></description>
			<content:encoded><![CDATA[<div align="center"><img height="124" alt="wordpress-logo" src="http://www.traffyk.com/blog/wp-content/uploads/2007/08/wordpress-logo-1.png" width="413" /></div>
<p><a href="http://wordpress.org/download/"><img height="118" alt="download-2-3" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/download-2-3.png" width="233" align="left" /></a></p>
<p>Mamma mia per quanto tempo ho avuto paura di aggiornare WordPress all&#8217;ultima versione 2.3. Le mie modifiche apportate al template hanno resistito bene a parte i tag di Ultimate Tag Warrior e alcuni errori di programmazione corretti.</p>
<p>Per tutte le novit su WordPress 2.3 visitate <a href="http://codex.wordpress.org/Version_2.3">questa pagina</a>. Ed ora parliamo del mio aggiornamento.</p>
<p>Sinceramente mi aspettavo qualcosa di pi traumatico, per questo avevo una gran paura di veder perso l&#8217;intero blog a momenti:<br />
Cos mi sono deciso e ho prima fatto alcuni test in locale poi vedendo che tutto sommato c&#8217;erano poche correzioni da fare mi sono preso d&#8217;animo e ho rimpiazzato tutti i file di WordPress senza esclusione di colpi (i backup sono stati fatti stamattina).<br />
<strong>prima per ho sostituito index.php</strong> con un mio file con scritto dentro &#8220;<strong>Sto aggiornando WordPress, un attimo per favore</strong>&#8221; e un bel <strong>&lt;?php die(); ?&gt;</strong></p>
<p>Mi dimentico di disattivare pure i plugin, vado in bacheca ormai non  pi possibile che parte lo script situato in <strong>wp-admin/upgrade.php</strong> e ormai il danno  fatto aggiorno direttamente il database sperando di non incorrere in conflitti.<br />
Nessun conflitto, l&#8217;aggiornamento  andato a buon fine, WordPress e il mio blog  gia utilizzabile, <strong>sostituisco la struttura dei tag</strong> di UTW con i nuovi di WordPress:</p>
<p><strong>&lt;?php the_tags(); ?&gt;</strong> per visualizzare i tag nel loop e negli articoli.<br />
<strong>&lt;?php wp_tag_cloud(&#8221;); ?&gt;</strong> per la nuvoletta di tag.</p>
<p><span id="more-983"></span></p>
<p>A questo punto vado in Bacheca, i plugin erano gia tutti aggiornati, faccio l&#8217;importazione dei tag in WordPress e disattivo UTW e gia che ci sono elimino proprio questo plugin <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> <br />
Ancora non riattivo WP-Cache soltanto perch sto controllando tutte le pagine, ma funziona bene anche quello e gli altri.</p>
<p><strong>Fatemi sapere tramite i commenti a questo articolo se riscontrate anomalie per favore, grazie mille! <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/09/27/wordpress-23-mi-e-passata-la-paura/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Wp-Cache e Global Translator, due plugin per WordPress davvero molto utili</title>
		<link>http://www.traffyk.com/2007/09/26/wp-cache-e-global-translator-due-plugin-per-wordpress-davvero-molto-utili/</link>
		<comments>http://www.traffyk.com/2007/09/26/wp-cache-e-global-translator-due-plugin-per-wordpress-davvero-molto-utili/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 20:38:39 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Computer - Internet]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/09/26/wp-cache-e-global-translator-due-plugin-per-wordpress-davvero-molto-utili/</guid>
		<description><![CDATA[Fate grande utilizzo di Widget per il vostro WordPress ed i tempi di esecuzione e caricamento pagina sono immensi? Avete una template grafica molto pesante? Vorrei segnalarvi che da due giorni sto utilizzando il plugin Wp-Cache e il mio WordPress sembra quasi stare su un server dedicato, certo non voglio esagerare ma realmente avere le [...]]]></description>
			<content:encoded><![CDATA[<p><img height="250" alt="folder temp" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/folder-temp.png" width="250" align="left" /><strong>Fate grande utilizzo di Widget per il vostro WordPress ed i tempi di esecuzione e caricamento pagina sono immensi</strong>? Avete una template grafica molto pesante?<br />
Vorrei segnalarvi che <strong>da due giorni sto utilizzando il plugin</strong> <a href="http://mnm.uib.es/gallir/wp-cache-2/"><strong>Wp-Cache</strong></a> e il mio <strong>WordPress sembra quasi stare su un server dedicato</strong>, certo non voglio esagerare ma realmente avere le pagine web in cache  un <strong>vantaggio</strong> davvero increbile <strong>quando si superano le 1000 pagine viste al giorno</strong> e quando sei su un server condiviso dove ci sono centinaia di altri siti che succhiano preziosamente la CPU.<br />
Poche precisazioni da fare, una volta installato e attivato il plugin andate in Opzioni / Wp-Cache e attivate definitivamente Wp-Cache, nel caso dovesse dire che non potete abilitarlo ricordatevi di <strong>disattivare la compressione Gzip</strong> da Opzioni / Lettura, con la cache davvero non sentirete la mancanza di Gzip attivo poi ci serve disabilitato per poter utilizzare il secondo plugin di cui sto per parlarvi. (Se non ci credete provate a fare un giro tra le pagine di questo blog e fate degli aggiornamenti anche della stessa pagina per verificare).</p>
<p><span id="more-980"></span></p>
<p><img height="144" alt="italian english flag" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/italian-english-flag.jpg" width="211" align="left" /></p>
<p>Il secondo plugin di cui vi parlo  <a href="http://www.nothing2hide.net/wp-plugins/wordpress-global-translator-plugin/">Global Translator</a> che vi permette di <strong>tradurre automaticamente in pi lingue  il vostro blog</strong> utilizzando gli strumenti per le lingue di Google oppure Babelfish di Yahoo (in attesa un rilascio per correggere il cambio indirizzo delle api di BabelFish). Accomunato con il primo plugin per due peculiarit:<br />
Necessita di gzip disabilitato e anche lui crea una cache delle pagine tradotte per risparmiare molto tempo di esecuzione e ricevimento della pagina.<br />
L&#8217;installazione  semplicissima basta attivarlo e configurare le poche opzioni come pi vi conviene (utilizzate Google per il momento, almeno fino al prossimo rilascio) e posizionate nel vostro tema il seguente codice:<br />
<code>&lt;?php if(function_exists("build_flags_bar")) { build_flags_bar(); } ?&gt;</code></p>
<p>Cercate di inserirlo in una posizione corretta e scegliete possibilmente di usare dei div anzich le tabelle <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Per oggi  tutto, qualsiasi domanda sono a vostra disposizione <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/09/26/wp-cache-e-global-translator-due-plugin-per-wordpress-davvero-molto-utili/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Bookmarklet per aggiungere i propri link preferiti a Del.icio.us e How-to per widget in WordPress</title>
		<link>http://www.traffyk.com/2007/09/23/bookmarklet-per-aggiungere-i-propri-link-preferiti-a-delicious-e-how-to-per-widget-in-wordpress/</link>
		<comments>http://www.traffyk.com/2007/09/23/bookmarklet-per-aggiungere-i-propri-link-preferiti-a-delicious-e-how-to-per-widget-in-wordpress/#comments</comments>
		<pubDate>Sun, 23 Sep 2007 10:28:10 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Computer - Internet]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[widget]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/09/23/bookmarklet-per-aggiungere-i-propri-link-preferiti-a-delicious-e-how-to-per-widget-in-wordpress/</guid>
		<description><![CDATA[Nell&#8217;articolo di ieri ho annunciato la sezione in sidebar chiamata &#8216;I post che segnalo in questa settimana&#8216;, notate che subito sotto c&#8217; anche il widgetino per gli utenti collegati In un primo momento condividevo i link di My Shared Items di Google Reader, ma cos molti di voi non potevano avere un backlink valido dovuto [...]]]></description>
			<content:encoded><![CDATA[<p><img height="292" alt="i-post-che-segnalo" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/i-post-che-segnalo.png" width="297" align="left" />Nell&#8217;<a href="http://www.traffyk.com/2007/09/22/ciao-ciao-blogroll-molto-meglio-my-real-blogroll-ah-e-ciao-ciao-shared-items-e-altro/">articolo di ieri</a> ho annunciato la sezione in sidebar chiamata &#8216;<a href="http://www.traffyk.com/#rss-1">I post che segnalo in questa settimana</a>&#8216;, notate che subito sotto c&#8217; anche il widgetino per gli utenti collegati <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>In un primo momento condividevo i link di My Shared Items di <a href="http://www.google.com/reader/">Google Reader</a>, ma cos molti di voi non potevano avere un backlink valido dovuto al redirect di <a href="http://www.feedburner.com/">FeedBurner</a>. Cos <a href="http://m1979.blogspot.com/">m1979</a> mi fa subito consiglio prezioso di spostare i miei link su <a href="http://del.icio.us/">Del.icio.us</a> nei <a href="http://www.traffyk.com/2007/09/22/ciao-ciao-blogroll-molto-meglio-my-real-blogroll-ah-e-ciao-ciao-shared-items-e-altro/#comment-4206">commenti</a> all&#8217;articolo. In pratica <strong>m1979</strong> usa uno javascript fornito da Del.icio.us stesso ma come tutti sappiamo i javascript non sono indicizzabili dai motori di ricerca mentre io <strong>ho la necessit di backlinkare gli articoli che segnalo</strong>.</p>
<p>Ho creato una Bookmarklet che salvi i miei post in <a href="http://del.icio.us/">Del.icio.us</a> e vi allego una miniguida per aggiungere la widget gia integrata in WordPress per la ripubblicazione dei propri Feed Rss ed in questo caso l&#8217;Rss del proprio account Del.icio.us.</p>
<p><span id="more-968"></span></p>
<p><strong>Il codice della Bookmarklet  questo:<br /></strong><code>javascript:if(navigator.userAgent.indexOf('Safari') &gt;= 0){Q=getSelection();}else{Q=document.selection?document.selection.createRange().text:document.getSelection();}location.href='http://del.icio.us/post?url='+encodeURIComponent(location.href)+'&amp;title='+encodeURIComponent(document.title);</code></p>
<p>il funzionamento  davvero semplicissimo, e chiunque pu crearsi la propria Bookmarklet personale modificando alcuni parametri:</p>
<p>In <strong>location.href=&#8217;http://del.icio.us/post?url=&#8217;</strong> ci va l&#8217;url da usare per il redirect incluso tra apici, <strong>encodeURIComponent(location.href)</strong>  l&#8217;url della pagina in cui siamo che si desidera passare come stringa mentre invece <strong>encodeURIComponent(document.title)</strong>  il titolo della pagina.</p>
<p>Semplicissimo no? Dai vabb ho capito vi faccio il <strong>bottocino trascinabile come si usa fare solitamente</strong>, ahhh perch non volete imparare mai da soli <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<div align="center"><a class="bookmarklet" onclick="return false" href="javascript:if(navigator.userAgent.indexOf('Safari') &gt;= 0){Q=getSelection();}else{Q=document.selection?document.selection.createRange().text:document.getSelection();}location.href='http://del.icio.us/post?url='+encodeURIComponent(location.href)+'&amp;title='+encodeURIComponent(document.title);"><img height="50" alt="Add to Del.icio.us!" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/add-to-delicious.png" width="250" /></a></div>
<p>Basta trascinare questa bookmarklet nella propria barra dei segnalibri in FireFox e cliccarla ogni volta che vorrete aggiungere un link al vostro account Del.icio.us.</p>
<p align="center">Riguardo alla ripubblicazione del feed rss  semplicissimo, andate in bacheca poi in <strong>Aspetto,</strong> raccomandatevi di usare naturalmente un tema widget compatibile, cliccate su <strong>Widgets</strong>, trascinate nella sidebar dinamica la widget <strong>RSS1</strong> e all&#8217;interno mettete l&#8217;indirizzo del vostro feed rss preferito e un titolo adeguato.<br />
<img height="217" alt="Clipboard01-bacheca widget" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/clipboard01-bacheca-widget.png" width="500" /></p>
<p><strong>That&#8217;s all!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/09/23/bookmarklet-per-aggiungere-i-propri-link-preferiti-a-delicious-e-how-to-per-widget-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>WordPress: aggiungere dei pulsanti di navigazione tra un articolo e l&#8217;altro (pulsanti inclusi)</title>
		<link>http://www.traffyk.com/2007/09/12/wordpress-aggiungere-dei-pulsanti-di-navigazione-tra-un-articolo-e-laltro-pulsanti-inclusi/</link>
		<comments>http://www.traffyk.com/2007/09/12/wordpress-aggiungere-dei-pulsanti-di-navigazione-tra-un-articolo-e-laltro-pulsanti-inclusi/#comments</comments>
		<pubDate>Wed, 12 Sep 2007 03:27:16 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/09/12/wordpress-aggiungere-dei-pulsanti-di-navigazione-tra-un-articolo-e-laltro-pulsanti-inclusi/</guid>
		<description><![CDATA[Nella realizzazione del mio tema personale ci sto prendendo davvero gusto, come vedete sono state aggiunte ancora altre novit come la barra a sinistra ritoccata e le nuove icone &#8220;sociali&#8221;, anche il form di registrazione alla newsletter molto pi gradevole secondo me. Ma parliamo della vera novit ovvero quei piccoli pulsanti sotto il titolo di [...]]]></description>
			<content:encoded><![CDATA[<p>Nella realizzazione del mio tema personale ci sto prendendo davvero gusto, come vedete sono state aggiunte ancora altre novit come la barra a sinistra ritoccata e le nuove icone &#8220;sociali&#8221;, anche il form di registrazione alla <strong>newsletter</strong>  molto pi gradevole secondo me.</p>
<p>Ma <strong>parliamo della vera novit</strong> ovvero quei piccoli pulsanti sotto il titolo di ogni articolo:<br />
<img height="16" alt="bt down[1]" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/bt-down1.png" width="16" /> Successivo e <img height="16" alt="bt up[1]" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/bt-up1.png" width="16" /> Precedente.<br />
Che ne pensate non sono graziosi? Permettono di saltare direttamente alla notizia successiva sulla pagina senza dover per forza scorrerla tutta.</p>
<p>Vediamo velocemente come implementare questa piccola soluzione nel vostro template preferito per [tag]WordPress[/tag], naturalmente questa modifica  possibile soltanto a coloro che hanno accesso ai file dei propri temi grafici.</p>
<p>Il file in questione  <strong>index.php</strong>, la modifica pu essere portata allo stesso modo anche su <strong>archive.php</strong> e su tutti gli altri file che mostrano una lista di post in un <a href="http://codex.wordpress.org/The_Loop">loop</a>.</p>
<p>Ci basta trovare l&#8217;inizio del nostro loop sul file index.php e aggiungere qualche variabile e un paio di collegamenti, oggi mi sento buono pertanto vi posto direttamente le righe da sostituire, <strong>mi raccomando lavoro sempre con il template default</strong> di WordPress ma  molto facile fare altrettanto con le altre template basta soltanto trovare il loop e la posizione in cui inserire i link con i pulsanti (vedi a fine post per alcuni pulsanti da scaricare).</p>
<p><span id="more-940"></span></p>
<p><strong>Sostituisci queste righe</strong></p>
<p><code>&lt;?php if (have_posts()) : ?&gt;</code></p>
<p><code>&lt;?php while (have_posts()) : the_post(); ?&gt;</code></p>
<p><code>&lt;div class="post" id="post-&lt;?php the_ID(); ?&gt;"&gt;<br />
&lt;h2&gt;&lt;a href="&lt;?php the_permalink() ?&gt;" rel="bookmark" title="Permalink a &lt;?php the_title(); ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/h2&gt;<br />
&lt;small&gt;&lt;?php the_time('j F Y') ?&gt; &lt;!-- di &lt;?php the_author() ?&gt; --&gt;&lt;/small&gt;</code></p>
<p><strong>Con queste</strong><br />
<code>&lt;?php if (have_posts()) : ?&gt;</code></p>
<p><code><strong>&lt;?php $postCounter = 1; $postStopCounter = get_option('posts_per_page'); ?&gt;</strong></code></p>
<p><code>&lt;?php while (have_posts()) : the_post(); ?&gt;</code></p>
<p><code>&lt;div class="post" id="post-&lt;?php the_ID(); ?&gt;"&gt;<br />
&lt;h2<strong> id="post-&lt;?php echo $postCounter; ?&gt;"</strong>&gt;&lt;a href="&lt;?php the_permalink() ?&gt;" rel="bookmark" title="Permalink a &lt;?php the_title(); ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/h2&gt;<br />
&lt;small&gt;&lt;?php the_time('j F Y') ?&gt; &lt;!-- di &lt;?php the_author() ?&gt; --&gt;<br />
<strong>&lt;?php<br />
if ($postCounter!=$postStopCounter)<br />
echo '&amp;nbsp; &lt;a href="#post-'.($postCounter+1).'" title="Vai al post successivo"&gt;<br />
&lt;img src="http://www.tuosito.com/img/bt_down.png" alt="Next Post" /&gt;Successivo&lt;/a&gt; ';<br />
if ($postCounter!=1)<br />
echo '&amp;nbsp;&lt;a href="#post-'.($postCounter-1).'" title="Vai al post precedente"&gt;<br />
&lt;img src="http://www.tuosito.com/img/bt_up.png" alt="Prev Post" /&gt;Precedente&lt;/a&gt;';<br />
$postCounter++;<br />
?&gt;</strong>&lt;/small&gt;</code></p>
<p><strong>Alcune icone da poter utilizzare come pulsanti:<br />
<img height="16" alt="bt down[1]" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/bt-down1.png" width="16" /> <img height="16" alt="bt up[1]" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/bt-up1.png" width="16" /> <img height="16" alt="back" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/back.png" width="16" /> <img height="16" alt="forward" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/forward.png" width="16" /></strong>, <img height="16" alt="bt down" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/bt-down.png" width="16" /> <img height="16" alt="bt up" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/bt-up.png" width="16" /> <img height="16" alt="bt left" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/bt-left.png" width="16" /> <img height="16" alt="bt right" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/bt-right.png" width="16" />, <img height="16" alt="bt rw" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/bt-rw.png" width="16" /> <img height="16" alt="bt fw" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/bt-fw.png" width="16" /> <img height="16" alt="bt skip rw" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/bt-skip-rw.png" width="16" /> <img height="16" alt="bt skip fw" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/bt-skip-fw.png" width="16" />, <img src='http://www.traffyk.com/blog/wp-content/uploads/2007/09/arrow_down.gif' alt='arrow_down.gif' /> <img src='http://www.traffyk.com/blog/wp-content/uploads/2007/09/arrow_up.gif' alt='arrow_up.gif' /><br />
Grazie a Paolo di <a href="http://www.flashmotus.it/">Flashmotus</a> per le ultime due icone <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Potete scaricare moltre altre icone da questo sito <a href="http://fasticon.com/freeware/">http://fasticon.com/freeware/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/09/12/wordpress-aggiungere-dei-pulsanti-di-navigazione-tra-un-articolo-e-laltro-pulsanti-inclusi/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Evidenziare i commenti scritti dagli autori del post con poche righe di codice in WordPress</title>
		<link>http://www.traffyk.com/2007/09/10/evidenziare-i-commenti-scritti-dagli-autori-del-post-con-poche-righe-di-codice-in-wordpress/</link>
		<comments>http://www.traffyk.com/2007/09/10/evidenziare-i-commenti-scritti-dagli-autori-del-post-con-poche-righe-di-codice-in-wordpress/#comments</comments>
		<pubDate>Mon, 10 Sep 2007 01:58:44 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/09/10/evidenziare-i-commenti-scritti-dagli-autori-del-post-con-poche-righe-di-codice-in-wordpress/</guid>
		<description><![CDATA[Vi piacerebbe avere una soluzione simile a quella in foto?? Magari senza modificare nessuna parte dell&#8217;html della grafica del proprio blog [tag]WordPress[/tag] ma soltanto aggiungendo poche righe di codice al proprio file e copiando la classe del foglio di stile per farne una seconda con colori cambiati? Bene seguite questa mini guida sperando sia di [...]]]></description>
			<content:encoded><![CDATA[<p><img height="112" alt="comment highlighted" src="http://www.traffyk.com/blog/wp-content/uploads/2007/09/comment-highlighted.png" width="500" /></p>
<p>Vi piacerebbe avere una soluzione simile a quella in foto?? Magari senza modificare nessuna parte dell&#8217;html della grafica del proprio blog [tag]WordPress[/tag] ma soltanto aggiungendo poche righe di codice al proprio file e copiando la classe del foglio di stile per farne una seconda con colori cambiati? Bene seguite questa mini guida sperando sia di facile comprensione.</p>
<p>Prima di tutto aprite il file <strong>comments.php</strong>, se non avete questo file cercate un po nel vostro template il <strong>loop dei commenti</strong> che dovrebbe avere il codice seguente:</p>
<p>
<code>&lt;?php foreach ($comments as $comment) : ?&gt;</code></p>
<p>Bene una volta trovato il loop che altro non  che un ciclo <strong>foreach</strong> che stampa tutti i commenti di un articolo dovrete inserire subito sopra di questa riga o comunque prima e fuori da questo ciclo il codice:</p>
<p><code>&lt;?php $authordata = get_userdata($post-&gt;post_author); ?&gt;</code></p>
<p><span id="more-922"></span></p>
<p>Questo codice prender le credenziali dell&#8217;autore del post, in questo modo con l&#8217;ultimo spezzone di codice che inseriremo potremo capire <strong>quando  il momento di differenziare lo stile del commento</strong>.</p>
<p>Ora all&#8217;interno del loop (il foreach di prima) aggiungete subito sotto il seguente codice:</p>
<p><code>&lt;?php<br />
$authcomment=false;<br />
if ($comment-&gt;comment_author_email == $authordata-&gt;user_email) $authcomment=true;<br />
?&gt;</code></p>
<p>Ora non vi rester altro da fare che <strong>modificare la classe usata per il commento</strong>, a seconda dello stile che vorrete usare, sempre nel nostro loop. <strong>Mi rifar alla template di default</strong> e ai suoi codici usati, credo che dovreste riuscire ad applicare il codice su qualsiasi altra template facilmente.</p>
<p>Sostituite la riga:<br />
<code>&lt;li class="&lt;?php echo $oddcomment; ?&gt;" id="comment-&lt;?php comment_ID() ?&gt;"&gt;</code></p>
<p>Con la seguente:<br />
<code>&lt;li class="&lt;?php echo $oddcomment; if ($authcomment) echo '-highlighted'; ?&gt;" id="comment-&lt;?php comment_ID() ?&gt;"&gt;</code></p>
<p>
In pratica quanto authcomment  true uscir la classe &#8220;-highlighted&#8221; oppure &#8220;alt-highlighted&#8221; a seconda che sar pari o dispari il commento.</p>
<p>Kubrick, il tema di default, alterna le classi dei commenti quindi dovrete creare due nuove classi nel foglio di stile (<strong>style.css</strong>)<strong>,</strong> nel commento pari non  definita alcuna classe quindi non si potr copiare quella esistente ma si dovr creare una nuova, mentre per quella dispari &#8220;<strong>alt</strong>&#8221; basta copiare la classe <strong>.alt</strong> esistente e modificare il colore di sfondo e impostare altre propriet, ma io non sono un grafico quindi mi limito solo a cambiare i colori di sfondo:</p>
<p><code>.highlighted {<br />
background-color: #XXXXXX;<br />
}</code><br />
<code>.alt-highlighted {<br />
background-color: #XXXXXX;<br />
}</code></p>
<p>Dove al posto delle sei X andranno i codici esadecimali del colore da voi scelto (appunto sei caratteri).</p>
<p>Migliore, suggerimenti e codici per altri tipi di stile potete postarli nei commenti, critiche incluse GRAZIE :d</p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/09/10/evidenziare-i-commenti-scritti-dagli-autori-del-post-con-poche-righe-di-codice-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>

