netPastiche

  • Beautiful Soup - malformed start tag

    reiven November 29, 2012
    View Comments

    Si estan corriendo Debian 6 y al quere hacer BeautifulSoup de una url se presenta el siguiente error:

    HTMLParser.HTMLParseError: malformed start tag, at line 982, column 12
    

    Este problema se da con versiones del la libreria que vienen en la distro, por lo que lo recomendable es actualizarla con easy_install:

    sudo apt-get remove python-beautifulsoup
    easy_install beautifulsoup
    

    Y listo!

  • pynientos

    reiven January 11, 2012
    View Comments

    Luego de varios dias de trabajo, subi a github una primera versión de una libreria para acceder a la API de 500px usango python.

    Desde aqui se puede acceder al repositorio.

    Gracias a Lucio y a ninja-ide el codigo es lo mas amigable con pep8 que pude :)

    Tal como dice el README del proyecto, actualmente la libreria solo soporta los GET que no requieren autenticación mediante OAuth, pero estoy trabajando para tener todas las funciones que brinda la api disponibles.

  • accediendo a la API de 500px desde python

    reiven January 2, 2012
    View Comments

    Hace un tiempo estoy usando 500px, un sitio de fotos bastante interesante, con una comunidad de fotografos mas que interesante.

    Tambien, hace un tiempo, el sitio abrio una primera version de su API. Como aun no hay ningun ejemplo de como conectarnos usando python , aqui les dejo una simple forma de conectarnos usando python-oauth2:

    import oauth2 as oauth
    import urllib
    import json
    
    #500px
    consumer = oauth.Consumer(key='your-key-here',secret='your-secret-here')
    
    # Request token URL for 500px.
    request_token_url = 'https://api.500px.com/v1/oauth/request_token'
    access_token_url = 'https://api.500px.com/v1/oauth/access_token'
    authorize_url = 'https://api.500px.com/v1/oauth/authorize'
    
    # Create our client.
    client = oauth.Client(consumer)
    
    # The OAuth Client request works just like httplib2 for the most part.
    resp, content = client.request(request_token_url,method="GET")
    
    if resp['status'] != '200':
        raise Exception("Invalid response %s." % resp['status'])
    
    print resp
    print content
    
  • nginx + uwsgi en modo vhost

    reiven August 22, 2011
    View Comments

    Finalmente hice andar nginx con uwsgi. Al principio lo hice funcionar con supervisor + uwsgi corriendo en un socket para cada sitio, pero luego de intentar (ya que no encontré documentación de cómo hacerlo) pude poner uwsgi en modo vhost para solo tener una instancia corriendo para todos los sitios.

    Desde supervisor, uwsgi esta funcionando con los siguientes parametros:

    [program:uwsgi_vhost]
    command=/usr/local/bin/uwsgi
      --socket 127.0.0.1:1088
      --processes 3
      --master
      --uid www-data
      --no-site
      --vhost
      --reload-os-env
    
    user=www-data
    autostart=true
    autorestart=true
    stdout_logfile=/var/log/uwsgi_main.log
    redirect_stderr=true
    stopsignal=QUIT
    

    En nginx , un virtualhost de ejemplo (netpastiche.com.ar)

    server {
        listen   xx.xx.xxx.xx:80;
        server_name  netpastiche.com.ar;
    
        # uwsgi for django
        location / {
            include uwsgi_params;
            uwsgi_param UWSGI_CHDIR /path/to/netpastiche.com.ar/public_html;
            uwsgi_param UWSGI_MODULE netpastiche_wsgi;
            uwsgi_pass  127.0.0.1:1088;
        }
        # static content
        location /static {
            root    /path/to/netpastiche.com.ar/public_html;
            expires 24h;
        }
    }
    

    Lo mas dificil fue hacer funcionar el sitio, ya que no estaba incluyendo en el pythonpath los paths donde estaba django instalado (netpastiche_uwsgi.py)

    import os, sys
    
    sys.path.append(os.path.dirname(__file__))
    sys.path.append('/usr/lib/pymodules/python2.6')
    sys.path.append('/usr/local/lib/python2.6/dist-packages/')
    os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
    import django.core.handlers.wsgi
    application = django.core.handlers.wsgi.WSGIHandler()
    
  • adios syncr

    reiven June 22, 2011
    View Comments

    Finalmente me decidí y quité syncr de este blog, ya que estaba dando "deprecation warning" en varios lados y no hay actualizaciones. Para acortar el camino programé mi propia app para sincronizar fotos de flickr, prontamente la podré online

  • disqus en django

    reiven September 15, 2010
    View Comments

    me parecio una buena idea implementar aca disqus, que permite con tu usuario de twitter/openid/etc comentar en cada post. no porque haya montones de comentarios, sino mas bien (como muchas de las cosas que hice en django) para probar/aprender. fue super simple porque la documentacion de django-disqus es muy clara. bien por Arthur Koziel!

  • rts

    reiven September 3, 2010
    View Comments

    hace -rato- que vengo teniendo problemas con todas las libs en pyhton para twitter para leer RTs .. no los leen!!! pero, leyendo la documentacion exacta encontré el problema .. y mande el patch para tweepy. al final, no era tan dificil agregar el parametro "include_rts" en vez de devolver "None" :)

  • oauth

    reiven September 2, 2010
    View Comments

    tanto que amenazaban, los amigos de twitter sacaron la autenticacion basica para APIs y solamente se puede acceder mediante oauth. claro, ellos hacen el cambio y avisan 3 dias despues. en fin el asunto es que tuve que cambiar la lib que usaba para acceder a la API de twitter y lidiar con oauth. de todos los "coders buena onda" que hay, el único que explica coherentemente el procedimiento es el flaco de tweepy en la documentación de su lib.

    (btw: que incomodo que es tipear tweepy :)

  • pungabot

    reiven August 18, 2010
    View Comments

    hace un tiempo ya que estoy dando vueltas con el codigo del nuevo cookiebot, ahora en python. arranque con el codigo de pyfibot pero ya haciendo varias modificaciones decido hacer un fork y publicarlo en github, para el que le interese. a diferencia del codigo original esta version tiene:

    • . comando separados publicos/privados
    • . base de usuarios
    • . integración con twitter
    • . plugins adicionales

Categorias

  • fotografia
  • i me mine
  • in real life
  • internet
  • linux
  • musica

Tags

  • 500px apache api cacti codigo debian django flickr gentoo github howto iglesia internet irl linux musica nginx opensource php python religion templates twitter web

500px

  • luz
  • medusa
  • reflejos
  • ventana

Links

  • quite obscure process
  • un dia una foto
  • pynientos
  • storm
  • robot spirit
  • pokereta
  • alerta:religion
  • fluidr
  • tshk!
  • cuentos para pasar el rato
  • breaking code

Proudly powered by Django