Archive - Ricerca e Sviluppo RSS Feed

Mozilla Add-Ons Workshop Firenze

Sabato prossimo (27 giugno) si terrà a Firenze il Mozilla Add-ons Workshop, organizzato da Mozilla Europe in collaborazione con Mozilla Italia.

Durante questo incontro interverranno i migliori programmatori di estensioni italiani per spiegare come si crea un’estensione per i programmi Mozilla, successivamente si darà spazio al lavoro di gruppo per creare una nuova estensione.

La partecipazione a questo incontro è libera e gratuita, è stato necessario richiedere una registrazione per poter organizzare al meglio l’evento, i posti sono ora terminati.

Ai partecipanti verrà data una maglietta creata per l’occasione e successivamente, per chi vuole rimanere, si andrà tutti insieme a mangiare una pizza e bere qualcosa in centro.

Sul wiki di Mozilla Foundation troverete tutti i dettagli. Io, salvo complicazioni, dovrei esserci … tanto per aumentare il numero di KM sulle spalle maturati durante questa settimana in corso … ci vediamo li?

Wp-Hack: il box delle pillole

Dopo la sidebar -della quale vi avevo parlato poco tempo fa- si passa alla index.php e la possibilità di non far comparire i post di una specifica categoria nell’insieme degli articoli, mantenendo il tutto in un box che chiameremo “PILLOLE“, proprio come  nella home page del mio blog.

Le modifiche andranno applicate sul tema utilizzato dal blog, inserendo le righe di codice al giusto posto si otterrà il risultato voluto. Ogni tema è però differente dall’altro, bisognerà quindi stare attenti ad individuare la giusta posizione dove piazzare il codice spiegato nei prossimi paragrafi.

ATTENZIONE: Prima di eseguire qualsiasi modifica ai vostri file e/o dispositivi siete pregati di effettuare un backup di questi. Solo così sarete capaci di tornare indietro riparando ad eventuali errori di distrazione. L’articolo e l’autore non possono essere ritenuti responsabili di alcun danno subito dalla vostra strumentazione. Buon lavoro.

Fiato alle trombe quindi, si parte :)

# exclude posts from some category

Ovvero: escludere i post facenti parte della categoria “Pillole” da quelli visualizzati in Home Page, nella lista completa dei post. Se avete già creato la categoria si può procedere, altrimenti fatelo ora e ricavate l’ID attraverso il metodo spiegato nel post precedente. Nel mio caso la categoria Pillole ha ID 2407.

La documentazione che servirà per questo specifico caso riguarda la funzione The Loop di WordPress, disponibile come sempre nel Codex. Nello specifico facciamo riferimento (appunto) all’esclusione di post di una determinata categoria:

codex.wordpress.org/The_Loop#Exclude_Posts_From_Some_Category

La stringa interessata effettua il controllo di categoria subito dopo il ciclo while che calcola il numero di post da mostrare in pagina. Per l’esattezza si occuperà di saltare” la visualizzazione dei post di una determinata categoria solo nel caso in cui ci si trovi in home page, così da non intaccare archivi e altro:

<?php if (in_category('2407') && is_home() ) continue; ?>

Inserendo la stringa prima della visualizzazione del post permetteremo al ciclo di ignorare la categoria Pillole. Occorrerà piazzarla quindi (secondo documentazione) tra:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

Nel mio tema (BigBlue modificato) questo è il risultato:


<?php if (have_posts()) : ?>
		<?php while (have_posts()) : the_post(); ?>
		<?php if (in_category('2407') && is_home() ) continue; ?>
		<div class="entry">

e funziona egregiamente. Il test è stato effettuato su un post in particolare (Aggiorna MfE sul tuo E65) realizzato e pubblicato in Pillole ma mai visto sulla Home Page tra gli articoli disponibili, raggiungibile solo per permalink o dagli archivi di Giugno 2009.

# la creazione del box

