Computación Cuántica en JavaScript con Q.js

Rate this content
Bookmark

Cualquiera puede aprender computación cuántica! Únete a Stewart Smith mientras describe su proyecto de pasión de código abierto, Q.js. ¿Qué es exactamente una computadora cuántica? ¿Para qué sirve? ¿Y cómo encaja Quantum JavaScript? Si bien esta charla es para cualquier persona curiosa acerca de la computación cuántica, resonará especialmente con programadores, sobrevivientes de álgebra de secundaria y nerds de la música.

26 min
20 Jun, 2022

Video Summary and Transcription

Stuart Smith discute su viaje en realidad virtual y computación cuántica, destacando su trabajo en realidad virtual web y la creación de Quantum JavaScript. Presenta QGS, una plataforma para tutoriales y experimentación cuántica, y explica el concepto de qubits y superposición. Smith también menciona Amazon Bracket, un servicio cuántico que permite la construcción y ejecución de circuitos cuánticos en simuladores o hardware cuántico real.

Available in English

1. Introducción al viaje de realidad virtual de Stuart Smith

Short description:

Hola, soy Stuart Smith. He sido parte de la comunidad de realidad virtual durante bastante tiempo. Me involucré en web VR cuando construir realidad virtual basada en la web significaba pedirle a Brandon Jones de Google compilaciones personalizadas de Chromium. Lanzé Space Rocks, un homenaje personal al clásico Asteroids de Atari de 1979, pero en realidad virtual, por supuesto. También escribí HandyJS para grabar y reconocer poses de manos sobre la marcha. También he trabajado mucho fuera de la realidad virtual. Soy educado como diseñador gráfico y artista. He trabajado como artista comisionado y he tenido obras de arte expuestas en varias galerías y museos. También soy un músico mediocre a terrible de toda la vida.

Algunos de ustedes ya me conocen por mi trabajo diario. He sido parte de la comunidad de realidad virtual community durante bastante tiempo. Especialmente la comunidad de realidad virtual basada en la web.

Me involucré en web VR cuando construir realidad virtual basada en la web significaba pedirle a Brandon Jones de Google compilaciones personalizadas de Chromium. El medio se sentía realmente fresco y emocionante. Y en ese momento, escribí la biblioteca de controladores de realidad virtual para 3JS. Proporcionaba una forma fácil y genérica para que tu aplicación de realidad virtual basada en la web admitiera una variedad de diferentes controladores de mano sin tener que escribir código personalizado para cada uno. Así que en ese momento, eso significaba, ya sabes, los primeros controladores de Vive, los controladores de realidad mixta de Microsoft, Rift Touch, ¿y recuerdas Gear VR? Y todas esas cosas.

En el equipo de Google Data Arts, utilizamos la biblioteca de controladores de realidad virtual para alimentar este video musical de realidad virtual para la banda LCD Sound System. Podías bailar al ritmo de la canción en realidad virtual, y luego una grabación de tu baile se convertiría en parte del propio video. Así que un saludo a nuestros colaboradores y las verdaderas estrellas de ese proyecto, Studio Moniker y Studio Pucky. Búscalos a ambos.

También lancé Space Rocks, un homenaje personal al clásico Asteroids de Atari de 1979, pero en realidad virtual, por supuesto. Tomé mi biblioteca de controladores de realidad virtual y agregué algo que llamé retroalimentación háptica de múltiples canales. Lo que facilitó mucho agregar comandos hápticos complejos a tu aplicación de realidad virtual basada en la web. Por ejemplo, si querías retroceso al disparar tu láser, pero también necesitabas sentir el zumbido de tus motores de plasma acelerando y desacelerando, bueno, mi enfoque de canales hápticos lo hacía muy fácil. Solo unos años después, Oculus mejoró el juego al agregar una API de seguimiento de manos para realidad virtual basada en la web. Inmediatamente escribí HandyJS. Para grabar y reconocer poses de manos sobre la marcha. Así que en lugar de solo gestos de pellizco para seleccionar cosas, con HandyJS podías reconocer fácilmente todo el alfabeto de deletreo de dedos en lenguaje de señas y algo más. Las pistolas de dedo eran lo más divertido, obviamente. Esta biblioteca no requiere ningún machine learning en absoluto. En serio, no hay ninguna red dentro de Handy, es algo de magia de agrupamiento k-means. Y es increíblemente rápido.

He hecho mucho trabajo fuera de la realidad virtual también. Comencé a programar cuando era bastante joven, pero soy educado como diseñador gráfico y artista. No estudié ciencias de la computación. He trabajado como artista comisionado y he tenido obras de arte expuestas en varias galerías y museos. También soy un músico mediocre a terrible de toda la vida.

