A raíz del meneo sobre la entrada del blog de David "Yo sí estoy a favor del colegio de informáticos" y los comentarios vertidos en él meneame.net/story/yo-si-estoy-favor-del-colegio, Galli escribió una entrada en su blog gallir.wordpress.com/2008/04/08/colega-lets-see-the-code/ dudando sobre la capacidad de David como ingeniero. Ahora David se defiende en su blog.
1. Presupone que no se lo que es cvs, pero trabajo a diario con svn (mucho mas moderno) y git (aun mas moderno):
www.ohloh.net/accounts/13233
Main Developer at eyeOS
705 commits
Yo creo que en 705 commits, he aprendido lo que es un software de control de versiones, no?
Pero vaya, no me asombra en absoluto que alguien que apoya el colegio de ingenieros, no sea capaz de comprender que yo, que soy un intruso, sepa lo que es CVS, SVN, GIT y similares.
2. Presupone que no se como se reporta un agujero de seguridad.
Bueno, yo le diría al autor del artículo que la política que el promueve (full disclossure) no es ni por asomo obligatoria, y seguir los pasos que el propone, es considerado "buenas maneras", supongo que son esas buenas maneras de actuar las que el propone cuando crea un artículo solo para insultarme a mi y a galli.
Sin embargo, y aunque su mente pro-colegios no lo puede entender, yo ya he reportado en el pasado bastantes agujeros de seguridad, como este:
securityvulns.com/Odocument766.html
y se perfectamente cual es el camino a seguir (o los caminos) se lo que es un mantenedor y se como contactar con el.
Sin embargo, en el post se olvida mencionar que el CVS OFICIAL del proyecto, está desactualizado, esto es un error grave, pues la propia definición de "cvs del proyecto" le indica a mi, y a cualquiera, que esa es la copia sobre la que se trabaja (se pueden consultar los cvs/svn de cualquier proyecto libre para ver que es así).
Todos los auditores de seguridad que analicen el proyecto, no van a escribirte un correo pidiéndote nada, van a ir al cvs/svn, bajarse el código y leerselo, sin embargo, yo no voy a insultar a orcero por su ignorancia en todo lo que rodea a la auditoria de seguridad.
Por ultimo, continua haciendo juicios de valor (yo nunca he hablado con este hombre) sobre mi edad, sobre si entiendo o no el proyecto, sobre mis conocimientos y sobre mi forma de ser (increible!), en fin, que me conoce mas que mi madre, y en mi vida hemos hablado:
Supongamos que con la emoción de un chaval de 20 años que ha encontrado un error de seguridad en un paquete con una complejidad que no entiende, queremos dar un parte de seguridad por el problema. ¿Que hacemos?
increíble.
... » ver todo el comentario
sourceforge.net/project/showfiles.php?group_id=467297
La versión colgada en sourceforge (página oficial del proyecto) como "actual" es VULNERABLE.
Esto ya es difícil de defender :)
Orcero puede decir misa, pero la gente lo que hace es ir a sourceforge (página OFICIAL) y bajárselo, y como consecuencia, ser vulnerables.
openmosix-tools-0.3.6-2.tar.gz Mirror 515181 13814 i386 .gz
Pero claro, 13814 personas (mas todas las que usen versiones anteriores, que son muchísimos miles mas) no son nada para orcero, por que resulta, que el tiene una versión especial, que NO está publicada en la web oficial del proyecto, y que no es vulnerable, por lo cual, para el, ya no existe problema alguno.
increíble a mas no poder.
P.D. No se si es por que no estoy en mi sistema habitual y aquí hay algo mal, pero:
www.orcero.org/irbis/openmosix/OpenMosixUserland-0.5.1.tgz
Su versión especial y no publicada en el sitio oficial (la cual he tenido que buscar, sabiendo que existe de antemano, para encontrarla), no me extrae, me da error al extraerlo.
P.D. 2: Clase de configuración de php para orcero:
www.orcero.org/irbis/blog/wp-content/plugins/hello.php
display_errors a off, cuando estés en producción, esos path disclossures unidos a algunos bugs que permiten usar load_file de mysql mediante injections (y que algunos de los viejos blogs que alojas, son vulnerables) son muy peligrosos.
1. Me insultó sin que venga a cuento.
2. Defiende a los colegios y contra el intrusismos porque dice que hace daño, sin embargo:
a) Programa peor que mi hija.
b) Dice barbaridades de optimizadores e intenta justificar su pésimo estilo.
c) No tiene idea de seguridad ni como funciona security focus (ya lo han explicado arriba)
d) El día que me demuestren que:
x + 1 + 1 + 1 + 1 es mejor, más óptimo y más claro que poner x + 4
o que escribir como:
no-hace-faltan.frases.ni.separacion ni respetar. espacios_ni_estructuras---porque-soy.así.de-bueno.como-escritor...y..deberíamos.tener-colegios-de-escritores-paraevitar-eldaño.q.u.e-hacen a la profesión
sea merecedor de un premio literario, me empezaré a tomar en serio a la defensa del colegio o la profesión que hace este señor.
Es patético. Y los que todavía no se han dado cuenta de tantas falacias deberían aprender un poco de programación, ingeniería del software, ciencias de la computación, y de paso un poco de lógica.
El principal argumento de los colegios es la calidad del código y la fiabilidad de los productos de software, argumentan que contra mas certificación, mas seguridad. Aquí se ha demostrado lo contrario y por eso, se le ha reprochado.
No tiene mucho que ver con el software libre todo esto.
Ya está expuesto y probado en el comentario #2 de gallir.wordpress.com/2008/04/08/colega-lets-see-the-code/
Pero aunque hayas encontrado que el compilador optimiza eso NO es justificación.
Regla básica del buen programador (también regla básica de la ingeniería del software)
Los lenguajes de alto nivel se diseñan para las personas, no para los optimizadores o la CPU, éstas siguen usando código binario.
El que pretenda justificar su espagueti de código, o su total desconocimiento de aritmética de punteros básicas, o las reglas mínimas de estilo de programación en presuntas optimizaciones de compiladores es que no tiene idea de programación, mucho menos de "ingeniería". Si además se justifica pretendiendo que sabe más que otros, no tiene precio.
Si además lo atacando al "intrusismo" por la mala calidad de software de lo "intrusos", es para llorar.
¿Es que todavía hay que seguir explicando lo absurdo de los argumentos?
paso de entrar esta dinámica, así que solo contestaré esa pregunta.
> Supongamos que con la emoción de un chaval de 20 años que ha encontrado un error de seguridad en un paquete con una complejidad que no entiende, queremos dar un parte de seguridad por el problema.
Luego explica un montón de cosas de "lo que hay que hacer", cosas que vemos que jcarlosn ya hizo, su report está en la mailing adecuada.
> Además, por no consultar puede ocurrir que te saquen los colores en la propia lista de seguridad.
El link que da es www.securityfocus.com/archive/1/490715 así que:
- se ha equivocado de link, puesto que ahí no sacan los colores a nadie
- no entiende el inglés, y no ha entendido lo que pone
- lo ha entendido, pero quiere engañar al lector
Sobre ricardo:
Sí, para él, poner un punto y coma de más es un error grave, y la tabulación muy grave
Salieron varios fallos serios. Se criticó que se asigna la autoría del programa, cuando no hubo indicios más que de unos pocos parches de dudosa calidad. El estilo no es lo más importante, ¿por que se "defiende" del estilo y no dice nada de lo demás?
En post anteriores lo llamaba "Chikilicuatre" de la informática, incluso con un tufillo a xenofobia.
En el blog de Ricardo estuvo trolleando con varios nicks, desde la misma IP, hasta que hubo que cerrar comentarios.
Y la gilipollez más grande:
> Hace una semana pensaba que Ricardo Galli tiraba piedras contra el tejado de la Ingeniería Informática. Ahora creo que las tira contra la Ingeniería Informática, contra mi profesión, y además contra el software libre.
¿Dónde están los argumentos a favor de un Colegio de informáticos? Yo no veo más que insultos, insinuaciones, y enredarlo todo.
Se quiso hacer la falacia "ad baculum", dando valor al argumento "porque lo dice un señor que ha hecho mucho software libre". Se demostró que eso es una falacia. Y la solución, ¿huir hacia delante, insultando a quien se ponga en medio? Su odio contra Ricardo lo puedo entender, pero meterse con jcarlosn que ha sido muy "aséptico" en el tema...
Llorica :-p
No puedes escribir código pensando en el código máquina que va a generar el compilador, como bien ha dicho galli, en los lenguajes de alto nivel, se programa pensando en las personas, y no en el código subyacente que será generando por el compilador.
¿Pero por que?
Por que distintos compiladores de Ansi C y distintas versiones del mismo compilador, generan distinto código máquina.
¿Esto que significa?
Que tu código estrambótico para optimizar, puede ser negativo en otra versión de GCC o en otro compilador ansi C.
¿Entonces, que podemos hacer?
Entender la lógica que hay por debajo del lenguaje C, y programar con ello, de una forma estructurada que facilite el mantenimiento del proyecto sin afectar negativamente a la escalabilidad.
Así que ya insulto yo por él: ¡cara de pito!
www.orcero.org/irbis/blog/wp-content/plugins/Post2PDF/SW_Post2PDF.php?E <- He escrito un correo a orcero y ya ha sido solucionado, pero no tengo esperanza en que me conteste :)
Sql injection explotable.
Iba a poner como explotarlo, pero a diferencia de lo que crees (espero que orcero se pase por aquí a leer, sino ahora le comunicaré esto por correo), tengo bastante respeto por el trabajo de los demás.
Con los de Galli tipo "programa peor que mi hija" esto es una discusión de taberna.
No es por ponerme a favor de unos o de otros, pero por lo menos a lo de:
"El día que me demuestren que:
x + 1 + 1 + 1 + 1 es mejor, más óptimo y más claro que poner x + 4 "
ha contestado en la entrada con
"Supongamos que no nos fiamos y desconocemos los rudimentos de la optimización en este tipo de programas. En ese caso, pedimos pruebas de que esto es así. Al desarrollador de software libre hasta le hace gracia que se lo pidamos -puesto que es un clásico de las optimizaciones-, y nos manda un código en C:
void main()
{
char *psaux=0;
long int j=0;
for (;j<60000000;j+=2)psaux++;
printf("%d",psaux);
}
Lo compilamos -como nos dice- con -S y empleando -march para forzar código para una plataforma antigua -un athlon mismo nos vale-, y obtenemos algo como:
.L10:
cmpl $59999999, %eax
jle .L3
CÓDIGO RESTO PROGRAMA
.L3:
incl %ecx
addl $2, %eax
jmp .L10
con código optimizado con -O2, y:
.L10:
cmpl $59999999, %eax
jle .L3
CÓDIGO RESTO PROGRAMA
.L3:
incl -12(%ebp)
addl $2, %eax
jmp .L10
Si compilamos sin optimizar. En máquinas de 32 bits, el compilador genera un incl DESPLAZAMIENTO(%ebp), y optimizando -que es la opción por defecto en kradview-, genera un incl %REGISTRO. Entonces sabemos que nuestra víctima del show me the code tenía razón: incrementar el puntero es incrementar un registro; mientras que sumar un número supone leer al menos un entero de 32 bits de memoria, meterlo en registro y sumarle uno. Aunque en una máquina moderna la velocidad es similar, en una máquina que ya tenga algunos años la diferencia de velocidades es abismal. Una optimización guarrilla, pero que funciona."
Otra cosa es que pienses que ese razonamiento tiene fallos, que en ese caso, y como novato en esto de las optimizaciones, me gustaría que expusieras.
¡Ahora lo entiendo!
PD: ¡Voto llorica YA!
Si hubieses dedicado la mitad del tiempo que has dedicado a la promoción del software libre a desarrollar software normal, tendrías mucho más prestigio del que tienes.
Y NO, no lo dice con ironía, lo dice convencido xDD
AFIRMACION ORCERO: escribir 4+1+1+1+1=7 en lugar de 4+3=7 no tiene sentido, así que debe haber un motivo oculto. Investigo, y resulta que lo hicieron con la intención de que máquinas antiguas fuesen más rápidas. Compruebo que es así, y por tanto lo doy por bueno.
RESPUESTA GALLI: escribir 4+1+1+1+1=7 en lugar de 4+3=7 no tiene sentido, y como Orcero lo da por bueno, Orcero es gilipollas (omitiendo todo el resto de la argumentación de su rival).
Que se me entienda, por favor: ni siquiera me atrevería a opinar quien lleva razón sobre un tema del que no tengo ni puta idea. Pero sí puedo opinar sobre la estructura lógica de la argumentación de cada parte. Tal vez la postura de Orcero sea un disparate, y programe peor que la hija de Galli, pero Galli me convencerá cuando me explique por qué no es cierto que escribir 4+1+1+1=7 hace más rápidas máquinas antiguas, en lugar ignorar esa parte de la argumentación de Orcero en su respuesta.
Y no estoy comentando lo que hiciera en otros posts, u otros blogs, que ni siquiera he leído (aunque a ti te parezca aceptable basar la opinión sobre este post en algo que no pertenece a este post).
DZPM, entiéndeme, no tengo ni el menor interés en defender a alguien de cuya existencia me he enterado hoy. Mis comentarios aquí son más bien un intento de defender la objetividad, que consiste en comentar las cosas como son, y realmente no estás comentando este post según su contenido sino sino según la imagen que ya tenías anteriormente de su autor.
Algunos van a piñón fijo. No se puede ser más papista que el Papa.
Pues no me acaba de convencer.
Ese argumento que dáis desde un punto de vista teórico sobre buena programación está muy bien, pero desde un punto de vista práctico, si tal como dice Orcero, la diferencia se nota en ordenadores lentos, pues tampoco lo veo tan grave, ni que esta optimización en concreto vaya a dificultar tanto el mantenimiento del proyecto.
Las reglas de buena programación no son inamovibles y cada proyecto tiene sus peculiaridades, y una de esas peculiaridades puede ser que convenga sacrificar un poco la mantenibilidad o el buen estilo a cambio de un mejor rendimiento.
Repito que estoy hablando de este caso en concreto.