Install, build and debug a react native app in WSL2 (Windows Subsystem for Linux) and Ubuntu.
| license: gpl-3.0 | |
| redirect: https://observablehq.com/@d3/projection-transitions |
Cada vez existen más aplicaciones para gestionar claves de doble factor. Hasta hace unos años Google Authenticator era la única posibilidad, y como siempre, tenía sus inconvenientes. Pronto comenzaron a salir alternativas como Authy, que permite sincronizar estas contraseñas de doble factor entre diferentes dispositivos, incluyendo móvil, web y escritorio.
Pero Authy ha caído en el mismo "problema" que tenía Google Authenticator: Ahora no permite exportar las contraseñas. Lo cual impide que puedas decidir utilizar otro autenticador de la competencia.
Si buscas en los foros de Authy cómo exportar las contraseñas a otro autenticador, te recomiendan piadosamente que vayas página por página, a cada servicio que tengas registrado, desactives la autenticación de doble factor, y vuelvas a activarla. Al volver a activarla, el servicio debería darte un nuevo código QR que puedes escanear en ese momento, con todos los autenticadores que quieras.
Yo po
A veces nos interesa ejecutar aplicaciones que tienen interfaz (ventanas) dentro de un contenedor de Docker. Con X11 podemos redirigir la salida visual del contenedor a nuestra máquina host, de forma que podemos abrir esas ventanas en nuestro PC e interactuar con ellas, a pesar de que el proceso se esté ejecutando dentro de un contenedor.
- Instala XQuartz: https://www.xquartz.org/
- Abre XQuartz. En el menú XQuartz, selecciona "Preferencias..."
| class Logger { | |
| constructor() { | |
| this.logs = []; | |
| } | |
| get count() { | |
| return this.logs.length; | |
| } |
No todos los valores aleatorios se obtienen de la misma forma - para código relacionado con la seguridad, necesitas un tipo específico de valores aleatorios.
Resumen rápido, si te da pereza leerlo entero:
- No uses
Math.random(). Hay extremadamente muy pocos casos en los queMath.random()sea la mejor opción. No lo uses, a no ser que leas este artículo completamente, y hayas determinado que sirve para tu caso. - No uses
crypto.getRandomBytesdirectamente. Aunque utiliza CSPRNG, es fácil sesgar el resultado cuando se transforma, haciendo que el resultado sea predecible. - Si quieres generar tokens al azar o API keys: Usa
uuid, específicamente usa el métodouuid.v4(). Evitanode-uuid- no es la misma librería, y no produce valores aleatorios realmente seguros. - Si quieres generar números aleatorios dentro de un rango: Usa
random-number-csprng.
| rabbitmqctl add_user test test | |
| rabbitmqctl set_user_tags test administrator | |
| rabbitmqctl set_permissions -p / test ".*" ".*" ".*" |
Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.
- Follow standard conventions.
- Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
- Boy scout rule. Leave the campground cleaner than you found it.
- Always find root cause. Always look for the root cause of a problem.