venerdì 30 maggio 2008

MATLAB Warning: Initializing Handle Graphics failed in matlabrc.

Ciao a tutti!
Sono finalmente di nuovo a postare su queste pagine anche se il mio tempo libero è praticamente inesistente... ma quando c'è qualcosa di veramente particolaristico e introvabile da dire... non mi posso tirare indietro!
Si tratta di una ennesima questione di MATLABsuLinux da risolvere.

Ieri dopo un riassetto lungo un mese dei miei dischi fissi e dei dati sul mio Desktop, con tanto di reinstallazione di ArchLinux come OS... e al tempo stesso dopo il fallimento del mio caro vecchio portatile il mitico KuBook, con annessa migrazione su un altro "vecchio" portatile a disposizione, e installazione da zero di Arch anche lì...
Ho installato MATLAB R2007a su ArchLinux sotto un kernel 2.6.25, con JRE 1.6.0_05-b13 e Xorg 1.4.0.90

Dopo una tranquilla installazione e un setup senza problemi con lo script install_matlab che bisogna far girare dopo l'installazione (copia dei file) con l'installer grafico, ho aperto il programma per vedermi questo messaggio come output del processo di inizializzazione, in quanto compariva appena prima del prompt:

Warning: Initializing Handle Graphics failed in matlabrc.
This indicates a potentially serious problem in your MATLAB setup, which should be resolved as soon as possible. Error detected was:
MATLAB:badsubscript
Attempted to access monitors(1,:); index out of bounds because size(monitors)=[0,4].

In matlabrc at 108

Ho cominciato allora con il cercare su Internet informazioni riguardo al problema, ma ho trovato solo riferimenti ad un messaggio di errore molto simile, dovuto però alla mala configurazione del locale o al non aggiornamento di pathdef.

Ho provato allora a capire "chi chiamava chi" durante l'inizializzazione e andanto in matlabrc.m alla linea 108 ho trovato la chiamata ad un altro script di inizializzazione/configurazione: hgrc.m
(Tutti questi file di configurazione si trovano nella vostra directory $MATLAB/toolbox/local/ dove con $MATLAB s'intende il vostro percorso di installazione di MATLAB).

In hgrc.m ho trovato la chiamata a "get" per l'assegnasione della matrice monitors responsabile dell'errore.

Nel sito che raccoglie la documentazione tecnica di MathWorks si possono trovare tutte le "Handle Graphics Object Properties" in questa pagina
Se facilmente selezionate la categoria root, dalla lista di sinistra troverete proprio la proprietà "MonitorPosition" la cui chiamata porta all'errore di inizializzazione.

In realtà la chiamata di "get" in hgrc.m assegna a monitors il risultato del parametro MonitorPosition riconosciuto dal sistema MATLAB.

Probabilmente a causa di una incompatibilità tra Java e X (non sono riuscito ad installare FemLab a causa di un conflitto tra le ultime versioni di Java e di X) la funzione get ritorna una irregolare matrice di zeri dalla chiamata a MonitorDefinition

La mia soluzione è stata abbastanza brutale. Ho letto che dati avrebbe dovuto restituire la chiamata get(0,'MonitorPosition'), e li ho assegnati manualmente alla variabile monitor modificando lo script hgrc.m

Come potete trovare nella pagina di documentazione precedentemente linkata:


MonitorPosition
[x y width height;x y width height] Width and height of primary and secondary monitors, in pixels. This property contains the width and height of each monitor connnected to your computer. The x and y values for the primary monitor are 0, 0 and the width and height of the monitor are specified in pixels. The secondary monitor position is specified as
x = primary monitor width + 1
y = primary monitor height + 1
Querying the value of the figure MonitorPosition on a multiheaded system returns the position for each monitor on a separate line.
v = get(0,'MonitorPosition')
v =
x y width height % Primary monitor
x y width height % Secondary monitor
Note that MATLAB sets the value of the ScreenSize property to the combined size of the monitors


La matrice monitors per uno schermo 1024x768 come il mio dovrebbe essere:
monitors = [0,0,1024,768;1025,769,1024,768];

e per un 1280x1024 come il mio Desktop dovrebbe essere:
monitors = [0,0,1280,1024;1281,1025,1280,1024];


Quindi ho commentato la linea della chiamata incriminata in hgrc.m:
monitors = get(0, 'MonitorPosition');

inserendo un carattere '%' all'inizio delle linea stessa... e ho assegnato manualmente la matrice corretta per il mio monitor alla variabile monitors:
monitors = [0,0,1024,768;1025,769,1024,768];

Dopo questo "workaround" MATLAB parte senza problemi e mostra ogni figura correttamente.

Questo è tutto! Spero che questa soluzioen sia utile a qualcuno...

Keep On Hacking!
bYe,
Andy

lunedì 5 maggio 2008

Finalmente Bici!

Domenica l'altra 27 aprile, mi hanno portato a San Fermo della Battaglia, praticamente sopra Como verso Chiasso, è stato davvero bello, soprattutto perchè mi sono potuto rendere conto del reale "range" delle mie pedalate, ed è di tutto rispetto. Nei giorni scorsi ho smanettato con GoogleMaps e ho tirato fuori il percorso... eccolo qui ;-)


View Larger Map


Per finire il devasto di questi giorni, il 1° maggio, dopo la messa del 55° di anniversario dei miei bellissimi nonni ;-) (Auguri!) ho beccato don Federico di San Vittore ed è partito per caso il discorso bici, mi ha detto che sarebbe andato il pomeriggio stesso a Castiglione Olona a fare il Piccolo Stelvio! Argh!
Mi sono aggregato ovviamente... e ho retto anche decentemente se non fosse che avevo già l'ottantina di km di domenica e i crampi si sono fatti sentire e sono anche venuti.
Però che forza gestire le gambe ad ogni pedalata, sull'orlo dei crampi e riuscire a tenerli a bada pur andando sui 30 all'ora!
Certo essere allenati e non una mezza calzetta sarebbe anche meglio ;-) ma con un minimo di costanza nel distruggersi un po' non dovrei avere problemi a farmi la gamba ;-)

