giovedì 21 maggio 2009

Sourceforge e Trac

Sourceforge ha deciso di aggiungere Trac ai suoi servizi.
Grandioso.. a me piace un sacco Trac, perchè è uno strumento utile, semplice ed essenziale. Fa quello per cui è stato pensato senza perdersi in puttanate.

Ho subito richiesto di attivarlo su uno dei miei progetti opensource hostati là. Ho eliminato altri componenti inutili (tipo il sistema di ticket e il wiki) per passare tutto sotto trac.

Tra l'altro da un mesetto ho riniziato ad usarlo anche per lavoro.. quindi il fatto di aver allineato gli strumenti che uso nella mia attività lavorativa e nello sviluppo occasionale va sicuramente a mio vantaggio..

Tra l'altro al lavoro l'ho usato prima con il tracd (il sever http integrato) lanciato sull'interfaccia di rete locale, poi l'ho montato su un apache con mod_python, con login dipendente da un htpasswd a cui punta anche subversion, messo anche lui su http. Così una sola porta (la 80), una sola autenticazione (nome e pw del file .htpasswd in questione) ed un solo protocollo (http).. comodo, nè?

martedì 19 maggio 2009

[HOWTO] Immagini con testo dinamico in PHP con GD

Ormai i miei pochi lettori avranno capito che passo da un argomento all'altro senza alcuna logica, ma salto da una tematica all'altra in base ai vari progetti che seguo contemporaneamente (che senso avrebbe lavorare in partita iva per una sola azienda?) oppure in base a miei interessi o mie ricerche personali.

In questo caso si tratta di lavoro: fare un'immagine di sfondo con un testo configurabile che viene scritto in una certa area. In PHP

Pensavo fosse una cosa complessa.. invece l'ho preparato in 5 minuti:

<?php
// Imposto l'header http
header("Content-type: image/png");

// carico lo sfondo
$im = ImageCreateFromPng('sfondo1.png');

// trovo l'indice del bianco nella palette
// (il colore della scritta)
$white = imagecolorexact($im, 255, 255, 255);

// imposto il font (questo è il path dei font di magento,
// ma è possibile mettere un ttf a scelta)
$font_file='./lib/LinLibertineFont/LinLibertine_It-2.8.2.ttf';

// testo esemplificativo (poi sarà valorizzato in base a query
// o a input dell'utente)
$msg_text = "Hello World\nCome va?";

// posizione da cui parto a scrivere
$x=50;
$y=50;

// passo tutto alla funzione imagefttext con 12pt di grandezza font e
// angolo 0 (normale da sx a dx)
imagefttext($im,12,0, $x, $y, $white, $font_file, $msg_text);

// invio la png risultante
ImagePNG($im);

// libero la risorsa
ImageDestroy($im);
?>


That's all folks

giovedì 14 maggio 2009

Come non fare un sondaggio su internet

Se avete letto del sondaggio, indetto dal Times, sulle persone più influenti del 2009, sicuramente sapete già che il risultato è a dir poco curioso..

Ma ecco anche il retroscena: "Inside the precision hack".. da leggere!

martedì 12 maggio 2009

Mozilla Prism: prime impressioni (su fluxbox con fbdesk)

E' stata rilasciata la versione 1.0 beta1 di Mozilla prism. Questo è uno di quei progetti che mi entusiasmano pur essendo, in realtà, nulla di particolarmente innovativo o rivoluzionario.
Ma è un passo in avanti.
In pratica è un'interfaccia al browser (basata su xulrunner) che rende ancora più labile il confine tra applicazioni Desktop e applicazioni web.

Per ora ha diversi limiti: prima di tutto non c'è la versione a 64 bit.. e visto che non voglio installare 80MB di librerie di compatibilità con ia32, sui miei pc principali non posso ancora usarlo.

Allora la cavia è automaticamente diventata il solito portatile scassato di cui ho parlato altre volte.

Dunque, la plugin di firefox sembra funzionare bene, ma ho preferito scaricare e scompattare la versione standalone anche se, appena installata, non sapevo bene cosa farmene del file .desktop che genera.. in quanto sto usando fluxbox.