Fatta la prima parte dello sporco lavoro si passa alla visualizzazione in box dedicato. Trattandosi di post alla stregua di “un twitter maggiorato ma di un tumblr minorato” basterà un piccolo spazio lungo tanto quanto la colonna che lo ospita ma alto (nel mio esempio) poco, bastano appena 160 pixel. Chiaro che le dimensioni cambiano nel caso in cui si decida di non inserirlo nella home page ma magari in Sidebar ;-)

Il codice? E’ presto realizzato:


	<b>PILLOLE: notizie flash da Gioxx</b>
	<div class="boxpillole" style="border: 1px solid ; padding: 4px 6px 2px; width: 500px; height: 160px;">
	<?php $my_query = new WP_Query('cat=2407&showposts=1');
		while ($my_query->have_posts()) : $my_query->the_post(); ?>
		<b><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent
		Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></b>
		<?php the_content('Read the rest of this entry »'); ?>
	<?php endwhile; ?>
	</div><br />

Differisce da quello visto l’ultima volta per il semplice fatto che stavolta non si visualizzerà il riassunto del post, ma il contenuto completo con tanto di link o immagini magari (anche se sarebbe meglio non metterne per questioni di corretta visualizzazione ;)) … si nota proprio da quel “the_content” come ultima riga prima della chiusura del ciclo While.

Il box va messo (se si sceglie la home page) prima di qualsiasi altro codice, ancora prima del “<?php if (have_posts()) : ?>“, dopo del get_header e del div content. Per farvi capire meglio ecco il suo posizionamento all’interno dell’index.php di BigBlue:


&lt;?php get_header(); ?&gt;
	&lt;div id=&quot;content&quot;&gt;
	&lt;b&gt;PILLOLE: notizie flash da Gioxx&lt;/b&gt;

Il gioco è così fatto. Se pubblicherete qualcosa all’interno della categoria Pillole (e mi raccomando, nessun’altra se volete tenerlo nascosto) lo vedrete solo ed esclusivamente nel box dedicato (e anche in archivio ovviamente o tramite un search, un link diretto), tutti gli altri post continueranno a susseguirsi nel corpo della home page :)

Cheers!

Wp-Hack: articoli in evidenza in sidebar

Un pò promemoria, un pò gabola già bella pronta per tutti coloro che volessero replicare i box che vedete nella sidebar di questo blog. Si tratta di un hack abbastanza semplice che usa funzioni già integrate in WordPress.

Sia il box evidenza che quello dedicato agli eventi rispondono a due categorie ben definite del blog. Il codice si basa sulla funzione the_excerpt() ampiamente documentata sul codex di WP:

codex.wordpress.org/Template_Tags/the_excerpt

ho volutamente evitato di pulire il codice, vi mostro esattamente cosa carica sidebar.php prima di andare a richiamare lsidebar.php e rsidebar.php:

# box in evidenza

Le uniche variabili che entrano in gioco prima di preparare la query e richiamare il ciclo while sono:

  • numero della categoria che contiene gli articoli in evidenza (nel mio caso 2281)
  • numero di post da far comparire nel box (nel mio caso 1). Personalmente ho pensato che un box debba mettere in evidenza “l’ultima creazione“, per questo motivo mantengo ben volentieri “l’articolo secco” (1)

<b>IN PRIMO PIANO su Gioxx's Wall</b>
<div class="boxevidenza" style="border: 1px solid ; padding: 4px 6px 2px; width: 435px; height: 160px;">
	<?php $my_query = new WP_Query('cat=2281&showposts=1');
		while ($my_query->have_posts()) : $my_query->the_post(); ?>
		<h3><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent
		Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
		<?php the_excerpt(); ?>
	<?php endwhile; ?>
</div>

#box eventi

Anche in questo caso basta conoscere il numero della categoria e dichiarare quanti post elencare nel box. Per quanto mi riguarda basta e avanza -ancora una volta- l’ultimo post realizzato ;)


<b>EVENTI da / per / su / via Gioxx's Wall</b>
<div class="boxeventi" style="border: 1px solid ; padding: 4px 6px 2px; width: 435px; height: 160px;">
	<?php $my_query = new WP_Query('cat=18&showposts=1');
		while ($my_query->have_posts()) : $my_query->the_post(); ?>
		<h3><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent
		Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
		<?php the_excerpt(); ?>
	<?php endwhile; ?>
