frontenderos icon

Podcast

Newsletter

#161 HTTP vs HTTPS

Svelte desde la perspectiva de un Angular developer

HTTP vs HTTPS

The One Where Estelle Dies Episode 15 GIF by Friends

¿Conoces la diferencia entre HTTP y HTTPS? ¿Puedes explicar sus conceptos básicos a personas que no tengan conocimiento técnico? Este es uno de esos temas que, mientras mejor conozcas y mejor puedas explicar, te ayudará no solo a ti, sino a los demás. Después de todo, una Web protegida y segura es una mejor Web.

Svelte desde la perspectiva de un Angular developer

Svelte, es más que una biblioteca para construir Interfaces de Usuario como React, pero tiene menos opciones como framework que Angular, por poner un ejemplo. Por eso que un Angular developer explique las cosas buenas y de su punto de vista tiene mucha validez.

HERRAMIENTA 🛠️ 
ExpressoTS

ExpressoTS, es un framework TypeScript para Server-Side aplicaciones que recuerda mucho a Angular y a NestJS, asó que, si estas son las bibliotecas con las que te encuentras más cómodo desarrollando, échale un vistazo y haz algunos demos.

EL RINCÓN DE CSS 👨‍💻 
Yendo más alla de pixeles y (r)ems en CSS

Primero fue los pixeles y después vinieron las unidades em, rem y parece que hasta ahi llegamos porque estas son las unidades más comunes en CSS. Pero hay muchas unidades para cada propósito, y cada año están saliendo nuevas unidades para esos problemas que las existentes no resuelven. La mejor forma de aprenderlas, es ponerlas a práctica.

INISPIRACIÓN 💡 
Los 60 portafolios más creativos y únicos del 2023

David Bowie GIF

La Web no nació para ser un lienzo, pero eso no impide que utilizando el ingenio, la creatividad y las tecnologías Web, puedas construir algo que refleje tu personalidad y resalte tu portafolio. Y es que, como David Bowie dijo: “El único arte que estudiaré, son las cosas que puedo robar”, entonces tú, como frontendero, deberías estudiar todas las Webs que puedan inspirarte.

LANZAMIENTO 🚀 
HTMX 2.0 ya viene

bug programmer GIF

HTMX 2.0.0-alpha1 ha sido lanzado, y aunque este no se considera listo para producción, ya lo puedes probar para que ayudes a detectar bugs y puedas contribuir al proyecto.

Anunciando TypeScript 5.4 Beta

¿Qué por qué hay constantes lanzamientos de TypeScript que no son cambios de ECMAScript? Es porque en el mundo de los types siempre hay algo nuevo por validar y algo nuevo que evitar que colapse todo tu sistema. Una de las nuevas características a mirar, es la nueva utilería NoInfer que podría ser de mucha utilidad.

NOTICIA 📰 
Gemini 1.5

“Fake it until you make it”, es la frase que se usa mucho en Silicon Valley, pero en el contexto de las herramientas de AI, esto toma todo un nuevo sentido. Gemini 1.5, es mejor que la versión 1.0 que salió en Diciembre pasado en varios benchmarks, y tomando en cuenta que Bard ahora también es Gemini, parece que Google esta comenzando a apostar más seriamente en esta area.

UN DÍA COMO HOY 🗓️ 

El 19 de febrero de 1987, Apple registra el dominio “apple.com”.
Curiosamente la atención de Apple hacia Internet fue un tanto tardía ya que Apple presentó su primer Macintosh en el año 1984 pero no fue hasta (tres años después) que registró su dominio.
En su defensa , Apple estuvo dentro de las primeras 100 empresas que registró su dominio ".com".
El primer dominio registrado en Internet fue fue symbolics.com, el 15 de marzo de 1985.
Con este dominio Internet dio el primer paso para llegar a ser el medio de comunicación global en el que se ha transformado.
Veintinueve años después, la extensión “.com”, dirigida inicialmente a las empresas, se ha convertido en un símbolo mundial del mercado tecnológico y económico.
En marzo de 1986 lo hicieron HP, IBM e Intel, cabe destacar que Microsoft no aparece entre las primeras 100 empresas.

