PRO360BLOG.com

Tecnologia a portata di mouse.

Chi sono

Sono un professionista del settore informatico a 360°. Da oltre 20 anni lavoro come consulente informatico in veste di sviluppatore e sistemista in ambiente Windows (e non solo). Seguo il progetto fin dall'analisi alla messa in produzione occupandomi di tutto compreso la parte grafica. Se vuoi conoscere meglio i miei skills vai a questa pagina).

Cerchi un PROGRAMMATORE, un DESIGNER o un SISEMISTA WINDOWS?
Parliamo insieme del TUO PROGETTO !

VAI AI CONTATTI

Sviluppo

In Evidenza
Argomenti trattati negli ultimi post

lunedì 11 giugno 2018

Disabilitare l'autofill di chrome e Opera

Di seguito una semplice best-practice su come, in modo forzato, disabilitare il completamento automatico sui campi utente,password ed email sui browser Chrome e Opera.




Solitamente infatti, è prevista la possibilità di disabilitare l'autocompletamento aggiungendo l'attributo autocomplete="off" al form o al campo input.

<form autocomplete="off">
</form>

Nel caso specifico dei campi sopracitati, Chrome ed Opera non sono molto diligenti e presentano in automatico, in alcune situazioni, delle informazioni di accesso in un contesto che non è quello corretto come ad esempio quando stiamo configurando degli utenti nella nostra applicazione.
Questo comportamento ci obbliga puntualmente a cancellare i dati suggeriti ad ogni inserimento o modifica.

Per poter ovviare a questo problema è sufficiente adattare la seguente soluzione.

Si tratta di inserire i seguenti campi fake e nascosti all'inizio del nostro form.


<!-- fake fields are a workaround for chrome autofill getting the wrong fields -->
<input style="display:none" type="text" name="fakeusernameremembered"/>
<input style="display:none" type="password" name="fakepasswordremembered"/>
Questo indirizzerà l'attenzione del browser su dei campi che non ci interessano permettendoci di inserire a nostra discrezione quelli corretti senza suggerimenti.

lunedì 26 marzo 2018

Google Cloud Platform - Cloud onBoard - Milano

Impara a costruire il futuro con Google Cloud Platform

HashTag: #GoogleCloudOnBoard
Seguire personalmente tutte le evoluzioni della tecnologia è praticamente impossibile.
Sono venuto a conoscenza dell'evento in oggetto e ho colto subito l'occasione.

Si tratta di Cloud OnBoard, una giornata gratuita di training strutturata per fornire step-by-step un’introduzione tecnica a Google Cloud Platform (GCP). 
Seguendo un'agenda molto ricca, abbiamo potuto visionare diverse presentazioni, ci sono state  sessioni hands-on e demo atte a visionare con i propri occhi i prodotti come Google App Engine, Datastore, Storage, Kubernetes Engine, Compute Engine e Network, Big Data e Machine Learning.

Prima di tutto devo fare i complimenti a Lorenzo Ridi (Software Engineer and Technical Trainer @Noovle) che ha sostenuto praticamente tutto l'evento senza farlo diventare noioso.

Ci sono stati momenti ludici per dimostrare l'efficienza dei sistemi e un sacco di informazioni riguardo una tonnellata di elementi presenti in tutto il sistema . Un sacco di icone e nomi da ricordare più un'infinità di API su cui si è sorvolato per motivi di tempo.
L'impressione è quella che con pochi passaggi e senza nessuna riga di codice si riesca a fare tantissime cose veramente fantastiche.
Google infatti mette a disposizione l'infrastruttura tecnologicamente più avanzata al mondo con strumenti che non hanno pari in grado di gestire notevoli carichi sia dal punto di vista di prestazioni che di quantità di dati in totale sicurezza rendendo così la scalabilità solo una questione amministrativa.

Mi piacerebbe approfondire ogni aspetto affrontato al trainig ma non sarebbe mai esaustivo e credo che per chi non ha ancora affrontato l'argomento sia più importante capire macroscopicamente quali siano eventualmente gli argomenti di proprio interesse da approfondire.

Argomenti di approfondimento


Compute Engine (VM scalabili e ad alte prestazioni)

Le VM di Compute Engine possono essere create utilizzando una delle configurazioni disponibili scelta tra quelle più utilizzate o può essere scelta l'opzione di creare tipi di macchine personalizzati in base alle esigenze specifiche.
Approfondimento: cloud.google.com/compute/

Kubernetes

