Eli
199meneos

Un trocito de código de un proyecto fin de carrera

Un profesor de la Universidad de Oviedo habla sobre algunos PFC, en especial de uno que le llamó la atención, y a cualquiera no...

etiquetas: pfc, función, código
negativos: 0  usuarios: 199  anónimos: 0  compartir:  twitter  facebook  friendfeed
  1. #1   OMFG!

    ¿Es GPL? Me gustaría meter una función así en mi PFC, a ver que cara se le queda al profe xD
    votos: 0, karma: 14
    por DZPM el 28-09-2006 13:55 UTC
  2. por --3147-- el 28-09-2006 13:59 UTC
  3. #3   #2 no se pq me da que no :P
    votos: 0, karma: 8
    por SirViente el 28-09-2006 14:06 UTC
  4. #4   <<3. Un profesor, en especial el director de la escuela de informática de oviedo, no debería mofarse en proyectos fin de carrera del alumno, ya que: El alumno podría sentirse ofendido y, por alguna manera, si leyese este blog, podría sentirse como la mierda y lo segundo, al que se le tenía que caer la cara de vergüenza sería al profesor que se lo ha dirigido.>>

    Plas, plas, plas.
    votos: 0, karma: 7
    por DetectiveLibrero el 28-09-2006 14:07 UTC
  5. #5   Pues sí. El alumno será bobo, pero el tutor que le llevó el proyecto debía ser la repera.
    votos: 0, karma: 6
    por hamster_ruso el 28-09-2006 14:09 UTC
  6. #6   Toda la razon.
    votos: 0, karma: 8
    por SirViente el 28-09-2006 14:16 UTC
  7. #7   Yo no solo que no lo apruebo, sino que creo que le pegaría. ¿o no se lo merece?
    votos: 0, karma: 9
    por pablo-ar el 28-09-2006 14:17 UTC
  8. #8   #4 Deberian darle un sobresaliente al alumno y echar al tutor por dejao, ¡¡¡flipo!!!
    votos: 0, karma: 7
    por carcadiz el 28-09-2006 14:20 UTC
  9. #9   ¿?
    votos: 0, karma: 7
    por elzo el 28-09-2006 14:20 UTC
  10. #10   venga va, ¿ofendido porque se muestre ese código? no fastidies #4. El alumno debería de ser capaz de admitir que ha hecho una pifia. Que todos las hacemos.
    votos: 0, karma: 6
    por boronat el 28-09-2006 14:21 UTC
  11. #11   Yo lo hubiese hecho con if anidados.
    votos: 0, karma: 20
    por mezvan el 28-09-2006 14:22 UTC
  12. #12   Me parece que no es para tanto. El profesor sólo está mostrando el "pecado" y no al "pecador", que seguirá en el anonimato. El post es sólo para reflejar una determinada situación: tanto la del alumno como la del tutor. No podríamos poner nunca ejemplos de nada para no "herir" la sensibilidad de nadie.
    votos: 0, karma: 18
    por eclectico el 28-09-2006 14:25 UTC
  13. #13   Mi tutor de PFC me revisó hasta la última coma que escribí, y me hizo reescribir páginas enteras. Desde luego, el alumno merece suspender, pero el tutor merece algo peor.
    votos: 0, karma: 12
    por --8556-- el 28-09-2006 14:30 UTC
  14. #14   Yo lo mato!
    Es un insulto para un informático
    votos: 0, karma: 6
    por jotapesan el 28-09-2006 15:00 UTC
  15. #15   #11 XD XD
    votos: 0, karma: 8
    por SirViente el 28-09-2006 15:14 UTC
  16. #16   Si hizo ese codigo, el profesor deberia avergonzarse de la escuela... no del alumno.

    ¿Como llego ese tio a aprobar todas las asignaturas?

    ¿quien le enseño programacion y algoritmica?

    A la puta calle un profesor con el suspenso, la mitad de la culpa de ese no es de el sino de la escuela.
    votos: 0, karma: 13
    por francisco el 28-09-2006 15:25 UTC
  17. #17   A mi me pasó algo parecido. Mi PFC lo hice yo solito y sin tutores. Justo el día en que cerré el código encontré tutor y el se encargó de supervisar la documentación. Y hete aquí lo que pasó.

    Me pusieron un notable. Me alabaron (y mucho) la aplicación. Se cagaron en mi documentación y me echaron una bronca de las que hacen época... con la vista puesta en el tutor, ya que sabían perfectamente la historia de mi PFC (dos de los miembros del tribunal rechazaron dirigírmelo y estaban al tanto de la evolución posterior). Finalmente volvieron a alabar el proyecto y me dijeron que no me debía parecer mal toda la bronca... sin despegar la vista del tutor.

    Pero tuve que joderme y conformarme con el notable :(
    votos: 0, karma: 14
    por Cantro el 28-09-2006 15:27 UTC
  18. por --873-- el 28-09-2006 15:52 UTC
  19. #19   #18, te explico:

    function valida_dia($day) {
    $solu = "";
    switch ($day) {
    case "01" : $solu = "01"; break;
    case "02" : $solu = "02"; break;
    (...)
    }
    return $solu;
    }

    Ese código devuelve un "valor", un número.
    Si es el día "01", devuelve "01"
    Si es el día "02", devuelve "02"
    Etc.

    Hacer un caso para cada día es una guarrada increíble. Sería mucho más fácil hacer:


    function valida_dia($day) {
    return $day;
    }
    votos: 0, karma: 14
    por DZPM el 28-09-2006 16:07 UTC
  20. por --873-- el 28-09-2006 16:14 UTC
  21. por --7500-- el 28-09-2006 16:23 UTC
  22. por --2322-- el 28-09-2006 16:25 UTC
  23. #23   #21 y #22 sí, es lo que decís, yo he intentado explicar "cómo" lo hace, de la manera más simple posible.
    votos: 0, karma: 14
    por DZPM el 28-09-2006 16:28 UTC
  24. por --7500-- el 28-09-2006 16:29 UTC
  25. por --2322-- el 28-09-2006 16:34 UTC
  26. #26   Sería aún más fácil no hacer nada o incluso if($day) {if($day)>31 $day='';} else $day='';

    Eso sin contar con las funciones de fecha y hora de php, que tienen en cuenta los dias del mes e incluso si el año es bisiesto... incluso te dicen que el 32 de marzo en realidad es el 1 de abril
    votos: 0, karma: 14
    por Cantro el 28-09-2006 16:46 UTC
  27. #27   #1 sería grandísimo. Un trabajo impecable y al final una función como ésta para rematar xD
    votos: 0, karma: 7
    por minipimmer el 28-09-2006 17:00 UTC
  28. #28   #26 y alguno mas. Como dice un comentario del articulo, si pretendes tener seguridad entonces "No trust user Data." es decir no confies en los datos de los usuarios. PQ por ejemplo
    es.wikipedia.org/wiki/Buffer_overflow

    Alguno por ahi dice que se puede hacer de manera mas comoda.Yo no se mucho de esto pero se me ocurre una.
    1.-Defines un array con los numeros enteros del 1 al 31
    2.-compruebas si tu valor coincide con alguno de los que se encuentran en tu array
    y actuas en consecuencia.
    Seguro que hay maneras mejores de hacerlo, ¿cual es la buena y por que?

    Salu2

    Octan
    votos: 0, karma: 6
    por octan el 28-09-2006 17:09 UTC
  29. #29   la forma buena es
    si $day.aEntero > 31 ó $day.aEntero < 1 devolver "" si_no devolver $day
    votos: 0, karma: 6
    por krammer el 28-09-2006 17:28 UTC
  30. por --7574-- el 28-09-2006 17:40 UTC
  31. #31   #28 y #29 Mi línea de código hacía eso, aunque la de #29 es más legible y por tanto debería ser la usada (alguien tendrá que mantener el código en el futuro). Revisándola encuentro que "casca" si alguien mete un día negativo.

    Podríamos escribir algo como if(!(($day>0)&&($day<32))) $day=''; que a lo mejor no es tan fardón, pero hace el trabajo. No es necesario devolver el valor de $day ya que no lo alteramos, salvo que no cumpla las condiciones.

    Cualquier cosa mejor que esa burrada. Pero como he dicho, lo mejor sería usar las funciones de fecha y hora de php, que tienen en cuenta cosas como que alguien quiera saber en qué día de la semana cae el 32-13-2006 (que si no me equivoco equivale al 01-02-2007) y eso sí que es no confiar en la habilidad del usuario (como debe ser)
    votos: 0, karma: 14
    por Cantro el 28-09-2006 17:50 UTC
  32. por --9551-- el 28-09-2006 17:54 UTC
  33. #33   #32 :lol: los hombres de verdad dominan goto.
    votos: 0, karma: 8
    por otroqueseborra el 28-09-2006 18:03 UTC
  34. por --1502-- el 28-09-2006 18:30 UTC
  35. #35   Bah, es lo mas corriente en una carrera de informatica.

    Pensadlo bien. ¿Cuantas asignaturas de programacion tiene una carrera de informatica?.
    Pues exactamente dos. Amen de cosas como programaciones concurrentes y demas que suelen ser optativas.
    Pero basicas basicas solo son 2.

    A eso sumadle el hecho de que el 50% de los estudiantes de informatica no tienen ningun interes en la materia. Simplemente es una carrera para tener un titulo y trabajar en algo (y estan en su derecho).

    No me digais que nunca habeis aprobado asignaturas asi casi de casualidad para olvidar rapidamente lo poco aprendido (hay que reconocer que muchas asignaturas son poco utiles o practicas).
    Pues yo ya he visto cantidad de gente a las que les pasa eso con programacion.
    Una vez aprobado intentan no volver a tocar nunca un compilador y en el fondo la programacion es pura practica (como casi la mayoria de las cosas).

    Asi llegamos a resultados como ese. ¿la culpa? Pues quien sabe. Del sistema educativo? De la falta de interes que demuestra una gran parte de estudiantes por cualquier cosa que no sea salir de fiesta? de los profesores tambien desinteresados porque ya tienen suficiente con sus investigaciones como para que los obliguen a dar clases?

    Quien sabe... :)

    Al fin y al cabo no todos los estudiantes de informatica son frikis apasionados del mundillo.
    votos: 0, karma: 6
    por ShOtGaN el 28-09-2006 18:37 UTC
  36. por --9937-- el 28-09-2006 18:44 UTC
  37. #37   Por que la informática es solo programación? Estoy hasta las narices de que los profesores hablen de proyectos, entidad relación, programación... hay algo más que eso en la informática.
    votos: 0, karma: 7
    por ajripa el 28-09-2006 18:47 UTC
  38. #38   No es por nada, pero me da que por aquí hay más de uno descojonado que no tiene claro el concepto validación de los datos, incluido el autor del blog.
    votos: 0, karma: 6
    por dsc el 28-09-2006 18:59 UTC
  39. #39   Primero que nada me parece sumamente LAMENTABLE que un profesor se "mofe" de un alumno copiando el código para que todos los listillos frikis informáticos (que no son pocos) demuestren lo listos que son y lo que ellos hubieran hecho o dejado de hacer. Deja claro por tanto, la calidad humana y sobretodo como profesor del personaje que escribe en el blog.

    Si yo como alumno me dedicase a pegar en mi santo blog la sarta de GILIPOLLECES que algunos (si no todos) los profesores que he tenido en la carrera han dicho o hecho, me faltaban horas.

    La culpa, como bien dicen por arriba, es del tutor del PFC que no es capaz de explicar como Dios manda.

    Y de todas formas seguramente (en un 99% de los casos) todos estos 'entendidos' de informática que pululan por aquí y por el propio blog, dándoselas de su propia autosuficiencia, meterían la gamba en algo de lo que el resto de informaticossuperlistos se podrían reir.

    No somos nadie oztia! XD
    votos: 0, karma: 6
    por DmC el 28-09-2006 19:30 UTC
  40. #40   for (i=1; i<=31; i++) {
    if (dia == i) {
    return i;
    } else {
    continue;
    }
    }

    Esta es la forma optimizada, que no teneis ni idea joer xD
    PD: Si, yo también estoy de acuerdo en que el profesor es un cretino.
    votos: 0, karma: 7
    por kolme el 28-09-2006 19:31 UTC
  41. #41   thedailywtf.com
    votos: 0, karma: 7
    por suntzu el 28-09-2006 19:34 UTC
  42. #42   #35 Pues yo tampoco se donde estudiaste tu, pero en FiC (Facultad de informatica de Coruña) en la técnica de sistemas hay:

    1º Programación y edi (en mi epoca pascal, ahora no sé)
    2º Tecnologia de la programación (Java)
    Metodologia de la programación (Java)
    Sistemas operativos (C)
    Computación Numerica (Fortran)
    Base de datos
    votos: 0, karma: 6
    por mfdez el 28-09-2006 20:03 UTC
  43. #43   #35 Pues yo tampoco se donde estudiaste tu, pero en FiC (Facultad de informatica de Coruña) en la técnica de sistemas hay:

    1º Programación y edi (en mi epoca pascal, ahora no sé)
    2º Tecnologia de la programación (Java)
    Metodologia de la programación (Java)
    Sistemas operativos (C)
    Computación Numerica (Fortran)
    Base de datos (Pro*c + SQL)
    Estructura de computadores (ensamblador en MIPS)
    Sistemas conexionista (matlab)
    3º Sistemas operativos 2 (C)
    Teoria de lenguajes formales (lo que diese la gana. Desde C, java, etc)
    Estructura de computadores 2 (más ensamblador y C)
    Medios de transmisión (matlab o octave)
    Redes (C)


    Como ves, unas cuantas, todas con una carga de practicas flipante. Aun así es posible ver cosas como esas en gente que está acabando y eso por que, pues en parte por lo que dices tu, gente que entra por tener carrera y supuestamente un buen curro, y a lo que se dedican es simplemente a copiar practicas y adaptarlas, con lo que no aprendes.

    Te puedo asegurar, que si te las haces tu solito, alcanzas un buen nivel como programadar, los habrá mejores o peores, pero creo que tendrías un nivel bastante bueno.

    Este tio seguro que copio practicas como un descosido y claro despues se ve el resultado.

    Como anecdota, conozco a uno que saco la carrera en unos 4 o 5 años (que no son muchos) copiando todas las practicas y que llegado el proyecto no sabía que hacer por que no sabía hacer absolutamente nada. El hombre claro está al tema pero trabajando todo lo que no trabajó antes.

    Un saludo

    Este tio seguro que copio practicas como un descosido y claro despues se ve el resultado.

    Como anecdota, conozco a uno que saco la carrera en unos 4 o 5 años (que no son muchos) copiando todas las practicas y que llegado el proyecto no sabía que hacer por que no sabía hacer absolutamente nada. El hombre claro está al tema pero trabajando todo lo que no trabajó antes.

    Un saludo
    M

    PD: pos no me deja modificarlo... .(
    votos: 0, karma: 6
    por mfdez el 28-09-2006 20:10 UTC
  44. #44   Soy Labra, el autor del comentario. Creo que muchos malinterpretaron mi intención al escribir en el blog el fragmento de código pensando que quería mofarme del alumno. Simplemente decir que no era ésa mi intención. Me llamó la atención dicho código y por éso lo puse.

    Como no era mi intención molestar a nadie, y menos al alumno, he borrado dicho artículo y pido disculpas a los que se hayan sentido ofendidos.
    votos: 0, karma: 6
    por labra el 28-09-2006 20:35 UTC
  45. #45   #42 y #43 en la Fic además de toda esa programación hay en la AFI unos cursos buenísimos que enseñan a usar interné y te podrían ayudar a la hora de escribir los comentarios.
    No te molestes, es que te has lucido!
    votos: 0, karma: 6
    por nirvana el 28-09-2006 20:51 UTC
  46. por --9551-- el 28-09-2006 20:53 UTC
  47. #47   Bah venga, el tema se ha desmadrado un poco. La verdad es que la función del chaval era TREMENDA (nótese las mayúsculas), aunque como hemos visto... pa gustos colores.
    En lo referente a dicho profesor... me parece un tanto hipócrita andar 'meneando' noticias del estilo 'a fulana la han despedido por blogar no se qué', andar llamando 'sensuradores' a too lo que pillemos y que luego una persona normal y corriente, porque aunque sea profesor tiene vida, escriba en su blog algo anecdótico de su trabajo lo pongamos a caer de un burro.
    Lo siento mucho por el mozo, pero la verdad es que la funcioncita se las trae... no creo ni que se sienta ofendido.
    Saludos fisgonas y meneadores.
    votos: 0, karma: 12
    por nOvaZuZu el 28-09-2006 21:04 UTC
  48. #48   #46 Daría un ojo por saber... oh wait
    votos: 0, karma: 10
    por culoman el 28-09-2006 21:08 UTC
  49. #49   No he visto el post porque el autor lo ha retirado, pero si el código del que se habla es el que ha citado #19, me sorprende que nadie se haya dado cuenta de que el estudiante estaba comparando cadenas, y no enteros, por lo que las funciones que proponen #29 ó #40 no funcionarían.
    Otra cosa es que sea apropiado usar una cadena para representar un día, que no creo que lo sea.
    votos: 0, karma: 10
    por strider el 28-09-2006 21:11 UTC
  50. #50   Uhm... y digo yo, ¿los tutores tienen que revisar hasta la más mínima función auxiliar?

    Y ahora, sin venir a cuento, otro WTF que presencié en vivo y en directo no hace mucho tiempo.

    if(i<10) { ... }

    » ¿Y el resto de socios qué? ¡Digo yo que habrá más de 10!

    if(i<10 || i>=10) { ... }
    votos: 0, karma: 7
    por ys_ el 28-09-2006 21:29 UTC
  51. #51   #50 Insuperable

    Por otro lado, y metiéndome en un terreno que no es el mío (con la consecuente posibilidad de cagada), con respecto al código original, decir que, aunque mejorable, no sabemos el contexto del programa, y que se supone que hay que comprobar los datos introducidos por el usuario.

    Imaginad si, según el contexto, esto viene de una cadena de texto introducida por un usuario en un formulario y le da por poner ;rm -rf /
    votos: 0, karma: 6
    por dsc el 28-09-2006 21:40 UTC
  52. #52   #47 Arregla tu codificación de caracteres XD
    votos: 0, karma: 16
    por Taikochu el 28-09-2006 21:48 UTC
  53. #53   el link ya no funciona :(
    votos: 0, karma: 11
    por jatubio el 28-09-2006 22:34 UTC
  54. #54   ¿nadie se a dado cuenta que ese código, si valida días de una fecha ingresada, daría correcto el 31/09/2525 ?
    votos: 0, karma: 6
    por Warlock-G el 28-09-2006 22:43 UTC
  55. #55   y eso si que no me gustaría ya que me pagarían el sueldo este domingo y no el sábado. :P
    votos: 0, karma: 6
    por Warlock-G el 28-09-2006 22:52 UTC
  56. #56   A ver, todos esos que se han sentido ofendidos.

    Se mire por donde se mire, esa función es una cagada brutal. El tutor y el autor deberían haberse muerto de vergüenza, ya que esa tontería se hace en una o dos líneas (y de forma más eficiente y legible) y es impropia de alguien que ha terminado la carrera. E insisto, la forma correcta de validar una fecha es usando las funciones de php (que están extraordinariamente bien pensadas), o bien una tontería en javascript si esto se usaba para validar formularios.

    Y es bueno que se escriba, para que los que estén aprendiendo no cometan errores de este calibre y piensen antes de ponerse a teclear como locos. Con todos los WTF así de gordos debería hacerse.

    En cuanto a Labra, creo que muchos no sabeis ni quién es ni qué ha escrito. Es el autor del manual de Haskell que se usaba en mi uni. Para los que no lo saben, Haskell es un lenguaje de programación funcional (bastante puñetero de aprender... al principio): es.wikipedia.org/wiki/Haskell. Deleitaos con la sintaxis del lenguaje, si os atreveis :p
    votos: 0, karma: 14
    por Cantro el 29-09-2006 00:37 UTC
  57. #57   Daria un ojo por saber por que nadie se ha dado cuenta que esa funcion no valida bien :).

    30/02/2006 -> foo(30) -> return 30;
    estoo......
    votos: 0, karma: 7
    por Liso el 29-09-2006 07:17 UTC
comentarios cerrados

menéame