viernes, 20 de junio de 2025

Soporte de tipos Double para SharedPreferences en Android Studio Kotlin (Y librería KotPref)

Hace poco implemente un flujo de datos de tipo Flow desde un source de datos (y consecuentes capas) hasta la vista de un composable en Android, y pues requería datos de tipo Double por su precisión en una de las propiedades del modelo, desde hace un tiempo vengo usando kotpref que es una excelente librería para el manejo de datos en local con SharedPreferences, el caso es que este no proporciona soporte para tipos Double, claro, porque directamente SharedPreferences no te da el soporte para ello, así que desarrolle la extensión para dicha librería.

Pero vamos por pasos, la raíz del tema es SharedPreferences, entonces debía soportar de forma limpia aquello, y pues la manera eficiente es usando bits, lo que guarda tal cual el contenido que es lo que deseamos, luego lo recuperamos como un double, peeeeeero como nos gusta la funcionalidad y usabilidad creamos la extensión para SharedPreferences primero:

De esta manera ya podemos y con confianza almacenar y recuperar de forma “nativa”:

preferences.putDouble(key, value)

preferences.getDouble(key, defaultValue)


Así que ya podemos continuar con el desarrollo de la extensión para Kotpref, comenzando con extender AbstractPref que es propia de la librería de Kotpref, y sobrescribimos sus métodos:

Y ahora los métodos de acceso:


Y voila, espero les sirva, dejo el link del repositorio de la extensión en cuestión:

https://github.com/darkzyrb/kotpref-extensions/tree/master/double-pref

domingo, 8 de junio de 2025

Ya era hora, WhatsApp para iPad oficial liberado

Era sumamente raro no encontrar la app nativa de WhatsApp en el iPad, pero después de tantos años, lama, nieve, sol y lluvía la han liberado, que me siento feliz? nah, bueno si un poco, (Uso más telegram pero igual me cae bien la noticia).

Como dije raro que una app diseñada específicamente para dispositivos móviles no dispusiera de una versión nativa para iPad, por ahí dicen las malas lenguas que Meta si cumple (Je je je), pero bien, que es lo que tenemos en esta versión:


  • Interfaz adaptada al iPad, con soporte para pantallas grandes y multitarea (Split View, Slide Over).  

  • Sincronización independiente: Funciona sin necesidad de tener el iPhone conectado.

  • Llamadas y videollamadas: Soporte para audio y video en alta calidad.  

  • Notificaciones en tiempo real: Igual que en el móvil.  

  • Cifrado de extremo a extremo: Lo mismo que en todos lados.  


La aplicación ya está disponible en la App Store y es compatible con iPads que ejecuten iPadOS 15 o superior. El proceso de configuración es sencillo, explicaría el tema de configuración y cómo descargarla pero eso ya lo saben.

Pero… Y por qué tardó tanto en liberarse? A diferencia de Telegram o Signal, que llevaban años con apps nativas para iPad, WhatsApp había priorizado su desarrollo en móviles y ordenadores, según fuentes internas el retraso se debió a desafíos técnicos en la sincronización multidispositivo (Pero, pero, pero...), que ahora han sido resueltos con la infraestructura mejorada de Meta.  

Cabe mencionar que aún no soporta temas personalizados ni accesos directos con el Apple Pencil, pero no se descarta que pronto lleguen incluidas en nuevas actualizaciones.

Por lo pronto a disfrutar de una versión que debió llegar hace mucho.


martes, 3 de junio de 2025

Solución al control de velocidad de ventiladores de tarjetas Nvidia en Ubuntu 22.04 LTS

 


Hace poco instale Ubuntu 22.04 LTS en uno de mis equipos, dicho equipo dispone de una Asus ROG STRIX RTX 3070, todo excelente en cuestiones de rendimiento hasta que... Me dio por revisar la configuración de NVIDIA X Server Settings y algo no estaba bien, la temperatura de la GPU se elevaba demasiado, así que decidí mirar a través del cristal del case y voila, los ventiladores estaban apagados.

Como todos busque información y soluciones en ChatGPT y DeepSeek, ambos me dieron respuestas similares, que re instalación de drivers, configuración xorg, etc, etc, etc. Que lo único que hicieron fue dar dolores de cabeza y empeorar el problema.

Y pues bueno me fui por la antigua, a buscar en Google, entre varias respuestas y comparando errores de la consola dí con esto:


sudo vim /etc/X11/Xwrapper.config

Luego agregar esta linea:


needs_root_rights=yes

Esta linea debe ir antes de allowed_users=console, de manera que queda así:


needs_root_rights=yes
allowed_users=console

Ahora se debe reiniciar y ya tienes el control de la velocidad de los ventiladores de tu RTX a través de la interface de configuración de Nvidia o mediante comandos. Y pasa que el problema se da por permisos en x11, lo que impide la modificación, a buena hora se resuelve así.

Ojo! Esto es usando X11 aclaro, espero esto les ahorre dolores de cabeza.

lunes, 2 de junio de 2025

Time Machine (Apple, Mac)

 


Time machine es de esas cosas que todos necesitamos pero no todos lo sabemos o conocemos, lastimosamente es algo que solo encontrarás en equipos Mac (Y sus variantes), a mi personalmente me ha salvado la vida, por ejemplo cuando me quede sin espacio en mi MacBook y requerí aumentarlo cambiando el M2 integrado, conectar un SSD externo para respaldar toda mi Mac fue de alivio, bueno es una costumbre para muchos sobre todo en el mundo del desarrollo, donde pese a contar con Git un backup local se hace necesario, pero Time Machine va más allá, porque te respalda absolutamente todo, TODO, de manera que al instalar el MacOS en la nueva M2 del equipo y restaurar TODO con el Time Machine la maquina quedo justo como estaba antes, era la misma con todos mis archivos, programas y configuración completas, pero ahora con muchísimo más espacio.


No me queda más que decir, gracias Time Machine!!


Y claro, no solo uso Mac, también utilizo Ubuntu, y pues indagando se que ahora se puede hacer lo mismo usando un par de herramientas, de las que debo documentar su uso en estas memorias, como no!


Gracias por leer un poco mi frustración y alivio.