Ir al contenido principal

Ralsina.Me — El sitio web de Roberto Alsina

Publicaciones sobre qt (publicaciones antiguas, página 6)

Feliz cumpleblog para mí!

To­do em­pe­zó en ad­vo­ga­to don­de se lo pue­de leer aún hoy! (Por fa­vor léan­lo acá ;-)

Des­pués cam­bió a Py­D­S, una pla­ta­for­ma de blog py­thon de es­cri­to­rio con in­ter­fa­ce we­b, y hos­tea­do en Py­CS, un ser­vi­cio gra­tui­to.

En­ton­ces Py­CS se mu­rió, y em­pe­cé a ge­ne­rar un blog es­tá­ti­co hos­tea­do en el hos­ting gra­tis de mi IS­P. Eso era una ba­zo­fia.

Des­pués fun­dé mi pro­pia com­pa­ñía, tu­ve mis pro­pios ser­ver­s, y em­pe­cé a hos­tear­lo allí (¡Aún hoy es­te blog es HT­ML com­ple­ta­men­te es­tá­ti­co! ¿No se no­ta, no­?)

En­ton­ces Py­DS em­pe­zó a fun­cio­nar ma­l, y es­cri­bí mi pro­pio so­ftwa­re, que es una por­que­ría, tal vez 25% ter­mi­na­do pe­ro ha­ce las co­sas exac­ta­men­te co­mo yo quie­ro.

Ho­y, es­te blog es­tá agre­ga­do en Pla­ne­ta PyA­r, Pla­net Py­tho­n, Pla­net Qt, Pla­ne­ta LU­GLI, Y al­gún otro lu­ga­r.

Es­te año de­ci­dí ha­cer que sea bi­lin­güe (in­glés y es­pa­ño­l) pe­ro odio tra­du­cir­lo (lo es­cri­bo pri­me­ro en in­glé­s).

De acuer­do a las es­ta­dís­ti­cas dis­po­ni­ble­s, es, en pro­me­dio, más po­pu­lar que nun­ca (pe­ro mis pos­ts mas po­pu­la­res son vie­jo­s).

stats

És­tas son las pá­gi­nas más po­pu­la­res del úl­ti­mo año:

Lec­cio­nes:

  1. Ne­­ce­­si­­to es­­cri­­bir más so­­­bre Qt y/o em­­pe­­zar fla­­mes con gen­­te que es­­cri­­be so­­­bre IT.

  2. Ne­­ce­­si­­to bus­­car el ma­­te­­rial ob­­so­­­le­­to y po­­­ner no­­­ta­s.

  3. Te­­ner tu pro­­­pio ho­s­­ting y so­­­ft es me­­jo­­­r.

  4. 10 años es mu­­cho tie­m­­po: 860 po­s­­ts (o 913, de­­pen­­de co­­­mo los cuen­­te)

python-keyring está muy bueno

Es­tá bue­no cuan­do un pro­gra­ma pue­de re­cor­dar la pa­ssword que le da­s.

Es me­jor cuan­do al­ma­ce­na esa pa­ssword de for­ma se­gu­ra. Sin em­bar­go, no es tri­vial ha­cer­lo si te im­por­ta que el pro­gra­ma sea multi pla­ta­for­ma.

O al me­nos no lo era has­ta que Kang Zhang es­cri­bió py­thon ke­y­ring, un mó­duo que abs­trae el me­ca­nis­mo de al­ma­ce­na­mien­to de cla­ves de KDE, GNO­ME, OSX y Win­do­ws (y tie­ne un par de ba­cken­ds con ar­chi­vos por las du­da­s).

¿Có­mo fun­cio­na?

Se ins­ta­la de la for­ma ha­bi­tua­l. Si no es­tá dis­po­n­ble pa­ra tu dis­tro­/­sis­te­ma ope­ra­ti­vo, usá ea­s­y_ins­ta­ll:

easy_install keyring

Tam­bién se pue­de ob­te­ner via mer­cu­ria­l:

hg clone http://bitbucket.org/kang/python-keyring-lib/

La API es la sim­pli­ci­dad mis­ma. Así se guar­da un se­cre­to:

import keyring
keyring.set_password('keyring_demo','username','thisisabadpassword')

Tal vez te mues­tre es­te diá­lo­go (o al­go si­mi­lar en otras pla­ta­for­ma­s):

keyring1

Y aquí es­tá la prue­ba de que se guar­dó co­rrec­ta­men­te (es el ad­mi­nis­tra­dor de cla­ves de KDE):

keyring2

¿Y có­mo re­cu­pe­ra­mos el se­cre­to?

import keyring
print keyring.get_password('keyring_demo','username')

Y fun­cio­na así:

$ python load.py
thisisabadpassword

Co­mo se pue­de ve­r, la API es tan fá­cil co­mo pue­de se­r. Has­ta eli­gió el ba­ckend KWa­llet au­to­má­ti­ca­men­te por­que es­toy en KDE!

Py­tho­n-ke­y­ring es un mó­du­lo que re­suel­ve un pro­ble­ma rea­l, así que un aplau­so pa­ra Kang Zhang y Ta­rek Zia­dé (que tu­vo la idea).

Nueva app 24-horas (no tan) pronto: foley

