{"id":38908,"date":"2019-10-31T22:26:41","date_gmt":"2019-10-31T19:26:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/budushhee-uzhe-zdes-ili-kodim-pryamo-v-brauzere\/"},"modified":"2019-10-31T22:26:41","modified_gmt":"2019-10-31T19:26:41","slug":"budushhee-uzhe-zdes-ili-kodim-pryamo-v-brauzere","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/budushhee-uzhe-zdes-ili-kodim-pryamo-v-brauzere","title":{"rendered":"El futuro ya est\u00e1 aqu\u00ed o programamos directamente en el navegador","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Voy a contarles una situaci\u00f3n curiosa que me ocurri\u00f3 y c\u00f3mo convertirme en contribuyente de un proyecto reconocido.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNo hace mucho, estuve trabajando en una idea: cargar Linux directamente desde UEFI... <br \/>\nLa idea no es nueva y hay varios manuales sobre este tema. Uno de ellos se puede ver <noindex><a rel=\"nofollow\" href=\"https:\/\/help.ubuntu.ru\/wiki\/uefi#%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0_%D1%8F%D0%B4%D1%80%D0%B0_linux_%D0%BD%D0%B5%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE_%D0%B8%D0%B7_uefi\">aqu\u00ed<\/a><\/noindex><\/p>\n<p>Mis antiguos intentos de resolver este problema se convirtieron en algo bastante elaborado <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/slytomcat\/UEFI-Boot\">soluci\u00f3n<\/a><\/noindex>. La soluci\u00f3n funciona correctamente y la utilizo en parte de mis m\u00e1quinas dom\u00e9sticas. Esta soluci\u00f3n est\u00e1 descrita con un poco m\u00e1s de detalle <noindex><a rel=\"nofollow\" href=\"https:\/\/help.ubuntu.ru\/wiki\/uefiboot\">aqu\u00ed<\/a><\/noindex>.<\/p>\n<p>La clave del arranque UEFI es que la partici\u00f3n ESP (EFI System Partition) se combina con el directorio \/boot. Es decir, todos los n\u00facleos y las im\u00e1genes de arranque (initrd) se colocan en esa misma partici\u00f3n desde la cual UEFI puede ejecutar archivos ejecutables y, en particular, cargar los cargadores del sistema. Sin embargo, el n\u00facleo de Linux ya se compila con la opci\u00f3n UEFISTUB en muchas distribuciones, lo que permite que el n\u00facleo se inicie desde UEFI.<\/p>\n<p>Hay un inconveniente con esta soluci\u00f3n: la partici\u00f3n ESP est\u00e1 formateada en FAT32, que no permite crear enlaces duros (que el sistema crea regularmente al actualizar initrd). No hay nada especialmente criminal en esto, pero ver advertencias del sistema al actualizar componentes del n\u00facleo no es muy agradable...<\/p>\n<p>Tambi\u00e9n hay otro camino. <\/p>\n<p>El gestor de arranque UEFI (donde hay que registrar el cargador del sistema operativo) puede cargar no solo cargadores\/n\u00facleos de Linux, sino tambi\u00e9n controladores. As\u00ed que se puede cargar el controlador del sistema de archivos donde est\u00e1 su \/boot y cargar el n\u00facleo directamente desde all\u00ed utilizando UEFI. El controlador, por supuesto, debe colocarse en la partici\u00f3n ESP. Eso es lo que hacen los cargadores como GRUB. Pero la particularidad es que todas las funciones que GRUB utiliza con frecuencia ya est\u00e1n en UEFI. De hecho, en su gestor de arranque. Y si queremos ser un poco m\u00e1s t\u00e9cnicos, el gestor de arranque UEFI incluso tiene m\u00e1s capacidades en algunas \u00e1reas. <\/p>\n<p>Parece una soluci\u00f3n atractiva, pero hay un \"PERO\" (mejor dicho, lo hab\u00eda, pero de esto hablar\u00e9 m\u00e1s tarde). La cuesti\u00f3n es que el sistema de controladores UEFI es bastante sencillo. No hay un concepto como el de montar un sistema de archivos o vincular un controlador a un dispositivo espec\u00edfico. Existe una llamada de sistema con un nombre condicional 'Map' que toma cada controlador uno por uno y trata de vincularlo a todos los dispositivos que le puedan corresponder, m\u00e1s o menos. Y si un controlador puede conectarse a un dispositivo, se crea un mapeo: un registro de v\u00ednculo. As\u00ed es como deber\u00eda inicializarse un nuevo controlador al iniciar, en medio de todos los dem\u00e1s. Solo se necesita poner un bit (LOAD_OPTION_FORCE_RECONNECT) en 1 en el registro de arranque del controlador, y UEFI har\u00e1 este remapeo global despu\u00e9s de cargarlo.<\/p>\n<p>Sin embargo, hacer esto no es tan simple. La herramienta est\u00e1ndar efibootmgr (con la que se configura el gestor de arranque UEFI) no sab\u00eda (o no sab\u00eda) c\u00f3mo poner este bit. Era necesario hacerlo manualmente mediante un procedimiento bastante complicado y peligroso. <\/p>\n<p>Y una vez m\u00e1s, al intentar hacerlo manualmente, no pude soportarlo y redact\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rhboot\/efibootmgr\/issues\/108\">un issue en GitHub<\/a><\/noindex> pidiendo a los desarrolladores que a\u00f1adieran esta funcionalidad.<\/p>\n<p>Pasaron varios d\u00edas, pero nadie prest\u00f3 atenci\u00f3n a mi solicitud. Por curiosidad, mir\u00e9 el c\u00f3digo fuente\u2026 hice un fork y pens\u00e9 a 'manita' c\u00f3mo agregar esta caracter\u00edstica\u2026 'a manita' porque no instal\u00e9 nada en mi m\u00e1quina y simplemente edit\u00e9 el c\u00f3digo fuente en el navegador.<\/p>\n<p>Con el lenguaje C s\u00e9 bastante poco, pero esboz\u00e9 una soluci\u00f3n (principalmente copiando y pegando)\u2026 luego pens\u00e9: aunque seguro tenga un mont\u00f3n de errores (mis intentos anteriores de corregir el c\u00f3digo de otros necesitaban al menos diez intentos para compilar) voy a hacer un Pull Request. As\u00ed que <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rhboot\/efibootmgr\/pull\/109\">lo hice.<\/a><\/noindex>.<\/p>\n<p>Ah\u00ed descubr\u00ed que estaba conectado Travis CI para verificar los pull requests. Y me mostr\u00f3 cuidadosamente todos mis errores. Bien, si los errores son conocidos, \u00bfpor qu\u00e9 no corregirlos? Nuevamente, directamente en el navegador, y en mi cuarta tentativa el c\u00f3digo se compil\u00f3 (un logro para m\u00ed).<\/p>\n<p>Y as\u00ed, sin salir del navegador, hice un Pull Request bastante real en una herramienta que se usa pr\u00e1cticamente en todas las distribuciones modernas de Linux.<\/p>\n<p>Me sorprendi\u00f3 el hecho de que, sin saber realmente el idioma, sin configurar nada en mi parte (hay un buen n\u00famero de bibliotecas necesarias para la compilaci\u00f3n), y sin haber ejecutado nunca el compilador, simplemente 'codifiqu\u00e9' una funci\u00f3n completamente funcional y \u00fatil en el navegador.<\/p>\n<p>Sin embargo, mi solicitud estuvo pendiente sin respuesta desde el 19 de marzo de 2019, y ya empezaba a olvidarme de ella. <\/p>\n<p>Pero ayer, esta solicitud fue a\u00f1adida al master. <\/p>\n<p>\nEntonces, \u00bfde qu\u00e9 trata mi historia? Trata de que, con las tecnolog\u00edas modernas, resulta que ya se puede escribir c\u00f3digo real en el navegador, sin tener que desplegar herramientas de desarrollo y dependencias localmente.<\/p>\n<p>De hecho, debo admitir que esta es ya mi segunda solicitud de extracci\u00f3n en utilidades conocidas (al menos en c\u00edrculos reducidos). La vez pasada, mi solicitud de corregir la visualizaci\u00f3n de algunos campos en la interfaz web de SyncThing result\u00f3 en mi correcci\u00f3n de una sola l\u00ednea en un entorno que no conoc\u00eda en absoluto.<\/p>\n<p class=\"for_users_only_msg\">Solo los usuarios registrados pueden participar en la encuesta. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Inicie sesi\u00f3n<\/a><\/noindex>, por favor.<\/p>\n<h2 class=\"default-block__polling-title\">\u00bfDeber\u00eda seguir escribiendo o no?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    s\u00ed<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    no vale la pena<\/p>\n<\/li>\n<\/ul>\n<p>    Votaron 294 usuarios. 138 usuarios se abstuvieron.<br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/471266\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u043a\u0443\u0440\u044c\u0435\u0437\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u0441\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0441\u043e \u043c\u043d\u043e\u0439, \u0438 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u0441\u0442\u0430\u0442\u044c \u043a\u043e\u043d\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440\u043e\u043c \u0432 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442. \u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0432\u043e\u0437\u0438\u043b\u0441\u044f \u044f \u0441 \u043e\u0434\u043d\u043e\u0439 \u0438\u0434\u0435\u0435\u0439: \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 Linux \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0437 UEFI\u2026 \u0418\u0434\u0435\u044f \u043d\u0435 \u043d\u043e\u0432\u0430 \u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0430\u043d\u0443\u0430\u043b\u043e\u0432 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443. \u041e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0443\u0442 \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043c\u043e\u0438 \u0434\u0430\u0432\u043d\u0438\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u043b\u0438\u043b\u0438\u0441\u044c \u0432\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38908","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u043a\u0443\u0440\u044c\u0435\u0437\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u0441\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0441\u043e \u043c\u043d\u043e\u0439, \u0438 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u0441\u0442\u0430\u0442\u044c \u043a\u043e\u043d\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440\u043e\u043c \u0432 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442. \u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0432\u043e\u0437\u0438\u043b\u0441\u044f \u044f \u0441 \u043e\u0434\u043d\u043e\u0439 \u0438\u0434\u0435\u0435\u0439: \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/budushhee-uzhe-zdes-ili-kodim-pryamo-v-brauzere\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0411\u0443\u0434\u0443\u0449\u0435\u0435 \u0443\u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u0438\u043b\u0438 \u043a\u043e\u0434\u0438\u043c \u043f\u0440\u044f\u043c\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u043a\u0443\u0440\u044c\u0435\u0437\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u0441\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0441\u043e \u043c\u043d\u043e\u0439, \u0438 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u0441\u0442\u0430\u0442\u044c \u043a\u043e\u043d\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440\u043e\u043c \u0432 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442. \u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0432\u043e\u0437\u0438\u043b\u0441\u044f \u044f \u0441 \u043e\u0434\u043d\u043e\u0439 \u0438\u0434\u0435\u0435\u0439: \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/budushhee-uzhe-zdes-ili-kodim-pryamo-v-brauzere\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:26:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:26:41+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47El futuro ya est\u00e1 aqu\u00ed o codificamos directamente en el navegador | ProHoster","description":"Voy a contar una situaci\u00f3n peculiar que me sucedi\u00f3 y c\u00f3mo convertirse en contribuidor de un proyecto conocido. No hace mucho, me estaba ocupando de una idea: la carga.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/budushhee-uzhe-zdes-ili-kodim-pryamo-v-brauzere","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0411\u0443\u0434\u0443\u0449\u0435\u0435 \u0443\u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u0438\u043b\u0438 \u043a\u043e\u0434\u0438\u043c \u043f\u0440\u044f\u043c\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 | ProHoster","og:description":"\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u043a\u0443\u0440\u044c\u0435\u0437\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u0441\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0441\u043e \u043c\u043d\u043e\u0439, \u0438 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u0441\u0442\u0430\u0442\u044c \u043a\u043e\u043d\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440\u043e\u043c \u0432 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442. \u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0432\u043e\u0437\u0438\u043b\u0441\u044f \u044f \u0441 \u043e\u0434\u043d\u043e\u0439 \u0438\u0434\u0435\u0435\u0439: \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/budushhee-uzhe-zdes-ili-kodim-pryamo-v-brauzere","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:26:41+00:00","article:modified_time":"2019-10-31T19:26:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38908","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 23:55:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:00:27","updated":"2026-01-23 23:55:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/38908","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=38908"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/38908\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=38908"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=38908"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=38908"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}