Welcome

This is the generic homepage (aka Aggregate Blog) for a Subtext community website. It aggregates posts from every blog installed in this server. To modify this page, edit the default.aspx page in your Subtext installation.

To learn more about the application, check out the Subtext Project Website.

Powered By:

Blog Stats

  • Blogs - 715
  • Posts - 30992
  • Articles - 310
  • Comments - 103890
  • Trackbacks - 601884

Bloggers (posts, last update)

Latest Posts

E-commerce, Mobile Remote Payment e tutela della privacy

Proseguo in questo post l’approfondimento sulle tematiche connesse al mondo e-commerce avviato con il mio precedente approfondimento sulle nuove regole in materia di recesso.

Il tema che si vuole sviscerare in questa sede è slegato dal già richiamato d.lgs. 21/2014, ma riguarda un recente e importante provvedimento del Garante Privacy in materia di mobile remote payment che di fatto tocca nel vivo l’interesse dei gestori di piattaforme e-commerce.

Con mobile payment si intendono tutti quei servizi che consentono di gestire acquisti e pagamenti di beni (sia digitali che fisici) attraverso un terminale mobile. Con mobile remote payment andiamo a caratterizzare in particolare quelle operazioni di pagamento di un bene o di un servizio tra esercente e cliente, attivate da quest’ultimo a distanza attraverso il telefono cellulare. Con mobile proximity payment invece si caratterizzano quelle operazioni di pagamento eseguite dal cliente avvicinando il proprio dispositivo mobile, dotato di tecnologia NFC (Near Field Communication, ossia una tecnologia che fornisce connettività wireless bidirezionale a corto raggio) ad un apposito lettore POS (point of sale), posto presso il punto vendita dell'esercente da cui si acquista il bene.

Il Garante Privacy, all’esito di una procedura di consultazione pubblica avviata nel dicembre 2013 e in recepimento della normativa europea, ha emanato in data 22 maggio 2014 un provvedimento generale in materia di trattamento dei dati personali nell’ambito dei servizi di mobile remote payment.

L’obiettivo del Garante è quello di garantire in un mercato del pagamento sempre più dinamico, un trattamento sicuro delle informazioni che riguardano gli utenti  e prevenire i rischi di un loro uso improprio. Nell’ambito del mobile remote payment, il pagamento dei contenuti digitali avviene attraverso il telefono mobile e che il cliente può fruirne sia direttamente sul proprio smartphone, sia su altri tipi di terminali (ad es. tablet  e PC).

Attraverso tale metodo di pagamento vengono trattate numerose informazioni riferibili all'utente che riguardano, in particolare,  i dati relativi alla numerazione telefonica, i dati anagrafici, i dati legati alla tipologia del servizio o del prodotto digitale richiesto ed al relativo importo.

Ad essi si aggiungono i dati  inerenti alla sottoscrizione ed alla revoca del servizio, quelli relativi agli addebiti degli acquisti nella fattura o sulla carta prepagata e, eventualmente, quelli di posta elettronica richiesti per una maggiore fruibilità del contenuto digitale, nonché l'indirizzo IP dell'utente.

Ai suddetti dati se ne possono peraltro aggiungere altri, anche di natura sensibile (cfr art. 4 comma 1, lett. d) del Codice), legati alla fruizione del contenuto o del servizio digitale.

Stante la varietà e molteplicità dei dati suscettibili di trattamento nel quadro delle operazioni sopra descritte possono, quindi, facilmente emergere profili di rischio per i diritti e le libertà fondamentali, nonché per la dignità dei soggetti interessati.

Le direttive del Garante sono rivolte ai tre principali soggetti che offrono servizi di mobile payment: operatori di comunicazione elettronica, che forniscono ai clienti un servizio di pagamento elettronico tramite cellulare, o con l’uso di una carta prepagata oppure mediante un abbonamento telefonico; gli aggregatori (hub), che mettono a disposizione degli operatori tlc e internet e gestiscono la piattaforma tecnologica per l’offerta di prodotti e servizi digitali; i venditori (merchant), che offrono contenuti digitali e vendono servizi editoriali, prodotti multimediali, giochi,  servizi destinati ad un pubblico adulto.

Vediamo dunque quali sono le principali prescrizioni poste dal garante.

Anzitutto, viene posto un dovere di Informativa: gli utenti dovranno essere informati sulle modalità di trattamento effettuato sui loro dati sin dalla sottoscrizione o adesione al servizio di pagamento da remoto.

