Ir al contenido principal

Ralsina.Me — El sitio web de Roberto Alsina

Publicaciones sobre pyqt (publicaciones antiguas, página 5)

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.

Yo sabía que no tenía que hacerlo, o como HTML5 y Qt hacen mi trabajo.

Des­de ha­ce un tiem­po quie­ro que ten­ga so­por­te de po­dcas­ts. El asun­to es que ... siem­pre me pa­re­ció mu­cho tra­ba­jo. Se­gu­ro, usan­do pho­non pue­do crear un re­pro­duc­tor de au­dio y eso, pe­ro­...

Es­toy usan­do un wi­dget HT­ML pa­ra mos­trar los pos­ts, así que ten­dría que en­con­trar una for­ma de agre­gar el re­pro­duc­tor a la in­ter­fa­ce y... mu­cho tra­ba­jo.

Hoy me des­per­té y pen­sé... es­pe­rá... El wi­dget HT­ML de Qt es­tá ba­sa­do en We­bki­t. Y we­bkit so­por­ta HT­M­L5. Y HT­M­L5 tie­ne un tag "au­dio­".

En­ton­ce­s, si hi­cie­ra que uR­S­Sus ba­ja­ra los li­nks de los en­clo­su­res, y los agre­ga­ra a la ba­se de da­to­s, y agre­go es­to al tem­pla­te de pos­t:

<?py for enclosure in  post.enclosures: ?>
  <audio autobuffer="Yes" controls="controls" src=#{enclosure.href}></audio><br>
<?py #end ?>

Eso no fun­cio­na­ría? Bue­no, sí!

urssus26

Y ahí es­tá, yo te­nia ra­zón en no im­ple­men­tar­lo, por­que la for­ma fá­cil de ha­cer­lo es de­jar que Qt lo ha­ga ;-)


Contents © 2000-2023 Roberto Alsina