Vista la semplicità delle API di twitter (con le quali sto interagendo per mashape) e visto che le API di identi.ca sono compatibili, credo che non sarebbe lungo creare un gadget per blogspot che si interfacci con identi.ca.. perchè usare il solo gadget per i feed rss (messo qui nella barra laterale) non dà risultati propriamente soddisfacenti...
ad avere tempo..
domenica 20 settembre 2009
lunedì 14 settembre 2009
Il micro-blogging
Ho ceduto al micro-blogging..
Ero partito con l'idea di iscrivermi a Twitter, per migliorare in qualche modo la comunicazione verso l'esterno e tenermi in contatto con un po' di realtà che sto conoscendo in questo periodo, in particolare il "sottobosco" delle startup milanesi.
Alla fine la mia natura nerd mi ha portato su identi.ca, che è basato sul motore di microblogging open source Status.net (ex laconi.ca).
Ho appena iniziato, per ora mi piace come concetto, anche perchè così riempio più facilmente il mio friendfeed ;)
Come mai questa svolta "social"? Beh, oltre al discorso dei contatti con le altre startup, c'è il fatto puramente tecnico che per mashape sto interagendo con un sacco di servizi online che forniscono API, per cui quale modo migliore di capire come usare un servizio se non iscriversi ed utilizzarlo?
Shatsar on identi.ca
Ero partito con l'idea di iscrivermi a Twitter, per migliorare in qualche modo la comunicazione verso l'esterno e tenermi in contatto con un po' di realtà che sto conoscendo in questo periodo, in particolare il "sottobosco" delle startup milanesi.
Alla fine la mia natura nerd mi ha portato su identi.ca, che è basato sul motore di microblogging open source Status.net (ex laconi.ca).
Ho appena iniziato, per ora mi piace come concetto, anche perchè così riempio più facilmente il mio friendfeed ;)
Come mai questa svolta "social"? Beh, oltre al discorso dei contatti con le altre startup, c'è il fatto puramente tecnico che per mashape sto interagendo con un sacco di servizi online che forniscono API, per cui quale modo migliore di capire come usare un servizio se non iscriversi ed utilizzarlo?
Shatsar on identi.ca
venerdì 28 agosto 2009
Comportamento anomalo nella Bash di Debian Testing
Oggi sono rimasto molto perplesso da un problema nella bash. Per fortuna mi ha fatto perdere poco tempo..
Ho la tendenza ad usare diversi shell script per le operazioni ripetitive, quindi stamattina lancio uno script per rigenerare le classi java di Apache Torque attraverso ant, farne un .jar e spostarlo dove mi serve.
E va in errore.
Pensando in un errore di configurazione inizio a dare un'occhiata ai log.. poi mi viene un dubbio e decido di fare girare l'applicazione java, per vedere quali modifiche sono state apportate ultimamente.
Lancio lo script che prepara l'ambiente per l'applicazione java:
In definitiva credo sia un problema di inizializzazione della console figlia (creata lanciando sh), tanto più che anche senza settare il flag x, basta fare
Che esegue il file sh in questione nella shell corrente..
mah
UPDATE:
Il problema (verificatosi su debian testing) era dovuto ad un aggiornamento di settimana scorsa che aveva fatto puntare /bin/sh a /bin/dash invece che a /bin/bash. L'aggiornamento di oggi ripristina il tutto. Problema analizzato grazie all'intervento di Federico (nei commenti)
Ho la tendenza ad usare diversi shell script per le operazioni ripetitive, quindi stamattina lancio uno script per rigenerare le classi java di Apache Torque attraverso ant, farne un .jar e spostarlo dove mi serve.
E va in errore.
Pensando in un errore di configurazione inizio a dare un'occhiata ai log.. poi mi viene un dubbio e decido di fare girare l'applicazione java, per vedere quali modifiche sono state apportate ultimamente.
Lancio lo script che prepara l'ambiente per l'applicazione java:
shatsar@erakis:~/develop$ sh prepare-deploy.sh
prepare-deploy.sh: 2: pushd: not found
[.. altri errori]
shatsar@erakis:~/develop$ cat prepare-deploy.sh
#!/bin/bash
pushd /tmp
[.. altre operazioni]
shatsar@erakis:~/develop$ pushd /tmp
/tmp ~/develop
shatsar@erakis:/tmp$ cd
shatsar@erakis:~$ cd develop/
shatsar@erakis:~/develop$ chmod +x prepare-deploy.sh
shatsar@erakis:~/develop$ ./prepare-deploy.sh
/tmp ~/develop
[.. funziona tutto]
In definitiva credo sia un problema di inizializzazione della console figlia (creata lanciando sh
shatsar@erakis:~/develop$ source prepare-deploy.sh
Che esegue il file sh in questione nella shell corrente..
mah
UPDATE:
Il problema (verificatosi su debian testing) era dovuto ad un aggiornamento di settimana scorsa che aveva fatto puntare /bin/sh a /bin/dash invece che a /bin/bash. L'aggiornamento di oggi ripristina il tutto. Problema analizzato grazie all'intervento di Federico (nei commenti)
martedì 21 luglio 2009
Disabilitare il lookup degli host in resolv.conf
Mi è capitato spesso di vedere dei server che rispondono alla richiesta di una connessione dopo alcuni secondi. Questo delay è dovuto alla risoluzione da parte del server del nome dell'host che ha richiesto la connessione. Raramente il pc client ha un nome associato (per esempio in reti interne in dhcp) per cui ci sono volte in cui questo delay fa davvero incazzare..
Normalmente basta associare all'ip corrente del client un nome in /etc/hosts, ma spesso non vale la pena riempire questo file con varie entry in caso di dhcp selvaggio.
Ultimamente avevo affrontato il problema per ssh, impostando a No il flag "UseDns" in /etc/ssh/sshd_config. Questo snelliva le connessioni ssh, lasciando però il delay, per esempio, nelle connessioni postgreSQL.
Quindi ho scoperto che questo si può migliorare agendo sul file resolv.conf.
In /etc/resolv.conf si possono mettere un sacco di impostazioni avanzate (vedere la sezione options del man), in particolare il flag che mi sta facendo risparmiare un sacco di tempo è no-check-names
Normalmente basta associare all'ip corrente del client un nome in /etc/hosts, ma spesso non vale la pena riempire questo file con varie entry in caso di dhcp selvaggio.
Ultimamente avevo affrontato il problema per ssh, impostando a No il flag "UseDns" in /etc/ssh/sshd_config. Questo snelliva le connessioni ssh, lasciando però il delay, per esempio, nelle connessioni postgreSQL.
Quindi ho scoperto che questo si può migliorare agendo sul file resolv.conf.
In /etc/resolv.conf si possono mettere un sacco di impostazioni avanzate (vedere la sezione options del man), in particolare il flag che mi sta facendo risparmiare un sacco di tempo è no-check-names
martedì 14 luglio 2009
Explorer e gli input type="image"
Oggi ho risolto una piccola cazzata che voglio condividere con la moltitudine dei miei lettori:
in caso di
Firefox e safari faranno un solo submit, explorer 2, uno via javascript e l'altro dovuto all'input.
Avendo lavorato parecchio in Ajax, mi è nota la pericolosità dell'onclick sui bottoni che normalmente fanno il submit.
Infatti in questo caso l'effetto dell'operazione è il medesimo, ma spesso capita di fare questo "trucco": sull'onclick cerco di fare tutto via javascript e ajax. Se per qualche motivo il browser non supporta js, seguirà il corso normale effettuando il submit del form in stile classico "web 1.0", permettendo comunque la fruizione del sito web. Finezza che troppo poche volte vedo implementata.
Ma tornando al discorso, il trucco funziona solo se l'onclick termina con un "return false".. come per l'onsubmit dell'elemento form.. se la validazione js fallisce bisogna forzare un return false, altrimenti il browser pensa di poter andare avanti tranquillamente.. quindi la riga che ho messo sopra è diventata:
Il fatto è che si trattava di un sito di e-commerce e rappresentava il form in cui si mette il numero che si vuole acquistare di un determinato prodotto.. il risultato è che inserire 1 e cliccare sul tasto su firefox e safari faceva mettere 1 elemento nel carrello, mentre con IE ci finivano 2 prodotti, derivanti dal doppio submit.. io l'avrei lasciato così, d'altra parte se usi Explorer.. :)
in caso di
<:input type="image" onclick="form.submit()" />
Firefox e safari faranno un solo submit, explorer 2, uno via javascript e l'altro dovuto all'input.
Avendo lavorato parecchio in Ajax, mi è nota la pericolosità dell'onclick sui bottoni che normalmente fanno il submit.
Infatti in questo caso l'effetto dell'operazione è il medesimo, ma spesso capita di fare questo "trucco": sull'onclick cerco di fare tutto via javascript e ajax. Se per qualche motivo il browser non supporta js, seguirà il corso normale effettuando il submit del form in stile classico "web 1.0", permettendo comunque la fruizione del sito web. Finezza che troppo poche volte vedo implementata.
Ma tornando al discorso, il trucco funziona solo se l'onclick termina con un "return false".. come per l'onsubmit dell'elemento form.. se la validazione js fallisce bisogna forzare un return false, altrimenti il browser pensa di poter andare avanti tranquillamente.. quindi la riga che ho messo sopra è diventata:
<:input type="image" onclick="form.submit();return false;" />
Il fatto è che si trattava di un sito di e-commerce e rappresentava il form in cui si mette il numero che si vuole acquistare di un determinato prodotto.. il risultato è che inserire 1 e cliccare sul tasto su firefox e safari faceva mettere 1 elemento nel carrello, mentre con IE ci finivano 2 prodotti, derivanti dal doppio submit.. io l'avrei lasciato così, d'altra parte se usi Explorer.. :)
martedì 7 luglio 2009
[HOWTO] mvn eclipse:eclipse su progetti j2ee
Torno attivo sul blog dopo un periodo offline (dovuto ad una grandissima mole di lavoro, soprattutto per la startup di cui ormai sono parte integrante) con un brevissimo post con un tip utile per chi vuole usare maven ed eclipse:
normalmente (per progetti Java) la plugin di maven per eclipse funziona splendidamente, anche in presenza di diversi moduli, per i quali crea le dipendenze tra progetti eclipse. Per risolvere il problema della configurazione dei progetti WTP, dopo aver impostato il packaging a war, il modo per far generare correttamente i file di progetto di eclipse è di aggiungere le seguenti righe al pom, nella sezione plugins
normalmente (per progetti Java) la plugin di maven per eclipse funziona splendidamente, anche in presenza di diversi moduli, per i quali crea le dipendenze tra progetti eclipse. Per risolvere il problema della configurazione dei progetti WTP, dopo aver impostato il packaging a war, il modo per far generare correttamente i file di progetto di eclipse è di aggiungere le seguenti righe al pom, nella sezione plugins
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.7</version>
<configuration>
<wtpversion>2.0</wtpversion>
</configuration>
</plugin>
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è?
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:
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
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!
Iscriviti a:
Post (Atom)