E' un sistema open-source ( è stato fatto anche un confronto con altri due sistemi ) di automazione della distribuzione, ridimensionamento e gestione di applicazioni containerizzate. Raggruppa i contenitori (Containers) che costituiscono un'unità standardizzata che riunisce tutti i componenti e le dipendenze di un'applicazione, inclusi il codice, il runtime, i file binari e le librerie.
Approfondimenti : cloud.google.com/kubernetes-engine/

AppEngine

Google App Engine è una piattaforma completamente gestita che astrae del tutto l'infrastruttura, permettendo di concentrarsi esclusivamente sul codice. Significa che non ci si dovrà più preoccupare della parte legata alla scalabilità dell'app nel gestire il traffico, nel bilanciamento del carico, nel controllo dello stato e l'idoneità delle istanze, nonché l'applicazione di aggiornamenti al sistema operativo di base: tutte queste operazioni verranno completamente gestite da Google. App Engine supporta fin da subito Node.js, Java, Ruby, C#, Go, Python e PHP. App Engine è progettato per fare in modo che l'utente possa sfruttare un ecosistema crescente di servizi gestiti, accessibile con una semplice chiamata API.
Approfondimenti: cloud.google.com/appengine/

Cloud Functions (beta)

Modelli di calcolo completamente serverless possono essere attivati on demand in risposta a eventi provenienti da qualsiasi origine. Cloud Functions consente di creare e distribuire servizi a livello di singole funzioni, piuttosto che a livello di intere applicazioni, container o VM.
Approfondimenti: cloud.google.com/functions/

Bigtable

Un servizio di database NoSQL ad alte prestazioni per carichi di lavoro analitici e operativi di grandi dimensioni. È lo stesso database su cui si basano molti dei principali servizi di Google, tra cui Ricerca, Analytics, Maps e Gmail.
Approfondimenti: cloud.google.com/bigtable/

Cloud Storage

Si tratta di archiviazione di oggetti unificata per sviluppatori e aziende, dalla distribuzione di dati in tempo reale all'analisi/ML dei dati fino all'archiviazione definitiva dei dati. 
Approfondimenti: cloud.google.com/storage/

Cloud SQL

Si tratta di un servizio di gestione di database relazionali PostgreSQL (beta) e MySQL nella cloud. Offre prestazioni elevate, scalabilità e praticità ni una infrastruttura di database per le applicazioni eseguite in qualsiasi piattaforma.
Approfondimenti: cloud.google.com/sql/

Cloud Spanner

Tutti i vantaggi tradizionali di un database relazionale ma scalabile orizzontalmente fino a centinaia o migliaia di server per gestire i più imponenti carichi di lavoro transazionali.
Approfondimenti: cloud.google.com/spanner/

Cloud Datastore

Si tratta di un database NoSQL a scalabilità elevata per le applicazioni web e per dispositivi mobili. Gestisce automaticamente il partizionamento orizzontale e la replica. Funzionalità come transazioni ACID, query simili a SQL, indici e molto altro ancora.
Approfondimenti: cloud.google.com/datastore/

BigQuery

Un data warehouse aziendale veloce, economico e completamente gestito per l'analisi di dati  su scala petabyte per l'analisi di Google. BigQuery è serverless e può eseguire la scansione di TB in pochi secondi e di PB in pochi minuti.
Approfondimenti: cloud.google.com/bigquery/

Pub/Sub

Base semplice, affidabile e scalabile per l'analisi dei flussi e i sistemi di calcolo basati su eventi. 
Approfondimenti:  cloud.google.com/pubsub/

Dataflow

Elaborazione semplificata dei dati in modalità streaming e batch, con affidabilità ed espressività garantite. Supporta uno sviluppo rapido e semplificato delle pipeline mediante API Java e Python .
Approfondimenti: cloud.google.com/dataflow/

Dataproc

Un modo più veloce, facile ed economico per eseguire Spark e Hadoop.
Approfondimenti: cloud.google.com/dataproc/

Datalab

Strumento interattivo di facile utilizzo per l'esplorazione, l'analisi e la visualizzazione dei dati e il machine learning.  Basato su Jupyter (precedentemente IPython), vanta un vasto ecosistema di moduli e una solida knowledge base. Consente di analizzare i dati in Google BigQuery, Cloud Machine Learning Engine, Google Compute Engine e Google Cloud Storage tramite Python, SQL e JavaScript.
Approfondimenti: cloud.google.com/datalab/

Machine Learning

Servizio di machine learning su larga scala con modelli che coprono un ampio set di scenari, dalla creazione di modelli di regressione sofisticati alla classificazione delle immagini. È portatile, completamente gestito e integrato con altri prodotti della piattaforma Google Cloud Data, ad esempio Google Cloud Storage , Google Cloud Dataflow e Google Cloud Datalab ,
Approfondimenti : cloud.google.com/products/machine-learning/

