Quantcast
Channel: Home Page http://blogs.dotnethell.it
Viewing all 24464 articles
Browse latest View live

Giovedi' 12 Settembre 2013 Santissimo Nome Di Maria


I prestiti personali

$
0
0
Ottenere una somma di denaro anche in modo veloce è possibile grazie ai prestiti personali. Ricorrere a un prestito personale è facile e a volte richiedere un preventivo via internet è gratuito, senza impegno. Bisogna però ricordare di avere delle garanzie da fornire richieste dalla banca o dall'istituto di credito; ma in caso non si disponesse di garanzie di restituzione, va bene anche un tipo di garanzia alternativa da concoradare al momento della domanda del finanziamento.

Autovelox

$
0
0
Evidenzio un'interessante sentenza, emessa dal Tribunale di Piacenza in materia di circolazione stradale, riguardante l'obbligo alla preventiva segnalazione dell’apparecchio di rilevamento della velocità (resa obbligatoria, dall’art. 3 del d.l. n. 117 del 2007, conv. nella l. n. 160 del 2007, per tutti i tipi e modalità di controllo effettuati con apparecchi fissi o mobili installati sulla sede stradale).

Secondo il giudice, in ossequio ai principi di tutela del buon andamento, efficienza, efficacia ed imparzialità dell’azione amministrativa, l' amministrazione procedente ha l'onere di predisporre e/o indicare, nei moduli di contestazione alle infrazioni al CdS, espressamente la presenza o meno di segnaletica mobile, lungo il tratto di strada oggetto di controllo, in virtù del disposto dell'art. 142 C.d.S.. ( comma 6 bis: "Le postazioni di controllo sulla rete stradale per il rilevamento della velocità devono essere preventivamente segnalate e ben visibili, ricorrendo all’impiego di cartelli o di dispositivi di segnalazione luminosi, conformemente alle norme stabilite nel regolamento di esecuzione del presente codice. Le modalità di impiego sono stabilite con decreto del Ministro dei trasporti, di concerto con il Ministro dell’interno.")

Ne consegue che il verbale mancante dell'espressa indicazione della presenza di apparecchiature fisse o mobili per il rilevamento della velocitàè illegittimo.

Nel caso al vaglio del giudice, il modulo notificato, e prodotto in atti, non recava alcuna indicazione circa la presenza o meno di autovelox, e ciò in aperta violazione dell’art. 142 C.d.S., inficiando, altresì, l'atto anche sotto il profilo del vizio di motivazione.

Tribunale di Piacenza

Sentenza 8 giugno 2013

n. 4356/2008 RG

La presente sentenza viene redatta secondo le indicazioni dettate dagli art.li 132 cpc e 118 disp. att. c.p.c.

1. L’appellante impugna la sentenza n. 792/08 con cui il Giudice di Pace di Piacenza ha respinto il ricorso proposto dall’odierno appellante avverso il verbale n. 804A/2007 notificatogli dalla Polizia Municipale dell’ Unione dei Comuni Bassa Val Trebbia e Val Luretta con il quale gli si contestava la violazione dell’art. 142.8 C.d.S. asseritamente avvenuta in località Gragnano (PC) in data 13.09.2007.

La sentenza resa dal giudice di prime cure viene censurata in quanto ingiusta ed iniqua ed in particolare per aver il G.d.P. attribuito fede privilegiata alle dichiarazioni dell’agente di p.g. verbalizzante, escusso in dibattimento sulle circostanze dell’infrazione contestata ed in specie sulla presenza o meno della segnaletica mobile; ciò sotto il profilo formale. Sotto il profilo sostanziale, i motivi d’appello – che ripercorrono le doglianze già svolte in prime cure – evidenziano come l’iter logico seguito da quel decidente appaia inficiato da un tendenziale favor per l’ Amministrazione appellata, “parte privilegiata”.

L’appellante chiede conseguentemente, in riforma della pronuncia di primo grado, annullarsi con qualsiasi formula il verbale de quo.

Resiste l’amministrazione appellata contestando tutto quanto ex adverso dedotto ed eccepito ed insistendo per il rigetto del gravame.

2. L’appello è fondato e merita accoglimento.

Anche in ragione della data della pretesa infrazione (13.09.2007) può rammentarsi l’arresto della Giurisprudenza di legittimità, secondo cui l’obbligo della preventiva segnalazione dell’apparecchio di rilevamento della velocità previsto, in un primo momento, dall’art. 4 del d.l. n. 121 del 2002, conv. nella legge n. 168 del 2002, per i soli dispositivi di controllo remoto senza la presenza diretta dell’operatore di polizia, menzionati nell’art. 201, comma 1- bis, lett. f), del codice della strada, è stato successivamente esteso, con l’entrata in vigore dell’art. 3 del d.l. n. 117 del 2007, conv. nella l. n. 160 del 2007, a tutti i tipi e modalità di controllo effettuati con apparecchi fissi o mobili installati sulla sede stradale, nei quali, perciò, si ricomprendono ora anche gli apparecchi telelaser gestiti direttamente e nella disponibilità degli organi di polizia (così Cass. 656/2010; Cass. 13727/2011). L’obbligo di segnalazione, pertanto, sussisteva.

Evidenti ragioni di tutela del buon andamento, efficienza, efficacia ed imparzialità dell’azione amministrativa implicano in capo alla amministrazione procedente un correlativo onere di documentazione dell’ adempimento di tale obbligo; ed invero funzionale proprio all’attuazione di tali principi deve intendersi la predisposizione, da parte dell’Amministrazione, di appositi moduli prestampati da compilarsi in occasione della contestazione delle infrazioni; moduli che, pertanto, dovrebbero recare espressa menzione della presenza o dell’assenza di segnaletica mobile.

Nel caso di specie, viceversa, il modulo notificato, e prodotto in atti, non reca alcuna indicazione sul punto, neanche per implicito o per relationem. Palese è dunque l’inosservanza del disposto dell’art. 142 C.d.S., che assume rilevanza anche sotto il diverso e connesso profilo del vizio di motivazione dell’atto, contrariamente a quanto ritenuto dalla sentenza appellata.

Per costante ed assolutamente consolidata giurisprudenza il verbale di accertamento, in quanto redatto dal pubblico ufficiale nell’esercizio delle sue funzioni, fa piena prova fino a querela di falso (cfr. da ultimo Cass. 15966/2012). Tanta e tale è l’ efficacia probatoria riconosciuta a tale documento da precludere al giudice ogni sindacato di merito su fatti e circostanze ivi riportate: il costante, se non ossessivo, riferimento della giurisprudenza in materia alla necessità di precludere al giudice ogni valutazione sulle modalità dell’accertamento (dispiegamento di uomini e mezzi, individuazione della sede stradale o della porzione di questa da sottoporre a controllo, individuazione del luogo ove posizionare l’apparecchiatura; in terminis da ultimo Sez. Un. 3936/2012) ben può ritenersi fondato, oltre che sul principio di salvaguardia della discrezionalità della pubblica amministrazione, anche sul rilievo, di ordine processuale e sostanziale, della impossibilità di spingere l’apprezzamento dei fatti di causa al di là di quanto risulti da un atto fidefaciente non ritualmente contestato. In altri termini, finché non sia proposta e definita la querela di falso, e non sia pertanto caducata, insieme con l’atto, la sua forza preclusiva di ogni contrario accertamento, non possono essere ammessi mezzi istruttori tesi a contrastare il contenuto dell’atto a fede privilegiata.

Ciòè invece esattamente quanto avvenuto nel caso di specie; non sfugge pertanto il rilievo, preliminare, della inammissibilità della prova orale articolata, dedotta ed illegittimamente ammessa ed esperita in primo grado.

3. Al vulnus dei principi regolatori della prova nel processo civile si affianca peraltro l’altrettanto grave lesione dei principi di buon andamento, efficienza, efficacia ed imparzialità dell’azione amministrativa. Se infatti l’atto pubblico, non impugnato con querela di falso, non essendo contestabile dalle parti, implica l’inammissibilità delle prove orali contrarie (ciò che vale peraltro in linea generale per ogni prova documentale), a fortiori non può essere oggetto di prova orale “integrativa”. Essa, logicamente unilaterale potendo provenire solo dalla stessa Amministrazione a mezzo del funzionario autore dell’atto, vale infatti a rimuovere ogni certezza sul contenuto dell’atto amministrativo, rendendone possibile la modifica in ogni tempo ed al di fuori dei modi e termini di legge, vanificando tanto il sistema delle impugnazioni quanto lo strumento dell’autotutela, e rimuovendo pertanto ogni garanzia del corretto operato della P.A.

Per le superiori considerazioni coglie nel segno la doglianza di parte appellante secondo cui l’illegittima ammissione della prova orale sia valsa ad attribuire alla P.A. la veste di “parte privilegiata”, riscontrando una posizione di supremazia solo apparentemente connessa all’esercizio di poteri autoritativi, ma in realtà contraria al corretto esercizio degli stessi; con ciò concedendo una posizione di favor priva di addentellati normativi.

4. Nel merito, ciò implica che il giudice di prime cure avrebbe dovuto attenersi alle risultanze dell’atto fidefaciente, così concludendo per l’ assenza sui luoghi dell’apparecchio di rilevamento della velocità. Ed invero, quand’anche l’omessa compilazione del verbale sul punto non fosse stata interpretabile quale omissione consapevole, e dunque quale espressa affermazione della inesistenza dell’apparecchio, legalità e correttezza della azione amministrativa avrebbero voluto l’annullamento in autotutela del verbale incompleto o inesatto, e la notifica di un nuovo emendato da tali vizi; certamente non la sua “informale” correzione, integrazione e specificazione a mezzo testimonianza e produzioni documentali integrative in corso di causa, che certamente non sarebbero state ammissibili per qualsiasi parte privata.

In assenza pertanto di risultanze formali contrarie – risultando quelle in atti irrituali e pertanto tamquam non essent – doveva allora e deve tuttora concludersi per l’inosservanza, da parte della P.A., dell’ obbligo di cui all'articolo 142 del decreto legislativo 30 aprile 1992, n. 285, così come successivamente modificato ed integrato; donde l’ illegittimità del verbale di contestazione impugnato.

Da tali rilievi, assorbenti ogni diverso ed ulteriore profilo, discende l’accoglimento dell’appello. Le spese seguono la soccombenza e vanno liquidate come in dispositivo, avuto riguardo alla natura della controversia, alla complessità delle questioni, alle modalità della loro trattazione, al valore assegnato, nonché alla determinazione del compenso professionale che, in forza del combinato disposto del D.M. 140/2012 e dell'art. 2233, comma 2, codice civile, deve essere in ogni caso adeguato all’ importanza dell’opera ed al decoro della professione.

P.Q.M.

Il Tribunale, definitivamente pronunciando, ogni altra istanza ed eccezione disattesa o assorbita, così dispone:

Accoglie l’appello; per l’effetto, a totale riforma della sentenza n. 792/08 emessa dal Giudice di Pace di Piacenza,

accerta e dichiara la nullitàdel verbale n. 804A/2007 per cui è causa, e per l’effetto

accerta e dichiara non dovute le somme recate dal predetto verbale;

accerta e dichiara non dovuta la decurtazione di n.5 punti dalla patente di guida dell’appellante;

Condanna l’appellata a rifondere all’appellante le somme eventualmente già corrisposte in esecuzione della pronuncia di primo grado;

Condanna l’appellata al riaccreditamento dei punti illegittimamente decurtati dalla patente di guida dell’appellante;

Condanna l’appellata a rifondere all’appellante le spese di lite di entrambi i gradi di giudizio che liquida in Euro 5.000,00 oltre IVA e accessori di legge.

Così deciso in Piacenza, 08 giugno 2013

Il Giudice (dott. Antonino Fazio)

Nuovi titoli FAG di metà 2013

$
0
0

