Angular2 final release

E’ finalmente disponibile la versione stabile di Angular2, successore di Angular1, il quale ha portato ad una completa riscrittura del codice del framework eliminando ogni compatibilità con la versione precedente.

l nostro obiettivo con Angular 2 è di costruire il miglior insieme di strumenti per creare applicazioni Web senza essere vincolati a mantenere una retrocompatibilità con le API esistenti.

Per chi avesse utilizzato una versione non stabile è disponibile il changelog delle modifiche.

Laravel – Email

Laravel fornisce delle API basate sulla libreria SwiftMailer e fornisce dei driver per SMTP, Mailgum, Mandrill, SparkPost, Amazon SES. PHP mail e sendmail permettono di iniziare ad inviare mail utilizzando un server mail locale.
I driver richiedono l’installazione di una libreria PHP tramite composer, le varie opzioni per i driver sopra citati si possono ritrovare nella documentazione ufficiale di laravel.

L’invio della mail si effettua importando “Mail” e creando la propria view blade ad esempio dentro la folder views\emails. La funzione Mail accetta tre argomenti. Il primo è il nome della view che contiene il messaggio, il secondo è un array di dati che vengono passati alla view, il terzo è il callback che ci permette di customizzare il ricevente, l’oggetto e altri aspetti della mail.

Le opzioni modificabili nel callback sono le seguenti:

Per configurare Gmail modifichiamo il file .env impostando le seguenti caratteristiche:

Poichè l’invio di molte email può rallentare il server e la nostra applicazione solitamente si utilizza una coda per permettere l’invio in background delle email. Laravel fornisce il metodo “queue” che si prende cura in automatico della coda di email

Laravel – SublimeText

Un ottime IDE per sviluppare utilizzando il framework Laravel è SublimeText. Infatti è disponibile un pacchetto che ci permette di includere un autocomplete efficace e veloce.

Se non lo abbiamo già fatto installiamo il pacchetto SublimeCodeIntel seguendo le istruzioni presenti sul sito. Il pacchetto offre le seguenti funzionalità:

  • Jump to Symbol Definition – Jump to the file and line of the definition of a symbol.
  • Imports autocomplete – Shows autocomplete with the available modules/symbols in real time.

Successivamente dobbiamo generare i file che utilizzerà SublimeCodeIntel per l’autocomplete. Il pacchetto che possiamo installare tramite composer si chiama laravel-ide-helper. Installiamolo con il seguente comando:

Aggiungiamo poi il service providers all’array che troviamo in config/app.php :

Possiamo ora generare l’autocomplete lanciando:

Configuriamo il composer.json per far in modo che dopo ogni update rilanci questa istruzione, modificando le seguenti righe come segue:

Laravel – versionamento del progetto GIT

Una volta creato il nostro progetto con laravel dobbiamo versionare il progetto creato, ad esempio tramite GIT. E’ buona cosa ignorare file e cartelle specifiche dell’ambiente in cui si sta lavorando. Per questo motivo il file .gitignore di default dovrebbe essere il seguente:

La cartella “vendor” contiene tutte le dipendenze, e normalmente non viene versionata per non appesantire il progetto. Le dipendenza potranno essere installare in ambiente di produzione tramite il comando:

Node_modules include i file scaricati tramite node, i quali solitamente vengono elaborati e minimizzati attraverso gulp – già presente nel progetto – , motivo per cui non è necessario versionare questa cartella.
La cartella cache, come suggerisce il nome, contiene solamente file temporanei utilizzati per ottimizzare le performance in ambiente di produzione.
Storage contiene file temporanei o cache legati all’applicazione, al framework o ai log applicatvi.
Il file “.env” contiene le impostazioni dell’ambiente, quali le credenziali per il database e ogni altra configurazione necessaria per far funzionare il nostro applicativo. E’ buona norma creare un file “.env.bak” contenente le configurazioni di default come esempio da utilizzare.

Il file .gitignore dovrà essere modificato per aggiungere i file specifici del progetto, un’utile strumento per recuperare la configurazione del nostro ambiente lo possiamo trovare su gitignore.io

Onesignal, gestisci in maniera semplice le notifiche (web e mobile)

OneSignal.com è un’applicazione web che consente di gestire in maniera semplice e veloce le notifiche delle applicazioni, sia via web che per le app.

Fra i suoi clienti possiamo trovare

  • Uber
  • Zynga
  • MTV
  • 9gag
  • e molti altri…

Il servizio è totalmente gratuito e illimitato in quanto viene supportato da personalizzazione e consulenze ai clienti enterprise e vengono utilizzati i dati aggregati per migliorare l’esperienza del web. Inoltre gli investitore del progetto sono del calibro di YCombinator, Justin Kan, SV Angel e Rakuten Ventures, il che rende la piattaforma potenzialmente stabile e lungimirante.

Le notifiche funzionano su:

  • browser, come chrome, safari, firefox
  • app, quindi su android, ios, windows
  • altre piattaforme come ionic, phonegap, unity, amazon, adobe air, react

Una volta effettuata la registrazione basterà seguire i semplici passi per iniziare ad usare lo strumento.

In particolare potremo:

  • segmentare gli utenti
  • inviare messaggi di test A/B
  • analizzare in tempo reale chi clicca o vede la notifica
  • avere lo storico delle interazioni delle notifiche
  • creare dei template già pronti delle notifiche
  • schedulare nuove notifiche