</div>

Dovete quindi ricordare di modificare il numero della categoria ed il numero di post, nulla di più semplice. Il codice è personalizzabile e “inseribile” nelle sidebar di qualsiasi WordPress, nessuna limitazione in proposito. Per chi non sapesse come trovare il codice univoco di una categoria all’interno del proprio blog dedico un altro paragrafo HowTo, gli altri possono terminare tranquillamente la lettura dell’articolo ;)

# howto: cercare l’ID di una categoria

Operazione tutto sommato banale. Richiede qualche passaggio, tutto dall’interfaccia di amministrazione. Avendo io WordPress in inglese (lo preferisco, soprattutto quando si tratta di cercare supporto in giro per il web) citerò voci e URL in lingua originale, non dovrebbe distare così tanto dalla traduzione italiana, nel caso in cui aveste difficoltà lasciate un commento, risponderò quanto prima.

Metodo testato su WordPress 2.8 (compatibile comunque con le vecchie versioni):

  • dal box “Posts” (sto parlando della Dashboard eh ;)) selezionare Categories
  • dal campo di ricerca in alto a destra inserire il nome della categoria che ci interessa e premere invio (o confermare con “Search Categories”)
  • puntando il mouse sul nome della categoria rilevata dare una veloce occhiata all’URL e identificare l’ID univoco assegnato, come in figura:

cliccare per ingrandire

Quel 18 che vedete nel passaggio “3” dell’immagine è l’ID della categoria, potete darlo in pasto ai codici sopra pubblicati :)

Spero possa tornarvi utile. Buon lavoro!

Batch: Destroy OGA

Buongiorno e bentrovati, oggi voglio tirarvi fuori un argomento delicato che spero non venga “inteso male” … proviamo a procedere?

Se dovessi fare il conto di quanti utenti sfruttano Office o Windows piratati probabilmente non basterebbe un robusto DB MySQL per contenere e catalogare tutti coloro che hanno deciso di non investire soldi in uno dei progetti Microsoft forse più riusciti (e non venitemi a fare le pappardelle con OpenOffice e simili, lo uso e sostengo l’Open Source, talvolta però non ancora ai livelli dei prodotti professionali).

# perché OGA?

OGA (Office Genuine Advantage) è il “vantaggioso” strumento che controlla la genuinità del prodotto Office. Bene in vista nella tray grazie al suo logo a forma di stellina, indica la presenza di una installazione piratata sulla macchina. Facciamola breve: la “stellina” insieme ai suoi messaggi ed i suoi “preziosi consiglisono fastidiosi, parecchio. Chiunque sfrutti macchine virtuali dove sviluppare codice o semplicemente testare funzionalità, più e più volte avrà odiato quell’icona in più e quel messaggio sistematico.

La licenza ce l’ho, solo non voglio sfruttarla per una macchina che domani verrà distrutta e che verrà comunque conteggiata da Microsoft come installata! Rimane una sola alternativa: distruggere il modulo OGA. Un codice batch, due fantastiche applicazioni “riga di comando compatibili” e via, il gioco è fatto!

# il batch

In breve? E’ presto detto:

  • si chiude l’eseguibile
  • grazie ad Unlocker (richiamato da riga di comando) si sbloccano e si cancellano le DLL utilizzate dal controllo OGA
  • grazie a RegDel (anch’esso richiamato da riga di comando) si cancella la chiave relativa all’Office Genuine Advantage
  • un ultimo giro per cancellare i “job” schedulati nelle Operazioni Pianificate di Windows

Attenzione utenti all’ascolto:

Attenzione: la soluzione proposta elimina il messaggio di copia pirata, ma non rende genuino il vostro prodotto. Per farlo servirà un codice di licenza valido e alcune istruzioni da seguire passo-passo pubblicate in un documento ufficiale Microsoft. L’articolo non è stato scritto per favorire la pirateria, sia chiaro. E’ solo un’alternativa ai mille metodi già pubblicati su internet e facilmente reperibili via Google, un pò come la scoperta dell’acqua calda ;)