Poi viene regolato il Consenso, stabilendo che Le società non dovranno richiedere il consenso degli utenti per il trattamento dei dati relativi alla fornitura del servizio di remote mobile payment. Il consenso è invece obbligatorio per la comunicazione dei dati personali a terzi oppure in caso di loro utilizzo per attività di marketing e profilazione. Con riguardo alla Conservazione dei dati, si prescrive che I dati degli utenti trattati dagli operatori, dagli aggregatori e venditori, potranno essere conservati al massimo per 6 mesi. L'indirizzo Ip dell'utente dovrà invece essere cancellato dal venditore una volta terminata la procedura di acquisto del contenuto digitale. Dal punto di vista delle Misure di sicurezza Operatori, aggregatori e venditori saranno tenuti ad adottare precise misure per garantire la confidenzialità dei dati, quali: sistemi di autenticazione forte per l'acceso ai dati da parte del personale addetto, e procedure di tracciamento degli accessi e delle operazioni effettuate; criteri di codificazione dei prodotti e servizi; forme di mascheramento dei dati mediante sistemi crittografici.Da ultimo, sempre al fine di rafforzare la tutela della privacy, dovranno essere adottate misure al fine di impedire l'integrazione delle diverse tipologie di dati a disposizione dell'operatore telefonico (dal consumo telefonico ai dati sull'uso della tv interattiva) e di evitare la profilazione "incrociata" dell'utenza basata su abitudini, gusti e preferenze, a meno che non venga espresso uno specifico consenso informato da parte dell'utente. I venditori, inoltre, per garantire maggiore riservatezza alle transazioni dei clienti, potranno trasmettere all'operatore telefonico solo le categorie merceologiche di riferimento dei prodotti digitali offerti senza indicazioni sullo specifico contenuto del prodotto o servizio acquistato, a meno che non sia necessario per la fornitura di servizi in abbonamento. Dovranno essere previsti anche accorgimenti tecnici per disattivare servizi destinati ad un "pubblico adulto" e per inibirne l'accesso a minorenni.

EDOARDO COLZANI

posted @ 01/09/2014 8.30 by Staff Lex101

JSON.Merge

Un’interessante novità introdotta con la versione 6.0 release 4 di Json.NET è la possibilità di eseguire il Merge (utilizzando 4 possibili “variazioni”) di oggetti JObject e Jarray. Un rapido esempio, tramite Web Api:

[HttpPost]        
public void JsonStringPost([FromBody]string value)
{
    JObject jCar = JObject.Parse(value);
    JObject jOptional = JObject.Parse(@"{Optionals :['Air Conditioned','Smoker'] }");

    jCar.Merge(jOptional, new JsonMergeSettings() { MergeArrayHandling = MergeArrayHandling.Union });

    string jsonFormat = jCar.ToString();
    Car mergedCar =  jCar.ToObject<Car>(); 
}

Dove l’Action “JsonStringPost” accetta una stringa tipo:

"{ 'Brand': 'Ferrari','Model': 'f450 Modena','Optionals': [] }"

Utilizzando, ad esempio il Composer di strumenti come Fiddler2 possiamo invocare il servizio:

image

Per ottenere una nuova istanza di Car con tutti gli Optionals:

image

Se il nostro servizio accetta direttamente un’istanza di oggetto invece di una stringa in formato JSON, il nostro codice cambia leggermente, come di seguito:

[HttpPost]
public void JsonObjectPost([FromBody] Car carByPost)
{
    JObject jCar = JObject.FromObject(carByPost);

    JObject jOptional = JObject.Parse(@"{Optionals :['Air Conditioned','Smoker'] }");
    jCar.Merge(jOptional, new JsonMergeSettings() { MergeArrayHandling = MergeArrayHandling.Union });

    string jsonFormat = jCar.ToString();
    Car mergedCar = jCar.ToObject();
}

Dove utilizziamo il metodo FromObject della classe JObject invece di Parse. Utilizzando Fiddler, passando come Body del messaggio la stringa (senza i doppi apici ad inizio e fine stringa)

{ 'Brand': 'Ferrari','Model': 'f450 Modena','Optionals': [] }