2. El viaje de Stuart Smith en la computación cuántica

Short description:

Soy el jefe de realidad aumentada para consumidores en Unity, pero estoy aquí para hablar de mi interés apasionado, la computación cuántica. Soy el creador de Quantum JavaScript y el fundador de Open Quantum Club. QGS es un sitio web, repositorio de código fuente, interfaz de composición de circuitos de arrastrar y soltar, simulador de circuitos cuánticos, biblioteca de código, API, introducciones conceptuales y una comunidad creciente de entusiastas. Estoy comenzando OQC, un proyecto que presenta perfiles y entrevistas con personas de la comunidad cuántica. Estén atentos para más información al respecto. La computación cuántica es un tanque cilíndrico suspendido, con diferentes arquitecturas como fotones polarizados, iones atrapados y superconductores.

Y en este momento, soy el jefe de realidad aumentada para consumidores en Unity. Todos conocen Unity, ¿verdad? Nuestro motor de juegos se trata de proporcionar renderizado en 3D en tiempo real para las masas. El 70% de los juegos móviles del mundo se hacen con Unity. Y no solo somos el 70% de los juegos móviles, sino la mitad de todos los juegos. Así que si juegas juegos, seguro has jugado algo hecho con Unity. Pero no estoy aquí para hablar de nada de eso. Estoy aquí para hablar de mi interés apasionado en mis noches y fines de semana, la computación cuántica. Soy el creador y mantenedor de Quantum JavaScript, o QGS para abreviar. Y soy el fundador de Open Quantum Club.

¿Qué es exactamente todo esto? Bueno, profundicemos en QGS por un momento. En realidad, es varias cosas a la vez. Es este sitio web y el repositorio de código fuente correspondiente. Es esta interfaz de composición de circuitos de arrastrar y soltar en particular. Es un simulador de circuitos cuánticos. Por lo tanto, todos los mecanismos internos que te permiten ejecutar simulaciones de circuitos cuánticos directamente en tu teléfono o computadora portátil sin tener hardware cuántico real en tus manos. Es toda esa biblioteca de código y la API correspondiente. Son las introducciones conceptuales que están ahí para ayudarte a familiarizarte rápidamente con cosas cuánticas. Especialmente si eres como yo, sin antecedentes en física real, sin antecedentes cuánticos, solo un programador casual con algo de matemáticas de la escuela secundaria. Resulta que eso es todo lo que necesitas para comenzar a experimentar con estas cosas. También es la documentación de la API de qJS, porque ¿de qué sirve una biblioteca si no sabes cómo usarla? Y cuando juntas todas estas cosas, obtienes una pequeña pero creciente comunidad de entusiastas que también se han enamorado de esta idea ridícula de fusionar lo cuántico y los navegadores web, porque JavaScript ya era lo suficientemente caótico por sí solo. Y para esta comunidad, estoy comenzando algo llamado OQC, Open Quantum Club. Este es un proyecto que estoy iniciando ahora mismo a través de un sitio web que presentará perfiles y entrevistas con personas de la comunidad cuántica. El enfoque especial aquí estará en la humanidad detrás de las matemáticas. ¿Quiénes son las personalidades? ¿Cuáles son nuestras esperanzas y sueños colectivos? Así que estén atentos para más información al respecto a medida que avanzamos hacia 2023.

Y bueno, eso está muy bien, ¿verdad? Pero, ¿qué es exactamente la computación cuántica? ¿Qué es incluso una computadora cuántica? Esto. Esta es una computadora cuántica aquí mismo. Este tanque cilíndrico suspendido que ves. Hay diferentes tipos de arquitecturas de computadoras cuánticas, fotones polarizados, iones atrapados, superconductores. En este momento, las computadoras cuánticas superconductoras, como la que ves aquí, son las más populares.

3. Dentro de la Computadora Cuántica

Short description:

Las computadoras cuánticas superconductoras requieren un frío extremo para funcionar. La computación cuántica real ocurre en un chip diminuto. Una computadora cuántica es como una tarjeta gráfica, calculando gráficos. Empresas como IBM, Rigetti y Google conectan estos monstruos dorados a internet para llevar a cabo tareas de computación cuántica.

Son utilizadas por empresas como IBM, Rigetti y Google. Las computadoras cuánticas superconductoras requieren un frío extremo para funcionar, apenas un poco por encima del cero absoluto. Lo que estamos viendo aquí es en realidad el tanque de refrigeración que contiene las partes de cómputo. Echemos un vistazo dentro de ese tanque.

