Giovedi' 12 Settembre 2013 Santissimo Nome Di Maria
I prestiti personali
Autovelox
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.
Nuovi titoli FAG di metà 2013
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
VB.NET - Filtrare i Dati di un DataGridView e popolare un'altro DataGridView con i risultati (Codice )

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 :
'FiltraTabella(search.Text, cmbCollon.Text, DataGridView1, DataGridView2)
FiltraTabella("Produt 1", "Product Name", DataGridView1, DataGridView2) 'Cerca nella colonna "Product Name" il valore "Product 1"
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
VB.NET - Encrypting e Decrypting File (Codice )
VB.NET - Encrypting e Decrypting File (Codice )

' Encrypt the file. EncryptFile("MyData.txt", _"Encrypted.txt", _ sSecretKey) ' Decrypt the file. DecryptFile("Encrypted.txt", _"Decrypted.txt", _ sSecretKey)
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
Altro - I comandi ‘segreti’ di Chrome e loro significato.
Altro - I comandi ‘segreti’ di Chrome e loro significato.

Per accedere a questi URLs basta semplicemente scrivere nella barra degli indirizzi:
chrome://chrome-urls/
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
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.
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:
Public Class Person
Public Name As String
Public Age As Integer
End Class
Dim p As New Person
With p
.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.Directory, System.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!")
ElseMessageBox.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:
<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



Multe al C.d.S....arrivano gli sconti!!
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
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)
JAVA - ENCRYPT & DECRYPT CON RSA 1024 bit , DOPPIA CHIAVE Esempio n.1 (Codice)

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 RSAKeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "BC");kpg.initialize(1024);KeyPair kp = kpg.generateKeyPair();System.out.println("Chiavi generate!\n");// SALVA CHIAVE PUBBLICAString publicKeystore ="publicRSA.key";//pathbyte[] publicBytes;publicBytes= kp.getPublic().getEncoded();// salva nel keystore selezionato dall'utenteFileOutputStream fos = new FileOutputStream(publicKeystore);fos.write(publicBytes);fos.close();// SALVA CHIAVE PRIVATAString privateKeystore ="privateRSA.key";// path// ottieni la versione codificata in PKCS#8byte[] privateBytes = kp.getPrivate().getEncoded();fos = new FileOutputStream(privateKeystore);fos.write(privateBytes);fos.close();// LEGGI CHIAVE PUBBLICA CODIFICATA IN X509FileInputStream 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 pubblicaX509EncodedKeySpec ks = new X509EncodedKeySpec(publicKeyBytes);// Inizializza un KeyFactory per ricreare la chiave usando RSAKeyFactory kf = KeyFactory.getInstance("RSA", "BC");// Crea una chiave pubblica usando generatePublic di KeyFactory in base// la chiave decodificata da ksPublicKey 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 PKCS1Cipher cifrario = Cipher.getInstance("RSA/ECB/PKCS1Padding");System.out.print(".");// Lo inizializzo dicendo modalità di codifica e chiave pubblica da// usarecifrario.init(mode, publicKey);System.out.print(".");// codifico e metto il risultato in encodeFilebyte[] 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;}}

PC Professionale settembre 2013

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)
JAVA - GENERARE HASH MD5/SHA DI UN FILE (Codice)

public static void main(String[] args) {// TODO Auto-generated method stubHashFile 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: ed0a96e83ab7b0910fcbcc131b2e6b82System.out.println("SHA: " + hashFile.HashFileGenera());System.out.println("MD5: " + hashFile1.HashFileGenera());System.out.println(hashFile.toString());}
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()));}}
JAVA - JAVA E LA GESTIONE DEI THREAD (Codice)
JAVA - JAVA E LA GESTIONE DEI THREAD (Codice)

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(); } }
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(); } } }

Dizionario inglese Ragazzini 2014 (Zanichelli)

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



Come cancellare un team project su Team Foundation Service


Multi SSID e DHCP Scope
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 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.
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)