{"id":68,"date":"2009-10-29T19:05:21","date_gmt":"2009-10-29T18:05:21","guid":{"rendered":"https:\/\/www.artera.net\/it\/blog\/?p=68"},"modified":"2023-02-27T15:45:59","modified_gmt":"2023-02-27T15:45:59","slug":"creare-unestensione-per-google-chrome","status":"publish","type":"post","link":"https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/","title":{"rendered":"Creare un&#8217;estensione per Google Chrome"},"content":{"rendered":"<p>Chrome, il browser web di google, ormai non ha pi\u00f9 bisogno di presentazioni. Le sue prestazioni, le tab sandboxed e la sua dedizione agli standard web, aiutato dal motore di rendering WebKit, lo rendono un ottima scelta come browser predefinito.<\/p>\n<p>Quello che gli manca ancora \u00e8 un buon parco di estensioni. Da questo punto di vista Firefox parte avvantaggiato, ma la situazione sul fronte Chrome si sta lentamente sbloccando e nelle ultime versioni in sviluppo \u00e8 gi\u00e0 possibile usare userscripts (gli script Greasemonkey di Firefox) e estensioni, con tanto di sito dedicato.<\/p>\n<p>In questo mio primo articolo vorrei quindi introdurvi allo sviluppo di estensioni per Chrome, io utilizzer\u00f2 Chromium su Linux ma il processo non dovrebbe essere dissimile.<\/p>\n<p>L&#8217;estensione che andremo a sviluppare andr\u00e0 ad aggiungere un&#8217;icona in fondo alla barra degli indirizzi (chiamate pageActions) che ci permetter\u00e0 di interrogare un servizio online per recuperare i dati da whois del dominio che stiamo visualizzando.<\/p>\n<p>A questo indirizzo potete trovare l&#8217;attuale documentazione relativa allo sviluppo di estensioni per Chrome: code.google.com\/chrome\/extensions<\/p>\n<h3>Struttura dell&#8217;estensione<\/h3>\n<p>Creiamo una cartella &#8220;whois_checker&#8221; destinata a contenere i sorgenti.<\/p>\n<p>Un&#8217;estensione Chrome \u00e8 descritta dal suo manifest file &#8220;manifest.json&#8221;, un file JSON posizionato nella root della cartella.<\/p>\n<p>[javascript]<br \/>\n{<br \/>\n\t&#8220;name&#8221;: &#8220;WhoIS Checker&#8221;,<br \/>\n\t&#8220;description&#8221;: &#8220;Adds one-click whois check to your toolbar&#8221;,<br \/>\n\t&#8220;version&#8221;: &#8220;1.0&#8221;,<br \/>\n\t&#8220;permissions&#8221;: [<br \/>\n\t\t&#8220;tabs&#8221;,<br \/>\n\t\t&#8220;http:\/\/*\/*&#8221;,<br \/>\n\t\t&#8220;https:\/\/*\/*&#8221;<br \/>\n\t],<br \/>\n\t&#8220;background_page&#8221;: &#8220;background.html&#8221;,<br \/>\n\t&#8220;content_scripts&#8221;: [<br \/>\n\t\t{<br \/>\n\t\t\t&#8220;matches&#8221;: [&#8220;http:\/\/*\/*&#8221;, &#8220;https:\/\/*\/*&#8221;],<br \/>\n\t\t\t&#8220;js&#8221;: [&#8220;get_domain.js&#8221;]<br \/>\n\t\t}<br \/>\n\t],<br \/>\n\t&#8220;icons&#8221;: { &#8220;48&#8221;: &#8220;info-48.png&#8221; },<br \/>\n\t&#8220;page_actions&#8221;: [<br \/>\n\t\t{<br \/>\n\t\t\t&#8220;id&#8221;: &#8220;WhoIsPageAction&#8221;,<br \/>\n\t\t\t&#8220;name&#8221;: &#8220;Check whois for this domain&#8221;,<br \/>\n\t\t\t&#8220;icons&#8221;: [&#8220;info-16.png&#8221;]<br \/>\n\t\t}<br \/>\n\t]<br \/>\n}<br \/>\n[\/javascript]<\/p>\n<p>Oltre ai parametri auto-esplicativi come name, description, version, etc&#8230; i parametri cui prestare pi\u00f9 attenzione in questo caso sono 3:<\/p>\n<ul>\n<li><strong>background_page:<\/strong> Permette di specificare uno script che verr\u00e0 eseguito singolarmente, ovvero, indipendentemente dal numero di tab\/finestre aperte, ci sar\u00e0 sempre e comunque un solo script in esecuzione.<\/li>\n<li><strong>content_scripts:<\/strong> Sono script che vengono eseguiti all&#8217;interno della pagina visualizzata e quindi sono in grado di alterarne o leggerne il contenuto. Per ogni tab\/finestra aperta ci sar\u00e0 quindi uno di questi script in esecuzione.<\/li>\n<li><strong>page_actions:<\/strong> Definisce delle azioni da associare alla tab corrente. Appaiono come icone contenute all&#8217;interno della barra degli indirizzi.<\/li>\n<\/ul>\n<h3>Analisi<\/h3>\n<p>Uno script viene eseguito al caricamento di ogni pagina (get_domain.js) e passer\u00e0 l&#8217;informazione del dominio (window.location.hostname) allo script in background.html.<br \/>\n[javascript]<br \/>\nif (window == top) {<br \/>\n\t\/\/ Passiamo l&#8217;hostname alla background page<br \/>\n\tchrome.extension.connect().postMessage(window.location.hostname);<br \/>\n}<br \/>\n[\/javascript]<br \/>\nIn background.html vengono attivati i listener che servono ad &#8220;ascoltare&#8221; i messaggi passati dai content_script e ricevuto un dominio valido (escludiamo gli indirizzi IP), abilitiamo esplicitamente la pageAction che a questo punto verr\u00e0 mostrata nella barra degli indirizzi<br \/>\n[javascript]<br \/>\nvar pageActionId = &#8220;WhoIsPageAction&#8221;;<br \/>\nvar hostnames = {};<\/p>\n<p>chrome.extension.onConnect.addListener(function(port) {<br \/>\n\t\/\/ Funzione chiamata del contentScript get_domain.js, che ci passer\u00e0 l&#8217;hostname della tab corrente<br \/>\n\tport.onMessage.addListener(function(hostname) {<br \/>\n\t\t\/\/ Niente whois sugli IP<br \/>\n\t\tif (!\/^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$\/.exec(hostname)) {<br \/>\n\t\t\t\/\/ Estraiamo il dominio di secondo livello dall&#8217;hostname<br \/>\n\t\t\tvar matches = \/[^\\.]+\\.[^\\.]+$\/.exec(hostname);<br \/>\n\t\t\tif (matches.length==1) {<br \/>\n\t\t\t\thostnames[port.tab.id] = matches[0];<br \/>\n\t\t\t\t\/\/ Se tutto \u00e8 andato a buon fine, abilitiamo la pageAction<br \/>\n\t\t\t\tchrome.pageActions.enableForTab(pageActionId, {tabId: port.tab.id, url: port.tab.url, title: &#8220;Check WhoIs&#8221;, iconId: 0});<br \/>\n\t\t\t}<br \/>\n\t\t}<br \/>\n\t});<br \/>\n});<br \/>\n[\/javascript]<br \/>\nCon un&#8217;altro listener creiamo un&#8217;azione per la pageAction, dove, dopo aver recuperato la tab in uso, creiamo un url che punta al servizio online di query whois con il nostro dominio tra i parametri. Con questo url, apriamo una nuova tab del browser e il gioco \u00e8 fatto<br \/>\n[javascript]<br \/>\nchrome.pageActions[pageActionId].addListener(function(pageActionId, pageActionInfo) {<br \/>\n\tchrome.windows.getCurrent(function(window) {<br \/>\n\t\tchrome.tabs.get(pageActionInfo.tabId, function(tab) {<br \/>\n\t\t\t\/\/ Assicuriamoci che la finestra sia ancora selezionata<br \/>\n\t\t\tif (window.focused) {<br \/>\n\t\t\t\t\/\/ Creaiamo l&#8217;url del servizio di query whois e apriamolo in una nuova tab<br \/>\n\t\t\t\tvar url = &#8220;http:\/\/artera.it\/whois?s=&#8221; + encodeURIComponent(hostnames[pageActionInfo.tabId]);<br \/>\n\t\t\t\tchrome.tabs.create({url: url, windowId: window.windowId});<br \/>\n\t\t\t}<br \/>\n\t\t});<br \/>\n\t});<br \/>\n});<br \/>\n[\/javascript]<br \/>\nRimane solo da fare un po&#8217; di pulizia alla chiusura della tab<br \/>\n[javascript]<br \/>\nchrome.tabs.onRemoved.addListener(function(tabId) {<br \/>\n\thostnames[tabId] = null;<br \/>\n});<br \/>\n[\/javascript]<\/p>\n<h3>Testare l&#8217;estensione<\/h3>\n<p>Durante lo sviluppo dell&#8217;estensione \u00e8 possibile provarla e ricaricarla &#8220;al volo&#8221; senza doverla prima pacchettizare.<br \/>\nEcco come fare:<br \/>\nAprire una nuova tab su chrome:\/\/extensions , viene visualizzata una lista delle estensioni installate sul browser.<br \/>\nCliccare su &#8220;+ Developer tools&#8221; e quindi su &#8220;Load unpacked Extension&#8230;&#8221;, selezionare quindi la cartella dell&#8217;estensione, che apparir\u00e0 immediatamente in lista e potr\u00e0 essere ricaricata a piacimento.<\/p>\n<p>Pagina estensione | Installa | Sorgenti<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chrome, il browser web di google, ormai non ha pi\u00f9 bisogno di presentazioni. Le sue prestazioni, le tab sandboxed e la sua dedizione agli standard web, aiutato dal motore di rendering WebKit, lo rendono un ottima scelta come browser predefinito. Quello che gli manca ancora \u00e8 un buon parco di estensioni. Da questo punto di [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","footnotes":""},"categories":[108],"tags":[38,39],"class_list":["post-68","post","type-post","status-publish","format-standard","hentry","category-sviluppo","tag-browser","tag-chrome"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u2022 Creare un&#039;estensione per Google Chrome - Artera<\/title>\n<meta name=\"description\" content=\"Leggi dal blog: Creare un&#039;estensione per Google Chrome. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u2022 Creare un&#039;estensione per Google Chrome - Artera\" \/>\n<meta property=\"og:description\" content=\"Leggi dal blog: Creare un&#039;estensione per Google Chrome. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/\" \/>\n<meta property=\"og:site_name\" content=\"Artera\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/artera.net\/\" \/>\n<meta property=\"article:published_time\" content=\"2009-10-29T18:05:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-27T15:45:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.artera.net\/wp-content\/uploads\/2018\/02\/artera-logo-color.png\" \/>\n\t<meta property=\"og:image:width\" content=\"425\" \/>\n\t<meta property=\"og:image:height\" content=\"281\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Massimiliano Torromeo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Massimiliano Torromeo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-unestensione-per-google-chrome\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-unestensione-per-google-chrome\\\/\"},\"author\":{\"name\":\"Massimiliano Torromeo\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#\\\/schema\\\/person\\\/f0793d88769c8429e457f364de9ae071\"},\"headline\":\"Creare un&#8217;estensione per Google Chrome\",\"datePublished\":\"2009-10-29T18:05:21+00:00\",\"dateModified\":\"2023-02-27T15:45:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-unestensione-per-google-chrome\\\/\"},\"wordCount\":741,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#organization\"},\"keywords\":[\"browser\",\"Chrome\"],\"articleSection\":[\"Sviluppo\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-unestensione-per-google-chrome\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-unestensione-per-google-chrome\\\/\",\"url\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-unestensione-per-google-chrome\\\/\",\"name\":\"\u2022 Creare un'estensione per Google Chrome - Artera\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#website\"},\"datePublished\":\"2009-10-29T18:05:21+00:00\",\"dateModified\":\"2023-02-27T15:45:59+00:00\",\"description\":\"Leggi dal blog: Creare un'estensione per Google Chrome. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-unestensione-per-google-chrome\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-unestensione-per-google-chrome\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-unestensione-per-google-chrome\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.artera.net\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creare un&#8217;estensione per Google Chrome\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/www.artera.net\\\/it\\\/\",\"name\":\"Artera\",\"description\":\"Swiss Premium Hosting\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.artera.net\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#organization\",\"name\":\"Artera\",\"url\":\"https:\\\/\\\/www.artera.net\\\/it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/artera-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/artera-logo.png\",\"width\":300,\"height\":77,\"caption\":\"Artera\"},\"image\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/artera.net\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/artera\\\/\",\"https:\\\/\\\/www.instagram.com\\\/artera_swiss\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#\\\/schema\\\/person\\\/f0793d88769c8429e457f364de9ae071\",\"name\":\"Massimiliano Torromeo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c8c79e6f7da11d2b45e20c77201173517aecba437175f94ec02f729095cb40c2?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c8c79e6f7da11d2b45e20c77201173517aecba437175f94ec02f729095cb40c2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c8c79e6f7da11d2b45e20c77201173517aecba437175f94ec02f729095cb40c2?s=96&d=mm&r=g\",\"caption\":\"Massimiliano Torromeo\"},\"description\":\"Passionate about computer science since I was a child, I started programming as a self-taught person from about the age of twelve. Over time, I have become a staunch supporter of free software and the open source movement. This fondness for free software soon led me to approach the Linux world and in 2011 I became a member of the Arch Linux Trusted Users team. In Artera since 2007 I deal with all aspects related to our infrastructure, internal development of software and enterprise solutions, research and development and internal training of our programming and support departments.\",\"url\":\"https:\\\/\\\/www.artera.net\\\/it\\\/author\\\/massimiliano-torromeo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u2022 Creare un'estensione per Google Chrome - Artera","description":"Leggi dal blog: Creare un'estensione per Google Chrome. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/","og_locale":"it_IT","og_type":"article","og_title":"\u2022 Creare un'estensione per Google Chrome - Artera","og_description":"Leggi dal blog: Creare un'estensione per Google Chrome. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.","og_url":"https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/","og_site_name":"Artera","article_publisher":"https:\/\/www.facebook.com\/artera.net\/","article_published_time":"2009-10-29T18:05:21+00:00","article_modified_time":"2023-02-27T15:45:59+00:00","og_image":[{"width":425,"height":281,"url":"https:\/\/www.artera.net\/wp-content\/uploads\/2018\/02\/artera-logo-color.png","type":"image\/png"}],"author":"Massimiliano Torromeo","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Massimiliano Torromeo","Tempo di lettura stimato":"4 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/#article","isPartOf":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/"},"author":{"name":"Massimiliano Torromeo","@id":"https:\/\/www.artera.net\/it\/#\/schema\/person\/f0793d88769c8429e457f364de9ae071"},"headline":"Creare un&#8217;estensione per Google Chrome","datePublished":"2009-10-29T18:05:21+00:00","dateModified":"2023-02-27T15:45:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/"},"wordCount":741,"commentCount":6,"publisher":{"@id":"https:\/\/www.artera.net\/it\/#organization"},"keywords":["browser","Chrome"],"articleSection":["Sviluppo"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/","url":"https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/","name":"\u2022 Creare un'estensione per Google Chrome - Artera","isPartOf":{"@id":"https:\/\/www.artera.net\/it\/#website"},"datePublished":"2009-10-29T18:05:21+00:00","dateModified":"2023-02-27T15:45:59+00:00","description":"Leggi dal blog: Creare un'estensione per Google Chrome. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.","breadcrumb":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-unestensione-per-google-chrome\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.artera.net\/it\/"},{"@type":"ListItem","position":2,"name":"Creare un&#8217;estensione per Google Chrome"}]},{"@type":"WebSite","@id":"https:\/\/www.artera.net\/it\/#website","url":"https:\/\/www.artera.net\/it\/","name":"Artera","description":"Swiss Premium Hosting","publisher":{"@id":"https:\/\/www.artera.net\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.artera.net\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.artera.net\/it\/#organization","name":"Artera","url":"https:\/\/www.artera.net\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.artera.net\/it\/#\/schema\/logo\/image\/","url":"https:\/\/www.artera.net\/wp-content\/uploads\/2019\/09\/artera-logo.png","contentUrl":"https:\/\/www.artera.net\/wp-content\/uploads\/2019\/09\/artera-logo.png","width":300,"height":77,"caption":"Artera"},"image":{"@id":"https:\/\/www.artera.net\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/artera.net\/","https:\/\/www.linkedin.com\/company\/artera\/","https:\/\/www.instagram.com\/artera_swiss\/"]},{"@type":"Person","@id":"https:\/\/www.artera.net\/it\/#\/schema\/person\/f0793d88769c8429e457f364de9ae071","name":"Massimiliano Torromeo","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/c8c79e6f7da11d2b45e20c77201173517aecba437175f94ec02f729095cb40c2?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c8c79e6f7da11d2b45e20c77201173517aecba437175f94ec02f729095cb40c2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c8c79e6f7da11d2b45e20c77201173517aecba437175f94ec02f729095cb40c2?s=96&d=mm&r=g","caption":"Massimiliano Torromeo"},"description":"Passionate about computer science since I was a child, I started programming as a self-taught person from about the age of twelve. Over time, I have become a staunch supporter of free software and the open source movement. This fondness for free software soon led me to approach the Linux world and in 2011 I became a member of the Arch Linux Trusted Users team. In Artera since 2007 I deal with all aspects related to our infrastructure, internal development of software and enterprise solutions, research and development and internal training of our programming and support departments.","url":"https:\/\/www.artera.net\/it\/author\/massimiliano-torromeo\/"}]}},"_links":{"self":[{"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/posts\/68","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/comments?post=68"}],"version-history":[{"count":10,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/posts\/68\/revisions"}],"predecessor-version":[{"id":216082,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/posts\/68\/revisions\/216082"}],"wp:attachment":[{"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/media?parent=68"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/categories?post=68"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/tags?post=68"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}