domenica 13 dicembre 2009

100% Mashaper

Da una ventina di giorni ormai lavoro praticamente solo su Mashape.
A dirla tutta sto ancora finendo dei progetti per altri clienti, ma è davvero poca roba che mi occupa solo qualche ora a settimana.. niente di significativo. Non abbastanza, insomma, per cambiare il fatto che stia lavorando fulltime su Mashape.

Molti magari non ci vedranno nulla di strano o nulla degno di essere citato in un post. Invece per me questa è una grande novità perchè io, in cinque anni di consulenza in partita iva, non ho mai fatto 5 giorni su 5 nella stessa azienda per più di due settimane.

Infatti ho sempre trovato più stimolante seguire più aziende contemporaneamente, oltre ovviamente all'università (che ho finito a fine aprile).
Ma ora non sarà più così. Si sta chiudendo un ciclo? Si, direi di si. E non perchè la vita da consulente mi abbia stancato, ma semplicemente perchè ora ho tra le mani qualcosa di troppo bello per non buttarmici dentro totalmente.. e poi passare l'inverno in California non può essere certo male :)

lunedì 23 novembre 2009

Eclipse Fullscreen plugin

I'm using a plugin really useful: code.google.com/p/eclipse-fullscreen.

Some months ago i've configured gnome to force fullscreen mode to the foreground window pressing alt+f11: with gconf-editor go to /apps/metacity/window_keybindings/ and configure key binging for toggle_fullscreen. That was really necessary for my 10'' netbook (Dell Mini 10v).

But this is a generic solution, for example the fullscreen mode of firefox is far better than using metacity fullscreen (it makes disappear not only the window border, but also the navigation menu, the toolbar and the status bar).
For eclipse is almost the same: metacity fullscreen is really good, but the plugin rocks!

And a useful collateral effect is that in fullscreen mode i do not receive all the notifications from gnome (liferea, updates, rhythmbox..) and i can really get into my "coding flow"..

lunedì 9 novembre 2009

[HOWTO] Trac AccountManagerPlugin

I've just installed AccountManager Trac plugin in one of my trac instances (in this howto i will name it "xyz").


repo:/tmp# svn co http://trac-hacks.org/svn/accountmanagerplugin/0.11 .
repo:/tmp# cd 0.11
repo:/tmp/0.11# python setup.py bdist_egg
repo:/tmp/0.11# cd dist/
repo:/tmp/0.11/dist# mv TracAccountManager-*.egg /path/to/trac/xyz/plugins/


In xyz/conf/trac.ini i have added:


[components]
trac.web.auth.LoginModule = disabled
acct_mgr.web_ui.LoginModule = enabled
acct_mgr.web_ui.RegistrationModule = disabled
acct_mgr.web_ui.emailverificationmodule = disabled
acct_mgr.htfile.HtPasswdStore = enabled

[account-manager]
password_store = HtPasswdStore
password_file = /path/to/trac/xyz/conf/trac.htpasswd


Then i had to edit my apache httpd configuration. On this server i run several trac instances (with the TracEnvParentDir set to /path/to/trac/ ) so my login configuration was:


<Location "/trac/*/login">
    AuthType Basic
    AuthName "Login"
    AuthUserFile /etc/httpd/conf/htpasswd
    Require valid-user
</Location>


Then it became:


<Location ~ /trac/(?!xyz)*/login">
    AuthType Basic
    AuthName "Login"
    AuthUserFile /etc/httpd/conf/htpasswd
    Require valid-user
</Location>


Adding that regex, now i exclude from this directive the path /trac/xyz/login.
Consequently the form login (handled by the AccountManagementPlugin) is only available in xyz instance (with a reserved password file), while the others (including future ones) will use the apache basic authentication.

mercoledì 7 ottobre 2009

GWT on debian 64bit

In mashape we are working on a dashboard in Google Web Toolkit.

GWT is a very interesting project. You can find a lot of useful plugins and an active community. The main problem is that you can't run GWT and its Eclipse plugin in a pure 64bit environment.
And my laptop was a pure 64 bit env. And it was not easy to keep it so "pure" in its 2years of life.

To run GWT on debian 64bit, i had to follow, first of all, these steps:
http://code.google.com/p/google-web-toolkit/issues/detail?id=135#c57
The apt-get install of ia32-sun-java6-bin installed ia32-libs, that contains shared libraries compiled for ia32.
But it's not enough..
i was still getting a fatal error with libgtk2.0-0 (not found).
The final step, not listed in the link above, is this:
apt-get install ia32-libs-gtk

Now it works, with some warning, but nothing dangerous :)

domenica 20 settembre 2009

Appunto personale su nuovo progetto

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..

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

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:

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 ), tanto più che anche senza settare il flag x, basta fare


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

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

<: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


<plugin>
  <artifactId>maven-eclipse-plugin</artifactId>
  <version>2.7</version>
  <configuration>
    <wtpversion>2.0</wtpversion>
  </configuration>
</plugin>