25-diciembre-2015
admin

Cómo exprimir DuckDuckGo

DuckDuckGo (DDG) es un motor de búsqueda establecido en Valley Forge, Pensilvania, Estados Unidos, que utiliza la información de sitios de origen público (como Wikipedia) con el objetivo de aumentar los resultados tradicionales y mejorar la relevancia. La filosofía de DuckDuckGo hace hincapié en la privacidad y en no registrar la información del usuario. De esta forma los datos introducidos no son guardados ni utilizados salvo para el objetivo que el usuario quería: realizar una búsqueda.

Atajos
Se pueden utilizar ciertas teclas para moverse entre los resultados de búsqueda rápidamente:
– d: Busca más resultados en el sitio web resaltado.
– CTRL+ENTER: Abre resultado en una nueva ventana.
– ESC: Sale de la caja de búsqueda y va a los resultados.
– h: Posiciona de nuevo el cursor en la caja de búsqueda.
– r: Si existe, va a los relacionados.
– s: Si existe, va al enlace sugerido (errores de ortografía)
– t: Vuelve a la parte superior de la página.

Bangs
Los comandos Bang consisten en un operador formado por el símbolo ! más una palabra o conjunto de letras. Según el comando usado, realizaremos una acción determinada. De esta forma te permiten buscar en en buscadores externos.
Hay unos 7000 bangs disponibles catalogados por categorías. ver aquí.

DuckDuckGo Wikipedia
Guia de Trucos
Guia de trucos 2

20-diciembre-2015
admin

Añadir banner de publicidad Admob en Android

Documentación oficial

A modo de resumen sería:

1 – Incluir en el proyecto la depencia para utilizar Mobile Ads SDK.
‘com.google.android.gms:play-services-ads:8.3.0’

2 – Obtener el Ad Unit ID para tú aplicación se puede colocar en el strings.xml.
ca-app-pub-XXXXXXXXXXXXXXXX/NNNNNNNNNN

