domingo, 8 de julio de 2012

Honestidad



Hola a todos:

Quisiera hablarles en esta oportunidad de un valor que no es muy frecuente en estos dias, pero que sigue siendo un valor importante: la honestidad.

Creo que he hablado bastante en clase sobre la importancia de no atribuirse la autoría de algo que uno no hizo.  Sin embargo, quiero enfatizar que eso no significa que uno debe hacer todo uno mismo.  Python, Pygame, los libros y programas de otros autores, todas son cosas no hechas por nosotros sobre las cuales nosotros construimos nuestro propio material.  Ciertamente, yo no inventé Python o Pygame, pero nunca me he atribuido la autoría de algo que yo no hice. También es cierto que a lo largo del curso he utilizado o me he basado en material no hecho por mi, pero siempre he tratado de citar al autor o dar crédito al trabajo de otros.  Lo mismo espero de ustedes.  No citar la autoría de algo que uno no hizo y presentarlo como su propia creación es extremadamente ofensivo y deshonesto, sobre todo en el mundo del software libre y del código abierto.  Por otro lado, a nadie le gusta que lo engañen porque se siente uno como si los demás lo toman por tonto.

Yo no tengo problemas en que ustedes usen el código de otros, siempre cuando den cŕedito a su verdadero autor.  Como nuestros fines son educativos/instruccionales (queremos aprender a programar en Python/Pygame, ¿recuerdan?), yo esperaría que en ese caso, ustedes se hayan tomado el tiempo de realizar el esfuerzo de entender cómo el verdadero autor crea el juego que ustedes presentan.  Además, se esperaría que ustedes sepan explicarselo a sus compañeros para que todos podamos beneficiarnos de ese conocimiento.

En el caso del juego de "Invasión y Batalla", este es una copia textual de un juego creado por PyMike llamado "Helicopters".  Su enlace de descarga es http://pymike.aftermatheffect.com/games/helicopters-1.2.zip.  A continuación una captura del juego:




Lo elegante hubiese sido ser honestos, ¿no creen? Ahora quiero que revisen las preguntas que les hice anteriormente y las respondan realmente.  No quiero respuestas llenas de palabras y errores pero ultimadamente vacias y que no responden las preguntas.

El proyecto de la documentación de Pygame está bien presentado, pero los últimos ejemplos de "hola mundo" con ventanas en Pygame son una traducción del libro "Invent Your Own Computer Games with Python", de Al Sweigart (capitulo 17, para ser exactos).  No esta mal que usen otras referencias, pero por favor, cítenlas.  Uds. saben que yo odio el plagio.  Además, no tiene nada de malo citar fuentes, pues ustedes estan presentando la información en castellano y en un formato distinto- la idea es llenar un vacio de documentación que explique de manera sencilla cómo desarrollar un video juego en Pygame.

Qusiera que quienes hayan presentado juegos o material hecho por otra persona den un paso al frente y den crédito a la autoría externa.  Vamos a sincerarnos.  Ello implica también que debemos de revisar los criterios de evaluación- cosas como "originalidad", "diseño", etc. ya no tienen sentido cuando se está presentando el trabajo de otro.  Recuerden: si logran aunque sea entender como fue elaborado el juego que presentan y explicarselo a los demás, se habrá logrado el objetivo del curso.  En eso, cada quien puede poner de su parte en este foro.

