Skip to main content

Ralsina.Me — Roberto Alsina's website

Comunismo Revolucionario en #pyar

Sor­ry, span­ish-on­ly post, be­cause I am so not trans­lat­ing this.


UP­DATE: Re­sul­ta que (al con­trario de lo que di­go aba­jo) PABLOOO no es python­ista7 si no un ami­go que lo ayu­da para que no pier­da el año en la fac­ul­tad.


Siem­pre en las lis­tas de tec­nología al­guien te tira al­go co­mo el viejo "Có­mo hac­er pre­gun­tas in­teligen­tes" y cosas así. Es útil porque, asom­brosa­mente, hay mu­chos que no son ca­paces (o no les sale) de pedir ayu­da de man­era que per­mi­ta que te ayu­den.

Los demás no tienen idea de qué es­tás hablan­do. En­tonces nece­sitás ex­plicar des­de cero. Si tirás un bodoque de códi­go de 400 líneas y decís "no an­da, ar­ré­glen­lo", nadie se va a mo­lestar siquiera en leer­lo.

To­dos es­tán ayu­dan­do gratis. Tenés que rec­om­pen­sar­los de al­gu­na man­er­a, aunque sea hacién­doles sen­tir que el prob­le­ma es in­tere­san­te, o que es­tán ayu­dan­do a al­guien que lo apre­cia y los es­cucha.

Tenés que dar­le pelota a lo que te di­cen, si no, es frus­trante. Si es frus­tan­te, y no te pa­gan, al cara­jo.

No podés pedir "ha­gan mi tra­ba­jo" o "ha­gan mi tarea" o "ha­gan este prác­ti­co". Eso lo tenés que hac­er vos. Co­mo mu­cho te va a ayu­dar al­guien con al­gu­na cosa que te trabes, co­mo te ayu­daría tu pro­fe­sor/­com­pañero de tra­ba­jo.

No tenés que eno­jarte si no obtenés lo que querés. Puede ser que sea porque es muy difí­cil y los demás tam­poco lo saben, o porque jus­to es­tá to­do el mun­do ocu­pado, o porque sos un hin­chapelotas que nadie quiere ayu­dar. Casi se­guro que no es que es­tán to­dos co­gien­do sec­re­tarias.

Sin más preám­bu­lo, les pre­sen­to a pabli­toooooo*, el python­ista número 7, co­mu­nista rev­olu­cionar­i­o, re­cu­per­ador de su plus­valía por el mecan­is­mo de pedir presta­da la de los demás. No se han cam­bi­a­do los nom­bres porque nadie ahí es in­ocente ;-)


Nota: PABLO* y pythonista7 son la misma persona, ok?