3 – Añadir en tu activity layout el AdView que contendrá el banner. (No olvidar incluir el namespace xmlns:ads=»http://schemas.android.com/apk/res-auto»)

    < com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id">
    < /com.google.android.gms.ads.AdView>

4 – Cargar el adview en la activity.

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends ActionBarActivity {

    ...

    protected void onCreate(Bundle savedInstanceState) {
        ....
        AdView mAdView = (AdView) findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }
    ...
}
15-diciembre-2015
admin

Error al intentar conectar a redes inalámbricas, al utilizar el asistente de Windows indica revise el artículo KB87122

Cuando en Windows XP al intentar conectar con redes inalámbricas se muestra el error:

«Windows no puede configurar esta conexión inalámbrica.
Si tiene habilitado otro programa para administrar esta conexión inalámbrica, use dicho software.
Si desea que Windows configure esta conexión inalámbrica, incicie el servicio Configuración inalámbrica rápida (WZC). Para obtener información acerca de cómo iniciar el servicio WZC, vea el artículo 87122 en Microsoft Knowledge Base en el sitio Web de microsoft.com.»

Se puede intentar solucionar solucionar haciendo lo siguiente:
1 – Ir a Panel de Control -> Herramientas Administrativas -> Servicios
2 – Buscar la opción de «Configuración inalámbrica rápida», darle click al botón derecho y seleccionar propiedades.
3 – Una vez dentro de las propiedades, se debe buscar la casilla «Tipo de Inicio» y ponerlo en AUTOMATICO.

10-diciembre-2015
admin

Descargar imágenes de la web usando Python

Existen distintos métodos para descargarse imágenes de la web desde una aplicación python. A continuación vamos a exponer dos ejemplos:

Ej 1/ Utilizando el módulo httplib

import httplib

...

'''
   Se conecta con el servidor y se hace la petición de la imagen
'''
conn = httplib.HTTPConnection("www.url.com")
conn.request ("GET", '/img/imagen.jpg')
r = conn.getresponse()
	
'''
    se guarda la imagen en disco mediante la creación de un fichero
'''
fichero = file( '/home/img/imagen.jpg', "wb" )
fichero.write(r.read())
fichero.close()
...

Ej 2/ Utilizando los módulos PIL, urllib y StringIO

from PIL import Image
from urllib import urlopen
from StringIO import StringIO
 
'''
   Se descarga la imagen y se almacena en una cadena
'''
URL = 'http://www.url.com/img/imagen.jpg'
data = urlopen(URL).read() 

'''
   Se convierte a fichero con StringIO y luego se convierte en imagen
'''
file = StringIO(data) 
img = Image.open(file) 

'''
   Se almacena en disco
'''
img.save('/home/img/imagen.jpg')
5-diciembre-2015
admin

Groovy Goodness: Porque groovy no es java sin punto y coma

Charla bastante interesante para conocer groovy. Realizada en el Codemotion Madrid 2014 por Pablo Alba.

Slideshare

30-noviembre-2015
admin

Python throws UnicodeEncodeError

Documentación oficial Caracteres Unicode en Python

Ejemplo:

'''
   Se declara una variable con caracteres unicode
'''
>>> u = unichr(40960) + u'abcd' + unichr(1972)
>>> u.encode('utf-8')
'\xea\x80\x80abcd\xde\xb4'


'''
   Se aplica un encode ASCII para la conversión de la variable. 
   Se puede ver que falla.
'''
>>> u.encode('ascii')                       
Traceback (most recent call last):
    ...
UnicodeEncodeError: 'ascii' codec can't encode character u'\ua000' in
position 0: ordinal not in range(128)


'''
   Se vuelve a aplicar diciéndole que ignore los caracteres unicode
   superiores a los 8 bits (127)
'''
>>> u.encode('ascii', 'ignore')
'abcd'


'''
   Se vuelve a aplicar diciéndole que reemplace esos carácteres por 
   U+FFFD (REPLACEMENT CHARACTER)
'''
>>> u.encode('ascii', 'replace')
'?abcd?'


'''
   Se vuelve a aplicar reemplazándo esos caracteres por su equivalente html.
'''
>>> u.encode('ascii', 'xmlcharrefreplace')
'& #40960;abcd& #1972;'
25-noviembre-2015
admin

Módulo de python para traducciones: Goslate

Google Translate tiene un API que permite usar el traductor desde un programa, en el caso de Python se tiene goslate.

Documentación oficial de Goslate

Para utilizarlo basta con instalarlo.

pip install goslate

Ejemplos de uso

1/ Detectar el lenguaje

import golsate
gs = goslate.Goslate()
language_id = gs.detect('hallo welt')
language_desc = gs.get_languages()[language_id]

language_id = de
language_desc = German

2/ Traducir una palabra al español

import golsate
gs = goslate.Goslate()
word = gs.translate('hello','es')

word = hola

Nota: Otra opción en python puede ser utilizar Translate API Client Library for Python

21-noviembre-2015
admin

Ejemplo de uso de SQlite3 con Python

SqLite es un paquete de software de dominio público que proporciona un sistema de gestión de base de datos relacional.
Documentación oficial de SQlite3 en python 3.5

Ejemplo sencillo de uso:

import sqlite3
....
con = sqlite3.connect('C:\\base_datos.db')
cursor = con.cursor()
print 'Conectado a la BD base_datos.db'
....
self.cursor.execute('''CREATE TABLE IF NOT EXISTS COMMENT(
                    id    INT    NOT NULL,
                    comment    TEXT    NOT NULL,
                    user    TEXT
                    )''')
print 'Creada la tabla Comment'
....
str2 = "INSERT INTO COMMENT (id, comment, user) "
str2 = str2 + "VALUES (?, ?, ? )"
self.cursor.execute(str2, (1, "comentario realizado", "pedro"))
print 'Comentario insertado correctamente'
....
self.cursor.execute("DROP TABLE IF EXISTS COMMENT")
print 'Borrada la tabla Comment'
....

Nota: Al intentar conectar a la base de datos si no existe se creará con el nombre y la ruta que se especifique.

19-noviembre-2015
admin

Web Scraping en Python con Requests y lxml

El módulo Requests simplifica el manejo HTTP, mientras que lxml se utiliza para procesar los documentos HTML.

– Documentación oficial lxml
– Documentación oficial requests

Instalación de las librerias.

python -m pip install -U pip
cd C:\Python27\Scripts
pip install lxml
pip install requests

Ejemplo de uso:

page = requests.get("http://url.com")
tree = html.fromstring(page.text)
table = tree.xpath('//table[@id=”prueba”]')
print 'Total de tablas con id=prueba ', len(table) 
10-septiembre-2015
admin

Cumplir legislación europea para el uso de cookies

Por ley estamos obligados a avisar al usuario del uso de cookies para su conocimiento. A continuación, algunas formas de adaptarnos a ello:

Para WordPress
Existen numerosos plugins que te permiten incorporarlo… uno de ellos es Cookie Notice. Bastante sencillo y fácil de utilizar. https://wordpress.org/plugins/cookie-notice/

Apps Android
Una solución bastante sencilla sería añadir una pantalla inicial avisando del uso de cookies.
Ejemplo de creación de pantalla de inicio: http://gerardoperrucci.com.ar/android/como-crear-un-pantalla-de-inicio-de-nuestras-app

Webs Personales
Se puede mostrar el mensaje de advertencia de forma manual en un sitio visible con un botón para aceptar. Almacenando en una cookie que ya se han aceptado las políticas de uso de cookies, para que deje de salir el mensaje.

function controlcookies() {
	document.getElementById("cookie1").innerHTML = "";
	createCookie('aviso_politicas_web', 1, 30);
}
function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) 
              return c.substring(nameEQ.length,c.length);
    }
    return null;
}
    < p id="cookie1" style="text-align:center;width:100%;">
    Utilizamos cookies para asegurar que damos la mejor experiencia al 
usuario en nuestro sitio web. Si continúa utilizando este sitio
asumiremos que está de acuerdo.
    < button onclick="controlcookies()">Aceptar< /button>
    < /p>
    < script type="text/javascript">
	var aviso_nueva_web = readCookie('aviso_politicas_web');
	if(! (!aviso_nueva_web || (aviso_nueva_web == '')) ) {
		controlcookies();
	}
    < /script>
Páginas:«1...10111213141516...30»

Categorias

Linkedin