Evidentemente non ho niente di meglio da fare nel giorno di natale. 🙂 Vediamo un po' a cosa serve questo algoritmo. Se avete un po' di basi di programmazione sapreste che scambiare il valore contenuto in due variabili è un operazione comunissima. Il modo più semplice per effettuare questa operazione è di usare una variabile d'appoggio per contenere uno dei due valori e poi fare lo scambio. tmp := A A := B B := tmp Direi quasi banale, no? Senonché questo modo prevede la creazione di una variabile temporanea. Esiste tuttavia un algoritmo che fa lo stesso lavoro e non richiede nessuna variabile temporanea. Sto parlando dello Xor Swap, il nome deriva appunto da scambio con OR esclusive ( operazione bit a bit XOR ). Vediamo l'algoritmo: X := X XOR Y Y := X XOR Y X := X XOR Y Il bello di questo algoritmo è l'efficienza e la facilità nel ricordarlo. Vediamone un'implementazione in Java ed in C. public static void main(String[] args) { int x = 10; int y = 20; System.out.println("x = " + x + " y = " + y); x = x^y; y = x^y; x = x^y; System.out.println("x = " …
Blog Posts
L'aggiornamento alla versione 2.9 di WordPress introduce la gestione automatica degli embed, ho deciso quindi di disattivare il plugin Viper's Video Quicktags, che ha la medesima funzione. Il problema era però quello di modificare i tag usati da questo plugin: [youtube][/youtube] con [ embed][/embed]. Per effettuare questa sostituisce bisogna adottare la mitica funzione find and replace, ma come fare? Per coloro che non si sentissero a loro agio a destreggiarsi con SQL, consigli l'adozione del plugin Search and Replace.  Io non l'ho provato ma confido sul fatto che funzioni a dovere. 🙂 Per cercare e sostituisce in modo manuale è necessario entrare nel panello phpmyadmin ( o altro ) ed eseguire una semplice query. UPDATE wp_posts SET post_content = REPLACE(post_content, '[youtube]', ''); Mentre questo è l'enunciato esplicativo: UPDATE [your_table_name] SET [your_table_field] = REPLACE([your_table_field], '[string_to_find]' , '[string_to_be_replaced]'); Potete trovare altre informazione a questo indirizzo della documentazione ufficiale MySQL. 😉 Mi stavo scordando di dire. Se non siete espertissimi vi conviene fare un backup della tabella wp_posts, in modo da non trovarvi in situazioni spiacevoli... molto spiacevoli. 🙂 C'è da dire che questa query è davvero versatile, io l'ho usata per modificare due semplici tag, ma potrebbe essere usata in altri mille mila …
Con l'aggiornamento alla versione 2.9 Carmen di WordPress si è persa la compatibilità con alcuni plugin, ad esempio con Simple Tags. Plugin che reputo fondamentale per gestire i tags nei vari post. In questi casi solitamente lo sviluppatore o il team risolve il problema mettendo mano al codice e aggiornandolo in modo che sia compatibile con la nuova piattaforma. In questo caso però lo sviluppatore di Simple Tags non si è ancora fatto sentire ( forse perché la risoluzione del problema è talmente banale che non vuole rilasciare una nuova versione del plugin 🙂 ). Premetto che la risoluzione del problema è davvero semplice, però occorre mettere mano al codice php del plugin. Di conseguenza dovrete o utilizzare un editor di testo per apporre le varie modifiche o utilizzare l'editor di plugin integrato in WordPress. Aprite il file simple-tags.php e appena sotto i commenti iniziali noterete questi enunciati: if ( strpos($wp_version, '2.7') !== false || strpos($wp_version, '2.8') !== false ) { require(dirname(__FILE__).'/2.7/simple-tags.client.php'); } elseif ( strpos($wp_version, '2.5') !== false || strpos($wp_version, '2.6') !== false ) { require(dirname(__FILE__).'/2.5/simple-tags.client.php'); } elseif ( strpos($wp_version, '2.3') !== false ) { require(dirname(__FILE__).'/2.3/simple-tags.client.php'); } elseif ( strpos($wp_version, '2.2') !== false || strpos($wp_version, '2.1') !== false || …
Come tutti voi sapete Greasemonkey è un plugin ( direi essenziale ) per Mozilla Firefox. Questo ci permette di gestire ottimamente i javascript per specifici siti. Opera d'altrocanto, già dalla versione 8, integra un sistema che da la possibilità di aggiungere javascript a siti specifici o in modo globale. Ne parlai tempo fa in questo post, quando accennai come fare per rendere pulita l'interfaccia di Facebook usando FB-Purity. Oggi vi dirò di più, tutti gli script che potete trovare su userscript.org ( o altri ), possono essere integrati facilmente in Opera. L'importante è che gli script installati abbiamo estensione ".user.js". Diversamente lo script non potrà funzionare. Lo script ora è pronto per essere integrato in Opera in modo globale ( sarà applicato su ogni pagina che verrà aperta ) o in modo specifico ( verrà applicato solo su un dato URL definito dall'utente ). …
Moonlight is an open source implementation of Microsoft Silverlight for Unix systems. With Moonlight you can access videos, applications and content created for Silverlight on Linux. Traduzione: Moonlight è una libera implementazione di Microsoft Silverlight per sistemi Unix. Con Moonlight puoi visualizzare video e accedere ad applicazioni e contenuti creati con Silverlight su sistemi Linux. Infatti Moonlight è un plugin open source ( basato sul progetto Momo ) che permette agli utilizzatori di sistemi Linux di accedere a siti web ed animazioni che prima gli erano interdetti per via della mancanza di un plugin compatibile con il sistema in uso ( un esempio è il classico sito della Rai ). Per diventare Silverlight-ready su sistemi Linux vi basterà solo scaricare l'estensione .xpi per Firefox dal sito ufficiale del progetto. Fortunatamente il plugin è disponibile anche sui repository ufficiali di qualche distro, ad esempio Ubuntu. …
Il Natale si sta avvicinando e noi dello staff di Badalis.it vi vogliamo porgere i migliori auguri. …
Vi propongo questi due video. Li ho trovati sul blog di Paolo Attivissimo ( e chi non lo conosce 🙂 ). Il primo è un'animazione in scala, e perfettamente veritiera, di tutto l'universo conosciuto. Il mio consiglio è quello di guardarselo con tutta tranquillità in HD. 😉 Impressionante no? Il secondo invece è una comparazione fra i vari corpi celesti. Buona visione 😉 …
Il desktop team di Opera ha deciso di rilasciare una versione pre-alpha di Opera 10.5 come regalo di Natale per tutti gli utenti del noto browser. La release è programmata per il giorno 22 dicembre eppure il team tiene gelosamente nascosti i dettagli di questa nuova versione. L'unico dettaglio al momento noto è forse un incremento nelle prestazioni ( the  keyword is: speed ). A questo indirizzo potete trovare il post pubblicato sul blog degli sviluppatori. 🙂 UPDATE 2009/12/22 Siamo al 22 di dicembre e il team di sviluppo di Opera ha mantenuto la promessa data, rilasciando la pre-alpha di Opera 10.5. Molto sono le novità , non solo in termini di velocità . Secondo il mio parere, questa versione ha il potenziale per diventare un ottima release. Come già accennato la parte saliente di questa nuova release sono le prestazioni. Da questo punto di vista Opera fa un vero balzo in avanti aggiornando alla versione 2.5 il già noto motore di rendering Presto. In più Opera 10.5 avrà un nuovo javascript engine denominato Carakan che sulla carta dovrebbe essere 7 volte più performante della vecchia versione chiamata Futhark. Le novità non finiscono qua, Opera 10.5 si avvalerà della nuova libreria grafica …
Il team di sviluppatori di WordPress ha deciso di farci un bellissimo regalo di natale, rilasciando la nuova major version di WordPress: la 2.9. Questa versione era da tanto attesa in quanto porta con se un nuovo set di funzionalità interessanti. Il nome in codice di questa versione prende il nome di Carmen in onore di Carmen McRae cantante e compositrice jazz ( come consuetudine "WordPress" ). Passiamo però alle novità concerete di questa 2.9. Introduzione della funzione di UNDO e del cestino. Ora sarà possibile ripristinare un post eliminato accidentalmente. Questo però comporta la scomparsa del messaggio di notifica dell'eliminazione dell'articolo ( il famoso: Si sta per cancellare questo articolo 'Annulla' per interrompere, 'OK' per cancellare ). WordPress 2.9 adotterà un editor d'immagini integrato, con questo sarà possibile effettuare un ridimensionamento, rotazione, ribaltamento, ecc... Effettuare l'aggiornamento automatico di 10 plugin. Durante la fase di aggiornamento sarà anche controllata la compatibilità dei vari plugin con la piattaforma in modo da evitare il malfunzionamento di quest'ultimi. Possibilità di integrare in modo nativo i video dai più comuni servizi di video sharing. Al momento questa è lista di quelli supportati: YouTube, Daily Motion, Blip.tv, Flickr, Hulu, Viddler, Qik, Revision3, Scribd, Google Video, Photobucket, …
Ne parlai tempo fa in questa news, sono passati due mesi e Twitter ha mantenuto la promessa data. Da poche ore Twitter è disponibile il lingua italiana. Per l'occasione sul blog ufficiale di Twitter è comparso un post ( scritto interamente in italino ) che annuncia la nuova localizzazione del noto social network e ringrazia tutti volontari per aver partecipato alla traduzione. Per modificare la lingua vi basta impostare la lingua italiana nelle impostazioni del vostro account Twitter. Buon Tweet a tutti. 😉 …