Il codice vien da se :)


@echo off

echo ############################################################
echo # Shutdown OGA - Destroy dll and reg of Microsoft OGA      #
echo # v.0.1                                                    #
echo # Gioxx 2009 - gioxx@gxware.org / gioxx.org                #
echo ############################################################

cls
echo Chiudo il processo WgaTray.exe ...
echo;
taskkill /IM WgaTray.exe

echo;
echo Attivo la DLL di Unlocker ...
regsvr32 UnlockerCOM.dll

echo;
echo Rimozione OGA Validation Pack ...
unlocker %windir%\system32\WgaTray.exe /S /D
unlocker %windir%\system32\OGAAddin.dll /S /D
unlocker %windir%\system32\OGACheckControl.dll /S /D
unlocker %windir%\system32\OGAVerify.exe /S /D
echo;
echo Terminato, i file sono stati cancellati con successo.

echo;
echo Disattivo la DLL di Unlocker ...
regsvr32 /u UnlockerCOM.dll

echo;
echo Cancello la chiave di registro OGA ...
regdel &quot;HKEY_CURRENT_USER\Software\Microsoft\Office Genuine Advantage&quot; /q /n

echo;
echo Cancello i JOB attivi nelle Operazioni Pianificate ...
cd %SystemRoot%\Tasks
del OGADaily.job
del OGALogon.job

pubblicato anche in sezione /dev: dev.gxware.org/?16

Nulla di particolarmente complicato. Spiego passo passo ciò che serve sapere:

  1. taskkill /IM WgaTray.exe chiude l’eseguibile che tiene in piedi l’icona nella tray di sistema
  2. regsrv32 registra la DLL necessaria per il corretto funzionamento di Unlocker (verrà utilizzata in seguito anche per de-registrare la DLL)
  3. unlocker /S /D provvede a sbloccare e cancellare le DLL che si occupano del funzionamento di OGA
  4. regdel /q /n provvede a cancellare la chiave di registro segnalata in modo silente e senza richiedere conferma
  5. del *.job chiude il codice e si preoccupa di cancellare i due JOB nelle Operazioni pianificate di Windows. Entrambi lanciano i controlli OGA quotidianamente. Teoricamente inutili una volta cancellati eseguibili e DLL ma il lavoro va fatto per bene no? :)

Il pacchetto è pronto per essere utilizzato. Oltre al batch troveranno spazio (nella stessa cartella) i file di Unlocker e di RegDel, ottenendo una cosa simile:

Tutto ciò che ti serve è liberamente distribuito su GxWare.org, solita sezione download:

downloads.gxware.org/index.php?dir=articoli/shutdown_oga/&file=destroy_oga.zip

48 KB tutto compreso, basta lanciare destroy.bat e attendere la fine del processo.

Fatene buon uso ed evitate di giocare troppo all’allegro pirata ;)

gfsolone.Com, come nasce un sito personale

Oggi facciamo della gran auto-referenzialità, non capitava da tanto e voglio approfittarne per spiegarvi come nasce un piccolo sito web in grado di raccogliere alcune pagine “quasi statiche” che raccontano la propria persona, mettano in mostra il Curriculum Vitae e facciano conoscere al visitatore gli interessi, le capacità e le informazioni di cui necessita per un primo approccio (fondamentali quindi i riferimenti per essere contattati).

gfsolone.Com, since 2005

Ho messo in piedi la prima versione del mio sito personale circa 4 anni fa. Novembre del 2005, grazie ad archive.org sono anche riuscito a trovare uno straccio di pagina ancora funzionante:

web.archive.org/web/20051124224608/http://www.gfsolone.com

La piattaforma usata era Simple PHP Blog, chiaramente modificata secondo le mie esigenze (avevo già usato lo stesso motore per diversi altri siti nello stesso periodo, compreso RavennaLUG), serviva a raccogliere le pagine secondo me utili a farmi conoscere quanto bastava, ancora niente blog, decisamente restio ad espormi in prima persona (lo facevo già via GxWare.org pubblicando articoli informatici).