Otteniamo (ovviamente) lo stesso risultato dell’invocazione precedente. E’ possibile modificare il comportamento di “Merge” utilizzando l’enumerazione MergeArrayHandling. La classe Car (C#) è descritta nell’esempio, è la seguente:

public class Car
{
    public string Brand { get; set; }
    public string Model { get; set; }
    public string[] Optionals { get; set; }
}

La lista completa delle features aggiunte nel rilascio della versione 6.0 release 4 è disponibile qui.

posted @ 29/08/2014 12.30 by Pietro Libro

Associare il proprio Microsoft Account con l’account aziendale per condividere i benefici dell’abbonamento MSDN su Visual Studio Online

In un precedente post avevo parlato del funzionamento del piano Basic gratuito di Visual Studio Online e della possibilità di superare il numero di 5 utenti a patto che gli eccedenti siano in possesso di un abbonamento MSDN.

Con l'attuale possibilità di utilizzare Visual Studio Online sia con il proprio Microsoft Account che con l'account aziendale, per qualcuno si potrebbe porre il problema di riuscire a condividere i benefici dell'abbonamento su entrambi gli account, potendo quindi partecipare sia a progetti aziendali che extra-aziendali senza essere in entrambi i casi contati come utenti Basic.

Fortunatamente il problema è facilmente risolvibile associando i due account dalla propria sottoscrizione MSDN.

Apriamo quindi il nostro browser preferito e navighiamo su http://msdn.microsoft.com accedendo se necessario con il nostro Microsoft Account. Selezioniamo quindi in alto a destra il link Abbonamenti MSDN.

Nella sezione Visual Studio Online selezioniamo il link Collegamento all'account aziendale.

Nel dialog box Link to your Organizational Account impostiamo il nostro Account aziendale e clicchiamo sul pulsante Collega.

I due account risultano ora collegati (collegamento che è sempre possibile modificare o rimuovere utilizzando i link opportuni) ed è quindi possibile utilizzare i privilegi della propria sottoscrizione MSDN su entrambi.

Happy coding!

posted @ 27/08/2014 23.01 by Giorgio Di Nardo

wu.js

wu.js is a JavaScript library providing higher order functions

http://fitzgen.github.io/wu.js

posted @ 27/08/2014 8.35 by Alessandro Gervasoni

Fast, Secure HTML5 Document Viewing



link

posted @ 26/08/2014 8.39 by Alessandro Gervasoni

ASP.NET Web API Succinctly

Settimana scorsa mentre andavo a Londra per lavoro ho avuto il piacere di leggere “ASP.NET Web API Succinctly” di Emanuele DelBono, il libro fa parte della catena di libri tecnici di Syncfusion e devo dire che nella sua brevità, si legge in non più di due ore, è semplicemente esaustivo.

Emanuele parte facendo una breve introduzione alla filosofia che “regola” REST per poi addentrarsi nei tecnicismi di ASP.NET Web API e di come REST si coniughi con gli aspetti tecnologici di Web API.

La parte tecnica è il giusto mix tra semplicità e approfondimento, vista la natura delle collana di libri, tutto è affrontato con il giusto grado di complessità sufficiente a dare al lettore le basi per iniziare a muoversi con le sue gambe ma soprattutto sufficiente a dare tutte le informazioni necessarie per approfondire in piena autonomia tutti gli argomenti esposti, argomenti che vanno dal motore di routing alla gestione della security passando per l’etsendibilità della pipeline di Web API.

Insomma una lettura vivamente consigliata.

.m

posted @ 21/08/2014 10.20 by Mauro Servienti

Alertify ASP.NET MVC method helper

 

Per chi non conoscesse alertify è una libreria javascript per visualizzare sia finestre che messaggi di allerta. La potete trovare qui.

Visto però che programmo in ASP.NET MVC e visto che molti link sono dei link ajax, ho deciso di crearmi degli helper.

 

Continua qui

posted @ 08/08/2014 13.33 by Alberto

Aggiornamento a Entity Framework 6.1.1 e Sequence contains…

 

Per un progetto che aveva E.F. 6.0.1, ho avuto la brillante idea di aggiornarlo, tramite nuget, all’ultima versione del noto ORM.

E… ovviamente non ha funzionato al primo colpo… Soprattutto in add-migration mi dava l’errore “Sequence contains more than one matching element”.

 

Continua qui

posted @ 08/08/2014 11.59 by Alberto

Nuove regole per gli acquisti inapp nei giochi on line. Quali indicazioni per gestori di webstore e sviluppatori?

In questi giorni è stato emanato un importante provvedimento (si tratta di una posizione comune) in tema di acquisti inapp da parte della Commissione Europea e dei rappresentanti delle autorità garanti dei consumatori degli stati membri dell’Unione Europea. La posizione comune, che non ha valore di legge ma che può trovare immediata applicazione attraverso eventuali azioni intraprese dalle singole autorità garanti dei paesi membri dell’Unione, riguarda gli acquisti inapp nei giochi online e mira a tutelare prevalentemente i minori, soggetti più direttamente coinvolti da questa tematica. Nella stessa, in particolare, si descrivono alcune pratiche scorrette utilizzate dai gestori degli webstore nella vendita di giochi online e vengono analizzate le azioni intraprese in questo ambito da alcuni dei player più importanti del settore (Google, Apple e Interactive Software Federation of Europe). Da molto tempo, infatti, in sede comunitaria si lamenta la mancanza di trasparenza delle offerte presenti sugli store online, piattaforme che sempre più spesso offrono giochi pubblicizzandoli e presentandoli come “free”, senza che ciò corrisponda effettivamente alla realtà (nella maggior parte dei casi per fruire in modo significativo dell’applicazione è necessario effettuare un pagamento al gestore dello store online o allo sviluppatore). Termini come “free”, “gratis”, “download gratuito”, sono tutti termini che vengono utilizzati diffusamente sugli store online anche e soprattutto per prodotti che non sono pienamente utilizzabili (o addirittura praticamente inutilizzabili senza che l’utente abbia effettuato successivamente al download un pagamento). A ciò si aggiunga il fatto che molto spesso, a causa delle impostazioni di default di queste applicazione, vengono autorizzati acquisti e pagamenti senza che l’utente ne venga pienamente informato e che quindi lo stesso sia conscio dell’operazione. Già a dicembre 2013 i rappresentanti delle autorità nazionali per la concorrenza avevano presentato una prima posizione comune con la quale chiedevano a Google e Apple più trasparenza per gli acquisti inapp nei giochi online.
In particolare si chiedeva che:
● i giochi pubblicizzati come "gratuiti" non ingannassero i consumatori sui costi reali dell’applicazione;
● i giochi non contenessero inviti diretti ai minori ad acquistare contenuti;
● i consumatori venissero adeguatamente informati sulle condizioni di pagamento dei contenuti;
● i consumatori non si vedessero addebitare importi in base a un'impostazione di pagamento predefinita senza aver fornito un consenso esplicito;
● gli sviluppatori fornissero un indirizzo di posta elettronica per consentire ai consumatori di contattarli per dubbi o rimostranze.
Nella recente posizione comune del 18 luglio 2014, se da un lato si sottolinea come Google abbia effettivamente deciso di implementare nel suo store, entro settembre 2014, le richieste contenute nella precedente posizione comune (ad alcune delle quali sì è già adeguato), dall’altro si dà conto di come Apple non abbia ancora individuato e risposto con proposte concrete alle richieste della commissione e dei Garanti per la tutela dei consumatori dei paesi membri.

Ma cosa è plausibile ritenere che possa cambiare?

Posto che gli atti come le posizioni comuni non sono provvedimenti dettagliati o a carattere tecnico, ma
piuttosto documenti di indirizzo politico, è comunque possibile individuare alcune interessanti indicazioni che verranno, plausibilmente, rese a breve obbligatorie in ambito comunitario nei confronti di tutti gli
operatori del settore (sviluppatori e gestori degli webstore).

In generale, i gestori degli webstore (non solo Apple e Google, ma anche gli altri operatori), dovranno adeguarsi alle seguenti indicazioni:
- non potranno utilizzare il termine “free” o un suo equivalente (ad es. “gratis”, “free download”, etc.) se non per le applicazioni completamente gratuite. Lo stesso termine verrà tollerato solo se utilizzato in relazione a giochi non completamente gratuiti, ma in cui siano comunque chiaramente indicati quegli elementi sono gratuiti e quali a pagamento. Questo tipo di applicazioni, per poter utilizzare il termine “free” dovranno consentire all’utente di usufruire di sezioni di gioco standalone che non necessitino di pagamenti per essere utilizzate. Potrebbe sicuramente utilizzare il termine “free”, un gioco in cui si possono acquistare elementi decorativi (come “skin” dei personaggi) ma in cui l’esperienza di gioco è integralmente accessibile a titolo gratuito;

- dovranno elaborare e adottare delle guidelines conformi alla normativa europea in materia di tutela dei consumatori e alle posizioni comuni già emanate sul tema.

Per gli sviluppatori:

- dovranno considerarsi illecite tutte le app, e in particolare tutti i giochi online, nei quali dei minori vengano invitati ad effettuare acquisti di contenuti. In questo tipo di giochi non sarà più consentito l’utilizzo di espressioni come “buy now!”, “Upgrade now!”, o simili;

- la richiesta del consenso all’acquisto di contenuti inapp dovrà essere posta ben in vista e non potrà pertanto essere inserita esclusivamente nei “Termini e condizioni di servizio” o essere raggiungibile attraverso link ad altre pagine;

- le applicazioni dovranno prevedere la richiesta di un consenso esplicito per gli acquisti inapp come impostazione di default. Ciò significa che affinché il consenso sia considerato valido, l’utente dovrà porre in essere un’azione specifica per manifestarlo, che però non potrà concretizzarsi in un semplice click, ma in un’attività più elaborata (ad esempio l’inserimento della password, di una risposta ad una domanda sui suoi dati, etc.);

- le impostazioni relative ai pagamenti per acquisti inapp dovranno essere mostrate all’utente in modo neutrale (senza che sia data prevalenza ad un’opzione o ad un’altra);

- ai consumatori dovrà essere data la possibilità, attraverso una specifica opzione, di stabilire un numero massimo di acquisti inapp effettuabili senza una specifica autorizzazione al pagamento;

- gli sviluppatori (e parallelamente i gestori degli store online) dovranno istituire una specifica casella email attraverso la quale i consumatori potranno inviare domande o reclami. L’indirizzo in questione dovrà essere facile da reperire e mostrato all’utente più volte, per esempio nel momento in cui effettuerà il download dell’applicazione, quando farà acquisti inapp, etc. L’indirizzo email così creato non potrà pertanto essere inserito esclusivamente nei “Termini e nelle condizioni di servizio” o essere raggiungibile solo attraverso link ad altre pagine.

E’ possibile, prevedere infine che vengano adottate posizioni comuni o provvedimenti simili che estendano, con le dovute distinzioni, le indicazioni soprariportate anche ad altri tipi di applicazioni (e non solo ai giochi online), Sul breve periodo, intanto, potrebbero arrivare nuove guidelines dagli operatori degli webstore.

Link alla posizione comune del 18.07.2014 : http://ec.europa.eu/consumers/enforcement/cross%ADborder_enforcement_cooperation/docs/20140718_in%ADapp_cpc_common%ADposition_en.pdf

posted @ 04/08/2014 8.30 by Staff Lex101

moder.IE

Strumenti di sviluppo
per il Web moderno


https://www.modern.ie/it-it/tools

posted @ 29/07/2014 8.57 by Alessandro Gervasoni

Hai una piattaforma di e-commerce? Attenzione alla nuova normativa sul Recesso!

Novità in vista per il mondo dell’e-commerce. L’Italia ha ormai recepito i contenuti della direttiva europea n. 2011/83, che sono diventati vincolanti per tutti i contratti conclusi successivamente al 13 gennaio 2014. Il recepimento è avvenuto col decreto legislativo 21/2014, entrato in vigore il 26 marzo. La normativa va a incidere sulla disciplina del codice del consumo e conseguentemente anche sugli adempimenti in capo ai titolari di siti e-commerce - ragion per cui vi invito a leggere attentamente quanto segue.

Una delle principali novità attiene alle modalità di recesso dal contratto. Si tratta di un intervento normativo che tocca nel vivo non solo il consumatore che si avvale della piattaforma e-commerce, ma in prima battuta il gestore stesso della piattaforma e-commerce, che dovrà adeguarsi alle nuove disposizioni…

Vediamo dunque cosa cambia.


Questo post è solo il primo di una serie di approfondimenti sul tema, non ha pertanto pretesa di esaustività. In successivi post cercherò di entrare nello specifico di alcuni problemi legati alla normativa e-commerce.

Qui comincerò solamente a riepilogare per comodità del gestore di piattaforme e-commerce oltre che dei consumatori, le attuali regole in materia di recesso.


1) DIRITTO DI RECESSO: DA 10 A 14 GIORNI