Come al solito faccio ogni tanto, ritorno a parlare della FAG segnalando qualcuno dei suoi ultimi titoli.
È indubbiamente la casa editrice italiana più attiva nella pubblicazione di libri informatici.
Come sempre vengono spronati autori italiani, e questo è un bene in quanto il discorso è perfettamente calato nella nostra realtà, cosa impossibile da ottenersi nel caso di traduzioni da libri stranieri.
Per quanto riguarda il lato “programmazione”, sembra che abbia scelto con decisione la strada del “mobile”. Sono infatti sempre meno i testi di programmazione “enterprise” (ovvero C#, VB, SQL, ecc.), mentre aumentano quelli che riguardano le piattaforme mobili. È il trend del momento, non ci si può fare niente.

Inizio proprio con un titolo per sviluppatori “mobile”.

Sviluppare Applicazioni Per Windows Phone 8



Con questo tomo (sono oltre 650 pagine) la FAG ha raggiunto un obiettivo: realizzare forse il più completo libro su Windows Phone completamente Made in Italy (ovvero non frutto di traduzioni). L’autore, Matteo Pagani, è un esperto in materia, tra l’altro MVP per la categoria Windows Phone Development.
Visto che ora Microsoft ha assorbito la divisione smartphone della Nokia (praticamente tutta l’azienda), chi è interessato a crearsi un’opportunità professionale in questo settore, farà meglio a prendere seriamente in considerazione questo testo, che partendo dalle basi di Windows Phone, e presupponendo nel lettore solo delle basi di C#, arriva al traguardo di creare applicazioni professionali e (si spera) redditizie.
Chi volesse conoscere meglio questo autore, ecco il suo profilo su LinkedIn:
http://www.linkedin.com/in/matteopagani
mentre questo è il suo sito, molto ricco di informazioni sullo sviluppo con Windows Phone:
http://www.qmatteoq.com/blog

Sommario
13 – Prefazione
17 – Introduzione
25 – Cap. 1: Introduzione a Windows Phone
57 – Cap. 2: Iniziare a sviluppare per Windows Phone: Le basi di C# e XAML
107 – Cap. 3: I controlli di Windows Phone
159 – Cap. 4: I concetti chiave per sviluppare un’applicazione Windows Phone
191 – Cap. 5: Interagire con il mondo esterno
253 – Cap. 6: Interagire con il telefono
299 – Cap. 7: Interagire con il sistema operativo
377 – Cap. 8: Sviluppare applicazioni multimediali
413 – Cap. 9: Memorizzare e condividere dati
485 – Cap. 10: Il multitasking
513 – Cap. 11: Live App, Tile e Push Notification
553 – Cap. 12: Distribuire le applicazioni: Lo Store, la localizzazione e In-App Purchase
609 – Appendice: Approfondimenti
649 – Indice analitico

Qua sotto i dettagli del libro. Come si vede il prezzo è sostenuto (50€) ma è giustificato sia dalla quantità di materiale offerto, sia dalla sua qualità. In formato Kindle, su Amazon Italia, viene però offerto a 30 euro.
Di questo libro ne parla anche PC Professionale di questo mese (a pag. 166.)




Joomla – Guida alle estensioni



Le 280 pagine a colori di questo altro titolo sono il perfetto complemento per gli altri manuali su Joomla, il più diffuso CMS, pubblicati dalla FAG e scritti sempre da Alessandra Salvaggio.
Tratta, infatti, alcune (le più utili, perlomeno a detta dell’autrice) estensioni gratuite per arricchire di funzionalità i siti basati sulle ultime versioni di Joomla.
Dalla gestione delle immagini al download/upload di file, dalla creazione di form di inserimento dati alla creazione di community di utenti, più una manciata di altre piccole utility di vario utilizzo raccolte nell’ultimo capitolo del libro.
Un libro che, come si può intuire, rappresenta quel gradino in più per il miglior utilizzo di Joomla.

Sommario
7 – Introduzione
9 – Cap. 1: Phoca Gallery
53 – Cap. 2; Jdvthumbs
63 – Cap. 3: Chronoforms
93 – Cap. 4: Joomd
123 – Cap. 5: Remository
153 – Cap. 6: Kunena
205 – Cap. 7: Community Builder
255 – Cap. 8: Uddeim
273 – Cap. 9: Piccole estensioni di grande utilità
285 – Indice analitico

Qua sotto i dettagli del libro e uno screenshot di 2 pagine prese a caso.




Lavorare con PowerPoint 2013



Queste 230 pagine ben scritte dal prolifico Alessandro Valli costituiscono una più che buona occasione per alzare leggermente l’asticella passando dalla situazione di principiante su PowerPoint ultima versione alla non comune posizione di power user, particolarmente specializzato nell’inserzione di funzionalità multimediali.
Il tutto aiutato da tanto colore, specialmente arancione, procedure guidate e note a margine di approfondimento.
Il sesto e ultimo capitolo (pochi capitoli ma piuttosto lunghi) spiega persino come comportarsi durante la presentazione, e cosa è meglio fare affinché le proprie idee rimangano nella mente e nelle memoria dell’uditorio.
Interessanti le 2 brevi appendici – di 8 e 11 pagine – che spiegano come realizzare delle fiabe personalizzate e delle istruzioni di montaggio (mobili in particolare).

Sommario
7 – Introduzione
9 – Cap. 1: Il primo approccio
43 – Cap. 2: La struttura della presentazione
79 – Cap. 3: Multimedia
125 – Cap. 4: Grafica e SmartArt
173 – Cap. 5: Pubblicazione del lavoro
207 – Cap. 6: Tenere una presentazione
215 – Appendice A: Favole con PowerPoint
223 – Appendice B: Istruzioni di montaggio
235 – Indice analitico

Anche di questo libro riporto uno screenshot del suo interno, da cui si vede come il colore predominante sia l'arancione.





Programmare con javascript. Best practices



Queste 240 pagine, solo in bianco e nero (ma qua il colore non è indispensabile), non sono un manuale per chi desidera imparare a programmare in Javascript, ma si rivolgono a chi già conosce questo linguaggio e necessita di approfondire alcune tra le migliori best practices nella sua programmazione. 
I 4 autori italiani sono tutti esperti del settore, responsabili anche dei cosiddetti Javascript Day (jsday.it).
Dopo un’introduzione generale la cui lettura è consigliata a tutti, ci si addentra in argomenti molto più specifici, compresa la programmazione asincrona e le librerie Node.js e CoffeeScript, il cui uso richiede necessariamente un lettore competente.
Peccato manchi completamente un indice analitico.

Sommario
9 – Introduzione
11 – Gli autori
19 – Cap. 1: Javascript e la sua community
57 – Cap. 2: Programmazione asincrona in Javascript
109 – Cap. 3: Ottimizzazione del codice
133 – Cap. 4: Design pattern
155 – Cap. 5: Storage locali
177 – Cap. 6: Node.js
213 – Cap. 7: Coffeescript




Adobe Photoshop Lightroom 5 Guida All'uso




Luca Bertolli ha già pubblicato diversi libri con la FAG, quasi tutti per i prodotti Adobe.
In questo caso si dedica, con la consueta grande presenza di soggetti femminili, a Lightroom nella versione 5.
Sono pagine tutte a colori, con tantissime immagini, e rappresentano un libro utilissimo per i fotografi di ogni livello, dall’amatoriale al professionista.
Manca purtroppo un indice analitico.
Segnalo che versione ebook costa 12 euro in meno (da 32, per la versione cartacea, ai 19,99 per quella digitale).

Sommario
9 – Introduzione
11 – Cap.1: Requisiti, installazione ed aggiornamenti
23 – Cap. 2: L’ambiente di lavoro
43 – Cap. 3: Importazione delle foto
61 – Cap. 4: Gestione delle foto
105 – Cap. 5: Sviluppo digitale delle foto
141 – Cap. 6: Esportazione delle foto
167 – Cap. 7: Posizionare le foto su una mappa sfruttando le coordinate GPS
175 – Cap. 8: Creazione di libri fotografici
189 – Cap. 9: Presentazione del lavoro
207 – Cap. 10: Le funzioni di stampa
231 – Cap. 11: Gallerie Web
261 – Cap. 12: Integrazione con i social network
281 – Cap. 13: Integrazione con Photoshop CC



Infine un testo davvero particolare, non tecnico ma utilissimo per alcuni.
Ovvero come riuscire a catturare l’interesse degli ascoltatori quando si deve raccontare una storia, un processo o quant’altro.

Storytelling & Visual Design



Anche il formato di questo libro è originale. Lo si legge in maniera invertita, in cui la base è molto più lunga dell’altezza (a differenza dei libri tradizionali).
Questo è uno dei pochi titoli FAG non scritti da autori italiani. Si tratta infatti della traduzione del libro “Stories That Move Mountains” (Storie che muovono le montagne), scritto da 3 autori: Martin Sykes, Nicklas Malik e Mark Est, tutti di Microsoft Corporation. Il libro è edito dalla Wiley.
Per chi volesse leggere qualche recensione su Amazon USA (quasi tutte 5 stelle), questo è il link.

Le pagine sono poco sopra le 200, ma per come è realizzato graficamente, la lettura di questo testo richiederà un tempo non indifferente. 

Qua sotto 3 immagini dell’interno di questo libro. Tra l’altro, praticamente ogni pagina è diversa (come layout) da tutte le altre.






Come si vede un libro interessante da leggere come un romanzo (e a ciò aiutano le numerose immagini e disegni), anzi, come una storia, quella che andrebbe inventata per rendere le proprie presentazioni indimenticabili.

Sommario
2 – Cap. 1: Il potere delle storie
12 – Cap. 2: Cast e il potere delle mappe visuali
22 – Cap. 3: Usare Cast per raccontare storie
34 – Cap. 4: Perché
48 – Cap. 5: Cosa
62 – Cap. 6: Come
76 – Cap. 7: Se
92 – Cap. 8: Chi
108 – Cap. 9: Stili di apprendimento e decisionali
122 – Cap. 10: Struttura
148 – Cap. 11: Personaggi
164 – Cap. 12: Senso di urgenza
174 – Cap. 13: Il piano di esposizione
192 – Cap. 14: Design
222 – Cap. 15: Verifica
232 – Cap. 16: Esempio di Cast. In che modo un giorno può fare la differenza
242 – Cap. 17: Postfazione. Migliorare il proprio storytelling visuale
246 – Riferimenti bibliografici
252 – Indice analitico



Torno a sottolineare come la FAG dovrebbe cambiare rotta riguardo al layout e all’impaginazione dei suoi manuali. Il font è bruttissimo, il codice è scritto troppo piccolo e spesso male indentato, le rilegature (quasi sempre) eccessivamente rigide. Tra le case editrici di manuali informatici che conosco, come aspetti estetici si colloca all’ultimo posto a pari merito con la Packt, ma ben distante da case editrici con layout impeccabili, come la Wrox o la Wiley.

PS
Foto realizzate con Sony Xperia Ion.

VB.NET - Filtrare i Dati di un DataGridView e popolare un'altro DataGridView con i risultati (Codice

$
0
0

VB.NET - Filtrare i Dati di un DataGridView e popolare un'altro DataGridView con i risultati (Codice )





Oggi vi voglio mettere a disposizione una funzione che vi permette di popolare un'altra DataGridView e di inserire i risultati della ricerca senza modificare il DataGridView principale.

Il motivo di utilizzare tale funzione è perché non vogliamo usare database. Vi ricordo che fare le ricerche con il database sono più veloci che usare questa semplice funzione.

Esempio di come richiamare la funzione :
 

       CODICE VISUAL STUDIO 2010 - VISUAL BASIC .NET - VB.NET:
'FiltraTabella(search.Text, cmbCollon.Text, DataGridView1, DataGridView2)

FiltraTabella("Produt 1", "Product Name", DataGridView1, DataGridView2) 'Cerca nella colonna "Product Name" il valore "Product 1"
Codice del progetto , Ricordati di inserire due DataGridView , un TextBox e un ComboBox.

      CODICE VISUAL STUDIO 2010 - VISUAL BASIC .NET - VB.NET:
     Public Class Form1

Private Sub DataGridView1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseWheel
Dim currentIndex As Integer = Me.DataGridView1.FirstDisplayedScrollingRowIndex
Dim scrollLines As Integer = SystemInformation.MouseWheelScrollLines

Select Case e.Delta
Case 120 'Scrolling up
'We cannot scroll up past row 0.
Me.DataGridView1.FirstDisplayedScrollingRowIndex = Math.Max(0, currentIndex - scrollLines)
Case -120 'Scrolling down
Me.DataGridView1.FirstDisplayedScrollingRowIndex = currentIndex + scrollLines
End Select

''Happening when the User used the mouse wheel
'If e.Delta > 0 Then
' SendKeys.Send("{UP}") 'If the wheel is going up
'Else
' SendKeys.Send("{DOWN}") 'If the wheel is going down
'End If
End Sub

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
DataGridView1.ColumnCount = 3
DataGridView1.Columns(0).Name = "Product ID"
DataGridView1.Columns(1).Name = "Product Name"
DataGridView1.Columns(2).Name = "Product_Price"

For i As Integer = 1 To 100 Step 1
Dim row As String() = New String() {i, "Product "& i, "1000"}
DataGridView1.Rows.Add(row)
Next

For i As Integer = 1 To 5 Step 1
Dim row As String() = New String() {"5", "Product "& "5", "1005"}
DataGridView1.Rows.Add(row)
Next

CaricaComboBoxColonne(DataGridView1)
cmbCollon.Text = cmbCollon.Items(0).ToString
cmbCollon.DropDownStyle = ComboBoxStyle.DropDownList

End Sub
''' <summary>
''' FiltraTabella - Ottini i risultati nel nuovo DataGridView Passato
''' </summary>
''' <param name="Valore">Parola da cercare</param>
''' <param name="NomeColonna">Colonna da Cercare</param>
''' <param name="DataGridViewAnalizzer">DataGridView In - Che contiene il informazioni</param>
''' <param name="DataGridViewNew">DataGridView OutPut - Che conterra le informazioni trovate</param>
''' <returns></returns>
''' <remarks></remarks>
Private Function FiltraTabella(ByVal Valore As String, ByVal NomeColonna As String, ByVal DataGridViewAnalizzer As DataGridView, ByVal DataGridViewNew As DataGridView) As DataGridView
Try
Dim ArrayIndexPosition As New List(Of Integer)
ScriviStrutturaColonna(DataGridViewAnalizzer, DataGridViewNew)
'ScriviStrutturaColonna(DataGridViewAnalizzer, DataGridView2)
Dim rowIndex As Integer = -1
For Each row As DataGridViewRow In DataGridViewAnalizzer.Rows
If row.Cells(NomeColonna).Value Is Nothing Then
Console.WriteLine("Fine Ciclo")
Else
If row.Cells(NomeColonna).Value.ToString().Equals(Valore) Then
ArrayIndexPosition.Add(row.Index)
Dim StringaValori As New List(Of String)
StringaValori = CaricaArray(row)
DataGridViewNew.Rows.Add(StringaValori.ToArray)
' rowIndex = row.Index
'Exit For
End If
End If
Next
Console.WriteLine("Grandezza = "& ArrayIndexPosition.Count)
Console.WriteLine("Tutto ok")
Return DataGridViewNew
Catch ex As Exception
'Errore non trovato o altro
Console.WriteLine(ex.Message.ToString)
Return Nothing
End Try
End Function
''' <summary>
''' ScriviStrutturaColonna = Legge la struttura di oldDGW e la copia al nuovo newDGW
''' </summary>
''' <param name="oldDGW">Vecchio DataGridView </param>
''' <param name="newDGW">Nuovo DataGridView</param>
''' <returns></returns>
''' <remarks></remarks>
Private Function ScriviStrutturaColonna(ByVal oldDGW As DataGridView, ByVal newDGW As DataGridView) As DataGridView
For Each colonna As DataGridViewColumn In oldDGW.Columns
Dim newCol As New DataGridViewColumn
newCol.CellTemplate = colonna.CellTemplate
newCol.DefaultCellStyle = colonna.DefaultCellStyle
newCol.HeaderText = colonna.HeaderText
newCol.Name = colonna.Name
newCol.ReadOnly = colonna.ReadOnly
newCol.Width = colonna.Width
newCol.Visible = colonna.Visible
newDGW.Columns.Add(newCol)
Console.WriteLine(colonna.Name)
Next
Return newDGW
End Function
Private Sub CaricaComboBoxColonne(ByVal DataGridView As DataGridView)
For Each colonna As DataGridViewColumn In DataGridView.Columns
cmbCollon.Items.Add(colonna.Name.ToString)
Console.WriteLine(colonna.Name)
Next
End Sub
Private Function CaricaArray(ByVal row As DataGridViewRow) As List(Of String)
Try
Dim Stringa As New List(Of String)
For Each cella As DataGridViewCell In row.Cells
Stringa.Add(cella.Value.ToString)
Next
Console.WriteLine("Tutto OK Array Stringa")
Return Stringa
Catch ex As Exception
Console.WriteLine(ex.Message.ToString)
Return Nothing
End Try
End Function
Private Sub PulisciDataGridViewRicerca(ByVal DataGridView As DataGridView)
DataGridView.Rows.Clear()
DataGridView.Columns.Clear()
End Sub

Private Sub EffettuaRicerca()
If search.Text <> "" And cmbCollon.Text <> "" Then
PulisciDataGridViewRicerca(DataGridView2)
DataGridView1.Visible = False
DataGridView2.Visible = True
FiltraTabella(search.Text, cmbCollon.Text, DataGridView1, DataGridView2)
Else
DataGridView1.Visible = True
DataGridView2.Visible = False
PulisciDataGridViewRicerca(DataGridView2)
End If
End Sub

Private Sub search_TextChanged(sender As System.Object, e As System.EventArgs) Handles search.TextChanged
EffettuaRicerca()
End Sub

Private Sub cmbCollon_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbCollon.SelectedIndexChanged
EffettuaRicerca()
End Sub


End Class

Potete scaricare il file d'esempio :

Password :  "ImaginSystem" 
Link File Download : Download FiltroDataGridView

By ImaginSystems & Queen Gin   

VB.NET - Encrypting e Decrypting File (Codice )

$
0
0

VB.NET - Encrypting e Decrypting  File  (Codice )


 


Oggi vi voglio mettere in condivisione una funzione che ho trovato on-line utile per Cryptare e Decryptare i file velocemente.

Esempio di come richiamare la funzione : 

       CODICE VISUAL STUDIO 2010 - VISUAL BASIC .NET - VB.NET:
 ' Encrypt the file.        
   EncryptFile("MyData.txt", _"Encrypted.txt", _
                        sSecretKey)

  ' Decrypt the file.
    DecryptFile("Encrypted.txt", _"Decrypted.txt", _
                    sSecretKey)
Codice del progetto :

      CODICE VISUAL STUDIO 2010 - VISUAL BASIC .NET - VB.NET:
 Imports System
Imports System.IO
Imports System.Security
Imports System.Security.Cryptography
Imports System.Runtime.InteropServices
Imports System.Text


Module Module1

    ' Call this function to remove the key from memory after it is used for security.
    <DllImport("kernel32.dll")> _
    Private Sub ZeroMemory(ByVal addr As IntPtr, ByVal size As Integer)
    End Sub

    ' Function to generate a 64-bit key.
    Private Function GenerateKey() As String
        ' Create an instance of a symmetric algorithm. The key and the IV are generated automatically.
        Dim desCrypto As DESCryptoServiceProvider = DESCryptoServiceProvider.Create()

        ' Use the automatically generated key for encryption. 
        Return ASCIIEncoding.ASCII.GetString(desCrypto.Key)

    End Function

    Public Sub EncryptFile(ByVal sInputFilename As String, _
                   ByVal sOutputFilename As String, _
                   ByVal sKey As String)

        Dim fsInput As New FileStream(sInputFilename, _
                                    FileMode.Open, FileAccess.Read)
        Dim fsEncrypted As New FileStream(sOutputFilename, _
                                    FileMode.Create, FileAccess.Write)

        Dim DES As New DESCryptoServiceProvider()

        'Set secret key for DES algorithm.
        'A 64-bit key and an IV are required for this provider.
        DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey)

        'Set the initialization vector.
        DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey)

        'Create the DES encryptor from this instance.
        Dim desencrypt As ICryptoTransform = DES.CreateEncryptor()
        'Create the crypto stream that transforms the file stream by using DES encryption.
        Dim cryptostream As New CryptoStream(fsEncrypted, _
                                            desencrypt, _
                                            CryptoStreamMode.Write)

        'Read the file text to the byte array.
        Dim bytearrayinput(fsInput.Length - 1) As Byte
        fsInput.Read(bytearrayinput, 0, bytearrayinput.Length)
        'Write out the DES encrypted file.
        cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length)
        cryptostream.Close()
    End Sub

    Public Sub DecryptFile(ByVal sInputFilename As String, _
        ByVal sOutputFilename As String, _
        ByVal sKey As String)

        Dim DES As New DESCryptoServiceProvider()
        'A 64-bit key and an IV are required for this provider.
        'Set the secret key for the DES algorithm.
        DES.Key() = ASCIIEncoding.ASCII.GetBytes(sKey)
        'Set the initialization vector.
        DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey)

        'Create the file stream to read the encrypted file back.
        Dim fsread As New FileStream(sInputFilename, FileMode.Open, FileAccess.Read)
        'Create the DES decryptor from the DES instance.
        Dim desdecrypt As ICryptoTransform = DES.CreateDecryptor()
        'Create the crypto stream set to read and to do a DES decryption transform on incoming bytes.
        Dim cryptostreamDecr As New CryptoStream(fsread, desdecrypt, CryptoStreamMode.Read)
        'Print out the contents of the decrypted file.
        Dim fsDecrypted As New StreamWriter(sOutputFilename)
        fsDecrypted.Write(New StreamReader(cryptostreamDecr).ReadToEnd)
        fsDecrypted.Flush()
        fsDecrypted.Close()
    End Sub

    Public Sub Main()

        'Must be 64 bits, 8 bytes.
        Dim sSecretKey As String

        ' Get the key for the file to encrypt.
        ' You can distribute this key to the user who will decrypt the file.
        sSecretKey = GenerateKey()
        'Console.WriteLine(sSecretKey)

        ' For additional security, pin the key.
        Dim gch As GCHandle = GCHandle.Alloc(sSecretKey, GCHandleType.Pinned)


        ' Encrypt the file.        
        EncryptFile("MyData.txt", _"Encrypted.txt", _
                        sSecretKey)

        ' Decrypt the file.
        DecryptFile("Encrypted.txt", _"Decrypted.txt", _
                    sSecretKey)

        ' Remove the key from memory. 
        ZeroMemory(gch.AddrOfPinnedObject(), sSecretKey.Length * 2)
        gch.Free()
        Console.ReadKey()
    End Sub

End Module

By ImaginSystems & Queen Gin   

Altro - I comandi ‘segreti’ di Chrome e loro significato.

$
0
0

Altro - I comandi ‘segreti’ di Chrome e loro significato.


 

Google Chrome offre una serie di servizi per tenere sotto controllo il vostro browser, come ad esempio lo stato delle performance della scheda grafica (l’accelerazione GPU), la lista di DNS e gli hsotname delle pagine caricate, la cache, la memoria utilizzata, la possibilità di tracing e molto altro ancora per poter smanettare quanto volete.

Per accedere a questi URLs basta semplicemente scrivere nella barra degli indirizzi:

chrome://chrome-urls/

Come Firefox o Opera anche Google Chrome ha una sua lista di URL per l’accesso a le più disparate informazioni.

Alcune di queste sono davvero utile altre meno.