Aquí vemos a alguien realizando el mantenimiento de las partes que normalmente estarían cubiertas por el tanque de refrigeración durante la operación. Algunos lo llaman el candelabro dorado. Todo este hardware intrincado dentro del tanque de refrigeración se utiliza para enfriar a temperaturas muy bajas y manipular suavemente los pares de electrones. Utilizando la naturaleza cuántica de este entorno interno para representar datos y realizar cálculos en esos datos. Aquí hay una foto glamorosa de un candelabro dorado. Me han dicho que hay un revestimiento de oro real aquí para fines de prevención térmica y corrosión, pero lo que estamos viendo es principalmente aleaciones de cobre. Aún así, es bastante bonito.

La computación cuántica real ocurre aquí mismo, en este diminuto chip. Se encuentra en la parte inferior, la parte más fría del candelabro. Aquí es donde realmente manipulas y mides el estado de tus pares de electrones. Y para ser claro, este hardware no realiza ninguna especie de magia. Nuestro universo ya es cuántico por naturaleza. Nosotros, los humanos, somos simplemente demasiado grandes y nuestro entorno es demasiado ruidoso para poder observar los efectos cuánticos directamente. Es por eso que tenemos que crear hardware realmente intrincado que pueda hacer que estos efectos sean visibles y útiles para nosotros.

De acuerdo, pero es posible que notes que esta supuesta computadora no parece tener un teclado, un mouse o incluso un monitor. Definitivamente es una computadora, pero no en el sentido en que comúnmente usamos esa palabra. Tiene más sentido pensar en una computadora cuántica como una tarjeta gráfica. Si no estás familiarizado con las tarjetas gráficas, aquí tienes una, la insertas en la placa madre de tu computadora y se encarga de todo el renderizado gráfico complejo que tu máquina pueda necesitar hacer. Si te gustan los videojuegos de alta gama, probablemente te hayas preocupado por lo potente que es tu tarjeta gráfica. Ahora, nunca usamos la frase `computadora gráfica`, aunque eso es realmente lo que es. Calcula gráficos.

Entonces, aquí tenemos una situación similar. Una computadora cuántica es realmente un componente de cómputo. En lugar de insertarlo en la placa madre de tu computadora como una tarjeta gráfica, empresas como IBM, Rigetti, Google, etc., conectan estos monstruos dorados a internet y puedes enviarles tareas de computación cuántica para que las lleven a cabo. Ejecutarán tu programa y luego te enviarán los resultados finales. Y este paradigma ha existido desde siempre, ¿verdad? Tal vez lo pienses como computación en la nube o tiempo compartido. Cuando Pixar o Weta están renderizando sus imágenes generadas por computadora para su próxima película de éxito, no las renderizan en una sola computadora en la oficina.

4. Computación Cuántica y QGS

Short description:

De ninguna manera, es demasiado complejo. En cambio, enviarán esa tarea a lo que se llama una granja de renderizado, bastidores y bastidores de hardware informático sin procesar al que se puede acceder de forma remota. A menos que estés en una universidad o una gran corporación, escribirás un programa cuántico directamente en tu computadora portátil o teléfono y lo enviarás por internet para que se ejecute de forma remota en hardware cuántico real. Digamos que este círculo representa la física cuántica. Aquí está todo el conocimiento sobre cómo se comporta realmente el universo. Y aquí está la computación cuántica. Esto es solo matemáticas y lógica. No necesitas saber nada sobre electrones, superconductores o cualquier otra cosa. Entonces, todo ese hardware cuántico que compone una computadora cuántica, en realidad es esta intersección aquí. Es física y ingeniería real al servicio de crear una máquina que pueda realizar cálculos. Y eso es genial. Todo es genial. Pero aquí es donde realmente se encuentra QGS. No soy físico. No soy ingeniero. QGS no es hardware. Es solo software. Entonces, no hay física, solo computación.

De ninguna manera, es demasiado complejo. En cambio, enviarán esa tarea a lo que se llama una granja de renderizado, bastidores y bastidores de hardware informático sin procesar al que se puede acceder de forma remota. Y ese es el modelo comercial para usar computadoras cuánticas hoy en día.

A menos que estés en una universidad o una gran corporación, ya sabes, construyendo este hardware tú mismo, escribirás un programa cuántico directamente en tu computadora portátil o teléfono y lo enviarás por internet para que se ejecute de forma remota en hardware cuántico real como este. Y luego los resultados de esa ejecución cuántica te serán enviados cuando estén listos.