In primo luogo, cambia il tempo a disposizione per esercitare il diritto di recesso, non più solo 10 giorni bensì 14 giorni dalla data di sottoscrizione del contratto o dalla data in cui il consumatore acquisisce il possesso fisico dei beni.

Prima della scadenza del periodo di recesso, il consumatore deve informare il professionista della sua decisione di recedere dal contratto.


2) MODALITA’ DI ESERCIZIO DEL DIRITTO DI RECESSO

Il consumatore può recedere in due modi:

2.1. avvalendosi di un apposito modulo, il cui contenuto è dettagliato nell’allegato alla normativa:


http://www.gazzettaufficiale.it/eli/id/2014/3/11/14G00033/sg


2.2. scrivendo di proprio pugno una dichiarazione esplicita in cui manifesta la volontà di recedere dal contratto

La comunicazione del recesso deve essere inviata prima della scadenza del periodo di recesso.

Al fine di agevolare l’esercizio del diritto di recesso il professionista può predisporre sul proprio sito di e-commerce un apposito form, che riproduca il modello di cui al 2.1. o che consenta di inserire la dichiarazione di cui al 2.2., elettronicamente: in tal caso il professionista deve comunicare senza indugio al consumatore conferma di ricevimento, su un supporto durevole, del recesso esercitato.


