Este documento presenta una introducción a Elasticsearch y cómo conectarlo con Symfony2 usando el bundle FOSElasticaBundle. Explica qué son Elasticsearch, Symfony2 y Apache Lucene, y cómo configurar Elasticsearch para indexar y buscar datos de una base de datos usando FOSElasticaBundle. También discute consideraciones como mapeo de campos, búsqueda, filtros y facetas, y soluciones para limitaciones como el mapeo 1-1 de propiedades.
Curso en español del motor de búsqueda distribuido Elasticsearch. De nivel básico a medio, cubre las principales características y detallas algunas funcionalidades avanzadas: configuración del cluster, mapeos, búsqueda de texto libre, relevancia de resultados, etc.
Fue diseñado para dictarse en la empresa Mercadolibre con lo que hace foco en aspectos de calidad de un site alto tráfico, como alta disponibilidad, performance y tolerancia a fallos.
Elasticsearch es un servidor de búsqueda basado en Lucene. Provee un motor de búsqueda de texto completo, distribuido y con capacidad de multi-tenencia con una interfaz web RESTful y con documentos JSON. Elasticsearch está desarrollado en Java y está publicado como código abierto bajo las condiciones de la licencia Apache.
Presentación sobre cómo utilizar MongoDB en Bluemix, ya sea con el servicio de MongoDB o mediante Compose.io
Inicialmente se muestran un poco las capacidades de MongoDB para luego mostrar dos ejemplos montados mediante Python y Flask
Log -Analytics con Apache-Flume Elasticsearch HDFS KibanaFelix Rodriguez
I’ve recently started learning more about the tools and technologies that fall under the loose umbrella term of Big Data, let´s try to include getting Apache log data into Hadoop, and bringing Twitter data into Hadoop via ElasticSearch.
Curso en español del motor de búsqueda distribuido Elasticsearch. De nivel básico a medio, cubre las principales características y detallas algunas funcionalidades avanzadas: configuración del cluster, mapeos, búsqueda de texto libre, relevancia de resultados, etc.
Fue diseñado para dictarse en la empresa Mercadolibre con lo que hace foco en aspectos de calidad de un site alto tráfico, como alta disponibilidad, performance y tolerancia a fallos.
Elasticsearch es un servidor de búsqueda basado en Lucene. Provee un motor de búsqueda de texto completo, distribuido y con capacidad de multi-tenencia con una interfaz web RESTful y con documentos JSON. Elasticsearch está desarrollado en Java y está publicado como código abierto bajo las condiciones de la licencia Apache.
Presentación sobre cómo utilizar MongoDB en Bluemix, ya sea con el servicio de MongoDB o mediante Compose.io
Inicialmente se muestran un poco las capacidades de MongoDB para luego mostrar dos ejemplos montados mediante Python y Flask
Log -Analytics con Apache-Flume Elasticsearch HDFS KibanaFelix Rodriguez
I’ve recently started learning more about the tools and technologies that fall under the loose umbrella term of Big Data, let´s try to include getting Apache log data into Hadoop, and bringing Twitter data into Hadoop via ElasticSearch.
Conceptos básicos y aplicaciones prácticas de programación para SEOnacho mascort
Repaso de los conceptos básicos de programación siguiendo la sintaxis de Python y Javascript para finalizar con varios casos prácticos aplicados en el mundo SEO.
Conceptos básicos y aplicaciones prácticas de programación para SEOnacho mascort
Repaso de los conceptos básicos de programación siguiendo la sintaxis de Python y Javascript para finalizar con varios casos prácticos aplicados en el mundo SEO.
En esta charla, exploraremos las distintas estrategias y métodos para probar aplicaciones basadas en LLMs como GPT, el modelo de lenguaje desarrollado por OpenAI. A medida que la inteligencia artificial se integra cada vez más en nuestras vidas, es crucial garantizar la calidad, eficiencia y confiabilidad de las aplicaciones que utilizan tecnologías de AI como ChatGPT.
La charla ayudará a comprender mejor los desafíos de probar este tipo de sistemas, así como aportará algunas de las técnicas de testing aplicables, y sus limitaciones, herramientas existentes y otras que hacen falta. Esto tanto para testing funcional, automatizado y testing no funcional (performance, seguridad, accesibilidad, etc). Es importante desde ya reflexionar sobre cómo enfrentarse a estos nuevos desafíos, considerando que por más que hoy no estén probando ya este tipo de aplicaciones, no faltará mucho tiempo para que eso suceda.
Argentesting 2017 - Performance testing 101 con jmeterArgentesting
Este taller será una introducción a los conceptos de Performance Testing y a la utilización de JMETER para armar planes de pruebas de performance.
Los requerimientos de las máquinas de los asistentes son:
Procesador Intel i3 o Superior con 2GB y 1 GB de espacio Libre.
SO: Linux, MacOs, Windows
JAVA 1.8 Instalado
Expositor: Sebastián Lallana
Las búsquedas online permiten que los alumnos y profesores que accedan a la información que necesitan de manera rápida y eficiente. Sin embargo, como existe un flujo muy grande de información necesitan adecuar las búsquedas para obtener los resultados que se desea.
This slides are about what is drupal? and why you should use drupal. The target for this slides are students of last courses of web apps development.
This slides was created by:
@keilovecraft
@Nesta_
This slides are based on http://www.slideshare.net/zekivazquez/taller-drupal-jornadas-software-libre-uca (by @RabbitLair)
Las buenas prácticas oficiales para aplicaciones Symfonysymfony_bcn
La primera versión del framework Symfony2 se publicó hace más de tres años. Durante este tiempo, la comunidad de programadores Symfony ha originado una serie de buenas prácticas oficiosas que han sido adoptadas por la mayoría de aplicaciones.
Lamentablemente muchas de estas prácticas tienen poco que ver con la visión original de los creadores de Symfony y complican en exceso el desarrollo de las aplicaciones.
En esta sesión se presentarán muchas de las buenas prácticas oficiales recomendadas por Fabien Potencier, creador de Symfony. Sorpréndete con una visión totalmente renovada y pragmática del desarrollo de aplicaciones Symfony profesionales.
Todo el mundo asocia SSL a conexión web segura. ¿Pero qué hay exactamente detrás de esas siglas? ¿Cómo funciona? ¿Es cierto que mi web irá mucho más lenta? ¿Vale la pena?
Hablaremos de algoritmos de cifrado, claves públicas y privadas, performance y, como no, de cómo integrarlo todo en nuestro framework favorito.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...espinozaernesto427
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta intensidad son un tipo de lámpara eléctrica de descarga de gas que produce luz por medio de un arco eléctrico entre electrodos de tungsteno alojados dentro de un tubo de alúmina o cuarzo moldeado translúcido o transparente.
lámparas más eficientes del mercado, debido a su menor consumo y por la cantidad de luz que emiten. Adquieren una vida útil de hasta 50.000 horas y no generan calor alguna. Si quieres cambiar la iluminación de tu hogar para hacerla mucho más eficiente, ¡esta es tu mejor opción!
Las nuevas lámparas de descarga de alta intensidad producen más luz visible por unidad de energía eléctrica consumida que las lámparas fluorescentes e incandescentes, ya que una mayor proporción de su radiación es luz visible, en contraste con la infrarroja. Sin embargo, la salida de lúmenes de la iluminación HID puede deteriorarse hasta en un 70% durante 10,000 horas de funcionamiento.
Muchos vehículos modernos usan bombillas HID para los principales sistemas de iluminación, aunque algunas aplicaciones ahora están pasando de bombillas HID a tecnología LED y láser.1 Modelos de lámparas van desde las típicas lámparas de 35 a 100 W de los autos, a las de más de 15 kW que se utilizan en los proyectores de cines IMAX.
Esta tecnología HID no es nueva y fue demostrada por primera vez por Francis Hauksbee en 1705. Lámpara de Nernst.
Lámpara incandescente.
Lámpara de descarga. Lámpara fluorescente. Lámpara fluorescente compacta. Lámpara de haluro metálico. Lámpara de vapor de sodio. Lámpara de vapor de mercurio. Lámpara de neón. Lámpara de deuterio. Lámpara xenón.
Lámpara LED.
Lámpara de plasma.
Flash (fotografía) Las lámparas de descarga de alta intensidad (HID) son un tipo de lámparas de descarga de gas muy utilizadas en la industria de la iluminación. Estas lámparas producen luz creando un arco eléctrico entre dos electrodos a través de un gas ionizado. Las lámparas HID son conocidas por su gran eficacia a la hora de convertir la electricidad en luz y por su larga vida útil.
A diferencia de las luces fluorescentes, que necesitan un recubrimiento de fósforo para emitir luz visible, las lámparas HID no necesitan ningún recubrimiento en el interior de sus tubos. El propio arco eléctrico emite luz visible. Sin embargo, algunas lámparas de halogenuros metálicos y muchas lámparas de vapor de mercurio tienen un recubrimiento de fósforo en el interior de la bombilla para mejorar el espectro luminoso y reproducción cromática. Las lámparas HID están disponibles en varias potencias, que van desde los 25 vatios de las lámparas de halogenuros metálicos autobalastradas y los 35 vatios de las lámparas de vapor de sodio de alta intensidad hasta los 1.000 vatios de las lámparas de vapor de mercurio y vapor de sodio de alta intensidad, e incluso hasta los 1.500 vatios de las lámparas de halogenuros metálicos.
Las lámparas HID requieren un equipo de control especial llamado balasto para funcionar
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0xWord escrito por Ibón Reinoso ( https://mypublicinbox.com/IBhone ) con Prólogo de Chema Alonso ( https://mypublicinbox.com/ChemaAlonso ). Puedes comprarlo aquí: https://0xword.com/es/libros/233-big-data-tecnologias-para-arquitecturas-data-centric.html
2. ¡Oigo voces! ¿Quién me habla?
● Gonzalo Míguez
– Pito del Sereno en ChicPlace.com (AKA: CTO)
– Anteriormente:
● Forgotten suggestions lead en Pinroom.com
● Ignored modernization evangelist en Budgetplaces.com
● Lead Bug Creator en Motofan.com
● Solo ante el peligro en Infoelder.com
– En twitter: mrzard_dev / En GitHub: mrzard
– He trabajado con Elasticsearch en plan “vamos a probar cosas” 1
año, y más 'seriamente' los últimos 3-4 meses.
3. ¿Qué es Symfony2?
● Me parece que te has equivocado de charla...
● Pero bueno, para resumir.. Es un framework así muy rico,
hecho en PHP, ese lenguaje que todos sabemos que tiene una
API maravillosa y tal.
● Este señor es su Dios:
Fijaos si es majo que os manda un beso.
4. ¿Qué es Elasticsearch?
● En sus propias palabras: Elasticsearch is a powerful open source search and
analytics engine that makes data easy to explore.
● En llano: Elasticsearch es un software que nos ayuda a implementar una
búsqueda full-text potente sin tener que arrancarnos los pelos.
● Creado por Shay Banon en 2010.
● Sobre Apache Lucene (Como Solr)
● Pensado para entornos distribuidos “out-of-the-box”
● API Rest, datos en JSON. Todo se puede hacer con curl.
● Github, Wordpress, Stackoverflow y un montón más lo usan.
● Escrito en Java. Trae su propio servidor Jetty.
● Instalación:
– Sencillísima: sudo dpkg -i elasticsearch.deb
● Por defecto correrá en localhost:9200
5. ¿Qué es Apache Lucene?
● Librería de búsqueda FullText
● Veterana: Primera versión de 1999
● Elasticsearch:
– API
– Distribución
– Expone las funcionalidades de Apache Lucene
6. Conectando Elasticsearch y Symfony2
● Muy fácil gracias al FOSElasticaBundle
● FOSElasticaBundle une Elastica, el cliente de Elasticsearch
para PHP, y Symfony2.
● A tener en cuenta:
- Ahora mismo, nos ata a Elasticsearch 0.90.* :(
8. Ejemplo: Configuración Básica (2)
● Estructura de Elasticsearch:
– index ('db')
● type ('table')
– document ('row')
● field ('column')
● Por defecto, los fields string se analizan con el analyzer
standard.
9. Limitaciones
1) Mapea properties con fields 1-1
✗ No suele ser la solución óptima para búsqueda
2) Comando populate: tira de QueryBuilder de Doctrine
✗ trabaja con las entities enteras (LEEEEENTO)
3) Todos los textos pasarán por el standard analyzer,
✗ No es efectivo para todos los casos
10. Ejemplo: Configuración Básica (3)
● Mapeado de campos:
– Cada field de un type puede ser de un tipo diferente
– Los tipos por defecto de ElasticSearch son:
● String
● Integer / Long
● Float / Double
● Boolean
● Null
11. ¡Pero no es suficiente!¡Necesito MÁS!
● Si el mapeado de tu entity es insuficiente:
– 'nested' types: 'embeben' un subdocumento.
– Ejemplo: El documento 'movie' -> subdocs 'actor'
– 'object' type: Igual que 'nested', pero apoyado en
relaciones de Doctrine
– multi_field:
● Reemplazado por 'fields' en la 1.0
● ¡IDEA!
– integer y string pueden ser arrays de ints o strings
12. Analyzers
● Ejemplos de Analyzers:
– Analyzer: Token
– Elasticsearch → Analyze API!
– Con “Dr. Strangelove or: How I Learned to Stop Worrying
and Love the Bomb
Analyzer Tokens
Simple dr | strangelove | or | how | i | learned | to | stop |
worrying | and | love | the | bomb
Standard dr | strangelove | how | i | learned | stop | worrying | love
| bomb
English dr | strangelov | how | i | learn | stop | worri | love | bomb
Spanish dr | strangelov | or | how | i | learned | to | stop | worrying
| and | love | the | bomb
Keyword “Dr. Strangelove or: How I Learned to Stop Worrying and
Love the Bomb” (1 token)
14. Ejemplo: Búsqueda
● FOSElasticaBundle
– Acceso a índices: 'fos_elastica.index.{index_name}.{type_name}'.
● En el ejemplo: fos_elastica.index.symfony_bcn_example.
(movie|genre|director|actor)
● Queries: Hechas con Elastica.
15. Consideraciones
● Elastica proporciona tipos de queries mucho más complejas
– QueryString: La más potente y configurable (bastante
familiar para los que vienen de Solr)
● FOSElasticaBundle:
– Finder: ElasticaQuery → Entities
● Paginadores (knp_paginator, pagerfanta)
– Listeners (insert, update, delete)
● No está disponible para el driver propel.
16. Limitaciones: Soluciones (1)
● Evitar mapeado 1-1 con la entity:
– provider (para el populate)
– model_to_elastica_transformer (para los listeners).
– Normalmente el mapping 1-1 no es bueno para la
búsqueda
● 'Copia de BD' vs 'Datos para buscar'
17. Limitaciones: Soluciones (2)
● Provider: service que implementa ProviderInterface de
FOSElasticaBundle.
– Queries personalizadas. Mejora de velocidad.
● model_to_elastica_transformer: Service que debe
implementar ModelToElasticaTransformerInterface,
– 'traducirá' nuestra entity a Document de Elastica.
– (Ejemplo: ModelToElasticaAutoTransformer de
FOSElasticaBundle)
18. Limitaciones: Soluciones (3)
● Para no usar siempre el analyzer standard:
– Definir un analyzer por field
– Analyzers nativos de Elasticsearch: Standard, Simple,
Whitespace, Stop, Keyword, Pattern, Language, Snowball y
Custom
– Custom analyzer: permite escoger nuestra combinación
propia de tokenizer + token filter
19. Limitaciones: Más cosas a considerar
● Si usamos el finder:
– elastica_to_model_transformer:
● traduce id's de Elastica a Entities.
● Ejemplo de uso: eager loading de colecciones
asociadas (caso típico: cargar traducciones)
20. Búsqueda: Query vs Filters
● Al buscar, ojo con Query vs Filter.
– Queries
● afectan al 'scoring' de los resultados. (Cómo de bueno
es el match).
● No pueden ser cacheados
– Filters
● Afectan a qué resultados se muestran. (No afecta al
scoring).
● Se pueden cachear
– Para acelerar búsquedas, pasemos a Filters lo que
podamos.
21. Búsqueda: Facets
● Típico conteo de hits por
categoría
● No están afectados por los
Filters, pero se les puede
aplicar sus propios Filters
● OJO AL LÍO: Hay
FacetFilters para los
Facets. No confundir con los
FilterFacets, que es crear
un facet a partir de un filter
● Ejemplo: Dado un director,
contar en cuántas películas
de cada género ha
participado.
22. Percolator
● Es una especie de búsqueda inversa:
– Dado un resultado, ¿qué queries satisface?
● Funcionamiento
– Nombramos nuestras queries, y las registramos en el
percolator
– Cuando un documento haga match con una de las queries
registradas, el percolator nos los dirá.
● Percolator:
– “Hay un nuevo documento que cumple con la condición X”
23. Show me the code!
● Podéis encontrar el código usado en esta presentación en:
– https://github.com/mrzard/symfony2-elasticsearch-example
● Si pedís/tenéis una API key de tMDB - http://www.themoviedb.org/ -
hay un command para cargar 250 películas con sus actores,
directores y géneros.
● Cosas a probar:
– Otros analyzers (o crear los tuyos propios).
– Hacer el típico 'autocomplete' al buscar
– Intentar sacar estadísticas con los facets adecuados
– Crear vuestro propio provider y ver la diferencia en la velocidad
de indexación.
● Happy coding!