Ahora, acabamos de hablar sobre hardware cuántico, y volveremos a tocar el tema del hardware cuántico en unos minutos. Pero quiero dejar algo claro. Digamos que este círculo representa la física cuántica. Aquí está todo el conocimiento sobre cómo se comporta realmente el universo. Fotones, electrones, localidad, tolerancias, termodinámica, paquetes de luz, y así sucesivamente. Y aquí está la computación cuántica. Esto es solo matemáticas y lógica. No necesitas saber nada sobre electrones, superconductores o cualquier otra cosa. Esto es solo programación de computadoras.

Ahora, esa afirmación puede frustrar a las personas que entienden ambos océanos de conocimiento, pero no necesitas saber cómo funciona la electricidad para crear un sitio web, ¿verdad? Lo mismo ocurre aquí. No necesitas conocer la física en realidad para escribir código. Entonces, todo ese hardware cuántico que compone una computadora cuántica, en realidad es esta intersección aquí. Es física e ingeniería real al servicio de crear una máquina que pueda realizar cálculos. Y eso es genial. Todo es genial. Pero aquí es donde realmente se encuentra QGS. No soy físico. No soy ingeniero. QGS no es hardware. Es solo software. Entonces, no hay física, solo computación. Siendo honestos, mi conocimiento personal se parece más a esto. Charcos aleatorios de conocimiento en lugar de un vasto océano. Pero también esto. Porque los humanos somos criaturas hermosamente desordenadas y sin sentido.

5. Explorando QGS y Quantum JavaScript

Short description:

Aprender es un viaje y todavía estoy al comienzo de mi viaje cuántico. QGS se ha construido hasta ahora sobre estos charcos irregulares de conocimiento. Hablemos de QGS en sí. Es el centro de toda la experiencia cuántica, con tutoriales cuánticos, documentación de API y un espacio de juego para experimentar con circuitos cuánticos. Quantum JavaScript permite construir circuitos interactivos y programar circuitos con JavaScript. Puedes combinar los dos para experimentos más avanzados.

Aprender es un viaje y todavía estoy al comienzo de mi viaje cuántico, creo. Si piensas que esto es emocionante pero te preocupa no ser físico, que no entiendes la mecánica cuántica, todo QGS se ha construido hasta ahora sobre estos charcos irregulares de conocimiento. Estás en buena compañía. Únete a mí en los charcos.

Como dije, volveremos a tocar el tema del hardware en un momento. Pero por ahora, hablemos de QGS en sí. Este es el sitio web de QGS, realmente el centro de toda la experiencia cuántica. Hay tutoriales cuánticos, documentación de API y es un espacio de juego para experimentar con circuitos cuánticos. En la industria se les llama circuitos, así que eso es lo que los llamo aquí. Pero puede ser más útil pensar en ellos como programas, solo código, solo software.

Voy a mostrarles un video de demostración rápido que hice hace un tiempo para mostrar algunas de las características de QGS. Así que mantengan sus ojos pegados al video mientras aprovecho esta oportunidad para tomar un sorbo rápido de agua. Ok, bien. Quantum JavaScript. Comienza con esta interfaz interactiva de construcción de circuitos que se ejecuta directamente en tu navegador web. Y explicaré qué son estas cosas en un momento, pero primero te mostraré cómo funciona en la práctica. Podemos seleccionar todo y desecharlo para empezar de nuevo. También tenemos un botón de deshacer aquí, lo cual es genial, y también un botón de bloqueo para que podamos bloquear nuestro circuito y no podamos arruinarlo, no podemos seleccionar cosas, no podemos desechar cosas, lo cual es aún más útil en una interfaz móvil donde no hay un estado de hover y selección.

Solo estás, estás tocando, tal vez estás tocando un desplazamiento, tal vez estás tocando sin querer, y definitivamente no quieres arruinar un circuito que has compuesto cuidadosamente. Pero en este caso, podemos agregar una compuerta de identidad y tal vez una compuerta X poli y seleccionarlas y combinarlas para hacer una compuerta controlada aquí. Y lo que acabamos de crear aquí es un estado de Bell. E incluso si no entiendes nada de esto, puedes ver los resultados de probabilidad en vivo que se actualizan en tiempo real a medida que hacemos cambios. Así que es genial que puedas arrastrar y soltar cosas juntas. Pero también puedes programar cosas, programar circuitos con JavaScript. Y lo que es aún más que eso es que puedes combinar los dos. Así que si abrimos nuestra consola de JavaScript aquí. Déjame borrarlo. Dice que este circuito es accesible en nuestra consola. Así que probémoslo. Veamos.

6. Explorando la interfaz de circuito de QGS

Short description:

Podemos construir rápidamente un estado de Bell y editar el circuito para obtener una salida real. Podemos agregar compuertas y cambiar entre el código y la interfaz de arrastrar y soltar. Diseñar una interfaz de usuario se trata de hacer las tareas más fáciles y eficientes para nosotros, los seres humanos.

