#85 Git branches: intuición y realidad

¿Qué es el Largest Contentful Paint?

Git branches: intuición y realidad

¿Sabes utilizar git? ¿Sabes utilizar bien los branches en github? Julia Evans, se preguntó que tan intuitivo es utilizar las ramas y le preguntó a su comunidad qué preguntas tenían al respecto, y luego redactó este fantástico artículo que te puede despejar.

¿Qué es el Largest Contentful Paint?

Largest Contentful Paint (LCP) es una métrica de experiencia de usuario. Es el tiempo que toma entre que el navegador comienza a cargar una página web y el elemento en bloque más grande en esa página, aparece en pantalla. Es útil conocer este concepto por SEO, pero también por accesibilidad y desempeño.

5 razones para elegir Next.js

Next.js, es un excelente framework para construir aplicaciones web.
Aquí hay 5 razones de peso para elegirlo para tu siguiente proyecto.

Como funciona React Hooks

Trabajar con Hooks, es fundamental para trabajar con componentes funcionales de React, en esta guía aprenderás como funcionan y cómo puedes sacarle provecho. Pero el sitio también comprende adicionales guías de cómo funciona React, échales un ojo. 👀 

HERRAMIENTA
ESM CDN

¿Te acuerdas cómo utilizabas CDNs para cargar tus archivos JavaScript antes que todo se tuviese que construir en local, para poder importarlo en tu proyecto? ¿Y, si pudieras importar directamente de un CDN? 🤔 
Eso es lo que promete ESM CDN y la verdad es que nos mola.

is-bun

Este es un pequeño paquete que emula a los legendarios is:even, is:odd y que claramente no necesitas si implementas el hook tu mismo, pero si trabajas con muchos proyectos Bun y Node, entonces te puede ser de utilidad.

INSPIRACIÓN
20 Figma UI kits y Design Systems

¿Eres un frontendero que puede programar cualquier componente, si tiene una guÍa de diseño completa en frente? Entonces puedes invertir en alguno de estos UI Kits y Design Systems para sacar ese proyecto.

Storefront.design

Construir e-commerce storefronts es tarea complicada, se requieren muchas habilidades de UI/UX, accesibilidad y autoría web. En esta galería, puedes explorar e inspirarte para ver tendencias de los mejores sitios de e-commerce ahi afuera.

VACANTE
Sr React/Next.js Developer

Ubicación: Área metropolitana de la Ciudad de México.

Compañía: Encora.inc

Descripción: “Nuestro cliente es una empresa de tecnología musical que permite la accesibilidad a la música de baile electrónica y en formato abierto y toda la cultura que la rodea. Hemos creado la tienda de música electrónica seleccionada más grande del mundo, que contiene millones de pistas que satisfacen los gustos de más de un millón de usuarios semanales y DJ de todo el mundo.”

Requisitos: Más de 5 años de experiencia en desarrollo de software. Más de 3 años de experiencia y competencia demostrable con React y Next.js, Node.js y bibliotecas de JavaScript comúnmente relacionadas Más de 3 años de experiencia creando o trabajando con API REST o RPC Más de 2 años de experiencia con la biblioteca de pruebas React. Entre otros.

CHALLENGE

En ciertas aplicaciones, como en la generación de recibos o en la presentación de datos numéricos de forma más legible, puede ser útil convertir números en su forma escrita. Tu tarea es crear una función que tome un número entero y lo convierta en palabras.

Descripción del Reto:

  • La función debe aceptar un número entero como argumento.

  • Debe devolver una cadena que represente el número en palabras.

  • El rango de entrada puede estar inicialmente limitado a, por ejemplo, 0 a 9999 para simplificar el problema.

Ejemplo:

  • Al llamar numeroAPalabras(123), la función debería devolver "ciento veintitrés".

  • Para numeroAPalabras(5043), debería devolver "cinco mil cuarenta y tres".

RESULTADO

function numeroAPalabras(numero) {
    if (numero === 0) {
        return "cero";
    }

    const unidades = ["", "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve"];
    const especiales = ["diez", "once", "doce", "trece", "catorce", "quince", "dieciséis", "diecisiete", "dieciocho", "diecinueve"];
    const decenas = ["", "diez", "veinte", "treinta", "cuarenta", "cincuenta", "sesenta", "setenta", "ochenta", "noventa"];
    const centenas = ["", "ciento", "doscientos", "trescientos", "cuatrocientos", "quinientos", "seiscientos", "setecientos", "ochocientos", "novecientos"];

    let palabras = [];

    if (numero >= 1000) {
        let mil = Math.floor(numero / 1000);
        palabras.push(mil === 1 ? "mil" : `${unidades[mil]} mil`);
        numero %= 1000;
    }

    if (numero >= 100) {
        let cien = Math.floor(numero / 100);
        palabras.push(centenas[cien]);
        numero %= 100;
    }

    if (numero >= 20) {
        let dec = Math.floor(numero / 10);
        palabras.push(decenas[dec]);
        numero %= 10;
    } else if (numero >= 10) {
        palabras.push(especiales[numero - 10]);
        numero = 0;
    }

    if (numero > 0) {
        palabras.push(unidades[numero]);
    }

    return palabras.join(" ").replace(/  +/g, ' ').trim();
}

// Ejemplo de uso
console.log(numeroAPalabras(123));  // "ciento veintitrés"

¡Hasta mañana! 🤟