Eccovi la mappa anche di questa seconda cavalcata seria sul destriero di alluminio e carbonio:


View Larger Map


Bene dai, lascio le amenità ciclistico internautiche per tornare allo studio, quest'anno posso organizzarmi decentemente... quindi sarebbe un'idea farlo veramente :-D

Buona giornata a tutti!

bYe,
Andy

Aggiornamenti

Bien! Ciao a tutti!
Dopo le bloggate politiche, che purtroppo non sono servite a tantissimo (anche se per fortuna il flop democratico non è stata una tragedia totale)... mi sono preso un pausa (come avete visto) dalla vita digitale, diciamo che non ne potevo più di scrivere, bloggare, sistemare il sito e robe varie... anche perchè ci ho dato dentro anche con il sito degli Ammazzacaffè, che potete trovare sul "dominio serio" ammazzacaffe.com

Il 25 aprile in serata, siamo andati a Tradate a sentire Padre Alex Zanottelli e Don Luigi Ciotti.
Due grandi, non c'è che dire, ci hanno proprio svegliato fuori e fatto venire ancora più voglia di sbatterci per le cose in cui crediamo. Ci hanno raccontato dei grandi problemi del nostro tempo, dei movimenti di Mafia e poteri forti e senza scrupoli, della distorta idolatria del profitto che arriva a non considerare più nemmeno la vita umana in favore del soldo.
Contro tutto questo e per un mondo migliore dobbiamo e possiamo darci da fare con le scelte quotidiane. Ogni giorno possiamo mettere una briciola a favore di quello in cui crediamo, semplicemente con il nostro atteggiamento, con una parola invece di stare complicemente zitti una volta in più, con le nostre piccole scelte e il nostro stile di vita e di relazione con gli altri.
È stato davvero un bell'incontro ricco di spunti, di allarmi sui problemi veri del nostro mondo, ma anche di grande vitalità, di grande speranza nella capacità dell'uomo di tirarsi fuori dai casini che volente o nolente ha combinato, ed è stata ovviamente anche una bella testimonianza di fede, intesa in modo attivo, come fede in un Dio che soffre lui stesso per queste situazioni di povertà, ingiustizia e disuguaglianza ma che da una mano ai piccoli di questo mondo attraverso tante persone che sanno farsi loro stesse piccole, per poter essere autentiche portatrici consolazione, aiuto, supporto, ma anche "disgusto" per dove siamo arrivati, denuncia e quindi finalmente giustizia e pace.

Con Giovani idee sta procedendo la raccolta firme per la petizione sulla ciclabilità, per far ricordare al sindaco e alla giunta che a Rho i ciclisti esistono eccome :-)
Siamo arrivati a poco meno di 1000 firme, ma non sarà difficile arrivarci entro la consegna del malloppo.
Ed è stato proprio ad un banchetto firme che ho incotrato il mio vicino che va in bici da corsa... e ne ho approfittato per aggregarmi al raid domenicale.
Ma la bici la lascio ai prossimi rapidi post per non mettere troppa carne al fuoco qui :-)