Apli­ca­cio­nes 24-ho­ras son pro­yec­tos pe­que­ño­s, au­to­con­te­ni­do­s, don­de in­ten­to crear una apli­ca­ción de­cen­te y útil en 24 ho­ra­s.

El con­cep­to es que:

  1. Voy a pen­sar en es­­ta apli­­ca­­ción por un tie­m­­po.

  2. La voy a di­se­­ñar en mi ca­­be­­­za o en no­­­tas es­­cri­­ta­s.

  3. Voy a pro­­­gra­­mar des­­de ce­­ro, por 24 ho­­­ra­s.

  4. Eso no es un día sino 24 ho­­­ras de tra­­ba­­jo. Ya no pue­­do tra­­ba­­jar 24 ho­­­ras co­­­rri­­da­s.

La úl­ti­ma vez es­to no salió exac­ta­men­te co­mo que­ría pe­ro fue di­ver­ti­do y edu­ca­ti­vo (al me­nos pa­ram mí ;-) y el re­sul­ta­do es una apli­ca­ción que no es­tá mal!

En­ton­ce­s, que va a ser fo­le­y? Una apli­ca­ción pa­ra to­mar no­tas orien­ta­da a es­tu­dian­tes y pú­bli­co de con­fe­ren­cia­s.

En tu úl­ti­mo even­to ner­d, ¿no­tas­te que to­dos es­ta­ban usan­do una com­pu­ta­do­ra?

¿Y en qué es­ta­ban to­man­do no­ta­s? ¿vi? ¿kw­ri­te? ¿O­pe­nO­ffi­ce? Sea lo que sea, no es­tá pen­sa­do pa­ra usar­lo con es­te fi­n.

¿En­ton­ces que ha­ría fo­ley dis­tin­to? To­da­vía no lo sé pe­ro ten­go idea­s:

  1. Una fue­r­­te orien­­ta­­ción a lí­­nea de tie­m­­po. Ca­­da pá­­rra­­fo con fe­­cha y ho­­­ra.

  2. So­­­po­r­­te pa­­ra Twi­­tte­­r/I­­den­­ti­­ca. ¿Que­­rés ha­­cer un li­­ve blog de tus no­­­ta­s? Un cli­­ck.

  3. Mu­l­­ti­­me­­dia in­­co­r­­po­­­ra­­da.

    • ¿Gra­­­ba­­­cio­­­­­nes de au­­­dio­­­/­­­vi­­­deo si­n­­­cro­­­­­ni­­­za­­­das con las no­­­­­ta­s?

    • ¿I­­­má­­­ge­­­nes im­­­po­­­r­­­ta­­­das y agre­­­ga­­­das a la lí­­­nea de tie­­m­­­po?

  4. Si me dan un PDF con sli­­des, po­­­ner ca­­da sli­­de en el mo­­­men­­to ade­­cua­­do del his­­to­­­ria­­l.

  5. Pu­­bli­­ca­­ción sen­­ci­­lla en we­­b: en­­co­n­­trar una ma­­ne­­ra de po­­­ner es­­to en una pá­­gi­­na web fá­­ci­l­­men­­te (la idea es un cli­­ck).

Lle­vo 10 mi­nu­tos pen­san­do en es­to, pe­ro le veo po­ten­cia­l.

La ma­la no­ti­cia es... ten­go una pi­la de tra­ba­jo que me da de co­me­r. Así que es­to re­cién se va a po­der en ene­ro. Igual que­ría pos­tear­lo pa­ra ob­te­ner res­pues­ta en la eta­pa de pla­nea­ció­n.

En­ton­ce­s, ¿al­gu­na idea?

Haciendo una aplicación única con python y DBUS

Lo bus­qué en google y siem­pre en­cuen­tro la mis­ma res­pues­ta, "u­sá dbus, tra­tá de to­mar el nom­bre, si ya exis­te, en­ton­ces hay una co­pia co­rrien­do­".

Lo que no pu­de en­con­trar es un ejem­plo que fun­cio­ne de es­to, o al me­nos no un ejem­plo con­ve­nien­te­men­te eti­que­ta­do "a­sí es co­mo se ha­ce una apli­ca­ción úni­ca usan­do DBUS y py­tho­n".

Así que, así es co­mo se ha­ce una apli­ca­ción úni­ca usan­do DBUS y py­tho­n:

Su­po­nien­do que tu apli­ca­ción se lla­ma uR­S­Sus (la mía se lla­ma así):

session_bus = dbus.SessionBus()
try:
    session_bus.get_object("org.urssus.service", "/uRSSus")
    # Esta es la segunda copia, hacer que se vea la primera
    # TODO: implementar
except dbus.DBusException: # No hay otra copia corriendo
    # Esto 'toma' el nombre DBUS
    name = dbus.service.BusName("org.urssus.service", bus=session_bus)
    # Ahora, empezá la aplicación:
    window=MainWindow()
    object = UrssusServer(window,name)
    :
    :
    :
    etc, etc

Y eso es to­do. No, no es di­fí­ci­l, pe­ro co­mo la do­cu­men­ta­ción de DBUS es... o me­jor di­cho co­mo la do­cu­men­ta­ción de DBUS no es, ca­da co­si­ta pue­de ayu­da­r.


Contents © 2000-2023 Roberto Alsina