Obtenemos un circuito de vuelta. Hagámoslo un poco más grande. Veamos cómo se ve ese circuito. Podemos obtener un diagrama de él. No es muy interesante cuando tenemos un circuito en blanco. Pero aquí, podemos construir rápidamente ese estado de Bell nuevamente. Y puedes ver, mientras estoy editando el circuito, estamos obteniendo una salida real así de fácil. Y aquí, déjame desplazarme hacia arriba. Así que en realidad podemos ver que este diagrama ASCII se parece mucho a lo que tenemos aquí, ¿verdad? Y eso es bastante genial. Y lo que es aún más genial es que podemos comenzar a hacer cosas como, digamos que queremos agregar una de esas compuertas H. Esa es una compuerta Hadamard, y hablaremos de eso en un segundo. Agreguémoslo al momento tres en el cable tres, lo cual debería ponerlo justo ahí. Veamos si podemos hacer eso. Oh, y ahí está. Así que en realidad podemos saltar hacia atrás y hacia adelante entre el código y la interfaz de arrastrar y soltar. Así que no se trata de simplificar algo, para nada. Con QGS, tienes acceso a este circuito cuántico tanto a través del código como de la interfaz de arrastrar y soltar. Y puedes cambiar fluidamente entre ambos según lo que requiera menos carga cognitiva en ese momento. Digamos que necesito deshacerme de todo aquí en el momento dos. Ciertamente podría codificar eso, o simplemente podría seleccionarlo y desecharlo. Así que solo quiero enfatizar que diseñar una interfaz de usuario y ofrecer imágenes para ver y hacer clic nunca se trata de simplificar algo. Se trata de hacer las tareas más fáciles y eficientes para nosotros, los seres humanos, que lo requerimos. Y ahí está.

7. Introducción a los Conceptos Cuánticos

Short description:

Debatí si debería intentar incluir un curso intensivo sobre conceptos cuánticos en una charla de 20 minutos, pero llevaría aproximadamente una hora. En cambio, les daré un pequeño adelanto y los animaré a visitar el sitio de QGIS y explorar los enlaces y referencias para obtener más información.

Veamos. Ahora debatí si debería o no intentar incluir un curso intensivo sobre conceptos cuánticos en una charla de 20 minutos, pero creo que me llevaría alrededor de una hora explicarles cómodamente todo esto, y se vuelve un poco matemático. Así que en su mayoría los voy a ahorrar, excepto por esto. Quiero darles un pequeño adelanto de lo que está sucediendo aquí, y espero que eso sea lo suficientemente intrigante como para que visiten el sitio de QGIS por su cuenta para obtener más información. Y aún mejor, revisen nuestra lista de enlaces y referencias para que puedan sumergirse directamente en algunas buenas fuentes de materiales por su cuenta.

8. Introducción a los Qubits

Short description:

Los qubits son simplemente un par de números que representan las probabilidades de que un bit sea 0 o 1. Alpha y beta son los dos números que componen un qubit, y su suma siempre debe ser del 100%.

Aquí vamos. Esta es una página real del sitio web de QGIS que describe los qubits y lo que son. Y comienza diciendo que los qubits son simplemente un par de números. Entonces, un bit cuántico, la unidad más pequeña que se utiliza para la computación cuántica, puede representarse mediante un par de números. Ahora, físicamente puedes representar tus qubits utilizando fotones u otra cosa. Pero matemáticamente, son solo dos números. Eso es todo. Podemos llamar a uno alpha y al otro beta. Y lo que hace especial a este par de números es su relación entre sí. Y aquí está. Alpha al cuadrado más beta al cuadrado siempre debe ser igual a 1. Y la razón es porque alpha y beta representan las probabilidades de que un bit sea 0 o 1, encendido o apagado. Y la suma de esas probabilidades siempre debe ser del 100%, ¿verdad? Al final, hay un resultado.

9. Explorando los Qubits y Amazon Bracket

Short description:

Aquí podemos encontrar más información sobre los qubits, incluyendo sus nombres, descripciones detalladas, notación ket y la representación en la esfera de Bloch. La superposición es simplemente un estado donde los resultados tienen una mezcla de probabilidades, no solo sí o no. La biblioteca tiene peculiaridades intencionales, como el uso de un signo de dólar para indicar la mutación del estado. Además, se menciona Amazon Bracket, un servicio cuántico al que se puede acceder a través de un cuaderno Jupyter, que permite construir y ejecutar circuitos cuánticos en simuladores o hardware cuántico real.

