Ir al contenido principal

Ralsina.Me — El sitio web de Roberto Alsina

Extraño bug con Django/PyODB

Pa­ra lo­guear un usua­rio se pue­de ha­cer al­go así:

[root@wally app]# python shell
Python 2.3.4 (#1, May  2 2007, 19:26:00)
[GCC 3.4.6 20060404 (Red Hat 3.4.6-8)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from pyodb import *
>>> import django.contrib.auth
>>> print django.contrib.auth.authenticate(username='user',password='pass')

Y des­pués se usa el ob­je­to user pa­ra djan­go­.­con­tri­­th.­lo­gin

Una par­te de los da­tos de au­ten­ti­ca­ción es­tán dis­po­ni­bles en un Mi­cro­so­ft SQL Ser­ve­r, y los ob­ten­go via pyo­db. Y es­to es lo que su­ce­de cuan­do tra­to de au­ten­ti­car el usua­rio (a­su­ma­mos que user y pa­ss son vá­li­do­s, es­to es el frag­men­to más pe­que­ño que dis­pa­ra el bu­g):

[root@wally app]# python shell
Python 2.3.4 (#1, May  2 2007, 19:26:00)
[GCC 3.4.6 20060404 (Red Hat 3.4.6-8)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from pyodb import Connect
>>> import django.contrib.auth
>>> c1=Connect("moodle_emisql",uid="gruposintramed",pwd="yev431")
>>> print django.contrib.auth.authenticate(username='user',password='pass')

Com pue­den ve­r, lo del pyo­db no de­be­ría in­ter­fe­rir con lo de djan­go. Im­por­to so­lo una fun­ción y co­nec­to con la BB­DD, ni si­quie­ra eje­cu­to na­da de SQ­L, no uso nin­gún da­to bte­ni­do de la co­ne­xión SQ­L. Pe­ro las lla­ma­das a au­then­ti­ca­te fa­llan.

¿Co­mo se su­po­ne que uno de­pu­ra es­to? Me las arre­glé mo­vien­do lo de PyO­DB a otro mó­du­lo pe­ro es ra­ro.


Es un ser­vi­dor de lis­tas de co­rreo. Gru­pos de dis­cu­sió­n, mo­de­ra­ció­n, sus­crip­cio­nes, to­do eso. Co­mo gooogle group­s, pe­ro tu­yo y sin aja­x. No es Open Sour­ce, pe­ro si al­guien quie­re al­go si­mi­la­r, se­gu­ra­men­te mi clin­te se lo li­cen­cia :-D

Presentaciones en modo texto

Ya que me gus­ta el res­truc­tu­red text y Py­Q­t, es­tá ba­sa­do en eso, pe­ro se pue­de usar con vi y una wyse60.

Mi pro­yec­to se lla­ma To­bo­gan y se pue­de des­car­ga­r, y fun­cio­na has­ta cier­to pun­to.

Tie­ne una in­ter­fa­ce grá­fi­ca, pe­ro ig­no­ré­mos­la en es­te men­sa­je acer­ca de so­ftwa­re en mo­do tex­to ;-) y mos­tre­mos el tex­to que tie­ne atrá­s.

Why use Tobogan

(If you are a nerd)

:transitions: from_left,to_left,from_top,to_top,from_right,to_right,to_bottom,fade_out

It's nerd-oriented

It's trivial to display source code, with
proper syntax highlighting.

.. code-block:: python

    from base64 import *
    def myFirstFunction():
          print b64decode ('YnllIHdvcmxkIQ==')

Even for things like shell sessions.
Dammit, I am a nerd, I will try to add every nerd
feature I deem cool.

It does things simply

This is a subtitle?

Wanna show a flickr photo?

.. code-block:: rst

    .. flickr:: myPhotoTitle

How about using to share your files?
And whatever else you can think of, it probably
**can**\  be done.

.. footer:: Smart thing goes here

Y aquí es­tá el re­sul­ta­do des­pués de co­rrer el script rs­t2s­l.­p­y.


  • Si el cu­r­­sor se mue­­ve ha­s­­ta la pa­r­­te su­­pe­­rior de la ven­­ta­­na, se pue­­de ver fle­­chas de an­­te­­rio­­­r/­­si­­guien­­te.

  • Si se ha­­ce cli­­ck en la ven­­ta­­na, se va a la si­­guien­­te pá­­gi­­na.

ha­ce ca­si un año que no lo to­co, y ne­ce­si­ta mu­cho ca­ri­ño, pe­ro no es una ma­la idea, me pa­re­ce.

Update: wicd is not insane after all

Its de­pen­den­cies seem to have re­vert­ed to some­thing sane late­ly:

Package: wicd
Version: 1.4.2-1
Section: extras/web
Priority: optional
Architecture: all
Essential: no
Depends: python, python-gtk2, python-dbus | python2.4-dbus,
wpasupplicant, python-glade2, wireless-tools

I may still keep on work­ing on my Qt fron­tend but just be­cause I en­joy it. Good job wicd guys!

Abrir con: Google Docs

De he­cho, los úni­cos do­cu­men­tos que re­ci­bo son men­sa­jes de error de usua­rios de win­do­ws. És­te es el pro­ce­di­mien­to que ca­da uno de ellos ha en­contra­do pa­ra de­cir­me que di­ce en una pá­gi­na de error de Ex­plo­re­r:

  1. Ca­p­­tu­­rar la pan­­ta­­lla

  2. Pe­­ga­r­­la en word

  3. En­­viá­r­­me­­la por email

Su­pon­go que co­piar y pe­gar el con­te­ni­do de la pá­gi­na es de­ma­sia­do di­fí­ci­l. Pe­ro de to­das for­ma­s, nor­mal­men­te me las arre­glo te­nien­do kword o abiword a ma­no, pe­ro es­ta­ba pen­san­do­...

Estoy leyendo mi mail. Eso quiere decir que tengo Internet. Eso quiere decir que google docs está ahí. ¡Y tienen un API en Python! 15 minutos después...

#!/usr/bin/env python

# Create a client class which will make HTTP requests with Google Docs server.
client =
# Authenticate using your Google Docs email address and password.
client.ClientLogin('', 'whateveritis')

ms = gdata.MediaSource(file_path = sys.argv[1], content_type = "application/msword")
entry = client.UploadDocument(ms,"tmp_open_with_gdocs/%s"%sys.argv[1])
os.system("firefox '%s'"%entry.GetAlternateLink().href)

Prué­ben­lo. Mien­tas ten­gas fi­re­fo­x, una ver­sión de­cen­te de py­thon y gda­ta de­be­ría abrir el .doc que se le pa­se co­mo pri­mer ar­gu­men­to en google do­cs usan­do fi­re­fo­x.

Re­cuer­den que hay que bo­rrar­lo si no quie­ren que que­de allí, y re­nom­brar­lo si quie­ren guar­dar­lo con un nom­bre acep­ta­ble.

No lo voy a con­ver­tir en una apli­ca­ción rea­l, pe­ro a mí me sir­ve. Se po­ne en el pa­th, se lo aso­cia con los ar­chi­vos .doc y fun­cio­na.

Un script si­mi­lar pa­ra .xls o pa­ra am­bos ti­pos de ar­chi­vo es tri­via­l.

Po­dría al­guien to­mar es­to y con­ver­tir­lo en una apli­ca­ción de ver­da­d?

Contents © 2000-2021 Roberto Alsina