Las tiles son pequeños recuadros que conforman una pantalla de inicio bastante dinámica mostrando en llamativos colores la información necesaria para mostrar lo que sucede en nuestras aplicaciones instaladas.

En esta oportunidad, vamos a aprender como crear unas tiles personalizadas para nuestro sitio web:

Facil

No es cosa del otro mundo ni complicada hacer solo debemos ir a este sitio web y seguir los pasos que nos piden.

  • Title
  • Que es el titulo de nuestro sitio web
  • Background color
  • Que no es mas que el color de fondo del "tile"
  • Subir una imagen
  • Esta imagen puede ser el logo de nuestra web
  • Notificaciones
  • En este apartado debemos colocar la URL de nuestro feed
  • Obtenemos el codigo
  • Hay varias formas de usarlo
  • Subiendo los archivos que nos proporcionan en la pagina web
  • Agregando una meta etiqueta

Agregando estos cambios al blog

Este blog usa pelican, un generador de contenidos estatico que funciona con python si tambien usas pelican y quieres agregar una tile a tu blog debes incluir esto en tu pelicanconf.py

``` STATIC_PATHS = ['static/browserconfig.xml', 'static/large.png', 'static/square.png', 'static/tiny.png', 'static/wide.png',] EXTRA_PATH_METADATA = { 'static/browserconfig.xml': {'path': 'browserconfig.xml'}, 'static/large.png': {'path': 'large.png'}, 'static/square.png': {'path': 'square.png'}, 'static/tiny.png': {'path': 'tiny.png'}, 'static/wide.png': {'path':'wide.png'}, } ```
Yo tengo el contenido dentro de una carpeta llamada static. Esto es todo, espero que les guste!! Saludos

Leer más

Dejar de seguir a quienes no te siguen en Twitter con este script de Python. Hace unas semanas hice un script en Python que permitía saber quienes no te seguían pero con el cambio de la API a la versión 1.1 quedo obsoleto. Entre las peticiones que he recibido aparte de ponerlo a funcionar con la API nueva era para dejar de seguir a esos que no te seguían.

El siguiente script no te dice los nombres de quienes no te siguen como lo hacia el que mencione anteriormente pero cuenta cuantos de los que tu sigues no te siguen y los deja de seguir. Antes de ejecutarlo les recomiendo que organicen las cuentas que ustedes siguen y que tal vez no los sigan en listas, por ejemplo crear una lista con todas sus fuentes de noticia o una de robots y comedia, etc.

Este es el script:

import requests
from requests_oauthlib import OAuth1
import re
from time import sleep
import operator
import sys
import os
import collections


consumer_key=''
consumer_secret=''
access_token_key=''
access_token_secret=''


def get_follower_ids():
  cursor = "-1"
  listadeIDs = []
  while cursor != '0':
    try:
      api_url='https://api.twitter.com/1.1/followers/ids.json'
      payload = {'count':'5000', 'cursor':cursor}
      auth = OAuth1(consumer_key, consumer_secret, access_token_key, access_token_secret)
      r = requests.get(api_url, stream=False, auth=auth, params=payload)
      if r.headers['x-rate-limit-remaining'] and r.headers['x-rate-limit-remaining'] == "0":
        time_out = int(r.headers["x-rate-limit-reset"]) - int(time.time())
        print("We reached rate limit for ", api_url)
        print "Try again in", time_out, "seconds"
        quit()
      IDs = json.loads(r.content)
      cursor = IDs['next_cursor_str']
      listadeIDs = listadeIDs + IDs['ids']
      sleep(1)
    except KeyError:
      print "Unable to navigate through cursors, last attempt: ", cursor
      break
  return list(set(listadeIDs))