Allora ho risolto così: ho installato fbdesk, l'ho configurato (in realtà credo che la configurazione di default di debian vada benissimo) poi ho generato con prism un .desktop.

Ora, il formato che utilizza fbdesk è lievemente diverso da quello generato da prism, probabilmente per il fatto che fbdesk si aspetta tutte le informazioni per le icone da mettere sul desktop dentro un unico file (~/.fluxbox/fbdesk.icons) quindi, per fare funzionare il tutto ho fatto delle modifica, partendo da quello generato da prism:


[Desktop Entry]
Name=YT
Type=Application
Comment=Web Application
Exec="/home/shatsar/Downloads/prism/prism" -override "/home/shatsar/.webapps/yt@prism.app/override.ini" -webapp yt@prism.app
Icon=/home/shatsar/.webapps/yt@prism.app/icons/default/webapp.png


Ho tagliato un po' di cose inutili ed aggiunto le coordinate (20 110 perchè è la prima icona della seconda riga) e l'end finale:


[Desktop Entry]
Name=YT
Exec="/home/shatsar/Downloads/prism/prism" -override "/home/shatsar/.webapps/yt@prism.app/override.ini" -webapp yt@prism.app
Icon=/home/shatsar/.webapps/yt@prism.app/icons/default/webapp.png
Pos= 20 110
[end]


Ora con doppio click sull'icona mi apre l'applicazione web in modo molto più rapido che non con firefox, data l'assenza di una serie di plugin, dei vari buttoni, della barra degli indirizzi, dei segnalibri etc etc.. davvero niente male.. ora quello che mi interessa approfondire è capire se e come si può includere prism dentro la distribuzione di una web application e quali vantaggi ciò porterebbe..

intanto complimenti a mozilla!

giovedì 7 maggio 2009

Magento e la personalizzazione della pagina dei prodotti

Continuano le mie avventure su magento.. Per modificare la pagina dei prodotti, quello che è necessario fare è, più o meno, questo:
* cambiare layout (dal default di 2 colonne con barra laterale a destra) modificando il file catalog.xml dentro la cartella template (che si trova nella cartella del tema): quello che va ritoccato è il nodo catalog_product_view
* modificare il file view.phtml (dentro template/catalog/product/ ) che è il componente principale della pagina dei prodotti, che include diversi componenti presenti nella cartella template/catalog/product/view
* cambiare l'html dei vari componenti modificando i file in template/catalog/product/view .. per esempio addtocart.phtml per cambiare l'html del tasto di "add to cart" oppure "addto.phtml" per la parte di wishlist/compare

Alcune cose mi sfuggono ancora dell'architettura di magento, ma mi ci sto avvicinando e, tra un po', dovrò anche scrivere dei componenti specifici per l'e-shop su cui sto lavorando, quindi vedrò anche la struttura proprio delle API php.. e lì si che ci sarà da divertirsi..

martedì 5 maggio 2009

Primo contatto con Magento

Da circa una settimana sto lavorando su un progetto basato su magento. E' una applicazione PHP per e-shop di rara potenza.

Per ora sto lavorando sulla grafica. Sto modificando il template di default: quindi lavoro prevalentemente dentro la cartella app/design/frontend/default/default (poi rinominerò tutto per avere un layout separato). Per cambiare l'impostazione della pagina vado a modificare page.xml, da cui posso, per esempio, aggiungere e togliere blocchi dalla pagina. Per modificare le impostazioni dei vari componenti (per esempio footer) bisogna andare a modificare i relativi file .phtml dentro template/ (sempre dentro app/design...). Ora, per esempio, sto modificando template/catalog/product/list.phtml per cambiare la visualizzazione dei prodotti.

Come prima impressione direi che è un sistema potentissimo perchè mette a disposizione un sacco di funzionalità (dalla gestione dei prodotti alle impostazioni dell'e-shop stesso), ma è molto complesso da modificare e, visto che la documentazione ufficiale mi pare assolutamente inadeguata, l'unica risorsa è cercare sul forum..

Finito il discorso della grafica dovrò anche sviluppare dei moduli aggiuntivi.. e lì si che ci sarà da bestemmiare..