La location

 NH Milano Congress Center ( Assago ) è stata perfetta, facile da raggiungere con i mezzi e vicina alla tangenziale ovest. L'audio era forte e pulito e ci sono diversi schermi giganti (proiezioni ben visibili e di ottima qualità) che ti permettono di seguire tutte le operazioni senza nessun problema.


Con questo evento sono molti i contenuti che si ha la possibilità di visionare e studiare  sia prima dell'evento (anticipati via mail) che successivamente. Vengono forniti link di approfondimento, Video, Accessi per testare e valutare

I vari vantaggi delle soluzioni Google:

  • Possibilità di porting o di sviluppo all'interno di containers o di deploy direttamente all'interno del Coud
  • L'ambiente viene costantemente verificato al fine di individuare problemi di varia natura
  • Sono disponibili differenti ambienti con diversi sistemi operativi preconfigurati ed ottimizzati che riducono lo spreco di risorse.
  • Possono essere utilizzati moltissimi linguaggi di programmazione
  • Il costo viene calcolato al secondo di utilizzo e questo porta in media ad un risparmio del 60% rispetto ad una VM tradizionale.
  • GitHub

Le figure coinvolte in Cloud OnBoard 

E' stato pensato per IT Manager, System Engineer e Professionisti dell’IT, Developer, Solution Architect e Business Leader che stanno esplorando i vantaggi delle soluzioni cloud o non hanno ancora una conoscenza approfondita di Google Cloud Platform. Oltre alla formazione tecnica per iniziare ad utilizzare Google Cloud Platform avrai accesso a interessanti indicazioni, suggerimenti, best-practice e alle sessioni di Q&A con il team GCP.

Altri link:

Pagina ufficiale: https://cloud.google.com/

Modernizing IT in a Cloud-First World: A Global Digital Conference in programma il 28 marzo
Prossimo evento webinar live Google Cloud OnAir in programma il 19 aprile
GOOGLE CLOUD CERTIFIED: Ottieni il tuo Certificato
Google Cloud Training : cloud.google.com/training

lunedì 12 marzo 2018

Bootstrap v4 - aggiungere il touch al componente Carousel

Come abilitare lo scorrimento del componente Carousel presente in Bootstrap v4 tramite il touch 


Se avete creato una Presentazione in Bootstrap versione 4 ed avete provato a visualizzarla da un dispositivo mobile, avrete sicuramente fatto caso che l'inevitabile abitudine di scorrere avanti e indietro passando il dito (swipe) sullo schermo nella direzione desiderata non produce effetti.

Per questo e per altri casi di utilizzo in cui vogliamo implementare l'utilizzo delle gesture, ci viene incontro uno script chiamato hummer.js

Di seguito lo utilizzeremo per abilitare le gesture di scorrimento avanti e indietro sulla nostra presentazione.

Procediamo come al solito ad aggiungere i nostri riferimenti necessari al funzionamento.

Come prima cosa Aggiungere i riferimenti ad hummer.js

Possiamo procedere in due modi: (A) Scaricando il javascript da depositare sul nostro sito, (B) procedendo utilizzando i riferimenti ai CDN

Metodo (A) : Scaricare il file dal sito ufficiale in una cartella js (ad esempio):
hummer.js è scaricabile da qui
Aggiungere nelle nostre pagine il riferimento al javascript scaricato all'interno del tag <head> ad esempio
<script src="js/hammer.min.js"></script>

Metodo (B) aggiungere solo il riferimento CDN all'interno del tag HEAD
<script src="https://cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min.js" integrity="sha256-eVNjHw5UeU0jUqPPpZHAkU1z4U+QFBBY488WvueTm88=" crossorigin="anonymous"></script>

Aggiungere lo script che ci permetterà di attivare la funzione..

Prima che si chiuda il tag BODY aggiungere il seguente script:
<script> $('.carousel').each(function () { var $carousel = $(this); var hammertime = new Hammer(this, { recognizers: [ [Hammer.Swipe, { direction: Hammer.DIRECTION_HORIZONTAL }] ] }); hammertime.on('swipeleft', function () { $carousel.carousel('next'); }); hammertime.on('swiperight', function () { $carousel.carousel('prev'); }); }); </script>

Descrizione

In pratica su tutti gli elementi con la classe "carousel" presenti nel nostro documento verrà controllato se viene fatto un swipe (ovvero uno scorrimento del dito) in senso orizzontale sul nostro elemento.
Se viene rilevato un evento con direzione destra o sinistra viene eseguito il comando predefinito che bootstrap associa a questo elemento per passare alla slide precedente ("prev") o successiva ("next")