3) EFFETTI DEL RECESSO

L’esercizio del recesso pone termine agli obblighi delle parti di dar seguito al contratto e alle rispettive obbligazioni.


4) OBBLIGHI DI INFORMATIVA SUL RECESSO


Il tempo a disposizione per esercitare il diritto di recesso nel caso di vendite a distanza (su internet, via telefono ma in genere fuori dal negozio) aumenta, come visto, da 10 a 14 giorni. Tuttavia si può arrivare anche ad un anno e 14 giorni se il venditore non ha adeguatamente informato il consumatore sull’esistenza del diritto stesso. In caso di violazione degli obblighi informativi il consumatore non deve sostenere neppure il costo diretto di restituzione dei beni


I commercianti devono informare chiaramente e preventivamente i consumatori che i costi di restituzione delle merci in caso di ripensamento sono sostenuti dai clienti, altrimenti tali costi rimarranno a loro carico. Prima della vendita, deve essere fornita una chiara stima dei costi massimi di resa di merci ingombranti (ad esempio un divano acquistato via internet o per corrispondenza), così che il consumatore possa decidere in modo informato da chi acquistare


5) OBBLIGHI DEL PROFESSIONISTA IN CASO DI RECESSO

Rimborsare tutti i pagamenti ricevuti dal consumatore (eventualmente comprese le spese di consegna) senza ritardo e in ogni caso entro 14 giorni dal recesso (attualmente 30) e dovrà coprire anche le spese di consegna originarie e quindi restano escluse le spese di restituzione del bene. Nel caso il consumatore sceglie espressamente un tipo di consegna diverso da quello meno caro, i costi supplementari non saranno rimborsati. Il rimborso, di norma, deve avvenire con lo stesso mezzo di pagamento utilizzato dal consumatore all’atto dei suoi pagamenti. Il fornitore potrà comunque non effettuare il rimborso fino al momento

della ricezione della merce

