Partenza: Val Ridanna (AltoAdige) - 1.400m
Destinazione: Wilder Freiger - 3.418 metri
Dislivello: 2207 metri
Difficoltà: O.S.A
Prima stagione di scialpinismo, e subito il primo OSA (credo più per il dislivello e lo sviluppo che per la sciata in sè - a parte il canalone e il bosco che mi hanno dato da pensare
) e primo 3.000.
Dopo una mezzoretta passata nel bosco, si apre una bella vallata in fondo alla quale si innalza un ripido canalone (e mi pensavo "e mi doveria tornar endre da questa?? mah.."); da qui iniziano i scendi e sali. Si attraversa (salendo) il ghiacciaio di Malavalle fino alle alla base della cima, dove, depositati gli sci, si sale a piedi per 50 metri (massimo 50/55°).
La vista dalla cima è a dir poco spettacolare.

Mi piace molto fare attività fisica, senza diventerei pazzo!
Fin da piccolo ho giocato a calcio; fino a qualche anno fa direi che era tutto per me! Gli ultimi anni oltre ad esser stati ricchi di soddisfazioni, sono stati un calvario visto i tanti infortuni.. l'ultimo dei quali mi hanno portato alla sofferta decisione di smettere con il calcio.
Durante la settimana vado 4 volte in palestra.
Grazie a Claudia, la ragazza con la quale sto da più di sei anni, negli ultimi 3 anni ho "scoperto" la montagna con le prime uscite sul Lagorai.
Ora la Montagna (e anche Claudia
) è/sono tutto per me..
la Montagna la vivo in estate facendo trekking e arrampicando, e d'inverno con lo scialpinismo.Prossimamente mi piacerebbe cimentarmi anche con l'Alta Montagna.
Fra le tante cose, mi piacerebbe fare qualcosa nel sociale (Soccorso Alpino o CRI).. vedremo se avrò il tempo (e le capacità) anche per questo..
Partenza: Ponte Conseria
Destinazione: Cima Cengello
Il vento la fa da protagonista..a saverlo prima stevo a me cà
.
Partenza da ponte Conseria alle 7.15 circa, per evitare il possibile via/vai vista la giornata di festa e per "abbracciare" il freddo pungente (dovuto più dal vento che dal freddo in sè).
Fino a malga Conseria, la montagna ci "protegge" dal vento, ma appena usciti dal bosco il vento freddo è davvero fastidioso.
Da qui fino ai laghetti del Cengello il sentiero è quasi pianeggiante; una volta raggiunti i laghetti ci viene la stupida idea di "affrontare" la montagna frontalmente; la neve ci arriva quasi alle ginocchia e fino a quando resta ghiacciata, in qualche modo, riusciamo ad avanzare.. quasi in cima al canalone la neve inizia ad essere farinosa e ad ogni passo in avanti, ne facciamo 2 indietro; decidiamo a malincuore di rinunciare.
Durante la discesa il formarsi di grossi lastroni di neve ci fa capire quanto incoscenti siamo stati..
| Informazioni personali | |
| Nome | Nicola Ferrari |
| Indirizzo |
via Vigolana 7 - 38057 Pergine Valsugana (TN) |
| Telefono | 3487234990 |
| nick.ferro at gmail.com | |
| Nazionalità | Italiana |
| Data di nascita | 22/06/1987 |
| Sesso | Maschile |
| Esperienza lavorativa | |
| Date (da – a) | 11/02/2008 ad oggi |
| Nome e indirizzo del datore di lavoro | Banca Ifis S.p.a – via Terraglio, 63 – 30174 Venezia Mestre (VE) Luogo di lavoro: via Solteri, 38 – 38100 Trento (TN) |
| Tipo di azienda o settore | Banca |
| Tipo di impiego | Servizio ICT – Nucleo Programmazione e Sviluppo |
| Principali mansioni e responsabilità | Sviluppo di software in ambito bancario. Monitoraggio della rete tramite Nagios. Gestione delle stampe tramite software Print2000 |
| --------------------------------------------------------------------------- | |
| Date (da – a) | 01/07/2010 - 31/07/2010 |
| Nome e indirizzo del datore di lavoro | Interpromotion – Str. Costadedoi, 69 – 39030 San Cassiano (BZ) |
| Tipo di azienda o settore | Agenzia Pubblicitaria |
| Tipo di impiego | Sviluppatore di applicazioni Web |
| Principali mansioni e responsabilità | Sviluppo di plugin Jquery ad hoc e creazione di script Javascript. |
| --------------------------------------------------------------------------- | |
| Date (da – a) | 01/09/2006 - 08/02/2008 |
| Nome e indirizzo del datore di lavoro | Rievoluzione.it S.r.l. – via Broletti, 18 - 38050 Castelnuovo (TN) |
| Tipo di azienda o settore | Informatico |
| Tipo di impiego | Sviluppatore di applicazioni Web |
| Principali mansioni e responsabilità | Sviluppo di applicazioni Web. Integrazione fra sistemi eterogenei per esportazione/importazione dati. |
| --------------------------------------------------------------------------- | |
| Date (da – a) | 10/06/2005 - 10/09/2005 |
| Nome e indirizzo del datore di lavoro | Poli Regina – Centro Commerciale Shop Center Valsugana – via Tamarisi 2, 38057 Pergine Valsugana (TN) |
| Tipo di azienda o settore | Grande distribuzione |
| Tipo di impiego | Addetto alle Vendite |
| Principali mansioni e responsabilità | Commesso per la stagione estiva. |
| --------------------------------------------------------------------------- | |
| Date (da – a) | 01/07/2004 - 30/07/2004 |
| Nome e indirizzo del datore di lavoro | Comune Pergine Valsugana – Piazza Municipio, 7 – 38057 Pergine Valsugana (TN) |
| Tipo di azienda o settore | Ufficio edilizia abitativa |
| Tipo di impiego | Stage scolastico |
| Principali mansioni e responsabilità | Gestione delle pratiche edilizie. |
| Istruzione e formazione | |
| Date (da – a) | 2011 |
| Nome e tipo di istituto di istruzione o formazione | Associazione LinuxTrent |
| Principali materie / abilità professionali oggetto dello studio | Corso SysAdmin: San-Nas, Proxmox, KVM, Shorewall, WiiLD, i server di posta, i backup, samba |
| Qualifica conseguita | - |
| Livello nella classificazione nazionale (se pertinente) | - |
| --------------------------------------------------------------------------- | |
| Date (da – a) | 15/06/2009 – 19/06/2009 |
| Nome e tipo di istituto di istruzione o formazione | Actian Corporation |
| Principali materie / abilità professionali oggetto dello studio | OPROAD: OpenRoad Application Development and Maintenance. Corso base di OpenRoad , organizzato da Actian Corporation (in lingua inglese) |
| Qualifica conseguita | Attestato di partecipazione al corso |
| Livello nella classificazione nazionale (se pertinente) | - |
| --------------------------------------------------------------------------- | |
| Date (da – a) | 2011 |
| Nome e tipo di istituto di istruzione o formazione | Associazione LinuxTrent |
| Principali materie / abilità professionali oggetto dello studio | Corso shell: approfondimento della linea di comando e della Shell |
| Qualifica conseguita | - |
| Livello nella classificazione nazionale (se pertinente) | - |
| --------------------------------------------------------------------------- | |
| Date (da – a) | 2002 - 2006 |
| Nome e tipo di istituto di istruzione o formazione | Istituto Marie Curie – via San Pietro, 2 - 38057 Pergine Valsugana (TN) |
| Principali materie / abilità professionali oggetto dello studio | Informatica – Elettronica e Telecomunicazioni – Sistemi di elaborazione e trasmissione delle informazioni. |
| Qualifica conseguita | Perito capotecnico industriale – indirizzo informatico |
| Livello nella classificazione nazionale (se pertinente) | - |
| Capacità e competenze personali | |
| Madrelingua | Italiano |
| Altra lingua | Inglese |
| Capacità di lettura | buono |
| Capacità di scrittura | scolastico |
| Capacità di espressione orale | scolastico |
| Capacità e competenze organizzative | Durante le esperienze professionali precedenti mi è stato richiesto sia di gestire autonomamente diverse attività (rispettando le scadenze e gli obiettivi prefissati), sia di collaborare con i colleghi, durante lavori di grosso spessore. Per queste ragioni penso di aver acquisito buone competenze organizzative. |
| Capacità e competenze informatiche | - In possesso della patente Europea ECDL Ambito sistemistico Buona conoscenza : - Windows XP / Vista - Nagios Conoscenza base: - ubuntu 9.10 /10.04 / 10.10 - debian5.0 /6.0 - Slackware 13 - Gentoo 10 - RedHat - Hvr Linguaggi di Programmazione Conoscenza base: - Delphi - Java - C - Flash - Python - Django - Asp.net Buona conoscenza: - DataBase Relazionali: MySQL, SQL Server, Sqlite3, Interbase e Ingres - PHP - Javascript: buona conoscenza - Jquery - Linguaggi di markup orientati al web (Html, Xhtml, XML) - C# Ottima conoscenza: - OpenRoad |
| Interessi personali | Mi piace leggere, andare in montagna, arrampicare e “giocare” con il mondo Linux. Mi alleno 3 volte a settimana con una squadra di calcio locale e 4 volte a settimana mi alleno in palestra. Per il prossimo futuro ho intenzione di dedicarmi a qualche attività nel sociale (CRI o Soccorso alpino ). |
| Patente | Automobilistica (patente B) |
Partenza: Rifugio Spiado (ex rifugio spiado.. trovarlo l'è sta en mazal..)
Destinazione: Cima frate
Prima uscita solitaria (e za chi
).. la cosa più difficile è stata trovare il punto di partenza; il rifugio ormai è chiuso e non ci sono indicazioni per trovarlo. Chiedendo informazioni in giro ( ve risparmio chi mi ha dato informazioni.. robe brute ) sono riuscito a trovare questo "famoso" rifugio, lasciare la macchina e seguire il sentiero 365 fino a Malga Fierollo di sotto.
Una volta superata, si segue il sentiero 366 fino alla cima.. una tranquilla camminata se non fosse che l'ultima mezzora mi sono ritrovato in mezzo alla neve ( oviamente mola vist el calt che fa ) e arrivare in cima è stato faticoso.
Il rientro è stato il medesimo percorso dell'andata (visto i problemi di pubalgia
); l'alternativa è scendere dalla Forcella Fierosso con rientro da Malga Rava di Sopra.
Partenza: Malga Vallazza
Destinazione programmata: Cima Bocche
Arrivo ufficiale
: forcella juribrutto.
La partenza è stata difficile per via del freddo
; l'idea era quella di raggiungere Cima Bocche, poi a causa di vari "imprevisti"...
- la neve
- i segni poco visibili a causa della neve che hanno rallentato notevolmente l'andatura
- e diciamo la verità, la poca voglia di proseguire
.. ci siamo accasciati alla forcella juribrutto.
Il freddo pungende della mattina è ben presto diventato un "freddo gradevole" al sorgere del sole.. abbiamo visto più cervi (5) che persone umane (2) e la cosa non mi è dispiaciuta affatto..
Consiglio di portare le ciaspole.. cadere nella neve fino a sprofondare quasi alle palle, rotolare (ovviamente in maniche corte) per cercare di uscire dal buco ( con la morosa che anzichè aiutarvi vi piglia per il culo e ride a crepapelle), può essere piacevole ma non per tutti
DAIN PICOL
Una ferrata molto bella, esposta, panoramica, difficile. Non è lunghissima ma essendo parecchio esposta, è sconsigliata a chi soffre di vertiggini
!! Per gli amanti delle ferrate, ASSOLUTAMENTE da fare!
Tempi di percorrenza:
- 3.00 h solo ferrata. (Personalmente direi qualcosa in più).
MONTE CASALE
Questa è stata la mia prima ferrata (maggio 2010). Personalmente mi è piaciuta molto nonostante sia stata piuttosto sfiancante: lunga nel suo complesso e completamente (o quasi) esposta al sole.
Consigliata!!!
Tempi di percorrenza:
-4.00h ca. l'intera salita di cui 2.00h la sola ferrata.
-3.00h ca. la discesa
Example here
Compatibility:
-
- ![]()
This script is useful to "rotate" text/images; often it is useful at the side of the page to show news.
Project specifications:
- First of all, before to include the plugin, you have to include the Jquery library, downloadable here.
Firstly you have to include the library, and then the plugin; if you don't follow this order, the project doesn't work - The html has to be organized as follows:
- father DIV
- N son DIV
- You shouldn't use the "padding settings" on father or son div; it is better to insert any style in other external divs
Params of plugin:
- size (number of pixels expliciting the word 'px' --> '300px' )
- timeout(waiting time between son scrolls; integer)
- speed (news rotation speed -->'fast'/'medium'/'slow')
- direction (rotation direction --> 'up'/'down')
- onmouseover (stop in case of onmouseover --> 'stop'/'continue')
EXAMPLE OF HTML CODE:<div id ='generale'>
<div id ='son_one'> HTML CODE</div>
<div id ='son_two'> HTML CODE </div>
<div id ='son_three'> HTML CODE</div>
</div>
There has to be the parent tag (general) and the children have to be 'div' elements.
If you only want to scroll some pictures, the height of the images has to be equal, otherwise the excess will be invisible.
CALLING EXAMPLE:$(document).ready(function(){
$("#generale").ScrollNews({
inizialize : 'true',
size : '130px',
timeout : 2500,
speed : 'fast',
direction : 'down',
onmouseover : 'stop'
});
});
Here are links for downloading the plugin both extended form and reduced form:
Version 1.0
In data 23 maggio 2011 è ripresa la collaborazione con
INTERPROMOTION - agenzia publicitaria http://www.interpromotion.com/.
In uno dei tanti siti dell'agenzia, c'era la necessità di gestire il carrello elettronico; per fare ciò si è utlizzata la libreria Jcart.
La prima richiesta è stata quella di gestire il multilingua del carrello elettronico: richiesta completata in tempi brevi.
E' stata inoltre modificata la classe in Jcart in modo che gestisca l'aggiunta delle spese di spedizione!
Esempio qui.. per un esempio super completo (crea dinamicamente un intera pagina web) cliccate qui
Compatibilità:
-
- ![]()
In collaborazione con Paolo Andreatta aka "pandreat"
Questo plug-in crea un effetto di scrittura del testo come se fosse digitato a macchina da scrivere; la caratteristica sostanziale è la TOTALE gestione del codice xhtml.
Specifiche di progetto:
- Prima di includere il plugin, va inclusa la libreria Jquery, scaricabile qui.
Prima di tutte va inclusa la libreria e poi il plugin, invertendo la chiamata ai due '.js', non funziona il tutto - E' consigliabile utilizzare il plugin su un elemento "div"
Parametri passabiti al Plugin:
- speed ( Velocità di stampa di ogni singola lettere --> 'Slow'/'Medium'/'Fast' )
- wait_time (tempo di attesa prima che parta lo script --> numero intero)
- html_text (testo html;nel caso in cui non sia settato , il testo utilizzato sarà quello contenuto all'interno dell'elemento)
NB: il codice XHTML deve essere del codice XHTML VALIDO
ESEMPIO DI CODICE HTML:
<div id ='generale'>
</div>
ESEMPIO DI CHIAMATA:
$(document).ready(function(){
$("#generale").TypeHtml({
speed : 'fast',
wait_time : 2000,
html_text: 'Nicola <b> Ferrari < /b>' /* se non settato prende tutto l'html
contenuto nel div "generale"*/
});
});
Ecco i link per scaricare il plugin in forma ridotta:
Versione 1.0