Hommer è troppo interessante per non essere approfondito quindi torneremo sull'argomento.




lunedì 29 gennaio 2018

spectre x360 unboxing

Unboxing HP Spectre x360 Notebook con Active Pen inclusa Edizione 2017 (13-ae004nl)

Finalmente anche in Italia HP Store mette a disposizione la versione aggiornata dello Spectre X360
Non solo con processore I7 di ottava generazione ma anche con 16Gb di memoria RAM
Oltre alle caratteristiche elencate in seguito sono da segnalare anche un sensore per le impronte e  la webcam frontale TrueVision HD IR con doppio microfono integrato e supporto per il riconoscimento facciale di Windows Hello.
Questo modello in particolare non utilizza la tecnologia Sure View per oscurare lo schermo per motivi di privacy, che è presente sui modelli da 1080p.


Caratteristiche del modello in oggetto:
Windows 10 Home 64 Intel® Core™ i7-8550U Schermo tattile 4K da 13,3" (33,8 cm) (3840 x 2160) - Active Pen inclusa 16 GB di SDRAM SSD da 512 GB Scheda Grafica Intel® UHD 620
Lettore di impronte digitali
Webcam frontale TrueVision HD IR (doppio microfono e supporto riconoscimento facciale di Windows Hello)
1 porta USB 3.1 (Gen 1) Tipo A
2 Thunderbolt 3/USB Type-C
1 lettore per le schede micro SD Layout tastiera e software in Italiano HP Active Stylus: spen-hp-03 by PRO360team PRO360Blog.com Music: https://www.bensound.com

lunedì 22 gennaio 2018

ASP.NET - Errore : Valore potenzialmente pericoloso Request.Form rilevato dal client

ASP.NET - (validateRequest) Perché e come ovviare a questo errore

ASP.NET impedisce in modo proattivo gli attacchi da valori pericolosi.
La funzionalità è stata progettata per aiutare a prevenire alcuni attacchi script injection in codice di script client o HTML.

Risoluzione

È possibile disattivare la verifica della richiesta impostando l'attributo validateRequest su false puntualmente sulla pagina o a livello di applicazione.

Disattivare la convalida della richiesta di una pagina
All'inizio della pagina ASP:

<%@ Page validateRequest="false" %>

Disattivare la convalida della richiesta per l'applicazione
Nel file web.config:
 <configuration> 
  <system.web> 
    <pages validateRequest="false" /> 
  </system.web> 
</configuration> 

Fonte: support.microsoft.com

E' possibile modificare l'impostazione in fase di distribuzione del codice utilizzado il seguente comando di PowerShell:

Set-WebConfiguration "//system.web/pages/@validateRequest" IIS:\Sites\MyWebSite -Value $false


Maggiori dettagli sull'utilizzo del comando set-WebConfiguration : docs.microsoft.com


by PRO360team
PRO360blog.com


domenica 29 ottobre 2017

Blogger - Aggiungere un code snippet

Blogger - Aggiungere un code snippet per visualizzare la sintassi del codice all'interno dei post

Introduzione

Di seguito spiegerò come aggiungere all'interno del nostro blog un box dove potremo far visualizzare del codice in diversi linguaggi di programmazione con sintassi evidenziata e numero di righe.
Per fare questo, utilizzeremo SyntaxHighlighter, una libreria javascript.


Preparazione

Prima di tutto dobbiamo indicare gli stili e i javascript che ci permetteranno di elaborare il codice all'interno del nostro post (o pagina web) all'inizio del caricamento della pagina in modo che il codice che andremo ad inserire sia riconosciuto dallo script e visualizzato correttamente.

Dobbiamo fare riferimento alle librerie specifiche per ogni linguaggio che vorremo utilizzare (possibilmente solo quelle che pensiamo ci possano interessare)
Per maggiori informazioni fare riferimento ai seguenti link:

SyntaxHighlighter_Home  Sito ufficiale
SyntaxHighlighter_GitHub  Sito del progetto su GitHub
SyntaxHighlighter_CDN CDN repository da utilizzare per dichiararli all'interno del nostro sito.

Andare sulla gestione del tema di Blogger e cliccare su Modifica HTML.
Fare un backup (copia e incolla da altra parte) di tutto il codice della versione attuale (nel caso qualcosa andasse male).
Aggiungere il seguente codice prima della chiusura del tag </head> (vale anche per un sito classico)

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shCore.min.css" integrity="sha256-x/w94VndJQr7PoDeh6V07DPevWyTk2CvXuDn8PD/dXg=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shThemeDefault.min.css" integrity="sha256-j4kt570/QlhwKOmo3dnQHGkj85R+ZXcQ70CiQH5xjeY=" crossorigin="anonymous" />