Attenzione: è nulla qualsiasi clausola che prevede limitazioni al rimborso nei confronti del consumatore delle somme versate.


6) OBBLIGHI DEL CONSUMATORE IN CASO DI RECESSO


Il consumatore è tenuto a provvedere senza indebito ritardo (e in ogni caso entro 14 giorni dalla data in cui ha comunicato la sua decisione di recesso) alla restituzione dei beni. Il costo diretto della restituzione è a carico del consumatore, salvo diversi accordi col professionista o salvo che il professionista non abbia dato adeguata informazione di ciò al consumatore.

Il consumatore è responsabile della diminuzione del valore dei beni derivante da una manipolazione dei beni diversa da quella necessaria per stabilire la natura, le caratteristiche e il funzionamento dei beni.


7) BENI PER I QUALI E’ ESCLUSO IL DIRITTO DI RECESSO


La nuova normativa contempla vecchie eccezioni e nuove eccezioni, oltre a una serie di eccezioni che sono state eliminate (beni che per loro natura non possono essere restituiti. Tra le nuove eccezioni introdotte, si segnala in particolare la fornitura di contenuto digitale mediante un supporto non materiale “se l’esecuzione è iniziata con l’accordo espresso del consumatore e con la sua accettazione del fatto che in tal caso avrebbe perso il diritto di recesso”.

Questo, senza pretesa di esaustività, un primo quadro generale. Per approfondimenti più specifici, rimando ai prossimi post.

Tenete d’occhio il blog!

EDOARDO COLZANI

posted @ 24/07/2014 8.30 by Staff Lex101

string.js

stringjs.com
Interessante libreria javascript che estende i metodi associati ad una variabile stringa tra i tanti :

- count(substring) : Returns the count of the number of occurrences of the substring.

- isAlpha() : Return true if the string contains only letters.

- padLeft(len, [char]) : Left pads the string.

- toCSV(options) : Converts an array or object to a CSV line.

posted @ 16/07/2014 8.56 by Alessandro Gervasoni

FatturaPA

Dal 6 giugno 2014 è obbligatoria la Fatturazione elettronica verso la PA , per capirci meglio link.

posted @ 11/07/2014 9.17 by Alessandro Gervasoni

Workshop “Microsoft .NET - Architecting Applications for the Enterprise (2nd Edition)”

Se vi interessano le architetture software e argomenti come DDD e CQRS, non potete perdervi questo :)

Workshop "Microsoft .NET - Architecting Applications for the Enterprise (2nd Edition)" ad Ancona - giovedì' 17 luglio
In occasione dell'uscita della seconda edizione dell'omonimo libro, avremo il piacere di ospitare uno degli autori, Andrea Saltarello.
Insieme a Mauro Servienti ci illustreranno gli argomenti alla base di questo lavoro, la cui prima edizione è diventata uno dei testi di riferimento per quanto riguarda le architetture software nel mondo del .NET Framework.

Se date uno sguardo all'agenda, potete vedere che si parlerà molto di DDD / CQRS / Event Sourcing, temi che valgono anche al di fuori di .NET, perciò siete i benvenuti qualsiasi tecnologia amiate usare!

Per agenda ed iscrizione (gratuita): https://naae2-marche.eventbrite.com

posted @ 03/07/2014 14.28 by Stefano Ottaviani

Privacy e App: le cinque regole auree che lo sviluppatore software non deve mai dimenticare.

Scrivo questo mio primo post nella consapevolezza di esser partito con il piede sbagliato: ho già mentito.

Ho mentito parlando di 5 regole auree che non possono essere trascurate, pur sapendo che le regole  fondamentali da conoscere non sono certo solo 5, ma molte di più e in continua evoluzione.

D’altro canto mi autoassolvo pensando che, da un lato, la normativa italiana e europea sono talmente ampie che non si può certo scrivere tutto in un solo post e che, dall’altro, comunque cercherò di integrare in futuro, con altri post, l’elenco degli aspetti legali fondamentali da tenere in considerazione nello sviluppo di un’App (quale che sia il sistema operativo a cui è destinata).

Ma veniamo alle cinque regole auree che lo sviluppatore di un’App deve tenere in considerazione:

1) Il consenso all’installazione della App deve essere distinto da quello richiesto per il trattamento dei dati.

L’App deve essere progettata per richiedere all’utente il suo consenso all’installazione del software; questo consenso deve necessariamente essere distinto da quello al trattamento dei dati. Il primo è un consenso all’inserimento e alla lettura di informazioni presenti sul device, il secondo riguarda l’autorizzazione al trattamento di dati personali di tipo differente. Questo secondo tipo di consenso può essere richiesto anche durante l’installazione del software.

2) Quando viene richiesto il consenso è opportuno prevedere una specifica opzione per il rifiuto.

Quando l’App richiede il consenso al trattamento dei dati all’utente o all’installazione del software, è necessario che sullo schermo appaia un’opzione per il rifiuto (rappresentata eventualmente dal tasto “cancella”, “interrompi”, etc.)