[20:45:47] <PABLOOO> holasssssssssss
[20:46:06] <PABLOOO> gentes...tengo q presentar mañana este juego
[20:46:09] <PABLOOO> http://pastebin.lugmen.org.ar/7304
[20:46:11] <lalita> PABLOOO: [#3225] pastebin.lugmen.org.ar - El pastebin m&aacute;s r&aacute;pido del oeste argentino.
[20:46:25] <PABLOOO> no va ni pa tras ni pa adelantre
[20:46:37] <PABLOOO> me podran dar una mano....plizzzzzzzzzz
[20:52:56] <PABLOOO> holasssssssss
[20:53:03] <PABLOOO> hay alguien????
[20:53:53] <alecu> PABLOOO, hola
[20:54:06] <PABLOOO> holasss...como va???
[20:54:12] <alecu> PABLOOO, lo lamento, pero mi religión no me permite hacer la tarea de otra gente
[20:54:22] <PABLOOO> nuuuuuuuu
[20:54:30] <PABLOOO> y si cambias de religion???
[20:54:52] <alecu> PABLOOO, y si cambiás la actitud? :-)
[20:55:04] <alecu> PABLOOO, si preguntás por cosas específicas, seguro que te dan bola
[20:55:04] <PABLOOO> ...no pego 1...
[20:55:27] <PABLOOO> lo puse aca a las 3 o 4 de la tarde...me digeron una par de cosas
[20:55:33] <PABLOOO> no saque nada
[20:55:43] <alecu> PABLOOO, empezá chiquito. Es decir, andá arreglando de a una cosa por vez.
[20:57:24] <PABLOOO> tengo ese while de...... no deja cargar al otro while...no toma datos...le mando print y la variable...y no sale nada
[20:57:47] <alecu> PABLOOO, aha.
[20:57:47] <PABLOOO> alguna sugerencia...
[20:57:49] <alecu> PABLOOO,  No entendí nada de lo que dijiste recién.
[20:57:59] <PABLOOO> el while...
[20:58:26] <alecu> PABLOOO, hay 13 whiles en tu código
[20:58:27] <PABLOOO> me quede ahi...tengo un juego ...tengo q ponerle vidas y tiempo...pongo el while
[20:58:58] <alecu> PABLOOO, en que curso tenés que entregarlo?
[20:59:22] <PABLOOO> fundamentos de programacion unaj
[20:59:35] <alecu> PABLOOO, en que universidad o carrera?
[20:59:43] <PABLOOO> sacamelo y me acuerdo de vos con mi profe
[20:59:47] <PABLOOO> XDDDDDD
[21:00:16] <alecu> PABLOOO, si yo fuera tu profe no podría aprobarte. :-)
[21:00:34] <ralsina> PABLOOO: decí una cosa sola que no anda, lo mas clara que puedas, y capaz que te podemos ayudar un poco
[21:00:37] <PABLOOO> naaaaaaaaaa....pero tengo la intencionnn
[21:00:44] <ralsina> PABLOOO: pero no podes esperar que te hagan los trabajos prácticos
[21:01:01] <PABLOOO> pero mañana es la final...o fui
[21:02:02] <PABLOOO> el problema es la def reglas...juego corria bien
[21:02:47] <ralsina> PABLOOO: esa funcion tiene casi 200 líneas.
[21:02:53] <PABLOOO> en def reglas...yo quiero meterle la opcion de q me carge difernetes cantidades de juegos y tiempos para realizarlas
[21:03:18] <PABLOOO> dame 1 minuto y lo pienso bien
[21:03:19] <ralsina> PABLOOO: no tengo idea ni de que juego se supone que es. Tenes que tratar de achicar el problema.
[21:03:32] <PABLOOO> ok...toy en eso
[21:04:12] <alecu> ok, me llaman a cenar...
[21:04:20] <alecu> PABLOOO, después contanos a la lista como te fue.
[21:04:45] <PABLOOO> okassssss
[21:05:47] <rbistolfi> PABLOOO: trata de identificar bien el problema, no sabemos que esperas que haga la funcion, ni que hace en lugar de lo que vos esperas
[21:18:52] <rbistolfi> Hau yottabit
[21:25:35] <rbistolfi> PABLOOO: che, esta dificil de leer ese codigo :[
[21:25:53] <PABLOOO> jajajajajaja....yo soy asi
[21:26:11] <rbistolfi> igual fijate que "fin" esta definido afuera de la funcion como global
[21:26:24] <rbistolfi> y despues la definis denuvo, pero en el scope local de la funcion
[21:26:29] <PABLOOO> creo q lo complique mucho...y esto en la recta final...del final final
[21:26:41] <rbistolfi> entendes la diferencia entre local y global?
[21:26:56] <PABLOOO> ....
[21:27:00] <rbistolfi> tambien fijate que los loops tienen que tener una condicion de salida clara
[21:27:41] <rbistolfi> no encuentro donde "f" se utiliza luego para salir del loop
[21:27:52] <rbistolfi> o no entiendo lo que queres hacer :)
[21:27:56] <PABLOOO> me anote para algoritmo...y no se q ...capaz q en un par de meses te sigo la conversacion
[21:28:04] <PABLOOO> por q hoy...
[21:29:14] <rbistolfi> PABLOOO: en la linea 181
[21:29:39] <PABLOOO> pera
[21:29:42] <rbistolfi> vos decis que vas a iterar hasta que f sea True
[21:30:38] <rbistolfi> bueno, me parece que f nunca se convierte en True
[21:30:38] <rbistolfi> despues usas "fin"
[21:30:38] <rbistolfi> asi que me parece te confundiste con "f" y "fin"
[21:32:26] <rbistolfi> yottabit: so, cuando venis a Argentina?
[21:34:14] <PABLOOO> f con fin
[21:34:18] <PABLOOO> toy en eso
[21:53:31] <pythonista7> lo podes terminar,es un trabajo muy important y lo teng q presentar mañana
[21:53:50] <rbistolfi> pythonista7: ?
[21:56:30] <pythonista7> http://pastebin.lugmen.org.ar/7304
[21:56:31] <lalita> [#3225] http://pastebin.lugmen.org.ar/7304 : pastebin.lugmen.org.ar - El pastebin m&aacute;s r&aacute;pido del oeste argentino. [by PABLOOO, 2012-02-29, 23:46:15]
[21:56:39] <yottabit> *toser*
[21:56:54] <pythonista7> este es el ejercicio,en realidad un jueguito simple
[21:57:46] <rbistolfi> yottabit: ya somos dos :P
[21:58:45] <pythonista7> ponganse media pila,lo sacan asi nomas o no???
[21:58:59] <rbistolfi> pythonista7: no
[21:59:02] <rbistolfi> sorry
[22:00:30] <rbistolfi> no creo que tengas suerte aca, pidiendo que te hagan la tarea
[22:01:31] <rbistolfi> mira
[22:02:11] <pythonista7> y no
[22:02:14] <pythonista7> creo q no
[22:02:21] <pythonista7> si se rascan a cuatro manos
[22:02:44] <pythonista7> o estan cogiendo con alguna secretaria.....:P
[22:02:58] <rbistolfi> si es tan importante, porque no estudias y lo haces bien
[22:04:00] <pythonista7> lo estudie,y lo se,solo kier una opinion
[22:04:06] <pythonista7> pero se ve q es al pedo
[22:04:21] <rbistolfi> ya te dije unas cosas que estaban mal
[22:04:33] <rbistolfi> lo del "fin" y "f"
[22:04:36] <pythonista7> x gent como esta el pais esta asi,cero solidaridad.......argentina tenia q ser
[22:04:38] <rbistolfi> lo arreglaste?
[22:04:48] <pythonista7> deja q busco x otro lado
[22:05:01] <pythonista7> no hay drama,fuck!!!
[22:05:05] <rbistolfi> gracias
[22:06:00] <rbistolfi> le estoy contando a la Vane sobre este pibe, y no me cree
[22:06:05] <TiN> juaz cero solidaridad xD
[22:10:49] <gatox> ahhh  bue

1 hora mas tarde...

[23:36:19] <PABLOOO> holasssssssssssss
[23:36:24] <PABLOOO> yo otra vezzzzzzzzz
[23:36:31] <PABLOOO> hay alguien?????
[23:39:09] <PABLOOO> holasssssssssssss
[23:39:17] <PABLOOO> queda alguien...
[23:39:23] <PABLOOO> todos durmiendo
[23:39:27] <PABLOOO> zzzzzzzzzzz
[23:43:47] <-- PABLOOO (ba8695e7@gateway/web/freenode/ip.186.134.149.231) has quit (Quit: Page closed)
[23:44:25] --> PABLOOO (ba8695e7@gateway/web/freenode/ip.186.134.149.231) has joined #pyar
[23:44:35] <PABLOOO> holaaaaaaaaaaassssssss
[23:44:46] <PABLOOO> hay alguien????
[23:46:47] <PABLOOO> holassssssss

The Killing League

Review:

Got it for 99 cents on Ama­zon.

The high­est se­ri­al killer per page den­si­ty you will find this year.

The Mirage

Review:

A very in­ter­est­ing, big-­heart­ed and dif­fer­ent take on al­ter­nate his­to­ry. Worth read­ing.

PyQt Quickie: command line parsing

So, you are writ­ing a PyQt ap­p, and you want it to sup­port com­mand line ar­gu­ments. So you do some­thing like this:

opt_parser = OptionParser()
opt_parser.add_option("-q", dest="quickly", action="store_true",
    help="Do it quickly (default=False)")
(options, args) = opt_parser.parse_args(sys.argv)
app = QApplication(sys.argv)
:
:
:

Or maybe even QAp­pli­ca­tion([]). Ok, you are doing it wrong. And this is wrong in most tutorials, too. Why? Because Qt (and thus PyQt) supports a bunch of useful command line options already. So if you do it like in the first listing, and pass "-style=oxygen" or whatever, one of the following will happen.

  1. Op­t­­Pars­er is go­ing to tell you it's not a valid op­­tion and abort

  2. You will ig­nore the op­­tion and not do any­thing use­­ful with it

  3. You will have your own -style op­­tion and do two things with it

All three out­comes are less than ide­al.

The right way to do this is:

opt_parser = OptionParser()
opt_parser.add_option("-q", dest="quickly", action="store_true",
    help="Do it quickly (default=False)")
app = QApplication(sys.argv)
(options, args) = opt_parser.parse_args(app.arguments())
:
:
:

This way, you give PyQt a chance to process the options it recognizes, and, then, you get to handle the rest, because app.arguments() has all Qt options removed.

The bad side of this is, you will make --help slightly slower, since it will have to build a QApplication to do nothing, and you will have undocumented options. Solution for both problems left as an exercise.


Contents © 2000-2020 Roberto Alsina