From f73b2ec1bef90e4b826dcf45eadef13eb1a102ea Mon Sep 17 00:00:00 2001 From: "jptx.aya" Date: Wed, 19 Jun 2024 00:39:48 +0200 Subject: [PATCH 01/66] reto11 v0.1 --- .../11 - MANEJO DE FICHEROS/python/jptxaya.py | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 Roadmap/11 - MANEJO DE FICHEROS/python/jptxaya.py diff --git a/Roadmap/11 - MANEJO DE FICHEROS/python/jptxaya.py b/Roadmap/11 - MANEJO DE FICHEROS/python/jptxaya.py new file mode 100644 index 0000000000..d3e3c1b9eb --- /dev/null +++ b/Roadmap/11 - MANEJO DE FICHEROS/python/jptxaya.py @@ -0,0 +1,103 @@ +#MANEJO DE FICHEROS + +import os + +try: + #Creacion y escritura + with open("jptxaya.txt","w+") as my_fich: + my_fich.writelines(["Jptxaya \n","45 \n"]) + my_fich.write("Java") + #Lectura Fichero + with open("jptxaya.txt","r") as my_fich: + for line in my_fich: + print(line) + #Borrado del fichero + os.remove("jptxaya.txt") +except Exception as exc: + print(f"Exception {exc}") + +#Dificultad Extra + +def fich_lines_to_list(): + with open("jptx_ventas.txt","r") as my_fich: + new_list = [] + for line in my_fich.readlines(): + lista = line.split(";") + new_list.append(lista) + return new_list + +def list_to_fich(lista): + with open("jptx_ventas.txt","w") as my_fich: + for elem in lista: + line = ";".join([elem[0],str(elem[1]),str(elem[2]),"\n"]) + my_fich.write(line) + + + + + +print("Dificultad Extra") +while True: + print("Gestion de Ventas") + print("1-Añadir") + print("2-Consultar") + print("3-Actualizar") + print("4-Eliminar") + print("5-Venta Total") + print("6-Salir") + option = input("Selecciona la opcion:") + match option: + case "6": + try: + os.remove("jptx_ventas.txt") + break + except Exception as excep: + print("Nos se ha podido borrar el fichero porque no existia") + case "1": + try: + nombre_producto = input("Introduce el nombre producto:") + cantidad_vendida = int(input("Cantidad Vendida:")) + precio = int(input("Introducir Precio:")) + with open("jptx_ventas.txt","a+") as my_fich: + line = ";".join([nombre_producto,str(cantidad_vendida),str(precio),"\n"]) + my_fich.write(line) + except Exception as exc: + print("Datos incorrectos introducidos") + case "2": + lista_total = fich_lines_to_list() + count = 1 + for lista in lista_total: + print(f"Linea {str(count)} Product: {lista[0]} Cantidad:{lista[1]} Precio:{lista[2]}") + count += 1 + case "3": + try: + lista_total = fich_lines_to_list() + count = 1 + for lista in lista_total: + print(f"Linea {str(count)} Product: {lista[0]} Cantidad:{lista[1]} Precio:{lista[2]}") + count += 1 + lin_act = int(input("Introducir la el número linea a actualizar:")) + if lin_act <= len(lista_total) and lin_act >= 1: + nombre_producto = input("Introduce el nombre producto:") + cantidad_vendida = int(input("Cantidad Vendida:")) + precio = int(input("Introducir Precio:")) + lista_total[lin_act-1] = [nombre_producto,cantidad_vendida,precio] + list_to_fich(lista_total) + except Exception as excp: + print(f"Exception {excp}") + case "4": + try: + lista_total = fich_lines_to_list() + count = 1 + for lista in lista_total: + print(f"Linea {str(count)} Product: {lista[0]} Cantidad:{lista[1]} Precio:{lista[2]}") + count += 1 + lin_act = int(input("Introducir el número linea a eliminar:")) + if lin_act <= len(lista_total) and lin_act >= 1: + lista_total.pop(lin_act-1) + list_to_fich(lista_total) + except Exception as excp: + print(f"Exception {excp}") + + + From 54abbc11974fc34501776dfba241df75e76950fe Mon Sep 17 00:00:00 2001 From: "jptx.aya" Date: Wed, 19 Jun 2024 00:53:54 +0200 Subject: [PATCH 02/66] reto11 v0.2 --- Roadmap/11 - MANEJO DE FICHEROS/python/jptxaya.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Roadmap/11 - MANEJO DE FICHEROS/python/jptxaya.py b/Roadmap/11 - MANEJO DE FICHEROS/python/jptxaya.py index d3e3c1b9eb..5ca6c7cb07 100644 --- a/Roadmap/11 - MANEJO DE FICHEROS/python/jptxaya.py +++ b/Roadmap/11 - MANEJO DE FICHEROS/python/jptxaya.py @@ -98,6 +98,20 @@ def list_to_fich(lista): list_to_fich(lista_total) except Exception as excp: print(f"Exception {excp}") + case "5": + try: + lista_total = fich_lines_to_list() + my_dict = {} + for elem in lista_total: + my_dict[elem[0]] = my_dict.get(elem[0],0) + (int(elem[1]) * int(elem[2])) + venta_total = 0 + for elem in my_dict.keys(): + print(f"Producto {elem} Ventas:{my_dict[elem]}") + venta_total += int(my_dict[elem]) + print(f"Ventas Totales:{venta_total}") + except Exception as excp: + print(f"Exception {excp}") + From bd13a04e9c4184d4f84380af30a7348b9830240e Mon Sep 17 00:00:00 2001 From: DjSurgeon <130383883+DjSurgeon@users.noreply.github.com> Date: Fri, 21 Jun 2024 18:09:15 +0200 Subject: [PATCH 03/66] #05 - Javascript --- .../javascript/DjSurgeon.js | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 Roadmap/05 - VALOR Y REFERENCIA/javascript/DjSurgeon.js diff --git a/Roadmap/05 - VALOR Y REFERENCIA/javascript/DjSurgeon.js b/Roadmap/05 - VALOR Y REFERENCIA/javascript/DjSurgeon.js new file mode 100644 index 0000000000..324186eb87 --- /dev/null +++ b/Roadmap/05 - VALOR Y REFERENCIA/javascript/DjSurgeon.js @@ -0,0 +1,76 @@ +/* + * EJERCICIO: + * - Muestra ejemplos de asignación de variables "por valor" y "por referencia", según + * su tipo de dato. + * - Muestra ejemplos de funciones con variables que se les pasan "por valor" y + * "por referencia", y cómo se comportan en cada caso en el momento de ser modificadas. + * (Entender estos conceptos es algo esencial en la gran mayoría de lenguajes) + * + * DIFICULTAD EXTRA (opcional): + * Crea dos programas que reciban dos parámetros (cada uno) definidos como + * variables anteriormente. + * - Cada programa recibe, en un caso, dos parámetros por valor, y en otro caso, por referencia. + * Estos parámetros los intercambia entre ellos en su interior, los retorna, y su retorno + * se asigna a dos variables diferentes a las originales. A continuación, imprime + * el valor de las variables originales y las nuevas, comprobando que se ha invertido + * su valor en las segundas. + * Comprueba también que se ha conservado el valor original en las primeras. + */ + +/* +Cuando hablamos de pasar una variable por valor y por referencia en JavaScript nos referimos a pasar una variable usando un valor primitivo o un valor no primitivo. Entonces, pasar una variable por valor se refiere a asignarle uno de los siete elementos con valores primitivos de JavaScript. Por su parte, pasar una variable por referencia quiere decir que estamos asignándole un elemento con un valor no primitivo, sea un objeto, un array o una función. +La diferencia entre pasar una variable por valor y por referencia en JavaScript es su relación con lo que sucede dentro y fuera de la función. Cuando pasamos una reference variable javascript, lo que «ocurre» dentro de la función «repercute» fuera de ella. Mientras tanto, cuando pasamos una variable por valor, lo que «ocurre» dentro de la función, «se queda» en la función, sin alterar el resto del código. +*/ + +// Pasamos por valor, con valores primitivos + +let num1 = 15; +let arr1 = [1,2,3,4]; + +function pasoValor(num) { + console.log(`Dentro de la función ${num} es ${num * 2}`); +} + +pasoValor(num1); +console.log(`Fuera de la función es: ${num1} el valor original no se modifica.`); + +function pasoReferencia(arr) { + arr.push(5); + console.log(`Dentro de la función ${arr}`); +} + +console.log(`Antes de pasarlo ${arr1} por la función.`) +pasoReferencia(arr1); +console.log(`Fuera de la función ${arr1} el valor original se ha modificado.`); + +// Extra ================= + +let num2 = 10; +let num3 = 20; + +let arr2 = [0,1,2]; +let arr3 = ["Sergio", "Vero"]; + +function pasoPorValor(num1, num2){ + let numA = num1; + num2 = num1; + num2 = numA; + return[num1, num2]; + +} +console.log("Valores despues de la función por valor"); +console.log(pasoPorValor(num2, num3)); +console.log("Valores originales:") +console.log(num2, num3); + +function pasoPorReferencia(arr1, arr2){ + let arrA = arr1; + arr2 = arr1; + arr2 = arrA; + return arrA; +} + +console.log("Valores despues de la función por referencia"); +console.log(pasoPorReferencia(arr2, arr3)); +console.log("Valores originales:") +console.log(arr2, arr3); From 302de813aa13f4ef6503f8ea26fb8e939428cdae Mon Sep 17 00:00:00 2001 From: jorgeadamowicz Date: Fri, 21 Jun 2024 13:18:56 -0300 Subject: [PATCH 04/66] " reconfig y prueba pr cadenas" --- .../python/jorgeadamowicz.py | 149 ++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 Roadmap/04 - CADENAS DE CARACTERES/python/jorgeadamowicz.py diff --git a/Roadmap/04 - CADENAS DE CARACTERES/python/jorgeadamowicz.py b/Roadmap/04 - CADENAS DE CARACTERES/python/jorgeadamowicz.py new file mode 100644 index 0000000000..639cc0f755 --- /dev/null +++ b/Roadmap/04 - CADENAS DE CARACTERES/python/jorgeadamowicz.py @@ -0,0 +1,149 @@ +### cadena de caracteres ### + +#operaciones: +my_string = "hola, " +my_other_string = "Python!" + +#concatenación: + +my_add_string = my_string + my_other_string +print(my_add_string) +#tambien se pueden concatenar variables con caracteres, espacios, etc. +print(my_string + " " + my_other_string + "!" ) + +# repetición o multiplicación: + +print(my_add_string * 2) + +#indexación o desempaquetado + +my_string = "Python" +print(my_string[1]) + +###Funciones del sistema### + +#longitud de la cadena de texto + +my_length = len(my_string) +print(my_length) + +#Slicing (porción) + +print(my_add_string[6:-1])# la opción sin colocar nada en el segundo indice tambien es válido +print(my_add_string[6:]) +print(my_add_string[::-1]) # invierte la palabra al imprimirla desde el final al principio. + +#busqueda + +print("Py" in my_add_string) + +#Metodo +#reemplazo: + +print(my_string.replace("o", "a")) + +#division: +print(my_add_string.split(" ")) + +# mayusculas y minusculas + +print(my_add_string.capitalize())#convierte a mayuscula la primer letra de la cadena de texto a mayusculas +print(my_add_string.title())#convierte la primera letra de cada palabra de la cadena de texto a mayusculas +print(my_string.upper())#convierte todas las letras a mayusculas +print(my_string.lower())#convierte todas las letras a minusculas + +#eliminacion de espacios al principio y final de la cadena de texto + +print(my_add_string.strip()) + +#busqueda al principio o final +print(my_string.startswith("ho")) +print(my_string.endswith("a")) + +#busqueda de posición + +print(my_add_string.find("thon")) + +#busqueda de ocurrencia o conteo + +print(my_add_string.count("o")) + +#formateo + +print("Saludo: {}, lenguaje: {}".format(my_string, my_other_string)) + +#interpolación: f string (interpretará que todo lo que esta entre{} hace referencia a una variable) + +print(f"saludo: {my_string} lenguaje: {my_other_string}") + +#tranformacion en lista de caracteres: +print(list(my_add_string)) + +#transformación metodo join +print(" ".join(my_add_string)) + + + +###Extra### + +#quitar espacios y pasar a minusculas: ok +def limpiar_palabra (word:str)-> str: + return word.replace(" ", "").lower() + +#función palindromo: +def check_palindromo(word:str)-> bool: + clean_word = limpiar_palabra(word) + invert_word = clean_word[::-1] # invierte la palabra utilizando slicing: + return clean_word == invert_word #comprobación + +#función anagrama: con retorno +def check_anagrama(word_1:str, word_2:str)-> bool: + clean_word_1 = limpiar_palabra(word_1) + clean_word_2 = limpiar_palabra(word_2) + + #comprobación: + return sorted(clean_word_1) == sorted(clean_word_2) + + +#funcion isograma:con conteo +def check_isograma(word): + for i in word: + conteo = word.count(i) + if conteo != 1: + return False + return True + + + +### main:### +word_1 = input("ingrese una palabra\n") +word_2 = input("ingrese otra palabra\n") + +#comprobación palindromo: +res_pal = check_palindromo(word_1) +print(f"la palabra {word_1} {'es ' if res_pal else 'no es '} palindromo ") +res_pal = check_palindromo(word_2) +print(f"la palabra {word_2} {'es ' if res_pal else 'no es '} palindromo ") + +#comprobación anagrama: +res_ana = check_anagrama(word_1, word_2) +print(f"la palabra {word_1} y {word_2} {'son' if res_ana else 'no son '} anagramas.") + +#comprobación isograma: +res_isograma= check_isograma(word_1) +print(f"la palabra {word_1} {'es ' if res_isograma else 'no es '} isograma ") +res_isograma= check_isograma(word_2) +print(f"la palabra {word_2} {'es ' if res_isograma else 'no es '} isograma ") + + + +""" +#Notas de lo aprendido: +1) se debe llamar a la función por cada palabra a ser analizada +2) para retotno booleano no es necesario utilizar comprobación if/else +3) operadores ternario if/else se pueden utilizar en un f-string para decidir qué texto incluir basado en una condición. +4) iograma: otra forma es convertir los elementos de la "palabra" ingresada en un set y comparar la longitud (cantidad de elementos) +entre "palabra" original y set(palabra). len(palabra)==len(set(palabra)) +5) un set guarda sólo los elementos únicos (sin repeticiones) eje: set(palabra)-> len(p,l,a,b,r) -> 5 elementos +mientras que len(palabra) -> 7 elemntos +""" \ No newline at end of file From 25e1b5b94245a2efa4328c3d752be2e038c2591e Mon Sep 17 00:00:00 2001 From: Jesus Antonio Escamilla Date: Fri, 21 Jun 2024 11:32:41 -0600 Subject: [PATCH 05/66] #02 - Java y Python --- .../java/JesusAntonioEEscamilla.java | 69 +++++++++++++++++++ .../python/JesusAntonioEEscamilla.py | 54 +++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 Roadmap/02 - FUNCIONES Y ALCANCE/java/JesusAntonioEEscamilla.java create mode 100644 Roadmap/02 - FUNCIONES Y ALCANCE/python/JesusAntonioEEscamilla.py diff --git a/Roadmap/02 - FUNCIONES Y ALCANCE/java/JesusAntonioEEscamilla.java b/Roadmap/02 - FUNCIONES Y ALCANCE/java/JesusAntonioEEscamilla.java new file mode 100644 index 0000000000..d33b8d345b --- /dev/null +++ b/Roadmap/02 - FUNCIONES Y ALCANCE/java/JesusAntonioEEscamilla.java @@ -0,0 +1,69 @@ +/** #02 - Java -> Jesus Antonio Escamilla */ + +public class JesusAntonioEEscamilla { + // Variable Global + static String globalVariable = "Soy Global"; + public static void main(String[] args) { + //---EJERCIÓ--- + // Función Básica + saludar(); + // Función con Parámetro + personalizado("Antonio"); + // Función con Varios Parámetros + sumar(3, 8); + // Función con Retorno + int resultado = multiplicar(6, 4); + System.out.println("El resultado de la multiplicación es " + resultado); + // Funciones dentro de Funciones + int[] resultados = operacionesComplejas(8, 4); + System.out.println("La resta es " + resultados[0] + " y la division es " + resultados[1]); + // Variables Global y Local + my_Function(); + } + + // Función Básica + public static void saludar(){ + System.out.println("¡¡Hola, Soy Jesus!!"); + } + + // Función con Parámetro + public static void personalizado(String nombre){ + System.out.println("¡¡Hola, Mundo Soy " + nombre + "!!"); + } + + // Función con Varios Parámetros + public static void sumar(int a, int b) { + System.out.println("La suma de " + a + " y " + b + " es " + (a + b)); + } + + // Función con Retorno + public static int multiplicar(int a, int b) { + return a * b; + } + + // Funciones dentro de Funciones + private static int restar(int x, int y){ + return x - y; + } + private static int dividir(int x, int y){ + return y / x; + } + public static int[] operacionesComplejas(int a, int b){ + int resta = restar(3, 5); + int divide = dividir(20, 4); + return new int[] {resta, divide}; + } + + // Variables Global y Local + public static void my_Function(){ + String localVariable = "Soy Local"; + System.out.println(localVariable); + System.out.println(globalVariable); + } + + /**-----DIFICULTAD EXTRA-----*/ + + // Pendiente + + /**-----DIFICULTAD EXTRA-----*/ +} \ No newline at end of file diff --git a/Roadmap/02 - FUNCIONES Y ALCANCE/python/JesusAntonioEEscamilla.py b/Roadmap/02 - FUNCIONES Y ALCANCE/python/JesusAntonioEEscamilla.py new file mode 100644 index 0000000000..0b3306408a --- /dev/null +++ b/Roadmap/02 - FUNCIONES Y ALCANCE/python/JesusAntonioEEscamilla.py @@ -0,0 +1,54 @@ +# #02 - Python -> Jesus Antonio Escamilla + +""" +EJERCIÓ +""" +#Variable Global +global_variable = "Soy Global" + +# Función Simple +def saludo(): + print('¡¡Hola, Soy Jesus!!') +saludo() + +# Función con Parámetro +def personalizar_Saludo(nombre): + print(f"¡¡Hola, Mundo soy {nombre}!!") +personalizar_Saludo("Antonio") + +# Función varios Parámetros +def suma(a, b): + print(f"La suma de {a} y {b} es de {a + b}") +suma(5, 6) + +# Función con Retorno +def multiplicar(a, b): + return a * b +resultado = multiplicar(3, 4) +print(f"El resultado de la multiplicación es {resultado}") + +# Función dentro de otra Función +def compleja(x, y): + def restar(a, b): + return a - b + def dividir(a, b): + if(b != 0): + return b / a + resta = restar(x, y) + residuo = dividir(y, x) + return resta, residuo +resta, residuo = compleja(8,4) +print(f"La resta es {resta} y el residuo es {residuo}") + +# Variables Globales y Locales +def my_function(): + local_variable = "Soy Local" + print(local_variable) + print(global_variable) +my_function() + + + +""" +EXTRA +""" From 0acbd8de2ed49eb470af38bf6137218184195279 Mon Sep 17 00:00:00 2001 From: ArliumDev Date: Fri, 21 Jun 2024 19:53:03 +0100 Subject: [PATCH 06/66] #00-Python --- .../python/ArliumDev.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/ArliumDev.py diff --git a/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/ArliumDev.py b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/ArliumDev.py new file mode 100644 index 0000000000..14c5749e37 --- /dev/null +++ b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/ArliumDev.py @@ -0,0 +1,25 @@ +# Sitio web oficial: https://www.python.org/ + +# Esto es un comentario + +""" +Esto es +un comentario +multilínea +""" + +''' +Esto es +otro comentario +multilínea +''' + +my_string = "Soy un string" + +my_int = 1 + +my_double = 1.2 + +my_boolean = True + +print('¡Hola, Python!') \ No newline at end of file From 3ac2cbee0d6ac6ad9ceb05f59c4204e1bb89534d Mon Sep 17 00:00:00 2001 From: AndrewCodev Date: Fri, 21 Jun 2024 14:52:37 -0500 Subject: [PATCH 07/66] #11 - Java Manejo de archivos en Java Ejemplo y ejercicio extra --- .../java/AndrewCodev.java | 272 ++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 Roadmap/11 - MANEJO DE FICHEROS/java/AndrewCodev.java diff --git a/Roadmap/11 - MANEJO DE FICHEROS/java/AndrewCodev.java b/Roadmap/11 - MANEJO DE FICHEROS/java/AndrewCodev.java new file mode 100644 index 0000000000..39d2cadeca --- /dev/null +++ b/Roadmap/11 - MANEJO DE FICHEROS/java/AndrewCodev.java @@ -0,0 +1,272 @@ +import java.io.*; +import java.nio.file.*; +import java.util.*; +import java.util.Scanner; + +public class AndrewCodev { + public static void main(String[] args) { + //Los ejercicios estan separados para seleccionar entre uno y otro comentar y descomentar cada uno. + //ejemploManejoArchivos(); + gestionVentas(); + } + + // DIFICULTAD EXTRA + public static void gestionVentas() { + String nombreArchivo = "GestionVentas.txt"; + Scanner scanner = new Scanner(System.in); + List contenidoArchivo; + try { + crearArchivo(nombreArchivo); + + contenidoArchivo = new ArrayList<>(Files.readAllLines(Paths.get(nombreArchivo))); + + System.out.println("\nGESTOR DE VENTAS\n"); + System.out.println("1 AGREGAR PRODUCTO"); + System.out.println("2 LEER EL ARCHIVO"); + System.out.println("3 MODIFICAR PRODUCTO"); + System.out.println("4 CALCULAR TOTAL DE PRECIOS"); + System.out.println("5 ELIMINAR PRODRUCTO"); + System.out.println("6 CERRAR APLICACIÓN"); + + String opcionMenu = recibirScanner(scanner); + + switch (opcionMenu) { + case "1": { + String detalleProducto = lineaArchivo(scanner, contenidoArchivo, nombreArchivo, + contenidoArchivo.size()); + anexarArchivo(nombreArchivo, detalleProducto); + gestionVentas(); + break; + } + case "2": { + System.out.println("\nDETALLE DE VENTAS\n"); + leerArchivo(nombreArchivo); + // REVISAR SUBMENU + gestionVentas(); + break; + } + case "3": { + // Pasamos las filas al una lista para modificar + try { + + leerArchivo(nombreArchivo); + + if (contenidoArchivo.size() > 1) { + System.out.println( + "Escribe un número del 0 al " + (contenidoArchivo.size() - 1) + " la fila a Modificar"); + } else if (contenidoArchivo.size() == 1) { + System.out.println( + "Escribe un número: " + (contenidoArchivo.size() - 1) + " para modificar la linea"); + } else { + System.out.println("El archivo no tiene productos"); + } + + + int idEditado = Integer.parseInt(recibirScanner(scanner)); + + String detalleProducto = lineaArchivo(scanner, contenidoArchivo, nombreArchivo, + idEditado); + leerArchivo(nombreArchivo); + + contenidoArchivo.set((idEditado), detalleProducto); + + Files.write(Paths.get(nombreArchivo), contenidoArchivo); + gestionVentas(); + } catch (IOException e) { + e.printStackTrace(); + } + break; + } + case "4": { + double sumTotalPrecios = 0; + String inputString = ""; + for (int i = 0; i < contenidoArchivo.size(); i++) { + inputString = contenidoArchivo.get(i).replace("[", "").replace("]", ""); + + String array[] = inputString.split(","); + sumTotalPrecios = sumTotalPrecios + Double.parseDouble(array[4]); + } + leerArchivo(nombreArchivo); + System.out.println("PRECIO TOTAL: " + sumTotalPrecios); + gestionVentas(); + break; + } + case "5": { + try { + leerArchivo(nombreArchivo); + if (contenidoArchivo.size() > 1) { + System.out.println( + "Escribe un número del 0 al " + (contenidoArchivo.size() - 1) + " la fila a eliminar"); + } else if (contenidoArchivo.size() == 1) { + System.out.println( + "Escribe un número: " + (contenidoArchivo.size() - 1) + " para eliminar la linea"); + } else { + System.out.println("El archivo no tiene productos"); + } + + int idELiminado = Integer.parseInt(recibirScanner(scanner)); + + if (idELiminado >= 0 && idELiminado < contenidoArchivo.size()) { + // Eliminar la línea específica + contenidoArchivo.remove(idELiminado); + + // Escribir el contenido modificado de nuevo en el archivo + Files.write(Paths.get(nombreArchivo), contenidoArchivo); + System.out.println("La línea ha sido eliminada exitosamente."); + } else { + System.out.println("Número de línea fuera de rango."); + } + + gestionVentas(); + } catch (IOException e) { + e.printStackTrace(); + } + break; + } + case "6": { + eliminarArchivo(nombreArchivo); + break; + } + default: + System.err.println("La opción no es valida, intentelo de nuevo"); + gestionVentas(); + } + } catch (IOException e) { + e.printStackTrace(); + } + + } + + public static String recibirScanner(Scanner scanner) { + String dato = scanner.nextLine(); + return dato; + } + + public static String lineaArchivo(Scanner scanner, List contenidoArchivo, String nombreArchivo, + int idProducto) { + String lineaArchivo = ""; + try { + String nombreproducto; + int cantidad; + double precio; + double totalPrecio; + //int idProducto = 0; + + //idProducto = contenidoArchivo.size(); + System.out.println("Ingresa el nombre del producto"); + nombreproducto = recibirScanner(scanner); + System.out.println("Ingresa la cantidad"); + cantidad = Integer.parseInt(recibirScanner(scanner)); + System.out.println("Ingresa el precio unidad"); + precio = Integer.parseInt(recibirScanner(scanner)); + totalPrecio = precio * cantidad; + lineaArchivo = "[" + idProducto + "]," +"[" + nombreproducto + "],[" + cantidad + "],[" + precio + "],[" + totalPrecio + "]"; + + return lineaArchivo; + } catch (Exception e) { + System.err.println("La opción no es valida está debe escribir la opción númerica"); + } + return lineaArchivo; + } + + public static void ejemploManejoArchivos() { + String nombreArchivo = "AndrewCodev.txt"; + + crearArchivo(nombreArchivo); + + anexarArchivo(nombreArchivo, "Nombre: AndrewCodev"); + anexarArchivo(nombreArchivo, "Edad: 30"); + anexarArchivo(nombreArchivo, "Lenguaje: Java"); + + leerArchivo(nombreArchivo); + eliminarArchivo(nombreArchivo); + } + + // CREAMOS EL ARCHIVO + public static void crearArchivo(String nombreArchivo) { + File archivo = new File(nombreArchivo); + + try { + if (!archivo.exists()) { + PrintWriter salida = new PrintWriter(archivo); + salida.close(); + System.out.println("Se ha creado el archivo: " + nombreArchivo); + } + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + } + + // ESCRIBIR ARCHIVO + public static void escribirArchivo(String nombreArchivo, String contenido) { + File archivo = new File(nombreArchivo); + + try { + PrintWriter salida = new PrintWriter(archivo); + salida.println(contenido); + salida.close(); + System.out.println("Se ha escrito en el archivo: " + nombreArchivo); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + } + + // ANEXAR INFORMACIÓN + public static void anexarArchivo(String nombreArchivo, String contenido) { + File archivo = new File(nombreArchivo); + + try { + PrintWriter salida = new PrintWriter(new FileWriter(archivo, true)); + salida.println(contenido); + salida.close(); + System.out.println("Se ha anexado información en el archivo: " + nombreArchivo); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + // LEER ARCHIVO + public static void leerArchivo(String nombreArchivo) { + File archivo = new File(nombreArchivo); + BufferedReader entrada = null; + try { + entrada = new BufferedReader(new FileReader(archivo)); + String lectura = entrada.readLine(); + + while (lectura != null) { + System.out.println(lectura); + lectura = entrada.readLine(); + } + //entrada.close(); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + // Cerrar el BufferedReader + if (entrada != null) { + try { + entrada.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + + public static void eliminarArchivo(String nombreArchivo) { + File archivo = new File(nombreArchivo); + + Path ruta = Path.of(archivo.getPath()); + + try { + Files.delete(ruta); + } catch (IOException e) { + e.printStackTrace(); + } + System.out.println("Archivo eliminado: " + nombreArchivo); + } +} From f19eb008825dfc86b02b1043f40e85c26a7fca22 Mon Sep 17 00:00:00 2001 From: edalmava Date: Fri, 21 Jun 2024 17:52:09 -0500 Subject: [PATCH 08/66] #01 - Raku --- .../raku/edalmava.raku | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/raku/edalmava.raku diff --git a/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/raku/edalmava.raku b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/raku/edalmava.raku new file mode 100644 index 0000000000..e2438a2299 --- /dev/null +++ b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/raku/edalmava.raku @@ -0,0 +1,132 @@ +# Operador de asignación = +my ($name, $age) = 'Edalmava', 30; + +say("Mi nombre es $name y tengo $age"); + +# Operador defined-o // para obtener un valor alternativo si una variable aún no está establecida +my $a = 'alpha'; +say $a // 'gamma'; # Imprime alpha + +my $b; +say $b // 'delta'; # Imprime delta + +# if - El código se ejecuta solo si se cumple una condición, por ej., una expresión se evalúa como True +# Si la condición no se cumple, podemos especificar bloques alternativos de ejecución utilizando: +# - else +# - elsif +my $número-de-asientos = 9; + +if $número-de-asientos <= 5 { + say 'Soy un sedan' +} elsif $número-de-asientos <= 7 { + say 'Tengo 6 o 7 asientos' +} else { + say 'Soy un microbus' +} + +#`( + unless - La negación de if es unless. + La negación en Raku se realiza con ! o con not. + + unless (condición) se utiliza en lugar de if not (condición). + + unless no puede utilizar la claúsula else. +) + +my $limpiar-zapatos = False; + +unless $limpiar-zapatos { + say 'Limpia tus zapatos' +} + +# for - for itera sobre una serie de valores. +my @array = 1,2,3; + +for @array -> $array-item { + say $array-item * 100 +} + +# Para iterar sobre rangos + +for 1..5 -> $n { + say $n; +} + +# Para cuerpo de bucle cortos se puede usar la forma posfija de for +.say for 1..5; + +# given - En Raku given viene a ser switch en otros lenguajes +my $var = 42; + +given $var { + when 0..50 { say 'Menos o igual a 50' } + when Int { say "es un Entero" } + when 42 { say 42 } + default { say "¿ejem?" } +} + +# loop es otra forma de escribir un for. +# Actualmente loop viene a ser el for utilizado en la familia de lenguajes de C. +loop (my $i = 0; $i < 5; $i++) { + say "El número actual es $i" +} + +# while - se repite mientras la condición sea verdadera +my $x = 0; +while $x <= 10 { + $x = prompt 'Introduce un número, que no sea mayor que 10: '; + say "Has introducido $x."; +} +say "$x es mayor que 10."; + +# until - se repite hasta que la condición se haga verdadera +$x = 0; +until $x > 10 { + $x = prompt 'Introduce un número que no sea mayor que 10: '; + say "Has introducido $x."; +} +say "$x es mayor que 10."; + +# repeat - el bloque repeat siempre se ejecuta al menos una vez. +$x = 100; +repeat { + $x = prompt 'Enter a number: '; + say "You entered $x."; +} while $x <= 10; # Usando while para la condición +say "$x is bigger than 10."; + +$x = 0; +repeat { + $x = prompt 'Enter a number: '; + say "You entered $x."; +} until $x > 10; # Usando until para la condición +say "$x is bigger than 10."; + +#`( + RETO EXTRA +) + +say ''; +say '**************'; +say '*****RETO EXTRA*****'; +say '**************'; +say ''; + +say "Usando for con rangos"; + +for 10 .. 55 -> $i { + if $i %% 2 && $i != 16 && !($i %% 3) { + say $i + } +} + +say "Usando loop"; + +loop ($i = 10; $i <= 55; $i++) { + if $i %% 2 && $i != 16 && !($i %% 3) { + say $i + } +} + +say "Usando la forma posfija de for - en una sola línea"; +.say if $_ %% 2 && $_ != 16 && !($_ %% 3) for 10 .. 55; From ae8582e85afa01c90a09f2f7dce449be9d6e2481 Mon Sep 17 00:00:00 2001 From: gringoam Date: Fri, 21 Jun 2024 22:58:52 +0000 Subject: [PATCH 09/66] #19 - Python --- Roadmap/19 - ENUMERACIONES/python/gringoam.py | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Roadmap/19 - ENUMERACIONES/python/gringoam.py diff --git a/Roadmap/19 - ENUMERACIONES/python/gringoam.py b/Roadmap/19 - ENUMERACIONES/python/gringoam.py new file mode 100644 index 0000000000..dc63068e03 --- /dev/null +++ b/Roadmap/19 - ENUMERACIONES/python/gringoam.py @@ -0,0 +1,69 @@ +from enum import Enum + +""" +Ejercicio +""" + +class Semana(Enum): + + LUNES=1 + MAERTES=2 + MIERCOLES=3 + JUEVES=4 + VIERNES=5 + SABADO=6 + DOMINGO=7 + +def dia(num_dia: int): + print(Semana(num_dia).name) + +dia(5) + + +""" +Extra +""" +class Estado(Enum): + PENDIENTE= 1 + ENVIADO=2 + ENTREGADO=3 + CANCELADO=4 + +class Pedido(): + estado= Estado.PENDIENTE + + def __init__(self, numero:int) -> None: + self.numero= numero + + + def enviar(self): + if self.estado == Estado.PENDIENTE: + self.estado= Estado.ENVIADO + self.mostrar_estado() + else: + print("El pedido ya fue enviado o cancelado") + + def entregar(self): + if self.estado == Estado.ENVIADO: + self.estado= Estado.ENTREGADO + self.mostrar_estado() + else: + print("El pedido tiene que ser enviado antes de entregarse") + + def cancelar(self): + if self.estado != Estado.ENTREGADO: + self.estado= Estado.CANCELADO + self.mostrar_estado() + else: + print("El pedido ya fue entregado no se puede cancelar") + + def mostrar_estado(self): + print(f"El el estado del pedido {self.numero} es {self.estado.name}") + + +pedido1=Pedido(1) +pedido1.mostrar_estado() +pedido1.entregar() +pedido1.enviar() +#pedido1.entregar() +pedido1.cancelar() \ No newline at end of file From cd8b37fd629fe1891e0a71042ee74f29c20a76f8 Mon Sep 17 00:00:00 2001 From: Owen Ian Date: Fri, 21 Jun 2024 20:58:21 -0300 Subject: [PATCH 10/66] Create owen-ian.py --- .../python/owen-ian.py | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/owen-ian.py diff --git a/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/owen-ian.py b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/owen-ian.py new file mode 100644 index 0000000000..93fbfaa107 --- /dev/null +++ b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/owen-ian.py @@ -0,0 +1,34 @@ +# URL del sitio web oficial de Python: https://www.python.org/ + +# La amohadilla nos permite escribir un comentario de una sola línea + +""" +Las comillas dobles nos permiten +escribir un comentario de varias líneas +""" + +''' +Las comillas simples tambien nos permiten +escribir un comentario de varias líneas +''' + +# Variable +my_variable = "Una variable en Python" + +# Constante +MY_CONSTANTE = "Una constante en Python" # Aclaracion, al parecer la gente escribe sus constantes en MAYUSCULAS + +my_int = 1 +my_float = 1.5 +my_bool = True +my_bool = False +my_string = "Cadena de texto" +my_other_string = 'Otra cadena de texto' + +# Imprimir por terminal +print("¡Hola, Python!") + +print(type(my_int)) +print(type(my_float)) +print(type(my_bool)) +print(type(my_string)) From e2fd8889580f568512debe379179f5be7f148ce3 Mon Sep 17 00:00:00 2001 From: any7dev Date: Sat, 22 Jun 2024 03:00:12 +0200 Subject: [PATCH 11/66] 08, 09, 10 y 11 - Python --- Roadmap/08 - CLASES/python/any7dev.py | 64 ++++++++ Roadmap/09 - HERENCIA/python/any7dev.py | 36 +++++ Roadmap/10 - EXCEPCIONES/python/any7dev.py | 32 ++++ .../11 - MANEJO DE FICHEROS/python/any7dev.py | 148 ++++++++++++++++++ 4 files changed, 280 insertions(+) create mode 100644 Roadmap/08 - CLASES/python/any7dev.py create mode 100644 Roadmap/09 - HERENCIA/python/any7dev.py create mode 100644 Roadmap/10 - EXCEPCIONES/python/any7dev.py create mode 100644 Roadmap/11 - MANEJO DE FICHEROS/python/any7dev.py diff --git a/Roadmap/08 - CLASES/python/any7dev.py b/Roadmap/08 - CLASES/python/any7dev.py new file mode 100644 index 0000000000..85b6a882a8 --- /dev/null +++ b/Roadmap/08 - CLASES/python/any7dev.py @@ -0,0 +1,64 @@ +# /* +# * EJERCICIO: +# * Explora el concepto de clase y crea un ejemplo que implemente un inicializador, +# * atributos y una función que los imprima (teniendo en cuenta las posibilidades +# * de tu lenguaje). +# * Una vez implementada, créala, establece sus parámetros, modifícalos e imprímelos +# * utilizando su función. +# * +# * DIFICULTAD EXTRA (opcional): +# * Implementa dos clases que representen las estructuras de Pila y Cola (estudiadas +# * en el ejercicio número 7 de la ruta de estudio) +# * - Deben poder inicializarse y disponer de operaciones para añadir, eliminar, +# * retornar el número de elementos e imprimir todo su contenido. +# * +# */ + +# EJERCICIO +class Vehiculo: + def __init__(self, tipo, marca, modelo): + self.tipo = tipo + self.marca = marca + self.modelo = modelo + def imprimir(self): + print(f"Soy un {self.tipo} de la marca {self.marca} modelo {self.modelo}") + +mi_vehiculo = Vehiculo("coche", "Toyota", "Auris") +mi_vehiculo.imprimir() + +#DIFICULTAD EXTRA +class Pila: + def __init__(self, lista): + self.lista = lista + def añadir(self, numero): + self.lista.append(numero) + def eliminar(self): + self.lista.pop() + def elementos(self): + return len(self.lista) + def imprimir(self): + print(self.lista) + +mi_pila = Pila(lista=[1, 2, 3, 4, 5]) +mi_pila.añadir(6) +mi_pila.eliminar() +print(mi_pila.elementos()) +mi_pila.imprimir() + +class Cola: + def __init__(self, cola): + self.cola = cola + def añadir(self, numero): + self.cola.append(numero) + def eliminar(self): + self.cola.pop(0) + def elementos(self): + return len(self.cola) + def imprimir(self): + print(self.cola) + +mi_cola = Cola(cola=[6, 7, 8, 9, 10]) +mi_cola.añadir(11) +mi_cola.eliminar() +print(mi_cola.elementos()) +mi_cola.imprimir() \ No newline at end of file diff --git a/Roadmap/09 - HERENCIA/python/any7dev.py b/Roadmap/09 - HERENCIA/python/any7dev.py new file mode 100644 index 0000000000..3a8a78f67e --- /dev/null +++ b/Roadmap/09 - HERENCIA/python/any7dev.py @@ -0,0 +1,36 @@ +""" /* + * EJERCICIO: + * Explora el concepto de herencia según tu lenguaje. Crea un ejemplo que + * implemente una superclase Animal y un par de subclases Perro y Gato, + * junto con una función que sirva para imprimir el sonido que emite cada Animal. + * + * DIFICULTAD EXTRA (opcional): + * Implementa la jerarquía de una empresa de desarrollo formada por Empleados que + * pueden ser Gerentes, Gerentes de Proyectos o Programadores. + * Cada empleado tiene un identificador y un nombre. + * Dependiendo de su labor, tienen propiedades y funciones exclusivas de su + * actividad, y almacenan los empleados a su cargo. + */ """ + +# EJERCICIO +class Animal: + def __init__(self, nombre): + self.nombre = nombre + def sonido(self): + pass + +class Perro(Animal): + def sonido(self): + print(f"Soy {self.nombre} guau") + +class Gato(Animal): + def sonido(self): + print(f"Soy {self.nombre} miau") + +mi_perro = Perro("Firulais") +mi_gato = Gato("Peluso") +mi_perro.sonido() +mi_gato.sonido() + + + diff --git a/Roadmap/10 - EXCEPCIONES/python/any7dev.py b/Roadmap/10 - EXCEPCIONES/python/any7dev.py new file mode 100644 index 0000000000..71a9eb7d60 --- /dev/null +++ b/Roadmap/10 - EXCEPCIONES/python/any7dev.py @@ -0,0 +1,32 @@ +# /* +# * EJERCICIO: +# * Explora el concepto de manejo de excepciones según tu lenguaje. +# * Fuerza un error en tu código, captura el error, imprime dicho error +# * y evita que el programa se detenga de manera inesperada. +# * Prueba a dividir "10/0" o acceder a un índice no existente +# * de un listado para intentar provocar un error. +# * +# * DIFICULTAD EXTRA (opcional): +# * Crea una función que sea capaz de procesar parámetros, pero que también +# * pueda lanzar 3 tipos diferentes de excepciones (una de ellas tiene que +# * corresponderse con un tipo de excepción creada por nosotros de manera +# * personalizada, y debe ser lanzada de manera manual) en caso de error. +# * - Captura todas las excepciones desde el lugar donde llamas a la función. +# * - Imprime el tipo de error. +# * - Imprime si no se ha producido ningún error. +# * - Imprime que la ejecución ha finalizado. +# */ + +#EJERCICIO +try: + print(10/0) +except ZeroDivisionError: + print("No se puede dividir por 0") + +lista = [1, 2, 3, 4, 5] +try: + print(lista[6]) +except IndexError: + print("No existe dicho índice") + + diff --git a/Roadmap/11 - MANEJO DE FICHEROS/python/any7dev.py b/Roadmap/11 - MANEJO DE FICHEROS/python/any7dev.py new file mode 100644 index 0000000000..25ac43f8b2 --- /dev/null +++ b/Roadmap/11 - MANEJO DE FICHEROS/python/any7dev.py @@ -0,0 +1,148 @@ +# /* +# * IMPORTANTE: Sólo debes subir el fichero de código como parte del ejercicio. +# * +# * EJERCICIO: +# * Desarrolla un programa capaz de crear un archivo que se llame como +# * tu usuario de GitHub y tenga la extensión .txt. +# * Añade varias líneas en ese fichero: +# * - Tu nombre. +# * - Edad. +# * - Lenguaje de programación favorito. +# * Imprime el contenido. +# * Borra el fichero. +# * +# * DIFICULTAD EXTRA (opcional): +# * Desarrolla un programa de gestión de ventas que almacena sus datos en un +# * archivo .txt. +# * - Cada producto se guarda en una línea del archivo de la siguiente manera: +# * [nombre_producto], [cantidad_vendida], [precio]. +# * - Siguiendo ese formato, y mediante terminal, debe permitir añadir, consultar, +# * actualizar, eliminar productos y salir. +# * - También debe poseer opciones para calcular la venta total y por producto. +# * - La opción salir borra el .txt. +# */ + +#EJERCICIO +import os + +def crea_archivo(nombre, contenido): + if not os.path.exists(nombre): #Para saber si ya existe el archivo + with open (nombre, 'w') as archivo: #Crea el archivo abriéndolo y cerrándolo + archivo.write(contenido) + else: + print("El archivo ya existe") + if os.path.exists(nombre): + with open (nombre, 'r') as archivo: #Abre el archivo abriéndolo y cerrándolo + print(archivo.read()) + else: + print("El archivo no existe") + os.remove(nombre) #Elimina el archivo. + +crea_archivo("any7dev.txt", "Ana\n36\nPython") + +#DIFICULTAD EXTRA +def gestor_ventas(): + archivo = "gestion_ventas.txt" + open(archivo, 'w').close() + while True: + opcion = input("\nDime tu opción: \n\t1-Añadir producto vendido \n\t2-Consultar archivo \n\t3-Actualizar \n\t4-Eliminar \n\t5-Totales \n\ts-Salir \nOpción--> ") + match opcion: + case "1": + añadir(archivo) + case "2": + if os.stat(archivo).st_size == 0: + print("El archivo está vacío") + else: + consultar(archivo) + case "3": + if os.stat(archivo).st_size == 0: + print("El archivo está vacío") + else: + actualizar(archivo) + case "4": + if os.stat(archivo).st_size == 0: + print("El archivo está vacío") + else: + eliminar(archivo) + case "5": + if os.stat(archivo).st_size == 0: + print("El archivo está vacío") + else: + totales(archivo) + case "s": + print("Saliendo...") + os.remove(archivo) + break + case _: + print("Opción incorrecta") + +def añadir(archivo): + producto = "" + nombre = input("Dime el nombre: ") + try: + cantidad = int(input("Cantidad vendida: ")) + precio = float(input("Precio: ")) + producto = f"{nombre}, {cantidad}, {precio}\n" + with open (archivo, 'a') as a: + a.write(producto) + print("Producto añadido") + except ValueError: + print("La cantidad debe ser un número entero y el precio entero o decimal") + + +def consultar(archivo): + with open (archivo, 'r') as a: + print(a.read()) + +def actualizar(archivo): + buscar = input("Dime el valor del campo a actualizar: ") + cambiar = input("Dime lo que quieres poner: ") + + contenido = open(archivo, 'r').read() + contenido = contenido.replace(buscar, cambiar) + + with open (archivo, 'w') as a: + a.write(contenido) + print("Cambio realizado") + +def eliminar(archivo): + producto = input("Dime el nombre del producto a eliminar: ") + encontrado = False + contador = 0 + + with open (archivo, 'r') as a: + for linea in a: + if producto in linea: + encontrado = True + break + else: + contador += 1 + + if encontrado: + a = open (archivo, 'r') + lineas = a.readlines() + a.close() + with open (archivo, 'w') as a: + linea = lineas[contador] + lineas.remove(linea) + for linea in lineas: + a.write(linea) + print("Producto eliminado") + else: + print("Producto no encontrado") + +def totales(archivo): + lista = [] + suma = 0 + total = 0 + + with open (archivo, 'r') as a: + lista = [linea.split(", ") for linea in a] + for linea in lista: + suma += float(linea[1]) * float(linea[2]) + print(f"Cantidad ganada con ventas de {linea[0]}: {suma}") + total += suma + print(f"Cantidad total ganada por las ventas: {total}") + + +gestor_ventas() \ No newline at end of file From 6a4827ff90a4e4ea6900a5a2f17c844bc8347a3c Mon Sep 17 00:00:00 2001 From: SaicoBys Date: Fri, 21 Jun 2024 23:28:45 -0400 Subject: [PATCH 12/66] #01 - python --- .../python/saicobys.py | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/saicobys.py diff --git a/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/saicobys.py b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/saicobys.py new file mode 100644 index 0000000000..0293e184fc --- /dev/null +++ b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/saicobys.py @@ -0,0 +1,82 @@ +# Operadores aritméticos +x = 10 +y = 3 +suma = x + y +resta = x - y +multiplicacion = x * y +division = x / y +division_entera = x // y +modulo = x % y +potencia = x ** y + +print("Suma:", suma) +print("Resta:", resta) +print("Multiplicacion:", multiplicacion) +print("Division:", division) +print("division entera:", division_entera) +print("Modulo:", modulo) +print("Potencia:", potencia) + +# Operadores de comparacion +a = 5 +b = 8 +print("a == b:", a == b) +print("a != b:", a != b) +print("a > b:", a > b) +print("a < b:", a < b) +print("a >= b:", a >= b) +print("a <= b:", a <= b) + +# Operadores lógicos +c = True +d = False +print("c and d:", c and d) +print("c or d:", c or d) +print("not c:", not c) + +# Operadores de asignación +e = 15 +e += 5 # e = e + 5 +print("e += 5:", e) +e -= 3 # e = e - 3 +print("e -= 3:", e) + +# Operadores de identidad +f = [1, 2, 3] +g = [1, 2, 3] +h = f +print("f is g:", f is g) # False (objetos diferentes) +print("f is h:", f is h) # True (misma referencia) +print("f == g:", f == g) # True (mismo contenido) + +# Operadores de pertenencia +lista = [1, 2, 3, 4] +print("1 in lista:", 1 in lista) +print("5 in lista:", 5 in lista) + +# Condicionales +edad = 25 + +if edad < 18: + print("Eres menor de edad") +elif edad >= 18 and edad < 65: + print("Eres adulto") +else: + print("Eres jubilado") + +# Iterativas (bucles) +for i in range(1, 6): # Imprime números del 1 al 5 + print(i) + +numero = 1 +while numero <= 5: # Imprime números del 1 al 5 + print(numero) + numero += 1 + +# Excepciones +try: + resultado = 10 / 0 # División por cero (error) +except ZeroDivisionError as e: + print("Error:", e) +finally: + print("Fin del programa") From 8f39ad3b8ed99d51551256d56fea4b664545e5e7 Mon Sep 17 00:00:00 2001 From: Miguel Rejon Date: Fri, 21 Jun 2024 21:31:43 -0600 Subject: [PATCH 13/66] #00 - Javascript --- .../javascript/miguelRejon96.js | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/javascript/miguelRejon96.js diff --git a/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/javascript/miguelRejon96.js b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/javascript/miguelRejon96.js new file mode 100644 index 0000000000..dcfe242617 --- /dev/null +++ b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/javascript/miguelRejon96.js @@ -0,0 +1,35 @@ +// Sitio oficial de Javascript: https://developer.mozilla.org/es/docs/Web/JavaScript + +//Este es un comentario en una línea +/* + Este es un comentario en varías líneas +*/ + +//Constante +const greetings = 'Hello' + +//Variable +let language = 'Javascript' + +//Tipos de datos: + +//String +const thiIsAString = 'This is a string' + +//Number +const thisIsANumber = 1 + +//BigInt +const thisIsABigInt = BigInt(9007199254740991) + +//Boolean +const thisIsABoolean = true + +//Undefined +let thisIsAnUndefined + +//Symbol +const thisIsASymbol = Symbol() + + +console.log(`${greetings} ${language}`) \ No newline at end of file From 3960921cc7ae66596aa9af81f20dcaa3aa6e4f21 Mon Sep 17 00:00:00 2001 From: Miguel Rejon Date: Sat, 22 Jun 2024 00:21:36 -0600 Subject: [PATCH 14/66] #01 - Javascript --- .../javascript/miguelRejon96.js | 129 ++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/javascript/miguelRejon96.js diff --git a/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/javascript/miguelRejon96.js b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/javascript/miguelRejon96.js new file mode 100644 index 0000000000..df9b490856 --- /dev/null +++ b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/javascript/miguelRejon96.js @@ -0,0 +1,129 @@ +/* + * EJERCICIO: + * - Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje: + * Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits... + * (Ten en cuenta que cada lenguaje puede poseer unos diferentes) + * - Utilizando las operaciones con operadores que tú quieras, crea ejemplos + * que representen todos los tipos de estructuras de control que existan + * en tu lenguaje: + * Condicionales, iterativas, excepciones... + * - Debes hacer print por consola del resultado de todos los ejemplos. + * + * DIFICULTAD EXTRA (opcional): + * Crea un programa que imprima por consola todos los números comprendidos + * entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3. + * + * Seguro que al revisar detenidamente las posibilidades has descubierto algo nuevo. + */ + +//Operadores Aritméticos +let x = 10; +let y = 5; +console.log("Suma: ", x + y); //Suma +console.log("Resta: ", x - y); //Resta +console.log("Multiplicación: ", x * y); //Multiplicación +console.log("División", x / y); //División +console.log("Residuo", x % y); //Residuo +console.log("Exponenciación: ", x ** y); //Exponenciación + +//Operadores de asignación +let a = 10; +a += 3; // a = a +3 +console.log("a += 3: ", a); +a -= 3; // a = a - 3 +console.log("a -= 3: ", a); +a *= 3; // a = a * 3 +console.log("a *= 3: ", a); +a /= 3; // a = a / 3 +console.log("a /= 3: ", a); +a %= 3; // a = a % 3 +console.log("a %= 3: ", a); +a **= 3; // a = a ** 3 +console.log("a **= 3: ", a); + +//Operadores de comparación +let b = 5; +console.log("a == b: ", a == b); //Igualdad +console.log("a === b: ", a === b); //Igualdad estricta +console.log("a != b: ", a != b); //Desigualdad +console.log("a !== b: ", a !== b); //Desigualdad estricta +console.log("a > b: ", a > b); //Mayor que +console.log("a < b: ", a < b); //Menor que +console.log("a >= b: ", a >= b); //Mayor o igual que +console.log("a <= b: ", a <= b); //Menor o igual que + +//Operadores lógicos +console.log("true && false: ", true && false); // AND +console.log("true || false: ", true || false); // OR +console.log("!true: ", !true); //NOT + +//Operadores de Bits +console.log(x << y); //Desplazamiento a la izquierda +console.log(x >> y); //Desplazamiento a la derecha +console.log(x >>> y); //Desplazamiento a la derecha sin signo +console.log(x & y); //Asignación AND bit a bit +console.log(x ^ y); //Asignación XOR bit a bit +console.log(x | y); //Asignación OR bit a bit +console.log(x && (x = y)); //Asignación AND lógico +console.log(x || (x = y)); //Asignación OR lógico +console.log(x ?? (x = y)); //Asignación de anulación lógica + +//Estucturas de control + +// Condicionales + +if (x > y) { + console.log("x es mayor que y"); +} else { + console.log("x no es mayor que y"); +} + +let z = 3; +switch (z) { + case 1: + console.log("Z es 1"); + break; + case 2: + console.log("Z es 2"); + break; + case 3: + console.log("z es 3"); + break; + default: + console.log("z no es 1,2 o 3"); +} + +//Iterativas +for (let i = 0; i < 5; i++) { + console.log("For loop i: ", i); +} +let j = 0; +while (j < 5) { + console.log("while loop j: ", j); + j++; +} +let k = 0; +do { + console.log("do while loop k: ", k); + k++; +} while (k < 5); + +//Excepciones +try { + throw new error("Error"); +} catch (error) { + console.log("Mensaje: ", error.message); +} finally { + console.log("Finally"); +} + +//Ejercicio Extra +function extraExercise() { + for (let i = 10; i <= 55; i++) { + if (i % 2 == 0 && i !== 16 && i % 3 !== 0) { + console.log(i); + } + } +} + +extraExercise(); From 67049b38304a481a21d8ff1a7efc641463f58969 Mon Sep 17 00:00:00 2001 From: Bernat Date: Sat, 22 Jun 2024 15:02:38 +0200 Subject: [PATCH 15/66] #21 - JavaScript --- Roadmap/21 - CALLBACKS/javascript/bernatcs.js | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Roadmap/21 - CALLBACKS/javascript/bernatcs.js diff --git a/Roadmap/21 - CALLBACKS/javascript/bernatcs.js b/Roadmap/21 - CALLBACKS/javascript/bernatcs.js new file mode 100644 index 0000000000..66314b67c2 --- /dev/null +++ b/Roadmap/21 - CALLBACKS/javascript/bernatcs.js @@ -0,0 +1,52 @@ +// ** EJERCICIO + +const readline = require('node:readline'); + +function numeroAnos(callback) { + const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout + }); + + rl.question('Por favor ingresa tu edad: ', (edad) => { + callback(edad); + rl.close(); + }); +} + +function cuandoNaciste(edad) { + let actual = new Date(); + let anoNacimiento = actual.getFullYear() - edad; + console.log('Naciste en el: ' + anoNacimiento + ' o ' + (anoNacimiento - 1)); +} + +// numeroAnos(cuandoNaciste) + + +// ** DIFICULTAD EXTRA ** ------------------------------------------------------------------------------------------------------------------------------------------------ + +function procesaPedido(nombrePlato, callbackConfirmacion, callbackListo, callbackEntrega) { + console.log(`Iniciando pedido para ${nombrePlato}`); + setTimeout(() => { + callbackConfirmacion(nombrePlato); + setTimeout(() => { + callbackListo(nombrePlato); + setTimeout(() => { + callbackEntrega(nombrePlato); + }, Math.random() * 9000 + 1000); + }, Math.random() * 9000 + 1000); + }, Math.random() * 9000 + 1000); +} + +procesaPedido( + 'Pizza Margarita', + (plato) => { + console.log(`Confirmación recibida para ${plato}.`); + }, + (plato) => { + console.log(`${plato} está listo para ser entregado.`); + }, + (plato) => { + console.log(`${plato} ha sido entregado al cliente.`); + } +); \ No newline at end of file From 1639bc694fdcc4c63b71010be49e9c42b7e06e99 Mon Sep 17 00:00:00 2001 From: AlanShakir <144908590+AlanShakir@users.noreply.github.com> Date: Sat, 22 Jun 2024 13:57:49 -0400 Subject: [PATCH 16/66] #25 - Python manejo de logs --- Roadmap/25 - LOGS/python/alanshakir.py | 85 ++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 Roadmap/25 - LOGS/python/alanshakir.py diff --git a/Roadmap/25 - LOGS/python/alanshakir.py b/Roadmap/25 - LOGS/python/alanshakir.py new file mode 100644 index 0000000000..1ee368df76 --- /dev/null +++ b/Roadmap/25 - LOGS/python/alanshakir.py @@ -0,0 +1,85 @@ +""" +* + * EJERCICIO: + * Explora el concepto de "logging" en tu lenguaje. Configúralo y muestra + * un ejemplo con cada nivel de "severidad" disponible. + * + * DIFICULTAD EXTRA (opcional): + * Crea un programa ficticio de gestión de tareas que permita añadir, eliminar + * y listar dichas tareas. + * - Añadir: recibe nombre y descripción. + * - Eliminar: por nombre de la tarea. + * Implementa diferentes mensajes de log que muestren información según la + * tarea ejecutada (a tu elección). + * Utiliza el log para visualizar el tiempo de ejecución de cada tarea. + */ +""" +import logging +import random + +logging.basicConfig(format="%(process)d %(levelname)s %(message)s", level=logging.DEBUG) +logging.debug("esto es una depuracion") +logging.info("esto es una confirmacion") +logging.warning("esto es una advertencia") +logging.error("esto es un mensaje de error") +logging.critical("esto es un mensaje critico") + +#Extra + +class GestionTareas: + def __init__(self): + self.tareas = {} + + + + def agg_tarea(self): + name = input("Introduzca nombre: ") + description = input("Introduzca breve descripcion de la tarea: ") + if name in self.tareas: + logging.error("La tarea ya existe") + execution_time = random.randint(1,5) + self.tareas[name]= { + "description":description, + "execution_time":execution_time} + logging.info("tarea agregada") + + def list_tareas(self): + if not self.tareas: + logging.error("La tarea no existe") + for name, description in self.tareas.items(): + logging.info(f"nombre de la tarea: {name}") + logging.info(f"Descripcion: {description['description']}") + logging.info(f"Tiempo de ejecucion: {description['execution_time']} segundos") + + def del_tareas(self): + name = input("Introduzca nombre: ") + if name not in self.tareas: + logging.error("La tarea no existe") + else: + del self.tareas[name] + logging.info(f"la tarea {name} fue eliminada") + + + +task = GestionTareas() +while True: + print("--------->Gestor de Tareas<------------------") + print("---->Elija una de las siguientes opciones<---") + print("1. Agregar: ") + print("2. Listar: ") + print("3. Eliminar: ") + print("4. Salir: ") + + option = int(input("Seleccione una opcion: ")) + + if option == 1: + task.agg_tarea() + elif option == 2: + task.list_tareas() + elif option == 3: + task.del_tareas() + elif option == 4: + print("Has elegido salir del programa, Hasta luego") + break + else: + print("elija una de las opciones indicadas") From ee12ef1f679e3ce5a442f39c43db5189d7f09714 Mon Sep 17 00:00:00 2001 From: Queso Date: Sat, 22 Jun 2024 12:58:59 -0500 Subject: [PATCH 17/66] Ejercicio --- Roadmap/08 - CLASES/python/NeosV.py | 94 +++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 Roadmap/08 - CLASES/python/NeosV.py diff --git a/Roadmap/08 - CLASES/python/NeosV.py b/Roadmap/08 - CLASES/python/NeosV.py new file mode 100644 index 0000000000..1424abe6d9 --- /dev/null +++ b/Roadmap/08 - CLASES/python/NeosV.py @@ -0,0 +1,94 @@ + + +class Programador: + + def __init__(self, nombre:str, edad:int, lenguaje:list): + self.nombre = nombre + self.edad = edad + self.lenguaje = lenguaje + + def impri(self): + print(f"Nombre: {self.nombre} Edad: {self.edad} Lenguaje: {self.lenguaje}") + + + + + +my_programador = Programador("Andres", 22 , ["css","Python"]) +my_programador.impri() +my_programador.edad = 24 +my_programador.impri() + + +class Stack: + def __init__(self): + self.stack = [] + + def anadir(self,item): + + self.stack.append(item) + print("Accion completada") + + def eliminar(self): + + self.stack.pop() + + print("Eliminacion completada") + + def cont(self): + + print(len(self.stack)) + + def imprimir(self): + + for item in reversed(self.stack): + print(item) + + + + +my_stack = Stack() +my_stack.anadir("a") +my_stack.anadir("b") +my_stack.anadir("c") +my_stack.imprimir() +my_stack.cont() +my_stack.eliminar() +my_stack.imprimir() + + +class Queue: + def __init__(self): + self.queue = [] + + def anadir(self,item): + + self.queue.append(item) + print("Accion completada") + + def eliminar(self): + + self.queue.pop(0) + + print("Eliminacion completada") + + def cont(self): + + print(len(self.queue)) + + def imprimir(self): + + for item in (self.queue): + print(item) + + + + +my_queue = Queue() +my_queue.anadir("a") +my_queue.anadir("b") +my_queue.anadir("c") +my_queue.imprimir() +my_queue.cont() +my_queue.eliminar() +my_queue.imprimir() From 428c5f891ad63d613b267d9cdf417ad827fbaac5 Mon Sep 17 00:00:00 2001 From: Jaime <141444148+jaimeNar@users.noreply.github.com> Date: Sat, 22 Jun 2024 20:12:36 +0200 Subject: [PATCH 18/66] #00 - Java --- .../java/jaimeNar.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/java/jaimeNar.java diff --git a/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/java/jaimeNar.java b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/java/jaimeNar.java new file mode 100644 index 0000000000..c8aad17769 --- /dev/null +++ b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/java/jaimeNar.java @@ -0,0 +1,37 @@ +public class jaimeNar { + public static void main(String args[]) { + // URL del sitio web oficial + /** + * https://www.java.com + **/ + + // Diferentes sintáxis para crear comentarios + // Comentario de una sola línea + + /* + * Comentario de varias líneas + */ + + /** + * Otro comentario de varias líneas + **/ + + int variable; // Variable + + final int constant; // Constante + + // Variables que representan los tipos de datos primitivos + byte by = 127; + short num_sh = 32767; + int num = 234567834; + long num_long = 456546465L; + float num_float = 1.5f; + double num_double = 3.7; + char character = 'A'; + boolean bool = true; + + // Imprime por terminal el texto: "¡Hola, [y el nombre de tu lenguaje]!" + System.out.println("¡Hola, Java!"); + } +} + From fdfbd69bb69039de449ee3180b299d03962e4001 Mon Sep 17 00:00:00 2001 From: alejomazov Date: Sat, 22 Jun 2024 14:15:55 -0400 Subject: [PATCH 19/66] 03-Python --- .../python/alejomazov.py | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 Roadmap/03 - ESTRUCTURAS DE DATOS/python/alejomazov.py diff --git a/Roadmap/03 - ESTRUCTURAS DE DATOS/python/alejomazov.py b/Roadmap/03 - ESTRUCTURAS DE DATOS/python/alejomazov.py new file mode 100644 index 0000000000..b8e5bf535b --- /dev/null +++ b/Roadmap/03 - ESTRUCTURAS DE DATOS/python/alejomazov.py @@ -0,0 +1,146 @@ + + + + +##sets + +my_set = {"Alejandro", "Kevin", "Carmenza", 36} # no se puede ordenar y no se repiten +my_set.add (24) +my_set.add (24) +print (my_set) +my_set.remove ("Alejandro") +print(my_set) + +#diccionarios + +diccionario = { + "nombre": "alejandro", + "edad":24, + "apellido":"Mazo" + } +print (diccionario) + +diccionario["sexo"] = "Masculino" +print (diccionario) +del diccionario["edad"] +print (diccionario) +print(list(diccionario)) +print (sorted(diccionario)) + + +#Tuplas +tuplas:tuple = ("hola", "Kevin", "Carmenza", 36) # pueden ser de distintos tipos, pero son inmutables +print (tuplas[1]) + +#Listas + +lista = [1,2,3,4,5,6,6] #Es mutable, se pueden repetir elementos +lista.append (5) +print(lista) +lista.sort() +print(lista) +lista.pop(2) +print(lista) +lista[2] = "Fabian" +print(lista) + + +##extra + + +contactos = { + "Nombre":[], + "Apellido":[], + "Numero":[] +} +def menu(): + print("\n Contactos\n\n¿Que operacion desea realizar?\n\n ----Menu----") + print("\n1. Agregar contacto.\n2. Buscar contacto\n3. Eliminar contacto.\n4. Actualizar contacto.\n5. Salir.\n ") + +def agregar(): + print("Ingresa el nombre: ") + nombre = str(input()) + contactos["Nombre"].append(nombre) + print("Ingresa el apellido: ") + apellido = str(input()) + contactos["Apellido"].append(apellido) + while True: + print("Ingresa el numero de telefono: ") + try: + numero = int(input()) + numero_str = str(numero) + count = len(numero_str) + if count <= 11: + contactos["Numero"].append(numero) + print ("contacto agregado") + break + else: + print ("Ingrese un numero de 11 digitos") + except ValueError as e: + print(f"Ingrese un numero correcto.... error {e}") + + +def buscar(): + nombre = str(input("Ingrese el nombre de contacto que desea buscar:\n")) + apellido = str(input("ingrese el apellido del contato que desea buscar:\n")) + + for nombres, apellidos, numeros in zip(contactos["Nombre"],contactos["Apellido"],contactos["Numero"]): + if nombre == nombres and apellido == apellidos: + print (nombres,apellidos, numeros) + + +def eliminar(): + nombre = str(input("Ingrese el nombre del contacto que desea eliminar:\n")) + apellido = str(input("ingrese el apellido del contato que desea eliminar:\n")) + + for nombres, apellidos, numeros in zip(contactos["Nombre"],contactos["Apellido"],contactos["Numero"]): + if nombre == nombres and apellido == apellidos: + contactos["Nombre"].remove(nombre) + contactos["Apellido"].remove(apellido) + contactos["Numero"].remove(numeros) + + + print("Usuario eliminado") + +def actualizar(): + nombre = str(input("Ingrese el nombre del contacto que desea actualizar:\n")) + apellido = str(input("ingrese el apellido del contato que desea actualizar:\n")) + + for i in range(len(contactos["Nombre"])): + if nombre == contactos["Nombre"][i] and apellido == contactos["Apellido"][i]: + update_tel = int(input("Ingrese el numero nuevo: ")) + contactos["Numero"][i] = update_tel + print("Contacto actualizado") + return + + + +def salir(): + print("Saliendo...") + + + +while True: + menu() + opcion= int(input()) + if opcion > 5 or opcion < 1: + print("Seleccione una opcion del menu") + else: + if opcion == 1: + agregar() + elif opcion == 2: + buscar() + elif opcion == 3: + eliminar() + elif opcion == 4: + actualizar() + elif opcion == 5: + salir() + break + else: + print("Selecione una opcion correcta") + + + + + From bc2d4b2ba1fd020b4b22a761470b2efbdf3503fd Mon Sep 17 00:00:00 2001 From: Daniel Galvan Date: Sat, 22 Jun 2024 21:22:45 +0100 Subject: [PATCH 20/66] #25 - Python --- Roadmap/25 - LOGS/python/Trufoplus.py | 74 +++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 Roadmap/25 - LOGS/python/Trufoplus.py diff --git a/Roadmap/25 - LOGS/python/Trufoplus.py b/Roadmap/25 - LOGS/python/Trufoplus.py new file mode 100644 index 0000000000..f1127b2440 --- /dev/null +++ b/Roadmap/25 - LOGS/python/Trufoplus.py @@ -0,0 +1,74 @@ +############################################################################### +### EJERCICIO +############################################################################### +import logging +from datetime import datetime + +# Configuracion basica de un logginf +logging.basicConfig( + #filename='my_log.log', # Nombre del archivo de log, si no lo especificas se mostrara por consola + filemode='w', # Modo fe apertura del archivo + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', #Formato del mesaje + datefmt='%d/%m/%Y %H:%M:%S', # Formato de la fecha + level=logging.DEBUG # Nivel de severidad minimo + ) + + +# Uso del logging + +logging.debug('Esto es un mensaje de depuración') +logging.info('Esto es un mensaje informativo') +logging.warning('Esto es una advertencia') +logging.error('Esto es un mensaje de error') +logging.critical('Esto es un mensaje crítico') +# Para separar los ejerccios en la consola +print() +print() +print() +############################################################################### +### DIFICULTAD EXTRA +############################################################################### +class TaskManagement(): + """ + Programa de gestion de tareas + """ + def __init__(self): + self.tasks = {} + logging.info("Inicialización del programa de gestión de tareas") + + def add_task(self, name: str, description: str): + start_time = datetime.now() + if name in self.tasks: + logging.warning(f"La tarea '{name}' ya existe. No se puede agregar de nuevo.") + return + self.tasks[name] = description + logging.info(f"Tarea '{name}' añadida con éxito.") + logging.debug(f"Descripción: {description}") + end_time = datetime.now() + logging.info(f"Tiempo de ejecución para añadir tarea: {end_time - start_time}") + + def delete_task(self, name: str): + start_time = datetime.now() + if name not in self.tasks: + logging.error(f"La tarea '{name}' no existe. No se puede eliminar.") + return + del self.tasks[name] + logging.info(f"Tarea '{name}' eliminada con éxito.") + end_time = datetime.now() + logging.info(f"Tiempo de ejecución para eliminar tarea: {end_time - start_time}") + + def __str__(self): + print("\nLISTA DE TAREAS: ") + return "\n".join([f"{name}: {desc}" for name, desc in self.tasks.items()]) + + +# Probando el codigo +mis_tareas = TaskManagement() +mis_tareas.add_task('Tarea_1', 'Limpiar el polvo') +mis_tareas.add_task('Tarea_2', 'Limpiar los baños') +mis_tareas.add_task('Tarea_2', 'Limpiar los baños') +print(mis_tareas) +mis_tareas.delete_task('Tarea_1') +mis_tareas.add_task('Tarea_3', 'Limpiar la cocina') +print(mis_tareas) +mis_tareas.delete_task('Tarea_4') \ No newline at end of file From 730590b44300ccff50ebdb02ea19003b163f36dd Mon Sep 17 00:00:00 2001 From: Queso Date: Sat, 22 Jun 2024 16:00:55 -0500 Subject: [PATCH 21/66] Ejercicio --- Roadmap/09 - HERENCIA/python/NeosV.py | 96 +++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 Roadmap/09 - HERENCIA/python/NeosV.py diff --git a/Roadmap/09 - HERENCIA/python/NeosV.py b/Roadmap/09 - HERENCIA/python/NeosV.py new file mode 100644 index 0000000000..9eaa81ef57 --- /dev/null +++ b/Roadmap/09 - HERENCIA/python/NeosV.py @@ -0,0 +1,96 @@ +class Animal: + + def __init__(self,name): + self.name = name + + def sound(self): + pass + + + +class Perro(Animal): + + def sound(self): + + print("Guau") + +class Gato(Animal): + + def sound(self): + + print("Miau") + + +my_animal = Animal("Animal") +my_animal.sound() +my_perro = Perro("Perro") +my_perro.sound() +my_gato = Gato("Gato") +my_gato.sound() + + + + +class Empresa: + + def __init__(self, id:int, name:str): + + self.id = id + self.name = name + self.empleados = [] + + + def emplear(self, empleados): + self.empleados.append(empleados) + + +class Gerente(Empresa): + + def coordinar_proyectos(self): + print(f"{self.name} esta coordinando los proyectos de la empresa") + + +class Gerente_Proyecto(Empresa): + + def __init__(self, id: int, name: str, proyecto:str): + super().__init__(id, name) + self.proyecto = proyecto + + def coordinar_proyecto(self): + print(f"{self.name} esta coordinando su proyecto {self.proyecto}") + + def proyecto_ger(self): + print(f"{self.name} esta coordinando el {self.proyecto}") + + +class Programador(Empresa): + + def __init__(self, id: int, name: str, lenguaje:str): + super().__init__(id, name) + self.lenguaje = lenguaje + + def programar(self): + print(f"{self.name} esta programando en {self.lenguaje}") + + def emplear(self, empleados): + print(f"un programdor no tiene empleados a su cargo") + + +my_gerente= Gerente(1, "Andres") +my_gerente_proyecto1= Gerente_Proyecto(2, "Jose", "Carrosdev" ) +my_gerente_proyecto2= Gerente_Proyecto(3, "Carlos", "Motosdev") +my_programador= Programador(4, "Maykol" , "Python") +my_programador2= Programador(5, "Abraham" , "Go") + +my_gerente.emplear(my_gerente_proyecto1) +my_gerente.emplear(my_gerente_proyecto2) + +my_gerente_proyecto1.emplear(my_programador) +my_gerente_proyecto2.emplear(my_programador2) + +my_programador.emplear(my_programador2) +my_programador.programar() + +my_gerente_proyecto1.coordinar_proyecto() + +my_gerente.coordinar_proyectos() From 0508341b443b6ac6e58152cbd47ed5f89e75ee57 Mon Sep 17 00:00:00 2001 From: kenysdev Date: Sat, 22 Jun 2024 16:21:10 -0500 Subject: [PATCH 22/66] 25-rust-LOGS --- Roadmap/25 - LOGS/rust/kenysdev.rs | 94 ++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 Roadmap/25 - LOGS/rust/kenysdev.rs diff --git a/Roadmap/25 - LOGS/rust/kenysdev.rs b/Roadmap/25 - LOGS/rust/kenysdev.rs new file mode 100644 index 0000000000..80826c96b3 --- /dev/null +++ b/Roadmap/25 - LOGS/rust/kenysdev.rs @@ -0,0 +1,94 @@ +/* +╔═══════════════════════════════════════╗ +║ Autor: Kenys Alvarado ║ +║ GitHub: https://github.com/Kenysdev ║ +║ 2024 - Rust ║ +╚═══════════════════════════════════════╝ +----------------------------------------- +* LOGS +----------------------------------------- +Dependencia: https://crates.io/crates/log + https://crates.io/crates/env_logger + +[dependencies] +env_logger = "0.11.3" +log = "0.4.21" +*/ + +use log::{error, warn, info, debug, trace}; + +fn main() { + /* + * EJERCICIO #1: + * Explora el concepto de "logging" en tu lenguaje. Configúralo y muestra + * un ejemplo con cada nivel de "severidad" disponible. + */ + + env_logger::Builder::from_default_env() + .filter_level(log::LevelFilter::Trace) + .init(); + + debug!("msg {}", "debug"); + warn!("msg warn"); + info!("msg info"); + trace!("msg trace"); + error!("msg error"); + + //____________________________________ + println!("EJERCICIO #2"); + + let mut tasks = Program::new(); + + tasks.add("a", "1"); + tasks.add("b", "2"); + tasks.add("c", "3"); + + tasks.delete("a"); + tasks.show_list(); + +} + +/* +* EJERCICIO #2: +* Crea un programa ficticio de gestión de tareas que permita añadir, eliminar +* y listar dichas tareas. +* - Añadir: recibe nombre y descripción. +* - Eliminar: por nombre de la tarea. +* Implementa diferentes mensajes de log que muestren información según la +* tarea ejecutada (a tu elección). +* Utiliza el log para visualizar el tiempo de ejecución de cada tarea. +*/ + +struct Program { + tasks: std::collections::HashMap, +} + +impl Program { + fn new() -> Self { + debug!("Se inició instancia."); + Program { + tasks: std::collections::HashMap::new(), + } + } + + fn add(&mut self, name: &str, description: &str) { + self.tasks.insert(name.to_string(), description.to_string()); + info!("Se agregó una tarea."); + } + + fn delete(&mut self, name: &str) { + if self.tasks.remove(name).is_some() { + info!("Tarea '{}' eliminada.", name); + } else { + println!(); + warn!("No se encontró la tarea '{}'.", name); + } + } + + fn show_list(&self) { + info!("Lista de tareas"); + for (task, des) in &self.tasks { + println!("{} -- {}", task, des); + } + } +} From 5f9aae26cf3b929157c82a52250b9032e593bea6 Mon Sep 17 00:00:00 2001 From: Bernat Date: Sat, 22 Jun 2024 23:43:38 +0200 Subject: [PATCH 23/66] #22 - JavaScript --- .../javascript/bernatcs.js | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Roadmap/22 - FUNCIONES DE ORDEN SUPERIOR/javascript/bernatcs.js diff --git a/Roadmap/22 - FUNCIONES DE ORDEN SUPERIOR/javascript/bernatcs.js b/Roadmap/22 - FUNCIONES DE ORDEN SUPERIOR/javascript/bernatcs.js new file mode 100644 index 0000000000..ffb3c190d8 --- /dev/null +++ b/Roadmap/22 - FUNCIONES DE ORDEN SUPERIOR/javascript/bernatcs.js @@ -0,0 +1,56 @@ +// ** EJERCICIO + +function ordenSuperior(comprobar, funcion) { + if (comprobar){ + funcion() + } else { + console.log('No hay nada que decir') + } +} + +function decirHola(){ + console.log('Hola') +} + +ordenSuperior('Sí que hay algo', decirHola) + +// ** DIFICULTAD EXTRA ** ------------------------------------------------------------------------------------------------------------------------------- + +// const estudiantes = [ +// { nombre: 'Estudiante1', fechaNacimiento: '2000-04-22', notas: [7, 8, 9, 8, 7, 9, 8] }, +// { nombre: 'Estudiante2', fechaNacimiento: '1999-08-15', notas: [6, 7, 8, 7, 8, 9, 7] }, +// { nombre: 'Estudiante3', fechaNacimiento: '2001-12-03', notas: [8, 9, 9, 8, 9, 8, 9] }, +// { nombre: 'Estudiante4', fechaNacimiento: '2002-02-27', notas: [7, 8, 7, 8, 7, 8, 7] }, +// { nombre: 'Estudiante5', fechaNacimiento: '2000-11-10', notas: [9, 8, 8, 9, 8, 8, 9] }, +// { nombre: 'Estudiante6', fechaNacimiento: '1998-05-30', notas: [6, 7, 7, 6, 7, 7, 6] } +// ]; + + +// // Promedio calificaciones: Obtiene una lista de estudiantes por nombre y promedio de sus calificaciones. +// const obtenerPromedio = notas => notas.reduce((a, b) => a + b, 0) / notas.length; + +// const promedios = estudiantes.map(estudiante => ({ +// nombre: estudiante.nombre, +// promedio: obtenerPromedio(estudiante.notas) +// })); + +// console.log("Promedios:", promedios); + +// // Mejores estudiantes: Obtiene una lista con el nombre de los estudiantes que tienen calificaciones con un 9 o más de promedio. +// const mejoresEstudiantes = promedios +// .filter(estudiante => estudiante.promedio >= 9) +// .map(estudiante => estudiante.nombre); + +// console.log("Mejores estudiantes:", mejoresEstudiantes); + +// // Nacimiento: Obtiene una lista de estudiantes ordenada desde el más joven. +// const estudiantesOrdenadosPorNacimiento = estudiantes +// .slice() +// .sort((a, b) => new Date(b.fechaNacimiento) - new Date(a.fechaNacimiento)); + +// console.log("Estudiantes ordenados por nacimiento (de más joven a más viejo):", estudiantesOrdenadosPorNacimiento.map(est => est.nombre)); + +// // Mayor calificación: Obtiene la calificación más alta de entre todas las de los alumnos. +// const mayorCalificacion = Math.max(...estudiantes.flatMap(estudiante => estudiante.notas)); + +// console.log("Mayor calificación:", mayorCalificacion); \ No newline at end of file From 75bdfd5efc3969cb56bce91a273d24a9d30be819 Mon Sep 17 00:00:00 2001 From: qwik zgheib mossad bashit Date: Sat, 22 Jun 2024 17:35:33 -0500 Subject: [PATCH 24/66] feat: #11 - Javascript --- .../javascript/qwik-zgheib.js | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 Roadmap/11 - MANEJO DE FICHEROS/javascript/qwik-zgheib.js diff --git a/Roadmap/11 - MANEJO DE FICHEROS/javascript/qwik-zgheib.js b/Roadmap/11 - MANEJO DE FICHEROS/javascript/qwik-zgheib.js new file mode 100644 index 0000000000..0b76be6f65 --- /dev/null +++ b/Roadmap/11 - MANEJO DE FICHEROS/javascript/qwik-zgheib.js @@ -0,0 +1,176 @@ +/* you need install package readline-sync */ +import { writeFile, readFile, unlink } from "fs"; +import readline from "readline-sync"; + +/* -- exercise */ +const createFile = (fileName, content) => { + writeFile(fileName, content, (err) => { + if (err) { + console.error("Error writing file:", err); + return; + } + console.log("File created successfully!"); + }); +}; + +const readFileContent = (fileName) => { + readFile(fileName, "utf8", (err, data) => { + if (err) { + console.error("Error reading file:", err); + return; + } + console.log("File content:", data); + }); +}; + +const deleteFile = (fileName) => { + unlink(fileName, (err) => { + if (err) { + console.error("Error deleting file:", err); + return; + } + console.log("File deleted successfully!"); + }); +}; + +const githubUsername = "qwik-zgheib"; + +const content = `Name: Qwik Zgheib\nAge: 22\nFavorite Programming Language: JavaScript`; + +const fileName = `${githubUsername}.txt`; + +createFile(fileName, content); +readFileContent(fileName); +deleteFile(fileName); + +/* -- extra challenge */ +import fs from "fs"; +import path from "path"; + +const filePath = path.join(process.cwd(), "sales.txt"); + +const SalesManager = { + addProduct: () => { + const name = readline.question("Enter product name: "); + const quantity = readline.questionInt("Enter quantity sold: "); + const price = readline.questionFloat("Enter price: "); + + const productLine = `${name}, ${quantity}, ${price}\n`; + fs.appendFileSync(filePath, productLine); + console.log("Product added."); + }, + + viewProducts: () => { + if (!fs.existsSync(filePath)) { + console.log("No products found."); + return; + } + const data = fs.readFileSync(filePath, "utf8"); + console.log("Current Products:\n" + data); + }, + + updateProduct: () => { + if (!fs.existsSync(filePath)) { + console.log("No products to update."); + return; + } + const data = fs.readFileSync(filePath, "utf8"); + const products = data.split("\n").filter((line) => line.trim() !== ""); + const name = readline.question("Enter product name to update: "); + + const productIndex = products.findIndex((line) => line.split(", ")[0] === name); + if (productIndex !== -1) { + const quantity = readline.questionInt("Enter new quantity sold: "); + const price = readline.questionFloat("Enter new price: "); + products[productIndex] = `${name}, ${quantity}, ${price}`; + fs.writeFileSync(filePath, products.join("\n") + "\n"); + console.log("Product updated."); + } else { + console.log("Product not found."); + } + }, + + deleteProduct: () => { + if (!fs.existsSync(filePath)) { + console.log("No products to delete."); + return; + } + const data = fs.readFileSync(filePath, "utf8"); + const products = data.split("\n").filter((line) => line.trim() !== ""); + const name = readline.question("Enter product name to delete: "); + + const newProducts = products.filter((line) => line.split(", ")[0] !== name); + fs.writeFileSync(filePath, newProducts.join("\n") + "\n"); + console.log("Product deleted."); + }, + + calculateTotalSales: () => { + if (!fs.existsSync(filePath)) { + console.log("No sales data found."); + return; + } + const data = fs.readFileSync(filePath, "utf8"); + const products = data.split("\n").filter((line) => line.trim() !== ""); + + let totalSales = 0; + products.forEach((line) => { + const [, quantity, price] = line.split(", "); + totalSales += parseInt(quantity) * parseFloat(price); + }); + console.log("Total Sales: $" + totalSales.toFixed(2)); + }, + + calculateSalesByProduct: () => { + if (!fs.existsSync(filePath)) { + console.log("No sales data found."); + return; + } + const data = fs.readFileSync(filePath, "utf8"); + const products = data.split("\n").filter((line) => line.trim() !== ""); + + const salesByProduct = {}; + products.forEach((line) => { + const [name, quantity, price] = line.split(", "); + if (!salesByProduct[name]) { + salesByProduct[name] = 0; + } + salesByProduct[name] += parseInt(quantity) * parseFloat(price); + }); + + for (const [name, total] of Object.entries(salesByProduct)) { + console.log(`${name}: $${total.toFixed(2)}`); + } + }, + + exit: () => { + if (fs.existsSync(filePath)) { + fs.unlinkSync(filePath); + } + console.log("Exiting and deleting sales file."); + process.exit(); + }, +}; + +const mainMenu = () => { + while (true) { + console.log( + "\n1. Add Product\n2. View Products\n3. Update Product\n4. Delete Product\n5. Calculate Total Sales\n6. Calculate Sales by Product\n7. Exit" + ); + + let choice = readline.questionInt("Enter your choice: "); + + while (choice < 1 || choice > 7) { + console.log("Invalid choice. Please try again."); + choice = readline.questionInt("Enter your choice: "); + } + if (choice === 1) SalesManager.addProduct(); + if (choice === 2) SalesManager.viewProducts(); + if (choice === 3) SalesManager.updateProduct(); + if (choice === 4) SalesManager.deleteProduct(); + if (choice === 5) SalesManager.calculateTotalSales(); + if (choice === 6) SalesManager.calculateSalesByProduct(); + if (choice === 7) SalesManager.exit(); + } +}; + +mainMenu(); From 7fe2c6ed6e4ba2ca91b9076c11ed86975e5ddc4d Mon Sep 17 00:00:00 2001 From: qwik zgheib mossad bashit Date: Sat, 22 Jun 2024 17:35:43 -0500 Subject: [PATCH 25/66] feat: #11 - Typescript --- .../typescript/qwik-zgheib.ts | 182 ++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 Roadmap/11 - MANEJO DE FICHEROS/typescript/qwik-zgheib.ts diff --git a/Roadmap/11 - MANEJO DE FICHEROS/typescript/qwik-zgheib.ts b/Roadmap/11 - MANEJO DE FICHEROS/typescript/qwik-zgheib.ts new file mode 100644 index 0000000000..a8a262dab9 --- /dev/null +++ b/Roadmap/11 - MANEJO DE FICHEROS/typescript/qwik-zgheib.ts @@ -0,0 +1,182 @@ +import readline from "readline-sync"; +import fs from "fs"; +import path from "path"; + +const createFile = (fileName: string, content: string): void => { + fs.writeFile(fileName, content, (err) => { + if (err) { + console.error("Error writing file:", err); + return; + } + console.log("File created successfully!"); + }); +}; + +const readFileContent = (fileName: string): void => { + fs.readFile(fileName, "utf8", (err, data) => { + if (err) { + console.error("Error reading file:", err); + return; + } + console.log("File content:", data); + }); +}; + +const deleteFile = (fileName: string): void => { + fs.unlink(fileName, (err) => { + if (err) { + console.error("Error deleting file:", err); + return; + } + console.log("File deleted successfully!"); + }); +}; + +const githubUsername: string = "qwik-zgheib"; + +const content: string = `Name: Qwik Zgheib\nAge: 22\nFavorite Programming Language: JavaScript`; + +const fileName: string = `${githubUsername}.txt`; + +createFile(fileName, content); +readFileContent(fileName); +deleteFile(fileName); + +/* -- extra challenge */ +const filePath: string = path.join(process.cwd(), "sales.txt"); + +interface SalesManagerType { + addProduct: () => void; + viewProducts: () => void; + updateProduct: () => void; + deleteProduct: () => void; + calculateTotalSales: () => void; + calculateSalesByProduct: () => void; + exit: () => void; +} + +const SalesManager: SalesManagerType = { + addProduct: (): void => { + const name: string = readline.question("Enter product name: "); + const quantity: number = readline.questionInt("Enter quantity sold: "); + const price: number = readline.questionFloat("Enter price: "); + + const productLine: string = `${name}, ${quantity}, ${price}\n`; + fs.appendFileSync(filePath, productLine); + console.log("Product added."); + }, + + viewProducts: (): void => { + if (!fs.existsSync(filePath)) { + console.log("No products found."); + return; + } + const data: string = fs.readFileSync(filePath, "utf8"); + console.log("Current Products:\n" + data); + }, + + updateProduct: (): void => { + if (!fs.existsSync(filePath)) { + console.log("No products to update."); + return; + } + const data: string = fs.readFileSync(filePath, "utf8"); + const products: string[] = data.split("\n").filter((line) => line.trim() !== ""); + const name: string = readline.question("Enter product name to update: "); + + const productIndex: number = products.findIndex((line) => line.split(", ")[0] === name); + if (productIndex !== -1) { + const quantity: number = readline.questionInt("Enter new quantity sold: "); + const price: number = readline.questionFloat("Enter new price: "); + products[productIndex] = `${name}, ${quantity}, ${price}`; + fs.writeFileSync(filePath, products.join("\n") + "\n"); + console.log("Product updated."); + } else { + console.log("Product not found."); + } + }, + + deleteProduct: (): void => { + if (!fs.existsSync(filePath)) { + console.log("No products to delete."); + return; + } + const data: string = fs.readFileSync(filePath, "utf8"); + const products: string[] = data.split("\n").filter((line) => line.trim() !== ""); + const name: string = readline.question("Enter product name to delete: "); + + const newProducts: string[] = products.filter((line) => line.split(", ")[0] !== name); + fs.writeFileSync(filePath, newProducts.join("\n") + "\n"); + console.log("Product deleted."); + }, + + calculateTotalSales: (): void => { + if (!fs.existsSync(filePath)) { + console.log("No sales data found."); + return; + } + const data: string = fs.readFileSync(filePath, "utf8"); + const products: string[] = data.split("\n").filter((line) => line.trim() !== ""); + + let totalSales: number = 0; + products.forEach((line) => { + const [, quantity, price] = line.split(", "); + totalSales += parseInt(quantity) * parseFloat(price); + }); + console.log("Total Sales: $" + totalSales.toFixed(2)); + }, + + calculateSalesByProduct: (): void => { + if (!fs.existsSync(filePath)) { + console.log("No sales data found."); + return; + } + const data: string = fs.readFileSync(filePath, "utf8"); + const products: string[] = data.split("\n").filter((line) => line.trim() !== ""); + + const salesByProduct: Record = {}; + products.forEach((line) => { + const [name, quantity, price] = line.split(", "); + if (!salesByProduct[name]) { + salesByProduct[name] = 0; + } + salesByProduct[name] += parseInt(quantity) * parseFloat(price); + }); + + for (const [name, total] of Object.entries(salesByProduct)) { + console.log(`${name}: $${total.toFixed(2)}`); + } + }, + + exit: (): void => { + if (fs.existsSync(filePath)) { + fs.unlinkSync(filePath); + } + console.log("Exiting and deleting sales file."); + process.exit(); + }, +}; + +const mainMenu = (): void => { + while (true) { + console.log( + "\n1. Add Product\n2. View Products\n3. Update Product\n4. Delete Product\n5. Calculate Total Sales\n6. Calculate Sales by Product\n7. Exit" + ); + + let choice: number = readline.questionInt("Enter your choice: "); + + while (choice < 1 || choice > 7) { + console.log("Invalid choice. Please try again."); + choice = readline.questionInt("Enter your choice: "); + } + if (choice === 1) SalesManager.addProduct(); + if (choice === 2) SalesManager.viewProducts(); + if (choice === 3) SalesManager.updateProduct(); + if (choice === 4) SalesManager.deleteProduct(); + if (choice === 5) SalesManager.calculateTotalSales(); + if (choice === 6) SalesManager.calculateSalesByProduct(); + if (choice === 7) SalesManager.exit(); + } +}; + +mainMenu(); From 664c93c02f43e58e03a4bc7b37108fe1ee6eeb7a Mon Sep 17 00:00:00 2001 From: qwik zgheib mossad bashit Date: Sat, 22 Jun 2024 17:35:51 -0500 Subject: [PATCH 26/66] feat: #12 - Javascript --- .../12 - JSON Y XML/javascript/qwik-zgheib.js | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Roadmap/12 - JSON Y XML/javascript/qwik-zgheib.js diff --git a/Roadmap/12 - JSON Y XML/javascript/qwik-zgheib.js b/Roadmap/12 - JSON Y XML/javascript/qwik-zgheib.js new file mode 100644 index 0000000000..53d2a13ee0 --- /dev/null +++ b/Roadmap/12 - JSON Y XML/javascript/qwik-zgheib.js @@ -0,0 +1,56 @@ +/* -- exercise */ +import fs from "fs"; + +const content = { + name: "Qwik Zgheib", + age: 22, + birthdate: "2002-11-09", + programmingLanguages: ["JavaScript", "Typescript", "Python"], +}; + +const exerciseMain = { + createfile: (filename, content, type = "json") => { + try { + const jsonContent = JSON.stringify(content); + if (type === "json") fs.writeFileSync(`${filename}.json`, jsonContent); + if (type === "xml") { + const xmlContent = ` + ${content.name} + ${content.age} + ${content.birthdate} + + ${content.programmingLanguages.map((lang) => `${lang}`).join("")} + + `; + fs.writeFileSync(`${filename}.xml`, xmlContent); + } + } catch (error) { + console.error(error); + } + }, + readFile: (filename) => { + try { + const jsonContent = fs.readFileSync(`${filename}.json`, "utf-8"); + const xmlContent = fs.readFileSync(`${filename}.xml`, "utf-8"); + console.log(`Reading ${filename}.json\n`, jsonContent); + console.log(`\nReading ${filename}.xml\n`, xmlContent); + } catch (error) { + console.error(error); + } + }, + deleteFile: (filename) => { + try { + console.log("Deleting files..."); + fs.unlinkSync(`${filename}.json`); + fs.unlinkSync(`${filename}.xml`); + } catch (error) { + console.error(error); + } + }, +}; + +exerciseMain.createfile("data", content, "json"); +exerciseMain.createfile("data", content, "xml"); + +exerciseMain.readFile("data"); +exerciseMain.deleteFile("data"); From 20a589090db24ab0b877705bd33304025412966e Mon Sep 17 00:00:00 2001 From: qwik zgheib mossad bashit Date: Sat, 22 Jun 2024 17:36:01 -0500 Subject: [PATCH 27/66] feat: #12 - Typescript --- .../12 - JSON Y XML/typescript/qwik-zgheib.ts | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Roadmap/12 - JSON Y XML/typescript/qwik-zgheib.ts diff --git a/Roadmap/12 - JSON Y XML/typescript/qwik-zgheib.ts b/Roadmap/12 - JSON Y XML/typescript/qwik-zgheib.ts new file mode 100644 index 0000000000..f8eec9f4b8 --- /dev/null +++ b/Roadmap/12 - JSON Y XML/typescript/qwik-zgheib.ts @@ -0,0 +1,65 @@ +/* -- exercise */ +import fs from "fs"; + +interface Content { + name: string; + age: number; + birthdate: string; + programmingLanguages: string[]; +} + +const content: Content = { + name: "Qwik Zgheib", + age: 22, + birthdate: "2002-11-09", + programmingLanguages: ["JavaScript", "Typescript", "Python"], +}; + +type FileType = "json" | "xml"; + +const exerciseMain = { + createfile: (filename: string, content: Content, type: FileType = "json"): void => { + try { + const jsonContent: string = JSON.stringify(content); + if (type === "json") fs.writeFileSync(`${filename}.json`, jsonContent); + if (type === "xml") { + const xmlContent: string = ` + ${content.name} + ${content.age} + ${content.birthdate} + + ${content.programmingLanguages.map((lang) => `${lang}`).join("")} + + `; + fs.writeFileSync(`${filename}.xml`, xmlContent); + } + } catch (error) { + console.error(error); + } + }, + readFile: (filename: string): void => { + try { + const jsonContent: string = fs.readFileSync(`${filename}.json`, "utf-8"); + const xmlContent: string = fs.readFileSync(`${filename}.xml`, "utf-8"); + console.log(`Reading ${filename}.json\n`, jsonContent); + console.log(`\nReading ${filename}.xml\n`, xmlContent); + } catch (error) { + console.error(error); + } + }, + deleteFile: (filename: string): void => { + try { + console.log("Deleting files..."); + fs.unlinkSync(`${filename}.json`); + fs.unlinkSync(`${filename}.xml`); + } catch (error) { + console.error(error); + } + }, +}; + +exerciseMain.createfile("data", content, "json"); +exerciseMain.createfile("data", content, "xml"); + +exerciseMain.readFile("data"); +exerciseMain.deleteFile("data"); From b097083fbb7530f244ed5632fcdc47f7ec0360da Mon Sep 17 00:00:00 2001 From: qwik zgheib mossad bashit Date: Sat, 22 Jun 2024 17:36:11 -0500 Subject: [PATCH 28/66] feat: #13 - Javascript --- .../javascript/qwik-zgheib.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Roadmap/13 - PRUEBAS UNITARIAS/javascript/qwik-zgheib.js diff --git a/Roadmap/13 - PRUEBAS UNITARIAS/javascript/qwik-zgheib.js b/Roadmap/13 - PRUEBAS UNITARIAS/javascript/qwik-zgheib.js new file mode 100644 index 0000000000..5204304c09 --- /dev/null +++ b/Roadmap/13 - PRUEBAS UNITARIAS/javascript/qwik-zgheib.js @@ -0,0 +1,20 @@ +import assert from "assert"; +export const sum = (a, b) => a + b; + +function test(description, fn) { + try { + fn(); + console.log(`✔️ ${description}`); + } catch (error) { + console.log(`❌ ${description}`); + console.error(error); + } +} + +test("adds 1 + 2 to equal 3", () => { + assert.strictEqual(sum(1, 2), 3); +}); + +test("adds 1 + 1 to equal 2", () => { + assert.strictEqual(sum(1, 1), 2); +}); From 54651515312534bdbc5ecf17bd0eb70010c22485 Mon Sep 17 00:00:00 2001 From: qwik zgheib mossad bashit Date: Sat, 22 Jun 2024 17:36:25 -0500 Subject: [PATCH 29/66] feat: #13 - Typescript --- .../typescript/qwik-zgheib.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Roadmap/13 - PRUEBAS UNITARIAS/typescript/qwik-zgheib.ts diff --git a/Roadmap/13 - PRUEBAS UNITARIAS/typescript/qwik-zgheib.ts b/Roadmap/13 - PRUEBAS UNITARIAS/typescript/qwik-zgheib.ts new file mode 100644 index 0000000000..d4abbc5b9b --- /dev/null +++ b/Roadmap/13 - PRUEBAS UNITARIAS/typescript/qwik-zgheib.ts @@ -0,0 +1,21 @@ +import assert from "assert"; + +export const sum = (a: number, b: number): number => a + b; + +function test(description: string, fn: () => void): void { + try { + fn(); + console.log(`✔️ ${description}`); + } catch (error) { + console.log(`❌ ${description}`); + console.error(error); + } +} + +test("adds 1 + 2 to equal 3", () => { + assert.strictEqual(sum(1, 2), 3); +}); + +test("adds 1 + 1 to equal 2", () => { + assert.strictEqual(sum(1, 1), 2); +}); From 98560534388d441548be73f0027858c6f34effa7 Mon Sep 17 00:00:00 2001 From: mouredev Date: Sun, 23 Jun 2024 00:14:35 +0000 Subject: [PATCH 30/66] Update stats --- Roadmap/stats.json | 1360 ++++++++++++++++++++++---------------------- 1 file changed, 689 insertions(+), 671 deletions(-) diff --git a/Roadmap/stats.json b/Roadmap/stats.json index 5563b3cfa1..d39115372a 100644 --- a/Roadmap/stats.json +++ b/Roadmap/stats.json @@ -1,33 +1,33 @@ { "challenges_total": 26, - "languages_total": 43, - "files_total": 5028, - "users_total": 893, + "languages_total": 44, + "files_total": 5046, + "users_total": 895, "challenges_ranking": [ { "order": 1, "name": "00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO", - "count": 995 + "count": 998 }, { "order": 2, "name": "01 - OPERADORES Y ESTRUCTURAS DE CONTROL", - "count": 608 + "count": 610 }, { "order": 3, "name": "02 - FUNCIONES Y ALCANCE", - "count": 469 + "count": 470 }, { "order": 4, "name": "03 - ESTRUCTURAS DE DATOS", - "count": 313 + "count": 314 }, { "order": 5, "name": "04 - CADENAS DE CARACTERES", - "count": 266 + "count": 267 }, { "order": 6, @@ -42,7 +42,7 @@ { "order": 8, "name": "07 - PILAS Y COLAS", - "count": 197 + "count": 198 }, { "order": 9, @@ -67,7 +67,7 @@ { "order": 13, "name": "14 - FECHAS", - "count": 105 + "count": 106 }, { "order": 14, @@ -87,7 +87,7 @@ { "order": 17, "name": "15 - ASINCRON\u00cdA", - "count": 97 + "count": 98 }, { "order": 18, @@ -102,7 +102,7 @@ { "order": 20, "name": "19 - ENUMERACIONES", - "count": 80 + "count": 81 }, { "order": 21, @@ -117,7 +117,7 @@ { "order": 23, "name": "22 - FUNCIONES DE ORDEN SUPERIOR", - "count": 54 + "count": 55 }, { "order": 24, @@ -132,75 +132,75 @@ { "order": 26, "name": "25 - LOGS", - "count": 17 + "count": 22 } ], "languages_ranking": [ { "order": 1, "name": "python", - "count": 2127, - "percentage": 42.3 + "count": 2135, + "percentage": 42.31 }, { "order": 2, "name": "javascript", - "count": 998, - "percentage": 19.85 + "count": 1001, + "percentage": 19.84 }, { "order": 3, "name": "java", "count": 428, - "percentage": 8.51 + "percentage": 8.48 }, { "order": 4, "name": "typescript", "count": 212, - "percentage": 4.22 + "percentage": 4.2 }, { "order": 5, "name": "c#", - "count": 203, + "count": 204, "percentage": 4.04 }, { "order": 6, "name": "kotlin", "count": 151, - "percentage": 3.0 + "percentage": 2.99 }, { "order": 7, "name": "swift", "count": 147, - "percentage": 2.92 + "percentage": 2.91 }, { "order": 8, "name": "go", - "count": 137, - "percentage": 2.72 + "count": 139, + "percentage": 2.75 }, { "order": 9, "name": "php", "count": 116, - "percentage": 2.31 + "percentage": 2.3 }, { "order": 10, "name": "rust", "count": 98, - "percentage": 1.95 + "percentage": 1.94 }, { "order": 11, "name": "c++", "count": 94, - "percentage": 1.87 + "percentage": 1.86 }, { "order": 12, @@ -211,26 +211,26 @@ { "order": 13, "name": "dart", - "count": 39, - "percentage": 0.78 + "count": 41, + "percentage": 0.81 }, { "order": 14, "name": "bash", "count": 32, - "percentage": 0.64 + "percentage": 0.63 }, { "order": 15, - "name": "ocaml", + "name": "vb.net", "count": 26, "percentage": 0.52 }, { "order": 16, - "name": "vb.net", - "count": 25, - "percentage": 0.5 + "name": "ocaml", + "count": 26, + "percentage": 0.52 }, { "order": 17, @@ -378,18 +378,24 @@ }, { "order": 41, - "name": "al", + "name": "f#", "count": 1, "percentage": 0.02 }, { "order": 42, - "name": "abap", + "name": "al", "count": 1, "percentage": 0.02 }, { "order": 43, + "name": "abap", + "count": 1, + "percentage": 0.02 + }, + { + "order": 44, "name": "raku", "count": 1, "percentage": 0.02 @@ -405,20 +411,20 @@ { "order": 2, "name": "kenysdev", - "count": 101, + "count": 103, "languages": 4 }, { "order": 3, - "name": "qwik-zgheib", - "count": 73, - "languages": 4 + "name": "hozlucas28", + "count": 75, + "languages": 3 }, { "order": 4, - "name": "hozlucas28", + "name": "qwik-zgheib", "count": 73, - "languages": 3 + "languages": 4 }, { "order": 5, @@ -465,7 +471,7 @@ { "order": 12, "name": "agusrosero", - "count": 45, + "count": 46, "languages": 4 }, { @@ -566,15 +572,15 @@ }, { "order": 29, - "name": "cesarcarmona30", - "count": 29, - "languages": 4 + "name": "amadorquispe", + "count": 30, + "languages": 2 }, { "order": 30, - "name": "amadorquispe", + "name": "cesarcarmona30", "count": 29, - "languages": 2 + "languages": 4 }, { "order": 31, @@ -680,51 +686,51 @@ }, { "order": 48, - "name": "avcenal", + "name": "christian-jfr", "count": 23, "languages": 1 }, { "order": 49, - "name": "isilanes", + "name": "avcenal", "count": 23, "languages": 1 }, { "order": 50, - "name": "ycanas", - "count": 22, - "languages": 2 + "name": "isilanes", + "count": 23, + "languages": 1 }, { "order": 51, - "name": "emedevelopa", + "name": "edalmava", "count": 22, - "languages": 1 + "languages": 10 }, { "order": 52, - "name": "parababire", + "name": "ycanas", "count": 22, - "languages": 1 + "languages": 2 }, { "order": 53, - "name": "christian-jfr", + "name": "emedevelopa", "count": 22, "languages": 1 }, { "order": 54, - "name": "ggilperez", + "name": "parababire", "count": 22, "languages": 1 }, { "order": 55, - "name": "edalmava", - "count": 21, - "languages": 9 + "name": "ggilperez", + "count": 22, + "languages": 1 }, { "order": 56, @@ -1346,145 +1352,145 @@ }, { "order": 159, - "name": "pcosin", + "name": "djsurgeon", "count": 8, "languages": 2 }, { "order": 160, - "name": "xmunder", + "name": "pcosin", "count": 8, "languages": 2 }, { "order": 161, - "name": "ansuzgs", + "name": "xmunder", "count": 8, "languages": 2 }, { "order": 162, - "name": "srvariable", + "name": "ansuzgs", "count": 8, - "languages": 1 + "languages": 2 }, { "order": 163, - "name": "westwbn", + "name": "luisolivaresj", "count": 8, - "languages": 1 + "languages": 2 }, { "order": 164, - "name": "vid92", + "name": "srvariable", "count": 8, "languages": 1 }, { "order": 165, - "name": "isj-code", + "name": "westwbn", "count": 8, "languages": 1 }, { "order": 166, - "name": "matitc", + "name": "vid92", "count": 8, "languages": 1 }, { "order": 167, - "name": "toral24", + "name": "isj-code", "count": 8, "languages": 1 }, { "order": 168, - "name": "jtrujilloalcocer", + "name": "matitc", "count": 8, "languages": 1 }, { "order": 169, - "name": "zequy40", + "name": "toral24", "count": 8, "languages": 1 }, { "order": 170, - "name": "linerlander", + "name": "jtrujilloalcocer", "count": 8, "languages": 1 }, { "order": 171, - "name": "darubiano", - "count": 7, - "languages": 7 + "name": "neosv", + "count": 8, + "languages": 1 }, { "order": 172, - "name": "nwpablodeveloper", - "count": 7, - "languages": 3 + "name": "zequy40", + "count": 8, + "languages": 1 }, { "order": 173, - "name": "djsurgeon", - "count": 7, - "languages": 2 + "name": "linerlander", + "count": 8, + "languages": 1 }, { "order": 174, - "name": "younes0-0", + "name": "darubiano", "count": 7, - "languages": 2 + "languages": 7 }, { "order": 175, - "name": "luisolivaresj", + "name": "nwpablodeveloper", "count": 7, - "languages": 2 + "languages": 3 }, { "order": 176, - "name": "ocandodev", + "name": "younes0-0", "count": 7, - "languages": 1 + "languages": 2 }, { "order": 177, - "name": "ldre3", + "name": "ocandodev", "count": 7, "languages": 1 }, { "order": 178, - "name": "mtirador", + "name": "ldre3", "count": 7, "languages": 1 }, { "order": 179, - "name": "abrahamraies", + "name": "mtirador", "count": 7, "languages": 1 }, { "order": 180, - "name": "18miguelgalarza", + "name": "abrahamraies", "count": 7, "languages": 1 }, { "order": 181, - "name": "marinaortells", + "name": "18miguelgalarza", "count": 7, "languages": 1 }, { "order": 182, - "name": "neosv", + "name": "marinaortells", "count": 7, "languages": 1 }, @@ -1502,313 +1508,313 @@ }, { "order": 185, + "name": "teren91", + "count": 7, + "languages": 1 + }, + { + "order": 186, "name": "curtobrull", "count": 6, "languages": 3 }, { - "order": 186, + "order": 187, "name": "fidelysla", "count": 6, "languages": 3 }, { - "order": 187, + "order": 188, "name": "luisk0706", "count": 6, "languages": 2 }, { - "order": 188, + "order": 189, "name": "luterfloyd", "count": 6, "languages": 2 }, { - "order": 189, + "order": 190, "name": "troleomotor10", "count": 6, "languages": 2 }, { - "order": 190, + "order": 191, "name": "danilo0203", "count": 6, "languages": 2 }, { - "order": 191, + "order": 192, "name": "isaias-alt", "count": 6, "languages": 2 }, { - "order": 192, + "order": 193, "name": "rserradev", "count": 6, "languages": 2 }, { - "order": 193, + "order": 194, "name": "roswer13", "count": 6, "languages": 2 }, { - "order": 194, + "order": 195, "name": "devknn", "count": 6, "languages": 2 }, { - "order": 195, + "order": 196, "name": "yeisonagm", "count": 6, "languages": 1 }, { - "order": 196, + "order": 197, "name": "deathwing696", "count": 6, "languages": 1 }, { - "order": 197, + "order": 198, "name": "andreavzqz", "count": 6, "languages": 1 }, { - "order": 198, + "order": 199, "name": "gliadev", "count": 6, "languages": 1 }, { - "order": 199, + "order": 200, "name": "mxtrar23", "count": 6, "languages": 1 }, { - "order": 200, + "order": 201, "name": "guillemduno", "count": 6, "languages": 1 }, { - "order": 201, + "order": 202, "name": "facundo-muoio", "count": 6, "languages": 1 }, { - "order": 202, + "order": 203, "name": "wolffcode", "count": 6, "languages": 1 }, { - "order": 203, + "order": 204, "name": "blancowilson", "count": 6, "languages": 1 }, { - "order": 204, + "order": 205, "name": "eduhumanes91", "count": 6, "languages": 1 }, { - "order": 205, + "order": 206, "name": "lazar171717ech", "count": 6, "languages": 1 }, { - "order": 206, + "order": 207, "name": "dafi02", "count": 6, "languages": 1 }, { - "order": 207, + "order": 208, "name": "alabacw74", "count": 5, "languages": 3 }, { - "order": 208, + "order": 209, "name": "bryan112094", "count": 5, "languages": 3 }, { - "order": 209, + "order": 210, "name": "alejandrodave", "count": 5, "languages": 2 }, { - "order": 210, + "order": 211, "name": "espinoleandroo", "count": 5, "languages": 2 }, { - "order": 211, + "order": 212, "name": "vmatmarco", "count": 5, "languages": 2 }, { - "order": 212, + "order": 213, "name": "jalivur", "count": 5, "languages": 2 }, { - "order": 213, + "order": 214, "name": "icedrek", "count": 5, "languages": 2 }, - { - "order": 214, - "name": "adridoce", - "count": 5, - "languages": 1 - }, { "order": 215, - "name": "karolle", + "name": "adridoce", "count": 5, "languages": 1 }, { "order": 216, - "name": "alvarofernandezavalos", + "name": "karolle", "count": 5, "languages": 1 }, { "order": 217, - "name": "vasilealexandru02", + "name": "alvarofernandezavalos", "count": 5, "languages": 1 }, { "order": 218, - "name": "lauracastrillonmp", + "name": "vasilealexandru02", "count": 5, "languages": 1 }, { "order": 219, - "name": "eloychavezdev", + "name": "lauracastrillonmp", "count": 5, "languages": 1 }, { "order": 220, - "name": "n1sek", + "name": "eloychavezdev", "count": 5, "languages": 1 }, { "order": 221, - "name": "vixito", + "name": "n1sek", "count": 5, "languages": 1 }, { "order": 222, - "name": "d4-n1", + "name": "vixito", "count": 5, "languages": 1 }, { "order": 223, - "name": "jose-luis-lanza", + "name": "d4-n1", "count": 5, "languages": 1 }, { "order": 224, - "name": "santiago434c", + "name": "jose-luis-lanza", "count": 5, "languages": 1 }, { "order": 225, - "name": "alberba", + "name": "santiago434c", "count": 5, "languages": 1 }, { "order": 226, - "name": "manjaitan", + "name": "alberba", "count": 5, "languages": 1 }, { "order": 227, - "name": "gabrielramos02", + "name": "manjaitan", "count": 5, "languages": 1 }, { "order": 228, - "name": "mirandayuber", + "name": "gabrielramos02", "count": 5, "languages": 1 }, { "order": 229, - "name": "augustdev2003", + "name": "mirandayuber", "count": 5, "languages": 1 }, { "order": 230, - "name": "thezhizn", + "name": "augustdev2003", "count": 5, "languages": 1 }, { "order": 231, - "name": "xemita007", + "name": "thezhizn", "count": 5, "languages": 1 }, { "order": 232, - "name": "yharyarias", + "name": "xemita007", "count": 5, "languages": 1 }, { "order": 233, - "name": "gmbarrios", + "name": "yharyarias", "count": 5, "languages": 1 }, { "order": 234, - "name": "mauricio-leyva", + "name": "gmbarrios", "count": 5, "languages": 1 }, { "order": 235, - "name": "boterop", + "name": "mauricio-leyva", "count": 5, "languages": 1 }, { "order": 236, - "name": "teren91", + "name": "boterop", "count": 5, "languages": 1 }, @@ -2678,3078 +2684,3090 @@ }, { "order": 381, - "name": "javierfiestasbotella", + "name": "guillesese", "count": 3, "languages": 1 }, { "order": 382, - "name": "davstudy", + "name": "javierfiestasbotella", "count": 3, "languages": 1 }, { "order": 383, - "name": "elkin-dev", + "name": "davstudy", "count": 3, "languages": 1 }, { "order": 384, - "name": "zzepu", + "name": "elkin-dev", "count": 3, "languages": 1 }, { "order": 385, - "name": "oscarhub90", + "name": "zzepu", "count": 3, "languages": 1 }, { "order": 386, - "name": "beonzj", + "name": "oscarhub90", "count": 3, "languages": 1 }, { "order": 387, - "name": "14davidnkt", + "name": "beonzj", "count": 3, "languages": 1 }, { "order": 388, - "name": "vandresca", + "name": "14davidnkt", "count": 3, "languages": 1 }, { "order": 389, - "name": "marlonleon2023", + "name": "vandresca", "count": 3, "languages": 1 }, { "order": 390, - "name": "frangarmez21", + "name": "marlonleon2023", "count": 3, "languages": 1 }, { "order": 391, - "name": "dylanb55", + "name": "frangarmez21", "count": 3, "languages": 1 }, { "order": 392, - "name": "juxxon23", + "name": "dylanb55", "count": 3, "languages": 1 }, { "order": 393, - "name": "mellamoomar", + "name": "juxxon23", "count": 3, "languages": 1 }, { "order": 394, - "name": "ikeragi05", + "name": "mellamoomar", "count": 3, "languages": 1 }, { "order": 395, - "name": "dmauricio4", + "name": "ikeragi05", "count": 3, "languages": 1 }, { "order": 396, - "name": "oscar503sv", + "name": "dmauricio4", "count": 3, "languages": 1 }, { "order": 397, - "name": "ivanpelu7", + "name": "oscar503sv", "count": 3, "languages": 1 }, { "order": 398, - "name": "bytecodesky", + "name": "ivanpelu7", "count": 3, "languages": 1 }, { "order": 399, - "name": "devvdroid01", - "count": 2, - "languages": 2 + "name": "bytecodesky", + "count": 3, + "languages": 1 }, { "order": 400, - "name": "jhonatanmustiolacas", + "name": "devvdroid01", "count": 2, "languages": 2 }, { "order": 401, - "name": "ismaelmatiz", + "name": "jhonatanmustiolacas", "count": 2, "languages": 2 }, { "order": 402, - "name": "sgb004", + "name": "ismaelmatiz", "count": 2, "languages": 2 }, { "order": 403, - "name": "tecfer", + "name": "sgb004", "count": 2, "languages": 2 }, { "order": 404, - "name": "lilberick", + "name": "tecfer", "count": 2, "languages": 2 }, { "order": 405, - "name": "camiloforero1997", + "name": "lilberick", "count": 2, "languages": 2 }, { "order": 406, - "name": "lydaf", + "name": "camiloforero1997", "count": 2, "languages": 2 }, { "order": 407, - "name": "carresoft", + "name": "lydaf", "count": 2, "languages": 2 }, { "order": 408, - "name": "chuanmi", + "name": "carresoft", "count": 2, "languages": 2 }, { "order": 409, - "name": "jmofuture", + "name": "chuanmi", "count": 2, "languages": 2 }, { "order": 410, - "name": "jlcareglio", + "name": "jmofuture", "count": 2, "languages": 2 }, { "order": 411, - "name": "jurgen-alfaro", + "name": "jlcareglio", "count": 2, "languages": 2 }, { "order": 412, - "name": "felipedev303", + "name": "jurgen-alfaro", "count": 2, "languages": 2 }, { "order": 413, - "name": "berentolkien", + "name": "felipedev303", "count": 2, "languages": 2 }, { "order": 414, - "name": "raul-progr", + "name": "berentolkien", "count": 2, "languages": 2 }, { "order": 415, - "name": "jorgesilencio", + "name": "raul-progr", "count": 2, "languages": 2 }, { "order": 416, - "name": "lemito66", + "name": "jorgesilencio", "count": 2, "languages": 2 }, { "order": 417, - "name": "fsfigueroa77", + "name": "lemito66", "count": 2, - "languages": 1 + "languages": 2 }, { "order": 418, - "name": "fefestuve", + "name": "fsfigueroa77", "count": 2, "languages": 1 }, { "order": 419, - "name": "luis-vb", + "name": "fefestuve", "count": 2, "languages": 1 }, { "order": 420, - "name": "juaruibr", + "name": "luis-vb", "count": 2, "languages": 1 }, { "order": 421, - "name": "crisdev3", + "name": "juaruibr", "count": 2, "languages": 1 }, { "order": 422, - "name": "saracorraless", + "name": "crisdev3", "count": 2, "languages": 1 }, { "order": 423, - "name": "gamitocu", + "name": "saracorraless", "count": 2, "languages": 1 }, { "order": 424, - "name": "porto1090", + "name": "gamitocu", "count": 2, "languages": 1 }, { "order": 425, - "name": "hersac", + "name": "porto1090", "count": 2, "languages": 1 }, { "order": 426, - "name": "yowcloud", + "name": "hersac", "count": 2, "languages": 1 }, { "order": 427, - "name": "joseesmil04", + "name": "yowcloud", "count": 2, "languages": 1 }, { "order": 428, - "name": "adrs1166ma", + "name": "joseesmil04", "count": 2, "languages": 1 }, { "order": 429, - "name": "isidrojng", + "name": "adrs1166ma", "count": 2, "languages": 1 }, { "order": 430, - "name": "peeanoot", + "name": "isidrojng", "count": 2, "languages": 1 }, { "order": 431, - "name": "alextc35", + "name": "peeanoot", "count": 2, "languages": 1 }, { "order": 432, - "name": "jcknot", + "name": "alextc35", "count": 2, "languages": 1 }, { "order": 433, - "name": "arhl2023", + "name": "jcknot", "count": 2, "languages": 1 }, { "order": 434, - "name": "natalinacn", + "name": "arhl2023", "count": 2, "languages": 1 }, { "order": 435, - "name": "lorenamesa", + "name": "natalinacn", "count": 2, "languages": 1 }, { "order": 436, - "name": "jago86", + "name": "lorenamesa", "count": 2, "languages": 1 }, { "order": 437, - "name": "johannhsdev", + "name": "jago86", "count": 2, "languages": 1 }, { "order": 438, - "name": "nicolastapiasanz", + "name": "johannhsdev", "count": 2, "languages": 1 }, { "order": 439, - "name": "freddyasierraj", + "name": "nicolastapiasanz", "count": 2, "languages": 1 }, { "order": 440, - "name": "gomezcamilo9701", + "name": "freddyasierraj", "count": 2, "languages": 1 }, { "order": 441, - "name": "vicgallego", + "name": "gomezcamilo9701", "count": 2, "languages": 1 }, { "order": 442, - "name": "peibolstrike", + "name": "vicgallego", "count": 2, "languages": 1 }, { "order": 443, - "name": "cristiansystem", + "name": "peibolstrike", "count": 2, "languages": 1 }, { "order": 444, - "name": "dararod", + "name": "cristiansystem", "count": 2, "languages": 1 }, { "order": 445, - "name": "waldid32", + "name": "dararod", "count": 2, "languages": 1 }, { "order": 446, - "name": "roilhi", + "name": "waldid32", "count": 2, "languages": 1 }, { "order": 447, - "name": "diegokarabin", + "name": "roilhi", "count": 2, "languages": 1 }, { "order": 448, - "name": "reanthonyh", + "name": "diegokarabin", "count": 2, "languages": 1 }, { "order": 449, - "name": "valeriatorrealba", + "name": "reanthonyh", "count": 2, "languages": 1 }, { "order": 450, - "name": "nxl22", + "name": "valeriatorrealba", "count": 2, "languages": 1 }, { "order": 451, - "name": "ovjohn", + "name": "nxl22", "count": 2, "languages": 1 }, { "order": 452, - "name": "aleoe01", + "name": "ovjohn", "count": 2, "languages": 1 }, { "order": 453, - "name": "soldochris", + "name": "aleoe01", "count": 2, "languages": 1 }, { "order": 454, - "name": "murquisdev", + "name": "soldochris", "count": 2, "languages": 1 }, { "order": 455, - "name": "wesborland-github", + "name": "murquisdev", "count": 2, "languages": 1 }, { "order": 456, - "name": "farthaz", + "name": "wesborland-github", "count": 2, "languages": 1 }, { "order": 457, - "name": "tomasmarquez81", + "name": "farthaz", "count": 2, "languages": 1 }, { "order": 458, - "name": "cesarocbu", + "name": "tomasmarquez81", "count": 2, "languages": 1 }, { "order": 459, - "name": "glaboryp", + "name": "cesarocbu", "count": 2, "languages": 1 }, { "order": 460, - "name": "doblea74", + "name": "glaboryp", "count": 2, "languages": 1 }, { "order": 461, - "name": "misterdan100", + "name": "doblea74", "count": 2, "languages": 1 }, { "order": 462, - "name": "rikar2o", + "name": "misterdan100", "count": 2, "languages": 1 }, { "order": 463, - "name": "angelvelasco1", + "name": "rikar2o", "count": 2, "languages": 1 }, { "order": 464, - "name": "jhonf1992", + "name": "angelvelasco1", "count": 2, "languages": 1 }, { "order": 465, - "name": "jaimemunozdev", + "name": "jhonf1992", "count": 2, "languages": 1 }, { "order": 466, - "name": "jeisonredondo", + "name": "jaimemunozdev", "count": 2, "languages": 1 }, { "order": 467, - "name": "leonardo291024", + "name": "jeisonredondo", "count": 2, "languages": 1 }, { "order": 468, - "name": "arliumdev", + "name": "leonardo291024", "count": 2, "languages": 1 }, { "order": 469, - "name": "matiasfarfan89", + "name": "arliumdev", "count": 2, "languages": 1 }, { "order": 470, - "name": "haryblanco20", + "name": "matiasfarfan89", "count": 2, "languages": 1 }, { "order": 471, - "name": "memogv", + "name": "haryblanco20", "count": 2, "languages": 1 }, { "order": 472, - "name": "akzorla", + "name": "memogv", "count": 2, "languages": 1 }, { "order": 473, - "name": "cpcarlosprieto", + "name": "akzorla", "count": 2, "languages": 1 }, { "order": 474, - "name": "rolo27s", + "name": "cpcarlosprieto", "count": 2, "languages": 1 }, { "order": 475, - "name": "lmedina96", + "name": "rolo27s", "count": 2, "languages": 1 }, { "order": 476, - "name": "carlosmarte23", + "name": "lmedina96", "count": 2, "languages": 1 }, { "order": 477, - "name": "santiagodc8", + "name": "carlosmarte23", "count": 2, "languages": 1 }, { "order": 478, - "name": "adogdev", + "name": "santiagodc8", "count": 2, "languages": 1 }, { "order": 479, - "name": "gmigues", + "name": "adogdev", "count": 2, "languages": 1 }, { "order": 480, - "name": "alejandro-mantilla", + "name": "gmigues", "count": 2, "languages": 1 }, { "order": 481, - "name": "dans182", + "name": "alejandro-mantilla", "count": 2, "languages": 1 }, { "order": 482, - "name": "aegpgrafologo", + "name": "pedrojog", "count": 2, "languages": 1 }, { "order": 483, - "name": "kcx46", + "name": "dans182", "count": 2, "languages": 1 }, { "order": 484, - "name": "ziellucio01", + "name": "aegpgrafologo", "count": 2, "languages": 1 }, { "order": 485, - "name": "e-techgod", + "name": "kcx46", "count": 2, "languages": 1 }, { "order": 486, - "name": "alejandrovelasquezr", + "name": "ziellucio01", "count": 2, "languages": 1 }, { "order": 487, - "name": "eriickm", + "name": "e-techgod", "count": 2, "languages": 1 }, { "order": 488, - "name": "s384", + "name": "alejandrovelasquezr", "count": 2, "languages": 1 }, { "order": 489, - "name": "jsacristanbeltri", + "name": "eriickm", "count": 2, "languages": 1 }, { "order": 490, - "name": "vesubius", + "name": "s384", "count": 2, "languages": 1 }, { "order": 491, - "name": "gregfc95", + "name": "jsacristanbeltri", "count": 2, "languages": 1 }, { "order": 492, - "name": "cipollalucas", + "name": "vesubius", "count": 2, "languages": 1 }, { "order": 493, - "name": "franz-arzapalo", + "name": "gregfc95", "count": 2, "languages": 1 }, { "order": 494, - "name": "baauus", + "name": "cipollalucas", "count": 2, "languages": 1 }, { "order": 495, - "name": "dariangl", + "name": "franz-arzapalo", "count": 2, "languages": 1 }, { "order": 496, - "name": "anblackter", + "name": "baauus", "count": 2, "languages": 1 }, { "order": 497, - "name": "julind0", + "name": "dariangl", "count": 2, "languages": 1 }, { "order": 498, - "name": "christiancoc", + "name": "anblackter", "count": 2, "languages": 1 }, { "order": 499, - "name": "tic4", + "name": "julind0", "count": 2, "languages": 1 }, { "order": 500, - "name": "victore16", + "name": "christiancoc", "count": 2, "languages": 1 }, { "order": 501, - "name": "inf015", + "name": "tic4", "count": 2, "languages": 1 }, { "order": 502, - "name": "guillesese", + "name": "victore16", "count": 2, "languages": 1 }, { "order": 503, - "name": "csaraugusto2", + "name": "inf015", "count": 2, "languages": 1 }, { "order": 504, - "name": "pakomor", + "name": "nevaito", "count": 2, "languages": 1 }, { "order": 505, - "name": "aboredllama", + "name": "csaraugusto2", "count": 2, "languages": 1 }, { "order": 506, - "name": "freyfonseca", + "name": "pakomor", "count": 2, "languages": 1 }, { "order": 507, - "name": "dokeys28", + "name": "aboredllama", "count": 2, "languages": 1 }, { "order": 508, - "name": "soydaviddev", + "name": "freyfonseca", "count": 2, "languages": 1 }, { "order": 509, - "name": "lauradiazm29", + "name": "dokeys28", "count": 2, "languages": 1 }, { "order": 510, - "name": "fernandoatello", + "name": "soydaviddev", "count": 2, "languages": 1 }, { "order": 511, - "name": "miguelberrio0810", + "name": "lauradiazm29", "count": 2, "languages": 1 }, { "order": 512, - "name": "dota43ver", + "name": "fernandoatello", "count": 2, "languages": 1 }, { "order": 513, - "name": "zalazarmartin", + "name": "miguelberrio0810", "count": 2, "languages": 1 }, { "order": 514, - "name": "nandaalf", + "name": "dota43ver", "count": 2, "languages": 1 }, { "order": 515, - "name": "lordzzz777", + "name": "zalazarmartin", "count": 2, "languages": 1 }, { "order": 516, - "name": "rrcoder", + "name": "nandaalf", "count": 2, "languages": 1 }, { "order": 517, - "name": "cyberdidac", + "name": "lordzzz777", "count": 2, "languages": 1 }, { "order": 518, - "name": "vecinacoo", + "name": "rrcoder", "count": 2, "languages": 1 }, { "order": 519, - "name": "ssanjua", + "name": "cyberdidac", "count": 2, "languages": 1 }, { "order": 520, - "name": "zonnen69", + "name": "vecinacoo", "count": 2, "languages": 1 }, { "order": 521, - "name": "sdm29gh", + "name": "ssanjua", "count": 2, "languages": 1 }, { "order": 522, - "name": "hawkbott", + "name": "zonnen69", "count": 2, "languages": 1 }, { "order": 523, - "name": "tiaguiito3", + "name": "sdm29gh", "count": 2, "languages": 1 }, { "order": 524, - "name": "elmarqueli", + "name": "hawkbott", "count": 2, "languages": 1 }, { "order": 525, - "name": "poetry0354", + "name": "tiaguiito3", "count": 2, "languages": 1 }, { "order": 526, - "name": "reaien", + "name": "elmarqueli", "count": 2, "languages": 1 }, { "order": 527, - "name": "rikar20", + "name": "poetry0354", "count": 2, "languages": 1 }, { "order": 528, - "name": "alejomazov", + "name": "reaien", "count": 2, "languages": 1 }, { "order": 529, - "name": "raulallue", + "name": "rikar20", "count": 2, "languages": 1 }, { "order": 530, - "name": "aserranot", + "name": "alejomazov", "count": 2, "languages": 1 }, { "order": 531, - "name": "luciarf", + "name": "raulallue", "count": 2, "languages": 1 }, { "order": 532, - "name": "frannmv", + "name": "aserranot", "count": 2, "languages": 1 }, { "order": 533, - "name": "jmichael39", + "name": "luciarf", "count": 2, "languages": 1 }, { "order": 534, - "name": "orzefox", - "count": 1, + "name": "frannmv", + "count": 2, "languages": 1 }, { "order": 535, - "name": "acirdeveloper", - "count": 1, + "name": "jmichael39", + "count": 2, "languages": 1 }, { "order": 536, - "name": "albertovf", + "name": "orzefox", "count": 1, "languages": 1 }, { "order": 537, - "name": "sergiopq", + "name": "acirdeveloper", "count": 1, "languages": 1 }, { "order": 538, - "name": "nicoloboo02", + "name": "albertovf", "count": 1, "languages": 1 }, { "order": 539, - "name": "angeloro", + "name": "sergiopq", "count": 1, "languages": 1 }, { "order": 540, - "name": "jony-english22", + "name": "nicoloboo02", "count": 1, "languages": 1 }, { "order": 541, - "name": "righelch", + "name": "angeloro", "count": 1, "languages": 1 }, { "order": 542, - "name": "deathbat00", + "name": "jony-english22", "count": 1, "languages": 1 }, { "order": 543, - "name": "sve-nnn", + "name": "righelch", "count": 1, "languages": 1 }, { "order": 544, - "name": "edgarmedranoa", + "name": "deathbat00", "count": 1, "languages": 1 }, { "order": 545, - "name": "emiliordev", + "name": "sve-nnn", "count": 1, "languages": 1 }, { "order": 546, - "name": "wijimenezz", + "name": "edgarmedranoa", "count": 1, "languages": 1 }, { "order": 547, - "name": "vickalc", + "name": "emiliordev", "count": 1, "languages": 1 }, { "order": 548, - "name": "rusian69", + "name": "wijimenezz", "count": 1, "languages": 1 }, { "order": 549, - "name": "rafapg93", + "name": "vickalc", "count": 1, "languages": 1 }, { "order": 550, - "name": "juanchernandezdev", + "name": "rusian69", "count": 1, "languages": 1 }, { "order": 551, - "name": "riukac", + "name": "rafapg93", "count": 1, "languages": 1 }, { "order": 552, - "name": "ouendinga", + "name": "juanchernandezdev", "count": 1, "languages": 1 }, { "order": 553, - "name": "franespina", + "name": "riukac", "count": 1, "languages": 1 }, { "order": 554, - "name": "davidbastosg", + "name": "ouendinga", "count": 1, "languages": 1 }, { "order": 555, - "name": "torvicv", + "name": "franespina", "count": 1, "languages": 1 }, { "order": 556, - "name": "dgquintero", + "name": "davidbastosg", "count": 1, "languages": 1 }, { "order": 557, - "name": "juampaweb", + "name": "torvicv", "count": 1, "languages": 1 }, { "order": 558, - "name": "girngoma", + "name": "dgquintero", "count": 1, "languages": 1 }, { "order": 559, - "name": "javosss", + "name": "juampaweb", "count": 1, "languages": 1 }, { "order": 560, - "name": "derobpe", + "name": "girngoma", "count": 1, "languages": 1 }, { "order": 561, - "name": "alinares94", + "name": "javosss", "count": 1, "languages": 1 }, { "order": 562, - "name": "jferchotorres", + "name": "derobpe", "count": 1, "languages": 1 }, { "order": 563, - "name": "lordzzz", + "name": "alinares94", "count": 1, "languages": 1 }, { "order": 564, - "name": "713avo", + "name": "jferchotorres", "count": 1, "languages": 1 }, { "order": 565, - "name": "micendev", + "name": "lordzzz", "count": 1, "languages": 1 }, { "order": 566, - "name": "cuervo23alpha", + "name": "713avo", "count": 1, "languages": 1 }, { "order": 567, - "name": "h4cker54n", + "name": "micendev", "count": 1, "languages": 1 }, { "order": 568, - "name": "ingjavierpinilla", + "name": "cuervo23alpha", "count": 1, "languages": 1 }, { "order": 569, - "name": "angel-agis", + "name": "h4cker54n", "count": 1, "languages": 1 }, { "order": 570, - "name": "joancharles07", + "name": "ingjavierpinilla", "count": 1, "languages": 1 }, { "order": 571, - "name": "batmarc91", + "name": "angel-agis", "count": 1, "languages": 1 }, { "order": 572, - "name": "mauricioobgo", + "name": "joancharles07", "count": 1, "languages": 1 }, { "order": 573, - "name": "emersonxinay", + "name": "batmarc91", "count": 1, "languages": 1 }, { "order": 574, - "name": "carlosmares", + "name": "mauricioobgo", "count": 1, "languages": 1 }, { "order": 575, - "name": "cub-tor", + "name": "emersonxinay", "count": 1, "languages": 1 }, { "order": 576, - "name": "nightmare79", + "name": "carlosmares", "count": 1, "languages": 1 }, { "order": 577, - "name": "vikernes27666", + "name": "cub-tor", "count": 1, "languages": 1 }, { "order": 578, - "name": "josephinoo", + "name": "nightmare79", "count": 1, "languages": 1 }, { "order": 579, - "name": "anitandil", + "name": "vikernes27666", "count": 1, "languages": 1 }, { "order": 580, - "name": "francomyburg", + "name": "josephinoo", "count": 1, "languages": 1 }, { "order": 581, - "name": "evilpodato04", + "name": "anitandil", "count": 1, "languages": 1 }, { "order": 582, - "name": "miguel2rar", + "name": "francomyburg", "count": 1, "languages": 1 }, { "order": 583, - "name": "agustinfccll", + "name": "evilpodato04", "count": 1, "languages": 1 }, { "order": 584, - "name": "neicervb", + "name": "miguel2rar", "count": 1, "languages": 1 }, { "order": 585, - "name": "gabriel-dangelo", + "name": "agustinfccll", "count": 1, "languages": 1 }, { "order": 586, - "name": "miquelrr", + "name": "neicervb", "count": 1, "languages": 1 }, { "order": 587, - "name": "juancamilofvx", + "name": "gabriel-dangelo", "count": 1, "languages": 1 }, { "order": 588, - "name": "c-blskv", + "name": "miquelrr", "count": 1, "languages": 1 }, { "order": 589, - "name": "emaerniquez", + "name": "juancamilofvx", "count": 1, "languages": 1 }, { "order": 590, - "name": "leonardo-henao", + "name": "c-blskv", "count": 1, "languages": 1 }, { "order": 591, - "name": "bryanalzate007", + "name": "emaerniquez", "count": 1, "languages": 1 }, { "order": 592, - "name": "willypaz243", + "name": "leonardo-henao", "count": 1, "languages": 1 }, { "order": 593, - "name": "luism95", + "name": "bryanalzate007", "count": 1, "languages": 1 }, { "order": 594, - "name": "santyjl44", + "name": "willypaz243", "count": 1, "languages": 1 }, { "order": 595, - "name": "qwik-zghieb", + "name": "luism95", "count": 1, "languages": 1 }, { "order": 596, - "name": "gonzalinuz18", + "name": "santyjl44", "count": 1, "languages": 1 }, { "order": 597, - "name": "omarroman29", + "name": "qwik-zghieb", "count": 1, "languages": 1 }, { "order": 598, - "name": "theposi", + "name": "gonzalinuz18", "count": 1, "languages": 1 }, { "order": 599, - "name": "vinyoles", + "name": "omarroman29", "count": 1, "languages": 1 }, { "order": 600, - "name": "sergio-strazzacappa", + "name": "theposi", "count": 1, "languages": 1 }, { "order": 601, - "name": "arathhh8", + "name": "vinyoles", "count": 1, "languages": 1 }, { "order": 602, - "name": "paluzz", + "name": "sergio-strazzacappa", "count": 1, "languages": 1 }, { "order": 603, - "name": "daniel-cas", + "name": "arathhh8", "count": 1, "languages": 1 }, { "order": 604, - "name": "luisalberto22", + "name": "paluzz", "count": 1, "languages": 1 }, { "order": 605, - "name": "mbmaeso", + "name": "daniel-cas", "count": 1, "languages": 1 }, { "order": 606, - "name": "deiiviitdev", + "name": "luisalberto22", "count": 1, "languages": 1 }, { "order": 607, - "name": "borjadelgadodev", + "name": "mbmaeso", "count": 1, "languages": 1 }, { "order": 608, - "name": "jaennova", + "name": "deiiviitdev", "count": 1, "languages": 1 }, { "order": 609, - "name": "francisleble", + "name": "borjadelgadodev", "count": 1, "languages": 1 }, { "order": 610, - "name": "jhordanluyo", + "name": "jaennova", "count": 1, "languages": 1 }, { "order": 611, - "name": "acirdevelper", + "name": "francisleble", "count": 1, "languages": 1 }, { "order": 612, - "name": "davidcv-dev", + "name": "jhordanluyo", "count": 1, "languages": 1 }, { "order": 613, - "name": "alvarominarro", + "name": "acirdevelper", "count": 1, "languages": 1 }, { "order": 614, - "name": "frealexandro", + "name": "davidcv-dev", "count": 1, "languages": 1 }, { "order": 615, - "name": "braiso-22", + "name": "alvarominarro", "count": 1, "languages": 1 }, { "order": 616, - "name": "armm77", + "name": "frealexandro", "count": 1, "languages": 1 }, { "order": 617, - "name": "kevin05m", + "name": "braiso-22", "count": 1, "languages": 1 }, { "order": 618, - "name": "fede6299", + "name": "armm77", "count": 1, "languages": 1 }, { "order": 619, - "name": "pablo-lnx", + "name": "kevin05m", "count": 1, "languages": 1 }, { "order": 620, - "name": "darkohokage", + "name": "fede6299", "count": 1, "languages": 1 }, { "order": 621, - "name": "diegomm27", + "name": "pablo-lnx", "count": 1, "languages": 1 }, { "order": 622, - "name": "cristian-encalada", + "name": "darkohokage", "count": 1, "languages": 1 }, { "order": 623, - "name": "alefine", + "name": "diegomm27", "count": 1, "languages": 1 }, { "order": 624, - "name": "zyn7e", + "name": "cristian-encalada", "count": 1, "languages": 1 }, { "order": 625, - "name": "antoniojzp86", + "name": "alefine", "count": 1, "languages": 1 }, { "order": 626, - "name": "dovinhoyos", + "name": "zyn7e", "count": 1, "languages": 1 }, { "order": 627, - "name": "rumacar05", + "name": "antoniojzp86", "count": 1, "languages": 1 }, { "order": 628, - "name": "gianellannie", + "name": "dovinhoyos", "count": 1, "languages": 1 }, { "order": 629, - "name": "deathbato", + "name": "rumacar05", "count": 1, "languages": 1 }, { "order": 630, - "name": "cristobalbelcor", + "name": "gianellannie", "count": 1, "languages": 1 }, { "order": 631, - "name": "kgrc05", + "name": "deathbato", "count": 1, "languages": 1 }, { "order": 632, - "name": "cristianmr87", + "name": "cristobalbelcor", "count": 1, "languages": 1 }, { "order": 633, - "name": "lizandev", + "name": "kgrc05", "count": 1, "languages": 1 }, { "order": 634, - "name": "det3992", + "name": "cristianmr87", "count": 1, "languages": 1 }, { "order": 635, - "name": "lewisoneil", + "name": "lizandev", "count": 1, "languages": 1 }, { "order": 636, - "name": "santiagopereiraviroga", + "name": "det3992", "count": 1, "languages": 1 }, { "order": 637, - "name": "v1k770r", + "name": "lewisoneil", "count": 1, "languages": 1 }, { "order": 638, - "name": "durwian", + "name": "santiagopereiraviroga", "count": 1, "languages": 1 }, { "order": 639, - "name": "adriangonzalezroble", + "name": "v1k770r", "count": 1, "languages": 1 }, { "order": 640, - "name": "mathiur", + "name": "durwian", "count": 1, "languages": 1 }, { "order": 641, - "name": "bycris13", + "name": "adriangonzalezroble", "count": 1, "languages": 1 }, { "order": 642, - "name": "algeloro", + "name": "mathiur", "count": 1, "languages": 1 }, { "order": 643, - "name": "chalaito88", + "name": "bycris13", "count": 1, "languages": 1 }, { "order": 644, - "name": "javiir", + "name": "algeloro", "count": 1, "languages": 1 }, { "order": 645, - "name": "chrystiancalderon", + "name": "chalaito88", "count": 1, "languages": 1 }, { "order": 646, - "name": "pguillo", + "name": "javiir", "count": 1, "languages": 1 }, { "order": 647, - "name": "serg_pq", + "name": "chrystiancalderon", "count": 1, "languages": 1 }, { "order": 648, - "name": "diegopardomontero", + "name": "pguillo", "count": 1, "languages": 1 }, { "order": 649, - "name": "ivanserran", + "name": "serg_pq", "count": 1, "languages": 1 }, { "order": 650, - "name": "fredylopez01", + "name": "diegopardomontero", "count": 1, "languages": 1 }, { "order": 651, - "name": "angeldevsarrollo", + "name": "ivanserran", "count": 1, "languages": 1 }, { "order": 652, - "name": "sanuka78", + "name": "fredylopez01", "count": 1, "languages": 1 }, { "order": 653, - "name": "adriansaint07", + "name": "angeldevsarrollo", "count": 1, "languages": 1 }, { "order": 654, - "name": "jony_english22", + "name": "sanuka78", "count": 1, "languages": 1 }, { "order": 655, - "name": "alvaropg15", + "name": "adriansaint07", "count": 1, "languages": 1 }, { "order": 656, - "name": "frankmon03", + "name": "jony_english22", "count": 1, "languages": 1 }, { "order": 657, - "name": "xhaloidx", + "name": "alvaropg15", "count": 1, "languages": 1 }, { "order": 658, - "name": "reneguzman7", + "name": "frankmon03", "count": 1, "languages": 1 }, { "order": 659, - "name": "jaquelinetorres", + "name": "xhaloidx", "count": 1, "languages": 1 }, { "order": 660, - "name": "alexeigio", + "name": "reneguzman7", "count": 1, "languages": 1 }, { "order": 661, - "name": "albert-29", + "name": "jaquelinetorres", "count": 1, "languages": 1 }, { "order": 662, - "name": "iguerrerov", + "name": "alexeigio", "count": 1, "languages": 1 }, { "order": 663, - "name": "pvigo10", + "name": "albert-29", "count": 1, "languages": 1 }, { "order": 664, - "name": "jrgim", + "name": "iguerrerov", "count": 1, "languages": 1 }, { "order": 665, - "name": "marcosjarrin", + "name": "pvigo10", "count": 1, "languages": 1 }, { "order": 666, - "name": "jhonnfl", + "name": "jrgim", "count": 1, "languages": 1 }, { "order": 667, - "name": "trollface77", + "name": "marcosjarrin", "count": 1, "languages": 1 }, { "order": 668, - "name": "brunom-93", + "name": "jhonnfl", "count": 1, "languages": 1 }, { "order": 669, - "name": "alejandroruiz23", + "name": "trollface77", "count": 1, "languages": 1 }, { "order": 670, - "name": "jaimesoftdev", + "name": "brunom-93", "count": 1, "languages": 1 }, { "order": 671, - "name": "edm1ya", + "name": "alejandroruiz23", "count": 1, "languages": 1 }, { "order": 672, - "name": "jarzatedev", + "name": "jaimesoftdev", "count": 1, "languages": 1 }, { "order": 673, - "name": "sandrarg85", + "name": "edm1ya", "count": 1, "languages": 1 }, { "order": 674, - "name": "rootqui", + "name": "jarzatedev", "count": 1, "languages": 1 }, { "order": 675, - "name": "astriebeck", + "name": "sandrarg85", "count": 1, "languages": 1 }, { "order": 676, - "name": "marqitos", + "name": "rootqui", "count": 1, "languages": 1 }, { "order": 677, - "name": "lobogeekmx", + "name": "astriebeck", "count": 1, "languages": 1 }, { "order": 678, - "name": "marvinagui", + "name": "marqitos", "count": 1, "languages": 1 }, { "order": 679, - "name": "jatomas", + "name": "lobogeekmx", "count": 1, "languages": 1 }, { "order": 680, - "name": "nunezlagos", + "name": "marvinagui", "count": 1, "languages": 1 }, { "order": 681, - "name": "ledyam", + "name": "jatomas", "count": 1, "languages": 1 }, { "order": 682, - "name": "miguelgargallo", + "name": "nunezlagos", "count": 1, "languages": 1 }, { "order": 683, - "name": "ishimaku", + "name": "ledyam", "count": 1, "languages": 1 }, { "order": 684, - "name": "afacorroloscos", + "name": "miguelgargallo", "count": 1, "languages": 1 }, { "order": 685, - "name": "chrisfelixgil", + "name": "ishimaku", "count": 1, "languages": 1 }, { "order": 686, - "name": "franpua", + "name": "afacorroloscos", "count": 1, "languages": 1 }, { "order": 687, - "name": "sirvega83", + "name": "chrisfelixgil", "count": 1, "languages": 1 }, { "order": 688, - "name": "corvo-99", + "name": "franpua", "count": 1, "languages": 1 }, { "order": 689, - "name": "franciscokarriere", + "name": "sirvega83", "count": 1, "languages": 1 }, { "order": 690, - "name": "pipeyz21", + "name": "corvo-99", "count": 1, "languages": 1 }, { "order": 691, - "name": "luisgarm", + "name": "franciscokarriere", "count": 1, "languages": 1 }, { "order": 692, - "name": "vorosdev", + "name": "pipeyz21", "count": 1, "languages": 1 }, { "order": 693, - "name": "santiagomac", + "name": "luisgarm", "count": 1, "languages": 1 }, { "order": 694, - "name": "ca2puntosv", + "name": "vorosdev", "count": 1, "languages": 1 }, { "order": 695, - "name": "cibacoa", + "name": "santiagomac", "count": 1, "languages": 1 }, { "order": 696, - "name": "gizelads", + "name": "ca2puntosv", "count": 1, "languages": 1 }, { "order": 697, - "name": "axelwestman", + "name": "cibacoa", "count": 1, "languages": 1 }, { "order": 698, - "name": "coletonosh", + "name": "gizelads", "count": 1, "languages": 1 }, { "order": 699, - "name": "manuhssj", + "name": "axelwestman", "count": 1, "languages": 1 }, { "order": 700, - "name": "manugonzalito", + "name": "coletonosh", "count": 1, "languages": 1 }, { "order": 701, - "name": "seigigim", + "name": "manuhssj", "count": 1, "languages": 1 }, { "order": 702, - "name": "marcosapodaca", + "name": "manugonzalito", "count": 1, "languages": 1 }, { "order": 703, - "name": "serg032", + "name": "seigigim", "count": 1, "languages": 1 }, { "order": 704, - "name": "is2095", + "name": "marcosapodaca", "count": 1, "languages": 1 }, { "order": 705, - "name": "lucc4sz", + "name": "serg032", "count": 1, "languages": 1 }, { "order": 706, - "name": "mauricioyair", + "name": "is2095", "count": 1, "languages": 1 }, { "order": 707, - "name": "jancalos", + "name": "lucc4sz", "count": 1, "languages": 1 }, { "order": 708, - "name": "palons29", + "name": "mauricioyair", "count": 1, "languages": 1 }, { "order": 709, - "name": "deimoshall", + "name": "jancalos", "count": 1, "languages": 1 }, { "order": 710, - "name": "mickysoft", + "name": "palons29", "count": 1, "languages": 1 }, { "order": 711, - "name": "serg-pq", + "name": "deimoshall", "count": 1, "languages": 1 }, { "order": 712, - "name": "lara-vel-dev", + "name": "mickysoft", "count": 1, "languages": 1 }, { "order": 713, - "name": "alexisbarradev", + "name": "serg-pq", "count": 1, "languages": 1 }, { "order": 714, - "name": "tartabullroberto", + "name": "lara-vel-dev", "count": 1, "languages": 1 }, { "order": 715, - "name": "kelvincb", + "name": "alexisbarradev", "count": 1, "languages": 1 }, { "order": 716, - "name": "augustosdev", + "name": "tartabullroberto", "count": 1, "languages": 1 }, { "order": 717, - "name": "van-02", + "name": "kelvincb", "count": 1, "languages": 1 }, { "order": 718, - "name": "x3mboy", + "name": "augustosdev", "count": 1, "languages": 1 }, { "order": 719, - "name": "jandresalvar", + "name": "van-02", "count": 1, "languages": 1 }, { "order": 720, - "name": "angelcruzg23", + "name": "x3mboy", "count": 1, "languages": 1 }, { "order": 721, - "name": "kevinramirez28", + "name": "jandresalvar", "count": 1, "languages": 1 }, { "order": 722, - "name": "alemar16", + "name": "angelcruzg23", "count": 1, "languages": 1 }, { "order": 723, - "name": "joseperesini", + "name": "kevinramirez28", "count": 1, "languages": 1 }, { "order": 724, - "name": "denisortega", + "name": "alemar16", "count": 1, "languages": 1 }, { "order": 725, - "name": "flarien", + "name": "joseperesini", "count": 1, "languages": 1 }, { "order": 726, - "name": "jpiacaruso", + "name": "denisortega", "count": 1, "languages": 1 }, { "order": 727, - "name": "kronomio", + "name": "flarien", "count": 1, "languages": 1 }, { "order": 728, - "name": "abengl", + "name": "jpiacaruso", "count": 1, "languages": 1 }, { "order": 729, - "name": "edgonzz", + "name": "kronomio", "count": 1, "languages": 1 }, { "order": 730, - "name": "augustbs", + "name": "abengl", "count": 1, "languages": 1 }, { "order": 731, - "name": "gerespinosa", + "name": "edgonzz", "count": 1, "languages": 1 }, { "order": 732, - "name": "walkerlyna", + "name": "augustbs", "count": 1, "languages": 1 }, { "order": 733, - "name": "lytsar", + "name": "gerespinosa", "count": 1, "languages": 1 }, { "order": 734, - "name": "rodmiggithub", + "name": "walkerlyna", "count": 1, "languages": 1 }, { "order": 735, - "name": "gc796", + "name": "lytsar", "count": 1, "languages": 1 }, { "order": 736, - "name": "gustavoguerrero", + "name": "rodmiggithub", "count": 1, "languages": 1 }, { "order": 737, - "name": "maximotoro", + "name": "gc796", "count": 1, "languages": 1 }, { "order": 738, - "name": "xnomada", + "name": "gustavoguerrero", "count": 1, "languages": 1 }, { "order": 739, - "name": "francescoalterio", + "name": "maximotoro", "count": 1, "languages": 1 }, { "order": 740, - "name": "codejoss", + "name": "xnomada", "count": 1, "languages": 1 }, { "order": 741, - "name": "alexis0717", + "name": "francescoalterio", "count": 1, "languages": 1 }, { "order": 742, - "name": "ronnieruuz", + "name": "codejoss", "count": 1, "languages": 1 }, { "order": 743, - "name": "isnatthy", + "name": "alexis0717", "count": 1, "languages": 1 }, { "order": 744, - "name": "datrujillog", + "name": "ronnieruuz", "count": 1, "languages": 1 }, { "order": 745, - "name": "aleclto7", + "name": "isnatthy", "count": 1, "languages": 1 }, { "order": 746, - "name": "s9code", + "name": "datrujillog", "count": 1, "languages": 1 }, { "order": 747, - "name": "pierre-ol", + "name": "aleclto7", "count": 1, "languages": 1 }, { "order": 748, - "name": "peticas", + "name": "s9code", "count": 1, "languages": 1 }, { "order": 749, - "name": "saintsluis", + "name": "pierre-ol", "count": 1, "languages": 1 }, { "order": 750, - "name": "quirogapau", + "name": "peticas", "count": 1, "languages": 1 }, { "order": 751, - "name": "dmhenaopa", + "name": "saintsluis", "count": 1, "languages": 1 }, { "order": 752, - "name": "pointfs", + "name": "quirogapau", "count": 1, "languages": 1 }, { "order": 753, - "name": "lfam200", + "name": "dmhenaopa", "count": 1, "languages": 1 }, { "order": 754, - "name": "lucianogriffa", + "name": "pointfs", "count": 1, "languages": 1 }, { "order": 755, - "name": "alexxawada", + "name": "lfam200", "count": 1, "languages": 1 }, { "order": 756, - "name": "oscarletelier", + "name": "lucianogriffa", "count": 1, "languages": 1 }, { "order": 757, - "name": "johnniew81", + "name": "alexxawada", "count": 1, "languages": 1 }, { "order": 758, - "name": "edperez07", + "name": "oscarletelier", "count": 1, "languages": 1 }, { "order": 759, - "name": "lfwzk", + "name": "johnniew81", "count": 1, "languages": 1 }, { "order": 760, - "name": "fernandofl", + "name": "edperez07", "count": 1, "languages": 1 }, { "order": 761, - "name": "juanpablo-a", + "name": "lfwzk", "count": 1, "languages": 1 }, { "order": 762, - "name": "vmga09", + "name": "fernandofl", "count": 1, "languages": 1 }, { "order": 763, - "name": "imista", + "name": "juanpablo-a", "count": 1, "languages": 1 }, { "order": 764, - "name": "kocho03", + "name": "vmga09", "count": 1, "languages": 1 }, { "order": 765, - "name": "abraham9804", + "name": "imista", "count": 1, "languages": 1 }, { "order": 766, - "name": "afl0r3s", + "name": "kocho03", "count": 1, "languages": 1 }, { "order": 767, - "name": "javieradev", + "name": "abraham9804", "count": 1, "languages": 1 }, { "order": 768, - "name": "mvillegas18", + "name": "afl0r3s", "count": 1, "languages": 1 }, { "order": 769, - "name": "sixtodev", + "name": "javieradev", "count": 1, "languages": 1 }, { "order": 770, - "name": "jovany-java", + "name": "mvillegas18", "count": 1, "languages": 1 }, { "order": 771, - "name": "cliverjimny123", + "name": "sixtodev", "count": 1, "languages": 1 }, { "order": 772, - "name": "madelefonb", + "name": "jovany-java", "count": 1, "languages": 1 }, { "order": 773, - "name": "siuldev", + "name": "cliverjimny123", "count": 1, "languages": 1 }, { "order": 774, - "name": "jacobrwx", + "name": "madelefonb", "count": 1, "languages": 1 }, { "order": 775, - "name": "mhrosariom", + "name": "siuldev", "count": 1, "languages": 1 }, { "order": 776, - "name": "rojasvargas", + "name": "jacobrwx", "count": 1, "languages": 1 }, { "order": 777, - "name": "yessikamichelle", + "name": "mhrosariom", "count": 1, "languages": 1 }, { "order": 778, - "name": "sergioab7", + "name": "rojasvargas", "count": 1, "languages": 1 }, { "order": 779, - "name": "sejotaz", + "name": "yessikamichelle", "count": 1, "languages": 1 }, { "order": 780, - "name": "nnunezmedina", + "name": "sergioab7", "count": 1, "languages": 1 }, { "order": 781, - "name": "diegoxxd", + "name": "sejotaz", "count": 1, "languages": 1 }, { "order": 782, - "name": "jd-gm", + "name": "nnunezmedina", "count": 1, "languages": 1 }, { "order": 783, - "name": "nozodev", + "name": "diegoxxd", "count": 1, "languages": 1 }, { "order": 784, - "name": "ercky1980", + "name": "jd-gm", "count": 1, "languages": 1 }, { "order": 785, - "name": "santaravena", + "name": "nozodev", "count": 1, "languages": 1 }, { "order": 786, - "name": "francomoreira", + "name": "ercky1980", "count": 1, "languages": 1 }, { "order": 787, - "name": "royhuamanavila", + "name": "santaravena", "count": 1, "languages": 1 }, { "order": 788, - "name": "danielbustos342", + "name": "francomoreira", "count": 1, "languages": 1 }, { "order": 789, - "name": "kenzambrano", + "name": "royhuamanavila", "count": 1, "languages": 1 }, { "order": 790, - "name": "romanocoder", + "name": "danielbustos342", "count": 1, "languages": 1 }, { "order": 791, - "name": "jsruedatorres", + "name": "kenzambrano", "count": 1, "languages": 1 }, { "order": 792, - "name": "miguelsarm", + "name": "romanocoder", "count": 1, "languages": 1 }, { "order": 793, - "name": "frcan89", + "name": "jsruedatorres", "count": 1, "languages": 1 }, { "order": 794, - "name": "alvarommedia", + "name": "miguelsarm", "count": 1, "languages": 1 }, { "order": 795, - "name": "patricioguerra30", + "name": "frcan89", "count": 1, "languages": 1 }, { "order": 796, - "name": "mdemena", + "name": "alvarommedia", "count": 1, "languages": 1 }, { "order": 797, - "name": "marcos0803", + "name": "patricioguerra30", "count": 1, "languages": 1 }, { "order": 798, - "name": "vmarialuzm", + "name": "mdemena", "count": 1, "languages": 1 }, { "order": 799, - "name": "acobo3", + "name": "marcos0803", "count": 1, "languages": 1 }, { "order": 800, - "name": "sofiamfernandez", + "name": "vmarialuzm", "count": 1, "languages": 1 }, { "order": 801, - "name": "cd1974", + "name": "acobo3", "count": 1, "languages": 1 }, { "order": 802, - "name": "vickalck", + "name": "sofiamfernandez", "count": 1, "languages": 1 }, { "order": 803, - "name": "chema-dw", + "name": "cd1974", "count": 1, "languages": 1 }, { "order": 804, - "name": "javirr4", + "name": "vickalck", "count": 1, "languages": 1 }, { "order": 805, - "name": "e-xtian", + "name": "chema-dw", "count": 1, "languages": 1 }, { "order": 806, - "name": "masenace", + "name": "javirr4", "count": 1, "languages": 1 }, { "order": 807, - "name": "julioorozco05", + "name": "e-xtian", "count": 1, "languages": 1 }, { "order": 808, - "name": "g4nd4lf", + "name": "masenace", "count": 1, "languages": 1 }, { "order": 809, - "name": "cris10026", + "name": "julioorozco05", "count": 1, "languages": 1 }, { "order": 810, - "name": "johao23", + "name": "g4nd4lf", "count": 1, "languages": 1 }, { "order": 811, - "name": "latorredev", + "name": "cris10026", "count": 1, "languages": 1 }, { "order": 812, - "name": "anexo01", + "name": "johao23", "count": 1, "languages": 1 }, { "order": 813, - "name": "wilsonbarrera", + "name": "latorredev", "count": 1, "languages": 1 }, { "order": 814, - "name": "diegogomezcor4", + "name": "anexo01", "count": 1, "languages": 1 }, { "order": 815, - "name": "charly024", + "name": "wilsonbarrera", "count": 1, "languages": 1 }, { "order": 816, - "name": "miguelmancebo", + "name": "diegogomezcor4", "count": 1, "languages": 1 }, { "order": 817, - "name": "geridage", + "name": "charly024", "count": 1, "languages": 1 }, { "order": 818, - "name": "jereaguilar", + "name": "miguelmancebo", "count": 1, "languages": 1 }, { "order": 819, - "name": "lluistech", + "name": "geridage", "count": 1, "languages": 1 }, { "order": 820, - "name": "luceldasilva", + "name": "jereaguilar", "count": 1, "languages": 1 }, { "order": 821, - "name": "pedrojog", + "name": "lluistech", "count": 1, "languages": 1 }, { "order": 822, - "name": "francgci", + "name": "luceldasilva", "count": 1, "languages": 1 }, { "order": 823, - "name": "yamiyugi25", + "name": "francgci", "count": 1, "languages": 1 }, { "order": 824, - "name": "luisangeles20", + "name": "yamiyugi25", "count": 1, "languages": 1 }, { "order": 825, - "name": "cristianvergaraf", + "name": "luisangeles20", "count": 1, "languages": 1 }, { "order": 826, - "name": "judithernandez", + "name": "cristianvergaraf", "count": 1, "languages": 1 }, { "order": 827, - "name": "eatsangels", + "name": "judithernandez", "count": 1, "languages": 1 }, { "order": 828, - "name": "mjordanaam", + "name": "eatsangels", "count": 1, "languages": 1 }, { "order": 829, - "name": "marcelinoarias369", + "name": "mjordanaam", "count": 1, "languages": 1 }, { "order": 830, - "name": "juan-cruz01", + "name": "marcelinoarias369", "count": 1, "languages": 1 }, { "order": 831, - "name": "arturodlapaz17", + "name": "juan-cruz01", "count": 1, "languages": 1 }, { "order": 832, - "name": "cisneros2404", + "name": "arturodlapaz17", "count": 1, "languages": 1 }, { "order": 833, - "name": "claudios1980", + "name": "cisneros2404", "count": 1, "languages": 1 }, { "order": 834, - "name": "pr1de-23", + "name": "claudios1980", "count": 1, "languages": 1 }, { "order": 835, - "name": "dimanu-py", + "name": "pr1de-23", "count": 1, "languages": 1 }, { "order": 836, - "name": "wallsified", + "name": "dimanu-py", "count": 1, "languages": 1 }, { "order": 837, - "name": "kshields51", + "name": "wallsified", "count": 1, "languages": 1 }, { "order": 838, - "name": "hnaranjog", + "name": "kshields51", "count": 1, "languages": 1 }, { "order": 839, - "name": "erickcis", + "name": "hnaranjog", "count": 1, "languages": 1 }, { "order": 840, - "name": "neftalyr", + "name": "erickcis", "count": 1, "languages": 1 }, { "order": 841, - "name": "zeraven09", + "name": "neftalyr", "count": 1, "languages": 1 }, { "order": 842, - "name": "jchernandez87", + "name": "zeraven09", "count": 1, "languages": 1 }, { "order": 843, - "name": "adcarret", + "name": "jchernandez87", "count": 1, "languages": 1 }, { "order": 844, - "name": "leo18q", + "name": "adcarret", "count": 1, "languages": 1 }, { "order": 845, - "name": "v0l0v", + "name": "leo18q", "count": 1, "languages": 1 }, { "order": 846, - "name": "alejandro000", + "name": "v0l0v", "count": 1, "languages": 1 }, { "order": 847, - "name": "juanalbornoz32", + "name": "alejandro000", "count": 1, "languages": 1 }, { "order": 848, - "name": "albertomorilla", + "name": "juanalbornoz32", "count": 1, "languages": 1 }, { "order": 849, - "name": "sergiovelayos", + "name": "albertomorilla", "count": 1, "languages": 1 }, { "order": 850, - "name": "emmanuelmmontesinos ", + "name": "sergiovelayos", "count": 1, "languages": 1 }, { "order": 851, - "name": "jgregoris", + "name": "emmanuelmmontesinos ", "count": 1, "languages": 1 }, { "order": 852, - "name": "and-y21", + "name": "jgregoris", "count": 1, "languages": 1 }, { "order": 853, - "name": "xcortes", + "name": "and-y21", "count": 1, "languages": 1 }, { "order": 854, - "name": "salas89", + "name": "xcortes", "count": 1, "languages": 1 }, { "order": 855, - "name": "ignacioskm", + "name": "salas89", "count": 1, "languages": 1 }, { "order": 856, - "name": "sunjamer", + "name": "ignacioskm", "count": 1, "languages": 1 }, { "order": 857, - "name": "dakkaj", + "name": "sunjamer", "count": 1, "languages": 1 }, { "order": 858, - "name": "jalonso76", + "name": "dakkaj", "count": 1, "languages": 1 }, { "order": 859, - "name": "sbngl", + "name": "jalonso76", "count": 1, "languages": 1 }, { "order": 860, - "name": "alejarandro", + "name": "sbngl", "count": 1, "languages": 1 }, { "order": 861, - "name": "gmedinat911", + "name": "alejarandro", "count": 1, "languages": 1 }, { "order": 862, - "name": "danidan1214", + "name": "gmedinat911", "count": 1, "languages": 1 }, { "order": 863, - "name": "neshurtado", + "name": "danidan1214", "count": 1, "languages": 1 }, { "order": 864, - "name": "demegorash", + "name": "neshurtado", "count": 1, "languages": 1 }, { "order": 865, - "name": "xhinto", + "name": "demegorash", "count": 1, "languages": 1 }, { "order": 866, - "name": "xalejandrow", + "name": "xhinto", "count": 1, "languages": 1 }, { "order": 867, - "name": "90dread", + "name": "xalejandrow", "count": 1, "languages": 1 }, { "order": 868, - "name": "gersonoroz", + "name": "90dread", "count": 1, "languages": 1 }, { "order": 869, - "name": "isaacdci", + "name": "gersonoroz", "count": 1, "languages": 1 }, { "order": 870, - "name": "davidgramiro", + "name": "isaacdci", "count": 1, "languages": 1 }, { "order": 871, - "name": "devkenn", + "name": "davidgramiro", "count": 1, "languages": 1 }, { "order": 872, - "name": "turudev1979", + "name": "devkenn", "count": 1, "languages": 1 }, { "order": 873, - "name": "giovanni-schmaily", + "name": "turudev1979", "count": 1, "languages": 1 }, { "order": 874, - "name": "deivimiller", + "name": "giovanni-schmaily", "count": 1, "languages": 1 }, { "order": 875, - "name": "carlosbb70", + "name": "deivimiller", "count": 1, "languages": 1 }, { "order": 876, - "name": "fergz1988", + "name": "carlosbb70", "count": 1, "languages": 1 }, { "order": 877, - "name": "betulioo", + "name": "fergz1988", "count": 1, "languages": 1 }, { "order": 878, - "name": "pablom-2015", + "name": "betulioo", "count": 1, "languages": 1 }, { "order": 879, - "name": "manuu42", + "name": "pablom-2015", "count": 1, "languages": 1 }, { "order": 880, - "name": "dacaldev", + "name": "manuu42", "count": 1, "languages": 1 }, { "order": 881, - "name": "nachodev7", + "name": "dacaldev", "count": 1, "languages": 1 }, { "order": 882, - "name": "snowcardenas", + "name": "nachodev7", "count": 1, "languages": 1 }, { "order": 883, - "name": "osneidert", + "name": "snowcardenas", "count": 1, "languages": 1 }, { "order": 884, - "name": "pushodev", + "name": "osneidert", "count": 1, "languages": 1 }, { "order": 885, - "name": "m4xxdev", + "name": "pushodev", "count": 1, "languages": 1 }, { "order": 886, - "name": "amitchellg", + "name": "m4xxdev", "count": 1, "languages": 1 }, { "order": 887, - "name": "ndepaul82", + "name": "amitchellg", "count": 1, "languages": 1 }, { "order": 888, - "name": "sherkla12e", + "name": "ndepaul82", "count": 1, "languages": 1 }, { "order": 889, - "name": "gilbertho502", + "name": "sherkla12e", "count": 1, "languages": 1 }, { "order": 890, - "name": "bjchavez", + "name": "tashidian", "count": 1, "languages": 1 }, { "order": 891, - "name": "alfaroo1", + "name": "gilbertho502", "count": 1, "languages": 1 }, { "order": 892, - "name": "deivisaherreraj", + "name": "bjchavez", "count": 1, "languages": 1 }, { "order": 893, + "name": "alfaroo1", + "count": 1, + "languages": 1 + }, + { + "order": 894, + "name": "deivisaherreraj", + "count": 1, + "languages": 1 + }, + { + "order": 895, "name": "astrarothdlcxvi", "count": 1, "languages": 1 From b13cbb20a54b8eb0777cf3e74f01cfda02550019 Mon Sep 17 00:00:00 2001 From: Jesus Antonio Escamilla Date: Sat, 22 Jun 2024 18:26:15 -0600 Subject: [PATCH 31/66] =?UTF-8?q?#02=20-=20JavaScript=20"Correcci=C3=B3n"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../javascript/JesusAntonioEEscamilla.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Roadmap/02 - FUNCIONES Y ALCANCE/javascript/JesusAntonioEEscamilla.js b/Roadmap/02 - FUNCIONES Y ALCANCE/javascript/JesusAntonioEEscamilla.js index accbfb9973..3c9db1bf6f 100644 --- a/Roadmap/02 - FUNCIONES Y ALCANCE/javascript/JesusAntonioEEscamilla.js +++ b/Roadmap/02 - FUNCIONES Y ALCANCE/javascript/JesusAntonioEEscamilla.js @@ -91,7 +91,7 @@ function saludar() { console.log(mensaje); } saludar(); // Imprime "Hola, mundo!" -console.log(mensaje); // Error: mensaje is not defined +// console.log(mensaje); // Error: mensaje is not defined @@ -99,18 +99,18 @@ console.log(mensaje); // Error: mensaje is not defined function extra(param1 , param2) { let cont = 0; for (let i = 1; i <= 100; i++) { - if (i % 3 == 0) { + if (i % 3 == 0 && i % 5 == 0) { console.log(param1); - }else if(i % 5 == 0) { + }else if(i % 3 == 0) { console.log(param2); - }else if(i % 3 == 0 && i % 5 == 0){ + }else if(i % 5 == 0){ console.log(param1 + param2); } else{ cont ++; console.log(i); } } - return cont + return console.log('Son las veces que aparece', cont); } console.log(extra("FIZZ","BUZZ")); /**-----DIFICULTAD EXTRA-----*/ From 8b0ca16d29c9202dd9910027a1fce501c3279b4e Mon Sep 17 00:00:00 2001 From: Amador Quispe Date: Sat, 22 Jun 2024 21:37:00 -0500 Subject: [PATCH 32/66] #25 - JAVA --- Roadmap/25 - LOGS/java/AmadorQuispe.java | 152 +++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 Roadmap/25 - LOGS/java/AmadorQuispe.java diff --git a/Roadmap/25 - LOGS/java/AmadorQuispe.java b/Roadmap/25 - LOGS/java/AmadorQuispe.java new file mode 100644 index 0000000000..5f1d874fde --- /dev/null +++ b/Roadmap/25 - LOGS/java/AmadorQuispe.java @@ -0,0 +1,152 @@ +package com.amsoft.roadmap.example25; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Map; +import java.util.Scanner; +import java.util.TreeMap; +import java.util.logging.Logger; +import java.util.logging.Formatter; +import java.util.logging.LogRecord; +import java.util.logging.FileHandler; +import java.util.logging.ConsoleHandler; +import java.util.logging.LogManager; +import java.util.logging.Level; + +public class ExampleMain { + private final static Logger LOGGER = LoggerConfig.getLogger(ExampleMain.class); + public static void logs() { + LOGGER.severe("Severe Log"); + LOGGER.warning("Warning Log"); + LOGGER.info("Info Log"); + LOGGER.config("Config Log"); + LOGGER.fine("Fine Log"); + LOGGER.finer("Finer Log"); + LOGGER.finest("Finest Log"); + } + + public static void main(String[] args) { + logs(); + TaskManager taskManager = new TaskManager(); + taskManager.init(); + } +} + +class TaskManager { + Logger logger = LoggerConfig.getLogger(TaskManager.class); + public void init(){ + logger.info("administrador de tareas iniciado."); + Scanner sc = new Scanner(System.in); + sc.useDelimiter("\n"); + TreeMap tasks = new TreeMap<>(); + String option = ""; + while (!option.equals("4")){ + long timeStart; + long timeEnd; + menu(); + System.out.println("Ingrese en número de la opción:"); + option = sc.nextLine(); + switch (option){ + case "1": + System.out.println("Tareas registradas"); + timeStart = System.currentTimeMillis(); + if(tasks.isEmpty()) System.out.println("No hay tareas registradas"); + tasks.forEach((k,v)->System.out.println(k + " - " + v )); + timeEnd = System.currentTimeMillis(); + logger.info("Tiempo de ejecución en listado " + (timeEnd - timeStart) + "ms"); + break; + case "2": + System.out.println("Agregar una tarea"); + timeStart = System.currentTimeMillis(); + System.out.print("Ingrese nombre de la tarea:"); + String name = sc.nextLine(); + System.out.print("Ingrese descripción de la tarea:"); + String description = sc.nextLine(); + tasks.put(name,description); + timeEnd = System.currentTimeMillis(); + logger.info("Tarea creada " + name + " Tiempo de ejecución " + (timeEnd - timeStart) + "ms"); + break; + case "3": + System.out.println("Eliminar una tarea"); + timeStart = System.currentTimeMillis(); + System.out.print("Ingrese nombre de la tarea a eliminar:"); + String nameToDelete = sc.nextLine(); + if(tasks.remove(nameToDelete)!=null){ + timeEnd = System.currentTimeMillis(); + logger.info("Tarea eliminada " + nameToDelete + " Tiempo de ejecución " + (timeEnd - timeStart) + "ms"); + }else{ + timeEnd = System.currentTimeMillis(); + logger.info("Tarea no registrada " + nameToDelete + " Tiempo de ejecución " + (timeEnd - timeStart) + "ms"); + } + break; + case "4": + System.out.println("Gracias por usar"); + logger.info("Saliendo del sistema"); + break; + default: + System.out.println("Opción no disponible"); + logger.warning("Opción no valida :"+option); + break; + } + } + } + private void menu(){ + System.out.println("=".repeat(29)); + System.out.println("|| ADMINISTRADOR DE TAREAS ||"); + System.out.println("=".repeat(29)); + System.out.println("Opciones disponibles"); + System.out.println("[1] Mostrar tareas"); + System.out.println("[2] Agregar una tarea"); + System.out.println("[3] Eliminar una tarea"); + System.out.println("[4] Salir"); + } +} + +class LogFormatter extends Formatter { + private static final String PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"; + private final SimpleDateFormat dateFormat = new SimpleDateFormat(PATTERN); + private static final int LEVEL_NAME_LENGTH = 7; + + @Override + public String format(LogRecord record) { + StringBuilder sb = new StringBuilder(); + String formattedDate = dateFormat.format(new Date(record.getMillis())); + sb.append("\u001B[30m"); + sb.append(formattedDate).append(" "); + String levelName = record.getLevel().getLocalizedName(); + sb.append(padRight(levelName)).append(" "); + sb.append(record.getLongThreadID()).append(" --- "); + sb.append("[").append(record.getLoggerName()).append("] "); + sb.append(": ").append(formatMessage(record)); + sb.append("\u001B[0m"); + sb.append("\n"); + return sb.toString(); + } + + private String padRight(String s) { + return String.format("%1$-" + LEVEL_NAME_LENGTH + "s", s); + } +} + +class LoggerConfig { + static { + try { + FileHandler fileHandler = new FileHandler("Logging.txt"); + fileHandler.setFormatter(new LogFormatter()); + ConsoleHandler consoleHandler = new ConsoleHandler(); + consoleHandler.setFormatter(new LogFormatter()); + LogManager.getLogManager().reset(); + Logger rootLogger = Logger.getLogger(""); + rootLogger.setLevel(Level.ALL); + rootLogger.addHandler(fileHandler); + rootLogger.addHandler(consoleHandler); + } catch (IOException e) { + throw new RuntimeException("Error al configurar el logger", e); + } + } + + public static Logger getLogger(Class clazz) { + return Logger.getLogger(clazz.getName()); + } +} \ No newline at end of file From 57a0e89c8c5884827647502cf13b388016a80861 Mon Sep 17 00:00:00 2001 From: Queso Date: Thu, 20 Jun 2024 23:24:02 -0500 Subject: [PATCH 33/66] Ejercicio 07 --- Roadmap/07 - PILAS Y COLAS/python/NeosV.py | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 Roadmap/07 - PILAS Y COLAS/python/NeosV.py diff --git a/Roadmap/07 - PILAS Y COLAS/python/NeosV.py b/Roadmap/07 - PILAS Y COLAS/python/NeosV.py new file mode 100644 index 0000000000..7cca733dd7 --- /dev/null +++ b/Roadmap/07 - PILAS Y COLAS/python/NeosV.py @@ -0,0 +1,81 @@ +# pila +stack = [] + +stack.append(1) +stack.append(2) +stack.append(3) +stack.append(4) + +print(stack) +print (stack.pop()) +print(stack) + +""""La pila ingresa varios valores pero al usar el pop siempre va a sacar el ultimo item (de la derecha)""" + +queue = [] + +queue.append(1) +queue.append(2) +queue.append(3) +queue.append(4) + +print(queue) +print(queue.pop(0)) +print (queue) + +"""la fila ingresa varios valores pero al usar el pop en el indice 0 siempre va a sacar el primer item (de la izquierda)""" + +#Ejercicios dificultad Extra + + +def paginaweb(): + + stack = [] + + while True: + + accion = input("Añade una url o la accion que quieras: adelante/atras/salir") + + if accion == "salir": + print ("saliendo de la web") + break + elif accion == "adelante": + pass + elif accion == "atras": + if len(stack) > 0: + stack.pop() + else: + stack.append(accion) + + if len(stack) > 0: + + print(f"estas en la web: {stack[len(stack)-1]}") + + else: + print("estas en el inicio") + + + +def impresora(): + + queue = [] + + while True: + accion = input("porfavor indica el nombre del documento a agregar ola accion que quieres hacer: imprimir/salir " ) + + if accion == "imprimir": + + if len(queue) > 0: + print(f"El Documento {queue.pop(0)} ha sido impreso") + else: + print("no hay documentos para imprimir") + + elif accion == "salir": + print("saliendo de la impresora") + break + + else: + queue.append(accion) + print(f"documento {accion} agregado") + +impresora() \ No newline at end of file From bc804f52110881ec540882ae3d405b2eba5a200b Mon Sep 17 00:00:00 2001 From: PedroJOG <144932073+PedroJOG@users.noreply.github.com> Date: Fri, 21 Jun 2024 07:07:26 +0200 Subject: [PATCH 34/66] #1 - Python --- .../python/PedroJOG.py | 125 ++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/PedroJOG.py diff --git a/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/PedroJOG.py b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/PedroJOG.py new file mode 100644 index 0000000000..67fd4a14f3 --- /dev/null +++ b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/PedroJOG.py @@ -0,0 +1,125 @@ +#Operadores aritméticos +num1 = 4 +num2 = 3 +suma = num1 + num2 +resta = num1 - num2 +producto = num1 * num2 +division = num1 / num2 +division_entero = num1 // num2 +resto = num1 % num2 +potencia = num1 ** num2 + +print(f"Suma: {suma}, Resta: {resta}, Producto: {producto}, División: {division}, División entero: {division_entero}, Resto: {resto}, Potencia: {potencia}") + +#Operadores relacionales +mayor_que = num1 > num2 +menor_que = num1 < num2 +igual_a = num1 == num2 +mayor_o_igual = num1 >= num2 +menor_o_igual = num1 <= num2 +diferente_de = num1 != num2 + +print(f"Mayor que: {mayor_que}, Menor que: {menor_que}, Igual a: {igual_a}, Mayor o igual que: {mayor_o_igual}, Menor o igual que: {menor_o_igual}, Diferente de: {diferente_de}") + +#Operadores de asignación +num3 = 4 +num3 += 8 #Equivalencia: num1 = num1 + 8 +print(num3) +num3 -= 8 #Equivalencia: num1 = num1 - 8 +print(num3) +num3 *= 8 #Equivalencia: num1 = num1 * 8 +print(num3) +num3 **= 8 #Equivalencia: num1 = num1 ** 8 +print(num3) +num3 /= 8 #Equivalencia: num1 = num1 / 8 +print(num3) +num3 //= 8 #Equivalencia: num1 = num1 // 8 +print(num3) +num3 %= 8 #Equivalencia: num1 = num1 % 8 +print(num3) + +#Operadores lógicos +print(f"5 < 8 and 8 > 3 es: {5 < 8 and 8 > 3}") +print(f"4 > 3 or 2 > 9 es: {4 > 3 or 2 > 9}") +print(f"5 > 6 es: {not 5 > 6}") + +#Operadores de pertenencia +print(f"in: 'a' in 'hola' es {'a' in 'hola'}") #True +print(f"not in: 'a' not in 'hola' es {'a' not in 'hola'}") #False + +#Operadores de identidad +mi_variable = 10 +print(id(mi_variable)) #4372070928 +tu_variable = 10 +print(id(tu_variable)) #4372070928 + +print(f"is: mi_variable is tu_variable es {mi_variable is tu_variable}") #True +print(f"is not: mi_variable is not tu_variable es {mi_variable is not tu_variable}") #False + +#Operador nivel de Bit + ##operador and &: comparamos todos los bits uno a uno, y, si están los dos a 1, entonces sería 1; si alguno de los dos valores está a 0, sería 0. +numero = 20 +numero_bin = 0b10100 + +numero_dos = 22 +numero_dos_bin = 0b10110 + +print(bin(numero & numero_dos)) ## 0b10100 + + #operador or |: comparamos todos los bits uno a uno, y, si está alguno de los dos a 1, entonces sería 1; y si no está ninguno, es 0. + +print(bin(numero | numero_dos)) ## 0b10110 + + #operador not ~ invierte cada bit en el operando. El bit que tiene como valor 1 lo pone a 0, y al contrario. + +print(bin(~numero)) ## -ob10101 + + #operador xor ^ devuelve los bits que estén a 1 no comunes en los dos operandos. + +print(bin(numero ^ numero_dos)) ##^0b10 + + #operador shift >> ó << se utiliza para mover bits hacia la derecha ó izquierda. Hacen falta dos parámetros para indicarle primero qué vamos a desplazar y después el número de posiciones que lo desplazaremos. + +print(bin(numero >> 2)) ##ob101 +print(bin(numero << 2)) ##ob1010000 + +## Estructuras de control + + # if => condicional +color = "azul" + +if color == "azul": + print("Hace frio en la calle") +elif color == "rojo": + print("Hace calor en la calle") +else: + print("No hace ni frío ni calor") + + # for => iterativa + +cadena = 'Sevilla' + +for i in cadena: + print(i) + + # while => iterativa + +numero = 1 +while numero < 6: + print('hola mundo') + numero = numero + 1 + + # Manejo de excepciones +try: + print('No hay error') +except TypeError: + print(f'Encontré este error: {TypeError}') +finally: + print('Siempre se ejecuta') + +### EXTRA ### + +for a in range(10, 56): + if a % 2 == 0 and a != 16 and a % 3 != 0: + print(a) + From 8cf3d27d80d419e4c3f2b24d9a23ca755d209594 Mon Sep 17 00:00:00 2001 From: Christian Date: Fri, 21 Jun 2024 01:26:10 -0500 Subject: [PATCH 35/66] #22 - Javascript --- .../javascript/christian-jfr.js | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 Roadmap/22 - FUNCIONES DE ORDEN SUPERIOR/javascript/christian-jfr.js diff --git a/Roadmap/22 - FUNCIONES DE ORDEN SUPERIOR/javascript/christian-jfr.js b/Roadmap/22 - FUNCIONES DE ORDEN SUPERIOR/javascript/christian-jfr.js new file mode 100644 index 0000000000..55f5856485 --- /dev/null +++ b/Roadmap/22 - FUNCIONES DE ORDEN SUPERIOR/javascript/christian-jfr.js @@ -0,0 +1,122 @@ +// #22 FUNCIONES DE ORDEN SUPERIOR +/** + * EJERCICIO: + * Explora el concepto de funciones de orden superior en tu lenguaje + * creando ejemplos simples (a tu elección) que muestren su funcionamiento. + */ +// Callbacks +const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; + +function arrayFilter(arr, callback) { + const filteredArr = []; + for (let i = 0; i < arr.length; i++) { + callback(arr[i]) ? filteredArr.push(arr[i]) : null; + } + return filteredArr; +} + +function isOdd(x) { + return x % 2 != 0; +} + +function isEven(x) { + return x % 2 === 0; +} + +console.log(arrayFilter(numbers, isOdd)); // -> [1, 3, 5, 7, 9] +console.log(arrayFilter(numbers, isEven)); // -> [2, 4, 6, 8, 10] + +// Usando el filter que viene en javascript + +console.log(numbers.filter(isOdd)); // -> [1, 3, 5, 7, 9] +console.log(numbers.filter(isEven)); // -> [2, 4, 6, 8, 10] + +// return una funcion + +function calculate(operator) { + switch (operator) { + case '*': + return function (a, b) { + console.log(`${a * b}`); + }; + case '/': + return function (a, b) { + console.log(`${a / b}`); + }; + } +} + +calculate('*')(8, 4); // -> 32 +calculate('/')(8, 4); // -> 2 + +/** + * DIFICULTAD EXTRA (opcional): + * Dada una lista de estudiantes (con sus nombres, fecha de nacimiento y + * lista de calificaciones), utiliza funciones de orden superior para + * realizar las siguientes operaciones de procesamiento y análisis: + * - Promedio calificaciones: Obtiene una lista de estudiantes por nombre + * y promedio de sus calificaciones. + * - Mejores estudiantes: Obtiene una lista con el nombre de los estudiantes + * que tienen calificaciones con un 9 o más de promedio. + * - Nacimiento: Obtiene una lista de estudiantes ordenada desde el más joven. + * - Mayor calificación: Obtiene la calificación más alta de entre todas las + * de los alumnos. + * - Una calificación debe estar comprendida entre 0 y 10 (admite decimales). + */ + +const students = [ + { name: 'Christian', birthdate: '26-09-1987', grades: [7.2, 8.5, 8.8] }, + { name: 'Nai', birthdate: '21-07-1985', grades: [9, 9.8, 10] }, + { name: 'Johan', birthdate: '05-03-1986', grades: [9.2, 9.6, 10] }, + { name: 'Nicholas', birthdate: '30-08-1988', grades: [5, 6, 8] }, + { name: 'Dominique', birthdate: '12-04-1985', grades: [6.5, 7.2, 9] }, +]; + +// Promedio calificaciones +function getAverage(studentGrades) { + let sum = studentGrades.reduce( + (accumulator, currentGrade) => accumulator + currentGrade, + 0 + ); + let average = parseFloat((sum / studentGrades.length).toFixed(1)); + return average; +} + +const getStudentsAverage = students.map((student) => { + return { name: student.name, average: getAverage(student.grades) }; +}); + +// Mejores estudiantes +function isTopStudent(average) { + return average >= 9; +} + +const getTopStudents = getStudentsAverage.filter((student) => { + return isTopStudent(student.average); +}); + +// Nacimiento +function parseDate(dateString) { + const [day, month, year] = dateString.split('-'); + return new Date(year, month - 1, day); +} + +const sortedStudents = students.sort((a, b) => { + const dateA = parseDate(a.birthdate); + const dateB = parseDate(b.birthdate); + return dateB - dateA; +}); + +// Mayor calificación +const allGrades = students.flatMap((student) => student.grades); + +const highestGrade = allGrades.reduce( + (max, grade) => (grade > max ? grade : max), + -Infinity +); + +// Resultados +console.log(getStudentsAverage); // Muestra una lista con el nombre y promedio de calificaciones +console.log(getTopStudents); // Muestra los estudiantes que tuvieron una calificación de 9 o superior +console.log(sortedStudents); // Muestra la lista de estudiantes ordenados de menor a mayor edad +console.log(highestGrade); // Muestra la mayor calificación From 18cd3a3ac2e7d74949a512d7d36e7f92ce89db32 Mon Sep 17 00:00:00 2001 From: guillesese Date: Fri, 21 Jun 2024 10:37:45 +0200 Subject: [PATCH 36/66] 02 - Python --- .../python/guillesese.py | 126 ++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 Roadmap/02 - FUNCIONES Y ALCANCE/python/guillesese.py diff --git a/Roadmap/02 - FUNCIONES Y ALCANCE/python/guillesese.py b/Roadmap/02 - FUNCIONES Y ALCANCE/python/guillesese.py new file mode 100644 index 0000000000..05d8008678 --- /dev/null +++ b/Roadmap/02 - FUNCIONES Y ALCANCE/python/guillesese.py @@ -0,0 +1,126 @@ +#02 - FUNCIONES Y ALCANCE +#EJERCICIO: +#- Crea ejemplos de funciones basicas que representen las diferentes +# posibilidades del lenguaje: +# Sin parametros ni retorno, con uno o varios parametros, con retorno... +# - Comprueba si puedes crear funciones dentro de funciones. +# - Utiliza algun ejemplo de funciones ya creadas en el lenguaje. +# - Pon a prueba el concepto de variable LOCAL y GLOBAL. +# - Debes hacer print por consola del resultado de todos los ejemplos. +# (y tener en cuenta que cada lenguaje puede poseer mas o menos posibilidades) + +''' Definidas por el usuario''' + +#Sin retorno +def funcion(): + print("Hola") + +funcion() + +#Con retorno +def funcion_ret(): + return "Hola" + +print(funcion_ret()) + +#Con un argumento +def funcion_arg(arg1): + print(f"arg1: {arg1}") + +funcion_arg("argumento1") + +#Con varios argumentos +def funcion_arg_multiple(arg1, arg2): + print(f"arg1: {arg1} arg2: {arg2}") + +funcion_arg_multiple("argumento1",2) +funcion_arg_multiple(arg1=2, arg2="argumento2") + +#Con argumento predeterminado +def funcion_arg_default(arg1="argumento1"): + print(f"arg1: {arg1}") + +funcion_arg_default("arg1") +funcion_arg_default() + +#Con argumentos y return +def funcion_arg_return(arg1, arg2): + return f"arg1: {arg1} arg2: {arg2}" + +print(funcion_arg_return("arg1",2)) + +#Con return multiple +def funcion_mult_return(): + return "arg1",2 + +arg1, arg2 = funcion_mult_return() +print(f"arg1: {arg1}") +print(f"arg2: {arg2}") + +#Con numero variable de argumentos +def funcion_arg_variable(*args): + for arg in args: + print(f"arg: {arg}") + +funcion_arg_variable("arg1",2,"arg3",'4') + +#Con numero variable de argumentos con palabra clave +def funcion_arg_variable_key(**args): + for key,value in args.items(): + print(f"{key}, {value}") + +funcion_arg_variable_key( + arg1="argumento1", + arg2=2, + arg3='3' +) + +''' +Funciones dentro de funciones. +''' +def funcion_ext(): + def funcion_int(): + print("Funcion interna dentro de funcion externa") + funcion_int() + +funcion_ext() + +''' +Funciones del lenguaje +''' +print(len("string")) +print(type("string")) +print(type(3)) +print("string".upper()) + +''' +variables locales y globales +''' + +global_var = "Global" + +def funcion_local_global(): + local_var = "Local" + print(f"Global= {global_var} Local={local_var}") + +funcion_local_global() + +""" +Extra +""" +def funcion(parametro1, parametro2) -> int: + count = 0 + for i in range(1,101): + if i % 3 == 0 and i % 5 == 0: + print (parametro1 + parametro2) + elif i % 3 == 0: + print (parametro1) + elif i % 5 == 0: + print (parametro2) + else: + print(i) + count += 1 + + return count + +print (funcion("parametro1","parametro2")) \ No newline at end of file From 76e4bd37a1bff9c6c95dbfd0413a045d6da97d0b Mon Sep 17 00:00:00 2001 From: David Date: Fri, 21 Jun 2024 10:33:26 +0200 Subject: [PATCH 37/66] .\roadmap\00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO\python\Nevaito.py --- .../python/nevaito.py | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/nevaito.py diff --git a/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/nevaito.py b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/nevaito.py new file mode 100644 index 0000000000..f883a7f0a5 --- /dev/null +++ b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/nevaito.py @@ -0,0 +1,121 @@ +""" +/* + * EJERCICIO: + * - Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje: + * Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits... + * (Ten en cuenta que cada lenguaje puede poseer unos diferentes) + * - Utilizando las operaciones con operadores que tú quieras, crea ejemplos + * que representen todos los tipos de estructuras de control que existan + * en tu lenguaje: + * Condicionales, iterativas, excepciones... + * - Debes hacer print por consola del resultado de todos los ejemplos. + * + * DIFICULTAD EXTRA (opcional): + * Crea un programa que imprima por consola todos los números comprendidos + * entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3. + * + * Seguro que al revisar detenidamente las posibilidades has descubierto algo nuevo. + */ +""" +""" +Operadores + """ +# Operadores aritmeticos +print(f"Suma: 10 + 3 = {10 + 3}") +print(f"Resta: 10 - 3 = {10 - 3}") +print(f"Multiplicacion: 10 * 3 = {10 * 3}") +print(f"Division: 10 / 3 = {10 / 3}") +print(f"Modulo: 10 % 3 = {10 % 3}") # modulo es el resto de la division +print(f"Exponente: 10 ** 3 = {10 ** 3}") # elevar un numero +print(f"Division entera: 10 // 3 = {10 // 3}") # resultado numero entero + +# Operadores de comparacion +print(f"Igualdad: 10 == 3 es {10 == 3}") +print(f"Desigualdad: 10 != 3 es {10 != 3}") +print(f"Mayor Que: 10 > 3 es {10 > 3}") +print(f"Menor Que: 10 < 3 es {10 < 3}") +print(f"Mayor o igual que: 10 >= 3 es {10 >= 3}") +print(f"Menor o igual que: 10 <= 3 es {10 <= 3}") + +# Operadores logicos +print(f"AND &&: 10 + 3 == 13 and 5 - 1 == 4 es {10 + 3 == 13 and 5 - 1 == 4}") # se tienen q cumplir las dos condiciones para que sea true +print(f"OR ||: 10 + 3 == 14 or 5 - 1 == 4 es {10 + 3 == 14 or 5 - 1 == 4}") # se tiene que cumplir al menos una de las condiones para que sea true +print(f"NOT !: not 10 + 3 == 14 es {not 10 + 3 == 14}") + +# Operadores de asignacion +my_number = 11 #asignacion +print(my_number) +my_number += 1 #suma y asignacion +print(my_number) +my_number -= 1 #resta y asignacion +print(my_number) +my_number *= 2 #multiplicacion y asignacion +print(my_number) +my_number /= 2 #division y asignacion +print(my_number) +my_number %= 2 #modulo y asignacion +print(my_number) +my_number **= 1 #exponente y asignacion +print(my_number) +my_number //= 1 # Div entera y asignacion +print(my_number) + +# Operadores de identidad +my_new_number = my_number +print(f"my_number is my_new_number es {my_number is my_new_number}") +print(f"my_number is not my_new_number es {my_number is not my_new_number}") + +# Operadores de pertenencia +print(f"'d' in 'David' = {'d' in 'David'}") +print(f"'b' not in 'David' = {'b' not in 'David'}") + +# Operadores de bit +a = 10 # 1010 +b = 3 # 0011 +print(f"AND: 10 & 3 = {10 & 3}") # 0010 +print(f"OR: 10 | 3 = {10 | 3}") # 1011 +print(f"XOR: 10 ^ 3 = {10 ^ 3}") # 1001 +print(f"NOT: ~10 = {~10}") +print(f"Desplazamiento a la derecha: 10 >> 2 = {10 >> 2}") # 0010 +print(f"Desplazamiento a la izquierda: 10 << 2 = {10 << 2}") # 101000 + + +""" +Estructuras de control +""" +# Condicionales + +my_string = "Daviddd" + +if my_string == "David": + print("my_string es 'David'") +elif my_string == "Hoyos": + print(" my string es 'Hoyos'") +else: + print("my_string no es 'David'ni 'Hoyos'") + +# Iterativas + +for i in range(11): + print(i) + +i = 0 + +while i <= 10: + print(i) + i += 1 + +# Manejo de excepciones +try: + print(10/0) +except: + print("Se ha producido un error") +finally: + print("Ha finalizo el manejo de excepciones") + +""" +Extra +""" +for number in range(10, 56): + if number % 2 == 0 and number != 16 and number % 3 != 0: + print(number) From 1280a1d2c6deab3c6c53e20f3cac391ea4a085c6 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 21 Jun 2024 10:36:20 +0200 Subject: [PATCH 38/66] .\roadmap\00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO\python\nevaito.py --- .../python/nevaito.py | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/nevaito.py diff --git a/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/nevaito.py b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/nevaito.py new file mode 100644 index 0000000000..33056bcef9 --- /dev/null +++ b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/nevaito.py @@ -0,0 +1,32 @@ +# https://python.org + +# esto es un comentario en una linea +""" +Esto es un comentario +en varias lineas +entre comillas dobles +""" +''' +Esto es un comentario +en varias lineas +entre comillas simples +''' + +my_variable = "Mi variable" +my_variable = "Nuevo valor de mi variable" + +MY_CONSTANT = "No es una constante pero estando en mayusculas se entiende que si" # por conveccion + +my_int:int = 1 +my_float:float = 1.5 +my_bool:bool = True +my_bool = False +my_string:str = "Mi cadena de texto" +my_other_string = 'Mi cadena de texto' + +print("¡Hola, Python!") + +print(type(my_int)) +print(type(my_bool)) +print(type(my_float)) +print(type(my_string)) From f283d58c787e981fce8b98bb556edff562e68273 Mon Sep 17 00:00:00 2001 From: Amador Quispe Date: Fri, 21 Jun 2024 06:28:41 -0500 Subject: [PATCH 39/66] #03 - GO --- .../go/AmadorQuispe.go | 178 ++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 Roadmap/03 - ESTRUCTURAS DE DATOS/go/AmadorQuispe.go diff --git a/Roadmap/03 - ESTRUCTURAS DE DATOS/go/AmadorQuispe.go b/Roadmap/03 - ESTRUCTURAS DE DATOS/go/AmadorQuispe.go new file mode 100644 index 0000000000..46108f1bc4 --- /dev/null +++ b/Roadmap/03 - ESTRUCTURAS DE DATOS/go/AmadorQuispe.go @@ -0,0 +1,178 @@ +package main + +import ( + "bufio" + "errors" + "fmt" + "os" + "sort" + "strconv" + "strings" +) + +func main() { + //inserción, borrado, actualización y ordenación + //==>Arrays, son estáticos y son del mismo tipo + arr := [5]int{4, 2, 1, 3} + fmt.Println("Array de tamaño 5 => ", arr) + //borrado, actualización + arr[4] = 5 + // Ordenación + sort.Ints(arr[:]) + fmt.Println("Array de tamaño 5 ordenada => ", arr) + + //==>Matrices + matrix := [2][3]int{{1, 2, 3}, {4, 5, 6}} + fmt.Println("matriz de 2 x 3 => ", matrix) + + //==>Slices, son dinámicos + slice := []int{1, 2, 3, 4, 5} + fmt.Println("Slice => ", slice) + //insertar + slice = append(slice, 6) + fmt.Println("Con agregado al final => ", slice) + //Modificación + indexToUpdate := 2 + slice[indexToUpdate] = 89 + fmt.Println("Con el indice 2 actualizado =>", slice) + //Eliminación + indexToRemove := 2 + slice = append(slice[:indexToRemove], slice[indexToRemove+1:]...) + fmt.Println("Con el indice 2 eliminado =>", slice) + + //Maps, clave : valor + weekdays := map[int]string{1: "Lunes", 2: "Martes", 3: "Miércoles", 4: "Jueves", 5: "Viernes", 6: "Sábado", 7: "Domingo"} + fmt.Println("Mapa => ", weekdays) + + //Structs, estructura de datos que nos permite agrupar datos de diferentes tipos + type person struct { + name string + age int + } + p1 := person{"Amador", 32} + fmt.Println("Struct => ", p1) + + //EXTRA + reader := bufio.NewReader(os.Stdin) + agenda := NewAgenda() + + for { + fmt.Println("==============================") + fmt.Println("Agenda de Contactos") + fmt.Println("0. Listar Contactos") + fmt.Println("1. Agregar Contacto") + fmt.Println("2. Buscar Contacto") + fmt.Println("3. Actualizar Contacto") + fmt.Println("4. Eliminar Contacto") + fmt.Println("Escribe 'exit' para salir") + fmt.Println("==============================") + fmt.Print("Ingresa una opción: ") + option, _ := reader.ReadString('\n') + option = strings.TrimSpace(option) + if option == "exit" { + break + } + switch option { + case "0": + fmt.Println("LISTA CONTACTOS :") + for key, contact := range agenda.contacts { + fmt.Println(key, "->", contact) + } + case "1": + fmt.Println("AGREGAR CONTACTO :") + var name, phone string + fmt.Print("Ingresa el nombre: ") + name, _ = reader.ReadString('\n') + name = strings.TrimSpace(name) + fmt.Print("Ingresa el # celular: ") + phone, _ = reader.ReadString('\n') + phone = strings.TrimSpace(phone) + err := agenda.addContact(name, phone) + if err != nil { + fmt.Println(err) + } else { + fmt.Println("Contacto agregado !") + } + + case "2": + fmt.Println("BUSCAR CONTACTO :") + fmt.Print("Ingresa el nombre de contacto a buscar: ") + inputSearch, _ := reader.ReadString('\n') + inputSearch = strings.TrimSpace(inputSearch) + phone, err := agenda.searchByName(inputSearch) + if err != nil { + fmt.Println("El contacto", inputSearch, "no se encuentra registrada") + } else { + fmt.Println("Contacto encontrado : Nombre =", inputSearch, " Celular =", phone) + } + case "3": + fmt.Println("ACTUALIZAR CONTACTO :") + fmt.Print("Ingresa el nombre del contacto a actualizar: ") + contactToUpdate, _ := reader.ReadString('\n') + contactToUpdate = strings.TrimSpace(contactToUpdate) + _, err := agenda.searchByName(contactToUpdate) + if err != nil { + fmt.Println("El contacto", contactToUpdate, "no se encuentra registrada") + break + } + fmt.Print("Ingresa el # celular del contacto a actualizar: ") + phoneToUpdate, _ := reader.ReadString('\n') + phoneToUpdate = strings.TrimSpace(phoneToUpdate) + err = agenda.addContact(contactToUpdate, phoneToUpdate) + if err != nil { + fmt.Println(err) + } else { + fmt.Println("Contacto agregado !") + } + case "4": + fmt.Println("ELIMINAR CONTACTO :") + fmt.Print("Ingresa el nombre del contacto a eliminar: ") + contactToDelete, _ := reader.ReadString('\n') + contactToDelete = strings.TrimSpace(contactToDelete) + _, err := agenda.searchByName(contactToDelete) + if err != nil { + fmt.Println("El contacto", contactToDelete, "no se encuentra registrada") + break + } + agenda.removeContact(contactToDelete) + fmt.Println("Contacto eliminado !") + } + } +} + +// IMPLEMENTACIÓN DE AGENDA + +type agenda struct { + contacts map[string]string +} + +func NewAgenda() *agenda { + return &agenda{ + contacts: map[string]string{}, + } +} + +func (a *agenda) addContact(name, phone string) error { + if _, err := a.searchByName(name); err == nil { + return errors.New("el contacto ya se encuentra registrada") + } + + if _, err := strconv.Atoi(phone); err != nil || len(phone) > 9 { + return errors.New("número de teléfono no válido, debe ser numérico y tener máximo 9 dígitos") + } + a.contacts[name] = phone + return nil +} + +func (a *agenda) searchByName(name string) (string, error) { + phone, ok := a.contacts[name] + if ok { + return phone, nil + } else { + return "", errors.New("contacto no encontrado") + } +} + +func (a *agenda) removeContact(name string) { + delete(a.contacts, name) +} From b7528f8f9fd522eb48e0007c7fb4351a81095e60 Mon Sep 17 00:00:00 2001 From: DjSurgeon <130383883+DjSurgeon@users.noreply.github.com> Date: Fri, 21 Jun 2024 13:46:18 +0200 Subject: [PATCH 40/66] #04 - Javascript --- .../javascript/DjSurgeon.js | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 Roadmap/04 - CADENAS DE CARACTERES/javascript/DjSurgeon.js diff --git a/Roadmap/04 - CADENAS DE CARACTERES/javascript/DjSurgeon.js b/Roadmap/04 - CADENAS DE CARACTERES/javascript/DjSurgeon.js new file mode 100644 index 0000000000..dccc3fe47b --- /dev/null +++ b/Roadmap/04 - CADENAS DE CARACTERES/javascript/DjSurgeon.js @@ -0,0 +1,138 @@ +/* + * EJERCICIO: + * Muestra ejemplos de todas las operaciones que puedes realizar con cadenas de caracteres + * en tu lenguaje. Algunas de esas operaciones podrían ser (busca todas las que puedas): + * - Acceso a caracteres específicos, subcadenas, longitud, concatenación, repetición, + * recorrido, conversión a mayúsculas y minúsculas, reemplazo, división, unión, + * interpolación, verificación... + * + * DIFICULTAD EXTRA (opcional): + * Crea un programa que analice dos palabras diferentes y realice comprobaciones + * para descubrir si son: + * - Palíndromos + * - Anagramas + * - Isogramas + */ + +// Operaciones con cadenas +let string = "Hola mundo!"; + +// Encontrar la longitud de una cadena *.length + +console.log(string.length); // Devuelve 11 incluye espacios y simbolos. + +// Extraer un caracter de la cadena. Para ello utilizaremos la notación del punto *.[n] + +console.log(string[0]); // Devuelve "H" +console.log(string[string.length - 1]); // Devuelve "!" + +// Encontrar una subcadena dentro de una cadena y extraerla *.indexOf() +// Como parametro utilizaremos la cadena a buscar y el resultado sera -1 si no se encuentra la cadena, y si se encuentra el numero n a partir de donde empieza la cadena. + +console.log(string.indexOf("mundo")); // Devuelve 5 +console.log(string[5]); // Devuelve "m" +console.log(string.indexOf("world")); // Devuelve -1 + +// Si sabes donde comienza una subcadena dentro de una cadena y sabes hasta cuál caracter deseas que termina puede usarse *.slice(). +// Recibe dos parametrosel primero es la posicion en la que comienza a extraer el caracter y el segundo la posicion del caracter posterior al ultimo a ser extraido. + +console.log(string.slice(5, 10)); // Devuelve "mundo" +console.log(string.slice(8, string.length)); // Devuelve "do!" +// El segundo parametro es opcional, si no se añade el corte termina al final de la cadena original +console.log(string.slice(5)); // Devuelve "mundo!" +console.log(string.slice(2)); // Devuelve "la mundo!" + +// Cambiar todo a mayuscula o todo a minuscula *.toLowerCase() y *.toUpperCase() + +console.log(string.toLowerCase()); // Devuelve "hola mundo!" +console.log(string.toUpperCase()); // Devuelve "HOLA MUNDO!" + +// Actualizar partes de una cadena *.replace() + +console.log(string.replace("Hola", "Hello")); // Devuelve "Hello mundo!" + +// Combinar cadenas *.concat() + +console.log(string.concat(", ", "Hello")); // Devuelve "Hola mundo!, Hello" + +// Dividir cadenas *.split() +// El paremetro es el elemento separador de la cadena + +console.log(string.split(" ")); // Devuelve [ 'Hola', 'mundo!' ] +console.log(string.split("")); // Devuelve [ 'H', 'o', 'l', 'a',' ', 'm', 'u', 'n','d', 'o', '!'] +console.log(string.split("-")); // Devuelve [ 'Hola mundo!' ] + +//Buscar un valor dentro de la cadena *.includes() + +console.log(string.includes("mundo")); // Devuelve true +console.log(string.includes("world")); // Devuelve false + +// Eliminar los espacios en blanco al principio y final de una cadena + +let string2 = " Hello World! "; +console.log(string2.trim()); // Devuelve "Hello World!" + +// Extra ======= +/* Un palíndromo es un término o una expresión que puede leerse tanto de izquierda a derecha como de derecha a izquierda (es decir, expresa lo mismo al ser leído de manera tradicional o al revés). + */ + +const isPalindromo = (string) => { + let element1 = string.toLowerCase().trim().split(" ").join(""); // almacenamos en la variable la cadena en minuscula y sin huecos a los lados y eliminamos los huecos entremedia y lo volvemos a juntar + let element2 = element1.split("").slice().reverse().join(""); // Hacemos una copia de la string y le damos la vuelta + + if (element1 === element2) { + console.log(`${string} es palindromo.`); + } else { + console.log(`${string} no es palindromo.`); + } +}; + +isPalindromo("as$sa"); +isPalindromo("12jeja85"); + +/* +Un anagrama es una palabra que resulta de la transposición de todas las letras de otra palabra. Dicho de otra forma, una palabra es anagrama de otra si las dos tienen las mismas letras, con el mismo número de apariciones, pero en un orden diferente. Esto se aplica también a grupos de palabras o frases. +*/ + +const isAnagrama = (string1, string2) => { + let element1 = string1.toLowerCase().trim(); + let element2 = string2.toLowerCase().trim(); + if (element1.length === element2.length) { + element3 = element1.split("").sort().join(""); + element4 = element2.split("").sort().join(""); + if (element3 === element4) { + console.log(`${element1} y ${element2} son anagramas.`); + } else { + console.log(`${element1} y ${element2} no son anagramas.`); + } + } else { + console.log(`${element1} y ${element2} no son anagramas.`); + } +}; + +isAnagrama("Nacionalista", "Altisonancia"); +isAnagrama("Seudo", "Sesudo"); + +/* +En morfología y juego verbal , un isograma es una palabra sin letras repetidas (como ambidestro ) o, más ampliamente, una palabra en la que las letras aparecen el mismo número de veces. +*/ + +const isIsograma = (string) => { + + let element1 = string.toLowerCase().trim(); + let set1 = new Set() + + for(let letra of element1) { + if(set1.has(letra)) { + return console.log(`${string}, no es un isograma.`) + } + else { + set1.add(letra); + } + } +return console.log(`${string} es un isograma.`) + +} + +isIsograma("bilabial"); +isIsograma("ambidestro"); From 3ac99a3a3e7770bfc4a7ecd81948ae8b80fc6403 Mon Sep 17 00:00:00 2001 From: edalmava Date: Fri, 21 Jun 2024 09:18:26 -0500 Subject: [PATCH 41/66] #00 - F# --- .../f#/edalmava.fsx | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/f#/edalmava.fsx diff --git a/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/f#/edalmava.fsx b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/f#/edalmava.fsx new file mode 100644 index 0000000000..89ca4d0900 --- /dev/null +++ b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/f#/edalmava.fsx @@ -0,0 +1,29 @@ +// Sitio oficial: https://fsharp.org/ +// F# Basics: https://dotnet.microsoft.com/es-es/languages/fsharp +// http://learn.microsoft.com/dotnet/fsharp + +// Variables en F# +// Después de asignar un valor, no se puede cambiar, es inmutable +// Para hacer que sea mutable se emplea la palabra reservada mutable +// Con inferencia de tipos +let nombre_variable = "Valor" // variable string +let entero = 5 // variable int +let float = 1.0 // variable float +let char = 'a' // variable char +let booleano = true // variable bool - true o false + +// Con tipos +let cadena : string = "Hola" +let entero2 : int = 10 +let float2 : float = 5.0e2 +let double : double = 20.0 +let char2 : char = '@' +let booleano2 : bool = false + +// variables mutables +let mutable name = "Chris" +name <- "Luis" + +let fsharp = "F#" + +printfn $"¡Hola, {fsharp}!" // Imprime la cadena en stdout y agrega un caracter de nueva línea From 58a47b380658d204c8fbcda5428f4476e42505b9 Mon Sep 17 00:00:00 2001 From: agusrosero Date: Fri, 21 Jun 2024 12:03:56 -0300 Subject: [PATCH 42/66] #19 - Javascript --- .../javascript/agusrosero.js | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 Roadmap/19 - ENUMERACIONES/javascript/agusrosero.js diff --git a/Roadmap/19 - ENUMERACIONES/javascript/agusrosero.js b/Roadmap/19 - ENUMERACIONES/javascript/agusrosero.js new file mode 100644 index 0000000000..adeb5269d0 --- /dev/null +++ b/Roadmap/19 - ENUMERACIONES/javascript/agusrosero.js @@ -0,0 +1,111 @@ +/* + * EJERCICIO: + * Empleando tu lenguaje, explora la definición del tipo de dato + * que sirva para definir enumeraciones (Enum). + * Crea un Enum que represente los días de la semana del lunes + * al domingo, en ese orden. Con ese enumerado, crea una operación + * que muestre el nombre del día de la semana dependiendo del número entero + * utilizado (del 1 al 7). + */ +const diasSemana = Object.freeze({ + LUNES: "Lunes", + MARTES: "Martes", + MIERCOLES: "Miercoles", + JUEVES: "Jueves", + VIERNES: "Viernes", + SABADO: "Sabado", + DOMINGO: "Domingo", +}); +console.log(diasSemana); + +function getWeekdays(num) { + switch (num) { + case 1: + console.log(diasSemana.LUNES); + break; + case 2: + console.log(diasSemana.MARTES); + break; + case 3: + console.log(diasSemana.MIERCOLES); + break; + case 4: + console.log(diasSemana.JUEVES); + break; + case 5: + console.log(diasSemana.VIERNES); + break; + case 6: + console.log(diasSemana.SABADO); + break; + case 7: + console.log(diasSemana.DOMINGO); + break; + } +} + +getWeekdays(5); + +/** + * DIFICULTAD EXTRA (opcional): + * Crea un pequeño sistema de gestión del estado de pedidos. + * Implementa una clase que defina un pedido con las siguientes características: + * - El pedido tiene un identificador y un estado. + * - El estado es un Enum con estos valores: PENDIENTE, ENVIADO, ENTREGADO y CANCELADO. + * - Implementa las funciones que sirvan para modificar el estado: + * - Pedido enviado + * - Pedido cancelado + * - Pedido entregado + * (Establece una lógica, por ejemplo, no se puede entregar si no se ha enviado, etc...) + * - Implementa una función para mostrar un texto descriptivo según el estado actual. + * - Crea diferentes pedidos y muestra cómo se interactúa con ellos. + */ +const estados = Object.freeze({ + PENDIENTE: "Pendiente", + ENVIADO: "Enviado", + ENTREGADO: "Entregado", + CANCELADO: "Cancelado", +}); + +class GestionEstadoPedidos { + constructor(id) { + this.id = id; + this.estado = estados.PENDIENTE; + } + + pedidoEnviado() { + if (this.estado === estados.ENVIADO) { + console.log("Pedido enviado con exito"); + } else { + console.log("Error en el envio del pedido"); + } + } + + pedidoCancelado() { + if (this.estado === estados.CANCELADO) { + console.log("Pedido cancelado"); + } else { + console.log("Error al cancelar el pedido"); + } + } + + pedidoEntregado() { + if (this.estado === estados.ENTREGADO) { + console.log("Pedidos entregado correctamente"); + } else { + console.log("Error al entregar el pedido"); + } + } + + textoDescriptivo() { + console.log(`Estado del pedido: ${this.estado}`); + } +} + +const pedido1 = new GestionEstadoPedidos(); +pedido1.textoDescriptivo(); +pedido1.pedidoEnviado(); + +const pedido2 = new GestionEstadoPedidos(); +pedido2.textoDescriptivo(); +pedido2.pedidoCancelado(); From bf516829be522d6bd66d0b79bf309ba8541354fc Mon Sep 17 00:00:00 2001 From: Tashidian Date: Fri, 21 Jun 2024 11:29:35 +0200 Subject: [PATCH 43/66] #00 - Python --- .../python/Tashidian.py | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/Tashidian.py diff --git a/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/Tashidian.py b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/Tashidian.py new file mode 100644 index 0000000000..abcb9e01e2 --- /dev/null +++ b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/Tashidian.py @@ -0,0 +1,39 @@ +# https://www.python.org/ + + +# comentario de una sola línea + + +""" +Este comentario es realidad una +un bloque de texto multilínea, +pero al no estar asignado actúa +como un comentario. +""" + +# VARIABLES + +first_var = "Mi primera variable en Python." + +CONSTANT = "Por convención, las constantes en Python se escriben en mayúsculas, sin embargo son variables normales que se pueden modificar." + +# TIPOS DE DATOS PRIMITIVOS + +# string str +my_string = "Cadena de texto." + +# Integer int +my_integer = 7 + +# Float float +my_float = 7.3 + +# Boolean bool +my_boolean = False + +# None NoneType +my_none = None + +# IMPRESIÓN POR TERMINAL +language = "Python" +print(f"¡Hola, {language}!") From 0558e11de51c7e4e01e0ad31caf466ad1ab5ef22 Mon Sep 17 00:00:00 2001 From: Teren91 Date: Sat, 15 Jun 2024 10:44:55 +0200 Subject: [PATCH 44/66] #14 - Dart --- Roadmap/14 - FECHAS/dart/teren91.dart | 47 +++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Roadmap/14 - FECHAS/dart/teren91.dart diff --git a/Roadmap/14 - FECHAS/dart/teren91.dart b/Roadmap/14 - FECHAS/dart/teren91.dart new file mode 100644 index 0000000000..3b6b25f866 --- /dev/null +++ b/Roadmap/14 - FECHAS/dart/teren91.dart @@ -0,0 +1,47 @@ + +import 'package:intl/intl.dart'; + +/* + * EJERCICIO: + * Crea dos variables utilizando los objetos fecha (date, o semejante) de tu lenguaje: + * - Una primera que represente la fecha (día, mes, año, hora, minuto, segundo) actual. + * - Una segunda que represente tu fecha de nacimiento (te puedes inventar la hora). + * Calcula cuántos años han transcurrido entre ambas fechas. + * + * DIFICULTAD EXTRA (opcional): + * Utilizando la fecha de tu cumpleaños, formatéala y muestra su resultado de + * 10 maneras diferentes. Por ejemplo: + * - Día, mes y año. + * - Hora, minuto y segundo. + * - Día de año. + * - Día de la semana. + * - Nombre del mes. + * (lo que se te ocurra...) + */ + + +void main() +{ + DateTime date = DateTime.now(); + DateTime birthDay = DateTime(1991, 9, 14, 1, 0, 0); + DateFormat dateFormatter = DateFormat('dd/MM/yyyy hh:mm'); + Duration dateDifference = date.difference(birthDay); + + print('Fecha actual: ' + dateFormatter.format(date)); + print('Cumple : ' + dateFormatter.format(birthDay)); + print('Transcurrido: ${(dateDifference.inDays / 365).floor().toString()} años'); + + //Dificultad extra + + DateFormat dateFormatter_ddMMyyyy = DateFormat('dd/MM/yyyy'); + DateFormat dateFormatter_hhmmss = DateFormat('hh:mm:ss'); + DateFormat dateFormatter_Completa = DateFormat('EEEE, dd MMMM, yyyy'); + DateFormat dateFormatter_diaSemana = DateFormat('EEEE'); + DateFormat dateFormatter_Mes = DateFormat('MMMM'); + + print('Cumple : ' + dateFormatter_ddMMyyyy.format(birthDay)); + print('Cumple : ' + dateFormatter_hhmmss.format(birthDay)); + print('Cumple : ' + dateFormatter_Completa.format(birthDay)); + print('Cumple : ' + dateFormatter_diaSemana.format(birthDay)); + print('Cumple : ' + dateFormatter_Mes.format(birthDay)); +} \ No newline at end of file From ec10d8c762f1b9da433711d105cda24865f71ce7 Mon Sep 17 00:00:00 2001 From: Teren91 Date: Sat, 22 Jun 2024 09:49:32 +0200 Subject: [PATCH 45/66] Include dart file references to gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 3be58e2778..80716f2654 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ !stats.json .DS_Store .idea/ +pubspec.yaml +pubspec.lock \ No newline at end of file From 568f9710b5431290e395de4c341f45eb812bab30 Mon Sep 17 00:00:00 2001 From: Teren91 Date: Sat, 22 Jun 2024 10:18:11 +0200 Subject: [PATCH 46/66] #15 - Dart --- .../15 - ASINCRON\303\215A/dart/teren91.dart" | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 "Roadmap/15 - ASINCRON\303\215A/dart/teren91.dart" diff --git "a/Roadmap/15 - ASINCRON\303\215A/dart/teren91.dart" "b/Roadmap/15 - ASINCRON\303\215A/dart/teren91.dart" new file mode 100644 index 0000000000..0f288cd1b0 --- /dev/null +++ "b/Roadmap/15 - ASINCRON\303\215A/dart/teren91.dart" @@ -0,0 +1,43 @@ +/* + * EJERCICIO: + * Utilizando tu lenguaje, crea un programa capaz de ejecutar de manera + * asíncrona una función que tardará en finalizar un número concreto de + * segundos parametrizables. También debes poder asignarle un nombre. + * La función imprime su nombre, cuándo empieza, el tiempo que durará + * su ejecución y cuando finaliza. + * + * DIFICULTAD EXTRA (opcional): + * Utilizando el concepto de asincronía y la función anterior, crea + * el siguiente programa que ejecuta en este orden: + * - Una función C que dura 3 segundos. + * - Una función B que dura 2 segundos. + * - Una función A que dura 1 segundo. + * - Una función D que dura 1 segundo. + * - Las funciones C, B y A se ejecutan en paralelo. + * - La función D comienza su ejecución cuando las 3 anteriores han + * finalizado. + */ + +import 'dart:async'; + +void main() async +{ + + //Ejecución en paralelo + List> functions = [ + + showName('Función C', 3), + showName('Función B', 2), + showName('Función A', 1) + ]; + + await Future.wait(functions); + + await showName('Función D', 1); +} + +Future showName(String name, int duration) async +{ + await Future.delayed(Duration(seconds: duration)); + print('Soy $name'); +} \ No newline at end of file From b349fe405dc19313eaf2db9bc341994afda8b3cb Mon Sep 17 00:00:00 2001 From: kenysdev Date: Sat, 22 Jun 2024 12:03:56 -0500 Subject: [PATCH 47/66] 25-vb.net-LOGS --- Roadmap/25 - LOGS/vb.net/kenysdev.vb | 98 ++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 Roadmap/25 - LOGS/vb.net/kenysdev.vb diff --git a/Roadmap/25 - LOGS/vb.net/kenysdev.vb b/Roadmap/25 - LOGS/vb.net/kenysdev.vb new file mode 100644 index 0000000000..a0fb584dc3 --- /dev/null +++ b/Roadmap/25 - LOGS/vb.net/kenysdev.vb @@ -0,0 +1,98 @@ +' ╔══════════════════════════════════════╗ +' ║ Autor: Kenys Alvarado              ║ +' ║ GitHub: https://github.com/Kenysdev  ║ +' ║ 2024 - VB.NET                       ║ +' ╚══════════════════════════════════════╝ +'----------------------------------------------- +'* LOGS +'----------------------------------------------- +'Mas info: https://nlog-project.org/ + +Imports NLog +Imports NLog.Config +Imports NLog.Targets + +Module Program + + Private Logger As Logger = LogManager.GetCurrentClassLogger() + + Sub Main() + '* EJERCICIO #1: + '* Explora el concepto de "logging" en tu lenguaje. Configúralo y muestra + '* un ejemplo con cada nivel de "severidad" disponible. + + ' Configuración manual + Dim config As New LoggingConfiguration() + + ' Definir el destino del log) + Dim consoleTarget As New ConsoleTarget("console") + config.AddTarget("console", consoleTarget) + + ' Definir las reglas de log + config.AddRuleForAllLevels(consoleTarget) + + ' Aplicar la configuración + LogManager.Configuration = config + + ' Ejemplo de uso: + Logger.Trace("msg Trace") + Logger.Debug("msg Debug") + Logger.Info("msg Info") + Logger.Warn("msg Warn") + Logger.Error("msg Error") + Logger.Fatal("msg Fatal") + + '_________________________________________________ + Console.WriteLine(vbLf & "EJERCICIO #2") + Dim tasks As New ProgramTask() + + tasks.Add("a", "1") + tasks.Add("b", "2") + tasks.Add("c", "3") + + tasks.Delete("b") + tasks.ShowList() + + End Sub + + '----------------------------------------------- + '* EJERCICIO #2 + '* Crea un programa ficticio de gestión de tareas que permita añadir, eliminar + '* y listar dichas tareas. + '* - Añadir: recibe nombre y descripción. + '* - Eliminar: por nombre de la tarea. + '* Implementa diferentes mensajes de log que muestren información según la + '* tarea ejecutada (a tu elección). + '* Utiliza el log para visualizar el tiempo de ejecución de cada tarea. + + Public Class ProgramTask + Private Shared ReadOnly logger As Logger = LogManager.GetCurrentClassLogger() + Private ReadOnly tasks As Dictionary(Of String, String) + + Public Sub New() + tasks = New Dictionary(Of String, String)() + logger.Debug("Se inició instancia de la clase ProgramTask.") + End Sub + + Public Sub Add(name As String, description As String) + tasks(name) = description + logger.Info("Se agregó una tarea.") + End Sub + + Public Sub Delete(name As String) + If tasks.Remove(name) Then + logger.Info($"Tarea '{name}' eliminada.") + Else + Console.WriteLine() + logger.Warn($"No se encontró la tarea '{name}'.") + End If + End Sub + + Public Sub ShowList() + logger.Info("Lista de tareas") + For Each task In tasks + Console.WriteLine($"{task.Key} -- {task.Value}") + Next + End Sub + End Class +End Module From 8ac9e7f5607cd55ed8f9aeb41d674be5251c7990 Mon Sep 17 00:00:00 2001 From: hozlucas28 Date: Fri, 21 Jun 2024 19:35:37 -0300 Subject: [PATCH 48/66] Solution 25 - Python --- Roadmap/25 - LOGS/python/hozlucas28.py | 158 +++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 Roadmap/25 - LOGS/python/hozlucas28.py diff --git a/Roadmap/25 - LOGS/python/hozlucas28.py b/Roadmap/25 - LOGS/python/hozlucas28.py new file mode 100644 index 0000000000..af5bcdc784 --- /dev/null +++ b/Roadmap/25 - LOGS/python/hozlucas28.py @@ -0,0 +1,158 @@ +# pylint: disable=pointless-string-statement,missing-module-docstring,missing-class-docstring,missing-function-docstring + +import logging + +from time import time +from typing import TypedDict, Self + + +""" + Logging... +""" + +print("Logging...") + +logging.basicConfig( + level=logging.DEBUG, format="%(asctime)s (%(levelname)s): %(message)s" +) + +print("\nlogging.critical(msg=)...\n") +logging.critical(msg="Critical log message!") + +print("\nlogging.debug(msg=)...\n") +logging.debug(msg="Debug log message!") + +print("\nlogging.error(msg=)...\n") +logging.error(msg="Error log message!") + +print("\nlogging.info(msg=)...\n") +logging.info(msg="Information log message!") + +print("\nlogging.warning(msg=)...\n") +logging.warning(msg="Warning log message!") + + +print( + "\n# ---------------------------------------------------------------------------------- #\n" +) + + +""" + Additional challenge... +""" + +print("Additional challenge...") + +type Description = str +type Title = str + +Task = TypedDict( + "Task", + { + "description": Description, + "title": Title, + }, +) + + +class TaskManager: + __debug: bool + __tasks: list[Task] + + def __init__( + self, *, initial_tasks: None | list[Task] = None, enableDebug=False + ) -> None: + self.__debug = enableDebug + self.__tasks = [] if initial_tasks is None else initial_tasks + + def add_task(self, *, new_task: Task) -> Self: + if self.__debug: + print() + logging.debug(msg="addTask (method) start execution...") + start_time: float = time() + + self.__tasks.append(new_task) + + if self.__debug: + logging.debug(msg="addTask (method) ends execution!") + print(f"addTask: {time()-start_time} seconds") + + return self + + def delete_task_by_title(self, *, title: Title) -> Self: + if self.__debug: + print() + start_time: float = time() + logging.debug(msg="delete_task_by_title (method) start execution...") + + sanitized_tasks: list[Task] = [] + sanitized_title: str = title.strip().upper() + + for task in self.__tasks: + if task["title"].strip().upper() != sanitized_title: + sanitized_tasks.append(task) + + self.__tasks = sanitized_tasks + + if self.__debug: + logging.debug(msg="delete_task_by_title (method) ends execution!") + print(f"delete_task_by_title: {time()-start_time} seconds") + + return self + + def print_tasks(self) -> Self: + if self.__debug: + print() + logging.debug(msg="print_tasks (method) start execution...") + start_time: float = time() + print() + + for task in self.__tasks: + print(task) + + if self.__debug: + print() + logging.debug(msg="print_tasks (method) ends execution!") + print(f"print_tasks: {time()-start_time} seconds") + + return self + + +task_manager: TaskManager = TaskManager(enableDebug=True) + +EXIT_: bool = False + +while not EXIT_: + operation: str = input( + "\nWrite an operation ('Add task', 'Delete task by title', 'Print tasks', or 'Exit'): " + ) + + sanitized_operation: str = operation.strip().upper() + + match sanitized_operation: + case "ADD TASK": + + task_title: str = input("\nTask title: ") + task_description: str = input("Task description: ") + + task_manager.add_task( + new_task={ + "title": task_title.strip(), + "description": task_description.strip(), + } + ) + + case "DELETE TASK BY TITLE": + task_title: str = input("\nTask title: ") + + task_manager.delete_task_by_title(title=task_title) + + case "PRINT TASKS": + task_manager.print_tasks() + + case "EXIT": + EXIT_ = True + print("\nApplication closed!") + + case _: + print("\nInvalid operation! Try again...") From f98cb380dc7ca4bf012f0c41ccccec43fd7e2a93 Mon Sep 17 00:00:00 2001 From: kenysdev Date: Fri, 21 Jun 2024 18:27:44 -0500 Subject: [PATCH 49/66] 25-c#-LOGS --- Roadmap/25 - LOGS/c#/kenysdev.cs | 86 ++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 Roadmap/25 - LOGS/c#/kenysdev.cs diff --git a/Roadmap/25 - LOGS/c#/kenysdev.cs b/Roadmap/25 - LOGS/c#/kenysdev.cs new file mode 100644 index 0000000000..2950c05c33 --- /dev/null +++ b/Roadmap/25 - LOGS/c#/kenysdev.cs @@ -0,0 +1,86 @@ +#pragma warning disable CA1050 // for namespace Name +/* +╔══════════════════════════════════════╗ +║ Autor: Kenys Alvarado ║ +║ GitHub: https://github.com/Kenysdev ║ +║ 2024 - C# ║ +╚══════════════════════════════════════╝ +------------------------------------------ +* LOGS +------------------------------------------ +Mas info: https://nlog-project.org/ + +*/ +using NLog; + +// __________________________________ +class Program { + + private static readonly Logger logger = LogManager.GetCurrentClassLogger(); + static void Main() { + /* + * EJERCICIO #1: + * Explora el concepto de "logging" en tu lenguaje. Configúralo y muestra + * un ejemplo con cada nivel de "severidad" disponible. + */ + logger.Trace("Trace"); + logger.Debug("Debug"); + logger.Info("Info"); + logger.Warn("Warnin"); + logger.Error("Error"); + logger.Fatal("Fatal"); + + //__________________________________ + Console.WriteLine("\nEJERCICIO #2"); + ProgramTask tasks = new(); + + tasks.Add("a", "1"); + tasks.Add("b", "2"); + tasks.Add("c", "3"); + + tasks.Delete("b"); + tasks.ShowList(); + } +} + +/* +__________________________________ +* EJERCICIO #2: +* Crea un programa ficticio de gestión de tareas que permita añadir, eliminar +* y listar dichas tareas. +* - Añadir: recibe nombre y descripción. +* - Eliminar: por nombre de la tarea. +* Implementa diferentes mensajes de log que muestren información según la +* tarea ejecutada (a tu elección). +* Utiliza el log para visualizar el tiempo de ejecución de cada tarea. +*/ +class ProgramTask { + private static readonly Logger logger = LogManager.GetCurrentClassLogger(); + private readonly Dictionary tasks; + + public ProgramTask() { + tasks = []; + logger.Debug("Se inició instancia de la clase ProgramTask."); + } + + public void Add(string name, string description) { + tasks[name] = description; + logger.Info("Se agregó una tarea."); + } + + public void Delete(string name) { + if (tasks.Remove(name)) { + logger.Info($"Tarea '{name}' eliminada."); + } else { + Console.WriteLine(); + logger.Warn($"No se encontró la tarea '{name}'."); + } + } + + public void ShowList() { + logger.Info("Lista de tareas"); + foreach (var task in tasks) { + Console.WriteLine($"{task.Key} -- {task.Value}"); + } + } +} From 00cb6a197b8fb1f65df1a52d7ccddbf2161a0c45 Mon Sep 17 00:00:00 2001 From: hozlucas28 Date: Fri, 21 Jun 2024 16:18:52 -0300 Subject: [PATCH 50/66] Solution 25 - Go --- Roadmap/25 - LOGS/go/hozlucas28.go | 187 +++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 Roadmap/25 - LOGS/go/hozlucas28.go diff --git a/Roadmap/25 - LOGS/go/hozlucas28.go b/Roadmap/25 - LOGS/go/hozlucas28.go new file mode 100644 index 0000000000..a89a65282a --- /dev/null +++ b/Roadmap/25 - LOGS/go/hozlucas28.go @@ -0,0 +1,187 @@ +package main + +import ( + "bufio" + "errors" + "fmt" + "log" + "os" + "strings" + "time" +) + +/* -------------------------------------------------------------------------- */ +/* CLASSES */ +/* -------------------------------------------------------------------------- */ + +/* ------------------------------ Task Manager ------------------------------ */ + +type Task struct { + description string + title string +} + +type TaskManager struct { + tasks []Task + shouldPrintLogs bool +} + +func (taskManager *TaskManager) addTask(newTask Task) error { + var startTime time.Time = time.Now() + + if taskManager.shouldPrintLogs { + fmt.Println() + log.Println("addTask (method) start execution...") + } + + taskManager.tasks = append(taskManager.tasks, newTask) + + if taskManager.shouldPrintLogs { + log.Println("addTask (method) ends execution!") + log.Printf("addTask: %v\n", time.Since(startTime)) + } + + return nil +} + +func (taskManager *TaskManager) deleteTaskByTitle(title string) error { + var startTime time.Time = time.Now() + + if taskManager.shouldPrintLogs { + fmt.Println() + log.Println("deleteTaskByTitle (method) start execution...") + } + + var uppercasedTitle string = strings.ToUpper(title) + + var sanitizedTasks []Task + + for _, task := range taskManager.tasks { + var uppercasedTaskTitle string = strings.ToUpper(task.title) + + if uppercasedTaskTitle != uppercasedTitle { + sanitizedTasks = append(sanitizedTasks, task) + + } + } + + if len(taskManager.tasks) == len(sanitizedTasks) { + return errors.New("The task title was not found!") + } + + taskManager.tasks = sanitizedTasks + + if taskManager.shouldPrintLogs { + log.Printf("deleteTaskByTitle (method) ends execution!\n") + log.Printf("deleteTaskByTitle: %v\n", time.Since(startTime)) + } + + return nil +} + +func (taskManager *TaskManager) printTasks() { + var startTime time.Time = time.Now() + + if taskManager.shouldPrintLogs { + log.Printf("printTasks (method) start execution...\n\n") + } + + for _, task := range taskManager.tasks { + fmt.Printf("%+v\n", task) + } + + if taskManager.shouldPrintLogs { + fmt.Println() + log.Printf("printTasks (method) ends execution!\n") + log.Printf("printTasks: %v", time.Since(startTime)) + } +} + +/* -------------------------------------------------------------------------- */ +/* MAIN */ +/* -------------------------------------------------------------------------- */ + +func main() { + /* + Logging... + */ + + fmt.Println("Logging...") + + fmt.Printf("\nlog.Print()...\n\n") + + log.Print("logger message!") + + fmt.Printf("\nlog.Printf()...\n\n") + + log.Printf("Formatted logger message!") + + fmt.Printf("\nlog.Println()...\n\n") + + log.Println("Logger message with line break at the end!") + + fmt.Println("\n# ---------------------------------------------------------------------------------- #") + + /* + Additional challenge... + */ + + fmt.Printf("\nAdditional challenge...\n") + + var taskManager TaskManager = TaskManager{shouldPrintLogs: true} + + var exit bool = false + var reader *bufio.Reader = bufio.NewReader(os.Stdin) + + for !exit { + fmt.Print("\nWrite an operation ('Add task', 'Delete task by title', 'Print tasks', or 'Exit'): ") + operation, readerErr := reader.ReadString('\n') + if readerErr != nil { + continue + } + + operation = strings.TrimSpace(operation) + operation = strings.ToUpper(operation) + + operationActions: + switch operation { + case "ADD TASK": + fmt.Print("\nTask title: ") + taskTitle, readerErr := reader.ReadString('\n') + if readerErr != nil { + break operationActions + } + + fmt.Print("Task description: ") + taskDescription, readerErr := reader.ReadString('\n') + if readerErr != nil { + break operationActions + } + + taskManager.addTask(Task{ + description: strings.TrimSpace(taskDescription), + title: strings.TrimSpace(taskTitle), + }) + + case "DELETE TASK BY TITLE": + fmt.Print("\nTask title: ") + taskTitle, readerErr := reader.ReadString('\n') + if readerErr != nil { + break operationActions + } + + taskManager.deleteTaskByTitle(taskTitle) + + case "PRINT TASKS": + fmt.Println() + taskManager.printTasks() + + case "EXIT": + exit = true + fmt.Print("\nApplication closed!") + + default: + fmt.Print("\nInvalid operation! Try again...\n") + } + } +} From 8a3f5ff0574758607147e9e7822705a5632cfe2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Alfonso=20Olivares=20Jim=C3=A9nez?= <41806420+LuisOlivaresJ@users.noreply.github.com> Date: Fri, 21 Jun 2024 10:02:44 -0700 Subject: [PATCH 51/66] #25-Python --- Roadmap/25 - LOGS/python/LuisOlivaresJ.py | 92 +++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 Roadmap/25 - LOGS/python/LuisOlivaresJ.py diff --git a/Roadmap/25 - LOGS/python/LuisOlivaresJ.py b/Roadmap/25 - LOGS/python/LuisOlivaresJ.py new file mode 100644 index 0000000000..5f267020be --- /dev/null +++ b/Roadmap/25 - LOGS/python/LuisOlivaresJ.py @@ -0,0 +1,92 @@ +""" + * Explora el concepto de "logging" en tu lenguaje. Configúralo y muestra + * un ejemplo con cada nivel de "severidad" disponible. +""" + +import logging + +# Logging configuration +logging.basicConfig(level=logging.DEBUG, + filename='example.log', + filemode='a', + format='%(asctime)s - %(levelname)s - %(message)s' + ) + +# Examples of each level of severity +logging.debug('This is a DEBUG message') +logging.info('This is a INFO message') +logging.warning('This is a WARNING message') +logging.error('This is a ERROR message') +logging.critical('This is a CRITICAL message') + +""" + * DIFICULTAD EXTRA (opcional): + * Crea un programa ficticio de gestión de tareas que permita añadir, eliminar + * y listar dichas tareas. + * - Añadir: recibe nombre y descripción. + * - Eliminar: por nombre de la tarea. + * Implementa diferentes mensajes de log que muestren información según la + * tarea ejecutada (a tu elección). + * Utiliza el log para visualizar el tiempo de ejecución de cada tarea. +""" + +class Task: + def __init__(self, name, description, finalized=False, final_date=None): + self.name = name + self.description = description + self.finalized = finalized + self.final_date = final_date + + +class Task_manager(): + + def __init__(self): + self.tasks = [] # List to store tasks as dictionaries + + + def add_task(self, task: Task): + self.tasks.append( + { + 'name': task.name, + 'description': task.description, + 'finalized': task.finalized, + 'final_date': task.final_date + } + ) + logging.info(f'Task added.') + + + def delete_task(self, name: str): + for task in self.tasks: + if task['name'] == name: + self.tasks.remove(task) + logging.info(f'Task deleted.') + return + logging.warning(f'Task was not fouded.') + + + def list_tasks(self): + for task in self.tasks: + print(task) + + def change_to_finalized(self, name: str): + for task in self.tasks: + if task['name'] == name: + task['finalized'] = True + logging.info(f'Task finalized.') + return + logging.warning(f'Task was not fouded.') + +task1 = Task('Task1', 'Description of task 1') +task2 = Task('Task2', 'Description of task 2', final_date='2024-06-23') + +task_manager = Task_manager() +task_manager.add_task(task1) +task_manager.add_task(task2) +task_manager.list_tasks() +task_manager.delete_task('Task1') # Task deleted +task_manager.list_tasks() +task_manager.delete_task('Task3') # Task not found +task_manager.change_to_finalized('Task2') + +task_manager.list_tasks() \ No newline at end of file From 04658772bc6e25470109b58f79876901fd2e272c Mon Sep 17 00:00:00 2001 From: mouredev Date: Sun, 23 Jun 2024 00:14:35 +0000 Subject: [PATCH 52/66] Update stats --- Roadmap/stats.json | 1360 ++++++++++++++++++++++---------------------- 1 file changed, 689 insertions(+), 671 deletions(-) diff --git a/Roadmap/stats.json b/Roadmap/stats.json index 5563b3cfa1..d39115372a 100644 --- a/Roadmap/stats.json +++ b/Roadmap/stats.json @@ -1,33 +1,33 @@ { "challenges_total": 26, - "languages_total": 43, - "files_total": 5028, - "users_total": 893, + "languages_total": 44, + "files_total": 5046, + "users_total": 895, "challenges_ranking": [ { "order": 1, "name": "00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO", - "count": 995 + "count": 998 }, { "order": 2, "name": "01 - OPERADORES Y ESTRUCTURAS DE CONTROL", - "count": 608 + "count": 610 }, { "order": 3, "name": "02 - FUNCIONES Y ALCANCE", - "count": 469 + "count": 470 }, { "order": 4, "name": "03 - ESTRUCTURAS DE DATOS", - "count": 313 + "count": 314 }, { "order": 5, "name": "04 - CADENAS DE CARACTERES", - "count": 266 + "count": 267 }, { "order": 6, @@ -42,7 +42,7 @@ { "order": 8, "name": "07 - PILAS Y COLAS", - "count": 197 + "count": 198 }, { "order": 9, @@ -67,7 +67,7 @@ { "order": 13, "name": "14 - FECHAS", - "count": 105 + "count": 106 }, { "order": 14, @@ -87,7 +87,7 @@ { "order": 17, "name": "15 - ASINCRON\u00cdA", - "count": 97 + "count": 98 }, { "order": 18, @@ -102,7 +102,7 @@ { "order": 20, "name": "19 - ENUMERACIONES", - "count": 80 + "count": 81 }, { "order": 21, @@ -117,7 +117,7 @@ { "order": 23, "name": "22 - FUNCIONES DE ORDEN SUPERIOR", - "count": 54 + "count": 55 }, { "order": 24, @@ -132,75 +132,75 @@ { "order": 26, "name": "25 - LOGS", - "count": 17 + "count": 22 } ], "languages_ranking": [ { "order": 1, "name": "python", - "count": 2127, - "percentage": 42.3 + "count": 2135, + "percentage": 42.31 }, { "order": 2, "name": "javascript", - "count": 998, - "percentage": 19.85 + "count": 1001, + "percentage": 19.84 }, { "order": 3, "name": "java", "count": 428, - "percentage": 8.51 + "percentage": 8.48 }, { "order": 4, "name": "typescript", "count": 212, - "percentage": 4.22 + "percentage": 4.2 }, { "order": 5, "name": "c#", - "count": 203, + "count": 204, "percentage": 4.04 }, { "order": 6, "name": "kotlin", "count": 151, - "percentage": 3.0 + "percentage": 2.99 }, { "order": 7, "name": "swift", "count": 147, - "percentage": 2.92 + "percentage": 2.91 }, { "order": 8, "name": "go", - "count": 137, - "percentage": 2.72 + "count": 139, + "percentage": 2.75 }, { "order": 9, "name": "php", "count": 116, - "percentage": 2.31 + "percentage": 2.3 }, { "order": 10, "name": "rust", "count": 98, - "percentage": 1.95 + "percentage": 1.94 }, { "order": 11, "name": "c++", "count": 94, - "percentage": 1.87 + "percentage": 1.86 }, { "order": 12, @@ -211,26 +211,26 @@ { "order": 13, "name": "dart", - "count": 39, - "percentage": 0.78 + "count": 41, + "percentage": 0.81 }, { "order": 14, "name": "bash", "count": 32, - "percentage": 0.64 + "percentage": 0.63 }, { "order": 15, - "name": "ocaml", + "name": "vb.net", "count": 26, "percentage": 0.52 }, { "order": 16, - "name": "vb.net", - "count": 25, - "percentage": 0.5 + "name": "ocaml", + "count": 26, + "percentage": 0.52 }, { "order": 17, @@ -378,18 +378,24 @@ }, { "order": 41, - "name": "al", + "name": "f#", "count": 1, "percentage": 0.02 }, { "order": 42, - "name": "abap", + "name": "al", "count": 1, "percentage": 0.02 }, { "order": 43, + "name": "abap", + "count": 1, + "percentage": 0.02 + }, + { + "order": 44, "name": "raku", "count": 1, "percentage": 0.02 @@ -405,20 +411,20 @@ { "order": 2, "name": "kenysdev", - "count": 101, + "count": 103, "languages": 4 }, { "order": 3, - "name": "qwik-zgheib", - "count": 73, - "languages": 4 + "name": "hozlucas28", + "count": 75, + "languages": 3 }, { "order": 4, - "name": "hozlucas28", + "name": "qwik-zgheib", "count": 73, - "languages": 3 + "languages": 4 }, { "order": 5, @@ -465,7 +471,7 @@ { "order": 12, "name": "agusrosero", - "count": 45, + "count": 46, "languages": 4 }, { @@ -566,15 +572,15 @@ }, { "order": 29, - "name": "cesarcarmona30", - "count": 29, - "languages": 4 + "name": "amadorquispe", + "count": 30, + "languages": 2 }, { "order": 30, - "name": "amadorquispe", + "name": "cesarcarmona30", "count": 29, - "languages": 2 + "languages": 4 }, { "order": 31, @@ -680,51 +686,51 @@ }, { "order": 48, - "name": "avcenal", + "name": "christian-jfr", "count": 23, "languages": 1 }, { "order": 49, - "name": "isilanes", + "name": "avcenal", "count": 23, "languages": 1 }, { "order": 50, - "name": "ycanas", - "count": 22, - "languages": 2 + "name": "isilanes", + "count": 23, + "languages": 1 }, { "order": 51, - "name": "emedevelopa", + "name": "edalmava", "count": 22, - "languages": 1 + "languages": 10 }, { "order": 52, - "name": "parababire", + "name": "ycanas", "count": 22, - "languages": 1 + "languages": 2 }, { "order": 53, - "name": "christian-jfr", + "name": "emedevelopa", "count": 22, "languages": 1 }, { "order": 54, - "name": "ggilperez", + "name": "parababire", "count": 22, "languages": 1 }, { "order": 55, - "name": "edalmava", - "count": 21, - "languages": 9 + "name": "ggilperez", + "count": 22, + "languages": 1 }, { "order": 56, @@ -1346,145 +1352,145 @@ }, { "order": 159, - "name": "pcosin", + "name": "djsurgeon", "count": 8, "languages": 2 }, { "order": 160, - "name": "xmunder", + "name": "pcosin", "count": 8, "languages": 2 }, { "order": 161, - "name": "ansuzgs", + "name": "xmunder", "count": 8, "languages": 2 }, { "order": 162, - "name": "srvariable", + "name": "ansuzgs", "count": 8, - "languages": 1 + "languages": 2 }, { "order": 163, - "name": "westwbn", + "name": "luisolivaresj", "count": 8, - "languages": 1 + "languages": 2 }, { "order": 164, - "name": "vid92", + "name": "srvariable", "count": 8, "languages": 1 }, { "order": 165, - "name": "isj-code", + "name": "westwbn", "count": 8, "languages": 1 }, { "order": 166, - "name": "matitc", + "name": "vid92", "count": 8, "languages": 1 }, { "order": 167, - "name": "toral24", + "name": "isj-code", "count": 8, "languages": 1 }, { "order": 168, - "name": "jtrujilloalcocer", + "name": "matitc", "count": 8, "languages": 1 }, { "order": 169, - "name": "zequy40", + "name": "toral24", "count": 8, "languages": 1 }, { "order": 170, - "name": "linerlander", + "name": "jtrujilloalcocer", "count": 8, "languages": 1 }, { "order": 171, - "name": "darubiano", - "count": 7, - "languages": 7 + "name": "neosv", + "count": 8, + "languages": 1 }, { "order": 172, - "name": "nwpablodeveloper", - "count": 7, - "languages": 3 + "name": "zequy40", + "count": 8, + "languages": 1 }, { "order": 173, - "name": "djsurgeon", - "count": 7, - "languages": 2 + "name": "linerlander", + "count": 8, + "languages": 1 }, { "order": 174, - "name": "younes0-0", + "name": "darubiano", "count": 7, - "languages": 2 + "languages": 7 }, { "order": 175, - "name": "luisolivaresj", + "name": "nwpablodeveloper", "count": 7, - "languages": 2 + "languages": 3 }, { "order": 176, - "name": "ocandodev", + "name": "younes0-0", "count": 7, - "languages": 1 + "languages": 2 }, { "order": 177, - "name": "ldre3", + "name": "ocandodev", "count": 7, "languages": 1 }, { "order": 178, - "name": "mtirador", + "name": "ldre3", "count": 7, "languages": 1 }, { "order": 179, - "name": "abrahamraies", + "name": "mtirador", "count": 7, "languages": 1 }, { "order": 180, - "name": "18miguelgalarza", + "name": "abrahamraies", "count": 7, "languages": 1 }, { "order": 181, - "name": "marinaortells", + "name": "18miguelgalarza", "count": 7, "languages": 1 }, { "order": 182, - "name": "neosv", + "name": "marinaortells", "count": 7, "languages": 1 }, @@ -1502,313 +1508,313 @@ }, { "order": 185, + "name": "teren91", + "count": 7, + "languages": 1 + }, + { + "order": 186, "name": "curtobrull", "count": 6, "languages": 3 }, { - "order": 186, + "order": 187, "name": "fidelysla", "count": 6, "languages": 3 }, { - "order": 187, + "order": 188, "name": "luisk0706", "count": 6, "languages": 2 }, { - "order": 188, + "order": 189, "name": "luterfloyd", "count": 6, "languages": 2 }, { - "order": 189, + "order": 190, "name": "troleomotor10", "count": 6, "languages": 2 }, { - "order": 190, + "order": 191, "name": "danilo0203", "count": 6, "languages": 2 }, { - "order": 191, + "order": 192, "name": "isaias-alt", "count": 6, "languages": 2 }, { - "order": 192, + "order": 193, "name": "rserradev", "count": 6, "languages": 2 }, { - "order": 193, + "order": 194, "name": "roswer13", "count": 6, "languages": 2 }, { - "order": 194, + "order": 195, "name": "devknn", "count": 6, "languages": 2 }, { - "order": 195, + "order": 196, "name": "yeisonagm", "count": 6, "languages": 1 }, { - "order": 196, + "order": 197, "name": "deathwing696", "count": 6, "languages": 1 }, { - "order": 197, + "order": 198, "name": "andreavzqz", "count": 6, "languages": 1 }, { - "order": 198, + "order": 199, "name": "gliadev", "count": 6, "languages": 1 }, { - "order": 199, + "order": 200, "name": "mxtrar23", "count": 6, "languages": 1 }, { - "order": 200, + "order": 201, "name": "guillemduno", "count": 6, "languages": 1 }, { - "order": 201, + "order": 202, "name": "facundo-muoio", "count": 6, "languages": 1 }, { - "order": 202, + "order": 203, "name": "wolffcode", "count": 6, "languages": 1 }, { - "order": 203, + "order": 204, "name": "blancowilson", "count": 6, "languages": 1 }, { - "order": 204, + "order": 205, "name": "eduhumanes91", "count": 6, "languages": 1 }, { - "order": 205, + "order": 206, "name": "lazar171717ech", "count": 6, "languages": 1 }, { - "order": 206, + "order": 207, "name": "dafi02", "count": 6, "languages": 1 }, { - "order": 207, + "order": 208, "name": "alabacw74", "count": 5, "languages": 3 }, { - "order": 208, + "order": 209, "name": "bryan112094", "count": 5, "languages": 3 }, { - "order": 209, + "order": 210, "name": "alejandrodave", "count": 5, "languages": 2 }, { - "order": 210, + "order": 211, "name": "espinoleandroo", "count": 5, "languages": 2 }, { - "order": 211, + "order": 212, "name": "vmatmarco", "count": 5, "languages": 2 }, { - "order": 212, + "order": 213, "name": "jalivur", "count": 5, "languages": 2 }, { - "order": 213, + "order": 214, "name": "icedrek", "count": 5, "languages": 2 }, - { - "order": 214, - "name": "adridoce", - "count": 5, - "languages": 1 - }, { "order": 215, - "name": "karolle", + "name": "adridoce", "count": 5, "languages": 1 }, { "order": 216, - "name": "alvarofernandezavalos", + "name": "karolle", "count": 5, "languages": 1 }, { "order": 217, - "name": "vasilealexandru02", + "name": "alvarofernandezavalos", "count": 5, "languages": 1 }, { "order": 218, - "name": "lauracastrillonmp", + "name": "vasilealexandru02", "count": 5, "languages": 1 }, { "order": 219, - "name": "eloychavezdev", + "name": "lauracastrillonmp", "count": 5, "languages": 1 }, { "order": 220, - "name": "n1sek", + "name": "eloychavezdev", "count": 5, "languages": 1 }, { "order": 221, - "name": "vixito", + "name": "n1sek", "count": 5, "languages": 1 }, { "order": 222, - "name": "d4-n1", + "name": "vixito", "count": 5, "languages": 1 }, { "order": 223, - "name": "jose-luis-lanza", + "name": "d4-n1", "count": 5, "languages": 1 }, { "order": 224, - "name": "santiago434c", + "name": "jose-luis-lanza", "count": 5, "languages": 1 }, { "order": 225, - "name": "alberba", + "name": "santiago434c", "count": 5, "languages": 1 }, { "order": 226, - "name": "manjaitan", + "name": "alberba", "count": 5, "languages": 1 }, { "order": 227, - "name": "gabrielramos02", + "name": "manjaitan", "count": 5, "languages": 1 }, { "order": 228, - "name": "mirandayuber", + "name": "gabrielramos02", "count": 5, "languages": 1 }, { "order": 229, - "name": "augustdev2003", + "name": "mirandayuber", "count": 5, "languages": 1 }, { "order": 230, - "name": "thezhizn", + "name": "augustdev2003", "count": 5, "languages": 1 }, { "order": 231, - "name": "xemita007", + "name": "thezhizn", "count": 5, "languages": 1 }, { "order": 232, - "name": "yharyarias", + "name": "xemita007", "count": 5, "languages": 1 }, { "order": 233, - "name": "gmbarrios", + "name": "yharyarias", "count": 5, "languages": 1 }, { "order": 234, - "name": "mauricio-leyva", + "name": "gmbarrios", "count": 5, "languages": 1 }, { "order": 235, - "name": "boterop", + "name": "mauricio-leyva", "count": 5, "languages": 1 }, { "order": 236, - "name": "teren91", + "name": "boterop", "count": 5, "languages": 1 }, @@ -2678,3078 +2684,3090 @@ }, { "order": 381, - "name": "javierfiestasbotella", + "name": "guillesese", "count": 3, "languages": 1 }, { "order": 382, - "name": "davstudy", + "name": "javierfiestasbotella", "count": 3, "languages": 1 }, { "order": 383, - "name": "elkin-dev", + "name": "davstudy", "count": 3, "languages": 1 }, { "order": 384, - "name": "zzepu", + "name": "elkin-dev", "count": 3, "languages": 1 }, { "order": 385, - "name": "oscarhub90", + "name": "zzepu", "count": 3, "languages": 1 }, { "order": 386, - "name": "beonzj", + "name": "oscarhub90", "count": 3, "languages": 1 }, { "order": 387, - "name": "14davidnkt", + "name": "beonzj", "count": 3, "languages": 1 }, { "order": 388, - "name": "vandresca", + "name": "14davidnkt", "count": 3, "languages": 1 }, { "order": 389, - "name": "marlonleon2023", + "name": "vandresca", "count": 3, "languages": 1 }, { "order": 390, - "name": "frangarmez21", + "name": "marlonleon2023", "count": 3, "languages": 1 }, { "order": 391, - "name": "dylanb55", + "name": "frangarmez21", "count": 3, "languages": 1 }, { "order": 392, - "name": "juxxon23", + "name": "dylanb55", "count": 3, "languages": 1 }, { "order": 393, - "name": "mellamoomar", + "name": "juxxon23", "count": 3, "languages": 1 }, { "order": 394, - "name": "ikeragi05", + "name": "mellamoomar", "count": 3, "languages": 1 }, { "order": 395, - "name": "dmauricio4", + "name": "ikeragi05", "count": 3, "languages": 1 }, { "order": 396, - "name": "oscar503sv", + "name": "dmauricio4", "count": 3, "languages": 1 }, { "order": 397, - "name": "ivanpelu7", + "name": "oscar503sv", "count": 3, "languages": 1 }, { "order": 398, - "name": "bytecodesky", + "name": "ivanpelu7", "count": 3, "languages": 1 }, { "order": 399, - "name": "devvdroid01", - "count": 2, - "languages": 2 + "name": "bytecodesky", + "count": 3, + "languages": 1 }, { "order": 400, - "name": "jhonatanmustiolacas", + "name": "devvdroid01", "count": 2, "languages": 2 }, { "order": 401, - "name": "ismaelmatiz", + "name": "jhonatanmustiolacas", "count": 2, "languages": 2 }, { "order": 402, - "name": "sgb004", + "name": "ismaelmatiz", "count": 2, "languages": 2 }, { "order": 403, - "name": "tecfer", + "name": "sgb004", "count": 2, "languages": 2 }, { "order": 404, - "name": "lilberick", + "name": "tecfer", "count": 2, "languages": 2 }, { "order": 405, - "name": "camiloforero1997", + "name": "lilberick", "count": 2, "languages": 2 }, { "order": 406, - "name": "lydaf", + "name": "camiloforero1997", "count": 2, "languages": 2 }, { "order": 407, - "name": "carresoft", + "name": "lydaf", "count": 2, "languages": 2 }, { "order": 408, - "name": "chuanmi", + "name": "carresoft", "count": 2, "languages": 2 }, { "order": 409, - "name": "jmofuture", + "name": "chuanmi", "count": 2, "languages": 2 }, { "order": 410, - "name": "jlcareglio", + "name": "jmofuture", "count": 2, "languages": 2 }, { "order": 411, - "name": "jurgen-alfaro", + "name": "jlcareglio", "count": 2, "languages": 2 }, { "order": 412, - "name": "felipedev303", + "name": "jurgen-alfaro", "count": 2, "languages": 2 }, { "order": 413, - "name": "berentolkien", + "name": "felipedev303", "count": 2, "languages": 2 }, { "order": 414, - "name": "raul-progr", + "name": "berentolkien", "count": 2, "languages": 2 }, { "order": 415, - "name": "jorgesilencio", + "name": "raul-progr", "count": 2, "languages": 2 }, { "order": 416, - "name": "lemito66", + "name": "jorgesilencio", "count": 2, "languages": 2 }, { "order": 417, - "name": "fsfigueroa77", + "name": "lemito66", "count": 2, - "languages": 1 + "languages": 2 }, { "order": 418, - "name": "fefestuve", + "name": "fsfigueroa77", "count": 2, "languages": 1 }, { "order": 419, - "name": "luis-vb", + "name": "fefestuve", "count": 2, "languages": 1 }, { "order": 420, - "name": "juaruibr", + "name": "luis-vb", "count": 2, "languages": 1 }, { "order": 421, - "name": "crisdev3", + "name": "juaruibr", "count": 2, "languages": 1 }, { "order": 422, - "name": "saracorraless", + "name": "crisdev3", "count": 2, "languages": 1 }, { "order": 423, - "name": "gamitocu", + "name": "saracorraless", "count": 2, "languages": 1 }, { "order": 424, - "name": "porto1090", + "name": "gamitocu", "count": 2, "languages": 1 }, { "order": 425, - "name": "hersac", + "name": "porto1090", "count": 2, "languages": 1 }, { "order": 426, - "name": "yowcloud", + "name": "hersac", "count": 2, "languages": 1 }, { "order": 427, - "name": "joseesmil04", + "name": "yowcloud", "count": 2, "languages": 1 }, { "order": 428, - "name": "adrs1166ma", + "name": "joseesmil04", "count": 2, "languages": 1 }, { "order": 429, - "name": "isidrojng", + "name": "adrs1166ma", "count": 2, "languages": 1 }, { "order": 430, - "name": "peeanoot", + "name": "isidrojng", "count": 2, "languages": 1 }, { "order": 431, - "name": "alextc35", + "name": "peeanoot", "count": 2, "languages": 1 }, { "order": 432, - "name": "jcknot", + "name": "alextc35", "count": 2, "languages": 1 }, { "order": 433, - "name": "arhl2023", + "name": "jcknot", "count": 2, "languages": 1 }, { "order": 434, - "name": "natalinacn", + "name": "arhl2023", "count": 2, "languages": 1 }, { "order": 435, - "name": "lorenamesa", + "name": "natalinacn", "count": 2, "languages": 1 }, { "order": 436, - "name": "jago86", + "name": "lorenamesa", "count": 2, "languages": 1 }, { "order": 437, - "name": "johannhsdev", + "name": "jago86", "count": 2, "languages": 1 }, { "order": 438, - "name": "nicolastapiasanz", + "name": "johannhsdev", "count": 2, "languages": 1 }, { "order": 439, - "name": "freddyasierraj", + "name": "nicolastapiasanz", "count": 2, "languages": 1 }, { "order": 440, - "name": "gomezcamilo9701", + "name": "freddyasierraj", "count": 2, "languages": 1 }, { "order": 441, - "name": "vicgallego", + "name": "gomezcamilo9701", "count": 2, "languages": 1 }, { "order": 442, - "name": "peibolstrike", + "name": "vicgallego", "count": 2, "languages": 1 }, { "order": 443, - "name": "cristiansystem", + "name": "peibolstrike", "count": 2, "languages": 1 }, { "order": 444, - "name": "dararod", + "name": "cristiansystem", "count": 2, "languages": 1 }, { "order": 445, - "name": "waldid32", + "name": "dararod", "count": 2, "languages": 1 }, { "order": 446, - "name": "roilhi", + "name": "waldid32", "count": 2, "languages": 1 }, { "order": 447, - "name": "diegokarabin", + "name": "roilhi", "count": 2, "languages": 1 }, { "order": 448, - "name": "reanthonyh", + "name": "diegokarabin", "count": 2, "languages": 1 }, { "order": 449, - "name": "valeriatorrealba", + "name": "reanthonyh", "count": 2, "languages": 1 }, { "order": 450, - "name": "nxl22", + "name": "valeriatorrealba", "count": 2, "languages": 1 }, { "order": 451, - "name": "ovjohn", + "name": "nxl22", "count": 2, "languages": 1 }, { "order": 452, - "name": "aleoe01", + "name": "ovjohn", "count": 2, "languages": 1 }, { "order": 453, - "name": "soldochris", + "name": "aleoe01", "count": 2, "languages": 1 }, { "order": 454, - "name": "murquisdev", + "name": "soldochris", "count": 2, "languages": 1 }, { "order": 455, - "name": "wesborland-github", + "name": "murquisdev", "count": 2, "languages": 1 }, { "order": 456, - "name": "farthaz", + "name": "wesborland-github", "count": 2, "languages": 1 }, { "order": 457, - "name": "tomasmarquez81", + "name": "farthaz", "count": 2, "languages": 1 }, { "order": 458, - "name": "cesarocbu", + "name": "tomasmarquez81", "count": 2, "languages": 1 }, { "order": 459, - "name": "glaboryp", + "name": "cesarocbu", "count": 2, "languages": 1 }, { "order": 460, - "name": "doblea74", + "name": "glaboryp", "count": 2, "languages": 1 }, { "order": 461, - "name": "misterdan100", + "name": "doblea74", "count": 2, "languages": 1 }, { "order": 462, - "name": "rikar2o", + "name": "misterdan100", "count": 2, "languages": 1 }, { "order": 463, - "name": "angelvelasco1", + "name": "rikar2o", "count": 2, "languages": 1 }, { "order": 464, - "name": "jhonf1992", + "name": "angelvelasco1", "count": 2, "languages": 1 }, { "order": 465, - "name": "jaimemunozdev", + "name": "jhonf1992", "count": 2, "languages": 1 }, { "order": 466, - "name": "jeisonredondo", + "name": "jaimemunozdev", "count": 2, "languages": 1 }, { "order": 467, - "name": "leonardo291024", + "name": "jeisonredondo", "count": 2, "languages": 1 }, { "order": 468, - "name": "arliumdev", + "name": "leonardo291024", "count": 2, "languages": 1 }, { "order": 469, - "name": "matiasfarfan89", + "name": "arliumdev", "count": 2, "languages": 1 }, { "order": 470, - "name": "haryblanco20", + "name": "matiasfarfan89", "count": 2, "languages": 1 }, { "order": 471, - "name": "memogv", + "name": "haryblanco20", "count": 2, "languages": 1 }, { "order": 472, - "name": "akzorla", + "name": "memogv", "count": 2, "languages": 1 }, { "order": 473, - "name": "cpcarlosprieto", + "name": "akzorla", "count": 2, "languages": 1 }, { "order": 474, - "name": "rolo27s", + "name": "cpcarlosprieto", "count": 2, "languages": 1 }, { "order": 475, - "name": "lmedina96", + "name": "rolo27s", "count": 2, "languages": 1 }, { "order": 476, - "name": "carlosmarte23", + "name": "lmedina96", "count": 2, "languages": 1 }, { "order": 477, - "name": "santiagodc8", + "name": "carlosmarte23", "count": 2, "languages": 1 }, { "order": 478, - "name": "adogdev", + "name": "santiagodc8", "count": 2, "languages": 1 }, { "order": 479, - "name": "gmigues", + "name": "adogdev", "count": 2, "languages": 1 }, { "order": 480, - "name": "alejandro-mantilla", + "name": "gmigues", "count": 2, "languages": 1 }, { "order": 481, - "name": "dans182", + "name": "alejandro-mantilla", "count": 2, "languages": 1 }, { "order": 482, - "name": "aegpgrafologo", + "name": "pedrojog", "count": 2, "languages": 1 }, { "order": 483, - "name": "kcx46", + "name": "dans182", "count": 2, "languages": 1 }, { "order": 484, - "name": "ziellucio01", + "name": "aegpgrafologo", "count": 2, "languages": 1 }, { "order": 485, - "name": "e-techgod", + "name": "kcx46", "count": 2, "languages": 1 }, { "order": 486, - "name": "alejandrovelasquezr", + "name": "ziellucio01", "count": 2, "languages": 1 }, { "order": 487, - "name": "eriickm", + "name": "e-techgod", "count": 2, "languages": 1 }, { "order": 488, - "name": "s384", + "name": "alejandrovelasquezr", "count": 2, "languages": 1 }, { "order": 489, - "name": "jsacristanbeltri", + "name": "eriickm", "count": 2, "languages": 1 }, { "order": 490, - "name": "vesubius", + "name": "s384", "count": 2, "languages": 1 }, { "order": 491, - "name": "gregfc95", + "name": "jsacristanbeltri", "count": 2, "languages": 1 }, { "order": 492, - "name": "cipollalucas", + "name": "vesubius", "count": 2, "languages": 1 }, { "order": 493, - "name": "franz-arzapalo", + "name": "gregfc95", "count": 2, "languages": 1 }, { "order": 494, - "name": "baauus", + "name": "cipollalucas", "count": 2, "languages": 1 }, { "order": 495, - "name": "dariangl", + "name": "franz-arzapalo", "count": 2, "languages": 1 }, { "order": 496, - "name": "anblackter", + "name": "baauus", "count": 2, "languages": 1 }, { "order": 497, - "name": "julind0", + "name": "dariangl", "count": 2, "languages": 1 }, { "order": 498, - "name": "christiancoc", + "name": "anblackter", "count": 2, "languages": 1 }, { "order": 499, - "name": "tic4", + "name": "julind0", "count": 2, "languages": 1 }, { "order": 500, - "name": "victore16", + "name": "christiancoc", "count": 2, "languages": 1 }, { "order": 501, - "name": "inf015", + "name": "tic4", "count": 2, "languages": 1 }, { "order": 502, - "name": "guillesese", + "name": "victore16", "count": 2, "languages": 1 }, { "order": 503, - "name": "csaraugusto2", + "name": "inf015", "count": 2, "languages": 1 }, { "order": 504, - "name": "pakomor", + "name": "nevaito", "count": 2, "languages": 1 }, { "order": 505, - "name": "aboredllama", + "name": "csaraugusto2", "count": 2, "languages": 1 }, { "order": 506, - "name": "freyfonseca", + "name": "pakomor", "count": 2, "languages": 1 }, { "order": 507, - "name": "dokeys28", + "name": "aboredllama", "count": 2, "languages": 1 }, { "order": 508, - "name": "soydaviddev", + "name": "freyfonseca", "count": 2, "languages": 1 }, { "order": 509, - "name": "lauradiazm29", + "name": "dokeys28", "count": 2, "languages": 1 }, { "order": 510, - "name": "fernandoatello", + "name": "soydaviddev", "count": 2, "languages": 1 }, { "order": 511, - "name": "miguelberrio0810", + "name": "lauradiazm29", "count": 2, "languages": 1 }, { "order": 512, - "name": "dota43ver", + "name": "fernandoatello", "count": 2, "languages": 1 }, { "order": 513, - "name": "zalazarmartin", + "name": "miguelberrio0810", "count": 2, "languages": 1 }, { "order": 514, - "name": "nandaalf", + "name": "dota43ver", "count": 2, "languages": 1 }, { "order": 515, - "name": "lordzzz777", + "name": "zalazarmartin", "count": 2, "languages": 1 }, { "order": 516, - "name": "rrcoder", + "name": "nandaalf", "count": 2, "languages": 1 }, { "order": 517, - "name": "cyberdidac", + "name": "lordzzz777", "count": 2, "languages": 1 }, { "order": 518, - "name": "vecinacoo", + "name": "rrcoder", "count": 2, "languages": 1 }, { "order": 519, - "name": "ssanjua", + "name": "cyberdidac", "count": 2, "languages": 1 }, { "order": 520, - "name": "zonnen69", + "name": "vecinacoo", "count": 2, "languages": 1 }, { "order": 521, - "name": "sdm29gh", + "name": "ssanjua", "count": 2, "languages": 1 }, { "order": 522, - "name": "hawkbott", + "name": "zonnen69", "count": 2, "languages": 1 }, { "order": 523, - "name": "tiaguiito3", + "name": "sdm29gh", "count": 2, "languages": 1 }, { "order": 524, - "name": "elmarqueli", + "name": "hawkbott", "count": 2, "languages": 1 }, { "order": 525, - "name": "poetry0354", + "name": "tiaguiito3", "count": 2, "languages": 1 }, { "order": 526, - "name": "reaien", + "name": "elmarqueli", "count": 2, "languages": 1 }, { "order": 527, - "name": "rikar20", + "name": "poetry0354", "count": 2, "languages": 1 }, { "order": 528, - "name": "alejomazov", + "name": "reaien", "count": 2, "languages": 1 }, { "order": 529, - "name": "raulallue", + "name": "rikar20", "count": 2, "languages": 1 }, { "order": 530, - "name": "aserranot", + "name": "alejomazov", "count": 2, "languages": 1 }, { "order": 531, - "name": "luciarf", + "name": "raulallue", "count": 2, "languages": 1 }, { "order": 532, - "name": "frannmv", + "name": "aserranot", "count": 2, "languages": 1 }, { "order": 533, - "name": "jmichael39", + "name": "luciarf", "count": 2, "languages": 1 }, { "order": 534, - "name": "orzefox", - "count": 1, + "name": "frannmv", + "count": 2, "languages": 1 }, { "order": 535, - "name": "acirdeveloper", - "count": 1, + "name": "jmichael39", + "count": 2, "languages": 1 }, { "order": 536, - "name": "albertovf", + "name": "orzefox", "count": 1, "languages": 1 }, { "order": 537, - "name": "sergiopq", + "name": "acirdeveloper", "count": 1, "languages": 1 }, { "order": 538, - "name": "nicoloboo02", + "name": "albertovf", "count": 1, "languages": 1 }, { "order": 539, - "name": "angeloro", + "name": "sergiopq", "count": 1, "languages": 1 }, { "order": 540, - "name": "jony-english22", + "name": "nicoloboo02", "count": 1, "languages": 1 }, { "order": 541, - "name": "righelch", + "name": "angeloro", "count": 1, "languages": 1 }, { "order": 542, - "name": "deathbat00", + "name": "jony-english22", "count": 1, "languages": 1 }, { "order": 543, - "name": "sve-nnn", + "name": "righelch", "count": 1, "languages": 1 }, { "order": 544, - "name": "edgarmedranoa", + "name": "deathbat00", "count": 1, "languages": 1 }, { "order": 545, - "name": "emiliordev", + "name": "sve-nnn", "count": 1, "languages": 1 }, { "order": 546, - "name": "wijimenezz", + "name": "edgarmedranoa", "count": 1, "languages": 1 }, { "order": 547, - "name": "vickalc", + "name": "emiliordev", "count": 1, "languages": 1 }, { "order": 548, - "name": "rusian69", + "name": "wijimenezz", "count": 1, "languages": 1 }, { "order": 549, - "name": "rafapg93", + "name": "vickalc", "count": 1, "languages": 1 }, { "order": 550, - "name": "juanchernandezdev", + "name": "rusian69", "count": 1, "languages": 1 }, { "order": 551, - "name": "riukac", + "name": "rafapg93", "count": 1, "languages": 1 }, { "order": 552, - "name": "ouendinga", + "name": "juanchernandezdev", "count": 1, "languages": 1 }, { "order": 553, - "name": "franespina", + "name": "riukac", "count": 1, "languages": 1 }, { "order": 554, - "name": "davidbastosg", + "name": "ouendinga", "count": 1, "languages": 1 }, { "order": 555, - "name": "torvicv", + "name": "franespina", "count": 1, "languages": 1 }, { "order": 556, - "name": "dgquintero", + "name": "davidbastosg", "count": 1, "languages": 1 }, { "order": 557, - "name": "juampaweb", + "name": "torvicv", "count": 1, "languages": 1 }, { "order": 558, - "name": "girngoma", + "name": "dgquintero", "count": 1, "languages": 1 }, { "order": 559, - "name": "javosss", + "name": "juampaweb", "count": 1, "languages": 1 }, { "order": 560, - "name": "derobpe", + "name": "girngoma", "count": 1, "languages": 1 }, { "order": 561, - "name": "alinares94", + "name": "javosss", "count": 1, "languages": 1 }, { "order": 562, - "name": "jferchotorres", + "name": "derobpe", "count": 1, "languages": 1 }, { "order": 563, - "name": "lordzzz", + "name": "alinares94", "count": 1, "languages": 1 }, { "order": 564, - "name": "713avo", + "name": "jferchotorres", "count": 1, "languages": 1 }, { "order": 565, - "name": "micendev", + "name": "lordzzz", "count": 1, "languages": 1 }, { "order": 566, - "name": "cuervo23alpha", + "name": "713avo", "count": 1, "languages": 1 }, { "order": 567, - "name": "h4cker54n", + "name": "micendev", "count": 1, "languages": 1 }, { "order": 568, - "name": "ingjavierpinilla", + "name": "cuervo23alpha", "count": 1, "languages": 1 }, { "order": 569, - "name": "angel-agis", + "name": "h4cker54n", "count": 1, "languages": 1 }, { "order": 570, - "name": "joancharles07", + "name": "ingjavierpinilla", "count": 1, "languages": 1 }, { "order": 571, - "name": "batmarc91", + "name": "angel-agis", "count": 1, "languages": 1 }, { "order": 572, - "name": "mauricioobgo", + "name": "joancharles07", "count": 1, "languages": 1 }, { "order": 573, - "name": "emersonxinay", + "name": "batmarc91", "count": 1, "languages": 1 }, { "order": 574, - "name": "carlosmares", + "name": "mauricioobgo", "count": 1, "languages": 1 }, { "order": 575, - "name": "cub-tor", + "name": "emersonxinay", "count": 1, "languages": 1 }, { "order": 576, - "name": "nightmare79", + "name": "carlosmares", "count": 1, "languages": 1 }, { "order": 577, - "name": "vikernes27666", + "name": "cub-tor", "count": 1, "languages": 1 }, { "order": 578, - "name": "josephinoo", + "name": "nightmare79", "count": 1, "languages": 1 }, { "order": 579, - "name": "anitandil", + "name": "vikernes27666", "count": 1, "languages": 1 }, { "order": 580, - "name": "francomyburg", + "name": "josephinoo", "count": 1, "languages": 1 }, { "order": 581, - "name": "evilpodato04", + "name": "anitandil", "count": 1, "languages": 1 }, { "order": 582, - "name": "miguel2rar", + "name": "francomyburg", "count": 1, "languages": 1 }, { "order": 583, - "name": "agustinfccll", + "name": "evilpodato04", "count": 1, "languages": 1 }, { "order": 584, - "name": "neicervb", + "name": "miguel2rar", "count": 1, "languages": 1 }, { "order": 585, - "name": "gabriel-dangelo", + "name": "agustinfccll", "count": 1, "languages": 1 }, { "order": 586, - "name": "miquelrr", + "name": "neicervb", "count": 1, "languages": 1 }, { "order": 587, - "name": "juancamilofvx", + "name": "gabriel-dangelo", "count": 1, "languages": 1 }, { "order": 588, - "name": "c-blskv", + "name": "miquelrr", "count": 1, "languages": 1 }, { "order": 589, - "name": "emaerniquez", + "name": "juancamilofvx", "count": 1, "languages": 1 }, { "order": 590, - "name": "leonardo-henao", + "name": "c-blskv", "count": 1, "languages": 1 }, { "order": 591, - "name": "bryanalzate007", + "name": "emaerniquez", "count": 1, "languages": 1 }, { "order": 592, - "name": "willypaz243", + "name": "leonardo-henao", "count": 1, "languages": 1 }, { "order": 593, - "name": "luism95", + "name": "bryanalzate007", "count": 1, "languages": 1 }, { "order": 594, - "name": "santyjl44", + "name": "willypaz243", "count": 1, "languages": 1 }, { "order": 595, - "name": "qwik-zghieb", + "name": "luism95", "count": 1, "languages": 1 }, { "order": 596, - "name": "gonzalinuz18", + "name": "santyjl44", "count": 1, "languages": 1 }, { "order": 597, - "name": "omarroman29", + "name": "qwik-zghieb", "count": 1, "languages": 1 }, { "order": 598, - "name": "theposi", + "name": "gonzalinuz18", "count": 1, "languages": 1 }, { "order": 599, - "name": "vinyoles", + "name": "omarroman29", "count": 1, "languages": 1 }, { "order": 600, - "name": "sergio-strazzacappa", + "name": "theposi", "count": 1, "languages": 1 }, { "order": 601, - "name": "arathhh8", + "name": "vinyoles", "count": 1, "languages": 1 }, { "order": 602, - "name": "paluzz", + "name": "sergio-strazzacappa", "count": 1, "languages": 1 }, { "order": 603, - "name": "daniel-cas", + "name": "arathhh8", "count": 1, "languages": 1 }, { "order": 604, - "name": "luisalberto22", + "name": "paluzz", "count": 1, "languages": 1 }, { "order": 605, - "name": "mbmaeso", + "name": "daniel-cas", "count": 1, "languages": 1 }, { "order": 606, - "name": "deiiviitdev", + "name": "luisalberto22", "count": 1, "languages": 1 }, { "order": 607, - "name": "borjadelgadodev", + "name": "mbmaeso", "count": 1, "languages": 1 }, { "order": 608, - "name": "jaennova", + "name": "deiiviitdev", "count": 1, "languages": 1 }, { "order": 609, - "name": "francisleble", + "name": "borjadelgadodev", "count": 1, "languages": 1 }, { "order": 610, - "name": "jhordanluyo", + "name": "jaennova", "count": 1, "languages": 1 }, { "order": 611, - "name": "acirdevelper", + "name": "francisleble", "count": 1, "languages": 1 }, { "order": 612, - "name": "davidcv-dev", + "name": "jhordanluyo", "count": 1, "languages": 1 }, { "order": 613, - "name": "alvarominarro", + "name": "acirdevelper", "count": 1, "languages": 1 }, { "order": 614, - "name": "frealexandro", + "name": "davidcv-dev", "count": 1, "languages": 1 }, { "order": 615, - "name": "braiso-22", + "name": "alvarominarro", "count": 1, "languages": 1 }, { "order": 616, - "name": "armm77", + "name": "frealexandro", "count": 1, "languages": 1 }, { "order": 617, - "name": "kevin05m", + "name": "braiso-22", "count": 1, "languages": 1 }, { "order": 618, - "name": "fede6299", + "name": "armm77", "count": 1, "languages": 1 }, { "order": 619, - "name": "pablo-lnx", + "name": "kevin05m", "count": 1, "languages": 1 }, { "order": 620, - "name": "darkohokage", + "name": "fede6299", "count": 1, "languages": 1 }, { "order": 621, - "name": "diegomm27", + "name": "pablo-lnx", "count": 1, "languages": 1 }, { "order": 622, - "name": "cristian-encalada", + "name": "darkohokage", "count": 1, "languages": 1 }, { "order": 623, - "name": "alefine", + "name": "diegomm27", "count": 1, "languages": 1 }, { "order": 624, - "name": "zyn7e", + "name": "cristian-encalada", "count": 1, "languages": 1 }, { "order": 625, - "name": "antoniojzp86", + "name": "alefine", "count": 1, "languages": 1 }, { "order": 626, - "name": "dovinhoyos", + "name": "zyn7e", "count": 1, "languages": 1 }, { "order": 627, - "name": "rumacar05", + "name": "antoniojzp86", "count": 1, "languages": 1 }, { "order": 628, - "name": "gianellannie", + "name": "dovinhoyos", "count": 1, "languages": 1 }, { "order": 629, - "name": "deathbato", + "name": "rumacar05", "count": 1, "languages": 1 }, { "order": 630, - "name": "cristobalbelcor", + "name": "gianellannie", "count": 1, "languages": 1 }, { "order": 631, - "name": "kgrc05", + "name": "deathbato", "count": 1, "languages": 1 }, { "order": 632, - "name": "cristianmr87", + "name": "cristobalbelcor", "count": 1, "languages": 1 }, { "order": 633, - "name": "lizandev", + "name": "kgrc05", "count": 1, "languages": 1 }, { "order": 634, - "name": "det3992", + "name": "cristianmr87", "count": 1, "languages": 1 }, { "order": 635, - "name": "lewisoneil", + "name": "lizandev", "count": 1, "languages": 1 }, { "order": 636, - "name": "santiagopereiraviroga", + "name": "det3992", "count": 1, "languages": 1 }, { "order": 637, - "name": "v1k770r", + "name": "lewisoneil", "count": 1, "languages": 1 }, { "order": 638, - "name": "durwian", + "name": "santiagopereiraviroga", "count": 1, "languages": 1 }, { "order": 639, - "name": "adriangonzalezroble", + "name": "v1k770r", "count": 1, "languages": 1 }, { "order": 640, - "name": "mathiur", + "name": "durwian", "count": 1, "languages": 1 }, { "order": 641, - "name": "bycris13", + "name": "adriangonzalezroble", "count": 1, "languages": 1 }, { "order": 642, - "name": "algeloro", + "name": "mathiur", "count": 1, "languages": 1 }, { "order": 643, - "name": "chalaito88", + "name": "bycris13", "count": 1, "languages": 1 }, { "order": 644, - "name": "javiir", + "name": "algeloro", "count": 1, "languages": 1 }, { "order": 645, - "name": "chrystiancalderon", + "name": "chalaito88", "count": 1, "languages": 1 }, { "order": 646, - "name": "pguillo", + "name": "javiir", "count": 1, "languages": 1 }, { "order": 647, - "name": "serg_pq", + "name": "chrystiancalderon", "count": 1, "languages": 1 }, { "order": 648, - "name": "diegopardomontero", + "name": "pguillo", "count": 1, "languages": 1 }, { "order": 649, - "name": "ivanserran", + "name": "serg_pq", "count": 1, "languages": 1 }, { "order": 650, - "name": "fredylopez01", + "name": "diegopardomontero", "count": 1, "languages": 1 }, { "order": 651, - "name": "angeldevsarrollo", + "name": "ivanserran", "count": 1, "languages": 1 }, { "order": 652, - "name": "sanuka78", + "name": "fredylopez01", "count": 1, "languages": 1 }, { "order": 653, - "name": "adriansaint07", + "name": "angeldevsarrollo", "count": 1, "languages": 1 }, { "order": 654, - "name": "jony_english22", + "name": "sanuka78", "count": 1, "languages": 1 }, { "order": 655, - "name": "alvaropg15", + "name": "adriansaint07", "count": 1, "languages": 1 }, { "order": 656, - "name": "frankmon03", + "name": "jony_english22", "count": 1, "languages": 1 }, { "order": 657, - "name": "xhaloidx", + "name": "alvaropg15", "count": 1, "languages": 1 }, { "order": 658, - "name": "reneguzman7", + "name": "frankmon03", "count": 1, "languages": 1 }, { "order": 659, - "name": "jaquelinetorres", + "name": "xhaloidx", "count": 1, "languages": 1 }, { "order": 660, - "name": "alexeigio", + "name": "reneguzman7", "count": 1, "languages": 1 }, { "order": 661, - "name": "albert-29", + "name": "jaquelinetorres", "count": 1, "languages": 1 }, { "order": 662, - "name": "iguerrerov", + "name": "alexeigio", "count": 1, "languages": 1 }, { "order": 663, - "name": "pvigo10", + "name": "albert-29", "count": 1, "languages": 1 }, { "order": 664, - "name": "jrgim", + "name": "iguerrerov", "count": 1, "languages": 1 }, { "order": 665, - "name": "marcosjarrin", + "name": "pvigo10", "count": 1, "languages": 1 }, { "order": 666, - "name": "jhonnfl", + "name": "jrgim", "count": 1, "languages": 1 }, { "order": 667, - "name": "trollface77", + "name": "marcosjarrin", "count": 1, "languages": 1 }, { "order": 668, - "name": "brunom-93", + "name": "jhonnfl", "count": 1, "languages": 1 }, { "order": 669, - "name": "alejandroruiz23", + "name": "trollface77", "count": 1, "languages": 1 }, { "order": 670, - "name": "jaimesoftdev", + "name": "brunom-93", "count": 1, "languages": 1 }, { "order": 671, - "name": "edm1ya", + "name": "alejandroruiz23", "count": 1, "languages": 1 }, { "order": 672, - "name": "jarzatedev", + "name": "jaimesoftdev", "count": 1, "languages": 1 }, { "order": 673, - "name": "sandrarg85", + "name": "edm1ya", "count": 1, "languages": 1 }, { "order": 674, - "name": "rootqui", + "name": "jarzatedev", "count": 1, "languages": 1 }, { "order": 675, - "name": "astriebeck", + "name": "sandrarg85", "count": 1, "languages": 1 }, { "order": 676, - "name": "marqitos", + "name": "rootqui", "count": 1, "languages": 1 }, { "order": 677, - "name": "lobogeekmx", + "name": "astriebeck", "count": 1, "languages": 1 }, { "order": 678, - "name": "marvinagui", + "name": "marqitos", "count": 1, "languages": 1 }, { "order": 679, - "name": "jatomas", + "name": "lobogeekmx", "count": 1, "languages": 1 }, { "order": 680, - "name": "nunezlagos", + "name": "marvinagui", "count": 1, "languages": 1 }, { "order": 681, - "name": "ledyam", + "name": "jatomas", "count": 1, "languages": 1 }, { "order": 682, - "name": "miguelgargallo", + "name": "nunezlagos", "count": 1, "languages": 1 }, { "order": 683, - "name": "ishimaku", + "name": "ledyam", "count": 1, "languages": 1 }, { "order": 684, - "name": "afacorroloscos", + "name": "miguelgargallo", "count": 1, "languages": 1 }, { "order": 685, - "name": "chrisfelixgil", + "name": "ishimaku", "count": 1, "languages": 1 }, { "order": 686, - "name": "franpua", + "name": "afacorroloscos", "count": 1, "languages": 1 }, { "order": 687, - "name": "sirvega83", + "name": "chrisfelixgil", "count": 1, "languages": 1 }, { "order": 688, - "name": "corvo-99", + "name": "franpua", "count": 1, "languages": 1 }, { "order": 689, - "name": "franciscokarriere", + "name": "sirvega83", "count": 1, "languages": 1 }, { "order": 690, - "name": "pipeyz21", + "name": "corvo-99", "count": 1, "languages": 1 }, { "order": 691, - "name": "luisgarm", + "name": "franciscokarriere", "count": 1, "languages": 1 }, { "order": 692, - "name": "vorosdev", + "name": "pipeyz21", "count": 1, "languages": 1 }, { "order": 693, - "name": "santiagomac", + "name": "luisgarm", "count": 1, "languages": 1 }, { "order": 694, - "name": "ca2puntosv", + "name": "vorosdev", "count": 1, "languages": 1 }, { "order": 695, - "name": "cibacoa", + "name": "santiagomac", "count": 1, "languages": 1 }, { "order": 696, - "name": "gizelads", + "name": "ca2puntosv", "count": 1, "languages": 1 }, { "order": 697, - "name": "axelwestman", + "name": "cibacoa", "count": 1, "languages": 1 }, { "order": 698, - "name": "coletonosh", + "name": "gizelads", "count": 1, "languages": 1 }, { "order": 699, - "name": "manuhssj", + "name": "axelwestman", "count": 1, "languages": 1 }, { "order": 700, - "name": "manugonzalito", + "name": "coletonosh", "count": 1, "languages": 1 }, { "order": 701, - "name": "seigigim", + "name": "manuhssj", "count": 1, "languages": 1 }, { "order": 702, - "name": "marcosapodaca", + "name": "manugonzalito", "count": 1, "languages": 1 }, { "order": 703, - "name": "serg032", + "name": "seigigim", "count": 1, "languages": 1 }, { "order": 704, - "name": "is2095", + "name": "marcosapodaca", "count": 1, "languages": 1 }, { "order": 705, - "name": "lucc4sz", + "name": "serg032", "count": 1, "languages": 1 }, { "order": 706, - "name": "mauricioyair", + "name": "is2095", "count": 1, "languages": 1 }, { "order": 707, - "name": "jancalos", + "name": "lucc4sz", "count": 1, "languages": 1 }, { "order": 708, - "name": "palons29", + "name": "mauricioyair", "count": 1, "languages": 1 }, { "order": 709, - "name": "deimoshall", + "name": "jancalos", "count": 1, "languages": 1 }, { "order": 710, - "name": "mickysoft", + "name": "palons29", "count": 1, "languages": 1 }, { "order": 711, - "name": "serg-pq", + "name": "deimoshall", "count": 1, "languages": 1 }, { "order": 712, - "name": "lara-vel-dev", + "name": "mickysoft", "count": 1, "languages": 1 }, { "order": 713, - "name": "alexisbarradev", + "name": "serg-pq", "count": 1, "languages": 1 }, { "order": 714, - "name": "tartabullroberto", + "name": "lara-vel-dev", "count": 1, "languages": 1 }, { "order": 715, - "name": "kelvincb", + "name": "alexisbarradev", "count": 1, "languages": 1 }, { "order": 716, - "name": "augustosdev", + "name": "tartabullroberto", "count": 1, "languages": 1 }, { "order": 717, - "name": "van-02", + "name": "kelvincb", "count": 1, "languages": 1 }, { "order": 718, - "name": "x3mboy", + "name": "augustosdev", "count": 1, "languages": 1 }, { "order": 719, - "name": "jandresalvar", + "name": "van-02", "count": 1, "languages": 1 }, { "order": 720, - "name": "angelcruzg23", + "name": "x3mboy", "count": 1, "languages": 1 }, { "order": 721, - "name": "kevinramirez28", + "name": "jandresalvar", "count": 1, "languages": 1 }, { "order": 722, - "name": "alemar16", + "name": "angelcruzg23", "count": 1, "languages": 1 }, { "order": 723, - "name": "joseperesini", + "name": "kevinramirez28", "count": 1, "languages": 1 }, { "order": 724, - "name": "denisortega", + "name": "alemar16", "count": 1, "languages": 1 }, { "order": 725, - "name": "flarien", + "name": "joseperesini", "count": 1, "languages": 1 }, { "order": 726, - "name": "jpiacaruso", + "name": "denisortega", "count": 1, "languages": 1 }, { "order": 727, - "name": "kronomio", + "name": "flarien", "count": 1, "languages": 1 }, { "order": 728, - "name": "abengl", + "name": "jpiacaruso", "count": 1, "languages": 1 }, { "order": 729, - "name": "edgonzz", + "name": "kronomio", "count": 1, "languages": 1 }, { "order": 730, - "name": "augustbs", + "name": "abengl", "count": 1, "languages": 1 }, { "order": 731, - "name": "gerespinosa", + "name": "edgonzz", "count": 1, "languages": 1 }, { "order": 732, - "name": "walkerlyna", + "name": "augustbs", "count": 1, "languages": 1 }, { "order": 733, - "name": "lytsar", + "name": "gerespinosa", "count": 1, "languages": 1 }, { "order": 734, - "name": "rodmiggithub", + "name": "walkerlyna", "count": 1, "languages": 1 }, { "order": 735, - "name": "gc796", + "name": "lytsar", "count": 1, "languages": 1 }, { "order": 736, - "name": "gustavoguerrero", + "name": "rodmiggithub", "count": 1, "languages": 1 }, { "order": 737, - "name": "maximotoro", + "name": "gc796", "count": 1, "languages": 1 }, { "order": 738, - "name": "xnomada", + "name": "gustavoguerrero", "count": 1, "languages": 1 }, { "order": 739, - "name": "francescoalterio", + "name": "maximotoro", "count": 1, "languages": 1 }, { "order": 740, - "name": "codejoss", + "name": "xnomada", "count": 1, "languages": 1 }, { "order": 741, - "name": "alexis0717", + "name": "francescoalterio", "count": 1, "languages": 1 }, { "order": 742, - "name": "ronnieruuz", + "name": "codejoss", "count": 1, "languages": 1 }, { "order": 743, - "name": "isnatthy", + "name": "alexis0717", "count": 1, "languages": 1 }, { "order": 744, - "name": "datrujillog", + "name": "ronnieruuz", "count": 1, "languages": 1 }, { "order": 745, - "name": "aleclto7", + "name": "isnatthy", "count": 1, "languages": 1 }, { "order": 746, - "name": "s9code", + "name": "datrujillog", "count": 1, "languages": 1 }, { "order": 747, - "name": "pierre-ol", + "name": "aleclto7", "count": 1, "languages": 1 }, { "order": 748, - "name": "peticas", + "name": "s9code", "count": 1, "languages": 1 }, { "order": 749, - "name": "saintsluis", + "name": "pierre-ol", "count": 1, "languages": 1 }, { "order": 750, - "name": "quirogapau", + "name": "peticas", "count": 1, "languages": 1 }, { "order": 751, - "name": "dmhenaopa", + "name": "saintsluis", "count": 1, "languages": 1 }, { "order": 752, - "name": "pointfs", + "name": "quirogapau", "count": 1, "languages": 1 }, { "order": 753, - "name": "lfam200", + "name": "dmhenaopa", "count": 1, "languages": 1 }, { "order": 754, - "name": "lucianogriffa", + "name": "pointfs", "count": 1, "languages": 1 }, { "order": 755, - "name": "alexxawada", + "name": "lfam200", "count": 1, "languages": 1 }, { "order": 756, - "name": "oscarletelier", + "name": "lucianogriffa", "count": 1, "languages": 1 }, { "order": 757, - "name": "johnniew81", + "name": "alexxawada", "count": 1, "languages": 1 }, { "order": 758, - "name": "edperez07", + "name": "oscarletelier", "count": 1, "languages": 1 }, { "order": 759, - "name": "lfwzk", + "name": "johnniew81", "count": 1, "languages": 1 }, { "order": 760, - "name": "fernandofl", + "name": "edperez07", "count": 1, "languages": 1 }, { "order": 761, - "name": "juanpablo-a", + "name": "lfwzk", "count": 1, "languages": 1 }, { "order": 762, - "name": "vmga09", + "name": "fernandofl", "count": 1, "languages": 1 }, { "order": 763, - "name": "imista", + "name": "juanpablo-a", "count": 1, "languages": 1 }, { "order": 764, - "name": "kocho03", + "name": "vmga09", "count": 1, "languages": 1 }, { "order": 765, - "name": "abraham9804", + "name": "imista", "count": 1, "languages": 1 }, { "order": 766, - "name": "afl0r3s", + "name": "kocho03", "count": 1, "languages": 1 }, { "order": 767, - "name": "javieradev", + "name": "abraham9804", "count": 1, "languages": 1 }, { "order": 768, - "name": "mvillegas18", + "name": "afl0r3s", "count": 1, "languages": 1 }, { "order": 769, - "name": "sixtodev", + "name": "javieradev", "count": 1, "languages": 1 }, { "order": 770, - "name": "jovany-java", + "name": "mvillegas18", "count": 1, "languages": 1 }, { "order": 771, - "name": "cliverjimny123", + "name": "sixtodev", "count": 1, "languages": 1 }, { "order": 772, - "name": "madelefonb", + "name": "jovany-java", "count": 1, "languages": 1 }, { "order": 773, - "name": "siuldev", + "name": "cliverjimny123", "count": 1, "languages": 1 }, { "order": 774, - "name": "jacobrwx", + "name": "madelefonb", "count": 1, "languages": 1 }, { "order": 775, - "name": "mhrosariom", + "name": "siuldev", "count": 1, "languages": 1 }, { "order": 776, - "name": "rojasvargas", + "name": "jacobrwx", "count": 1, "languages": 1 }, { "order": 777, - "name": "yessikamichelle", + "name": "mhrosariom", "count": 1, "languages": 1 }, { "order": 778, - "name": "sergioab7", + "name": "rojasvargas", "count": 1, "languages": 1 }, { "order": 779, - "name": "sejotaz", + "name": "yessikamichelle", "count": 1, "languages": 1 }, { "order": 780, - "name": "nnunezmedina", + "name": "sergioab7", "count": 1, "languages": 1 }, { "order": 781, - "name": "diegoxxd", + "name": "sejotaz", "count": 1, "languages": 1 }, { "order": 782, - "name": "jd-gm", + "name": "nnunezmedina", "count": 1, "languages": 1 }, { "order": 783, - "name": "nozodev", + "name": "diegoxxd", "count": 1, "languages": 1 }, { "order": 784, - "name": "ercky1980", + "name": "jd-gm", "count": 1, "languages": 1 }, { "order": 785, - "name": "santaravena", + "name": "nozodev", "count": 1, "languages": 1 }, { "order": 786, - "name": "francomoreira", + "name": "ercky1980", "count": 1, "languages": 1 }, { "order": 787, - "name": "royhuamanavila", + "name": "santaravena", "count": 1, "languages": 1 }, { "order": 788, - "name": "danielbustos342", + "name": "francomoreira", "count": 1, "languages": 1 }, { "order": 789, - "name": "kenzambrano", + "name": "royhuamanavila", "count": 1, "languages": 1 }, { "order": 790, - "name": "romanocoder", + "name": "danielbustos342", "count": 1, "languages": 1 }, { "order": 791, - "name": "jsruedatorres", + "name": "kenzambrano", "count": 1, "languages": 1 }, { "order": 792, - "name": "miguelsarm", + "name": "romanocoder", "count": 1, "languages": 1 }, { "order": 793, - "name": "frcan89", + "name": "jsruedatorres", "count": 1, "languages": 1 }, { "order": 794, - "name": "alvarommedia", + "name": "miguelsarm", "count": 1, "languages": 1 }, { "order": 795, - "name": "patricioguerra30", + "name": "frcan89", "count": 1, "languages": 1 }, { "order": 796, - "name": "mdemena", + "name": "alvarommedia", "count": 1, "languages": 1 }, { "order": 797, - "name": "marcos0803", + "name": "patricioguerra30", "count": 1, "languages": 1 }, { "order": 798, - "name": "vmarialuzm", + "name": "mdemena", "count": 1, "languages": 1 }, { "order": 799, - "name": "acobo3", + "name": "marcos0803", "count": 1, "languages": 1 }, { "order": 800, - "name": "sofiamfernandez", + "name": "vmarialuzm", "count": 1, "languages": 1 }, { "order": 801, - "name": "cd1974", + "name": "acobo3", "count": 1, "languages": 1 }, { "order": 802, - "name": "vickalck", + "name": "sofiamfernandez", "count": 1, "languages": 1 }, { "order": 803, - "name": "chema-dw", + "name": "cd1974", "count": 1, "languages": 1 }, { "order": 804, - "name": "javirr4", + "name": "vickalck", "count": 1, "languages": 1 }, { "order": 805, - "name": "e-xtian", + "name": "chema-dw", "count": 1, "languages": 1 }, { "order": 806, - "name": "masenace", + "name": "javirr4", "count": 1, "languages": 1 }, { "order": 807, - "name": "julioorozco05", + "name": "e-xtian", "count": 1, "languages": 1 }, { "order": 808, - "name": "g4nd4lf", + "name": "masenace", "count": 1, "languages": 1 }, { "order": 809, - "name": "cris10026", + "name": "julioorozco05", "count": 1, "languages": 1 }, { "order": 810, - "name": "johao23", + "name": "g4nd4lf", "count": 1, "languages": 1 }, { "order": 811, - "name": "latorredev", + "name": "cris10026", "count": 1, "languages": 1 }, { "order": 812, - "name": "anexo01", + "name": "johao23", "count": 1, "languages": 1 }, { "order": 813, - "name": "wilsonbarrera", + "name": "latorredev", "count": 1, "languages": 1 }, { "order": 814, - "name": "diegogomezcor4", + "name": "anexo01", "count": 1, "languages": 1 }, { "order": 815, - "name": "charly024", + "name": "wilsonbarrera", "count": 1, "languages": 1 }, { "order": 816, - "name": "miguelmancebo", + "name": "diegogomezcor4", "count": 1, "languages": 1 }, { "order": 817, - "name": "geridage", + "name": "charly024", "count": 1, "languages": 1 }, { "order": 818, - "name": "jereaguilar", + "name": "miguelmancebo", "count": 1, "languages": 1 }, { "order": 819, - "name": "lluistech", + "name": "geridage", "count": 1, "languages": 1 }, { "order": 820, - "name": "luceldasilva", + "name": "jereaguilar", "count": 1, "languages": 1 }, { "order": 821, - "name": "pedrojog", + "name": "lluistech", "count": 1, "languages": 1 }, { "order": 822, - "name": "francgci", + "name": "luceldasilva", "count": 1, "languages": 1 }, { "order": 823, - "name": "yamiyugi25", + "name": "francgci", "count": 1, "languages": 1 }, { "order": 824, - "name": "luisangeles20", + "name": "yamiyugi25", "count": 1, "languages": 1 }, { "order": 825, - "name": "cristianvergaraf", + "name": "luisangeles20", "count": 1, "languages": 1 }, { "order": 826, - "name": "judithernandez", + "name": "cristianvergaraf", "count": 1, "languages": 1 }, { "order": 827, - "name": "eatsangels", + "name": "judithernandez", "count": 1, "languages": 1 }, { "order": 828, - "name": "mjordanaam", + "name": "eatsangels", "count": 1, "languages": 1 }, { "order": 829, - "name": "marcelinoarias369", + "name": "mjordanaam", "count": 1, "languages": 1 }, { "order": 830, - "name": "juan-cruz01", + "name": "marcelinoarias369", "count": 1, "languages": 1 }, { "order": 831, - "name": "arturodlapaz17", + "name": "juan-cruz01", "count": 1, "languages": 1 }, { "order": 832, - "name": "cisneros2404", + "name": "arturodlapaz17", "count": 1, "languages": 1 }, { "order": 833, - "name": "claudios1980", + "name": "cisneros2404", "count": 1, "languages": 1 }, { "order": 834, - "name": "pr1de-23", + "name": "claudios1980", "count": 1, "languages": 1 }, { "order": 835, - "name": "dimanu-py", + "name": "pr1de-23", "count": 1, "languages": 1 }, { "order": 836, - "name": "wallsified", + "name": "dimanu-py", "count": 1, "languages": 1 }, { "order": 837, - "name": "kshields51", + "name": "wallsified", "count": 1, "languages": 1 }, { "order": 838, - "name": "hnaranjog", + "name": "kshields51", "count": 1, "languages": 1 }, { "order": 839, - "name": "erickcis", + "name": "hnaranjog", "count": 1, "languages": 1 }, { "order": 840, - "name": "neftalyr", + "name": "erickcis", "count": 1, "languages": 1 }, { "order": 841, - "name": "zeraven09", + "name": "neftalyr", "count": 1, "languages": 1 }, { "order": 842, - "name": "jchernandez87", + "name": "zeraven09", "count": 1, "languages": 1 }, { "order": 843, - "name": "adcarret", + "name": "jchernandez87", "count": 1, "languages": 1 }, { "order": 844, - "name": "leo18q", + "name": "adcarret", "count": 1, "languages": 1 }, { "order": 845, - "name": "v0l0v", + "name": "leo18q", "count": 1, "languages": 1 }, { "order": 846, - "name": "alejandro000", + "name": "v0l0v", "count": 1, "languages": 1 }, { "order": 847, - "name": "juanalbornoz32", + "name": "alejandro000", "count": 1, "languages": 1 }, { "order": 848, - "name": "albertomorilla", + "name": "juanalbornoz32", "count": 1, "languages": 1 }, { "order": 849, - "name": "sergiovelayos", + "name": "albertomorilla", "count": 1, "languages": 1 }, { "order": 850, - "name": "emmanuelmmontesinos ", + "name": "sergiovelayos", "count": 1, "languages": 1 }, { "order": 851, - "name": "jgregoris", + "name": "emmanuelmmontesinos ", "count": 1, "languages": 1 }, { "order": 852, - "name": "and-y21", + "name": "jgregoris", "count": 1, "languages": 1 }, { "order": 853, - "name": "xcortes", + "name": "and-y21", "count": 1, "languages": 1 }, { "order": 854, - "name": "salas89", + "name": "xcortes", "count": 1, "languages": 1 }, { "order": 855, - "name": "ignacioskm", + "name": "salas89", "count": 1, "languages": 1 }, { "order": 856, - "name": "sunjamer", + "name": "ignacioskm", "count": 1, "languages": 1 }, { "order": 857, - "name": "dakkaj", + "name": "sunjamer", "count": 1, "languages": 1 }, { "order": 858, - "name": "jalonso76", + "name": "dakkaj", "count": 1, "languages": 1 }, { "order": 859, - "name": "sbngl", + "name": "jalonso76", "count": 1, "languages": 1 }, { "order": 860, - "name": "alejarandro", + "name": "sbngl", "count": 1, "languages": 1 }, { "order": 861, - "name": "gmedinat911", + "name": "alejarandro", "count": 1, "languages": 1 }, { "order": 862, - "name": "danidan1214", + "name": "gmedinat911", "count": 1, "languages": 1 }, { "order": 863, - "name": "neshurtado", + "name": "danidan1214", "count": 1, "languages": 1 }, { "order": 864, - "name": "demegorash", + "name": "neshurtado", "count": 1, "languages": 1 }, { "order": 865, - "name": "xhinto", + "name": "demegorash", "count": 1, "languages": 1 }, { "order": 866, - "name": "xalejandrow", + "name": "xhinto", "count": 1, "languages": 1 }, { "order": 867, - "name": "90dread", + "name": "xalejandrow", "count": 1, "languages": 1 }, { "order": 868, - "name": "gersonoroz", + "name": "90dread", "count": 1, "languages": 1 }, { "order": 869, - "name": "isaacdci", + "name": "gersonoroz", "count": 1, "languages": 1 }, { "order": 870, - "name": "davidgramiro", + "name": "isaacdci", "count": 1, "languages": 1 }, { "order": 871, - "name": "devkenn", + "name": "davidgramiro", "count": 1, "languages": 1 }, { "order": 872, - "name": "turudev1979", + "name": "devkenn", "count": 1, "languages": 1 }, { "order": 873, - "name": "giovanni-schmaily", + "name": "turudev1979", "count": 1, "languages": 1 }, { "order": 874, - "name": "deivimiller", + "name": "giovanni-schmaily", "count": 1, "languages": 1 }, { "order": 875, - "name": "carlosbb70", + "name": "deivimiller", "count": 1, "languages": 1 }, { "order": 876, - "name": "fergz1988", + "name": "carlosbb70", "count": 1, "languages": 1 }, { "order": 877, - "name": "betulioo", + "name": "fergz1988", "count": 1, "languages": 1 }, { "order": 878, - "name": "pablom-2015", + "name": "betulioo", "count": 1, "languages": 1 }, { "order": 879, - "name": "manuu42", + "name": "pablom-2015", "count": 1, "languages": 1 }, { "order": 880, - "name": "dacaldev", + "name": "manuu42", "count": 1, "languages": 1 }, { "order": 881, - "name": "nachodev7", + "name": "dacaldev", "count": 1, "languages": 1 }, { "order": 882, - "name": "snowcardenas", + "name": "nachodev7", "count": 1, "languages": 1 }, { "order": 883, - "name": "osneidert", + "name": "snowcardenas", "count": 1, "languages": 1 }, { "order": 884, - "name": "pushodev", + "name": "osneidert", "count": 1, "languages": 1 }, { "order": 885, - "name": "m4xxdev", + "name": "pushodev", "count": 1, "languages": 1 }, { "order": 886, - "name": "amitchellg", + "name": "m4xxdev", "count": 1, "languages": 1 }, { "order": 887, - "name": "ndepaul82", + "name": "amitchellg", "count": 1, "languages": 1 }, { "order": 888, - "name": "sherkla12e", + "name": "ndepaul82", "count": 1, "languages": 1 }, { "order": 889, - "name": "gilbertho502", + "name": "sherkla12e", "count": 1, "languages": 1 }, { "order": 890, - "name": "bjchavez", + "name": "tashidian", "count": 1, "languages": 1 }, { "order": 891, - "name": "alfaroo1", + "name": "gilbertho502", "count": 1, "languages": 1 }, { "order": 892, - "name": "deivisaherreraj", + "name": "bjchavez", "count": 1, "languages": 1 }, { "order": 893, + "name": "alfaroo1", + "count": 1, + "languages": 1 + }, + { + "order": 894, + "name": "deivisaherreraj", + "count": 1, + "languages": 1 + }, + { + "order": 895, "name": "astrarothdlcxvi", "count": 1, "languages": 1 From 8b7e7f47d3185e3b30363daddfd716376415b0db Mon Sep 17 00:00:00 2001 From: SaicoBys Date: Sat, 22 Jun 2024 23:27:27 -0400 Subject: [PATCH 53/66] #02 - python --- .../python/saicobys.py | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Roadmap/02 - FUNCIONES Y ALCANCE/python/saicobys.py diff --git a/Roadmap/02 - FUNCIONES Y ALCANCE/python/saicobys.py b/Roadmap/02 - FUNCIONES Y ALCANCE/python/saicobys.py new file mode 100644 index 0000000000..2e724942f0 --- /dev/null +++ b/Roadmap/02 - FUNCIONES Y ALCANCE/python/saicobys.py @@ -0,0 +1,57 @@ +""" 1. Funciones sin parámetros ni retorno: """ +def saludar(): + print("¡Hola desde una función!") + +saludar() # Llamada a la función + +""" 2. Funciones con parámetros: """ +def saludar_con_nombre(nombre): + print(f"¡Hola, {nombre}!") + +saludar_con_nombre("Ana") # Llamada con un argumento + +""" 3. Funciones con múltiples parámetros: """ +def sumar(a, b): + resultado = a + b + print(f"La suma de {a} y {b} es: {resultado}") + +sumar(5, 3) # Llamada con dos argumentos + +""" 4. Funciones con retorno: """ +def calcular_area_rectangulo(base, altura): + area = base * altura + return area + +area = calcular_area_rectangulo(4, 6) +print(f"El área del rectángulo es: {area}") + +""" 5. Funciones dentro de funciones (anidadas): """ +def operacion_matematica(x, y): + def sumar(a, b): + return a + b + + def restar(a, b): + return a - b + + suma_resultado = sumar(x, y) + resta_resultado = restar(x, y) + + print(f"Suma: {suma_resultado}, Resta: {resta_resultado}") + +operacion_matematica(8, 3) + +""" 6. Uso de funciones integradas: """ +mensaje = "Hola, mundo!" +longitud = len(mensaje) # Función len() para obtener la longitud de la cadena +print(f"La longitud del mensaje es: {longitud}") + +""" . Variables locales y globales: """ +variable_global = "Soy global" + +def funcion_ejemplo(): + variable_local = "Soy local" + print("Dentro de la función:", variable_global, variable_local) + +funcion_ejemplo() +print("Fuera de la función:", variable_global) +# print("Fuera de la función:", variable_local) # Error: variable_local no está definida fuera de la función From c6527b586ff65f23e0d5b5b683e1395e702e1d6f Mon Sep 17 00:00:00 2001 From: SaicoBys Date: Sat, 22 Jun 2024 23:39:47 -0400 Subject: [PATCH 54/66] #02 - python --- .../python/saicobys.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Roadmap/02 - FUNCIONES Y ALCANCE/python/saicobys.py b/Roadmap/02 - FUNCIONES Y ALCANCE/python/saicobys.py index 2e724942f0..debff15329 100644 --- a/Roadmap/02 - FUNCIONES Y ALCANCE/python/saicobys.py +++ b/Roadmap/02 - FUNCIONES Y ALCANCE/python/saicobys.py @@ -55,3 +55,24 @@ def funcion_ejemplo(): funcion_ejemplo() print("Fuera de la función:", variable_global) # print("Fuera de la función:", variable_local) # Error: variable_local no está definida fuera de la función + + +def fizzbuzz(texto_multiplo_3, texto_multiplo_5): + """Imprime los números del 1 al 100 con reglas especiales y retorna el número de veces que se imprime un número en lugar de texto.""" + contador_numeros = 0 + + for numero in range(1, 101): + if numero % 15 == 0: # Múltiplo de 3 y 5 + print(texto_multiplo_3 + texto_multiplo_5) + elif numero % 3 == 0: # Múltiplo de 3 + print(texto_multiplo_3) + elif numero % 5 == 0: # Múltiplo de 5 + print(texto_multiplo_5) + else: # No es múltiplo de 3 ni de 5 + print(numero) + contador_numeros += 1 # Incrementa el contador si se imprime un número + + return contador_numeros + +resultado = fizzbuzz("Fizz", "Buzz") +print(f"Número de veces que se imprimió un número: {resultado}") From ed4bbffd363018a42077c7212cca63af7fb10b6a Mon Sep 17 00:00:00 2001 From: Bernat Date: Sun, 23 Jun 2024 10:25:52 +0200 Subject: [PATCH 55/66] #23 - JavaScript --- Roadmap/23 - SINGLETON/javascript/bernatcs.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Roadmap/23 - SINGLETON/javascript/bernatcs.js diff --git a/Roadmap/23 - SINGLETON/javascript/bernatcs.js b/Roadmap/23 - SINGLETON/javascript/bernatcs.js new file mode 100644 index 0000000000..170f97aa21 --- /dev/null +++ b/Roadmap/23 - SINGLETON/javascript/bernatcs.js @@ -0,0 +1,15 @@ +// ** EJERCICIO + +class Singleton { + constructor() { + if (Singleton.instance) { + return Singleton.instance; + } + this.data = "Información del Singleton"; // Propiedades de la instancia + Singleton.instance = this; // Guardar la instancia + Object.freeze(this); // Congelar la instancia para evitar modificaciones + } +} + +const instance = new Singleton(); +const instance2 = new Singleton() \ No newline at end of file From c4a0b7dcac401287284f4dc2dd40b9f1eff5c36c Mon Sep 17 00:00:00 2001 From: Bernat Date: Sun, 23 Jun 2024 15:29:11 +0200 Subject: [PATCH 56/66] #24 - JavaScript --- .../24 - DECORADORES/javascript/bernatcs.js | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Roadmap/24 - DECORADORES/javascript/bernatcs.js diff --git a/Roadmap/24 - DECORADORES/javascript/bernatcs.js b/Roadmap/24 - DECORADORES/javascript/bernatcs.js new file mode 100644 index 0000000000..64b091d6c2 --- /dev/null +++ b/Roadmap/24 - DECORADORES/javascript/bernatcs.js @@ -0,0 +1,39 @@ +// ** EJERCICIO + +function timeLogger(targetFunction) { + return function(...args) { + console.time('Execution Time'); + const result = targetFunction.apply(this, args); + console.timeEnd('Execution Time'); + return result; + }; +} + +function sayHello(name) { // Función original + console.log(`Hola, ${name}!`); +} + +const timedSayHello = timeLogger(sayHello); // Decorar la función + +//timedSayHello('Pepe'); // Llamar a la función decorada + +// ** DIFICULTAD EXTRA ** ------------------------------------------------------------------------------------------------------------------------------------------------ + + +function timeCounter(targetFunction) { + let functionCount = 0 + + return function(...args) { + const result = targetFunction.apply(this, args); + functionCount++ + console.log('La función sayHello se ha ejecutado ' + functionCount + ' veces.') + }; +} +function sayHello(name) { // Función original + console.log(`Hola, ${name}!`); +} +const countedSayHello = timeCounter(sayHello) + +countedSayHello('Juan') +countedSayHello('María') +countedSayHello('Julián') \ No newline at end of file From a7554ee66613be2cb44584f2f1dc9da85eab4502 Mon Sep 17 00:00:00 2001 From: Bernat Date: Sun, 23 Jun 2024 16:31:42 +0200 Subject: [PATCH 57/66] #25 - JavaScript --- Roadmap/25 - LOGS/javascript/bernatcs.js | 66 ++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 Roadmap/25 - LOGS/javascript/bernatcs.js diff --git a/Roadmap/25 - LOGS/javascript/bernatcs.js b/Roadmap/25 - LOGS/javascript/bernatcs.js new file mode 100644 index 0000000000..29c5e183bf --- /dev/null +++ b/Roadmap/25 - LOGS/javascript/bernatcs.js @@ -0,0 +1,66 @@ +// ** EJERCICIO + +console.trace('TRACE envía mensajes detallados sobre la ejecución del programa' ) +console.debug('DEBUG son mensajes destinados a la depuración del software, prueba de código...') +console.info('INFO son mensajes informativos que indican funcionamiento normal del código') +console.warn('WARN son mensajes de advertencia que indican situaciones potencialmente problemáticas') +console.error('ERROR son errores que han ocurrido en la aplicación') + +// además, hay más tipos de logs + +console.log("Mensaje informativo"); + +console.group("Grupo de mensajes"); +console.log("Mensaje dentro del grupo"); // Este mensaje sale como si fuera en un tabulador +console.groupEnd(); + +console.time("Tiempo de ejecución"); +// Código cuya ejecución quieres medir +console.timeEnd("Tiempo de ejecución"); + +console.trace("Traza de pila"); // Output: stack trace + +// ** DIFICULTAD EXTRA ** ------------------------------------------------------------------------------------------------------------------------------------------------------- + +const readline = require('node:readline') + +const gestorTareas = [ + {Nombre: 'Tarea1', Descripcion: 'Esta es una tarea de prueba'} +] + +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout + }); + +function preguntaInicio() { + rl.question('\n¿Qué quieres hacer?\n[Añadir] - [Eliminar]\n', (respuestaInicio) => { + if (respuestaInicio === 'Añadir') { + rl.question('Introduzca el nombre de la tarea que desea agregar: ', (tareaAgregar) => { + rl.question(`Introduzca la descripción de la tarea ${tareaAgregar}: `, (descripcionAgregar) => { + console.time('Tiempo de ejecución') + gestorTareas.push({Nombre: tareaAgregar, Descripcion: descripcionAgregar}) + console.group(`\nLa tarea ${tareaAgregar} se ha agregado satisfactoriamente`) + console.timeEnd('Tiempo de ejecución') + console.groupEnd() + preguntaInicio() + }) + }) + } else if (respuestaInicio === 'Eliminar') { + rl.question('Introduzca el nombre de la tarea que desea eliminar: ', (tareaEliminar) => { + console.time('Tiempo de ejecución') + gestorTareas.splice((gestorTareas.findIndex((tarea) => tarea.Nombre === tareaEliminar)), 1); + console.group(`\nLa tarea ${tareaEliminar} se ha eliminado satisfactoriamente`) + console.timeEnd('Tiempo de ejecución') + console.groupEnd() + preguntaInicio() + }) + preguntaInicio() + } else { + console.warn('\nPor favor, introduzca una respuesta válida') + preguntaInicio() + } + }); +} + +preguntaInicio() \ No newline at end of file From 349b055986493c93f6193300b186904e791492f2 Mon Sep 17 00:00:00 2001 From: Jesus Antonio Escamilla Date: Sun, 23 Jun 2024 11:13:01 -0600 Subject: [PATCH 58/66] #25 - JavaScript "Extra" --- .../javascript/JesusAntonioEEscamilla.js | 45 ++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/Roadmap/25 - LOGS/javascript/JesusAntonioEEscamilla.js b/Roadmap/25 - LOGS/javascript/JesusAntonioEEscamilla.js index c19ef63cbd..716d0c157d 100644 --- a/Roadmap/25 - LOGS/javascript/JesusAntonioEEscamilla.js +++ b/Roadmap/25 - LOGS/javascript/JesusAntonioEEscamilla.js @@ -40,6 +40,49 @@ console.groupEnd(); /**-----DIFICULTAD EXTRA-----*/ -// Pendiente +//Clase de Tareas +class TaskManager{ + constructor(){ + this.tasks = []; + } + + // Agregar Tarea + addTask(nombre, descripción){ + console.time(`Tiempo de Ejecución - Añadir tarea: ${nombre}`); + const task = {nombre, descripción}; + this.tasks.push(task); + console.log(`Tarea añadida: "${nombre}" - "${descripción}"`); + console.timeEnd(`Tiempo de Ejecución - Añadir tarea: ${nombre}`); + return + } + + // Borrar Tarea + removeTask(nombre){ + console.time(`Tiempo de Ejecución - Eliminar tarea: ${nombre}`); + const initialLength = this.tasks.length; + this.tasks = this.tasks.filter(task => task.nombre !== nombre); + if (this.tasks.length === initialLength) { + console.error(`No se encontró la tarea con el nombre "${nombre}"`); + } else { + console.log(`Tarea eliminada: ${nombre}`); + } + console.timeEnd(`Tiempo de Ejecución - Eliminar tarea: ${nombre}`); + } + + // Listar las Tareas + listTasks(){ + console.log('Listado de tareas:'); + console.table(this.tasks); + } +} + +// Ejemplo de las Tareas +const tasksManager = new TaskManager(); +tasksManager.addTask('Caminar', 'Caminar todos los días para bajar de peso'); +tasksManager.addTask('Leer un libro', 'Leer por 10 minutos un libro'); +tasksManager.addTask('Leer un libro', 'Leer por 10 minutos un libro'); +tasksManager.listTasks(); +tasksManager.removeTask('Caminar'); +tasksManager.listTasks(); /**-----DIFICULTAD EXTRA-----*/ \ No newline at end of file From d9989f022ffbb13413b1ee7cf5cbd82ab77d960e Mon Sep 17 00:00:00 2001 From: Amador Quispe Date: Sun, 23 Jun 2024 15:24:09 -0500 Subject: [PATCH 59/66] #25 - GO --- Roadmap/25 - LOGS/go/AmadorQuispe.go | 94 ++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 Roadmap/25 - LOGS/go/AmadorQuispe.go diff --git a/Roadmap/25 - LOGS/go/AmadorQuispe.go b/Roadmap/25 - LOGS/go/AmadorQuispe.go new file mode 100644 index 0000000000..48c96a24c7 --- /dev/null +++ b/Roadmap/25 - LOGS/go/AmadorQuispe.go @@ -0,0 +1,94 @@ +package main + +import ( + "bufio" + "fmt" + "log/slog" + "os" + "strconv" + "strings" + "time" +) + +func main() { + //logging 'slog' estándar de go (desde la versión 1.21) + slog.SetLogLoggerLevel(slog.LevelDebug) + slog.Debug("log debug") + slog.Info("log info") + slog.Warn("log warn") + slog.Error("log error") + taskManager() +} + +func taskManager() { + + logger := slog.Default() + tasks := make(map[string]string) + logger.Info("administrador de tareas iniciado.") + reader := bufio.NewReader(os.Stdin) + var option string + for option != "4" { + printMenu() + fmt.Print("Ingrese la opción :") + option, _ = reader.ReadString('\n') + option = strings.TrimSpace(option) + switch option { + case "1": + fmt.Println("Tareas registradas") + timeStart := time.Now() + if len(tasks) == 0 { + fmt.Println("No hay tareas registradas") + } + for k, v := range tasks { + fmt.Println(k, "-", v) + } + timeEnd := time.Now() + timeDuration := timeEnd.Compare(timeStart) + logger.Info("Tiempo de ejecución en listado " + strconv.Itoa(timeDuration) + "ms") + case "2": + fmt.Println("Agregar una tarea") + timeStart := time.Now() + fmt.Print("Ingrese nombre de la tarea:") + name, _ := reader.ReadString('\n') + name = strings.TrimSpace(name) + fmt.Print("Ingrese descripción de la tarea:") + description, _ := reader.ReadString('\n') + description = strings.TrimSpace(description) + tasks[name] = description + timeEnd := time.Now() + timeDuration := timeEnd.Compare(timeStart) + logger.Info("Tarea creada " + name + " Tiempo de ejecución " + strconv.Itoa(timeDuration) + "ms") + case "3": + fmt.Println("Eliminar una tarea") + timeStart := time.Now() + fmt.Print("Ingrese nombre de la tarea a eliminar:") + nameToDelete, _ := reader.ReadString('\n') + nameToDelete = strings.TrimSpace(nameToDelete) + if _, ok := tasks[nameToDelete]; ok { + delete(tasks, nameToDelete) + timeEnd := time.Now() + timeDuration := timeEnd.Compare(timeStart) + logger.Info("Tarea eliminada " + nameToDelete + " ,tiempo de ejecución " + strconv.Itoa(timeDuration) + "ms") + } else { + timeEnd := time.Now() + timeDuration := timeEnd.Compare(timeStart) + logger.Info("Tarea no registrada " + nameToDelete + " ,tiempo de ejecución " + strconv.Itoa(timeDuration) + "ms") + } + case "4": + logger.Info("saliendo del sistema, gracias por usar") + default: + logger.Warn("opción no valida") + } + } +} + +func printMenu() { + fmt.Println(strings.Repeat("-", 29)) + fmt.Println("|| ADMINISTRADOR DE TAREAS ||") + fmt.Println(strings.Repeat("-", 29)) + fmt.Println("Opciones disponibles") + fmt.Println("[1] Mostrar tareas") + fmt.Println("[2] Agregar una tarea") + fmt.Println("[3] Eliminar una tarea") + fmt.Println("[4] Salir") +} From 4324abd652f6c7a0cddb4e54aa35118c04900da5 Mon Sep 17 00:00:00 2001 From: mouredev Date: Mon, 24 Jun 2024 00:14:36 +0000 Subject: [PATCH 60/66] Update stats --- Roadmap/stats.json | 1718 ++++++++++++++++++++++---------------------- 1 file changed, 865 insertions(+), 853 deletions(-) diff --git a/Roadmap/stats.json b/Roadmap/stats.json index d39115372a..9908f98e7a 100644 --- a/Roadmap/stats.json +++ b/Roadmap/stats.json @@ -1,23 +1,23 @@ { "challenges_total": 26, "languages_total": 44, - "files_total": 5046, - "users_total": 895, + "files_total": 5078, + "users_total": 897, "challenges_ranking": [ { "order": 1, "name": "00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO", - "count": 998 + "count": 1001 }, { "order": 2, "name": "01 - OPERADORES Y ESTRUCTURAS DE CONTROL", - "count": 610 + "count": 613 }, { "order": 3, "name": "02 - FUNCIONES Y ALCANCE", - "count": 470 + "count": 473 }, { "order": 4, @@ -27,7 +27,7 @@ { "order": 5, "name": "04 - CADENAS DE CARACTERES", - "count": 267 + "count": 268 }, { "order": 6, @@ -37,7 +37,7 @@ { "order": 7, "name": "05 - VALOR Y REFERENCIA", - "count": 235 + "count": 236 }, { "order": 8, @@ -47,22 +47,22 @@ { "order": 9, "name": "08 - CLASES", - "count": 183 + "count": 184 }, { "order": 10, "name": "09 - HERENCIA", - "count": 180 + "count": 181 }, { "order": 11, "name": "10 - EXCEPCIONES", - "count": 146 + "count": 147 }, { "order": 12, "name": "11 - MANEJO DE FICHEROS", - "count": 120 + "count": 125 }, { "order": 13, @@ -71,18 +71,18 @@ }, { "order": 14, - "name": "16 - EXPRESIONES REGULARES", - "count": 100 + "name": "13 - PRUEBAS UNITARIAS", + "count": 101 }, { "order": 15, - "name": "13 - PRUEBAS UNITARIAS", - "count": 99 + "name": "16 - EXPRESIONES REGULARES", + "count": 100 }, { "order": 16, "name": "12 - JSON Y XML", - "count": 98 + "count": 100 }, { "order": 17, @@ -102,7 +102,7 @@ { "order": 20, "name": "19 - ENUMERACIONES", - "count": 81 + "count": 82 }, { "order": 21, @@ -112,101 +112,101 @@ { "order": 22, "name": "21 - CALLBACKS", - "count": 64 + "count": 65 }, { "order": 23, "name": "22 - FUNCIONES DE ORDEN SUPERIOR", - "count": 55 + "count": 56 }, { "order": 24, "name": "23 - SINGLETON", - "count": 49 + "count": 50 }, { "order": 25, "name": "24 - DECORADORES", - "count": 42 + "count": 43 }, { "order": 26, "name": "25 - LOGS", - "count": 22 + "count": 26 } ], "languages_ranking": [ { "order": 1, "name": "python", - "count": 2135, - "percentage": 42.31 + "count": 2149, + "percentage": 42.32 }, { "order": 2, "name": "javascript", - "count": 1001, - "percentage": 19.84 + "count": 1011, + "percentage": 19.91 }, { "order": 3, "name": "java", - "count": 428, - "percentage": 8.48 + "count": 431, + "percentage": 8.49 }, { "order": 4, "name": "typescript", - "count": 212, - "percentage": 4.2 + "count": 215, + "percentage": 4.23 }, { "order": 5, "name": "c#", "count": 204, - "percentage": 4.04 + "percentage": 4.02 }, { "order": 6, "name": "kotlin", "count": 151, - "percentage": 2.99 + "percentage": 2.97 }, { "order": 7, "name": "swift", "count": 147, - "percentage": 2.91 + "percentage": 2.89 }, { "order": 8, "name": "go", "count": 139, - "percentage": 2.75 + "percentage": 2.74 }, { "order": 9, "name": "php", "count": 116, - "percentage": 2.3 + "percentage": 2.28 }, { "order": 10, "name": "rust", - "count": 98, - "percentage": 1.94 + "count": 99, + "percentage": 1.95 }, { "order": 11, "name": "c++", "count": 94, - "percentage": 1.86 + "percentage": 1.85 }, { "order": 12, "name": "c", "count": 63, - "percentage": 1.25 + "percentage": 1.24 }, { "order": 13, @@ -224,19 +224,19 @@ "order": 15, "name": "vb.net", "count": 26, - "percentage": 0.52 + "percentage": 0.51 }, { "order": 16, "name": "ocaml", "count": 26, - "percentage": 0.52 + "percentage": 0.51 }, { "order": 17, "name": "ruby", "count": 18, - "percentage": 0.36 + "percentage": 0.35 }, { "order": 18, @@ -342,61 +342,61 @@ }, { "order": 35, - "name": "tcl", - "count": 1, - "percentage": 0.02 + "name": "raku", + "count": 2, + "percentage": 0.04 }, { "order": 36, - "name": "clojure", + "name": "tcl", "count": 1, "percentage": 0.02 }, { "order": 37, - "name": "objectivec", + "name": "clojure", "count": 1, "percentage": 0.02 }, { "order": 38, - "name": "haskell", + "name": "objectivec", "count": 1, "percentage": 0.02 }, { "order": 39, - "name": "harbour", + "name": "haskell", "count": 1, "percentage": 0.02 }, { "order": 40, - "name": "perl", + "name": "harbour", "count": 1, "percentage": 0.02 }, { "order": 41, - "name": "f#", + "name": "perl", "count": 1, "percentage": 0.02 }, { "order": 42, - "name": "al", + "name": "f#", "count": 1, "percentage": 0.02 }, { "order": 43, - "name": "abap", + "name": "al", "count": 1, "percentage": 0.02 }, { "order": 44, - "name": "raku", + "name": "abap", "count": 1, "percentage": 0.02 } @@ -411,20 +411,20 @@ { "order": 2, "name": "kenysdev", - "count": 103, + "count": 104, "languages": 4 }, { "order": 3, - "name": "hozlucas28", - "count": 75, - "languages": 3 + "name": "qwik-zgheib", + "count": 79, + "languages": 4 }, { "order": 4, - "name": "qwik-zgheib", - "count": 73, - "languages": 4 + "name": "hozlucas28", + "count": 75, + "languages": 3 }, { "order": 5, @@ -542,39 +542,39 @@ }, { "order": 24, - "name": "aldroide", - "count": 31, + "name": "jesusantonioeescamilla", + "count": 32, "languages": 3 }, { "order": 25, - "name": "chrisdev00", + "name": "aldroide", "count": 31, - "languages": 2 + "languages": 3 }, { "order": 26, - "name": "ronipg", - "count": 30, - "languages": 3 + "name": "amadorquispe", + "count": 31, + "languages": 2 }, { "order": 27, - "name": "jesusantonioeescamilla", - "count": 30, - "languages": 3 + "name": "chrisdev00", + "count": 31, + "languages": 2 }, { "order": 28, - "name": "marcode24", + "name": "ronipg", "count": 30, "languages": 3 }, { "order": 29, - "name": "amadorquispe", + "name": "marcode24", "count": 30, - "languages": 2 + "languages": 3 }, { "order": 30, @@ -632,133 +632,133 @@ }, { "order": 39, - "name": "mouredev", + "name": "bernatcs", "count": 25, "languages": 1 }, { "order": 40, + "name": "mouredev", + "count": 25, + "languages": 1 + }, + { + "order": 41, + "name": "alanshakir", + "count": 25, + "languages": 1 + }, + { + "order": 42, "name": "isaacus98", "count": 24, "languages": 3 }, { - "order": 41, + "order": 43, "name": "deyvid-10", "count": 24, "languages": 1 }, { - "order": 42, + "order": 44, "name": "caverobrandon", "count": 24, "languages": 1 }, { - "order": 43, - "name": "alanshakir", - "count": 24, - "languages": 1 + "order": 45, + "name": "edalmava", + "count": 23, + "languages": 10 }, { - "order": 44, + "order": 46, "name": "zetared92", "count": 23, "languages": 3 }, { - "order": 45, + "order": 47, "name": "thegera4", "count": 23, "languages": 2 }, { - "order": 46, + "order": 48, "name": "jamerrq", "count": 23, "languages": 1 }, { - "order": 47, + "order": 49, "name": "allbertomd", "count": 23, "languages": 1 }, { - "order": 48, + "order": 50, "name": "christian-jfr", "count": 23, "languages": 1 }, { - "order": 49, + "order": 51, "name": "avcenal", "count": 23, "languages": 1 }, { - "order": 50, + "order": 52, "name": "isilanes", "count": 23, "languages": 1 }, { - "order": 51, - "name": "edalmava", - "count": 22, - "languages": 10 - }, - { - "order": 52, + "order": 53, "name": "ycanas", "count": 22, "languages": 2 }, { - "order": 53, + "order": 54, "name": "emedevelopa", "count": 22, "languages": 1 }, { - "order": 54, + "order": 55, "name": "parababire", "count": 22, "languages": 1 }, { - "order": 55, + "order": 56, "name": "ggilperez", "count": 22, "languages": 1 }, { - "order": 56, + "order": 57, "name": "victor-casta", "count": 21, "languages": 3 }, { - "order": 57, + "order": 58, "name": "giovanyosorio", "count": 21, "languages": 2 }, - { - "order": 58, - "name": "igledev", - "count": 21, - "languages": 1 - }, { "order": 59, - "name": "davidmoralesdeveloper", + "name": "igledev", "count": 21, "languages": 1 }, { "order": 60, - "name": "bernatcs", + "name": "davidmoralesdeveloper", "count": 21, "languages": 1 }, @@ -830,163 +830,163 @@ }, { "order": 72, + "name": "any7dev", + "count": 18, + "languages": 2 + }, + { + "order": 73, "name": "mensius87", "count": 17, "languages": 4 }, { - "order": 73, + "order": 74, "name": "kevined11", "count": 17, "languages": 3 }, { - "order": 74, + "order": 75, "name": "raulfauli", "count": 17, "languages": 2 }, { - "order": 75, + "order": 76, "name": "emmanuelmmontesinos", "count": 17, "languages": 1 }, { - "order": 76, + "order": 77, "name": "rxvlc", "count": 16, "languages": 3 }, { - "order": 77, + "order": 78, "name": "sergiogi99", "count": 16, "languages": 2 }, { - "order": 78, + "order": 79, "name": "kontroldev", "count": 16, "languages": 1 }, { - "order": 79, + "order": 80, "name": "artickun", "count": 16, "languages": 1 }, { - "order": 80, + "order": 81, "name": "oniricoh", "count": 16, "languages": 1 }, { - "order": 81, + "order": 82, "name": "alvaro-neyra", "count": 15, "languages": 2 }, { - "order": 82, + "order": 83, + "name": "saicobys", + "count": 15, + "languages": 2 + }, + { + "order": 84, "name": "mariovelascodev", "count": 15, "languages": 2 }, { - "order": 83, + "order": 85, "name": "seandsun", "count": 15, "languages": 1 }, { - "order": 84, + "order": 86, "name": "oriaj3", "count": 15, "languages": 1 }, { - "order": 85, + "order": 87, "name": "hyromy", "count": 15, "languages": 1 }, { - "order": 86, + "order": 88, + "name": "gringoam", + "count": 15, + "languages": 1 + }, + { + "order": 89, "name": "sniker1223", "count": 14, "languages": 4 }, { - "order": 87, + "order": 90, "name": "kuroz00", "count": 14, "languages": 2 }, { - "order": 88, + "order": 91, "name": "chartypes", "count": 14, "languages": 2 }, { - "order": 89, - "name": "any7dev", - "count": 14, - "languages": 2 - }, - { - "order": 90, + "order": 92, "name": "gonzadev28", "count": 14, "languages": 2 }, { - "order": 91, + "order": 93, "name": "ygriegasb", "count": 14, "languages": 2 }, { - "order": 92, + "order": 94, "name": "andresgcastillo", "count": 14, "languages": 2 }, { - "order": 93, + "order": 95, "name": "vincentrodriguezr", "count": 14, "languages": 1 }, { - "order": 94, + "order": 96, "name": "paula2409", "count": 14, "languages": 1 }, { - "order": 95, - "name": "gringoam", - "count": 14, - "languages": 1 - }, - { - "order": 96, + "order": 97, "name": "diegoibb", "count": 13, "languages": 3 }, - { - "order": 97, - "name": "jesuses1312", - "count": 13, - "languages": 2 - }, { "order": 98, - "name": "saicobys", + "name": "jesuses1312", "count": 13, "languages": 2 }, @@ -1046,115 +1046,115 @@ }, { "order": 108, - "name": "pancratzia", + "name": "andrewcodev", "count": 12, "languages": 1 }, { "order": 109, - "name": "dataciriano", + "name": "pancratzia", "count": 12, "languages": 1 }, { "order": 110, - "name": "evilpotato04", + "name": "dataciriano", "count": 12, "languages": 1 }, { "order": 111, - "name": "sorubadguy", + "name": "evilpotato04", "count": 12, "languages": 1 }, { "order": 112, - "name": "javierjoyera", + "name": "sorubadguy", "count": 12, "languages": 1 }, { "order": 113, - "name": "clmiranda", + "name": "javierjoyera", "count": 12, "languages": 1 }, { "order": 114, - "name": "jafeito", + "name": "jptxaya", "count": 12, "languages": 1 }, { "order": 115, + "name": "clmiranda", + "count": 12, + "languages": 1 + }, + { + "order": 116, + "name": "jafeito", + "count": 12, + "languages": 1 + }, + { + "order": 117, "name": "jchavescaceres", "count": 11, "languages": 2 }, { - "order": 116, + "order": 118, "name": "switchdays", "count": 11, "languages": 2 }, { - "order": 117, + "order": 119, "name": "arkmiguel379", "count": 11, "languages": 2 }, { - "order": 118, + "order": 120, "name": "abelade", "count": 11, "languages": 1 }, { - "order": 119, + "order": 121, "name": "jeigar2", "count": 11, "languages": 1 }, { - "order": 120, - "name": "andrewcodev", - "count": 11, - "languages": 1 - }, - { - "order": 121, - "name": "gustavogomez19", - "count": 11, - "languages": 1 - }, - { - "order": 122, - "name": "charlerodriguez3", + "order": 122, + "name": "gustavogomez19", "count": 11, "languages": 1 }, { "order": 123, - "name": "evanz2608", + "name": "charlerodriguez3", "count": 11, "languages": 1 }, { "order": 124, - "name": "eugeniasoria", + "name": "evanz2608", "count": 11, "languages": 1 }, { "order": 125, - "name": "warclimb", + "name": "eugeniasoria", "count": 11, "languages": 1 }, { "order": 126, - "name": "jptxaya", + "name": "warclimb", "count": 11, "languages": 1 }, @@ -1268,93 +1268,93 @@ }, { "order": 145, - "name": "julianbuitragocharry-dev", - "count": 9, - "languages": 3 + "name": "trufoplus", + "count": 10, + "languages": 1 }, { "order": 146, - "name": "karys4", + "name": "julianbuitragocharry-dev", "count": 9, - "languages": 1 + "languages": 3 }, { "order": 147, - "name": "brockar", + "name": "djsurgeon", "count": 9, - "languages": 1 + "languages": 2 }, { "order": 148, - "name": "omarland", + "name": "karys4", "count": 9, "languages": 1 }, { "order": 149, - "name": "oleojake", + "name": "brockar", "count": 9, "languages": 1 }, { "order": 150, - "name": "yoezequiel", + "name": "omarland", "count": 9, "languages": 1 }, { "order": 151, - "name": "gjbecerrae", + "name": "oleojake", "count": 9, "languages": 1 }, { "order": 152, - "name": "troynebula", + "name": "yoezequiel", "count": 9, "languages": 1 }, { "order": 153, - "name": "jcdm60", + "name": "gjbecerrae", "count": 9, "languages": 1 }, { "order": 154, - "name": "marcose-ferretoe", + "name": "troynebula", "count": 9, "languages": 1 }, { "order": 155, - "name": "trufoplus", + "name": "jcdm60", "count": 9, "languages": 1 }, { "order": 156, - "name": "sperezsa", + "name": "marcose-ferretoe", "count": 9, "languages": 1 }, { "order": 157, - "name": "angel-delg", - "count": 8, - "languages": 4 + "name": "sperezsa", + "count": 9, + "languages": 1 }, { "order": 158, - "name": "pakiuh", + "name": "angel-delg", "count": 8, "languages": 4 }, { "order": 159, - "name": "djsurgeon", + "name": "pakiuh", "count": 8, - "languages": 2 + "languages": 4 }, { "order": 160, @@ -1772,301 +1772,301 @@ }, { "order": 229, - "name": "mirandayuber", + "name": "jorgeadamowicz", "count": 5, "languages": 1 }, { "order": 230, - "name": "augustdev2003", + "name": "mirandayuber", "count": 5, "languages": 1 }, { "order": 231, - "name": "thezhizn", + "name": "augustdev2003", "count": 5, "languages": 1 }, { "order": 232, - "name": "xemita007", + "name": "thezhizn", "count": 5, "languages": 1 }, { "order": 233, - "name": "yharyarias", + "name": "xemita007", "count": 5, "languages": 1 }, { "order": 234, - "name": "gmbarrios", + "name": "yharyarias", "count": 5, "languages": 1 }, { "order": 235, - "name": "mauricio-leyva", + "name": "gmbarrios", "count": 5, "languages": 1 }, { "order": 236, - "name": "boterop", + "name": "mauricio-leyva", "count": 5, "languages": 1 }, { "order": 237, - "name": "w00k", + "name": "boterop", "count": 5, "languages": 1 }, { "order": 238, - "name": "zarakilancelot", - "count": 4, - "languages": 3 + "name": "w00k", + "count": 5, + "languages": 1 }, { "order": 239, - "name": "fullovellas", + "name": "zarakilancelot", "count": 4, - "languages": 2 + "languages": 3 }, { "order": 240, - "name": "daeduol", + "name": "fullovellas", "count": 4, "languages": 2 }, { "order": 241, - "name": "mendozalz", + "name": "daeduol", "count": 4, "languages": 2 }, { "order": 242, - "name": "salkalero", + "name": "mendozalz", "count": 4, "languages": 2 }, { "order": 243, - "name": "k3nvd", + "name": "salkalero", "count": 4, "languages": 2 }, { "order": 244, - "name": "eonozux", + "name": "k3nvd", "count": 4, "languages": 2 }, { "order": 245, - "name": "willr30", + "name": "eonozux", "count": 4, "languages": 2 }, { "order": 246, - "name": "yablik", + "name": "willr30", "count": 4, "languages": 2 }, { "order": 247, - "name": "traver79", + "name": "yablik", "count": 4, - "languages": 1 + "languages": 2 }, { "order": 248, - "name": "danielbelenguer", + "name": "traver79", "count": 4, "languages": 1 }, { "order": 249, - "name": "jerrysantana", + "name": "danielbelenguer", "count": 4, "languages": 1 }, { "order": 250, - "name": "blasbarragan", + "name": "jerrysantana", "count": 4, "languages": 1 }, { "order": 251, - "name": "juanca2805", + "name": "blasbarragan", "count": 4, "languages": 1 }, { "order": 252, - "name": "bladi23", + "name": "juanca2805", "count": 4, "languages": 1 }, { "order": 253, - "name": "hugovrc", + "name": "bladi23", "count": 4, "languages": 1 }, { "order": 254, - "name": "mayerga", + "name": "hugovrc", "count": 4, "languages": 1 }, { "order": 255, - "name": "sbs24", + "name": "mayerga", "count": 4, "languages": 1 }, { "order": 256, - "name": "esaens12", + "name": "sbs24", "count": 4, "languages": 1 }, { "order": 257, - "name": "andeveling", + "name": "esaens12", "count": 4, "languages": 1 }, { "order": 258, - "name": "rauldoezon", + "name": "andeveling", "count": 4, "languages": 1 }, { "order": 259, - "name": "angelurrutdev", + "name": "rauldoezon", "count": 4, "languages": 1 }, { "order": 260, - "name": "elianisdev", + "name": "angelurrutdev", "count": 4, "languages": 1 }, { "order": 261, - "name": "juperdev", + "name": "elianisdev", "count": 4, "languages": 1 }, { "order": 262, - "name": "omegatroy", + "name": "juperdev", "count": 4, "languages": 1 }, { "order": 263, - "name": "dannymarperone", + "name": "omegatroy", "count": 4, "languages": 1 }, { "order": 264, - "name": "joshbaez", + "name": "dannymarperone", "count": 4, "languages": 1 }, { "order": 265, - "name": "robmxz", + "name": "joshbaez", "count": 4, "languages": 1 }, { "order": 266, - "name": "dieswae", + "name": "robmxz", "count": 4, "languages": 1 }, { "order": 267, - "name": "mallcca", + "name": "dieswae", "count": 4, "languages": 1 }, { "order": 268, - "name": "dlgai12", + "name": "mallcca", "count": 4, "languages": 1 }, { "order": 269, - "name": "dgrex", + "name": "dlgai12", "count": 4, "languages": 1 }, { "order": 270, - "name": "zerek247", + "name": "dgrex", "count": 4, "languages": 1 }, { "order": 271, - "name": "sarismejiasanchez", + "name": "zerek247", "count": 4, "languages": 1 }, { "order": 272, - "name": "zakkdrte", + "name": "sarismejiasanchez", "count": 4, "languages": 1 }, { "order": 273, - "name": "ramxv", + "name": "zakkdrte", "count": 4, "languages": 1 }, { "order": 274, - "name": "angell4s", + "name": "ramxv", "count": 4, "languages": 1 }, { "order": 275, - "name": "axelprz", + "name": "angell4s", "count": 4, "languages": 1 }, { "order": 276, - "name": "anvildestroyer", + "name": "axelprz", "count": 4, "languages": 1 }, { "order": 277, - "name": "buriticasara", + "name": "anvildestroyer", "count": 4, "languages": 1 }, { "order": 278, - "name": "jorgeadamowicz", + "name": "buriticasara", "count": 4, "languages": 1 }, @@ -2186,3588 +2186,3600 @@ }, { "order": 298, - "name": "diegopc-dev", + "name": "arliumdev", "count": 3, "languages": 2 }, { "order": 299, - "name": "eloitr", + "name": "diegopc-dev", "count": 3, "languages": 2 }, { "order": 300, - "name": "seba9906", + "name": "eloitr", "count": 3, "languages": 2 }, { "order": 301, - "name": "dimasb69", + "name": "seba9906", "count": 3, "languages": 2 }, { "order": 302, - "name": "n-skot", + "name": "dimasb69", "count": 3, "languages": 2 }, { "order": 303, - "name": "barbafebles", + "name": "n-skot", "count": 3, - "languages": 1 + "languages": 2 }, { "order": 304, - "name": "aggranadoss", + "name": "barbafebles", "count": 3, "languages": 1 }, { "order": 305, - "name": "heliercamejo", + "name": "aggranadoss", "count": 3, "languages": 1 }, { "order": 306, - "name": "crisvigas", + "name": "heliercamejo", "count": 3, "languages": 1 }, { "order": 307, - "name": "tomytsa", + "name": "crisvigas", "count": 3, "languages": 1 }, { "order": 308, - "name": "david-quinones", + "name": "tomytsa", "count": 3, "languages": 1 }, { "order": 309, - "name": "swifty0705", + "name": "david-quinones", "count": 3, "languages": 1 }, { "order": 310, - "name": "francofmv", + "name": "swifty0705", "count": 3, "languages": 1 }, { "order": 311, - "name": "freedainew", + "name": "francofmv", "count": 3, "languages": 1 }, { "order": 312, - "name": "volumidev", + "name": "freedainew", "count": 3, "languages": 1 }, { "order": 313, - "name": "oixild", + "name": "volumidev", "count": 3, "languages": 1 }, { "order": 314, - "name": "kingsaul22", + "name": "oixild", "count": 3, "languages": 1 }, { "order": 315, - "name": "kine-jdf", + "name": "kingsaul22", "count": 3, "languages": 1 }, { "order": 316, - "name": "xurxogz", + "name": "kine-jdf", "count": 3, "languages": 1 }, { "order": 317, - "name": "rocallejas", + "name": "xurxogz", "count": 3, "languages": 1 }, { "order": 318, - "name": "guido2288", + "name": "rocallejas", "count": 3, "languages": 1 }, { "order": 319, - "name": "githjuan", + "name": "guido2288", "count": 3, "languages": 1 }, { "order": 320, - "name": "jeyker-dev", + "name": "githjuan", "count": 3, "languages": 1 }, { "order": 321, - "name": "tebaah", + "name": "jeyker-dev", "count": 3, "languages": 1 }, { "order": 322, - "name": "matteozhao98", + "name": "tebaah", "count": 3, "languages": 1 }, { "order": 323, - "name": "atienzar", + "name": "matteozhao98", "count": 3, "languages": 1 }, { "order": 324, - "name": "javiearth", + "name": "atienzar", "count": 3, "languages": 1 }, { "order": 325, - "name": "coshiloco", + "name": "javiearth", "count": 3, "languages": 1 }, { "order": 326, - "name": "sitnestic", + "name": "coshiloco", "count": 3, "languages": 1 }, { "order": 327, - "name": "dannyvera1234", + "name": "sitnestic", "count": 3, "languages": 1 }, { "order": 328, - "name": "samuelarandia", + "name": "dannyvera1234", "count": 3, "languages": 1 }, { "order": 329, - "name": "jaimerocel96", + "name": "samuelarandia", "count": 3, "languages": 1 }, { "order": 330, - "name": "gitperalta", + "name": "jaimerocel96", "count": 3, "languages": 1 }, { "order": 331, - "name": "blfuentes", + "name": "gitperalta", "count": 3, "languages": 1 }, { "order": 332, - "name": "jelozanov", + "name": "blfuentes", "count": 3, "languages": 1 }, { "order": 333, - "name": "matrix-miguel", + "name": "jelozanov", "count": 3, "languages": 1 }, { "order": 334, - "name": "ahinar", + "name": "matrix-miguel", "count": 3, "languages": 1 }, { "order": 335, - "name": "gpinedaoviedo", + "name": "ahinar", "count": 3, "languages": 1 }, { "order": 336, - "name": "migueltfangche", + "name": "gpinedaoviedo", "count": 3, "languages": 1 }, { "order": 337, - "name": "agusbelp", + "name": "migueltfangche", "count": 3, "languages": 1 }, { "order": 338, - "name": "hatorob", + "name": "agusbelp", "count": 3, "languages": 1 }, { "order": 339, - "name": "marcoslombardo", + "name": "hatorob", "count": 3, "languages": 1 }, { "order": 340, - "name": "hectoriglesias", + "name": "marcoslombardo", "count": 3, "languages": 1 }, { "order": 341, - "name": "sebascmb", + "name": "hectoriglesias", "count": 3, "languages": 1 }, { "order": 342, - "name": "uyarra73", + "name": "sebascmb", "count": 3, "languages": 1 }, { "order": 343, - "name": "arbenisacosta", + "name": "uyarra73", "count": 3, "languages": 1 }, { "order": 344, - "name": "davidb313", + "name": "arbenisacosta", "count": 3, "languages": 1 }, { "order": 345, - "name": "douglasdiazr", + "name": "davidb313", "count": 3, "languages": 1 }, { "order": 346, - "name": "asaelz", + "name": "douglasdiazr", "count": 3, "languages": 1 }, { "order": 347, - "name": "fernandog25", + "name": "asaelz", "count": 3, "languages": 1 }, { "order": 348, - "name": "nathaliamf", + "name": "fernandog25", "count": 3, "languages": 1 }, { "order": 349, - "name": "jacarrillob", + "name": "nathaliamf", "count": 3, "languages": 1 }, { "order": 350, - "name": "r4kso", + "name": "jacarrillob", "count": 3, "languages": 1 }, { "order": 351, - "name": "dariorfm", + "name": "r4kso", "count": 3, "languages": 1 }, { "order": 352, - "name": "faga01", + "name": "dariorfm", "count": 3, "languages": 1 }, { "order": 353, - "name": "emaenriquez", + "name": "faga01", "count": 3, "languages": 1 }, { "order": 354, - "name": "carrenoalexander", + "name": "emaenriquez", "count": 3, "languages": 1 }, { "order": 355, - "name": "ramon-almeida", + "name": "carrenoalexander", "count": 3, "languages": 1 }, { "order": 356, - "name": "mizadlogcia", + "name": "ramon-almeida", "count": 3, "languages": 1 }, { "order": 357, - "name": "eliskopun", + "name": "mizadlogcia", "count": 3, "languages": 1 }, { "order": 358, - "name": "bertolini-victor", + "name": "eliskopun", "count": 3, "languages": 1 }, { "order": 359, - "name": "yeam-10", + "name": "bertolini-victor", "count": 3, "languages": 1 }, { "order": 360, - "name": "suescun845", + "name": "yeam-10", "count": 3, "languages": 1 }, { "order": 361, - "name": "jorgegarcia-dev", + "name": "suescun845", "count": 3, "languages": 1 }, { "order": 362, - "name": "elder202", + "name": "jorgegarcia-dev", "count": 3, "languages": 1 }, { "order": 363, - "name": "artdugarte", + "name": "elder202", "count": 3, "languages": 1 }, { "order": 364, - "name": "monikgbar", + "name": "artdugarte", "count": 3, "languages": 1 }, { "order": 365, - "name": "oscargeovannyrincon", + "name": "monikgbar", "count": 3, "languages": 1 }, { "order": 366, - "name": "danielperezrubio", + "name": "oscargeovannyrincon", "count": 3, "languages": 1 }, { "order": 367, - "name": "marcoh2325", + "name": "danielperezrubio", "count": 3, "languages": 1 }, { "order": 368, - "name": "exanderguitar", + "name": "marcoh2325", "count": 3, "languages": 1 }, { "order": 369, - "name": "minn09", + "name": "exanderguitar", "count": 3, "languages": 1 }, { "order": 370, - "name": "nomellamodante", + "name": "minn09", "count": 3, "languages": 1 }, { "order": 371, - "name": "jadraz", + "name": "nomellamodante", "count": 3, "languages": 1 }, { "order": 372, - "name": "mstaz4", + "name": "jadraz", "count": 3, "languages": 1 }, { "order": 373, - "name": "frostbitepy", + "name": "mstaz4", "count": 3, "languages": 1 }, { "order": 374, - "name": "cdbiancotti", + "name": "frostbitepy", "count": 3, "languages": 1 }, { "order": 375, - "name": "betzadev", + "name": "cdbiancotti", "count": 3, "languages": 1 }, { "order": 376, - "name": "tekatoki", + "name": "betzadev", "count": 3, "languages": 1 }, { "order": 377, - "name": "camilo-zuluaga", + "name": "tekatoki", "count": 3, "languages": 1 }, { "order": 378, - "name": "rgeditv1", + "name": "camilo-zuluaga", "count": 3, "languages": 1 }, { "order": 379, - "name": "dandrusco", + "name": "rgeditv1", "count": 3, "languages": 1 }, { "order": 380, - "name": "carlosalberto05", + "name": "dandrusco", "count": 3, "languages": 1 }, { "order": 381, - "name": "guillesese", + "name": "carlosalberto05", "count": 3, "languages": 1 }, { "order": 382, - "name": "javierfiestasbotella", + "name": "guillesese", "count": 3, "languages": 1 }, { "order": 383, - "name": "davstudy", + "name": "javierfiestasbotella", "count": 3, "languages": 1 }, { "order": 384, - "name": "elkin-dev", + "name": "davstudy", "count": 3, "languages": 1 }, { "order": 385, - "name": "zzepu", + "name": "elkin-dev", "count": 3, "languages": 1 }, { "order": 386, - "name": "oscarhub90", + "name": "zzepu", "count": 3, "languages": 1 }, { "order": 387, - "name": "beonzj", + "name": "oscarhub90", "count": 3, "languages": 1 }, { "order": 388, - "name": "14davidnkt", + "name": "beonzj", "count": 3, "languages": 1 }, { "order": 389, - "name": "vandresca", + "name": "14davidnkt", "count": 3, "languages": 1 }, { "order": 390, - "name": "marlonleon2023", + "name": "vandresca", "count": 3, "languages": 1 }, { "order": 391, - "name": "frangarmez21", + "name": "marlonleon2023", "count": 3, "languages": 1 }, { "order": 392, - "name": "dylanb55", + "name": "frangarmez21", "count": 3, "languages": 1 }, { "order": 393, - "name": "juxxon23", + "name": "dylanb55", "count": 3, "languages": 1 }, { "order": 394, - "name": "mellamoomar", + "name": "juxxon23", "count": 3, "languages": 1 }, { "order": 395, - "name": "ikeragi05", + "name": "mellamoomar", "count": 3, "languages": 1 }, { "order": 396, - "name": "dmauricio4", + "name": "ikeragi05", "count": 3, "languages": 1 }, { "order": 397, - "name": "oscar503sv", + "name": "dmauricio4", "count": 3, "languages": 1 }, { "order": 398, - "name": "ivanpelu7", + "name": "oscar503sv", "count": 3, "languages": 1 }, { "order": 399, - "name": "bytecodesky", + "name": "ivanpelu7", "count": 3, "languages": 1 }, { "order": 400, + "name": "bytecodesky", + "count": 3, + "languages": 1 + }, + { + "order": 401, "name": "devvdroid01", "count": 2, "languages": 2 }, { - "order": 401, + "order": 402, "name": "jhonatanmustiolacas", "count": 2, "languages": 2 }, { - "order": 402, + "order": 403, "name": "ismaelmatiz", "count": 2, "languages": 2 }, { - "order": 403, + "order": 404, "name": "sgb004", "count": 2, "languages": 2 }, { - "order": 404, + "order": 405, "name": "tecfer", "count": 2, "languages": 2 }, { - "order": 405, + "order": 406, "name": "lilberick", "count": 2, "languages": 2 }, { - "order": 406, + "order": 407, "name": "camiloforero1997", "count": 2, "languages": 2 }, { - "order": 407, + "order": 408, "name": "lydaf", "count": 2, "languages": 2 }, { - "order": 408, + "order": 409, "name": "carresoft", "count": 2, "languages": 2 }, { - "order": 409, + "order": 410, "name": "chuanmi", "count": 2, "languages": 2 }, { - "order": 410, + "order": 411, "name": "jmofuture", "count": 2, "languages": 2 }, { - "order": 411, + "order": 412, "name": "jlcareglio", "count": 2, "languages": 2 }, { - "order": 412, + "order": 413, "name": "jurgen-alfaro", "count": 2, "languages": 2 }, { - "order": 413, + "order": 414, "name": "felipedev303", "count": 2, "languages": 2 }, { - "order": 414, + "order": 415, "name": "berentolkien", "count": 2, "languages": 2 }, { - "order": 415, + "order": 416, "name": "raul-progr", "count": 2, "languages": 2 }, { - "order": 416, + "order": 417, "name": "jorgesilencio", "count": 2, "languages": 2 }, { - "order": 417, + "order": 418, "name": "lemito66", "count": 2, "languages": 2 }, { - "order": 418, + "order": 419, "name": "fsfigueroa77", "count": 2, "languages": 1 }, { - "order": 419, + "order": 420, "name": "fefestuve", "count": 2, "languages": 1 }, { - "order": 420, + "order": 421, "name": "luis-vb", "count": 2, "languages": 1 }, { - "order": 421, + "order": 422, "name": "juaruibr", "count": 2, "languages": 1 }, { - "order": 422, + "order": 423, "name": "crisdev3", "count": 2, "languages": 1 }, { - "order": 423, + "order": 424, "name": "saracorraless", "count": 2, "languages": 1 }, { - "order": 424, + "order": 425, "name": "gamitocu", "count": 2, "languages": 1 }, { - "order": 425, + "order": 426, "name": "porto1090", "count": 2, "languages": 1 }, { - "order": 426, + "order": 427, "name": "hersac", "count": 2, "languages": 1 }, { - "order": 427, + "order": 428, "name": "yowcloud", "count": 2, "languages": 1 }, { - "order": 428, + "order": 429, "name": "joseesmil04", "count": 2, "languages": 1 }, { - "order": 429, + "order": 430, "name": "adrs1166ma", "count": 2, "languages": 1 }, { - "order": 430, + "order": 431, "name": "isidrojng", "count": 2, "languages": 1 }, { - "order": 431, + "order": 432, "name": "peeanoot", "count": 2, "languages": 1 }, { - "order": 432, + "order": 433, "name": "alextc35", "count": 2, "languages": 1 }, { - "order": 433, + "order": 434, "name": "jcknot", "count": 2, "languages": 1 }, { - "order": 434, + "order": 435, "name": "arhl2023", "count": 2, "languages": 1 }, { - "order": 435, + "order": 436, "name": "natalinacn", "count": 2, "languages": 1 }, { - "order": 436, + "order": 437, "name": "lorenamesa", "count": 2, "languages": 1 }, { - "order": 437, + "order": 438, "name": "jago86", "count": 2, "languages": 1 }, { - "order": 438, + "order": 439, "name": "johannhsdev", "count": 2, "languages": 1 }, { - "order": 439, + "order": 440, "name": "nicolastapiasanz", "count": 2, "languages": 1 }, { - "order": 440, + "order": 441, "name": "freddyasierraj", "count": 2, "languages": 1 }, { - "order": 441, + "order": 442, "name": "gomezcamilo9701", "count": 2, "languages": 1 }, { - "order": 442, + "order": 443, "name": "vicgallego", "count": 2, "languages": 1 }, { - "order": 443, + "order": 444, "name": "peibolstrike", "count": 2, "languages": 1 }, { - "order": 444, + "order": 445, "name": "cristiansystem", "count": 2, "languages": 1 }, { - "order": 445, + "order": 446, "name": "dararod", "count": 2, "languages": 1 }, { - "order": 446, + "order": 447, "name": "waldid32", "count": 2, "languages": 1 }, { - "order": 447, + "order": 448, "name": "roilhi", "count": 2, "languages": 1 }, { - "order": 448, + "order": 449, "name": "diegokarabin", "count": 2, "languages": 1 }, { - "order": 449, + "order": 450, "name": "reanthonyh", "count": 2, "languages": 1 }, { - "order": 450, + "order": 451, "name": "valeriatorrealba", "count": 2, "languages": 1 }, { - "order": 451, + "order": 452, "name": "nxl22", "count": 2, "languages": 1 }, { - "order": 452, + "order": 453, "name": "ovjohn", "count": 2, "languages": 1 }, { - "order": 453, + "order": 454, "name": "aleoe01", "count": 2, "languages": 1 }, { - "order": 454, + "order": 455, "name": "soldochris", "count": 2, "languages": 1 }, { - "order": 455, + "order": 456, "name": "murquisdev", "count": 2, "languages": 1 }, { - "order": 456, + "order": 457, "name": "wesborland-github", "count": 2, "languages": 1 }, { - "order": 457, + "order": 458, "name": "farthaz", "count": 2, "languages": 1 }, { - "order": 458, + "order": 459, "name": "tomasmarquez81", "count": 2, "languages": 1 }, { - "order": 459, + "order": 460, "name": "cesarocbu", "count": 2, "languages": 1 }, { - "order": 460, + "order": 461, "name": "glaboryp", "count": 2, "languages": 1 }, { - "order": 461, + "order": 462, "name": "doblea74", "count": 2, "languages": 1 }, { - "order": 462, + "order": 463, "name": "misterdan100", "count": 2, "languages": 1 }, { - "order": 463, + "order": 464, "name": "rikar2o", "count": 2, "languages": 1 }, { - "order": 464, + "order": 465, "name": "angelvelasco1", "count": 2, "languages": 1 }, { - "order": 465, + "order": 466, "name": "jhonf1992", "count": 2, "languages": 1 }, { - "order": 466, + "order": 467, "name": "jaimemunozdev", "count": 2, "languages": 1 }, { - "order": 467, + "order": 468, "name": "jeisonredondo", "count": 2, "languages": 1 }, { - "order": 468, + "order": 469, "name": "leonardo291024", "count": 2, "languages": 1 }, { - "order": 469, - "name": "arliumdev", + "order": 470, + "name": "miguelrejon96", "count": 2, "languages": 1 }, { - "order": 470, + "order": 471, "name": "matiasfarfan89", "count": 2, "languages": 1 }, { - "order": 471, + "order": 472, "name": "haryblanco20", "count": 2, "languages": 1 }, { - "order": 472, + "order": 473, "name": "memogv", "count": 2, "languages": 1 }, { - "order": 473, + "order": 474, "name": "akzorla", "count": 2, "languages": 1 }, { - "order": 474, + "order": 475, "name": "cpcarlosprieto", "count": 2, "languages": 1 }, { - "order": 475, + "order": 476, "name": "rolo27s", "count": 2, "languages": 1 }, { - "order": 476, + "order": 477, "name": "lmedina96", "count": 2, "languages": 1 }, { - "order": 477, + "order": 478, "name": "carlosmarte23", "count": 2, "languages": 1 }, { - "order": 478, + "order": 479, "name": "santiagodc8", "count": 2, "languages": 1 }, { - "order": 479, + "order": 480, "name": "adogdev", "count": 2, "languages": 1 }, { - "order": 480, + "order": 481, "name": "gmigues", "count": 2, "languages": 1 }, { - "order": 481, + "order": 482, "name": "alejandro-mantilla", "count": 2, "languages": 1 }, { - "order": 482, + "order": 483, "name": "pedrojog", "count": 2, "languages": 1 }, { - "order": 483, + "order": 484, "name": "dans182", "count": 2, "languages": 1 }, { - "order": 484, + "order": 485, "name": "aegpgrafologo", "count": 2, "languages": 1 }, { - "order": 485, + "order": 486, "name": "kcx46", "count": 2, "languages": 1 }, { - "order": 486, + "order": 487, "name": "ziellucio01", "count": 2, "languages": 1 }, { - "order": 487, + "order": 488, "name": "e-techgod", "count": 2, "languages": 1 }, { - "order": 488, + "order": 489, "name": "alejandrovelasquezr", "count": 2, "languages": 1 }, { - "order": 489, + "order": 490, "name": "eriickm", "count": 2, "languages": 1 }, { - "order": 490, + "order": 491, "name": "s384", "count": 2, "languages": 1 }, { - "order": 491, + "order": 492, "name": "jsacristanbeltri", "count": 2, "languages": 1 }, { - "order": 492, + "order": 493, "name": "vesubius", "count": 2, "languages": 1 }, { - "order": 493, + "order": 494, "name": "gregfc95", "count": 2, "languages": 1 }, { - "order": 494, + "order": 495, "name": "cipollalucas", "count": 2, "languages": 1 }, { - "order": 495, + "order": 496, "name": "franz-arzapalo", "count": 2, "languages": 1 }, { - "order": 496, + "order": 497, "name": "baauus", "count": 2, "languages": 1 }, { - "order": 497, + "order": 498, "name": "dariangl", "count": 2, "languages": 1 }, { - "order": 498, + "order": 499, "name": "anblackter", "count": 2, "languages": 1 }, { - "order": 499, + "order": 500, "name": "julind0", "count": 2, "languages": 1 }, { - "order": 500, + "order": 501, "name": "christiancoc", "count": 2, "languages": 1 }, { - "order": 501, + "order": 502, "name": "tic4", "count": 2, "languages": 1 }, { - "order": 502, + "order": 503, "name": "victore16", "count": 2, "languages": 1 }, { - "order": 503, + "order": 504, "name": "inf015", "count": 2, "languages": 1 }, { - "order": 504, + "order": 505, "name": "nevaito", "count": 2, "languages": 1 }, { - "order": 505, + "order": 506, "name": "csaraugusto2", "count": 2, "languages": 1 }, { - "order": 506, + "order": 507, "name": "pakomor", "count": 2, "languages": 1 }, { - "order": 507, + "order": 508, "name": "aboredllama", "count": 2, "languages": 1 }, { - "order": 508, + "order": 509, "name": "freyfonseca", "count": 2, "languages": 1 }, { - "order": 509, + "order": 510, "name": "dokeys28", "count": 2, "languages": 1 }, { - "order": 510, + "order": 511, "name": "soydaviddev", "count": 2, "languages": 1 }, { - "order": 511, + "order": 512, "name": "lauradiazm29", "count": 2, "languages": 1 }, { - "order": 512, + "order": 513, "name": "fernandoatello", "count": 2, "languages": 1 }, { - "order": 513, + "order": 514, "name": "miguelberrio0810", "count": 2, "languages": 1 }, { - "order": 514, + "order": 515, "name": "dota43ver", "count": 2, "languages": 1 }, { - "order": 515, + "order": 516, "name": "zalazarmartin", "count": 2, "languages": 1 }, { - "order": 516, + "order": 517, "name": "nandaalf", "count": 2, "languages": 1 }, { - "order": 517, + "order": 518, "name": "lordzzz777", "count": 2, "languages": 1 }, { - "order": 518, + "order": 519, "name": "rrcoder", "count": 2, "languages": 1 }, { - "order": 519, + "order": 520, "name": "cyberdidac", "count": 2, "languages": 1 }, { - "order": 520, + "order": 521, "name": "vecinacoo", "count": 2, "languages": 1 }, { - "order": 521, + "order": 522, "name": "ssanjua", "count": 2, "languages": 1 }, { - "order": 522, + "order": 523, "name": "zonnen69", "count": 2, "languages": 1 }, { - "order": 523, + "order": 524, "name": "sdm29gh", "count": 2, "languages": 1 }, { - "order": 524, + "order": 525, "name": "hawkbott", "count": 2, "languages": 1 }, { - "order": 525, + "order": 526, "name": "tiaguiito3", "count": 2, "languages": 1 }, { - "order": 526, + "order": 527, "name": "elmarqueli", "count": 2, "languages": 1 }, { - "order": 527, + "order": 528, "name": "poetry0354", "count": 2, "languages": 1 }, { - "order": 528, + "order": 529, "name": "reaien", "count": 2, "languages": 1 }, { - "order": 529, + "order": 530, "name": "rikar20", "count": 2, "languages": 1 }, { - "order": 530, + "order": 531, "name": "alejomazov", "count": 2, "languages": 1 }, { - "order": 531, + "order": 532, "name": "raulallue", "count": 2, "languages": 1 }, { - "order": 532, + "order": 533, "name": "aserranot", "count": 2, "languages": 1 }, { - "order": 533, + "order": 534, "name": "luciarf", "count": 2, "languages": 1 }, { - "order": 534, + "order": 535, "name": "frannmv", "count": 2, "languages": 1 }, { - "order": 535, + "order": 536, "name": "jmichael39", "count": 2, "languages": 1 }, { - "order": 536, + "order": 537, "name": "orzefox", "count": 1, "languages": 1 }, { - "order": 537, + "order": 538, "name": "acirdeveloper", "count": 1, "languages": 1 }, { - "order": 538, + "order": 539, "name": "albertovf", "count": 1, "languages": 1 }, { - "order": 539, + "order": 540, "name": "sergiopq", "count": 1, "languages": 1 }, { - "order": 540, + "order": 541, "name": "nicoloboo02", "count": 1, "languages": 1 }, { - "order": 541, + "order": 542, "name": "angeloro", "count": 1, "languages": 1 }, { - "order": 542, + "order": 543, "name": "jony-english22", "count": 1, "languages": 1 }, { - "order": 543, + "order": 544, "name": "righelch", "count": 1, "languages": 1 }, { - "order": 544, + "order": 545, "name": "deathbat00", "count": 1, "languages": 1 }, { - "order": 545, + "order": 546, "name": "sve-nnn", "count": 1, "languages": 1 }, { - "order": 546, + "order": 547, "name": "edgarmedranoa", "count": 1, "languages": 1 }, { - "order": 547, + "order": 548, "name": "emiliordev", "count": 1, "languages": 1 }, { - "order": 548, + "order": 549, "name": "wijimenezz", "count": 1, "languages": 1 }, { - "order": 549, + "order": 550, "name": "vickalc", "count": 1, "languages": 1 }, { - "order": 550, + "order": 551, "name": "rusian69", "count": 1, "languages": 1 }, { - "order": 551, + "order": 552, "name": "rafapg93", "count": 1, "languages": 1 }, { - "order": 552, + "order": 553, "name": "juanchernandezdev", "count": 1, "languages": 1 }, { - "order": 553, + "order": 554, "name": "riukac", "count": 1, "languages": 1 }, { - "order": 554, + "order": 555, "name": "ouendinga", "count": 1, "languages": 1 }, { - "order": 555, + "order": 556, "name": "franespina", "count": 1, "languages": 1 }, { - "order": 556, + "order": 557, "name": "davidbastosg", "count": 1, "languages": 1 }, { - "order": 557, + "order": 558, "name": "torvicv", "count": 1, "languages": 1 }, { - "order": 558, + "order": 559, "name": "dgquintero", "count": 1, "languages": 1 }, { - "order": 559, + "order": 560, "name": "juampaweb", "count": 1, "languages": 1 }, { - "order": 560, + "order": 561, "name": "girngoma", "count": 1, "languages": 1 }, { - "order": 561, + "order": 562, "name": "javosss", "count": 1, "languages": 1 }, { - "order": 562, + "order": 563, "name": "derobpe", "count": 1, "languages": 1 }, { - "order": 563, + "order": 564, "name": "alinares94", "count": 1, "languages": 1 }, { - "order": 564, + "order": 565, "name": "jferchotorres", "count": 1, "languages": 1 }, { - "order": 565, + "order": 566, "name": "lordzzz", "count": 1, "languages": 1 }, { - "order": 566, + "order": 567, "name": "713avo", "count": 1, "languages": 1 }, { - "order": 567, + "order": 568, "name": "micendev", "count": 1, "languages": 1 }, { - "order": 568, + "order": 569, "name": "cuervo23alpha", "count": 1, "languages": 1 }, { - "order": 569, + "order": 570, "name": "h4cker54n", "count": 1, "languages": 1 }, { - "order": 570, + "order": 571, "name": "ingjavierpinilla", "count": 1, "languages": 1 }, { - "order": 571, + "order": 572, "name": "angel-agis", "count": 1, "languages": 1 }, { - "order": 572, + "order": 573, "name": "joancharles07", "count": 1, "languages": 1 }, { - "order": 573, + "order": 574, "name": "batmarc91", "count": 1, "languages": 1 }, { - "order": 574, + "order": 575, "name": "mauricioobgo", "count": 1, "languages": 1 }, { - "order": 575, + "order": 576, "name": "emersonxinay", "count": 1, "languages": 1 }, { - "order": 576, + "order": 577, "name": "carlosmares", "count": 1, "languages": 1 }, { - "order": 577, + "order": 578, "name": "cub-tor", "count": 1, "languages": 1 }, { - "order": 578, + "order": 579, "name": "nightmare79", "count": 1, "languages": 1 }, { - "order": 579, + "order": 580, "name": "vikernes27666", "count": 1, "languages": 1 }, { - "order": 580, + "order": 581, "name": "josephinoo", "count": 1, "languages": 1 }, { - "order": 581, + "order": 582, "name": "anitandil", "count": 1, "languages": 1 }, { - "order": 582, + "order": 583, "name": "francomyburg", "count": 1, "languages": 1 }, { - "order": 583, + "order": 584, "name": "evilpodato04", "count": 1, "languages": 1 }, { - "order": 584, + "order": 585, "name": "miguel2rar", "count": 1, "languages": 1 }, { - "order": 585, + "order": 586, "name": "agustinfccll", "count": 1, "languages": 1 }, { - "order": 586, + "order": 587, "name": "neicervb", "count": 1, "languages": 1 }, { - "order": 587, + "order": 588, "name": "gabriel-dangelo", "count": 1, "languages": 1 }, { - "order": 588, + "order": 589, "name": "miquelrr", "count": 1, "languages": 1 }, { - "order": 589, + "order": 590, "name": "juancamilofvx", "count": 1, "languages": 1 }, { - "order": 590, + "order": 591, "name": "c-blskv", "count": 1, "languages": 1 }, { - "order": 591, + "order": 592, "name": "emaerniquez", "count": 1, "languages": 1 }, { - "order": 592, + "order": 593, "name": "leonardo-henao", "count": 1, "languages": 1 }, { - "order": 593, + "order": 594, "name": "bryanalzate007", "count": 1, "languages": 1 }, { - "order": 594, + "order": 595, "name": "willypaz243", "count": 1, "languages": 1 }, { - "order": 595, + "order": 596, "name": "luism95", "count": 1, "languages": 1 }, { - "order": 596, + "order": 597, "name": "santyjl44", "count": 1, "languages": 1 }, { - "order": 597, + "order": 598, "name": "qwik-zghieb", "count": 1, "languages": 1 }, { - "order": 598, + "order": 599, "name": "gonzalinuz18", "count": 1, "languages": 1 }, { - "order": 599, + "order": 600, "name": "omarroman29", "count": 1, "languages": 1 }, { - "order": 600, + "order": 601, "name": "theposi", "count": 1, "languages": 1 }, { - "order": 601, + "order": 602, "name": "vinyoles", "count": 1, "languages": 1 }, { - "order": 602, + "order": 603, "name": "sergio-strazzacappa", "count": 1, "languages": 1 }, { - "order": 603, + "order": 604, "name": "arathhh8", "count": 1, "languages": 1 }, { - "order": 604, + "order": 605, "name": "paluzz", "count": 1, "languages": 1 }, { - "order": 605, + "order": 606, "name": "daniel-cas", "count": 1, "languages": 1 }, { - "order": 606, + "order": 607, "name": "luisalberto22", "count": 1, "languages": 1 }, { - "order": 607, + "order": 608, "name": "mbmaeso", "count": 1, "languages": 1 }, { - "order": 608, + "order": 609, "name": "deiiviitdev", "count": 1, "languages": 1 }, { - "order": 609, + "order": 610, "name": "borjadelgadodev", "count": 1, "languages": 1 }, { - "order": 610, + "order": 611, "name": "jaennova", "count": 1, "languages": 1 }, { - "order": 611, + "order": 612, "name": "francisleble", "count": 1, "languages": 1 }, { - "order": 612, + "order": 613, "name": "jhordanluyo", "count": 1, "languages": 1 }, { - "order": 613, + "order": 614, "name": "acirdevelper", "count": 1, "languages": 1 }, { - "order": 614, + "order": 615, "name": "davidcv-dev", "count": 1, "languages": 1 }, { - "order": 615, + "order": 616, "name": "alvarominarro", "count": 1, "languages": 1 }, { - "order": 616, + "order": 617, "name": "frealexandro", "count": 1, "languages": 1 }, { - "order": 617, + "order": 618, "name": "braiso-22", "count": 1, "languages": 1 }, { - "order": 618, + "order": 619, "name": "armm77", "count": 1, "languages": 1 }, { - "order": 619, + "order": 620, "name": "kevin05m", "count": 1, "languages": 1 }, { - "order": 620, + "order": 621, "name": "fede6299", "count": 1, "languages": 1 }, { - "order": 621, + "order": 622, "name": "pablo-lnx", "count": 1, "languages": 1 }, { - "order": 622, + "order": 623, "name": "darkohokage", "count": 1, "languages": 1 }, { - "order": 623, + "order": 624, "name": "diegomm27", "count": 1, "languages": 1 }, { - "order": 624, + "order": 625, "name": "cristian-encalada", "count": 1, "languages": 1 }, { - "order": 625, + "order": 626, "name": "alefine", "count": 1, "languages": 1 }, { - "order": 626, + "order": 627, "name": "zyn7e", "count": 1, "languages": 1 }, { - "order": 627, + "order": 628, "name": "antoniojzp86", "count": 1, "languages": 1 }, { - "order": 628, + "order": 629, "name": "dovinhoyos", "count": 1, "languages": 1 }, { - "order": 629, + "order": 630, "name": "rumacar05", "count": 1, "languages": 1 }, { - "order": 630, + "order": 631, "name": "gianellannie", "count": 1, "languages": 1 }, { - "order": 631, + "order": 632, "name": "deathbato", "count": 1, "languages": 1 }, { - "order": 632, + "order": 633, "name": "cristobalbelcor", "count": 1, "languages": 1 }, { - "order": 633, + "order": 634, "name": "kgrc05", "count": 1, "languages": 1 }, { - "order": 634, + "order": 635, "name": "cristianmr87", "count": 1, "languages": 1 }, { - "order": 635, + "order": 636, "name": "lizandev", "count": 1, "languages": 1 }, { - "order": 636, + "order": 637, "name": "det3992", "count": 1, "languages": 1 }, { - "order": 637, + "order": 638, "name": "lewisoneil", "count": 1, "languages": 1 }, { - "order": 638, + "order": 639, "name": "santiagopereiraviroga", "count": 1, "languages": 1 }, { - "order": 639, + "order": 640, "name": "v1k770r", "count": 1, "languages": 1 }, { - "order": 640, + "order": 641, "name": "durwian", "count": 1, "languages": 1 }, { - "order": 641, + "order": 642, "name": "adriangonzalezroble", "count": 1, "languages": 1 }, { - "order": 642, + "order": 643, "name": "mathiur", "count": 1, "languages": 1 }, { - "order": 643, + "order": 644, "name": "bycris13", "count": 1, "languages": 1 }, { - "order": 644, + "order": 645, "name": "algeloro", "count": 1, "languages": 1 }, { - "order": 645, + "order": 646, "name": "chalaito88", "count": 1, "languages": 1 }, { - "order": 646, + "order": 647, "name": "javiir", "count": 1, "languages": 1 }, { - "order": 647, + "order": 648, "name": "chrystiancalderon", "count": 1, "languages": 1 }, { - "order": 648, + "order": 649, "name": "pguillo", "count": 1, "languages": 1 }, { - "order": 649, + "order": 650, "name": "serg_pq", "count": 1, "languages": 1 }, { - "order": 650, + "order": 651, "name": "diegopardomontero", "count": 1, "languages": 1 }, { - "order": 651, + "order": 652, "name": "ivanserran", "count": 1, "languages": 1 }, { - "order": 652, + "order": 653, "name": "fredylopez01", "count": 1, "languages": 1 }, { - "order": 653, + "order": 654, "name": "angeldevsarrollo", "count": 1, "languages": 1 }, { - "order": 654, + "order": 655, "name": "sanuka78", "count": 1, "languages": 1 }, { - "order": 655, + "order": 656, "name": "adriansaint07", "count": 1, "languages": 1 }, { - "order": 656, + "order": 657, "name": "jony_english22", "count": 1, "languages": 1 }, { - "order": 657, + "order": 658, "name": "alvaropg15", "count": 1, "languages": 1 }, { - "order": 658, + "order": 659, "name": "frankmon03", "count": 1, "languages": 1 }, { - "order": 659, + "order": 660, "name": "xhaloidx", "count": 1, "languages": 1 }, { - "order": 660, + "order": 661, "name": "reneguzman7", "count": 1, "languages": 1 }, { - "order": 661, + "order": 662, "name": "jaquelinetorres", "count": 1, "languages": 1 }, { - "order": 662, + "order": 663, "name": "alexeigio", "count": 1, "languages": 1 }, { - "order": 663, + "order": 664, "name": "albert-29", "count": 1, "languages": 1 }, { - "order": 664, + "order": 665, "name": "iguerrerov", "count": 1, "languages": 1 }, { - "order": 665, + "order": 666, "name": "pvigo10", "count": 1, "languages": 1 }, { - "order": 666, + "order": 667, "name": "jrgim", "count": 1, "languages": 1 }, { - "order": 667, + "order": 668, "name": "marcosjarrin", "count": 1, "languages": 1 }, { - "order": 668, + "order": 669, "name": "jhonnfl", "count": 1, "languages": 1 }, { - "order": 669, + "order": 670, "name": "trollface77", "count": 1, "languages": 1 }, { - "order": 670, + "order": 671, "name": "brunom-93", "count": 1, "languages": 1 }, { - "order": 671, + "order": 672, "name": "alejandroruiz23", "count": 1, "languages": 1 }, { - "order": 672, + "order": 673, "name": "jaimesoftdev", "count": 1, "languages": 1 }, { - "order": 673, + "order": 674, "name": "edm1ya", "count": 1, "languages": 1 }, { - "order": 674, + "order": 675, "name": "jarzatedev", "count": 1, "languages": 1 }, { - "order": 675, + "order": 676, "name": "sandrarg85", "count": 1, "languages": 1 }, { - "order": 676, + "order": 677, "name": "rootqui", "count": 1, "languages": 1 }, { - "order": 677, + "order": 678, "name": "astriebeck", "count": 1, "languages": 1 }, { - "order": 678, + "order": 679, "name": "marqitos", "count": 1, "languages": 1 }, { - "order": 679, + "order": 680, "name": "lobogeekmx", "count": 1, "languages": 1 }, { - "order": 680, + "order": 681, "name": "marvinagui", "count": 1, "languages": 1 }, { - "order": 681, + "order": 682, "name": "jatomas", "count": 1, "languages": 1 }, { - "order": 682, + "order": 683, "name": "nunezlagos", "count": 1, "languages": 1 }, { - "order": 683, + "order": 684, "name": "ledyam", "count": 1, "languages": 1 }, { - "order": 684, + "order": 685, "name": "miguelgargallo", "count": 1, "languages": 1 }, { - "order": 685, + "order": 686, "name": "ishimaku", "count": 1, "languages": 1 }, { - "order": 686, + "order": 687, "name": "afacorroloscos", "count": 1, "languages": 1 }, { - "order": 687, + "order": 688, "name": "chrisfelixgil", "count": 1, "languages": 1 }, { - "order": 688, + "order": 689, "name": "franpua", "count": 1, "languages": 1 }, { - "order": 689, + "order": 690, "name": "sirvega83", "count": 1, "languages": 1 }, { - "order": 690, + "order": 691, "name": "corvo-99", "count": 1, "languages": 1 }, { - "order": 691, + "order": 692, "name": "franciscokarriere", "count": 1, "languages": 1 }, { - "order": 692, + "order": 693, "name": "pipeyz21", "count": 1, "languages": 1 }, { - "order": 693, + "order": 694, "name": "luisgarm", "count": 1, "languages": 1 }, { - "order": 694, + "order": 695, "name": "vorosdev", "count": 1, "languages": 1 }, { - "order": 695, + "order": 696, "name": "santiagomac", "count": 1, "languages": 1 }, { - "order": 696, + "order": 697, "name": "ca2puntosv", "count": 1, "languages": 1 }, { - "order": 697, + "order": 698, "name": "cibacoa", "count": 1, "languages": 1 }, { - "order": 698, + "order": 699, "name": "gizelads", "count": 1, "languages": 1 }, { - "order": 699, + "order": 700, "name": "axelwestman", "count": 1, "languages": 1 }, { - "order": 700, + "order": 701, "name": "coletonosh", "count": 1, "languages": 1 }, { - "order": 701, + "order": 702, "name": "manuhssj", "count": 1, "languages": 1 }, { - "order": 702, + "order": 703, "name": "manugonzalito", "count": 1, "languages": 1 }, { - "order": 703, + "order": 704, "name": "seigigim", "count": 1, "languages": 1 }, { - "order": 704, + "order": 705, "name": "marcosapodaca", "count": 1, "languages": 1 }, { - "order": 705, + "order": 706, "name": "serg032", "count": 1, "languages": 1 }, { - "order": 706, + "order": 707, "name": "is2095", "count": 1, "languages": 1 }, { - "order": 707, + "order": 708, "name": "lucc4sz", "count": 1, "languages": 1 }, { - "order": 708, + "order": 709, "name": "mauricioyair", "count": 1, "languages": 1 }, { - "order": 709, + "order": 710, "name": "jancalos", "count": 1, "languages": 1 }, { - "order": 710, + "order": 711, "name": "palons29", "count": 1, "languages": 1 }, { - "order": 711, + "order": 712, "name": "deimoshall", "count": 1, "languages": 1 }, { - "order": 712, + "order": 713, "name": "mickysoft", "count": 1, "languages": 1 }, { - "order": 713, + "order": 714, "name": "serg-pq", "count": 1, "languages": 1 }, { - "order": 714, + "order": 715, "name": "lara-vel-dev", "count": 1, "languages": 1 }, { - "order": 715, + "order": 716, "name": "alexisbarradev", "count": 1, "languages": 1 }, { - "order": 716, + "order": 717, "name": "tartabullroberto", "count": 1, "languages": 1 }, { - "order": 717, + "order": 718, "name": "kelvincb", "count": 1, "languages": 1 }, { - "order": 718, + "order": 719, "name": "augustosdev", "count": 1, "languages": 1 }, { - "order": 719, + "order": 720, "name": "van-02", "count": 1, "languages": 1 }, { - "order": 720, + "order": 721, "name": "x3mboy", "count": 1, "languages": 1 }, { - "order": 721, + "order": 722, "name": "jandresalvar", "count": 1, "languages": 1 }, { - "order": 722, + "order": 723, "name": "angelcruzg23", "count": 1, "languages": 1 }, { - "order": 723, + "order": 724, "name": "kevinramirez28", "count": 1, "languages": 1 }, { - "order": 724, + "order": 725, "name": "alemar16", "count": 1, "languages": 1 }, { - "order": 725, + "order": 726, "name": "joseperesini", "count": 1, "languages": 1 }, { - "order": 726, + "order": 727, "name": "denisortega", "count": 1, "languages": 1 }, { - "order": 727, + "order": 728, "name": "flarien", "count": 1, "languages": 1 }, { - "order": 728, + "order": 729, "name": "jpiacaruso", "count": 1, "languages": 1 }, { - "order": 729, + "order": 730, "name": "kronomio", "count": 1, "languages": 1 }, { - "order": 730, + "order": 731, "name": "abengl", "count": 1, "languages": 1 }, { - "order": 731, + "order": 732, "name": "edgonzz", "count": 1, "languages": 1 }, { - "order": 732, + "order": 733, "name": "augustbs", "count": 1, "languages": 1 }, { - "order": 733, + "order": 734, "name": "gerespinosa", "count": 1, "languages": 1 }, { - "order": 734, + "order": 735, "name": "walkerlyna", "count": 1, "languages": 1 }, { - "order": 735, + "order": 736, "name": "lytsar", "count": 1, "languages": 1 }, { - "order": 736, + "order": 737, "name": "rodmiggithub", "count": 1, "languages": 1 }, { - "order": 737, + "order": 738, "name": "gc796", "count": 1, "languages": 1 }, { - "order": 738, + "order": 739, "name": "gustavoguerrero", "count": 1, "languages": 1 }, { - "order": 739, + "order": 740, "name": "maximotoro", "count": 1, "languages": 1 }, { - "order": 740, + "order": 741, "name": "xnomada", "count": 1, "languages": 1 }, { - "order": 741, + "order": 742, "name": "francescoalterio", "count": 1, "languages": 1 }, { - "order": 742, + "order": 743, "name": "codejoss", "count": 1, "languages": 1 }, { - "order": 743, + "order": 744, "name": "alexis0717", "count": 1, "languages": 1 }, { - "order": 744, + "order": 745, "name": "ronnieruuz", "count": 1, "languages": 1 }, { - "order": 745, + "order": 746, "name": "isnatthy", "count": 1, "languages": 1 }, { - "order": 746, + "order": 747, "name": "datrujillog", "count": 1, "languages": 1 }, { - "order": 747, + "order": 748, "name": "aleclto7", "count": 1, "languages": 1 }, { - "order": 748, + "order": 749, "name": "s9code", "count": 1, "languages": 1 }, { - "order": 749, + "order": 750, "name": "pierre-ol", "count": 1, "languages": 1 }, { - "order": 750, + "order": 751, "name": "peticas", "count": 1, "languages": 1 }, { - "order": 751, + "order": 752, "name": "saintsluis", "count": 1, "languages": 1 }, { - "order": 752, + "order": 753, "name": "quirogapau", "count": 1, "languages": 1 }, { - "order": 753, + "order": 754, "name": "dmhenaopa", "count": 1, "languages": 1 }, { - "order": 754, + "order": 755, "name": "pointfs", "count": 1, "languages": 1 }, { - "order": 755, + "order": 756, "name": "lfam200", "count": 1, "languages": 1 }, { - "order": 756, + "order": 757, "name": "lucianogriffa", "count": 1, "languages": 1 }, { - "order": 757, + "order": 758, "name": "alexxawada", "count": 1, "languages": 1 }, { - "order": 758, + "order": 759, "name": "oscarletelier", "count": 1, "languages": 1 }, { - "order": 759, + "order": 760, "name": "johnniew81", "count": 1, "languages": 1 }, { - "order": 760, + "order": 761, "name": "edperez07", "count": 1, "languages": 1 }, { - "order": 761, + "order": 762, "name": "lfwzk", "count": 1, "languages": 1 }, { - "order": 762, + "order": 763, "name": "fernandofl", "count": 1, "languages": 1 }, { - "order": 763, + "order": 764, "name": "juanpablo-a", "count": 1, "languages": 1 }, { - "order": 764, + "order": 765, "name": "vmga09", "count": 1, "languages": 1 }, { - "order": 765, + "order": 766, "name": "imista", "count": 1, "languages": 1 }, { - "order": 766, + "order": 767, "name": "kocho03", "count": 1, "languages": 1 }, { - "order": 767, + "order": 768, "name": "abraham9804", "count": 1, "languages": 1 }, { - "order": 768, + "order": 769, "name": "afl0r3s", "count": 1, "languages": 1 }, { - "order": 769, + "order": 770, "name": "javieradev", "count": 1, "languages": 1 }, { - "order": 770, + "order": 771, "name": "mvillegas18", "count": 1, "languages": 1 }, { - "order": 771, + "order": 772, "name": "sixtodev", "count": 1, "languages": 1 }, { - "order": 772, + "order": 773, "name": "jovany-java", "count": 1, "languages": 1 }, { - "order": 773, + "order": 774, "name": "cliverjimny123", "count": 1, "languages": 1 }, { - "order": 774, + "order": 775, "name": "madelefonb", "count": 1, "languages": 1 }, { - "order": 775, + "order": 776, "name": "siuldev", "count": 1, "languages": 1 }, { - "order": 776, + "order": 777, "name": "jacobrwx", "count": 1, "languages": 1 }, { - "order": 777, + "order": 778, "name": "mhrosariom", "count": 1, "languages": 1 }, { - "order": 778, + "order": 779, "name": "rojasvargas", "count": 1, "languages": 1 }, { - "order": 779, + "order": 780, "name": "yessikamichelle", "count": 1, "languages": 1 }, { - "order": 780, + "order": 781, "name": "sergioab7", "count": 1, "languages": 1 }, { - "order": 781, + "order": 782, "name": "sejotaz", "count": 1, "languages": 1 }, { - "order": 782, + "order": 783, "name": "nnunezmedina", "count": 1, "languages": 1 }, { - "order": 783, + "order": 784, "name": "diegoxxd", "count": 1, "languages": 1 }, { - "order": 784, + "order": 785, "name": "jd-gm", "count": 1, "languages": 1 }, { - "order": 785, + "order": 786, "name": "nozodev", "count": 1, "languages": 1 }, { - "order": 786, + "order": 787, "name": "ercky1980", "count": 1, "languages": 1 }, { - "order": 787, + "order": 788, "name": "santaravena", "count": 1, "languages": 1 }, { - "order": 788, + "order": 789, "name": "francomoreira", "count": 1, "languages": 1 }, { - "order": 789, + "order": 790, "name": "royhuamanavila", "count": 1, "languages": 1 }, { - "order": 790, + "order": 791, "name": "danielbustos342", "count": 1, "languages": 1 }, { - "order": 791, + "order": 792, "name": "kenzambrano", "count": 1, "languages": 1 }, { - "order": 792, + "order": 793, "name": "romanocoder", "count": 1, "languages": 1 }, { - "order": 793, + "order": 794, "name": "jsruedatorres", "count": 1, "languages": 1 }, { - "order": 794, + "order": 795, "name": "miguelsarm", "count": 1, "languages": 1 }, { - "order": 795, + "order": 796, "name": "frcan89", "count": 1, "languages": 1 }, { - "order": 796, + "order": 797, "name": "alvarommedia", "count": 1, "languages": 1 }, { - "order": 797, + "order": 798, "name": "patricioguerra30", "count": 1, "languages": 1 }, { - "order": 798, + "order": 799, "name": "mdemena", "count": 1, "languages": 1 }, { - "order": 799, + "order": 800, "name": "marcos0803", "count": 1, "languages": 1 }, { - "order": 800, + "order": 801, "name": "vmarialuzm", "count": 1, "languages": 1 }, { - "order": 801, + "order": 802, "name": "acobo3", "count": 1, "languages": 1 }, { - "order": 802, + "order": 803, "name": "sofiamfernandez", "count": 1, "languages": 1 }, { - "order": 803, + "order": 804, "name": "cd1974", "count": 1, "languages": 1 }, { - "order": 804, + "order": 805, "name": "vickalck", "count": 1, "languages": 1 }, { - "order": 805, + "order": 806, "name": "chema-dw", "count": 1, "languages": 1 }, { - "order": 806, + "order": 807, "name": "javirr4", "count": 1, "languages": 1 }, { - "order": 807, + "order": 808, "name": "e-xtian", "count": 1, "languages": 1 }, { - "order": 808, + "order": 809, "name": "masenace", "count": 1, "languages": 1 }, { - "order": 809, + "order": 810, "name": "julioorozco05", "count": 1, "languages": 1 }, { - "order": 810, + "order": 811, "name": "g4nd4lf", "count": 1, "languages": 1 }, { - "order": 811, + "order": 812, "name": "cris10026", "count": 1, "languages": 1 }, { - "order": 812, + "order": 813, "name": "johao23", "count": 1, "languages": 1 }, { - "order": 813, + "order": 814, "name": "latorredev", "count": 1, "languages": 1 }, { - "order": 814, + "order": 815, "name": "anexo01", "count": 1, "languages": 1 }, { - "order": 815, + "order": 816, "name": "wilsonbarrera", "count": 1, "languages": 1 }, { - "order": 816, + "order": 817, "name": "diegogomezcor4", "count": 1, "languages": 1 }, { - "order": 817, + "order": 818, "name": "charly024", "count": 1, "languages": 1 }, { - "order": 818, + "order": 819, "name": "miguelmancebo", "count": 1, "languages": 1 }, { - "order": 819, + "order": 820, "name": "geridage", "count": 1, "languages": 1 }, { - "order": 820, + "order": 821, "name": "jereaguilar", "count": 1, "languages": 1 }, { - "order": 821, + "order": 822, + "name": "owen-ian", + "count": 1, + "languages": 1 + }, + { + "order": 823, "name": "lluistech", "count": 1, "languages": 1 }, { - "order": 822, + "order": 824, "name": "luceldasilva", "count": 1, "languages": 1 }, { - "order": 823, + "order": 825, "name": "francgci", "count": 1, "languages": 1 }, { - "order": 824, + "order": 826, "name": "yamiyugi25", "count": 1, "languages": 1 }, { - "order": 825, + "order": 827, "name": "luisangeles20", "count": 1, "languages": 1 }, { - "order": 826, + "order": 828, "name": "cristianvergaraf", "count": 1, "languages": 1 }, { - "order": 827, + "order": 829, "name": "judithernandez", "count": 1, "languages": 1 }, { - "order": 828, + "order": 830, "name": "eatsangels", "count": 1, "languages": 1 }, { - "order": 829, + "order": 831, "name": "mjordanaam", "count": 1, "languages": 1 }, { - "order": 830, + "order": 832, "name": "marcelinoarias369", "count": 1, "languages": 1 }, { - "order": 831, + "order": 833, "name": "juan-cruz01", "count": 1, "languages": 1 }, { - "order": 832, + "order": 834, "name": "arturodlapaz17", "count": 1, "languages": 1 }, { - "order": 833, + "order": 835, "name": "cisneros2404", "count": 1, "languages": 1 }, { - "order": 834, + "order": 836, "name": "claudios1980", "count": 1, "languages": 1 }, { - "order": 835, + "order": 837, "name": "pr1de-23", "count": 1, "languages": 1 }, { - "order": 836, + "order": 838, "name": "dimanu-py", "count": 1, "languages": 1 }, { - "order": 837, + "order": 839, "name": "wallsified", "count": 1, "languages": 1 }, { - "order": 838, + "order": 840, "name": "kshields51", "count": 1, "languages": 1 }, { - "order": 839, + "order": 841, "name": "hnaranjog", "count": 1, "languages": 1 }, { - "order": 840, + "order": 842, "name": "erickcis", "count": 1, "languages": 1 }, { - "order": 841, + "order": 843, "name": "neftalyr", "count": 1, "languages": 1 }, { - "order": 842, + "order": 844, "name": "zeraven09", "count": 1, "languages": 1 }, { - "order": 843, + "order": 845, "name": "jchernandez87", "count": 1, "languages": 1 }, { - "order": 844, + "order": 846, "name": "adcarret", "count": 1, "languages": 1 }, { - "order": 845, + "order": 847, "name": "leo18q", "count": 1, "languages": 1 }, { - "order": 846, + "order": 848, "name": "v0l0v", "count": 1, "languages": 1 }, { - "order": 847, + "order": 849, "name": "alejandro000", "count": 1, "languages": 1 }, { - "order": 848, + "order": 850, "name": "juanalbornoz32", "count": 1, "languages": 1 }, { - "order": 849, + "order": 851, "name": "albertomorilla", "count": 1, "languages": 1 }, { - "order": 850, + "order": 852, "name": "sergiovelayos", "count": 1, "languages": 1 }, { - "order": 851, + "order": 853, "name": "emmanuelmmontesinos ", "count": 1, "languages": 1 }, { - "order": 852, + "order": 854, "name": "jgregoris", "count": 1, "languages": 1 }, { - "order": 853, + "order": 855, "name": "and-y21", "count": 1, "languages": 1 }, { - "order": 854, + "order": 856, "name": "xcortes", "count": 1, "languages": 1 }, { - "order": 855, + "order": 857, "name": "salas89", "count": 1, "languages": 1 }, { - "order": 856, + "order": 858, "name": "ignacioskm", "count": 1, "languages": 1 }, { - "order": 857, + "order": 859, "name": "sunjamer", "count": 1, "languages": 1 }, { - "order": 858, + "order": 860, "name": "dakkaj", "count": 1, "languages": 1 }, { - "order": 859, + "order": 861, "name": "jalonso76", "count": 1, "languages": 1 }, { - "order": 860, + "order": 862, "name": "sbngl", "count": 1, "languages": 1 }, { - "order": 861, + "order": 863, "name": "alejarandro", "count": 1, "languages": 1 }, { - "order": 862, + "order": 864, "name": "gmedinat911", "count": 1, "languages": 1 }, { - "order": 863, + "order": 865, "name": "danidan1214", "count": 1, "languages": 1 }, { - "order": 864, + "order": 866, "name": "neshurtado", "count": 1, "languages": 1 }, { - "order": 865, + "order": 867, "name": "demegorash", "count": 1, "languages": 1 }, { - "order": 866, + "order": 868, "name": "xhinto", "count": 1, "languages": 1 }, { - "order": 867, + "order": 869, "name": "xalejandrow", "count": 1, "languages": 1 }, { - "order": 868, + "order": 870, "name": "90dread", "count": 1, "languages": 1 }, { - "order": 869, + "order": 871, "name": "gersonoroz", "count": 1, "languages": 1 }, { - "order": 870, + "order": 872, "name": "isaacdci", "count": 1, "languages": 1 }, { - "order": 871, + "order": 873, "name": "davidgramiro", "count": 1, "languages": 1 }, { - "order": 872, + "order": 874, "name": "devkenn", "count": 1, "languages": 1 }, { - "order": 873, + "order": 875, "name": "turudev1979", "count": 1, "languages": 1 }, { - "order": 874, + "order": 876, "name": "giovanni-schmaily", "count": 1, "languages": 1 }, { - "order": 875, + "order": 877, "name": "deivimiller", "count": 1, "languages": 1 }, { - "order": 876, + "order": 878, "name": "carlosbb70", "count": 1, "languages": 1 }, { - "order": 877, + "order": 879, "name": "fergz1988", "count": 1, "languages": 1 }, { - "order": 878, + "order": 880, "name": "betulioo", "count": 1, "languages": 1 }, { - "order": 879, + "order": 881, "name": "pablom-2015", "count": 1, "languages": 1 }, { - "order": 880, + "order": 882, "name": "manuu42", "count": 1, "languages": 1 }, { - "order": 881, + "order": 883, "name": "dacaldev", "count": 1, "languages": 1 }, { - "order": 882, + "order": 884, "name": "nachodev7", "count": 1, "languages": 1 }, { - "order": 883, + "order": 885, "name": "snowcardenas", "count": 1, "languages": 1 }, { - "order": 884, + "order": 886, "name": "osneidert", "count": 1, "languages": 1 }, { - "order": 885, + "order": 887, "name": "pushodev", "count": 1, "languages": 1 }, { - "order": 886, + "order": 888, "name": "m4xxdev", "count": 1, "languages": 1 }, { - "order": 887, + "order": 889, "name": "amitchellg", "count": 1, "languages": 1 }, { - "order": 888, + "order": 890, "name": "ndepaul82", "count": 1, "languages": 1 }, { - "order": 889, + "order": 891, "name": "sherkla12e", "count": 1, "languages": 1 }, { - "order": 890, + "order": 892, "name": "tashidian", "count": 1, "languages": 1 }, { - "order": 891, + "order": 893, "name": "gilbertho502", "count": 1, "languages": 1 }, { - "order": 892, + "order": 894, "name": "bjchavez", "count": 1, "languages": 1 }, { - "order": 893, + "order": 895, "name": "alfaroo1", "count": 1, "languages": 1 }, { - "order": 894, + "order": 896, "name": "deivisaherreraj", "count": 1, "languages": 1 }, { - "order": 895, + "order": 897, "name": "astrarothdlcxvi", "count": 1, "languages": 1 From 1946bf64ead7c7d3f95b6d0aaba91beb6367a0c8 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 23 Jun 2024 19:17:44 -0500 Subject: [PATCH 61/66] #25 - go --- Roadmap/24 - DECORADORES/go/N0HagoNada.go | 2 +- Roadmap/25 - LOGS/go/N0HagoNada.go | 86 +++++++++++++++++++++++ 2 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 Roadmap/25 - LOGS/go/N0HagoNada.go diff --git a/Roadmap/24 - DECORADORES/go/N0HagoNada.go b/Roadmap/24 - DECORADORES/go/N0HagoNada.go index b818ec8aff..f80edd3f73 100644 --- a/Roadmap/24 - DECORADORES/go/N0HagoNada.go +++ b/Roadmap/24 - DECORADORES/go/N0HagoNada.go @@ -55,7 +55,7 @@ func main() { } fmt.Printf("Price of veggeMania with tomato and cheese topping is %d\n", pizzaWithCheeseAndTomato.getPrice()) - fmt.Println("-------------------------------------- RETO --------------------------------------------------------") + fmt.Println("-------------------------------------- RETO ------------------------------------------------") // Aplicamos el decorador CountCalls a nuestra función de ejemplo ExampleFunction DecoratedFunction := CountCalls(ExampleFunction) diff --git a/Roadmap/25 - LOGS/go/N0HagoNada.go b/Roadmap/25 - LOGS/go/N0HagoNada.go new file mode 100644 index 0000000000..639f288a9e --- /dev/null +++ b/Roadmap/25 - LOGS/go/N0HagoNada.go @@ -0,0 +1,86 @@ +package main + +import ( + "log" + "os" + "sync" + "time" +) + +var ( + logger *log.Logger + once sync.Once +) + +func GetLogger() *log.Logger { + once.Do(func() { + logger = log.New(os.Stdout, "", log.LstdFlags|log.Lshortfile) + }) + return logger +} + +type Tarea struct { + Nombre string + Descripcion string +} + +type GestorTareas struct { + tareas []Tarea +} + +func (g *GestorTareas) AñadirTarea(nombre, descripcion string) { + l := GetLogger() + inicio := time.Now() + + g.tareas = append(g.tareas, Tarea{Nombre: nombre, Descripcion: descripcion}) + + l.Printf("Tarea añadida: %s - %s", nombre, descripcion) + l.Printf("Tiempo de ejecución para añadir tarea: %v", time.Since(inicio)) +} + +func (g *GestorTareas) EliminarTarea(nombre string) { + l := GetLogger() + inicio := time.Now() + + for i, tarea := range g.tareas { + if tarea.Nombre == nombre { + g.tareas = append(g.tareas[:i], g.tareas[i+1:]...) + l.Printf("Tarea eliminada: %s", nombre) + l.Printf("Tiempo de ejecución para eliminar tarea: %v", time.Since(inicio)) + return + } + } + + l.Printf("No se encontró la tarea: %s", nombre) + l.Printf("Tiempo de ejecución para buscar tarea: %v", time.Since(inicio)) +} + +func (g *GestorTareas) ListarTareas() { + l := GetLogger() + inicio := time.Now() + + l.Println("Lista de tareas:") + for _, tarea := range g.tareas { + l.Printf("- %s: %s", tarea.Nombre, tarea.Descripcion) + } + + l.Printf("Tiempo de ejecución para listar tareas: %v", time.Since(inicio)) +} + +func main() { + + l := GetLogger() + l.Println("Iniciando programa de gestión de tareas") + + gestor := &GestorTareas{} + + gestor.AñadirTarea("Comprar víveres", "Ir al supermercado y comprar alimentos para la semana") + gestor.AñadirTarea("Hacer ejercicio", "Realizar 30 minutos de cardio") + gestor.ListarTareas() + gestor.EliminarTarea("Hacer ejercicio") + gestor.ListarTareas() + gestor.EliminarTarea("Tarea inexistente") + + l.Println("Finalizando programa de gestión de tareas") + +} From c5c1862f5333c792b1b799d036bfca81dfb5509d Mon Sep 17 00:00:00 2001 From: rantamhack Date: Mon, 24 Jun 2024 12:37:02 +0200 Subject: [PATCH 62/66] #25-python --- Roadmap/25 - LOGS/python/rantamhack.py | 133 +++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 Roadmap/25 - LOGS/python/rantamhack.py diff --git a/Roadmap/25 - LOGS/python/rantamhack.py b/Roadmap/25 - LOGS/python/rantamhack.py new file mode 100644 index 0000000000..29875727be --- /dev/null +++ b/Roadmap/25 - LOGS/python/rantamhack.py @@ -0,0 +1,133 @@ + +print("\n\n=======================================EJERCICIO=======================================\n\n") + +""" + * EJERCICIO: + * Explora el concepto de "logging" en tu lenguaje. Configuralo y muestra + * un ejemplo con cada nivel de "severidad" disponible. + + * CRITICAL: El nivel mas alto de registro, se utiliza para mensajes de error cri­ticos que pueden hacer que el programa se detenga. + * ERROR: Se utiliza para mensajes de error que pueden ser recuperables, pero que indican un problema importante en el programa. + * WARNING: Se utiliza para mensajes de advertencia que no son cri­ticos, pero que indican un comportamiento inesperado o problemático. + * INFO: Se utiliza para mensajes informativos que indican el estado del programa o el progreso de la ejecución. + * DEBUG: Se utiliza para mensajes de depuración que proporcionan información detallada sobre el funcionamiento interno del programa. +""" + +# Importamos el modulo +import logging + +# Indicamos el nivel de severidad a partir del cual queremos que nos muestre el mensaje +# En este caso desde el mas bajo. Si no pusieramos nada mostraría solo los de "Error" y "Critical" +# Tambien se le puede configurar como queremos que salga el mensaje. Vamos a poner que salga con la fecha, nivel de severidad y mensaje +logging.basicConfig(level=logging.DEBUG, + format='%(asctime)s - %(levelname)s - %(message)s') + + +# Registro de un mensaje de depuracion +logging.debug("[+] Entramos a la funcion\n") + +# Registro de un mensaje de informacion +logging.info("[+] La conexion con el servidor fue exitosa\n") + +# Registro de un mensaje de advertencia +logging.warning("[!] Queda poco espacio en disco\n") + +# Registro de un mensaje de error +logging.error("[!] Bloque de sangria previsto\n") + +# Registro de un mensaje de depuración +logging.critical("[!] Hay un error critico. Saliendo de la aplicacion ....\n") + + +print("\n\n=======================================DIFICULTAD EXTRA=======================================\n\n") + + +""" + * DIFICULTAD EXTRA (opcional): + * Crea un programa ficticio de gestion de tareas que permita añadir, eliminar + * y listar dichas tareas. + * - Añadir: recibe nombre y descripcion. + * - Eliminar: por nombre de la tarea. + * Implementa diferentes mensajes de log que muestren informacion segun la + * tarea ejecutada (a tu eleccion). + * Utiliza el log para visualizar el tiempo de ejecucion de cada tarea. +""" +import time + +#logging.basicConfig(level=logging.DEBUG, +# format='%(asctime)s - %(levelname)s - %(message)s') + +def time_spent(function): + def time_used(*args, **kwargs): + init = time.time() + result = function(*args, **kwargs) + elapsed_time = time.time() - init + logging.info(f"[+] El tiempo empleado en {function.__name__} es {elapsed_time:.4f} segundos") + return result + return time_used + +class Task: + def __init__(self, name, description): + self.name = name + self.description = description + + +class Task_Manager: + def __init__(self): + self.tasks = [] + + @time_spent + def add_task(self, task): + logging.debug("[*] Comienza la funcion para 'añadir tareas'") + time.sleep(1) + if any(t['name'] == task.name for t in self.tasks): + logging.warning("[!] La tarea ya esta en la lista") + else: + self.tasks.append({ + 'name': task.name, + 'description': task.description + }) + time.sleep(1) + logging.info("[+] Se agrega nueva tarea") + logging.debug("[*] Finaliza la funcion 'añadir tareas'") + + + @time_spent + def del_task(self, task_name): + logging.debug("[*] Comienza la funcion para 'borrar tareas'") + time.sleep(1) + self.tasks = [task for task in self.tasks if task['name'] != task_name] + logging.info(f"[-] Se elimino la tarea: {task_name}") + logging.debug("[*] Finaliza la funcion 'borrar tareas'") + + @time_spent + def list_tasks(self): + logging.debug("[*] Comienza la funcion para 'listar tareas'") + time.sleep(1) + for task in self.tasks: + logging.info(f"[+] Tarea: {task['name']} - Descripcion: {task['description']}") + logging.debug("[*] Finaliza la funcion 'listar tareas'") + + + +if __name__ == "__main__": + task_manager = Task_Manager() + + task1 = Task("Tarea 1", "Descripcion de la tarea 1") + task2 = Task("Tarea 2", "Descripcion de la tarea 2") + task3 = Task("Tarea 3", "Descripcion de la tarea 3") + + + task_manager.add_task(task1) + task_manager.add_task(task2) + task_manager.add_task(task3) + task_manager.add_task(task1) + + + task_manager.list_tasks() + task_manager.del_task("Tarea 2") + task_manager.list_tasks() + + + + From f3ae160fbc6c891bef48867284e5ad4fba1dad88 Mon Sep 17 00:00:00 2001 From: AChapeton Date: Mon, 24 Jun 2024 09:25:48 -0600 Subject: [PATCH 63/66] #25 - TypeScript, JavaScript, Python --- Roadmap/25 - LOGS/javascript/AChapeton.js | 29 +++++++++++++++++++++++ Roadmap/25 - LOGS/python/AChapeton.py | 16 +++++++++++++ Roadmap/25 - LOGS/typescript/AChapeton.ts | 29 +++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 Roadmap/25 - LOGS/javascript/AChapeton.js create mode 100644 Roadmap/25 - LOGS/python/AChapeton.py create mode 100644 Roadmap/25 - LOGS/typescript/AChapeton.ts diff --git a/Roadmap/25 - LOGS/javascript/AChapeton.js b/Roadmap/25 - LOGS/javascript/AChapeton.js new file mode 100644 index 0000000000..accb8d4810 --- /dev/null +++ b/Roadmap/25 - LOGS/javascript/AChapeton.js @@ -0,0 +1,29 @@ +// Mensaje de texto generico +console.log('Mensaje general') + +// Mensaje informativo +console.info('Mensaje informativo') + +// Mensaje de advertencia +console.warn('Mensaje de advertencia') + +// Mensaje de error +console.error('Mensaje de error') + +// Limpiar consola +console.clear() + +// Grupo de mensajes +console.group('Titulo del grupo de logs') +console.log('Primera linea') +console.info('Segunda linea') +console.error('Tercera linea') +console.groupEnd() + +// Logs para tomar tiempo de procesos +console.time('Inicio de proceso') + // Proceso para testear +console.timeEnd() + +// Tablas +console.table(["manzanas", "peraas", "bananas"]); \ No newline at end of file diff --git a/Roadmap/25 - LOGS/python/AChapeton.py b/Roadmap/25 - LOGS/python/AChapeton.py new file mode 100644 index 0000000000..efc3613d5f --- /dev/null +++ b/Roadmap/25 - LOGS/python/AChapeton.py @@ -0,0 +1,16 @@ +import logging + +# Mensaje generico +logging.debug('Este es un mensaje generico') + +# Mensaje informativo +logging.info('Este es un mensaje informativo') + +# Mensaje de advertencia +logging.warning('Este es un log para mostrar una advertencia') + +# Mensaje de error +logging.error('Este es un mensaje de error') + +# Mensaje critico +logging.critical('Este es un mensaje de error critico') \ No newline at end of file diff --git a/Roadmap/25 - LOGS/typescript/AChapeton.ts b/Roadmap/25 - LOGS/typescript/AChapeton.ts new file mode 100644 index 0000000000..accb8d4810 --- /dev/null +++ b/Roadmap/25 - LOGS/typescript/AChapeton.ts @@ -0,0 +1,29 @@ +// Mensaje de texto generico +console.log('Mensaje general') + +// Mensaje informativo +console.info('Mensaje informativo') + +// Mensaje de advertencia +console.warn('Mensaje de advertencia') + +// Mensaje de error +console.error('Mensaje de error') + +// Limpiar consola +console.clear() + +// Grupo de mensajes +console.group('Titulo del grupo de logs') +console.log('Primera linea') +console.info('Segunda linea') +console.error('Tercera linea') +console.groupEnd() + +// Logs para tomar tiempo de procesos +console.time('Inicio de proceso') + // Proceso para testear +console.timeEnd() + +// Tablas +console.table(["manzanas", "peraas", "bananas"]); \ No newline at end of file From 84aa2b6ca518bb3356f7040c710fed78015fef76 Mon Sep 17 00:00:00 2001 From: Brais Moure Date: Mon, 24 Jun 2024 21:14:03 +0200 Subject: [PATCH 64/66] =?UTF-8?q?Correcci=C3=B3n=20Roadmap=2025=20+=20Nuev?= =?UTF-8?q?o=20ejercicio=2026?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 +-- Roadmap/25 - LOGS/python/mouredev.py | 76 ++++++++++++++++++++++++++++ Roadmap/26 - SOLID SRP/ejercicio.md | 36 +++++++++++++ 3 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 Roadmap/25 - LOGS/python/mouredev.py create mode 100644 Roadmap/26 - SOLID SRP/ejercicio.md diff --git a/README.md b/README.md index 81f25f80e7..97dd6a61e7 100644 --- a/README.md +++ b/README.md @@ -27,8 +27,8 @@ ## Corrección y próximo ejercicio -> #### Lunes 24 de junio de 2024 a las 20:00 (hora España) desde **[Twitch](https://twitch.tv/mouredev)** -> #### Consulta el **[horario](https://discord.gg/EWMJPcUq?event=1249918242370355262)** por país y crea un **[recordatorio](https://discord.gg/EWMJPcUq?event=1249918242370355262)** +> #### Lunes 1 de julio de 2024 a las 20:00 (hora España) desde **[Twitch](https://twitch.tv/mouredev)** +> #### Consulta el **[horario](https://discord.gg/CPKcDD9d?event=1252321976027054111)** por país y crea un **[recordatorio](https://discord.gg/CPKcDD9d?event=1252321976027054111)** ## Roadmap @@ -59,7 +59,8 @@ |22|[FUNCIONES DE ORDEN SUPERIOR](./Roadmap/22%20-%20FUNCIONES%20DE%20ORDEN%20SUPERIOR/ejercicio.md)|[📝](./Roadmap/22%20-%20FUNCIONES%20DE%20ORDEN%20SUPERIOR/python/mouredev.py)|[▶️](https://youtu.be/ABniGtbqAXk)|[👥](./Roadmap/22%20-%20FUNCIONES%20DE%20ORDEN%20SUPERIOR/) |23|[SINGLETON](./Roadmap/23%20-%20SINGLETON/ejercicio.md)|[📝](./Roadmap/23%20-%20SINGLETON/python/mouredev.py)|[▶️](https://youtu.be/cOIcFo_w9hA)|[👥](./Roadmap/23%20-%20SINGLETON/) |24|[DECORADORES](./Roadmap/24%20-%20DECORADORES/ejercicio.md)|[📝](./Roadmap/24%20-%20DECORADORES/python/mouredev.py)|[▶️](https://youtu.be/jxJOjg7gPG4)|[👥](./Roadmap/24%20-%20DECORADORES/) -|25|[LOGS](./Roadmap/25%20-%20LOGS/ejercicio.md)|[🗓️ 24/06/24](https://discord.gg/EWMJPcUq?event=1249918242370355262)||[👥](./Roadmap/25%20-%20LOGS/) +|25|[LOGS](./Roadmap/25%20-%20LOGS/ejercicio.md)|[📝](./Roadmap/25%20-%20LOGS/python/mouredev.py)||[👥](./Roadmap/25%20-%20LOGS/) +|26|[SOLID: PRINCIPIO DE RESPONSABILIDAD ÚNICA](./Roadmap/26%20-%20SOLID%20SRP/ejercicio.md)|[🗓️ 01/07/24](https://discord.gg/CPKcDD9d?event=1252321976027054111)||[👥](./Roadmap/26%20-%20SOLID%20SRP/) ## Instrucciones diff --git a/Roadmap/25 - LOGS/python/mouredev.py b/Roadmap/25 - LOGS/python/mouredev.py new file mode 100644 index 0000000000..5989c8bf50 --- /dev/null +++ b/Roadmap/25 - LOGS/python/mouredev.py @@ -0,0 +1,76 @@ +import logging +import time + +""" +Ejercicio +""" + +logging.basicConfig(level=logging.DEBUG, + format="%(asctime)s - %(levelname)s - %(message)s", + handlers=[logging.StreamHandler()]) + +logging.debug("Esto es un mensaje de DEBUG") +logging.info("Esto es un mensaje de INFO") +logging.warning("Esto es un mensaje de WARNING") +logging.error("Esto es un mensaje de ERROR") +logging.critical("Esto es un mensaje de CRITICAL") + +""" +Extra +""" + + +class TaskManager: + + def __init__(self) -> None: + self.tasks = {} + + def add_task(self, name: str, description: str): + start_time = time.time() + if name not in self.tasks: + self.tasks[name] = description + logging.info(f"Tarea añadida: {name}.") + else: + logging.warning( + f"Se ha intentado añadir una tarea que ya existe: {name}.") + logging.debug(f"Número de tareas: {len(self.tasks)}") + end_time = time.time() + self._print_time(start_time, end_time) + + def delete_task(self, name: str): + start_time = time.time() + if name in self.tasks: + del self.tasks[name] + logging.info(f"Se la eliminado la tarea: {name}.") + else: + logging.error( + f"Se ha intentado eliminar una tarea que no exsite: {name}.") + logging.debug(f"Número de tareas: {len(self.tasks)}") + end_time = time.time() + self._print_time(start_time, end_time) + + def list_tasks(self): + start_time = time.time() + if self.tasks: + logging.info(f"Se va a imprimir la lista de tareas.") + for name, description in self.tasks.items(): + print(f"{name} - {description}") + else: + logging.info("No hay tareas para mostar.") + end_time = time.time() + self._print_time(start_time, end_time) + + def _print_time(self, start_time, end_time): + logging.debug( + f"Tiempo de ejecución: {end_time - start_time:.6f} segundos.") + + +task_manager = TaskManager() +task_manager.list_tasks() +task_manager.add_task("Pan", "Comprar 5 barras de pan") +task_manager.add_task("Python", "Estudiar Python") +task_manager.list_tasks() +task_manager.delete_task("Python") +task_manager.list_tasks() +task_manager.add_task("Pan", "Comprar 5 barras de pan") +task_manager.delete_task("Python") diff --git a/Roadmap/26 - SOLID SRP/ejercicio.md b/Roadmap/26 - SOLID SRP/ejercicio.md new file mode 100644 index 0000000000..e680a09fd8 --- /dev/null +++ b/Roadmap/26 - SOLID SRP/ejercicio.md @@ -0,0 +1,36 @@ +# #26 SOLID: PRINCIPIO DE RESPONSABILIDAD ÚNICA (SRP) +> #### Dificultad: Media | Publicación: 24/06/24 | Corrección: 01/07/24 + +## Ejercicio + +``` +/* + * EJERCICIO: + * Explora el "Principio SOLID de Responsabilidad Única (Single Responsibility + * Principle, SRP)" y crea un ejemplo simple donde se muestre su funcionamiento + * de forma correcta e incorrecta. + * + * DIFICULTAD EXTRA (opcional): + * Desarrolla un sistema de gestión para una biblioteca. El sistema necesita + * manejar diferentes aspectos como el registro de libros, la gestión de usuarios + * y el procesamiento de préstamos de libros. + * Requisitos: + * 1. Registrar libros: El sistema debe permitir agregar nuevos libros con + * información básica como título, autor y número de copias disponibles. + * 2. Registrar usuarios: El sistema debe permitir agregar nuevos usuarios con + * información básica como nombre, número de identificación y correo electrónico. + * 3. Procesar préstamos de libros: El sistema debe permitir a los usuarios + * tomar prestados y devolver libros. + * Instrucciones: + * 1. Diseña una clase que no cumple el SRP: Crea una clase Library que maneje + * los tres aspectos mencionados anteriormente (registro de libros, registro de + * usuarios y procesamiento de préstamos). + * 2. Refactoriza el código: Separa las responsabilidades en diferentes clases + * siguiendo el Principio de Responsabilidad Única. + */ +``` +#### Tienes toda la información extendida sobre el roadmap de retos de programación en **[retosdeprogramacion.com/roadmap](https://retosdeprogramacion.com/roadmap)**. + +Sigue las **[instrucciones](../../README.md)**, consulta las correcciones y aporta la tuya propia utilizando el lenguaje de programación que quieras. + +> Recuerda que cada semana se publica un nuevo ejercicio y se corrige el de la semana anterior en directo desde **[Twitch](https://twitch.tv/mouredev)**. Tienes el horario en la sección "eventos" del servidor de **[Discord](https://discord.gg/mouredev)**. \ No newline at end of file From 886a13f1374c144707a0b34f4c6091b79c4687bb Mon Sep 17 00:00:00 2001 From: mouredev Date: Tue, 25 Jun 2024 00:13:20 +0000 Subject: [PATCH 65/66] Update stats --- Roadmap/stats.json | 933 +++++++++++++++++++++++---------------------- 1 file changed, 475 insertions(+), 458 deletions(-) diff --git a/Roadmap/stats.json b/Roadmap/stats.json index 9908f98e7a..f24ca7eabc 100644 --- a/Roadmap/stats.json +++ b/Roadmap/stats.json @@ -1,13 +1,13 @@ { - "challenges_total": 26, + "challenges_total": 27, "languages_total": 44, - "files_total": 5078, - "users_total": 897, + "files_total": 5091, + "users_total": 899, "challenges_ranking": [ { "order": 1, "name": "00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO", - "count": 1001 + "count": 1003 }, { "order": 2, @@ -22,7 +22,7 @@ { "order": 4, "name": "03 - ESTRUCTURAS DE DATOS", - "count": 314 + "count": 315 }, { "order": 5, @@ -47,12 +47,12 @@ { "order": 9, "name": "08 - CLASES", - "count": 184 + "count": 185 }, { "order": 10, "name": "09 - HERENCIA", - "count": 181 + "count": 182 }, { "order": 11, @@ -132,39 +132,44 @@ { "order": 26, "name": "25 - LOGS", - "count": 26 + "count": 34 + }, + { + "order": 27, + "name": "26 - SOLID SRP", + "count": 0 } ], "languages_ranking": [ { "order": 1, "name": "python", - "count": 2149, - "percentage": 42.32 + "count": 2155, + "percentage": 42.33 }, { "order": 2, "name": "javascript", - "count": 1011, - "percentage": 19.91 + "count": 1014, + "percentage": 19.92 }, { "order": 3, "name": "java", - "count": 431, + "count": 432, "percentage": 8.49 }, { "order": 4, "name": "typescript", - "count": 215, - "percentage": 4.23 + "count": 216, + "percentage": 4.24 }, { "order": 5, "name": "c#", "count": 204, - "percentage": 4.02 + "percentage": 4.01 }, { "order": 6, @@ -181,8 +186,8 @@ { "order": 8, "name": "go", - "count": 139, - "percentage": 2.74 + "count": 141, + "percentage": 2.77 }, { "order": 9, @@ -194,7 +199,7 @@ "order": 10, "name": "rust", "count": 99, - "percentage": 1.95 + "percentage": 1.94 }, { "order": 11, @@ -429,7 +434,7 @@ { "order": 5, "name": "achapeton", - "count": 69, + "count": 72, "languages": 3 }, { @@ -465,7 +470,7 @@ { "order": 11, "name": "rantamhack", - "count": 49, + "count": 50, "languages": 3 }, { @@ -500,15 +505,15 @@ }, { "order": 17, - "name": "gabrielmoris", + "name": "n0hagonada", "count": 36, - "languages": 2 + "languages": 3 }, { "order": 18, - "name": "n0hagonada", - "count": 35, - "languages": 3 + "name": "gabrielmoris", + "count": 36, + "languages": 2 }, { "order": 19, @@ -548,15 +553,15 @@ }, { "order": 25, - "name": "aldroide", - "count": 31, - "languages": 3 + "name": "amadorquispe", + "count": 32, + "languages": 2 }, { "order": 26, - "name": "amadorquispe", + "name": "aldroide", "count": 31, - "languages": 2 + "languages": 3 }, { "order": 27, @@ -614,31 +619,31 @@ }, { "order": 36, - "name": "pyramsd", + "name": "bernatcs", "count": 26, "languages": 1 }, { "order": 37, - "name": "monicavaquerano", - "count": 25, - "languages": 2 + "name": "mouredev", + "count": 26, + "languages": 1 }, { "order": 38, - "name": "ricjdev", - "count": 25, + "name": "pyramsd", + "count": 26, "languages": 1 }, { "order": 39, - "name": "bernatcs", + "name": "monicavaquerano", "count": 25, - "languages": 1 + "languages": 2 }, { "order": 40, - "name": "mouredev", + "name": "ricjdev", "count": 25, "languages": 1 }, @@ -1232,199 +1237,199 @@ }, { "order": 139, - "name": "daparradom", + "name": "neosv", "count": 10, "languages": 1 }, { "order": 140, - "name": "59822", + "name": "daparradom", "count": 10, "languages": 1 }, { "order": 141, - "name": "k-90", + "name": "59822", "count": 10, "languages": 1 }, { "order": 142, - "name": "mikelm2020", + "name": "k-90", "count": 10, "languages": 1 }, { "order": 143, - "name": "littlemabbit", + "name": "mikelm2020", "count": 10, "languages": 1 }, { "order": 144, - "name": "thonys07", + "name": "littlemabbit", "count": 10, "languages": 1 }, { "order": 145, - "name": "trufoplus", + "name": "thonys07", "count": 10, "languages": 1 }, { "order": 146, + "name": "trufoplus", + "count": 10, + "languages": 1 + }, + { + "order": 147, "name": "julianbuitragocharry-dev", "count": 9, "languages": 3 }, { - "order": 147, + "order": 148, "name": "djsurgeon", "count": 9, "languages": 2 }, { - "order": 148, + "order": 149, "name": "karys4", "count": 9, "languages": 1 }, { - "order": 149, + "order": 150, "name": "brockar", "count": 9, "languages": 1 }, { - "order": 150, + "order": 151, "name": "omarland", "count": 9, "languages": 1 }, { - "order": 151, + "order": 152, "name": "oleojake", "count": 9, "languages": 1 }, { - "order": 152, + "order": 153, "name": "yoezequiel", "count": 9, "languages": 1 }, { - "order": 153, + "order": 154, "name": "gjbecerrae", "count": 9, "languages": 1 }, { - "order": 154, + "order": 155, "name": "troynebula", "count": 9, "languages": 1 }, { - "order": 155, + "order": 156, "name": "jcdm60", "count": 9, "languages": 1 }, { - "order": 156, + "order": 157, "name": "marcose-ferretoe", "count": 9, "languages": 1 }, { - "order": 157, + "order": 158, "name": "sperezsa", "count": 9, "languages": 1 }, { - "order": 158, + "order": 159, "name": "angel-delg", "count": 8, "languages": 4 }, { - "order": 159, + "order": 160, "name": "pakiuh", "count": 8, "languages": 4 }, { - "order": 160, + "order": 161, "name": "pcosin", "count": 8, "languages": 2 }, { - "order": 161, + "order": 162, "name": "xmunder", "count": 8, "languages": 2 }, { - "order": 162, + "order": 163, "name": "ansuzgs", "count": 8, "languages": 2 }, { - "order": 163, + "order": 164, "name": "luisolivaresj", "count": 8, "languages": 2 }, - { - "order": 164, - "name": "srvariable", - "count": 8, - "languages": 1 - }, { "order": 165, - "name": "westwbn", + "name": "srvariable", "count": 8, "languages": 1 }, { "order": 166, - "name": "vid92", + "name": "westwbn", "count": 8, "languages": 1 }, { "order": 167, - "name": "isj-code", + "name": "vid92", "count": 8, "languages": 1 }, { "order": 168, - "name": "matitc", + "name": "isj-code", "count": 8, "languages": 1 }, { "order": 169, - "name": "toral24", + "name": "matitc", "count": 8, "languages": 1 }, { "order": 170, - "name": "jtrujilloalcocer", + "name": "toral24", "count": 8, "languages": 1 }, { "order": 171, - "name": "neosv", + "name": "jtrujilloalcocer", "count": 8, "languages": 1 }, @@ -2792,799 +2797,799 @@ }, { "order": 399, - "name": "ivanpelu7", + "name": "alejomazov", "count": 3, "languages": 1 }, { "order": 400, - "name": "bytecodesky", + "name": "ivanpelu7", "count": 3, "languages": 1 }, { "order": 401, + "name": "bytecodesky", + "count": 3, + "languages": 1 + }, + { + "order": 402, "name": "devvdroid01", "count": 2, "languages": 2 }, { - "order": 402, + "order": 403, "name": "jhonatanmustiolacas", "count": 2, "languages": 2 }, { - "order": 403, + "order": 404, "name": "ismaelmatiz", "count": 2, "languages": 2 }, { - "order": 404, + "order": 405, "name": "sgb004", "count": 2, "languages": 2 }, { - "order": 405, + "order": 406, "name": "tecfer", "count": 2, "languages": 2 }, { - "order": 406, + "order": 407, "name": "lilberick", "count": 2, "languages": 2 }, { - "order": 407, + "order": 408, "name": "camiloforero1997", "count": 2, "languages": 2 }, { - "order": 408, + "order": 409, "name": "lydaf", "count": 2, "languages": 2 }, { - "order": 409, + "order": 410, "name": "carresoft", "count": 2, "languages": 2 }, { - "order": 410, + "order": 411, "name": "chuanmi", "count": 2, "languages": 2 }, { - "order": 411, + "order": 412, "name": "jmofuture", "count": 2, "languages": 2 }, { - "order": 412, + "order": 413, "name": "jlcareglio", "count": 2, "languages": 2 }, { - "order": 413, + "order": 414, "name": "jurgen-alfaro", "count": 2, "languages": 2 }, { - "order": 414, + "order": 415, "name": "felipedev303", "count": 2, "languages": 2 }, { - "order": 415, + "order": 416, "name": "berentolkien", "count": 2, "languages": 2 }, { - "order": 416, + "order": 417, "name": "raul-progr", "count": 2, "languages": 2 }, { - "order": 417, + "order": 418, "name": "jorgesilencio", "count": 2, "languages": 2 }, { - "order": 418, + "order": 419, "name": "lemito66", "count": 2, "languages": 2 }, { - "order": 419, + "order": 420, "name": "fsfigueroa77", "count": 2, "languages": 1 }, { - "order": 420, + "order": 421, "name": "fefestuve", "count": 2, "languages": 1 }, { - "order": 421, + "order": 422, "name": "luis-vb", "count": 2, "languages": 1 }, { - "order": 422, + "order": 423, "name": "juaruibr", "count": 2, "languages": 1 }, { - "order": 423, + "order": 424, "name": "crisdev3", "count": 2, "languages": 1 }, { - "order": 424, + "order": 425, "name": "saracorraless", "count": 2, "languages": 1 }, { - "order": 425, + "order": 426, "name": "gamitocu", "count": 2, "languages": 1 }, { - "order": 426, + "order": 427, "name": "porto1090", "count": 2, "languages": 1 }, { - "order": 427, + "order": 428, "name": "hersac", "count": 2, "languages": 1 }, { - "order": 428, + "order": 429, "name": "yowcloud", "count": 2, "languages": 1 }, { - "order": 429, + "order": 430, "name": "joseesmil04", "count": 2, "languages": 1 }, { - "order": 430, + "order": 431, "name": "adrs1166ma", "count": 2, "languages": 1 }, { - "order": 431, + "order": 432, "name": "isidrojng", "count": 2, "languages": 1 }, { - "order": 432, + "order": 433, "name": "peeanoot", "count": 2, "languages": 1 }, { - "order": 433, + "order": 434, "name": "alextc35", "count": 2, "languages": 1 }, { - "order": 434, + "order": 435, "name": "jcknot", "count": 2, "languages": 1 }, { - "order": 435, + "order": 436, "name": "arhl2023", "count": 2, "languages": 1 }, { - "order": 436, + "order": 437, "name": "natalinacn", "count": 2, "languages": 1 }, { - "order": 437, + "order": 438, "name": "lorenamesa", "count": 2, "languages": 1 }, { - "order": 438, + "order": 439, "name": "jago86", "count": 2, "languages": 1 }, { - "order": 439, + "order": 440, "name": "johannhsdev", "count": 2, "languages": 1 }, { - "order": 440, + "order": 441, "name": "nicolastapiasanz", "count": 2, "languages": 1 }, { - "order": 441, + "order": 442, "name": "freddyasierraj", "count": 2, "languages": 1 }, { - "order": 442, + "order": 443, "name": "gomezcamilo9701", "count": 2, "languages": 1 }, { - "order": 443, + "order": 444, "name": "vicgallego", "count": 2, "languages": 1 }, { - "order": 444, + "order": 445, "name": "peibolstrike", "count": 2, "languages": 1 }, { - "order": 445, + "order": 446, "name": "cristiansystem", "count": 2, "languages": 1 }, { - "order": 446, + "order": 447, "name": "dararod", "count": 2, "languages": 1 }, { - "order": 447, + "order": 448, "name": "waldid32", "count": 2, "languages": 1 }, { - "order": 448, + "order": 449, "name": "roilhi", "count": 2, "languages": 1 }, { - "order": 449, + "order": 450, "name": "diegokarabin", "count": 2, "languages": 1 }, { - "order": 450, + "order": 451, "name": "reanthonyh", "count": 2, "languages": 1 }, { - "order": 451, + "order": 452, "name": "valeriatorrealba", "count": 2, "languages": 1 }, { - "order": 452, + "order": 453, "name": "nxl22", "count": 2, "languages": 1 }, { - "order": 453, + "order": 454, "name": "ovjohn", "count": 2, "languages": 1 }, { - "order": 454, + "order": 455, "name": "aleoe01", "count": 2, "languages": 1 }, { - "order": 455, + "order": 456, "name": "soldochris", "count": 2, "languages": 1 }, { - "order": 456, + "order": 457, "name": "murquisdev", "count": 2, "languages": 1 }, { - "order": 457, + "order": 458, "name": "wesborland-github", "count": 2, "languages": 1 }, { - "order": 458, + "order": 459, "name": "farthaz", "count": 2, "languages": 1 }, { - "order": 459, + "order": 460, "name": "tomasmarquez81", "count": 2, "languages": 1 }, { - "order": 460, + "order": 461, "name": "cesarocbu", "count": 2, "languages": 1 }, { - "order": 461, + "order": 462, "name": "glaboryp", "count": 2, "languages": 1 }, { - "order": 462, + "order": 463, "name": "doblea74", "count": 2, "languages": 1 }, { - "order": 463, + "order": 464, "name": "misterdan100", "count": 2, "languages": 1 }, { - "order": 464, + "order": 465, "name": "rikar2o", "count": 2, "languages": 1 }, { - "order": 465, + "order": 466, "name": "angelvelasco1", "count": 2, "languages": 1 }, { - "order": 466, + "order": 467, "name": "jhonf1992", "count": 2, "languages": 1 }, - { - "order": 467, - "name": "jaimemunozdev", - "count": 2, - "languages": 1 - }, { "order": 468, - "name": "jeisonredondo", + "name": "jaimemunozdev", "count": 2, "languages": 1 }, { "order": 469, - "name": "leonardo291024", + "name": "jeisonredondo", "count": 2, "languages": 1 }, { "order": 470, - "name": "miguelrejon96", + "name": "leonardo291024", "count": 2, "languages": 1 }, { "order": 471, - "name": "matiasfarfan89", + "name": "miguelrejon96", "count": 2, "languages": 1 }, { "order": 472, - "name": "haryblanco20", + "name": "matiasfarfan89", "count": 2, "languages": 1 }, { "order": 473, - "name": "memogv", + "name": "haryblanco20", "count": 2, "languages": 1 }, { "order": 474, - "name": "akzorla", + "name": "memogv", "count": 2, "languages": 1 }, { "order": 475, - "name": "cpcarlosprieto", + "name": "akzorla", "count": 2, "languages": 1 }, { "order": 476, - "name": "rolo27s", + "name": "cpcarlosprieto", "count": 2, "languages": 1 }, { "order": 477, - "name": "lmedina96", + "name": "rolo27s", "count": 2, "languages": 1 }, { "order": 478, - "name": "carlosmarte23", + "name": "lmedina96", "count": 2, "languages": 1 }, { "order": 479, - "name": "santiagodc8", + "name": "carlosmarte23", "count": 2, "languages": 1 }, { "order": 480, - "name": "adogdev", + "name": "santiagodc8", "count": 2, "languages": 1 }, { "order": 481, - "name": "gmigues", + "name": "adogdev", "count": 2, "languages": 1 }, { "order": 482, - "name": "alejandro-mantilla", + "name": "gmigues", "count": 2, "languages": 1 }, { "order": 483, - "name": "pedrojog", + "name": "alejandro-mantilla", "count": 2, "languages": 1 }, { "order": 484, - "name": "dans182", + "name": "pedrojog", "count": 2, "languages": 1 }, { "order": 485, - "name": "aegpgrafologo", + "name": "dans182", "count": 2, "languages": 1 }, { "order": 486, - "name": "kcx46", + "name": "aegpgrafologo", "count": 2, "languages": 1 }, { "order": 487, - "name": "ziellucio01", + "name": "kcx46", "count": 2, "languages": 1 }, { "order": 488, - "name": "e-techgod", + "name": "ziellucio01", "count": 2, "languages": 1 }, { "order": 489, - "name": "alejandrovelasquezr", + "name": "e-techgod", "count": 2, "languages": 1 }, { "order": 490, - "name": "eriickm", + "name": "alejandrovelasquezr", "count": 2, "languages": 1 }, { "order": 491, - "name": "s384", + "name": "eriickm", "count": 2, "languages": 1 }, { "order": 492, - "name": "jsacristanbeltri", + "name": "s384", "count": 2, "languages": 1 }, { "order": 493, - "name": "vesubius", + "name": "jsacristanbeltri", "count": 2, "languages": 1 }, { "order": 494, - "name": "gregfc95", + "name": "vesubius", "count": 2, "languages": 1 }, { "order": 495, - "name": "cipollalucas", + "name": "gregfc95", "count": 2, "languages": 1 }, { "order": 496, - "name": "franz-arzapalo", + "name": "cipollalucas", "count": 2, "languages": 1 }, { "order": 497, - "name": "baauus", + "name": "franz-arzapalo", "count": 2, "languages": 1 }, { "order": 498, - "name": "dariangl", + "name": "baauus", "count": 2, "languages": 1 }, { "order": 499, - "name": "anblackter", + "name": "dariangl", "count": 2, "languages": 1 }, { "order": 500, - "name": "julind0", + "name": "anblackter", "count": 2, "languages": 1 }, { "order": 501, - "name": "christiancoc", + "name": "julind0", "count": 2, "languages": 1 }, { "order": 502, - "name": "tic4", + "name": "christiancoc", "count": 2, "languages": 1 }, { "order": 503, - "name": "victore16", + "name": "tic4", "count": 2, "languages": 1 }, { "order": 504, - "name": "inf015", + "name": "victore16", "count": 2, "languages": 1 }, { "order": 505, - "name": "nevaito", + "name": "inf015", "count": 2, "languages": 1 }, { "order": 506, - "name": "csaraugusto2", + "name": "nevaito", "count": 2, "languages": 1 }, { "order": 507, - "name": "pakomor", + "name": "csaraugusto2", "count": 2, "languages": 1 }, { "order": 508, - "name": "aboredllama", + "name": "pakomor", "count": 2, "languages": 1 }, { "order": 509, - "name": "freyfonseca", + "name": "aboredllama", "count": 2, "languages": 1 }, { "order": 510, - "name": "dokeys28", + "name": "freyfonseca", "count": 2, "languages": 1 }, { "order": 511, - "name": "soydaviddev", + "name": "dokeys28", "count": 2, "languages": 1 }, { "order": 512, - "name": "lauradiazm29", + "name": "soydaviddev", "count": 2, "languages": 1 }, { "order": 513, - "name": "fernandoatello", + "name": "lauradiazm29", "count": 2, "languages": 1 }, { "order": 514, - "name": "miguelberrio0810", + "name": "fernandoatello", "count": 2, "languages": 1 }, { "order": 515, - "name": "dota43ver", + "name": "miguelberrio0810", "count": 2, "languages": 1 }, { "order": 516, - "name": "zalazarmartin", + "name": "dota43ver", "count": 2, "languages": 1 }, { "order": 517, - "name": "nandaalf", + "name": "zalazarmartin", "count": 2, "languages": 1 }, { "order": 518, - "name": "lordzzz777", + "name": "nandaalf", "count": 2, "languages": 1 }, { "order": 519, - "name": "rrcoder", + "name": "lordzzz777", "count": 2, "languages": 1 }, { "order": 520, - "name": "cyberdidac", + "name": "rrcoder", "count": 2, "languages": 1 }, { "order": 521, - "name": "vecinacoo", + "name": "cyberdidac", "count": 2, "languages": 1 }, { "order": 522, - "name": "ssanjua", + "name": "vecinacoo", "count": 2, "languages": 1 }, { "order": 523, - "name": "zonnen69", + "name": "ssanjua", "count": 2, "languages": 1 }, { "order": 524, - "name": "sdm29gh", + "name": "zonnen69", "count": 2, "languages": 1 }, { "order": 525, - "name": "hawkbott", + "name": "sdm29gh", "count": 2, "languages": 1 }, { "order": 526, - "name": "tiaguiito3", + "name": "hawkbott", "count": 2, "languages": 1 }, { "order": 527, - "name": "elmarqueli", + "name": "tiaguiito3", "count": 2, "languages": 1 }, { "order": 528, - "name": "poetry0354", + "name": "elmarqueli", "count": 2, "languages": 1 }, { "order": 529, - "name": "reaien", + "name": "poetry0354", "count": 2, "languages": 1 }, { "order": 530, - "name": "rikar20", + "name": "reaien", "count": 2, "languages": 1 }, { "order": 531, - "name": "alejomazov", + "name": "rikar20", "count": 2, "languages": 1 }, @@ -4316,1470 +4321,1482 @@ }, { "order": 653, - "name": "fredylopez01", + "name": "jaimenar", "count": 1, "languages": 1 }, { "order": 654, - "name": "angeldevsarrollo", + "name": "fredylopez01", "count": 1, "languages": 1 }, { "order": 655, - "name": "sanuka78", + "name": "angeldevsarrollo", "count": 1, "languages": 1 }, { "order": 656, - "name": "adriansaint07", + "name": "sanuka78", "count": 1, "languages": 1 }, { "order": 657, - "name": "jony_english22", + "name": "adriansaint07", "count": 1, "languages": 1 }, { "order": 658, - "name": "alvaropg15", + "name": "jony_english22", "count": 1, "languages": 1 }, { "order": 659, - "name": "frankmon03", + "name": "alvaropg15", "count": 1, "languages": 1 }, { "order": 660, - "name": "xhaloidx", + "name": "frankmon03", "count": 1, "languages": 1 }, { "order": 661, - "name": "reneguzman7", + "name": "xhaloidx", "count": 1, "languages": 1 }, { "order": 662, - "name": "jaquelinetorres", + "name": "reneguzman7", "count": 1, "languages": 1 }, { "order": 663, - "name": "alexeigio", + "name": "jaquelinetorres", "count": 1, "languages": 1 }, { "order": 664, - "name": "albert-29", + "name": "alexeigio", "count": 1, "languages": 1 }, { "order": 665, - "name": "iguerrerov", + "name": "albert-29", "count": 1, "languages": 1 }, { "order": 666, - "name": "pvigo10", + "name": "iguerrerov", "count": 1, "languages": 1 }, { "order": 667, - "name": "jrgim", + "name": "pvigo10", "count": 1, "languages": 1 }, { "order": 668, - "name": "marcosjarrin", + "name": "jrgim", "count": 1, "languages": 1 }, { "order": 669, - "name": "jhonnfl", + "name": "marcosjarrin", "count": 1, "languages": 1 }, { "order": 670, - "name": "trollface77", + "name": "jhonnfl", "count": 1, "languages": 1 }, { "order": 671, - "name": "brunom-93", + "name": "trollface77", "count": 1, "languages": 1 }, { "order": 672, - "name": "alejandroruiz23", + "name": "brunom-93", "count": 1, "languages": 1 }, { "order": 673, - "name": "jaimesoftdev", + "name": "alejandroruiz23", "count": 1, "languages": 1 }, { "order": 674, - "name": "edm1ya", + "name": "jaimesoftdev", "count": 1, "languages": 1 }, { "order": 675, - "name": "jarzatedev", + "name": "edm1ya", "count": 1, "languages": 1 }, { "order": 676, - "name": "sandrarg85", + "name": "jarzatedev", "count": 1, "languages": 1 }, { "order": 677, - "name": "rootqui", + "name": "sandrarg85", "count": 1, "languages": 1 }, { "order": 678, - "name": "astriebeck", + "name": "rootqui", "count": 1, "languages": 1 }, { "order": 679, - "name": "marqitos", + "name": "astriebeck", "count": 1, "languages": 1 }, { "order": 680, - "name": "lobogeekmx", + "name": "marqitos", "count": 1, "languages": 1 }, { "order": 681, - "name": "marvinagui", + "name": "lobogeekmx", "count": 1, "languages": 1 }, { "order": 682, - "name": "jatomas", + "name": "marvinagui", "count": 1, "languages": 1 }, { "order": 683, - "name": "nunezlagos", + "name": "jatomas", "count": 1, "languages": 1 }, { "order": 684, - "name": "ledyam", + "name": "nunezlagos", "count": 1, "languages": 1 }, { "order": 685, - "name": "miguelgargallo", + "name": "ledyam", "count": 1, "languages": 1 }, { "order": 686, - "name": "ishimaku", + "name": "miguelgargallo", "count": 1, "languages": 1 }, { "order": 687, - "name": "afacorroloscos", + "name": "ishimaku", "count": 1, "languages": 1 }, { "order": 688, - "name": "chrisfelixgil", + "name": "afacorroloscos", "count": 1, "languages": 1 }, { "order": 689, - "name": "franpua", + "name": "chrisfelixgil", "count": 1, "languages": 1 }, { "order": 690, - "name": "sirvega83", + "name": "franpua", "count": 1, "languages": 1 }, { "order": 691, - "name": "corvo-99", + "name": "sirvega83", "count": 1, "languages": 1 }, { "order": 692, - "name": "franciscokarriere", + "name": "corvo-99", "count": 1, "languages": 1 }, { "order": 693, - "name": "pipeyz21", + "name": "franciscokarriere", "count": 1, "languages": 1 }, { "order": 694, - "name": "luisgarm", + "name": "pipeyz21", "count": 1, "languages": 1 }, { "order": 695, - "name": "vorosdev", + "name": "luisgarm", "count": 1, "languages": 1 }, { "order": 696, - "name": "santiagomac", + "name": "vorosdev", "count": 1, "languages": 1 }, { "order": 697, - "name": "ca2puntosv", + "name": "santiagomac", "count": 1, "languages": 1 }, { "order": 698, - "name": "cibacoa", + "name": "ca2puntosv", "count": 1, "languages": 1 }, { "order": 699, - "name": "gizelads", + "name": "cibacoa", "count": 1, "languages": 1 }, { "order": 700, - "name": "axelwestman", + "name": "gizelads", "count": 1, "languages": 1 }, { "order": 701, - "name": "coletonosh", + "name": "axelwestman", "count": 1, "languages": 1 }, { "order": 702, - "name": "manuhssj", + "name": "coletonosh", "count": 1, "languages": 1 }, { "order": 703, - "name": "manugonzalito", + "name": "manuhssj", "count": 1, "languages": 1 }, { "order": 704, - "name": "seigigim", + "name": "manugonzalito", "count": 1, "languages": 1 }, { "order": 705, - "name": "marcosapodaca", + "name": "seigigim", "count": 1, "languages": 1 }, { "order": 706, - "name": "serg032", + "name": "marcosapodaca", "count": 1, "languages": 1 }, { "order": 707, - "name": "is2095", + "name": "serg032", "count": 1, "languages": 1 }, { "order": 708, - "name": "lucc4sz", + "name": "is2095", "count": 1, "languages": 1 }, { "order": 709, - "name": "mauricioyair", + "name": "lucc4sz", "count": 1, "languages": 1 }, { "order": 710, - "name": "jancalos", + "name": "mauricioyair", "count": 1, "languages": 1 }, { "order": 711, - "name": "palons29", + "name": "jancalos", "count": 1, "languages": 1 }, { "order": 712, - "name": "deimoshall", + "name": "palons29", "count": 1, "languages": 1 }, { "order": 713, - "name": "mickysoft", + "name": "deimoshall", "count": 1, "languages": 1 }, { "order": 714, - "name": "serg-pq", + "name": "mickysoft", "count": 1, "languages": 1 }, { "order": 715, - "name": "lara-vel-dev", + "name": "serg-pq", "count": 1, "languages": 1 }, { "order": 716, - "name": "alexisbarradev", + "name": "lara-vel-dev", "count": 1, "languages": 1 }, { "order": 717, - "name": "tartabullroberto", + "name": "alexisbarradev", "count": 1, "languages": 1 }, { "order": 718, - "name": "kelvincb", + "name": "tartabullroberto", "count": 1, "languages": 1 }, { "order": 719, - "name": "augustosdev", + "name": "kelvincb", "count": 1, "languages": 1 }, { "order": 720, - "name": "van-02", + "name": "augustosdev", "count": 1, "languages": 1 }, { "order": 721, - "name": "x3mboy", + "name": "van-02", "count": 1, "languages": 1 }, { "order": 722, - "name": "jandresalvar", + "name": "x3mboy", "count": 1, "languages": 1 }, { "order": 723, - "name": "angelcruzg23", + "name": "jandresalvar", "count": 1, "languages": 1 }, { "order": 724, - "name": "kevinramirez28", + "name": "angelcruzg23", "count": 1, "languages": 1 }, { "order": 725, - "name": "alemar16", + "name": "kevinramirez28", "count": 1, "languages": 1 }, { "order": 726, - "name": "joseperesini", + "name": "alemar16", "count": 1, "languages": 1 }, { "order": 727, - "name": "denisortega", + "name": "joseperesini", "count": 1, "languages": 1 }, { "order": 728, - "name": "flarien", + "name": "denisortega", "count": 1, "languages": 1 }, { "order": 729, - "name": "jpiacaruso", + "name": "flarien", "count": 1, "languages": 1 }, { "order": 730, - "name": "kronomio", + "name": "jpiacaruso", "count": 1, "languages": 1 }, { "order": 731, - "name": "abengl", + "name": "kronomio", "count": 1, "languages": 1 }, { "order": 732, - "name": "edgonzz", + "name": "abengl", "count": 1, "languages": 1 }, { "order": 733, - "name": "augustbs", + "name": "edgonzz", "count": 1, "languages": 1 }, { "order": 734, - "name": "gerespinosa", + "name": "augustbs", "count": 1, "languages": 1 }, { "order": 735, - "name": "walkerlyna", + "name": "gerespinosa", "count": 1, "languages": 1 }, { "order": 736, - "name": "lytsar", + "name": "walkerlyna", "count": 1, "languages": 1 }, { "order": 737, - "name": "rodmiggithub", + "name": "lytsar", "count": 1, "languages": 1 }, { "order": 738, - "name": "gc796", + "name": "rodmiggithub", "count": 1, "languages": 1 }, { "order": 739, - "name": "gustavoguerrero", + "name": "gc796", "count": 1, "languages": 1 }, { "order": 740, - "name": "maximotoro", + "name": "gustavoguerrero", "count": 1, "languages": 1 }, { "order": 741, - "name": "xnomada", + "name": "maximotoro", "count": 1, "languages": 1 }, { "order": 742, - "name": "francescoalterio", + "name": "xnomada", "count": 1, "languages": 1 }, { "order": 743, - "name": "codejoss", + "name": "francescoalterio", "count": 1, "languages": 1 }, { "order": 744, - "name": "alexis0717", + "name": "codejoss", "count": 1, "languages": 1 }, { "order": 745, - "name": "ronnieruuz", + "name": "alexis0717", "count": 1, "languages": 1 }, { "order": 746, - "name": "isnatthy", + "name": "ronnieruuz", "count": 1, "languages": 1 }, { "order": 747, - "name": "datrujillog", + "name": "isnatthy", "count": 1, "languages": 1 }, { "order": 748, - "name": "aleclto7", + "name": "datrujillog", "count": 1, "languages": 1 }, { "order": 749, - "name": "s9code", + "name": "aleclto7", "count": 1, "languages": 1 }, { "order": 750, - "name": "pierre-ol", + "name": "s9code", "count": 1, "languages": 1 }, { "order": 751, - "name": "peticas", + "name": "joaquinlopez14", "count": 1, "languages": 1 }, { "order": 752, - "name": "saintsluis", + "name": "pierre-ol", "count": 1, "languages": 1 }, { "order": 753, - "name": "quirogapau", + "name": "peticas", "count": 1, "languages": 1 }, { "order": 754, - "name": "dmhenaopa", + "name": "saintsluis", "count": 1, "languages": 1 }, { "order": 755, - "name": "pointfs", + "name": "quirogapau", "count": 1, "languages": 1 }, { "order": 756, - "name": "lfam200", + "name": "dmhenaopa", "count": 1, "languages": 1 }, { "order": 757, - "name": "lucianogriffa", + "name": "pointfs", "count": 1, "languages": 1 }, { "order": 758, - "name": "alexxawada", + "name": "lfam200", "count": 1, "languages": 1 }, { "order": 759, - "name": "oscarletelier", + "name": "lucianogriffa", "count": 1, "languages": 1 }, { "order": 760, - "name": "johnniew81", + "name": "alexxawada", "count": 1, "languages": 1 }, { "order": 761, - "name": "edperez07", + "name": "oscarletelier", "count": 1, "languages": 1 }, { "order": 762, - "name": "lfwzk", + "name": "johnniew81", "count": 1, "languages": 1 }, { "order": 763, - "name": "fernandofl", + "name": "edperez07", "count": 1, "languages": 1 }, { "order": 764, - "name": "juanpablo-a", + "name": "lfwzk", "count": 1, "languages": 1 }, { "order": 765, - "name": "vmga09", + "name": "fernandofl", "count": 1, "languages": 1 }, { "order": 766, - "name": "imista", + "name": "juanpablo-a", "count": 1, "languages": 1 }, { "order": 767, - "name": "kocho03", + "name": "vmga09", "count": 1, "languages": 1 }, { "order": 768, - "name": "abraham9804", + "name": "imista", "count": 1, "languages": 1 }, { "order": 769, - "name": "afl0r3s", + "name": "kocho03", "count": 1, "languages": 1 }, { "order": 770, - "name": "javieradev", + "name": "abraham9804", "count": 1, "languages": 1 }, { "order": 771, - "name": "mvillegas18", + "name": "afl0r3s", "count": 1, "languages": 1 }, { "order": 772, - "name": "sixtodev", + "name": "javieradev", "count": 1, "languages": 1 }, { "order": 773, - "name": "jovany-java", + "name": "mvillegas18", "count": 1, "languages": 1 }, { "order": 774, - "name": "cliverjimny123", + "name": "sixtodev", "count": 1, "languages": 1 }, { "order": 775, - "name": "madelefonb", + "name": "jovany-java", "count": 1, "languages": 1 }, { "order": 776, - "name": "siuldev", + "name": "cliverjimny123", "count": 1, "languages": 1 }, { "order": 777, - "name": "jacobrwx", + "name": "madelefonb", "count": 1, "languages": 1 }, { "order": 778, - "name": "mhrosariom", + "name": "siuldev", "count": 1, "languages": 1 }, { "order": 779, - "name": "rojasvargas", + "name": "jacobrwx", "count": 1, "languages": 1 }, { "order": 780, - "name": "yessikamichelle", + "name": "mhrosariom", "count": 1, "languages": 1 }, { "order": 781, - "name": "sergioab7", + "name": "rojasvargas", "count": 1, "languages": 1 }, { "order": 782, - "name": "sejotaz", + "name": "yessikamichelle", "count": 1, "languages": 1 }, { "order": 783, - "name": "nnunezmedina", + "name": "sergioab7", "count": 1, "languages": 1 }, { "order": 784, - "name": "diegoxxd", + "name": "sejotaz", "count": 1, "languages": 1 }, { "order": 785, - "name": "jd-gm", + "name": "nnunezmedina", "count": 1, "languages": 1 }, { "order": 786, - "name": "nozodev", + "name": "diegoxxd", "count": 1, "languages": 1 }, { "order": 787, - "name": "ercky1980", + "name": "jd-gm", "count": 1, "languages": 1 }, { "order": 788, - "name": "santaravena", + "name": "nozodev", "count": 1, "languages": 1 }, { "order": 789, - "name": "francomoreira", + "name": "ercky1980", "count": 1, "languages": 1 }, { "order": 790, - "name": "royhuamanavila", + "name": "santaravena", "count": 1, "languages": 1 }, { "order": 791, - "name": "danielbustos342", + "name": "francomoreira", "count": 1, "languages": 1 }, { "order": 792, - "name": "kenzambrano", + "name": "royhuamanavila", "count": 1, "languages": 1 }, { "order": 793, - "name": "romanocoder", + "name": "danielbustos342", "count": 1, "languages": 1 }, { "order": 794, - "name": "jsruedatorres", + "name": "kenzambrano", "count": 1, "languages": 1 }, { "order": 795, - "name": "miguelsarm", + "name": "romanocoder", "count": 1, "languages": 1 }, { "order": 796, - "name": "frcan89", + "name": "jsruedatorres", "count": 1, "languages": 1 }, { "order": 797, - "name": "alvarommedia", + "name": "miguelsarm", "count": 1, "languages": 1 }, { "order": 798, - "name": "patricioguerra30", + "name": "frcan89", "count": 1, "languages": 1 }, { "order": 799, - "name": "mdemena", + "name": "alvarommedia", "count": 1, "languages": 1 }, { "order": 800, - "name": "marcos0803", + "name": "patricioguerra30", "count": 1, "languages": 1 }, { "order": 801, - "name": "vmarialuzm", + "name": "mdemena", "count": 1, "languages": 1 }, { "order": 802, - "name": "acobo3", + "name": "marcos0803", "count": 1, "languages": 1 }, { "order": 803, - "name": "sofiamfernandez", + "name": "vmarialuzm", "count": 1, "languages": 1 }, { "order": 804, - "name": "cd1974", + "name": "acobo3", "count": 1, "languages": 1 }, { "order": 805, - "name": "vickalck", + "name": "sofiamfernandez", "count": 1, "languages": 1 }, { "order": 806, - "name": "chema-dw", + "name": "cd1974", "count": 1, "languages": 1 }, { "order": 807, - "name": "javirr4", + "name": "vickalck", "count": 1, "languages": 1 }, { "order": 808, - "name": "e-xtian", + "name": "chema-dw", "count": 1, "languages": 1 }, { "order": 809, - "name": "masenace", + "name": "javirr4", "count": 1, "languages": 1 }, { "order": 810, - "name": "julioorozco05", + "name": "e-xtian", "count": 1, "languages": 1 }, { "order": 811, - "name": "g4nd4lf", + "name": "masenace", "count": 1, "languages": 1 }, { "order": 812, - "name": "cris10026", + "name": "julioorozco05", "count": 1, "languages": 1 }, { "order": 813, - "name": "johao23", + "name": "g4nd4lf", "count": 1, "languages": 1 }, { "order": 814, - "name": "latorredev", + "name": "cris10026", "count": 1, "languages": 1 }, { "order": 815, - "name": "anexo01", + "name": "johao23", "count": 1, "languages": 1 }, { "order": 816, - "name": "wilsonbarrera", + "name": "latorredev", "count": 1, "languages": 1 }, { "order": 817, - "name": "diegogomezcor4", + "name": "anexo01", "count": 1, "languages": 1 }, { "order": 818, - "name": "charly024", + "name": "wilsonbarrera", "count": 1, "languages": 1 }, { "order": 819, - "name": "miguelmancebo", + "name": "diegogomezcor4", "count": 1, "languages": 1 }, { "order": 820, - "name": "geridage", + "name": "charly024", "count": 1, "languages": 1 }, { "order": 821, - "name": "jereaguilar", + "name": "miguelmancebo", "count": 1, "languages": 1 }, { "order": 822, - "name": "owen-ian", + "name": "geridage", "count": 1, "languages": 1 }, { "order": 823, - "name": "lluistech", + "name": "jereaguilar", "count": 1, "languages": 1 }, { "order": 824, - "name": "luceldasilva", + "name": "owen-ian", "count": 1, "languages": 1 }, { "order": 825, - "name": "francgci", + "name": "lluistech", "count": 1, "languages": 1 }, { "order": 826, - "name": "yamiyugi25", + "name": "luceldasilva", "count": 1, "languages": 1 }, { "order": 827, - "name": "luisangeles20", + "name": "francgci", "count": 1, "languages": 1 }, { "order": 828, - "name": "cristianvergaraf", + "name": "yamiyugi25", "count": 1, "languages": 1 }, { "order": 829, - "name": "judithernandez", + "name": "luisangeles20", "count": 1, "languages": 1 }, { "order": 830, - "name": "eatsangels", + "name": "cristianvergaraf", "count": 1, "languages": 1 }, { "order": 831, - "name": "mjordanaam", + "name": "judithernandez", "count": 1, "languages": 1 }, { "order": 832, - "name": "marcelinoarias369", + "name": "eatsangels", "count": 1, "languages": 1 }, { "order": 833, - "name": "juan-cruz01", + "name": "mjordanaam", "count": 1, "languages": 1 }, { "order": 834, - "name": "arturodlapaz17", + "name": "marcelinoarias369", "count": 1, "languages": 1 }, { "order": 835, - "name": "cisneros2404", + "name": "juan-cruz01", "count": 1, "languages": 1 }, { "order": 836, - "name": "claudios1980", + "name": "arturodlapaz17", "count": 1, "languages": 1 }, { "order": 837, - "name": "pr1de-23", + "name": "cisneros2404", "count": 1, "languages": 1 }, { "order": 838, - "name": "dimanu-py", + "name": "claudios1980", "count": 1, "languages": 1 }, { "order": 839, - "name": "wallsified", + "name": "pr1de-23", "count": 1, "languages": 1 }, { "order": 840, - "name": "kshields51", + "name": "dimanu-py", "count": 1, "languages": 1 }, { "order": 841, - "name": "hnaranjog", + "name": "wallsified", "count": 1, "languages": 1 }, { "order": 842, - "name": "erickcis", + "name": "kshields51", "count": 1, "languages": 1 }, { "order": 843, - "name": "neftalyr", + "name": "hnaranjog", "count": 1, "languages": 1 }, { "order": 844, - "name": "zeraven09", + "name": "erickcis", "count": 1, "languages": 1 }, { "order": 845, - "name": "jchernandez87", + "name": "neftalyr", "count": 1, "languages": 1 }, { "order": 846, - "name": "adcarret", + "name": "zeraven09", "count": 1, "languages": 1 }, { "order": 847, - "name": "leo18q", + "name": "jchernandez87", "count": 1, "languages": 1 }, { "order": 848, - "name": "v0l0v", + "name": "adcarret", "count": 1, "languages": 1 }, { "order": 849, - "name": "alejandro000", + "name": "leo18q", "count": 1, "languages": 1 }, { "order": 850, - "name": "juanalbornoz32", + "name": "v0l0v", "count": 1, "languages": 1 }, { "order": 851, - "name": "albertomorilla", + "name": "alejandro000", "count": 1, "languages": 1 }, { "order": 852, - "name": "sergiovelayos", + "name": "juanalbornoz32", "count": 1, "languages": 1 }, { "order": 853, - "name": "emmanuelmmontesinos ", + "name": "albertomorilla", "count": 1, "languages": 1 }, { "order": 854, - "name": "jgregoris", + "name": "sergiovelayos", "count": 1, "languages": 1 }, { "order": 855, - "name": "and-y21", + "name": "emmanuelmmontesinos ", "count": 1, "languages": 1 }, { "order": 856, - "name": "xcortes", + "name": "jgregoris", "count": 1, "languages": 1 }, { "order": 857, - "name": "salas89", + "name": "and-y21", "count": 1, "languages": 1 }, { "order": 858, - "name": "ignacioskm", + "name": "xcortes", "count": 1, "languages": 1 }, { "order": 859, - "name": "sunjamer", + "name": "salas89", "count": 1, "languages": 1 }, { "order": 860, - "name": "dakkaj", + "name": "ignacioskm", "count": 1, "languages": 1 }, { "order": 861, - "name": "jalonso76", + "name": "sunjamer", "count": 1, "languages": 1 }, { "order": 862, - "name": "sbngl", + "name": "dakkaj", "count": 1, "languages": 1 }, { "order": 863, - "name": "alejarandro", + "name": "jalonso76", "count": 1, "languages": 1 }, { "order": 864, - "name": "gmedinat911", + "name": "sbngl", "count": 1, "languages": 1 }, { "order": 865, - "name": "danidan1214", + "name": "alejarandro", "count": 1, "languages": 1 }, { "order": 866, - "name": "neshurtado", + "name": "gmedinat911", "count": 1, "languages": 1 }, { "order": 867, - "name": "demegorash", + "name": "danidan1214", "count": 1, "languages": 1 }, { "order": 868, - "name": "xhinto", + "name": "neshurtado", "count": 1, "languages": 1 }, { "order": 869, - "name": "xalejandrow", + "name": "demegorash", "count": 1, "languages": 1 }, { "order": 870, - "name": "90dread", + "name": "xhinto", "count": 1, "languages": 1 }, { "order": 871, - "name": "gersonoroz", + "name": "xalejandrow", "count": 1, "languages": 1 }, { "order": 872, - "name": "isaacdci", + "name": "90dread", "count": 1, "languages": 1 }, { "order": 873, - "name": "davidgramiro", + "name": "gersonoroz", "count": 1, "languages": 1 }, { "order": 874, - "name": "devkenn", + "name": "isaacdci", "count": 1, "languages": 1 }, { "order": 875, - "name": "turudev1979", + "name": "davidgramiro", "count": 1, "languages": 1 }, { "order": 876, - "name": "giovanni-schmaily", + "name": "devkenn", "count": 1, "languages": 1 }, { "order": 877, - "name": "deivimiller", + "name": "turudev1979", "count": 1, "languages": 1 }, { "order": 878, - "name": "carlosbb70", + "name": "giovanni-schmaily", "count": 1, "languages": 1 }, { "order": 879, - "name": "fergz1988", + "name": "deivimiller", "count": 1, "languages": 1 }, { "order": 880, - "name": "betulioo", + "name": "carlosbb70", "count": 1, "languages": 1 }, { "order": 881, - "name": "pablom-2015", + "name": "fergz1988", "count": 1, "languages": 1 }, { "order": 882, - "name": "manuu42", + "name": "betulioo", "count": 1, "languages": 1 }, { "order": 883, - "name": "dacaldev", + "name": "pablom-2015", "count": 1, "languages": 1 }, { "order": 884, - "name": "nachodev7", + "name": "manuu42", "count": 1, "languages": 1 }, { "order": 885, - "name": "snowcardenas", + "name": "dacaldev", "count": 1, "languages": 1 }, { "order": 886, - "name": "osneidert", + "name": "nachodev7", "count": 1, "languages": 1 }, { "order": 887, - "name": "pushodev", + "name": "snowcardenas", "count": 1, "languages": 1 }, { "order": 888, - "name": "m4xxdev", + "name": "osneidert", "count": 1, "languages": 1 }, { "order": 889, - "name": "amitchellg", + "name": "pushodev", "count": 1, "languages": 1 }, { "order": 890, - "name": "ndepaul82", + "name": "m4xxdev", "count": 1, "languages": 1 }, { "order": 891, - "name": "sherkla12e", + "name": "amitchellg", "count": 1, "languages": 1 }, { "order": 892, - "name": "tashidian", + "name": "ndepaul82", "count": 1, "languages": 1 }, { "order": 893, - "name": "gilbertho502", + "name": "sherkla12e", "count": 1, "languages": 1 }, { "order": 894, - "name": "bjchavez", + "name": "tashidian", "count": 1, "languages": 1 }, { "order": 895, - "name": "alfaroo1", + "name": "gilbertho502", "count": 1, "languages": 1 }, { "order": 896, - "name": "deivisaherreraj", + "name": "bjchavez", "count": 1, "languages": 1 }, { "order": 897, + "name": "alfaroo1", + "count": 1, + "languages": 1 + }, + { + "order": 898, + "name": "deivisaherreraj", + "count": 1, + "languages": 1 + }, + { + "order": 899, "name": "astrarothdlcxvi", "count": 1, "languages": 1 From 76c47409a1d639093322f86fdac3254f1eac5dce Mon Sep 17 00:00:00 2001 From: Bruce <88008233+Roswell468@users.noreply.github.com> Date: Mon, 24 Jun 2024 21:13:56 -0300 Subject: [PATCH 66/66] =?UTF-8?q?Correcci=C3=B3n=20Roadmap=2025=20+=20Nuev?= =?UTF-8?q?o=20ejercicio=2026?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Corrección errores tipográficos --- Roadmap/25 - LOGS/python/mouredev.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Roadmap/25 - LOGS/python/mouredev.py b/Roadmap/25 - LOGS/python/mouredev.py index 5989c8bf50..d0bf458736 100644 --- a/Roadmap/25 - LOGS/python/mouredev.py +++ b/Roadmap/25 - LOGS/python/mouredev.py @@ -41,10 +41,10 @@ def delete_task(self, name: str): start_time = time.time() if name in self.tasks: del self.tasks[name] - logging.info(f"Se la eliminado la tarea: {name}.") + logging.info(f"Se ha eliminado la tarea: {name}.") else: logging.error( - f"Se ha intentado eliminar una tarea que no exsite: {name}.") + f"Se ha intentado eliminar una tarea que no existe: {name}.") logging.debug(f"Número de tareas: {len(self.tasks)}") end_time = time.time() self._print_time(start_time, end_time) @@ -56,7 +56,7 @@ def list_tasks(self): for name, description in self.tasks.items(): print(f"{name} - {description}") else: - logging.info("No hay tareas para mostar.") + logging.info("No hay tareas para mostrar.") end_time = time.time() self._print_time(start_time, end_time)