All Posts

Personaliza tu Apple Watch con estas aplicaciones

Es evidente que ha la inmensa mayoría de las personas les gusta imprimir un diseño personal a su imagen. La forma de vestir o de peinarse refleja nuestra personalidad, nos diferencia del resto de humanos. No es de extrañar que también queramos llevar esta personalización a otros objetos que se han hecho cotidianos en nuestro entorno. Personalizar relojes y teléfonos inteligentes esta cada vez más en uso.

La última versión de watchOS, la versión 7, trae una importante característica que nos permite personalizar, aunque de forma limitada, las carátulas de nuestro reloj.

Una mejora que ha vuelto locos a muchos de los propietarios de este icónico reloj de Apple.

Por este motivo están apareciendo aplicaciones que comparten el diseño realizado por otros usuarios, para que cualquiera de nosotros personalicemos con estas esferas nuestro Apple Watch. Una analogía a nuestra forma de vestir, pero aquí vestimos a nuestro dispositivo, con las imágenes, formas y colores que nos sean más atractivos.

Una de estas aplicaciones es WatchFacely

Esta aplicación nos permite ver y descargar los diseños realizados por otros usuarios. Podemos realizar busquedas por usuario, tags, o ver los más populares, los añadidos recientemente o las colecciones. También podemos guardar nuestros favoritos para tenerlos siempre a mano.

Una vez seleccionada la esfera que nos gusta tan solo tendremos que pulsar en el botón “add Apple Watch Face“. Esta acción nos lleva a la aplicación “Watch“. Para añadir la esfera a nuestra colección pulsamos en “Añadir a mis esferas“, y ya estará disponible en nuestro reloj.

Esta nueva esfera la podemos personalizar aun más a nuestro gusto, cambiando colores, posiciones y complicaciones, desde la propia aplicación Watch.

Otra interesante aplicación es BuddyWatch. Esta aplicación quizas tenga diseños más elegantes, es solo cuestión de gustos.

Su funcionamiento es similar a la aplicacción anterior, navegamos por las diferentes caratulas que nos ofrece, cuando alguna nos gusta, tan solo debemos de pulsar en el botón “Download“, y seguir los pasos igual que en la aplicación anterior.

La aplicación también nos permite guardar las mejores caratulas para tenerlas siempre a mano. La esfera también nos ofrece información de las correas que mejor conbinan con dicha esfera.

Es verdad que los diseños ofrecidos por estas aplicaciones son bastante limitados, Apple no deja libertad absoluta para el diseño de las caratulas. Todos los diseños ofrecidos estan basados en la personalización de las caratulas ya existentes, pero el ingenio humano siempre nos puede sorprender, aun existiendo muchas limitaciones, se crean diseños muy atractivos y que ha nosotros no se nos hubieran ocurrido nunca.

Share

Brew, el gestor de paquetes para Mac.

Por lo general, en Mac resulta mucho más fácil instalar aplicaciones que en Windows, pero linux les gana por goleada, su sistema de instalación y actualización de paquetes es simplemente genial.

Brew nos aporta la versatilidad para la instalación de paquetes que tiene Linux. Brew es un gestor de paquetes para software libre que nos permitirá instalar todas aquellas aplicaciones que necesitamos, con el mínimo esfuerzo.

Aunque en un principio fue creado para sistemas Mac, hoy en día también puede ser utilizado en entornos Linux, beneficiando a sus usuarios del inmenso repositorio del que dispone, y que crece constantemente. 

Brew es una herramienta fundamental, que no debería faltar en tu sistema operativo. Su instalación es realmente sencilla, tan solo debes abrir una terminal e introducir el siguiente comando:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Si no tienes instalado en tu sistema la aplicación Xcode, debes instalar las herramientas de línea de comandos (CLT) de Xcode antes de instalar brew, con el siguiente comando:

xcode-select – install

Puedes saber más de Brew visitando su pagina web, aquí.

Para realizar la instalación de un paquete:

brew install nombre-del-paquete

Para ver los paquetes que se encuentran desactualizados.

brew outdated

Para actualizar los repositorios y la información de los paquetes que tenemos instalados, este comando no actualiza los paquetes en si.

brew update

Para actualizar todos los paquetes que estan desactualizados.

brew upgrade

Si solo queremos actualizar un paquete determinado usamos el comando siguiente.

brew upgrade nombre-del-paquete

Si necesitas desinstalar alguno de los paquete utiliza.

brew uninstall nombre-del-paquete

Ver los paquetes instalados.

brew list

Ten en cuenta que seguramente vas a ver una lista con muchos más paquetes de los que tu has instalado. Esto es debido a que muchos paquetes necesitan de otros paquetes para su funcionamiento, así que cuando instalas un determinado paquete o aplicación, si esta depende de otros paquetes, realizará de forma transparente la instalación de dichos paquetes o dependencias.

Si quieres obtener más información de un determinado paquete.

brew list nombre-del-paquete