Vediamo quali sono e a cosa servono:
chrome://appcache-internals – informazioni sui siti cachati e quanto spazio occupano
chrome://blob-internals – dati su blobs (Binary large objects)
chrome://bookmarks – apre il gestore dei preferiti
chrome://cache – mostra tutti gli oggetti presenti in cache
chrome://chrome-urls – mostra la lista dei comandi disponibili (questa lista)
chrome://crashes – la lista dei recenti crash del browser
chrome://credits – i crediti dei creatori di Chrome e delle tecnologie usate
chrome://dns – se il prefetch è attivato mostra le informazioni su di esso
chrome://downloads – mostra tutti i downloads effettuati
chrome://extensions – mostra il numero di versione installata
chrome://flags – mostra le caratteristiche sperimentali che da qui possono essere attivate / disattivate
chrome://flash – informazioni su Flash
chrome://gpu-internals – info sulla scheda video e la sua eventuale accelerazione GPU
chrome://history – apre la storia di navigazione
chrome://ipc – info su ‘inter process communication’ di Chrome
chrome://inspect – possibilità di analizzare gli elementi aperti (pagine o estensioni)
chrome://media-internals – mostra le informazioni sui media che state visualizzando
chrome://memory – mostra i processi del browser e il loro utilizzo di memoria
chrome://net-internals – informazioni dettagliate su tutte le connessioni di rete (socket aperti, DNS etc etc)
chrome://view-http-cache – mostra le pagine visitate e cachate durante la navigazione
chrome://newtab – apre un nuovo tab
chrome://omnibox – mostra le impostazioni della form di ricerca e la history delle ricerche
chrome://plugins – elenca tutti i plugin installati e il loro attuale stato
chrome://policy –mostra tutti i criteri attivi nel browser
chrome://predictors – la lista di autocompletamento in base alle vostre abitudini
chrome://quota-internals – info sullo spazio disco disponibile nella directory di profilo di Chrome, il suo uso e le relative quote
chrome://settings – apre i settaggi principali di Chrome
chrome://sync-internals – informazioni dettagliate sul servizio di sincronizzazione
chrome://terms – i termini di utilizzo di Google Chrome
chrome://tracing – mostra la vostra attività. deve però essere prima attivata la registrazione (record)
chrome://version –mostra la versione del browser e quelle dei vari plugin installati
chrome://conflicts – La pagina elenca tutti i moduli caricati nel processo principale e i moduli registrati per il caricamento in una fase successiva.
chrome://print – va alla preview di stampa

PAGINE UTILI PER IL DEBUG
chrome://crash – simula un crash del tab corrente
chrome://kill – termina il tab corrente e mostra la pagina di avviso di ‘pagina terminata’
chrome://hang –simula un blocco del browser
chrome://shorthang – simula un blocco temporaneo del browser
chrome://gpuclean – svuota la GPU
chrome://gpucrash – simula un crash della GPU
chrome://gpuhang – simula un blocco della GPU
Buon divertimento e attenzione a non fare troppi danni!

By ImaginSystems & Queen Gin   

VB.NET - Il Namescape My

$
0
0

VB.NET - Il Namescape My 


 

Una delle novità più interessanti di Visual Basic 2005 è il Namespace My che introduce un modo rapido per l'accesso ad importanti classi relative al computer su cui l'applicazione è in esecuzione, all'utente, all'applicazione stessa, ai form dell'applicazione e a eventuali webservice associati. 

È importante notare che My è un esclusiva del linguaggio Visual Basic .NET 2005, infatti non esiste niente di simile in C# e non si deve, quindi, far confusione con il this che invece è equivalente a Me di Visual basic. 

Inoltre, il namespace non è semplicemente una scorciatoia alle classi del .net framework ma va ben oltre questo visto che comunque ci sono funzioni che non sono presenti nel framework. 

Ecco una rappresentazione, sintetica, del namespace My:

My.Application 

L’oggetto My.Application rende disponibili informazioni sull’applicazione Windows Form o Console come il percorso, le CultureInfo, la versione e la modalità di autenticazione dell’utente. Le proprietà di My.Application sono:

ApplicationContext

Restituisce l’oggetto ApplicationContext utilizzatoper l’applicazione Windows Form corrente.

CommandLineArgs

Restituisce una collection (ReadOnly) che contiene gli argomenti della riga di comando.

Culture

Restituisce l’oggetto CultureInfo attualmente in uso.

Deployment

Restituisce l’oggetto ApplicationDeployment di ClickOnce che permette l’aggiornamento da programma dell’applicazione attuale.

Info

Restituisce un oggetto AssemblyInfo dove sono disponibile informazioni come versione, titolo, descrizione e altre.

IsNetworkDeployed

Restituisce un boolean che indica se l’applicazione è stata installando ClickOnce.

Log

L’oggetto Log rende disponibili proprietà e metodi per la scrittura di informazioni su eventi e eccezioni nel log dell’applicazione

UICulture

Restituisce il CultureInfo che il thread corrente utilizza per il recupero di risorse specifiche della cultura.

MinimumSpashScreenDiplayTime

Determina il tempo minimo di visualizzazione dellp splash screen (naturalmente disponibile solo per applicazioni Windows Forms)

OpenForms

Collection contenente i forms aperti.

SaveMySettingsOnExit

Determina se all’uscita, l’applicazione, salva tutte le impostazioni dell’utente.

SplashScreen

Determina il form utilizzato per lo splash screen.

Se vogliamo, ad esempio, scrivere qualcosa nel log delle applicazioni scriveremo, semplicemente:

My.Application.Log.WriteEntry("testo inserito nel log")

Oppure scrivere maggiori dettagli:

My.Application.Log.WriteEntry("message", TraceEventType.Information, 1)

Naturalmente, per poter utilizzare il listener EventLog occorre decommentare le seguenti righe nel file App.Config:

<sources>

<!-- This section defines the logging configuration for My.Application.Log -->

<source name="DefaultSource" switchName="DefaultSwitch">

<listeners>

<add name="FileLog"/>

<!-- Uncomment the below section to write to the Application Event Log -->

<!--<add name="EventLog"/>-->

</listeners>

</source>

</sources>

Oltre alle property elencate in precedenza, My.Application espone anche metodi ed eventi:

ChangeCulture(string)

Metodo che imposta la cultura utilizzata.

ChangeUICulture(string)

Metodo che imposta la cultura utilizzata dal thread corrente per recuperare risorse specifiche alla cultura.

GetEnvironmentVariable(varname)

Restituisce il valore di una variabile d’ambiente.

DoEvents

Processa tutti i messaggi Windows in coda.

OnCreateSplashScreen

Evento eseguite quando l’applicazione crea lo splash screen.

ShutDown

Scatenato alla chiusura dell’applicazione.

StartUp

Scatenato all’avvio dell’applicazione.

StartUpNextInstance

Evento sollevato all’avvio di un’ulteriore istanza.

UnhandledException

Si scatena quando si verifica un’eccezione non gestita.

NetworkAvailabilityChanged

Si scatena quando l’applicazione ottiene o perde la disponibilità di una connessione di rete.


My.Computer

L’oggetto My.Computer è sicuramente l’oggetto più ricco del Namespace My, infatti, tutte le proprietà restituiscono oggetti figli che contengono molte informazioni del computer. 
Vista la vastità di My.Computer, tratteremo in maniera molto sintetica i vari oggetti che ne fanno parte. 

Iniziamo da My.Computer.Audio che permette l’esecuzione di un suono in maniera sincrona o asincrona in modo da, ad esempio, far eseguire un suono durante il normale svolgimento dell’applicazione.

PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load 

My.Computer.Audio.Play(
"c:\mysound.wav", AudioPlayMode.BackgroundLoop)

End Sub

PrivateSub Form1_FormClosed(ByVal sender AsObject, ByVal e As System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed

My.Computer.Audio.Stop()

End Sub

Altro oggetto è My.Computer.Clipboard che contiene scorciatoie a System.Windows.Forms.Clipboard che permette l’accesso agli “appunti” di sistema.
' Memorizza una stringa negli appunti 
My.Computer.Clipboard.SetText("testo da copiare negli appunti"
' Restituisce il testo contenuto negli appunti 
Dim clip As String = My.Computer.Clipboard.GetText

Naturalmente l’oggetto contiene metodi specifici per ogni tipo di dato contenuto (immagini, testo, audio o elenco file) e in più un metodo generico SetData utilizzabile per tipi diversi da quelli elencati in precedenza. Ecco un esempio di utilizzo di SetData:

<Serializable()> _
Public Class Person 
    
Public Name As String 
    
Public Age As Integer 
End Class 

Dim p As New Person 
With p
    
.Name = "Vito Arconzo" 
    .Age 
= 26 
End With 
My.Computer.Clipboard.SetData(
"Person", p)
 
 

Da notare che la classe, per poter essere copiata nella clipboard, deve avere obbligatoriamente l'attributo Serializable

Passiamo adesso all’oggetto My.Computer.FileSystem che contiene tutti i metodi già disponibili in System.IO.DirectorySystem.IO.File e System.IO.Path con alcune “chicche” in più come il metodo FindInFiles che permette la ricerca di una file all’interno di una directory o di un albero di cartelle, oppure, altra feature, la possibilità che hanno alcuni metodi di visualizzare una finestra standard durante qualsiasi operazione sui files. 

Altri oggetti di My.Computer di sola lettura che contengono informazioni varie sul sistema sono Info,Keyboard, Mouse, Ports e Screen.

Info

Permette di accedere ad informazioni riguardanti la macchina locale, tra vui nome del sistema, sistema operativo, memoria e assembly caricati.

Keyboard

Permette di determinare lo stato della tastiera e dei vari tasti come CTRL, SHIFT, ALT o se BLOC NUM e BLOC SCROLL sono attivati.

Mouse

Contiene informazioni varie sul mouse collegato (numero di tasti, se dotato di rotella, etc...).

Name

Nome della macchina su cui gira l’applicazione.

Network

Fornisce informazioni sull’indirizzo IP della macchina, lo stato della connessione e, inoltre, consente l’esecuzione di un PING.

Ports

 

Printer

 

Registry

 

Screen

Permette l’accesso alle informazioni dei monitor collegati e alle rispettive proprietà come BitsPerPixel, WorkingArea e via dicendo.

 

 

Esempio di esecuzione di un PING:

If My.Computer.Network.Ping("192.168.0.1") Then

MessageBox.Show(
"Ping effettuato con successo!")

Else
    MessageBox.Show("Ping NON effettuato con successo!") 

EndIf

Altro oggetto molto utile per lo sviluppo di applicazione Windows Forms è My.Computer.Registry che, comunque, contiene scorciatoie a Microsoft.Win32.Registry e permette quindi, operazioni di lettura e scrittura sul registro di Windows. Attenzione!!! Operazioni sul registro sono sempre molto pericolose e dannose se non sappiamo benissimo cosa stiamo facendo. Occorre, quindi, prestare molta attenzione a quello che si fa.

My.User 

L’oggetto My.User, utilizzabile anche per applicazioni ASP.NET, permette la verifica dell’identità dell’utente attualmente autenticato.


If
 My.User.IsAuthenticated Then 
    MessageBox.Show(
"L'utente autenticato è: " + My.User.Name) 
End If

My.Resource 

Passiamo adesso all’oggetto My.Resource che permette operazioni sulle risorse dell’applicazioni ossia informazioni incluse nell’assembly che possono essere file di testo, immagini o qualsiasi altro file che altrimenti verrebbero forniti come file esterni. Diventa molto semplice, ad esempio, accedere ad un file icona aggiunta come risorsa, dalla nostra applicazione:

Me.Icon = My.Resources.DefaultIcon

Naturalmente, DefaultIcon è il nome dell’icona aggiunta alle risorse dell’applicazione ed è, quindi, Visual Studio che automaticamente popola l’oggetto My.Resource con tutte le risorse aggiunte.

My.Settings 
Per l’accesso al file di configurazione dell’applicazione, il Namespace My, mette a disposizione l’oggetto My.Settings. Infatti Visual Studio genera “al volo” il codice della classe My.Settings in modo da avere supporto con l’intellisense per le impostazioni aggiunte nel file app.config. 
Mettiamo il caso di avere il file di configurazione:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
  <configSections> 
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
      <section name="NamespaceMy.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"allowExeDefinition="MachineToLocalUser" requirePermission="false" /> 
      </sectionGroup> 
   </configSections> 
</configuration>

Bene, potremo utilizzare direttamente :

Dim n AsInteger= My.Settings.MaxRows 

Molto comodo. Oltre a vari metodi e proprietà per operazioni sulle impostazioni dell’applicazione, l’oggetto My.Settings espone anche alcuni eventi che vengono sollevate, ad esempio, quando viene modificata un’impostazione.

My.Forms 

Per concludere l’oggetto My.Forms che restituisce l’istanza del oggetto forms predefinito dell’applicazione:

My.Forms.Form1.Show()

Molto comodo in casi i cui dobbiamo accedere da altri form secondari a quello principale, senza doverci gestire una variabile Public con il riferimento al form principale.

Conclusioni 
In questo articolo abbiamo visto, seppur in maniera molto sintetica, le classe e le funzionalità disponibili con il Namespace My. L’utilizzo di My può, in molte situazioni, accellerare lo sviluppo di applicazioni con il .NET framework facendo comunque attenzione al fatto che My è un’esclusiva del linguaggio Visual Basic e, quindi, in situazione di porting verso altri linguaggi come C#, possono esserci problemi.

Approfondimenti

Visual Basic Developer Center: My Namespace

Visual Basic: Simplify Common Tasks by Customizing the My Namespace ... 


Giovedi' 19 Settembre 2013 San Gennaro, vescovo martire

WPC 2013

$
0
0
Anche quest'anno, dal 5 al 7 novembre, avrà luogo la Windows Professional Conference (WPC 2013). 


Come ogni anno saranno vari gli argomenti trattati:

• Windows Server 2012 R2
• Windows 8.1
• Exchange Server 
• Lync Server 
• SharePoint Server 
• SQL Server 
• System Center 
• Visual Studio 
• Windows Azure
• HTML5
• Office 365
• Mobile applications
• BizTalk
• Dispositivi (Windows Phone, Windows Embedded)

Tutti organizzati nell'agenda proposta.
Anche gli speaker, sono pronti per  discutere con voi delle tecnologie sopra indicate.
Molti di loro sono Microsoft MVP e alcuni di loro, insieme al sottoscritto, saranno presenti ad un angolo Ask The Expert.


direttamente dal sito ufficiale:
"WPC è la più importante conferenza italiana sulle tecnologie Microsoft, organizzata da OverNet Education, noto centro di formazione specialistica e professionale IT con sedi su tutto il territorio italiano, che si avvale della collaborazione dei migliori docenti e consulenti presenti sul mercato. La qualità che OverNet adotta per il proprio business quotidiano, accompagna anche WPC in ogni forma e dettaglio: dalla scelta degli speaker, ai contenuti trattati, agli sponsor qualificati, senza dimenticare tutti gli aspetti logistici e “ludici” che intervengono nell’evento della durata di 3 giorni. 

L’edizione che si svolgerà dal 5 al 7 novembre 2013, pur mantenendo i connotati tradizionali della conferenza, amplierà i temi trattati consentendo ad un pubblico IT più vasto la partecipazione: le PMI potranno scegliere una Virtual Track che tratterà temi dedicati e utili alle proprie esigenze, i CIO potranno assistere a sessioni più brevi introduttive di nuovi prodotti o nuove release che consentiranno loro un’immediata applicabilità nel proprio ambito lavorativo, i Partner Microsoft potranno ottenere tutte le informazioni utili ed efficaci per essere preparati sul mercato e proporre soluzione più aggressive e competitive.
"
Fino al 4 ottobre avrete la possibilità di accedere ad un early bird! Che aspettate a registrarvi? 

per maggiori informazioni, riferirsi a questo link. Per la logistica e gli hotel date una letta a questo e quest'altro link.
Vi aspetto numerosi, e mi raccomando, passate a salutarmi all'Ask The Expert corner!! 

Stay Tuned! 

Multe al C.d.S....arrivano gli sconti!!

$
0
0

Una delle norme piu' discusse e discutibili del “Decreto del Fare”, entrata in vigore lo scorso 20 agosto, è sicuramente quella relativa allo sconto sulle multe pagate subito.

La norma prevede ( solo per alcune sanzioni al CdS) che si potrà fruire di uno sconto del 30% se si paga la contravvenzione entro 5 giorni, dalla notifica del verbale.

Non può certo sfuggire quale sia la logica di una simile riforma, cioè quella di spingere il trasgressore a pagare subito la multa, così da rimpinguare le casse dei Comuni ed evitare i ricorsi al Prefetto e al Giudice di Pace.

Gia la reintroduzione del pagamento del contributo unificato ( pari ad € 37,00 per le cause di valore fino a € 1.033,00) per i ricorsi avverso le sanzioni amministrative di importi irrisori ( si pensi ai divieti di sosta ecc..), ha sortito una certa deflazione delle cause innanzi ai Giudici di Pace, dato che per ottenere l’annullamento del verbale, è necessario iscrivere a ruolo una causa che già costa quanto lo stesso verbale (spese legali a parte).

Il vero problema, se così lo si può chiamare, è quello di determinare esattamente la cifra da corrispondere per la sanzione, dato che la decurtazione del 30% percento dovrà essere calcolata dal trasgressore.

Se si sbaglia anche di un centesimo, si dovrà pagare l’intero importo, perdendo anche la possibilità di pagare la sanzione in misura ridotta.

Ovviamente, nel conteggio del dovuto, non potranno ricomprendersi le spese della notifica del verbale.

A mio modo di vedere, se il verbale viene notificato, dovrà contenere tutte le indicazioni necessarie al fine di poter usufruire del detto sconto sulla sanzione, cioè, termini e modi di pagamento, nonché, l’esatto importo da corrispondere nel termine breve (5 giorni dalla notifica).

La mancanza di tali indicazioni rende il verbale suscettibile di impugnazione, come del resto accade nel caso delle sanzioni al CdS che prevedono il pagamento in misura ridotta, quando manca l’indicazione dell’importo “ ridotto” da pagare.

La chimera dello sconto farà si che anche i verbali inficiati da vizi formali, quindi palesemente nulli e/o annullabili con ricorso, saranno pagati per evitare costi maggiori.

Staremo a vedere.

Condominio: Le nuove regole

$
0
0

Recentemente, discutendo con un Collega, ho fatto il punto sulle modifiche apportate dalla  Legge n. 220 dell’11-12-2012 al Codice Civile per quello che attiene alla disciplina del condominio negli edifici.

I cambiamenti riguardano anche la figura dell’Amministratore del condominio, in capo al quale ricade la responsabilità del mandato ricevuto.

Ma vediamo brevemente le principali novità, con invito a voler consultare la Legge n. 220, di seguito riportata,  per tutte le modifiche intervenute.

 

1) L’AMMINISTRATORE:

Preliminarmente è necessario evidenziare che non è stato istituito nessun albo professionale per gli Amministratori di immobili, nonché, non vige nessun obbligo di iscrizione ad associazioni di categoria per svolgere tale attività.

Possono svolgere l'incarico di amministratore di condominio coloro:

a)che hanno il godimento dei diritti civili;

