tag:blogger.com,1999:blog-369737172024-03-13T12:05:15.362+01:00Gioppo Luca's BlogICT, RPG and others three letters stuffsAnonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.comBlogger68125tag:blogger.com,1999:blog-36973717.post-83257230084506772712017-05-29T00:38:00.001+02:002017-05-29T00:38:43.915+02:00Cambiare l'ordine degli ingegneri si può! 15 voti alla volta.<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/GkeIgGullw0/0.jpg" src="https://www.youtube.com/embed/GkeIgGullw0?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br />
L'ordine non si occupa delle necessità degli iscritti, orari impossibili, attese al telefono interminabili, richieste che si perdono nel vuoto cosmico.<br />
Mai una presa di posizione pubblica sui temi legati alla professione, mai delle azioni di concerto con altri ordini o con attori istituzionali. <br />
Non è quello che ci aspettiamo dal NOSTRO ordine professionale, per cambiare basta votare chi ha in mente una idea nuova di ordine professionale.<br />
Votare tutti e 15 i candidati della lista <a href="https://www.facebook.com/lista.tobeing/" target="_blank">TOBEING</a> alle prossime elezioni dell'ordine degli ingegneri di Torino: vota per noi, voti te stesso.Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-54134325025217247922017-05-17T14:30:00.000+02:002017-05-17T14:30:06.593+02:00Perchè occorre cambiare a Torino per cambiare a livello nazionale<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj7-qHx1BHrGSmhSbZ35Ei_surcDQ6Y0dtzy_Bj98MwKXcs-5LECy01lwkCYwHrrcHe7_ALhT6bXNcS-b0v8fF9Y0mATK5uNvR6K3zBnRqBWQlgA3vCiZ_LPrqB6UNCLjWCQS7Lg/s1600/SC085_Nazzari1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj7-qHx1BHrGSmhSbZ35Ei_surcDQ6Y0dtzy_Bj98MwKXcs-5LECy01lwkCYwHrrcHe7_ALhT6bXNcS-b0v8fF9Y0mATK5uNvR6K3zBnRqBWQlgA3vCiZ_LPrqB6UNCLjWCQS7Lg/s320/SC085_Nazzari1.jpg" width="320" /></a></div>
<br />
Occorre guardare in faccia i fatti per poter valutare.<br />
Pare che per molti attuali consiglieri degli ordini professionali il restare attaccati alla poltrona sia molto importante tanto che riescono a muovere mari e monti affinchè i nostri politici si spendano per prolungare la vita degli attuali consigli.<br />
<br />
Invito tutti a leggere il documento pubblico <a href="http://documenti.camera.it/leg17/resoconti/commissioni/bollettini/pdf/2017/05/15/leg.17.bol0817.data20170515.com05.pdf" target="_blank">della V commissione permanente (bilancio, tesoro e programmazione) della camera</a> per analizzare il tema.<br />
Il documento è un malloppo di più di 800 pagine che nessuno ovviamente leggerà a parte pochi interessati, così si fa la politica in Italia.<br />
Fortunatamente ci vuole poco per chi mastica di informatica per trovare quanto di interesse.<br />
Il documento parla di quali dei 2519 emendamenti al testo del decreto legge n. 50 del 2017 sono stati considerati INAMMISSIBILI.<br />
Il decreto verte su: Disposizioni urgenti in materia finanziaria, iniziative a favore degli enti territoriali,ulteriori interventi per le zone colpite da eventi sismici e misure per lo sviluppo.<br />
<br />
Ora vi chiederete tutti cosa c'entra questo decreto con gli ordini professionali? Fortunatamente se lo è chiesto anche il presidente Boccia, che ha ben riassunto il concetto che non si può piazzare ogni sorta di esigenza nel primo decreto legge utile.<br />
<br />
Cosa si cercava di fare passare con questo decreto?<br />
Ecco, scorrendo le 874 pagine si trovano alcuni degli emendamenti bocciati di cui seguono solo brevi estratti di esempio:<br />
<ul>
<li>I consigli territoriali degli ordini di cui all’articolo 1 del decreto del Presidente della Repubblica 8 luglio 2005, n. 169, in scadenza nell’anno 2017 ai sensi dell’articolo 2, comma 4, del medesimo decreto, che, alla data di entrata in vigore della legge di conversione del presente decreto, non abbiano ancora indetto le elezioni per il rinnovo dei propri componenti restano in carica per ulteriori sei mesi a decorrere dalle date di rispettiva scadenza.</li>
<li>... in deroga alle vigenti disposizioni in materia elettorale dei consigli territoriali degli ordini professionali di cui al decreto del Presidente della Repubblica 8 luglio 2005, n. 169, le votazioni per il rinnovo dei consigli territoriali degli ordini professionali sono indette contemporaneamente nel terzo quadrimestre del corrente anno e si tengono in un’unica data e secondo le procedure stabilite con decreto del Ministro della giustizia da emanarsi ...</li>
</ul>
<br />
Ora viene da domandarsi: ma cosa c'entra il rinnovo dei consigli degli ordini con le disposizioni in materia finanziaria, con gli interventi nelle zone colpite dal sisma?<br />
<br />
Dato il dubbio vado a guardare chi sono i firmatari degli emendamenti:<br />
<a href="http://www.camera.it/leg17/29?shadow_deputato=305904&idpersona=305904&idlegislatura=17" target="_blank">Ventricelli</a> che è una studentessa del liceo classico sicuramente molto coinvolta con le problematiche degli ordini professionali; cerco meglio: <a href="http://www.camera.it/leg17/29?tipoAttivita=&tipoVisAtt=&tipoPersona=&shadow_deputato=305765&idLegislatura=17" target="_blank">Marchetti </a>un diplomato di istituto tecnico commerciale ... no ancora non ci siamo; <a href="http://www.camera.it/leg17/29?shadow_deputato=302917&idpersona=302917&idlegislatura=17" target="_blank">Berretta</a> un avvocato, ora almeno ritrovo un motivo di interesse sul tema; ma cerco ancora: <a href="http://www.camera.it/leg17/29?shadow_deputato=303114&idpersona=303114&idlegislatura=17" target="_blank">Tancredi </a>un ingegnere mi si chiude il cerchio.<br />
<br />
Questi sono i fatti: è frutto del sacco dei politici? Date le professioni del 50% dei proponenti ho i miei dubbi, ma non commento. Mi sarei aspettato che in un decreto che tratta temi di finanziaria ci fossero emendamenti per la tariffa professionale, per affrontare in maniera seria i temi delle gare al ribasso che portano ai viadotti che crollano. Ammetto di non aver letto tutto il decreto, non era quello il mio focus del momento e sono sicuro che tutte quelle cose le avevano già prese in considerazione.<br />
<br />
Io ritengo che sia importante che ci sia un ricambio generazionale alla guida dell'Ordine degli ingegneri di Torino perchè non voglio vedere più documenti simili. Il nostro paese ha cose più importanti cui pensare che il garantire a pochi una sedia in un consiglio di un ordine professionale. Quelli che non hanno il coraggio di farsi da parte per lasciare spazio a nuove generazioni forse è perchè non hanno altro da fare che il "consigliere di professione" e la nostra categoria non ne ha bisogno; abbiamo bisogno di persone che vadano a battersi per i veri problemi del paese e che vadano a spiegare ai quei politici che hanno presentato quegli emendamenti che i problemi su cui concentrarsi sono altri e che li ringraziamo del loro interessamento alle sorti dei nostri consigli dell'Ordine, ma ... siamo INGEGNERI siamo capaci di osservare e rispettare la norma vigente e di andare regolarmente alle elezioni.<br />
<br />
Ritengo che questo ricambio sia talmente importante che invece di lamentarmi come fanno molti ho deciso di mettermi in prima linea e di candidarmi, perchè le cose per tentare di cambiarle sul serio bisogna diventare parte attiva.<br />
<br />
A tutti i colleghi dico solo: andate a votare, non mi importa per chi (spero ovviamente per me e la lista di cui faccio parte), ma andate a votare, il voto, in tutte le forme e occasioni è un atto di democrazia ed è ora di dimostrare a chi cerca di restare al "potere" in barba alle regole che siamo stufi di essere trattati come pecore. Il voto è un diritto non rinunciateci.Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-87928733349488629232017-05-17T08:00:00.000+02:002017-05-17T11:30:46.404+02:00Attività riservate per gli ingegneri nel campo dell'ICT?<style type="text/css">p { margin-bottom: 0.25cm; line-height: 120%; }</style> <br />
<div style="line-height: 100%; margin-bottom: 0cm;">
Occorre, innanzitutto, ragionare sul perché esistono le attività riservate?</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Spesso, infatti, si pensa agli Ordini professionali solo come istituzioni che hanno il compito di conservare l'albo, dimenticandosi del perché esiste l'albo? Il tutto nasce dal fatto che esistono delle attività lavorative per le quali è bene che chi le esegue sappia il fatto suo e che sia “libero” di applicare secondo coscienza la propria competenza, senza vincolo di subordinazione a terzi che potrebbero avere degli interessi diversi rispetto alla corretta esecuzione dell'attività.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Questa necessità serve a tutelare il cittadino comune, il quale, non avendo le competenze per poter essere autonomo, deve affidarsi ad uno sconosciuto ed ha bisogno di uno strumento semplice per trovare chi sa risolvere il suo problema; per cui il passo logico è:</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
attività lavorativa complessa → attività riservata ad una specifica tipologia di lavoratore → vincolo di iscrizione di questo lavoratore in un albo in modo che le persone comuni possano individuarlo facilmente.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
L'Ordine ha ovviamente anche altri compiti, sempre legati a questo tema, sui quali non mi soffermerò in questo post.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Per cui, banalizzando, se abbiamo bisogno di essere operati al cuore dobbiamo metterci nelle mani di un qualcuno che sappia fare bene quel lavoro, e dato che come persone comuni non sappiamo dove trovarlo possiamo prendere l'albo a mo' di pagine gialle e sappiamo che li troveremo la persona giusta; parimenti sappiamo che quando andiamo nello studio di uno che sostiene di sapere progettare una casa se vediamo che compare nell'albo opportuno sappiamo che abbiamo a che fare con un lavoratore serio e non con un ciarlatano che millanta competenze che non ha.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Di per se il problema che si è voluto risolvere è l'annoso problema di affidarsi ad un lavoratore competente che, di per se, si applicherebbe ad ogni aspetto della vita: a tutti piacerebbe essere sicuri di andare da un fornaio che sa fare un pane buono e non ci mette dentro sostanze nocive, o da un sarto in gamba che non ci faccia un abito che si scuce dopo pochi giorni. Il buon senso del nostro legislatore ha definito una soglia ed ha deciso di lasciare al libero mercato alcune attività di selezione e di imporre delle regole su altre.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Per cui se il pane non è buono non andrò più da quel fornaio e non avrò bisogno di sapere che è iscritto all'albo dei fornai (benchè esistano in ogni caso associazioni anche per questa professione molto importante), ma se vado dal chirurgo sbagliato c'è il rischio che io non abbia la possibilità di poter cambiare la mia scelta dato che la non competenza del lavoratore potrebbe causare la mia prematura dipartita.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Il buon senso del legislatore ha pertanto riconosciuto una serie di attività lavorative per le quali è “proprio opportuno” che a farle ci sia qualcuno di specifico e non il primo venuto.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Analizziamo le caratteristiche di queste attività che:</div>
<ul>
<li>possono generare, se fatte male, un grave danno fisico od economico all'individuo o alla collettività</li>
<li>richiedono una assunzione di responsabilità da parte di chi le esegue e devono essere fatte in coscienza e per il meglio, senza che terzi possano influenzare la decisione (quando un medico amputa un arto in gangrena si assume una responsabilità per il bene del paziente e non può dover valutare se l'immagine dell'ospedale potrebbe essere danneggiata perché si potrebbe spargere la voce che “qui si tagliano le gambe”)</li>
<li>richiedono un'etica nell'esercizio delle scelte legate all'attività.</li>
</ul>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Queste caratteristiche, quando sono stati definiti gli elenchi di attività riservate, hanno portato all'individuazione di un “tot” di voci specifiche, che in alcuni casi hanno raggruppato una intera professione (tutto ciò che ha a che fare con la salute) in altri casi, forse perché troppo complessi e pervasivi o perché c'era una concorrenza di tanti soggetti che temevano di non poter più lavorare, sono state scelte solo alcune attività.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Questo è capitato soprattutto nei casi delle attività tecniche, dove, infatti, sono stati individuate solo le attività più evidenti come il costruire strutture e poche altre.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Su questo già delicato meccanismo si sono poi aggiunti i punti di vista ideologici: da una parte chi sostiene che debba essere il mercato a selezionare i competenti (trascurando che il “mercato” è rappresentato da una buon numero di individui che per la natura di questo meccanismo vengono “fregati”, vivono abbastanza per raccontarlo e generare la necessaria retroazione per fare “operare” il filtro), dall'altro chi sostiene che sia giusto lasciare a tutti la possibilità di esercitare il lavoro che vogliono (ignorando il concetto di meritocrazia e della necessità di aver seguito un percorso formativo appropriato al lavoro che si ambisce a fare).</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Nel frattempo l'evoluzione della tecnologia ha generato nuovi lavori, spesso altrettanto delicati quanto quelli per i quali si erano definite le attività riservate. Questa evoluzione è stata estremamente veloce, molto più veloce della capacità del legislatore di soffermarsi a valutare se quei nuovi lavori dovessero essere regolamentati.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Questa difficoltà è acuita dal fatto che il “legislatore” è una intelligenza collettiva costituita dagli eletti in parlamento che raramente hanno la competenza per capire questi nuovi lavori e questo ancora prima dell'attuale degrado della politica.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
In questo contesto si collocano i problemi del terzo settore dell'ingegneria.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Nessuno fino ad oggi si è preoccupato di valutare se ci sono dei lavori che hanno le caratteristiche per le quali il “legislatore” dovrebbe dire “per tutelare il cittadino comune decido che questo lavoro lo deve fare solo chi ha la preparazione corretta per farlo”.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Perché?</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
In parte perché, come già detto nella funzione di legislatore manca la “competenza” per assolvere questo compito in autonomia: immaginiamoci i nostri politici a ragionare se il progettare un sistema informativo della Pubblica Amministrazione nel cloud sia una attività che deve essere riservata a una categoria di lavoratori specifica … tristemente mancano ad essi le basi per la completa comprensione delle parole/concetti “progettazione”, “sistema informativo”, ”cloud” e sono molto più concentrati nel mandare tweet, ricomporre correnti e conservare poltrone.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
A questo aggiungiamo il fatto che gravitano attorno questo ambiente una pletora di interessi per i quali una parte terza (perché, infatti, il professionista rappresenta una parte terza) finirebbe per essere veramente scomoda.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Come ultimo intoppo, poiché a stalla aperta i buoi sono scappati da tempo, abbiamo un mercato affollato da lavoratori con formazione, competenze e capacità eterogenee, anche perché certi settori dell'ICT sono diventati il lavoro rifugio di tutti quelli che non riuscivano a trovare occupazione per il corso di studi che avevano seguito, con la scusa che a programmare ci riescono anche i bambini (in effetti i bambini sono bravissimi anche a costruire case con i mattoncini). Oggi dire a tutti questi lavoratori “ci eravamo sbagliati, per fare il tuo lavoro occorreva proprio aver studiato certe cose” diventerebbe oggettivamente difficile.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Il fatto è che, purtroppo, esistono delle attività nel terzo settore dell'ingegneria che hanno le caratteristiche di “rischio e potenzialità di danno” per le quali sarebbe meglio garantirsi il fatto che il lavoratore sia qualificato per farle (in un contesto dove sempre più ogni cosa è controllata da un sistema informatico diventa semplice fare un elenco e i recenti fatti di cronaca ne son un chiaro esempio).</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifoZZmIqsBhFJ_9KGXVcdsB6U6mJmXJzApfOLtGJBQjcVX7-IQ9cVnEUzIGLs-I-JXxtOmibm0ggPxUkUlkLBu8virDCH6uOhpUt5BPaKZh5CfOe2JKo-J2X1tGVZKkdK2UGIbhA/s1600/Snakeoil.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="205" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifoZZmIqsBhFJ_9KGXVcdsB6U6mJmXJzApfOLtGJBQjcVX7-IQ9cVnEUzIGLs-I-JXxtOmibm0ggPxUkUlkLBu8virDCH6uOhpUt5BPaKZh5CfOe2JKo-J2X1tGVZKkdK2UGIbhA/s320/Snakeoil.jpg" width="320" /></a></div>
<br />
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Il rimandare l'affrontare il problema non fa che acuire la situazione.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Se ci aspettiamo che il “mercato”, le “corporazioni” o l'autoregolamentazione ci salveranno, ci stiamo illudendo; la società ha sempre avuto bisogno di supporti al vivere civile e all'impedire il manifestarsi di situazioni dove “i furbi e i forti” prevarichino sui più deboli, le attività riservate questo rappresentano, non la difesa di privilegi di pochi, ma la tutela dei molti contro chi ha sempre cercato di vendere le pozioni agli ignoranti ed in un mondo dove la complessità diventa sempre più ampia il numero di “ignoranti” da tutelare diventa, per assurdo, sempre più ampio.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Iniziare a concordare sul fatto che “a fare certi mestieri dovrebbero esserci le persone giuste” è il primo passo per affrontare con serietà il resto del discorso.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-30042057614796468552017-05-16T21:59:00.000+02:002017-05-16T23:21:22.062+02:00Perchè impegnarsi nell'Ordine degli ingegneri per un informatico?<style type="text/css">p { margin-bottom: 0.25cm; line-height: 120%; }</style>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjakNEKRVZsxtm_uaEhfqrQozXC2IYhczgalnIxExtWiZBgMxKpLZ03K0nvt31iO_X3grwr-QAC-Y5aGXAy8ngHQIWuzs3tQENOUai7Y48HUfFa3f4zYSsNP2UbX_L6-IkLUMHhmg/s1600/ransomware.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="145" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjakNEKRVZsxtm_uaEhfqrQozXC2IYhczgalnIxExtWiZBgMxKpLZ03K0nvt31iO_X3grwr-QAC-Y5aGXAy8ngHQIWuzs3tQENOUai7Y48HUfFa3f4zYSsNP2UbX_L6-IkLUMHhmg/s320/ransomware.png" width="320" /></a></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Il recente attacco
informatico che ha paralizzato molti sistemi informatici di imprese e
amministrazioni pubbliche e sanitarie ha evidenziato due elementi
importanti:</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
1) l'informatica è
alla base di ogni attività produttiva. Ormai non c'è nulla che non
dipenda da un qualche tipo di computer per funzionare.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
2) la cattiva
gestione e progettazione dei sistemi informatici può causare ingenti
danni economici e alla persona come ha dimostrato il fatto che gli
ospedali si sono trovati in difficoltà a somministrare le cure
previste.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Questo elemento è
stato trascurato in tutti questi anni dalla politica, che, purtroppo, a parte
l'utilizzare i social come strumenti di propaganda, non capisce le nuove tecnologie;
di conseguenza la progettazione di questi sistemi non è affidata,
come accade per tutti gli altri ambiti dove ci sono interessi della
collettività da difendere, alle persone che hanno studiato per fare
questo mestiere, ma è lasciato alla mercè del “libero mercato”
il che apre la strada a figure di vario genere dove l'unica speranza
è di avere fortuna di affidarsi a qualcuno “che ci capisce”.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Con molti colleghi
da tempo si discute di questo problema, ma l'ordine professionale degli ingegneri ha
fino ad oggi ignorato questo tipo di istanze. Con le prossime
elezioni c'è la possibilità di cambiare e di promuovere iniziative
che smuovano una situazione paralizzata.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Un nuovo consiglio
dell'ordine può affrontare questi temi che servono a rendere più
forte la categoria in generale.</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
Per questa ragione
ho scelto di candidarmi nella lista <a href="http://www.tobeing.it/" target="_blank">ToBeIng</a> insieme ad un gruppo
motivato e determinato ad attuare un cambiamento che abbiamo già
cercato di fare intravedere ai colleghi con le iniziative che siamo
riusciti a portare avanti in questi anni.</div>
Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-5897232720621548082014-04-13T11:34:00.001+02:002014-04-13T11:34:19.309+02:00Engineers ... experts and the hidden need.First of all I have to make my biggest thanks to the author of this video, because is the perfect exemplification of what happens in reality.<br />
<br />
<iframe width="560" height="315" src="//www.youtube.com/embed/BKorP55Aqvg" frameborder="0" allowfullscreen></iframe><br />
<br />
The real problem is that engineers (I know a bit on them being part of the professional order) usually really think they are experts that know how to do all.<br />
Engineers often consider themselves modern “Leonardo da Vinci” able to cook, build, plan, draw and whatever and often, as in this case, they end up falling prey of the old saying “Never argue with a fool, onlookers may not be able to tell the difference”.<br />
<br />
In fact, engineers usually like to get tangled in these sort of discussions to be able to demonstrate their expertise in “drawing red lines” and remarking that others do not know geometry.<br />
Unfortunately this is not the proper way a real professional should behave.<br />
Here the customer is presenting himself not with the need but with <b>his </b>“better” solution, usually because asking for help is much more difficult and generically customers have the approach “I'm paying you and you have to do as I ask”. They need to be in control.<br />
The real expert has to be able to explain that if the customer is looking for a professional he should before describe the need and letting him propose the solution, so the right question here is “why?”.<br />
Being able to go to the root of the problem and not letting the customer draw you into useless discussions. “You have a problem and you need a professional solution? I will be your expert!” “You have a problem and you have your solution? Ask the expert that came up with the solution to implement it for you!”.<br />
This is why many project fail, because few people were asking the right questions or simply refused to stand up and leave.<br />
Again thanks for this wonderful video.Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-43064807400107412142013-12-27T13:59:00.000+01:002013-12-27T13:59:28.852+01:00FaceRig - New Indiegogo campaign for realtime CGI riggingIt has been a passion of mine, but never had the time to dedicate effort.<br />
This project should make things easier.<br />
Hope that there will be a SDK to create own characters.<br />
Take a look at it and consider to perk for it.<br />
<br />
<br />
<iframe src="http://www.indiegogo.com/project/615849/widget/4520391" width="400px" height="486px" frameborder="0" scrolling="no"></iframe>Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-87598176921468740252013-12-11T18:01:00.000+01:002013-12-11T18:02:52.989+01:00JBoss 7.1.1 + GeoServer 2.2.5: loggingTo enable correct logging of GeoServer in a JBoss 7.1.1 installation we'll need to modify the <a href="http://gioppoluca.blogspot.it/2013/03/geoserver-225-jboss-711-and-oracle.html">previously </a>defined <b>jboss-deployment-structure.xml</b><br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
<deployment>
<exclusions>
<module name="org.apache.log4j" />
<module name="org.slf4j" />
</exclusions>
<dependencies>
<system>
<paths>
<path name="com/sun/imageio/spi"/>
<path name="com/sun/imageio/plugins/common"/>
</paths>
</system>
<module name="com.oracle" />
<module name="org.jboss.ironjacamar.jdbcadapters" />
</dependencies>
</deployment>
</jboss-deployment-structure>
</code>
</pre><br />
Than you need to set the following jvm-option in the host.xml file: GEOSERVER_LOG_LOCATION<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
<server name="geo1" group="geo-server-group" auto-start="true">
<jvm name="default">
<heap size="128m" max-size="512m"/>
<jvm-options>
<option value="-DGEOSERVER_DATA_DIR=/home/jbossas/geoserver_data,-DGEOSERVER_LOG_LOCATION=/var/log/jboss-as/geoserver.log"/>
</jvm-options>
</jvm>
</server>
</code>
</pre>In the example you also see that is possible to define a data dir in the same way.<br />
Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-9228899899486440582013-11-29T10:58:00.003+01:002013-11-29T10:58:50.994+01:00PHP library for calling WSO2 API manager publisherMy need is to create an application that manages the creation of API from a single central point (a PHP site).<br />
<br />
The WSO2 API manager has some interesting REST API that can be used to create programmatically an API.<br />
<br />
To manage these API better I've developed (still in development) a library that calls the API manager, manage errors and wrap the whole up.<br />
<br />
If you need it here is the <a href="https://github.com/gioppoluca/wso2api-php-lib">link </a>to github.<br />
<a name='more'></a><br />
The usage of the library is pretty straightforward:<br />
<br />
You create the class passing the address of the API manager (and optionally the user and password, it default to the default admin/admin)<br />
<br />
<pre>$wso2api = new Wso2API("http://10.118.8.73:9763");
</pre><br />
Than create the two array with the parameters to pass for the creation:<br />
<br />
<pre>$create_api_post = array('name'=>'WikipediaAPI',
'visibility'=>'public',
'version'=>'1.0.0',
'description'=>'If you want to monitor a MediaWiki installation',
'endpointType'=>'nonsecured',
'http'=>true,
'https'=>false,
'endpoint'=>'http://en.wikipedia.org/w/api.php',
'wsdl'=>'',
'wadl'=>'',
'tags'=>'wikipedia,mediawiki',
'tier'=>'Silver',
'thumbUrl'=>'https://upload.wikimedia.org/wikipedia/en/b/bc/Wiki.png',
'bizOwner'=>'Luca Gioppo',
'provider'=>'admin',
'context'=>'/wikipedia',
'tiersCollection'=>'Gold',
);
$create_api_resources = array (array('resourceMethod'=>'GET',
'resourceMethodAuthType'=>'Application',
'resourceMethodThrottlingTier'=>'Unlimited',
'uriTemplate'=>'/*'));
</pre><br />
In the end you can just call the create method that can accept also the autopublish flag that manage the settings of the API in PUBLISHED state in one call (usually API are in CREATED state and you have to set it to PUBLISH as a second step.<br />
<br />
<pre>$ret = $wso2api->create_api($create_api_post, $create_api_resources, $autopublish = true);
</pre>Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-67243451781236188542013-03-26T00:54:00.001+01:002013-03-26T01:03:15.294+01:00WSO2 Tutorial - BPSIn this <a href="http://gioppoluca.blogspot.it/2013/03/wso2-tutorials.html">tutorial of the WSO2 path</a> I'm working with the BPS version 3.0.0 and WSO2 Developer Studio version 3.0.0.<br />
<br />
The objective of this tutorial is to show how to implement a simple process and deploy it in the BPS.<br />
<br />
I'll use here a standard default installation of the server (no external DB for process management and so on)<br />
<br />
<a name='more'></a><br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/B2iHBj2Gd7g" width="560"></iframe><br />
<br />
I start with a new project of WSO2 type, BPEL workflow.<br />
<br />
At the end of the wizard I find myself with a HelloWorld couple of classes of an example project that is not possible to eliminate without closing eclipse and deleting the files by hand, but apart from this quirk I'm set and ready to go.<br />
<br />
I start defining the input variables of my process and the output. This is done in the WSDL definition file and I find all the bindings ready for me.<br />
<br />
Than is time to go to the BPEL process and define the flow.<br />
<br />
I can transform the dummy activity in 4 possible actions, but since none of those are of my use I get rid of it and insert an <b>IF </b>action.<br />
<br />
In the condition is important to remember that to access the input variables I have to use the following syntax:<br />
<br />
<blockquote>
$input.payload<b>/</b>...</blockquote>
<br />
Fortunately the ctrl+spacebar gives hints but the "/" was hard to find in the manuals.<br />
<br />
Each condition gets its assignment (in this example I just copy in the output a different input variable based on the path on the conditions, I'll post some more complicated in a second moment).<br />
Making the assignment to the output variable I'm informed that the variable needs to be initialized and proposes me to do it for me (after having chosen "no" a couple of times and received a couple of errors I decided it was a good thing to accept the advise).<br />
Also I have to be careful in selecting the destination and assigning the variable to the output and not to the "payload".<br />
<br />
To deploy the easiest thing to do is to create a zip file from the project with the available function.<br />
<br />
I already started my BPS server and I'm logged in the administration console (it is just the unzipped BPS distribution that runs out of the box).<br />
<br />
I add a new process selecting the zip file.<br />
<br />
It get deployed but ... I got an error .. yes I forgot to edit the <b>deploy.xml</b> so it's time for eclipse again choosing the correct "associated port" and I'm ready for a new deploy.<br />
<br />
This time all goes well and I can test it with the internal test tool filling the XML payload and getting the expected result.<br />
<br />
Very nice piece of technology.<br />
Maybe a bit more documentation could be of use.<br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-623892787427951112013-03-23T21:53:00.000+01:002013-03-26T00:56:32.024+01:00TEIID 8.1 tutorial - Part 15 - Support UpdateIn this new tutorial of the <a href="http://gioppoluca.blogspot.it/2012/10/evolution-of-teiid-81-tutorial.html">TEIID series</a> I'll show how to update the original table from the VDB view.<br />
<br />
Usually when operating with TEIID designer the "orange" view model proposes just to read/select from the source table.<br />
<br />
To be able to Update/Insert/Delete from the original table we must enable the "Support Update" checkbox as shown in the figure below.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXHKIJJB4rk4z3WhnWM1VRd59FUfUqu5rVzS5oP5YdlQgb2Nm4tyo82LNYXGQir_SKqvwHE0JEQJxuZTMCKFotV1eHhXvl2CJPsnRwoK3QZ8Zc7n-MTVQv1MYcWnxlWm8IygFQnA/s1600/update1.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXHKIJJB4rk4z3WhnWM1VRd59FUfUqu5rVzS5oP5YdlQgb2Nm4tyo82LNYXGQir_SKqvwHE0JEQJxuZTMCKFotV1eHhXvl2CJPsnRwoK3QZ8Zc7n-MTVQv1MYcWnxlWm8IygFQnA/s320/update1.png" /></a><br />
<br />
In the video I'll show the whole procedure.<br />
<br />
<a name='more'></a><br /><br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/UPaT6LwaiN0" width="560"></iframe><br />
<br />
Mind that if you have "Auto Increment" columns you have also to go to the "Table Editor" tab in the "Transformation Editor" and ser the "Auto increment" option to true.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlsYjVHqfygzC9r2qx9lIMKgUG44M3yMnbO6uqZ263zFQ9ewy1ZGpm2CeDlhdwEvxG3hzoCMOL8nWswmZx7ao4CuMMhdVM205IyieP0Ll44wtKipWifcfbbfgRmUIli7gzEWmlFw/s1600/update2.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlsYjVHqfygzC9r2qx9lIMKgUG44M3yMnbO6uqZ263zFQ9ewy1ZGpm2CeDlhdwEvxG3hzoCMOL8nWswmZx7ao4CuMMhdVM205IyieP0Ll44wtKipWifcfbbfgRmUIli7gzEWmlFw/s320/update2.png" /></a>Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-68312949041442749832013-03-22T16:24:00.003+01:002013-03-26T00:55:34.015+01:00WSO2 TutorialsI'll start a new tutorial line dedicated to the WSO2 product suite.<br />
<br />
Here is what I'm preparing:<br />
1) <a href="http://gioppoluca.blogspot.it/2013/03/wso2-tutorial-bps.html">Business Process Server - example process and deploy</a><br />
2) API Manager - publishing of an API and usage from the store<br />
3) API Manager - TEIID SOAP service publishing<br />
<br />
More will come.Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com1tag:blogger.com,1999:blog-36973717.post-2203734581423563732013-03-18T11:46:00.001+01:002013-03-26T00:57:29.631+01:00GeoServer 2.2.5 + JBoss 7.1.1 and OracleAs I posted <a href="http://gioppoluca.blogspot.it/2012/12/jboss-711-geoserver-222.html">some time ago</a>, I'm using GeoServer version 2.2.5 on a JBoss 7.1.1 installation; now I'm working with an Oracle Database so I've added the Oracle extension. And added it in the "$WAR/WEB-INF/lib/" the jar that is downloaded as a separate package (mind to download the same version for the GeoServer you are using).<br />
<br />
I had this problem accessing oracle tables:<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
09:23:34,911 ERROR [org.geoserver.ows] (http--10.20.1.50-8280-17) : java.lang.NoClassDefFoundError: oracle/jdbc/OracleConnection
at org.geotools.data.oracle.OracleDialect.unwrapConnection(OracleDialect.java:544) [gt-jdbc-oracle-8.7.jar:]
at org.geotools.data.oracle.OracleDialect.setGeometryValue(OracleDialect.java:517) [gt-jdbc-oracle-8.7.jar:]
at org.geotools.jdbc.JDBCDataStore.setPreparedFilterValues(JDBCDataStore.java:3168) [gt-jdbc-8.7.jar:]
at org.geotools.jdbc.JDBCDataStore.setPreparedFilterValues(JDBCDataStore.java:3147) [gt-jdbc-8.7.jar:]
at org.geotools.jdbc.JDBCDataStore.selectAggregateSQLPS(JDBCDataStore.java:3372) [gt-jdbc-8.7.jar:]
at org.geotools.jdbc.JDBCDataStore.getAggregateValue(JDBCDataStore.java:1292) [gt-jdbc-8.7.jar:]
at org.geotools.jdbc.JDBCDataStore.getCount(JDBCDataStore.java:1250) [gt-jdbc-8.7.jar:]
at org.geotools.jdbc.JDBCFeatureSource.getCountInternal(JDBCFeatureSource.java:432) [gt-jdbc-8.7.jar:]
at org.geotools.data.store.ContentFeatureSource.getCount(ContentFeatureSource.java:451) [gt-data-8.7.jar:]
at org.geotools.jdbc.JDBCFeatureStore.getCountInternal(JDBCFeatureStore.java:183) [gt-jdbc-8.7.jar:]
at org.geotools.data.store.ContentFeatureSource.getCount(ContentFeatureSource.java:451) [gt-data-8.7.jar:]
at org.geotools.data.store.ContentFeatureCollection.size(ContentFeatureCollection.java:356) [gt-data-8.7.jar:]
at org.geoserver.wms.GetFeatureInfo.execute(GetFeatureInfo.java:297) [wms-2.2.5.jar:2.2.5]
at org.geoserver.wms.GetFeatureInfo.execute(GetFeatureInfo.java:168) [wms-2.2.5.jar:2.2.5]
at org.geoserver.wms.GetFeatureInfo.run(GetFeatureInfo.java:117) [wms-2.2.5.jar:2.2.5]
at org.geoserver.wms.DefaultWebMapService.getFeatureInfo(DefaultWebMapService.java:374) [wms-2.2.5.jar:2.2.5]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_25]
at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_25]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318) [spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
</code>
</pre>
<br />
The problem is due to a classloading mechanism of the AS.<br />
<br />
<a name='more'></a><br /><br />
The solution is to create the oracle module containing the "ojdbc6.jar" (in this case)<br />
<br />
Step1)<br />
Create a Oracle Driver module as following:<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
JBossAS7.1.1/modules/
└── com
└── oracle
└── main
├── module.xml
├── ojdbc6.jar
</code>
</pre>
<br />
Step2)<br />
Than either to add this line to the "$WAR/META-INF/MANIFEST.MF" file:<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
Dependencies: com.oracle, org.jboss.ironjacamar.jdbcadapters
</code>
</pre>
<br />
or in<br />
<br />
<i><b>jboss-deployment-structure.xml</b></i><br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
<deployment>
<dependencies>
<system>
<paths>
<path name="com/sun/imageio/spi"/>
<path name="com/sun/imageio/plugins/common"/>
</paths>
</system>
<module name="com.oracle" />
<module name="org.jboss.ironjacamar.jdbcadapters" />
</dependencies>
</deployment>
</jboss-deployment-structure>
</code>
</pre>
<br />
<br />
Mind that the <b>com.oracle</b> has to be the same declared as name of the module (you have to provide this one)<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.oracle">
<resources>
<resource-root path="ojdbc6.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
</code>
</pre>
<br />
The <b>org.jboss.ironjacamar.jdbcadapters</b> is something you find bundled with JBoss.Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com1tag:blogger.com,1999:blog-36973717.post-38617309340856130642013-03-08T16:24:00.001+01:002013-03-26T00:58:15.791+01:00TEIID 8.1 tutorial - Part 10 - TEIID SOAP service + WSO2 + SoapUIIn this tutorial I'll be publishing the book SOAP web service using the API manager from WSO2.<br />
<br />
To demonstrate that it works I'll be using as usual SoapUI<br />
<br />
The API Manager is composed of two components the Publisher and the Store.<br />
<br />
Obviously I need to start from the publisher and create the API: you ger the WSDL endpoint from the JBoss consolle in the webservices TAB.<br />
<br />
The API start as CREATED so I need to set into PUBLISHED state.<br />
<br />
The API is ready to be used, so is turn of the Store where is quite easy to subscribe to the API.<br />
The main idea is that I'm a developer that uses some of the API published on the Store and I can have different applications that make use of the API and can register to use them with different "Tier" levels that means how much requests I can issue in a given time.<br />
<br />
<a name='more'></a><br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/tT1Pj69GIMU" width="560"></iframe><br />
<br />
Now I can test the API<br />
<br />
Open SoapUI and create a new project using the URL stated in the Store<br />
<br />
On the API remember to append the SOAP method call so that it will be called correctly by the API gateway.<br />
<br />
At first will be missing the Authorization HTTP Header that si the security to allow only registered developers to access the API; the key to use is the one from the subscription I did when I subscribed to the API.<br />
<br />
With that key I can access and get the result, but if I try to make another request I'm warned that I've finished my allower request per second and have to wait.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/rJ6oZErIqJ4" width="560"></iframe><br />
<br />
This is indeed a powerful way to expose API managing billing options and access levels.Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-697654813741456502013-02-28T23:49:00.001+01:002013-03-26T00:59:08.958+01:00TEIID and nodejs with node-postgresOk after a bit of tribulation I managed to access TEIID from nodejs.<br />
<br />
It is really simple as the Ramesh's blog stated, but since I had a few problems making it work I try to give a bit of explanation more.<br />
<br />
I have TEIID 8.2 on Jboss 7.1.1 and use node v0.8.16 and pg 0.13.1<br />
<br />
The code to make connection is:<br />
<br />
<a name='more'></a><br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
var pg = require('pg');
var connectionString = "pg://user:user@10.40.1.210:35432/ReportsVDB"
pg.connect(connectionString, function(err, client) {
if(err){
console.log(err)
};
client.query('SELECT * FROM Reports.reports', function(err, result) {
if(err){
console.log(err)
};
console.log(result.rows)
});
});
</code>
</pre>
I have nodejs on Host1 and TEIID on Host2.<br />
<br />
The important thing that made me loose a lot of time was that I tried to connect to TEIID on port 31000 that is the default port on JDBC but … the pg protocol goes on ODBC transport<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
<socket-binding name="teiid-jdbc" port="31000"/>
<socket-binding name="teiid-odbc" port="35432"/>
</code>
</pre>
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
<transport name="jdbc" socket-binding="teiid-jdbc">
<authentication security-domain="teiid-security"/>
</transport>
<transport name="odbc" socket-binding="teiid-odbc" protocol="pg">
<authentication security-domain="teiid-security"/>
</transport>
</code>
</pre>
So the correct port to use is the ODBC one (just in case you port-offset it)Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com3tag:blogger.com,1999:blog-36973717.post-78516376448375930292013-02-25T23:16:00.001+01:002013-03-18T11:47:23.627+01:00teiid: Access Teiid from node.js<a href="http://teiid.blogspot.com/2013/02/access-teiid-from-nodejs.html?spref=bl">teiid: Access Teiid from node.js</a>: Are you writing a "node.js" application and would like to access Teiid VDB from it? If "yes", this is currently po...<br />
<br />
<br />
The post from Ramesh is very interesting.<br />
I'm working on that using TEIID 8.2 on JBoss 7.1.1 with the 0.13.1 version of node-postgres but having some difficulties.<br />
Will keep you updated. Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-21226167557212509852013-02-25T12:07:00.000+01:002013-02-25T12:07:16.083+01:00Testing a datasource on JBoss 7.1.1 in domain modeI'm trying to test a deployed datasource in JBoss 7.1.1 in a domain configuration.<br />
<br />
No info found around help in doing this job, also the web console is not working as expected (I also use TEIID 8.2 and probably the new web console mangled up a few things) and surely having a domain installation does not help things up.<br />
<br />
<br />
All the things found around suggest to use this command<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
/subsystem=datasources/data-source=reportsDS:test-connection-in-pool
</code>
</pre><br />
Being in a domain mode I do not have /subsystem so I tryed to get the subsystem from somewhere.<br />
<br />
Getting it from profile ...<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
/profile=ha/subsystem=datasources/data-source=reportsDS:test-connection-in-pool
</code>
</pre><br />
But the result are below and are not the expected<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
{
"outcome" => "failed",
"failure-description" => "JBAS010850: No handler for operation test-connection-in-pool at address [
(\"profile\" => \"ha\"),
(\"subsystem\" => \"datasources\"),
(\"data-source\" => \"reportsDS\")
]",
"rolled-back" => true
}
</code>
</pre><br />
So I tryed with the following (that is logical since the previous was issued on a definition (profile) and not something truly running) against the host/server<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
/host=master/server=teiid1/subsystem=datasources/data-source=reportsDS:test-connection-in-pool
</code>
</pre><br />
This time the result is successful<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
{
"outcome" => "success",
"result" => [true]
}
</code>
</pre>If needed by anyone.Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com1tag:blogger.com,1999:blog-36973717.post-62946360702472104482013-02-09T01:16:00.001+01:002013-02-09T01:16:32.689+01:00Considerations on italian contextI usually write of technical stuff.<br />
I'm a techy and prefer to stay on my ground.<br />
I live in Italy, that I consider a great place, that have given lot to world's culture, art and science.<br />
<br />
In Italy we are living one of the lowest moments of our history, without even being aware of it.<br />
Since this is a grave sentence I'll try to motivate it with data.<br />
<br />
The first and foremost problem is the incompetence at higher levels of management: the majority of the politician aren't people dedicated to the common good, but people that devote themselves to personal enrichment and gain personal advantages up to the point to promote laws useful to their own economical and personal interests.<br />
This has the consequence that much of the management of companies linked to Public Administration (this means from the little company that want/need to work with a local municipality, and in Italy we have more than 8000 municipalities, to the big enterprises) either submit to compromises with this politicians or are in league with them.<br />
This pairs with a common theory that says that management does not need to understand the inner working of the company business but just need to know how to manage things; this approach could be summed up with the concept that the same manager can today be the CEO of a car industry and tomorrow the general director of a hospital and the day after the president of a farming consortium, because he "knows how to manage".<br />
<br />
The consequence?<br />
<br />
Companies have a management that usually do not take decisions unless are decisions that politicians push on them and are not able to guide and "manage" the company. Many are just good looking and smooth talkers. Who can blame them? If you do not understand your company business how can you decide the strategy of the company? If a computer or an hamburger are the same to you how can you make decisions?<br />
<br />
The consequence?<br />
<br />
This management raise, usually, mediocre people, so called "yes man" or friends so that their position is not at risk and they can do what they want without being hampered.<br />
<br />
<br />
There is another part of the equation.<br />
Italians are mediterranean people and to use a stereotype many of us "work hard when pressed", place attention on the "when pressed" part. Even if in our constitution we wrote at article 4 (so in a pretty important place) "Ogni cittadino ha il dovere di svolgere, secondo le proprie possibilità e la propria scelta, un'attività o una funzione che concorra al progresso materiale o spirituale della società." that can be translated as "each citizen has the due to work according to his possibility and choice to contribute to material or spiritual progress of society", few are educated to a working culture and are looking for a quick way to get money with the smallest effort. This make us creative people, but not always so productive. This is a rich pond where those politicians can go fishing for votes: "vote for me and I'll promise you benefits". To better control people media are constantly lowering the cultural level of the media content and information, with the result that people get distracted towards false problems and low profile (dumb) mindset: "let's give them soccer, girls and some topics to argue upon" (remember we invented "panem et circenses" 2000 years ago with gladiators so we have experience on this).<br />
<br />
Think this scenario applied to all productive center of the society, schools, big industries, media, public administration. This has been running for years, so it's quite spread.<br />
<br />
The consequences?<br />
<br />
Is no wonder that Italy doesn't have big companies. We have lot of small businesses where hard working people strive to live the day in a difficult environment. Few people wants to be "Don Quixote" fighting mills and prefer to bow their head not to run the risk of loosing what they gained with hard work.<br />
<br />
This is a simplified summary of the current situation, more a photograph of a state, not an analysis of why we are here. There are exceptions, not all of Italy is like this, but the balance is tilted on the wrong side.<br />
<br />
History teaches that in similar situations Italy and Italians managed to raise and conquer freedom.<br />
Let us hope for the best.Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-60265691506861433382012-12-10T09:01:00.004+01:002012-12-10T09:01:57.615+01:00ReteLIM project presentation - network problemsHere you can find the link to a <a href="http://www.ondequadre.polito.it/podcast_video.php?titolo_produzione=Scuola%20in%20Ospedale&id_puntata=776&sel1=3&sel2=0">presentation of mine of the ReteLIM project</a>.<br />
The main goal of the project is to enable hospitalized children to keep in contact with his classmates and teachers; I <a href="http://gioppoluca.blogspot.it/2012/10/project-retelim-thanks-to-open-source.html">explained a bit in a previous post of mine</a>.<br />
<br />
The main big problem in Italy is the lack of good network connections in the schools AND in the hospitals.<br />
<br />
Unfortunately hospitals are not build with a 2.0 conception. People often risk to spend lot of lifetime in an hospital and there should be the availability of a free guest network connection, isolated from the internal hospital network, so that citizen either sick or relatives can have a view of the world and a means to keep in touch with the outside.<br />
This is place where free internet has an additional meaning.<br />
<br />
Unfortunately in Italy we are much in late with the free internet access.<br />
<br />
Maybe in the context of the "Agenda Digitale" there could be means to address also this problems:<br />
<br />
- Bandwitdh for schools and hospitals<br />
- Public cloud where PA (and schools obviously) can procure computing power for services<br />
<br />
These are themes that have to be centrally solved.<br />
<br />
<br />
<br />
Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-46899724530017163812012-12-09T15:30:00.000+01:002012-12-14T23:48:43.021+01:00JBoss 7.1.1 + GeoServer 2.2.2I'm deploying GeoServer 2.2.2 into JBoss 7.1.1 and there are not many hint around on how to solve some issues.<br />
<br />
If you download the WAR version of GeoServer and just deploy it into the <i>standalone/deployments</i> folders you get the following errors:<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
14:47:26,944 ERROR [stderr] (MSC service thread 1-5) java.lang.NoClassDefFoundError: com/sun/imageio/plugins/common/BogusColorSpace
14:47:26,944 ERROR [stderr] (MSC service thread 1-5) at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReaderSpi.onRegistration(TIFFImageReaderSpi.java:168)
14:47:26,944 ERROR [stderr] (MSC service thread 1-5) at javax.imageio.spi.SubRegistry.registerServiceProvider(ServiceRegistry.java:698)
14:47:26,944 ERROR [stderr] (MSC service thread 1-5) at javax.imageio.spi.ServiceRegistry.registerServiceProvider(ServiceRegistry.java:285)
14:47:26,959 ERROR [stderr] (MSC service thread 1-5) at javax.imageio.spi.IIORegistry.registerApplicationClasspathSpis(IIORegistry.java:191)
14:47:26,959 ERROR [stderr] (MSC service thread 1-5) at javax.imageio.spi.IIORegistry.<init>(IIORegistry.java:121)
14:47:26,959 ERROR [stderr] (MSC service thread 1-5) at javax.imageio.spi.IIORegistry.getDefaultInstance(IIORegistry.java:142)
14:47:26,959 ERROR [stderr] (MSC service thread 1-5) at org.geoserver.GeoserverInitStartupListener.contextDestroyed(GeoserverInitStartupListener.java:236)
14:47:26,959 ERROR [stderr] (MSC service thread 1-5) at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3489)
14:47:26,959 ERROR [stderr] (MSC service thread 1-5) at org.apache.catalina.core.StandardContext.stop(StandardContext.java:3999)
14:47:26,959 ERROR [stderr] (MSC service thread 1-5) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3917)
14:47:26,975 ERROR [stderr] (MSC service thread 1-5) at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90)
14:47:26,975 ERROR [stderr] (MSC service thread 1-5) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
14:47:26,975 ERROR [stderr] (MSC service thread 1-5) at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
14:47:26,975 ERROR [stderr] (MSC service thread 1-5) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
14:47:26,975 ERROR [stderr] (MSC service thread 1-5) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
14:47:26,975 ERROR [stderr] (MSC service thread 1-5) at java.lang.Thread.run(Thread.java:662)
14:47:26,975 ERROR [stderr] (MSC service thread 1-5) Caused by: java.lang.ClassNotFoundException: com.sun.imageio.plugins.common.BogusColorSpace from [Module "deployment.geoserver.war:main" from Service Module Loader]
14:47:26,990 ERROR [stderr] (MSC service thread 1-5) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
14:47:26,990 ERROR [stderr] (MSC service thread 1-5) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
14:47:26,990 ERROR [stderr] (MSC service thread 1-5) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
14:47:26,990 ERROR [stderr] (MSC service thread 1-5) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
14:47:26,990 ERROR [stderr] (MSC service thread 1-5) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
14:47:26,990 ERROR [stderr] (MSC service thread 1-5) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
14:47:26,990 ERROR [stderr] (MSC service thread 1-5) ... 16 more
14:47:27,006 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed to start service jboss.web.deployment.default-host./geoserver: org.jboss.msc.service.StartException in service jboss.web.deployment.default-host./geoserver: JBAS018040: Failed to start context
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:95)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_35]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_35]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_35]
</code>
</pre><br />
<br />
To solve the problem you have to create two files:<br />
<i><b>jboss-classloading.xml</b></i><br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
<classloading xmlns="urn:jboss:classloading:1.0"
name="geoserver.war"
domain="GeoServerDomain"
export-all="NON_EMPTY"
import-all="true">
</classloading>
</code>
</pre><br />
<i><b>jboss-deployment-structure.xml</b></i><br />
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
<deployment>
<dependencies>
<system>
<paths>
<path name="com/sun/imageio/spi"/>
<path name="com/sun/imageio/plugins/common"/>
</paths>
</system>
</dependencies>
</deployment>
</jboss-deployment-structure>
</code>
</pre><br />
These files have to be added inside the WAR in the \WEB-INF\<br />
<br />
This solves the problem and you get a nice and working GeoServer inside the JBoss application server.<br />
<br />
Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com4tag:blogger.com,1999:blog-36973717.post-51411839079339641802012-12-04T22:27:00.000+01:002012-12-04T22:27:42.700+01:00WebRTC mozilla implementationHere is a great demonstration of the next <a href="http://en.wikipedia.org/wiki/WebRTC">WebRTC </a>implementation that Mozilla is developing for Firefox 18.<br />
This is going to put in the trash all the web conference solutions. or at least rising the minimum feature offering. The power to send the currend browser to the other participant is amazing and powerful.<br />
<br />
This could have a big impact on eLearning tools, adding new communication tools directly within the platform (I'm thinking at a Moodle on steroids).<br />
The interesting aspect is the fact that the WebRTC technology enable a new world of integrated applications on the web, just a few click away.<br />
<br />
I hope that projects like OpenMeetings will soon be able to leverage on this standard.<br />
<br />
<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/S6-rAv6bU8Q" width="560"></iframe><br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-55205938435166394532012-12-01T20:30:00.000+01:002012-12-01T20:34:20.772+01:00New cloudstack' VMs security and password managementI happen to work with cloud infrastructure and use to create lots of virtual machines to test and develop new puppet modules.<br />
<br />
Since the target is to finalize cloud templates and correct installation of the modules often these VMs stay up a few days to allow refining and so on.<br />
<br />
I start from a very basic template, and all is installed by puppet, security has to be managed by the cloud and these machines are destined to stay in the internal private network exposing just the services they offer (whether they are a moodle machine or a JBoss server or whatever).<br />
<br />
So no particular attention has been made in securing the host, but to be able to work with ease I just opened the 22 port of SSH server to connect and to the configurations.<br />
<br />
Unfortunately the password was a simple one and since the work sometimes take more than a couple of days some machine were compromised; brute force attack to SSH server.<br />
<br />
This to learn to use a good password: so since using a different password for each VM in the cloud could be difficult to remember (especially if you want to use non simple ones) I decided to use a nice feature of keepass: the ability to execute PUTTY as a URL action; in this way I do not have to bother to remember or type complex passwords anymore.<br />
<br />
Here the code to insert in keepass:<br />
<br />
<br />
<div style="font-family: "Courier New",Courier,monospace;">
cmd://PuTTY.exe -ssh {USERNAME}@{URL:HOST} {URL:PORT} -pw {PASSWORD}</div>
<div style="font-family: "Courier New",Courier,monospace;">
<br /></div>
<div style="font-family: "Courier New",Courier,monospace;">
cmd://WinSCP.exe scp://{USERNAME}:{PASSWORD}@{URL}</div>
<br />
The first is for opening ssh URL the second to create a "scp" URL. Mind that there is already an "ssh" URL scheme, but if you have SSH on another port you have to follow the command above to manage to connect. This command works with the latest keepass 2.x version <br />
<br />
To add it go to Tools -> Options... press "URL Scheme Overrides"<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnF7Uccms_Fw5MnrCBjyOyxSKJAQcLH9eehQ1NOwTGB7Iw4nCtPJ_4SoQNTqp_-24tX0jD3D3ZDbmJdudxsiNxHwcEEKMLb_oN4pYaVFOTcExEboKKh8zelh6DWz4Nbg4mSrJxaQ/s1600/keepass2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnF7Uccms_Fw5MnrCBjyOyxSKJAQcLH9eehQ1NOwTGB7Iw4nCtPJ_4SoQNTqp_-24tX0jD3D3ZDbmJdudxsiNxHwcEEKMLb_oN4pYaVFOTcExEboKKh8zelh6DWz4Nbg4mSrJxaQ/s320/keepass2.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Keepass options dialog</td></tr>
</tbody></table>
<br />
Create a new Scheme pressing "Add..." <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5ZRKF7i__qHZ6mNJ8ff-LunTz0qQ1IV7gZX07ugkkHAuBSPKQue_Lv2SU65YZks7wv9aWZI6wEg9ME6NQ0-QPVb-RKgbI6-OFMWeyuRtBACPTCJh0atzF-Rty22b9FTgbuyPfKQ/s1600/keepass1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5ZRKF7i__qHZ6mNJ8ff-LunTz0qQ1IV7gZX07ugkkHAuBSPKQue_Lv2SU65YZks7wv9aWZI6wEg9ME6NQ0-QPVb-RKgbI6-OFMWeyuRtBACPTCJh0atzF-Rty22b9FTgbuyPfKQ/s320/keepass1.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">URL Override</td></tr>
</tbody></table>
<br />
Adding "ssh" to scheme and the command above in the URL Override.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuyskCWlw2aUfUpXjix2Mgw_t6nSwVZpLu82yNP09O27kxu5tf5waTGVI59-9EMC7YYTy4yau158S4UBnqq1A5KVKtKBDsBBfC1NiIjfbsX3fd4Sv0JCMvrhKXIjp4St7ONtNNnA/s1600/keepass3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuyskCWlw2aUfUpXjix2Mgw_t6nSwVZpLu82yNP09O27kxu5tf5waTGVI59-9EMC7YYTy4yau158S4UBnqq1A5KVKtKBDsBBfC1NiIjfbsX3fd4Sv0JCMvrhKXIjp4St7ONtNNnA/s320/keepass3.png" width="320" /></a></div>
<br />
This way you can start PUTTY from keepass using secure complex passwords with ease.<br />
<br />
To solve the problem of unsecure new machines I also added the installation of fail2ban to the puppet node description: no more brute force attack allowed.<br />
<br />
Will work on automatically changing the root password and creating a CSV file to send to administrator to add info to central keepass DB.Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-87565737161794453462012-11-23T13:08:00.001+01:002012-11-23T13:08:15.971+01:00Puppet, Augeas and sudoersI'm developing some puppet modules in these days and I'm working on a <a href="https://github.com/gioppoluca/puppet-moodle">Moodle module</a>.<br />
<br />
The interesting thing is that Moodle has a nice CLI interface that is possible to use to make the installation unattended and not iterative so is possible to create a puppet module that manages the whole installation by itself.<br />
The module is still in the works, but I'm trying to make it as modular as possible since I could need to have the MySQL DB in a different host and so I prefer to set up the module to delegate to MySQL the task of building the DB.<br />
This is something that many modules around to not take into consideration: not all environments have the DB in the same host as the application you are installing. In my case is particularly true in my case since I work in a cloud environment and I need the machine to be automatically deployed in CloudStack letting the Moodle machine to export the DB need to the MySQL central machine.<br />
<br />
To solve this problem I'm using the exported resources and I can say that it works pretty well as I <a href="http://gioppoluca.blogspot.it/2012/09/puppet-and-exported-resources.html">posted</a> some times ago.<br />
<br />
With this approach the Moodle module just takes care of the Moodle stuff and demand (issues a export resource and MySQL will catch it and create the DB) to other modules the task of managing their resources.<br />
<br />
Thankfully puppetlabs is working hard to provide a set of good basic modules to manage thinks like MySQL (had to use the GIT version since there is a bug that has been fixed there)<br />
One of the thingsI had a really awful time to solve is the use of Augeas in puppet to configure the /etc/sudoers file.<br />
The problem is that Moodle CLI wants to be executed as the Apache user, but the apache user do not have TTY and is not allower to work without a password so googling around (I'm not a sysop, more a jack-of-all-trades and thus have to google a lot in my day :-) ) it turned out I had to have sudo and write /etc/sudoers to enable apache to work.<br />
It seems easy ... (at least if you use visudo), but using puppet ...<br />
Looking around I felt lucky augeas can write on /etc/sudoers ... but how? No good example around so after many trials and error I decided to make this post to help others not loosing all the time I did:<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">augeas { "sudoapache":<br /> context => "/files/etc/sudoers",<br /> changes => [<br /> "set spec[user = '$moodle::params::web_user']/user \"$moodle::params::web_user\"",<br /> "set spec[user = '$moodle::params::web_user']/host_group/host \"ALL\"",<br /> "set spec[user = '$moodle::params::web_user']/host_group/command \"ALL\"",<br /> "set spec[user = '$moodle::params::web_user']/host_group/command/runas_user \"ALL\"",<br /> "set spec[user = '$moodle::params::web_user']/host_group/command/tag \"NOPASSWD\"",<br /> "set Defaults[type=':$moodle::params::web_user']/type :$moodle::params::web_user",<br /> "set Defaults[type=':$moodle::params::web_user']/requiretty/negate \"\""],<br /> }</span></span><br />
<br />
This will produce the two rows in the file that allowed the CLI to make its own work.<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">apache ALL = (ALL) NOPASSWD : ALL<br />Defaults:apache !requiretty</span></span><br />
<br />
Good puppetizing!Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-87156244846292352672012-11-07T21:22:00.001+01:002012-11-07T21:22:31.124+01:00VUVOX a timeline storytellingThis is a really powerfull solution for alternative form of presentations.<br />
<br />
The timeline approach transmits a narrative flow to the presentation and the power of hyperlinks to show videos, images, audio is a big addition.<br />
<br />
This is one complementary alternative to Prezi.<br />
<br />
You give the user the power to control the flow and the hyperlink is something tha Prezi lacks. These two tools offer a new way to present content in a rich and engaging style.<br />
<br />
I can advise it.<br />
<br />
<object width="400" height="400"><param name="allowFullScreen" value="true" /><param name="flashvars" value="showMenu=false&clickToStart=true"/><param name="movie" value="http://www.vuvox.com/collage_express/collage.swf?collageID=0604770039"/><embed src="http://www.vuvox.com/collage_express/collage.swf?collageID=0604770039" flashvars="showMenu=false&clickToStart=true" allowFullScreen="true" type="application/x-shockwave-flash" width="400" height="400"></embed></object>Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-52251546615829688082012-11-02T17:48:00.001+01:002012-11-02T17:48:09.799+01:00Your data in the social networkThis video is really funny!!<br />
<br />
Is a good example of how our personal information is available to public access.<br />
<br />
This true especially for young users of the internet, too many times people publish things that could represent a problem for their current or future public image or a threath to the security of web accounts.<br />
<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/qYnmfBiomlo" frameborder="0" allowfullscreen></iframe>Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0tag:blogger.com,1999:blog-36973717.post-85365408948429761042012-10-23T23:23:00.001+02:002012-10-23T23:23:02.843+02:00TEIID 8.1 tutorial - Part 5We prepared a VDB in the previous part of the <a href="http://gioppoluca.blogspot.it/2012/10/teiid-tutorial-81-part-4.html">TEIID tutorial</a>.<br />
<br />
Now we want to test it on a TEIID server.<br />
<br />
To do so we need a fresh and clean TEIID installation.<br />
<br />
We download a JBoss AS version 7.1.1 and unzip it into a folder (I'm runniong the tutorial on windows, but you can do the same on linux).<br />
<br />
I usually check that JBoss works out of the box before installing anything.<br />
<br />
When you have checked the JBoss AS installation you are ready to install TEIID, that is pretty easy stuff to do as you have to download the TEIID distribution and just unpack it into the JBoss installation; there is the same folder structure so everything will go to its place.<br />
<br />
For the demo we'll going to run JBoss in standalone mode, this means that we'll look at the files into the standalone folder.<br />
<br />
Since there is a standalone-teiid.xml file I usually create a start script to set the config file to be that one, but is a habit of mine, you can rename it standalone.xml and work on that (just keep the original standalone somewhere should you need it).<br />
<br />
Done that just start JBoss again and this time we'll see that also TEIID modules gets loaded and it is ready and running; obviously there is no DB right now.<br />
<br />
Shut down everything and make some few configurations (all these stuffs can be done in different ways, as a tutorial I prefer to show what gets written into the XML file so that is known what web consolle does behind the scene).<br />
<br />
Since we are going to connect to MySQL we need to prepare the module for MySQL with the driver so that JBoss and TEIID can make a connection to MySQL create a datasource to our DB with the correct jndi name we used in the VDB.<br />
<br />
The TEIID installation comes with a usefull set of examples/templates for the modules so we just have to copy the MySQL one in the modules folder, copy the jdbc driver in the folder, configure the modules with the correct name of the lib and the driver is ready.<br />
<br />
We than need to add the driver information within the standalone.xml file.<br />
<br />
Done that we can add the driver information in the standalone.xml file and set all the parameters to be able to correctly connect to the DB.<br />
<br />
When you have finished the configuration start JBoss and go to the web concolle and check the functioning of the datasource testing the connection with the DB.<br />
<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/NdXOTucJwVI" frameborder="0" allowfullscreen></iframe><br />
<br />
Once we have finished this part we can deploy the VDB.Anonymoushttp://www.blogger.com/profile/07783421934032055676noreply@blogger.com0