def get_friends_ids():
  cursor = "-1"
  listadeIDs = []
  while cursor != '0':
    try:
      api_url='https://api.twitter.com/1.1/friends/ids.json'
      payload = {'count':'5000', 'cursor':cursor}
      auth = OAuth1(consumer_key, consumer_secret, access_token_key, access_token_secret)
      r = requests.get(api_url, stream=False, auth=auth, params=payload)
      if r.headers['x-rate-limit-remaining'] and r.headers['x-rate-limit-remaining'] == "0":
        print("We reached rate limit for ", api_url)
        print("Try again at", r.headers["x-rate-limit-reset"])
        quit()
      IDs = json.loads(r.content)
      cursor = IDs['next_cursor_str']
      listadeIDs = listadeIDs + IDs['ids']
      sleep(1)
    except KeyError:
      print "Unable to navigate through cursors, last attempt: ", cursor
      break
  return list(set(listadeIDs))



def get_unfollowers_info(unfollowers):
   print len(unfollowers)
   api_url='https://api.twitter.com/1.1/users/lookup.json'
   auth = OAuth1(consumer_key, consumer_secret, access_token_key, access_token_secret)
   user_objs = {}
   sleep(1)
   i = 0
   user_id = []
   for i in unfollowers:
     user_id.append(i)
     if (len(user_id) == 100):
       payload = {'user_id':user_id}
       r = requests.get(api_url, stream=False, auth=auth, params=payload)
       if r.headers['x-rate-limit-remaining'] and r.headers['x-rate-limit-remaining'] == "0":
         print("We reached rate limit for ", api_url)
           print("Try again at", r.headers["x-rate-limit-reset"])
         quit()
       tmp_user_objs = json.loads(r.content)
       for y in range(len(tmp_user_objs)):
         print tmp_user_objs[y]['screen_name'] , tmp_user_objs[y]['followers_count'] , tmp_user_objs[y]['friends_count'] , tmp_user_objs[y]['following'] , tmp_user_objs[y]['verified'], tmp_user_objs[y]['default_profile']
       user_objs = user_objs , tmp_user_objs
       user_id = []
   payload = {'user_id':user_id}
   r = requests.get(api_url, stream=False, auth=auth, params=payload)
   if r.headers['x-rate-limit-remaining'] and r.headers['x-rate-limit-remaining'] == "0":
     print("We reached rate limit for ", api_url)
     print("Try again at", r.headers["x-rate-limit-reset"])
     quit()
   tmp_user_objs = json.loads(r.content)
   user_objs = user_objs , tmp_user_objs

def unfollow_by_id(user_id):
  api_url='https://api.twitter.com/1.1/friendships/destroy.json'
  payload = {'user_id':user_id}
  auth = OAuth1(consumer_key, consumer_secret, access_token_key, access_token_secret)
  r = requests.post(api_url, stream=False, auth=auth, params=payload)



followers = get_follower_ids()
print "Followers: ", len(followers)
following = get_friends_ids()
print "Following: ", len(following)



unfollower_ids = set(following) - set(followers)
print "unfollower ids: ", unfollower_ids , len(unfollower_ids)


get_unfollowers_info(unfollower_ids)
print "About to unfollow: " , len(unfollower_ids) , "users."
sleep(10)

for user_id in unfollower_ids:
  print "Unfollowing ", user_id
  unfollow_by_id(user_id)

En este script a diferencia de los anteriores que he hecho no use el módulo python-twitter y como ven intento trabajar con el API y su rate-limit En mi caso al ejecutarlo deje de seguir a algunas cuentas de comedia, noticias y cuentas interesantes que enriquecían mi timeline.

Si el tiempo me lo permite, en la próxima versión creo que voy a agregar esos usuarios a una lista privada antes de dejarlos de seguir. He trabajado en otros scripts privados en calcular la importancia de una cuenta en base a la cantidad de seguidores, cantidad de personas que esta sigue, cantidad de tweets, edad de la cuenta y otros factores que tal vez incorpore en un futuro.