b) che non sono stati condannati per delitti contro la pubblica amministrazione, l'amministrazione della giustizia, la fede pubblica, il patrimonio o per ogni altro delitto non colposo per  il  quale  la legge commina la pena della reclusione non inferiore, nel  minimo,  a due anni e, nel massimo, a cinque anni;

c) che non sono stati sottoposti a misure di prevenzione divenute definitive, salvo che non sia intervenuta la riabilitazione

d) che non sono interdetti o inabilitati;

e) il cui nome non risulta annotato nell'elenco dei protesti cambiari;

f) che hanno conseguito il diploma di scuola secondaria di secondo grado;

g) che hanno frequentato un corso di formazione iniziale e svolgono attività di formazione periodica in materia di amministrazione condominiale.

I requisiti di cui alle lettere f) e g) del primo comma non sono necessari qualora l'amministratore sia nominato tra i condomini dello stabile.

La perdita dei requisiti di cui alle lettere a), b), c), d) ed e) del primo comma comporta la cessazione dall'incarico.

In tale evenienza ciascun condomino può convocare senza formalità l’assemblea per la nomina del nuovo amministratore.

Possono svolgere l'incarico di amministratore di  condominio anche società di cui al titolo V del libro V del codice. In tal caso, i requisiti devono essere posseduti dai soci illimitatamente responsabili, dagli amministratori e dai dipendenti incaricati di svolgere le funzioni di amministrazione dei condominii a favore dei quali la società presta i servizi.

Coloro che hanno svolto attività di amministrazione di condominio per almeno un anno, nell'arco dei tre anni precedenti alla data di entrata in vigore della presente disposizione, è consentito lo svolgimento dell'attività di amministratore anche in mancanza dei requisiti di cui alle lettere f) e g) del primo comma.

Resta salvo l’obbligo di formazione periodica.

 

La durata in carica dell’amministratore è prevista dall'articolo 9: "L'incarico di amministratore ha durata di un anno e si intende rinnovato per eguale durata". La revoca dell’amministratore può essere deliberata in ogni tempo dall’assemblea, con la maggioranza prevista per la sua nomina oppure con le modalità previste dal regolamento di condominio, nonché, nei casi previsti di violazione al mandato ricevuto (es. mancata apertura ed utilizzo del conto corrente condominiale).

 

Inoltre, l’assemblea dei condomini, può subordinare la nomina dell’Amministratore alla presentazione di una polizza assicurativa di responsabilità civile individuale, a copertura dell’attività svolta in seno al mandato ricevuto.

 

2) POSSESSO ANIMALI D’AFFEZIONE

L'articolo 16 della legge stabilisce espressamente che "Le norme del regolamento non possono vietare di possedere o detenere animali domestici".

3) PARTI COMUNI: Cambio destinazione d’uso

Il nuovo articolo 1117-ter (introdotto dall'articolo 2 dellle legge n. 220/2012) prevede che per soddisfare esigenze di interesse condominiale, l'assemblea, con un numero di voti che rappresenti i quattro quinti dei partecipanti al condominio e i quattro quinti del valore dell'edificio, puo' modificare la destinazione d'uso delle parti comuni. Tuttavia, sono vietate le modificazioni delle destinazioni d'uso che possono recare pregiudizio alla stabilita' o alla sicurezza del fabbricato o che ne alterano il decoro architettonico.

In virtù del neo articolo 1117-quater, in caso di attivita' che incidono negativamente e in modo sostanziale sulle destinazioni d'uso delle parti comuni, l'amministratore o i condomini, anche singolarmente, possono diffidare l'esecutore e possono chiedere la convocazione dell'assemblea per far cessare la violazione, anche mediante azioni giudiziarie.

 

4) LE TABELLE MILLESIMALI

Il valore proporzionale di ciascuna unità immobiliare è espresso in millesimi in apposita tabella allegata al regolamento di condominio. Tali valori possono essere rettificati o modificati, anche nell’interesse di un solo condomino, con la maggioranza prevista dall’articolo 1136, secondo comma, del codice, nei seguenti casi:

1) quando risulta che sono conseguenza di un errore;

2) quando, per le mutate condizioni di una parte dell’edificio, in conseguenza di sopraelevazione, di incremento di superfici o di incremento o diminuzione delle unità immobiliari, è alterato per più di un quinto il valore proporzionale dell’unità immobiliare anche di un solo condomino. In tal caso il relativo costo è sostenuto da chi ha dato luogo alla variazione.Ai soli fini della revisione dei valori proporzionali espressi nella tabella millesimale allegata al regolamento di condominio ai sensi dell’articolo 68, può essere convenuto in giudizio unicamente il condominio in persona dell’amministratore. Questi è tenuto a darne senza indugio notizia all’assemblea dei condomini. L’amministratore che non adempie a quest’obbligo può essere revocato ed è tenuto al risarcimento degli eventuali danni.

 

5) CONTO CORRENTE CONDOMINIALE

Secondo il comma 7 dell'articolo 1129 (modificato dall'articolo 9 dellle legge n. 220/2012) l’amministratore è obbligato a far transitare le somme ricevute a qualunque titolo dai condomini o da terzi, nonché quelle a qualsiasi titolo erogate per conto del condominio, su uno specifico conto corrente, postale o bancario, intestato al condominio; ciascun condomino, per il tramite dell'amministratore, può chiedere di prendere visione ed estrarre copia, a proprie spese, della rendicontazione periodica.

 

Di seguito riporto il testo della Legge:

LEGGE 11 dicembre 2012, n. 220 (G.U. del 17-12-1012 n. 293)

Modifiche alla disciplina del condominio negli edifici. (12G0241)

 

La Camera dei deputati ed il Senato della Repubblica hanno approvato;

IL PRESIDENTE DELLA REPUBBLICA

Promulga

la seguente legge:

Art. 1

1. L'articolo 1117 del codice civile e' sostituito dal seguente:

«Art. 1117. - (Parti comuni dell'edificio). - Sono oggetto di proprieta' comune dei proprietari delle singole unita' immobiliari dell'edificio, anche se aventi diritto a godimento periodico e se non risulta il contrario dal titolo: 1) tutte le parti dell'edificio necessarie all'uso comune, come il suolo su cui sorge l'edificio, le fondazioni, i muri maestri, i pilastri e le travi portanti, i tetti e i lastrici solari, le scale, i portoni di ingresso, i vestiboli, gli anditi, i portici, i cortili e le facciate; 2) le aree destinate a parcheggio nonche' i locali per i servizi in comune, come la portineria, incluso l'alloggio del portiere, la lavanderia, gli stenditoi e i sottotetti destinati, per le caratteristiche strutturali e funzionali, all'uso comune; 3) le opere, le installazioni, i manufatti di qualunque genere destinati all'uso comune, come gli ascensori, i pozzi, le cisterne, gli impianti idrici e fognari, i sistemi centralizzati di distribuzione e di trasmissione per il gas, per l'energia elettrica, per il riscaldamento ed il condizionamento dell'aria, per la ricezione radiotelevisiva e per l'accesso a qualunque altro genere di flusso informativo, anche da satellite o via cavo, e i relativi collegamenti fino al punto di diramazione ai locali di proprieta' individuale dei singoli condomini, ovvero, in caso di impianti unitari, fino al punto di utenza, salvo quanto disposto dalle normative di settore in materia di reti pubbliche».

Art. 2

1. Dopo l'articolo 1117 del codice civile sono inseriti i seguenti:

«Art. 1117-bis. - (Ambito di applicabilita'). - Le disposizioni del presente capo si applicano, in quanto compatibili, in tutti i casi in cui piu' unita' immobiliari o piu' edifici ovvero piu' condominii di unita' immobiliari o di edifici abbiano parti comuni ai sensi dell'articolo 1117.

Art. 1117-ter. - (Modificazioni delle destinazioni d'uso). - Per soddisfare esigenze di interesse condominiale, l'assemblea, con un numero di voti che rappresenti i quattro quinti dei partecipanti al condominio e i quattro quinti del valore dell'edificio, puo' modificare la destinazione d'uso delle parti comuni. La convocazione dell'assemblea deve essere affissa per non meno di trenta giorni consecutivi nei locali di maggior uso comune o negli spazi a tal fine destinati e deve effettuarsi mediante lettera raccomandata o equipollenti mezzi telematici, in modo da pervenire almeno venti giorni prima della data di convocazione. La convocazione dell'assemblea, a pena di nullita', deve indicare le parti comuni oggetto della modificazione e la nuova destinazione d'uso. La deliberazione deve contenere la dichiarazione espressa che sono stati effettuati gli adempimenti di cui ai precedenti commi. Sono vietate le modificazioni delle destinazioni d'uso che possono recare pregiudizio alla stabilita' o alla sicurezza del fabbricato o che ne alterano il decoro architettonico.

Art. 1117-quater. - (Tutela delle destinazioni d'uso). - In caso di attivita' che incidono negativamente e in modo sostanziale sulle destinazioni d'uso delle parti comuni, l'amministratore o i condomini, anche singolarmente, possono diffidare l'esecutore e possono chiedere la convocazione dell'assemblea per far cessare la violazione, anche mediante azioni giudiziarie. L'assemblea delibera in merito alla cessazione di tali attivita' con la maggioranza prevista dal secondo comma dell'articolo 1136».

Art. 3

1. L'articolo 1118 del codice civile e' sostituito dal seguente:

«Art. 1118. - (Diritti dei partecipanti sulle parti comuni). - Il diritto di ciascun condomino sulle parti comuni, salvo che il titolo non disponga altrimenti, e' proporzionale al valore dell'unita' immobiliare che gli appartiene. Il condomino non puo' rinunziare al suo diritto sulle parti comuni. Il condomino non puo' sottrarsi all'obbligo di contribuire alle spese per la conservazione delle parti comuni, neanche modificando la destinazione d'uso della propria unita' immobiliare, salvo quanto disposto da leggi speciali. Il condomino puo' rinunciare all'utilizzo dell'impianto centralizzato di riscaldamento o di condizionamento, se dal suo distacco non derivano notevoli squilibri di funzionamento o aggravi di spesa per gli altri condomini. In tal caso il rinunziante resta tenuto a concorrere al pagamento delle sole spese per la manutenzione straordinaria dell'impianto e per la sua conservazione e messa a norma».

Art. 4

1. Al primo comma dell'articolo 1119 del codice civile sono aggiunte, in fine, le seguenti parole: «e con il consenso di tutti i partecipanti al condominio».

Art. 5

1. Dopo il primo comma dell'articolo 1120 del codice civile sono inseriti i seguenti:

«I condomini, con la maggioranza indicata dal secondo comma dell'articolo 1136, possono disporre le innovazioni che, nel rispetto della normativa di settore, hanno ad oggetto: 1) le opere e gli interventi volti a migliorare la sicurezza e la salubrita' degli edifici e degli impianti; 2) le opere e gli interventi previsti per eliminare le barriere architettoniche, per il contenimento del consumo energetico degli edifici e per realizzare parcheggi destinati a servizio delle unita' immobiliari o dell'edificio, nonche' per la produzione di energia mediante l'utilizzo di impianti di cogenerazione, fonti eoliche, solari o comunque rinnovabili da parte del condominio o di terzi che conseguano a titolo oneroso un diritto reale o personale di godimento del lastrico solare o di altra idonea superficie comune; 3) l'installazione di impianti centralizzati per la ricezione radiotelevisiva e per l'accesso a qualunque altro genere di flusso informativo, anche da satellite o via cavo, e i relativi collegamenti fino alla diramazione per le singole utenze, ad esclusione degli impianti che non comportano modifiche in grado di alterare la destinazione della cosa comune e di impedire agli altri condomini di farne uso secondo il loro diritto. L'amministratore e' tenuto a convocare l'assemblea entro trenta giorni dalla richiesta anche di un solo condomino interessato all'adozione delle deliberazioni di cui al precedente comma. La richiesta deve contenere l'indicazione del contenuto specifico e delle modalita' di esecuzione degli interventi proposti. In mancanza, l'amministratore deve invitare senza indugio il condomino proponente a fornire le necessarie integrazioni».

Art. 6

1. L'articolo 1122 del codice civile e' sostituito dal seguente:

«Art. 1122. - (Opere su parti di proprieta' o uso individuale). - Nell'unita' immobiliare di sua proprieta' ovvero nelle parti normalmente destinate all'uso comune, che siano state attribuite in proprieta' esclusiva o destinate all'uso individuale, il condomino non puo' eseguire opere che rechino danno alle parti comuni ovvero determinino pregiudizio alla stabilita', alla sicurezza o al decoro architettonico dell'edificio. In ogni caso e' data preventiva notizia all'amministratore che ne riferisce all'assemblea».

Art. 7

1. Dopo l'articolo 1122 del codice civile sono inseriti i seguenti:

«Art. 1122-bis. - (Impianti non centralizzati di ricezione radiotelevisiva e di produzione di energia da fonti rinnovabili). - Le installazioni di impianti non centralizzati per la ricezione radiotelevisiva e per l'accesso a qualunque altro genere di flusso informativo, anche da satellite o via cavo, e i relativi collegamenti fino al punto di diramazione per le singole utenze sono realizzati in modo da recare il minor pregiudizio alle parti comuni e alle unita' immobiliari di proprieta' individuale, preservando in ogni caso il decoro architettonico dell'edificio, salvo quanto previsto in materia di reti pubbliche. E' consentita l'installazione di impianti per la produzione di energia da fonti rinnovabili destinati al servizio di singole unita' del condominio sul lastrico solare, su ogni altra idonea superficie comune e sulle parti di proprieta' individuale dell'interessato. Qualora si rendano necessarie modificazioni delle parti comuni, l'interessato ne da' comunicazione all'amministratore indicando il contenuto specifico e le modalita' di esecuzione degli interventi. L'assemblea puo' prescrivere, con la maggioranza di cui al quinto comma dell'articolo 1136, adeguate modalita' alternative di esecuzione o imporre cautele a salvaguardia della stabilita', della sicurezza o del decoro architettonico dell'edificio e, ai fini dell'installazione degli impianti di cui al secondo comma, provvede, a richiesta degli interessati, a ripartire l'uso del lastrico solare e delle altre superfici comuni, salvaguardando le diverse forme di utilizzo previste dal regolamento di condominio o comunque in atto. L'assemblea, con la medesima maggioranza, puo' altresi' subordinare l'esecuzione alla prestazione, da parte dell'interessato, di idonea garanzia per i danni eventuali. L'accesso alle unita' immobiliari di proprieta' individuale deve essere consentito ove necessario per la progettazione e per l'esecuzione delle opere. Non sono soggetti ad autorizzazione gli impianti destinati alle singole unita' abitative.

Art. 1122-ter. - (Impianti di videosorveglianza sulle parti comuni). - Le deliberazioni concernenti l'installazione sulle parti comuni dell'edificio di impianti volti a consentire la videosorveglianza su di esse sono approvate dall'assemblea con la maggioranza di cui al secondo comma dell'articolo 1136».

Art. 8

1. All'articolo 1124 del codice civile sono apportate le seguenti modificazioni:

a) il primo comma e' sostituito dal seguente: «Le scale e gli ascensori sono mantenuti e sostituiti dai proprietari delle unita' immobiliari a cui servono. La spesa relativa e' ripartita tra essi, per meta' in ragione del valore delle singole unita' immobiliari e per l'altra meta' esclusivamente in misura proporzionale all'altezza di ciascun piano dal suolo»;

b) la rubrica e' sostituita dalla seguente: «Manutenzione e sostituzione delle scale e degli ascensori».

Art. 9

1. L'articolo 1129 del codice civile e' sostituito dal seguente:

«Art. 1129. - (Nomina, revoca ed obblighi dell'amministratore). - Quando i condomini sono piu' di otto, se l'assemblea non vi provvede, la nomina di un amministratore e' fatta dall'autorita' giudiziaria su ricorso di uno o piu' condomini o dell'amministratore dimissionario. Contestualmente all'accettazione della nomina e ad ogni rinnovo dell'incarico, l'amministratore comunica i propri dati anagrafici e professionali, il codice fiscale, o, se si tratta di societa', anche la sede legale e la denominazione, il locale ove si trovano i registri di cui ai numeri 6) e 7) dell'articolo 1130, nonche' i giorni e le ore in cui ogni interessato, previa richiesta all'amministratore, puo' prenderne gratuitamente visione e ottenere, previo rimborso della spesa, copia da lui firmata. L'assemblea puo' subordinare la nomina dell'amministratore alla presentazione ai condomini di una polizza individuale di assicurazione per la responsabilita' civile per gli atti compiuti nell'esercizio del mandato. L'amministratore e' tenuto altresi' ad adeguare i massimali della polizza se nel periodo del suo incarico l'assemblea deliberi lavori straordinari. Tale adeguamento non deve essere inferiore all'importo di spesa deliberato e deve essere effettuato contestualmente all'inizio dei lavori. Nel caso in cui l'amministratore sia coperto da una polizza di assicurazione per la responsabilita' civile professionale generale per l'intera attivita' da lui svolta, tale polizza deve essere integrata con una dichiarazione dell'impresa di assicurazione che garantisca le condizioni previste dal periodo precedente per lo specifico condominio. Sul luogo di accesso al condominio o di maggior uso comune, accessibile anche ai terzi, e' affissa l'indicazione delle generalita', del domicilio e dei recapiti, anche telefonici, dell'amministratore. In mancanza dell'amministratore, sul luogo di accesso al condominio o di maggior uso comune, accessibile anche ai terzi, e' affissa l'indicazione delle generalita' e dei recapiti, anche telefonici, della persona che svolge funzioni analoghe a quelle dell'amministratore. L'amministratore e' obbligato a far transitare le somme ricevute a qualunque titolo dai condomini o da terzi, nonche' quelle a qualsiasi titolo erogate per conto del condominio, su uno specifico conto corrente, postale o bancario, intestato al condominio; ciascun condomino, per il tramite dell'amministratore, puo' chiedere di prendere visione ed estrarre copia, a proprie spese, della rendicontazione periodica. Alla cessazione dell'incarico l'amministratore e' tenuto alla consegna di tutta la documentazione in suo possesso afferente al condominio e ai singoli condomini e ad eseguire le attivita' urgenti al fine di evitare pregiudizi agli interessi comuni senza diritto ad ulteriori compensi. Salvo che sia stato espressamente dispensato dall'assemblea, l'amministratore e' tenuto ad agire per la riscossione forzosa delle somme dovute dagli obbligati entro sei mesi dalla chiusura dell'esercizio nel quale il credito esigibile e' compreso, anche ai sensi dell'articolo 63, primo comma, delle disposizioni per l'attuazione del presente codice. L'incarico di amministratore ha durata di un anno e si intende rinnovato per eguale durata. L'assemblea convocata per la revoca o le dimissioni delibera in ordine alla nomina del nuovo amministratore. La revoca dell'amministratore puo' essere deliberata in ogni tempo dall'assemblea, con la maggioranza prevista per la sua nomina oppure con le modalita' previste dal regolamento di condominio. Puo' altresi' essere disposta dall'autorita' giudiziaria, su ricorso di ciascun condomino, nel caso previsto dal quarto comma dell'articolo 1131, se non rende il conto della gestione, ovvero in caso di gravi irregolarita'. Nei casi in cui siano emerse gravi irregolarita' fiscali o di non ottemperanza a quanto disposto dal numero 3) del dodicesimo comma del presente articolo, i condomini, anche singolarmente, possono chiedere la convocazione dell'assemblea per far cessare la violazione e revocare il mandato all'amministratore. In caso di mancata revoca da parte dell'assemblea, ciascun condomino puo' rivolgersi all'autorita' giudiziaria; in caso di accoglimento della domanda, il ricorrente, per le spese legali, ha titolo alla rivalsa nei confronti del condominio, che a sua volta puo' rivalersi nei confronti dell'amministratore revocato. Costituiscono, tra le altre, gravi irregolarita': 1) l'omessa convocazione dell'assemblea per l'approvazione del rendiconto condominiale, il ripetuto rifiuto di convocare l'assemblea per la revoca e per la nomina del nuovo amministratore o negli altri casi previsti dalla legge; 2) la mancata esecuzione di provvedimenti giudiziari e amministrativi, nonche' di deliberazioni dell'assemblea; 3) la mancata apertura ed utilizzazione del conto di cui al settimo comma; 4) la gestione secondo modalita' che possono generare possibilita' di confusione tra il patrimonio del condominio e il patrimonio personale dell'amministratore o di altri condomini; 5) l'aver acconsentito, per un credito insoddisfatto, alla cancellazione delle formalita' eseguite nei registri immobiliari a tutela dei diritti del condominio; 6) qualora sia stata promossa azione giudiziaria per la riscossione delle somme dovute al condominio, l'aver omesso di curare diligentemente l'azione e la conseguente esecuzione coattiva; 7) l'inottemperanza agli obblighi di cui all'articolo 1130, numeri 6), 7) e 9); 8) l'omessa, incompleta o inesatta comunicazione dei dati di cui al secondo comma del presente articolo. In caso di revoca da parte dell'autorita' giudiziaria, l'assemblea non puo' nominare nuovamente l'amministratore revocato. L'amministratore, all'atto dell'accettazione della nomina e del suo rinnovo, deve specificare analiticamente, a pena di nullita' della nomina stessa, l'importo dovuto a titolo di compenso per l'attivita' svolta. Per quanto non disciplinato dal presente articolo si applicano le disposizioni di cui alla sezione I del capo IX del titolo III del libro IV. Il presente articolo si applica anche agli edifici di alloggi di edilizia popolare ed economica, realizzati o recuperati da enti pubblici a totale partecipazione pubblica o con il concorso dello Stato, delle regioni, delle province o dei comuni, nonche' a quelli realizzati da enti pubblici non economici o societa' private senza scopo di lucro con finalita' sociali proprie dell'edilizia residenziale pubblica».

Art. 10

1. L'articolo 1130 del codice civile e' sostituito dal seguente:

«Art. 1130. - (Attribuzioni dell'amministratore). - L'amministratore, oltre a quanto previsto dall'articolo 1129 e dalle vigenti disposizioni di legge, deve: 1) eseguire le deliberazioni dell'assemblea, convocarla annualmente per l'approvazione del rendiconto condominiale di cui all'articolo 1130-bis e curare l'osservanza del regolamento di condominio; 2) disciplinare l'uso delle cose comuni e la fruizione dei servizi nell'interesse comune, in modo che ne sia assicurato il miglior godimento a ciascuno dei condomini; 3) riscuotere i contributi ed erogare le spese occorrenti per la manutenzione ordinaria delle parti comuni dell'edificio e per l'esercizio dei servizi comuni; 4) compiere gli atti conservativi relativi alle parti comuni dell'edificio; 5) eseguire gli adempimenti fiscali; 6) curare la tenuta del registro di anagrafe condominiale contenente le generalita' dei singoli proprietari e dei titolari di diritti reali e di diritti personali di godimento, comprensive del codice fiscale e della residenza o domicilio, i dati catastali di ciascuna unita' immobiliare, nonche' ogni dato relativo alle condizioni di sicurezza. Ogni variazione dei dati deve essere comunicata all'amministratore in forma scritta entro sessanta giorni. L'amministratore, in caso di inerzia, mancanza o incompletezza delle comunicazioni, richiede con lettera raccomandata le informazioni necessarie alla tenuta del registro di anagrafe. Decorsi trenta giorni, in caso di omessa o incompleta risposta, l'amministratore acquisisce le informazioni necessarie, addebitandone il costo ai responsabili; 7) curare la tenuta del registro dei verbali delle assemblee, del registro di nomina e revoca dell'amministratore e del registro di contabilita'. Nel registro dei verbali delle assemblee sono altresi' annotate: le eventuali mancate costituzioni dell'assemblea, le deliberazioni nonche' le brevi dichiarazioni rese dai condomini che ne hanno fatto richiesta; allo stesso registro e' allegato il regolamento di condominio, ove adottato. Nel registro di nomina e revoca dell'amministratore sono annotate, in ordine cronologico, le date della nomina e della revoca di ciascun amministratore del condominio, nonche' gli estremi del decreto in caso di provvedimento giudiziale. Nel registro di contabilita' sono annotati in ordine cronologico, entro trenta giorni da quello dell'effettuazione, i singoli movimenti in entrata ed in uscita. Tale registro puo' tenersi anche con modalita' informatizzate; 8) conservare tutta la documentazione inerente alla propria gestione riferibile sia al rapporto con i condomini sia allo stato tecnico-amministrativo dell'edificio e del condominio; 9) fornire al condomino che ne faccia richiesta attestazione relativa allo stato dei pagamenti degli oneri condominiali e delle eventuali liti in corso; 10) redigere il rendiconto condominiale annuale della gestione e convocare l'assemblea per la relativa approvazione entro centottanta giorni».

Art. 11

1. Dopo l'articolo 1130 del codice civile e' inserito il seguente:

«Art. 1130-bis. - (Rendiconto condominiale). - Il rendiconto condominiale contiene le voci di entrata e di uscita ed ogni altro dato inerente alla situazione patrimoniale del condominio, ai fondi disponibili ed alle eventuali riserve, che devono essere espressi in modo da consentire l'immediata verifica. Si compone di un registro di contabilita', di un riepilogo finanziario, nonche' di una nota sintetica esplicativa della gestione con l'indicazione anche dei rapporti in corso e delle questioni pendenti. L'assemblea condominiale puo', in qualsiasi momento o per piu' annualita' specificamente identificate, nominare un revisore che verifichi la contabilita' del condominio. La deliberazione e' assunta con la maggioranza prevista per la nomina dell'amministratore e la relativa spesa e' ripartita fra tutti i condomini sulla base dei millesimi di proprieta'. I condomini e i titolari di diritti reali o di godimento sulle unita' immobiliari possono prendere visione dei documenti giustificativi di spesa in ogni tempo ed estrarne copia a proprie spese. Le scritture e i documenti giustificativi devono essere conservati per dieci anni dalla data della relativa registrazione. L'assemblea puo' anche nominare, oltre all'amministratore, un consiglio di condominio composto da almeno tre condomini negli edifici di almeno dodici unita' immobiliari. Il consiglio ha funzioni consultive e di controllo».

Art. 12

1. Al primo comma dell'articolo 1131 del codice civile, le parole: «dall'articolo precedente» sono sostituite dalle seguenti: «dall'articolo 1130».

Art. 13

1. L'articolo 1134 del codice civile e' sostituito dal seguente: «Art. 1134. - (Gestione di iniziativa individuale). - Il condomino che ha assunto la gestione delle parti comuni senza autorizzazione dell'amministratore o dell'assemblea non ha diritto al rimborso, salvo che si tratti di spesa urgente».

2. All'articolo 1135 del codice civile sono apportate le seguenti modificazioni: a) al primo comma, il numero 4) e' sostituito dal seguente: «4) alle opere di manutenzione straordinaria e alle innovazioni, costituendo obbligatoriamente un fondo speciale di importo pari all'ammontare dei lavori»; b) e' aggiunto, in fine, il seguente comma: «L'assemblea puo' autorizzare l'amministratore a partecipare e collaborare a progetti, programmi e iniziative territoriali promossi dalle istituzioni locali o da soggetti privati qualificati, anche mediante opere di risanamento di parti comuni degli immobili nonche' di demolizione, ricostruzione e messa in sicurezza statica, al fine di favorire il recupero del patrimonio edilizio esistente, la vivibilita' urbana, la sicurezza e la sostenibilita' ambientale della zona in cui il condominio e' ubicato».

Art. 14

1. L'articolo 1136 del codice civile e' sostituito dal seguente:

«Art. 1136. - (Costituzione dell'assemblea e validita' delle deliberazioni). - L'assemblea in prima convocazione e' regolarmente costituita con l'intervento di tanti condomini che rappresentino i due terzi del valore dell'intero edificio e la maggioranza dei partecipanti al condominio. Sono valide le deliberazioni approvate con un numero di voti che rappresenti la maggioranza degli intervenuti e almeno la meta' del valore dell'edificio. Se l'assemblea in prima convocazione non puo' deliberare per mancanza di numero legale, l'assemblea in seconda convocazione delibera in un giorno successivo a quello della prima e, in ogni caso, non oltre dieci giorni dalla medesima. L'assemblea in seconda convocazione e' regolarmente costituita con l'intervento di tanti condomini che rappresentino almeno un terzo del valore dell'intero edificio e un terzo dei partecipanti al condominio. La deliberazione e' valida se approvata dalla maggioranza degli intervenuti con un numero di voti che rappresenti almeno un terzo del valore dell'edificio. Le deliberazioni che concernono la nomina e la revoca dell'amministratore o le liti attive e passive relative a materie che esorbitano dalle attribuzioni dell'amministratore medesimo, le deliberazioni che concernono la ricostruzione dell'edificio o riparazioni straordinarie di notevole entita' e le deliberazioni di cui agli articoli 1117-quater, 1120, secondo comma, 1122-ter nonche' 1135, terzo comma, devono essere sempre approvate con la maggioranza stabilita dal secondo comma del presente articolo. Le deliberazioni di cui all'articolo 1120, primo comma, e all'articolo 1122-bis, terzo comma, devono essere approvate dall'assemblea con un numero di voti che rappresenti la maggioranza degli intervenuti ed almeno i due terzi del valore dell'edificio. L'assemblea non puo' deliberare, se non consta che tutti gli aventi diritto sono stati regolarmente convocati. Delle riunioni dell'assemblea si redige processo verbale da trascrivere nel registro tenuto dall'amministratore».

Art. 15

1. L'articolo 1137 del codice civile e' sostituito dal seguente:

«Art. 1137. - (Impugnazione delle deliberazioni dell'assemblea). - Le deliberazioni prese dall'assemblea a norma degli articoli precedenti sono obbligatorie per tutti i condomini. Contro le deliberazioni contrarie alla legge o al regolamento di condominio ogni condomino assente, dissenziente o astenuto puo' adire l'autorita' giudiziaria chiedendone l'annullamento nel termine perentorio di trenta giorni, che decorre dalla data della deliberazione per i dissenzienti o astenuti e dalla data di comunicazione della deliberazione per gli assenti. L'azione di annullamento non sospende l'esecuzione della deliberazione, salvo che la sospensione sia ordinata dall'autorita' giudiziaria. L'istanza per ottenere la sospensione proposta prima dell'inizio della causa di merito non sospende ne' interrompe il termine per la proposizione dell'impugnazione della deliberazione. Per quanto non espressamente previsto, la sospensione e' disciplinata dalle norme di cui al libro IV, titolo I, capo III, sezione I, con l'esclusione dell'articolo 669-octies, sesto comma, del codice di procedura civile».

Art. 16

1. All'articolo 1138 del codice civile sono apportate le seguenti modificazioni:

a) il terzo comma e' sostituito dal seguente: «Il regolamento deve essere approvato dall'assemblea con la maggioranza stabilita dal secondo comma dell'articolo 1136 ed allegato al registro indicato dal numero 7) dell'articolo 1130. Esso puo' essere impugnato a norma dell'articolo 1107»;

b) e' aggiunto, in fine, il seguente comma: «Le norme del regolamento non possono vietare di possedere o detenere animali domestici».

Art. 17

1. Al numero 1) del primo comma dell'articolo 2659 del codice civile sono aggiunte, in fine, le seguenti parole: «. Per i condominii devono essere indicati l'eventuale denominazione, l'ubicazione e il codice fiscale».

Art. 18

1. L'articolo 63 delle disposizioni per l'attuazione del codice civile e disposizioni transitorie, di cui al regio decreto 30 marzo 1942, n. 318, e' sostituito dal seguente:

«Art. 63. - Per la riscossione dei contributi in base allo stato di ripartizione approvato dall'assemblea, l'amministratore, senza bisogno di autorizzazione di questa, puo' ottenere un decreto di ingiunzione immediatamente esecutivo, nonostante opposizione, ed e' tenuto a comunicare ai creditori non ancora soddisfatti che lo interpellino i dati dei condomini morosi. I creditori non possono agire nei confronti degli obbligati in regola con i pagamenti, se non dopo l'escussione degli altri condomini. In caso di mora nel pagamento dei contributi che si sia protratta per un semestre, l'amministratore puo' sospendere il condomino moroso dalla fruizione dei servizi comuni suscettibili di godimento separato. Chi subentra nei diritti di un condomino e' obbligato solidalmente con questo al pagamento dei contributi relativi all'anno in corso e a quello precedente. Chi cede diritti su unita' immobiliari resta obbligato solidalmente con l'avente causa per i contributi maturati fino al momento in cui e' trasmessa all'amministratore copia autentica del titolo che determina il trasferimento del diritto».

Art. 19

1. L'articolo 64 delle disposizioni per l'attuazione del codice civile e disposizioni transitorie e' sostituito dal seguente:

«Art. 64. - Sulla revoca dell'amministratore, nei casi indicati dall'undicesimo comma dell'articolo 1129 e dal quarto comma dell'articolo 1131 del codice, il tribunale provvede in camera di consiglio, con decreto motivato, sentito l'amministratore in contraddittorio con il ricorrente. Contro il provvedimento del tribunale puo' essere proposto reclamo alla corte d'appello nel termine di dieci giorni dalla notificazione o dalla comunicazione».

Art. 20

1. All'articolo 66 delle disposizioni per l'attuazione del codice civile e disposizioni transitorie, il terzo comma e' sostituito dai seguenti:

«L'avviso di convocazione, contenente specifica indicazione dell'ordine del giorno, deve essere comunicato almeno cinque giorni prima della data fissata per l'adunanza in prima convocazione, a mezzo di posta raccomandata, posta elettronica certificata, fax o tramite consegna a mano, e deve contenere l'indicazione del luogo e dell'ora della riunione. In caso di omessa, tardiva o incompleta convocazione degli aventi diritto, la deliberazione assembleare e' annullabile ai sensi dell'articolo 1137 del codice su istanza dei dissenzienti o assenti perche' non ritualmente convocati. L'assemblea in seconda convocazione non puo' tenersi nel medesimo giorno solare della prima. L'amministratore ha facolta' di fissare piu' riunioni consecutive in modo da assicurare lo svolgimento dell'assemblea in termini brevi, convocando gli aventi diritto con un unico avviso nel quale sono indicate le ulteriori date ed ore di eventuale prosecuzione dell'assemblea validamente costituitasi».

Art. 21