Lo strumento è potente e molto personalizzabile, ideale per piccoli progetti che non permettono la creazione di un sistema personalizzato, ma è possibile utilizzarlo anche per progetti più grossi, sfruttando le API.

Bash coming to Windows

Microsoft si avvicina sempre di più al mondo linux e all’open source, ha integrato in windows 10 la bash di linux, grazie ad una partnership con Canonical. L’annuncio è stato fatto durante la Build Keynote del 2016.
Nel discorso VP Terry Myerson aggiunge che ulteriori novità verranno annunciate presto. La nuova funzionalità sarà abilitata negli update di questa estate di Windows 10.

This is not a VM. This is not cross-compiled tools. This is native. We’ve partnered with Canonical to offer this great experience, which you’ll be able to download right from the Windows Store.

Il funzionamento della bash su Windows permette l’esecuzione dei binari reali, e non di binari ricompilati o adattati. Una volta installata la bash basterà avviarla e, dopo aver lanciato apt-get update, avremo a disposizione la Bash perfettamente funzionante. Potremo quindi installare Redis o qualsiasi altro pacchetto.

Queste funzionalità sono intese per lo sviluppo e non per un utilizzo in produzione, in cui è consigliabile utilizzare un vero server Linux.

Maggiori dettagli si possono trovare nel post di Scott Hanselman o sul blog Microsoft dedicato

Laravel – Introduzione

Laravel 5

Laravel è un framework open source PHP creato da Taylor Otwell che permette lo sviluppo di applicazioni che seguono il pattern MVC (Model View Controller). Ad oggi risulta il progetto PHP più seguito su GitHub con oltre 22.400 preferenze, seguito da CodeIgniter e symfony con 12.000 preferenze.

Da pochi mesi è stata rilasciata la versione 5 di laravel che segue lo standard PSR-2, una style guide per la scrittura del codice. L’utilizzo di uno standard per la scrittura permette di ridurre la difficoltà di lettura del codice scritto da altre persone, definendo delle linee guida, delle regole e delle aspettative su come organizzare il codice PHP.

Lumen

Nella versione 5 è stato sviluppato anche Lumen, una versione light di Laravel che permette di sviluppare applicazioni web più veloci e snelle. Infatti in Lumen non sono presenti tutte le componenti di Laravel, ma solamente le principali. I requisiti software sono praticamente i medesimi e migrare da Lumen a Laravel è pressochè immediato poichè tutte le librerie e le funzionalità rimangono inalterate.

Installazione

L’installazione di laravel è molto semplice e si basa su Composer. I requisiti sono:

  • PHP versione 5.5.9 o successive;
  • L’estensione PHP OpenSSL per generare e verificare messaggi criptati;
  • L’estensione PHP PDO per la persistenza dei dati;
  • L’estensione PHP Mbstring per la gestione avanzata delle stringhe;
  • L’estensione PHP Tokenizer.

è consigliato l’utilizzo di un database, come mysql, per persistere i dati.

Per prima cosa scarichiamo laravel tramite composer:

Creiamo un nuovo progetto utilizzando il comando “laravel new” seguito dal nome del nostro progetto:

Il generatore creerà la struttura base dell’applicativo nella cartella definita da “nomeapplicazione”.

EMOJICODE

Un linguaggio di programmazione esoterico è una tipologia di linguaggi di programmazione particolarmente complessi e volutamente meno chiari possibile

Emojicode permette di programmare utilizzando gli emoji al posto dei normali caratteri. E’ un linguaggio imperativo multi-paradigma di alto livello, ibrido, statico, fortemente tipizzato, privo di delimitatori e orientato agli oggetti che poggia le sue basi sulla compatibilità Unicode.

Un esempio di codice di fibonacci è il seguente

La procedura di installazione è disponibile a questo indirizzo: http://www.emojicode.org/docs/guides/.

Chrome – supporto alle variabili CSS

Chrome 49 avrà il supporto alle variabili CSS introducendo alcune alcune funzionalità già presenti in sass e less. Solamente Chrome 49, Firefox 43+, Safari 9.1 eiOS 9.3 supportano questo standard mentre non è ancora presente questa funzionalità in Microsoft Edge, Opera o Android rendendone l’utilizzo al momento impossibile per prodotti destinati al grande pubblico.

L’utilizzo è molto semplice, si dichiara una variabile preceduta da “–” e si utilizza richiamandola con la funzione var(custom-property-name [, declaration-value ]? ), come mostrato in questo esempio.

Si differenzia da sass e less poichè queste proprietà seguono lo standar delle cascade rule ed è quindi possibile ridefinire una variabile più volte all’interno dello stesso css

E’ possibile recuperare o settare il valore di una variabile anche da javascript con la funzione

Google Developers
CSS WG

2. Telegram – inviare messaggi con python

PyTg è un pacchetto python che comunica con la command line interface di Telegram (telegram tg), per inviare e ricevere messaggi e altro ancora. Installiamo il pacchetto con il comando

Per creare un’istanza di telegram e registrare il sender e il receiver il codice da utilizzare è il seguente:

L’invio di un messaggio viene semplificato a questa linea di codice:

per ricevere i messaggi inizializziamo il receiver e diciamogli di eseguire la coroutine per rispondere, stampare o salvare il messaggio:

La lista di tutti i comandi disponibili è presente qui:
https://github.com/luckydonald/pytg/blob/master/DOCUMENTATION.md

Un esempio di codice python potrebbe essere il seguente: