Categoría: algoritmos
El algoritmo SHA256 paso a paso
Vía microsiervos:
Si la definición del SHA-256 suena un poco rara y marciana es porque si no estás muy puesto en criptografía y las matemáticas relacionadas lo es. En lenguaje llano se podría decir que es una función que transforma un fichero cualquiera en un valor de longitud fija único, llamado hash. Y ese valor, que es una especie de suma de control, valor de verificación o firma única tiene ciertas propiedades interesantes en múltiples aplicaciones en criptografía y seguridad. La utilidad es que a partir de ese valor, que en el caso del SHA-256 son 256 bits, es imposible generar el documento original, pero sobre todo es prácticamente imposible encontrar otro documento que produzca el mismo hash si no es buscando «por fuerza bruta», debido a que es una especie de función en un sólo sentido. Y eso no siempre es posible, lo cual garantiza su seguridad.
Tutorial sobre criptomonedas
Patrones y no usar parseInt
Uso de patrones de programación:
https://stackoverflow.blog/2021/10/13/why-solve-a-problem-twice-design-patterns-let-you-apply-existing-solutions-to-your-code/
Por qué hay que usar Number en vez de parseInt:
https://dev.to/darkmavis1980/you-should-stop-using-parseint-nbf
Patrón BFF
TDD: Desarrollo guiado por pruebas
Funciones para practicar
1.- Crear una función triple que nos devuelva el triple de un número. Ej: triple(5)–>15 triple(0)–>0
2.- Crear una función nombreCompleto que pasándole un nombre y un apellido nos devuelva una cadena con nombre y apellido juntos separados por un espacio: nombreCompleto(‘ana’,’pi’)->’ana pi’
3.- Crear una función areaCirculo que le pasemos el radio de un círculo y nos devuelva el área, que es 2*3.1416*r*r ej: areaCirculo(1)–>6,2832
4.- Crear una función triplicar que le pasemos una cadena y nos la devuelva repetida tres veces: triplocar(‘hola’)->’holaholahola’
5.- Crear una función perímetro a la que le pasamos dos lados y nos devuelve el perímetro de un rectángulo, que es lado1*2+lado2*2 Ej: perimetro(2,3)–>10
6.- Crear una función que me devuelva el mayor elemento del array
7.- Función que nos sume las posiciones pares por un lado y las impares por otro. Nos devuelve un array con [pares,impares]
8.- Función que nos cuente las vocales de una cadena
9.- Función que nos cuente las consonantes
10.- Función que nos diga si un número es capicua
11.- Función que nos diga si una frase es capicua (deberíamos eliminar los espacios)
12.- Función que nos elimine espacios repetidos dentro de la cadena
13.- Función que dada una cadena nos ponga las vocales en minúsculas y las consonantes en mayúsculas
14.- Función que nos devuelva la tirada de dos dados en un array: [1,5]
15.- Función que nos cuenta las apariciones de una cadena dentro de otra
16.- Función que nos convierta de minutos a segundos
17.- Función que nos diga,dada una edad, cuantos días ha vivido esa persona (sin contar bisiestos)
18.- Función que dados dos números nos diga si tienen la misma paridad
19.- Función a la que le pasemos un array y un número y nos devuelva un array con los numeros menores que el número dado
20.- Función a la que le pasemos una cadena y una longitud y nos elimine las palabras que sean de mayor longitud que la dada.
// Función a la que le pasemos una cadena y una longitud y nos elimine las palabras que sean de mayor longitud que la dada. // eliminarPorLongitud('hola que tal',3)-->'que tal' // eliminarPorLongitud('hola que tal estamos',4)-->'hola que tal' function eliminarPorLongitud (cadena, longitud) { // recorrer las palabras y mirar su longitud const palabras = cadena.split(' ') let res = '' for (let i = 0; i < palabras.length; i++) { if (palabras[i].length <= longitud) { res += palabras[i] + ' ' } } return res.trim() } function eliminarPorLongitud2 (cadena, longitud) { // recorrer las palabras y mirar su longitud const palabras = cadena.split(' ') const res = [] for (let i = 0; i < palabras.length; i++) { if (palabras[i].length <= longitud) { res.push(palabras[i]) } } return res.join(' ') }
Páginas para aprender programación
Para niños que empiezan:
Programando en bloques y su correspondencia en javascript:
https://developers.google.com/blockly/
Proyectos hechos con el anterior:
https://www.madewithcode.com/projects/
App que explica conceptos básicos:
https://grasshopper.app/es_419/
Para aprender lenguajes de programación gratis:
Más cursos gratis:
Orientado a Python y big data:
Completísimos cursos de HTML, JS y SQL:
https://es.khanacademy.org/computing/computer-programming
Una aplicación para repasar día a día:
¿Qué lenguaje de programación usar?
Manuales para empezar con javascript:
Recopilatorios de tutoriales:
Algunas ideas para empezar a programar de adulto (está muy bien):
Recursión y hackeos de operaciones de bits
https://thesharperdev.com/functional-fundamentals-recursion/