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è?
giovedì 21 maggio 2009
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:
That's all folks
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
Etichette:
howto,
php,
programmazione
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!
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:
Ho tagliato un po' di cose inutili ed aggiunto le coordinate (20 110 perchè è la prima icona della seconda riga) e l'end finale:
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!
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..
* 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..
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..
mercoledì 29 aprile 2009
[HOWTO] Installare kqemu su debian
Visto che in un post precedente avevo accennato a module-assistant, dedico un rapido post al suo utilizzo per installare kqemu.
kqemu è il modulo del kernel necessario per avere prestazioni migliori usando qemu.
Installarlo con module-assistant è rapidissimo:
Il primo comando prepara il pc alla compilazione (installando build-essential, i kernel headers etc etc..). Il secondo prima fa pulizia da eventuali compilazioni precedenti, poi scarica i sorgenti di kqemu e li compila, creando il .deb per il pc in questione. Infine lo si installa.. meglio di così..
kqemu è il modulo del kernel necessario per avere prestazioni migliori usando qemu.
Installarlo con module-assistant è rapidissimo:
erakis:~# m-a prepare
erakis:~# m-a clean,get,build kqemu
erakis:~# m-a install kqemu
Il primo comando prepara il pc alla compilazione (installando build-essential, i kernel headers etc etc..). Il secondo prima fa pulizia da eventuali compilazioni precedenti, poi scarica i sorgenti di kqemu e li compila, creando il .deb per il pc in questione. Infine lo si installa.. meglio di così..
lunedì 27 aprile 2009
Driver Nvidia ufficiali su debian (64 bit)
Non mi ricordo mai i parametri ottimali.. per ora mi sembra siano questi, per cui me li segno qui sul blog:
== Spiegazione
Come prima cosa imposto il compilatore giusto (per il kernel che ho) poi lancio NVIDIA-Linux-x86_64-173.14.12-pkg2.run , che è la versione del driver che avevo già in locale. Usando --update scarica l'ultima versione, non mi chiede di accettare la licenza ( --accept-license), non mi chiede di cercare versioni precompilate (--no-precompiled-interface) e si compila allegramente il modulo.
Ah, prima di lanciare il tutto consiglio di usare module-assistant facendo
Giusto per avere l'ambiente pronto con tutti gli strumenti necessari per compilare
erakis:/usr/src# CC=gcc-4.1 sh NVIDIA-Linux-x86_64-173.14.12-pkg2.run --update --accept-license --kernel-source-path=/usr/src/linux --no-precompiled-interface
== Spiegazione
Come prima cosa imposto il compilatore giusto (per il kernel che ho) poi lancio NVIDIA-Linux-x86_64-173.14.12-pkg2.run , che è la versione del driver che avevo già in locale. Usando --update scarica l'ultima versione, non mi chiede di accettare la licenza ( --accept-license), non mi chiede di cercare versioni precompilate (--no-precompiled-interface) e si compila allegramente il modulo.
Ah, prima di lanciare il tutto consiglio di usare module-assistant facendo
erakis:/usr/src# m-a prepare
Giusto per avere l'ambiente pronto con tutti gli strumenti necessari per compilare
giovedì 23 aprile 2009
ffmpeg+ "Seems stream 0 codec frame rate differs from container frame rate"
Incredibile, dopo mezz'ora di tentativi ho scoperto che il problema era che il file di input era in audio 5.1 .. dico "incredibile" per il fatto che l'errore di ffmpeg di certo non aiutava, per cui non ho ben capito come ho fatto a risolverlo.. cmq il comando che uso ora per fare l'encoding di filmati per lo smartphone (che spiegavo qui) è diventato:
con l'aggiunta di ac 2 per forzare la modalità stereo..
ffmpeg -i $input -s qvga -vcodec wmv2 -r 25k -acodec wmav2 -ar 22050 -ab 64k -ac 2 $output.wmv
con l'aggiunta di ac 2 per forzare la modalità stereo..
Etichette:
delirio,
ffmpeg,
odio,
smartphone
mercoledì 22 aprile 2009
Il suicidio continuo di Tilda
Come detto, sul portatile vecchio semidistrutto ho messo in autostart firefox e tilda, per avere il web ed una console sempre a portata di mano.
Ultimamente tilda rappresenta unicamente una rottura di palle. Per qualche motivo assurdo ogni tot si auto-sputtana il file di configurazione (~/.tilda/config_0) per cui sono costretto a cancellare la cartella e a riconfigurarlo..
Non ho ancora avuto tempo di indagare, ma per ora questo suo suicidio continuo in segmentation fault è abbastanza fastidioso.
Ho trovato che il problema era il file di configurazione lanciando tilda con strace, da cui ho visto che l'ultima syscall, prima di lanciare SIGSEGV, era una open sul file di configurazione..
che roba
Ultimamente tilda rappresenta unicamente una rottura di palle. Per qualche motivo assurdo ogni tot si auto-sputtana il file di configurazione (~/.tilda/config_0) per cui sono costretto a cancellare la cartella e a riconfigurarlo..
Non ho ancora avuto tempo di indagare, ma per ora questo suo suicidio continuo in segmentation fault è abbastanza fastidioso.
Ho trovato che il problema era il file di configurazione lanciando tilda con strace, da cui ho visto che l'ultima syscall, prima di lanciare SIGSEGV, era una open sul file di configurazione..
che roba
Iscriviti a:
Post (Atom)