1. L'articolo 67 delle disposizioni per l'attuazione del codice civile e disposizioni transitorie e' sostituito dal seguente:

«Art. 67. - Ogni condomino puo' intervenire all'assemblea anche a mezzo di rappresentante, munito di delega scritta. Se i condomini sono piu' di venti, il delegato non puo' rappresentare piu' di un quinto dei condomini e del valore proporzionale. Qualora un'unita' immobiliare appartenga in proprieta' indivisa a piu' persone, queste hanno diritto a un solo rappresentante nell'assemblea, che e' designato dai comproprietari interessati a norma dell'articolo 1106 del codice. Nei casi di cui all'articolo 1117-bis del codice, quando i partecipanti sono complessivamente piu' di sessanta, ciascun condominio deve designare, con la maggioranza di cui all'articolo 1136, quinto comma, del codice, il proprio rappresentante all'assemblea per la gestione ordinaria delle parti comuni a piu' condominii e per la nomina dell'amministratore. In mancanza, ciascun partecipante puo' chiedere che l'autorita' giudiziaria nomini il rappresentante del proprio condominio. Qualora alcuni dei condominii interessati non abbiano nominato il proprio rappresentante, l'autorita' giudiziaria provvede alla nomina su ricorso anche di uno solo dei rappresentanti gia' nominati, previa diffida a provvedervi entro un congruo termine. La diffida ed il ricorso all'autorita' giudiziaria sono notificati al condominio cui si riferiscono in persona dell'amministratore o, in mancanza, a tutti i condomini. Ogni limite o condizione al potere di rappresentanza si considera non apposto. Il rappresentante risponde con le regole del mandato e comunica tempestivamente all'amministratore di ciascun condominio l'ordine del giorno e le decisioni assunte dall'assemblea dei rappresentanti dei condominii. L'amministratore riferisce in assemblea. All'amministratore non possono essere conferite deleghe per la partecipazione a qualunque assemblea. L'usufruttuario di un piano o porzione di piano dell'edificio esercita il diritto di voto negli affari che attengono all'ordinaria amministrazione e al semplice godimento delle cose e dei servizi comuni. Nelle altre deliberazioni, il diritto di voto spetta ai proprietari, salvi i casi in cui l'usufruttuario intenda avvalersi del diritto di cui all'articolo 1006 del codice ovvero si tratti di lavori od opere ai sensi degli articoli 985 e 986 del codice. In tutti questi casi l'avviso di convocazione deve essere comunicato sia all'usufruttuario sia al nudo proprietario. Il nudo proprietario e l'usufruttuario rispondono solidalmente per il pagamento dei contributi dovuti all'amministrazione condominiale».

Art. 22

1. L'articolo 68 delle disposizioni per l'attuazione del codice civile e disposizioni transitorie e' sostituito dal seguente:

«Art. 68. - Ove non precisato dal titolo ai sensi dell'articolo 1118, per gli effetti indicati dagli articoli 1123, 1124, 1126 e 1136 del codice, il valore proporzionale di ciascuna unita' immobiliare e' espresso in millesimi in apposita tabella allegata al regolamento di condominio. Nell'accertamento dei valori di cui al primo comma non si tiene conto del canone locatizio, dei miglioramenti e dello stato di manutenzione di ciascuna unita' immobiliare».

Art. 23

1. L'articolo 69 delle disposizioni per l'attuazione del codice civile e disposizioni transitorie e' sostituito dal seguente:

«Art. 69. - I valori proporzionali delle singole unita' immobiliari espressi nella tabella millesimale di cui all'articolo 68 possono essere rettificati o modificati all'unanimita'. Tali valori possono essere rettificati o modificati, anche nell'interesse di un solo condomino, con la maggioranza prevista dall'articolo 1136, secondo comma, del codice, nei seguenti casi: 1) quando risulta che sono conseguenza di un errore; 2) quando, per le mutate condizioni di una parte dell'edificio, in conseguenza di sopraelevazione, di incremento di superfici o di incremento o diminuzione delle unita' immobiliari, e' alterato per piu' di un quinto il valore proporzionale dell'unita' immobiliare anche di un solo condomino. In tal caso il relativo costo e' sostenuto da chi ha dato luogo alla variazione. Ai soli fini della revisione dei valori proporzionali espressi nella tabella millesimale allegata al regolamento di condominio ai sensi dell'articolo 68, puo' essere convenuto in giudizio unicamente il condominio in persona dell'amministratore. Questi e' tenuto a darne senza indugio notizia all'assemblea dei condomini. L'amministratore che non adempie a quest'obbligo puo' essere revocato ed e' tenuto al risarcimento degli eventuali danni. Le norme di cui al presente articolo si applicano per la rettifica o la revisione delle tabelle per la ripartizione delle spese redatte in applicazione dei criteri legali o convenzionali».

Art. 24

1. L'articolo 70 delle disposizioni per l'attuazione del codice civile e disposizioni transitorie e' sostituito dal seguente:

«Art. 70. - Per le infrazioni al regolamento di condominio puo' essere stabilito, a titolo di sanzione, il pagamento di una somma fino ad euro 200 e, in caso di recidiva, fino ad euro 800. La somma e' devoluta al fondo di cui l'amministratore dispone per le spese ordinarie».

Art. 25

1. Dopo l'articolo 71 delle disposizioni per l'attuazione del codice civile e disposizioni transitorie sono inseriti i seguenti:

«Art. 71-bis. - Possono svolgere l'incarico di amministratore di condominio coloro: a) che hanno il godimento dei diritti civili; b) che non sono stati condannati per delitti contro la pubblica amministrazione, l'amministrazione della giustizia, la fede pubblica, il patrimonio o per ogni altro delitto non colposo per il quale la legge commina la pena della reclusione non inferiore, nel minimo, a due anni e, nel massimo, a cinque anni; c) che non sono stati sottoposti a misure di prevenzione divenute definitive, salvo che non sia intervenuta la riabilitazione; d) che non sono interdetti o inabilitati; e) il cui nome non risulta annotato nell'elenco dei protesti cambiari; f) che hanno conseguito il diploma di scuola secondaria di secondo grado; g) che hanno frequentato un corso di formazione iniziale e svolgono attivita' di formazione periodica in materia di amministrazione condominiale. I requisiti di cui alle lettere f) e g) del primo comma non sono necessari qualora l'amministratore sia nominato tra i condomini dello stabile. Possono svolgere l'incarico di amministratore di condominio anche societa' di cui al titolo V del libro V del codice. In tal caso, i requisiti devono essere posseduti dai soci illimitatamente responsabili, dagli amministratori e dai dipendenti incaricati di svolgere le funzioni di amministrazione dei condominii a favore dei quali la societa' presta i servizi. La perdita dei requisiti di cui alle lettere a), b), c), d) ed e) del primo comma comporta la cessazione dall'incarico. In tale evenienza ciascun condomino puo' convocare senza formalita' l'assemblea per la nomina del nuovo amministratore. A quanti hanno svolto attivita' di amministrazione di condominio per almeno un anno, nell'arco dei tre anni precedenti alla data di entrata in vigore della presente disposizione, e' consentito lo svolgimento dell'attivita' di amministratore anche in mancanza dei requisiti di cui alle lettere f) e g) del primo comma. Resta salvo l'obbligo di formazione periodica.

Art. 71-ter. - Su richiesta dell'assemblea, che delibera con la maggioranza di cui al secondo comma dell'articolo 1136 del codice, l'amministratore e' tenuto ad attivare un sito internet del condominio che consenta agli aventi diritto di consultare ed estrarre copia in formato digitale dei documenti previsti dalla delibera assembleare. Le spese per l'attivazione e la gestione del sito internet sono poste a carico dei condomini.

Art. 71-quater - Per controversie in materia di condominio, ai sensi dell'articolo 5, comma 1, del decreto legislativo 4 marzo 2010, n. 28, si intendono quelle derivanti dalla violazione o dall'errata applicazione delle disposizioni del libro III, titolo VII, capo II, del codice e degli articoli da 61 a 72 delle presenti disposizioni per l'attuazione del codice. La domanda di mediazione deve essere presentata, a pena di inammissibilita', presso un organismo di mediazione ubicato nella circoscrizione del tribunale nella quale il condominio e' situato. Al procedimento e' legittimato a partecipare l'amministratore, previa delibera assembleare da assumere con la maggioranza di cui all'articolo 1136, secondo comma, del codice. Se i termini di comparizione davanti al mediatore non consentono di assumere la delibera di cui al terzo comma, il mediatore dispone, su istanza del condominio, idonea proroga della prima comparizione. La proposta di mediazione deve essere approvata dall'assemblea con la maggioranza di cui all'articolo 1136, secondo comma, del codice. Se non si raggiunge la predetta maggioranza, la proposta si deve intendere non accettata. Il mediatore fissa il termine per la proposta di conciliazione di cui all'articolo 11 del decreto legislativo 4 marzo 2010, n. 28, tenendo conto della necessita' per l'amministratore di munirsi della delibera assembleare».

Art. 26

1. Dopo l'articolo 155 delle disposizioni per l'attuazione del codice civile e disposizioni transitorie e' inserito il seguente:

«Art. 155-bis. - L'assemblea, ai fini dell'adeguamento degli impianti non centralizzati di cui all'articolo 1122-bis, primo comma, del codice, gia' esistenti alla data di entrata in vigore del predetto articolo, adotta le necessarie prescrizioni con le maggioranze di cui all'articolo 1136, commi primo, secondo e terzo, del codice».

Art. 27

1. All'articolo 2, comma 1, della legge 9 gennaio 1989, n. 13, le parole: «con le maggioranze previste dall'articolo 1136, secondo e terzo comma, del codice civile» sono sostituite dalle seguenti: «con le maggioranze previste dal secondo comma dell'articolo 1120 del codice civile».

Art. 28

1. All'articolo 26, comma 2, della legge 9 gennaio 1991, n. 10, le parole: «semplice delle quote millesimali rappresentate dagli intervenuti in assemblea» sono sostituite dalle seguenti: «degli intervenuti, con un numero di voti che rappresenti almeno un terzo del valore dell'edificio».

2. All'articolo 26, comma 5, della legge 9 gennaio 1991, n. 10, le parole: «l'assemblea di condominio decide a maggioranza, in deroga agli articoli 1120 e 1136 del codice civile» sono sostituite dalle seguenti: «l'assemblea di condominio delibera con le maggioranze previste dal secondo comma dell'articolo 1120 del codice civile».

Art. 29

1. All'articolo 2-bis, comma 13, del decreto-legge 23 gennaio 2001, n. 5, convertito, con modificazioni, dalla legge 20 marzo 2001, n. 66, le parole: «l'articolo 1136, terzo comma, dello stesso codice» sono sostituite dalle seguenti: «l'articolo 1120, secondo comma, dello stesso codice».

Art. 30

1. I contributi per le spese di manutenzione ordinaria e straordinaria nonche' per le innovazioni sono prededucibili ai sensi dell'articolo 111 del regio decreto 16 marzo 1942, n. 267, e successive modificazioni, se divenute esigibili ai sensi dell'articolo 63, primo comma, delle disposizioni per l'attuazione del codice civile e disposizioni transitorie, come sostituito dall'articolo 18 della presente legge, durante le procedure concorsuali.

Art. 31

1. All'articolo 23, primo comma, del codice di procedura civile, dopo le parole: «per le cause tra condomini» sono inserite le seguenti: «, ovvero tra condomini e condominio,».

Art. 32

1. Le disposizioni di cui alla presente legge entrano in vigore dopo sei mesi dalla data di pubblicazione della medesima nella Gazzetta Ufficiale.

La presente legge, munita del sigillo dello Stato, sara' inserita nella Raccolta ufficiale degli atti normativi della Repubblica italiana. E' fatto obbligo a chiunque spetti di osservarla e di farla osservare come legge dello Stato.

Data a Roma, addi' 11 dicembre 2012.

NAPOLITANO

Monti, Presidente del Consiglio dei Ministri

Visto, il Guardasigilli: Severino

JAVA - ENCRYPT & DECRYPT CON RSA 1024 bit , DOPPIA CHIAVE Esempio n.1 (Codice)

$
0
0

JAVA - ENCRYPT & DECRYPT CON RSA 1024 bit , DOPPIA CHIAVE Esempio n.1 (Codice)


  


Oggi vi metto a disposizione una funzione che vi permette di Criptare il testo e Decriptarlo a vostro piacimento, utilizzando la doppia chiave Pubblica per criptare e solo avendo la chiave Private potete decriptare il testo.

       CODICE JAVA :
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.security.InvalidKeyException; 
import java.security.KeyFactory; 
import java.security.KeyPair; 
import java.security.KeyPairGenerator; 
import java.security.NoSuchAlgorithmException; 
import java.security.PrivateKey; 
import java.security.PublicKey; 
import java.security.Security; 
import java.security.spec.X509EncodedKeySpec; 
import java.util.Arrays; 
import javax.crypto.BadPaddingException; 
import javax.crypto.Cipher; 
import javax.crypto.IllegalBlockSizeException; 
import javax.crypto.NoSuchPaddingException; 

import org.bouncycastle.jce.provider.BouncyCastleProvider; 

public class Exemple { 

    public static void main(String argsd[]) throws Exception { 

        Security.addProvider(new BouncyCastleProvider()); 
        System.out.println("Inizio generazione chiavi RSA"); 
        // inizializza un generatore di coppie di chiavi usando RSA 
        KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "BC"); 
        kpg.initialize(1024); 
        KeyPair kp = kpg.generateKeyPair(); 
        System.out.println("Chiavi generate!\n"); 

        // SALVA CHIAVE PUBBLICA 
String publicKeystore ="publicRSA.key";//path 
    byte[] publicBytes;
        publicBytes= kp.getPublic().getEncoded(); 
        // salva nel keystore selezionato dall'utente 
        FileOutputStream fos = new FileOutputStream(publicKeystore); 
        fos.write(publicBytes); 
        fos.close(); 

        // SALVA CHIAVE PRIVATA 

        String privateKeystore ="privateRSA.key";// path 
        // ottieni la versione codificata in PKCS#8 
        byte[] privateBytes = kp.getPrivate().getEncoded(); 

        fos = new FileOutputStream(privateKeystore); 
        fos.write(privateBytes); 
        fos.close(); 

        // LEGGI CHIAVE PUBBLICA CODIFICATA IN X509 
        FileInputStream fis = new FileInputStream(publicKeystore); 
        byte[] publicKeyBytes = new byte[fis.available()]; 
         
        fis.read(publicKeyBytes); 
         
        fis.close();  
        // CONVERTI CHIAVE PUBBLICA DA X509 A CHIAVE UTILIZZABILE 

        // Inizializza convertitore da X.509 a chiave pubblica 
        X509EncodedKeySpec ks = new X509EncodedKeySpec(publicKeyBytes); 
        // Inizializza un KeyFactory per ricreare la chiave usando RSA 
        KeyFactory kf = KeyFactory.getInstance("RSA", "BC"); 
        // Crea una chiave pubblica usando generatePublic di KeyFactory in base
        // la chiave decodificata da ks 
        PublicKey publicKey = kf.generatePublic(ks); 
        // pubblica = publicKey; 
        byte[] temp = crypt(new String("Input message ... !!!!! ").getBytes("UTF8"), publicKey, 
                Cipher.ENCRYPT_MODE); 
        
        byte[] out = decrypt(temp,  kp.getPrivate()); 

        String risultato = new String(out,"UTF8");
        
        byte[] pp = risultato.getBytes("UTF8");

        System.out.println(Arrays.equals(pp, out)); 


    } 

    public static byte[] crypt(byte[] input, PublicKey publicKey, int mode) 
            throws InvalidKeyException, NoSuchAlgorithmException, 
            NoSuchPaddingException, IllegalBlockSizeException, 
            BadPaddingException { 
        System.out.print("\nInizio codifica"); 
        // Inizializzo un cifrario che usa come algoritmo RSA, come modalità ECB
        // e come padding PKCS1 
        Cipher cifrario = Cipher.getInstance("RSA/ECB/PKCS1Padding"); 
        System.out.print("."); 
        // Lo inizializzo dicendo modalità di codifica e chiave pubblica da 
        // usare 
        cifrario.init(mode, publicKey); 
        System.out.print("."); 
        // codifico e metto il risultato in encodeFile 
        byte[] encodeFile = cifrario.doFinal(input); 
        System.out.println(". Codifica terminata!"); 
        input = new byte[encodeFile.length]; 
        System.out.println("cifratura"); 
        return encodeFile; 
    } 

    public static byte[] decrypt(byte[] input, PrivateKey privateKey) 
            throws InvalidKeyException, NoSuchAlgorithmException, 
            NoSuchPaddingException, IllegalBlockSizeException, 
            BadPaddingException{ 

        System.out.print("\nInizio decodifica"); 
        Cipher cifrario = Cipher.getInstance("RSA/ECB/PKCS1Padding"); 
        System.out.print("."); 
        cifrario.init(Cipher.DECRYPT_MODE, privateKey); 
        System.out.print("."); 
        byte[] encodeFile = cifrario.doFinal(input); 
        System.out.println(". Decodifica terminata!"); 
        return encodeFile; 
    } 
}
 

Potete scaricare il file d'esempio :

Password :  "ImaginSystem" 
Link File Download : Download

By ImaginSystems & Queen Gin   

PC Professionale settembre 2013

$
0
0