Para buscar un paquete en los repositorios.

brew search nombre-o-parte-del-nombre-a-buscar

El comando “search“, te permite buscar un determinado paquete o todos aquellos que incluyen la palabra de busqueda en los repositorios de brew.

Por ejemplo si buscamos “man“, esto es lo que nos mostrará.

byteman                          mandoc                           riemann
commandbox                       mandown                          riemann-client
cppman                           manticoresearch                  schema-evolution-manager
foreman                          mecab-jumandic                   scm-manager
gearman                          midnight-commander               spaceman-diff
git-credential-manager           modman                           stdman
go-md2man                        myman                            stuntman
goreman                          newman                           talisman
helmsman                         nlohmann-json                    todoman
help2man                         pacman4console                   tre-command
juman                            pixman ✔                         watchman
jumanpp                          pod2man                          xmltoman
libflowmanager                   podman                           ykman
man-db                           powerman
man2html                         rds-command-line-tools

Como puedes ver, todos los resultados contienen la palabra “man“, que hemos utilizado para nuestra busqueda.

Los paquetes remarcados en negrita y con un check de verificación significa que ya lo tenemos instalado en nuestro sistema.

Con este útil comando podemos realizar la busqueda de los paquetes que necesitamos instalar.

Si por algún motivo no quieres que un determinado paquete se actualice, aunque esto no es muy recomendable, puedes utilizar el siguiente comando para impedir que dicho paquete se actualice al realizar un upgrade general.

brew pin nombre-del-paquete

Para que dicho paquete pueda ser actualizado nuevamente hay que desbloquear la acción anterior con.

brew unpin nombre-del-paquete

Para mostrar la vesión de brew instalada así como otra información de interes; versiones de Ruby, Git, Curl, macOS, CLT, Xcode, etc., rutas a diferentes directorios y otra información, utilizamos el comando.

brew config

Para ver los comandos disponibles en brew.

brew help

Espero que te sea de utilidad esta fabulosa herramienta.

Share

Guarda tus proyectos de git en iCloud, la nube de Apple

Si dispones de un dispositivo de Apple; iPhone, iPad o un Mac, o simplemente ya dispones de una cuenta en iCloud, tienes de forma gratuita almacenamiento en la nube con 5 GB. Por solo 0,99 € al mes, tu espacio de almacenamiento sube hasta los 50 GB.

iCloud te permite almacenar toda aquella información que requiere una copia de seguridad o cualquier otro tipo de datos que necesites tener sincronizado con tus diferentes dispositivos.

Si no dispones de una cuenta en iCloud, la puedes crear facilmente y de forma gratuita desde el siguiente enlace, aqui. Una vez en la pagina de Apple, debes pulsar en “Crear tu ID de Apple“.

iCloud es extremadamente util para recuperar datos, en caso de perdida o mal funcionamiento de alguno de nuestros dispositivos. Siempre tendremos la seguridad de que todos nuestros valiosos datos se encuentran a salvo.

Esta útil herramienta nos permite sincronizar nuestros proyectos en git hacia una carpeta en iCloud. De esta forma sencilla, utilizando el comando “git remote add origin (Ruta carpeta)“, vinculamos nuestro proyecto a dicha carpeta.

En Mac, para saber la ruta de la carpeta ubicada en “iCloud Drive“, abre una terminal y arrastra dicha carpeta a la terminal, te mostrara la ruta completa, será algo como:

/Users/(usuario)/Library/Mobile\ Documents/com\~apple\~CloudDocs/(carpeta) 

  • Usuario. Es nuestro usuario en Mac.
  • Carpeta. La carpeta que hemos creado para almacenar los datos de git.

Con el comando “git push -u origin master“, sincronizamos o subimos nuestro proyecto cada vez que lo actualicemos.

Para ver el directorio remoto al que esta vinculado nuestro proyecto utilizamos el comando “git remote -v

De una forma sencilla y economica podemos mantener una copia de suguridad en la nube de todos nuestros proyectos, que pueden ser recuperados en cualquier dispositivo, tan solo utilizando el id de Apple.

Share

Postgresql. Transformar los datos de columnas en filas.

Puede ocurrir que en algunas situaciones necesitemos obtener los datos de las columnas de una tabla en Postgres para que dicha información sea mostrada en filas.

Para ver el funcionamiento de este tipo de consultas vamos a crear una tabla con los primeros 6 meses del año. Utilizamos dos filas de datos obtenidos de forma aleatoria.

Creamos la tabla.

DROP TABLE IF EXISTS "public"."ventas";
CREATE TABLE "public"."ventas" (
  "id" int2 NOT NULL DEFAULT nextval('venta_id_seq'::regclass),
  "enero" int2,
  "febrero" int2,
  "marzo" int2,
  "abril" int2,
  "mayo" int2,
  "junio" int2
);
ALTER TABLE "public"."ventas" ADD CONSTRAINT "venta_pkey" PRIMARY KEY ("id");

Insertamos los datos aleatorios.