<script src="https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shCore.min.js" integrity="sha256-L22W5IC7Eyudi+0xlvEJzeDfXk+sC8kdYet7MV9Gmcg=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushCpp.min.js" integrity="sha256-xtxi8ej6ImD1ERbXoz/4ymfsYXa9ldBy9h9fpBOmfB0=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushCSharp.min.js" integrity="sha256-5wa+3mL6mXb4sWV/uYQaFU7xDzAuo4VPvNGOTtWNc78=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushCss.min.js" integrity="sha256-Mzo5DX3TG0ajcrjt9RT8s5dDAeDjmldwXR104getEWc=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushJava.min.js" integrity="sha256-WIABnTbKZS1qDHfcj9fdrV9WK7V1YmJmWmYGjrt3x+4=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushJScript.min.js" integrity="sha256-+heouzbjtT7DtVsUFGPPqm4DbPEMDaz30YH8qDppdPQ=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushPhp.min.js" integrity="sha256-0AUqNUNKNwZfOWZPUpKouFr4KVVUMabUbhtQOTH0Omg=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushSql.min.js" integrity="sha256-b9KmzJmmxSrm/it6pZ+NQYc/XVmmBvPcH/TzzhfWzAQ=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushVb.min.js" integrity="sha256-GZPqLkJhFNSWdyVeZiCsgKFTQBO2F4lev8jj1Tz4OKU=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushXml.min.js" integrity="sha256-Fzv8td+qwhvqvelJUao/fFIcKNOGgKnd0weCJxY7Eos=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shAutoloader.js" integrity="sha256-CEEpWn4j2rx3xt613A0Q6JqB2zTBJfXErK/70t7T694=" crossorigin="anonymous"></script>
<script language='javascript'> 
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf';
SyntaxHighlighter.all();
</script>
Salvare il tema per applicare le modifiche.

Come inserire il code snippet per la visualizzazione del codice

Ora scriviamo il nostro primo post ed individuiamo il punto in cui vorremmo far visualizzare il codice. Sopratutto se il post è un po' lungo, il consiglio è di scrivere qualcosa di facilmente riconoscibile nell'editor per identificare poi il punto esatto dalla vista HTML, un placeholder inequivocabile.
Ci sono due possibilità per inserire il codice, utilizzare il tag script formattato come segue o utilizzare il tag pre raffigurato successivamente.
Dalla vista HTML individuare e sostituire la parola scelta con il codie seguente..

tag script


<script type="text/syntaxhighlighter" class="brush: js"><![CDATA[
function hello(){
    alert( 'Hello, world!' );
};
]]></script>

tag pre


<pre class="brush: php; html-script: true;">
<script>
    alert( 'Hello, world!' );
  </script>
</pre>

Nel primo caso (script) possiamo inserire il codice direttamente dalla vista HTML ma c'è un problema se includi un tag di script di chiusura, ad esempio </script>, anche all'interno del blocco CDATA, la maggior parte dei browser chiude in modo errato e  prematuro non visualizzandolo anche se fa parte ned codice da vidualizzare..
Per il secondo caso (pre) invece sarà necessario codificare il codice in formato HTML trasformando così tutti i simboli come fa anche l'editor di Blogger. È consigliato però non fare uso di quest'ultimo evitando di fare avanti e indietro dalle viste. Sarà sufficiente utilizzare uno dei tantissimi HTML Encoder che trovate in rete.
Ne suggerisco un paio per velocizzare la vostra voglia di provare subito ..
Attenzione a indicare correttamente il linguaggio che andrete ad inserire e quindi da interpretare.
È importante se sia presente il codice corrispettivo all'interno del tag </head> come indicato in precedenza e nel tag utilizzato per incorporare il codice che vogliamo visualizzare.
Entrambi i metodi infatti, utilizzano l'attributo class per passare le informazioni al parser che si occuperà di visualizzarci il codice in maniera più leggibile ( class="brush: html")
Sono tantissimi i linguaggi supportati e la comunity si occupa di aggiornarli e di aggiungerli, di seguito una lista di esempio:
  • actionscript3
  • bash, shell
  • c-sharp, csharp
  • cpp, c
  • css     
  • delphi, pas, pascal
  • diff, patch
  • groovy 
  • js, jscript, javascript
  • java
  • jfx, javafx
  • perl, pl
  • php 
  • plain, text
  • ps, powershell 
  • py, python
  • rails, ror, ruby
  • scala
  • sql
  • vb, vbnet
  • xml, xhtml, xslt, html, xhtml 