Le 178 pagine di questo numero di settembre iniziano con un editoriale del direttore quanto mai veritiero.
I dispositivi tecnologici negli ultimi anni hanno fatto progressi incredibili. Quelle che rimangono indietro sono invece le batterie, incapaci di fornire energia a dispositivi sempre più esosi in quanto a richieste energetiche. D’altronde chi non ricorda la corsa alla miniaturizzazione dei cellulari dei primi anni 2000 (dura fino al 2008 all’incirca)? Poi, con l’avvento degli smartphone, di Android e delle app, lo schermo si è sempre di più ingrandito, con conseguente aumento del consumo energetico.
Le 8 pagine di questo articolo sono, per me, le più interessanti di questo numero, ed avrebbero meritato il focus del mese (riservato invece
Come sempre in questi casi, la prima parte dell’articolo riassume la situazione attuale, evidenziando la grande pervasività di questi componenti, auto comprese, come si vede da questa foto che raffigura le prime 2 pagine.



La trattazione, soprattutto in questa fase iniziale, è al livello di un testo di elettrotecnica, ma poi entra nello specifico delle ultime ricerche in questo campo.
Da quanto si percepisce però, sembra che grandi innovazioni epocali siano ben lungi dall’essere pronte per la realizzazione di massa. Litio-Polimeri. Litio-Ferro-Fostato e persino il grafene sono strade percorribili ed interessanti, ma viene da pensare che forse la strada migliore rimane ancora quella di ridurre al massimo il dispendio energetico dei dispositivi. Non per nulla l’ultima generazione di processori Intel per il mobile punta proprio in questa direzione.
Ad di là di questo bell’articolo, per le altre pagine presenti nella rivista verrebbe da dubitare che si tratti di una rivista informatica: musica liquida (ovvero via bit) in alta fedeltà e cinema pure esso in alta definizione, raggruppano parecchie pagine che forse non interesseranno a tutti (come a me, ad esempio), ma qualche estimatore lo si trova sempre.
Meglio la rubrica Hardware, questo mese piuttosto piena di prodotti interessanti ed intriganti.
Per primo segnalerei un buon tablet offerto ad un prezzo davvero concorrenziale, l’Acer Iconia A1-810, offerto a soli 169 euro.



Vanta un buon display da 7,9 pollici (ovviamente a colori), che consente di utilizzarlo anche come ebook reader, dove il polliciaggio assume una certa importanza. Riceve un voto non altissimo, un 7, imputabile alla mancanza di alcuni sensori (quello della luce ambientale ad esempio), al modulo 3G e alla fotocamera di scarsa qualità.
Altri prodotti interessanti non mancano: dal notebook Sony Vaio Fit 15 (decisamente bello) al videoregistratore Humax Digimax, dal monitor BenQ da 27 pollici in 3D ai dispositivi audio Jongo della Pure.
Ben presente anche la rubrica Software, che inizia parlando un browser validissimo ma spesso sottovalutato, Opera, giunto ora alla versione Next 15. Il browser norvegese riceve però un voto pari a 7,0: manca infatti di una valida gestione dei segnalibri (incredibile a dirsi ma è così). E rimane vero che si barcamena sempre tra un 2 e un 3% di diffusione. Chi, ad esempio, realizzando un sito web si preoccupa di testarlo anche con questo browser? In genere lo si fa sempre e solo per Internet Explorer e Firefox, magari, per i più scrupolosi, anche per Chrome, ma Opera rimane sempre il figlio di nessuno. Ed è un peccato, perchéè veloce e stabile, oltre che una vera fucina di nuove idee e innovazioni che quasi sempre vengono poi adottate dai concorrenti.
In questa rubrica ci si concentra poi su Adobe, recensendo Lightroom 5 e Illustrator CC (9,0 e 8,5 come rispettivi voti).

Pur non avendo una necessità diretta di allargare la mia rete Wi-Fi (inesistente, dato che uso la chiavetta e il Wi-Fi libero quando lo trovo) ho letto con grande interesse l’articolo a pag. 72 su come estendere la propria rete domestica utilizzando la tecnologia Powerline, ma non solo questa.
Informative ed esplicative al massimo le 2 pagine sotto rappresentate.



Illustrano la tecnologia su cui si basano le reti Wi-Fi e come agiscono i componenti che ne fanno parte. Per una volta il linguaggio non si spinge in tecnicismi spinti, e penso sia ben comprensibile da tutti i lettori.
Ricorda anche quali sono i possibili “disturbatori” del segnale, e sorprende pensare come riesca comunque a “sopravvivere” in presenza di forni a microonde, pareti con muri portanti, mobili con strutture metalliche e persino controller da gioco.
L’articolo però non si ferma qua, ma recensisce alcune soluzioni hardware a buon prezzo e facili da installare da chiunque. Due su tre sono appunto basate sulla tecnologia ibrida Wi-Fi/Powerline, che sfrutta la rete elettrica casalinga per portare il segnale internet nei locali dove arriva con difficoltà. Il Devolo dLan500, ad esempio, a fronte di un esborso tutto sommato contenuto (149€), offre una soluzione molto efficace e realizzabile con poca fatica. Se dovessi affrontare questo problema, penso proprio che seguirei questa strada.
Le immagini e i disegni raffigurati nell’articolo sono già ben chiari e comprensibili, ma per chi volesse vedere una bella immagine che chiarisce tutto, consiglierei la pagina pubblicitaria della TP-Link di pag. 16, in cui si vede un bello spaccato di una abitazione, con tanto di collegamenti tra i diversi ambienti.

Sorvolo bellamente sugli articoli dedicati ai nuovi processori AMD A10 (8 pagine) e sulle schede grafiche (ben 16 pagine) per giungere all’articolo sulla collaborazione online, in cui si fa il punto della situazione districandosi tra i vari DropBox, Google Drive, Sky Drive ed altri, allargandosi anche sulla condivisione dei progetti (GitHub ad esempio), sull’editing dei documenti e sul social.
Come da consuetudine dell’autore (Francesco Caccavella) l’articolo è molto lungo (18 pagine) ed offre uno spaccato veramente completo su questo argomento.

Torna la rubrica dei Libri, questo mese su 2 pagine ed in gran parte dedicata alle novità della casa editrice FAG. In fondo quale altra casa concentrarsi, visto che le novità librarie informatica sono ormai per il 90% ascrivibili a questa sola casa editrice?



Le 3 pagine della rubrica Sviluppo si concentra sullo sviluppo nel mondo Amazon, un settore un po’ di nicchia ma che presenta interessanti prospettive di crescita.



Sono pagine meramente introduttive, con qualche interessante dato statistico, ma nessun codice e nessuna reale implementazione. Chissà se nei prossimi mesi l’autore ritornerà su questo argomento entrando un po’ di più nel dettaglio.
Restando nel campo “programmazione” segnalerei io qualche cosa, e spero di farlo anche nei prossimi mesi.
Inizio con ReSharper della JetBrains. Sfido chiunque sviluppi da qualche anno con Visual Studio (in qualsiasi versione) a dire di non averne mai sentito parlare.



E’ in sostanza un plug-in per Visual Studio, tra l’altro già aggiornato dalla versione 2013 RC uscita proprio in questi giorni, che si integra perfettamente nell’IDE del programma, e fornisce una serie incredibile di utili funzionalità, spesso sovrapponendosi e migliorando alcune caratteristiche intrinseche di Visual Studio.
È completamente configurabile e dotato di una vaste serie di shortcut per accelerare e migliorare il proprio lavoro di sviluppo del codice.
Sul sito della JetBrains ci sono diversi video dimostrativi per iniziare ad impratichirsi con le sue numerose features.
Chi inizia ad usarlo, dopo poche settimane si accorgerà di trovarsi molto a disagio allorquando deve cambiare pc ed utilizzare un Visual Studio che non ce l’ha installato. Una sorta di menomazione che impedirà di procedere con sicurezza nella scrittura o nel miglioramento del codice.
Io personalmente lo uso sempre, e pur sfruttandone una minima parte delle sue innumerevoli funzionalità, lo trovo fantasticamente utile, direi quasi indispensabile, soprattutto per il refactoring e per i consigli sul codice in generale.
L’unica sua pecca, se vogliamo, è il prezzo, non proprio bassissimo.

Come si vede dall’immagine qua sotto, il prezzo è circa 134 euro per la versione “Personal” per il solo C# (niente VB quindi) – la mia - mentre la versione completa si attesta sui 180 euro.



Se si sviluppa codice a livello professionale, o si cerca il meglio assoluto anche per il proprio hobby, direi che sono soldi bene spesi, e subito ripagati dall’enorme aiuto che fornisce, quasi come se si avesse alle proprie spalle un tutor che ci assiste e ci consiglia in continuazione e con discrezione.

Ricordo infine che questo mese ritorna il magazine Easy con il suo secondo numero (di cui non so se ne entrerò in possesso di una copia).
Perché, propongo, non realizzare una magazine simile, anche bimestrale come questo, che tratta di software e programmazione? In Italia c’è un totale deserto in questo settore: in realtà esisterebbe IoProgrammo, ma non la considero una rivista all’altezza e di qualità.
Su questo campo la Mondadori potrebbe provare ad investire qualcosa.

Qua sotto la home page del Dvd “nella nuvola”, raggiungibile con il seguente codice: PCP1B270



Segnalerei la presenza di 2 utili tool, completamente gratuiti. Il primo è Right-Click Encrypter, che consente di cifrare non interi dischi, ma solo alcuni file e cartelle (situazione quasi sempre più frequente). Il secondo è  Free Pdf To Word Converter, per convertire, con la massima fedeltà possibile, un documento Word in Pdf.
Ci sono poi anche le recensioni, con relativi trailer, di altri giochi, oltre a quello recensito nelle ultime pagine della rivista.
Molto bella l’idea di inserire i video dimostrativi di alcuni dispositivi hardware testati, come il Sony Vaio, l’Acer Iconia e il Lacie 5Big Nas.
Guardate però il video sul Sony Vaio Fit: non è assolutamente innaturale, e persino scomodo, picchiettare sul pur bellissimo schermo in quanto Windows 8 impone la gesture?
Il touch screen è nato per gli smartphone e i tablet: per i pc, per cortesia, restiamo con mouse e tastiera.


SOMMARIO

First Looks


Editoriale Hardware
Scuola: Italia rimandata in digitale

- Il portatile universale secondo Sony: Vaio Fit 15
- Acer Iconia A1-810, tablet Android sotto i 200 euro
- Measy U2A: Mini Android per Smart Tv
- Humax Digimax Recorder, il videoregistratore digitale
- Grabber video a portata di mano, Epiphan Dvi2Usb 3.0
- iRig, registrazione digitale di qualità anche in viaggio
- Prestazioni e sostanza nel nuovo Nas Lacie 5big Pro
- BenQ XL2720T: 27 pollici per giocare in 3D
- Samsung Xpress M2875FD, l’Mfp ecologica che riduce i costi
- Jongo, audio multiroom compatto ed elegante
- La multifunzione da salotto: HP Envy 120

Software
Editoriale Software
L’altro lato della nuvola

- Opera rivoluziona il suo browser
- Protezione avanzata per i file con FlexRaid
- Nuovi tool di correzione delle foto per Lightroom 5
- Più produttivi con Illustrator CC

In profondità
Prove

Evoluzione grafica
Il confronto tra le schede grafiche che negli ultimi ventiquattro mesi hanno segnato il settore dei Pc desktop per giocare.

Apu Amd: la terza generazione
Richland, Kabini e Temash: tre diverse ricette di Amd per tablet, ibridi e portatili.

Musica liquida
Nove Dac di fascia medio-alta in prova: audio con il Pc senza compromessi

Collaborazione online
Esaminiamo una serie di servizi Web e applicazioni che vi consentiranno di condividere con facilità informazioni, progetti, know-how e idee.

Tecnologia

Wi-Fi senza barriere
Spesso il router wireless non è sufficiente a fornire accesso in tutti i locali della casa. Ecco come estendere la copertura
Leggi l’estratto e discuti con l’autore dell’articolo

Autonomia senza precedenti
Tecnologie e materiali innovativi consentiranno di realizzare batterie ricaricabili davvero rivoluzionarie.

Il cinema sta cambiando
Le sale abbandonano la pellicola in favore del digitale. Il ritorno del 3D, il 4K e l’ultima novità: l’High Frame Rate.

Rubriche

Hacks
Trucchi e segreti per sistemi operativi e applicazioni, tool utilissimi e poco conosciuti

Apps
Tante applicazioni per dispositivi iOS e Android e i consigli per sfruttarle al meglio

Posta hardware, software e rispostissime
Un Ssd per ridare vita al vecchio computer

Internet
Maps e Street View raggiungono nuovi punti di interesse

Libri

Legge & Bit

Sviluppo
Amazon e i tablet Kindle: un marketplace molto promettente

Linux
Hardware open source per artisti digitali

Giochi
Il gioco ufficiale del Campionato Mondiale di Motociclismo

PC Professionale settembre 2013
N. 270
Prezzo: 6,40 €




PS
Foto realizzate con Sony Xperia Ion.


JAVA - GENERARE HASH MD5/SHA DI UN FILE (Codice)

$
0
0

JAVA - GENERARE HASH MD5/SHA DI UN FILE (Codice)


 

Oggi vi voglio mettere a disposizione la possibilità di calcolare Hash di un file con l'algoritmo MD5/SHA .Potete verificare se due file sono uguali e quindi hanno lo stesso Hash oppure sono diversi.. 

Come potete usare la libreria :

       CODICE JAVA - HashFile.java :
public static void main(String[] args) {
// TODO Auto-generated method stub
HashFile hashFile = new HashFile("Originale.txt","SHA");
HashFile hashFile1 = new HashFile("Originale.txt","MD5");
System.out.println(hashFile.equals(hashFile1)); //False

// Risposta della funzione equals()
// false // SHA: 44d3a83db52a0cf0f908ad0ef55c83f4771f66ad // MD5: ed0a96e83ab7b0910fcbcc131b2e6b82

System.out.println("SHA: " + hashFile.HashFileGenera());
System.out.println("MD5: " + hashFile1.HashFileGenera());
System.out.println(hashFile.toString());

}
       CODICE JAVA - HashFile.java :
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


public class HashFile {

private File file;
private String Algoritmo;
public HashFile(String filename,String Algoritmo){
this.file = new File(filename);
this.Algoritmo = Algoritmo;
}
public String HashFileGenera() {
String output;
try{
MessageDigest digest = MessageDigest.getInstance(this.Algoritmo);
InputStream is = new FileInputStream(file);                
byte[] buffer = new byte[8192];
int read = 0;
try {
    while( (read = is.read(buffer)) > 0) {
        digest.update(buffer, 0, read);
    }       
    byte[] md5sum = digest.digest();
    BigInteger bigInt = new BigInteger(1, md5sum);
    output = bigInt.toString(16);
//   System.out.println("MD5: " + output);
    return output;
}
catch(IOException e) {
    throw new RuntimeException("Unable to process file for "+this.Algoritmo, e);
}
finally {
    try {
        is.close();
    }
    catch(IOException e) {
        throw new RuntimeException("Unable to close input stream for "+this.Algoritmo+" calculation", e);
    }
}       
 }catch(NoSuchAlgorithmException | FileNotFoundException e){
      e.printStackTrace();
     }
return Algoritmo;
}
public String toString(){
return (
"" + this.Algoritmo + " : " + this.HashFileGenera()
);
}

public boolean equals(Object o){
HashFile p = (HashFile) o;
return ( this.HashFileGenera().equals(p.HashFileGenera())
);
}

}
Potete scaricare il file d'esempio :

Password :  "ImaginSystem" 
Link File Download : Download

By ImaginSystems & Queen Gin   

JAVA - JAVA E LA GESTIONE DEI THREAD (Codice)

$
0
0

JAVA - JAVA E LA GESTIONE DEI THREAD  (Codice)


 

Una delle potenti caratteristiche del linguaggio Java è il supporto per la programmazione concorrente o parallela. Tale feature permette di organizzare il codice di una stessa
applicazione in modo che possano essere mandate in esecuzione contemporanea più parti di codice differenti fra loro.

I thread, rappresentano il mezzo mediante il quale, Java fa eseguire un'applicazione da più Virtual Machine contemporaneamente, allo scopo di ottimizzare i tempi del runtime. Ovviamente, si tratta di un'illusione: per ogni programma solitamente esiste un'unica JVM ed un'unica CPU. Ma la CPU può eseguire codice da più progetti all'interno della gestione della JVM per dare l'impressione di avere più processori.

Oggi vediamo una piccola classe avviata da un più Thread, in futuro amplierò questo discorso con altri esempi un può più complessi con esempi più utili che possono essere ripresi in vari progetti..

       CODICE JAVA - main.java :
public class main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		ThreadCrypto servizio1 = new ThreadCrypto("Servizio1");
		ThreadCrypto servizio2 = new ThreadCrypto("Servizio2");
		ThreadCrypto servizio3 = new ThreadCrypto("Servizio3");
		//Avvio contemporaneamente i 3 servizi
		servizio1.start();
		servizio2.start();
		servizio3.start();
	}

}
Codice della classe ThreadCrypto ...

       CODICE JAVA - ThreadCrypto.java :
import java.util.Random;

public class ThreadCrypto extends Thread{

	private String name;
	private Random r;
	private int a;
	
	
	public ThreadCrypto(String name){
		this.name = name;
		this.r = new Random();
		this.a = this.r.nextInt(11);
	}
	
	public void run(){
		try {
			Thread.sleep(this.a*1000);
			System.out.println(this.name + " - " + this.a + " s");
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			 System.out.println("Thread "+ this.name + " interrotto");
			e.printStackTrace();
		}
	}

}
 
By ImaginSystems & Queen Gin   

Dizionario inglese Ragazzini 2014 (Zanichelli)

$
0
0


Se proprio, in questo mese di settembre, bisogna scegliere un dizionario di inglese, consiglierei senz’altro il Ragazzini 2014 della Zanichelli.
Ho avuto modo di sfogliarlo per bene in questi ultimi giorni e mi è proprio piaciuto, come d’altronde anche le versioni precedenti (io dispongo già della versione 2009).
È realizzato con estrema cura, ogni parola (o voce) è spiegato in maniera esemplare, facendo attenzione ai probabili problemi che potrebbe incontrare uno studente (falsi amici, significati nascosti, usi e consuetudini diverse dalle nostre, e così via).
È molto aggiornato anche come lemmi, dato che, ad esempio, parole recenti come tablet figurano ben spiegate.
Il layout, come sempre, è perfetto: font leggibilissimo e voci riportate in azzurro, per una facile individuazione.