INSERT INTO "public"."ventas" VALUES (1, 400, 45, 234, 120, 112, 80);
INSERT INTO "public"."ventas" VALUES (2, 345, 90, 198, 98, 145, 144);

La siguiente consulta muestra los datos de las columnas en filas.

select id, 
unnest(array[enero, febrero, marzo, abril, mayo, junio]) AS importe,
unnest(array['Enero', 'Febrero', 'Marzo', 'Abril','Mayo','Junio']) AS meses											
FROM ventas 
group by id
order by id
idImporteMes
1400Enero
145Febreo
1234Marzo
1120Abril
1112Mayo
180Junio
2345Enero
290Febreo
2198Marzo
298Abril
2145Mayo
2144Junio

Con una consulta normal los datos se verán asi.

idEneroFebreroMarzoAbrilMayoJunio
14004523412011280
23459019898145144

Con la función “unnest” de postgres, y un par de arrays, conseguimos mostrar la información de cada una de las columnas de una tabla en una fila independiente. El segundo array que utilizamos es solo para mostrar en la fila el nombre de la columna correspondiente.

Este truco nos puede resultar muy útil cuando necesitamos mostrar los datos de una sola fila, en una tabla con muchas columnas, en vez de mostrar los datos en una extensa linea, podemos dividir cada columna en su correspondiente fila, mostrando la información de una forma más clara.

Share

17 trucos para Python

Sin lugar a dudas Python se ha convertido en el lenguaje más versátil de la última decada.

Es posible utilizarlo para multitud de propósitos; realizar scripts de mantenimiento, crear sofisticadas paginas web, aprendizaje automático (Machine Learning), desarrollo de aplicaciones de escritorio, análisis de datos, juegos, entre otras muchas más.

Y ademas es multi-plataforma, se puede utilizar en Windows, Mac, Linux y dispositivos móviles iOS y Android.

Os traemos 17 útiles trucos para Python:

Generar UUID. Los UUID son identificadores únicos universales compuesto de 32 dígitos hexadecimales, formando 5 grupos separados por guiones, 8-4-4-4-12.

import uuid
nuevo_id = uuid.uuid4()

Ver listas, diccionarios y sobre todo json con más claridad. Para ello utilizamos la función pprint.

import requests
import pprint

url = "https://randomuser.me/api/?results=1"
users = requests.get(url).json()

pprint.pprint(users)

Crea una sola cadena a partir de todos los elementos de una lista.

a = ["Python", "es", "el", "mejor"]
print(" ".join(a))

Listar los archivos de un directorio, sin mostrar los ocultos.

import os

def ls2(path): 
    return [obj.name for obj in os.scandir(path) if obj.is_file() and not obj.name.startswith('.')]

Mover archivos entre carpetas.

import shutil

shutil.move(archivo_origen, archivo_destino)

Iniciar un servidor estático en directorio local.

# En Mac y Linux 
python -m SimpleHTTPServer

# Windows 
python -m http.server

Mostar notificaciones en Mac.

import os

def notify(title, text):
    os.system("""
              osascript -e 'display notification "{}" with title "{}"'
              """.format(text, title))

Explorar las librerías. Muestra un listado con las funciones que contienen.

import requests
import collections

dir(requests)
dir(collections)

Valor por defecto en diccionario, si no existe la clave.

nombres = {1:'Casa', 2:'Patio', 3:'Jardin', 4:'Terraza'}
def  control(code):
    #return 'Zona: %s!' % nombres[code] #Expresión normal
    return 'Zona: %s!' % nombres.get(code, 'El lugar no exite')

print(control(5))

Sumar minutos a una hora.

from datetime import datetime, date, time, timedelta

ahora = datetime.now()
hora_actual = time(ahora.hour, ahora.minute, ahora.second)
minutos = (datetime.combine(datetime.date(ahora), hora_actual) + timedelta(minutes = 30)).time()

print(minutos)

Sumar dias a una fecha.

from datetime import datetime, date, time, timedelta

ahora = datetime.now()
nuevaFecha = ahora.date() + timedelta(days = 10)

print(nuevaFecha)

Evitar la salida de datos en Jupyter Notebook.

%%capture

a = ["Python", "es", "el", "mejor"]
print(" ".join(a))

Eliminar carácteres no alfanumericos.

import re

s = "La casa tiene && $$ %% Goteras de Caballo"
s = re.sub('[^0-9a-zA-Z]+', ' ', s)

print(s)

Reimportar modulo.

reload(modulo)

Emojis. Emojis con caracteres Unicode.

print(chr(128513))

Crea un diccionario a partir de 2 listas.

keys = ["a", "b", "c", "d", "e"]
valores = [1,2,3,4,5]

zipped = dict(zip(keys, valores))

print(zipped)

Ocultar el password al pedirlo por consola.

import getpass
usuario = raw_input("Introduce usuario: ")
password = getpass.getpass("Introduce password: ")
print(usuario, password)

Share