Ora potete fare le vostre prove e pubblicare il vostro codice.
Ci sono ancora molte cose che sarebbero da dire su questo argomento ma per approfondimenti come cambiare lo stile o conoscere ed eventualmente come superare alcuni bug ti rimando ai siti ufficiali che linko qua sotto.
Linguaggi e temi per utilizzare al meglio SyntaxHighlighter

domenica 22 ottobre 2017

Risolvere il problema dell’anteprima errata nei link di Facebook

Risolvere il problema dell’anteprima errata nei link di Facebook

Se state condividendo un link su Facebook ma le informazioni o l'anteprima non sono corrette o aggiornate è perchè Facebook memorizza le informazioni in una sua cache (memoria).

Se siete il proprietario o lo sviluppatore o semplicemente interessati a condividere il link in modo corretto, c'è una procedura facile e veloce che potete utilizzare per far si che Facebook aggiorni le informazioni memorizzate.

Senza entrare troppo nel merito è però necessario che alcune indicazioni siano presenti sul sito in modo da guidare Facebook nella raccolta corretta dei dati.

Procedura  (Debugger di Facebook)

Facebook mette a disposizione un tool apposito per correggere questo problema.
Andate al link Debugger - Facebook for Developers (sarà necessario effettuare l'accesso con il proprio account facebook)
Sarete già posizionati sulla funzione "Debugger di condivisione"


Inserendo l'indirizzo desiderato e cliccando Debug lo strumento visualizzerà i dati rilevati da Facebook.
Ad esempio visualizzerà: 
  • quando è stato fatto l'ultimo controllo da parte di Facebook
  • l'anteprima del post
  • i dati presenti nella pagina da condividere.


A questo punto, se le informazioni presenti sul sito sono state aggiornate rispetto l'ultimo passaggio dello scraping di Facebook possiamo procedere cliccando sul pulsante "Esegui lo scraping di nuovo" nella sezione "Data e modalità dell'ultimo scraping dell'URL"
In pochi secondi le informazioni verranno aggiornate e noi potremo procedere con la condivisione.

venerdì 18 agosto 2017

Alla ricerca di uno Smartphone Dual SIM

Cosa tenere presente durante la ricerca di uno
Smartphone Dual SIM


Quest'anno per me c'è stato un grosso cambiamento in ambito lavorativo perchè sono passato da Dipendente (da sempre) a Libero Professionista.
Nonostante nella mia esperienza abbia avuto a che fare con tantissimi altri professionisti con numero di telefono Aziendale, le soluzioni tipicamente adottate per gestire questa specifica esigenza sono due.
  • Dare ai propri Amici e Famigliari il numero Aziendale (ed in alcuni casi dismettere il proprio numero)
  • Utilizzare due cellulari Privato/Lavoro
Anch'io ho avuto il cellulare Aziendale e essendo un'impostazione della Società in cui lavoravo non mi sono mai fatto troppe domande.

Sono ormai tanti anni che nel mercato degli smartphone si sente parlare dei Dual SIM ed ho dato per scontato (sbagliando) che il mercato sia ormai rodato e che sia il momento giusto per acquistare un buon prodotto anche ad un prezzo conveniente.

Ora sono io che decido per me e su questo argomento ho fissato i seguenti punti fissi
  • Non voglio avere due cellulari da portare in giro con accessori a seguito e dover preoccuparmi quindi che siano sempre entrambi carichi
  • Non voglio dare in giro il mio numero di cellulare Privato a fini lavorativi in modo da non essere disturbato nei momenti privati.
Partendo da questi presupposti ho iniziato la mia ricerca del

Dual SIM (questo sconosciuto) 

Quello che ho riscontrato durante la mia ricerca del Device più giusto per le mie esigenze è stato che nessuna delle persone sentite in seguito alla mia ricerca (negozianti o persone che utilizzano il Dual SIM) si è mai fatto le domande che mi sono fatto io (il solito rompi palle).

Ora, come prima cosa partirei dalle specifiche tecniche che troveremo in negozio o ancora meglio sul sito del produttore. Ogni modello di smartphone sul mercato ha (o non ha) delle caratteristiche tecniche specifiche per quanto riguarda la gestione della doppia SIM e tocca a voi capire se sono indispensabili per l'uso che ne pensate di fare.
Anche su siti specializzati sull'argomento non ho trovato molte risposte alle mie domande ed il mio consiglio è di non avere troppa fretta nel trovare il modello giusto e non dare per scontato che modelli blasonati siano la risposta alla vostra esigenza perché con tutta probabilità il modello perfetto non esiste (sono un ottimista, ho detto "con tutta probabilità").
Io, per esempio, cercavo un Dual SIM di fascia media con buona batteria (che arrivasse fino a sera) e che fosse aggiornato come sistema operativo. Sicuramente Android in quanto Windows Phone ed Apple sono lontani dalla mia realtà lavorativa e in più mi sembra non esistano modelli dual SIM.

Genericamente

Innanzitutto non tutti i Dual SIM sono uguali. Tralasciando le Dual SIM Single Standby (forse neanche presenti negli Smartphone), le altre due da prendere in considerazione sono Dual SIM Dual Standby / Dual SIM full Active dove la Dual Standby permette di essere sempre pronti per ricevere chiamate da entrambe le SIM ma durante la conversazione solo una rimarrà attiva mentre l'altra risulterà non collegata e full Active che permetterà di ricevere una chiamata dal secondo numero anche se si sta conversando sul primo. Questo è dovuto al fatto che il primo monta un solo ricetrasmettitore mentre il secondo due, aumentando di conseguenza le radiazioni ed il consumo della batteria.
Altra cosa da tenere in mente è che molti dual SIM permettono l'installazione della seconda SIM a discapito della possibilità di montare una espansione di memoria.

Qui 3 slot differenti per montare due SIM ed una SSD

Carrello con modalità ibrida che permette di montare due SIM o una SIM ed una memoria SSD

Connessione Dati

Un'altra importante differenza è quella della connessione dati. E qui vi chiedo un po' di attenzione. In alcuni Device solo una delle due SIM (fisicamente) potrà utilizzare il traffico dati in 3G o 4G. Negli altri Device, che invece supportando il traffico dati su entrambi gli slot, dovremo scegliere con quale delle due SIM utilizzeremo il traffico dati. Questo è possibile tramite una impostazione dedicata e può essere in qualsiasi momento modificata all'esigenza. Teniamo presente che lo smartphone ha un solo sistema operativo che fa funzionare entrambe le SIM ma con una sola connessione alla volta indipendentemente se l'applicazione viene utilizzata per un operatore o l'altro. Nello scenario in cui per esempio avessimo sulla prima SIM un piano tariffario con tantissimi Giga compresi, difficilmente si riuscirà a sfruttare la seconda se non in emergenza.

Gestione Dual SIM (Contatti/Messaggi)

La cosa che ho dato più per scontato è che i due ambienti "telefonici" fossero in qualche modo mantenuti separati magari in una sola applicazione che ne rendeva più agevole la gestione. Beh, non è così semplice!
I contatti vengono uniti sotto la stessa rubrica e non sempre facilmente distinguibili. Nei miei casi sono sempre riuscito a configurare un account Google differente per ogni una delle SIM. Sono scelte del Produttore e nonostante le soluzioni fossero differenti, ho sempre trovato difficoltosa la gestione delle chiamate e dei messaggi.
Con molti Produttori viene chiesto di scegliere quale SIM utilizzare come impostazione predefinita per l'invio delle chiamate o per i Messaggi. L'alternativa è scegliere ogni volta con quale SIM si vuole comunicare. Solo in un caso ho trovato l'opzione "automatico" per le chiamate che si propone di utilizzare la SIM utilizzata precedentemente per il numero richiesto. Altra confusione è sui messaggi dove vengono raggruppati con l'ormai tipica visualizzazione a fumetti per il numero con cui comunichi ma che al momento dell'invio di un messaggio (anche in risposta) non è detto che venga utilizzato il numero con cui vi state scrivendo. Perchè ? Boh!

La gestione delle Apps

Come detto prima, il sistema operativo è uno solo quindi anche le App. Questo significa che se abbiamo la necessità di utilizzare applicazioni con account differenti come per la posta o per i social le cose si complicano.
Se le applicazioni non prevedono la possibilità di configurare più account o la gestione degli account all'interno delle stesse non vi convincono, le soluzioni possono essere diverse...
  • In alcune configurazioni e recenti versioni di Android, si possono creare più account del telefono in modo da configurarlo come se il telefono fosse condiviso con più persone e quindi ogni uno possa utilizzare i propri account e applicazioni in modo separato. Per poter accedere all'account è necessario eseguire l'accesso tramite un apposito pulsante sulla barra o nella schermata di lock.
  • Esistono dei programmi appositi che creano un secondo ambiente virtuale (privato o di lavoro) in quello principale con tanto di sfondi e applicazioni differenti. Si accede tramite l'icona dell'App. Attenzione perché non tutte le applicazioni che intendiamo installare potrebbero essere supportate. Ci sarà un Play Store dedicato per il secondo ambiente e delle impostazioni speciali di condivisione dati tra i due ambienti e le App potranno essere installate anche solo nella parte virtuale. 
  • Ci sono programmi che creano una nuova installazione delle Applicazioni presenti sul telefono che ne permettono una modifica del nome e dell'icona in modo che possa essere facilmente riconosciuta dall'utilizzatore. In questo caso si tratta di avere una copia di un programma già presente sul Device con il raddoppio della memoria da dedicare.
  • Altra soluzione, la migliore per quanto mi riguarda, è l'App gemella. Si tratta di una funzionalità preimpostata da alcuni Produttori ma che nasconde a volte alcune lacune. Visto solo su Android 7 ed alcuni modelli di smartphone, si trova nel menu delle impostazioni e la funzione è proprio quella di gestire l'App desiderata come una copia autonoma di essa. Anche qui, non  prendere per scontato nulla. Non tutti i Produttori estendono la funzionalità a tutte le Applicazioni (Honor e Huawei ad esempio includono solo facebook e whasapp) e comunque solo le applicazioni installate da noi (non stock) erano presenti nella mia lista. Abilitando questa funzione viene replicata la sezione dati quindi solo la parte di configurazione e dati utente garantendo così minore consumo di memoria e separazione dei dati.

Conclusione

La parte tecnica è quella che il negoziante dovrebbe conoscere senza alcun problema perché trattasi di specifiche dichiarate dal produttore quindi facilmente recuperabili. Cosa per me molto più importante è invece la User Experience (l'esperienza utente) data dalle scelte software del produttore.
E' vero, l'interfaccia e molte funzionalità possono essere sostituite ed ampliate installando altri programmi ma non senza difetti. L'approccio di installare App che personalizzano l'interfaccia e le funzionalità incidono sulle prestazioni e vi porta obbligatoriamente a scegliere un Device più potente e con maggiore memoria spendendo di più solo per sopperire ad un carico maggiore del software.
Infatti, con un telefono senza permessi di root continuerete ad avere le scelte del Produttore a pesare sullo spazio di memoria e a volte sulle prestazioni del Device. Quindi il mio consiglio è scegliere il device con meno criticità e sfruttare nuovi software solo laddove il produttore non è intervenuto correttamente.

Curiosi?

Ebbene si, dopo aver fatto le mie ricerche e sostituito ben 3 telefoni differenti in una sola settimana, ad oggi ho lasciato il mio bellissimo Galaxy S7 Edge per un Dual SIM.
I modelli che sono passati nelle mie mani sono stati: Honor 8, Acer ZenFone, Lenovo P2
Beh, non ci avrei scommesso nulla all'inizio ma sono a confermare diverse recensioni che ho letto in giro per il web. Ho trovato nel Lenovo P2 il massimo rispetto agli altri:
Una interfaccia non troppo sconvolta rispetto ad esempio quella dello ZenFone (secondo me un po' pacchiana).
App Gemella su tutte le app installate e non solo facebook e whatsapp come su Homor 8 (e i Huawei)
Una CPU con buone prestazioni (per essere un medio gamma)
4Gb ram su 32Gb di memoria (rinunciando all'espansione)
Ho installato "True Phone Dialer & Contacts" per gestire automaticamente gli invii di chiamata con l'ultimo numero utilizzato.



Seguiranno approfondimenti in merito ad App e miglioramenti che mi sento di consigliare.


Servizi

Di seguito puoi trovare una sintesi dei servizi offerti. Se hai bisogno di qualcosa di più specifico, non esitare, invia la tua richiesta tramite il form presente più in basso, la soluzione potrebbe essere a portata di mano. Se non esiste una soluzione pronta all'uso, un preventivo non costa nulla!

Windows
Consulenza supporto sistemistico

Supporto alle PMI nella configurazione e gestione della loro infrastruttura informatica sia lato workstation che server.

Richiedi un preventivo Vai ai contatti ..
Realizzazione siti web
Realizzazione siti web personalizzati, con possibilità 
di autogestirli in autonomia, responsive e
ottimizzati SEO.

Il sito dev'essere accattivante, veloce, funzionale e deve rispecchiare l'identità Aziendale.

Richiedi un preventivo Vai ai contatti ..
Software
la soluzione c'è..

Sviluppo di soluzioni software personalizzate o integrazione con Applicazioni pre esistenti.

Richiedi un preventivo Vai ai contatti ..
Mobile
Ovunque tu sia

Se hai bisogno di lavorare in mobilità, riceverari proposte di soluzioni all'altezza.

Richiedi un preventivo Vai ai contatti ..

Scrivi chi sei e per cosa vuoi essere contattato


PRO360 Team
Milano, Italia

+39 391 7454544
contatti@pro360web.com

Sei interessato gli argomenti trattati?
Ottieni di più con gli aggiornamenti !