Como siempre en todos mis publicaciones que tiene que ver con Python, les agradecería mucho si me dan consejos de como mejorar este script o la lógica del mismo, Incluso pull requests al repo github.com/orvtech/Python-tools-for-twitter/blob/master/unfollow-unfollowers.py.

Leer más

En nuestra publicación anterior (Instalación: Fuentes Equivalentes a Arial y Times New Roman) les comentamos cómo es el procedimiento para instalar fuentes nuevas en tus sistema GNU/Linux y cuales son aquellas fuentes equivalentes a las fuentes de MS Windows como Arial, Times New Roman, entre otras. En esta oportunidad, les vamos a mencionar cuál es el paquete que deben instalar para tener las fuentes completas "Microsoft True Type Core Fonts". Las cuales incluye:
  • Andale Mono 
  • Arial Black 
  • Arial (Bold, Italic, Bold Italic) 
  • Comic Sans MS (Bold) 
  • Courier New (Bold, Italic, Bold Italic) 
  • Georgia (Bold, Italic, Bold Italic) 
  • Impact Times New Roman (Bold, Italic, Bold Italic) 
  • Trebuchet (Bold, Italic, Bold Italic) 
  • Verdana (Bold, Italic, Bold Italic) 
  • Webdings


Es tan sencillo como realizar la instalación del paquete msttcorefonts. Como les hemos comentado en otras publicaciones deben estar como SuperUsuario para realizar estas instalaciones, si tienen dudas del nombre exacto del paquete se recomienda primero hacer:

aptitude search nombre_paquete

Luego que ya sepamos el nombre exacto, procedemos a realizar la instalación

sudo aptitude install nombre_paquete

Recordándoles también, que estos comandos son usados cuando son sistemas basados en Debian. De esta manera tendrán instaladas estas fuentes en su sistema en caso de requerirlas, como por ejemplo, para la navegación web tener las fuentes instaladas.

Cualquier duda, comentario o información puedes escribirnos a consulta_friki@kioscofriki.com.ve 
Y recuerda, si esta información te ayudó y quieres colaborarnos económicamente puedes hacer tu donación aquí

Leer más

Anyela

Anyela

Tu asistente personal en la terminal desarrollada con node.js

Instalación