3) Per ogni trattamento di dati deve essere richiesto uno specifico consenso.

Se l’App che stiamo sviluppando processa, ad esempio, i dati della rubrica dell’utente per  fornire un servizio di messaggistica e dati di geolocalizzazione dell’utente per scopi di marketing, sarà necessario che l’App richieda, e che l’utente fornisca, due distinti consensi al trattamento dei dati.

4) Il trasferimento di dati personali in paesi esteri è soggetto a particolari limitazioni.

I dati personali raccolti dalla nostra App possono essere liberamente trasferiti solo negli stati membri dell’EU. Il trasferimento di dati personali in paesi extra EU è consentito solo se i paesi di destinazione garantiscono un adeguato livello di sicurezza dei dati trasferiti. In questi casi è opportuno effettuare una valutazione caso per caso (anche alla luce di eventuali pronunce del Garante).

5) E’ sempre opportuno stabilire un limite temporale alla conservazione dei dati personali raccolti dalla App.

I dati raccolti dalla App e dai suoi servizi devono essere conservati per un periodo stabilito e cancellati al suo scadere. Discorso analogo deve valere per gli account creati dagli utenti e rimasti inattivi per un lungo periodo: anche in questo caso è opportuno prevedere un meccanismo di cancellazione dell’account e dei relativi dati personali.

ANDREA PALUMBO

posted @ 01/07/2014 8.50 by Staff Lex101

Errore Web Service

Nel trasformare un web service fatto con il framework 2 nell'equivalente service WCF fatto con il framework 4, mi sono trovato davati ad un errore abbastanza strano:

Errore nella deserializzazione del corpo del messaggio di risposta per l'operazione …..

Dopo un paio d'ore passate a glooglare e confrontare un altro progetto molto simile che funzionava mi sono imbattuto in un articolo molto scarno:

http://forums.asp.net/t/1234318.aspx?Error+in+deserializing+body+of+reply+message+

che però mi ha indirizzato verso la soluzione giusta. In effetti il problema era proprio il parametro readerQuota dell'app.config.

 

posted @ 27/06/2014 12.17 by Alessandro Cavalieri

Planning ÷ reacting: finding the balance





Life is what happens to you while you're busy making other plans - John Lennon, Beautiful Boy









The are things that can be planned and others that cannot be. The conundrum is, which is which?


What happens when someone

This is why it is important to find out in every moment the balance between the two, to know


Someone says that Agile is the art of finding the balance between anticipation (as e.g. panning) and adaptation (as e.g. reacting).  

An interesting final reflection: what values, principle and practices help to find a good balance, and how ?

 


posted @ 25/06/2014 20.42 by Luca Minudel

Nasce il servizio di Pronto Soccorso legale di UGIdotNET!

Come annunciato durante la terza giornata dei Community Days 2014, ai soci UGIdotNET è riservato, da parte dei nostri legali, un servizio di pronto soccorso legale totalmente gratuito per le questioni di semplice e immediata risoluzione. Questo servizio non può, comprensibilmente, coprire anche questioni complesse o che necessitino di un approfondimento, per le quali i professionisti che offriranno questo servizio saranno comunque disponibili a fornire una consulenza privata totalmente indipendente dalla Associazione.

Per usufruire del servizio sarà sufficiente contattarci all’indirizzo soccorsolegale@ugidotnet.org e, all’occorrenza, fissare un incontro mediante Skype oppure, una volta al mese, presso la sede di UGIdotNET: al momento del contatto, occorrerà specificare lo user name con il quale siete registrati sul sito UGIdotNET al fine di verificare la vostra appartenenza alla Associazione. Vi aspettiamo!

sos

posted @ 22/06/2014 12.40 by Staff Lex101

Nasce ‘Lex101’, il blog di diritto delle nuove tecnologie ospitato da UGIdotNET!

Dopo il successo della terza giornata dei Community Days 2014 a Peschiera Borromeo, ci siamo resi conto della necessità di instaurare un dialogo costante, nonché un confronto di esperienze, tra tecnici del software e professionisti di altri settori (legal, business, marketing, ecc…).

Di qui l’idea di dar vita a questo blog, inteso quale strumento per una costante informazione e aggiornamento sugli adempimenti normativi, i profili di responsabilità e ancora altri aspetti giuridici connessi al mondo dell’informatica che chi lavora nel mondo IT non può e non deve ignorare.

Una ulteriore concreta è il servizio di pronto soccorso legale, del quale potete leggere i dettagli nel relativo post su questo blog.

Buona lettura!

Andrea Palumbo e Edoardo Colzani

posted @ 22/06/2014 12.30 by Staff Lex101

Resource Management delle Windows Runtime Apps

Anche se nel sito MSDN non è difficile trovare documentazione dettagliata sui diversi aspetti della gestione delle risorse di una Windows Store App o Windows Phone Store App, ma nello studio di tale materia non ho trovato una visione d'insieme che facilitasse la comprensione di come i vari aspetti siano legati tra di loro nella realizzazione della mia applicazione. Per tale motivo ho pensato che un post riassuntivo potesse essere utile, rimandando di volta in volta ai singoli articoli MSDN per l'approfondimento delle singole parti.

