Presentazione sullo stato dell'arte nell'utilizzo e nello sviluppo di Java su Mac OS X effettuata al JUG Milano Meeting #14 del 12 gennaio 2006 presso Mac@Work.
Makoo Jewels allows customers to create customized jewelry using their voice. The company 3D prints the designs and ships them internationally. The jewelry market in the US is large at $210 billion, with the e-commerce portion being $10 billion. Makoo Jewels targets women ages 25-30 who are educated, online shoppers. Personalization and emotional value are emphasized over competitors. The business model includes licensing software and collecting fees and royalties from production. The company has participated in several startup competitions and is seeking a lead Javascript developer.
L'approccio Model-Driven Development per lo sviluppo Agile nell'ambito dell'I...Codemotion
油
Come possono coesistere le metodologie Agile e l'approccio Model-Driven Development per lo sviluppo di applicazioni rivolte al paradigma dell'Internet of Things? Vediamo come sia possibile coinciliare agilmente tutto ci嘆 e sviluppare un'applicazione embedded in UML che dialoga con un servizio in esecuzione sul Cloud Bluemix.
FAST 竪 una raccolta di tecnologie, basate su Web Components e su Web Standards moderni, che ci aiuta ad affrontare in modo efficiente alcune delle sfide pi湛 comuni nella progettazione e nello sviluppo di siti ed applicazioni Web.
FAST ci aiuta a creare interfacce si adattano facilmente a qualunque Design System e che possono essere utilizzate con qualsiasi framework!
Ormai tutti i browser mettono a disposizione strumenti per l'interfacciamento tramite plugin scritti sempre pi湛 spesso usando le classiche tecnologie web, quali Javascript e HTML.
In questa sessione verr effettuata una prima presentazione della struttura di un plugin per Google Chrome e le funzionalit a cui 竪 possibile accedere attraverso questo; verranno poi analizzate alcune funzioni specifiche fornite dalle API, infine vedremo la procedura di pubblicazione dell'applicazione
Augmented Reality: guardare il mondo da un altro punto di vistaCodemotion
油
La presentazione di Paolo Maronne in occasione del Codemotion del 5 marzo 2011 http://www.codemotion.it
Cos'竪 e come funziona la tecnologia dell'Augmented Reality; quali tipologie di AR esistono; principali utilizzi e potenzialit future. Veloce carrellata sulle piattaforme di AR esistenti con uno zoom su Layar, una delle piattaforme pi湛 diffuse e complete. Illustrazione tecnica su come implementare una propria idea con Layar. Alla fine veloce carrellata su una implementazione reale realizzata dall'autore, che tutti i partecipanti potranno provare in loco col proprio telefonino iPhone o Android.
際際滷 utilizzate durante l'intervento sulle Progressive Web App e le Trusted Web Activities applicate a Wordpress e Woocommerce.
Trovate informazioni pi湛 precise sull'argomento su https://2019.catania.wordcamp.org/session/progressive-web-app-e-twa/
e sugli articoli https://www.francescogiammanco.it/progressive-web-app-lighthouse/
e https://www.francescogiammanco.it/trasformare-un-sito-in-twa/
Google Chrome Extensions & Plugin vs FirefoxWikiCorsoWeb
油
A little presentation about Google Chrome's plugins and extensions. A comparison with the browser Firefox. A work about web,tecnology and opensource by Andrea Testa, Valeria Gennari and Silvia Antognazza. Enjoy
Quante volte abbiamo aperto una pagina web sul nostro browser e ci siamo lamentati di quanto il nostro strumento di navigazione sia "pesante" o "divoratore di risorse"? Sappiamo quanta fatica fa un browser per renderizzare una semplice pagina web e quante sfide deve affrontare? Beh, di recente mi sono posto queste domande e ho tentato di capire di pi湛 come 竪 fatto un browser e quali sfide deve affrontare per far s狸 che le nostre pagine web (o applicazioni) possano oggi essere cos狸 interessanti come le pensiamo. Conoscerlo meglio ci aiuter a realizzare forse un web migliore e magari rendere la vita pi湛 facile al browser stesso ed al nostro amato computer. Prover嘆 a dare anche a voi un po' di ci嘆 che ho capito e che mi ha aiutato a stare pi湛 attento e responsabile come artigiano del web!
Le novit di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Antonio Gallo
油
Ionic 竪 da anni uno dei framework basati su angular pi湛 famosi e pi湛 usati.
La versione 4 竪 una completa riscrittura della precedente versione usando tutta una serie di nuovi standard web con cui avremo a che fare sempre pi湛 spesso nei prossimi anni: Custom Element, Variabili CSS, Shadow DOM e non solo.
In questo talk, sia per esperti che principianti, vedremo come, grazie a Ionic, si pu嘆 usare Angular per sviluppare un applicazione funzionante sia sul Web che sul Mobile.
Lo scorso anno abbiamo iniziato ad esplorare MonoTouch come strumento per lo sviluppo di applicazioni Line of Business (LOB) su iPad ed iPhone, tenendo in particolare considerazione la possibilit di far girare gran parte del codice, in particolare la logica di business, su altre piattaforme (mobile, ma anche desktop e server).
Ad un anno di distanza possiamo fare un resoconto dell'esperienza (ancora in corso) avuta con questo tool, vedendo alcune ricette pratiche che consentano di utilizzarlo in modo pi湛 efficiente e discutendo insieme su quando ha effettivamente senso sceglierlo, evitarlo o addirittura affiancarlo rispetto ad altri strumenti e tecnologie, tra cui ovviamente quelli basati su HTML5.
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
油
Increased complexity makes it very hard and time-consuming to keep your software bug-free and secure. We introduce fuzz-testing as a method for automatically and continuously discovering vulnerabilities hidden in your code. The talk will explain how fuzzing works and how to integrate fuzz-testing into your Software Development Life Cycle to increase your codes security.
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
油
It was 1993 when we decided to venture in a beat'em up game for Amiga. The Catalypse's success story pushed me and my comrade to create something astonishing for this incredible game machine... but things went harder, assumptions were slightly different, and italian competitors appeared out of nowhere... the project died in 1996. Story ended? Probably not...
More Related Content
Similar to Sviluppare plugin per google Chrome (20)
Augmented Reality: guardare il mondo da un altro punto di vistaCodemotion
油
La presentazione di Paolo Maronne in occasione del Codemotion del 5 marzo 2011 http://www.codemotion.it
Cos'竪 e come funziona la tecnologia dell'Augmented Reality; quali tipologie di AR esistono; principali utilizzi e potenzialit future. Veloce carrellata sulle piattaforme di AR esistenti con uno zoom su Layar, una delle piattaforme pi湛 diffuse e complete. Illustrazione tecnica su come implementare una propria idea con Layar. Alla fine veloce carrellata su una implementazione reale realizzata dall'autore, che tutti i partecipanti potranno provare in loco col proprio telefonino iPhone o Android.
際際滷 utilizzate durante l'intervento sulle Progressive Web App e le Trusted Web Activities applicate a Wordpress e Woocommerce.
Trovate informazioni pi湛 precise sull'argomento su https://2019.catania.wordcamp.org/session/progressive-web-app-e-twa/
e sugli articoli https://www.francescogiammanco.it/progressive-web-app-lighthouse/
e https://www.francescogiammanco.it/trasformare-un-sito-in-twa/
Google Chrome Extensions & Plugin vs FirefoxWikiCorsoWeb
油
A little presentation about Google Chrome's plugins and extensions. A comparison with the browser Firefox. A work about web,tecnology and opensource by Andrea Testa, Valeria Gennari and Silvia Antognazza. Enjoy
Quante volte abbiamo aperto una pagina web sul nostro browser e ci siamo lamentati di quanto il nostro strumento di navigazione sia "pesante" o "divoratore di risorse"? Sappiamo quanta fatica fa un browser per renderizzare una semplice pagina web e quante sfide deve affrontare? Beh, di recente mi sono posto queste domande e ho tentato di capire di pi湛 come 竪 fatto un browser e quali sfide deve affrontare per far s狸 che le nostre pagine web (o applicazioni) possano oggi essere cos狸 interessanti come le pensiamo. Conoscerlo meglio ci aiuter a realizzare forse un web migliore e magari rendere la vita pi湛 facile al browser stesso ed al nostro amato computer. Prover嘆 a dare anche a voi un po' di ci嘆 che ho capito e che mi ha aiutato a stare pi湛 attento e responsabile come artigiano del web!
Le novit di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Antonio Gallo
油
Ionic 竪 da anni uno dei framework basati su angular pi湛 famosi e pi湛 usati.
La versione 4 竪 una completa riscrittura della precedente versione usando tutta una serie di nuovi standard web con cui avremo a che fare sempre pi湛 spesso nei prossimi anni: Custom Element, Variabili CSS, Shadow DOM e non solo.
In questo talk, sia per esperti che principianti, vedremo come, grazie a Ionic, si pu嘆 usare Angular per sviluppare un applicazione funzionante sia sul Web che sul Mobile.
Lo scorso anno abbiamo iniziato ad esplorare MonoTouch come strumento per lo sviluppo di applicazioni Line of Business (LOB) su iPad ed iPhone, tenendo in particolare considerazione la possibilit di far girare gran parte del codice, in particolare la logica di business, su altre piattaforme (mobile, ma anche desktop e server).
Ad un anno di distanza possiamo fare un resoconto dell'esperienza (ancora in corso) avuta con questo tool, vedendo alcune ricette pratiche che consentano di utilizzarlo in modo pi湛 efficiente e discutendo insieme su quando ha effettivamente senso sceglierlo, evitarlo o addirittura affiancarlo rispetto ad altri strumenti e tecnologie, tra cui ovviamente quelli basati su HTML5.
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
油
Increased complexity makes it very hard and time-consuming to keep your software bug-free and secure. We introduce fuzz-testing as a method for automatically and continuously discovering vulnerabilities hidden in your code. The talk will explain how fuzzing works and how to integrate fuzz-testing into your Software Development Life Cycle to increase your codes security.
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
油
It was 1993 when we decided to venture in a beat'em up game for Amiga. The Catalypse's success story pushed me and my comrade to create something astonishing for this incredible game machine... but things went harder, assumptions were slightly different, and italian competitors appeared out of nowhere... the project died in 1996. Story ended? Probably not...
Il Commodore 65 竪 un prototipo di personal computer che Commodore avrebbe dovuto mettere in commercio quale successore del Commodore 64. Purtroppo la sua realizzazione si ferm嘆 appunto allo stadio prototipale. Racconter嘆 l'affascinante storia del suo sviluppo ed il perch竪 della soppressione del progetto ormai ad un passo dalla immissione in commercio.
Rivivere l'ebbrezza di progettare un vecchio computer o una consolle da bar 竪 oggi possibile sfruttando le FPGA, ovvero logiche programmabili che consentono a chiunque di progettare il proprio hardware o di ricrearne uno del passato. In questa sessione si racconta come dal reverse engineering dell'hardware di vecchie glorie come il Commodore 64 e lo ZX Spectrum sia stato possibile farle rivivere attraverso tecnologie oggi alla portata di tutti.
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
油
There's a lot of talk about blockchain, but how does the technology behind it actually work? For developers, getting some hands-on experience is the fastest way to get familiair with new technologies. So let's build a blockchain, then! In this session, we're going to build one in plain old Java, and have it working in 40 minutes. We'll cover key concepts of a blockchain: transactions, blocks, mining, proof-of-work, and reaching consensus in the blockchain network. After this session, you'll have a better understanding of core aspects of blockchain technology.
Richard S端selbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
油
When was the last time you were truly lost? Thanks to the maps and location technology in our phones, a whole generation has now grown up in a world where getting lost is truly a thing of the past. Location technology goes far beyond maps in the palm of our hand, however. In this talk, we will explore how a ridesharing app works. How do we discover our destination?How do we find the closest driver? How do we display this information on a map? How do we find the best route?To answer these questions,we will be learning about a variety of location APIs, including Maps, Positioning, Geocoding etc.
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
油
Eward Driehuis, SecureLink's research chief, will guide you through the bumpy ride we call the cyber threat landscape. As the industry has over a decade of experience of dealing with increasingly sophisticated attacks, you might be surprised to hear more attacks slip through the cracks than ever. From analyzing 20.000 of them in 2018, backed by a quarter of a million security events and over ten trillion data points, Eward will outline why this happens, how attacks are changing, and why it doesn't matter how neatly or securely you code.
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
油
IoT revolution is ended. Thanks to hardware improvement, building an intelligent ecosystem is easier than never before for both startups and large-scale enterprises. The real challenge is now to connect, process, store and analyze data: in the cloud, but also, at the edge. Well give a quick look on frameworks that aggregate dispersed devices data into a single global optimized system allowing to improve operational efficiency, to predict maintenance, to track asset in real-time, to secure cloud-connected devices and much more.
Martin F旦rtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
油
What if Virtual Reality glasses could transform your environment into a three-dimensional work of art in realtime in the style of a painting from Van Gogh? One of the many interesting developments in the field of Deep Learning is the so called "Style Transfer". It describes a possibility to create a patchwork (or pastiche) from two images. While one of these images defines the the artistic style of the result picture, the other one is used for extracting the image content. A team from TNG Technology Consulting managed to build an AI showcase using OpenCV and Tensorflow to realize such goggles.
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
油
The document summarizes some of the security issues with blockchain technology. It discusses how blockchain is not a "silver bullet" and does not inherently solve problems like privacy and security of smart devices. It outlines various application security issues with complex code, protocols, and difficulty of updates on blockchains. Concerns over data immutability and security of smart contracts are also covered. The document questions whether blockchain truly provides the level of decentralization and anonymity claimed, and outlines some impossibility results and limitations of existing approaches to achieving security and privacy in blockchain systems.
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
油
The document provides an overview of the HTTP network protocol in its early stages of development. It summarizes the initial IMP (Interface Message Processor) software used to establish connections and transmit messages over the ARPANET. It outlines some early requirements for host-to-host software to enable simple and advanced use between computer systems. The document also describes the initial host software specifications, including establishing connections, transmitting data efficiently, and implementing error checking between connected systems. This was one of the first documents to define core aspects of the early HTTP network protocol to enable information exchange over the fledgling internet.
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
油
Performance tests are not only an important instrument for understanding a system and its runtime environment. It is also essential in order to check stability and scalability non-functional requirements that might be decisive for success. But won't my cloud hosting service scale for me as long as I can afford it? Yes, but It only operates and scales resources. It won't automatically make your system fast, stable and scalable. This talk shows how such and comparable questions can be clarified with performance tests and how DevOps teams benefit from regular test practise.
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
油
Sascha will demonstrate the opportunities and challenges of Conversational AI learned from the practice. Both Technology and User Experience will be covered introducing a process finding micro-moments, writing happy paths, gathering intents, designing the conversational flow, and finally publishing on almost all channels including Voice Services and Chatbots. Valuable for enterprises, developers, and designers. All live on stage in just minutes and with almost no code.
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
油
A key challenge we face at Pacmed is quickly calibrating and deploying our tools for clinical decision support in different hospitals, where data formats may vary greatly. Using Intensive Care Units as a case study, Ill delve into our scalable Python pipeline, which leverages Pandas split-apply-combine approach to perform complex feature engineering and automatic quality checks on large time-varying data, e.g. vital signs. Ill show how we use the resulting flexible and interpretable dataframes to quickly (re)train our models to predict mortality, discharge, and medical complications.
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
油
Coolblue is a proud Dutch company, with a large internal development department; one that truly takes CI/CD to heart. Empowerment through automation is at the heart of these development teams, and with more than 1000 deployments a day, we think it's working out quite well. In this session, Pat Hermens (a Development Managers) will step you through what enables us to move so quickly, which tools we use, and most importantly, the mindset that is required to enable development teams to deliver at such a rapid pace.
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
油
Quantum computers can use all of the possible pathways generated by quantum decisions to solve problems that will forever remain intractable to classical compute power. As the mega players vie for quantum supremacy and Rigetti announces its $1M "quantum advantage" prize, we live in exciting times. IBM-Q and Microsoft Q# are two ways you can learn to program quantum computers so that you're ready when the quantum revolution comes. I'll demonstrate some quantum solutions to problems that will forever be out of reach of classical, including organic chemistry and large number factorisation.
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
油
Chinese food exploded across America in the early 20th century, rapidly adapting to local tastes while also spreading like wildfire. How was it able to spread so fast? The GY6 is a family of scooter engines that has achieved near total ubiquity in Europe. It is reliable and cheap to manufacture, and it's made in factories across China. How are these factories able to remain afloat? Chinese-American food and the GY6 are both riveting studies in product-market fit, and both are the product of a distributed open source-like development model. What lessons can we learn for open source software?
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
油
The design space has exploded in size within the last few years and Sketch is one of the most important milestones to represent the phenomenon. But behind the scenes of this growing reality there is a remote team that revolutionizes the design space all without leaving the home office. This talk will present how Sketch has grown to become a modern, product designer's tool.
Dave Farley - Taking Back Software Engineering - Codemotion Amsterdam 2019Codemotion
油
Would you fly in a plane designed by a craftsman or would you prefer your aircraft to be designed by engineers? We are learning that science and empiricism works in software development, maybe now is the time to redefine what Software Engineering really means. Software isn't bridge-building, it is not car or aircraft development either, but then neither is Chemical Engineering. Engineering is different in different disciplines. Maybe it is time for us to begin thinking about retrieving the term "Software Engineering" maybe it is time to define what our "Engineering" discipline should be.
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
油
What is the job of a CTO and how does it change as a startup grows in size and scale? As a CTO, where should you spend your focus? As an engineer aspiring to be a CTO, what skills should you pursue? In this inspiring and personal talk, I describe my journey from early Red Hat engineer to CTO at Bloomon. I will share my view on what it means to be a CTO, and ultimately answer the question: Should the CTO be coding?
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
油
Sviluppare plugin per google Chrome
1. Sviluppare plugin
per
Google Chrome
Marco Vito Moscaritolo marco@agavee.com agavee
2. Marco Vito Moscaritolo (aka mavimo)
Sviluppatore web specializzato in Drupal Contatti:
(per chi non lo conoscesse: ) @mavimo
con particolare interessa verso le nuove marco@agavee.com
tecnologie, sopratutto nel settore mobile. http://mavimo.org
Attualmente lavora come freelance ed http://agavee.com
all'interno del team agavee
Marco Vito Moscaritolo marco@agavee.com agavee
3. Cosa andiamo a vedere?
Perch辿 sviluppare estensioni per browser ...perch辿 proprio per Google Chrome?
Che tipologie di estesioni possiamo realizzare quanta scelta... forse troppa?
La struttura di base di un estensione ...basta veramente poco!
Le funzionalit implementate (API) ...o meglio, quelle gi implementa in da altri in modo da lavorare meno noi!
Gli strumenti di debug ...non siamo perfetti, potremmo fare pure qualche errore?
Il deploy dell'applicazione ....da Google o sul nostro sito?
Varie ed eventuali ...sempre da mettere!
Marco Vito Moscaritolo marco@agavee.com agavee
4. Vantaggi nello sviluppare estensioni per browser?
100% dei PC usati come client hanno un browser (o possono averlo)
Quasi tutti i browser supportano plugin (IE9, FF3/4, Google Chrome, Opera, ...)
Possibilit di usare linguaggi molto conosciuti (javascript, HTML, XML/XUL )
Possibilit di lavorare in ambienti blindati (non serve cross-compatibilit)
Possibilit di superare alcuni limiti di javascript con le API interne (browser-
specifiche)
Marco Vito Moscaritolo marco@agavee.com agavee
8. Tipologie di estesioni
locali... ...remote
Rapide nell'esecuzione Maggior controllo
il carico 竪 sulla macchina infrastruttura ben definita, possibile usare software esterni
Disponibilit off-line Codice lato server
Utilizzo in mobilit il codice non viene distribuito nell'applicazione
Utilizzo all'interno di altri siti Facilit di analisi dei problemi
non devo basarmi SOLO sui feedback degli utenti
Possono compiere operazioni in
background
Marco Vito Moscaritolo marco@agavee.com agavee
9. Le tre tipologie principali
Le modalit di esecuzione:
Nelle tabs
L'applicazione 竪 una pagina visibile nel browser
In pop-up
L'applicazione gira nel popup
Nelle pagine
L'applicazione gira in pagine web di sito (anche non nostro)
In background Script
L'applicazione gira in maniera silente per l'utente
Marco Vito Moscaritolo marco@agavee.com agavee
10. Ok, ma come sono fatte?
Javascript
ormai 竪 ovunque ed iniziamo ad usarlo abbastanza (anche
grazie ai framework che sono nati)
HTML con un buon supporto alle
funzionalit HTML5
275 punti su 400 secondo http://beta.html5test.com/
!
Flash / Java / C / C++ / .NET / ... pe
hy
ol o
(embedded) (NPAPI)
s
竪
Non
Marco Vito Moscaritolo marco@agavee.com agavee
11. Struttura di base
File di dichiarazione del plugin (manifest.json)
un banalissimo file JSON
Cartella di localizzazione (_locales) con sotto
cartelle per ogni lingua
lingue secondo le regole IETF language tags
File HTML, JS, CSS ed immagini a piacere per
condire il tutto
alcuni file hanno nomi secondo convenzioni
Marco Vito Moscaritolo marco@agavee.com agavee
12. manifest.json
{
"name": "Codemotion",
"version": "1.0",
"description": "let's code an innovation world 速",
"icons": {
"48": "imgs/icon48.png",
Informazioni di base dell'estensione
"64": "imgs/icon64.png"
},
"default_locale": "en_US",
"browser_action": {
Localizzazione
"default_title": "__MSG_app_title__",
},
"default_icon": "imgs/icon48.png",
"popup": "generator.html" Interazione con il browser
"options_page": "options.html",
"permissions": [
Pagina di setup
"tabs",
],
"notifications",
"http://www.codemotion.it/*" Permessi
}
"homepage_url": "http://www.codemotion.it/"
Altre informazioni
Marco Vito Moscaritolo marco@agavee.com agavee
13. Localizzazione
Il codice si trova in file isolati
ad esempio _locales/IT/messages.json
Utilizzo di JSON come formato per il file delle traduzioni
Possibilit di usare placeholder per i testi
'app_title': {
'message' : 'Ciao $nome$',
'placeholders' : {'nome' : { 'content' : '$1' }
}
Possilibit di usare le API per accedere alle traduzioni
var msg = chrome.i18n.getMessage('welcome', ['Marco']);
document.getElementById('user_msg').innerHTML = msg;
Marco Vito Moscaritolo marco@agavee.com agavee
14. Pagina delle opzioni
Definibile nel manifest.json
Accessibile dal menu dell'estensione
Possibilit di usare le funzionalit di HTML5 per
salvare le informazioni all'interno del browser
(localstorage, Local DB, )
var username = localStorage['auth_user'];
var token = localStorage['auth_token'];
Marco Vito Moscaritolo marco@agavee.com agavee
15. Gestione dei permessi
Fornisce accesso alle singole funzionalit (API specifiche), che esulano dai
permessi specifici delle pagine web, ad esempio:
Gestione delle tabs
Storage locale illimitato
Accesso alla cronologia
Notifiche al sistema
Permessi per chiamate XHR con autorizzazione sul dominio, anche attraverso
l'utilizzo di pattern:
http://*.codemotion.it/ws/*
https://auth.codemotion.it/ws/*
Marco Vito Moscaritolo marco@agavee.com agavee
16. Estensioni locali (popup)
Dichiarazione inserita all'interno di manifest.json
elemento che deve essere caricato ed eseguito nel popup:
'browser_action': {
'popup': 'generator.html'
}
Popup gestibili a runtime (aggiunta, rimozione, settaggi, )
Possibilit di modificare a runtime il comportamento della visualizzazione
ad esempio la modifica dell'aspetto dell'icona:
chrome.browserAction.setBadgeBackgroundColor({
color: [208, 0, 24, 255]
});
chrome.browserAction.setIcon({
path: 'operation_end.png'
});
Marco Vito Moscaritolo marco@agavee.com agavee
17. Estensioni locali (tabs)
Dichiarazione inserita all'interno di manifest.json
elemento che deve essere caricato ed eseguito nel popup:
'app': {
'launch': {
1 }
'local_path': 'main.html'
'urls': [
'*://*.codemotion.it/app/*'
],
2 'launch': {
'web_url': 'http://www.codemotion.it/app/start.html'
},
}
L'applicazione pu嘆 essere locale (1) o remota (2)
Marco Vito Moscaritolo marco@agavee.com agavee
18. Estensioni locali (background)
Dichiarazione inserita all'interno di manifest.json
'background_page': 'background.html',
Architettura basata su messaggi o connessioni persistenti tra pagina di
background e altri elementi (popup, tabs, servizi remoti, altre pagine )
Marco Vito Moscaritolo marco@agavee.com agavee
19. Estensioni locali (content script)
Dichiarazione inserita all'interno di manifest.json
'content_scripts': [
{
"matches": ["http://www.codemotion.it/*"],
"css": ["css/mystyles.css"],
"js": ["js/myscript.js"]
}
],
Permette di inserire codice (anche programmaticamente) all'interno di pagine
web a cui non si ha direttamente accesso, per integrarne funzionalit o
modificarne il comportamento
Marco Vito Moscaritolo marco@agavee.com agavee
20. Estensioni locali (native)
Dichiarazione inserita all'interno del manifest.json:
'plugins': [
{ "path": "plugins/codemotion.dll" },
{ "path": "plugins/codemotion.so" },
{ "path": "plugins/codemotion_64.so" }
],
Permette di inserire codice scritto in C / C++ secondo le specifiche NPAPI che
pu嘆 essere richiamato in javascript:
<embed type="application/x-codemotion" id="codemotion">
<script>
var CMP = document.getElementById("codemotion");
var res = CMP.getTalks();
document.getElementById('talk_list').innerHTML = res;
</script>
Marco Vito Moscaritolo marco@agavee.com agavee
21. L'approccio... ...竪 javascript!
Gestione asincrona delle chiamate
Gestione ad eventi
come per il DOM delle pagine nell'approccio classico javascript
chrome.tabs.onCreated.addListener(
function(Tab tab) {
console.log(Aperta tab: + tab.url);
}
);
chrome.history.onVisited.addListener(
function(HistoryItem result) {
alert(result.visitCount);
}
);
Marco Vito Moscaritolo marco@agavee.com agavee
22. Che API fornisce?
chrome.bookmarks.* chrome.idle.*
chrome.browserAction.* chrome.management.*
chrome.contextMenus.* chrome.omnibox.*
chrome.cookies.* chrome.pageAction.*
chrome.extension.* chrome.tabs.*
chrome.history.* chrome.windows.*
chrome.i18n.*
...possono bastare, ma...
Marco Vito Moscaritolo marco@agavee.com agavee
23. ...stanno arrivando anche...
chrome.experimental.clipboard.*
chrome.experimental.infobars.*
chrome.experimental.processes.*
chrome.experimental.proxy.*
chrome.experimental.sidebar.*
chrome.experimental.webNavigation.*
chrome.experimental.webRequest.*
...che sono sperimentali, ma utilizzabili!
(NB: richiedono il permesso experimental)
Marco Vito Moscaritolo marco@agavee.com agavee
24. Gli strumenti di debug
Sono gli stessi forniti per l'analisi
delle pagine web standard
alla fine si tratta proprio di CSS e Javascript
Content inspector per il codice
HTML/CSS
con possibilit i modificarlo al volo (a la firebug)
Possibilit di inserire brackpoint
all'interno di codice javascript
ed anche brackpoint condizionali, watcher di
espressioni, analisi delle variabili nello scope
Marco Vito Moscaritolo marco@agavee.com agavee
25. Il deploy dell'applicazione
Build automatico da parte del sistema di Distribuzione ad uso interno senza
Google
pubblicazione rendere l'estensione pubblica (web
application ad uso aziendale, intranet)
Possibilit di avere utenti beta-tester
Pacchettizzazione da effettuare
Sistema di distribuzione (e visibilit) pi湛
manualmente (lanciare un comando
ampio
passando i dati di firma e
Possibilit di usare il sistema di vendita pacchettizzazione corretti)
di Google Generazione del sistema di notifica degli
Sistemi automatici di aggiornamento e aggiornamenti in maniera manuale (un
versioning delle applicazioni file XML)
Marco Vito Moscaritolo marco@agavee.com agavee
26. Varie ed eventuali
tutto oro quello che luccica?
...l'esperienza ci insegna, da qualche parte deve esserci la fregatura (o forse no?) :)
Marco Vito Moscaritolo marco@agavee.com agavee
27. Domande?
'attenz ione!
Grazi e per l
Marco Vito Moscaritolo marco@agavee.com agavee