 Vamos a dar dos minutos más y ya comenzamos. Bueno, hola a todos. ¿Cómo les va? ¿Qué tal, nos ha tratado Bogotá? Bien, pero bueno. Bueno, pues yo les vengo a hablar un poco de estas últimas, de los últimos sucesos que se han desprendido con todo esto de Drupal 8 y todas las nuevas herramientas que salen y cada vez salen más. Entonces, nace un concepto que se llama Headless. No sé quién de acá conoce o ha oído hablar del Headless. ¿De dónde la mano? Ok, algunos. Entonces, pues, a los que no han escuchado, pues ahorita les vamos a mostrar más o menos de qué se trata. Entonces, por primero, pues, me voy a presentar. Yo me llamo Maraguirre y soy conocido en la comunidad de Drupal como Omers. Ahí está mi usuario, mi usuario de Git, mi usuario de Drupal. Soy desarrollador web desde hace más, casi tres años y siempre me ha gustado trabajar con Drupal. Entonces, ¿qué vamos a ver en esta sesión? Actualmente lo que pasa en Drupal. Las tendencias que es lo que da vuelo a todo lo que vamos a mencionar en esta conferencia. Lo de hoy, los bonitos frameworks, conocido como las herramientas sexies también, más o menos de qué se trata el Drupal Headless. En esta ocasión vamos a hacer un demo, a ejemplificarlo con Angular, cómo se hace en Drupal 7 y qué pasa con Drupal 8, ¿vale? Entonces, ¿qué pasa actualmente en Drupal? La demanda está creciendo. Cada día tenemos más demanda de sitios. La gente lo está escuchando más, sabe del poder de la herramienta y pues hay mucho trabajo, ¿sí? ¿Por qué? Pues debido a la escalabilidad. Pero la mala noticia al menos en América Latina es que no contamos con muchos especialistas o por lo menos en donde yo vengo, yo soy de México, ¿sí? Entonces, deberíamos rendirnos ante esos proyectos, deberíamos dejarlos a un lado, pues no, que existe una solución, ¿no? Entonces, ahora, ¿qué nace? Desde 2008, como pueden ver en la gráfica, la tendencia de proyectos open source es JavaScript, ¿sí? Entonces, creo que todos coincidimos en que el poder de JavaScript está creciendo y está creciendo. Hay mucha gente, mucha comunidad, hay muchísimos proyectos, hay muchísimas opciones. Entonces, aquí les dejo una... Este es un poco desactualizado, abajo está el link donde está una herramienta muy bonita hecho en JavaScript que trae la gráfica de todos los tópicos de los repositorios más realizados que más se han hecho en GitHub, sobre qué tecnologías. Entonces, los frameworks de hoy, alguno de... ¿se les hace familiar? ¿Lo conocen o han trabajado con él? Yo creo que, ya la mayoría. Pues son como que los más conocidos, Backbone, Angular y Ember, existen muchos más. La ventaja, o sea, es lo que está de moda. Menos código y desarrollo masaje. Esto es un término relativo en cada tecnología, ¿no? Nosotros, como usamos PHP, justamente decimos, yo conozco mis herramientas y lo hago más rápido y así cada quien, ¿no? Eso es un término relativo. Igual, mejores prácticas, estándares, performance. ¿Por qué performance? Ahorita vamos a ver unas imágenes, pero lo interesante de JavaScript es correr todo de lado cliente. Solamente pedir a nuestro servidor lo que necesitamos y ya alimentar nuestra aplicación. Y también comunidad. Entonces, es por lo que nace el Headless. ¿Por qué este concepto? Entonces, nosotros creemos, nosotros confiamos en el poder de Drupal en lo flexible, en lo escalable que es, en la parte de Backend. Y también tiene muchísimas características en el Frontend. Pero, cada día los sistemas se vuelven más complejos, se vuelven más ricos en la interfaz de usuario. Entonces, Drupal se empieza a volver un poco engorroso. No sé si alguien aquí está en desacuerdo conmigo. O sea, hacer interfaces muy ricas o muy elaboradas empieza a volnecitas a cierto nivel de tecnicismo. Tu equipo, tus desarrolladores de Frontend, pues deben saber manejar Drupal y bustar todavía todas esas herramientas. Siempre es bueno las alternativas. Yo siempre he dicho que siempre es bueno tener alternativas. Pero lo mejor es que Drupal está listo para hacer uso de esas alternativas. Esto es lo que le estaba mostrando. Este es un ejemplo muy básico de una página principal, un home con un usuario logueado. Si ven en Drupal 7 se hacen 37 requests y en una aplicación Angular reducimos la mitad, casi la mitad. Obviamente, tenemos capas de caché en Drupal, tenemos infinidad de herramientas para optimizarlo. En Angular también existen algunas, pero de por sí el tan solo, el poder tener todo el trabajo de la interfaz, del rendereo de HTML en nuestro lado del cliente, pues eso nos da gran ventaja. No más TeamLayer, o sea, hay muchas formas de ser headless. En lo personal, yo pienso que el hacer headless es totalmente desacoplarlo, dejar a Drupal a un lado en cuestión de Frontend, tener otra aplicación por aparte. Por lo tanto, nos quitamos la parte del TeamLayer. Los dos viven por separado, el backend y el frontend. Y bueno, otra de las ventajas es concentrarte en el negocio, para eso están hechas las APIs. Regularmente, ahora ya todo es software, hasta service, yo nada más me preocupo por pedir cosas a mi plataforma y me preocupo en la parte del negocio. Eso es lo que debemos de hacer. Entonces, ¿qué necesitamos para que esto suceda, o que esto ocurra? A la parte de Drupal 7 necesitamos services, el módulo de services, que yo creo que ya lo conocen, o pues Drupal 8 ya tenemos el rest en el core. Web Services en el core, ya podemos hacer un nappy de inmediatamente después de haberlo instalado. Algo importante es un término que debemos de conocer, que es el course, el cross-origin resource sharing, perdón, se me olvida, para poder hacer peticiones de un dominio a otro dominio. Entonces por cuestiones de seguridad, cuando ya hago petición de cierto dominio, en este caso Drupal no me permite obtener esa respuesta hasta que en mi servidor Apache yo le diga, por favor mandale peticiones a este dominio, ¿vale? Entonces son así como que los conceptos muy básicos que debemos de saber. Ya más adelante viene autentificación, o out y ese tipo de cosas, pero no creo que nos alcance el tiempo para verlo. Bueno, en este momento voy a hablar de un poquito de Angular, lo he estado trabajando con él algunos meses, poquito, pero me ha gustado lo que hace la herramienta, ¿no? Entonces es un framework tipo MBC para crear estas cosas que se llaman single-page application. ¿Las conocen? ¿Lo saben más o menos qué se trata? Es simplemente tener una página HTML y ahí renderar todo desde esa página, no hacer recuestas al servidor, solamente mandar a traer lo que yo necesito, ¿sí? Es una solución completa, no puede ser comparado con librerías como jQuery o Knockout. O sea, tenemos una solución más integral, podemos hacer routing, podemos hacer services, factories, llamar toda la parte de... en Symfonium me parece que se llaman servicios, contenedor de servicios, ¿no? Las ventajas de Angular pueden desextender el HTML, ahorita vamos a ver con algo que se llaman directivas. No es necesario manipular el DOM y el data binding que yo lo defino como brujería. No, no, eso es... Está muy padre, ¿no? No, no lo entiendo. Conceptos de Angular, pues el objeto scope, data binding, formularios, filtros, directivas y la inyección de dependencias. El scope es el objeto que interactúa entre tu modelo y tu controlador y permite darle ejecución a las expresiones Angular que es algo parecido a Twitch, ahorita lo vamos a ver. En resumen y en español, otro día más fácil, pues ese es el pegamento entre el controlador y tu vista. El data binding, ¿no? Es la sincronización entre el modelo y la vista que se hace normalmente en cualquier aplicación web. Yo pido una petición a mi servidor, mando a llamar a mi modelo, lo combino con mi template y tengo la vista. ¿Qué pasa con el data binding en Angular? Es a dos vías, el two-way data binding. Entonces el template se compila completamente en el navegador. Entonces se produce esto al vuelo. Cualquier cambio se refleja inmediatamente en el modelo y cualquier cambio en el modelo se esparce hacia la vista. Form, validaciones al vuelo. O sea, del lado cliente, cuando estoy escribiéndome, me puedo ir diciendo si voy bien, si voy mal. Trabajar conforms hace una asimilación, nos permite entender un poquito más cómo es que funciona más o menos el two-way data binding. Y pues obviamente, mejor a UX porque podemos tener un feedback inmediato, ¿no? Esto a la forma, al momento de hacer una validación al cliente. Los filtros es la forma en que nosotros podemos tomar una expresión angular y manejar la nuestra conveniencia. Como ven, es algo muy parecido a tu hijo. En hecho, casi es muy similar. Entonces tenemos una expresión y podemos hacer un filtro, ¿no? Tengo mi expresión, una cadena y la puedo convertir a minúsculas o cualquier otra cosa. Las directivas. Aquí este es el origen de extender el HTML en Angular. Entonces, por, de una manera muy superficial, las directivas son los elementos del DOM. ¿Qué quiere decir esto? Que cuando estoy trabajando con Angular y hago directivas, yo puedo crear mis propias etiquetas o manejarlo como atributos en mi HTML. Ha sido una directiva angular, puedo controlar todo eso del lado de JavaScript y poder renderar una etiqueta HTML. Muy sencillo. Entonces, aquí es un ejemplo de más o menos cómo funciona una directiva en Angular. Tengo un, se llama Hello World, mi directiva y regreso en esa parte donde dice el restringido A o E puede ser un atributo o un elemento. Y puedo llamar al template que yo quiero y al controlador que yo quiero. El dependency injection pues, es la forma más fácil de conocerla, es de como un megasore. ¿Conocen que saben que es un megasore? ¿Alguien ve los power rangers? ¿Vale? Entonces, recuerdan cómo los power rangers hacían el robot, se unían los cinco y empezaban a unir el robot. Pues es eso más o menos el dependency injection. En los links tienen más información. Y bueno, el día de mañana, Alfredo y Dani, no sé si están por acá, levanten la mano, van a hablar un poquito más de Angular. Entonces, pues para que no se lo pierdan. Bueno, ahora vamos a ver un poquito de lo que pasa en el lado de Drupal 7. ¿Qué módulos necesitamos básicos para trabajar el headless en Drupal 7? Drupal 7, pues, services, services tools, services definition, tools y definition trabajan juntos y son de gran ayuda para saber, porque a veces hacemos nuestros, habilitamos nuestros recursos de rest y pues se nos olvida cómo quedó, qué petición tengo que hacer. Entonces, ahorita vamos a ver cómo nos ayuda services definition. Entonces, todo se trata de habilitar el endpoint y habilitar recursos. Entonces, les voy a mostrar un pequeño demo, o no un gran demo. Les voy a ir explicando todo lo que está, lo que va pasando. Bueno, pues lo primero que vamos a hacer pues es habilitar nuestros módulos. Es services, services definition, services views, si queremos utilizar vistas. Vamos a habilitar nuestro servidor rest y habilitar el course. Vos posteriormente tengo que dar de alto a mi endpoint, a él le pongo cómo se va a llamar, el tipo de servidor que va a hacer, en este caso va a ser rest y va a tener un pata al que yo voy a, al que yo voy a dirigir todas mis peticiones de mi aplicación. ¿Qué otra cosa podemos hacer? Ahorita vamos a ver que podemos habilitar los tipos de response que podemos hacer. Ahorita vamos a ver cómo se van a habilitar todos los recursos con los que ya cuento. De inicio ya cuento con nodos, todo lo que se entira, nodos, taxonomías, usuarios y también todas las operaciones CRUD que puedo hacer. Crear, borrar, actualizar, traerme a hacer un llamado a todos para nodos, para usuarios. Tengo la posibilidad de hacer el login y el logout de mi user. Vistas con el módulo de services views lo podemos hacer. Lo que les hice es un momento, los formatos en los que puedo trabajar, puede ser JSON, HPX, XML. El proceso de mi petición es el XWWWS para poder hacer autentificaciones, usar el XSRF token y poder hacer llamadas concesiones. Y esto es lo que les decía de definition. Esa herramienta me lista la URL a la que yo voy a hacer la mi petición, el tipo de petición que debo de hacer y si necesita parámetros, los parámetros que le voy a enviar. Podemos ver, por ejemplo, ahorita vamos a ver uno de los más importantes o el más detallado que es el de views. En el de views puedo mandar a llamar el tipo de view, el tipo de display, los parámetros si tiene argumentos cuando estoy trabajando con el paginador pues también lo que debo de mandar en mi petición. Un límit, ahí pueden ver que tenemos varios, el ID, los argumentos, el límite, el formato de salida, los filtros. La parte de, ya que tenemos a habilitar nuestros recursos ahora sí podemos hacer peticiones. En este caso lo hice con una consola de res para hacer las llamadas a todos mis servicios. Acá estamos viendo cómo le estoy llamando a mi usuario, mi usuario administrador y que me va a traer todos los datos tanto el ID, como el nombre, como el mail, la última vez que accedió. Aparte de ello, ya puedo empezar a jugar con mi, ya se está haciendo un API. Obviamente, definiendo mis cabeceras y acepte JSON. También podemos ver, en este caso, voy a traer a un objeto nodo con su ID. Y bueno, me trae toda la información, qué tipo es su título y todos los campos que contiene ese nodo. En el siguiente, vamos a hacer un logueo. Aquí es una parte, un post, una operación post que yo le hago a mi API donde mando como parámetros mi usuario y mi password. Cuando hago el request, pues ya me trae cosas importantes, como la variable de sesión, nombre de sesión, el token, que es el que me va a permitir hacer peticiones de tipo post, autentificadas. El login. Por ejemplo, en este momento, voy a hacer una petición autentificada que es un nodo y voy a poner como cabecera el nuevo token. Voy a enviar todo el body de mi nodo y ya lo voy a tener listo para trabajar con él. Y bueno, pues aquí podemos ver la, no sé si hasta acá alguien tiene alguna duda, algo que no quede claro. Digo, esto es algo, cosas básicas que podemos hacer. Por ejemplo, aquí voy a traer, voy a buscar todo, como se llaman todos los campos de mi nodo, todo lo que voy a poner en mi servicio, en mi aplicación y cómo va a funcionar y lo que voy a mandar. Lo podemos ver aquí. Ya hice un atajo y ya pude capturar mi nodo vía REST. ¿Qué pasa con las vistas? Pues lo mismo, ¿no? Yo puedo crear una vista. Lo importante es que tengo el display de tipo service donde yo puedo mandar a llamar en tipo JSON, o en tipo XML, en tipo PHP, en lo que ya necesite. Y igual, mandarlas a mostrar. Por ejemplo, aquí estoy haciendo un llamado con argumentos a todos los nodos que tienen que se han agregado con ciertas taxonomías. Y bueno, pasando ya un poco a la aplicación HEDLESS, a lo que es Drupal, pues podemos ver que me traje las vistas de todas mis taxonomías, me traje la vista con filtros contextuales. Ehh, ahorita vamos a ver como me logeo, me estoy identificando todo lo que les estuve mostrando ahorita vía la consola REST. Lo está haciendo ya la aplicación en vivo. Entonces, más adelante van a poder ver ustedes el código. Aquí voy a hacer la autentificación. Normal. Como se hace en cualquier lugar. Y bueno, ya podemos ver que ahí estoy autentificado que puedo agregar los links que yo necesite. Ehh, esta herramienta tratamos de liberarla en un futuro próximo. Se trata de hacer, de capturar links que sean de ayuda para Drupal 8. Entonces ahorita, como que nosotros necesitamos un lugar de referencia en donde buscar cierta información. Entonces, pronto vamos a estar en pendientes, vamos a liberar pronto esta, esta herramienta. Obviamente, es de funde muy, muy básico y ahora un poco más avanzada. Ehh, y bueno, lo que, lo que pueden ver es la, la rapidez en la que yo estoy haciendo recues a mi, a mi sitio en Drupal. Y, y este, aquí van a ver lo que se tardo en, en, esta es la que les decía su momento. La, la vista de nodos con un usuario autentificado con los 38 recues que les, que les mencioné su momento. Y ahorita vamos a ver como se hace en, en mi aplicación Angular. Y bueno, aquí está la, la parte de la aplicación en, en Angular. Y lo que se tarda, se tarda menos tiempo. Vale, entonces ¿Qué podemos decir ahora en Drupal 8? Esta fue una forma sencilla, de hecho en cosa de 15 minutos, levanté un API hice, una petic, un logeo de usuarios, hice un, un post de un nodo con autenticación. Ehh, y aquí en Drupal 8, pues ahora está un poquito más bonito porque ya tenemos services en el core. Y algo que es importante decir de Drupal 8 es que todo es un response. ¿Sí? Todo es un response. Y, y en la parte de views que viene integrada, ya tenemos el display del REST. ¿Sí? REST export es lo, lo nuevo que viene en, en Drupal 8. Eh, módulos que nos pueden ayudar para esto, eh, REST UI. REST UI es algo parecido a service definition que les mostré a su momento. Y bueno, aquí pues vamos a hacer un poco de, de más código, pero usando la consola. Yo creo que todos de aquí ya conocen la consola. ¿Alguien de acá no conoce la consola? Bueno, eh, pues ya saben nuestra herramienta para generar módulos de una manera más ágil. Bueno, lo que estoy haciendo ahí voy a habilitar mis módulos. El REST, el, el REST, el basic authentication, serialization que es una dependencia de, de REST. Y, y que más, bueno, y ahorita vamos a empezar a ver, vamos a hacer, a generar una entidad de tipo contenido. Este demo lo hice un poco más específico a un, a un, a un cierto, a un cierto requerimiento, ¿no? No siempre necesitamos la capa de nodos. No siempre necesitamos hacer, llamar a taxonomías. A lo mejor necesitamos algo más customizado, como en este caso sería generar mi propia entidad. Voy a generar mi, mi, mi, obviamente primero mi módulo. Vamos a generar todo el scaffolding a qué pad voy a apuntar. El nombre de mi módulo. Eh, voy a hacer la generación de todo el, al package que va a pertenecer, la versión que voy a usar. No necesito controladores en esta ocasión. Y pues lo vamos a generar. Ya tenemos de inicio el módulo y después vamos a hacer la entidad de contenido. Entonces, igual es muy fácil. Tenemos que poner el módulo al que, al que acabamos de crear el nombre de la entidad en su machine name y listo. Ya tengo esos catorce archivos que son bastantes y ya tengo la entidad lista para trabajar. Nada más tengo que poner en el mi hook tem lo que me sugiere la consola y ya podemos empezar a agregar campos, ya podemos empezar a hacer vistas, ya podemos empezar a hacer toda la parte de rest. De una manera pues prácticamente transparente. Y ahorita voy a vamos a habilitar el módulo, obviamente. Algo muy importante ahorita está a algunos problemas entonces hay traten de limpiar el caché, salen errores, no se vayan a espantar como pan de yo. Entonces ya tenemos lista la entidad para trabajar con ella, ya podemos hacer lo que queramos. Puedo manejar campos, puedo manejar el display de los campos no voy a asaltar esta parte ya está la entidad lista para trabajar. Mis vistas, en este caso las vistas pues ya son de tipo de tipo entidad ya no son a los nodos igual, no se vayan a compundir ahí. Lo hay confusiones. Ahí me estoy trayendo las taxonomías relacionadas a mi entidad de links en este caso. Una vez haciendo la vista pues ya está listo para, ya está en formato Jason y ya está listo para que podamos trabajar con ella. Y bueno, qué otras cosas me ofrece ahorita la herramienta. La herramienta de la consola puedo habilitar módulos en este caso habilitar el UI y puedo empezar a, puedo ver lo que les decía con service definition todas las cosas que voy a a las que puedo acceder de hecho ahí paso lo del caché. Y bueno, qué tengo con ResUi. Con ResUi tengo todos a todos los los recursos que yo puedo habilitar en RUPAL 8, entidades usuarios, vistas configuraciones la parte de search todo, prácticamente todo se puede hacer y ahora también tenemos la parte de la consola. En la consola se agregaron unos nuevos comandos hace un tiempo que son los comandos que nos permiten trabajar con res podemos hacer de bug, podemos habilitar recursos de nuestro de nuestro RUPAL. Entonces aquí es más o menos cómo funciona ResUi en la parte de interfaz de usuario pero ahorita lo vamos a hacer con la consola. Entonces haciendo una pequeña demostración del comando de ResDebug entonces podemos ver ahí que ya tenemos todos todos los los los recursos que yo tengo disponibles en mi instalación de RUPAL y obviamente el estado en el que se encuentra y también puedo habilitar estos recursos con el comando de ResEnable y el nombre de la entidad. El tipo de operaciones puedo hacer con mi entidad GetPost en JSON, en XML la autentificación que voy a usar y ya está listo habilitamos la entidad blog y ya está lista ahí para usarse. Entonces pues este es más o menos como se puede desarrollar rápidamente un API con RUPAL 8 usando REST usando la consola creamos entidades de contenido y pues prácticamente ya no nos permiten hacer código a los creadores de la consola. Pues no puedo hacer nada. Bueno algo importante, que esto no es tan nuevo o sea ha habido ya mucho tiempo esto ya es un concepto de varios años, yo creo que hasta apenas se empezó a dar un boom al concepto de Headless pero aquí les comparto todos los links de cuando ya se venía trabajando. Alguien de ustedes ha hecho una aplicación y la ha alimentado con Angular, con una aplicación móvil y la ha alimentado con RUPAL eso ya es Headless o sea ya desacoplaron esa capa de de renderado por parte de RUPAL. Tenemos algunas conferencias algunos blogs, tenemos un grupo en RUPAL RG que igual hablando tópicos de todo lo que es el Headless. Proyectos este es bastante interesante de RUPAL RG todo el isho kiwi del core lo hicieron en una aplicación Angular tipo Cards como Trello Drupical, todos aquí conocen Drupical para que quede a sus eventos uno de los sitios más importantes de en Drupal tiene técnicas Headless especialmente aplicadas con Angular. El poder latino en especial estamos trabajando fuertemente en hacer en desarrollar nuevas cosas no sé si aquí conozcan a Enzo ¿Aguien si conocen a Enzo? Enzo ha estado haciendo una labor titánica con esto del Headless y ha hecho librerías como Backbone generador de Geoman Geoman es una herramienta que funciona con Node.js y nos permite hacer el scaffolding básico de nuestra aplicación quiere decir nos ahorran las tareas repetitivas de hacer una carpeta hacer la carpeta de imágenes hacer la carpeta de mis scripts hacer la carpeta de mis vistas y me permite hacerlo de una manera muy rápida obviamente con todas las integraciones que yo necesite donde yo quiera puedo generar subcomandos dependiendo de mi herramienta si estoy usando Angular a lo mejor necesito una vista necesito un controlador, necesito un factory entonces con un comando a la altura de un comando nos queda generar todas las tareas pediosas y bueno próximamente su servidor está haciendo el proyecto inspirado o sea el fork de marionet y se está aportando a Angular entonces pues aquí están las digas de los de los repositorios por si tienen ustedes alguna duda por si quieren echar una mano mano siempre se necesitan entonces pues contactenos y pues veamos que podemos ser juntos vale entonces referencias un poco de lo que es Angular como habilitar el course en Drupal 7 aquí les dejo me funciona el internet no sé si tengo problemas con el internet pero bueno no funciona en esta ligua está la aplicación cita que estamos haciendo de los links de Drupal 8 para que puedan ver más o menos de que se trata también les dejo algo muy importante si ustedes que no saben mucho de lo que estamos hablando y apenas están empezando Drupal Ice Me tiene una serie de videos bastante interesantes sobre el uso de services en este caso en Drupal 7 entonces preguntas en el slide del benchmark que se hacía Drupal 7 versus Angular veía que efectivamente habían 37 peticiones versus 17 o algo así y que crecía la carga en Kilo Ice pero aún así se mantenía un tiempo de respuesta muy bajo es lo que les comentamos sobre todo fue algo muy básico y actualmente en Drupal tenemos muchos sistemas de cachado para hacer la respuesta más rápida entonces es algo más como que a estas alturas del partido ya tenemos mucha tecnología para hacer respuestas rápidas pero qué pasa si en vez de 10 nodos que presenté presento un millón cuál es el cuál es el tópico o cuál es el el asunto de todo esto en el trabajo nos presentamos en la empresa del trabajo tuvimos problemas de esta magnitud les voy a comentar un ejemplo nosotros ahí estamos trabajando en una venta automatizada que nos lleva nos lleva muchísimo tiempo mandar a llamar servicios mandar a llamar varias cosas y aparte de eso está la capa de Drupal que también tiene su cierta complejidad y cierta carga entonces vemos esta herramienta se quiso portar con la misma aplicación web se quiso usar en dispositivos móviles y consumía una infinidad de datos hicimos un un demo básico de cómo sería con Angular es mínimo lo que lo que usamos porque mandamos hacer una petición a Drupal Drupal hace su trabajo también se conecta otro sistema pero eso ya lo hace de ese lado a mí nada más me regresa una respuesta lo que necesito entonces existen herramientas pero cuando vas creciendo tu proyecto tal vez te interesa usar este tipo de de patrón o este tipo de herramientas y otra pregunta es el impacto que eso tiene en el SEO por ejemplo para sitios que tengan que ver específicamente con contenido cómo se maneja en Headless tengo entendido que Angular hace algo como deep linking exactamente y eso tiene algún impacto en el SEO del sitio de hecho existen también las herramientas de SEO que tú puedas definir la operación que quieres hacer no sé alguna visita o alguien dio clic aquí y por si no y te dale snippet de código para que captures tal o cual evento en tu sitio entonces con ese tipo de cosas sí se puede hacer en la parte de Angular es un llamado JavaScript que lo haces como sea bueno bueno tengo entendido que los buscadores son como humanos no ven ni CSS ni JavaScript como lo van a interpretar para empezar tenemos que recordar que todo se trata de vistas y en tus views también puedes tener ciertos tags los de rastreo básico como el nombre de tu sitio tu site map todo lo que puede hacer el buscador entonces puedes hacer ese contenido también puedes hacer el contenido dinámico y dinámico ya es como la pregunta que hizo él existe en depende con la herramienta que uses para tu SEO o la herramienta de medición entonces te da ciertos snippets para que tu puedas capturar tales goals o tales todo estos flujos que hacen no sé mucho del SEO más o menos tengo una idea todos los flujos de cómo va el usuario de dónde vino y todo eso comprendo español pero no hablo can I ask in English or Portuguese one of great advantage of Drupal is the speed for development ok well one of great advantage of Drupal is the speed of developing due to the themes and you can create quickly layouts with theming and my question is what's the time or increased time of development when we use Angular for example because now all the theming layouts must be handwritten again so we lose these all templates and gene and blocks and panneos etc so the content is ok it's really fast because all the user interaction is done on the client but for development we lose all the theming engine so now we must written by hand so it's increased development time how does it work ok ¿Puedo contestar en español? ok bueno esa es una pregunta muy interesante de lo que haces si se reduce el trabajo porque se reduce el tiempo de trabajo porque ya tienes a tus desarrolladores y a los especialistas en front end hace rato en la charla de Larry nos mencionó que deben de trabajar juntos y tener muchos problemas y trabajan separados bajo ese concepto ahora tienes a gente más especialista en html es mucho más que te va a costar más trabajo entrenarla te va a llevar más tiempo a que aprendas a hacer teaming en Drupal en cuanto a la experiencia a la gente que conozco mucha gente me ha dicho hacer temas en Drupal no es algo así que nada la gente que hace front entonces con este tipo de herramientas pues ahora nada más ellos se enfocan a desarrollar el html ya no tienen por qué preocuparse si estoy aventando bien el Jason o está estoy poniendo bien tal o cual elemento sino ahora ellos se encargan de maquetar que se necesita y tu backend se va a dedicar a dar ese output a tu aplicación entonces a mi punto particular de vista si se optimiza mucho el tiempo de desarrollo obviamente debes de tener una muy buena organización pero reduces muchos costos porque también igual sabemos que es un poco caro a lo mejor no contratar a un Drupal developer pero si todo el tiempo que te tardas en entrenarlo porque aprenda a ser teamer exactamente esa es otra cosa ya tenemos bastantes herramientas ya tenemos por ejemplo como crear módulos con la consola ya tenemos generadores como Yeoman que nos permiten hacer cosas muy rápidas o sea nada más es pensar en la lógica o pensar en cómo mostrar los datos si entonces a punto de vista si se reduce el tiempo si se reduce los costos solamente pues como todo depende de una buena organización otra pregunta las buenas tu el ejemplo en Drupal 7 lo mostraste con el módulo services tengo entendido que hay otra alternativa que sería el REST WS REST WS no sé si no la verdad no es la primera vez que lo escuché o sea bueno yo a gusto de este porque es el que me ha facilitado más cosas y todo pues tuye tranquilo alguna otra pregunta alguien más bueno pues muchas gracias espero que les aquí están todas las formas que me pueden contactar correo por twitter mi usuario recordamos estamos trabajando en generadores de Geoman que nos pueden ayudar entonces pues están bienvenidas bienvenidas a las contribuciones los pull request y bueno que sigan disfrutando del Drupal con gracias