Nel lavoro quotidiano di uno sviluppatore capita spesso di dover eseguire azioni ripetitive e noiose. Per fortuna esistono strumenti come Grunt che consentono di automatizzare tali operazioni permettendo al programmatore di concentrarsi sugli aspetti importanti del proprio lavoro. Grunt è un task runner molto versatile grazie alla sua struttura a plugin ed è ampiamente diffuso nell’ambito dello sviluppo di plugin e temi per WordPress.
Una nuova ricetta per lo sviluppo in WordPressFrancesco Cozzi
Da esperienze vissute sul campo nel mio lavoro quotidiano, nasce l'idea di questo speech proposto al WordCamp Torino 2018 dal titolo: Una nuova ricetta di sviluppo in WordPress.
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...Marco Parenzan
Windows Azure e Team Foundation Server hanno cominciato a cambiare in una maniera incredibile il modo di gestire i progetti software e tutta l'attività professionale dello sviluppatore. Ora il passaggio ulteriore: un Visual Studio, al momento ancora agli inizi, ma molto promettenti, completamente Web che gira nel browser. Vediamo cosa possiamo farci, tra sviluppo software, scelte tecnologiche, gestione del progetto e deployment.
Una nuova ricetta per lo sviluppo in WordPressFrancesco Cozzi
Da esperienze vissute sul campo nel mio lavoro quotidiano, nasce l'idea di questo speech proposto al WordCamp Torino 2018 dal titolo: Una nuova ricetta di sviluppo in WordPress.
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...Marco Parenzan
Windows Azure e Team Foundation Server hanno cominciato a cambiare in una maniera incredibile il modo di gestire i progetti software e tutta l'attività professionale dello sviluppatore. Ora il passaggio ulteriore: un Visual Studio, al momento ancora agli inizi, ma molto promettenti, completamente Web che gira nel browser. Vediamo cosa possiamo farci, tra sviluppo software, scelte tecnologiche, gestione del progetto e deployment.
Marco Rho: Magento theme development workflow con GruntMeet Magento Italy
Creare un workflow per lo sviluppo di un tema in Magento, automatizzando processi e integrando framework e preprocessori, è fondamentale non solo per velocizzare i tempi di sviluppo, ma anche perché aiuta il riuso del codice e mantiene facile la manutenzione del progetto. Grunt è un task runner formidabile che permette di realizzare operazioni ripetitive e di eseguirle in cascata in maniera automatica.
In questa presentazione Marco Rho ci mostrerà come creare un workflow per ottimizzare lo sviluppo di un tema di Magento. In particolare, configurerà Grunt in modo da pre-processare file scritti in sass, controllare la sintassi del codice, ottimizzare i tempi di caricamento del sito (minificando i file e ottimizzando in automatico le immagini), ed eseguire il reload automatico della pagina contemporaneamente su diversi device e browser per il testing.
Una guida passo-passo per installare un laboratorio multimediale/di sviluppo didattico scolastico linux e windows (dual boot) nel minor tempo possibile e con le stesse funzionalità. Aggiornata con Italc2 e Ubuntu 12.04 LTS
La prototipazione è un’attività fondamentale per “capire facendo”. Lo scopo della prototipazione non è costruire partendo da un progetto definito ma, piuttosto, acquisire dati preziosi per essere poi più consapevoli di prendere la giusta direzione. Alla base delle attività di prototipazione ci sono spesso strumenti low code e no code. Esistono ormai da diversi anni e ultimamente stanno guadagnando sempre più attenzione nella community per la loro immediatezza e velocità. Abbiamo definito meglio le loro qualità e le opportunità che ci sono nel loro utilizzo.
Durante il talk abbiamo approfondito perché è importante prototipare e come questa attività migliora i nostri progetti. In particolare, abbiamo approfondito l’utilizzo AWS Step Functions Workflow Studio, strumento low code prodotto da AWS. Workflow Studio ci permette di imbastire una state machine basata su step functions con uno strumento visuale drag & drop che semplifica moltissimo il nostro lavoro. Abbiamo analizzato cosa lo contraddistingue da altri strumenti e quali sono i suoi punti di forza. Infine siamo passati alla pratica facendo una piccola esercitazione con AWS Step Functions.
Livin' with Docker - dallo sviluppo alla produzionegiacomos
Presentiamo un caso di studio di un progetto web nato e cresciuto con Docker al centro della scena. Vedremo le soluzioni scelte durante tutto il percorso, partendo da docker-compose in locale, per arrivare a CoreOS e systemd in produzione, passando per la fase di continuous integration/build e il deploy.
Talk DockerOps 13-02-2016, Ferrara
Grazie a Team Foundation Build è possibile adottare pratiche di integrazione continua nel proprio progetto. In questa presentazione viene introdotta la struttura di tfs build assieme alle tecniche base per effettuare una customizzazione della build.
Slide e riferimenti al codice del Meetup del 28/02/2019 del Vue JS Milano dove parlo di creazione di componenti, passaggio di parametri, computed properties
Da un po' di tempo a questa parte quando uno sviluppatore software sente la parola "Clouds" non pensa più alle nuovole, ma a...? Durante l'intervento risponderò a questa domanda e mostrerò come una applicazione web sviluppata con Spring Framework, Apache Maven e OpenJPA può essere installata facilmente e (quasi)gratuitamente sulla piattaforma per il cloud computing messa a disposizione da Google.
Il codice di esempio della presentazione lo trovate su: http://code.google.com/p/gae-javaday10/
Riassunto delle funzionalità. modifiche e aggiornamenti presenti nella versione 7.5, in preparazione del rilascio della nuova LTS previsto per il 10 novembre. Sarà organizzato un Party Release in cui conoscere da vicino il nuovo prodotto CMS. Contattami per avere maggiori informazioni.
Marco Rho: Magento theme development workflow con GruntMeet Magento Italy
Creare un workflow per lo sviluppo di un tema in Magento, automatizzando processi e integrando framework e preprocessori, è fondamentale non solo per velocizzare i tempi di sviluppo, ma anche perché aiuta il riuso del codice e mantiene facile la manutenzione del progetto. Grunt è un task runner formidabile che permette di realizzare operazioni ripetitive e di eseguirle in cascata in maniera automatica.
In questa presentazione Marco Rho ci mostrerà come creare un workflow per ottimizzare lo sviluppo di un tema di Magento. In particolare, configurerà Grunt in modo da pre-processare file scritti in sass, controllare la sintassi del codice, ottimizzare i tempi di caricamento del sito (minificando i file e ottimizzando in automatico le immagini), ed eseguire il reload automatico della pagina contemporaneamente su diversi device e browser per il testing.
Una guida passo-passo per installare un laboratorio multimediale/di sviluppo didattico scolastico linux e windows (dual boot) nel minor tempo possibile e con le stesse funzionalità. Aggiornata con Italc2 e Ubuntu 12.04 LTS
La prototipazione è un’attività fondamentale per “capire facendo”. Lo scopo della prototipazione non è costruire partendo da un progetto definito ma, piuttosto, acquisire dati preziosi per essere poi più consapevoli di prendere la giusta direzione. Alla base delle attività di prototipazione ci sono spesso strumenti low code e no code. Esistono ormai da diversi anni e ultimamente stanno guadagnando sempre più attenzione nella community per la loro immediatezza e velocità. Abbiamo definito meglio le loro qualità e le opportunità che ci sono nel loro utilizzo.
Durante il talk abbiamo approfondito perché è importante prototipare e come questa attività migliora i nostri progetti. In particolare, abbiamo approfondito l’utilizzo AWS Step Functions Workflow Studio, strumento low code prodotto da AWS. Workflow Studio ci permette di imbastire una state machine basata su step functions con uno strumento visuale drag & drop che semplifica moltissimo il nostro lavoro. Abbiamo analizzato cosa lo contraddistingue da altri strumenti e quali sono i suoi punti di forza. Infine siamo passati alla pratica facendo una piccola esercitazione con AWS Step Functions.
Livin' with Docker - dallo sviluppo alla produzionegiacomos
Presentiamo un caso di studio di un progetto web nato e cresciuto con Docker al centro della scena. Vedremo le soluzioni scelte durante tutto il percorso, partendo da docker-compose in locale, per arrivare a CoreOS e systemd in produzione, passando per la fase di continuous integration/build e il deploy.
Talk DockerOps 13-02-2016, Ferrara
Grazie a Team Foundation Build è possibile adottare pratiche di integrazione continua nel proprio progetto. In questa presentazione viene introdotta la struttura di tfs build assieme alle tecniche base per effettuare una customizzazione della build.
Slide e riferimenti al codice del Meetup del 28/02/2019 del Vue JS Milano dove parlo di creazione di componenti, passaggio di parametri, computed properties
Da un po' di tempo a questa parte quando uno sviluppatore software sente la parola "Clouds" non pensa più alle nuovole, ma a...? Durante l'intervento risponderò a questa domanda e mostrerò come una applicazione web sviluppata con Spring Framework, Apache Maven e OpenJPA può essere installata facilmente e (quasi)gratuitamente sulla piattaforma per il cloud computing messa a disposizione da Google.
Il codice di esempio della presentazione lo trovate su: http://code.google.com/p/gae-javaday10/
Riassunto delle funzionalità. modifiche e aggiornamenti presenti nella versione 7.5, in preparazione del rilascio della nuova LTS previsto per il 10 novembre. Sarà organizzato un Party Release in cui conoscere da vicino il nuovo prodotto CMS. Contattami per avere maggiori informazioni.
2. Ciao!
Ing. Informatico @ Black Studio
Web dal 1998 - WordPress Lover dal 2010
Sviluppatore di plugin, Core Contributor,
Organizzatore WP Meetup Teramo,
Speaker, PTE Globale Polyglots
Marco Chiesi
@marcochiesi
www.blackstudio.it
10. Cos'è GRUNT?
× Grunt è un task runner
× Scritto in JavaScript
× Modulo di Node.js
× Linea di comando
× Configurabile in base
al progetto
https://gruntjs.com
11. Perché usare Grunt?
× Automazione di task ripetitivi
× Open source
× Community estesa
× Migliaia di plugin disponibili
× Facile da installare e usare
× Possilità di realizzare plugin custom
13. Requisiti per utilizzare Grunt
Requisiti software:
× Node.js
× npm (node package manager)
Requisiti sviluppatore:
× Conoscenza di base JavaScript
× Familiarità con la linea di comando
14. Come iniziare
1. Scaricare e installare Node.js da
https://nodejs.org
2. Assicurarsi che npm sia aggiornato:
npm update -g npm
3. Installare globalmente Grunt CLI:
npm install -g grunt-cli
15. File e cartelle di Grunt
package.json
⇒ File che specifica le dipendenze
Gruntfile.js
⇒ File con le definizioni dei task
node_modules
⇒ Cartella con i moduli node.js
Da includere
nel versioning
Da escludere
dal versioning
16. Operare su un progetto Grunt esistente
1. Andare alla cartella principale del
progetto
cd <folder>
2. Installare le dipendenze del progetto:
npm install
3. Eseguire Grunt:
grunt oppure grunt <task>
17. Predisporre un nuovo progetto Grunt
1. Aprire cartella progetto: cd <folder>
2. Inizializzare package.json: npm init
3. Creare Gruntfile.js vuoto
4. Installazione Grunt e plugin da usare:
npm install grunt --save-dev
npm install <plugin> --save-dev
5. Editare Gruntfile.js
6. Eseguire Grunt: grunt o grunt <task>
21. Plugin per il caricamento automatico
load-grunt-tasks: permette di caricare i
task senza doverli specificare.
grunt.loadNpmTasks('grunt-shell');
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-cssmin');
grunt.loadNpmTasks('grunt-potomo');
grunt.loadNpmTasks('grunt-php');
grunt.loadNpmTasks('grunt-phpcs');
grunt.loadNpmTasks('grunt-eslint');
...
...
require('load-grunt-tasks')(grunt);
22. Combinazione di più task
grunt.registerTask( 'check', [
'phpcs',
'jshint',
'eslint',
'stylelint',
'checktextdomain',
'checkwpversion'
]);
Con registerTask è possibile combinare
più task in un solo comando.
23. Plugin per gestire file/cartelle
grunt-contrib-copy
× Copia di file e cartelle
grunt-contrib-clean
× Cancellazione/ripulitura file e cartelle
grunt-contrib-compress
× Creazione file compressi (zip, tar.gz, etc)
grunt-lineending
× Conversione caratteri di fine linea
25. Plugin Watch
Il plugin grunt-contrib-watch permette di eseguire
automaticamente dei task quando i file specificati
vengono aggiunti, modificati o cancellati.
grunt.initConfig({
watch: {
files: ['**/*.js'],
tasks: ['jshint'],
},
});
26. Plugin Watch + Live Reload
Il plugin grunt-contrib-watch supporta anche il
ricaricamento automatico del browser.
watch: {
css: {
files: '**/*.sass',
tasks: ['sass'],
options: {
livereload: true,
},
},
},
27. Plugin per Browsersync
Il plugin grunt-browser-sync permette la
navigazione sincronizzata su più browser/device.
browserSync: {
dev: {
bsFiles: {
src : 'assets/css/style.css'
},
options: {
watchTask: true,
proxy: "test.local"
}
}
}
28. Plugin per Task interattivi
Il plugin grunt-prompt permette di
creare dei task interattivi.
31. Altri plugin specifici per WordPress
grunt-wp-readme-to-markdown
× Converte il readme.txt del plugin in formato
Markdown (utile per GitHub)
grunt-checkwpversion
× Verifica la consistenza del numero di versione
nei diversi punti del progetto
grunt-wp-deploy
× Deploy da Git al repo SVN di wordpress.org
32. Wrapper per WP-CLI
Con il plugin grunt-wp-cli unitamente al
wrapper wp-cli è possibile utilizzare
WP-CLI in combinazione con Grunt.