I termini più comuni dispongono anche di box a loro dedicati in cui si approfondisce ulteriormente il loro uso e il loro significato.
È un dizionario che dà importanza alla sostanza, cioè le parole e la spiegazione del loro significato, quindi non ci sono corpose aggiunte come immagini visuali, foto e quant’altro, come qualche volta capita in altri dizionari.
Sono solo presenti alcune tabelle in coda, come la conversione delle unità di misura, le monete ed altri termini vari, come si vede da questa foto.



Se proprio bisogna trovargli un difetto, mi sarebbe piaciuto che la metà del dizionario fosse stata separata da un foglio di cartoncino o carta un po’ più spessa, in modo da segnalare visivamente quando c’è il cambio di traduzione (prima inglese->italiano e poi il viceversa).
Nel primo retro di copertina ci sono invece tutti i colori, prospetto utilissimo per chi lavora con la grafica.
Malgrado le pagine siano oltre 2750, questo dizionario non pesa poi tantissimo (circa 2,7 kg), dato che è stata usata una carta appena un po’ più sottile di quella velina.
Se questo fatto garantisce leggerezza, lo rende però piuttosto delicato, ed andrebbe posto in copertina “Maneggiare con cura” ;-)

Ecco come appare lo spessore, indubbiamente notevole.



Segnalo che questa ristampa 2014 rappresenta sempre, con tutti i suoi aggiornamenti, la quarta edizione di questo dizionario, che risale ormai al 2002.
Qua sotto i dettagli principali.



Con il codice di attivazione presente sul retro di copertina si può attivare per un anno la consultazione online sul sito della Zanichelli, come anche accedere alla sezione “Eliza” dove si possono trovare esercizi di approfondimento e studio della lingua inglese.
Questa mia versione è quella base, senza DVD, e costa attualmente 54 euro su Amazon Italia.
Che dire, i dizionari Zanichelli si dimostrano sempre, se mai ce ne fosse davvero bisogno, di grande qualità.

PS
Foto realizzate con Sony Xperia Ion.

Mobile Conference 2013

$
0
0
Il 28 ottobre 2013 a Bologna si terrà la prima edizione della Mobile Conference, la più nuova delle Technical Conference.


Gli argomenti trattati sono legati al mondo dello sviluppo come 
- HTML5/Responsive Design
- Android/iOS/Windows Phone, 
- Gestione dei dati
- Mobile Payment
- Integrazione con il cloud
- ..e tanto altro

Oltre alle sessioni tecniche e formative, diverse round-table saranno a disposizione di tutti i partecipanti, che riceveranno anche la registrazione di tutte le sessioni dell’evento, senza perdere neanche un minuto dei contenuti disponibili. 

Il tutto organizzato nell'agenda già disponibile online e presentato da speaker di grande esperienza.


A chi si rivolge l'evento?
Sviluppatori, per conoscere le ultime novità del settore o per scrivere applicazioni su altre piattaforme.
Designer, per conoscere le best practice per il disegno di interfacce pensate per il touch.
Software architect, per conoscere le best practice per la progettazione mobile o per integrare le app con il Cloud.


Per la logistica consultare questo link.

Per maggiori informazioni consultare le FAQ.

Correte ad iscrivervi, e ricordatevi che per i membri della community di dotnethell.itè disponibile uno sconto.
Quindi consultate la sezione news, ed a breve avrete la possibilità di ricevere i dettagli.

Stay Tuned! 

Come cancellare un team project su Team Foundation Service

$
0
0
Dopo vari corsi tenuti sul Team Foundation Service e dopo vari progetti temporanei arriva sempre il momento di fare un po' di pulizia.. 
Ma come per ogni lavoro, fare pulizia è qualcosa per cui serve moltissima attenzione. Soprattutto sul nostro source control manager.

Su getlatestversion.it viene indicato dal mio amico Gian Maria Ricci il comando necessario, chiamato TFSDeleteProject.
E figurati se Gian Maria non aveva scritto qualcosa di utile 

Ecco cosa compare se premete "Y":


Per poter eseguire il comando è necessario far parte del gruppo Team Foundation Administrators o Project Administrators.
Il processo TFSDeleteProject inoltre deve essere eseguito da un amministratore della macchina.
Noterete anche nei commenti al suddetto post che il comportamento della parte di autenticazione è il medesimo che si avrebbe utilizzando Visual Studio.

Tuttavia, da poco tempo, c'è anche la possibilità direttamente dall'interfaccia grafica, così come indicato qui.

Grazie a Gian Maria.

Stay tuned!




Multi SSID e DHCP Scope

$
0
0

In questi giorni mi sono trovato ad affrontare e gestire presso un cliente un problema di configurazione che vorrei condividere con voi.

Da richiesta del cliente, il sistema deve prevedere un accesso WiFi separato per SSID, ad ogni SSID deve essere associata una VLAN e ad ogni VLAN deve corrispondere una classe ip assegnata via DHCP.

Nella prima parte della configurazione vedremo come creare un sistema WiFi multi ssid in VLAN. Per prima cosa dobbiamo accertarci (dalle specifiche del prodotto) che il nostro AP sia in grado di lavorare in multi SSID. In questo esempio useremo degli AP Cisco 1242 AG.

Le configurazioni che seguono fanno riferimento a questo specifico apparato, ma con poche modifiche posso essere adattate a qualsiasi (o quasi) apparato.

[Creazione SSISD e VLAN - Access Point]

Per prima cosa abilitiamo il multi ssid in configuration mode :

dot11 mbssid

Creiamo gli SSID :

dot11 ssid Managment

vlan 1

authentication open

authentication key-management wpa

wpa-psk ascii Managment

!

dot11 ssid Terminalini

vlan 12

authentication open

authentication key-management wpa

wpa-psk ascii Terminalini

!

dot11 ssid SmartPhone

vlan 11

authentication open

authentication key-management wpa

mbssid guest-mode

wpa-psk ascii SmartPhone

In questo esempio ho creato 3 SSID associati alle vlan 1,11 e 12 con autenticazione WPA (che chiaramente puo' essere sostituita a seconda delle esigenze).

Lo SSID Managment sarà l'unico su cui abiliteremo il lIvello 3 in modo da poter ragguingere l'AP via http, ssh o telnet  per operazioni di managment.

Ora possiamo procedere con la configurazione della interfaccia Radio 0 :

interface Dot11Radio0

no ip address

no ip route-cache

!

encryption vlan 1 mode ciphers tkip

!

encryption vlan 11 mode ciphers tkip

!

encryption vlan 12 mode ciphers tkip

!

ssid Terminalini

!

ssid SmartPhone

!

ssid Managment

!

station-role root

!

In questo modo abbiamo informato l'interfaccia Radio di quali SSID deve prendersi carico e sul tipo di encryption da utilizzare per le VLAN interessate.

Ora dobbiamo separare il traffico tra le diverse VLAN e dobbiamo fare in modo che la parte WiFi possa parlare con la parte Wired. Per fare questa operazione dobbiamo creare delle sotto- interfacce sia a livello radio sia a livello ethernet. L'anello di congiunzione tra le sotto-interfacce radio e quelle Ethernet sarà il Bridge-Group.

Creiamo i bridge group :

bridge 1 protocol ieee

bridge 2 protocol ieee

bridge 3 protocol ieee

A questo punto possiamo creare le sotto interfacce e le relative VLAN :

!

interface Dot11Radio0.1

description"Managment - VLAN 1 - NO DHCP"

encapsulation dot1Q 1 native

no ip route-cache

bridge-group 1

!

interface Dot11Radio0.2

description"SmathPhone - vlan 11 - dhcp"

encapsulation dot1Q 11

no ip route-cache

bridge-group 2

!

interface Dot11Radio0.3

description"terminalini  - vlan 12 - dhcp"

encapsulation dot1Q 12

no ip route-cache

bridge-group 3

!

Le VLAN vengono associate alle sotto- inferfacce con in comando encapsulation dot1Q

!

interface FastEthernet0.1

encapsulation dot1Q 1 native

no ip route-cache

bridge-group 1

no bridge-group 1 source-learning

bridge-group 1 spanning-disabled

!

interface FastEthernet0.2

description"SmartPhone  - vlan 11 - dhcp"

encapsulation dot1Q 11

no ip route-cache

bridge-group 2

no bridge-group 2 source-learning

bridge-group 2 spanning-disabled

!

interface FastEthernet0.3

description"Terminalini - vlan 12 - dhcp"

encapsulation dot1Q 12

no ip route-cache

bridge-group 3

no bridge-group 3 source-learning

bridge-group 3 spanning-disabled

Come si puo' vedere dalla configurazione le sotto- interfacce radio e Fastethernet sono legate tra loro attraverso i bridge Group.

Non ci resta che abilitare il livello 3 sul Bridge 1 in modo da garantirci l'accesso IP al nostro AP.

!

interface BVI1

ip address 192.168.1.10 255.255.255.0

no ip route-cache

!

L'interfaccia BVI è legata al Bridge attraverso il numero. Quindi, in questo caso, la BVI 1 sarà legata al bridge-Group 1.

L'utlimo passaggio per rendere il nostro AP operativo è legato al tipo di connessione con lo switch di accesso. Per abilitare il transito delle VLAN, sarà necessario configurare il trunk sulla porta dello switch su cui è connesso l'AP.

interface GigabitEthernet1/0/11

switchport trunk encapsulation dot1q

switchport trunk allowed vlan 1,11,12

switchport mode trunk

[DHCP SERVER - DHCP SCOPE - DHCP Agent Relay]

Una volta terminata la programmazione degli AP resta un altro nodo da sciogliere:  dobbiamo preoccuparci di assegnare il Livello 3 (ip, dns, gateway, .....) agli apparati connessi sugli AP, separando le classi IP a seconda della VLAN, utilizzando il nostro server DHCP posizionato sulla VLAN 1.

In questo scenario tutti i client su VLAN diverse da 1  non riceveranno mai alcuna offerta dal DHCP server perchè sono posizionati su domini di broadcast differenti.

Una soluzione possibile potrebbe essere quella di inserire dei server DHCP all'interno dei singoli domini di broadcast definiti dalle diverse VLAN, ma come potete immaginare la gestione diventerebbe complicata e, in alcuni scenari complessi, ingestibile.

Un’ altra soluzione (adottata in questo articolo) è quella di utilizzare dei server DHCP Lite, chiamati Agent Relay, posizionati all'interno di ogni dominio di broadcast e di definire sui nostri server DHCP degli scope dedicati ai singoli domini di brodcast.

Un Agent Relay (http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol#DHCP_Relaying) è a tutti gli effetti un server DHCP, ma non è in grado di assegnare direttamente un Livello 3 ai client. Il suo compito è quello di intercettare le richieste DHCP (0.0.0.0 - 255.255.255.255) prenderle in carico e di rigirarle (proxy) al sever DHCP. Prima di rigirare la richiesta, l'agent relay opera alcune modifiche sostituendo 0.0.0.0 con il suo indirizzo IP e il 255.255.255.255 con l'indirizzo IP del server DHCP (ho semplificato molto per rendere il processo comprensibile anche senza particolari conoscenze di networking) e trasforma la richiesta in unicast (http://en.wikipedia.org/wiki/Unicast ) così da poterla inviare direttamente al server DHCP. Il server DHCP recupera la Network ID dall'indirizzo del relay agent, consulta se esiste uno scope dedicato a quella network ed invia le info al Relay Agent il quale risponde al client che ne ha fatto richiesta chiudendo il cerchio.

Bene, a questo punto vediamo nel dettaglio come costruire questa seconda parte.

Per prima cosa definiamo gli scope sul nostro server DHCP. Nel mio caso ho utilizzato un server Windows 2012, ma è possibile utilizzare qualsiasi apparato attivo che supporti il DHCP Server. All'interno dello scope andremo a definire tutti i parametri di livello 3 da inviare ai client che ne faranno richiesta. Questa operazione va fatta per ogni VLAN a cui desideriamo assegnare una Classe Ip specifica. Nel nostro caso avremo due scope: uno per la VLAN 11 e uno per la VLAN 12.

Definiti gli scope, creiamo gli Agent Relay. Usero' per questa operazione uno switch di accesso Cisco 3750. Prima di entrare nel merito della programmazione, dobbiamo ancora rispondere ad una domanda: dove posizioniamo l’ Agent Relay ?

L'unica certezza che posso darvi è che l' Agent Relay e i client devono trovarsi sullo stesso dominio di broadcast. Il suo posizionamento è legato a fattori specifici tecnici e politici della rete in cui si lavora. Quindi, ad esempio, volendo utilizzare gli switch come agent relay, potremmo posizionalo su uno switch di accesso o di distribuzione o di core.

In uno scenario standard, forse e ripeto forse (è una mia personale considerazione),  il posizionamento su uno switch di core sarebbe preferibile.

Bene, riprendiamo il nostro cacciavite in mano e proseguiamo con le configurazioni :

in configurazione generale definiamo le due vlan :

vlan 11

name SmartPhone

!

vlan 12

name Terminalini

!

Definiamo adesso il Livello 3 per le VLAN ed abilitiamo due agent relay (uno per ogni vlan) :

interface Vlan11

description"ReLay Agent - VLAN 11 - DHCP 192.168.11.x"

ip address 192.168.11.251 255.255.255.0

ip helper-address 10.168.1.45

!

interface Vlan12

description"ReLay Agent - VLAN 12 - DHCP 192.168.12.x"

ip address 192.168.12.251 255.255.255.0

ip helper-address 10.168.1.45

!

Vediamo nel dettaglio, analizzando solo la VLAN 12 :

Creiamo un interfaccia virtuale per la VLAN 12.

interface Vlan12

Alziamo il livello 3 sulla interfaccia virtuale :

ip address 192.168.12.251 255.255.255.0

Questo sarà l'indirizzo che verrà inviato al server DHCP come source da parte dell'agent relay, dal quale verrà ricavato il networkID (192.168.12.0) usato dal DHCP server per identificare lo scope relativo.

Abilitiamo l'Agent Relay :

 ip helper-address 10.168.1.45

L'indirizzo IP inserito qui è l'indirizzo IP del server DHCP, in questo modo l'agent relay potrà operare una richiesta unicast contattando direttamente il server DHCP.

A questo punto, tutti i client WiFi autenticati sulla VLAN 12 e/o sulla VLAN 11 riceveranno i dati per lo scope dedicato.

[SICUREZZA - VERTICALIZZAZIONE]

L'ultimo aspetto che affronteremo in questo articolo è legato alla sicurezza e alla verticalizzazione nella assegnazione degli indirizzi IP. Come abbiamo visto finora, l'agent relay si preoccupa solo di modificare Source e Destination e il server DHCP ha solo il source IP come elemento per poter decidere quale scope utilizzare e quali paramentri assegnare.

Lo standard che definisce il DHCP Agent Relay (https://www.ietf.org/rfc/rfc3046.txt) prevede anche la possibilità di aggiungere altre informazioni alla richiesta inviata al server DHCP. Questa future si chiamata Relay Agent Information Option, meglio conosciuta come Option 82 (82 è il codice della Option, vedi RFC per i dettagli).

Una trattazione esaustiva di questa future richiederebbe un sessione dedicata, diciamo solo che grazie alla Option 82 possiamo creare delle policy all'interno degli scope per suddividere gli IP e le impostazioni da assegnare ai singoli client.

In questo articolo mi limiterò a descrivervi come abilitarla e come utilizzarla per uno scopo ben preciso: riconoscere il mio l'agent relay.

Per prima cosa abilitiamo la future sull'agent relay :

A livello di interfaccia inseriamo questo comando per abilitare la Option 82

ip dhcp relay information option-insert;

Sempre a livello di interfaccia inseriamo la option desiderata :

ip dhcp relay information option subscriber-id Terminalini

N.B.: la subscriber-idè successiva alla definizione dell'RFC;  le specifiche le trovate qui http://tools.ietf.org/html/draft-ietf-dhc-subscriber-id-03

Il risultato finale sarà :

interface Vlan11

description"ReLay Agent - VLAN 11 - DHCP 192.168.11.x"

ip dhcp relay information option subscriber-id SmartPhone

ip dhcp relay information option-insert

ip address 192.168.11.101 255.255.255.0

ip helper-address 10.168.1.45

!

interface Vlan12

description"ReLay Agent - VLAN 12 - DHCP 192.168.12.x"

ip dhcp relay information option subscriber-id Terminalini

ip dhcp relay information option-insert

ip address 192.168.12.251 255.255.255.0

ip helper-address 10.168.1.45

!

Bene, a questo punto non ci resta che definire una policy sul nostro server DHCP.

La policy che ho creato serve solo ad essere sicuro che la richiesta provenga da uno specifico Agent-relay, ma nulla ci vieta di creare più policy all'interno dello stesso scope per assegnare parametri diversi a host differenti all'interno dello stesso dominio di broadcast.

N.B.: la subscriber-id prevede come parametro un valore stringa a nostra libera scelta. Nella definzione degli agent- relay abbiamo usato :

ip dhcp relay information option subscriber-id SmartPhone

....

ip dhcp relay information option subscriber-id Terminalini

In windows il valore va inserito in esadecimale e non in formato testo. Quindi bisogna prima convertire la stringa in HEX e poi incollarla nel campo relativo della policy. Se non fate questa operazione, la policy non verrà metchata e quindi i client non riceveranno il livello 3.

Ad esempio la parola SmartPhone in Hex diventa: 536d61727450686f6e65

Con questa ultima parte ho terminato. Spero che la lettura sia stata di vostro gradimento.

G.

Viewing all 24464 articles
Browse latest View live