Da li il passo ad una v2 è stato abbastanza breve, si parla del 24 giugno di 365 giorni dopo (24.06.06), giorno del mio onomastico durante il quale ho deciso di tirare fuori la versione rinnovata, decisamente più compatta e (ahimé) con informazioni dimezzate:

web.archive.org/web/20060724234250/http://www.gfsolone.com (si vede poco e nulla, c’erano molte immagini)

E così venne la terza versione, la penultima, quella durata più di tutte, basata semplicemente su codice scritto a manina, grafica personalizzata via CSS, PHP e qualche “funzioncina” qua e la in JavaScript, nulla di eccezionale ma ha fatto il suo “sporco lavoro“:

web.archive.org/web/20070204085430/http://www.gfsolone.com/index.html

Tra una modifica e l’altra (piccole, mai invasive), si è arrivati a “gfsolone.Com v4“, un rinnovamento completo di motore, grafica e contenuti con la speranza che questi ultimi rimangano sempre aggiornatissimi (dipende dal sottoscritto, lo so :P). Ve lo presento:

http://gfsolone.com

e questi sono i suoi dettagli:

Nulla quindi di particolarmente ostico da mettere in piedi, non trovate?

# perché WordPress?

Perché è il CMS più scalabile, modificabile e personalizzabile in pochi minuti che esista sulla faccia della terra, pensiero personale ovviamente. Perché è gratuito, open-source, ha dietro di se una comunità di utilizzatori, sviluppatori e appassionati davvero enorme, pronta ad aiutare chi ha difficoltà, anche a livello nazionale.

Perché possiede già un ricco database di plugin che possono venire incontro alle esigenze di qualunque sviluppatore desideroso di non fare a mano ciò che potrebbe fare automaticamente uno script in PHP. Perché viene costantemente tenuto sotto controllo, aggiornato e rilasciato in tempi record quando si tratta di riparare una possibile falla critica (un pò come Firefox).

Perché, perché, perché, ci sarebbero mille altri motivi per utilizzare WordPressnon è solo un CMS per far blog, è molto di più.

# perché quei plugin?

Il paragrafo probabilmente più piccolo, non serve spendere molte parole sulla scelta dei 3 plugin di partenza. Ciò che fanno spiega abbondantemente la loro funzione all’interno del sito:

  • post2pdf servirà a chi desidera salvare una copia del mio CV direttamente in PDF da tenere da parte e stampare nell’eventualità serva. Non posso mostrarvelo in funzione, la pagina CV non è ancora pubblica :P
  • wp-db-backup … lo chiedete anche? Salvare settimanalmente una copia del DB MySQL da inviare comodamente alla casella GMail è un’operazione che abilito su qualsiasi blog da me controllato o messo in piedi. I backup non sono mai abbastanza quando qualcosa va storta!
  • wp-contactform è già in funzione e disponibile per tutti alla pagina gfsolone.com/contattami/modulo-contatto, per permettere al visitatore di contattarmi senza usare il proprio mailclient. Comodo, rapido, funzionale.

# perché quel tema?

No dico, lo avete visto? Replicare nativamente la grafica di facebook che da sempre apprezzo particolarmente è la soluzione che mi ha colpito di più durante l’esplorazione del web alla ricerca di un tema che potesse identificare la nuova versione del sito. E’ minimalista, non richiede troppi secondi per il caricamento di una singola pagina, usa un CSS da 20 righe a malapena, una vera chicca! E poi date una occhiata anche a questo blog, non vi sembra che vadano particolarmente d’accordo? :)

Immagini grandi (volutamente tenute così), testo altrettanto (per una più comoda lettura), uso spudorato di strumenti che mette a disposizione il web 2.0 per raccogliere (ad esempio) gli ultimi articoli presi da questo blog o per farvi vedere le ultime fotografie caricate su Flickr, contatti bene in vista per essere sicuro che a nessuno sfuggano :mrgreen:

# qualche modifica fatta

Andare a ritoccare un tema così ben studiato è un’operazione che porta via “poco tempo“, tutto dipende da ciò che si desidera. Mettiamola così: il menu inizialmente studiato per CryBook prevede uno spazio dinamico tra una voce di menu e l’altra (nella barra superiore) che comprende anche eventuali pagine “figlie” al di sotto della principale. Vi mostro la differenza:

PRIMA


DOPO


Il tutto per dare il giusto spazio tra una voce e l’altra senza strani incolonnamenti stile tangenziali di Milano! Le pagine figlie vengono dichiarate attraverso il DIV “Pagine Correlate” nelle pagine “padre” (si vede nell’immagine “Dopo”).

Come seconda cosa è arrivata la personalizzazione della pagina di errore 404, abbastanza comune e visualizzata (anche se non richiesta espressamente) da tutti coloro che ricordano un vecchio indirizzo forse non funzionante. Fondamentale specificare che probabilmente il contenuto richiesto esiste ancora ma sarà necessario cercarlo manualmente, oppure scrivere al proprietario della baracca per chiedere delucidazioni.

Chiaramente si andrà a togliere di mezzo il motore di ricerca interno, non serve con così poche pagine già tutte raggiungibili tramite menu superiore (o Pagine Correlate). Ciò vuol dire che non sarà visibile, ma comunque funzionante se lo si richiama dall’URL!

Lo stesso vale per il feed dei contenuti. Trattandosi di pagine “statiche” non ci sarà bisogno di seguire notizie che non verranno mai pubblicate. Tanto vale commentare la riga che richiama il tutto no (si trova generalmente nel file header.php del tema scelto)?

	&amp;amp;amp;lt;link rel=&amp;amp;amp;quot;alternate&amp;amp;amp;quot; type=&amp;amp;amp;quot;application/rss+xml&amp;amp;amp;quot; title=&amp;amp;amp;quot;&amp;amp;amp;lt;?php bloginfo('name'); ?&amp;amp;amp;gt; RSS Feed&amp;amp;amp;quot; href=&amp;amp;amp;quot;&amp;amp;amp;lt;?php bloginfo('rss2_url'); ?&amp;amp;amp;gt;&amp;amp;amp;quot; /&amp;amp;amp;gt;

Stavolta però il lavoro lo si fa bene e per sicurezza si mette un plugin (solo se lo ritenete opportuno) per bloccare chiunque cerchi di arrivare “a mano” sul feed:

gfsolone.com/feed

Il suo nome è “Disable RSS“, disponibile gratuitamente sull’extend di WordPress.org:

wordpress.org/extend/plugins/disable-rss

Il più del lavoro è stato il trasporto vero e proprio dei dati contenuti nelle pagine, un procedimento che porta via parecchio tempo se si vuole adattare al meglio il codice al nuovo layout o decidere di cambiare totalmente posizione agli elementi. Ho preferito adottare la seconda soluzione per parecchi elementi, giusto per rinnovare un attimo il look (altrimenti che gusto c’è?).

Ho tolto (per chi stesse cercando inutilmente) le pagine dedicate all’intervento del LitCamp (mi pare di ricordare che si parlasse del 2007) e gli oggetti creati per la Google Toolbar ufficiale. Nel caso in cui questi ultimi servissero nuovamente basterà chiedere, ripristinerò la pagina :)

# e ora?

Il risultato è servito, in bella mostra per tutti, certo di miglioramenti se ne possono tirare fuori molti altri ma per il momento va bene così, mi piace, quel look talmente tanto minimalista da apparire fantastico ai miei occhi, non riesco a farmi piacere i temi ultra-complessi o ricchi di immagini facenti parte del layout di base, semmai preferisco usare la banda (internet) altrui per far caricare immagini che arricchiscono i post (lo notate fin troppo su gioxx.org)!

Cosa ne pensate? Volete provare a lasciare un commento per insultare il sottoscritto o magari per suggerire ulteriori miglioramenti? :)

Page 15 of 16« First...«1213141516»