Y aquí podemos simplemente desplazarnos hacia abajo. Puedes ver que hay mucha más información aquí, descripciones de por qué los qubits tienen ciertos nombres, descripciones detalladas de por qué algunos se consideran encendidos y otros se consideran apagados, notación ket, todo tipo de cosas que solo estoy pasando por alto aquí. Pero realmente puedes dedicar tu propio tiempo y conocerlos.

Y esto es lo que más me gusta aquí, es la representación en la esfera de Bloch de un qubit. Así que podemos ver este qubit horizontal, que se considera 0 o apagado, y el qubit vertical, que es su inverso. Así que esto se considera encendido. Y también tenemos todos estos otros estados. Podemos girar alrededor del reloj aquí y ver diferentes estados de qubit. Y los qubits son realmente solo matrices y vectores. Y esto tendrá mucho más sentido en contexto cuando veas compuertas y circuitos.

Una cosa que quería mencionar rápidamente antes de pasar a otra cosa es la superposición. Probablemente hayas escuchado algunas cosas como que la superposición significa que dos cosas suceden al mismo tiempo o tal vez ninguna sucede o algo así. La superposición simplemente significa un estado donde la probabilidad de los resultados no es 100% sí o no, es una mezcla, eso es todo. Me gusta desmitificar la superposición porque hay mucha basura científica popular en torno a ella que realmente no se traduce una vez que aprendes las matemáticas.

Otra cosa que quiero mencionar aquí son algunas peculiaridades intencionales de esta biblioteca. Por ejemplo, al usar la sintaxis detallada para hacer cosas con los qubits, notarás que algunos comandos tienen un signo de dólar, por ejemplo, al final. Esto es una señal de advertencia de la API. Si usas el signo de dólar, estás mutando tu estado, estás sobrescribiendo el valor de esa variable. Puedes ver un ejemplo aquí donde se suma gato y perro y es destructivo, ¿verdad? Observa el sufijo del signo de dólar en contraposición a la versión no destructiva que no cambiará el valor de gato. Así que ese es solo un ejemplo de algunas de las cosas divertidas que puedes encontrar mientras exploras.

Y, ah, cierto. Dije que volvería a mencionar el hardware cuántico y aquí está. Tuve la oportunidad de trabajar en Amazon por un tiempo en su división de servicios web y resulta que Amazon estaba trabajando en un servicio cuántico llamado Amazon Bracket. Puedes acceder a Bracket a través de un cuaderno Jupyter preparado. Quizás algunos de ustedes estén familiarizados con Jupyter por hacer machine learning. De todos modos, aquí hay una pequeña demostración video que hice unos meses antes del lanzamiento de Bracket utilizando la interfaz de QGIS para controlarlo. Así que aquí tengo un cuaderno Jupyter con Amazon Bracket cargado lo que significa que puedo usar código Python, Bracket es una biblioteca de Python, y puedo usarlo para construir circuitos cuánticos que luego puedo ejecutar en un simulador en la nube, o puedo ejecutar en hardware cuántico porque Amazon se ha asociado con diferentes proveedores de hardware cuántico. Y así podemos hacer eso, podemos ofrecer eso a nuestros clientes y eso es bastante emocionante. Pero lo que también es emocionante es esto, con solo unas pocas líneas de HTML, realmente dos líneas de HTML, puedo inyectar QJS en este cuaderno Jupyter, ahora está inyectado, y ahora puedo inyectar mi compositor de circuitos cuánticos. Y este compositor, que debería resultar muy familiar, está escribiendo código de Bracket.

10. Ejecutando Circuitos Cuánticos

Short description:

Este es un código Python de Bracket que se puede ejecutar en un simulador o en hardware cuántico real. Demuestra un circuito de lanzamiento de moneda utilizando las compuertas Hadamard y CNOT. La simulación se ha ejecutado 100 veces, con resultados aproximadamente equitativos de 00 y 11.

Este es en realidad un código Python de Bracket, que actualmente está configurado para ejecutarse en el simulador en la cloud para obtener resultados más rápidos. Pero si quisieras, podrías cambiar el dispositivo en el que se está ejecutando, y realmente ejecutar esto en hardware cuántico y obtener resultados cuánticos reales. Así que echa un vistazo. Aquí abajo puedes ver donde dice que nuestro circuito QJS es igual a un nuevo circuito y tiene una compuerta de identidad como marcador de posición. Esto es código de Bracket, y estamos a punto de ver cómo cambia a medida que compongo cosas. Mira eso, mira cómo puso una compuerta Hadamard y creó una compuerta CNOT. Y podemos tomar eso y ejecutarlo. Lo que tenemos aquí es un circuito de lanzamiento de moneda. Y estamos esperando la salida que regrese desde la cloud. Entonces, Hadamard coloca al qubit en un estado de superposición. Y luego esto distribuye esa superposición al qubit en el segundo registro aquí. Y así, nuestras dos posibles resultados son 00 y 11. Y puedes ver, hemos obtenido un resultado del simulador. Se ha ejecutado esa simulación 100 veces, que es un número personalizable. Y ha regresado aproximadamente 54 veces, ha salido 00 y 46 veces, ha salido 11.