``` npm install anyela ```
Uso --- Anyela es lo que tú terminal necesita Anyela fue creada con el fin de ser una alternativa a Betty, Siri o Google Now en la alternativa, la misma es desarrollada con node.js, Anyela puede resolver tus problemas con la terminal en linux Proximamente en otras plataformas Su uso es muy sencillo, anyela es capaz de realizar las siguientes funciones: - Ver archivos por terminal: `que archivos hay aqui` - administrar archivos: `quiero administrar archivos` - abrir editor de programación: `quiero programar` - navegar en internet: `quiero navegar en internet` - apagar equipo: `apagate` - reiniciar equipo: `reiniciate` - abrir reproductor de musica: `quiero escuchar musica || quiero escuchar una buena rola` - limpiar cache de la pc: `libera la ram` - configurar el sistema: `configura el sistema` - enviar un correo: `enviar un correo` Versión web ----------- La versión web posee un diseño intuitvo hecha con jquerymobile para el uso en distintas plataformas bajo el responsive design La misma se activa con el comando `sudo node_modules/anyela/modulos/server.js` Para más información clic [aquí](https://www.npmjs.com/package/anyela).

Leer más

Instalando Homebrew

Este será un post sencillo y directo... Así que vamos a ello!!

Para instalar homebrew solo debemos colocar en la terminal:

``` ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ```
le damos enter y vamos a obtener una salida parecida esta:
``` ==> This script will install: /usr/local/bin/brew /usr/local/Library/... /usr/local/share/man/man1/brew.1 Press RETURN to continue or any other key to abort # le damos a enter para continuar ==> /usr/bin/sudo /bin/mkdir /usr/local Password: ==> /usr/bin/sudo /bin/chmod g+rwx /usr/local ==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local ==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew ==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew ==> Downloading and installing Homebrew... ==> Installation successful! ==> Next steps Install the Command Line Tools for Xcode: https://developer.apple.com/downloads Run `brew doctor` before you install anything Run `brew help` to get started TMA:/ abr4xas$ brew doctor Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue. If everything you use Homebrew for is working fine: please don't worry and just ignore them. Thanks! Warning: Git could not be found in your PATH. Homebrew uses Git for several internal functions, and some formulae use Git checkouts instead of stable tarballs. You may want to install Git: brew install git Warning: No developer tools installed. You should install the Command Line Tools. The standalone package can be obtained from https://developer.apple.com/downloads or it can be installed via Xcode's preferences. ```
Luego de eso, nos toca instalar `Xcode command line tools` Puedes instalar el instalador desde esta pagina de [descargas](https://github.com/kennethreitz/osx-gcc-installer/downloads) o puedes usar los siguentes links: - OS X 10.8 Mountain Lion: [GCC-10.7.pkg](https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg) (Includes 10.7 Headers, so use with caution). - OS X 10.7 Lion: [GCC-10.7.pkg](https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg) - OS X 10.6 Snow Leopard: [GCC-10.6.pkg](https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.6.pkg) Ahora, para revisar si todo esta bien probamos instalando `wget` para eso, escribimos en la terminal:
``` $ brew install wget ```
Y debemos tener un mensaje parecido a este (despues de instalar sus dependencias que son: `xz`, `makedepend`, `openssl`):
``` ==> Installing wget ==> Downloading http://ftpmirror.gnu.org/wget/wget-1.16.tar.xz ? /usr/local/Cellar/wget/1.16: 9 files, 956K, built in 115 seconds ```
Listo!! Ya tenemos `brew`, `Xcode command line tools` y `wget` instalados en el MAC :D Concideraciones: ---------------- Es recomendable hacer: - `brew update` - `brew doctor` ACTUALIZADO ----------- Luego de instalar las `Xcode command line tools` me dio "ciertos" problemas al instalar git, abri este ticket [\#34960](https://github.com/Homebrew/homebrew/issues/34960#issuecomment-66895313) y la respuesta de @[jacknagel](https://github.com/Homebrew/homebrew/issues/34960#issuecomment-66895313) fue muy "directa" debido a esto, realice lo siguiente: - Desinstalar `osx-gcc-installer` - Reiniciar - Instalar Xcode 4.3 - Correr nuevamente `brew doctor` - Listo ### Como desinstalar `osx-gcc-installer` Facil!! En la terminal como root escribimos `/Library/Developer/4.1/uninstall-devtools -mode=all` esperamos unos momentos y listo, ya eliminamos `osx-gcc-installer`. Continuamos con los otros pasos. Instalando `Xcode 4.3` ---------------------- Vamos a [developer.apple.com](https://developer.apple.com/downloads) buscamos `Xcode 4.3` lo bajamos (pesa 137 mb) lo instalamos y listo. Que paso con git? ----------------- Bueno, facil... En la terminal:
``` $ brew install git ```
Dejamos que haga lo que tenga que hacer y...
``` $ brew info git git: stable 2.2.0, HEAD http://git-scm.com /usr/local/Cellar/git/2.2.0 (1351 files, 32M) * Built from source From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/git.rb ```
Escribimos nuevamente: `echo 'export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profile`, reiniciamos la terminal (la cerramos) escribimos `git --version` y debemos tener un resultado como este: `git version 2.2.0` Y que dice el doctor? --------------------- Bueno, `brew doctor` sigue diciendo:
``` $ brew doctor Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue. If everything you use Homebrew for is working fine: please don't worry and just ignore them. Thanks! Warning: A newer Command Line Tools release is available. The standalone package can be obtained from https://developer.apple.com/downloads or it can be installed via Xcode's preferences. ```
Claro, sigue notificando que hay una nueva version de las `Command Line Tools` pero vamos, estoy usando (aun) Lion asi que no puedo hacer mas nada. :) Espero que les sea util este post!!

Leer más

Una forma rapida de implemetar en nuestras plantillas Material Design de google... Aun esta en desarrollo pero, podemos ir viendo de que va esto...

banner

Instalación

``` $ bower install bootstrap-material-design --save ```
Ejemplo de uso --------------
``` <button class="btn btn-material-deeppurple">Deep purple buttonbutton> ```
- Agrega: `.btn-flat` a la etiqueta `button` para hacerlo flat, sin sombras. - Agrega: `.btn-raised` a la etiqueta `button` para agregar una sombra permanente. Esta es la paleta de color tomada de Material Design: ![palette](https://github.com/FezVrasta/bootstrap-material-design/raw/master/demo/imgs/palette.jpg) Ayudar en el desarrollo ----------------------- Si deseas ayudar, por favor revisa este enlace: [CONTRIBUTING.md](https://github.com/FezVrasta/bootstrap-material-design/blob/master/CONTRIBUTING.md) file. Más info? --------- Si deseas tener mayor información de este proyecto te invito a seguir este [enlace](https://github.com/FezVrasta/bootstrap-material-design/blob/master/README.md)

Leer más

Un script python para optimizar imágenes .jpg y .png para la web.

Sigue los consejos de "Yahoo Best Practices for Speeding Up Your Web Site"sobre la optimización de imágenes.

Después de ejecutarlo, tienes una optimización sin perdida para las imágenes. Un pequeño ahorro de espacio por imagen, pero que acelera la carga de las paginas web y reduce el consumo de ancho de banda para un sitio web.

Requisitos previos y Dependencias

Lógicamente, lo primero que necesitamos para ejecutarlo es python. Si estamos en Linux o en Mac, normalmente viene instalado por defecto y no es un problema. Si nos encontramos en Windows, entonces nos lo podemos bajar de aquí.

La versión de python necesaria para ejecutar este script es la 2.6

img4web.py solo emplea módulos de la biblioteca estándar de python, por lo que no necesita ningún otro modulo.

Programas externos

Emplea el programa pngcrush y el comando jpegtran de la biblioteca libjpeg

En linux están normalmente disponibles en los repositorios de las distribuciones más populares, e.g.: En debian, Ubuntu como estos paquetes en sus repositorios: pngcrush & libjpeg-progs

Para instalarlos:

``` sudo aptitude install pngcrush && aptitude install libjpeg-progs -y ```
En Windows pngcrush puede ser descargado desde [aquí](http://sourceforge.net/projects/pmt/files/pngcrush-executables/) y libjpeg puede ser descargado (como gnuwin32) desde [aquí](http://gnuwin32.sourceforge.net/downlinks/jpeg.php) Esto ha sido probado en linux y Windows. Lo siento, no tengo un Mac. Instrucciones ------------- Necesitas ejecutar este script dentro de la carpeta donde están las imágenes que quieres optimizar. Ejecutarlo es muy sencillo, _en linux_
``` python img4web.py ```
_en windows_
``` (la ruta donde hayas instalado python)\python.exe img4web.py ```
Al final, tienes una nueva carpeta llamada **processed** donde están guardadas las nuevas imágenes procesadas. ¡Eso es todo! Sencillo, bonito y rápido! Características --------------- Después de la ejecución se muestra un pequeño informe con el ahorro de espacio de las imágenes por tipo. Como obtenerlo -------------- El código está alojado en un repositorio Git en GitHub, emplea este comando para poder clonarlo:
``` git clone git://github.com/joedicastro/img4web.git ```
Contribuciones -------------- Las contribuciones y las ideas son bienvenidas. Para contribuir a la mejora y evolución de este script, puedes enviar sugerencias o errores a través de el sistema de issues. Licencia -------- Este script están sujeto a la [Licencia GPLv3](http://www.gnu.org/licenses/gpl.html)

Leer más