Ogni volta che eseguiamo la build della nostra applicazione, il Resource Management System crea un file PRI (Package Resource Index) che viene incluso nell'app e che consente di stabilire a runtime quali risorse debbano essere utilizzate in un dato momento.

Informazioni più dettagliate, che vi consiglio di leggere dopo aver completato la lettura di questo post, le potete trovare qui: Resource Management System.

Il file PRI contiene tutte le Named Resource collezionate al momento della build. Il file PRI altro non è che un dizionario di named resources e di referenze ai file di risorse contenute nello app package.

La cosa interessante è che le named resource possono avere più valori, a secondo delle qualified variant. A runtime il Resource Manager applicherà un algoritmo di risoluzione che identificherà tra i resource file associati ad una named resource quello da usare in quel momento, attraverso il confronto delle diverse qualified variant disponibili nel file PRI rispetto al ResourceContext di esecuzione dell'app.

Se, ad esempio, abbiamo una Named Resource chiamata MyImage a cui corrispondono due file jpeg, uno con la qualified variant scale-100 e l'altro con qualified variant scale-140, il file utilizzato a runtime dipenderà dalla scale del ResourceContext di esecuzione.

Di seguito l'elenco delle diverse Qualified Variant disponibili:

  • language (può essere abbreviato a "lang" quando viene usato nel nome di file della risorsa, o addirittura omesso se utilizzato nel nome di una cartella)
  • scale
  • contrast
  • homeregion
  • targetsize
  • layoutdir
  • config
  • altform
  • DXFeatureLevel (può essere abbreviato con "DXFL")

Maggiori Informazioni le potete trovare qui: How to name resources using qualifiers (XAML).

Ok, dunque possiamo associare a una Named Resource diversi file risorsa, univocamente identificati da una qualsiasi combinazione delle qualified variant disponibili.

Ma dove dobbiamo mettere tali file nel nostro progetto di Visual Studio, e come dobbiamo chiamarli affinché durante la build questi file vengano riconosciuti come file risorse e vengano inseriti nel file PRI con tutte le loro giuste qualified variant?

La cosa più semplice è quella di mettere tutti i file risorsa nella cartella del progetto, o in una qualsiasi cartella contenuta in essa (ad esempio /Assets/Images) e inserire le qualified variant direttamente nel nome del file:

Oppure utilizzare delle cartelle che per nome hanno le qualified variant o ancora meglio un miscuglio di entrambe le tecniche:

E' utile notare che è sempre possibile inserire la suddetta struttura dentro una qualsiasi cartella contenuta nella cartella del progetto, o addirittura inserire altre cartelle all'interno della struttura stessa:

Per cui, ad esempio, il file /assets/Localized Images/it/contrast-high/MyImage.scale-100.jpg è del tutto equivalente al file MyImage.lang-it.contrast-high.scale-100.jpg .

L'ordine in cui compaiono le qualified variant è del tutto irrilevante, ad esempio MyImage.lang-it.contrast-high.scale-100.jpg è del tutto equivalente al file MyImage.scale-100.lang-it.contrast-high.jpg o ad ogni altra permutazione.

Ora che abbiamo illustrato la Gestione delle risorse in una Windows Runtime app, spostiamo la nostra attenzione sui file di tipo .resw e sull'uso di XAML x:Uid.

Nonostante la differenza di nome dell'estensione, il formato dei file di tipo .resw è del tutto identico a quello dei più tradizionali .resx, con la notevole eccezione del fatto che i file .resw possono contenere solo stringe e file path.

Visual Studio offre un comodo editor per la creazione e modifica di file di questo tipo:

Tali valori possono essere usati direttamente da codice XAML:

<TextBlock x:Uid="MyTextBlok" Text="This text will be shown at design time" />

A runtime la proprietà Text del TextBox con x:Uid pari a "MyTextBox" assumerà il valore corrispondente al valore dell'elemento contenuto nella risorsa che ha per nome l'unione del valore di Uid, del punto (.) e del nome della proprietà:

E' importate qui ricordare che nel codice XAML è comunque necessario assegnare un valore alla proprietà (nel nostro esempio "This text will be shown at design time") affinché sia possibile vederlo a design time.

Ovviamente è anche possibile leggere tali valori da codice, tipicamente in un ViewModel, bindato a qualche elemento XAML della UI.

Anche in questo caso, per maggiori Informazioni date un'occhiata qui: How to load string resources (XAML).

That's all folks! Happy coding. J

 

posted @ 21/06/2014 12.23 by Nicolò Carandini

Latest Images

From Immagini
From Foto
From Foto
From Foto
From Immagini
From Immagini
From Immagini
From PrivateImage
From image
From post
From post
From Immagini
From Messaggi
From BlogImagesLayout
From Screenshots
From Messaggi strani
From Sidebar
From Sidebar
From Immagini per UGI
From Screenshots