<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>partizionamento &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/partizionamento/</link>
	<description>Feed of posts on WordPress.com tagged "partizionamento"</description>
	<pubDate>Thu, 21 Aug 2008 05:06:24 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Quickselect]]></title>
<link>http://fripp.wordpress.com/?p=117</link>
<pubDate>Thu, 08 May 2008 09:00:15 +0000</pubDate>
<dc:creator>fripp</dc:creator>
<guid>http://fripp.wordpress.com/?p=117</guid>
<description><![CDATA[Il Quickselect è un algoritmo randomizzato ricorsivo che trova l&#8217;elemento che si troverebbe i]]></description>
<content:encoded><![CDATA[<p>Il Quickselect è un algoritmo randomizzato ricorsivo che trova l'elemento che si troverebbe in k-esima posizione se l'array in cui si trova fosse ordinato.</p>
<p>Su un array di grandezza  $latex n$ l'algoritmo esegue $latex O(n^2)$ confronti nel caso peggiore e $latex O(n)$ nel caso atteso. Si basa sull'algoritmo Quicksort.</p>
<p>L'idea di base che sta alla base dell'algoritmo è molto semplice: se si deve estrarre l'elemento che si troverebbe in k-esima posizione se l'array fosse ordinato, basta ordinare di volta in volta la porzione dell'array in cui l'elemento si troverebbe, trascurando il resto dell'array.</p>
<p>Ecco un'implementazione in C di questo algoritmo:<br />
<!--more--></p>
<p>[sourcecode language="C"]<br />
inline int partition(int *v, int i, int f){<br />
	int x=v[i];<br />
	int inf=i;<br />
	int sup=f+1;<br />
	while(1){<br />
		do<br />
			inf++;<br />
		while(v[inf]<=x && inf<=f);</p>
<p>		do<br />
			sup--;<br />
		while(v[sup]>x);</p>
<p>		if(inf<sup)<br />
			swap(v+inf,v+sup);<br />
		else<br />
			break;<br />
	}</p>
<p>	swap(v+i,v+sup);</p>
<p>	inf=i;<br />
	int s=sup+1;</p>
<p>	while(1){<br />
		do<br />
			inf++;<br />
		while(v[inf]!=x && inf<=f);</p>
<p>		do<br />
			s--;<br />
		while(v[s]==x);</p>
<p>		if(inf<s)<br />
			swap(v+inf,v+s);<br />
		else<br />
			break;<br />
	}</p>
<p>	return sup;<br />
}</p>
<p>inline int quickselect(int *v, int l, int r, int k){</p>
<p>	if(l>=r)<br />
		return v[k];<br />
	int p=partition(v,l,r);</p>
<p>	int dim=p;</p>
<p>	while(v[dim]==v[p]  && dim>l)<br />
		dim--;</p>
<p>	if(k>dim && k<=p)<br />
		return v[p];</p>
<p>	if(k<=dim)<br />
		return quickselect(v,l,dim,k);</p>
<p>	return quickselect(v,p+1,r,k);</p>
<p>}<br />
[/sourcecode]</p>
<p>La funzione di partizionamento è uguale a quella implementata nel caso del quicksort generico presentato in <a href="http://fripp.wordpress.com/2007/11/28/generic-quicksort/">questo</a> post.</p>
<p>In questo caso, a differenza della precedente versione, facciamo in modo che tutti gli elementi uguali al pivot si trovino tutti vicini (ultimo ciclo <em>while</em> del codice).</p>
<p>La funzione <em>quickselect </em>sceglie ad ogni passo ricorsivo quale porzione dell'array ordinare, in base al valore del parametro <em>k</em> passato come argomento.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[La guerra dei CMS [2/3]]]></title>
<link>http://markoblog.wordpress.com/?p=212</link>
<pubDate>Thu, 21 Feb 2008 10:59:06 +0000</pubDate>
<dc:creator>marko</dc:creator>
<guid>http://markoblog.wordpress.com/?p=212</guid>
<description><![CDATA[Ora, non ci resta che entrare nel dorato mondo dei fantastici 4. I più usati attualmente e sui qual]]></description>
<content:encoded><![CDATA[<p>Ora, non ci resta che entrare nel dorato mondo dei <i>fantastici 4</i>. I più usati attualmente e sui quali sicuramente si scrive di più, si fanno confronti e prove fino allo stremo!</p>
<p>Naturalmente non si andrà in ordine di importanza, giusto per non influenzare le vostre scelte nel settore :-D</p>
<p>Partiamo da <i><b>Plone </b></i><a href="http://markoblog.wordpress.com/files/2008/02/logoploneconference_sm.jpg" title="logoploneconference_sm.jpg"><img src="http://markoblog.wordpress.com/files/2008/02/logoploneconference_sm.thumbnail.jpg" alt="logoploneconference_sm.jpg" /></a></p>
<p>Semplice, potente e standard compliant. Tre aggettivi che definiscono <a href="http://plone.org/">Plone</a>, uno tra i migliori CMS in circolazione usato da moltissime organizzazioni tra cui (tanto per fare un esempio tra i più noti) la <a href="http://www.fsf.org/">Free Software Foundation</a>.<br />
A giudicare dalle <a href="http://plone.org/products/plone/features/3.0">feature incluse</a> nelle ultime versioni, Plone si candida come una tra le migliori <i><b>CMS solutions </b></i>di sempre.</p>
<p>Tra tutte le nuove caratteristiche ne voglio segnalare alcune, a mio avviso, degne di nota:</p>
<p>- Supporto alla <a href="http://plone.org/products/plone/features/3.0/new/working-copy-support">Working Copy</a>, caratteristica che permette l’editing contemporaneo di due versioni dello stesso documento</p>
<p>- Possibilità di vedere quali sono state le aggiunte da parte di più autori a un documento e nel caso tornare a una versione precedente</p>
<p>- <a href="http://plone.org/products/plone/features/3.0/new/upgraded-visual-html-editor">Miglioramenti all’editor HTML</a> e <a href="http://plone.org/products/plone/features/3.0/new/inline-editing">implementazione di AJAX</a> per evitare di dover salvare un documento per vederne le modifiche.</p>
<p>- <a href="http://plone.org/products/plone/features/3.0/new/full-text-indexing-of-word-and-pdf-documents">Indicizzazione del testo</a> contenuto in documenti Word e PDF</p>
<p>Come sempre, qualunque versioni si adoperi, è <a href="http://plone.org/products/plone">facilmente installabile</a> su Linux, Windows, Mac grazie a degli installer che permettono di avere in pochi minuti la propria istanza di Plone perfettamente funzionante.</p>
<p>Passiamo ora a <i><b>WordPress</b></i>, anche se forse dovrei evitare di parlarne per non creare conflitti di interesse [vedere dominio, please! :-D ]</p>
<p><a href="http://markoblog.wordpress.com/files/2008/02/wordpresslogo.jpg" title="wordpresslogo.jpg"><img src="http://markoblog.wordpress.com/files/2008/02/wordpresslogo.thumbnail.jpg" alt="wordpresslogo.jpg" /></a></p>
<p>Di questo CMS una cosa è certa, è di sicuro il più usato, ricchissimo di <i>plugin</i> (sia sul fronte amministrativo sia per le sciocchezze varie ed eventuali) e non ultimo ha dalla sua una <i>portabilità</i> non ndifferente (esiste un plugin per la visualizzazione e uso su <b>nintendo wii, ds-lite, psp e iphone!</b>)</p>
<p>Il rilascio delle edizioni ha una <i>velocità </i>impressionante e la <i>frequenza di aggiornamento </i>è notevole</p>
<p>Interessante l'utility <i>OneClick </i></p>
<p><a href="http://markoblog.wordpress.com/files/2008/02/oneclickinstaller.png" title="oneclickinstaller.png"><img src="http://markoblog.wordpress.com/files/2008/02/oneclickinstaller.thumbnail.png" alt="oneclickinstaller.png" /></a>  con la quale è possibile evitare i “vecchi metodi” dando la possibilità a chiunque di poter personalizzare facilmente il proprio blog.<br />
Nelle precedenti versioni OneClick veniva rilasciato come plugin che consentiva l’installazione (e cancellazione) di add-on e temi grafici attraverso un form nell’area amministrativa (per precisione nella Dashboard) di Wordpress, ma con l’ultima release è stata implementata anche <a href="https://addons.mozilla.org/it/firefox/addon/5503">un’estensione per Firefox</a> denomita OneClick Installer che si interfaccia perfettamente con il plugin.</p>
<p>Navigando con Firefox basta un semplice clic con il tasto destro sulla url che punta a un tema o a un plugin per installarlo.</p>
<p>Una comodità non da poco per i “Wordpress addicted” :-D</p>
<p>Altra utility di sicuro interesse, specie per i paranoici (come il sottoscritto), è <i>EasyBan</i> . Come tutti i plugin per WP si installa facilmente  e consente in poco tempo di erigere una barriera contro i “soliti sospetti”. Possono essere bannati indirizzi IP, domini, hostname, referrer e si può decidere anche un redirect per ban, cioè di ridirezionare i visitatori molesti verso altri siti.<br />
E’ anche possibile impostare un tempo predefinito, passato il quale il ban cesserà di essere attivo.<br />
Il plugin è anche dotato di un pannello di controllo per gestire con semplicità i ban.</p>
<p>Per ultimo, ma non certo per importanza, <i>HyperDB. </i>Si tratta di <b>una classe per database</b> che consente l’utilizzo di funzioni avanzate già implementate in <a href="http://wordpress.com/">Wordpress.com</a> e da ora in poi disponibile per la comunità.<br />
In particolare HyperDB supporta:</p>
<p>- Replicazione<br />
- Failover<br />
- Network (pubblici/privati) ridondanti<br />
- Datacenters locali e remoti<br />
- Partizionamento<br />
- Tabelle differenti su diversi database<br />
- Statistiche avanzate per la profilazione degli utenti</p>
<p>La classe potrà essere utilizzata rimpiazzando la <a href="http://codex.wordpress.org/Function_Reference/wpdb_Class">wpdb</a>. L’installazione,<a href="http://comox.textdrive.com/pipermail/hyperdb/2007-May/000010.html"> come spiegato </a>da Matt Mullenweg, consiste nello scaricamento dei file <a href="http://svn.wp-plugins.org/hyperdb/trunk/">db-settings.php e db.php</a>, nell’inclusione di db-settings in wp-config.php e nel caricamento di db.php in wp-content.<br />
Per consentire la partecipazione della comunità alla sviluppo di HyperDB è stata attivata <a href="http://comox.textdrive.com/mailman/listinfo/hyperdb">una mailing list dedicata</a>.</p>
<p>Stop ai complimenti ... anche perche, come i più informati sanno, qualche tempo fa <i>Linux.com </i>proponeva un serrato confronto:  <b><i>Drupal vs WordPress. </i></b>Per scoprire come si comportano questi 2colossi, <a href="http://www.linux.com/article.pl?sid=07/03/20/193214">Linux.com</a> ha utilizzato i servizi di <a href="http://www.bryght.com/">Bryght</a> e di <a href="http://wordpress.com/">WordPress.com</a> per predisporre due siti simili; sono state confrontate le interfacce ed i passi base per la personalizzarne l’aspetto, l’aggiunta di contenuti, la gestitone di commenti e spam, la lettura delle statistiche e altre funzionalità tipiche di un CMS.</p>
<p>I risultati? Stando a Linux.com <a href="http://www.ossblog.it/tag/drupal">Drupal</a> offre maggiori possibilità di <i>tuning</i> e migliori strumenti per il controllo di blog multipli ma a <a href="http://www.ossblog.it/tag/wordpress">WordPress</a>, seppur meno configurabile (anche a fronte di tutti i plugin e gli strumenti sopra citati) dell’avversario, va la palma di CMS più "professionalmente" facile da usare e navigare.</p>
<h1></h1>
]]></content:encoded>
</item>

</channel>
</rss>
