Entradas

Mostrando entradas de junio, 2022

Async Pool

Async Pool Debido a que Uranium4Linux toma ventaja de la programación asíncrona es necesario una pool de tareas para que este pueda funcionar de forma eficiente. El principal problema de las task es que no se puede saber el tiempo que va a tomar ejecutarlas por lo tanto necesitamos de algo que pueda comprobar si la task esta lista y, en caso de que lo este, guardar el resultado o aplicar alguna función. Para conseguir esto he diseñado una estructura tal que: pub struct AsyncPool<T> {     request_pool: Vec<JoinHandle<T>>,     items: usize,     not_done_request: Vec<usize>,     ordered_requests: HashMap<usize, T> }   La idea original de la AsyncPool era que el orden en el que los resultados son devueltos a partir de task no estuviera garantizado. Es decir, si añado un vector...

Unzipper

Desarrollo del unzipper Descripcion del unzipper En Uranium4Linux el unzipper es la parte encargada de descomprimir el archivo que contiene los archivos necesarios para descargar y configurar el pack de mods para el usuario. Codigo La idea principal del unzipper es la siguiente: Se recibe un argumento que será la ruta al .zip que contenga la información del modpack. Con esa ruta se extraerán todos los archivos que contenga el .zip en una carpeta temporal para después copiar los archivos de configuración, los "raw mods" y finalmente leer el json y descargar los mods. Raw mods son los mods que debido a que no han sido encontrados en la RinthAPI se han metido "hardcoded" al .zip y por lo tanto solo hace falta copiarlos a la ruta destino. Problemas surgidos Mientras desarrollaba el unzipper me he dado cuenta de que necesito de algún módulo en mi programa que sea capaz de darme buenos mensajes de errores...

Entrada Principal

Propósitos e Historia de Uranium4Linux 1. Facilitar la creación, distribución y la actualización de paquetes de mods para minecraft. 2. Estandarizar la forma en la que se distribuyen los paquetes de mods, teniendo una misma estructura. Historia La idea de Uranium4Linux fue el poder compartir pack de mods de minecraft con mis amigos de forma sencilla ya que para pasar los mods y toda la configuración teníamos que comprimir los .jar, la carpeta "config/", mirar si los mods son compatibles con la version de minecraft, etc. Entonces fue cuando se me ocurrió la idea de un programa que facilitara todo esto, que con un simple archivo pudiera descargar y actualizar los mods y que dándole un directorio root de Minecraft pudiera obtener un archivo modpack para compartir. La idea parecía sencilla, con un simple scrip de python se podría comprimir todo y meterlo en un zip. El problema de esta idea es que el archivo ...