Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attività ripetitive o noiose (dall’esecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
[drupalday2017] - DevOps: strumenti di automazione per Drupal8DrupalDay
Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attività ripetitive o noiose (dall’esecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
di Luca Cracco
[drupalday2017] - DevOps: strumenti di automazione per Drupal8DrupalDay
Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attività ripetitive o noiose (dall’esecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
di Luca Cracco
In questo talk farò vedere il primo approccio ad Elixir in un semplice caso reale. Vedremo cosa significa sviluppare un piccolo servizio in Elixir e quanto l'ecosistema sia pronto per andare in produzione.
Siamo ormai circondati da smartphone e tablet basati su Linux, in particolare con sistema operativo Android. Ma come vengono realizzate tutte le applicazioni utili che possiamo installare? Come possiamo creare una nostra app da zero? Nel talk verrà spiegato quali sono i primi passi da fare e quali errori evitare.
Questo intervento ha fatto parte del Linux Day 2016.
Il video è disponibile qui: http://grappalug.org/eventi/evento/come-si-creano-le-app-android/
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
Introduzione a Docker e alla Dockerizzazione.
Filosofia e progettazione Docker
Comandi principali per gesitere immagini, container, volumi e reti
Dockerfile e docker-compose
Valerio Radice @ Nextre (Maggio 2017)
TAG: docker , Dockerfile , docker-compose , italian , nextre
[Marco Capobussi] - DevOps: strumenti di automazione per Drupal8Wellnet srl
Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attività ripetitive o noiose (dall’esecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
Come approcciare il layer di theming in Drupal 8 (e non solo) utilizzando strumenti grazie ai quali possiamo otterrete tempi di sviluppo più breve, maggiore manutenibilità,scalabilità e controllo. verranno presi in esame preprocessori CSS (SASS) e tool di building basati su NPM (GULP e relativi task, BOWER, con menzione a YEOMAN e drupal console), la loro interazione con l'architettura file di un tema e l'utilizzo di naming convenction per css in Drupal 8 (BEM, SMACSS)
Lo sviluppo del modulo Devel affonda le sue radici nel lontano 2003 quando la versione di Drupal era la 4.1. Ne è passata di acqua sotto i ponti e siamo in direttura di arrivo per la prima versione stabile di Devel per Drupal 8. Molte cose sono cambiate sia a livello di architettura che di funzionalità messe a disposizione degli sviluppatori. Integrazione con il Core - integrazione nativa con il modulo Toolbar del Core - pagine di informazione sul Service Container, le rotte, le entità, gli eventi e molto altro - cambio rapido di utente - accesso in lettura e modifica dei dati memorizzati nel Configuration Management System e nelle State API - estensioni di Twig per il dump delle variabili o l'impostazione di breakpoint per xDebug Dumpers Un sistema a plugin per stampare in pagina variabili complesse come array ed oggetti. Kint, Symfony var-dumper, Doctrine, sono tutti supportati e presenti di default in Devel. Webprofiler Profila e analizza ogni singola pagina del sito. Dalla toolbar che Webprofiler aggiunge al footer di ogni pagina hai una visione sull'utilizzo delle risorse, sulle query al database, sulle viste, sui blocchi e molto altro.
[Gian Mario Mereu] - Drupal & Patternlab: un nuovo approccio al themingWellnet srl
Mano a mano che i siti diventano sempre più complessi ed articolati emergono nuovi metodi di progettazione che cercano di gestire questa complessità. Uno dei metodi più popolari è l'Atomic Design che ha nei seguenti elementi i mattoni fornamentali con cui progettare il sito: Atomi, Molecole, Organismi, Templates, Pagine. Questa tecnica è supportata da uno strumento: PatternLab. C'è molta attività attorno all'uso di questo strumento in Drupal, in questo talk vedremo a che punto è l'integrazione.
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.DrupalDay
Il talk sarà incentrato sul tema dell’accessibilità web. Sarà introdotta la tematica sia dal punto di vista generale (cos’è l’accessibilità, quali sono le leggi nazionali in materia), che delle metodologie utilizzate per la verifica dell’accessibilità (le WCAG, gli esperti ed i gruppi di valutazione), che degli strumenti a supporto dello sviluppo di siti accessibili (validatori e contrast checker), con una dimostrazione del loro funzionamento. Infine si discuterà dell’accessibilità in Drupal.
di Antonio Giovanni Schiavone
The document describes a project to design an automatic robot for pest controlling in agriculture. It aims to reduce the manual work and health hazards farmers face when spraying pesticides. The proposed solution is an autonomous robot that can be remotely controlled to spray pesticides on crops. It is expected to minimize the workload on farmers and reduce the risks of breathing problems associated with pesticide spraying. The robot would use sensors, motors and a remote control system to spray liquids at a distance across fields and varied surfaces.
Agricultural robots can perform various agricultural tasks autonomously such as spraying, mechanical weed control, fruit picking, monitoring farms, and allowing farmers to increase efficiency and precision. Various types of agricultural robots are used for tasks like harvesting (Demeter robot), weed control, forestry work, horticulture, and fruit picking. Agricultural robots have advantages like collecting crop samples close to plants, applying chemicals precisely, and working continuously without needing rest. However, challenges include the costs of the technology and ensuring periodic human presence in fields. Future agricultural robots may include flying microbots and exoskeleton suits to assist with labor-intensive tasks.
Oggi possiamo finalmente lasciarci alle spalle l’idea di dover utilizzare PHP per lo sviluppo web. Durante la presentazione verrà spiegato un semplice workflow che utilizzo per lavorare con Python, Flask, SQLite, Apache e Git per ridurre i bug, semplificare il codice e ottimizzare i tempi di deployment.
Questo intervento ha fatto parte del Linux Day 2017.
Il video è disponibile qui: https://youtu.be/0Rwd75iHZN4
In questo talk farò vedere il primo approccio ad Elixir in un semplice caso reale. Vedremo cosa significa sviluppare un piccolo servizio in Elixir e quanto l'ecosistema sia pronto per andare in produzione.
Siamo ormai circondati da smartphone e tablet basati su Linux, in particolare con sistema operativo Android. Ma come vengono realizzate tutte le applicazioni utili che possiamo installare? Come possiamo creare una nostra app da zero? Nel talk verrà spiegato quali sono i primi passi da fare e quali errori evitare.
Questo intervento ha fatto parte del Linux Day 2016.
Il video è disponibile qui: http://grappalug.org/eventi/evento/come-si-creano-le-app-android/
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
Introduzione a Docker e alla Dockerizzazione.
Filosofia e progettazione Docker
Comandi principali per gesitere immagini, container, volumi e reti
Dockerfile e docker-compose
Valerio Radice @ Nextre (Maggio 2017)
TAG: docker , Dockerfile , docker-compose , italian , nextre
[Marco Capobussi] - DevOps: strumenti di automazione per Drupal8Wellnet srl
Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attività ripetitive o noiose (dall’esecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
Come approcciare il layer di theming in Drupal 8 (e non solo) utilizzando strumenti grazie ai quali possiamo otterrete tempi di sviluppo più breve, maggiore manutenibilità,scalabilità e controllo. verranno presi in esame preprocessori CSS (SASS) e tool di building basati su NPM (GULP e relativi task, BOWER, con menzione a YEOMAN e drupal console), la loro interazione con l'architettura file di un tema e l'utilizzo di naming convenction per css in Drupal 8 (BEM, SMACSS)
Lo sviluppo del modulo Devel affonda le sue radici nel lontano 2003 quando la versione di Drupal era la 4.1. Ne è passata di acqua sotto i ponti e siamo in direttura di arrivo per la prima versione stabile di Devel per Drupal 8. Molte cose sono cambiate sia a livello di architettura che di funzionalità messe a disposizione degli sviluppatori. Integrazione con il Core - integrazione nativa con il modulo Toolbar del Core - pagine di informazione sul Service Container, le rotte, le entità, gli eventi e molto altro - cambio rapido di utente - accesso in lettura e modifica dei dati memorizzati nel Configuration Management System e nelle State API - estensioni di Twig per il dump delle variabili o l'impostazione di breakpoint per xDebug Dumpers Un sistema a plugin per stampare in pagina variabili complesse come array ed oggetti. Kint, Symfony var-dumper, Doctrine, sono tutti supportati e presenti di default in Devel. Webprofiler Profila e analizza ogni singola pagina del sito. Dalla toolbar che Webprofiler aggiunge al footer di ogni pagina hai una visione sull'utilizzo delle risorse, sulle query al database, sulle viste, sui blocchi e molto altro.
[Gian Mario Mereu] - Drupal & Patternlab: un nuovo approccio al themingWellnet srl
Mano a mano che i siti diventano sempre più complessi ed articolati emergono nuovi metodi di progettazione che cercano di gestire questa complessità. Uno dei metodi più popolari è l'Atomic Design che ha nei seguenti elementi i mattoni fornamentali con cui progettare il sito: Atomi, Molecole, Organismi, Templates, Pagine. Questa tecnica è supportata da uno strumento: PatternLab. C'è molta attività attorno all'uso di questo strumento in Drupal, in questo talk vedremo a che punto è l'integrazione.
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.DrupalDay
Il talk sarà incentrato sul tema dell’accessibilità web. Sarà introdotta la tematica sia dal punto di vista generale (cos’è l’accessibilità, quali sono le leggi nazionali in materia), che delle metodologie utilizzate per la verifica dell’accessibilità (le WCAG, gli esperti ed i gruppi di valutazione), che degli strumenti a supporto dello sviluppo di siti accessibili (validatori e contrast checker), con una dimostrazione del loro funzionamento. Infine si discuterà dell’accessibilità in Drupal.
di Antonio Giovanni Schiavone
The document describes a project to design an automatic robot for pest controlling in agriculture. It aims to reduce the manual work and health hazards farmers face when spraying pesticides. The proposed solution is an autonomous robot that can be remotely controlled to spray pesticides on crops. It is expected to minimize the workload on farmers and reduce the risks of breathing problems associated with pesticide spraying. The robot would use sensors, motors and a remote control system to spray liquids at a distance across fields and varied surfaces.
Agricultural robots can perform various agricultural tasks autonomously such as spraying, mechanical weed control, fruit picking, monitoring farms, and allowing farmers to increase efficiency and precision. Various types of agricultural robots are used for tasks like harvesting (Demeter robot), weed control, forestry work, horticulture, and fruit picking. Agricultural robots have advantages like collecting crop samples close to plants, applying chemicals precisely, and working continuously without needing rest. However, challenges include the costs of the technology and ensuring periodic human presence in fields. Future agricultural robots may include flying microbots and exoskeleton suits to assist with labor-intensive tasks.
Oggi possiamo finalmente lasciarci alle spalle l’idea di dover utilizzare PHP per lo sviluppo web. Durante la presentazione verrà spiegato un semplice workflow che utilizzo per lavorare con Python, Flask, SQLite, Apache e Git per ridurre i bug, semplificare il codice e ottimizzare i tempi di deployment.
Questo intervento ha fatto parte del Linux Day 2017.
Il video è disponibile qui: https://youtu.be/0Rwd75iHZN4
OpenOffice.org non è solo la principale suite di applicazioni per l'ufficio completamente libera e basata su open standard (OpenDocument è standard ISO), ma può trasformarsi in una potente piattaforma per applicazioni document-based programmabile via Java.
In questa presentazione esploreremo le potenzialità del connubio fra OpenOffice.org e Java tramite alcuni esempi applicativi. In particolare vedremo la possibilità di eseguire script nei linguaggi basati su JVM come BeanShell e Jython, l'esecuzione remota da applicazioni Java esterne di funzioni di OpenOffice.org lanciato in modalità server, e i diversi punti di aggancio per estendere le funzionalità della suite dall'interno tramite componenti Java custom.
Vedremo infine la nuova applicazione Base presente in OpenOffice.org 2.0 per l'accesso a sorgenti dati JDBC.
Andrea Ceroni - Alexa, please deploy my Azure architecture - Codemotion Rome ...Codemotion
What about the possibility to scaffold and deploy your architecture using the voice? During this talk we'll see how this can be possible. We'll take Alexa and Azure as an example but ideally you can do the same with other technologies. Maybe soon this task will be much more fun!
Con il Framework 3.0 esordisce in Windows una nuova infrastruttura che permette agli sviluppatori di creare, grazie ad un designer, una rappresentazione visuale di una logica applicativa.
In questa introduzione vedremo come il ruolo di Workflow Foundation sia analogo a quello di un linguaggio che con i suoi statement provvede i mattoncini base per costruire un algoritmo. Una particolare attenzione verrà riposta nel prezioso meccanismo dei servizi del runtime di Workflow Foundation e naturalmente sulle Activity, il mattone fondamentale di questa infrastruttura.
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeomarcocasario
Talk di Salvatore Rome per il meeting di HTML5 Italy.
Se vi capita di avere fogli di stile disorganizzati, di usare il copia-incolla per ridefinire delle regole CSS, di dover cambiare un colore o un valore con Trova&Sostituisci... LESS è la soluzione.
Scopriremo l'uso delle variabili per definire i colori e le dimensioni principali, i mixin per creare regole complesse e riutilizzarle (come effetti ombra o animazioni), le nested rules per ordinare il codice e le funzioni per i colori.
Inoltre vedremo come sottolineare gli errori di sintassi e come automatizzare la compilazione in file CSS.
Dopo questo tutorial non vorrete più tornare ai CSS!
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
Introduzione al framework Java Spring e Maven per realizzare API REST.
Breve introduzione all'uso di Maven per configurare un progetto SpringBoot e realizzare un server REST.
Disponibile il codice dimostrativo su github (link nelle slide, attenzione alle branch).
Valerio Radice (valix85)
Luglio 2017
Similar to [Luca Cracco] - DevOps: strumenti di automazione per Drupal8 (20)
4. CHE COS'È ROBO
Robo è un
E' scritto in PHP con una programmazione orientata
agli oggetti
Ha a disposizione moltissimi task/comandi per lo
sviluppo, test, distribuzione, ecc..
task runner
5. TASK RUNNERS
Sono tools che permetto di automatizzare le operazioni
più riccorenti; sia semplici operazioni di minificazione del
css sia compilazione e pubblicazione di codice
Tra i più conosciuti troviamo , , .. ma
anche , , ...
Buildbot Jenkins
Grunt Gulp
7. USARE ROBO PER
Eseguire comandi
Lanciare test
Automatizzare le opereazioni più comuni
Eseguire attività parallele
Percepire cambiamenti sul filesystem
Inizializzare ambienti e progetti
8. ..PERCHÈ ROBO?
E' scritto in PHP ad oggetti
Supporto per i comandi: robo list
Comandi con convalida, colori ANSI, ecc..
Si può installare con Composer per il progetto
Vi sono un sacco di task già pronti
10. INSTALLAZIONE
PHAR
o scaricandolo via HTTPS da
Oppure installandolo in /usr/bin
wget http://robo.li/robo.phar
GitHub releases
sudo chmod +x robo.phar && mv robo.phar /usr/bin/robo
11. PER INIZIARE...
Creiamo il nostro Robo le.php con
Ed ecco il file:
cd mio_progetto
robo init
/**
* This is project's console commands
* configuration for Robo task runner.
*
* @see http://robo.li/
*/
class RoboFile extends RoboTasks
{
// define public methods as commands
}
15. ROBO TASKS
Base Tasks, FileSystem Tasks, File Tasks, Composer Tasks,
VCS Tasks, Development Tasks, Assets Tasks, Archive
Tasks, SSH, Rsync Tasks, Testing Tasks, NPM Tasks, Bower
Tasks, Gulp Tasks, Docker Tasks, ApiGen Tasks, e molti
altri in Packagist.org
16. INCLUDERE UN TASK
Aggiungerlo al progetto
Richiamarlo nel RoboFile
composer require boedah/robodrush
class RoboFile extends RoboTasks {
use BoedahRoboTaskDrushloadTasks;
public function test() {
// ...
}
}
17. CREARE UN TASK
TRAIT LOADTASKS.PHP
namespace MyAssetTasks;
trait loadTasks {
/**
* Example task to compile assets
*
* @param string $pathToCompileAssets
* @return MyAssetTasksCompileAssets
*/
protected function taskCompileAssets($path = null) {
// Always construct your tasks with the `task()` task builder.
return $this>task(CompileAssets::class, $path);
}
}
18. CREARE UN TASK
TASK IMPLEMENTATION
class CompileAssets implements RoboContractTaskInterface {
// configuration params
protected $path;
protected $to;
function __construct($path){
$this>path = $path;
}
function to($filename){
$this>to = $filename;
// must return $this
return $this;
}
// must implement Run
20. TASK VS STACK
Le classi Stack contengono un insieme di task da eseguire
uno dopo l'altro. Inoltre può essere configurato per
bloccarsi al primo errore che incontra senza proseguire
con gli altri task.
$this>stopOnFail(true);
21. STACK VS COLLECTION
Robo offre delle collection di task che permettono il
rilevamento degli errori e il recupero/rollback. Se uno dei
task della collection va in errore, l'operazione viene
interrotta; attività di rollback può essere quindi eseguita
per ripristinare il sistema allo stato originale.
22. ROBOFILES MULTIPLI
E' possibile fornire il maggior numero di classi di comandi
(Robofile) direttamente al costruttore RoboRunner
$commandClasses = [
MyProjectCommandsBuildCommands::class,
MyProjectCommandsDeployCommands::class
];
$statusCode = RoboRobo::run(
$_SERVER['argv'],
$commandClasses,
'MyAppName',
'0.0.0alpha0'
);
exit($statusCode);