sabato 26 dicembre 2009

Skype on debian amd64

Due to my imminent relocation, i was trying to use skype_static-2.1.0.47.tar.bz2 on my laptop (debian amd64 testing), but it used to crash with this message:


Inconsistency detected by ld.so: dl-open.c: 643: _dl_open: Assertion `_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT' failed!


After a couple of unsuccessful tries, i downloaded the previous version: skype-debian_2.0.0.72-1_i386.deb , installed its dependencies ( i was missing two packages related to qt4)


erakis:~# apt-get install libqt4-core libqt4-gui
[..]
erakis:~# dpkg --force-architecture -i skype-debian_2.0.0.72-1_i386.deb


And now it works!

mercoledì 23 dicembre 2009

Solstizio

Arrivo con un paio di giorni di ritardo, ma stavo leggendo la pagina su wikipedia riguardante il solstizio e sono rimasto colpito dalla differenza delle ore di luce tra Milano e Catania.. non mi aspettavo che la differenza fosse così ampia:

Milano:  45°27'50.98"N  9°11'25.21"E
Catania: 37°31'0"N      15° 4'0"E

La differenza tra le coordinate è equivalente a quasi 50 minuti di luce in più (al mattino)

venerdì 18 dicembre 2009

Vita sociale online

Da qualche tempo mi sono dato al microblogging.
In fondo mi piace, anche se tendo a non abusarne. E stessa cosa per friendfeed e questo blog.
Ho visto sempre questo spazio come un luogo in cui scrivere appunti per me, passando da un argomento all'altro senza un filo logico se non le mie esperienze lavorative o gli smanettamenti notturni.
Ma ora penso sia arrivato per me il momento di fare le cose un po' più seriamente, seguendo in modo più costante la mia presenza online, come informatico, come professionista e come "startupper".

Quindi nella mia todolist ho questi punti:
* nuovo blog puramente tecnico e in inglese (in lavorazione su tumblr)
* seguire un po' più di persone su identi.ca e friendfeed
* decidere cosa fare di questo blog

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>

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

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:


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:


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:

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

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

domenica 19 aprile 2009

[HOWTO] aircrack ed intel 3945

Come dicevo nel precedente post ( Giocando con la Wireless ), avevo qualche problema ad usare la wireless con aicrack sulla scheda del mio portatile:


shatsar@erakis:~$ lspci | grep -i wireless
02:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)


il problema è che nel driver ufficiale non è prevista la modalità "Monitor" (nel senso che in realtà non sniffa niente) nè la possibilità di effettuare injection.

Quindi sono andato a scovare la pagina di aircrack-ng.org relativa alla mia scheda nella cache di Google (pare che oggi il sito sia giù):

Bisogna usare ipwraw, un modulo sostituitivo che permette queste funzionalità. La homepage è questa: http://homepages.tu-darmstadt.de/~p_larbig/wlan/

quindi, dopo aver verificato l'installazione dei prerequisiti (apt-get install linux-headers-`uname -r` build-essential libssl-dev ):

shatsar@erakis:/tmp$ wget http://homepages.tu-darmstadt.de/~p_larbig/wlan/ipwraw-ng-2.3.4-04022008.tar.bz2
shatsar@erakis:/tmp$ tar -xjf ipwraw-ng-2.3.4-04022008.tar.bz2
shatsar@erakis:/tmp$ cd ipwraw-ng/
shatsar@erakis:/tmp/ipwraw-ng$ make
shatsar@erakis:/tmp/ipwraw-ng$ su
Password:
erakis:/tmp/ipwraw-ng# make install
erakis:/tmp/ipwraw-ng# make install_ucode
erakis:/tmp/ipwraw-ng# echo “blacklist ipwraw” >> /etc/modprobe.d/blacklist
erakis:/tmp/ipwraw-ng# modprobe -r iwl3945
erakis:/tmp/ipwraw-ng# modprobe ipwraw
erakis:/tmp/ipwraw-ng# airodump-ng wifi0


Breve spiegazione: scarico i sorgenti, compilo ed installo sia il modulo che il firmware. Poi metto il modulo ipwraw in blacklist, perchè non è da usare normalmente, quindi non deve essere caricato all'avvio.
poi sostituisco il modulo attualmente caricato e lancio airodump..

Una volta finito di giocare, va reimpostato il driver in uso, quindi modprobe -r su ipwraw e modprobe su iwl3945

Enjoy

sabato 18 aprile 2009

Giocando con la wireless

Mi sono preso un sabato di pausa.. abbastanza svacco ed un po' di smanettamenti vari..
Il dubbio da risolvere era questo: sul portatile nuovo, airodump vede le reti, riceve i beacon ma non sniffa neanche un po' il traffico dati. Volevo capire se era un caso o ha problemi il driver.

Quindi ho pensato di crearmi l'ambiente ideale a casa da bucare. Sul mio pc vecchio (quello che ora è una postazione internet) ho quindi deciso di riattivare la wireless.

Vado a cercare i driver che usavo per l'interruttore della wireless, l'fsam7400. Scopro che ormai sono obsoleti, ed è tutto molto ma molto più comodo:

> modprobe wistron_btns

premere il tasto hotkey della wireless.
Fatto.
Bello.
Parto, mi connetto alla rete e comincio a generare traffico: dall'altro portatile: airodump vede zero traffico. Scheda: intel 3945.
Pare ci siano dei problemi con i driver delle schede wireless Intel..

Ho anche un adattatore wireless usb, il dlink g122. Ora vedo quale dei due riesco a far funzionare senza perderci sopra il weekend..

lunedì 6 aprile 2009

HOWTO installare OpenSolaris come immagine QEMU

Ho deciso di usare un po' OpenSolaris, visto che potrebbe essere la scelta per i server di un progetto molto molto interessante nel quale sto entrando.

Come primo tentativo di avvicinamento, direi di usarlo come immagine qemu..Proseguo quindi con la lista di post su qemu.


> shatsar@erakis:~$ wget http://dlc.sun.com/torrents/info/osol-0811.iso.torrent
> shatsar@erakis:~$ rtorrent osol-0811.iso.torrent


Dopo che ha finito il download dell'immagine iso (scaricabile anche in altri modi dal sito ufficiale..) preparare l'immagine:


shatsar@erakis:~$ qemu-img create -f qcow2 /home/shatsar/opensolaris.img 3600M
Formatting '/home/shatsar/opensolaris.img', fmt=qcow2, size=3686400 kB


Infine far partire l'installazione. Ovviamente si riesce ad evitare di masterizzare.. io pensavo di dover montare in loop device l'immagine iso, invece è ancora più semplice:


shatsar@erakis:~$ qemu -hda opensolaris.img -boot d -cdrom osol-0811.iso -m 512 -localtime


Ovviamente questa procedura, dopo aver visto che l'iso è sufficiente per far partire l'installazione, può essere usata per qualsiasi sistema operativo..

lunedì 23 marzo 2009

Windows XP su QEMU: Avvio ed Ottimizzazione

Finalmente riesco a scrivere qualcosa riguardo QEMU.
Come già detto, ho installato windows xp come immagine di qemu.
Il passo successivo è quello di avviare la macchina con interfaccia di rete abilitata:
Il comodo metodo di default è :

> shatsar@erakis:~$ qemu -hda xp.img -boot c -m 512 -localtime -net nic -net user

In questo modo crea un'interfaccia di rete con una configurazione basilare (con dhcp e nat) per far uscire la macchina virtuale su internet.

Se (per caso) ci fossero problemi con versioni trial/attivazioni, c'è la possibilità di passare un ulteriore parametro (startdate) per far credere alla macchina virtuale di essere in altre "coordinate temporali":

> shatsar@erakis:~$ qemu -hda xp.img -boot c -m 512 -localtime -startdate 2009-03-03T10:01:21 -net nic -net user

Magari il tempo di acquistare una licenza o trovare il crack, ma io questo non l'ho detto, sia chiaro..

== Ottimizzazioni
Avendo poco spazio su disco e poca ram bisogna lavorare un po' sull'ottimizzazione, contando che questa macchina verrà usata solo per task ridotti (se volete usarla di più dovrete darle in pasto ben più di 2.5GB e 512m di ram), ecco quello che ho fatto:
tasto destro su risorse del computer --> proprietà --> avanzate --> prestazioni (Impostazioni)
* effetti visivi: su "Regola in modo da avere prestazioni migliori"
* page file: di default viene istanziato come il 150% della RAM.. se vi sembra che dare un range da 768MB a 1.5GB al file di paging su 2.5GB totali di disco sia quantomeno limitante, dalla scheda avanzate si può cambiare l'impostazione della memoria virtuale scendendo a valori ragionevoli
* disinstallare le applicazioni inutili: da pannello di controllo --> installazione applicazioni --> installazione componenti di windows ho tolto tutto tranne explorer (che poi, in realtà, per alcuni componenti, quello che si va a togliere è solo il link nel menù start..)
* ho tolto l'impostazione di esplora risorse che "Cerca automaticamente cartelle e stampanti di rete" da strumenti --> opzioni --> visualizzazione.
* ho tolto l'immagine di sfondo
* già che c'ero ho fatto anche un bel defrag..

Non ho voluto apportare troppe modifiche all'installazione attuale, quindi niente software esterni per ottimizzazione/caching nè ho eliminato i font..

domenica 22 marzo 2009

TeXlipse

Chi mi conosce da tempo sa che uso spesso LaTeX; l'ho usato per scrivere diversi documenti e anche qualche presentazione. Avevo iniziato anche a scrivere qualcosa su LaTeX per ArabianFenix, tra l'altro..e tutt'ora lo uso per diverse cose: per esempio, stanco del modello europeo, sto scrivendo anche il Curriculum Vitae in LaTeX..

Inoltre, il fatto che il sorgente sia in forma di file di testo, mi permette un versionamento ottimale, con un diff sensato ed utilizzabile, cosa che, ovviamente, decade con formati binari quali odt e doc. Per questo motivo è in LaTeX sia la documentazione dei miei progetti opensource (che sto tralasciando da un po', ma riprendo tutto tra un paio mesi) che la mia tesi specialistica (che ormai è praticamente finita) che è poi sotto repository subversion locale.

Ho sempre scritto documenti latex con vi per poi compilare con script shell (per il semplice fatto che per gestire bene i riferimenti interni, bisogna compilare più di una volta). Per un breve periodo avevo usato altri editor. Alcuni erano un po' troppo visuali per i miei gusti, mentre kile, in assoluto il mio preferito, semplicemente è scritto con le QT, mentre io uso Gnome, quindi diventava un po' lento.. convincendomi a tornare a vi.

Comunque, dovendo già usare eclipse per il codice su cui ruota la mia discussione, ho provato a cercare una plugin per latex: ed è così che ho trovato TeXlipse, uno strumento che mi sta agevolando parecchio il lavoro di scrittura della tesi.

Ora, con questa plugin di eclipse, è tutto molto più rapido: ho impostato texlipse in modo da compilarmi ad ogni modifica i sorgenti .tex e di dare in output in formato pdf.

Un'altra caratteristica che mi sta aiutando parecchio, oltre, ovviamente, al fatto che mi segnala subito gli eventuali errori nelle direttive latex, è il partial building:
per esempio, avendo un .tex "master" che include tutti i capitoli (con la direttiva \include), quando sto lavorando massicciamente su un capitolo, non ha senso che mi ricompili tutto.. per cui attivando la compilazione parziale, texclipse mi crea un file .tex temporaneo che ha la struttura del mio documento master, ma include solamente il capitolo su cui sto lavorando.

E, come si sa, gestire un file più piccolo ha sempre i suoi vantaggi..

martedì 17 marzo 2009

[HOWTO] PL/SQL: cursore dinamico (con parametro)

Dato che in rete non avevo trovato nulla di veramente chiarificatore a riguardo, posto qualche riga di PL/SQL su come ho risolto il problema di fare un cursore dinamico. Il codice seguente ovviamente è una versione semplificata di quello che ho scritto realmente, ma è giusto per far capire il concetto..

visto che non è possibile dichiarare un cursore senza inizializzarlo, ho creato due cursori nel seguente modo:

CREATE OR REPLACE FUNCTION calcolaQualcosa RETURN NUMBER IS
  cursor categorie is select categoria from catalogo where;
  cursor prodotti(p_param varchar2) is select distinct prodotto from prodotti where categoria = p_param;
BEGIN
...


e all'interno del codice si usa semplicemente così::

for i in categorie loop
  for j in prodotti(i.categoria) loop
    dbms_output.put_line('Categoria: ' || i.categoria || 'Prodotto: ' || j.prodotto);
  end loop;
end loop;

mercoledì 11 marzo 2009

[HOWTO] Installare Trac su Fedora Core 8

Sto preparando un ambiente di sviluppo su un server di un cliente, una macchina Fedora Core 8.
Premesso che il repository svn è già installato (in locale), installo anche trac che, secondo me, è uno strumento davvero importante..


[root@server ~]# yum install trac
[root@server ~]# trac-admin /usr/local/trac initenv
.. segue configurazione rapida con il wizard (inserire correttamente il path del repository)..
[root@server ~]# yum install mod_python
[root@server ~]# vim /etc/httpd/conf/httpd.conf


dove, in fondo, ho aggiunto:


<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /usr/local/trac
PythonOption TracUriRoot /trac
</Location>


Ora bisogna impostare i diritti sulla cartella del trac in modo da dare i permessi in scrittura al server apache:


[root@server ~]# cd /usr/local/trac/
[root@server trac]# chgrp -R apache db/
[root@server trac]# chmod 774 -R db/

(oppure chown al posto di chgrp e niente chmod.. va a gusti, credo)

Per attivare l'autenticazione di default, cioè a livello di httpd (che non è un granchè, ma può bastare in questo caso), dentro /etc/httpd/conf/httpd.conf, ho aggiunto le righe:


<Location /trac/login>
AuthType Basic
AuthName ".."
AuthUserFile /usr/local/trac/.htpasswd
Require valid-user
</Location>


Ora creiamo il file di password:

[root@server trac]# htpasswd -c /usr/local/trac/.htpasswd michele
New password:
Re-type new password:
Adding password for user michele
[root@server trac]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[root@server trac]#



fatto.. rapido ed indolore.. la prima volta che avevo installato trac (parlo di almeno 3 anni fa) era stato decisamente più problematico..

domenica 8 marzo 2009

Va bene scrivere libri, ma bisogna anche saper distribuirli..

Piccola nota polemica verso il libro Producing Open Source.. o meglio, verso chi ha deciso come distribuirlo..
Infatti dopo aver letto i commenti positivi espressi su Coding Horror ho deciso di leggerlo.

Prima una digressione:
Da tempo ormai il poco che riesco a leggere è in forma di file chm decompilato da visualizzare splendidamente sullo smartphone durante i miei allegri spostamenti da pendolare.

Il motivo è che il formato pdf è scomodo. Infatti è vero che esiste il formato tagged pdf, per permettere il reflow (aumentando lo zoom la riga va a capo), ma i visualizzatori che li supportano sono a pagamento oppure non sono compatibili col mio smartphone. Per cui il dover continuare a fare lo scroll orizzontale per leggere la riga, poi tornare indietro per la riga successiva mi avrebbe fatto passare la voglia di leggere qualunque cosa.

La soluzione mi è venuta in mente quando avevo tra le mani un file in formato chm che mi interessava. Dopo aver cercato un viewer, ho pensato di affrontare il problema da un altro punto di vista: decompiliamolo.

Quindi ho apt-get installato arCHMage e ho iniziato a decompilare i chm, mettendo poi le cartelle contenenti i file html direttamente sullo smartphone. Si vedono bene, nel senso che si riesce a fare uno zoom adeguato e la riga va a capo per cui c'è da fare solo lo scroll verticale di tanto in tanto.

Da quando ho iniziato a sfruttare in questo modo il tempo perso sui mezzi pubblici ho sofferto meno l'infelice decisione di prendere questo smartphone..

Comunque il libro in questione (Producing Open Source Software) è disponibile gratuitamente in queste modalità:
* paginona singola online (credo che mi bloccherebbe lo smartphone per 10 minuti circa per caricarlo)
* multi-pagine online (perfetto, quello che voglio, c'è anche un archivio da scaricare con queste pagine?)
* pdf
* formato RocketBook (ho dovuto cercare in rete per capire che era un antenato del kindle)
* oppure tar.gz da 11MB con dentro pdf, sorgenti docbook, file per rocketbook, html singolo e html multi-pagina il tutto in 20 lingue diverse .. e per fortuna che non ho voluto lo zip, che supera 20MB ..

eh cazzo, avrei fatto prima a fare un download automatico con wget ..

Per altro ho dovuto modificare il css, che creava dei margini di 130px a destra e 130px a sinistra.. per uno schermo di 320px di larghezza non era proprio ottimale..

lunedì 23 febbraio 2009

Il ritorno ad XP dei netbook

Incredibile, guardando sul sito e-shop di mediaworld, nell'area Computer--> ultraportatili è rimasto un solo modello equipaggiato con GNU/Linux: l'asus eeepc 900A, che è quello che costa meno e sarà sicuramente il prossimo a sparire.. ovviamente altri fornitori hanno ancora a catalogo diversi modelli con sistema non windows, ma credo che sia un segnale, abbastanza preoccupante, di quanto poco il mercato italiano sia pronto al cambiamento.

Io sono certamente di parte, però mi sembra davvero insensato comprare un netbook con sovrapprezzo per avere windows xp e doverci mettere sopra firewall e antivirus..

domenica 22 febbraio 2009

[HOWTO] usare un vecchio pc come postazione internet

Un anno fa, dopo più di tre anni di onorato servizio, ho dovuto cambiare portatile. Il vecchio notebook, un fujitsu-siemens amilo m7400, in realtà funziona ancora bene, se non fosse che non si riesce praticamente più a chiudere.
Infatti a novembre 2007 ha ceduto un qualche pezzo interno che collegava la staffa sinistra dello schermo alla scocca, per cui il movimento di apertura e chiusura fa leva sui punti sbagliati.. il risultato è il seguente:





Tempo fa avevo deciso di rimetterlo in piedi mettendo fluxbox come window manager. In seguito avevo apportato altre modifiche alla configurazione, per arrivare a quella attuale:

= Configurazione e software più usati
* debian
* fluxbox
* gdm
* firefox
* tilda
* ssh, vncviewer

= gdm: autologin
Ho disinstallato xdm e messo gdm, perchè gdm prevede già la possibilità di abilitare l'autologin. Quindi all'avvio di gdm ho lanciato la configurazione (cliccando su actions --> configura ) e nella finestra del gdmsetup, nel tab Sicurezza, ho selezionato "abilita accesso automatico" e ho messo il mio utente

= fluxbox: autostart
Ho messo in autostart firefox e tilda, in modo da avere il browser a tutto schermo aperto subito appena loggato e la disponibilità di una console "a scomparsa" sempre a portata di mano (l'ho configurato per attivarsi alla pressione di F1)



shatsar@alrami:~$ cat .fluxbox/startup | tail -n 8
firefox &
tilda &
# And last but not least we start fluxbox.
# Because it is the last app you have to run it with ''exec'' before it.

exec /usr/bin/fluxbox
# or if you want to keep a log:
# exec /usr/bin/fluxbox -log "/home/shatsar/.fluxbox/log"


= fine
In questo modo mi trovo con un pc vecchio ancora utilizzabile, rapido nell'accensione (una configurazione ridotta all'osso, praticamente nessun demone), silenzioso e subito pronto (non devo loggarmi nè avviare programmi). Così posso controllare la posta, leggere qualche news, cazzeggiare su linkedin etc etc anche nei ritagli di tempo, nelle situazioni, cioè, in cui non accenderei un altro pc. E vista l'avanzata dei servizi gestibili via browser, posso fare una serie di operazioni anche più complesse..
facendo così ho rimandato di qualche tempo la sua fine, in fondo dopo tre anni passati insieme non se lo meritava..

martedì 17 febbraio 2009

Condivisione Feed

Da qualche tempo sto usando come aggregatore di feed rss il google reader. Il motivo per cui ho momentaneamente abbandonato l'amato liferea è che ultimamente mi capita spesso di lavorare su un altro pc o sul mio portatile ma sotto windows. Quindi, in piena direzione cloud computing, ho deciso di affidare i miei feed al servizio via internet di google.
Oggi ho deciso anche di attivare la condivisione di feed attraverso il blog, per cui invece di generare "eco" con post che linkano post su siti esterni (come fanno 3/4 dei messaggi linkati da ziobudda), se non ho nulla da aggiungere semplicemente attiverò la condivisione dal reader, il che risulterà in un link nella colonna a fianco nella sezione "Feed Condivisi", per linkare le informazioni che ho trovato interessanti in modo rapido senza perdere tempo con post inutili

lunedì 16 febbraio 2009

Un'analisi di Conflicker

Da qualche giorno leggo continuamente di questo virus, chiamato conflicker che pare stia facendo una strage di PC, a livello dello storico Sasser del 2004. Per questione di tempo, finora, non ero riuscito a dedicar tempo a questo argomento. Ma oggi due cose mi hanno colpito a riguardo:
* la prima cosa è che Microsoft ha in pratica messo una taglia sugli sviluppatori del virus, 250 mila dollari. Non si vedeva una cosa del genere dai tempi del Sasser.
* la seconda, a cui dedicherò sicuramente un po' di tempo per una lettura approfondita è l'analisi di conflicker che, seppur pubblicata già dal 4 febbraio, è continuamente in lavorazione. E' un documento con un analisi del comportamento delle due varianti principali del worm con dettagli sul codice e sulle differenze. Purtroppo non è il massimo vedere che come Italia siamo nella top-ten dei paesi afflitti dal worm..

E dopo aver letto dettagli su questa "disgrazia" (per gli utenti windows), linko anche questo progetto davvero spettacolare: Python Interfacing a USB Missile Launcher.. è bello essere nerd

domenica 15 febbraio 2009

Bespin, Code in the Cloud

Mozilla Labs sta lavorando su un progetto che mi interessa parecchio.
Avevo già parlato precedentemente dell'avanzata del Cloud Computing, un concetto che da qualche tempo sta attirando l'attenzione del mondo informatico. Ora si fa un passo in avanti, cominciando a lavorare su un IDE in versione Web: Bespin.

Il progetto è in pieno sviluppo (la versione attuale viene definita un prototipo per mostrare le caratteristiche che avrà il prodotto), ma promette bene. Allo stato attuale, su alcune richieste, mi stende temporaneamente firefox 3;
il pc su cui lo sto provando è il mio portatile, che ha un anno di vita ed un processore Intel Core2 Duo @ 2.20GHz con 2GB di RAM, quindi ben lontano dal top della gamma. Eppure superiore agli attuali netbook.
Quindi c'è sicuramente ancora molto da lavorare, infatti, per ora, rimane comunque preferibile mettere l'ambiente di lavoro sul netbook ed i repository su grossi pc con dischi in raid, ma chissà che in un futuro, magari proprio grazie a bespin, si potrà pensare di usare come IDE il browser.

venerdì 13 febbraio 2009

HOWTO: Installare windows XP su qemu

= Premessa
Ho scaricato da emule un'immagine di windows xp da installare sul pc di un mio amico (con regolare licenza, per la cronaca..). Quindi in fase di installazione, il codice che ho inserito è quello sul classico adesivo che si trova nella parte inferiore dei portatili.
Già che ho il cd di xp, ho pensato di virtualizzarmi un'installazione di windows xp con la licenza del mio portatile vecchio.

= QEMU
Ho scelto di usare qemu, che, tra gli emulatori che conosco, è sicuramente il più adatto per i desktop. Per esempio, per citare due opzioni che ho scartato, XEN è usato per altri scopi (virtualizzazioni "a lungo termine" sui server) e virtualbox non esiste a 64bit. Credo che qemu sia la soluzione adatta per emulazioni meno performanti e temporanee per testare alcune cose. Per cui si accende la macchina virtuale, si fa quello che si deve fare e la si spegne.
La particolarità di qemu è che virtualizza una macchina standard, non quella su cui gira. Questo risolve un sacco di problemi, secondo me.. ma può essere limitante.

= HOWTO
installare qemu
> erakis:/home/shatsar# apt-get install qemu
..

preparare l'immagine (qcow2 è il formato più versatile, utile per avere immagini ridotte, ma si può lasciare il formato raw e se si vuole usare un po' seriamente di certo non basteranno 2600M):

> shatsar@erakis:~$ qemu-img create -f qcow2 /home/shatsar/xp.img 2600M
> Formatting '/home/shatsar/xp.img', fmt=qcow2, size=2662400 kB
> shatsar@erakis:~$ ls -alh xp.img
> -rw-r--r-- 1 shatsar shatsar 24K 2009-02-13 10:44 xp.img

ora avviare l'installazione

> shatsar@erakis:~$ qemu -hda xp.img -boot d -cdrom /dev/cdrom -m 512 -localtime

dopo qualche tempo che sta girando l'installazione:
> shatsar@erakis:~$ ls -alh xp.img
> -rw-r--r-- 1 shatsar shatsar 168M 2009-02-13 10:57 xp.img

ed è destinato a crescere..Il resto è storia nota, una normalissima installazione windows (fatta in una finestra..)

Una volta finita l'installazione, si può spegnere il tutto. Dalla volta successiva per lanciare windows si potrà fare direttamente:

> shatsar@erakis:~$ qemu -hda xp.img -boot c -m 512 -localtime

Nel prossimo post riguardo qemu scriverò qualcosa di più sulla configurazione

martedì 27 gennaio 2009

Alcuni consigli per ottimizzare le pagine web

Oggi sono incappato in questa pagina: Best Practices for Speeding Up Your Web Site. Ne avevo lette altre, ma questa mi pare particolarmente fatta bene..

Credo sia interessante da leggere. Certo alcuni consigli sono ovvi, altri impraticabili nella maggioranza dei casi (averla una Content Delivery Network!!) ma alcuni sono un ottimo spunto: a partire dai consigli sul posizionamento degli import: css all'inizio e javascript alla fine.. per arrivare all'ottimizzazione delle immagini (più che altro per gli strumenti utilizzati).

Da tener presente..

martedì 20 gennaio 2009

jQuery e brTip

In un progetto di un annetto fa avevo usato brTip per fare dei mouseover per visualizzare alcune informazioni. L'avevo già modificata per permettere di caricare via ajax il contenuto del tooltip, ma ogni tanto aveva un comportamento anomalo: sporadicamente mi spariva l'attributo "title" dell'elemento a cui avevo associato il brTip e da cui prende il testo da caricare nel tooltip stesso. Ebbene, era una cosa che non avevo mai debuggato seriamente, invece oggi mi sono intestardito, visto che volevo fare un po' di manutenzione ho dato un'occhiata, ed ecco il risultato:

il problema è che nel momento in cui si associa all'evento mouseover
svuota l'attributo title dell'elemento dell'albero dom a cui è associato.


self
.mouseover(function()
{
// Set content.
opts.txt = self.attr('title');
self.attr('title', '');

// Create the box.
_create();
})


Probabilmente serve a non far comparire anche l'attributo title per esempio sulle immagini..
Però in alcuni casi dovevo forzare la scomparsa degli eventuali popup presenti, questo comportava la non esecuzione dell'evento mouseout, che risistema il valore del title.. per ora ho aggiunto un flag per esplicitare di lasciare il title, in modo da essere compatibile con la release ufficiale.. però è una soluzione temporanea e non troppo elegante

Comunque generale questa plugin non mi è piaciuta tanto, ma quando avevo cercato era tra le più flessibili per creare tooltip con jQuery..

venerdì 16 gennaio 2009

Remote Capture?

Oggi ho riletto la pagina un progetto stupendo che mi aveva colpito parecchio già la prima volta che l'ho visto (più di un anno fa, appena mi avvicinavo al mondo del ds hacking): http://natrium42.com/halo/flight2/. Infatti oltre a questo progetto ha fatto cose interessanti anche sull'nds, per questo ero finito sul suo sito..

Veramente impressionante. La cosa che più mi ha interessato, oltre ai vari sensori, è il remote capture. Ovviamente per un progetto del genere c'è la necessità di automatizzare in qualche modo la macchina fotografica.
Visto che ho da diversi anni una kodak cx7525, ho deciso di dare un'occhiata a come funziona:

alrami:~# apt-get install gphoto2

attacco la macchina fotografica e comincio:

alrami:~# gphoto2 --list-ports
Dispositivi trovati: 7
Percorso Descrizione
----------------------------------------------------
disk:/ Media 'Volume (ext3)'
ptpip: PTP/IP Connection
serial:/dev/ttyS0 Porta seriale 0
serial:/dev/ttyS1 Porta seriale 1
serial:/dev/ttyS2 Porta seriale 2
serial:/dev/ttyS3 Porta seriale 3
usb: Universal Serial Bus
alrami:~# gphoto2 --auto-detect
Modello Porta
-----------------------------------------
Kodak CX7525 usb:


E fin qui tutto bene. Ora il momento cruciale (solo la parte di output che mi interessa)

alrami:~# gphoto2 --summary
Sommario della fotocamera:
Modello: CX7525 Zoom Digital Camera
[..]
Capacità dispositivo:
Scaricamento file, Eliminazione file, Caricamento del file
No Image Capture, No Open Capture, No vendor specific capture
[..]


No Image Capture..che palle..

Tra l'altro oggi mi si è definitivamente rotto il cellulare, a breve posto qualche foto visto che ci smanetterò un po'..

mercoledì 14 gennaio 2009

Un po' di retrocomputing..

Oggi lavoro da casa, in teoria per approfittare del fatto di non perdere ore sui mezzi per poter lavorare tranquillamente e trovare anche tempo da dedicare alla tesi.

Ma come ogni buon proposito che si rispetti, ha dovuto trovare un compromesso. In questo caso con la mia voglia di sistemare un po' la mia rete.
Sul barebone ho provveduto ad un aggiornamento del sistema (che comunque tengo abbastanza aggiornato, per cui poca roba, dopotutto) e ho sistemato un po' meglio l'utilizzo delle partizioni. Infatti all'inizio avevo fatto parecchie partizioni pensando di usarlo anche come server di test, per cui oltre al sistema per fare media center avevo messo un'altra installazione linux pensata più per fare da server.. quindi scarna ed ottimizzata. Ed era prevista anche una partizione per windows media center, che ho prontamente abbandonato.
Quindi ho messo in /etc/fstab anche tutte le altre partizioni, in modo da poterle gestire più agevolmente in futuro.

Poi sono passato ad altair, il pc su cui ho passato tanto di quel tempo che non credo riuscirò mai a liberarmente. Un pentium II @450 a cui ho portato la ram nel corso degli anni fino agli attuali 192 MB. Ne ha viste davvero di ogni.
Ultimamente l'ho un po' trascurato.. ma oggi ho deciso di accenderlo, l'obiettivo è fare un dist-upgrade, salvo dei file che non vorrei perdere sul barebone e poco altro. Pare che io gli sia mancato, al punto che all'avvio mi ha dato il messaggio "CMOS checksum error", probabilmente si è scaricata la batteria della scheda madre.. è bastato reimpostare il bios, in modo da riscrivere la parte di memoria corrotta che faceva fallire il checksum.
D'altra parte restare spenti per 388 giorni a quell'età non può non lasciare segni..

Jokosher

Jokosher è un editor audio multitraccia il cui motto è:
> Audio production made simple.
E hanno ragione: è uno strumento davvero intuitivo ed user friendly, con alcune caratteristiche in meno rispetto al più noto audacity.

Non ho ancora deciso su quale puntare e specializzarmi per le mie eventuali produzioni musicali domestiche, ma per ora ho notato una piccola stranezza:
Nella versione disponibile nei repository debian lenny (testing) non ho trovato nessun accenno al numero di release. Di solito questa informazione si trova nell'about, invece non c'è nulla del genere. Allora mi sono intestardito e ho provato nella maniera classica :


shatsar@erakis:~$ jokosher --version
0.2-SVN


Sul sito ufficiale hanno appena pubblicato la 0.10.. per cui eseguo un altro controllo:


shatsar@erakis:~$ dpkg --list | grep jokosher
ii jokosher 0.9-1 simple and easy to use audio multi-tracker


ecco, questo è più ragionevole.. comunque in attesa delle 0.10, per ora sto usando entrambi i software, ma credo che userò jokosher per vari test e registrazioni intermedie, mentre audacity per il lavoro definitivo. Almeno questo basandomi sulle mie prime esperienze in campo audio (vabbè, rippare i cd in mp3 non credo che conti..)

venerdì 9 gennaio 2009

Debian, udev e Phidgets

Saltando i soliti post di augurio di buon anno e di bei propositi, passo ad una questione che mi ha fatto perdere un po' di tempo: il mio Phidget RFID.

Prima di tutto è arrivato in tempo di record: ordinato dal sito ufficiale, in Canada, un giovedì pomeriggio di dicembre, è arrivato il lunedì successivo. E difatti la sera stessa ho iniziato a giocarci, come testimonia questo post.

Ho fatto un test completo della periferica e del software, tutto è andato splendidamente tranne una cosa: l'integrazione con udev.

Viene fornito uno file da mettere tra le regole di udev per far riconoscere al sistema la periferica in modo che vengano impostati i permessi giusti. In caso contrario la periferica potrà essere usata solo da root.

Quindi l'operazione da fare è copiare il file ( 51-phidgets.rules ) dentro /etc/udev/rules.d .
Data la premessa che udev segue le regole in ordine alfabetico, il motivo per cui questo non basta è che la regola che setta i permessi è stata rinominata (non so bene se è una caratteristica di debian o un'evoluzione di udev) da 20-permissions.rules a 91-permissions.rules .
Questo comporta che il file fornito con i Phidget imposta sì i permessi a 666, che vengono giustamente sovrascritti in 644 dalla regola 91-permissions.
Per risolverlo quindi ci sono diversi modi.
Quello più brutale è rinominare il file da 51-phidgets a phidgets, per esempio. Essendo in ordine alfabetico, questo verrà eseguito dopo 91-permissions.
Un metodo sicuramente più serio e pulito consiste nel cambiare il file impostando al posto di

ATTRS{idVendor}=="06c2", ATTRS{idProduct}=="0031", MODE="666"

una cosa del genere:

ATTRS{idVendor}=="06c2", ATTRS{idProduct}=="0031", GROUP="developers"


per ogni riga nel 51-phidgets.rules ed aggiungere il proprio utente al gruppo developers.
Ora tutti gli esempi e le applicazioni che utilizzano il Phidget RFID potranno essere eseguiti da utente normale.. "Che è meglio!"