VACANTE 💼 
Developer

Ubicación: Ciudad de México
Empresa: Capgemini
Requisitos: Construcción de APIs y microservicios de acuerdo al diseño provisto. Asegurar que el código cumpla con las ltimas prácticas y estándares del cliente. Construcción y ejecución de pruebas unitarias de integración de manera automatizada. Reporteo continuó del trabajo hacia el delivery de desarrollo. Generación de artefactos alineados al cumplimiento del SDLC. Entre otros.
Beneficios: Ofrecemos una experiencia única de reclutamiento y onboarding, y te ayudamos a construir las bases de tu carrera y habilidades profesionales. Proveemos un ambiente de trabajo colaborativo basado en nuestros 7 valores: Honestidad, Audacia, Confianza, Libertad, Espíritu de Equipo, Modestia y Diversión. Promovemos un ambiente que te permite planear y desarrollar tu carrera.

Si quieres saber más de esta vacante, aquí te dejamos el link. 🤞 

RESULTADO DEL CHALLENGE DE AYER 🧐 
¡Gracias a los que contestaron el challenge de ayer! Aquí te dejamos nuestra respuesta:

function comprimirString(cadena) {
    // Verificar si la cadena está vacía
    if (cadena.length === 0) return cadena;

    let resultado = '';
    let cuentaActual = 1;

    for (let i = 1; i <= cadena.length; i++) {
        // Comparar el carácter actual con el anterior
        if (cadena[i] === cadena[i - 1]) {
            cuentaActual++;
        } else {
            // Agregar el carácter anterior y su cuenta al resultado
            resultado += cadena[i - 1] + cuentaActual;
            cuentaActual = 1; // Reiniciar la cuenta para el nuevo carácter
        }
    }

    // Comparar la longitud del resultado con la cadena original
    return resultado.length < cadena.length ? resultado : cadena;
}

// Ejemplo de uso
console.log(comprimirString("aabcccccaaa")); // Debería retornar "a2b1c5a3"
console.log(comprimirString("abcdef"));      // Debería retornar "abcdef"
  • Inicializamos resultado como una cadena vacía para construir la versión comprimida de la entrada.

  • cuentaActual se inicia en 1 y se utiliza para contar las ocurrencias consecutivas de cada carácter.

  • Usamos un bucle for para iterar a través de la cadena. Comparamos cada carácter con el anterior; si son iguales, incrementamos cuentaActual.

  • Cuando encontramos un carácter diferente o llegamos al final de la cadena, agregamos el carácter anterior y cuentaActual a resultado, y reiniciamos cuentaActual a 1.

  • Al final, comparamos la longitud de resultado con la de la cadena original. Devolvemos resultado si es más corto, de lo contrario, devolvemos la cadena original.

CHALLENGE DE HOY ⚔️ 
Crea una función en JavaScript que calcule la profundidad máxima de anidación en un array anidado.

  1. Implementa una función calcularProfundidadMaxima que acepte un array como argumento.

  2. La función debe retornar un número que represente la profundidad máxima de anidación encontrada en el array.

  3. Considera que un array no anidado tiene una profundidad de 1.

Ejemplo de uso:

console.log(calcularProfundidadMaxima([1, 2, [3, [4, 5]], 6])); // Debería retornar 3
console.log(calcularProfundidadMaxima([1, 2, 3, 4, 5])); // Debería retornar 1
console.log(calcularProfundidadMaxima([[], [[[]]]])); // Debería retornar 3
  • Puedes utilizar un enfoque recursivo para explorar cada elemento del array y calcular su profundidad.

  • Cada vez que encuentres un array dentro del array, considera incrementar la profundidad y llamar a tu función recursivamente para ese array.

Comparte tu respuesta en redes sociales y etiquétanos (@frontenderos), compartiremos nuestra respuesta en el issue de mañana. 😎 

Tu feedback nos ayuda a mejorar

Por favor elige una opción y dinos lo que te gustó y lo que no. Leemos todas las respuestas 👀

¿Qué te pareció el email de hoy?

Iniciar Sesión o Suscríbete para participar en las encuestas.

¡Hasta mañana! 🤟