22 comentarios:

  1. Buenas tardes profesor. Usted sabe que soy fiel amante del software libre y su ética de compartir con licencias libres y amigables. Mientras realizamos la documentación en Pygame, pues busque por internet los ejemplos, pero sin éxito inmediato ya que el material proviene de un curso que hace un tiempo finalice y no fueron citadas fuentes directas. Si usted la encontró, perfecto se incluye en la documentación, recuerda que es apenas una primera versión de ella y no es un trabajo directamente profesional directa a los usuarios, aun le falta mucho trabajo solamente colocamos las citas directas al trabajo hecho en clase y su blog. Pero no crea que nunca se penso en lo contrario, incluso la licencia de la documentación debe ser creative commons, solo que tampoco hemos incluido esa parte que va en el principio en esta versión, pero subiré la nueva versión con esas mejoras, lamentablemente debibo al facellecimiento de mi abuela no pude estar metido de lleno en estos últimos días como quisiera haberlo hecho. Saludos y disculpe tan larga respuesta es que también me mortifica publicar algo sin el debido compartir, sobre todo que siempre hablo y defiendo las licencias y su importancia

    ResponderEliminar
  2. También estoy seguro, que los muchachos con su juego "Invasión y Batalla" han podido defenderlo bien con las preguntas y respuestas en su entrada de este mismo Blog. Todos los días debido a las patentes, ciento de empresas se atacan unas a otras por el hecho de que una "registro" la idea primero, simplemente eso pero la propiedad intelectual no debe ser algo considerado de mercado, si no de conocimiento libre al compartir. Pues, si hay un grave error en no colocar las licencias y citas respectivas en estas primeras versiones que para el poco tiempo y preparación hemos podido salir adelante, me tomo la atribución de hablar por todo el salón y decir que estoy seguro que todos nos divertimos mucho en esta materia, he visto como personas que nunca se habían interesado por el software libre y un lenguaje de programación están dando lo mejor y aprendiendo muchos caminos tan bonitos y libres.

    ResponderEliminar
  3. Buenas tardes Profesor disculpe. De verdad no lo quisimos tomar por tonto como usted dice, fue un error de nuestra parte no darle tributo al verdadero creador del juego (PyMike). Yo de mi parte voy a tratar de responderle las preguntas a lo que yo pude entender del código del juego.

    ResponderEliminar
  4. 1) Veo que los helicopteros, las bombas, la base y los disparos tienen sus respectivas definiciones de clases que heredan de la clase Sprite de pygame. ¿Para qué sirve el atributo "containers" de la clase pygame.sprite.Sprite?

    Con respecto a su primera pregunta, el atributo “container” sirve para agrupar los datos de cada clase que se van a utilizar en el juego, por ejemplo:
    En la clase “class Arma” están agrupados varios datos como son: el sonido, la imagen, al angulo, tiempo y posición del Arma dentro de la ventana del juego.



    2) ¿Para qué definen una instancia "all" de python.sprite.OrderedUpdates()?
    Con respecto a la segunda pregunta, hay un pequeño error a su pregunta; no es python.sprite.OrderedUpdates() si no que es pygame.sprite.OrderedUpdates()
    La instancia “all” significa que cada cierto se va a actualizar los datos de cada clases como por ejemplo:
    La clase “Arma.containers = all” hace referencia que se va actualizar todos los datos referente a Arma.

    3) ¿Qué son los "sprite groups" (clase pygame.sprite.Groups()) y para qué se usan en los video juegos?

    Los “sprite groups” son grupos de imágenes que se usaran en el juego que se está diseñando y se usan para llamar un conjunto de imágenes. Por ejemplo:

    helicopteros = pygame.sprite.Group()

    Aquí se hace referencia al conjunto de imágenes que estarán localizados en la clase llamada helicópteros.


    Profesor discúlpenos nuevamente, la verdad es que tuvimos que haber colocado el verdadero autor del juego, la verdad si entendimos el código del juego ya que le cambiamos en algunas partes los colores, las imágenes y similitud con el código original. Esto fue lo que puede responderle, mis compañeros les sabrán responder las otras preguntas.

    De todas maneras estas repuestas estan en el link donde usted ya nos habia hecho estas preguntas.

    ResponderEliminar
  5. Buenas noches profesor! estoy de acuerdo con mi compañera Jessica, la idea de nuestro grupo era cambiar algunas partes del código, y presentarlo como nuestro, pero fue un error de nuestra parte de verdad disculpe y bueno estamos pendiente en responder todas las preguntas referentes al juego.

    ResponderEliminar
  6. Buenas noches, anteriormente habia realizado una pregunta pero no pudo ser respondida. Era la siguiente: ¿como hicieron para el movimiento de las helices del helicoptero? Gracias.

    ResponderEliminar
  7. buenas noches profesor de parte de todo mi grupo le pido una gran disculpa, nunca hemos pensado en verle la cara o tomarle el pelo,siempre le tubimos y le tendremos un gran respeto, nunca hemos realizado un plagio, ni lo haremos xq no estamos de acuerdo de que alguien se lleve la victoria a favor de otro, solo quisimos cambiar el juego a nuestra ideologia y si estubo mal, disculpenos profesor..de igual forma estamos pendiente en responder cualquier pregunta sobre el juego.

    ResponderEliminar
  8. hola que mas muchahcos un pregunta, porque la barra de la vida no sale de otro color q no sea rojo?

    ResponderEliminar
  9. Hola muchachos:

    Como saben no tengo internet y me conecto cuando puedo...

    Les recuerdo que deben hacer las preguntas sobre cada juego en la respectiva entrada de este blog. Esta entrada trata sobre el tema de la honestidad en general, no sobre un juego o un equipo en particular.

    Ensor: Mis inquietudes no son con respecto a las licencias u otros aspectos legales. Mis inquietudes son de tipo ético, lo cual no tiene nada que ver con lo legal. Si hablar de lo legal hemos, yo mismo estoy incurriendo en algo ilegal al ofrecer en este blog enlaces de descarga a materiales con copyright (me refiero a los libros que mencione en una entrada anterior). En las batallas legales siempre gana el partido que tenga abogados más habiles (es decir, los tramposos, esos son los mejores). Tampoco me preocupa que venga PyMike y nos demande - estoy casi seguro que ni siquiera sabe que existimos. En el caso de la documentación de ustedes, nada los exime de colocar las citas bibliográficas. Así sea que se basaron en material no publicado, material en la web, etc. siempre hay una normativa que rige cómo elaborar la respectiva ficha (vean las normas APA).

    Al salón entero:

    Mis inquietudes se refieren a lo poco ético que es atribuirse la autoría de algo que uno no hizo. El tema de que ustedes aprendan a ser éticos me preocupa incluso más que su aprendizaje sobre cosas técnicas. Este país está como está porque la gente se ha olvidado de lo ético. Los venezolanos hacemos cosas poco éticas bajo el argumento de que "los demás lo hacen así también, y yo no soy más pendejo que ellos". Pero hay que tratar de hacer lo correcto no porque otros o Dios (para los creyentes) nos puedan ver (¿y cuando no nos pueden ver hacemos lo que nos dá la gana?). Hay que hacer lo correcto porque es lo correcto. Punto.

    En esta entrada yo escribí algo sobre al efecto de que "no me gusta que me vean la cara de tonto". Estaba enojado y me disculpan el lenguaje que utilice, que quizás fue un poco duro. Debo felicitar al equipo de "Invasión y Batalla" porque tuvieron la valentía de asumir su error ante sus compañeros y rectificarlo. Eso de verdad me complace. Invito a otros equipos que hayan utilizado código ya elaborado por otros para presentarlo cómo un trabajo propio a que den un paso al frente y aclaren el asunto ante el salón. Por favor no esperen a que yo lo demuestre, o peor aun, el verdadero autor aparezca- miren que no hay nada oculto bajo el Internet.

    Tambien veo con beneplacito lo provechoso que ha sido para ustedes este proyecto de la materia. Cada quien se va a ir de aqui ganando algo, eso se los aseguro. Sin embargo, todo esto deja una pequeña duda, que espero que ustedes mismos resuelvan: ¿Cuales son los criterios que van a usar para su co-evaluación?

    En otra entrada próxima estaré hablando sobre algunos conceptos y fundamentos de Pygame que creo no estan quedando claros. En particular, el juego presentado por "Invasión y Batalla" contiene algunas particularidades sobre Python/Pygame que todavía estoy tratando de decifrar. Es evidente que quien lo hizo sabe programar.

    ResponderEliminar
  10. Hola nuevamente:

    En esta página podrán encontrar un recuento tipo "the making of" sobre el juego de los ladrillos, de la mano del verdadero autor del juego "Ladrillos":

    http://codentronix.com/2011/04/14/game-programming-with-python-and-pygame-making-breakout/

    El estilo de programación de cada quien es único. Los he visto programar y he interactuado con ustedes en clase- no es muy dificil para mí ver un código y saber que no fué escrito por ustedes. Por ejemplo, el código del equipo de "Aventura en Búsqueda del Dorado" luce bastante autentico. Cuando tengo dudas, me pongo manos a la obra con un detective que llaman "El Inspector Google"...

    De más está decir que más allá del enojo, esto me produce una enorme desazón. No quiero seguir investigando porque realmente no me gusta lo que encuentro.

    Les pido, les ruego, una vez más: Si los otros equipos presentaron un código ajeno como suyo, den un paso al frente.

    ResponderEliminar
    Respuestas
    1. Buenas noches profesor entiendo su preocupacion y bueno con respecto a su comentario tiene toda la razon, pero si revisa en la pagina del juego se puede dar cuenta que estan las citas bibliograficas del juego, donde en ningun momento nos hemos atribuido logros ajenos, ya que usted mismo en la publicacion del juego dijo que es parecido a "breakout" y todo eso es aclarado en la pagina del juego. El objetivo a sido aprender sobre python y poco a poco se ha hecho, de ante mano pido disculpas por parte de mi grupo, por algun error, o si en algun momento hemos faltado en cuanto a etica, o licencias, o derechos de autor se refiere, y demas esta que diga que en ningun momento hemos querido engañarlo o algo, Feliz Noche Bendiciones

      Eliminar
    2. Hola Magnelvis:

      Al leer entre líneas tu comentario: "de ante mano pido disculpas por parte de mi grupo, por algun error, o si en algun momento hemos faltado en cuanto a etica, o licencias, o derechos de autor se refiere", me da la impresión de que no se entiende muy bien cual es la falta a la cual me he referido a lo largo del post. Una vez más, mi preocupación no estriba en licencias o derechos de autor- ese tema se lo podemos dejar a los que conocen sobre leyes. Mi preocupación se debe a que algunos de ustedes se han atribuido la creación de cosas elaboradas por otros. En el caso de tu equipo, sí se están atribuyendo logros ajenos y cito textualmente del blog de ustedes http://juegodelladrillo.es.tl/CREDITOS.htm: "ESTE JUEGO, ASI COMO TAMBIEN ESTE SITIO WEB FUE RALIZADO POR: JOSARETH RODRIGUEZ, BARBARA MADRID,JOSE LUIS FIGUEROA, MAGNELVIS ROLDAN, OSMAR GARCIA." En la página de su blog referente a la bibliografía, citan diversas páginas contentivas de tutoriales e información sobre Pygame, incluso citan una donde aparece un juego parecido, pero no el código fuente original, tal como aparece en http://codentronix.com/2011/04/14/game-programming-with-python-and-pygame-making-breakout/ . No basta con citar algunas fuentes bibliográficas. De nada sirve esto si nos atribuimos la autoría de algo ajeno y no citamos al verdadero autor.

      No vean esto como un ataque a ustedes. Simplemente me estoy refiriendo a una conducta, no a la valía de ustedes como personas. Aunque quizás algunos no lo entiendan ahora, ustedes y yo jugamos para el mismo equipo. Pero en lo que a conductas se refiere, pareciera que a veces el habito de mentir se hace tan arraigado que nos es imposible reconocer que estamos mintiendo y de ese modo terminamos mintíendonos a nosotros mismos.

      Eliminar
    3. Esta bien profesor entiendo su comentario y a la vez se lo agradezco ya que de los errores se aprende, y tiene razon la propia pagina donde sale el codigo fuente no esta citada, por un momento pense que la habia colocado, de antemano pidos disculpas por el error cometido y acepto las correcciones profesor y seguro estoy que este error no sera cometido nuevamente :-), sin mas que añadir me despido de usted con un abrazo fraternal, saludos Muchas Bendiciones

      Eliminar
    4. buenas tarde profesor , de parte de nuestro grupo , y en lo personal pedimos disculpa , y de verdad y como dice el compañero malgnelvis al no citar en el blog la pagina donde esta el codigo fuente .. saludos...

      Eliminar
  11. Buenas noches profesor!!al igual que mis compañeros les pido disculpa por lo sucedido con el juego: Invasión y Batalla, estoy en total acuerdo con lo dicho antes por: walter , jesus , lismar y jessica. De verdad que estamos muy apenados con ustede, mis disculpas ! y bueno de cada error se aprende.

    ResponderEliminar
  12. Cometer errores es bueno. La única forma de aprender de veras es cometiendo errores. Y si sienten verguenza alguna vez por ello, eso tampoco es malo. Sólo significa que recuerdan los principios que alguna vez les inculcó su padre, madre, abuela y otras figuras de autoridad...

    Cambiando el tema, estoy comenzando a recibir las hojas de coevaluación. Estaré esperando las demás para cerrar el semestre y entregar las actas de notas. Por cierto, le recuerdo al equipo que había colocado a Giovanni Mondello como integrante, favor actualizar la lista de los integrantes.

    ResponderEliminar
  13. Buenas tardes profesor los integrantes del grupo de la documentacion de pygame sabor venezolano son_

    -colaiacovo maria
    -sanchez ensor
    -vargas yunior
    -lanz johana
    -quintero sor.
    ya mi compañero ensor le habia subido la informacion, pero aqui se la vuelvo colocar.. saludos

    ResponderEliminar
  14. Hola Sor:

    ¿Que ocurrió con Hector Romero? ¿No está en ningún grupo?

    ResponderEliminar
  15. Saludos Profesor Buenas noches le enviamos nuestra coevaluacion puesto que tuvimos problemas con su correo electrónico lo teníamos anotado mal espero que pueda alcanzar a revizar nuestra Coevaluacion Saludos

    ResponderEliminar
  16. buenas noches profesor mañana tenemos que asistir a la universidad ?

    ResponderEliminar
  17. profee disculpe, me falto hector romero, que pena de verdad, si hector esta con nosotros. fue un error mio

    ResponderEliminar
  18. Hola a todos:

    He recibido los formatos de coevaluación de todos los equipos salvo el de esquiva el auto (recibi el correo sin el archivo anexo). Si me lo hacen llegar ahora, y el internet me lo permite, yo ingreso las notas en seidos y estaré por allá en la tarde (hora de clase) para la firma y entrega de las actas.

    ResponderEliminar