Avisar de contenido inadecuado
Expand

Scrapy web crawling con python

Hoy os voy a comentar sobre scrapy   un framework en python como no! que estoy investigando muy potente, basicamente sirve para leer contenido web y extraer la información que queramos...

class MininovaSpider(CrawlSpider):
   domain_name = 'mininova.org'
  start_urls = ['http://www.mininova.org/today']
  rules = [Rule(SgmlLinkExtractor(allow=['/tor/\d+']), 'parse_torrent')]

  def parse_torrent(self, response):
      x = HtmlXPathSelector(response)
      torrent = ScrapedItem()
      torrent.url = response.url
      torrent.name = x.x("//h1/text()").extract()
      torrent.description = x.x("//div[@id='description']").extract()
      torrent.size = x.x("//div[@id='info-left']/p[2]/text()[2]").extract()
      return [torrent]

En este ejemplo podeis ver como facilmente extraemos el titulo, la descripción,  el enlace y el tamaño, os dejo a vuestra imaginación lo podemos llegar a hacer

{
}
Expand

Ejecutar aplicaciones a distancia. Parte 1.

Recientemente he descubierto una interacción muy interesante entre dos aplicaciones: utorrent (descarga de torrents) y dropbox (permite actualizar ficheros entre dos ordenadores o en la "nube")
Resulta que Utorrent tiene la opción de especificar una carpeta de lectura de torrents, es decir, leer los ficheros .torrent de una carpeta en cuanto aparezcan y empezar a descargar automáticamente.
Es un proceso muy útil cuando no queremos tener un acceso remoto hacia nuetro pc pero sin embargo si que queremos que se vayan descargando los ficheros, no se si me he explicado bien así que os pongo un ejemplo práctico.
En mi casa dejo la aplicación utorrent a la espera (o descargando) y la aplicación dropbox activa (en espera de cualquier actualización).
Desde el trabajo decido bajarme un fichero .torrent, pero no puedo o quiero descargar el contenido desde ese sitio, así que decido subirlo al servidor de dropbox para que se actualice en mi casa.
En cuanto esté descargado desde el pc de casa, la aplicación Utorrent reconocerá un nuevo fichero, lo moverá de carpeta y empezará a descargarlo automáticamente...
Pero ¿donde quieres ir a parar?
Muy sencillo, ¿Por qué no aprovechar esta gran utilidad?

Expand

48 hours vs five develovers

Que és develovers?, pues eso amantes del desarrollo (traducción tipo "y me quedo tan pancho"), vamos a hacer honor a nuestro nombre y os voy hablar de 5 programadores web que se enfrentan al tiempo, un proyecto en 48 horas.

Estos amantes del desarrollo son los chicos de thecodefarm que han desarrollado un proyecto en 48horas estos chicos de Vizcaya son la leche, realizan proyectos muy interesantes el de dkpboard merece la pena echarle un ojo con calma, going todo que todavia no han publicado, pero todos ellos con un diseño cuidadisimo, además de estar desarrollados en Django.

Felicidades chic@s, seguir así, sois los develovers del mes.

Expand

Validar un DNI/NIF con Javascript

Función para validar un DNI o NIF con Javascript, para detectar que es un identificador válido.

 

Función que recoje dos parámetros el numero y la letra.

Se puede invocar de esta forma: 
Suponiendo que iNif sea el texto que contiene el DNI.

if (/^[0123456789]/.test(iNif)){

// usando expresiones regulares detectamos si empieza
//por numero  entonces es un NIF

    return ValidarNIF(iNif.substr(0,8),iNif.substr(8,9).toUpperCase());//Le pasamos la letra en mayúsculas.
}

Y la función queda asi:

{
}
Expand

Envia mails a traves de gmail con python

Taller practico que explicaremos como enviar el mismo mail a varios correos como si solo se lo hubieramos enviado a ellos.

Vamos a utilizar Python y la libreria de smtplib es muy facil pero para empezar no esta mal, lo primero que hacemos es importarnos los modulos necesarios para el envio, y el tipo de mensaje.

import smtplib
import mimetypes

 

Expand

Cambiar de base con Javascript

Es posible que tengamos la necesidad de cambiar la base de un número para realizar cálculos .

Javascript nos proporciona un método muy útil para estos casos, se trata de

objeto.toSring([base])

Este método recibe opcionalmente el parámetro base.

Al especificarle una base y recuperar el valor de este método de un objecto nos devolverá su símil con el cambio de base.
Si no se especifica ninguna base, el método devolverá una cadena de texto.

Como bases tenemos disponibles  principalmente:

  • Decimal (10)      (del 0 al 9)
  • Hexadecimal (16) (del 0-9 y de la A - F )
  • Binario (2) (0 y 1)
  • Octal(8) (de 0 a 7)

Veamos el código de un ejemplo:

Expand

Librerias especificas de Javascript

Los chicos de smashing magazine han hecho de las suyas, han publicado un post impresionante de las 40 Librerías javascript mas útiles además de nombrarlas las han categorizado, espectacular.

No os voy a nombrar todas solo las que me han parecido más interesantes

  • Formularios

    wForms librería open-source que simplifica las tareas mas comunes al trabajar con formularios desde javascript
  • Animación

    $fx() es una librería muy ligera para animar objetos html, a traves de la alteración de sus propiedades css siguiendo una linea de tiempo rollo flash.
  • Gráficos de Estadísticas

    JS charts gran librería para realizar gráficos de estadísticas, desde gráficos con barras, quesitos, o lineas
  • Fechas

    Date.js Que gran librería, simplifica el trabajo tedioso de fechas increíblemente, totalmente recomendada
  • Expresiones Regulares

    XRegExp esta librería añade mas potencia al objeto RegExp de javascript.
  • Fuentes

    Typeface.js gran librería no obstrusiva sin necesidad de usar flash totalmente javascript.
  • Debugging y Logging

    Blackbird esta librería nos proporciona una consola para logs, filtrar mensajes en javascript, a estudiar.
    Firebug Lite Firebug en todos los navegadores insertando esta librería.