El cáncer de piel es un problema grave en todo el mundo, pero afortunadamente el tratamiento en etapas tempranas puede llevar a la recuperación. JavaScript junto con un modelo de aprendizaje automático puede ayudar a los médicos a aumentar la precisión en la detección de melanoma. Durante la presentación, mostramos cómo utilizar Tensorflow.js, Keras y React Native para construir una solución que pueda reconocer lunares en la piel y detectar si son un melanoma o un lunar benigno. También mostramos los problemas que hemos enfrentado durante el desarrollo. Como resumen, presentamos los pros y los contras de JavaScript utilizado en proyectos de aprendizaje automático.
This talk has been presented at JSNation 2022, check out the latest edition of this JavaScript Conference.
FAQ
Karel Prystalski es un experto en aprendizaje automático con 15 años de experiencia, especialmente en inteligencia artificial aplicada a imágenes médicas y dermatoscopia. Ha publicado artículos sobre análisis de cáncer de piel y ha trabajado en empresas como IBM. Además, fundó una empresa de servicios en 2010 que colabora con empresas Fortune 500.
Karel Prystalski ha desarrollado una aplicación usando JavaScript, específicamente con TensorFlow.js, para análisis de cáncer de piel mediante dispositivos móviles. Esto incluye el uso de un dermatoscopio conectado a un iPhone para capturar imágenes de alta calidad de lunares y analizarlas mediante algoritmos de aprendizaje automático.
Karel ofrece muestras de código y una imagen Docker que contiene JupyterLab y JupyterHub con kernels para JavaScript. También recomienda el uso de un conjunto de datos de aproximadamente 26,000 imágenes de lunares disponibles en ISICarchive.com para investigación y desarrollo de algoritmos.
Karel enfatiza la importancia debido a la alta incidencia de cáncer de piel en grupos de alto riesgo, como personas con piel clara que no se broncea sino que se enrojece. Además, señala que las diversas colaboraciones con empresas de dermatoscopia y el uso de nuevas tecnologías pueden mejorar significativamente la detección temprana y el tratamiento del cáncer de piel.
Karel indica que, a diferencia de hace 15 años cuando el aprendizaje automático no era bien recibido, ahora se ha convertido en una palabra de moda y es ampliamente aceptado y demandado, especialmente después de la pandemia de COVID-19, lo que ha incrementado el interés y la aplicación de la IA en diferentes campos.
JavaScript, siendo popular en el desarrollo de aplicaciones móviles y web, permite a Karel Prystalski crear soluciones accesibles y fáciles de usar para la evaluación de imágenes médicas, como las de cáncer de piel. Utiliza TensorFlow.js para implementar y manejar modelos de aprendizaje automático directamente en dispositivos móviles.
Esta charla discute el uso de JavaScript para combatir el cáncer de piel, con un enfoque en la integración de aprendizaje automático. El orador tiene experiencia en imágenes médicas y ha colaborado con empresas de dermatoscopia para desarrollar hardware. Se utilizan bibliotecas de JavaScript como TensorFlow.js y Pandas.js para la implementación de modelos y el análisis de datos. La charla también aborda la construcción de redes neuronales, el análisis del cáncer de piel utilizando métodos de puntuación y técnicas de procesamiento de imágenes, y la extracción de asimetría en imágenes de piel utilizando Python y JavaScript.
Hola, mi nombre es Karel Prystalski y hoy les contaré más sobre cómo usar JavaScript para combatir el cáncer de piel. Tengo 15 años de experiencia en aprendizaje automático y específicamente en imágenes médicas. Decidí abordar este tema y desarrollar soluciones en esta área debido a la creciente importancia del cáncer de piel, especialmente en países como Alemania, Escandinavia, Estados Unidos y Australia. También me he asociado con empresas de dermatoscopia para desarrollar hardware, como el dermatoscopio, que es utilizado por los dermatólogos. Mi solución combina el dermatoscopio con lentes especiales y luz para capturar imágenes de alta calidad de lunares en la piel.
Hola, mi nombre es Karel Prystalski y hoy les contaré más sobre cómo usar JavaScript para combatir el cáncer de piel. Tengo aproximadamente 15 años de experiencia en aprendizaje automático. Mi formación académica se centra en inteligencia artificial y su aplicación en imágenes médicas y dermatoscopia. Pueden encontrar algunos de mis artículos de investigación sobre este tema en Google Scholar, por ejemplo, aquí tienen uno de los artículos que publiqué hace unos cinco años sobre el análisis de cáncer de piel en imágenes multiespectrales. En ese caso, utilicé Python, pero debido a que JavaScript se ha vuelto cada vez más popular en los últimos años, especialmente en el ámbito del aprendizaje automático, decidí preparar una presentación y una aplicación de solución para el análisis de cáncer de piel. Mi experiencia no solo es científica, también fundé una empresa de servicios en 2010 que trabaja para empresas Fortune 500, desarrollando soluciones de ciencia de datos y aprendizaje automático. Antes de eso, también realicé algunos trabajos comerciales, por ejemplo, en IBM. Como mencioné anteriormente, tengo 15 años de experiencia en aprendizaje automático y específicamente en imágenes médicas. Entonces, ¿por qué decidí abordar este tema y desarrollar soluciones en esta área? Bueno, como pueden ver, no estoy en el grupo de riesgo cuando se trata de cáncer de piel, ya que el grupo de mayor riesgo son las personas rubias con ojos azules, es decir, el fototipo número uno con mayor riesgo de tener cáncer de piel, especialmente si su piel no se broncea al exponerse al sol, sino que tiende a ponerse roja. Además, el riesgo de desarrollar cáncer de piel es alto en este grupo. Cuanto más oscuro sea el tono de piel y cómo reaccione al sol, menor será la probabilidad de desarrollar cáncer de piel. Hay seis fototipos de piel, y yo me encuentro más o menos en el tercer grupo debido a mi color de cabello, color de ojos, etc. Por eso, este problema es especialmente importante en países como Alemania, Escandinavia, los países nórdicos, Estados Unidos y Australia, especialmente en Australia. Además, he establecido colaboraciones con empresas de dermatoscopia, es decir, empresas que desarrollan hardware. Como pueden ver aquí, este es uno de los dispositivos, nuestro dermatoscopio. Es un dispositivo que utilizan los dermatólogos. En este caso, también he utilizado un iPhone en la parte frontal, ya que es una extensión. No es un dermatoscopio típico, que normalmente no viene con un iPhone o cualquier tipo de teléfono móvil. Es un dispositivo independiente. Algunos dermatólogos también utilizan este tipo de estuche de extensión para tomar las imágenes de manera más fácil. Además, es bastante pequeño, por lo que se puede llevar en el bolsillo y visitar a los pacientes para examinar los lunares de esta manera. Así es como se utiliza mi solución, combinada con lentes especiales y luz para obtener la mejor imagen posible del lunar en la piel. En cuanto al conjunto de datos, cualquier modelo de aprendizaje automático debe alimentarse con datos. Cuando comencé mi investigación, solo tenía alrededor de 53 imágenes, lo cual no es suficiente para realizar ninguna investigación. Por eso, me reuní con casi todas las empresas públicas o privadas que se dedican a la dermatología en la ciudad donde vivo, en Cracovia, Polonia. La mayoría de ellas rechazaron
2. Integración de Aprendizaje Automático y JavaScript
Short description:
El aprendizaje automático se ha convertido en una palabra de moda y la emoción en torno a la IA ha aumentado drásticamente. Obtener conjuntos de datos para la investigación se ha vuelto más fácil, lo que permite el desarrollo de algoritmos para diversas enfermedades de la piel. Se pueden descargar muestras de código y una imagen Docker con bibliotecas de JavaScript. La arquitectura implica combinar el aprendizaje automático con JavaScript para construir una aplicación móvil.
para colaborar y realmente construir algunos modelos. Fue en 2007, 2008. La forma en que las personas pensaban sobre el aprendizaje automático era totalmente diferente en comparación con lo que está sucediendo ahora. En realidad, el aprendizaje automático se convirtió en una palabra de moda y todos querían hacer IA. En el pasado, es decir, hace 15 años, cuando mencionaba IA, la mayoría de las personas decían, oh, no, gracias. No estoy interesado. Ahora es totalmente lo contrario. Necesito explicarles a las personas por qué no usar el aprendizaje automático en lugar de realmente usar el aprendizaje automático. Así que cambió drásticamente en la pandemia de COVID, incluso aumentó la emoción por la IA. Cuando me puse en contacto con las empresas, obtuve un conjunto de datos de alrededor de 5,000 imágenes. Ahora puedes descargar fácilmente un conjunto de datos de alrededor de 26,000 imágenes de lunares en la piel. Está disponible en el sitio web ISICarchive.com y puedes usarlo para tu investigación. Ahora es aún más fácil desarrollar algoritmos para encontrar diferentes tipos de enfermedades de la piel, no solo el cáncer, que técnicamente, quiero decir, no es la más popular. Esa es una buena enfermedad cuando se trata de la piel. Así que para todos aquellos que quieran usar mis muestras de código que he preparado para ustedes, siempre pueden descargar mi imagen Docker que contiene un JupyterLab, JupyterHub, junto con algunos kernels para JavaScript también, y también algunas bibliotecas, bibliotecas de JavaScript. Es un poco antiguo porque lo he estado haciendo durante muchos años ya. Es posible que lo actualice pronto, pero aún funciona. Así que puedes usarlo fácilmente con los cuadernos que te mostraré a continuación. Entonces, la arquitectura, cómo comencé a usar realmente el aprendizaje automático, bueno, cómo combiné el aprendizaje automático con JavaScript, debido a este dispositivo, decidí, obviamente, usar una de las soluciones de JavaScript
3. Integración de JavaScript y Despliegue de Modelos
Short description:
Decidí usar JavaScript en lugar de construir una aplicación nativa. Para la parte de aprendizaje automático, utilicé TensorFlow.js porque es la biblioteca más robusta cuando se trata de JavaScript. El modelo se entrena en Python, pero se utiliza con JavaScript. JavaScript se utiliza para cargar, utilizar, volver a entrenar y desplegar el modelo en teléfonos móviles. También se utiliza junto con Kubeflow y servidores de TensorFlow. Hay una aplicación web que se conecta a la aplicación móvil para volver a entrenar y encontrar modelos similares. Existe una biblioteca de JavaScript llamada Pandas.js, que es un fork de la biblioteca original Pandas de Python.
para construir una aplicación móvil porque los dispositivos móviles están cambiando cada año. Como puedes ver, este es un iPhone 6S, bastante antiguo, y probablemente también necesitaré cambiarlo pronto por uno más nuevo. Aún así, puedo tomar fotos de buena calidad con este teléfono porque la calidad está aquí, no aquí, ¿verdad? Así que no está en el teléfono, sino en la lente aquí. Por eso decidí usar JavaScript en lugar de construir una aplicación nativa. Y en el pasado, tuve que usar diferentes tipos de soluciones, comenzando desde Cordova PhoneGap, ahora estoy trabajando en React Native. Y para la parte de aprendizaje automático, utilicé TensorFlow.js, así que podrías decir, okay, ¿por qué TensorFlow.js, y no, no sé, Keras, o incluso Torch, por ejemplo. Bueno, hay una razón por la que uso TensorFlow.js, porque es la biblioteca más robusta cuando se trata de JavaScript, obviamente. Entonces, por qué uso, o por qué elijo JavaScript en este caso, eso no significa exactamente que dije, okay, hagamos todo en JavaScript, y eso no es cierto. Quiero decir, la verdad es que el modelo se entrena en Python, pero se utiliza con JavaScript. Así que uso TensorFlow.js realmente no para el entrenamiento, y para ser honesto, no conozco a nadie que realmente lo haga. Quiero decir, tal vez porque estoy en el campo de la ciencia de datos desde hace mucho tiempo, y conozco a mucha gente en esta área, y ellos principalmente lo hacen en Python, o no sé, tal vez Scala, algunos de ellos, especialmente relacionado con big data. Así que en este caso, en este caso específico, uso JavaScript precisamente por la posibilidad, en realidad, de usar TensorFlow.js para cargar el modelo, utilizar el modelo, volver a entrenar el modelo y usarlo en nuestro teléfono móvil. Así que en producción, se utiliza junto con algunos servidores de Kubeflow y TensorFlow. Hay dos modelos, uno que ves a la izquierda. En realidad, puedes combinarlo con la aplicación principal. Y así es como lo hice aquí en el teléfono. Pero en realidad, en muchos casos, también causó que el servicio que intenta encontrar modelos similares, visiones similares. Y en realidad es una aplicación web. Así que la aplicación se conecta a la aplicación web y también la utiliza para volver a entrenar. ¿Cómo se ve? Permíteme mostrar brevemente algunos ejemplos. Aquí vamos. Aquí vamos. Eso es parcialmente, también lo hice en el pasado para otra conferencia en Hockey para Nukraine. Solo usaré parte del cuaderno. Puedes encontrarlo fácilmente en mi cuenta de GitHub o en la cuenta de GitHub de mi empresa. Y algunos repositorios que son sobre aprendizaje automático, IA y JavaScript. Cuando comienzas a hacer cualquier tipo de investigación relacionada con datos, cuando lo haces en Python, probablemente uses la primera biblioteca en la que piensas es Pandas. Y hay un fork de esta biblioteca en JavaScript. JavaScript se llama Pandas.js, obviamente. Hasta cierto punto, es muy similar a Pandas, al original de Python.
4. Bibliotecas de JavaScript y TensorFlow
Short description:
Muchas de las características avanzadas de Pandas original aún no se han implementado en JavaScript. Sin embargo, existen varias otras bibliotecas disponibles para el análisis y manipulación de datos, como DataFrame.js, Reclaim y DataForge. JavaScript también ofrece mejores bibliotecas de visualización en comparación con Python, incluyendo MATLAB y Seaborn. En cuanto al aprendizaje automático, Scikit-Learn es la elección popular en Python, pero en JavaScript no existe una biblioteca completa como Scikit-Learn. Por otro lado, TensorFlow proporciona una implementación sencilla de regresión lineal y ofrece varias APIs en diferentes lenguajes de programación.
Pero en realidad, es bastante limitado en comparación con el Pandas original. Aún así, muchas, muchas características aún no se han implementado. Por lo tanto, hasta cierto punto, puedes usarlo en JavaScript. Pero aún faltan muchas, muchas características avanzadas del Pandas original, especialmente aquellas que son simplemente estadísticas.
Otra biblioteca que puedes encontrar o usar en JavaScript para el análisis o manipulación de datos es DataFrame.js, Reclaim, DataForge, y otras más. Por lo tanto, hay muchas bibliotecas de este tipo para usar. Estos son solo algunos ejemplos de cómo trabajar con series, cómo usar DataFrames. Esto es algo normal para las personas que trabajan con datos, probablemente para ingenieros de JavaScript, no tan típico, pero aún fácil de manipular, fácil de exportar a JSON, por ejemplo. Y esto es solo un cuaderno sobre cómo usarlo, solo para mostrar algunos ejemplos. En cuanto a la visualización, en mi opinión, JavaScript hace un mejor trabajo que Python. Obviamente, hay algunas bibliotecas como MATLAB, Seaborn y otras en Python, cuando las comparas con las que están disponibles en JavaScript. Creo que aquí, JavaScript tiene una gran ventaja porque hay buenas bibliotecas para visualización e impresión de gráficos. Pero creo que en muchos casos, simplemente hacen un mejor trabajo que las de Python. Así que eso es bueno. Entonces, uno, uno, digamos. Y luego, en cuanto a Scikit-Learn, la biblioteca más popular para el aprendizaje automático con métodos superficiales. Entonces, TensorFlow, quiero decir, eso es para construir redes neuronales, pero en realidad Scikit-Learn se trata más de los métodos superficiales. En realidad, en la mayoría de los casos, cuando se trata de aprendizaje automático, se pueden resolver o deberían resolverse utilizando métodos superficiales. Entonces, Scikit-Learn, esa es la primera biblioteca que usaremos y es fácil de usar en Python. En JavaScript, tienes JS.kit.learn y Scikit-Learn como un fork de Scikit-Learn, pero no se ha actualizado en los últimos años. Parece que alguien comenzó algo, pero luego dejó de mantenerlo y desapareció. Quiero decir, no es realmente una buena biblioteca para usar aquí. Hay muchas bibliotecas que implementan algún método superficial específico, como SVM, KNN, y así sucesivamente. Pero en realidad, si quieres tenerlo en un solo lugar como en Python, no tienes una biblioteca así en JavaScript, desafortunadamente. Entonces, en cuanto a TensorFlow, aquí tienes un ejemplo muy sencillo de cómo puedes construir una regresión lineal. Aquí hay algunos ejemplos de cómo importar, cómo usar, cómo implementar una regresión lineal. Y aquí hay un ejemplo, también hay una imagen de la documentación de TensorFlow.js. Tienes muchos tipos de APIs. La más popular está escrita en Python, pero en realidad el núcleo está escrito en C++, y también hay algunos otros forks como Java, Go, JavaScript, y así sucesivamente. Así que JavaScript no es, quiero decir, no es especial aquí. Es solo otro
5. Construcción de Redes Neuronales y Análisis del Cáncer de Piel
Short description:
Aquí tienes un ejemplo de cómo construir una función de pérdida, combinarla, usarla, importarla y entrenarla. En Python, normalmente usamos cámaras para construir redes neuronales. JavaScript tiene Keras JS, pero no está tan desarrollado como la versión de Python. Cuando se trata de cáncer de piel, los médicos utilizan métodos de puntuación como ABCD y verifican patrones como la asimetría, la nitidez del borde y el número de colores. El uso de diferentes longitudes de onda de luz, como infrarrojo y UV, puede proporcionar información más detallada. También se pueden utilizar técnicas de procesamiento de imágenes como la binarización y el análisis fractal.
fork para llegar al núcleo de TensorFlow, en realidad. Aquí tienes otro ejemplo de cómo construir una función de pérdida, combinarla, cómo usarla, importarla y entrenarla. Cuando se trata de construir, cuando se trata de redes neuronales, cómo lo hacemos en Python, principalmente lo hacemos con cámaras. No tengo PyTorch. En realidad, puedes combinar fácilmente la red. Quiero decir, construirla a partir de bloques. En realidad, tengo capas. Conecta las capas entre sí y puedes construir fácilmente una red muy grande en poco tiempo. En JavaScript, tienes Keras JS, pero para ser honesto, está muy, muy lejos de la versión desarrollada en Python, desafortunadamente, ¿verdad? De acuerdo. Eso es una cosa. Volvamos a las diapositivas. Cuando se trata del cáncer de piel, como puedes ver aquí, tienes tres imágenes y solo dos de ellas son realmente cánceres. La de la izquierda y la de la derecha. Aquí a la izquierda, puedes ver algunos patrones, quiero decir, los puntos aquí y las rayas. Algunos vasos sanguíneos aquí visibles que todo eso no es muy simétrico. Los bordes son bastante suaves realmente. Aquí a la derecha, tienes este tipo de patrón que se llama el patrón de onda azul. Puedes ver una especie de colores blanco-azul aquí. Significa que en realidad, bueno, está yendo profundo. Quiero decir, el cáncer está yendo más profundo en la piel y tratando de llegar a los vasos sanguíneos. Eso es malo para el paciente, pero también es un patrón que nos dice, oh, eso es realmente malo. Aquí en el medio, tienes un ejemplo de una lesión sospechosa, pero no se ha confirmado que sea cáncer porque todas ellas están confirmadas o no por la patología. Quiero decir, confirmadas si son cáncer o no. Entonces, ¿cómo lo hacen los médicos? Utilizan algún tipo de métodos de puntuación como ABCD, lista de verificación de siete puntos, puntuación de siete puntos, llamada de cazador, lista de verificación de tres puntos, y así sucesivamente. Entonces, utilizan algunos paneles, como la asimetría, la nitidez del borde, el número de colores. En ABCD tienes seis colores que realmente cuentan, y verifican cuántos colores hay. Cuando los combinas, quiero decir, anotas uno por uno cuántos patrones diferentes están disponibles, puedes contar fácilmente más de 30 patrones que los médicos, los profesionales pueden encontrar en la imagen, o simplemente, ya sabes, usando el bucle. Directamente. Lo que también puedes hacer, y lo que hice en mi investigación, es utilizar diferentes tipos de longitudes de onda de luz para obtener no solo lo que ves con la luz visible, sino también lo que está más profundo en la piel utilizando, por ejemplo, la luz infrarroja. En realidad, utilicé cuatro longitudes de onda de luz diferentes en total, pero aquí puedes ver una con infrarrojo, UV, para obtener la melanina, ¿verdad? Los vasos sanguíneos más visibles, y así es como puedes realizar una mejor investigación, porque tenemos más detalles, más información. Oh, lo que también puedes hacer, también puedes realizar algún procesamiento de imágenes, como la binarización en este caso, ¿verdad?, para descubrir, oh, este borde aquí no es suave, ¿verdad? Puedes, por ejemplo, utilizar métodos fractales para
6. Extracción de Asimetría en Imágenes de Piel
Short description:
En esta demostración, te mostraré un ejemplo de cómo extraer la asimetría en imágenes de piel utilizando Python y JavaScript. Al dividir la imagen en regiones y calcular la simetría de los lados opuestos de los bloques, podemos contar fácilmente la asimetría. Sin embargo, algunos patrones requieren modelos más sofisticados basados en redes neuronales.
analizar eso. Muy bien, la demostración, otra más, porque me gustaría mostrarte también cómo puedes usar eso, cómo puedes, qué tipo de, qué tipo de métodos puedes usar. Realmente, aquí tienes uno de los ejemplos que puedes encontrar más en realidad, yendo a mi, yendo a mi repositorio de GitHub, aquí tienes una forma de cómo extraer la asimetría, en realidad extraer la región aquí, en primer lugar, ¿verdad? Así que podríamos tomar esta parte, esta región. Aquí uso el ISIC como puedes ver allí y luego, ese es el siguiente paso, calcular, en este caso puedo ver que es Python, porque he desarrollado, desarrollar el moderno Python, que en realidad exporté a JavaScript, para ser utilizado en JavaScript, y aquí puedes dividir la imagen en algunas regiones y calcular la simetría de los lados opuestos de los bloques. Así es como cuentas fácilmente la asimetría. Y así es como puedes hacerlo en muchos paneles, quiero decir, hacer algún procesamiento básico de imágenes, nos permite descubrir algunos de los patrones. Algunos de ellos en realidad son más difíciles, necesitas construir modelos sofisticados basados en redes neuronales. No dudes en obtener más información al respecto. Pero lo que es importante, porque mencioné las redes neuronales y también los modelos superficiales, para darte una mejor comprensión, aquí tienes, porque tenemos las batallas de caja negra y caja blanca, así que las cajas negras son las redes neuronales, en la mayoría de los casos puedes ver aquí una red muy corta con tres capas aquí. Se entrena fácilmente con una precisión del 98%, muy alta. Pero si realmente dibujas los pesos, puedes ver, quiero decir, los pesos impresos de solo una capa, se ve así. Así que si intentas explicarlo, es muy difícil, incluso imposible, explicar cada uno de estos números, qué significa. Así que hay algunos métodos explicables, para explicar los números, en los pesos, en la red neuronal, pero es más complejo. Cuando se trata de métodos superficiales, especie de caja blanca, es fácil de interpretar, fácil de explicar, porque como puedes ver aquí, este es un árbol de decisión. De todos modos, si no sabes qué es un índice GINI, si no sabes qué es X2, una característica, pero si no sabes eso, solo mirando este simple gráfico, este simple árbol, puedes convertirlo fácilmente en un conjunto de declaraciones if que es fácilmente comprensible para cualquiera, especialmente para ingenieros de software. Volviendo a las diapositivas. Nuevamente, debido a las limitaciones, encuentra más ejemplos en el repositorio de GitHub. Así es como se veía el primer ejemplo, la primera aplicación, así que verificamos. Quiero decir, el algoritmo verificó automáticamente. Aquí tienes el ABC, puntuando eso y tomando una foto y descubrimos que el algoritmo fue capaz de encontrar los patrones específicos. Entonces, ¿cuáles son las ventajas de usar JavaScript para el análisis del cáncer de piel o en general para el aprendizaje automático? Se puede usar fácilmente para prototipos y también para teléfonos móviles, ¿verdad? Especialmente funciona con todos o la mayoría de ellos. Tienes una enorme comunidad de JavaScript, que realmente puede brindar soporte en el aprendizaje de JavaScript. De hecho, el nivel de entrada a JavaScript es bastante bajo, así que no es gran cosa. Y también lo que se puede hacer, en realidad, si tu aplicación también se puede usar con una cámara en tu computadora portátil, entonces puedes convertirla fácilmente en una aplicación web también. ¿Qué no es tan bueno? Bueno, realmente no hay soporte de envoltura de aprendizaje automático cuando se trata de JavaScript, por lo que la mayoría de eso aún se basa en el Python robótico, principalmente soluciones de Python cuando se trata de envoltorios. Quiero decir, aquí, Kubeflow, obviamente tienes las soluciones en la nube como en AWS, Google Cloud, Azure que realmente proporcionan algunas herramientas de envoltura, pero cuando se trata de JavaScript, aún está limitado. Cuando se trata de la comunidad, una gran comunidad, pero aún no tan grande cuando se trata de temas relacionados con el aprendizaje automático y muchas, muchas bibliotecas. Quiero decir, los chistes sobre las bibliotecas de JavaScript que cada semana aparece una nueva biblioteca de JavaScript y técnicamente podemos usar esta biblioteca. Puedes verlo en realidad en JavaScript muy bien cuando se trata de aprendizaje automático porque si escribes aprendizaje automático, encontrarás más bibliotecas de aprendizaje automático en JavaScript que en Python. Pero la cosa es que, aunque hay más bibliotecas en JavaScript, hay menos bibliotecas robustas que realmente se pueden usar en producción en JavaScript en comparación con Python o R o Scala o Java y probablemente algunos otros lenguajes más. Gracias por la atención, espero que no tengas cáncer de piel y que todos estén sanos. En cualquier caso, encuentra algunos de los cuadernos con ejemplos en mi repositorio de GitHub. Gracias.
Learn how to build brain-controlled interfaces using JavaScript and brain sensors. Understand the functions of different parts of the brain and how they relate to sensor placement. Explore examples of calm and focus detection, as well as the Kinesis API for mental commands. Discover the applications of brain-controlled interfaces, such as scrolling web pages and password-less authentication. Understand the limits and opportunities of brain control and the potential for using brain sensors in medical applications.
ChirpX is a technology to securely run binary code in the browser, written in C++ and compiled to JavaScript WebAssembly. It can run a full virtualized system in the browser, including Bash and other languages like Python and JavaScript. ChirpX aims for scalability and the ability to work with large code bases, supporting multiprocessing and multithreading. It uses a two-tiered execution engine with an interpreter and a JIT engine. Future plans include running the full X.Org server in the browser and implementing the Windows system call. WebVM, the underlying technology, has a virtual file system backed by Cloudflare.
TensorFlow.js enables machine learning in the browser and beyond, with features like face mesh, body segmentation, and pose estimation. It offers JavaScript prototyping and transfer learning capabilities, as well as the ability to recognize custom objects using the Image Project feature. TensorFlow.js can be used with Cloud AutoML for training custom vision models and provides performance benefits in both JavaScript and Python development. It offers interactivity, reach, scale, and performance, and encourages community engagement and collaboration between the JavaScript and machine learning communities.
This Talk discusses Rack Native at Microsoft and the efforts to improve code integration, developer experience, and leadership goals. The goal is to extend Rack Native to any app, utilize web code, and increase developer velocity. Implementing web APIs for React Native is being explored, as well as collaboration with Meta. The ultimate aim is to make web code into universal code and enable developers to write code once and have it work on all platforms.
React Server Components (RSC) offer a more accessible approach within the React model, addressing challenges like big initial bundle size and unnecessary data over the network. RSC can benefit React Native development by adding a new server layer and enabling faster requests. They also allow for faster publishing of changes in mobile apps and can be integrated into federated super apps. However, implementing RSC in mobile apps requires careful consideration of offline-first apps, caching, and Apple's review process.
Presentando FlashList: Construyamos juntos una lista performante en React Native
Top Content
WorkshopFree
3 authors
En esta masterclass aprenderás por qué creamos FlashList en Shopify y cómo puedes usarlo en tu código hoy. Te mostraremos cómo tomar una lista que no es performante en FlatList y hacerla performante usando FlashList con mínimo esfuerzo. Usaremos herramientas como Flipper, nuestro propio código de benchmarking, y te enseñaremos cómo la API de FlashList puede cubrir casos de uso más complejos y aún así mantener un rendimiento de primera categoría.Sabrás:- Breve presentación sobre qué es FlashList, por qué lo construimos, etc.- Migrando de FlatList a FlashList- Enseñando cómo escribir una lista performante- Utilizando las herramientas proporcionadas por la biblioteca FlashList (principalmente el hook useBenchmark)- Usando los plugins de Flipper (gráfico de llamas, nuestro perfilador de listas, perfilador de UI & JS FPS, etc.)- Optimizando el rendimiento de FlashList utilizando props más avanzados como `getType`- 5-6 tareas de muestra donde descubriremos y solucionaremos problemas juntos- Preguntas y respuestas con el equipo de Shopify
A diferencia de las pruebas unitarias, las pruebas de extremo a extremo buscan interactuar con su aplicación tal como lo haría un usuario real. Y como todos sabemos, puede ser bastante desafiante. Especialmente cuando hablamos de aplicaciones móviles. Las pruebas dependen de muchas condiciones y se consideran lentas e inestables. Por otro lado, las pruebas de extremo a extremo pueden dar la mayor confianza de que su aplicación está funcionando. Y si se hace correctamente, puede convertirse en una herramienta increíble para aumentar la velocidad del desarrollador. Detox es un marco de pruebas de extremo a extremo en caja gris para aplicaciones móviles. Desarrollado por Wix para resolver el problema de la lentitud e inestabilidad y utilizado por React Native en sí como su herramienta de pruebas E2E. Únete a mí en esta masterclass para aprender cómo hacer que tus pruebas de extremo a extremo móviles con Detox sean excelentes. Prerrequisitos- iOS/Android: MacOS Catalina o más reciente- Solo Android: Linux- Instalar antes de la masterclass
- Introducción - Cleo & nuestra misión- Lo que queremos construir, cómo encaja en nuestro producto & propósito, revisar los diseños- Comenzando con la configuración del entorno & “hola mundo”- Introducción a la animación de React Native- Paso 1: Hacer girar la rueda al presionar un botón- Paso 2: Arrastrar la rueda para darle velocidad- Paso 3: Agregar fricción a la rueda para frenarla- Paso 4 (extra): Agregar hápticos para una sensación inmersiva
Desplegar aplicaciones React Native manualmente en una máquina local puede ser complejo. Las diferencias entre Android e iOS requieren que los desarrolladores utilicen herramientas y procesos específicos para cada plataforma, incluidos los requisitos de hardware para iOS. Los despliegues manuales también dificultan la gestión de las credenciales de firma, las configuraciones de entorno, el seguimiento de las versiones y la colaboración en equipo. Appflow es la plataforma de DevOps móvil en la nube creada por Ionic. Utilizar un servicio como Appflow para construir aplicaciones React Native no solo proporciona acceso a potentes recursos informáticos, sino que también simplifica el proceso de despliegue al proporcionar un entorno centralizado para gestionar y distribuir tu aplicación en múltiples plataformas. Esto puede ahorrar tiempo y recursos, permitir la colaboración, así como mejorar la confiabilidad y escalabilidad general de una aplicación. En este masterclass, desplegarás una aplicación React Native para su entrega en dispositivos de prueba Android e iOS utilizando Appflow. También aprenderás los pasos para publicar en Google Play y Apple App Stores. No se requiere experiencia previa en el despliegue de aplicaciones nativas, y obtendrás una comprensión más profunda del proceso de despliegue móvil y las mejores prácticas para utilizar una plataforma de DevOps móvil en la nube para enviar rápidamente a gran escala.
Así que has configurado Detox para probar tu aplicación React Native. ¡Buen trabajo! Pero aún no has terminado: todavía hay muchas preguntas que necesitas responder. ¿Cuántas pruebas escribes? ¿Cuándo y dónde las ejecutas? ¿Cómo te aseguras de que hay datos de prueba disponibles? ¿Qué haces con partes de tu aplicación que utilizan APIs móviles que son difíciles de automatizar? Podrías invertir mucho esfuerzo en estas cosas, ¿vale la pena? En esta masterclass de tres horas abordaremos estas preguntas discutiendo cómo integrar Detox en tu flujo de trabajo de desarrollo. Saldrás con las habilidades e información que necesitas para hacer de las pruebas Detox una parte natural y productiva del desarrollo diario. Tabla de contenidos: - Decidir qué probar con Detox vs React Native Testing Library vs pruebas manuales- Configuración de una capa de API falsa para pruebas- Cómo hacer que Detox funcione en CI en GitHub Actions de forma gratuita- Decidir cuánto de tu aplicación probar con Detox: una escala móvil- Integración de Detox en tu flujo de trabajo de desarrollo local Prerrequisitos - Familiaridad con la construcción de aplicaciones con React Native- Experiencia básica con Detox- Configuración de la máquina: un entorno de desarrollo CLI de React Native en funcionamiento que incluye Xcode o Android Studio
Sabemos que React es para la web y React Native es para Android e iOS. Pero ¿has oído hablar de react-native-web? ¡Para escribir una aplicación para Android, iOS y la web en un solo código base! Al igual que React Native abstrae los detalles de iOS y Android, React Native Web también abstrae los detalles del navegador. Esto abre la posibilidad de compartir aún más código entre plataformas. En este masterclass, aprenderás a configurar el esqueleto de una aplicación React Native Web que funcione de manera excelente y se vea increíble. Puedes utilizar el código resultante como base para construir la aplicación que desees, utilizando los paradigmas de React y muchas bibliotecas de JavaScript a las que estás acostumbrado. ¡Te sorprenderá la cantidad de tipos de aplicaciones que realmente no requieren un código base separado para móvil y web! Qué se incluye1. Configuración de navegadores de cajón y de pila con React Navigation, incluyendo la capacidad de respuesta2. Configuración de React Navigation con URLs3. Configuración de React Native Paper, incluyendo el estilo del cajón y los encabezados de React Navigation4. Configuración de un tema de color personalizado que admita el modo oscuro5. Configuración de favicons/iconos de aplicaciones y metadatos6. Qué hacer cuando no puedes o no quieres proporcionar la misma funcionalidad en la web y en el móvil Requisitos previos- Familiaridad con la construcción de aplicaciones con React o React Native. No es necesario conocer ambos.- Configuración de la máquina: Node LTS, Yarn, ser capaz de crear y ejecutar correctamente una nueva aplicación Expo siguiendo las instrucciones en https://docs.expo.dev/get-started/create-a-new-app/
Comments