11. Usando QJS para Construir y Ejecutar Circuitos Cuánticos

Short description:

Podemos usar la interfaz de arrastrar y soltar de QJS para construir circuitos y obtener informes en tiempo real. Puede generar código de Amazon Bracket para ejecutar en simuladores o hardware cuántico real. QJS permite controlar hardware cuántico real, lo que hace que la computación cuántica sea accesible para todos. Participa en el proyecto y explora los recursos disponibles.

Así que aquí está el trato. Podemos arrastrar y soltar y construir circuitos a nuestro gusto utilizando la interfaz de arrastrar y soltar de QJS. Incluso podemos editar eso y obtener informes en tiempo real en la consola de JavaScript, y está generando código de Amazon Bracket, que podemos ejecutar en un simulador o en hardware cuántico real. Así que eso es bastante genial. Es bastante genial. Eso mismo demuestra que puedes usar QJS para controlar hardware cuántico real. Y para mí, eso es realmente especial.

Muy bien, vamos a terminar. Entonces, amigos, aquí es donde puedo necesitar tu ayuda. QJS es de código abierto. Está en GitHub. ¿Te gusta JavaScript? ¿Te gusta la computación cuántica? Puedes unirte directamente. Y hay problemas abiertos que puedes revisar. Discusiones en curso que podrían necesitar tu voz. Hay mucha documentación y es fácil comenzar. Lo juro. Y hey, si he dicho algo perspicaz o inteligente sobre la computación cuántica, es solo porque estoy canalizando a estas personas aquí mismo. Así que búscalos. Tienen videos, libros, cursos, y más. Y como siempre, MIT OpenCourseWare y las conferencias de Stanford Video son excelentes recursos gratuitos.

Soy Stuart Smith. Esto ha sido Quantum JavaScript. Puedes probarlo ahora mismo en tu navegador web favorito. Simplemente ve a quantumjavascript.app. Desde allí, encontrarás todo, incluido el repositorio de GitHub. Por favor, involúcrate en este proyecto. Quiero hacer que la computación cuántica sea accesible para todos. Vale la pena repetirlo. Quiero hacer que la computación cuántica sea accesible para todos. Así que hagámoslo. ♪ Sí, sí, sí, sí, sí, sí, sí, sí ♪ ♪ Sí, sí, sí, sí, sí, sí, sí, sí, sí ♪

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Scaling Up with Remix and Micro Frontends
Top Content
Do you have a large product built by many teams? Are you struggling to release often? Did your frontend turn into a massive unmaintainable monolith? If, like me, you’ve answered yes to any of those questions, this talk is for you! I’ll show you exactly how you can build a micro frontend architecture with Remix to solve those challenges.
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Full Stack Components
Top Content
Remix is a web framework that gives you the simple mental model of a Multi-Page App (MPA) but the power and capabilities of a Single-Page App (SPA). One of the big challenges of SPAs is network management resulting in a great deal of indirection and buggy code. This is especially noticeable in application state which Remix completely eliminates, but it's also an issue in individual components that communicate with a single-purpose backend endpoint (like a combobox search for example).
In this talk, Kent will demonstrate how Remix enables you to build complex UI components that are connected to a backend in the simplest and most powerful way you've ever seen. Leaving you time to chill with your family or whatever else you do for fun.
JSNation Live 2021JSNation Live 2021
29 min
Making JavaScript on WebAssembly Fast
Top Content
JavaScript in the browser runs many times faster than it did two decades ago. And that happened because the browser vendors spent that time working on intensive performance optimizations in their JavaScript engines.Because of this optimization work, JavaScript is now running in many places besides the browser. But there are still some environments where the JS engines can’t apply those optimizations in the right way to make things fast.We’re working to solve this, beginning a whole new wave of JavaScript optimization work. We’re improving JavaScript performance for entirely different environments, where different rules apply. And this is possible because of WebAssembly. In this talk, I'll explain how this all works and what's coming next.
React Summit 2023React Summit 2023
24 min
Debugging JS
As developers, we spend much of our time debugging apps - often code we didn't even write. Sadly, few developers have ever been taught how to approach debugging - it's something most of us learn through painful experience.  The good news is you _can_ learn how to debug effectively, and there's several key techniques and tools you can use for debugging JS and React apps.
JSNation Live 2021JSNation Live 2021
27 min
Building Brain-controlled Interfaces in JavaScript
Top Content
Neurotechnology is the use of technological tools to understand more about the brain and enable a direct connection with the nervous system. Research in this space is not new, however, its accessibility to JavaScript developers is.Over the past few years, brain sensors have become available to the public, with tooling that makes it possible for web developers to experiment building brain-controlled interfaces.As this technology is evolving and unlocking new opportunities, let's look into one of the latest devices available, how it works, the possibilities it opens up, and how to get started building your first mind-controlled app using JavaScript.

