¡Hola! Soy Julian
Web Developer, contador de historias y entusiasta de la fotografía. Bienvenido/as a mi blog. Siga sumercé
jueves, 16 de enero de 2025
[Story] La arepa de huevo en la vitrina
Las arepas de huevo son diferentes: la masa de maíz amarillo crocante y gruesa, y por dentro, pollo desmechado que se combina con el huevo para hacer un relleno muy sabroso. Se siente la grasa, que aparenta ser reciente y no parecería provenir de los aceites de las arepas de huevo de hace quince días; el pollo junto al huevo hacen una perfecta combinación de sabores.
La pequeña vitrina, a diferencia de otras que vienen acompañadas de un pequeño vigilante volador negro, por suerte la vitrina protagonista no cuenta con este diminuto insecto; de lo contrario, nunca se escribiría ninguna historia sobre ella y su contenido. En ocasiones, mientras camino por la calle, veo otras vitrinas que sí cuentan con la presencia de aquellos insectos negros, algunas veces encima de algún pan, otras sobre alguna empanada, y también sobre alguna que otra morcilla negra mientras se ahúma. Por suerte, mi vecina no cuenta con la desagradable compañía de aquel animal de alas redondas, lo que provoca en mí esa sensación de pulcritud, y más cuando la señora que me atiende lleva puesto su delantal blanco y visualmente limpio.
Un día más, las arepas de huevo están ausentes de la vitrina. Por alguna razón, es la comida más popular del lugar; no sé por qué se vendería más una arepa de huevo que una papa rellena. Quizás sea una particularidad del sector donde abunda el alcohol; la sequía, el mareo y el hambre de comer algo con grasa y delicioso de aquellos personajes deambulantes nocturnos hace que ruja alguna que otra tripa.
La noche se desarrolla; al ojo de buen cubero, habrá unas tres arepas de huevo restantes. No durarán mucho, pues alguna tripa rugiente hará que su huésped vaya, sin dudarlo, a comprar una de esas preparaciones de maíz crujiente.
[Sueño] El mundo virtual a través de un monitor 4D
Hoy 26 de noviembre de 2024 tuve un sueño muy extraño pero interesante. El sueño arrancó en primera persona, no es tan común este tipo de sueños en mí porque suelo estar en ellos en una forma omnisciente, donde puedo estar viendo todos los sucesos del sueño desde arriba o algún lado sin que nadie sepa de mi existencia, ni siquiera me contaría como un ser orgánico, la sensación que tengo en esa forma es inmaterial y quizás la palabra “astral” aplique aquí. Luego están los otros sueños, donde puedo estar en primera persona, donde experimento todo de primera mano, dolor, susto, felicidad, etc. No solo emociones, sino sentir a través de mis sentidos físicos como tacto y la presión que hago sobre los objetos que toco.
Aparecí de repente en una feria de tecnología, fue como abrir los ojos y estar rodeado de gente en un lugar donde se encontraban varios productos tecnológicos en exhibición. Di unos pocos pasos y me he topado con un expositor al que le hablé en un mal inglés porque se me trabó la lengua, él de alguna forma supo que hablaba español (quizás por mi acento) por lo que me respondió en este idioma. Me invitó a probar una demo que tenía en su stand de exposición, que inicialmente era muy simple: una computadora portátil sobre una mesa. La computadora no era como las de Apple, delgadas y diseño afinado, esta era diferente porque era todo lo contrario: gruesa y rústica. Así como las computadoras todoterreno que usan los militares en las películas (seguramente de aquí mi mente inconsciente tomo la referencia).
Me acerqué a la computadora y observé su pantalla. Mostraba lo que parecía ser un edificio en 3 dimensiones, representado solo por sus aristas y terminaciones, sin detalles adicionales ni objetos cotidianos. El expositor intervino para mostrarme más y comenzó a navegar por el mundo tridimensional como si fuera un videojuego, usando un periférico externo. Luego tomó un objeto de la mesa junto al computador: una cajita negra rectangular del tamaño de dos palmas de mano. Me recordaba a esas cajas donde vienen las gafas de sol nuevas, aunque no creo que contuviera unas gafas. En realidad, su contenido no era lo importante, sino lo que el expositor estaba a punto de hacer con ella...
Tomó la cajita negra y la introdujo en la pantalla de la computadora. Fue algo extraordinario, pues jamás había visto un objeto físico atravesar una pantalla digital como si fuera un portal. El expositor metió toda su mano, traspasando la pantalla mientras manipulaba la caja dentro del mundo virtual. La caja quedó ubicada dentro del edificio que, aunque inicialmente parecía ser solo un modelo tridimensional, resultó ser una representación de un edificio físico real que podía explorarse a través de la pantalla.
En este punto, el expositor retiró su mano de la pantalla, dejando la cajita negra del otro lado. La caja había quedado físicamente ubicada en alguna parte del edificio real.
Era mi turno. El expositor me invitó a buscar la caja por mí mismo, introduciendo la mano a través de la pantalla. Sentía cierto temor al intentarlo, consciente de estar probando una tecnología experimental. Me armé de valor y toqué la pantalla suavemente, sin ejercer presión—se sentía como cualquier pantalla normal. El expositor me animó a intentarlo nuevamente, esta vez presionando con más fuerza.
Esta vez, al ejercer más presión, la sensación fue diferente: una fuerte corriente eléctrica y presión en la punta de mis dedos (lo único que había logrado traspasar hasta ese momento). Sentía un leve dolor que bordeaba el umbral de lo tolerable—pensé que si aumentaba tan solo un poco más, se volvería insoportable. Me movía muy lentamente, considerando que era la velocidad más segura para probar esta tecnología. Finalmente, logré introducir toda la mano y desplazarme a través del espacio mostrado en la pantalla. El dolor pasó a segundo plano; mi mente lo procesaba inconscientemente mientras me concentraba en los movimientos de mi mano al otro lado de la pantalla. Después de unos minutos, encontré la caja, la agarré y la saqué de la pantalla.
Aquí el sueño termina.
sábado, 4 de mayo de 2024
miércoles, 8 de noviembre de 2023
Amplitude: Entendiendo los tipos de medición en User Composition
El gráfico Composición de usuarios (User Composition) en Amplitude muestra el desglose de usuarios activos en función de una única propiedad de usuario. Este tipo de graficos en Amplitude proporciona información sobre quiénes son sus usuarios y qué propiedades comparten.
En la secciòn "Measured as" disponemos de 3 opciones para efectuar la medicion de la composicion "Most Recent Value", "All Values" y "Cross Property Values":- Most Recent Value (Valor más reciente):
Este enfoque considera únicamente el valor más reciente de una propiedad para cada usuario.
- El valor se extrae del evento más reciente en el que el usuario participó.
- Cada usuario aparecerá en solo un grupo en función de su valor más reciente.
- Por ejemplo, si estás analizando la propiedad "País" y un usuario cambió su país de residencia, solo se considerará el país más reciente en el gráfico.
- Otro ejemplo, si tienes una propiedad de usuario llamada “Plan de Suscripción” y un usuario cambia de un plan gratuito a uno de pago, el valor más reciente de esa propiedad reflejará el plan de pago. - All Values (Todos los valores):
Aquí se incluyen todos los valores que tus usuarios activos han tenido para la propiedad en cuestión durante el período de análisis.
- Ten en cuenta que el gráfico de User Composition solo incluye usuarios activos, por lo que los valores de propiedades relacionados con eventos inactivos no se tendrán en cuenta.
- Si un usuario ha tenido varios valores para una propiedad a lo largo del tiempo, todos esos valores se considerarán en este enfoque. - Cross Property Values (Valores cruzados de propiedades):
Este enfoque muestra conjuntos de propiedades que los usuarios activos han tenido dentro del rango de tiempo seleccionado.
- Los grupos son mutuamente excluyentes, lo que significa que un usuario solo puede caer en un grupo.
- Por ejemplo, si estás analizando las propiedades "Género" y "Edad", los usuarios se agruparán según combinaciones específicas de género y edad.
viernes, 13 de octubre de 2023
Enmascarar email con Javascript
import { useState } from "react";const email = "my.custom.email@domain.com";const regex = /(\w{3}).*/g;export function App() {const [hide, setHide] = useState(false);const renderEmail = hide? email.replace(regex, "$1********@********"): email;return (<div>{renderEmail}<br /><buttontype="button"onClick={() => {setHide((prev) => !prev);}}>{hide ? "Show email" : "Hide email"}</button></div>);}
Desglose del Regex:
En este código, se utiliza la expresión regular /(\w{3}).*/g para ocultar parte de la dirección de correo electrónico. Desglosemos cada parte:- /: Delimita el inicio y el final de la expresión regular.
- (\w{3}): Captura los primeros tres caracteres de la dirección de correo electrónico y los almacena en el grupo de captura $1.
- .*: Coincide con el resto de la dirección de correo electrónico.
Desventajas y solución:
Aunque esta técnica puede ser efectiva, presenta algunas desventajas:- Dependencia del lado del cliente: Este enfoque depende del código ejecutándose en el lado del cliente, lo que significa que no proporciona una solución integral de seguridad. Recuerda que la seguridad es un tema complejo, y estas soluciones deben usarse con precaución y en combinación con otras medidas de seguridad.
- Limitado a direcciones específicas: Este regex asume que las direcciones de correo electrónico siempre tendrán al menos tres caracteres antes del símbolo '@', lo cual puede no ser cierto en todos los casos. Aquí propongo dinamizar la captura de los elementos con regex de la siguiente manera:
const regex = /(.*)@.*/g;
const renderEmail = hide
? email.replace(regex, (match, group1) => {
const usernameLength = group1.length;
return `${group1.substring(0, usernameLength / 2)}${'*'.repeat(usernameLength / 2)}@${'*'.repeat(6)}`
})
: email;
- Se define una expresión regular (/(.*)@.*/g) que busca una cadena que tenga algún texto antes y después del símbolo '@' en una dirección de correo electrónico.
- Luego, el reemplazo se realiza tomando el texto antes del símbolo '@' y reemplazando la segunda mitad de ese texto con asteriscos. También se reemplaza la parte después del '@' con asteriscos.
[Story] La arepa de huevo en la vitrina
La arepa de huevo, que no solo tiene huevo, sino también pollo, la vende la vecina del frente. Todos los días saca a la vitrina unas cuantas...
-
El gráfico Composición de usuarios ( User Composition ) en Amplitude muestra el desglose de usuarios activos en función de una única propi...
-
¡He conseguido hacer exitosamente pan de yuca, este es mi pan favorito! Me encanta demasiado este pan y tenía que aprender a prepararlo, per...
-
In this post, you'll learn: Use amplitude experiments with React. Create AB tests on any react component. ...