La comunidad Local-first ha creado una nueva arquitectura para nuestro mundo dominado por la nube. En esta charla, Andrey Sitnik abogará por la arquitectura de primer lugar, profundizará en sus características únicas y proporcionará experiencia de producción en el mundo real.
Esta charla es útil para todos los ingenieros porque contiene varios pasos para mejorar la privacidad. Desde simples primeros pasos sin reescribir la aplicación hasta revisiones profundas utilizando la arquitectura de primer lugar, hay algo para todos.
This talk has been presented at JSNation 2024, check out the latest edition of this JavaScript Conference.
Construyendo Aplicaciones JavaScript y Privacidad: Comprender la importancia de la privacidad en el desarrollo de software y el impacto que puede tener en el mundo. Las preocupaciones de privacidad van más allá de la publicidad dirigida e incluyen fugas y brechas de datos. La conexión de múltiples piezas de datos por parte de los intermediarios de datos plantea una amenaza para la privacidad. El enfoque de primer lugar local permite el almacenamiento de datos en dispositivos locales mientras se utiliza un servidor para la sincronización. Implementar el primer lugar local requiere una buena base de datos y API para el almacenamiento de datos. Principios como el cifrado de extremo a extremo y la protección con contraseña brindan beneficios pero también presentan desafíos. Pasar a análisis centrados en la privacidad, utilizar claves de paso para el cifrado y compartir datos de forma segura son formas de proteger la privacidad del usuario.
Descubramos qué se necesita para construir una aplicación JavaScript con React y por qué debemos preocuparnos por mejorar la privacidad del usuario. El código abierto fue creado en los años 80 para permitir a los usuarios controlar y cambiar cómo funcionan sus dispositivos. La criptografía y la ética del hacking también tienen implicaciones políticas. Como desarrolladores de software, siempre nos hemos guiado por principios, no solo por salarios. Desarrollar software puede tener un impacto significativo en el mundo y los principios importan más que las preguntas materialistas.
Y ahora, descubramos qué se necesita para construir una aplicación JavaScript con React. Hola a todos. Mi nombre es Andrey Sitnik y hoy hablaré sobre por qué y cómo podemos mejorar la privacidad de los usuarios como desarrolladores.
Y sé lo que algunos de ustedes piensan, como, vamos, nadie tiene que preocuparse por la privacidad. Como, deberíamos mantener el code fuera de la política. Así que hablemos de este tema. ¿Quién usa el código abierto? ¿Sabías que el código abierto fue creado en los años 80 no para tener una biblioteca gratuita para usar sin pagar, sino para poder controlar todo lo que funciona en tu dispositivo y poder cambiar cómo funciona? Así que no se trataba de cerveza gratis. Se trataba de ser realmente dueño de tu dispositivo, ser propietario en lugar de ser un usuario. Y para mí es bastante político. Otro ejemplo, como la criptografía. Ahora mismo, todo tiene HTTPS al principio. Y esta S significa seguro encriptado. Y la encriptación fue creada, toda la filosofía detrás de esta encriptación. En los años 90, se creó con la idea de que los protocolos y el software, que no están disponibles en el mercado en este momento, cambiarán el mundo en el que viviremos en el futuro. Y esas personas definitivamente cambiaron el mundo en el que vivimos hoy. O como la ética del hacking. Contiene una regla muy interesante de desconfiar de la autoridad. Y para mí, es bastante político. Así que el desarrollador de software siempre se trató de principios, siempre se trató de principios. Y se trataba de cosas nuevas en las que pensar, salarios, valor del silicio, etc. Porque hace poco, toda la sociedad nos ve como luchadores contra el sistema en lugar de, ya sabes, personas que ayudan al sistema por altos salarios en el valor del silicio. Vale. Pero, ¿por qué debería preocuparme por la política? Primero, porque hoy en día, puedes desarrollar un software que controle la pantalla del software. El software te controlará a ti. Como el software realmente cambia el mundo en el que vivimos en el futuro. Segundo, porque las preguntas materialistas no pueden responder las preguntas más importantes. ¿Por qué? Y es por eso que el salario no puede responderlas.
2. Privacy Matters
Short description:
La privacidad es importante y hay razones para preocuparse por ella. A menudo, las personas descartan la privacidad como algo que solo se trata de publicidad dirigida, pero va más allá de eso. Los intermediarios de datos recopilan información de diversas aplicaciones y la venden a clientes sospechosos. Las filtraciones y violaciones de datos también son comunes, y aunque tu empresa no trabaje con intermediarios de datos, tus datos aún pueden estar expuestos. Un ejemplo real involucra a un servicio de entrega de alimentos que perdió un año de datos, incluida información personal. Aunque algunos argumenten que solo almacenar correos electrónicos no es importante, la privacidad aún debe ser una preocupación.
llenar el vacío en tu alma. Pero los principios sí pueden. Pero hay muchas revoluciones. Puedo decir que solo la privacidad es importante. Entonces, la privacidad no significa que debas preocuparte por todo. Está bien tener simpatía por todo. Pero sabes, elige dos o tres cosas especiales para ti. No hay razones de cómo puedo explicar por qué la privacidad es mejor. Pero puedo explicar mis razones. Mucha gente piensa que la privacidad no es importante porque la privacidad es solo para una mejor publicidad. Ya sabes, Google solo me muestra anuncios mejores. Un intermediario de datos es una empresa que compra datos de muchas, muchas aplicaciones diferentes, los combina y los vende a clientes muy sospechosos. Hace cuatro años, los periodistas encontraron un caso muy espeluznante cuando el intermediario de datos llamado Xmode recopiló datos de la aplicación del Corán, una aplicación de citas musulmana, Craiglist, muchas aplicaciones y los vendió al contratista militar de los Estados Unidos. Es espeluznante y sospechoso, para ser honesto. De acuerdo. Pero como no trabajamos con intermediarios de datos. ¿Por qué debería preocuparme si mi empresa no trabaja con ellos? Sabes, si no vendes los datos, no significa que los datos no estarán disponibles para todos. Existen cosas llamadas filtraciones de datos o violaciones de datos. Es cuando los hackers toman los datos de tus servidores y los venden. Existe una forma, y ahora cada vez más. Y si guardas algún dato en tu servidor, en algún momento se filtrará, en mi opinión. Hay un ejemplo muy interesante. Hace unos años, Yandex Food Deliveries, como el Uber Eats ruso, perdió datos durante todo un año sobre los pedidos. Todo el año de pedidos contenía datos como tu nombre y apellido, dirección de entrega, hora de entrega y número de teléfono. Incluso las personas crearon una aplicación muy buena, una aplicación de mapas, donde puedes buscar fácilmente a alguien en estos datos. Imagina lo que tus familiares podrían encontrar en estos datos. Por ejemplo, ¿qué pasaría si le dijiste a tu abuela que no comerías su pastel porque no tienes hambre? Pero luego ella descubre que solo 30 minutos después pediste comida china. De acuerdo. Pero en mi aplicación, no tenemos datos realmente privados. Ya sabes,
3. Privacidad y intermediarios de datos
Short description:
El principal problema con la privacidad es el big data y la conexión de múltiples piezas de datos por parte de los intermediarios de datos. Google Analytics, utilizado por muchos sitios web, puede rastrear las actividades de los usuarios no solo en el sitio web, sino en todo Internet. Esto representa una amenaza para la privacidad, incluso si algunas personas afirman no tener nada que ocultar. Casos reales han demostrado cómo se pueden utilizar los datos personales de manera indebida, lo que conduce a consecuencias graves como el encarcelamiento y la violación de los derechos humanos. Es crucial estar consciente de los riesgos y tomar medidas para proteger la privacidad.
solo almacenamos correos electrónicos. Así que no es gran cosa. Tampoco es verdad. El principal problema aquí es el data grande. Los intermediarios de datos conectan múltiples piezas pequeñas de data que no son realmente privadas para crear un camino que sea realmente privado. Por ejemplo, alguien usa una aplicación pero no proporciona un nombre, correo electrónico o cualquier otra cosa. La aplicación solo conoce la ubicación para mostrar la dirección. Pero luego hay otra aplicación que el mismo usuario utiliza y que también conoce la ubicación. Y los intermediarios de datos pueden conectar estas ubicaciones y descubrir que este correo electrónico es el correo electrónico de la aplicación de ese usuario. Y luego es muy fácil utilizar alguna filtración y encontrar el nombre real asociado a este correo electrónico. Así que es muy fácil conectar el hecho de que el usuario es musulmán con su nombre real. Hay un caso muy crítico que realmente me preocupa. ¿Quién utiliza Google Analytics en su sitio web? A veces nosotros también. El principal problema aquí es que aproximadamente la mitad de los sitios web utilizan Google Analytics. Y esto significa que no solo Google Analytics sabe lo que los usuarios hacen en tu sitio web. El problema principal es que Google Analytics sabe lo que cada uno de nosotros hace en todo Internet. Conocen la mitad de los caminos, incluso más, porque pueden rastrear los clics y el tráfico. Así que saben el siguiente camino y el camino anterior. En resumen, Google realmente ve todos los lugares a los que vas en Internet. Todo el rastro todos los días. De acuerdo. Pero tú sabes, yo no tengo nada que ocultar. Así que no tengo nada que escuchar, nada que temer. Desafortunadamente, tal vez tú sí. Pero hay personas que tienen algo que ocultar. Por ejemplo, Twitter recopila mucha información personal y un exploit vende los datos al gobierno de Arabia Saudita, y el gobierno utiliza los datos para anonimizar a los usuarios de Twitter y condenar a esta mujer a 34 años de prisión y a un profesor anciano a la pena de muerte. Si Twitter no hubiera recopilado estos datos, estarían libres porque no habría nada que filtrar. Y si no, ya sabes, los casos de Arabia Saudita, en Israel, hay una empresa que vende software de reconocimiento facial a Rusia y luego este software se utiliza para encontrar y encarcelar a personas que protestan contra la guerra. Algunos desarrolladores no tienen principios en absoluto. Y no solo, ya sabes, en Rusia, en Arabia Saudita. Incluso en Europa, España este año obligó a ProtonMail a entregarles datos y con esos datos la persona
4. Recopilación de datos y privacidad
Short description:
Y hay personas que ayudan en la manifestación en contra, manifestación a favor de la independencia catalana. El primer paso para mejorar la experiencia en Internet es eliminar las ventanas emergentes de GDPR, que son el resultado de la recopilación excesiva de datos. En su lugar, se puede utilizar una política de privacidad que no requiera el acuerdo del usuario. Las analíticas sin ventanas emergentes aún pueden rastrear el tráfico, los eventos y las campañas. Sin embargo, es importante priorizar la recopilación racional de datos en lugar de una obsesión irracional.
está en la cárcel. Y hay personas que ayudan en la manifestación en contra, manifestación a favor de la independencia catalana. Y no es terrorismo. Esta es solo una manifestación pacífica y ahora mismo la persona está en la cárcel porque ProtonMail guarda algunos data. ¿De acuerdo? ¿Qué podemos hacer? ¿Quién piensa que ahora mismo, con todas estas ventanas emergentes, Internet es un lugar horrible? Con las ventanas emergentes de GDPR, fue una conferencia, ¿verdad? No es que Internet se haya convertido en un lugar horrible. Somos nosotros los que hemos convertido Internet en un lugar horrible. Así que el primer paso que puedes dar es eliminar las ventanas emergentes de GDPR. Lo necesito por la ley. Bruselas me obligó a hacerlo. Pero en realidad no hay ninguna referencia a las ventanas emergentes en el texto de la ley de GDPR. ¿Por qué tenemos ventanas emergentes? Porque tenemos muchos data. Y GDPR nos dice que dejemos de rastrear a los usuarios, pero no podemos dejar de rastrearlos. Por eso castigamos al usuario, lo hacemos difícil. Para evitar este dolor, el usuario aceptará el rastreo. Esta es la idea detrás de cualquier ventana emergente de GDPR. Porque es un patrón oscuro de diseño. Existe una política de privacidad. Esta es una política de privacidad que no necesita que el usuario esté de acuerdo con ella. Luego, al utilizar estas analíticas, no necesitas usar ventanas emergentes. Y cuando el usuario realice algunos pasos, por ejemplo, iniciar sesión, en ese momento mostrarás una casilla de verificación muy pequeña para aceptar o rechazar tu política de privacidad. Esta es una forma mucho mejor. Y las analíticas sin ventanas emergentes aún pueden rastrear, por ejemplo, el tráfico. Pueden rastrear el tráfico, pueden rastrear eventos y, por supuesto, pueden rastrear campañas desde el clic hasta, por ejemplo, el pago. Solo pueden hacer dos cosas. Pueden conectar cada visita a una página con el mismo ID de usuario porque esto es rastreo por definición. Y la segunda forma es hacer remarketing cuando conectas la visita a las redes sociales porque hay algunas herramientas. Yo uso Plausible, pero todas son bastante buenas. Pero, por ejemplo, Google, si quieres hacer una imagen. Pero ¿qué pasa si Google, qué pasa si mi gerente de marketing me obliga a usar Google Analytics? Sabes, el problema principal es que a veces es una obsesión irracional recopilar
5. Desafíos en la Recopilación de Datos
Short description:
La mitad de los usuarios rechazan la ventana emergente de Google Analytics, lo que lleva a una recopilación incompleta de datos. La confianza en las decisiones basadas en datos privados se ve comprometida debido a la naturaleza no uniforme de los datos recopilados. Es mejor tener datos uniformes con menos elementos. Las regulaciones de privacidad se extienden a nivel global, no solo a los usuarios europeos. La comunidad tiene el poder de cambiar la industria para mejor. Reduzca los procesadores de datos de privacidad y minimice los riesgos utilizando soluciones autohospedadas y combinando funciones en la misma plataforma. Se recomiendan pasos avanzados para nuevos proyectos o refactorizaciones difíciles. Las preocupaciones de privacidad eran menos frecuentes antes de la proliferación de dispositivos.
el data en lugar del racional. Hay un problema muy grande al usar Google Analytics en este momento. La mitad de los usuarios, rechazan esta ventana emergente, presionan no. Y eso significa que no recopilarás todos los data. Para este usuario, para la mitad de los usuarios, solo recopilarás parte de los data. Y así, para un tipo de usuario, tienes todos los data, para otro, solo tienes parte de los data. Pero estos dos grupos no son aleatorios. Hay una razón por la cual las personas van a un grupo u otro. Y es por eso que no puedes confiar en ninguna decisión basada en los datos privados en esa parte, porque esta parte no es representativa de toda la base de usuarios. No es una estadística uniforme. Y sin uniformidad, no puedes confiar en estos datos. Por lo tanto, es mucho mejor tener datos uniformes con menos elementos, pero podrás confiar más en ellos en lugar de lo que tienes con Google Analytics. Y no puedes mostrar la ventana emergente solo para los usuarios europeos, porque esta ley se aplica en todo el mundo. Es como en todas partes. Y realmente creo que nosotros, como comunidad, deberíamos cambiar la industria porque ya lo hemos hecho antes. ¿Recuerdas cómo matamos a Internet Explorer? ¿Recuerdas la conspiración de los desarrolladores que eliminaron el soporte? Podemos hacerlo de nuevo para hacer de Internet un lugar mejor. Ok. Paso dos. Reduzca los procesadores de datos de privacidad. Esta es una ventana emergente muy popular. Nos preocupamos por la privacidad y luego una lista enorme de empresas que mueven los datos. Cada empresa es un riesgo. Cada empresa podría vender datos o podría haber una filtración. Por eso recomiendo encarecidamente no utilizar CDN públicos para bibliotecas de JavaScript y los formularios. Utiliza soluciones autohospedadas tanto como sea posible y trata de combinar dos funciones en la misma plataforma en lugar de utilizar múltiples plataformas para cada función. Pero este es mi paso favorito. Pero es avanzado. Significa que puedes usarlo solo en nuevos proyectos o en refactorizaciones difíciles. Entonces, ¿qué significa eso? Antes, hace como diez años, solo teníamos una laptop y todos los datos estaban ahí. Y no teníamos
6. Enfoque Local First
Short description:
La aparición de los teléfonos inteligentes ha dado a los usuarios dos dispositivos, laptops y teléfonos, lo que ha llevado a la creación de servidores para recopilar y almacenar datos. Sin embargo, existe un enfoque mejor llamado local first, donde los datos se almacenan en dispositivos locales pero aún se utiliza un servidor para la sincronización. Esto garantiza los beneficios tanto de los métodos antiguos como de los locales. Notion, un software popular, almacena notas en la nube, pero existe una mejor alternativa llamada Obsidian que almacena notas localmente en archivos markdown, permitiendo la sincronización a través de diferentes plataformas en la nube. Esto ejemplifica el concepto de local first.
el problema con la privacidad. Pero luego llegó el iPhone. Y ahora tenemos dos dispositivos. Cada usuario tiene dos dispositivos. Como una laptop y el teléfono. Por eso creamos los servidores. Y comenzamos a recopilar todos los data en los servidores y comenzó a surgir una nueva idea. Pero hay una mejor manera. Se llama local first. La idea de poner todos los data aquí en los dispositivos locales y en el teléfono. Pero aún así, estás utilizando un servidor para sincronizar estos data. Así que tienes todas las características del método antiguo pero todos los beneficios de privacidad del método local. Hay un documento muy bueno sobre la ideología. Recomiendo encarecidamente leerlo. Fue escrito por los creadores de esta idea. Hay siete ideas que definen la idea de local first. Pero usaré un mejor ejemplo. ¿Quién usa Notion? Es un software bastante popular. Pero ellos ponen todas tus notas en la cloud. Hay una herramienta mucho mejor llamada Obsidian. Ellos ponen todas tus notas aquí en tu dispositivo local. No como local, pero las ponen en archivos markdown. Y puedes editarlas con cualquier herramienta. Tienen un servidor para sincronizar tus notas entre una laptop o un teléfono. Pero es opcional. Y puedes usar cualquier cloud para sincronizar estos data. Puedes usar GitHub. Puedes usar iCloud. Cualquier cosa que desees porque esto es solo un
7. Implementando Local First
Short description:
Local first es un espectro que permite una réplica parcial de la base de datos en el dispositivo local. Para implementar esto, se necesita una buena base de datos con rendimiento y un lenguaje de consulta completo. WebAssembly permite el uso de SQLite e incluso Postgres en el navegador. Las API como el sistema de archivos privado y la base de datos del indexador facilitan el almacenamiento de datos. Separar las escrituras y las lecturas, utilizando un registro y un almacenamiento reactivo, garantiza la sincronización de datos. Se requieren dos contraseñas para la autenticación del servidor y el cifrado de extremo a extremo para la seguridad de los datos.
archivo simple. Y este es un buen ejemplo de local first. No todos los local first deben ser así porque local first es un espectro. Puedes hacer solo una réplica parcial de la base de datos en el local first y aún estarás en la familia. Seguiremos amándote. Pero, por supuesto, cuanto más quieras el local first, mejor. Cómo podemos implementar esta forma. Primero, porque pondremos todos los datos en el cliente, necesitamos una muy buena base de datos porque esto es mucha información. Podrían ser 500 megabytes de datos. Así que necesitamos una buena base de datos con buen rendimiento y un lenguaje de consulta completo. Hay una forma con WebAssembly de poner SQLite en el navegador. Incluso hay un proyecto de poner Postgres en el navegador con cualquier extensión. Es un proyecto increíble, pero este está en desarrollo. Luego usaremos nuevas API como el sistema de archivos privado original y crearemos una carpeta para el sitio web y el sitio web podrá escribir en esta carpeta. O podemos usar la base de datos del indexador. La parte divertida es que si pones SQLite en la base de datos del indexador, en Firefox, puedes poner SQLite dentro de la base de datos del indexador. Pero aún es mucho más rápido que solo la base de datos del indexador porque la base de datos del indexador no funciona. Luego necesitarás separar las escrituras y las lecturas. Entonces usarás SQLite solo para inicializar los datos y ponerlos en el almacenamiento reactivo. Pero luego tendrás un registro, una lista de acciones, lo que la gente hizo. Y tu almacenamiento reactivo escuchará esta acción. Y cada vez que quieras cambiar algo en tu UI, no irás a tus componentes React a SQLite. En su lugar, escribirás en el registro. A partir de este registro, SQLite leerá los datos y tu almacenamiento reactivo leerá los datos y actualizará la UI. Necesitamos este registro porque no solo la UI puede cambiar los datos. Los datos pueden cambiar desde las pestañas del navegador desde el servidor. Y esta operación entre las lecturas y las escrituras te ayuda a sincronizar los datos. Luego necesitarás dos contraseñas. Una contraseña para autenticar el servidor. Y la segunda para crear un cifrado de extremo a extremo para cifrar tus datos en el cliente y cifrarlo en el teléfono para que el servidor no pueda leerlo. Pero la parte divertida es que creamos este sistema complejo porque tenemos
8. Beneficios y Desafíos
Short description:
Los principios pueden brindar beneficios como un servidor más simple, no necesidad de un desarrollador backend, oportunidades de inversión temprana, escalabilidad rentable, desarrollo más rápido, componentes más pequeños y fáciles de mantener, mejor rendimiento y manejo fácil de datos. Sin embargo, la migración del lado del cliente y la recuperación de contraseñas pueden ser desafiantes.
principios. Pero a veces los principios pueden brindarte beneficios muy buenos. Primero, tu servidor es muy simple. Solo realiza la sincronización. Y esto significa que no necesitas un desarrollador backend. Segundo, no necesitas un servidor en la etapa de prototipo. Entonces podemos ir al negocio, puedes ir a inversiones mucho antes. Tercero, es muy barato escalar. Porque en el servicio, en las soluciones, más usuarios significa que necesitas más servidores. En el host local, cada cliente aporta su propio poder. Entonces puedes usar el mismo servidor. Como linear, por ejemplo, utilizan un solo servidor muy simple para toda Europa y es suficiente para ellos. Sin datos privados, sin filtraciones. Y la parte divertida, todos los desarrolladores de localhost dicen que les gusta comenzar a escribir más rápido. Porque tus componentes React ahora mismo son una mezcla de código de red y lógica de negocio. Pero con localhost, toda la red estará en un sistema separado llamado Sync Engine. Y tus componentes serán más pequeños. Será mucho más rápido mantenerlos porque solo se tratará de la lógica de negocio. Y rendimiento. Esta es una aplicación de localhost real. Porque todos los datos están en local, es muy fácil trabajar con ellos. Es como latencia cero. Hay muchos frameworks. Este es el mío, por ejemplo. Muchos de ellos son buenos. Pero difíciles. No todos están listos para producción, 100% listos para cada caso. Son muy fáciles de trabajar. Segundo, la migración del lado del cliente puede ser difícil. Y el cifrado de extremo a extremo significa que es muy difícil recuperar la contraseña. Pero, nuevamente, no significa que deba ser
9. Producción y Riesgos de Privacidad
Short description:
Puedes respaldar el cifrado de extremo a extremo. Localhost puede estar listo para producción. Existen diferentes riesgos en diferentes países. En Rusia, las personas prefieren la nube debido a la falta de confianza en los proveedores de internet. Los controles aleatorios de la policía son un problema, lo que ha llevado a la creación de una bifurcación de Telegram para mayor seguridad.
como localhost es un espectro. Puedes ir a cualquier parte. Si puedes respaldar el cifrado de extremo a extremo, está bien si no puedes. Y hay muchos negocios. Por ejemplo, linears. A mucha gente le gusta debido al performance y a este performance debido a localhost. O pitch. Tienen 2 millones de equipos. Tienen 25 millones de usuarios y están en localhost. Entonces localhost puede estar listo para producción. Solo necesita pulirse un poco. Y el último paso, pero muy interesante y corto. Este paso es demasiado grande para un proyecto advanced. Pero es interesante pensar en ello y discutirlo después de la fiesta. Como tenemos diferentes riesgos de privacidad. Pero en Estados Unidos, la gente solo piensa en los riesgos importantes para los ciudadanos de Estados Unidos. Y el problema es que a veces, si trabajas en un riesgo, reduces uno pero aumentas otro. Por ejemplo, si hiciera una aplicación de noticias para Estados Unidos, la gente preferiría usar localhost y solicitar las noticias directamente desde los servidores. Pero en Rusia, sería completamente lo contrario. En Rusia, la gente no confía en el proveedor de internet. Entonces prefieren usar la cloud. Entonces la cloud ocultará lo que están leyendo. Otro problema, los controles aleatorios de la policía. A veces, la policía en Rusia vendrá y te pedirá que les muestres tu Telegram y lo desbloquees. Y si lo desbloqueas, encontrarán algunos canales malos y te enviarán a la cárcel. Y si no lo desbloqueas, te romperán las piernas. Por eso, los ciberpartisanos rusos crearon una bifurcación de Telegram que te permite agregar dos números PIN diferentes. Y si ingresas el segundo número PIN, eliminará automáticamente los canales incorrectos antes de desbloquear el teléfono. Entonces, resumiendo. Encuentra tus principios. No trabajes solo por
QnA
Privacidad de Datos y Protección del Usuario
Short description:
Migrar a la analítica de Kookalist reduce el acceso a datos privados. Vende la privacidad como parte del rendimiento. Se mejora la velocidad de entrega de funciones. Localhost protege contra la observación gubernamental. La solución del segundo PIN proporciona protección adicional al usuario.
en internet. Y hay muchos problemas. Así que, estaremos disponibles el próximo lunes, por favor, migrando a la analítica de Kookalist. Reduces los servicios que tienen acceso a los datos privados. Piensa en el localhost y luego discutamos los problemas de privacidad en otros países en la fiesta posterior. Este es mi contacto. Puedes encontrar todos los enlaces y los nombres de frameworks allí. Publicaré los enlaces a las diapositivas.
Entonces, el primero realmente te brinda un mayor rendimiento en primer lugar también. Si intentas vender esto como una idea a las personas, la privacidad es algo que puedes incluir de manera encubierta rendimiento si lo intentas de esa manera. Mi favorito, la velocidad de entrega de funciones. Muchas personas, como linear, les dicen después de mudarse al gigante de sincronización, es fácil para ellos entregar una función más rápido porque no necesitan perder tiempo en la conexión en red.
Tenemos un par de preguntas. Creo que están apareciendo en la pantalla ahora. Sí. Genial. Ok. Esa fue la primera. Sí. Entonces, la pregunta es, al hacer todos estos pasos, cuando luego, supongo, sincronizas con el servidor, el gobierno tiene acceso al almacenamiento y a nuestros teléfonos móviles. Entonces, ¿cómo prevenimos la observación? Creo que cubriste algunos aspectos de eso. Sí. ¿Cómo evitamos que el gobierno mire? Localhost te protege de que el gobierno acceda al lado del servidor a tu servidor y encuentre los datos en el almacenamiento del servidor porque todo está encriptado. Pueden venir con, como, fuerzas de la ley porque no hay nada que puedas compartir. Por supuesto, pueden abrir tu dispositivo y encontrar algo allí, pero necesitan saber a quién buscar. Y este es el principal problema porque pueden verificar a cada persona en el país, al menos en este momento. Y la tercera forma, hay muchas formas de proteger a los usuarios también. Y muestro eso, como una segunda solución de PIN. Esta es una muy buena solución para este caso. Sí. Es una especie de hackeo genial para proteger las cosas con un
Frameworks and Encrypted Databases
Short description:
Se recomiendan los frameworks Evalue y Logax. También se mencionan Electric Scale y Just. El ponente habla sobre cómo gestionar bases de datos encriptadas con aplicaciones multiusuario.
segundo PIN. Muy triste que no fuera de Telegram oficial. Sí, cierto. Sí. Si lo implementaran, sería aún mejor. Aún mejor. Creo que lo mostraste en la diapositiva en un momento. La persona preguntó, ¿conoces Evalue? ¿Es tu framework también? ¿Cuál era el tuyo? Mi framework se llama Logax. Log y Redux. Lo siento, pero Evalue es un sistema muy agradable. Hablé con el autor hace unas semanas. Sí, es bastante bueno. Para ser honesto, mi favorito es, como, Electric Scale principalmente porque es más flexible. Pero Evalue es bueno. Lo recomiendo mucho, especialmente si se ajusta a tus necesidades. Gran tecnología. Genial. Genial. Sí. Quiero decir, has mostrado muchos logotipos allí, así que hay mucho apoyo para este enfoque local primero de todos modos. Además, hay una buena solución llamada Just. Just. Just. Échale un vistazo. Muy bien. Esta es buena. ¿Cómo gestionas bases de datos encriptadas con aplicaciones multiusuario? Oh. Era una de las diapositivas que necesito eliminar para, como, poner los límites. Así que la solución es una
Implementing Encryption and Data Loss Prevention
Short description:
Implementar la encriptación para aplicaciones multiusuario implica encriptación de clave pública y rotación de claves. Actualmente no existen frameworks para esto, pero se están discutiendo la construcción de chats encriptados. La pérdida de datos se puede prevenir con copias locales y almacenamiento encriptado en el servidor. Las claves de acceso ofrecen una solución de autenticación única con encriptación de contraseña de extremo a extremo.
un poco complicado, pero no es difícil. Es posible implementarlo. Cada usuario necesita tener una clave pública y publicarla en el servidor. Luego, el propietario del documento crea un documento y crea una contraseña. Y esta contraseña, la encriptará con la clave pública de cada usuario y se la enviará a través de, como, mensajes directos encriptados en el servidor. Luego, recibiremos esta clave y la abriremos. Cuando la abres, eliminará a alguien. Necesitas rotar la clave, generar una nueva y enviar la nueva clave a los usuarios antiguos. Por lo tanto, es complicado de implementar, pero aún posible.
¿Existen frameworks para ese tipo de cosas también? No hay frameworks para eso. Es una situación de `Wild Wild West`. Es gratuito, pero es muy fácil implementar algo para volverse famoso. De hecho, vi una charla a principios de este año de un amigo mío, quien, en vivo, construye un chat encriptado, que creo que también hace ese tipo de cosas. Así que podría valer la pena buscarlo si estás interesado en ese tipo de cosas encriptadas multiusuario. Echa un vistazo a su charla sobre la construcción de un chat encriptado. Oh, eso es bueno. ¿Cómo protegemos a los usuarios de la pérdida de data cuando usamos el enfoque local primero y algo malo le sucede al dispositivo? Hay algunas formas. Primero, por supuesto, siempre tienes una copia en tu teléfono. Pero la segunda, el servidor no es solo, ya sabes, también almacena los data. El problema principal es, como, la característica única principal es que estos data son ese registro, del que hablé, pero este registro está encriptado. Por lo tanto, aún tienes los data en la cloud, pero solo tú puedes abrirlo si recuerdas la contraseña. Y este es el problema. Así que soy un gran fanático de las cosas llamadas claves de acceso. La clave de acceso es una nueva forma de, ya sabes, authentication. Y tiene una extensión muy interesante en la que puedes poner un byte aleatorio en la cuenta de la clave de acceso. Y esto
Passkeys and Note Sharing with Notion
Short description:
Las claves de acceso son una excelente manera de garantizar que no se olvide la encriptación. Si bien aún no están completamente listas para producción, la mitad del sistema admite esta extensión. Todos los principales navegadores ahora admiten claves de acceso y se están realizando esfuerzos para mejorar y ampliar su funcionalidad. Los administradores de contraseñas de código abierto como Bitwarden también ofrecen soporte. Pasemos a la siguiente pregunta: compartir notas usando Notion.
Un byte aleatorio podría ser una contraseña de extremo a extremo. Y esto es una muy buena manera de ayudar a las personas a no olvidar la encriptación. ¡Eso es fantástico! Quiero decir, sí, me encantan las claves de acceso. Yo estuve en este escenario el año pasado hablando de ellas, curiosamente. Y su capacidad para, sí, dar a los usuarios algo que es tan difícil de obtener, porque nunca pueden recordarlo. Tiene que ser almacenado. Tiene que estar encriptado en la cloud. Pero yo no sabía que se podía hacer eso con él. Eso es muy genial. Pero aún no está al 100% listo para producción, como de costumbre. Aproximadamente la mitad del sistema admite esta extensión. Pero yo creo que con grupos más pequeños, el soporte crecerá.
Sí. Quiero decir, es lo suficientemente bueno. Es lo suficientemente bueno que todos los navegadores ahora admitan claves de acceso de todos modos. Firefox fue un poco renuente por un tiempo, pero finalmente llegamos allí. Pero ahora tenemos que demostrar el uso y luego llegar a cómo podemos agregar estas extensiones para mejorar aún más las cosas. E incluso hay soporte para administradores de contraseñas de código abierto, como Bitwarden. Sí. Tengo Bitwarden y Firefox peleando por guardar mis claves de acceso en este momento. Increíble. Veamos qué más tenemos.
En realidad, sí, vamos a hacerlo. Sí, funciona. Genial. Siguiente pregunta. Uso Notion para compartir notas entre diferentes dispositivos y mi esposa.
Secure Data Sharing and Convincing Marketing
Short description:
Usando claves públicas, aplicaciones como Obsidian pueden permitir compartir datos de forma segura. Para convencer al marketing de abandonar Google Analytics, pregunte sobre los datos utilizados para la toma de decisiones. Si se recopilan datos pero no se utilizan, se vuelven innecesarios. El cumplimiento de las leyes de privacidad de datos requiere evitar la recopilación de datos no utilizados. El uso de análisis sin cookies garantiza el cumplimiento del GDPR, mejora el rendimiento y protege los datos.
Sí. Creo que también puedo responder a esta pregunta. Esa es una forma con claves públicas, etc. Como Obsidian puede hacer esto. Sí, exacto. Obsidian es una aplicación muy genial. Creo que intentaste responder a la siguiente pregunta también. ¿Cómo convences al marketing de abandonar Google Analytics? Hay muchas razones. También hay otra cosa que no tuve tiempo de incluir en las diapositivas. Haz las preguntas. Como qué data utilizamos el año pasado para tomar decisiones. Porque si recopilas algunos data y no lo utilizas para tomar decisiones, eso es solo obsesión. Sabes, como una persona con mucha basura en su apartamento. Este es el mismo estilo de las obsesiones privadas de data. Si no lo utilizan para tomar decisiones, no lo necesitan. Sí, estoy de acuerdo. De hecho, recuerdo haber asistido a presentaciones internas donde se hablaba de data y se decía que nunca tomes data que no vayas a utilizar. Porque eso va en contra de las leyes de privacidad de datos de varios países. Asegurarse de que no lo estés utilizando. No lo estás utilizando. Aún así no puedes usarlo porque no es uniforme. Correcto. Y una vez que entiendes eso, puedes demostrar que los análisis sin cookies funcionan. Sí, perfecto. Entonces sí. Sin ventanas emergentes del GDPR, mejor performance y datos más seguros. Absolutamente. Genial. Bueno, eso es todo el tiempo que tenemos para preguntas aquí. Gracias por la pregunta. Una pregunta increíble, por cierto. Aplausos nuevamente para Andre. Muchas gracias.
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
This Talk explores React's internal jargon, specifically fiber, which is an internal unit of work for rendering and committing. Fibers facilitate efficient updates to elements and play a crucial role in the reconciliation process. The work loop, complete work, and commit phase are essential steps in the rendering process. Understanding React's internals can help with optimizing code and pull request reviews. React 18 introduces the work loop sync and async functions for concurrent features and prioritization. Fiber brings benefits like async rendering and the ability to discard work-in-progress trees, improving user experience.
For many years, we have migrated all our devtools to Node.js for the sake of simplicity: a common language (JS/TS), a large ecosystem (NPM), and a powerful engine. In the meantime, we moved a lot of computation tasks to the client-side thanks to PWA and JavaScript Hegemony. So we made Webapps for years, developing with awesome reactive frameworks and bundling a lot of dependencies. We progressively moved from our simplicity to complex apps toolchains. We've become the new Java-like ecosystem. It sucks. It's 2021, we've got a lot of new technologies to sustain our Users eXperience. It's time to have a break and rethink our tools rather than going faster and faster in the same direction. It's time to redesign the Developer eXperience. It's time for a bundle-free dev environment. It's time to embrace a new frontend building philosophy, still with our lovely JavaScript. Introducing Snowpack, Vite, Astro, and other Bare Modules tools concepts!
Today's Talk discusses building flexible, resilient, and future-proof React components using composition and configuration approaches. The composition approach allows for flexibility without excessive conditional logic by using multiple components and passing props. The context API can be used for variant styling, allowing for appropriate styling and class specification. Adding variants and icons is made easy by consuming the variant context. The composition and configuration approaches can be combined for the best of both worlds.
This Talk introduces the Remix architecture patterns for web applications, with over 50% of participants using Remix professionally. The migration from single page applications to Remix involves step-by-step refactoring and offers flexibility in deployment options. Scalability can be achieved by distributing the database layer and implementing application caching. The backend for frontend pattern simplifies data fetching, and Remix provides real-time capabilities for collaborative features through WebSocket servers and Server-SendEvents.
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Next.js es un marco convincente que facilita muchas tareas al proporcionar muchas soluciones listas para usar. Pero tan pronto como nuestra aplicación necesita escalar, es esencial mantener un alto rendimiento sin comprometer el mantenimiento y los costos del servidor. En este masterclass, veremos cómo analizar el rendimiento de Next.js, el uso de recursos, cómo escalarlo y cómo tomar las decisiones correctas al escribir la arquitectura de la aplicación.
Comments