Un pescatore torna a casa con la sua piroga e incontra un economista, un esperto che opera nel mondo degli affari. L’esperto gli chiede come mai è rientrato così presto.
Il pescatore risponde che avrebbe potuto trattenersi più a lungo, ma che aveva pescato quanto bastava per provvedere alla famiglia.
“Mi dica un po’, come impiega il suo tempo?”, chiede l’esperto.
Il pescatore risponde: “Beh, vado un po’ a pesca. Gioco con i miei figli. Ci facciamo tutti un riposino pomeridiano quando fa caldo. La sera ceniamo insieme. Più tardi mi godo un po’ di musica con gli amici, ecc”.
L’esperto lo interrompe: “Senta, ho una laurea e ho studiato queste cose. Vorrei aiutarla. Dovrebbe trascorrere più tempo a pescare. Guadagnerebbe di più e in poco tempo sarebbe in grado di acquistare una barca più grande di questa piroga. Con una barca più grande guadagnerebbe ancora di più e presto potrebbe avere una flottiglia di motopescherecci”.
“E poi?”, domanda il pescatore.
“Poi, invece di vendere il pesce a un intermediario, potrebbe trattare direttamente con lo stabilimento che lo lavora o addirittura mettere su un’industria di prodotti ittici. Potrebbe lasciare il villaggio e trasferirsi a Cotonou, a Parigi o a New York, e dirigere l’azienda da lì. Potrebbe perfino valutare la possibilità di quotare le sue azioni in borsa e diventare miliardario”.
“Quanto tempo richiederebbe tutto questo?”, chiede il pescatore.
“Più o meno dai 15 ai 20 anni”, risponde l’esperto.
“E poi?”, continua il pescatore.
“È a questo punto che la vita si fa interessante”, spiega l’esperto. “Poi potrebbe andare in pensione. Potrebbe lasciarsi alle spalle il trambusto della città e ritirarsi in qualche villaggio sperduto”.
“E poi?”, chiede il pescatore.
“Poi avrebbe il tempo di andare un po’ a pesca, di giocare con i figli, di farsi un riposino pomeridiano quando fa caldo, di cenare con la famiglia e di godersi un po’ di musica con gli amici”...........
Se anche voi come me avete un Router della Linksys modello AG241V2 ( vedi la figura), sappiate che per default non si riesce a connettersi tramite telnet: il servizio è disponibile ma non attivo.
Per risolvere il problema bisogna aggiornare il firmware del router.
Collegandovi a questo sito e indicando la versione del vostro router, potete scaricare il file .bin utilizzato per aggiornare il proprio firmware.
Un volta aggiornato il firmware sarà possibile collegarvi al router attraverso telnet
.
So che è solo complicarsi la vita non utilizzare il browser per gestire il proprio router, ma se, come nel mio caso, volete gestirlo tramite python, telnet è una possibilità.
Non possono non segnalare questo simpato link.. 
The Evolution of a Python Programmer
Erano ormai mesi e mesi che non mi concedevo un paio d'ore di svago davanti a Python; finalmente dopo un lungo periodo di completo digiuno da Python, sono riuscito a riprenderlo in mano. Destino volle che il giorno stesso in cui mi misi nuovamente a giocare con Python, lo staff di ThinkCode.TV decise di fare una superofferta nel suo corso di Python a cura di "Marco Beri" (no, non quello delle iene ;)).. decisi quindi di prendere il corso ed iniziare da capo Python.. Che dire.. non mi ricordavo fosse così efficiente e così divertente programmare in Python; dopo alcune ore di studio "full immersion", ripresi in mano una mia vecchia passione: "Project Euler". Ordinando i problemi in ordine di difficoltà mi ritrovai ad affrontare il problema numero 53, il cui enunciato diceva:
There are exactly ten ways of selecting three from five, 12345:
123, 124, 125, 134, 135, 145, 234, 235, 245, and 345
In combinatorics, we use the notation, 5C3 = 10.
In general,
| nCr = |
n!
r!(n |
,where r |
It is not until n = 23, that a value exceeds one-million: 23C10 = 1144066.
How many, not necessarily distinct, values of nCr, for 1
n
100, are greater than one-million?
Il problema non mi sembrava difficile, ma pensavo (sbagliandomi) :"Dubito che facendo due cicli for, possa risolvermi velocemente il tutto! Vabbè proviamo..."
import math
numero_elementi=0
for n in range(1,101):
for r in range(1,n+1):
if math.factorial(n) / (math.factorial(r) * math.factorial(n-r)) > 1000000:
numero_elementi+=1
print "Numero elementi trovati:" , numero_elementi
Il tutto funzionava e la risoluzione impiegava pochissimo..decisi di provare a ridurre ulteriormente la mia riga di codice e mi ritrovai ad una soluzione di un unica riga..
print sum(1 for n in range(1, 101) for r in range(1, n+1) if math.factorial(n) / (math.factorial(r) * math.factorial(n-r)) > 1000000)Questo Python è davvero COOL

Nicola Ferrari - Curriculum Vitae
Dati Personali
-------------------------------------------------------------------------
Nato a Trento(TN) il 22.06.1987
Email: nick.ferro at gmail.com
Sito Web: nicolaferrari.name
Recapiti
Telefono: +39 3487234990
Residenza: Via Vigolana 7 – 38057 Pergine Valsugana (TN)
Studi e Formazioni
-------------------------------------------------------------------------
Sto partecipando al corso "Corso Shell 2011" organizzato da LinuxTrent per approfondire gli argomenti riguardanti la linea di comando nel mondo Linux e la Shell.
Ho partecipato al corso "SysAdmin 2011" organizzato da LinuxTrent; gli argomenti trattati sono stati: San-Nas, Proxmox, KVM, Shorewall, WiiLD, i server di posta, i backup, samba
Dal 15 giugno 2009 al 19 giugno 2009 ho frequentato il corso "OPROAD: OpenRoad Application Development and Maintenance" organizzato da INGRES.
Nell’anno accademico 2005/2006 mi sono diplomato come Perito Informatico presso l’Istituto “Marie Curie” di Pergine Valsugana con valutazione 82/100.
LINGUE
Italiano: madrelingua
Inglese: buona conoscenza
Esperienze professionali
-------------------------------------------------------------------------
Programmatore di software bancario
Dall’11 febbraio 2008 lavoro presso Banca Ifis come programmatore di software bancario. La mansione principale consiste nello sviluppo/mantenimento di applicazioni bancarie tramite il linguaggio di programmazione OpenRoad (Ingres), nella creazione di script per calcoli statistici e nella creazione di stampe tramite il software Print2000.
Progettazione di siti e applicazione Web
Nel periodo di luglio 2010 ho collaborato con Interpromotion – agenzia pubblicitaria, per lo sviluppo di script Javascript e la personalizzazione di un plugin Jquery.
Da settembre 2006 a febbraio 2008 ho lavorato presso Rievoluzione.it srl. Il compito principale era lo sviluppo di applicazioni web dinamiche. Saltuariamente capitava di sviluppare (tramite c#) dei software per sincronizzare database locali con data base remoti.
Progetto Deadalus
Durante l’anno accademico 2003/2004 ho partecipato al progetto Deadalus, lavorando per un mese al Comune di Pergine Valsugana (ufficio edilizia abitativa)
Commesso
Durante la stagione estiva 2005 ho lavorato per 4 mesi presso il Poli regina di Pergine Valsugana come addetto alle vendite.
Conoscenze informatiche
-------------------------------------------------------------------------
- In possesso della patente europea ECDL
- Conoscenza del S.O. Windows XP / Vista
- Conoscenza (base) del S.O Ubuntu 9.10 /10.04 / 10.10
- Conoscenza (base) del S.O Debian 5.0 /6.0
- Installazione e piccolo utilizzo dei S.O Slackware 13 e Gentoo 10.
Linguaggi di Programmazione
- Delphi: conoscenza scolastica; affrontato per 3 anni a scuola, ma mai applicato in ambito lavorativo
- Java :conoscenza scolastica; affrontato per 2 anni a scuola, mai applicato in ambito lavorativo
- DataBase Relazionali: ottime conoscenze, che comprendono il linguaggio SQL standard; in particolare per ciò che
riguarda i DBMS MySQL, SQL Server, Sqlite3, Interbase e Ingres
- C : conoscenza scolastica; affrontato un solo anno, mai applicato in ambito lavorativo
- PHP : buona conoscenza anche in applicazioni web sofisticate
- Javascript: buona conoscenza , con una particolare attenzione alle tecniche di programmazione
ajax, ed esperienza di interazione con le API di google; buona conoscenza di Jquery (sviluppo di alcuni plugin)
- Linguaggi di markup orientati al web (Html, Xhtml, XML): buona conoscenza
- Flash:conoscenza maturata con l'esperienza personale e applicata in ambito lavorativo.
- C# : sviluppo e progettazione autonoma di alcune applicazioni di livello non avanzato.
Mantenimento di Webservices per applicazioni bancarie
- Asp.Net: svilupo di applicazioni di piccole dimensioni e media difficoltà
- OpenRoad: ottima conoscenza; principale software utilizzato per lo sviluppo del software bancario.
- Python: conoscenza base
- Django: conoscenza base (il mio sito web è sviluppato in Django)
- Nagios: buona conoscenza
Principali Software
- Print2000 : software per la realizzazione di stampe mediante regole ed eventi definiti dal programmatore
- WebSphere MQ: conoscenza base
- Putty
- Fotoritocco utilizzando Photoshop
- Macromedia (Dreamweaver )
- VmWare per la creazione e l'utilizzo di macchine virtuali
Pubblicazioni
-------------------------------------------------------------------------
Alcuni miei plugin Jquery sono stati publicati sul sito di Html.it :
- Plugin ScrollNews
- Plugin OptimalFade
- Plugin TypeHtml
In data 3 luglio 2010 ho collaborato con
INTERPROMOTION - agenzia publicitaria http://www.interpromotion.com/:
mi è stato richiesto di realizzare un piccolo script Javascript per la personalizzazione del plugin "Accordion" di Jquery.
Il "compito" è stato svolto in tempi brevi e con il risultato sperato.
Lo script verrà utilizzato in uno dei tanti siti dell'agenzia.
In data 19 luglio 2010 ho collaborato
INTERPROMOTION - agenzia publicitaria http://www.interpromotion.com/:
il compito richiesto dall'agenzia era quello di gestire la localizzazione su mappa (mappe di google) di "n" alberghi, e implementare la possibilità di calcolare il percorso per raggiungere tale albergo.
Per far cio' sono stati utilizzati dei plugin Jquery.. è stato necessario andare a personalizzare uno di questi plugin per poter gestire i "marker personalizzati" sulle mappe di google.
Pensavo non fosse possibile ma anche il mio sitarello è stato preso di mira dagli spammer..
Qualche giorno fa mi sono trovato oltre 700 commenti contenenti spam.. 
e ho dovuto "bloccare" la possibilità di commentare le news onde evitare di trovarmi in pochi giorni il db pieno!!! 
Appena avrò un po' di tempo cercherò di inserire il "Captcha" e ripristinare il tutto!!!!
Esempio qui
Compatibilità:
-
- ![]()
Anzichè "lavorare" sull'html, questo plugin andrà a creare l'html.
A differenza di molti Fade che si trovano per il web, che caricano tutto l'html ( e quindi deve 'scaricare' tutte le immagini all'avvio della pagina), il mio plugin le scaricherà una alla volta, quando cioè è il turno di effettuare il fade su quell'immagine.
In tal modo quando il fade verrà effettuato per molte immagini, le prestazioni miglioreranno notevolmente
Specifiche di progetto:
- Prima di includere il plugin, va inclusa la libreria Jquery, scaricabile qui.
Prima di tutte va inclusa la libreria e poi il plugin, invertendo la chiamata ai due '.js', non funziona il tutto - Il codice HTML è molto semplice: deve essere un semplice div nel quale verranno sucessivamente inserite le immagini..
E' preferibile indicare la dimensione di tale div.
Parametri passabiti al Plugin:
- array_image ( array contenente le immagini che dovranno effettuare il fade)
Le immagini dovranno includere il percorso completo - width (indica la lunghezza dell'immagine; è obbligatoria per il corretto funzionamento; numero intero)
- height(indica l' altezza dell'immagine; è obbligatoria per il corretto funzionamento; numero intero)
- fade_intervall(indica il tempo di attesa tra l'incremento e il decremento dell'opacità dell'immagine; slow/medium/fast )
- fade_step (indica di quanto deve essere incrementata o decrementata l'opacità di ogni immagine ; slow/medium/fast )
- pause_change ( indica il tempo di attesa tra il fade di un immagine e quella sucessiva; slow/medium/fast )
ESEMPIO DI CODICE HTML:
<div id ='generale' style='margin-left:30px; height:200px'>
</div>
ESEMPIO DI CHIAMATA:
$(document).ready(function(){
var array_immagini = new Array();
array_immagini[0]="image/1.jpg";
array_immagini[1]="image/2.jpg";
array_immagini[2]="image/3.jpg";
array_immagini[3]="image/4.jpg";
$("#fade_uno").OptimalFadeImage({
array_image : array_immagini,
width : 150,
height : 124,
fade_intervall : 'medium',
fade_step : 'fast',
pause_change : 'slow'
});
});
Ecco i link per scaricare il plugin in forma ridotta:
Versione 1.0
Ecco qua con il mio primo vero post.. e come non poteva riguardare una delle mie ultime passioni.. PYTHON. 
Partiamo quindi con il problema 5.. parto dal 5 in quanto i problemi 1-2-3 sono già stati affrontati su stacktrace.it, e il 4 non mi ha dato nulla di "nuovo"..
Ma partiamo dall'enunciato:
2520 è il più piccolo numero che può essere diviso da tutti i numeri da 1 a 10, senza alcun resto.
Qual'è il più piccolo numero che è divisibile allo stesso modo da tutti i numeri da 1 a 20?
Prendendo spunto dall'articolo di Daniele riguardande il Problema3, ho voluto anch'io entrare nello specifico del mio problema.
Come si può subito capire facilmente dall'enunciato, la soluzione si può trovare calcolando il Minimo Comune Multiplo dei numeri che vanno da 1 a 20. Ma come si calcola?
Il Minimo Comune Multiplo(mcm)
Da Wikipedia, l'enciclopedia libera.
In matematica il minimo comune multiplo (mcm) di due interi a e b è il più piccolo intero positivo che è multiplo sia di a che di b.
Se non esiste un intero positivo con queste proprietà, cioè se a = 0 o b = 0, allora mcm(a, b) è definito uguale a zero.
l minimo comune multiplo è uno strumento utile per determinare la somma o sottrazione di due frazioni: in questo caso il denominatore della frazione risultante è il minimo comune multiplo delle due date. Ad esempio, nella somma
il denominatore è mcm(21, 6) = 42.
Se a e b non sono entrambi nulli, il minimo comune multiplo può essere calcolato usando il massimo comun divisore (MCD) di a e b e la formula seguente:
Quindi, l'algoritmo di Euclide per il MCD fornisce anche un veloce algoritmo per il calcolo del mcm. Ritornando all'esempio precedente,
Poiché (ab)/c = a(b/c) = (a/c)b, è possibile calcolare il mcm usando la formula precedente in modo più efficiente, dapprima utilizzando il fatto che b/c o a/c sono più semplici da calcolare rispetto al divisione tra il prodotto ab e c: il fatto che c sia multiplo sia di a che di b consente di semplificare completamente il fattore c dalla frazione a/c oppure da b/c, prima di effettuare il prodotto ab.
La formula
è adeguata per calcolare il mcm per piccoli numeri.
Allora il mcm si può calcolare o così:
oppure così:
Ma.. cosa è MCD(Massimo Comune Divisore)??
Il Massimo Comune Divisore(MCD)
Da Wikipedia, l'enciclopedia libera.
In matematica, il massimo comune divisore (M.C.D.) di due numeri interi, che non siano entrambi uguali a zero, è il numero naturale più grande per il quale possono entrambi essere divisi.
Il massimo comun divisore tra i due numeri a e b viene indicato con MCD(a, b), o più semplicemente (a, b). Ad esempio, MCD(12, 18) = 6, MCD(−4, 14) = 2 e MCD(5, 0) = 5.
Due numeri si dicono coprimi o primi tra loro se il loro massimo comun divisore è uguale a 1. Per esempio, i numeri 9 e 28 sono primi tra loro (ma non sono primi).
Il massimo comun divisore è utile per ridurre una frazione ai minimi termini. Per esempio nella seguente frazione:
è stato semplificato il fattore 14, il massimo comun divisore tra 42 e 56.
Il massimo comune divisore può essere calcolato, in linea di principio, determinando la scomposizione in fattori primi dei due numeri dati e moltiplicando i fattori comuni, considerati una sola volta con il loro minimo esponente. Per esempio, per calcolare il MCD(18,84) si scompongono dapprima i due numeri in fattori primi, ottenendo 18 = 2·32 e 84 = 22·3·7, e poi si considerano i fattori comuni ai due numeri, 2 e 3: entrambi compaiono con esponente minimo uguale a 1, e quindi si ottiene che MCD(18,84)=6. Non trovando fattori primi comuni, il MCD è 1, così ad esempio MCD(242,375)=1.
Questo metodo è utilizzabile, nella pratica, solo per numeri molto piccoli: la scomposizione in fattori primi di un numero richiede in generale troppo tempo.
Un metodo molto più efficiente è fornito dall'algoritmo di Euclide: si divide 84 per 18 ottenendo un quoziente di 4 e un resto di 12. Poi si divide 18 per 12 ottenendo un quoziente di 1 e un resto di 6. Infine si divide 12 per 6 ottenendo un resto di 0, il che significa che 6 è il massimo comun divisore.
Detto ciò.. andiamo a vedere un po' di codice 
Iniziamo, utilizzando l'algoritmo di Euclide, a creare la funzione per calcolare il MCD:
def mcd(a, b):
if b == 0:return a
return mcd(b, a % b)
Ed infine, definiziamo la funzione per calcolare il mcm (usando la formula "migliorata" citata sopra):
def mcm(a,b):
return (a*(b/mcd(a,b)))
Ora abbiamo tutto per risolvere il nostro problema..
Mah.. noi abbiamo 20 numeri e non 2 (come la nostra funzione).. come facciamo?
Semplice.. useremo il calcolo mcm tra due numeri (esempio 1 e 2) come input da passare alla nostra funzione mcm 
tmp = 1
for i in range(2,20):
tmp=mcm(i, tmp)
print tmp
Ho provato a testare il tempo di risoluzione del nostro script, utilizzando la funzione time di Unix..
Ecco il risultato:
real 0m0.033s
user 0m0.008s
sys 0m0.020s
Direi un tempo accettabile.. no?? 

Si accettano comunque idee per migliorarlo ulteriormente 
Esempio qui
Compatibilità:
-
- ![]()
Script utilizzato per far "ruotare" dei testi; spesso usato a lato pagina per far "ruotare" delle news.
Specifiche di progetto:
- Prima di includere il plugin, va inclusa la libreria Jquery, scaricabile qui.
Prima di tutte va inclusa la libreria e poi il plugin, invertendo la chiamata ai due '.js', non funziona il tutto - Il codice dovrà essere organizzato come segue:
- DIV padre
- N DIV figli
- E' sconsigliato apportare dei padding sui div figli o padre; è preferibile inserire eventuali stile su un altro elemento esterno
Parametri passabiti al Plugin:
- size (numero di pixel esplicitando la parola 'px' --> '300px' )
- timeout(tempo di attesa tra lo scroll di un figlio e l'altro; numero intero)
- speed (velocità di spostamento delle news -->'fast'/'medium'/'slow')
- direction (direzione spostamento --> 'up'/'down')
- onmouseover (stop in caso di onmouseover --> 'stop' /'continue')
ESEMPIO DI CODICE HTML:
<div id ='generale'>
<div id ='figlio_uno'> CODICE HTML </div>
<div id ='figlio_due'> CODICE HTML </div>
<div id ='figlio_tre'> CODICE HTML </div>
</div>
E' necessario che ci sia il tag padre(generale) e che i figli siano degli elementi 'div'.
Nel caso in cui vogliate scrollare solo delle immagini, le immagini dovranno avere stessa altezza altrimenti la parte in eccesso verrà resa invisibile.
ESEMPIO DI CHIAMATA:
$(document).ready(function(){
$("#generale").ScrollNews({
inizialize : 'true',
size : '130px',
timeout : 2500,
speed : 'fast',
direction : 'down',
onmouseover : 'stop'
});
});
Ecco i link per scaricare il plugin sia in forma estesa che in forma ridotta:
Versione 1.0
Esempio qui
Compatibilità:
-
- ![]()
Plugin per includere una serie di miniature, e relativo riquadro di riproduzione, dei video di youtube che si vogliono aggiungere nella propria pagina.
Specifiche di progetto:
- Prima di includere il plugin, va inclusa la libreria Jquery, scaricabile qui.
Prima di tutte va inclusa la libreria e poi il plugin, invertendo la chiamata ai due '.js', non funziona il tutto - E' consigliabile utilizzare il plugin su un elemento "div"
Parametri passabiti al Plugin:
- array_video_big ( array di link contenente gli indirizzi dei video di youtube )
- array_video_small ( array di immagini contenente le small dei video di youtube )
- colore ( indica il colore di contorno della barra di
scorrimento del video ) --> 'FF0000' - coloredue ( indica il colore di riempimento della barra di
scorrimento del video ) --> 'FF0000' - position_big ( posizione delle immagini small ) --> 'up' / 'down' )
ESEMPIO DI CODICE HTML:
<div id ='generale'>
</div>
ESEMPIO DI CHIAMATA:
$(document).ready(function(){
var array_videoBig = new Array();
array_videoBig[0] = 'http://it.youtube.com/watch?v=8RJmnMghtOc';
array_videoBig[1] = 'http://it.youtube.com/watch?v=JXYBRBrQHfE';
array_videoBig[2] = 'http://it.youtube.com/watch?v=JM7LF1iKBio';
array_videoBig[3] = 'http://it.youtube.com/watch?v=g0JlEbgJf8o';
var array_video_small = new Array();
array_video_small[0] = 'http://i1.ytimg.com/vi/8RJmnMghtOc/default.jpg';
array_video_small[1] = 'http://i3.ytimg.com/vi/JXYBRBrQHfE/default.jpg';
array_video_small[2] = 'http://i3.ytimg.com/vi/JM7LF1iKBio/default.jpg';
array_video_small[3] = 'http://i4.ytimg.com/vi/g0JlEbgJf8o/default.jpg';
$("#generale").GestYoutube({
array_video_big : array_videoBig,
array_video_small : array_video_small,
colore: 'FF0000'
coloredue: '00FF00'
position_big: 'up'
});
});
DOVE PRELEVARE I LINK e IMMAGINI:
Andate sul sito di youtube, cercate il video che state cercando, fate tasto destro sull'immagine piccola (come nell'immagine), proprietà e copiatevi l'URL (questo sarà l'indirizzo dell'immagine small del vostro video) .


Sucessivamente selezionate il video e in alto a destra, prelevate il link del video.

Ecco i link per scaricare il plugin in forma ridotta:
Versione 1.0
Finalmente sono online con il mio nuovo sito, scritto completamente in Django!
Come primo post, voglio citare un articolo scritto da Marco Beri su sito Stack Trace!
La dipendenza dei geek
di
Uno degli aspetti che contraddistinguono un geek è la capacità innata di dedicarsi ai problemi che lo appassionano (ricordate l’etimologia del suo nome?). Qualcuno lo potrebbe definire tempo perso, ma se pensiamo che spesso si impara qualcosa e contemporaneamente ci si diverte, la realtà è che si tratta di tempo speso benissimo.
Da quando il nostro direttore, Antonio Cangiano, ha pubblicato il bell’articolo sul progetto Eulero, molti geek — compreso chi scrive — stanno avendo diversi problemi nella gestione dei rapporti con le rispettive famiglie. Abbiamo informazioni certe di qualcuno che, invitato al cenone di Natale a casa dei genitori e approfittando di un momento di stanca tra una portata e l’altra, è volato al computer del padre, ha scaricato e installato Python e ha risolto un paio di problemi al volo.
Se vi appassionate alle sfide matematiche, geometriche, topologiche e vi piace programmare, fate molta attenzione e pensateci due volte prima di visitare il sito del progetto Eulero.
Detto ciò, se posso darvi un consiglio (che tempo fa mi era stato dato da Marco
), non iniziate con il progetto Eulero.. 
geek avvisato..........


































































































































