Workshops on related topic

React Day Berlin 2022React Day Berlin 2022
86 min
Using CodeMirror to Build a JavaScript Editor with Linting and AutoComplete
Top Content
WorkshopFree
Using a library might seem easy at first glance, but how do you choose the right library? How do you upgrade an existing one? And how do you wade through the documentation to find what you want?
In this workshop, we’ll discuss all these finer points while going through a general example of building a code editor using CodeMirror in React. All while sharing some of the nuances our team learned about using this library and some problems we encountered.
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Testing Web Applications Using Cypress
WorkshopFree
This workshop will teach you the basics of writing useful end-to-end tests using Cypress Test Runner.
We will cover writing tests, covering every application feature, structuring tests, intercepting network requests, and setting up the backend data.
Anyone who knows JavaScript programming language and has NPM installed would be able to follow along.
Node Congress 2023Node Congress 2023
63 min
0 to Auth in an Hour Using NodeJS SDK
WorkshopFree
Passwordless authentication may seem complex, but it is simple to add it to any app using the right tool.
We will enhance a full-stack JS application (Node.JS backend + React frontend) to authenticate users with OAuth (social login) and One Time Passwords (email), including:- User authentication - Managing user interactions, returning session / refresh JWTs- Session management and validation - Storing the session for subsequent client requests, validating / refreshing sessions
At the end of the workshop, we will also touch on another approach to code authentication using frontend Descope Flows (drag-and-drop workflows), while keeping only session validation in the backend. With this, we will also show how easy it is to enable biometrics and other passwordless authentication methods.
Table of contents- A quick intro to core authentication concepts- Coding- Why passwordless matters
Prerequisites- IDE for your choice- Node 18 or higher
React Summit US 2023React Summit US 2023
96 min
Build a powerful DataGrid in few hours with Ag Grid
WorkshopFree
Does your React app need to efficiently display lots (and lots) of data in a grid? Do your users want to be able to search, sort, filter, and edit data? AG Grid is the best JavaScript grid in the world and is packed with features, highly performant, and extensible. In this workshop, you’ll learn how to get started with AG Grid, how we can enable sorting and filtering of data in the grid, cell rendering, and more. You will walk away from this free 3-hour workshop equipped with the knowledge for implementing AG Grid into your React application.
We all know that rolling our own grid solution is not easy, and let's be honest, is not something that we should be working on. We are focused on building a product and driving forward innovation. In this workshop, you'll see just how easy it is to get started with AG Grid.
Prerequisites: Basic React and JavaScript
Workshop level: Beginner
Node Congress 2023Node Congress 2023
49 min
JavaScript-based full-text search with Orama everywhere
Workshop
In this workshop, we will see how to adopt Orama, a powerful full-text search engine written entirely in JavaScript, to make search available wherever JavaScript runs. We will learn when, how, and why deploying it on a serverless function could be a great idea, and when it would be better to keep it directly on the browser. Forget APIs, complex configurations, etc: Orama will make it easy to integrate search on projects of any scale.
Node Congress 2022Node Congress 2022
128 min
Back to the basics
WorkshopFree
“You’ll never believe where objects come from in JavaScript.”
“These 10 languages are worse than JavaScript in asynchronous programming.”
Let’s explore some aspects of JavaScript that you might take for granted in the clickbaitest nodecongress.com workshop.
To attend this workshop you only need to be able to write and run NodeJS code on your computer. Both junior and senior developers are welcome.
Objects are from Mars, functions are from Venus
Let’s deep-dive into the ins and outs of objects and then zoom out to see modules from a different perspective. How many ways are there to create objects? Are they all that useful? When should you consider using them?
If you’re now thinking “who cares?“, then this workshop is probably for you.
Asynchronous JavaScript: the good? parts
Let’s have an honest conversation.
I mean… why, oh why, do we need to bear with all this BS? My guess is that it depends on perspective too. Let’s first assume a hard truth about it: it could be worse… then maybe we can start seeing the not-so-bad-even-great features of JavaScript regarding non-blocking programs.