{"id":550,"date":"2014-05-19T20:24:11","date_gmt":"2014-05-19T20:24:11","guid":{"rendered":"http:\/\/luisrodriguez.pe\/blog\/?p=550"},"modified":"2014-05-20T04:23:00","modified_gmt":"2014-05-20T04:23:00","slug":"rendimiento-de-javascript-con-worker","status":"publish","type":"post","link":"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/","title":{"rendered":"Rendimiento de Javascript con  Worker"},"content":{"rendered":"<p><a href=\"http:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/descarga1.jpg\"><img fetchpriority=\"high\" decoding=\"async\" class=\"alignright size-full wp-image-568\" title=\"descarga\" src=\"http:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/descarga1.jpg\" alt=\"\" width=\"260\" height=\"194\" \/><\/a><strong>Javascript<\/strong> el lenguaje del lado del cliente sin duda el gran amigo del front end y claro ahora con node.js tambien de los back end, Con Javascript podemos manipular el <a href=\"http:\/\/es.wikipedia.org\/wiki\/Document_Object_Model\" target=\"_blank\">DOM \u00a0(Modelo de Objetos del Documento)<\/a> como se nos antoje y se puede hacer sin fin de cosas efectos como pueden ver en mis desarrollos como por ejemplo:<br \/>\n<a href=\"http:\/\/productosalpha.com.pe\" target=\"_blank\">http:\/\/productosalpha.com.pe<\/a><br \/>\n<a href=\"http:\/\/macablast.com\" target=\"_blank\">http:\/\/macablast.com<\/a><\/p>\n<p>Son web con bastante trabajo con javascript todo estos corren en el nucleo del procesador y lo mas logico seria que si tengo un procesador de 8 nucleos debe correr mas rapido que un procesador de 4 nucleos pero lamento decirte que esto no es asi. Javascript no aprovecha los nucleos que se tiene solo lo corre todo en 1 solo en vez de<strong> dividir el proceso<\/strong> y responder 4 , 8 o la cantidad de nucleos que tengas en el procesador.<\/p>\n<p>Ejemplo:<br \/>\nantes de abrir la pagina asi estaba los procesos en los nucleos<br \/>\n<a href=\"http:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/procesos1.png\"><img decoding=\"async\" class=\"size-medium wp-image-552 alignnone\" title=\"procesos\" src=\"http:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/procesos1-235x300.png\" alt=\"\" width=\"235\" height=\"300\" srcset=\"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/procesos1-235x300.png 235w, https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/procesos1-600x766.png 600w, https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/procesos1.png 648w\" sizes=\"(max-width: 235px) 100vw, 235px\" \/><\/a><br \/>\nal abrir la web vemos que no se provechan todos los nucleos del procesador.<br \/>\n<a href=\"http:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/macablast-rendimiento.png\"><img decoding=\"async\" class=\"size-large wp-image-553 alignnone\" title=\"macablast-rendimiento\" src=\"http:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/macablast-rendimiento-1024x551.png\" alt=\"\" width=\"620\" height=\"333\" srcset=\"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/macablast-rendimiento-1024x551.png 1024w, https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/macablast-rendimiento-600x323.png 600w, https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/macablast-rendimiento-300x161.png 300w, https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/macablast-rendimiento-700x377.png 700w, https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/macablast-rendimiento.png 1600w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p><strong>HTML5<\/strong> comprendio esto y brinda a los desarrolladores una api llamada <strong>worker<\/strong> que soluciona este \u00a0problema y nos hace usar mejor el CPU. Entonces ya que <strong>HTML5<\/strong> tendras bien claro que no va a correr en las viejas versiones de navegadores y como saber si corre en mi navegador o no? puedes ir a ver a <a href=\"http:\/\/caniuse.com\/webworkers\" target=\"_blank\">canaius\u00a0\u00a0sobre la compatibilidad de navegadores<\/a>\u00a0.<\/p>\n<p>Ahora la parte interesante CODIGO!<br \/>\ncomenzaremos sabiendo primero si nuestro navegador soporta worker de lo contrario hacemos otra cosa para que no nos mande error<\/p>\n<pre><code lang=\"javascript\"> \r\nif (window.Worker) \r\n{ \r\nconsole.log('corre el worker') \r\n} else \r\n{ \r\nconsole.log('no corre el worker') \r\n} \r\n<\/code><\/pre>\n<p>Entonces podemos agregar de esta manera nuestros JS y cada vez que instanciamos a worker si va ejecutando en distintos nucleos<\/p>\n<pre><code lang=\"javascript\"> \r\nif (window.Worker) \r\n{ \r\njs_libreria1= new Worker(\"js_libreria1.js\"); \r\njs_libreria2= new Worker(\"js_libreria2.js\"); \r\njs_libreria3= new Worker(\"js_libreria3.js\"); \r\njs_libreria4= new Worker(\"js_libreria4.js\"); \r\n} \r\nelse \r\n{ \r\ndocument.write(\"&lt; script src=js_libreria1.js&gt;\") \r\ndocument.write(\"&lt; script src=js_libreria2.js&gt;\") \r\ndocument.write(\"&lt; script src=js_libreria3.js&gt;\") \r\ndocument.write(\"&lt; script src=js_libreria4.js&gt;\") \r\n} \r\n<\/code><\/pre>\n<p>Bueno aqui abajo dejo un ejemplo mas complejo con el uso del worker con un peque\u00f1o reloj para poder enviarse datos desde la libreria y en la variable que instanciamos para recibir (el codigo esta comentada para que puedan entenderlo).<\/p>\n<p>Esto va en HTML<\/p>\n<pre><code lang=\"javascript\"> \r\n\/*la funcion iniciar worker*\/ \r\nfunction IniciarWorker() { \r\n\/*confirmamos si soporta el worker el navegador*\/ \r\nif(window.Worker) { \r\n\/*declaramos la libreria*\/ \r\nw = new Worker(\"libreria.js\"); \r\n\/*abrimos el enlace con la libreria que instanciamos*\/ \r\nw.onmessage = function (event){ \r\n\/*imprimimos el valor que nos envia la libreria*\/ \r\ndocument.getElementById(\"resultado\").innerHTML = event.data; }; \r\n} else \r\n{ \r\n\/*si no soporta worker muestra un mensaje*\/ \r\ndocument.getElementById(\"resultado\").innerHTML= \"no soporta los workers\"; \r\n} \r\n} \r\n\/*funcion de detener worker*\/ \r\nfunction DetenerWorker() \r\n{ \r\n\/* a la variable que instanciamos con el worker le pasamos terminate para matar*\/ \r\nw.terminate(); \r\n} \r\n<\/code><\/pre>\n<p>y en libreria.js<\/p>\n<pre><code lang=\"javascript\"> \r\n\/*funcion que genera la hora*\/ \r\nfunction hora() { \r\n\/* instanciamos date*\/ \r\nvar f= new Date(); \r\n\/*armamos la hora*\/ \r\nh=f. getHours()+\":\"+f.getMinutes()+\":\"+f.getSeconds(); \r\n\/*esta parte es la importante por que de esta forma enviamos el valor para que lo recoja en el otro lado*\/ \r\npostMessage(h); \r\n\/*que se repita cada segundo*\/ \r\nsetTimeout(\"hora()\",1000); \r\n} \r\nhora(); \r\n<\/code><\/pre>\n<p>Puedes descargarse el ejemplo <a href=\"http:\/\/luisrodriguez.pe\/demos\/scripts\/worker\/worker.zip\" target=\"_blank\">worker<\/a><\/p>\n<p>Ah\u00ed aun que investigar aun pero en otros nuevos articulos seguire con este tema que es muy interesante.<\/p>\n","protected":false},"excerpt":{"rendered":"Javascript el lenguaje del lado del cliente sin duda el gran amigo del front end y claro ahora con node.js tambien de los back end, Con Javascript podemos manipular el DOM \u00a0(Modelo de Objetos del Documento) como se nos antoje y se puede hacer sin fin de cosas efectos como pueden ver en mis desarrollos[&#8230;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,3],"tags":[],"class_list":["post-550","post","type-post","status-publish","format-standard","hentry","category-javascript","category-notas"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Rendimiento de Javascript con Worker - Blog Luis Rodriguez<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rendimiento de Javascript con Worker - Blog Luis Rodriguez\" \/>\n<meta property=\"og:description\" content=\"Javascript el lenguaje del lado del cliente sin duda el gran amigo del front end y claro ahora con node.js tambien de los back end, Con Javascript podemos manipular el DOM \u00a0(Modelo de Objetos del Documento) como se nos antoje y se puede hacer sin fin de cosas efectos como pueden ver en mis desarrollos[...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Luis Rodriguez\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/luisrodriguez.pe\" \/>\n<meta property=\"article:published_time\" content=\"2014-05-19T20:24:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-05-20T04:23:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/descarga1.jpg\" \/>\n<meta name=\"author\" content=\"Luis Rodriguez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@luizmirodriguez\" \/>\n<meta name=\"twitter:site\" content=\"@luizmirodriguez\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Luis Rodriguez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/\"},\"author\":{\"name\":\"Luis Rodriguez\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/#\/schema\/person\/ec55de81e01fdaf3533eb78f6a49090c\"},\"headline\":\"Rendimiento de Javascript con Worker\",\"datePublished\":\"2014-05-19T20:24:11+00:00\",\"dateModified\":\"2014-05-20T04:23:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/\"},\"wordCount\":354,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/descarga1.jpg\",\"articleSection\":[\"JAVASCRIPT\",\"Notas\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/\",\"url\":\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/\",\"name\":\"Rendimiento de Javascript con Worker - Blog Luis Rodriguez\",\"isPartOf\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/descarga1.jpg\",\"datePublished\":\"2014-05-19T20:24:11+00:00\",\"dateModified\":\"2014-05-20T04:23:00+00:00\",\"author\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/#\/schema\/person\/ec55de81e01fdaf3533eb78f6a49090c\"},\"breadcrumb\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#primaryimage\",\"url\":\"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/descarga1.jpg\",\"contentUrl\":\"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/descarga1.jpg\",\"width\":260,\"height\":194},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/luisrodriguez.pe\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rendimiento de Javascript con Worker\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/#website\",\"url\":\"https:\/\/luisrodriguez.pe\/blog\/\",\"name\":\"Blog Luis Rodriguez\",\"description\":\"Analytics Developer\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/luisrodriguez.pe\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/#\/schema\/person\/ec55de81e01fdaf3533eb78f6a49090c\",\"name\":\"Luis Rodriguez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/3b0f9734b267ecb38e1860734b4caebda4efa8be9a2bb536862b6a2ba23afa82?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3b0f9734b267ecb38e1860734b4caebda4efa8be9a2bb536862b6a2ba23afa82?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3b0f9734b267ecb38e1860734b4caebda4efa8be9a2bb536862b6a2ba23afa82?s=96&d=mm&r=g\",\"caption\":\"Luis Rodriguez\"},\"description\":\"Hola, Soy Luis Rodriguez, radico en Lima \u2013 Per\u00fa, formado en una carrera inform\u00e1tica, desempe\u00f1ando desde el 2007 como programador web y viendo proyectos desde Front End y Back End a lo que me perfile como Full Stack. Esta Experiencia junto a mi inter\u00e9s en la Anal\u00edtica Web me ayud\u00f3 mucho entender el funcionamiento interno de las herramientas de anal\u00edtica, con las que vengo trabajo activamente desde 2017. Linkedin\",\"sameAs\":[\"http:\/\/luisrodriguez.pe\"],\"url\":\"https:\/\/luisrodriguez.pe\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rendimiento de Javascript con Worker - Blog Luis Rodriguez","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:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/","og_locale":"es_ES","og_type":"article","og_title":"Rendimiento de Javascript con Worker - Blog Luis Rodriguez","og_description":"Javascript el lenguaje del lado del cliente sin duda el gran amigo del front end y claro ahora con node.js tambien de los back end, Con Javascript podemos manipular el DOM \u00a0(Modelo de Objetos del Documento) como se nos antoje y se puede hacer sin fin de cosas efectos como pueden ver en mis desarrollos[...]","og_url":"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/","og_site_name":"Blog Luis Rodriguez","article_publisher":"https:\/\/www.facebook.com\/luisrodriguez.pe","article_published_time":"2014-05-19T20:24:11+00:00","article_modified_time":"2014-05-20T04:23:00+00:00","og_image":[{"url":"http:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/descarga1.jpg","type":"","width":"","height":""}],"author":"Luis Rodriguez","twitter_card":"summary_large_image","twitter_creator":"@luizmirodriguez","twitter_site":"@luizmirodriguez","twitter_misc":{"Escrito por":"Luis Rodriguez","Tiempo de lectura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#article","isPartOf":{"@id":"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/"},"author":{"name":"Luis Rodriguez","@id":"https:\/\/luisrodriguez.pe\/blog\/#\/schema\/person\/ec55de81e01fdaf3533eb78f6a49090c"},"headline":"Rendimiento de Javascript con Worker","datePublished":"2014-05-19T20:24:11+00:00","dateModified":"2014-05-20T04:23:00+00:00","mainEntityOfPage":{"@id":"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/"},"wordCount":354,"commentCount":0,"image":{"@id":"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#primaryimage"},"thumbnailUrl":"http:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/descarga1.jpg","articleSection":["JAVASCRIPT","Notas"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/","url":"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/","name":"Rendimiento de Javascript con Worker - Blog Luis Rodriguez","isPartOf":{"@id":"https:\/\/luisrodriguez.pe\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#primaryimage"},"image":{"@id":"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#primaryimage"},"thumbnailUrl":"http:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/descarga1.jpg","datePublished":"2014-05-19T20:24:11+00:00","dateModified":"2014-05-20T04:23:00+00:00","author":{"@id":"https:\/\/luisrodriguez.pe\/blog\/#\/schema\/person\/ec55de81e01fdaf3533eb78f6a49090c"},"breadcrumb":{"@id":"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#primaryimage","url":"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/descarga1.jpg","contentUrl":"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2014\/05\/descarga1.jpg","width":260,"height":194},{"@type":"BreadcrumbList","@id":"https:\/\/luisrodriguez.pe\/blog\/rendimiento-de-javascript-con-worker\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/luisrodriguez.pe\/blog\/"},{"@type":"ListItem","position":2,"name":"Rendimiento de Javascript con Worker"}]},{"@type":"WebSite","@id":"https:\/\/luisrodriguez.pe\/blog\/#website","url":"https:\/\/luisrodriguez.pe\/blog\/","name":"Blog Luis Rodriguez","description":"Analytics Developer","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/luisrodriguez.pe\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/luisrodriguez.pe\/blog\/#\/schema\/person\/ec55de81e01fdaf3533eb78f6a49090c","name":"Luis Rodriguez","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/3b0f9734b267ecb38e1860734b4caebda4efa8be9a2bb536862b6a2ba23afa82?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3b0f9734b267ecb38e1860734b4caebda4efa8be9a2bb536862b6a2ba23afa82?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3b0f9734b267ecb38e1860734b4caebda4efa8be9a2bb536862b6a2ba23afa82?s=96&d=mm&r=g","caption":"Luis Rodriguez"},"description":"Hola, Soy Luis Rodriguez, radico en Lima \u2013 Per\u00fa, formado en una carrera inform\u00e1tica, desempe\u00f1ando desde el 2007 como programador web y viendo proyectos desde Front End y Back End a lo que me perfile como Full Stack. Esta Experiencia junto a mi inter\u00e9s en la Anal\u00edtica Web me ayud\u00f3 mucho entender el funcionamiento interno de las herramientas de anal\u00edtica, con las que vengo trabajo activamente desde 2017. Linkedin","sameAs":["http:\/\/luisrodriguez.pe"],"url":"https:\/\/luisrodriguez.pe\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/posts\/550","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/comments?post=550"}],"version-history":[{"count":19,"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/posts\/550\/revisions"}],"predecessor-version":[{"id":569,"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/posts\/550\/revisions\/569"}],"wp:attachment":[{"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/media?parent=550"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/categories?post=550"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/tags?post=550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}